ATProto Social Bookmark
3
fork

Configure Feed

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

feat : Prisma v7

usounds fec4250f 045b56c5

+2069 -239
+5 -2
backend/package.json
··· 26 26 "@atproto/api": "^0.18.8", 27 27 "@atproto/jwk-jose": "^0.1.11", 28 28 "@atproto/oauth-client-node": "^0.3.13", 29 - "@prisma/client": "^6.19.0", 29 + "@prisma/adapter-pg": "^7.3.0", 30 + "@prisma/client": "^7.3.0", 30 31 "@skyware/jetstream": "^0.2.5", 31 32 "dotenv": "^17.2.3", 32 33 "openai": "^6.10.0", 33 34 "p-limit": "^7.2.0", 34 35 "p-queue": "^9.0.1", 36 + "pg": "^8.17.2", 35 37 "pino": "^10.1.0", 36 38 "pino-pretty": "^13.1.3", 37 39 "tsx": "^4.21.0", ··· 39 41 }, 40 42 "devDependencies": { 41 43 "@types/node": "^24.10.1", 44 + "@types/pg": "^8.16.0", 42 45 "@types/ws": "^8.18.1", 43 46 "@vitest/coverage-v8": "^4.0.17", 44 - "prisma": "^6.19.0", 47 + "prisma": "^7.3.0", 45 48 "vitest": "^4.0.17" 46 49 }, 47 50 "pnpm": {
+1358 -43
backend/pnpm-lock.yaml
··· 26 26 '@atproto/oauth-client-node': 27 27 specifier: ^0.3.13 28 28 version: 0.3.13 29 + '@prisma/adapter-pg': 30 + specifier: ^7.3.0 31 + version: 7.3.0 29 32 '@prisma/client': 30 - specifier: ^6.19.0 31 - version: 6.19.1(prisma@6.19.1) 33 + specifier: ^7.3.0 34 + version: 7.3.0(prisma@7.3.0(@types/react@19.2.9)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)) 32 35 '@skyware/jetstream': 33 36 specifier: ^0.2.5 34 37 version: 0.2.5 ··· 44 47 p-queue: 45 48 specifier: ^9.0.1 46 49 version: 9.0.1 50 + pg: 51 + specifier: ^8.17.2 52 + version: 8.17.2 47 53 pino: 48 54 specifier: ^10.1.0 49 55 version: 10.1.0 ··· 60 66 '@types/node': 61 67 specifier: ^24.10.1 62 68 version: 24.10.4 69 + '@types/pg': 70 + specifier: ^8.16.0 71 + version: 8.16.0 63 72 '@types/ws': 64 73 specifier: ^8.18.1 65 74 version: 8.18.1 75 + '@vitest/coverage-v8': 76 + specifier: ^4.0.17 77 + version: 4.0.18(vitest@4.0.18(@types/node@24.10.4)(jiti@2.6.1)(tsx@4.21.0)) 66 78 prisma: 67 - specifier: ^6.19.0 68 - version: 6.19.1 79 + specifier: ^7.3.0 80 + version: 7.3.0(@types/react@19.2.9)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) 81 + vitest: 82 + specifier: ^4.0.17 83 + version: 4.0.18(@types/node@24.10.4)(jiti@2.6.1)(tsx@4.21.0) 69 84 70 85 packages: 71 86 ··· 159 174 '@atproto/xrpc@0.7.7': 160 175 resolution: {integrity: sha512-K1ZyO/BU8JNtXX5dmPp7b5UrkLMMqpsIa/Lrj5D3Su+j1Xwq1m6QJ2XJ1AgjEjkI1v4Muzm7klianLE6XGxtmA==} 161 176 177 + '@babel/helper-string-parser@7.27.1': 178 + resolution: {integrity: sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==} 179 + engines: {node: '>=6.9.0'} 180 + 181 + '@babel/helper-validator-identifier@7.28.5': 182 + resolution: {integrity: sha512-qSs4ifwzKJSV39ucNjsvc6WVHs6b7S03sOh2OcHF9UHfVPqWWALUsNUVzhSBiItjRZoLHx7nIarVjqKVusUZ1Q==} 183 + engines: {node: '>=6.9.0'} 184 + 185 + '@babel/parser@7.28.6': 186 + resolution: {integrity: sha512-TeR9zWR18BvbfPmGbLampPMW+uW1NZnJlRuuHso8i87QZNq2JRF9i6RgxRqtEq+wQGsS19NNTWr2duhnE49mfQ==} 187 + engines: {node: '>=6.0.0'} 188 + hasBin: true 189 + 190 + '@babel/types@7.28.6': 191 + resolution: {integrity: sha512-0ZrskXVEHSWIqZM/sQZ4EV3jZJXRkio/WCxaqKZP1g//CEWEPSfeZFcms4XeKBCHU0ZKnIkdJeU/kF+eRp5lBg==} 192 + engines: {node: '>=6.9.0'} 193 + 162 194 '@badrap/valita@0.4.6': 163 195 resolution: {integrity: sha512-4kdqcjyxo/8RQ8ayjms47HCWZIF5981oE5nIenbfThKDxWXtEHKipAOWlflpPJzZx9y/JWYQkp18Awr7VuepFg==} 164 196 engines: {node: '>= 18'} 165 197 198 + '@bcoe/v8-coverage@1.0.2': 199 + resolution: {integrity: sha512-6zABk/ECA/QYSCQ1NGiVwwbQerUCZ+TQbp64Q3AgmfNvurHH0j8TtXa1qbShXA6qqkpAj4V5W8pP6mLe1mcMqA==} 200 + engines: {node: '>=18'} 201 + 202 + '@chevrotain/cst-dts-gen@10.5.0': 203 + resolution: {integrity: sha512-lhmC/FyqQ2o7pGK4Om+hzuDrm9rhFYIJ/AXoQBeongmn870Xeb0L6oGEiuR8nohFNL5sMaQEJWCxr1oIVIVXrw==} 204 + 205 + '@chevrotain/gast@10.5.0': 206 + resolution: {integrity: sha512-pXdMJ9XeDAbgOWKuD1Fldz4ieCs6+nLNmyVhe2gZVqoO7v8HXuHYs5OV2EzUtbuai37TlOAQHrTDvxMnvMJz3A==} 207 + 208 + '@chevrotain/types@10.5.0': 209 + resolution: {integrity: sha512-f1MAia0x/pAVPWH/T73BJVyO2XU5tI4/iE7cnxb7tqdNTNhQI3Uq3XkqcoteTmD4t1aM0LbHCJOhgIDn07kl2A==} 210 + 211 + '@chevrotain/utils@10.5.0': 212 + resolution: {integrity: sha512-hBzuU5+JjB2cqNZyszkDHZgOSrUUT8V3dhgRl8Q9Gp6dAj/H5+KILGjbhDpc3Iy9qmqlm/akuOI2ut9VUtzJxQ==} 213 + 214 + '@electric-sql/pglite-socket@0.0.20': 215 + resolution: {integrity: sha512-J5nLGsicnD9wJHnno9r+DGxfcZWh+YJMCe0q/aCgtG6XOm9Z7fKeite8IZSNXgZeGltSigM9U/vAWZQWdgcSFg==} 216 + hasBin: true 217 + peerDependencies: 218 + '@electric-sql/pglite': 0.3.15 219 + 220 + '@electric-sql/pglite-tools@0.2.20': 221 + resolution: {integrity: sha512-BK50ZnYa3IG7ztXhtgYf0Q7zijV32Iw1cYS8C+ThdQlwx12V5VZ9KRJ42y82Hyb4PkTxZQklVQA9JHyUlex33A==} 222 + peerDependencies: 223 + '@electric-sql/pglite': 0.3.15 224 + 225 + '@electric-sql/pglite@0.3.15': 226 + resolution: {integrity: sha512-Cj++n1Mekf9ETfdc16TlDi+cDDQF0W7EcbyRHYOAeZdsAe8M/FJg18itDTSwyHfar2WIezawM9o0EKaRGVKygQ==} 227 + 166 228 '@esbuild/aix-ppc64@0.27.2': 167 229 resolution: {integrity: sha512-GZMB+a0mOMZs4MpDbj8RJp4cw+w1WV5NYD6xzgvzUJ5Ek2jerwfO2eADyI6ExDSUED+1X8aMbegahsJi+8mgpw==} 168 230 engines: {node: '>=18'} ··· 319 381 cpu: [x64] 320 382 os: [win32] 321 383 384 + '@hono/node-server@1.19.9': 385 + resolution: {integrity: sha512-vHL6w3ecZsky+8P5MD+eFfaGTyCeOHUIFYMGpQGbrBTSmNNoxv0if69rEZ5giu36weC5saFuznL411gRX7bJDw==} 386 + engines: {node: '>=18.14.1'} 387 + peerDependencies: 388 + hono: ^4 389 + 390 + '@jridgewell/resolve-uri@3.1.2': 391 + resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==} 392 + engines: {node: '>=6.0.0'} 393 + 394 + '@jridgewell/sourcemap-codec@1.5.5': 395 + resolution: {integrity: sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==} 396 + 397 + '@jridgewell/trace-mapping@0.3.31': 398 + resolution: {integrity: sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==} 399 + 400 + '@mrleebo/prisma-ast@0.13.1': 401 + resolution: {integrity: sha512-XyroGQXcHrZdvmrGJvsA9KNeOOgGMg1Vg9OlheUsBOSKznLMDl+YChxbkboRHvtFYJEMRYmlV3uoo/njCw05iw==} 402 + engines: {node: '>=16'} 403 + 322 404 '@pinojs/redact@0.4.0': 323 405 resolution: {integrity: sha512-k2ENnmBugE/rzQfEcdWHcCY+/FM3VLzH9cYEsbdsoqrvzAKRhUZeRNhAZvB8OitQJ1TBed3yqWtdjzS6wJKBwg==} 324 406 325 - '@prisma/client@6.19.1': 326 - resolution: {integrity: sha512-4SXj4Oo6HyQkLUWT8Ke5R0PTAfVOKip5Roo+6+b2EDTkFg5be0FnBWiuRJc0BC0sRQIWGMLKW1XguhVfW/z3/A==} 327 - engines: {node: '>=18.18'} 407 + '@prisma/adapter-pg@7.3.0': 408 + resolution: {integrity: sha512-iuYQMbIPO6i9O45Fv8TB7vWu00BXhCaNAShenqF7gLExGDbnGp5BfFB4yz1K59zQ59jF6tQ9YHrg0P6/J3OoLg==} 409 + 410 + '@prisma/client-runtime-utils@7.3.0': 411 + resolution: {integrity: sha512-dG/ceD9c+tnXATPk8G+USxxYM9E6UdMTnQeQ+1SZUDxTz7SgQcfxEqafqIQHcjdlcNK/pvmmLfSwAs3s2gYwUw==} 412 + 413 + '@prisma/client@7.3.0': 414 + resolution: {integrity: sha512-FXBIxirqQfdC6b6HnNgxGmU7ydCPEPk7maHMOduJJfnTP+MuOGa15X4omjR/zpPUUpm8ef/mEFQjJudOGkXFcQ==} 415 + engines: {node: ^20.19 || ^22.12 || >=24.0} 328 416 peerDependencies: 329 417 prisma: '*' 330 - typescript: '>=5.1.0' 418 + typescript: '>=5.4.0' 331 419 peerDependenciesMeta: 332 420 prisma: 333 421 optional: true 334 422 typescript: 335 423 optional: true 336 424 337 - '@prisma/config@6.19.1': 338 - resolution: {integrity: sha512-bUL/aYkGXLwxVGhJmQMtslLT7KPEfUqmRa919fKI4wQFX4bIFUKiY8Jmio/2waAjjPYrtuDHa7EsNCnJTXxiOw==} 425 + '@prisma/config@7.3.0': 426 + resolution: {integrity: sha512-QyMV67+eXF7uMtKxTEeQqNu/Be7iH+3iDZOQZW5ttfbSwBamCSdwPszA0dum+Wx27I7anYTPLmRmMORKViSW1A==} 427 + 428 + '@prisma/debug@7.2.0': 429 + resolution: {integrity: sha512-YSGTiSlBAVJPzX4ONZmMotL+ozJwQjRmZweQNIq/ER0tQJKJynNkRB3kyvt37eOfsbMCXk3gnLF6J9OJ4QWftw==} 430 + 431 + '@prisma/debug@7.3.0': 432 + resolution: {integrity: sha512-yh/tHhraCzYkffsI1/3a7SHX8tpgbJu1NPnuxS4rEpJdWAUDHUH25F1EDo6PPzirpyLNkgPPZdhojQK804BGtg==} 433 + 434 + '@prisma/dev@0.20.0': 435 + resolution: {integrity: sha512-ovlBYwWor0OzG+yH4J3Ot+AneD818BttLA+Ii7wjbcLHUrnC4tbUPVGyNd3c/+71KETPKZfjhkTSpdS15dmXNQ==} 436 + 437 + '@prisma/driver-adapter-utils@7.3.0': 438 + resolution: {integrity: sha512-Wdlezh1ck0Rq2dDINkfSkwbR53q53//Eo1vVqVLwtiZ0I6fuWDGNPxwq+SNAIHnsU+FD/m3aIJKevH3vF13U3w==} 439 + 440 + '@prisma/engines-version@7.3.0-16.9d6ad21cbbceab97458517b147a6a09ff43aa735': 441 + resolution: {integrity: sha512-IH2va2ouUHihyiTTRW889LjKAl1CusZOvFfZxCDNpjSENt7g2ndFsK0vdIw/72v7+jCN6YgkHmdAP/BI7SDgyg==} 442 + 443 + '@prisma/engines@7.3.0': 444 + resolution: {integrity: sha512-cWRQoPDXPtR6stOWuWFZf9pHdQ/o8/QNWn0m0zByxf5Kd946Q875XdEJ52pEsX88vOiXUmjuPG3euw82mwQNMg==} 445 + 446 + '@prisma/fetch-engine@7.3.0': 447 + resolution: {integrity: sha512-Mm0F84JMqM9Vxk70pzfNpGJ1lE4hYjOeLMu7nOOD1i83nvp8MSAcFYBnHqLvEZiA6onUR+m8iYogtOY4oPO5lQ==} 448 + 449 + '@prisma/get-platform@7.2.0': 450 + resolution: {integrity: sha512-k1V0l0Td1732EHpAfi2eySTezyllok9dXb6UQanajkJQzPUGi3vO2z7jdkz67SypFTdmbnyGYxvEvYZdZsMAVA==} 451 + 452 + '@prisma/get-platform@7.3.0': 453 + resolution: {integrity: sha512-N7c6m4/I0Q6JYmWKP2RCD/sM9eWiyCPY98g5c0uEktObNSZnugW2U/PO+pwL0UaqzxqTXt7gTsYsb0FnMnJNbg==} 454 + 455 + '@prisma/query-plan-executor@7.2.0': 456 + resolution: {integrity: sha512-EOZmNzcV8uJ0mae3DhTsiHgoNCuu1J9mULQpGCh62zN3PxPTd+qI9tJvk5jOst8WHKQNwJWR3b39t0XvfBB0WQ==} 457 + 458 + '@prisma/studio-core@0.13.1': 459 + resolution: {integrity: sha512-agdqaPEePRHcQ7CexEfkX1RvSH9uWDb6pXrZnhCRykhDFAV0/0P3d07WtfiY8hZWb7oRU4v+NkT4cGFHkQJIPg==} 460 + peerDependencies: 461 + '@types/react': ^18.0.0 || ^19.0.0 462 + react: ^18.0.0 || ^19.0.0 463 + react-dom: ^18.0.0 || ^19.0.0 464 + 465 + '@rollup/rollup-android-arm-eabi@4.56.0': 466 + resolution: {integrity: sha512-LNKIPA5k8PF1+jAFomGe3qN3bbIgJe/IlpDBwuVjrDKrJhVWywgnJvflMt/zkbVNLFtF1+94SljYQS6e99klnw==} 467 + cpu: [arm] 468 + os: [android] 469 + 470 + '@rollup/rollup-android-arm64@4.56.0': 471 + resolution: {integrity: sha512-lfbVUbelYqXlYiU/HApNMJzT1E87UPGvzveGg2h0ktUNlOCxKlWuJ9jtfvs1sKHdwU4fzY7Pl8sAl49/XaEk6Q==} 472 + cpu: [arm64] 473 + os: [android] 474 + 475 + '@rollup/rollup-darwin-arm64@4.56.0': 476 + resolution: {integrity: sha512-EgxD1ocWfhoD6xSOeEEwyE7tDvwTgZc8Bss7wCWe+uc7wO8G34HHCUH+Q6cHqJubxIAnQzAsyUsClt0yFLu06w==} 477 + cpu: [arm64] 478 + os: [darwin] 479 + 480 + '@rollup/rollup-darwin-x64@4.56.0': 481 + resolution: {integrity: sha512-1vXe1vcMOssb/hOF8iv52A7feWW2xnu+c8BV4t1F//m9QVLTfNVpEdja5ia762j/UEJe2Z1jAmEqZAK42tVW3g==} 482 + cpu: [x64] 483 + os: [darwin] 484 + 485 + '@rollup/rollup-freebsd-arm64@4.56.0': 486 + resolution: {integrity: sha512-bof7fbIlvqsyv/DtaXSck4VYQ9lPtoWNFCB/JY4snlFuJREXfZnm+Ej6yaCHfQvofJDXLDMTVxWscVSuQvVWUQ==} 487 + cpu: [arm64] 488 + os: [freebsd] 489 + 490 + '@rollup/rollup-freebsd-x64@4.56.0': 491 + resolution: {integrity: sha512-KNa6lYHloW+7lTEkYGa37fpvPq+NKG/EHKM8+G/g9WDU7ls4sMqbVRV78J6LdNuVaeeK5WB9/9VAFbKxcbXKYg==} 492 + cpu: [x64] 493 + os: [freebsd] 494 + 495 + '@rollup/rollup-linux-arm-gnueabihf@4.56.0': 496 + resolution: {integrity: sha512-E8jKK87uOvLrrLN28jnAAAChNq5LeCd2mGgZF+fGF5D507WlG/Noct3lP/QzQ6MrqJ5BCKNwI9ipADB6jyiq2A==} 497 + cpu: [arm] 498 + os: [linux] 339 499 340 - '@prisma/debug@6.19.1': 341 - resolution: {integrity: sha512-h1JImhlAd/s5nhY/e9qkAzausWldbeT+e4nZF7A4zjDYBF4BZmKDt4y0jK7EZapqOm1kW7V0e9agV/iFDy3fWw==} 500 + '@rollup/rollup-linux-arm-musleabihf@4.56.0': 501 + resolution: {integrity: sha512-jQosa5FMYF5Z6prEpTCCmzCXz6eKr/tCBssSmQGEeozA9tkRUty/5Vx06ibaOP9RCrW1Pvb8yp3gvZhHwTDsJw==} 502 + cpu: [arm] 503 + os: [linux] 342 504 343 - '@prisma/engines-version@7.1.1-3.c2990dca591cba766e3b7ef5d9e8a84796e47ab7': 344 - resolution: {integrity: sha512-03bgb1VD5gvuumNf+7fVGBzfpJPjmqV423l/WxsWk2cNQ42JD0/SsFBPhN6z8iAvdHs07/7ei77SKu7aZfq8bA==} 505 + '@rollup/rollup-linux-arm64-gnu@4.56.0': 506 + resolution: {integrity: sha512-uQVoKkrC1KGEV6udrdVahASIsaF8h7iLG0U0W+Xn14ucFwi6uS539PsAr24IEF9/FoDtzMeeJXJIBo5RkbNWvQ==} 507 + cpu: [arm64] 508 + os: [linux] 345 509 346 - '@prisma/engines@6.19.1': 347 - resolution: {integrity: sha512-xy95dNJ7DiPf9IJ3oaVfX785nbFl7oNDzclUF+DIiJw6WdWCvPl0LPU0YqQLsrwv8N64uOQkH391ujo3wSo+Nw==} 510 + '@rollup/rollup-linux-arm64-musl@4.56.0': 511 + resolution: {integrity: sha512-vLZ1yJKLxhQLFKTs42RwTwa6zkGln+bnXc8ueFGMYmBTLfNu58sl5/eXyxRa2RarTkJbXl8TKPgfS6V5ijNqEA==} 512 + cpu: [arm64] 513 + os: [linux] 348 514 349 - '@prisma/fetch-engine@6.19.1': 350 - resolution: {integrity: sha512-mmgcotdaq4VtAHO6keov3db+hqlBzQS6X7tR7dFCbvXjLVTxBYdSJFRWz+dq7F9p6dvWyy1X0v8BlfRixyQK6g==} 515 + '@rollup/rollup-linux-loong64-gnu@4.56.0': 516 + resolution: {integrity: sha512-FWfHOCub564kSE3xJQLLIC/hbKqHSVxy8vY75/YHHzWvbJL7aYJkdgwD/xGfUlL5UV2SB7otapLrcCj2xnF1dg==} 517 + cpu: [loong64] 518 + os: [linux] 519 + 520 + '@rollup/rollup-linux-loong64-musl@4.56.0': 521 + resolution: {integrity: sha512-z1EkujxIh7nbrKL1lmIpqFTc/sr0u8Uk0zK/qIEFldbt6EDKWFk/pxFq3gYj4Bjn3aa9eEhYRlL3H8ZbPT1xvA==} 522 + cpu: [loong64] 523 + os: [linux] 524 + 525 + '@rollup/rollup-linux-ppc64-gnu@4.56.0': 526 + resolution: {integrity: sha512-iNFTluqgdoQC7AIE8Q34R3AuPrJGJirj5wMUErxj22deOcY7XwZRaqYmB6ZKFHoVGqRcRd0mqO+845jAibKCkw==} 527 + cpu: [ppc64] 528 + os: [linux] 529 + 530 + '@rollup/rollup-linux-ppc64-musl@4.56.0': 531 + resolution: {integrity: sha512-MtMeFVlD2LIKjp2sE2xM2slq3Zxf9zwVuw0jemsxvh1QOpHSsSzfNOTH9uYW9i1MXFxUSMmLpeVeUzoNOKBaWg==} 532 + cpu: [ppc64] 533 + os: [linux] 534 + 535 + '@rollup/rollup-linux-riscv64-gnu@4.56.0': 536 + resolution: {integrity: sha512-in+v6wiHdzzVhYKXIk5U74dEZHdKN9KH0Q4ANHOTvyXPG41bajYRsy7a8TPKbYPl34hU7PP7hMVHRvv/5aCSew==} 537 + cpu: [riscv64] 538 + os: [linux] 539 + 540 + '@rollup/rollup-linux-riscv64-musl@4.56.0': 541 + resolution: {integrity: sha512-yni2raKHB8m9NQpI9fPVwN754mn6dHQSbDTwxdr9SE0ks38DTjLMMBjrwvB5+mXrX+C0npX0CVeCUcvvvD8CNQ==} 542 + cpu: [riscv64] 543 + os: [linux] 544 + 545 + '@rollup/rollup-linux-s390x-gnu@4.56.0': 546 + resolution: {integrity: sha512-zhLLJx9nQPu7wezbxt2ut+CI4YlXi68ndEve16tPc/iwoylWS9B3FxpLS2PkmfYgDQtosah07Mj9E0khc3Y+vQ==} 547 + cpu: [s390x] 548 + os: [linux] 549 + 550 + '@rollup/rollup-linux-x64-gnu@4.56.0': 551 + resolution: {integrity: sha512-MVC6UDp16ZSH7x4rtuJPAEoE1RwS8N4oK9DLHy3FTEdFoUTCFVzMfJl/BVJ330C+hx8FfprA5Wqx4FhZXkj2Kw==} 552 + cpu: [x64] 553 + os: [linux] 554 + 555 + '@rollup/rollup-linux-x64-musl@4.56.0': 556 + resolution: {integrity: sha512-ZhGH1eA4Qv0lxaV00azCIS1ChedK0V32952Md3FtnxSqZTBTd6tgil4nZT5cU8B+SIw3PFYkvyR4FKo2oyZIHA==} 557 + cpu: [x64] 558 + os: [linux] 559 + 560 + '@rollup/rollup-openbsd-x64@4.56.0': 561 + resolution: {integrity: sha512-O16XcmyDeFI9879pEcmtWvD/2nyxR9mF7Gs44lf1vGGx8Vg2DRNx11aVXBEqOQhWb92WN4z7fW/q4+2NYzCbBA==} 562 + cpu: [x64] 563 + os: [openbsd] 564 + 565 + '@rollup/rollup-openharmony-arm64@4.56.0': 566 + resolution: {integrity: sha512-LhN/Reh+7F3RCgQIRbgw8ZMwUwyqJM+8pXNT6IIJAqm2IdKkzpCh/V9EdgOMBKuebIrzswqy4ATlrDgiOwbRcQ==} 567 + cpu: [arm64] 568 + os: [openharmony] 569 + 570 + '@rollup/rollup-win32-arm64-msvc@4.56.0': 571 + resolution: {integrity: sha512-kbFsOObXp3LBULg1d3JIUQMa9Kv4UitDmpS+k0tinPBz3watcUiV2/LUDMMucA6pZO3WGE27P7DsfaN54l9ing==} 572 + cpu: [arm64] 573 + os: [win32] 574 + 575 + '@rollup/rollup-win32-ia32-msvc@4.56.0': 576 + resolution: {integrity: sha512-vSSgny54D6P4vf2izbtFm/TcWYedw7f8eBrOiGGecyHyQB9q4Kqentjaj8hToe+995nob/Wv48pDqL5a62EWtg==} 577 + cpu: [ia32] 578 + os: [win32] 579 + 580 + '@rollup/rollup-win32-x64-gnu@4.56.0': 581 + resolution: {integrity: sha512-FeCnkPCTHQJFbiGG49KjV5YGW/8b9rrXAM2Mz2kiIoktq2qsJxRD5giEMEOD2lPdgs72upzefaUvS+nc8E3UzQ==} 582 + cpu: [x64] 583 + os: [win32] 351 584 352 - '@prisma/get-platform@6.19.1': 353 - resolution: {integrity: sha512-zsg44QUiQAnFUyh6Fbt7c9HjMXHwFTqtrgcX7DAZmRgnkPyYT7Sh8Mn8D5PuuDYNtMOYcpLGg576MLfIORsBYw==} 585 + '@rollup/rollup-win32-x64-msvc@4.56.0': 586 + resolution: {integrity: sha512-H8AE9Ur/t0+1VXujj90w0HrSOuv0Nq9r1vSZF2t5km20NTfosQsGGUXDaKdQZzwuLts7IyL1fYT4hM95TI9c4g==} 587 + cpu: [x64] 588 + os: [win32] 354 589 355 590 '@skyware/jetstream@0.2.5': 356 591 resolution: {integrity: sha512-fM/zs03DLwqRyzZZJFWN20e76KrdqIp97Tlm8Cek+vxn96+tu5d/fx79V6H85L0QN6HvGiX2l9A8hWFqHvYlOA==} ··· 358 593 '@standard-schema/spec@1.1.0': 359 594 resolution: {integrity: sha512-l2aFy5jALhniG5HgqrD6jXLi/rUWrKvqN/qJx6yoJsgKhblVd+iqqU4RCXavm/jPityDo5TCvKMnpjKnOriy0w==} 360 595 596 + '@types/chai@5.2.3': 597 + resolution: {integrity: sha512-Mw558oeA9fFbv65/y4mHtXDs9bPnFMZAL/jxdPFUpOHHIXX91mcgEHbS5Lahr+pwZFR8A7GQleRWeI6cGFC2UA==} 598 + 599 + '@types/deep-eql@4.0.2': 600 + resolution: {integrity: sha512-c9h9dVVMigMPc4bwTvC5dxqtqJZwQPePsWjPlpSOnojbor6pGqdk541lfA7AqFQr5pB1BRdq0juY9db81BwyFw==} 601 + 602 + '@types/estree@1.0.8': 603 + resolution: {integrity: sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==} 604 + 361 605 '@types/node@24.10.4': 362 606 resolution: {integrity: sha512-vnDVpYPMzs4wunl27jHrfmwojOGKya0xyM3sH+UE5iv5uPS6vX7UIoh6m+vQc5LGBq52HBKPIn/zcSZVzeDEZg==} 363 607 608 + '@types/pg@8.16.0': 609 + resolution: {integrity: sha512-RmhMd/wD+CF8Dfo+cVIy3RR5cl8CyfXQ0tGgW6XBL8L4LM/UTEbNXYRbLwU6w+CgrKBNbrQWt4FUtTfaU5jSYQ==} 610 + 611 + '@types/react@19.2.9': 612 + resolution: {integrity: sha512-Lpo8kgb/igvMIPeNV2rsYKTgaORYdO1XGVZ4Qz3akwOj0ySGYMPlQWa8BaLn0G63D1aSaAQ5ldR06wCpChQCjA==} 613 + 364 614 '@types/ws@8.18.1': 365 615 resolution: {integrity: sha512-ThVF6DCVhA8kUGy+aazFQ4kXQ7E1Ty7A3ypFOe0IcJV8O/M511G99AW24irKrW56Wt44yG9+ij8FaqoBGkuBXg==} 366 616 617 + '@vitest/coverage-v8@4.0.18': 618 + resolution: {integrity: sha512-7i+N2i0+ME+2JFZhfuz7Tg/FqKtilHjGyGvoHYQ6iLV0zahbsJ9sljC9OcFcPDbhYKCet+sG8SsVqlyGvPflZg==} 619 + peerDependencies: 620 + '@vitest/browser': 4.0.18 621 + vitest: 4.0.18 622 + peerDependenciesMeta: 623 + '@vitest/browser': 624 + optional: true 625 + 626 + '@vitest/expect@4.0.18': 627 + resolution: {integrity: sha512-8sCWUyckXXYvx4opfzVY03EOiYVxyNrHS5QxX3DAIi5dpJAAkyJezHCP77VMX4HKA2LDT/Jpfo8i2r5BE3GnQQ==} 628 + 629 + '@vitest/mocker@4.0.18': 630 + resolution: {integrity: sha512-HhVd0MDnzzsgevnOWCBj5Otnzobjy5wLBe4EdeeFGv8luMsGcYqDuFRMcttKWZA5vVO8RFjexVovXvAM4JoJDQ==} 631 + peerDependencies: 632 + msw: ^2.4.9 633 + vite: ^6.0.0 || ^7.0.0-0 634 + peerDependenciesMeta: 635 + msw: 636 + optional: true 637 + vite: 638 + optional: true 639 + 640 + '@vitest/pretty-format@4.0.18': 641 + resolution: {integrity: sha512-P24GK3GulZWC5tz87ux0m8OADrQIUVDPIjjj65vBXYG17ZeU3qD7r+MNZ1RNv4l8CGU2vtTRqixrOi9fYk/yKw==} 642 + 643 + '@vitest/runner@4.0.18': 644 + resolution: {integrity: sha512-rpk9y12PGa22Jg6g5M3UVVnTS7+zycIGk9ZNGN+m6tZHKQb7jrP7/77WfZy13Y/EUDd52NDsLRQhYKtv7XfPQw==} 645 + 646 + '@vitest/snapshot@4.0.18': 647 + resolution: {integrity: sha512-PCiV0rcl7jKQjbgYqjtakly6T1uwv/5BQ9SwBLekVg/EaYeQFPiXcgrC2Y7vDMA8dM1SUEAEV82kgSQIlXNMvA==} 648 + 649 + '@vitest/spy@4.0.18': 650 + resolution: {integrity: sha512-cbQt3PTSD7P2OARdVW3qWER5EGq7PHlvE+QfzSC0lbwO+xnt7+XH06ZzFjFRgzUX//JmpxrCu92VdwvEPlWSNw==} 651 + 652 + '@vitest/utils@4.0.18': 653 + resolution: {integrity: sha512-msMRKLMVLWygpK3u2Hybgi4MNjcYJvwTb0Ru09+fOyCXIgT5raYP041DRRdiJiI3k/2U6SEbAETB3YtBrUkCFA==} 654 + 655 + assertion-error@2.0.1: 656 + resolution: {integrity: sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA==} 657 + engines: {node: '>=12'} 658 + 659 + ast-v8-to-istanbul@0.3.10: 660 + resolution: {integrity: sha512-p4K7vMz2ZSk3wN8l5o3y2bJAoZXT3VuJI5OLTATY/01CYWumWvwkUw0SqDBnNq6IiTO3qDa1eSQDibAV8g7XOQ==} 661 + 367 662 atomic-sleep@1.0.0: 368 663 resolution: {integrity: sha512-kNOjDqAh7px0XWNI+4QbzoiR/nTkHAWNud2uvnJquD1/x5a7EQZMJT0AczqK0Qn67oY/TTQ1LbUKajZpp3I9tQ==} 369 664 engines: {node: '>=8.0.0'} ··· 371 666 await-lock@2.2.2: 372 667 resolution: {integrity: sha512-aDczADvlvTGajTDjcjpJMqRkOF6Qdz3YbPZm/PyW6tKPkx2hlYBzxMhEywM/tU72HrVZjgl5VCdRuMlA7pZ8Gw==} 373 668 669 + aws-ssl-profiles@1.1.2: 670 + resolution: {integrity: sha512-NZKeq9AfyQvEeNlN0zSYAaWrmBffJh3IELMZfRpJVWgrpEbtEpnjvzqBPf+mxoI287JohRDoa+/nsfqqiZmF6g==} 671 + engines: {node: '>= 6.0.0'} 672 + 374 673 c12@3.1.0: 375 674 resolution: {integrity: sha512-uWoS8OU1MEIsOv8p/5a82c3H31LsWVR5qiyXVfBNOzfffjUWtPnhAb4BYI2uG2HfGmZmFjCtui5XNWaps+iFuw==} 376 675 peerDependencies: ··· 379 678 magicast: 380 679 optional: true 381 680 681 + chai@6.2.2: 682 + resolution: {integrity: sha512-NUPRluOfOiTKBKvWPtSD4PhFvWCqOi0BGStNWs57X9js7XGTprSmFoz5F0tWhR4WPjNeR9jXqdC7/UpSJTnlRg==} 683 + engines: {node: '>=18'} 684 + 685 + chevrotain@10.5.0: 686 + resolution: {integrity: sha512-Pkv5rBY3+CsHOYfV5g/Vs5JY9WTHHDEKOlohI2XeygaZhUeqhAlldZ8Hz9cRmxu709bvS08YzxHdTPHhffc13A==} 687 + 382 688 chokidar@4.0.3: 383 689 resolution: {integrity: sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==} 384 690 engines: {node: '>= 14.16.0'} ··· 399 705 core-js@3.47.0: 400 706 resolution: {integrity: sha512-c3Q2VVkGAUyupsjRnaNX6u8Dq2vAdzm9iuPj5FW0fRxzlxgq9Q39MDq10IvmQSpLgHQNyQzQmOo6bgGHmH3NNg==} 401 707 708 + cross-spawn@7.0.6: 709 + resolution: {integrity: sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==} 710 + engines: {node: '>= 8'} 711 + 712 + csstype@3.2.3: 713 + resolution: {integrity: sha512-z1HGKcYy2xA8AGQfwrn0PAy+PB7X/GSj3UVJW9qKyn43xWa+gl5nXmU4qqLMRzWVLFC8KusUX8T/0kCiOYpAIQ==} 714 + 402 715 dateformat@4.6.3: 403 716 resolution: {integrity: sha512-2P0p0pFGzHS5EMnhdxQi7aJN+iMheud0UhG4dlE1DLAlvL8JHjJJTX/CSm4JXwV0Ka5nGk3zC5mcb5bUQUxxMA==} 404 717 ··· 408 721 409 722 defu@6.1.4: 410 723 resolution: {integrity: sha512-mEQCMmwJu317oSz8CwdIOdwf3xMif1ttiM8LTufzc3g6kR+9Pe236twL8j3IYT1F7GfRgGcW6MWxzZjLIkuHIg==} 724 + 725 + denque@2.1.0: 726 + resolution: {integrity: sha512-HVQE3AAb/pxF8fQAoiqpvg9i3evqug3hoiwakOyZAwJm+6vZehbkYXZ0l4JxS+I3QxM97v5aaRNhj8v5oBhekw==} 727 + engines: {node: '>=0.10'} 411 728 412 729 destr@2.0.5: 413 730 resolution: {integrity: sha512-ugFTXCtDZunbzasqBxrK93Ik/DRYsO6S/fedkWEMKqt04xZ4csmnmwGDBAb07QWNaGMAmnTIemsYZCksjATwsA==} ··· 430 747 end-of-stream@1.4.5: 431 748 resolution: {integrity: sha512-ooEGc6HP26xXq/N+GCGOT0JKCLDGrq2bQUZrQ7gyrJiZANJ/8YDTxTpQBXGMn+WbIQXNVpyWymm7KYVICQnyOg==} 432 749 750 + es-module-lexer@1.7.0: 751 + resolution: {integrity: sha512-jEQoCwk8hyb2AZziIOLhDqpm5+2ww5uIE6lkO/6jcOCusfk6LhMHpXXfBLXTZ7Ydyt0j4VoUQv6uGNYbdW+kBA==} 752 + 433 753 esbuild@0.27.2: 434 754 resolution: {integrity: sha512-HyNQImnsOC7X9PMNaCIeAm4ISCQXs5a5YasTXVliKv4uuBo1dKrG0A+uQS8M5eXjVMnLg3WgXaKvprHlFJQffw==} 435 755 engines: {node: '>=18'} ··· 438 758 esm-env@1.2.2: 439 759 resolution: {integrity: sha512-Epxrv+Nr/CaL4ZcFGPJIYLWFom+YeV1DqMLHJoEd9SYRxNbaFruBwfEX/kkHUJf55j2+TUbmDcmuilbP1TmXHA==} 440 760 761 + estree-walker@3.0.3: 762 + resolution: {integrity: sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==} 763 + 441 764 event-target-polyfill@0.0.4: 442 765 resolution: {integrity: sha512-Gs6RLjzlLRdT8X9ZipJdIZI/Y6/HhRLyq9RdDlCsnpxr/+Nn6bU2EFGuC94GjxqhM+Nmij2Vcq98yoHrU8uNFQ==} 443 766 444 767 eventemitter3@5.0.1: 445 768 resolution: {integrity: sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==} 769 + 770 + expect-type@1.3.0: 771 + resolution: {integrity: sha512-knvyeauYhqjOYvQ66MznSMs83wmHrCycNEN6Ao+2AeYEfxUIkuiVxdEa1qlGEPK+We3n0THiDciYSsCcgW/DoA==} 772 + engines: {node: '>=12.0.0'} 446 773 447 774 exsolve@1.0.8: 448 775 resolution: {integrity: sha512-LmDxfWXwcTArk8fUEnOfSZpHOJ6zOMUJKOtFLFqJLoKJetuQG874Uc7/Kki7zFLzYybmZhp1M7+98pfMqeX8yA==} ··· 457 784 fast-safe-stringify@2.1.1: 458 785 resolution: {integrity: sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA==} 459 786 787 + fdir@6.5.0: 788 + resolution: {integrity: sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==} 789 + engines: {node: '>=12.0.0'} 790 + peerDependencies: 791 + picomatch: ^3 || ^4 792 + peerDependenciesMeta: 793 + picomatch: 794 + optional: true 795 + 796 + foreground-child@3.3.1: 797 + resolution: {integrity: sha512-gIXjKqtFuWEgzFRJA9WCQeSJLZDjgJUOMCMzxtvFq/37KojM1BFGufqsCy0r4qSQmYLsZYMeyRqzIWOMup03sw==} 798 + engines: {node: '>=14'} 799 + 460 800 fsevents@2.3.3: 461 801 resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} 462 802 engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} 463 803 os: [darwin] 464 804 805 + generate-function@2.3.1: 806 + resolution: {integrity: sha512-eeB5GfMNeevm/GRYq20ShmsaGcmI81kIX2K9XQx5miC8KdHaC6Jm0qQ8ZNeGOi7wYB8OsdxKs+Y2oVuTFuVwKQ==} 807 + 808 + get-port-please@3.2.0: 809 + resolution: {integrity: sha512-I9QVvBw5U/hw3RmWpYKRumUeaDgxTPd401x364rLmWBJcOQ753eov1eTgzDqRG9bqFIfDc7gfzcQEWrUri3o1A==} 810 + 465 811 get-tsconfig@4.13.0: 466 812 resolution: {integrity: sha512-1VKTZJCwBrvbd+Wn3AOgQP/2Av+TfTCOlE4AcRJE72W1ksZXbAx8PPBR9RzgTeSPzlPMHrbANMH3LbltH73wxQ==} 467 813 ··· 469 815 resolution: {integrity: sha512-L5bGsVkxJbJgdnwyuheIunkGatUF/zssUoxxjACCseZYAVbaqdh9Tsmmlkl8vYan09H7sbvKt4pS8GqKLBrEzA==} 470 816 hasBin: true 471 817 818 + graceful-fs@4.2.11: 819 + resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} 820 + 821 + grammex@3.1.12: 822 + resolution: {integrity: sha512-6ufJOsSA7LcQehIJNCO7HIBykfM7DXQual0Ny780/DEcJIpBlHRvcqEBWGPYd7hrXL2GJ3oJI1MIhaXjWmLQOQ==} 823 + 824 + graphmatch@1.1.0: 825 + resolution: {integrity: sha512-0E62MaTW5rPZVRLyIJZG/YejmdA/Xr1QydHEw3Vt+qOKkMIOE8WDLc9ZX2bmAjtJFZcId4lEdrdmASsEy7D1QA==} 826 + 827 + has-flag@4.0.0: 828 + resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} 829 + engines: {node: '>=8'} 830 + 472 831 help-me@5.0.0: 473 832 resolution: {integrity: sha512-7xgomUX6ADmcYzFik0HzAxh/73YlKR9bmFzf51CZwR+b6YtzU2m0u49hQCqV6SvlqIqsaxovfwdvbnsw3b/zpg==} 474 833 834 + hono@4.11.4: 835 + resolution: {integrity: sha512-U7tt8JsyrxSRKspfhtLET79pU8K+tInj5QZXs1jSugO1Vq5dFj3kmZsRldo29mTBfcjDRVRXrEZ6LS63Cog9ZA==} 836 + engines: {node: '>=16.9.0'} 837 + 838 + html-escaper@2.0.2: 839 + resolution: {integrity: sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==} 840 + 841 + http-status-codes@2.3.0: 842 + resolution: {integrity: sha512-RJ8XvFvpPM/Dmc5SV+dC4y5PCeOhT3x1Hq0NU3rjGeg5a/CqlhZ7uudknPwZFz4aeAXDcbAyaeP7GAo9lvngtA==} 843 + 844 + iconv-lite@0.7.2: 845 + resolution: {integrity: sha512-im9DjEDQ55s9fL4EYzOAv0yMqmMBSZp6G0VvFyTMPKWxiSBHUj9NW/qqLmXUwXrrM7AvqSlTCfvqRb0cM8yYqw==} 846 + engines: {node: '>=0.10.0'} 847 + 475 848 ipaddr.js@2.3.0: 476 849 resolution: {integrity: sha512-Zv/pA+ciVFbCSBBjGfaKUya/CcGmUHzTydLMaTwrUUEM2DIEO3iZvueGxmacvmN50fGpGVKeTXpb2LcYQxeVdg==} 477 850 engines: {node: '>= 10'} 478 851 852 + is-property@1.0.2: 853 + resolution: {integrity: sha512-Ks/IoX00TtClbGQr4TWXemAnktAQvYB7HzcCxDGqEZU6oCmb2INHuOoKxbtR+HFkmYWBKv/dOZtGRiAjDhj92g==} 854 + 855 + isexe@2.0.0: 856 + resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} 857 + 479 858 iso-datestring-validator@2.2.2: 480 859 resolution: {integrity: sha512-yLEMkBbLZTlVQqOnQ4FiMujR6T4DEcCb1xizmvXS+OxuhwcbtynoosRzdMA69zZCShCNAbi+gJ71FxZBBXx1SA==} 481 860 861 + istanbul-lib-coverage@3.2.2: 862 + resolution: {integrity: sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==} 863 + engines: {node: '>=8'} 864 + 865 + istanbul-lib-report@3.0.1: 866 + resolution: {integrity: sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==} 867 + engines: {node: '>=10'} 868 + 869 + istanbul-reports@3.2.0: 870 + resolution: {integrity: sha512-HGYWWS/ehqTV3xN10i23tkPkpH46MLCIMFNCaaKNavAXTF1RkqxawEPtnjnGZ6XKSInBKkiOA5BKS+aZiY3AvA==} 871 + engines: {node: '>=8'} 872 + 482 873 jiti@2.6.1: 483 874 resolution: {integrity: sha512-ekilCSN1jwRvIbgeg/57YFh8qQDNbwDb9xT/qu2DAHbFFZUicIl4ygVaAvzveMhMVr3LnpSKTNnwt8PoOfmKhQ==} 484 875 hasBin: true ··· 490 881 resolution: {integrity: sha512-34wB/Y7MW7bzjKRjUKTa46I2Z7eV62Rkhva+KkopW7Qvv/OSWBqvkSY7vusOPrNuZcUG3tApvdVgNB8POj3SPw==} 491 882 engines: {node: '>=10'} 492 883 884 + js-tokens@9.0.1: 885 + resolution: {integrity: sha512-mxa9E9ITFOt0ban3j6L5MpjwegGz6lBQmM1IJkWeBZGcMxto50+eWdjC/52xDbS2vy0k7vIMK0Fe2wfL9OQSpQ==} 886 + 887 + lilconfig@2.1.0: 888 + resolution: {integrity: sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==} 889 + engines: {node: '>=10'} 890 + 891 + lodash@4.17.21: 892 + resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==} 893 + 894 + long@5.3.2: 895 + resolution: {integrity: sha512-mNAgZ1GmyNhD7AuqnTG3/VQ26o760+ZYBPKjPvugO8+nLbYfX6TVpJPseBvopbdY+qpZ/lKUnmEc1LeZYS3QAA==} 896 + 493 897 lru-cache@10.4.3: 494 898 resolution: {integrity: sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==} 495 899 900 + lru.min@1.1.3: 901 + resolution: {integrity: sha512-Lkk/vx6ak3rYkRR0Nhu4lFUT2VDnQSxBe8Hbl7f36358p6ow8Bnvr8lrLt98H8J1aGxfhbX4Fs5tYg2+FTwr5Q==} 902 + engines: {bun: '>=1.0.0', deno: '>=1.30.0', node: '>=8.0.0'} 903 + 904 + magic-string@0.30.21: 905 + resolution: {integrity: sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ==} 906 + 907 + magicast@0.5.1: 908 + resolution: {integrity: sha512-xrHS24IxaLrvuo613F719wvOIv9xPHFWQHuvGUBmPnCA/3MQxKI3b+r7n1jAoDHmsbC5bRhTZYR77invLAxVnw==} 909 + 910 + make-dir@4.0.0: 911 + resolution: {integrity: sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==} 912 + engines: {node: '>=10'} 913 + 496 914 minimist@1.2.8: 497 915 resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} 498 916 499 917 multiformats@9.9.0: 500 918 resolution: {integrity: sha512-HoMUjhH9T8DDBNT+6xzkrd9ga/XiBI4xLr58LJACwK6G3HTOPeMz4nB4KJs33L2BelrIJa7P0VuNaVF3hMYfjg==} 501 919 920 + mysql2@3.15.3: 921 + resolution: {integrity: sha512-FBrGau0IXmuqg4haEZRBfHNWB5mUARw6hNwPDXXGg0XzVJ50mr/9hb267lvpVMnhZ1FON3qNd4Xfcez1rbFwSg==} 922 + engines: {node: '>= 8.0'} 923 + 924 + named-placeholders@1.1.6: 925 + resolution: {integrity: sha512-Tz09sEL2EEuv5fFowm419c1+a/jSMiBjI9gHxVLrVdbUkkNUUfjsVYs9pVZu5oCon/kmRh9TfLEObFtkVxmY0w==} 926 + engines: {node: '>=8.0.0'} 927 + 928 + nanoid@3.3.11: 929 + resolution: {integrity: sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==} 930 + engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} 931 + hasBin: true 932 + 502 933 node-fetch-native@1.6.7: 503 934 resolution: {integrity: sha512-g9yhqoedzIUm0nTnTqAQvueMPVOuIY16bqgAJJC8XOOubYFNwz6IER9qs0Gq2Xd0+CecCKFjtdDTMA4u4xG06Q==} 504 935 ··· 506 937 resolution: {integrity: sha512-7eM+hpOtrKrBDCh7Ypu2lJ9Z7PNZBdi/8AT3AX8xoCj43BBVHD0hPSTEvMtkMpfs8FCqBGhxB+uToIQimA111g==} 507 938 engines: {node: ^14.16.0 || >=16.10.0} 508 939 hasBin: true 940 + 941 + obug@2.1.1: 942 + resolution: {integrity: sha512-uTqF9MuPraAQ+IsnPf366RG4cP9RtUi7MLO1N3KEc+wb0a6yKpeL0lmk2IB1jY5KHPAlTc6T/JRdC/YqxHNwkQ==} 509 943 510 944 ohash@2.0.11: 511 945 resolution: {integrity: sha512-RdR9FQrFwNBNXAr4GixM8YaRZRJ5PUWbKYbE5eOsrwAjJW0q2REGcf79oYPsLyskQCZG1PLN+S/K1V00joZAoQ==} ··· 544 978 partysocket@1.1.9: 545 979 resolution: {integrity: sha512-iUDQN00KDqJHM91ki6qw/KfPdKGjI8HTc+k2j/KoemTC4LmaGlD6D6bxY55PFWc+Lx08OPLhReXyifp6ee8MeQ==} 546 980 981 + path-key@3.1.1: 982 + resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} 983 + engines: {node: '>=8'} 984 + 547 985 pathe@2.0.3: 548 986 resolution: {integrity: sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==} 549 987 550 988 perfect-debounce@1.0.0: 551 989 resolution: {integrity: sha512-xCy9V055GLEqoFaHoC1SoLIaLmWctgCUaBaWxDZ7/Zx4CTyX7cJQLJOok/orfjZAh9kEYpjJa4d0KcJmCbctZA==} 552 990 991 + pg-cloudflare@1.3.0: 992 + resolution: {integrity: sha512-6lswVVSztmHiRtD6I8hw4qP/nDm1EJbKMRhf3HCYaqud7frGysPv7FYJ5noZQdhQtN2xJnimfMtvQq21pdbzyQ==} 993 + 994 + pg-connection-string@2.10.1: 995 + resolution: {integrity: sha512-iNzslsoeSH2/gmDDKiyMqF64DATUCWj3YJ0wP14kqcsf2TUklwimd+66yYojKwZCA7h2yRNLGug71hCBA2a4sw==} 996 + 997 + pg-int8@1.0.1: 998 + resolution: {integrity: sha512-WCtabS6t3c8SkpDBUlb1kjOs7l66xsGdKpIPZsg4wR+B3+u9UAum2odSsF9tnvxg80h4ZxLWMy4pRjOsFIqQpw==} 999 + engines: {node: '>=4.0.0'} 1000 + 1001 + pg-pool@3.11.0: 1002 + resolution: {integrity: sha512-MJYfvHwtGp870aeusDh+hg9apvOe2zmpZJpyt+BMtzUWlVqbhFmMK6bOBXLBUPd7iRtIF9fZplDc7KrPN3PN7w==} 1003 + peerDependencies: 1004 + pg: '>=8.0' 1005 + 1006 + pg-protocol@1.11.0: 1007 + resolution: {integrity: sha512-pfsxk2M9M3BuGgDOfuy37VNRRX3jmKgMjcvAcWqNDpZSf4cUmv8HSOl5ViRQFsfARFn0KuUQTgLxVMbNq5NW3g==} 1008 + 1009 + pg-types@2.2.0: 1010 + resolution: {integrity: sha512-qTAAlrEsl8s4OiEQY69wDvcMIdQN6wdz5ojQiOy6YRMuynxenON0O5oCpJI6lshc6scgAY8qvJ2On/p+CXY0GA==} 1011 + engines: {node: '>=4'} 1012 + 1013 + pg@8.17.2: 1014 + resolution: {integrity: sha512-vjbKdiBJRqzcYw1fNU5KuHyYvdJ1qpcQg1CeBrHFqV1pWgHeVR6j/+kX0E1AAXfyuLUGY1ICrN2ELKA/z2HWzw==} 1015 + engines: {node: '>= 16.0.0'} 1016 + peerDependencies: 1017 + pg-native: '>=3.0.1' 1018 + peerDependenciesMeta: 1019 + pg-native: 1020 + optional: true 1021 + 1022 + pgpass@1.0.5: 1023 + resolution: {integrity: sha512-FdW9r/jQZhSeohs1Z3sI1yxFQNFvMcnmfuj4WBMUTxOrAyLMaTcE1aAMBiTlbMNaXvBCQuVi0R7hd8udDSP7ug==} 1024 + 1025 + picocolors@1.1.1: 1026 + resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==} 1027 + 1028 + picomatch@4.0.3: 1029 + resolution: {integrity: sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==} 1030 + engines: {node: '>=12'} 1031 + 553 1032 pino-abstract-transport@2.0.0: 554 1033 resolution: {integrity: sha512-F63x5tizV6WCh4R6RHyi2Ml+M70DNRXt/+HANowMflpgGFMAym/VKm6G7ZOQRjqN7XbGxK1Lg9t6ZrtzOaivMw==} 555 1034 ··· 570 1049 pkg-types@2.3.0: 571 1050 resolution: {integrity: sha512-SIqCzDRg0s9npO5XQ3tNZioRY1uK06lA41ynBC1YmFTmnY6FjUjVt6s4LoADmwoig1qqD0oK8h1p/8mlMx8Oig==} 572 1051 573 - prisma@6.19.1: 574 - resolution: {integrity: sha512-XRfmGzh6gtkc/Vq3LqZJcS2884dQQW3UhPo6jNRoiTW95FFQkXFg8vkYEy6og+Pyv0aY7zRQ7Wn1Cvr56XjhQQ==} 575 - engines: {node: '>=18.18'} 1052 + postcss@8.5.6: 1053 + resolution: {integrity: sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==} 1054 + engines: {node: ^10 || ^12 || >=14} 1055 + 1056 + postgres-array@2.0.0: 1057 + resolution: {integrity: sha512-VpZrUqU5A69eQyW2c5CA1jtLecCsN2U/bD6VilrFDWq5+5UIEVO7nazS3TEcHf1zuPYO/sqGvUvW62g86RXZuA==} 1058 + engines: {node: '>=4'} 1059 + 1060 + postgres-array@3.0.4: 1061 + resolution: {integrity: sha512-nAUSGfSDGOaOAEGwqsRY27GPOea7CNipJPOA7lPbdEpx5Kg3qzdP0AaWC5MlhTWV9s4hFX39nomVZ+C4tnGOJQ==} 1062 + engines: {node: '>=12'} 1063 + 1064 + postgres-bytea@1.0.1: 1065 + resolution: {integrity: sha512-5+5HqXnsZPE65IJZSMkZtURARZelel2oXUEO8rH83VS/hxH5vv1uHquPg5wZs8yMAfdv971IU+kcPUczi7NVBQ==} 1066 + engines: {node: '>=0.10.0'} 1067 + 1068 + postgres-date@1.0.7: 1069 + resolution: {integrity: sha512-suDmjLVQg78nMK2UZ454hAG+OAW+HQPZ6n++TNDUX+L0+uUlLywnoxJKDou51Zm+zTCjrCl0Nq6J9C5hP9vK/Q==} 1070 + engines: {node: '>=0.10.0'} 1071 + 1072 + postgres-interval@1.2.0: 1073 + resolution: {integrity: sha512-9ZhXKM/rw350N1ovuWHbGxnGh/SNJ4cnxHiM0rxE4VN41wsg8P8zWn9hv/buK00RP4WvlOyr/RBDiptyxVbkZQ==} 1074 + engines: {node: '>=0.10.0'} 1075 + 1076 + postgres@3.4.7: 1077 + resolution: {integrity: sha512-Jtc2612XINuBjIl/QTWsV5UvE8UHuNblcO3vVADSrKsrc6RqGX6lOW1cEo3CM2v0XG4Nat8nI+YM7/f26VxXLw==} 1078 + engines: {node: '>=12'} 1079 + 1080 + prisma@7.3.0: 1081 + resolution: {integrity: sha512-ApYSOLHfMN8WftJA+vL6XwAPOh/aZ0BgUyyKPwUFgjARmG6EBI9LzDPf6SWULQMSAxydV9qn5gLj037nPNlg2w==} 1082 + engines: {node: ^20.19 || ^22.12 || >=24.0} 576 1083 hasBin: true 577 1084 peerDependencies: 578 - typescript: '>=5.1.0' 1085 + better-sqlite3: '>=9.0.0' 1086 + typescript: '>=5.4.0' 579 1087 peerDependenciesMeta: 1088 + better-sqlite3: 1089 + optional: true 580 1090 typescript: 581 1091 optional: true 582 1092 583 1093 process-warning@5.0.0: 584 1094 resolution: {integrity: sha512-a39t9ApHNx2L4+HBnQKqxxHNs1r7KF+Intd8Q/g1bUh6q0WIp9voPXJ/x0j+ZL45KF1pJd9+q2jLIRMfvEshkA==} 585 1095 1096 + proper-lockfile@4.1.2: 1097 + resolution: {integrity: sha512-TjNPblN4BwAWMXU8s9AEz4JmQxnD1NNL7bNOY/AKUzyamc379FWASUhc/K1pL2noVb+XmZKLL68cjzLsiOAMaA==} 1098 + 586 1099 pump@3.0.3: 587 1100 resolution: {integrity: sha512-todwxLMY7/heScKmntwQG8CXVkWUOdYxIvY2s0VWAAMh/nd8SoYiRaKjlr7+iCs984f2P8zvrfWcDDYVb73NfA==} 588 1101 ··· 594 1107 595 1108 rc9@2.1.2: 596 1109 resolution: {integrity: sha512-btXCnMmRIBINM2LDZoEmOogIZU7Qe7zn4BpomSKZ/ykbLObuBdvG+mFq11DL6fjH1DRwHhrlgtYWG96bJiC7Cg==} 1110 + 1111 + react-dom@19.2.3: 1112 + resolution: {integrity: sha512-yELu4WmLPw5Mr/lmeEpox5rw3RETacE++JgHqQzd2dg+YbJuat3jH4ingc+WPZhxaoFzdv9y33G+F7Nl5O0GBg==} 1113 + peerDependencies: 1114 + react: ^19.2.3 1115 + 1116 + react@19.2.3: 1117 + resolution: {integrity: sha512-Ku/hhYbVjOQnXDZFv2+RibmLFGwFdeeKHFcOTlrt7xplBnya5OGn/hIRDsqDiSUcfORsDC7MPxwork8jBwsIWA==} 1118 + engines: {node: '>=0.10.0'} 597 1119 598 1120 readdirp@4.1.2: 599 1121 resolution: {integrity: sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg==} ··· 603 1125 resolution: {integrity: sha512-57frrGM/OCTLqLOAh0mhVA9VBMHd+9U7Zb2THMGdBUoZVOtGbJzjxsYGDJ3A9AYYCP4hn6y1TVbaOfzWtm5GFg==} 604 1126 engines: {node: '>= 12.13.0'} 605 1127 1128 + regexp-to-ast@0.5.0: 1129 + resolution: {integrity: sha512-tlbJqcMHnPKI9zSrystikWKwHkBqu2a/Sgw01h3zFjvYrMxEDYHzzoMZnUrbIfpTFEsoRnnviOXNCzFiSc54Qw==} 1130 + 1131 + remeda@2.33.4: 1132 + resolution: {integrity: sha512-ygHswjlc/opg2VrtiYvUOPLjxjtdKvjGz1/plDhkG66hjNjFr1xmfrs2ClNFo/E6TyUFiwYNh53bKV26oBoMGQ==} 1133 + 606 1134 resolve-pkg-maps@1.0.0: 607 1135 resolution: {integrity: sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==} 608 1136 1137 + retry@0.12.0: 1138 + resolution: {integrity: sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow==} 1139 + engines: {node: '>= 4'} 1140 + 1141 + rollup@4.56.0: 1142 + resolution: {integrity: sha512-9FwVqlgUHzbXtDg9RCMgodF3Ua4Na6Gau+Sdt9vyCN4RhHfVKX2DCHy3BjMLTDd47ITDhYAnTwGulWTblJSDLg==} 1143 + engines: {node: '>=18.0.0', npm: '>=8.0.0'} 1144 + hasBin: true 1145 + 609 1146 safe-stable-stringify@2.5.0: 610 1147 resolution: {integrity: sha512-b3rppTKm9T+PsVCBEOUR46GWI7fdOs00VKZ1+9c1EWDaDMvjQc6tUwuFyIprgGgTcWoVHSKrU8H31ZHA2e0RHA==} 611 1148 engines: {node: '>=10'} 612 1149 1150 + safer-buffer@2.1.2: 1151 + resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} 1152 + 1153 + scheduler@0.27.0: 1154 + resolution: {integrity: sha512-eNv+WrVbKu1f3vbYJT/xtiF5syA5HPIMtf9IgY/nKg0sWqzAUEvqY/xm7OcZc/qafLx/iO9FgOmeSAp4v5ti/Q==} 1155 + 613 1156 secure-json-parse@4.1.0: 614 1157 resolution: {integrity: sha512-l4KnYfEyqYJxDwlNVyRfO2E4NTHfMKAWdUuA8J0yve2Dz/E/PdBepY03RvyJpssIpRFwJoCD55wA+mEDs6ByWA==} 615 1158 1159 + semver@7.7.3: 1160 + resolution: {integrity: sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==} 1161 + engines: {node: '>=10'} 1162 + hasBin: true 1163 + 1164 + seq-queue@0.0.5: 1165 + resolution: {integrity: sha512-hr3Wtp/GZIc/6DAGPDcV4/9WoZhjrkXsi5B/07QgX8tsdc6ilr7BFM6PM6rbdAX1kFSDYeZGLipIZZKyQP0O5Q==} 1166 + 1167 + shebang-command@2.0.0: 1168 + resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} 1169 + engines: {node: '>=8'} 1170 + 1171 + shebang-regex@3.0.0: 1172 + resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} 1173 + engines: {node: '>=8'} 1174 + 1175 + siginfo@2.0.0: 1176 + resolution: {integrity: sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==} 1177 + 1178 + signal-exit@3.0.7: 1179 + resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} 1180 + 1181 + signal-exit@4.1.0: 1182 + resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==} 1183 + engines: {node: '>=14'} 1184 + 616 1185 sonic-boom@4.2.0: 617 1186 resolution: {integrity: sha512-INb7TM37/mAcsGmc9hyyI6+QR3rR1zVRu36B0NeGXKnOOLiZOfER5SA+N7X7k3yUYRzLWafduTDvJAfDswwEww==} 618 1187 1188 + source-map-js@1.2.1: 1189 + resolution: {integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==} 1190 + engines: {node: '>=0.10.0'} 1191 + 619 1192 split2@4.2.0: 620 1193 resolution: {integrity: sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg==} 621 1194 engines: {node: '>= 10.x'} 622 1195 1196 + sqlstring@2.3.3: 1197 + resolution: {integrity: sha512-qC9iz2FlN7DQl3+wjwn3802RTyjCx7sDvfQEXchwa6CWOx07/WVfh91gBmQ9fahw8snwGEWU3xGzOt4tFyHLxg==} 1198 + engines: {node: '>= 0.6'} 1199 + 1200 + stackback@0.0.2: 1201 + resolution: {integrity: sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==} 1202 + 1203 + std-env@3.10.0: 1204 + resolution: {integrity: sha512-5GS12FdOZNliM5mAOxFRg7Ir0pWz8MdpYm6AY6VPkGpbA7ZzmbzNcBJQ0GPvvyWgcY7QAhCgf9Uy89I03faLkg==} 1205 + 623 1206 strip-json-comments@5.0.3: 624 1207 resolution: {integrity: sha512-1tB5mhVo7U+ETBKNf92xT4hrQa3pm0MZ0PQvuDnWgAAGHDsfp4lPSpiS6psrSiet87wyGPh9ft6wmhOMQ0hDiw==} 625 1208 engines: {node: '>=14.16'} 626 1209 1210 + supports-color@7.2.0: 1211 + resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} 1212 + engines: {node: '>=8'} 1213 + 627 1214 thread-stream@3.1.0: 628 1215 resolution: {integrity: sha512-OqyPZ9u96VohAyMfJykzmivOrY2wfMSf3C5TtFJVgN+Hm6aj+voFhlK+kZEIv2FBh1X6Xp3DlnCOfEQ3B2J86A==} 629 1216 630 1217 tiny-emitter@2.1.0: 631 1218 resolution: {integrity: sha512-NB6Dk1A9xgQPMoGqC5CVXn123gWyte215ONT5Pp5a0yt4nlEoO1ZWeCwpncaekPHXO60i47ihFnZPiRPjRMq4Q==} 632 1219 1220 + tinybench@2.9.0: 1221 + resolution: {integrity: sha512-0+DUvqWMValLmha6lr4kD8iAMK1HzV0/aKnCtWb9v9641TnP/MFb7Pc2bxoxQjTXAErryXVgUOfv2YqNllqGeg==} 1222 + 633 1223 tinyexec@1.0.2: 634 1224 resolution: {integrity: sha512-W/KYk+NFhkmsYpuHq5JykngiOCnxeVL8v8dFnqxSD8qEEdRfXk1SDM6JzNqcERbcGYj9tMrDQBYV9cjgnunFIg==} 635 1225 engines: {node: '>=18'} 1226 + 1227 + tinyglobby@0.2.15: 1228 + resolution: {integrity: sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ==} 1229 + engines: {node: '>=12.0.0'} 1230 + 1231 + tinyrainbow@3.0.3: 1232 + resolution: {integrity: sha512-PSkbLUoxOFRzJYjjxHJt9xro7D+iilgMX/C9lawzVuYiIdcihh9DXmVibBe8lmcFrRi/VzlPjBxbN7rH24q8/Q==} 1233 + engines: {node: '>=14.0.0'} 636 1234 637 1235 tlds@1.261.0: 638 1236 resolution: {integrity: sha512-QXqwfEl9ddlGBaRFXIvNKK6OhipSiLXuRuLJX5DErz0o0Q0rYxulWLdFryTkV5PkdZct5iMInwYEGe/eR++1AA==} ··· 659 1257 unicode-segmenter@0.14.4: 660 1258 resolution: {integrity: sha512-pR5VCiCrLrKOL6FRW61jnk9+wyMtKKowq+jyFY9oc6uHbWKhDL4yVRiI4YZPksGMK72Pahh8m0cn/0JvbDDyJg==} 661 1259 1260 + valibot@1.2.0: 1261 + resolution: {integrity: sha512-mm1rxUsmOxzrwnX5arGS+U4T25RdvpPjPN4yR0u9pUBov9+zGVtO84tif1eY4r6zWxVxu3KzIyknJy3rxfRZZg==} 1262 + peerDependencies: 1263 + typescript: '>=5' 1264 + peerDependenciesMeta: 1265 + typescript: 1266 + optional: true 1267 + 1268 + vite@7.3.1: 1269 + resolution: {integrity: sha512-w+N7Hifpc3gRjZ63vYBXA56dvvRlNWRczTdmCBBa+CotUzAPf5b7YMdMR/8CQoeYE5LX3W4wj6RYTgonm1b9DA==} 1270 + engines: {node: ^20.19.0 || >=22.12.0} 1271 + hasBin: true 1272 + peerDependencies: 1273 + '@types/node': ^20.19.0 || >=22.12.0 1274 + jiti: '>=1.21.0' 1275 + less: ^4.0.0 1276 + lightningcss: ^1.21.0 1277 + sass: ^1.70.0 1278 + sass-embedded: ^1.70.0 1279 + stylus: '>=0.54.8' 1280 + sugarss: ^5.0.0 1281 + terser: ^5.16.0 1282 + tsx: ^4.8.1 1283 + yaml: ^2.4.2 1284 + peerDependenciesMeta: 1285 + '@types/node': 1286 + optional: true 1287 + jiti: 1288 + optional: true 1289 + less: 1290 + optional: true 1291 + lightningcss: 1292 + optional: true 1293 + sass: 1294 + optional: true 1295 + sass-embedded: 1296 + optional: true 1297 + stylus: 1298 + optional: true 1299 + sugarss: 1300 + optional: true 1301 + terser: 1302 + optional: true 1303 + tsx: 1304 + optional: true 1305 + yaml: 1306 + optional: true 1307 + 1308 + vitest@4.0.18: 1309 + resolution: {integrity: sha512-hOQuK7h0FGKgBAas7v0mSAsnvrIgAvWmRFjmzpJ7SwFHH3g1k2u37JtYwOwmEKhK6ZO3v9ggDBBm0La1LCK4uQ==} 1310 + engines: {node: ^20.0.0 || ^22.0.0 || >=24.0.0} 1311 + hasBin: true 1312 + peerDependencies: 1313 + '@edge-runtime/vm': '*' 1314 + '@opentelemetry/api': ^1.9.0 1315 + '@types/node': ^20.0.0 || ^22.0.0 || >=24.0.0 1316 + '@vitest/browser-playwright': 4.0.18 1317 + '@vitest/browser-preview': 4.0.18 1318 + '@vitest/browser-webdriverio': 4.0.18 1319 + '@vitest/ui': 4.0.18 1320 + happy-dom: '*' 1321 + jsdom: '*' 1322 + peerDependenciesMeta: 1323 + '@edge-runtime/vm': 1324 + optional: true 1325 + '@opentelemetry/api': 1326 + optional: true 1327 + '@types/node': 1328 + optional: true 1329 + '@vitest/browser-playwright': 1330 + optional: true 1331 + '@vitest/browser-preview': 1332 + optional: true 1333 + '@vitest/browser-webdriverio': 1334 + optional: true 1335 + '@vitest/ui': 1336 + optional: true 1337 + happy-dom: 1338 + optional: true 1339 + jsdom: 1340 + optional: true 1341 + 1342 + which@2.0.2: 1343 + resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} 1344 + engines: {node: '>= 8'} 1345 + hasBin: true 1346 + 1347 + why-is-node-running@2.3.0: 1348 + resolution: {integrity: sha512-hUrmaWBdVDcxvYqnyh09zunKzROWjbZTiNy8dBEjkS7ehEDQibXJ7XvlmtbwuTclUiIyN+CyXQD4Vmko8fNm8w==} 1349 + engines: {node: '>=8'} 1350 + hasBin: true 1351 + 662 1352 wrappy@1.0.2: 663 1353 resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} 664 1354 ··· 674 1364 utf-8-validate: 675 1365 optional: true 676 1366 1367 + xtend@4.0.2: 1368 + resolution: {integrity: sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==} 1369 + engines: {node: '>=0.4'} 1370 + 677 1371 yocto-queue@1.2.2: 678 1372 resolution: {integrity: sha512-4LCcse/U2MHZ63HAJVE+v71o7yOdIe4cZ70Wpf8D/IyjDKYQLV5GD46B+hSTjJsvV5PztjvHoU580EftxjDZFQ==} 679 1373 engines: {node: '>=12.20'} 1374 + 1375 + zeptomatch@2.1.0: 1376 + resolution: {integrity: sha512-KiGErG2J0G82LSpniV0CtIzjlJ10E04j02VOudJsPyPwNZgGnRKQy7I1R7GMyg/QswnE4l7ohSGrQbQbjXPPDA==} 680 1377 681 1378 zod@3.25.76: 682 1379 resolution: {integrity: sha512-gzUt/qt81nXsFGKIFcC3YnfEAx5NkunCfnDlvuBSSFS02bcXu4Lmea0AFIUwbLWxWPx3d9p8S5QoaujKcNQxcQ==} ··· 855 1552 '@atproto/lexicon': 0.6.0 856 1553 zod: 3.25.76 857 1554 1555 + '@babel/helper-string-parser@7.27.1': {} 1556 + 1557 + '@babel/helper-validator-identifier@7.28.5': {} 1558 + 1559 + '@babel/parser@7.28.6': 1560 + dependencies: 1561 + '@babel/types': 7.28.6 1562 + 1563 + '@babel/types@7.28.6': 1564 + dependencies: 1565 + '@babel/helper-string-parser': 7.27.1 1566 + '@babel/helper-validator-identifier': 7.28.5 1567 + 858 1568 '@badrap/valita@0.4.6': {} 1569 + 1570 + '@bcoe/v8-coverage@1.0.2': {} 1571 + 1572 + '@chevrotain/cst-dts-gen@10.5.0': 1573 + dependencies: 1574 + '@chevrotain/gast': 10.5.0 1575 + '@chevrotain/types': 10.5.0 1576 + lodash: 4.17.21 1577 + 1578 + '@chevrotain/gast@10.5.0': 1579 + dependencies: 1580 + '@chevrotain/types': 10.5.0 1581 + lodash: 4.17.21 1582 + 1583 + '@chevrotain/types@10.5.0': {} 1584 + 1585 + '@chevrotain/utils@10.5.0': {} 1586 + 1587 + '@electric-sql/pglite-socket@0.0.20(@electric-sql/pglite@0.3.15)': 1588 + dependencies: 1589 + '@electric-sql/pglite': 0.3.15 1590 + 1591 + '@electric-sql/pglite-tools@0.2.20(@electric-sql/pglite@0.3.15)': 1592 + dependencies: 1593 + '@electric-sql/pglite': 0.3.15 1594 + 1595 + '@electric-sql/pglite@0.3.15': {} 859 1596 860 1597 '@esbuild/aix-ppc64@0.27.2': 861 1598 optional: true ··· 935 1672 '@esbuild/win32-x64@0.27.2': 936 1673 optional: true 937 1674 1675 + '@hono/node-server@1.19.9(hono@4.11.4)': 1676 + dependencies: 1677 + hono: 4.11.4 1678 + 1679 + '@jridgewell/resolve-uri@3.1.2': {} 1680 + 1681 + '@jridgewell/sourcemap-codec@1.5.5': {} 1682 + 1683 + '@jridgewell/trace-mapping@0.3.31': 1684 + dependencies: 1685 + '@jridgewell/resolve-uri': 3.1.2 1686 + '@jridgewell/sourcemap-codec': 1.5.5 1687 + 1688 + '@mrleebo/prisma-ast@0.13.1': 1689 + dependencies: 1690 + chevrotain: 10.5.0 1691 + lilconfig: 2.1.0 1692 + 938 1693 '@pinojs/redact@0.4.0': {} 939 1694 940 - '@prisma/client@6.19.1(prisma@6.19.1)': 1695 + '@prisma/adapter-pg@7.3.0': 1696 + dependencies: 1697 + '@prisma/driver-adapter-utils': 7.3.0 1698 + pg: 8.17.2 1699 + postgres-array: 3.0.4 1700 + transitivePeerDependencies: 1701 + - pg-native 1702 + 1703 + '@prisma/client-runtime-utils@7.3.0': {} 1704 + 1705 + '@prisma/client@7.3.0(prisma@7.3.0(@types/react@19.2.9)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))': 1706 + dependencies: 1707 + '@prisma/client-runtime-utils': 7.3.0 941 1708 optionalDependencies: 942 - prisma: 6.19.1 1709 + prisma: 7.3.0(@types/react@19.2.9)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) 943 1710 944 - '@prisma/config@6.19.1': 1711 + '@prisma/config@7.3.0': 945 1712 dependencies: 946 1713 c12: 3.1.0 947 1714 deepmerge-ts: 7.1.5 ··· 950 1717 transitivePeerDependencies: 951 1718 - magicast 952 1719 953 - '@prisma/debug@6.19.1': {} 1720 + '@prisma/debug@7.2.0': {} 1721 + 1722 + '@prisma/debug@7.3.0': {} 1723 + 1724 + '@prisma/dev@0.20.0': 1725 + dependencies: 1726 + '@electric-sql/pglite': 0.3.15 1727 + '@electric-sql/pglite-socket': 0.0.20(@electric-sql/pglite@0.3.15) 1728 + '@electric-sql/pglite-tools': 0.2.20(@electric-sql/pglite@0.3.15) 1729 + '@hono/node-server': 1.19.9(hono@4.11.4) 1730 + '@mrleebo/prisma-ast': 0.13.1 1731 + '@prisma/get-platform': 7.2.0 1732 + '@prisma/query-plan-executor': 7.2.0 1733 + foreground-child: 3.3.1 1734 + get-port-please: 3.2.0 1735 + hono: 4.11.4 1736 + http-status-codes: 2.3.0 1737 + pathe: 2.0.3 1738 + proper-lockfile: 4.1.2 1739 + remeda: 2.33.4 1740 + std-env: 3.10.0 1741 + valibot: 1.2.0 1742 + zeptomatch: 2.1.0 1743 + transitivePeerDependencies: 1744 + - typescript 954 1745 955 - '@prisma/engines-version@7.1.1-3.c2990dca591cba766e3b7ef5d9e8a84796e47ab7': {} 1746 + '@prisma/driver-adapter-utils@7.3.0': 1747 + dependencies: 1748 + '@prisma/debug': 7.3.0 1749 + 1750 + '@prisma/engines-version@7.3.0-16.9d6ad21cbbceab97458517b147a6a09ff43aa735': {} 956 1751 957 - '@prisma/engines@6.19.1': 1752 + '@prisma/engines@7.3.0': 958 1753 dependencies: 959 - '@prisma/debug': 6.19.1 960 - '@prisma/engines-version': 7.1.1-3.c2990dca591cba766e3b7ef5d9e8a84796e47ab7 961 - '@prisma/fetch-engine': 6.19.1 962 - '@prisma/get-platform': 6.19.1 1754 + '@prisma/debug': 7.3.0 1755 + '@prisma/engines-version': 7.3.0-16.9d6ad21cbbceab97458517b147a6a09ff43aa735 1756 + '@prisma/fetch-engine': 7.3.0 1757 + '@prisma/get-platform': 7.3.0 963 1758 964 - '@prisma/fetch-engine@6.19.1': 1759 + '@prisma/fetch-engine@7.3.0': 965 1760 dependencies: 966 - '@prisma/debug': 6.19.1 967 - '@prisma/engines-version': 7.1.1-3.c2990dca591cba766e3b7ef5d9e8a84796e47ab7 968 - '@prisma/get-platform': 6.19.1 1761 + '@prisma/debug': 7.3.0 1762 + '@prisma/engines-version': 7.3.0-16.9d6ad21cbbceab97458517b147a6a09ff43aa735 1763 + '@prisma/get-platform': 7.3.0 969 1764 970 - '@prisma/get-platform@6.19.1': 1765 + '@prisma/get-platform@7.2.0': 971 1766 dependencies: 972 - '@prisma/debug': 6.19.1 1767 + '@prisma/debug': 7.2.0 1768 + 1769 + '@prisma/get-platform@7.3.0': 1770 + dependencies: 1771 + '@prisma/debug': 7.3.0 1772 + 1773 + '@prisma/query-plan-executor@7.2.0': {} 1774 + 1775 + '@prisma/studio-core@0.13.1(@types/react@19.2.9)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': 1776 + dependencies: 1777 + '@types/react': 19.2.9 1778 + react: 19.2.3 1779 + react-dom: 19.2.3(react@19.2.3) 1780 + 1781 + '@rollup/rollup-android-arm-eabi@4.56.0': 1782 + optional: true 1783 + 1784 + '@rollup/rollup-android-arm64@4.56.0': 1785 + optional: true 1786 + 1787 + '@rollup/rollup-darwin-arm64@4.56.0': 1788 + optional: true 1789 + 1790 + '@rollup/rollup-darwin-x64@4.56.0': 1791 + optional: true 1792 + 1793 + '@rollup/rollup-freebsd-arm64@4.56.0': 1794 + optional: true 1795 + 1796 + '@rollup/rollup-freebsd-x64@4.56.0': 1797 + optional: true 1798 + 1799 + '@rollup/rollup-linux-arm-gnueabihf@4.56.0': 1800 + optional: true 1801 + 1802 + '@rollup/rollup-linux-arm-musleabihf@4.56.0': 1803 + optional: true 1804 + 1805 + '@rollup/rollup-linux-arm64-gnu@4.56.0': 1806 + optional: true 1807 + 1808 + '@rollup/rollup-linux-arm64-musl@4.56.0': 1809 + optional: true 1810 + 1811 + '@rollup/rollup-linux-loong64-gnu@4.56.0': 1812 + optional: true 1813 + 1814 + '@rollup/rollup-linux-loong64-musl@4.56.0': 1815 + optional: true 1816 + 1817 + '@rollup/rollup-linux-ppc64-gnu@4.56.0': 1818 + optional: true 1819 + 1820 + '@rollup/rollup-linux-ppc64-musl@4.56.0': 1821 + optional: true 1822 + 1823 + '@rollup/rollup-linux-riscv64-gnu@4.56.0': 1824 + optional: true 1825 + 1826 + '@rollup/rollup-linux-riscv64-musl@4.56.0': 1827 + optional: true 1828 + 1829 + '@rollup/rollup-linux-s390x-gnu@4.56.0': 1830 + optional: true 1831 + 1832 + '@rollup/rollup-linux-x64-gnu@4.56.0': 1833 + optional: true 1834 + 1835 + '@rollup/rollup-linux-x64-musl@4.56.0': 1836 + optional: true 1837 + 1838 + '@rollup/rollup-openbsd-x64@4.56.0': 1839 + optional: true 1840 + 1841 + '@rollup/rollup-openharmony-arm64@4.56.0': 1842 + optional: true 1843 + 1844 + '@rollup/rollup-win32-arm64-msvc@4.56.0': 1845 + optional: true 1846 + 1847 + '@rollup/rollup-win32-ia32-msvc@4.56.0': 1848 + optional: true 1849 + 1850 + '@rollup/rollup-win32-x64-gnu@4.56.0': 1851 + optional: true 1852 + 1853 + '@rollup/rollup-win32-x64-msvc@4.56.0': 1854 + optional: true 973 1855 974 1856 '@skyware/jetstream@0.2.5': 975 1857 dependencies: ··· 981 1863 982 1864 '@standard-schema/spec@1.1.0': {} 983 1865 1866 + '@types/chai@5.2.3': 1867 + dependencies: 1868 + '@types/deep-eql': 4.0.2 1869 + assertion-error: 2.0.1 1870 + 1871 + '@types/deep-eql@4.0.2': {} 1872 + 1873 + '@types/estree@1.0.8': {} 1874 + 984 1875 '@types/node@24.10.4': 985 1876 dependencies: 986 1877 undici-types: 7.16.0 987 1878 1879 + '@types/pg@8.16.0': 1880 + dependencies: 1881 + '@types/node': 24.10.4 1882 + pg-protocol: 1.11.0 1883 + pg-types: 2.2.0 1884 + 1885 + '@types/react@19.2.9': 1886 + dependencies: 1887 + csstype: 3.2.3 1888 + 988 1889 '@types/ws@8.18.1': 989 1890 dependencies: 990 1891 '@types/node': 24.10.4 991 1892 1893 + '@vitest/coverage-v8@4.0.18(vitest@4.0.18(@types/node@24.10.4)(jiti@2.6.1)(tsx@4.21.0))': 1894 + dependencies: 1895 + '@bcoe/v8-coverage': 1.0.2 1896 + '@vitest/utils': 4.0.18 1897 + ast-v8-to-istanbul: 0.3.10 1898 + istanbul-lib-coverage: 3.2.2 1899 + istanbul-lib-report: 3.0.1 1900 + istanbul-reports: 3.2.0 1901 + magicast: 0.5.1 1902 + obug: 2.1.1 1903 + std-env: 3.10.0 1904 + tinyrainbow: 3.0.3 1905 + vitest: 4.0.18(@types/node@24.10.4)(jiti@2.6.1)(tsx@4.21.0) 1906 + 1907 + '@vitest/expect@4.0.18': 1908 + dependencies: 1909 + '@standard-schema/spec': 1.1.0 1910 + '@types/chai': 5.2.3 1911 + '@vitest/spy': 4.0.18 1912 + '@vitest/utils': 4.0.18 1913 + chai: 6.2.2 1914 + tinyrainbow: 3.0.3 1915 + 1916 + '@vitest/mocker@4.0.18(vite@7.3.1(@types/node@24.10.4)(jiti@2.6.1)(tsx@4.21.0))': 1917 + dependencies: 1918 + '@vitest/spy': 4.0.18 1919 + estree-walker: 3.0.3 1920 + magic-string: 0.30.21 1921 + optionalDependencies: 1922 + vite: 7.3.1(@types/node@24.10.4)(jiti@2.6.1)(tsx@4.21.0) 1923 + 1924 + '@vitest/pretty-format@4.0.18': 1925 + dependencies: 1926 + tinyrainbow: 3.0.3 1927 + 1928 + '@vitest/runner@4.0.18': 1929 + dependencies: 1930 + '@vitest/utils': 4.0.18 1931 + pathe: 2.0.3 1932 + 1933 + '@vitest/snapshot@4.0.18': 1934 + dependencies: 1935 + '@vitest/pretty-format': 4.0.18 1936 + magic-string: 0.30.21 1937 + pathe: 2.0.3 1938 + 1939 + '@vitest/spy@4.0.18': {} 1940 + 1941 + '@vitest/utils@4.0.18': 1942 + dependencies: 1943 + '@vitest/pretty-format': 4.0.18 1944 + tinyrainbow: 3.0.3 1945 + 1946 + assertion-error@2.0.1: {} 1947 + 1948 + ast-v8-to-istanbul@0.3.10: 1949 + dependencies: 1950 + '@jridgewell/trace-mapping': 0.3.31 1951 + estree-walker: 3.0.3 1952 + js-tokens: 9.0.1 1953 + 992 1954 atomic-sleep@1.0.0: {} 993 1955 994 1956 await-lock@2.2.2: {} 1957 + 1958 + aws-ssl-profiles@1.1.2: {} 995 1959 996 1960 c12@3.1.0: 997 1961 dependencies: ··· 1008 1972 pkg-types: 2.3.0 1009 1973 rc9: 2.1.2 1010 1974 1975 + chai@6.2.2: {} 1976 + 1977 + chevrotain@10.5.0: 1978 + dependencies: 1979 + '@chevrotain/cst-dts-gen': 10.5.0 1980 + '@chevrotain/gast': 10.5.0 1981 + '@chevrotain/types': 10.5.0 1982 + '@chevrotain/utils': 10.5.0 1983 + lodash: 4.17.21 1984 + regexp-to-ast: 0.5.0 1985 + 1011 1986 chokidar@4.0.3: 1012 1987 dependencies: 1013 1988 readdirp: 4.1.2 ··· 1024 1999 1025 2000 core-js@3.47.0: {} 1026 2001 2002 + cross-spawn@7.0.6: 2003 + dependencies: 2004 + path-key: 3.1.1 2005 + shebang-command: 2.0.0 2006 + which: 2.0.2 2007 + 2008 + csstype@3.2.3: {} 2009 + 1027 2010 dateformat@4.6.3: {} 1028 2011 1029 2012 deepmerge-ts@7.1.5: {} 1030 2013 1031 2014 defu@6.1.4: {} 2015 + 2016 + denque@2.1.0: {} 1032 2017 1033 2018 destr@2.0.5: {} 1034 2019 ··· 1046 2031 end-of-stream@1.4.5: 1047 2032 dependencies: 1048 2033 once: 1.4.0 2034 + 2035 + es-module-lexer@1.7.0: {} 1049 2036 1050 2037 esbuild@0.27.2: 1051 2038 optionalDependencies: ··· 1078 2065 1079 2066 esm-env@1.2.2: {} 1080 2067 2068 + estree-walker@3.0.3: 2069 + dependencies: 2070 + '@types/estree': 1.0.8 2071 + 1081 2072 event-target-polyfill@0.0.4: {} 1082 2073 1083 2074 eventemitter3@5.0.1: {} 2075 + 2076 + expect-type@1.3.0: {} 1084 2077 1085 2078 exsolve@1.0.8: {} 1086 2079 ··· 1092 2085 1093 2086 fast-safe-stringify@2.1.1: {} 1094 2087 2088 + fdir@6.5.0(picomatch@4.0.3): 2089 + optionalDependencies: 2090 + picomatch: 4.0.3 2091 + 2092 + foreground-child@3.3.1: 2093 + dependencies: 2094 + cross-spawn: 7.0.6 2095 + signal-exit: 4.1.0 2096 + 1095 2097 fsevents@2.3.3: 1096 2098 optional: true 1097 2099 2100 + generate-function@2.3.1: 2101 + dependencies: 2102 + is-property: 1.0.2 2103 + 2104 + get-port-please@3.2.0: {} 2105 + 1098 2106 get-tsconfig@4.13.0: 1099 2107 dependencies: 1100 2108 resolve-pkg-maps: 1.0.0 ··· 1108 2116 nypm: 0.6.2 1109 2117 pathe: 2.0.3 1110 2118 2119 + graceful-fs@4.2.11: {} 2120 + 2121 + grammex@3.1.12: {} 2122 + 2123 + graphmatch@1.1.0: {} 2124 + 2125 + has-flag@4.0.0: {} 2126 + 1111 2127 help-me@5.0.0: {} 2128 + 2129 + hono@4.11.4: {} 2130 + 2131 + html-escaper@2.0.2: {} 2132 + 2133 + http-status-codes@2.3.0: {} 2134 + 2135 + iconv-lite@0.7.2: 2136 + dependencies: 2137 + safer-buffer: 2.1.2 1112 2138 1113 2139 ipaddr.js@2.3.0: {} 1114 2140 2141 + is-property@1.0.2: {} 2142 + 2143 + isexe@2.0.0: {} 2144 + 1115 2145 iso-datestring-validator@2.2.2: {} 1116 2146 2147 + istanbul-lib-coverage@3.2.2: {} 2148 + 2149 + istanbul-lib-report@3.0.1: 2150 + dependencies: 2151 + istanbul-lib-coverage: 3.2.2 2152 + make-dir: 4.0.0 2153 + supports-color: 7.2.0 2154 + 2155 + istanbul-reports@3.2.0: 2156 + dependencies: 2157 + html-escaper: 2.0.2 2158 + istanbul-lib-report: 3.0.1 2159 + 1117 2160 jiti@2.6.1: {} 1118 2161 1119 2162 jose@5.10.0: {} 1120 2163 1121 2164 joycon@3.1.1: {} 1122 2165 2166 + js-tokens@9.0.1: {} 2167 + 2168 + lilconfig@2.1.0: {} 2169 + 2170 + lodash@4.17.21: {} 2171 + 2172 + long@5.3.2: {} 2173 + 1123 2174 lru-cache@10.4.3: {} 1124 2175 2176 + lru.min@1.1.3: {} 2177 + 2178 + magic-string@0.30.21: 2179 + dependencies: 2180 + '@jridgewell/sourcemap-codec': 1.5.5 2181 + 2182 + magicast@0.5.1: 2183 + dependencies: 2184 + '@babel/parser': 7.28.6 2185 + '@babel/types': 7.28.6 2186 + source-map-js: 1.2.1 2187 + 2188 + make-dir@4.0.0: 2189 + dependencies: 2190 + semver: 7.7.3 2191 + 1125 2192 minimist@1.2.8: {} 1126 2193 1127 2194 multiformats@9.9.0: {} 1128 2195 2196 + mysql2@3.15.3: 2197 + dependencies: 2198 + aws-ssl-profiles: 1.1.2 2199 + denque: 2.1.0 2200 + generate-function: 2.3.1 2201 + iconv-lite: 0.7.2 2202 + long: 5.3.2 2203 + lru.min: 1.1.3 2204 + named-placeholders: 1.1.6 2205 + seq-queue: 0.0.5 2206 + sqlstring: 2.3.3 2207 + 2208 + named-placeholders@1.1.6: 2209 + dependencies: 2210 + lru.min: 1.1.3 2211 + 2212 + nanoid@3.3.11: {} 2213 + 1129 2214 node-fetch-native@1.6.7: {} 1130 2215 1131 2216 nypm@0.6.2: ··· 1135 2220 pathe: 2.0.3 1136 2221 pkg-types: 2.3.0 1137 2222 tinyexec: 1.0.2 2223 + 2224 + obug@2.1.1: {} 1138 2225 1139 2226 ohash@2.0.11: {} 1140 2227 ··· 1164 2251 dependencies: 1165 2252 event-target-polyfill: 0.0.4 1166 2253 2254 + path-key@3.1.1: {} 2255 + 1167 2256 pathe@2.0.3: {} 1168 2257 1169 2258 perfect-debounce@1.0.0: {} 1170 2259 2260 + pg-cloudflare@1.3.0: 2261 + optional: true 2262 + 2263 + pg-connection-string@2.10.1: {} 2264 + 2265 + pg-int8@1.0.1: {} 2266 + 2267 + pg-pool@3.11.0(pg@8.17.2): 2268 + dependencies: 2269 + pg: 8.17.2 2270 + 2271 + pg-protocol@1.11.0: {} 2272 + 2273 + pg-types@2.2.0: 2274 + dependencies: 2275 + pg-int8: 1.0.1 2276 + postgres-array: 2.0.0 2277 + postgres-bytea: 1.0.1 2278 + postgres-date: 1.0.7 2279 + postgres-interval: 1.2.0 2280 + 2281 + pg@8.17.2: 2282 + dependencies: 2283 + pg-connection-string: 2.10.1 2284 + pg-pool: 3.11.0(pg@8.17.2) 2285 + pg-protocol: 1.11.0 2286 + pg-types: 2.2.0 2287 + pgpass: 1.0.5 2288 + optionalDependencies: 2289 + pg-cloudflare: 1.3.0 2290 + 2291 + pgpass@1.0.5: 2292 + dependencies: 2293 + split2: 4.2.0 2294 + 2295 + picocolors@1.1.1: {} 2296 + 2297 + picomatch@4.0.3: {} 2298 + 1171 2299 pino-abstract-transport@2.0.0: 1172 2300 dependencies: 1173 2301 split2: 4.2.0 ··· 1214 2342 exsolve: 1.0.8 1215 2343 pathe: 2.0.3 1216 2344 1217 - prisma@6.19.1: 2345 + postcss@8.5.6: 1218 2346 dependencies: 1219 - '@prisma/config': 6.19.1 1220 - '@prisma/engines': 6.19.1 2347 + nanoid: 3.3.11 2348 + picocolors: 1.1.1 2349 + source-map-js: 1.2.1 2350 + 2351 + postgres-array@2.0.0: {} 2352 + 2353 + postgres-array@3.0.4: {} 2354 + 2355 + postgres-bytea@1.0.1: {} 2356 + 2357 + postgres-date@1.0.7: {} 2358 + 2359 + postgres-interval@1.2.0: 2360 + dependencies: 2361 + xtend: 4.0.2 2362 + 2363 + postgres@3.4.7: {} 2364 + 2365 + prisma@7.3.0(@types/react@19.2.9)(react-dom@19.2.3(react@19.2.3))(react@19.2.3): 2366 + dependencies: 2367 + '@prisma/config': 7.3.0 2368 + '@prisma/dev': 0.20.0 2369 + '@prisma/engines': 7.3.0 2370 + '@prisma/studio-core': 0.13.1(@types/react@19.2.9)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) 2371 + mysql2: 3.15.3 2372 + postgres: 3.4.7 1221 2373 transitivePeerDependencies: 2374 + - '@types/react' 1222 2375 - magicast 2376 + - react 2377 + - react-dom 1223 2378 1224 2379 process-warning@5.0.0: {} 2380 + 2381 + proper-lockfile@4.1.2: 2382 + dependencies: 2383 + graceful-fs: 4.2.11 2384 + retry: 0.12.0 2385 + signal-exit: 3.0.7 1225 2386 1226 2387 pump@3.0.3: 1227 2388 dependencies: ··· 1237 2398 defu: 6.1.4 1238 2399 destr: 2.0.5 1239 2400 2401 + react-dom@19.2.3(react@19.2.3): 2402 + dependencies: 2403 + react: 19.2.3 2404 + scheduler: 0.27.0 2405 + 2406 + react@19.2.3: {} 2407 + 1240 2408 readdirp@4.1.2: {} 1241 2409 1242 2410 real-require@0.2.0: {} 1243 2411 2412 + regexp-to-ast@0.5.0: {} 2413 + 2414 + remeda@2.33.4: {} 2415 + 1244 2416 resolve-pkg-maps@1.0.0: {} 1245 2417 2418 + retry@0.12.0: {} 2419 + 2420 + rollup@4.56.0: 2421 + dependencies: 2422 + '@types/estree': 1.0.8 2423 + optionalDependencies: 2424 + '@rollup/rollup-android-arm-eabi': 4.56.0 2425 + '@rollup/rollup-android-arm64': 4.56.0 2426 + '@rollup/rollup-darwin-arm64': 4.56.0 2427 + '@rollup/rollup-darwin-x64': 4.56.0 2428 + '@rollup/rollup-freebsd-arm64': 4.56.0 2429 + '@rollup/rollup-freebsd-x64': 4.56.0 2430 + '@rollup/rollup-linux-arm-gnueabihf': 4.56.0 2431 + '@rollup/rollup-linux-arm-musleabihf': 4.56.0 2432 + '@rollup/rollup-linux-arm64-gnu': 4.56.0 2433 + '@rollup/rollup-linux-arm64-musl': 4.56.0 2434 + '@rollup/rollup-linux-loong64-gnu': 4.56.0 2435 + '@rollup/rollup-linux-loong64-musl': 4.56.0 2436 + '@rollup/rollup-linux-ppc64-gnu': 4.56.0 2437 + '@rollup/rollup-linux-ppc64-musl': 4.56.0 2438 + '@rollup/rollup-linux-riscv64-gnu': 4.56.0 2439 + '@rollup/rollup-linux-riscv64-musl': 4.56.0 2440 + '@rollup/rollup-linux-s390x-gnu': 4.56.0 2441 + '@rollup/rollup-linux-x64-gnu': 4.56.0 2442 + '@rollup/rollup-linux-x64-musl': 4.56.0 2443 + '@rollup/rollup-openbsd-x64': 4.56.0 2444 + '@rollup/rollup-openharmony-arm64': 4.56.0 2445 + '@rollup/rollup-win32-arm64-msvc': 4.56.0 2446 + '@rollup/rollup-win32-ia32-msvc': 4.56.0 2447 + '@rollup/rollup-win32-x64-gnu': 4.56.0 2448 + '@rollup/rollup-win32-x64-msvc': 4.56.0 2449 + fsevents: 2.3.3 2450 + 1246 2451 safe-stable-stringify@2.5.0: {} 1247 2452 2453 + safer-buffer@2.1.2: {} 2454 + 2455 + scheduler@0.27.0: {} 2456 + 1248 2457 secure-json-parse@4.1.0: {} 1249 2458 2459 + semver@7.7.3: {} 2460 + 2461 + seq-queue@0.0.5: {} 2462 + 2463 + shebang-command@2.0.0: 2464 + dependencies: 2465 + shebang-regex: 3.0.0 2466 + 2467 + shebang-regex@3.0.0: {} 2468 + 2469 + siginfo@2.0.0: {} 2470 + 2471 + signal-exit@3.0.7: {} 2472 + 2473 + signal-exit@4.1.0: {} 2474 + 1250 2475 sonic-boom@4.2.0: 1251 2476 dependencies: 1252 2477 atomic-sleep: 1.0.0 1253 2478 2479 + source-map-js@1.2.1: {} 2480 + 1254 2481 split2@4.2.0: {} 1255 2482 2483 + sqlstring@2.3.3: {} 2484 + 2485 + stackback@0.0.2: {} 2486 + 2487 + std-env@3.10.0: {} 2488 + 1256 2489 strip-json-comments@5.0.3: {} 1257 2490 2491 + supports-color@7.2.0: 2492 + dependencies: 2493 + has-flag: 4.0.0 2494 + 1258 2495 thread-stream@3.1.0: 1259 2496 dependencies: 1260 2497 real-require: 0.2.0 1261 2498 1262 2499 tiny-emitter@2.1.0: {} 2500 + 2501 + tinybench@2.9.0: {} 1263 2502 1264 2503 tinyexec@1.0.2: {} 1265 2504 2505 + tinyglobby@0.2.15: 2506 + dependencies: 2507 + fdir: 6.5.0(picomatch@4.0.3) 2508 + picomatch: 4.0.3 2509 + 2510 + tinyrainbow@3.0.3: {} 2511 + 1266 2512 tlds@1.261.0: {} 1267 2513 1268 2514 tslib@2.8.1: {} ··· 1284 2530 1285 2531 unicode-segmenter@0.14.4: {} 1286 2532 2533 + valibot@1.2.0: {} 2534 + 2535 + vite@7.3.1(@types/node@24.10.4)(jiti@2.6.1)(tsx@4.21.0): 2536 + dependencies: 2537 + esbuild: 0.27.2 2538 + fdir: 6.5.0(picomatch@4.0.3) 2539 + picomatch: 4.0.3 2540 + postcss: 8.5.6 2541 + rollup: 4.56.0 2542 + tinyglobby: 0.2.15 2543 + optionalDependencies: 2544 + '@types/node': 24.10.4 2545 + fsevents: 2.3.3 2546 + jiti: 2.6.1 2547 + tsx: 4.21.0 2548 + 2549 + vitest@4.0.18(@types/node@24.10.4)(jiti@2.6.1)(tsx@4.21.0): 2550 + dependencies: 2551 + '@vitest/expect': 4.0.18 2552 + '@vitest/mocker': 4.0.18(vite@7.3.1(@types/node@24.10.4)(jiti@2.6.1)(tsx@4.21.0)) 2553 + '@vitest/pretty-format': 4.0.18 2554 + '@vitest/runner': 4.0.18 2555 + '@vitest/snapshot': 4.0.18 2556 + '@vitest/spy': 4.0.18 2557 + '@vitest/utils': 4.0.18 2558 + es-module-lexer: 1.7.0 2559 + expect-type: 1.3.0 2560 + magic-string: 0.30.21 2561 + obug: 2.1.1 2562 + pathe: 2.0.3 2563 + picomatch: 4.0.3 2564 + std-env: 3.10.0 2565 + tinybench: 2.9.0 2566 + tinyexec: 1.0.2 2567 + tinyglobby: 0.2.15 2568 + tinyrainbow: 3.0.3 2569 + vite: 7.3.1(@types/node@24.10.4)(jiti@2.6.1)(tsx@4.21.0) 2570 + why-is-node-running: 2.3.0 2571 + optionalDependencies: 2572 + '@types/node': 24.10.4 2573 + transitivePeerDependencies: 2574 + - jiti 2575 + - less 2576 + - lightningcss 2577 + - msw 2578 + - sass 2579 + - sass-embedded 2580 + - stylus 2581 + - sugarss 2582 + - terser 2583 + - tsx 2584 + - yaml 2585 + 2586 + which@2.0.2: 2587 + dependencies: 2588 + isexe: 2.0.0 2589 + 2590 + why-is-node-running@2.3.0: 2591 + dependencies: 2592 + siginfo: 2.0.0 2593 + stackback: 0.0.2 2594 + 1287 2595 wrappy@1.0.2: {} 1288 2596 1289 2597 ws@8.18.3: {} 2598 + 2599 + xtend@4.0.2: {} 1290 2600 1291 2601 yocto-queue@1.2.2: {} 2602 + 2603 + zeptomatch@2.1.0: 2604 + dependencies: 2605 + grammex: 3.1.12 2606 + graphmatch: 1.1.0 1292 2607 1293 2608 zod@3.25.76: {}
-1
backend/prisma/schema.prisma
··· 4 4 5 5 datasource db { 6 6 provider = "postgresql" 7 - url = env("DATABASE_URL") 8 7 } 9 8 model Bookmark { 10 9 uri String @id
+13 -2
backend/src/db.ts
··· 3 3 * This module wraps Prisma operations for better testability. 4 4 */ 5 5 6 + import 'dotenv/config'; 6 7 import { PrismaClient } from "@prisma/client"; 8 + import { PrismaPg } from "@prisma/adapter-pg"; 9 + import pg from "pg"; 7 10 import pLimit from "p-limit"; 8 11 import logger from './logger.js'; 9 12 10 13 // Export the PLimit instance for external use 11 14 export const dbLimit = pLimit(5); 12 15 16 + // Internal networks (localhost, Docker service names without dots) don't need SSL 17 + const isInternalNetwork = !process.env.DATABASE_URL?.match(/@[\w-]+\.[\w.-]+[:/]/); 18 + const pool = new pg.Pool({ 19 + connectionString: process.env.DATABASE_URL, 20 + ssl: isInternalNetwork ? false : { rejectUnauthorized: false } 21 + }); 22 + const adapter = new PrismaPg(pool); 23 + 13 24 // Create a singleton Prisma client 14 - export const prisma = new PrismaClient(); 25 + export const prisma = new PrismaClient({ adapter }); 15 26 16 27 // Set up error handler 17 28 (prisma as any).$on('error', (e: any) => { ··· 185 196 where: { bookmark_uri: bookmarkUri }, 186 197 select: { tag_id: true }, 187 198 }); 188 - return tags.map(r => r.tag_id); 199 + return tags.map((r: { tag_id: number }) => r.tag_id); 189 200 } 190 201 191 202 /**
+18 -10
backend/src/index.ts
··· 1 - import { PrismaClient } from "@prisma/client"; 2 1 import { CommitCreateEvent, CommitDeleteEvent, CommitUpdateEvent, Jetstream } from '@skyware/jetstream'; 2 + import { prisma } from './db.js'; 3 3 import WebSocket from 'ws'; 4 4 import { BOOKMARK, CURSOR_UPDATE_INTERVAL, JETSREAM_URL, SERVICE, POST_COLLECTION, LIKE } from './config.js'; 5 5 import { BlueRitoFeedBookmark } from './lexicons/index.js'; ··· 96 96 } 97 97 } 98 98 99 - const prisma = new PrismaClient(); 99 + //const prisma = new PrismaClient(); 100 100 let cursor = "0"; 101 101 let prev_time_us = "0"; 102 102 let cursorUpdateInterval: NodeJS.Timeout; ··· 378 378 if (isVerify) tagsLocal.push("Verified"); 379 379 380 380 // 順番に処理 381 - const tagRecords = []; 381 + const tagRecords: { id: number; name: string }[] = []; 382 382 for (const name of tagsLocal) { 383 383 const tag = await safeUpsertTag(name); 384 384 if (tag) tagRecords.push(tag); ··· 390 390 ); 391 391 392 392 // BookmarkTag の更新用 393 - const oldTagIds = await prisma.bookmarkTag.findMany({ 393 + const oldTags = await prisma.bookmarkTag.findMany({ 394 394 where: { bookmark_uri: aturi }, 395 395 select: { tag_id: true }, 396 - }).then(res => res.map(r => r.tag_id)); 396 + }); 397 + const oldTagIds = oldTags.map((r: { tag_id: number }) => r.tag_id); 397 398 398 - const newTagIds = validTagRecords.map(t => t.id); 399 + const newTagIds = validTagRecords.map((t: { id: number }) => t.id); 399 400 400 401 // 不要タグ削除 401 - const removeIds = oldTagIds.filter(id => !newTagIds.includes(id)); 402 + const removeIds = oldTagIds.filter((id: number) => !newTagIds.includes(id)); 402 403 if (removeIds.length > 0) { 403 404 await dbLimit(() => 404 405 prisma.bookmarkTag.deleteMany({ ··· 408 409 } 409 410 410 411 // 新規タグ追加 411 - const addIds = newTagIds.filter(id => !oldTagIds.includes(id)); 412 + const addIds = newTagIds.filter((id: number) => !oldTagIds.includes(id)); 412 413 for (const id of addIds) { 413 414 await dbLimit(() => 414 415 prisma.bookmarkTag.create({ data: { bookmark_uri: aturi, tag_id: id } }) ··· 623 624 jetstream.onUpdate(BOOKMARK, event => queue.add(() => upsertBookmark(event))); 624 625 625 626 // POST_COLLECTION 626 - jetstream.onCreate(POST_COLLECTION, event => queue.add(() => upsertPost(event))); 627 - jetstream.onUpdate(POST_COLLECTION, event => queue.add(() => upsertPost(event))); 627 + const isLocal = process.env.IS_LOCAL === 'true' || process.env.NODE_ENV !== 'production'; 628 + const isForceEnabled = process.env.ENABLE_POST_COLLECTION === 'true'; 629 + 630 + if (!isLocal || isForceEnabled) { 631 + jetstream.onCreate(POST_COLLECTION, event => queue.add(() => upsertPost(event))); 632 + jetstream.onUpdate(POST_COLLECTION, event => queue.add(() => upsertPost(event))); 633 + } else { 634 + logger.info('POST_COLLECTION handlers are disabled in local environment (IS_LOCAL=true or NODE_ENV!=production)'); 635 + } 628 636 629 637 // SERVICE 630 638 jetstream.onCreate(SERVICE, event => queue.add(() => upsertResolver(event)));
+9 -11
backend/src/lib/HandleOauthClientNode.ts
··· 1 1 import { NodeOAuthClient, NodeSavedState, NodeSavedSession } from '@atproto/oauth-client-node' 2 2 import { JoseKey } from '@atproto/jwk-jose' 3 - import { PrismaClient } from "@prisma/client"; 3 + import { prisma } from "../db.js"; 4 4 5 5 export const SCOPE = [ 6 - "atproto", 7 - "include:blue.rito.permissionSet", 8 - "repo:app.bsky.feed.post", 9 - "rpc:app.bsky.actor.getProfile?aud=did:web:api.bsky.app%23bsky_appview", 10 - "blob:*/*", 6 + "atproto", 7 + "include:blue.rito.permissionSet", 8 + "repo:app.bsky.feed.post", 9 + "rpc:app.bsky.actor.getProfile?aud=did:web:api.bsky.app%23bsky_appview", 10 + "blob:*/*", 11 11 ]; 12 - 13 - const prisma = new PrismaClient(); 14 12 15 13 const stateStore = { 16 14 async set(key: string, internalState: NodeSavedState): Promise<void> { ··· 34 32 }, 35 33 36 34 async del(key: string): Promise<void> { 37 - await prisma.nodeOAuthState.delete({ where: { key } }).catch(() => {}) 35 + await prisma.nodeOAuthState.delete({ where: { key } }).catch(() => { }) 38 36 }, 39 37 } 40 38 ··· 60 58 }, 61 59 62 60 async del(sub: string): Promise<void> { 63 - await prisma.nodeOAuthSession.delete({ where: { key: sub } }).catch(() => {}) 61 + await prisma.nodeOAuthSession.delete({ where: { key: sub } }).catch(() => { }) 64 62 }, 65 63 } 66 64 67 65 // JoseKey を生成 68 - const key1 = await JoseKey.fromImportable(process.env.OAUTH_PRIVATE_JWK||'', 'key1') 66 + const key1 = await JoseKey.fromImportable(process.env.OAUTH_PRIVATE_JWK || '', 'key1') 69 67 70 68 export const client = new NodeOAuthClient({ 71 69 // This object will be used to build the payload of the /client-metadata.json
+12 -9
frontend/package.json
··· 5 5 "private": true, 6 6 "scripts": { 7 7 "dev": "next dev --turbopack -p 4600", 8 - "update": "pnpm dlx npm-check-updates -u --reject \"prisma,@prisma/client\" && pnpm install", 8 + "update": "pnpm dlx npm-check-updates -u && pnpm install", 9 9 "build": "vitest run && pnpm run prisma:generate && next build --turbopack", 10 10 "prisma:copy": " cp ../backend/prisma/schema.prisma ./prisma/schema.prisma", 11 11 "prisma:generate": "pnpm exec prisma generate --schema=./prisma/schema.prisma", ··· 25 25 "@atcute/client": "^4.2.1", 26 26 "@atcute/lexicons": "^1.2.6", 27 27 "@atcute/tid": "^1.1.1", 28 - "@atproto/api": "^0.18.16", 28 + "@atproto/api": "^0.18.17", 29 29 "@atproto/jwk-jose": "^0.1.11", 30 30 "@atproto/oauth-client-node": "^0.3.15", 31 31 "@mantine/core": "^8.3.13", 32 32 "@mantine/form": "^8.3.13", 33 33 "@mantine/hooks": "^8.3.13", 34 34 "@mantine/notifications": "^8.3.13", 35 - "@prisma/client": "^6.19.2", 35 + "@prisma/adapter-pg": "^7.3.0", 36 + "@prisma/client": "^7.3.0", 36 37 "@tabler/icons-react": "^3.36.1", 37 38 "base64url": "^3.0.1", 38 39 "did-jwt": "^8.0.18", 39 40 "did-resolver": "^4.1.0", 40 - "lucide-react": "^0.562.0", 41 + "lucide-react": "^0.563.0", 41 42 "next": "^16.1.4", 42 43 "next-intl": "^4.7.0", 43 44 "nextjs-toploader": "^3.9.17", 44 45 "open-graph-scraper": "^6.11.0", 46 + "pg": "^8.17.2", 45 47 "react": "^19.2.3", 46 48 "react-dom": "^19.2.3", 47 49 "react-icons": "^5.5.0", 48 50 "react-markdown": "^10.1.0", 49 - "sass": "^1.97.2", 51 + "sass": "^1.97.3", 50 52 "tinyld": "^1.3.4", 51 53 "web-did-resolver": "^2.0.32", 52 54 "zustand": "^5.0.10" ··· 58 60 "@testing-library/jest-dom": "^6.9.1", 59 61 "@testing-library/react": "^16.3.2", 60 62 "@testing-library/user-event": "^14.6.1", 61 - "@types/node": "^25.0.9", 63 + "@types/node": "^25.0.10", 64 + "@types/pg": "^8.16.0", 62 65 "@types/react": "^19.2.9", 63 66 "@types/react-dom": "^19.2.3", 64 67 "@typescript-eslint/eslint-plugin": "^8.53.1", 65 68 "@typescript-eslint/parser": "^8.53.1", 66 69 "@vitejs/plugin-react": "^5.1.2", 67 - "@vitest/coverage-v8": "4.0.17", 70 + "@vitest/coverage-v8": "4.0.18", 68 71 "dotenv-cli": "^11.0.0", 69 72 "eslint": "^9.39.2", 70 73 "eslint-config-next": "^16.1.4", ··· 72 75 "postcss": "^8.5.6", 73 76 "postcss-preset-mantine": "^1.18.0", 74 77 "postcss-simple-vars": "^7.0.1", 75 - "prisma": "^6.19.2", 78 + "prisma": "^7.3.0", 76 79 "tailwindcss": "^4.1.18", 77 80 "typescript": "^5.9.3", 78 - "vitest": "^4.0.17" 81 + "vitest": "^4.0.18" 79 82 }, 80 83 "engines": { 81 84 "pnpm": ">=10.0.0"
+642 -159
frontend/pnpm-lock.yaml
··· 27 27 specifier: ^1.1.1 28 28 version: 1.1.1 29 29 '@atproto/api': 30 - specifier: ^0.18.16 31 - version: 0.18.16 30 + specifier: ^0.18.17 31 + version: 0.18.17 32 32 '@atproto/jwk-jose': 33 33 specifier: ^0.1.11 34 34 version: 0.1.11 ··· 47 47 '@mantine/notifications': 48 48 specifier: ^8.3.13 49 49 version: 8.3.13(@mantine/core@8.3.13(@mantine/hooks@8.3.13(react@19.2.3))(@types/react@19.2.9)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(@mantine/hooks@8.3.13(react@19.2.3))(react-dom@19.2.3(react@19.2.3))(react@19.2.3) 50 + '@prisma/adapter-pg': 51 + specifier: ^7.3.0 52 + version: 7.3.0 50 53 '@prisma/client': 51 - specifier: ^6.19.2 52 - version: 6.19.2(prisma@6.19.2(typescript@5.9.3))(typescript@5.9.3) 54 + specifier: ^7.3.0 55 + version: 7.3.0(prisma@7.3.0(@types/react@19.2.9)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(typescript@5.9.3))(typescript@5.9.3) 53 56 '@tabler/icons-react': 54 57 specifier: ^3.36.1 55 58 version: 3.36.1(react@19.2.3) ··· 63 66 specifier: ^4.1.0 64 67 version: 4.1.0 65 68 lucide-react: 66 - specifier: ^0.562.0 67 - version: 0.562.0(react@19.2.3) 69 + specifier: ^0.563.0 70 + version: 0.563.0(react@19.2.3) 68 71 next: 69 72 specifier: ^16.1.4 70 - version: 16.1.4(@babel/core@7.28.6)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(sass@1.97.2) 73 + version: 16.1.4(@babel/core@7.28.6)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(sass@1.97.3) 71 74 next-intl: 72 75 specifier: ^4.7.0 73 - version: 4.7.0(next@16.1.4(@babel/core@7.28.6)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(sass@1.97.2))(react@19.2.3)(typescript@5.9.3) 76 + version: 4.7.0(next@16.1.4(@babel/core@7.28.6)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(sass@1.97.3))(react@19.2.3)(typescript@5.9.3) 74 77 nextjs-toploader: 75 78 specifier: ^3.9.17 76 - version: 3.9.17(next@16.1.4(@babel/core@7.28.6)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(sass@1.97.2))(react-dom@19.2.3(react@19.2.3))(react@19.2.3) 79 + version: 3.9.17(next@16.1.4(@babel/core@7.28.6)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(sass@1.97.3))(react-dom@19.2.3(react@19.2.3))(react@19.2.3) 77 80 open-graph-scraper: 78 81 specifier: ^6.11.0 79 82 version: 6.11.0 83 + pg: 84 + specifier: ^8.17.2 85 + version: 8.17.2 80 86 react: 81 87 specifier: ^19.2.3 82 88 version: 19.2.3 ··· 90 96 specifier: ^10.1.0 91 97 version: 10.1.0(@types/react@19.2.9)(react@19.2.3) 92 98 sass: 93 - specifier: ^1.97.2 94 - version: 1.97.2 99 + specifier: ^1.97.3 100 + version: 1.97.3 95 101 tinyld: 96 102 specifier: ^1.3.4 97 103 version: 1.3.4 ··· 121 127 specifier: ^14.6.1 122 128 version: 14.6.1(@testing-library/dom@10.4.1) 123 129 '@types/node': 124 - specifier: ^25.0.9 125 - version: 25.0.9 130 + specifier: ^25.0.10 131 + version: 25.0.10 132 + '@types/pg': 133 + specifier: ^8.16.0 134 + version: 8.16.0 126 135 '@types/react': 127 136 specifier: ^19.2.9 128 137 version: 19.2.9 ··· 137 146 version: 8.53.1(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) 138 147 '@vitejs/plugin-react': 139 148 specifier: ^5.1.2 140 - version: 5.1.2(vite@7.3.1(@types/node@25.0.9)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.97.2)(sugarss@5.0.1(postcss@8.5.6))) 149 + version: 5.1.2(vite@7.3.1(@types/node@25.0.10)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.97.3)(sugarss@5.0.1(postcss@8.5.6))) 141 150 '@vitest/coverage-v8': 142 - specifier: 4.0.17 143 - version: 4.0.17(vitest@4.0.17(@types/node@25.0.9)(jiti@2.6.1)(jsdom@27.4.0(@noble/hashes@1.8.0))(lightningcss@1.30.2)(sass@1.97.2)(sugarss@5.0.1(postcss@8.5.6))) 151 + specifier: 4.0.18 152 + version: 4.0.18(vitest@4.0.18(@types/node@25.0.10)(jiti@2.6.1)(jsdom@27.4.0(@noble/hashes@1.8.0))(lightningcss@1.30.2)(sass@1.97.3)(sugarss@5.0.1(postcss@8.5.6))) 144 153 dotenv-cli: 145 154 specifier: ^11.0.0 146 155 version: 11.0.0 ··· 163 172 specifier: ^7.0.1 164 173 version: 7.0.1(postcss@8.5.6) 165 174 prisma: 166 - specifier: ^6.19.2 167 - version: 6.19.2(typescript@5.9.3) 175 + specifier: ^7.3.0 176 + version: 7.3.0(@types/react@19.2.9)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(typescript@5.9.3) 168 177 tailwindcss: 169 178 specifier: ^4.1.18 170 179 version: 4.1.18 ··· 172 181 specifier: ^5.9.3 173 182 version: 5.9.3 174 183 vitest: 175 - specifier: ^4.0.17 176 - version: 4.0.17(@types/node@25.0.9)(jiti@2.6.1)(jsdom@27.4.0(@noble/hashes@1.8.0))(lightningcss@1.30.2)(sass@1.97.2)(sugarss@5.0.1(postcss@8.5.6)) 184 + specifier: ^4.0.18 185 + version: 4.0.18(@types/node@25.0.10)(jiti@2.6.1)(jsdom@27.4.0(@noble/hashes@1.8.0))(lightningcss@1.30.2)(sass@1.97.3)(sugarss@5.0.1(postcss@8.5.6)) 177 186 178 187 packages: 179 188 ··· 300 309 '@atproto-labs/simple-store@0.3.0': 301 310 resolution: {integrity: sha512-nOb6ONKBRJHRlukW1sVawUkBqReLlLx6hT35VS3imaNPwiXDxLnTK7lxw3Lrl9k5yugSBDQAkZAq3MPTEFSUBQ==} 302 311 303 - '@atproto/api@0.18.16': 304 - resolution: {integrity: sha512-tRGKSWr83pP5CQpSboePU21pE+GqLDYy1XHae4HH4hjaT0pr5V8wNgu70kbKB0B02GVUumeDRpJnlHKD+eMzLg==} 312 + '@atproto/api@0.18.17': 313 + resolution: {integrity: sha512-TeJkLGPkiK3jblwTDSNTH+CnS6WgaOiHDZeVVzywtxomyyF0FpQVSMz5eP3sDhxyHJqpI3E2AOYD7PO/JSbzJw==} 305 314 306 - '@atproto/common-web@0.4.12': 307 - resolution: {integrity: sha512-3aCJemqM/fkHQrVPbTCHCdiVstKFI+2LkFLvUhO6XZP0EqUZa/rg/CIZBKTFUWu9I5iYiaEiXL9VwcDRpEevSw==} 315 + '@atproto/common-web@0.4.13': 316 + resolution: {integrity: sha512-TewRUyB/dVJ5PtI3QmJzEgT3wDsvpnLJ+48hPl+LuUueJPamZevXKJN6dFjtbKAMFRnl2bKfdsf79qwvdSaLKQ==} 308 317 309 318 '@atproto/did@0.2.4': 310 319 resolution: {integrity: sha512-nxNiCgXeo7pfjojq9fpfZxCO0X0xUipNVKW+AHNZwQKiUDt6zYL0VXEfm8HBUwQOCmKvj2pRRSM1Cur+tUWk3g==} ··· 318 327 '@atproto/jwk@0.6.0': 319 328 resolution: {integrity: sha512-bDoJPvt7TrQVi/rBfBrSSpGykhtIriKxeYCYQTiPRKFfyRhbgpElF0wPXADjIswnbzZdOwbY63az4E/CFVT3Tw==} 320 329 321 - '@atproto/lex-data@0.0.8': 322 - resolution: {integrity: sha512-1Y5tz7BkS7380QuLNXaE8GW8Xba+mRWugt8BKM4BUFYjjUZdmirU8lr72iM4XlEBrzRu8Cfvj+MbsbYaZv+IgA==} 330 + '@atproto/lex-data@0.0.9': 331 + resolution: {integrity: sha512-1slwe4sG0cyWtsq16+rBoWIxNDqGPkkvN+PV6JuzA7dgUK9bjUmXBGQU4eZlUPSS43X1Nhmr/9VjgKmEzU9vDw==} 323 332 324 - '@atproto/lex-json@0.0.8': 325 - resolution: {integrity: sha512-w1Qmkae1QhmNz+i1Zm3xr3jp0UPPRENmdlpU0qIrdxWDo9W4Mzkeyc3eSoa+Zs+zN8xkRSQw7RLZte/B7Ipdwg==} 333 + '@atproto/lex-json@0.0.9': 334 + resolution: {integrity: sha512-Q2v1EVZcnd+ndyZj1r2UlGikA7q6It24CFPLbxokcf5Ba4RBupH8IkkQX7mqUDSRWPgQdmZYIdW9wUln+MKDqw==} 326 335 327 - '@atproto/lexicon@0.6.0': 328 - resolution: {integrity: sha512-5veb8aD+J5M0qszLJ+73KSFsFrJBgAY/nM1TSAJvGY7fNc9ZAT+PSUlmIyrdye9YznAZ07yktalls/TwNV7cHQ==} 336 + '@atproto/lexicon@0.6.1': 337 + resolution: {integrity: sha512-/vI1kVlY50Si+5MXpvOucelnYwb0UJ6Qto5mCp+7Q5C+Jtp+SoSykAPVvjVtTnQUH2vrKOFOwpb3C375vSKzXw==} 329 338 330 339 '@atproto/oauth-client-node@0.3.15': 331 340 resolution: {integrity: sha512-iuT7QrLli7IyB4px1+lHvm/YoIRfNRpbNG9seJRtu5eX4N5aLsBP6vpXs9rCygd1+/15LcLRAAGKVEcrLT9tXA==} ··· 337 346 '@atproto/oauth-types@0.6.1': 338 347 resolution: {integrity: sha512-3z92GN/6zCq9E2GTTfZM27tWEbvi1qwFSA7KoS5+wqBC4kSsLvnLxmbKH402Z40DfWS4YWqw0DkHsgP0LNFDEA==} 339 348 340 - '@atproto/syntax@0.4.2': 341 - resolution: {integrity: sha512-X9XSRPinBy/0VQ677j8VXlBsYSsUXaiqxWVpGGxJYsAhugdQRb0jqaVKJFtm6RskeNkV6y9xclSUi9UYG/COrA==} 349 + '@atproto/syntax@0.4.3': 350 + resolution: {integrity: sha512-YoZUz40YAJr5nPwvCDWgodEOlt5IftZqPJvA0JDWjuZKD8yXddTwSzXSaKQAzGOpuM+/A3uXRtPzJJqlScc+iA==} 342 351 343 352 '@atproto/xrpc@0.7.7': 344 353 resolution: {integrity: sha512-K1ZyO/BU8JNtXX5dmPp7b5UrkLMMqpsIa/Lrj5D3Su+j1Xwq1m6QJ2XJ1AgjEjkI1v4Muzm7klianLE6XGxtmA==} ··· 438 447 resolution: {integrity: sha512-6zABk/ECA/QYSCQ1NGiVwwbQerUCZ+TQbp64Q3AgmfNvurHH0j8TtXa1qbShXA6qqkpAj4V5W8pP6mLe1mcMqA==} 439 448 engines: {node: '>=18'} 440 449 450 + '@chevrotain/cst-dts-gen@10.5.0': 451 + resolution: {integrity: sha512-lhmC/FyqQ2o7pGK4Om+hzuDrm9rhFYIJ/AXoQBeongmn870Xeb0L6oGEiuR8nohFNL5sMaQEJWCxr1oIVIVXrw==} 452 + 453 + '@chevrotain/gast@10.5.0': 454 + resolution: {integrity: sha512-pXdMJ9XeDAbgOWKuD1Fldz4ieCs6+nLNmyVhe2gZVqoO7v8HXuHYs5OV2EzUtbuai37TlOAQHrTDvxMnvMJz3A==} 455 + 456 + '@chevrotain/types@10.5.0': 457 + resolution: {integrity: sha512-f1MAia0x/pAVPWH/T73BJVyO2XU5tI4/iE7cnxb7tqdNTNhQI3Uq3XkqcoteTmD4t1aM0LbHCJOhgIDn07kl2A==} 458 + 459 + '@chevrotain/utils@10.5.0': 460 + resolution: {integrity: sha512-hBzuU5+JjB2cqNZyszkDHZgOSrUUT8V3dhgRl8Q9Gp6dAj/H5+KILGjbhDpc3Iy9qmqlm/akuOI2ut9VUtzJxQ==} 461 + 441 462 '@csstools/color-helpers@5.1.0': 442 463 resolution: {integrity: sha512-S11EXWJyy0Mz5SYvRmY8nJYTFFd1LCNV+7cXyAgQtOOuzb4EsgfqDufL+9esx72/eLhsRdGZwaldu/h+E4t4BA==} 443 464 engines: {node: '>=18'} ··· 469 490 '@csstools/css-tokenizer@3.0.4': 470 491 resolution: {integrity: sha512-Vd/9EVDiu6PPJt9yAh6roZP6El1xHrdvIVGjyBsHR0RYwNHgL7FJPyIIW4fANJNG6FtyZfvlRPpFI4ZM/lubvw==} 471 492 engines: {node: '>=18'} 493 + 494 + '@electric-sql/pglite-socket@0.0.20': 495 + resolution: {integrity: sha512-J5nLGsicnD9wJHnno9r+DGxfcZWh+YJMCe0q/aCgtG6XOm9Z7fKeite8IZSNXgZeGltSigM9U/vAWZQWdgcSFg==} 496 + hasBin: true 497 + peerDependencies: 498 + '@electric-sql/pglite': 0.3.15 499 + 500 + '@electric-sql/pglite-tools@0.2.20': 501 + resolution: {integrity: sha512-BK50ZnYa3IG7ztXhtgYf0Q7zijV32Iw1cYS8C+ThdQlwx12V5VZ9KRJ42y82Hyb4PkTxZQklVQA9JHyUlex33A==} 502 + peerDependencies: 503 + '@electric-sql/pglite': 0.3.15 504 + 505 + '@electric-sql/pglite@0.3.15': 506 + resolution: {integrity: sha512-Cj++n1Mekf9ETfdc16TlDi+cDDQF0W7EcbyRHYOAeZdsAe8M/FJg18itDTSwyHfar2WIezawM9o0EKaRGVKygQ==} 472 507 473 508 '@emnapi/core@1.8.1': 474 509 resolution: {integrity: sha512-AvT9QFpxK0Zd8J0jopedNm+w/2fIzvtPKPjqyw9jwvBaReTTqPBk9Hixaz7KbjimP+QNz605/XnjFcDAL2pqBg==} ··· 721 756 '@formatjs/intl-localematcher@0.6.2': 722 757 resolution: {integrity: sha512-XOMO2Hupl0wdd172Y06h6kLpBz6Dv+J4okPLl4LPtzbr8f66WbIoy4ev98EBuZ6ZK4h5ydTN6XneT4QVpD7cdA==} 723 758 759 + '@hono/node-server@1.19.9': 760 + resolution: {integrity: sha512-vHL6w3ecZsky+8P5MD+eFfaGTyCeOHUIFYMGpQGbrBTSmNNoxv0if69rEZ5giu36weC5saFuznL411gRX7bJDw==} 761 + engines: {node: '>=18.14.1'} 762 + peerDependencies: 763 + hono: ^4 764 + 724 765 '@humanfs/core@0.19.1': 725 766 resolution: {integrity: sha512-5DyQ4+1JEUzejeK1JGICcideyfUbGixgS9jNgex5nqkW+cY7WZhxBigmieN5Qnw9ZosSNVC9KQKyb+GUaGyKUA==} 726 767 engines: {node: '>=18.18.0'} ··· 920 961 peerDependencies: 921 962 react: ^18.x || ^19.x 922 963 964 + '@mrleebo/prisma-ast@0.13.1': 965 + resolution: {integrity: sha512-XyroGQXcHrZdvmrGJvsA9KNeOOgGMg1Vg9OlheUsBOSKznLMDl+YChxbkboRHvtFYJEMRYmlV3uoo/njCw05iw==} 966 + engines: {node: '>=16'} 967 + 923 968 '@multiformats/base-x@4.0.1': 924 969 resolution: {integrity: sha512-eMk0b9ReBbV23xXU693TAIrLyeO5iTgBZGSJfpqriG8UkYvr/hC9u9pyMlAakDNHWmbhMZCDs6KQO0jzKD8OTw==} 925 970 ··· 1101 1146 resolution: {integrity: sha512-WYa2tUVV5HiArWPB3ydlOc4R2ivq0IDrlqhMi3l7mVsFEXNcTfxYFPIHXHXIh/ca/y/V5N4E1zecyxdIBjYnkQ==} 1102 1147 engines: {node: '>= 10.0.0'} 1103 1148 1104 - '@prisma/client@6.19.2': 1105 - resolution: {integrity: sha512-gR2EMvfK/aTxsuooaDA32D8v+us/8AAet+C3J1cc04SW35FPdZYgLF+iN4NDLUgAaUGTKdAB0CYenu1TAgGdMg==} 1106 - engines: {node: '>=18.18'} 1149 + '@prisma/adapter-pg@7.3.0': 1150 + resolution: {integrity: sha512-iuYQMbIPO6i9O45Fv8TB7vWu00BXhCaNAShenqF7gLExGDbnGp5BfFB4yz1K59zQ59jF6tQ9YHrg0P6/J3OoLg==} 1151 + 1152 + '@prisma/client-runtime-utils@7.3.0': 1153 + resolution: {integrity: sha512-dG/ceD9c+tnXATPk8G+USxxYM9E6UdMTnQeQ+1SZUDxTz7SgQcfxEqafqIQHcjdlcNK/pvmmLfSwAs3s2gYwUw==} 1154 + 1155 + '@prisma/client@7.3.0': 1156 + resolution: {integrity: sha512-FXBIxirqQfdC6b6HnNgxGmU7ydCPEPk7maHMOduJJfnTP+MuOGa15X4omjR/zpPUUpm8ef/mEFQjJudOGkXFcQ==} 1157 + engines: {node: ^20.19 || ^22.12 || >=24.0} 1107 1158 peerDependencies: 1108 1159 prisma: '*' 1109 - typescript: '>=5.1.0' 1160 + typescript: '>=5.4.0' 1110 1161 peerDependenciesMeta: 1111 1162 prisma: 1112 1163 optional: true 1113 1164 typescript: 1114 1165 optional: true 1115 1166 1116 - '@prisma/config@6.19.2': 1117 - resolution: {integrity: sha512-kadBGDl+aUswv/zZMk9Mx0C8UZs1kjao8H9/JpI4Wh4SHZaM7zkTwiKn/iFLfRg+XtOAo/Z/c6pAYhijKl0nzQ==} 1167 + '@prisma/config@7.3.0': 1168 + resolution: {integrity: sha512-QyMV67+eXF7uMtKxTEeQqNu/Be7iH+3iDZOQZW5ttfbSwBamCSdwPszA0dum+Wx27I7anYTPLmRmMORKViSW1A==} 1169 + 1170 + '@prisma/debug@7.2.0': 1171 + resolution: {integrity: sha512-YSGTiSlBAVJPzX4ONZmMotL+ozJwQjRmZweQNIq/ER0tQJKJynNkRB3kyvt37eOfsbMCXk3gnLF6J9OJ4QWftw==} 1118 1172 1119 - '@prisma/debug@6.19.2': 1120 - resolution: {integrity: sha512-lFnEZsLdFLmEVCVNdskLDCL8Uup41GDfU0LUfquw+ercJC8ODTuL0WNKgOKmYxCJVvFwf0OuZBzW99DuWmoH2A==} 1173 + '@prisma/debug@7.3.0': 1174 + resolution: {integrity: sha512-yh/tHhraCzYkffsI1/3a7SHX8tpgbJu1NPnuxS4rEpJdWAUDHUH25F1EDo6PPzirpyLNkgPPZdhojQK804BGtg==} 1121 1175 1122 - '@prisma/engines-version@7.1.1-3.c2990dca591cba766e3b7ef5d9e8a84796e47ab7': 1123 - resolution: {integrity: sha512-03bgb1VD5gvuumNf+7fVGBzfpJPjmqV423l/WxsWk2cNQ42JD0/SsFBPhN6z8iAvdHs07/7ei77SKu7aZfq8bA==} 1176 + '@prisma/dev@0.20.0': 1177 + resolution: {integrity: sha512-ovlBYwWor0OzG+yH4J3Ot+AneD818BttLA+Ii7wjbcLHUrnC4tbUPVGyNd3c/+71KETPKZfjhkTSpdS15dmXNQ==} 1124 1178 1125 - '@prisma/engines@6.19.2': 1126 - resolution: {integrity: sha512-TTkJ8r+uk/uqczX40wb+ODG0E0icVsMgwCTyTHXehaEfb0uo80M9g1aW1tEJrxmFHeOZFXdI2sTA1j1AgcHi4A==} 1179 + '@prisma/driver-adapter-utils@7.3.0': 1180 + resolution: {integrity: sha512-Wdlezh1ck0Rq2dDINkfSkwbR53q53//Eo1vVqVLwtiZ0I6fuWDGNPxwq+SNAIHnsU+FD/m3aIJKevH3vF13U3w==} 1127 1181 1128 - '@prisma/fetch-engine@6.19.2': 1129 - resolution: {integrity: sha512-h4Ff4Pho+SR1S8XerMCC12X//oY2bG3Iug/fUnudfcXEUnIeRiBdXHFdGlGOgQ3HqKgosTEhkZMvGM9tWtYC+Q==} 1182 + '@prisma/engines-version@7.3.0-16.9d6ad21cbbceab97458517b147a6a09ff43aa735': 1183 + resolution: {integrity: sha512-IH2va2ouUHihyiTTRW889LjKAl1CusZOvFfZxCDNpjSENt7g2ndFsK0vdIw/72v7+jCN6YgkHmdAP/BI7SDgyg==} 1130 1184 1131 - '@prisma/get-platform@6.19.2': 1132 - resolution: {integrity: sha512-PGLr06JUSTqIvztJtAzIxOwtWKtJm5WwOG6xpsgD37Rc84FpfUBGLKz65YpJBGtkRQGXTYEFie7pYALocC3MtA==} 1185 + '@prisma/engines@7.3.0': 1186 + resolution: {integrity: sha512-cWRQoPDXPtR6stOWuWFZf9pHdQ/o8/QNWn0m0zByxf5Kd946Q875XdEJ52pEsX88vOiXUmjuPG3euw82mwQNMg==} 1187 + 1188 + '@prisma/fetch-engine@7.3.0': 1189 + resolution: {integrity: sha512-Mm0F84JMqM9Vxk70pzfNpGJ1lE4hYjOeLMu7nOOD1i83nvp8MSAcFYBnHqLvEZiA6onUR+m8iYogtOY4oPO5lQ==} 1190 + 1191 + '@prisma/get-platform@7.2.0': 1192 + resolution: {integrity: sha512-k1V0l0Td1732EHpAfi2eySTezyllok9dXb6UQanajkJQzPUGi3vO2z7jdkz67SypFTdmbnyGYxvEvYZdZsMAVA==} 1193 + 1194 + '@prisma/get-platform@7.3.0': 1195 + resolution: {integrity: sha512-N7c6m4/I0Q6JYmWKP2RCD/sM9eWiyCPY98g5c0uEktObNSZnugW2U/PO+pwL0UaqzxqTXt7gTsYsb0FnMnJNbg==} 1196 + 1197 + '@prisma/query-plan-executor@7.2.0': 1198 + resolution: {integrity: sha512-EOZmNzcV8uJ0mae3DhTsiHgoNCuu1J9mULQpGCh62zN3PxPTd+qI9tJvk5jOst8WHKQNwJWR3b39t0XvfBB0WQ==} 1199 + 1200 + '@prisma/studio-core@0.13.1': 1201 + resolution: {integrity: sha512-agdqaPEePRHcQ7CexEfkX1RvSH9uWDb6pXrZnhCRykhDFAV0/0P3d07WtfiY8hZWb7oRU4v+NkT4cGFHkQJIPg==} 1202 + peerDependencies: 1203 + '@types/react': ^18.0.0 || ^19.0.0 1204 + react: ^18.0.0 || ^19.0.0 1205 + react-dom: ^18.0.0 || ^19.0.0 1133 1206 1134 1207 '@rolldown/pluginutils@1.0.0-beta.53': 1135 1208 resolution: {integrity: sha512-vENRlFU4YbrwVqNDZ7fLvy+JR1CRkyr01jhSiDpE1u6py3OMzQfztQU2jxykW3ALNxO4kSlqIDeYyD0Y9RcQeQ==} ··· 1525 1598 '@types/ms@2.1.0': 1526 1599 resolution: {integrity: sha512-GsCCIZDE/p3i96vtEqx+7dBUGXrc7zeSK3wwPHIaRThS+9OhWIXRqzs4d6k1SVU8g91DrNRWxWUGhp5KXQb2VA==} 1527 1600 1528 - '@types/node@25.0.9': 1529 - resolution: {integrity: sha512-/rpCXHlCWeqClNBwUhDcusJxXYDjZTyE8v5oTO7WbL8eij2nKhUeU89/6xgjU7N4/Vh3He0BtyhJdQbDyhiXAw==} 1601 + '@types/node@25.0.10': 1602 + resolution: {integrity: sha512-zWW5KPngR/yvakJgGOmZ5vTBemDoSqF3AcV/LrO5u5wTWyEAVVh+IT39G4gtyAkh3CtTZs8aX/yRM82OfzHJRg==} 1603 + 1604 + '@types/pg@8.16.0': 1605 + resolution: {integrity: sha512-RmhMd/wD+CF8Dfo+cVIy3RR5cl8CyfXQ0tGgW6XBL8L4LM/UTEbNXYRbLwU6w+CgrKBNbrQWt4FUtTfaU5jSYQ==} 1530 1606 1531 1607 '@types/react-dom@19.2.3': 1532 1608 resolution: {integrity: sha512-jp2L/eY6fn+KgVVQAOqYItbF0VY/YApe5Mz2F0aykSO8gx31bYCZyvSeYxCHKvzHG5eZjc+zyaS5BrBWya2+kQ==} ··· 1764 1840 peerDependencies: 1765 1841 vite: ^4.2.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 1766 1842 1767 - '@vitest/coverage-v8@4.0.17': 1768 - resolution: {integrity: sha512-/6zU2FLGg0jsd+ePZcwHRy3+WpNTBBhDY56P4JTRqUN/Dp6CvOEa9HrikcQ4KfV2b2kAHUFB4dl1SuocWXSFEw==} 1843 + '@vitest/coverage-v8@4.0.18': 1844 + resolution: {integrity: sha512-7i+N2i0+ME+2JFZhfuz7Tg/FqKtilHjGyGvoHYQ6iLV0zahbsJ9sljC9OcFcPDbhYKCet+sG8SsVqlyGvPflZg==} 1769 1845 peerDependencies: 1770 - '@vitest/browser': 4.0.17 1771 - vitest: 4.0.17 1846 + '@vitest/browser': 4.0.18 1847 + vitest: 4.0.18 1772 1848 peerDependenciesMeta: 1773 1849 '@vitest/browser': 1774 1850 optional: true 1775 1851 1776 - '@vitest/expect@4.0.17': 1777 - resolution: {integrity: sha512-mEoqP3RqhKlbmUmntNDDCJeTDavDR+fVYkSOw8qRwJFaW/0/5zA9zFeTrHqNtcmwh6j26yMmwx2PqUDPzt5ZAQ==} 1852 + '@vitest/expect@4.0.18': 1853 + resolution: {integrity: sha512-8sCWUyckXXYvx4opfzVY03EOiYVxyNrHS5QxX3DAIi5dpJAAkyJezHCP77VMX4HKA2LDT/Jpfo8i2r5BE3GnQQ==} 1778 1854 1779 - '@vitest/mocker@4.0.17': 1780 - resolution: {integrity: sha512-+ZtQhLA3lDh1tI2wxe3yMsGzbp7uuJSWBM1iTIKCbppWTSBN09PUC+L+fyNlQApQoR+Ps8twt2pbSSXg2fQVEQ==} 1855 + '@vitest/mocker@4.0.18': 1856 + resolution: {integrity: sha512-HhVd0MDnzzsgevnOWCBj5Otnzobjy5wLBe4EdeeFGv8luMsGcYqDuFRMcttKWZA5vVO8RFjexVovXvAM4JoJDQ==} 1781 1857 peerDependencies: 1782 1858 msw: ^2.4.9 1783 1859 vite: ^6.0.0 || ^7.0.0-0 ··· 1787 1863 vite: 1788 1864 optional: true 1789 1865 1790 - '@vitest/pretty-format@4.0.17': 1791 - resolution: {integrity: sha512-Ah3VAYmjcEdHg6+MwFE17qyLqBHZ+ni2ScKCiW2XrlSBV4H3Z7vYfPfz7CWQ33gyu76oc0Ai36+kgLU3rfF4nw==} 1866 + '@vitest/pretty-format@4.0.18': 1867 + resolution: {integrity: sha512-P24GK3GulZWC5tz87ux0m8OADrQIUVDPIjjj65vBXYG17ZeU3qD7r+MNZ1RNv4l8CGU2vtTRqixrOi9fYk/yKw==} 1792 1868 1793 - '@vitest/runner@4.0.17': 1794 - resolution: {integrity: sha512-JmuQyf8aMWoo/LmNFppdpkfRVHJcsgzkbCA+/Bk7VfNH7RE6Ut2qxegeyx2j3ojtJtKIbIGy3h+KxGfYfk28YQ==} 1869 + '@vitest/runner@4.0.18': 1870 + resolution: {integrity: sha512-rpk9y12PGa22Jg6g5M3UVVnTS7+zycIGk9ZNGN+m6tZHKQb7jrP7/77WfZy13Y/EUDd52NDsLRQhYKtv7XfPQw==} 1795 1871 1796 - '@vitest/snapshot@4.0.17': 1797 - resolution: {integrity: sha512-npPelD7oyL+YQM2gbIYvlavlMVWUfNNGZPcu0aEUQXt7FXTuqhmgiYupPnAanhKvyP6Srs2pIbWo30K0RbDtRQ==} 1872 + '@vitest/snapshot@4.0.18': 1873 + resolution: {integrity: sha512-PCiV0rcl7jKQjbgYqjtakly6T1uwv/5BQ9SwBLekVg/EaYeQFPiXcgrC2Y7vDMA8dM1SUEAEV82kgSQIlXNMvA==} 1798 1874 1799 - '@vitest/spy@4.0.17': 1800 - resolution: {integrity: sha512-I1bQo8QaP6tZlTomQNWKJE6ym4SHf3oLS7ceNjozxxgzavRAgZDc06T7kD8gb9bXKEgcLNt00Z+kZO6KaJ62Ew==} 1875 + '@vitest/spy@4.0.18': 1876 + resolution: {integrity: sha512-cbQt3PTSD7P2OARdVW3qWER5EGq7PHlvE+QfzSC0lbwO+xnt7+XH06ZzFjFRgzUX//JmpxrCu92VdwvEPlWSNw==} 1801 1877 1802 - '@vitest/utils@4.0.17': 1803 - resolution: {integrity: sha512-RG6iy+IzQpa9SB8HAFHJ9Y+pTzI+h8553MrciN9eC6TFBErqrQaTas4vG+MVj8S4uKk8uTT2p0vgZPnTdxd96w==} 1878 + '@vitest/utils@4.0.18': 1879 + resolution: {integrity: sha512-msMRKLMVLWygpK3u2Hybgi4MNjcYJvwTb0Ru09+fOyCXIgT5raYP041DRRdiJiI3k/2U6SEbAETB3YtBrUkCFA==} 1804 1880 1805 1881 acorn-jsx@5.3.2: 1806 1882 resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} ··· 1894 1970 await-lock@2.2.2: 1895 1971 resolution: {integrity: sha512-aDczADvlvTGajTDjcjpJMqRkOF6Qdz3YbPZm/PyW6tKPkx2hlYBzxMhEywM/tU72HrVZjgl5VCdRuMlA7pZ8Gw==} 1896 1972 1973 + aws-ssl-profiles@1.1.2: 1974 + resolution: {integrity: sha512-NZKeq9AfyQvEeNlN0zSYAaWrmBffJh3IELMZfRpJVWgrpEbtEpnjvzqBPf+mxoI287JohRDoa+/nsfqqiZmF6g==} 1975 + engines: {node: '>= 6.0.0'} 1976 + 1897 1977 axe-core@4.11.1: 1898 1978 resolution: {integrity: sha512-BASOg+YwO2C+346x3LZOeoovTIoTrRqEsqMa6fmfAV0P+U9mFr9NsyOEpiYvFjbc64NMrSswhV50WdXzdb/Z5A==} 1899 1979 engines: {node: '>=4'} ··· 2007 2087 cheerio@1.1.2: 2008 2088 resolution: {integrity: sha512-IkxPpb5rS/d1IiLbHMgfPuS0FgiWTtFIm/Nj+2woXDLTZ7fOT2eqzgYbdMlLweqlHbsZjxEChoVK+7iph7jyQg==} 2009 2089 engines: {node: '>=20.18.1'} 2090 + 2091 + chevrotain@10.5.0: 2092 + resolution: {integrity: sha512-Pkv5rBY3+CsHOYfV5g/Vs5JY9WTHHDEKOlohI2XeygaZhUeqhAlldZ8Hz9cRmxu709bvS08YzxHdTPHhffc13A==} 2010 2093 2011 2094 chokidar@4.0.3: 2012 2095 resolution: {integrity: sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==} ··· 2140 2223 2141 2224 defu@6.1.4: 2142 2225 resolution: {integrity: sha512-mEQCMmwJu317oSz8CwdIOdwf3xMif1ttiM8LTufzc3g6kR+9Pe236twL8j3IYT1F7GfRgGcW6MWxzZjLIkuHIg==} 2226 + 2227 + denque@2.1.0: 2228 + resolution: {integrity: sha512-HVQE3AAb/pxF8fQAoiqpvg9i3evqug3hoiwakOyZAwJm+6vZehbkYXZ0l4JxS+I3QxM97v5aaRNhj8v5oBhekw==} 2229 + engines: {node: '>=0.10'} 2143 2230 2144 2231 dequal@2.0.3: 2145 2232 resolution: {integrity: sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==} ··· 2473 2560 resolution: {integrity: sha512-dKx12eRCVIzqCxFGplyFKJMPvLEWgmNtUrpTiJIR5u97zEhRG8ySrtboPHZXx7daLxQVrl643cTzbab2tkQjxg==} 2474 2561 engines: {node: '>= 0.4'} 2475 2562 2563 + foreground-child@3.3.1: 2564 + resolution: {integrity: sha512-gIXjKqtFuWEgzFRJA9WCQeSJLZDjgJUOMCMzxtvFq/37KojM1BFGufqsCy0r4qSQmYLsZYMeyRqzIWOMup03sw==} 2565 + engines: {node: '>=14'} 2566 + 2476 2567 fsevents@2.3.3: 2477 2568 resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} 2478 2569 engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} ··· 2487 2578 2488 2579 functions-have-names@1.2.3: 2489 2580 resolution: {integrity: sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==} 2581 + 2582 + generate-function@2.3.1: 2583 + resolution: {integrity: sha512-eeB5GfMNeevm/GRYq20ShmsaGcmI81kIX2K9XQx5miC8KdHaC6Jm0qQ8ZNeGOi7wYB8OsdxKs+Y2oVuTFuVwKQ==} 2490 2584 2491 2585 generator-function@2.0.1: 2492 2586 resolution: {integrity: sha512-SFdFmIJi+ybC0vjlHN0ZGVGHc3lgE0DxPAT0djjVg+kjOnSqclqmj0KQ7ykTOLP6YxoqOvuAODGdcHJn+43q3g==} ··· 2503 2597 get-nonce@1.0.1: 2504 2598 resolution: {integrity: sha512-FJhYRoDaiatfEkUK8HKlicmu/3SGFD51q3itKDGoSTysQJBnfOcxU5GxnhE1E6soB76MbT0MBtnKJuXyAx+96Q==} 2505 2599 engines: {node: '>=6'} 2600 + 2601 + get-port-please@3.2.0: 2602 + resolution: {integrity: sha512-I9QVvBw5U/hw3RmWpYKRumUeaDgxTPd401x364rLmWBJcOQ753eov1eTgzDqRG9bqFIfDc7gfzcQEWrUri3o1A==} 2506 2603 2507 2604 get-proto@1.0.1: 2508 2605 resolution: {integrity: sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==} ··· 2545 2642 2546 2643 graceful-fs@4.2.11: 2547 2644 resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} 2645 + 2646 + grammex@3.1.12: 2647 + resolution: {integrity: sha512-6ufJOsSA7LcQehIJNCO7HIBykfM7DXQual0Ny780/DEcJIpBlHRvcqEBWGPYd7hrXL2GJ3oJI1MIhaXjWmLQOQ==} 2648 + 2649 + graphmatch@1.1.0: 2650 + resolution: {integrity: sha512-0E62MaTW5rPZVRLyIJZG/YejmdA/Xr1QydHEw3Vt+qOKkMIOE8WDLc9ZX2bmAjtJFZcId4lEdrdmASsEy7D1QA==} 2548 2651 2549 2652 has-bigints@1.1.0: 2550 2653 resolution: {integrity: sha512-R3pbpkcIqv2Pm3dUwgjclDRVmWpTJW2DcMzcIhEXEx1oh/CEMObMm3KLmRJOdvhM7o4uQBnwr8pzRK2sJWIqfg==} ··· 2585 2688 hermes-parser@0.25.1: 2586 2689 resolution: {integrity: sha512-6pEjquH3rqaI6cYAXYPcz9MS4rY6R4ngRgrgfDshRptUZIc3lw0MCIJIGDj9++mfySOuPTHB4nrSW99BCvOPIA==} 2587 2690 2691 + hono@4.11.4: 2692 + resolution: {integrity: sha512-U7tt8JsyrxSRKspfhtLET79pU8K+tInj5QZXs1jSugO1Vq5dFj3kmZsRldo29mTBfcjDRVRXrEZ6LS63Cog9ZA==} 2693 + engines: {node: '>=16.9.0'} 2694 + 2588 2695 html-encoding-sniffer@6.0.0: 2589 2696 resolution: {integrity: sha512-CV9TW3Y3f8/wT0BRFc1/KAVQ3TUHiXmaAb6VW9vtiMFf7SLoMd1PdAc4W3KFOFETBJUb90KatHqlsZMWV+R9Gg==} 2590 2697 engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0} ··· 2601 2708 http-proxy-agent@7.0.2: 2602 2709 resolution: {integrity: sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==} 2603 2710 engines: {node: '>= 14'} 2711 + 2712 + http-status-codes@2.3.0: 2713 + resolution: {integrity: sha512-RJ8XvFvpPM/Dmc5SV+dC4y5PCeOhT3x1Hq0NU3rjGeg5a/CqlhZ7uudknPwZFz4aeAXDcbAyaeP7GAo9lvngtA==} 2604 2714 2605 2715 https-proxy-agent@7.0.6: 2606 2716 resolution: {integrity: sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw==} ··· 2736 2846 2737 2847 is-potential-custom-element-name@1.0.1: 2738 2848 resolution: {integrity: sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==} 2849 + 2850 + is-property@1.0.2: 2851 + resolution: {integrity: sha512-Ks/IoX00TtClbGQr4TWXemAnktAQvYB7HzcCxDGqEZU6oCmb2INHuOoKxbtR+HFkmYWBKv/dOZtGRiAjDhj92g==} 2739 2852 2740 2853 is-regex@1.2.1: 2741 2854 resolution: {integrity: sha512-MjYsKHO5O7mCsmRGxWcLWheFqN9DJ/2TmngvjKXihe6efViPqc274+Fx/4fYj/r03+ESvBdTXK0V6tA3rgez1g==} ··· 2939 3052 resolution: {integrity: sha512-utfs7Pr5uJyyvDETitgsaqSyjCb2qNRAtuqUeWIAKztsOYdcACf2KtARYXg2pSvhkt+9NfoaNY7fxjl6nuMjIQ==} 2940 3053 engines: {node: '>= 12.0.0'} 2941 3054 3055 + lilconfig@2.1.0: 3056 + resolution: {integrity: sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==} 3057 + engines: {node: '>=10'} 3058 + 2942 3059 locate-path@6.0.0: 2943 3060 resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==} 2944 3061 engines: {node: '>=10'} ··· 2946 3063 lodash.merge@4.6.2: 2947 3064 resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==} 2948 3065 3066 + lodash@4.17.21: 3067 + resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==} 3068 + 3069 + long@5.3.2: 3070 + resolution: {integrity: sha512-mNAgZ1GmyNhD7AuqnTG3/VQ26o760+ZYBPKjPvugO8+nLbYfX6TVpJPseBvopbdY+qpZ/lKUnmEc1LeZYS3QAA==} 3071 + 2949 3072 longest-streak@3.1.0: 2950 3073 resolution: {integrity: sha512-9Ri+o0JYgehTaVBBDoMqIl8GXtbWg711O3srftcHhZ0dqnETqLaoIK0x17fUw9rFSlK/0NlsKe0Ahhyl5pXE2g==} 2951 3074 ··· 2963 3086 lru-cache@5.1.1: 2964 3087 resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==} 2965 3088 2966 - lucide-react@0.562.0: 2967 - resolution: {integrity: sha512-82hOAu7y0dbVuFfmO4bYF1XEwYk/mEbM5E+b1jgci/udUBEE/R7LF5Ip0CCEmXe8AybRM8L+04eP+LGZeDvkiw==} 3089 + lru.min@1.1.3: 3090 + resolution: {integrity: sha512-Lkk/vx6ak3rYkRR0Nhu4lFUT2VDnQSxBe8Hbl7f36358p6ow8Bnvr8lrLt98H8J1aGxfhbX4Fs5tYg2+FTwr5Q==} 3091 + engines: {bun: '>=1.0.0', deno: '>=1.30.0', node: '>=8.0.0'} 3092 + 3093 + lucide-react@0.563.0: 3094 + resolution: {integrity: sha512-8dXPB2GI4dI8jV4MgUDGBeLdGk8ekfqVZ0BdLcrRzocGgG75ltNEmWS+gE7uokKF/0oSUuczNDT+g9hFJ23FkA==} 2968 3095 peerDependencies: 2969 3096 react: ^16.5.1 || ^17.0.0 || ^18.0.0 || ^19.0.0 2970 3097 ··· 3108 3235 3109 3236 multiformats@9.9.0: 3110 3237 resolution: {integrity: sha512-HoMUjhH9T8DDBNT+6xzkrd9ga/XiBI4xLr58LJACwK6G3HTOPeMz4nB4KJs33L2BelrIJa7P0VuNaVF3hMYfjg==} 3238 + 3239 + mysql2@3.15.3: 3240 + resolution: {integrity: sha512-FBrGau0IXmuqg4haEZRBfHNWB5mUARw6hNwPDXXGg0XzVJ50mr/9hb267lvpVMnhZ1FON3qNd4Xfcez1rbFwSg==} 3241 + engines: {node: '>= 8.0'} 3242 + 3243 + named-placeholders@1.1.6: 3244 + resolution: {integrity: sha512-Tz09sEL2EEuv5fFowm419c1+a/jSMiBjI9gHxVLrVdbUkkNUUfjsVYs9pVZu5oCon/kmRh9TfLEObFtkVxmY0w==} 3245 + engines: {node: '>=8.0.0'} 3111 3246 3112 3247 nanoid@3.3.11: 3113 3248 resolution: {integrity: sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==} ··· 3294 3429 perfect-debounce@1.0.0: 3295 3430 resolution: {integrity: sha512-xCy9V055GLEqoFaHoC1SoLIaLmWctgCUaBaWxDZ7/Zx4CTyX7cJQLJOok/orfjZAh9kEYpjJa4d0KcJmCbctZA==} 3296 3431 3432 + pg-cloudflare@1.3.0: 3433 + resolution: {integrity: sha512-6lswVVSztmHiRtD6I8hw4qP/nDm1EJbKMRhf3HCYaqud7frGysPv7FYJ5noZQdhQtN2xJnimfMtvQq21pdbzyQ==} 3434 + 3435 + pg-connection-string@2.10.1: 3436 + resolution: {integrity: sha512-iNzslsoeSH2/gmDDKiyMqF64DATUCWj3YJ0wP14kqcsf2TUklwimd+66yYojKwZCA7h2yRNLGug71hCBA2a4sw==} 3437 + 3438 + pg-int8@1.0.1: 3439 + resolution: {integrity: sha512-WCtabS6t3c8SkpDBUlb1kjOs7l66xsGdKpIPZsg4wR+B3+u9UAum2odSsF9tnvxg80h4ZxLWMy4pRjOsFIqQpw==} 3440 + engines: {node: '>=4.0.0'} 3441 + 3442 + pg-pool@3.11.0: 3443 + resolution: {integrity: sha512-MJYfvHwtGp870aeusDh+hg9apvOe2zmpZJpyt+BMtzUWlVqbhFmMK6bOBXLBUPd7iRtIF9fZplDc7KrPN3PN7w==} 3444 + peerDependencies: 3445 + pg: '>=8.0' 3446 + 3447 + pg-protocol@1.11.0: 3448 + resolution: {integrity: sha512-pfsxk2M9M3BuGgDOfuy37VNRRX3jmKgMjcvAcWqNDpZSf4cUmv8HSOl5ViRQFsfARFn0KuUQTgLxVMbNq5NW3g==} 3449 + 3450 + pg-types@2.2.0: 3451 + resolution: {integrity: sha512-qTAAlrEsl8s4OiEQY69wDvcMIdQN6wdz5ojQiOy6YRMuynxenON0O5oCpJI6lshc6scgAY8qvJ2On/p+CXY0GA==} 3452 + engines: {node: '>=4'} 3453 + 3454 + pg@8.17.2: 3455 + resolution: {integrity: sha512-vjbKdiBJRqzcYw1fNU5KuHyYvdJ1qpcQg1CeBrHFqV1pWgHeVR6j/+kX0E1AAXfyuLUGY1ICrN2ELKA/z2HWzw==} 3456 + engines: {node: '>= 16.0.0'} 3457 + peerDependencies: 3458 + pg-native: '>=3.0.1' 3459 + peerDependenciesMeta: 3460 + pg-native: 3461 + optional: true 3462 + 3463 + pgpass@1.0.5: 3464 + resolution: {integrity: sha512-FdW9r/jQZhSeohs1Z3sI1yxFQNFvMcnmfuj4WBMUTxOrAyLMaTcE1aAMBiTlbMNaXvBCQuVi0R7hd8udDSP7ug==} 3465 + 3297 3466 picocolors@1.1.1: 3298 3467 resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==} 3299 3468 ··· 3356 3525 resolution: {integrity: sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==} 3357 3526 engines: {node: ^10 || ^12 || >=14} 3358 3527 3528 + postgres-array@2.0.0: 3529 + resolution: {integrity: sha512-VpZrUqU5A69eQyW2c5CA1jtLecCsN2U/bD6VilrFDWq5+5UIEVO7nazS3TEcHf1zuPYO/sqGvUvW62g86RXZuA==} 3530 + engines: {node: '>=4'} 3531 + 3532 + postgres-array@3.0.4: 3533 + resolution: {integrity: sha512-nAUSGfSDGOaOAEGwqsRY27GPOea7CNipJPOA7lPbdEpx5Kg3qzdP0AaWC5MlhTWV9s4hFX39nomVZ+C4tnGOJQ==} 3534 + engines: {node: '>=12'} 3535 + 3536 + postgres-bytea@1.0.1: 3537 + resolution: {integrity: sha512-5+5HqXnsZPE65IJZSMkZtURARZelel2oXUEO8rH83VS/hxH5vv1uHquPg5wZs8yMAfdv971IU+kcPUczi7NVBQ==} 3538 + engines: {node: '>=0.10.0'} 3539 + 3540 + postgres-date@1.0.7: 3541 + resolution: {integrity: sha512-suDmjLVQg78nMK2UZ454hAG+OAW+HQPZ6n++TNDUX+L0+uUlLywnoxJKDou51Zm+zTCjrCl0Nq6J9C5hP9vK/Q==} 3542 + engines: {node: '>=0.10.0'} 3543 + 3544 + postgres-interval@1.2.0: 3545 + resolution: {integrity: sha512-9ZhXKM/rw350N1ovuWHbGxnGh/SNJ4cnxHiM0rxE4VN41wsg8P8zWn9hv/buK00RP4WvlOyr/RBDiptyxVbkZQ==} 3546 + engines: {node: '>=0.10.0'} 3547 + 3548 + postgres@3.4.7: 3549 + resolution: {integrity: sha512-Jtc2612XINuBjIl/QTWsV5UvE8UHuNblcO3vVADSrKsrc6RqGX6lOW1cEo3CM2v0XG4Nat8nI+YM7/f26VxXLw==} 3550 + engines: {node: '>=12'} 3551 + 3359 3552 prelude-ls@1.2.1: 3360 3553 resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} 3361 3554 engines: {node: '>= 0.8.0'} ··· 3369 3562 resolution: {integrity: sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==} 3370 3563 engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} 3371 3564 3372 - prisma@6.19.2: 3373 - resolution: {integrity: sha512-XTKeKxtQElcq3U9/jHyxSPgiRgeYDKxWTPOf6NkXA0dNj5j40MfEsZkMbyNpwDWCUv7YBFUl7I2VK/6ALbmhEg==} 3374 - engines: {node: '>=18.18'} 3565 + prisma@7.3.0: 3566 + resolution: {integrity: sha512-ApYSOLHfMN8WftJA+vL6XwAPOh/aZ0BgUyyKPwUFgjARmG6EBI9LzDPf6SWULQMSAxydV9qn5gLj037nPNlg2w==} 3567 + engines: {node: ^20.19 || ^22.12 || >=24.0} 3375 3568 hasBin: true 3376 3569 peerDependencies: 3377 - typescript: '>=5.1.0' 3570 + better-sqlite3: '>=9.0.0' 3571 + typescript: '>=5.4.0' 3378 3572 peerDependenciesMeta: 3573 + better-sqlite3: 3574 + optional: true 3379 3575 typescript: 3380 3576 optional: true 3381 3577 3382 3578 prop-types@15.8.1: 3383 3579 resolution: {integrity: sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==} 3580 + 3581 + proper-lockfile@4.1.2: 3582 + resolution: {integrity: sha512-TjNPblN4BwAWMXU8s9AEz4JmQxnD1NNL7bNOY/AKUzyamc379FWASUhc/K1pL2noVb+XmZKLL68cjzLsiOAMaA==} 3384 3583 3385 3584 property-information@7.1.0: 3386 3585 resolution: {integrity: sha512-TwEZ+X+yCJmYfL7TPUOcvBZ4QfoT5YenQiJuX//0th53DE6w0xxLEtfK3iyryQFddXuvkIk51EEgrJQ0WJkOmQ==} ··· 3488 3687 resolution: {integrity: sha512-00o4I+DVrefhv+nX0ulyi3biSHCPDe+yLv5o/p6d/UVlirijB8E16FtfwSAi4g3tcqrQ4lRAqQSoFEZJehYEcw==} 3489 3688 engines: {node: '>= 0.4'} 3490 3689 3690 + regexp-to-ast@0.5.0: 3691 + resolution: {integrity: sha512-tlbJqcMHnPKI9zSrystikWKwHkBqu2a/Sgw01h3zFjvYrMxEDYHzzoMZnUrbIfpTFEsoRnnviOXNCzFiSc54Qw==} 3692 + 3491 3693 regexp.prototype.flags@1.5.4: 3492 3694 resolution: {integrity: sha512-dYqgNSZbDwkaJ2ceRd9ojCGjBq+mOm9LmtXnAnEGyHhN/5R7iDW2TRw3h+o/jCFxus3P2LfWIIiwowAjANm7IA==} 3493 3695 engines: {node: '>= 0.4'} ··· 3498 3700 remark-rehype@11.1.2: 3499 3701 resolution: {integrity: sha512-Dh7l57ianaEoIpzbp0PC9UKAdCSVklD8E5Rpw7ETfbTl3FqcOOgq5q2LVDhgGCkaBv7p24JXikPdvhhmHvKMsw==} 3500 3702 3703 + remeda@2.33.4: 3704 + resolution: {integrity: sha512-ygHswjlc/opg2VrtiYvUOPLjxjtdKvjGz1/plDhkG66hjNjFr1xmfrs2ClNFo/E6TyUFiwYNh53bKV26oBoMGQ==} 3705 + 3501 3706 require-from-string@2.0.2: 3502 3707 resolution: {integrity: sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==} 3503 3708 engines: {node: '>=0.10.0'} ··· 3517 3722 resolve@2.0.0-next.5: 3518 3723 resolution: {integrity: sha512-U7WjGVG9sH8tvjW5SmGbQuui75FiyjAX72HX15DwBBwF9dNiQZRQAg9nnPhYy+TUnE0+VcrttuvNI8oSxZcocA==} 3519 3724 hasBin: true 3725 + 3726 + retry@0.12.0: 3727 + resolution: {integrity: sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow==} 3728 + engines: {node: '>= 4'} 3520 3729 3521 3730 reusify@1.1.0: 3522 3731 resolution: {integrity: sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==} ··· 3545 3754 safer-buffer@2.1.2: 3546 3755 resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} 3547 3756 3548 - sass@1.97.2: 3549 - resolution: {integrity: sha512-y5LWb0IlbO4e97Zr7c3mlpabcbBtS+ieiZ9iwDooShpFKWXf62zz5pEPdwrLYm+Bxn1fnbwFGzHuCLSA9tBmrw==} 3757 + sass@1.97.3: 3758 + resolution: {integrity: sha512-fDz1zJpd5GycprAbu4Q2PV/RprsRtKC/0z82z0JLgdytmcq0+ujJbJ/09bPGDxCLkKY3Np5cRAOcWiVkLXJURg==} 3550 3759 engines: {node: '>=14.0.0'} 3551 3760 hasBin: true 3552 3761 ··· 3565 3774 resolution: {integrity: sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==} 3566 3775 engines: {node: '>=10'} 3567 3776 hasBin: true 3777 + 3778 + seq-queue@0.0.5: 3779 + resolution: {integrity: sha512-hr3Wtp/GZIc/6DAGPDcV4/9WoZhjrkXsi5B/07QgX8tsdc6ilr7BFM6PM6rbdAX1kFSDYeZGLipIZZKyQP0O5Q==} 3568 3780 3569 3781 set-function-length@1.2.2: 3570 3782 resolution: {integrity: sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==} ··· 3609 3821 siginfo@2.0.0: 3610 3822 resolution: {integrity: sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==} 3611 3823 3824 + signal-exit@3.0.7: 3825 + resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} 3826 + 3827 + signal-exit@4.1.0: 3828 + resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==} 3829 + engines: {node: '>=14'} 3830 + 3612 3831 source-map-js@1.2.1: 3613 3832 resolution: {integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==} 3614 3833 engines: {node: '>=0.10.0'} ··· 3616 3835 space-separated-tokens@2.0.2: 3617 3836 resolution: {integrity: sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q==} 3618 3837 3838 + split2@4.2.0: 3839 + resolution: {integrity: sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg==} 3840 + engines: {node: '>= 10.x'} 3841 + 3842 + sqlstring@2.3.3: 3843 + resolution: {integrity: sha512-qC9iz2FlN7DQl3+wjwn3802RTyjCx7sDvfQEXchwa6CWOx07/WVfh91gBmQ9fahw8snwGEWU3xGzOt4tFyHLxg==} 3844 + engines: {node: '>= 0.6'} 3845 + 3619 3846 stable-hash@0.0.5: 3620 3847 resolution: {integrity: sha512-+L3ccpzibovGXFK+Ap/f8LOS0ahMrHTf3xu7mMLSpEGU0EO9ucaysSylKo9eRDFNhWve/y275iPmIZ4z39a9iA==} 3621 3848 ··· 3922 4149 util-deprecate@1.0.2: 3923 4150 resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} 3924 4151 4152 + valibot@1.2.0: 4153 + resolution: {integrity: sha512-mm1rxUsmOxzrwnX5arGS+U4T25RdvpPjPN4yR0u9pUBov9+zGVtO84tif1eY4r6zWxVxu3KzIyknJy3rxfRZZg==} 4154 + peerDependencies: 4155 + typescript: '>=5' 4156 + peerDependenciesMeta: 4157 + typescript: 4158 + optional: true 4159 + 3925 4160 vfile-message@4.0.3: 3926 4161 resolution: {integrity: sha512-QTHzsGd1EhbZs4AsQ20JX1rC3cOlt/IWJruk893DfLRr57lcnOeMaWG4K0JrRta4mIJZKth2Au3mM3u03/JWKw==} 3927 4162 ··· 3968 4203 yaml: 3969 4204 optional: true 3970 4205 3971 - vitest@4.0.17: 3972 - resolution: {integrity: sha512-FQMeF0DJdWY0iOnbv466n/0BudNdKj1l5jYgl5JVTwjSsZSlqyXFt/9+1sEyhR6CLowbZpV7O1sCHrzBhucKKg==} 4206 + vitest@4.0.18: 4207 + resolution: {integrity: sha512-hOQuK7h0FGKgBAas7v0mSAsnvrIgAvWmRFjmzpJ7SwFHH3g1k2u37JtYwOwmEKhK6ZO3v9ggDBBm0La1LCK4uQ==} 3973 4208 engines: {node: ^20.0.0 || ^22.0.0 || >=24.0.0} 3974 4209 hasBin: true 3975 4210 peerDependencies: 3976 4211 '@edge-runtime/vm': '*' 3977 4212 '@opentelemetry/api': ^1.9.0 3978 4213 '@types/node': ^20.0.0 || ^22.0.0 || >=24.0.0 3979 - '@vitest/browser-playwright': 4.0.17 3980 - '@vitest/browser-preview': 4.0.17 3981 - '@vitest/browser-webdriverio': 4.0.17 3982 - '@vitest/ui': 4.0.17 4214 + '@vitest/browser-playwright': 4.0.18 4215 + '@vitest/browser-preview': 4.0.18 4216 + '@vitest/browser-webdriverio': 4.0.18 4217 + '@vitest/ui': 4.0.18 3983 4218 happy-dom: '*' 3984 4219 jsdom: '*' 3985 4220 peerDependenciesMeta: ··· 4085 4320 xmlchars@2.2.0: 4086 4321 resolution: {integrity: sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==} 4087 4322 4323 + xtend@4.0.2: 4324 + resolution: {integrity: sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==} 4325 + engines: {node: '>=0.4'} 4326 + 4088 4327 yallist@3.1.1: 4089 4328 resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==} 4090 4329 4091 4330 yocto-queue@0.1.0: 4092 4331 resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} 4093 4332 engines: {node: '>=10'} 4333 + 4334 + zeptomatch@2.1.0: 4335 + resolution: {integrity: sha512-KiGErG2J0G82LSpniV0CtIzjlJ10E04j02VOudJsPyPwNZgGnRKQy7I1R7GMyg/QswnE4l7ohSGrQbQbjXPPDA==} 4094 4336 4095 4337 zod-validation-error@4.0.2: 4096 4338 resolution: {integrity: sha512-Q6/nZLe6jxuU80qb/4uJ4t5v2VEZ44lzQjPDhYJNztRQ4wyWc6VF3D3Kb/fAuPetZQnhS3hnajCf9CsWesghLQ==} ··· 4333 4575 4334 4576 '@atproto-labs/simple-store@0.3.0': {} 4335 4577 4336 - '@atproto/api@0.18.16': 4578 + '@atproto/api@0.18.17': 4337 4579 dependencies: 4338 - '@atproto/common-web': 0.4.12 4339 - '@atproto/lexicon': 0.6.0 4340 - '@atproto/syntax': 0.4.2 4580 + '@atproto/common-web': 0.4.13 4581 + '@atproto/lexicon': 0.6.1 4582 + '@atproto/syntax': 0.4.3 4341 4583 '@atproto/xrpc': 0.7.7 4342 4584 await-lock: 2.2.2 4343 4585 multiformats: 9.9.0 4344 4586 tlds: 1.261.0 4345 4587 zod: 3.25.76 4346 4588 4347 - '@atproto/common-web@0.4.12': 4589 + '@atproto/common-web@0.4.13': 4348 4590 dependencies: 4349 - '@atproto/lex-data': 0.0.8 4350 - '@atproto/lex-json': 0.0.8 4591 + '@atproto/lex-data': 0.0.9 4592 + '@atproto/lex-json': 0.0.9 4593 + '@atproto/syntax': 0.4.3 4351 4594 zod: 3.25.76 4352 4595 4353 4596 '@atproto/did@0.2.4': ··· 4370 4613 multiformats: 9.9.0 4371 4614 zod: 3.25.76 4372 4615 4373 - '@atproto/lex-data@0.0.8': 4616 + '@atproto/lex-data@0.0.9': 4374 4617 dependencies: 4375 - '@atproto/syntax': 0.4.2 4376 4618 multiformats: 9.9.0 4377 4619 tslib: 2.8.1 4378 4620 uint8arrays: 3.0.0 4379 4621 unicode-segmenter: 0.14.5 4380 4622 4381 - '@atproto/lex-json@0.0.8': 4623 + '@atproto/lex-json@0.0.9': 4382 4624 dependencies: 4383 - '@atproto/lex-data': 0.0.8 4625 + '@atproto/lex-data': 0.0.9 4384 4626 tslib: 2.8.1 4385 4627 4386 - '@atproto/lexicon@0.6.0': 4628 + '@atproto/lexicon@0.6.1': 4387 4629 dependencies: 4388 - '@atproto/common-web': 0.4.12 4389 - '@atproto/syntax': 0.4.2 4630 + '@atproto/common-web': 0.4.13 4631 + '@atproto/syntax': 0.4.3 4390 4632 iso-datestring-validator: 2.2.2 4391 4633 multiformats: 9.9.0 4392 4634 zod: 3.25.76 ··· 4425 4667 '@atproto/jwk': 0.6.0 4426 4668 zod: 3.25.76 4427 4669 4428 - '@atproto/syntax@0.4.2': {} 4670 + '@atproto/syntax@0.4.3': 4671 + dependencies: 4672 + tslib: 2.8.1 4429 4673 4430 4674 '@atproto/xrpc@0.7.7': 4431 4675 dependencies: 4432 - '@atproto/lexicon': 0.6.0 4676 + '@atproto/lexicon': 0.6.1 4433 4677 zod: 3.25.76 4434 4678 4435 4679 '@babel/code-frame@7.28.6': ··· 4550 4794 4551 4795 '@bcoe/v8-coverage@1.0.2': {} 4552 4796 4797 + '@chevrotain/cst-dts-gen@10.5.0': 4798 + dependencies: 4799 + '@chevrotain/gast': 10.5.0 4800 + '@chevrotain/types': 10.5.0 4801 + lodash: 4.17.21 4802 + 4803 + '@chevrotain/gast@10.5.0': 4804 + dependencies: 4805 + '@chevrotain/types': 10.5.0 4806 + lodash: 4.17.21 4807 + 4808 + '@chevrotain/types@10.5.0': {} 4809 + 4810 + '@chevrotain/utils@10.5.0': {} 4811 + 4553 4812 '@csstools/color-helpers@5.1.0': {} 4554 4813 4555 4814 '@csstools/css-calc@2.1.4(@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4))(@csstools/css-tokenizer@3.0.4)': ··· 4572 4831 4573 4832 '@csstools/css-tokenizer@3.0.4': {} 4574 4833 4834 + '@electric-sql/pglite-socket@0.0.20(@electric-sql/pglite@0.3.15)': 4835 + dependencies: 4836 + '@electric-sql/pglite': 0.3.15 4837 + 4838 + '@electric-sql/pglite-tools@0.2.20(@electric-sql/pglite@0.3.15)': 4839 + dependencies: 4840 + '@electric-sql/pglite': 0.3.15 4841 + 4842 + '@electric-sql/pglite@0.3.15': {} 4843 + 4575 4844 '@emnapi/core@1.8.1': 4576 4845 dependencies: 4577 4846 '@emnapi/wasi-threads': 1.1.0 ··· 4771 5040 dependencies: 4772 5041 tslib: 2.8.1 4773 5042 5043 + '@hono/node-server@1.19.9(hono@4.11.4)': 5044 + dependencies: 5045 + hono: 4.11.4 5046 + 4774 5047 '@humanfs/core@0.19.1': {} 4775 5048 4776 5049 '@humanfs/node@0.16.7': ··· 4935 5208 dependencies: 4936 5209 react: 19.2.3 4937 5210 5211 + '@mrleebo/prisma-ast@0.13.1': 5212 + dependencies: 5213 + chevrotain: 10.5.0 5214 + lilconfig: 2.1.0 5215 + 4938 5216 '@multiformats/base-x@4.0.1': {} 4939 5217 4940 5218 '@napi-rs/wasm-runtime@0.2.12': ··· 5064 5342 '@parcel/watcher-win32-ia32': 2.5.4 5065 5343 '@parcel/watcher-win32-x64': 2.5.4 5066 5344 5067 - '@prisma/client@6.19.2(prisma@6.19.2(typescript@5.9.3))(typescript@5.9.3)': 5345 + '@prisma/adapter-pg@7.3.0': 5346 + dependencies: 5347 + '@prisma/driver-adapter-utils': 7.3.0 5348 + pg: 8.17.2 5349 + postgres-array: 3.0.4 5350 + transitivePeerDependencies: 5351 + - pg-native 5352 + 5353 + '@prisma/client-runtime-utils@7.3.0': {} 5354 + 5355 + '@prisma/client@7.3.0(prisma@7.3.0(@types/react@19.2.9)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(typescript@5.9.3))(typescript@5.9.3)': 5356 + dependencies: 5357 + '@prisma/client-runtime-utils': 7.3.0 5068 5358 optionalDependencies: 5069 - prisma: 6.19.2(typescript@5.9.3) 5359 + prisma: 7.3.0(@types/react@19.2.9)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(typescript@5.9.3) 5070 5360 typescript: 5.9.3 5071 5361 5072 - '@prisma/config@6.19.2': 5362 + '@prisma/config@7.3.0': 5073 5363 dependencies: 5074 5364 c12: 3.1.0 5075 5365 deepmerge-ts: 7.1.5 ··· 5078 5368 transitivePeerDependencies: 5079 5369 - magicast 5080 5370 5081 - '@prisma/debug@6.19.2': {} 5371 + '@prisma/debug@7.2.0': {} 5082 5372 5083 - '@prisma/engines-version@7.1.1-3.c2990dca591cba766e3b7ef5d9e8a84796e47ab7': {} 5373 + '@prisma/debug@7.3.0': {} 5084 5374 5085 - '@prisma/engines@6.19.2': 5375 + '@prisma/dev@0.20.0(typescript@5.9.3)': 5086 5376 dependencies: 5087 - '@prisma/debug': 6.19.2 5088 - '@prisma/engines-version': 7.1.1-3.c2990dca591cba766e3b7ef5d9e8a84796e47ab7 5089 - '@prisma/fetch-engine': 6.19.2 5090 - '@prisma/get-platform': 6.19.2 5377 + '@electric-sql/pglite': 0.3.15 5378 + '@electric-sql/pglite-socket': 0.0.20(@electric-sql/pglite@0.3.15) 5379 + '@electric-sql/pglite-tools': 0.2.20(@electric-sql/pglite@0.3.15) 5380 + '@hono/node-server': 1.19.9(hono@4.11.4) 5381 + '@mrleebo/prisma-ast': 0.13.1 5382 + '@prisma/get-platform': 7.2.0 5383 + '@prisma/query-plan-executor': 7.2.0 5384 + foreground-child: 3.3.1 5385 + get-port-please: 3.2.0 5386 + hono: 4.11.4 5387 + http-status-codes: 2.3.0 5388 + pathe: 2.0.3 5389 + proper-lockfile: 4.1.2 5390 + remeda: 2.33.4 5391 + std-env: 3.10.0 5392 + valibot: 1.2.0(typescript@5.9.3) 5393 + zeptomatch: 2.1.0 5394 + transitivePeerDependencies: 5395 + - typescript 5091 5396 5092 - '@prisma/fetch-engine@6.19.2': 5397 + '@prisma/driver-adapter-utils@7.3.0': 5093 5398 dependencies: 5094 - '@prisma/debug': 6.19.2 5095 - '@prisma/engines-version': 7.1.1-3.c2990dca591cba766e3b7ef5d9e8a84796e47ab7 5096 - '@prisma/get-platform': 6.19.2 5399 + '@prisma/debug': 7.3.0 5097 5400 5098 - '@prisma/get-platform@6.19.2': 5401 + '@prisma/engines-version@7.3.0-16.9d6ad21cbbceab97458517b147a6a09ff43aa735': {} 5402 + 5403 + '@prisma/engines@7.3.0': 5404 + dependencies: 5405 + '@prisma/debug': 7.3.0 5406 + '@prisma/engines-version': 7.3.0-16.9d6ad21cbbceab97458517b147a6a09ff43aa735 5407 + '@prisma/fetch-engine': 7.3.0 5408 + '@prisma/get-platform': 7.3.0 5409 + 5410 + '@prisma/fetch-engine@7.3.0': 5411 + dependencies: 5412 + '@prisma/debug': 7.3.0 5413 + '@prisma/engines-version': 7.3.0-16.9d6ad21cbbceab97458517b147a6a09ff43aa735 5414 + '@prisma/get-platform': 7.3.0 5415 + 5416 + '@prisma/get-platform@7.2.0': 5099 5417 dependencies: 5100 - '@prisma/debug': 6.19.2 5418 + '@prisma/debug': 7.2.0 5419 + 5420 + '@prisma/get-platform@7.3.0': 5421 + dependencies: 5422 + '@prisma/debug': 7.3.0 5423 + 5424 + '@prisma/query-plan-executor@7.2.0': {} 5425 + 5426 + '@prisma/studio-core@0.13.1(@types/react@19.2.9)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': 5427 + dependencies: 5428 + '@types/react': 19.2.9 5429 + react: 19.2.3 5430 + react-dom: 19.2.3(react@19.2.3) 5101 5431 5102 5432 '@rolldown/pluginutils@1.0.0-beta.53': {} 5103 5433 ··· 5413 5743 5414 5744 '@types/ms@2.1.0': {} 5415 5745 5416 - '@types/node@25.0.9': 5746 + '@types/node@25.0.10': 5417 5747 dependencies: 5418 5748 undici-types: 7.16.0 5749 + 5750 + '@types/pg@8.16.0': 5751 + dependencies: 5752 + '@types/node': 25.0.10 5753 + pg-protocol: 1.11.0 5754 + pg-types: 2.2.0 5419 5755 5420 5756 '@types/react-dom@19.2.3(@types/react@19.2.9)': 5421 5757 dependencies: ··· 5672 6008 '@unrs/resolver-binding-win32-x64-msvc@1.11.1': 5673 6009 optional: true 5674 6010 5675 - '@vitejs/plugin-react@5.1.2(vite@7.3.1(@types/node@25.0.9)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.97.2)(sugarss@5.0.1(postcss@8.5.6)))': 6011 + '@vitejs/plugin-react@5.1.2(vite@7.3.1(@types/node@25.0.10)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.97.3)(sugarss@5.0.1(postcss@8.5.6)))': 5676 6012 dependencies: 5677 6013 '@babel/core': 7.28.6 5678 6014 '@babel/plugin-transform-react-jsx-self': 7.27.1(@babel/core@7.28.6) ··· 5680 6016 '@rolldown/pluginutils': 1.0.0-beta.53 5681 6017 '@types/babel__core': 7.20.5 5682 6018 react-refresh: 0.18.0 5683 - vite: 7.3.1(@types/node@25.0.9)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.97.2)(sugarss@5.0.1(postcss@8.5.6)) 6019 + vite: 7.3.1(@types/node@25.0.10)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.97.3)(sugarss@5.0.1(postcss@8.5.6)) 5684 6020 transitivePeerDependencies: 5685 6021 - supports-color 5686 6022 5687 - '@vitest/coverage-v8@4.0.17(vitest@4.0.17(@types/node@25.0.9)(jiti@2.6.1)(jsdom@27.4.0(@noble/hashes@1.8.0))(lightningcss@1.30.2)(sass@1.97.2)(sugarss@5.0.1(postcss@8.5.6)))': 6023 + '@vitest/coverage-v8@4.0.18(vitest@4.0.18(@types/node@25.0.10)(jiti@2.6.1)(jsdom@27.4.0(@noble/hashes@1.8.0))(lightningcss@1.30.2)(sass@1.97.3)(sugarss@5.0.1(postcss@8.5.6)))': 5688 6024 dependencies: 5689 6025 '@bcoe/v8-coverage': 1.0.2 5690 - '@vitest/utils': 4.0.17 6026 + '@vitest/utils': 4.0.18 5691 6027 ast-v8-to-istanbul: 0.3.10 5692 6028 istanbul-lib-coverage: 3.2.2 5693 6029 istanbul-lib-report: 3.0.1 ··· 5696 6032 obug: 2.1.1 5697 6033 std-env: 3.10.0 5698 6034 tinyrainbow: 3.0.3 5699 - vitest: 4.0.17(@types/node@25.0.9)(jiti@2.6.1)(jsdom@27.4.0(@noble/hashes@1.8.0))(lightningcss@1.30.2)(sass@1.97.2)(sugarss@5.0.1(postcss@8.5.6)) 6035 + vitest: 4.0.18(@types/node@25.0.10)(jiti@2.6.1)(jsdom@27.4.0(@noble/hashes@1.8.0))(lightningcss@1.30.2)(sass@1.97.3)(sugarss@5.0.1(postcss@8.5.6)) 5700 6036 5701 - '@vitest/expect@4.0.17': 6037 + '@vitest/expect@4.0.18': 5702 6038 dependencies: 5703 6039 '@standard-schema/spec': 1.1.0 5704 6040 '@types/chai': 5.2.3 5705 - '@vitest/spy': 4.0.17 5706 - '@vitest/utils': 4.0.17 6041 + '@vitest/spy': 4.0.18 6042 + '@vitest/utils': 4.0.18 5707 6043 chai: 6.2.2 5708 6044 tinyrainbow: 3.0.3 5709 6045 5710 - '@vitest/mocker@4.0.17(vite@7.3.1(@types/node@25.0.9)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.97.2)(sugarss@5.0.1(postcss@8.5.6)))': 6046 + '@vitest/mocker@4.0.18(vite@7.3.1(@types/node@25.0.10)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.97.3)(sugarss@5.0.1(postcss@8.5.6)))': 5711 6047 dependencies: 5712 - '@vitest/spy': 4.0.17 6048 + '@vitest/spy': 4.0.18 5713 6049 estree-walker: 3.0.3 5714 6050 magic-string: 0.30.21 5715 6051 optionalDependencies: 5716 - vite: 7.3.1(@types/node@25.0.9)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.97.2)(sugarss@5.0.1(postcss@8.5.6)) 6052 + vite: 7.3.1(@types/node@25.0.10)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.97.3)(sugarss@5.0.1(postcss@8.5.6)) 5717 6053 5718 - '@vitest/pretty-format@4.0.17': 6054 + '@vitest/pretty-format@4.0.18': 5719 6055 dependencies: 5720 6056 tinyrainbow: 3.0.3 5721 6057 5722 - '@vitest/runner@4.0.17': 6058 + '@vitest/runner@4.0.18': 5723 6059 dependencies: 5724 - '@vitest/utils': 4.0.17 6060 + '@vitest/utils': 4.0.18 5725 6061 pathe: 2.0.3 5726 6062 5727 - '@vitest/snapshot@4.0.17': 6063 + '@vitest/snapshot@4.0.18': 5728 6064 dependencies: 5729 - '@vitest/pretty-format': 4.0.17 6065 + '@vitest/pretty-format': 4.0.18 5730 6066 magic-string: 0.30.21 5731 6067 pathe: 2.0.3 5732 6068 5733 - '@vitest/spy@4.0.17': {} 6069 + '@vitest/spy@4.0.18': {} 5734 6070 5735 - '@vitest/utils@4.0.17': 6071 + '@vitest/utils@4.0.18': 5736 6072 dependencies: 5737 - '@vitest/pretty-format': 4.0.17 6073 + '@vitest/pretty-format': 4.0.18 5738 6074 tinyrainbow: 3.0.3 5739 6075 5740 6076 acorn-jsx@5.3.2(acorn@8.15.0): ··· 5852 6188 possible-typed-array-names: 1.1.0 5853 6189 5854 6190 await-lock@2.2.2: {} 6191 + 6192 + aws-ssl-profiles@1.1.2: {} 5855 6193 5856 6194 axe-core@4.11.1: {} 5857 6195 ··· 5894 6232 5895 6233 bun-types@1.3.6: 5896 6234 dependencies: 5897 - '@types/node': 25.0.9 6235 + '@types/node': 25.0.10 5898 6236 5899 6237 c12@3.1.0: 5900 6238 dependencies: ··· 5978 6316 undici: 7.18.2 5979 6317 whatwg-mimetype: 4.0.0 5980 6318 6319 + chevrotain@10.5.0: 6320 + dependencies: 6321 + '@chevrotain/cst-dts-gen': 10.5.0 6322 + '@chevrotain/gast': 10.5.0 6323 + '@chevrotain/types': 10.5.0 6324 + '@chevrotain/utils': 10.5.0 6325 + lodash: 4.17.21 6326 + regexp-to-ast: 0.5.0 6327 + 5981 6328 chokidar@4.0.3: 5982 6329 dependencies: 5983 6330 readdirp: 4.1.2 ··· 6104 6451 object-keys: 1.1.1 6105 6452 6106 6453 defu@6.1.4: {} 6454 + 6455 + denque@2.1.0: {} 6107 6456 6108 6457 dequal@2.0.3: {} 6109 6458 ··· 6611 6960 dependencies: 6612 6961 is-callable: 1.2.7 6613 6962 6963 + foreground-child@3.3.1: 6964 + dependencies: 6965 + cross-spawn: 7.0.6 6966 + signal-exit: 4.1.0 6967 + 6614 6968 fsevents@2.3.3: 6615 6969 optional: true 6616 6970 ··· 6627 6981 6628 6982 functions-have-names@1.2.3: {} 6629 6983 6984 + generate-function@2.3.1: 6985 + dependencies: 6986 + is-property: 1.0.2 6987 + 6630 6988 generator-function@2.0.1: {} 6631 6989 6632 6990 gensync@1.0.0-beta.2: {} ··· 6645 7003 math-intrinsics: 1.1.0 6646 7004 6647 7005 get-nonce@1.0.1: {} 7006 + 7007 + get-port-please@3.2.0: {} 6648 7008 6649 7009 get-proto@1.0.1: 6650 7010 dependencies: ··· 6691 7051 6692 7052 graceful-fs@4.2.11: {} 6693 7053 7054 + grammex@3.1.12: {} 7055 + 7056 + graphmatch@1.1.0: {} 7057 + 6694 7058 has-bigints@1.1.0: {} 6695 7059 6696 7060 has-flag@4.0.0: {} ··· 6743 7107 dependencies: 6744 7108 hermes-estree: 0.25.1 6745 7109 7110 + hono@4.11.4: {} 7111 + 6746 7112 html-encoding-sniffer@6.0.0(@noble/hashes@1.8.0): 6747 7113 dependencies: 6748 7114 '@exodus/bytes': 1.9.0(@noble/hashes@1.8.0) ··· 6766 7132 debug: 4.4.3 6767 7133 transitivePeerDependencies: 6768 7134 - supports-color 7135 + 7136 + http-status-codes@2.3.0: {} 6769 7137 6770 7138 https-proxy-agent@7.0.6: 6771 7139 dependencies: ··· 6902 7270 6903 7271 is-potential-custom-element-name@1.0.1: {} 6904 7272 7273 + is-property@1.0.2: {} 7274 + 6905 7275 is-regex@1.2.1: 6906 7276 dependencies: 6907 7277 call-bound: 1.0.4 ··· 7096 7466 lightningcss-win32-arm64-msvc: 1.30.2 7097 7467 lightningcss-win32-x64-msvc: 1.30.2 7098 7468 7469 + lilconfig@2.1.0: {} 7470 + 7099 7471 locate-path@6.0.0: 7100 7472 dependencies: 7101 7473 p-locate: 5.0.0 7102 7474 7103 7475 lodash.merge@4.6.2: {} 7476 + 7477 + lodash@4.17.21: {} 7478 + 7479 + long@5.3.2: {} 7104 7480 7105 7481 longest-streak@3.1.0: {} 7106 7482 ··· 7116 7492 dependencies: 7117 7493 yallist: 3.1.1 7118 7494 7119 - lucide-react@0.562.0(react@19.2.3): 7495 + lru.min@1.1.3: {} 7496 + 7497 + lucide-react@0.563.0(react@19.2.3): 7120 7498 dependencies: 7121 7499 react: 19.2.3 7122 7500 ··· 7389 7767 7390 7768 multiformats@9.9.0: {} 7391 7769 7770 + mysql2@3.15.3: 7771 + dependencies: 7772 + aws-ssl-profiles: 1.1.2 7773 + denque: 2.1.0 7774 + generate-function: 2.3.1 7775 + iconv-lite: 0.7.2 7776 + long: 5.3.2 7777 + lru.min: 1.1.3 7778 + named-placeholders: 1.1.6 7779 + seq-queue: 0.0.5 7780 + sqlstring: 2.3.3 7781 + 7782 + named-placeholders@1.1.6: 7783 + dependencies: 7784 + lru.min: 1.1.3 7785 + 7392 7786 nanoid@3.3.11: {} 7393 7787 7394 7788 napi-postinstall@0.3.4: {} ··· 7399 7793 7400 7794 next-intl-swc-plugin-extractor@4.7.0: {} 7401 7795 7402 - next-intl@4.7.0(next@16.1.4(@babel/core@7.28.6)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(sass@1.97.2))(react@19.2.3)(typescript@5.9.3): 7796 + next-intl@4.7.0(next@16.1.4(@babel/core@7.28.6)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(sass@1.97.3))(react@19.2.3)(typescript@5.9.3): 7403 7797 dependencies: 7404 7798 '@formatjs/intl-localematcher': 0.5.10 7405 7799 '@parcel/watcher': 2.5.4 7406 7800 '@swc/core': 1.15.8 7407 7801 negotiator: 1.0.0 7408 - next: 16.1.4(@babel/core@7.28.6)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(sass@1.97.2) 7802 + next: 16.1.4(@babel/core@7.28.6)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(sass@1.97.3) 7409 7803 next-intl-swc-plugin-extractor: 4.7.0 7410 7804 po-parser: 2.1.1 7411 7805 react: 19.2.3 ··· 7415 7809 transitivePeerDependencies: 7416 7810 - '@swc/helpers' 7417 7811 7418 - next@16.1.4(@babel/core@7.28.6)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(sass@1.97.2): 7812 + next@16.1.4(@babel/core@7.28.6)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(sass@1.97.3): 7419 7813 dependencies: 7420 7814 '@next/env': 16.1.4 7421 7815 '@swc/helpers': 0.5.15 ··· 7434 7828 '@next/swc-linux-x64-musl': 16.1.4 7435 7829 '@next/swc-win32-arm64-msvc': 16.1.4 7436 7830 '@next/swc-win32-x64-msvc': 16.1.4 7437 - sass: 1.97.2 7831 + sass: 1.97.3 7438 7832 sharp: 0.34.5 7439 7833 transitivePeerDependencies: 7440 7834 - '@babel/core' 7441 7835 - babel-plugin-macros 7442 7836 7443 - nextjs-toploader@3.9.17(next@16.1.4(@babel/core@7.28.6)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(sass@1.97.2))(react-dom@19.2.3(react@19.2.3))(react@19.2.3): 7837 + nextjs-toploader@3.9.17(next@16.1.4(@babel/core@7.28.6)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(sass@1.97.3))(react-dom@19.2.3(react@19.2.3))(react@19.2.3): 7444 7838 dependencies: 7445 - next: 16.1.4(@babel/core@7.28.6)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(sass@1.97.2) 7839 + next: 16.1.4(@babel/core@7.28.6)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(sass@1.97.3) 7446 7840 nprogress: 0.2.0 7447 7841 prop-types: 15.8.1 7448 7842 react: 19.2.3 ··· 7591 7985 7592 7986 perfect-debounce@1.0.0: {} 7593 7987 7988 + pg-cloudflare@1.3.0: 7989 + optional: true 7990 + 7991 + pg-connection-string@2.10.1: {} 7992 + 7993 + pg-int8@1.0.1: {} 7994 + 7995 + pg-pool@3.11.0(pg@8.17.2): 7996 + dependencies: 7997 + pg: 8.17.2 7998 + 7999 + pg-protocol@1.11.0: {} 8000 + 8001 + pg-types@2.2.0: 8002 + dependencies: 8003 + pg-int8: 1.0.1 8004 + postgres-array: 2.0.0 8005 + postgres-bytea: 1.0.1 8006 + postgres-date: 1.0.7 8007 + postgres-interval: 1.2.0 8008 + 8009 + pg@8.17.2: 8010 + dependencies: 8011 + pg-connection-string: 2.10.1 8012 + pg-pool: 3.11.0(pg@8.17.2) 8013 + pg-protocol: 1.11.0 8014 + pg-types: 2.2.0 8015 + pgpass: 1.0.5 8016 + optionalDependencies: 8017 + pg-cloudflare: 1.3.0 8018 + 8019 + pgpass@1.0.5: 8020 + dependencies: 8021 + split2: 4.2.0 8022 + 7594 8023 picocolors@1.1.1: {} 7595 8024 7596 8025 picomatch@2.3.1: {} ··· 7652 8081 picocolors: 1.1.1 7653 8082 source-map-js: 1.2.1 7654 8083 8084 + postgres-array@2.0.0: {} 8085 + 8086 + postgres-array@3.0.4: {} 8087 + 8088 + postgres-bytea@1.0.1: {} 8089 + 8090 + postgres-date@1.0.7: {} 8091 + 8092 + postgres-interval@1.2.0: 8093 + dependencies: 8094 + xtend: 4.0.2 8095 + 8096 + postgres@3.4.7: {} 8097 + 7655 8098 prelude-ls@1.2.1: {} 7656 8099 7657 8100 prettier@3.8.0: {} ··· 7662 8105 ansi-styles: 5.2.0 7663 8106 react-is: 17.0.2 7664 8107 7665 - prisma@6.19.2(typescript@5.9.3): 8108 + prisma@7.3.0(@types/react@19.2.9)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(typescript@5.9.3): 7666 8109 dependencies: 7667 - '@prisma/config': 6.19.2 7668 - '@prisma/engines': 6.19.2 8110 + '@prisma/config': 7.3.0 8111 + '@prisma/dev': 0.20.0(typescript@5.9.3) 8112 + '@prisma/engines': 7.3.0 8113 + '@prisma/studio-core': 0.13.1(@types/react@19.2.9)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) 8114 + mysql2: 3.15.3 8115 + postgres: 3.4.7 7669 8116 optionalDependencies: 7670 8117 typescript: 5.9.3 7671 8118 transitivePeerDependencies: 8119 + - '@types/react' 7672 8120 - magicast 8121 + - react 8122 + - react-dom 7673 8123 7674 8124 prop-types@15.8.1: 7675 8125 dependencies: 7676 8126 loose-envify: 1.4.0 7677 8127 object-assign: 4.1.1 7678 8128 react-is: 16.13.1 8129 + 8130 + proper-lockfile@4.1.2: 8131 + dependencies: 8132 + graceful-fs: 4.2.11 8133 + retry: 0.12.0 8134 + signal-exit: 3.0.7 7679 8135 7680 8136 property-information@7.1.0: {} 7681 8137 ··· 7793 8249 get-proto: 1.0.1 7794 8250 which-builtin-type: 1.2.1 7795 8251 8252 + regexp-to-ast@0.5.0: {} 8253 + 7796 8254 regexp.prototype.flags@1.5.4: 7797 8255 dependencies: 7798 8256 call-bind: 1.0.8 ··· 7819 8277 unified: 11.0.5 7820 8278 vfile: 6.0.3 7821 8279 8280 + remeda@2.33.4: {} 8281 + 7822 8282 require-from-string@2.0.2: {} 7823 8283 7824 8284 resolve-from@4.0.0: {} ··· 7837 8297 path-parse: 1.0.7 7838 8298 supports-preserve-symlinks-flag: 1.0.0 7839 8299 8300 + retry@0.12.0: {} 8301 + 7840 8302 reusify@1.1.0: {} 7841 8303 7842 8304 rollup@4.55.3: ··· 7895 8357 7896 8358 safer-buffer@2.1.2: {} 7897 8359 7898 - sass@1.97.2: 8360 + sass@1.97.3: 7899 8361 dependencies: 7900 8362 chokidar: 4.0.3 7901 8363 immutable: 5.1.4 ··· 7912 8374 semver@6.3.1: {} 7913 8375 7914 8376 semver@7.7.3: {} 8377 + 8378 + seq-queue@0.0.5: {} 7915 8379 7916 8380 set-function-length@1.2.2: 7917 8381 dependencies: ··· 8003 8467 8004 8468 siginfo@2.0.0: {} 8005 8469 8470 + signal-exit@3.0.7: {} 8471 + 8472 + signal-exit@4.1.0: {} 8473 + 8006 8474 source-map-js@1.2.1: {} 8007 8475 8008 8476 space-separated-tokens@2.0.2: {} 8477 + 8478 + split2@4.2.0: {} 8479 + 8480 + sqlstring@2.3.3: {} 8009 8481 8010 8482 stable-hash@0.0.5: {} 8011 8483 ··· 8351 8823 8352 8824 util-deprecate@1.0.2: {} 8353 8825 8826 + valibot@1.2.0(typescript@5.9.3): 8827 + optionalDependencies: 8828 + typescript: 5.9.3 8829 + 8354 8830 vfile-message@4.0.3: 8355 8831 dependencies: 8356 8832 '@types/unist': 3.0.3 ··· 8361 8837 '@types/unist': 3.0.3 8362 8838 vfile-message: 4.0.3 8363 8839 8364 - vite@7.3.1(@types/node@25.0.9)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.97.2)(sugarss@5.0.1(postcss@8.5.6)): 8840 + vite@7.3.1(@types/node@25.0.10)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.97.3)(sugarss@5.0.1(postcss@8.5.6)): 8365 8841 dependencies: 8366 8842 esbuild: 0.27.2 8367 8843 fdir: 6.5.0(picomatch@4.0.3) ··· 8370 8846 rollup: 4.55.3 8371 8847 tinyglobby: 0.2.15 8372 8848 optionalDependencies: 8373 - '@types/node': 25.0.9 8849 + '@types/node': 25.0.10 8374 8850 fsevents: 2.3.3 8375 8851 jiti: 2.6.1 8376 8852 lightningcss: 1.30.2 8377 - sass: 1.97.2 8853 + sass: 1.97.3 8378 8854 sugarss: 5.0.1(postcss@8.5.6) 8379 8855 8380 - vitest@4.0.17(@types/node@25.0.9)(jiti@2.6.1)(jsdom@27.4.0(@noble/hashes@1.8.0))(lightningcss@1.30.2)(sass@1.97.2)(sugarss@5.0.1(postcss@8.5.6)): 8856 + vitest@4.0.18(@types/node@25.0.10)(jiti@2.6.1)(jsdom@27.4.0(@noble/hashes@1.8.0))(lightningcss@1.30.2)(sass@1.97.3)(sugarss@5.0.1(postcss@8.5.6)): 8381 8857 dependencies: 8382 - '@vitest/expect': 4.0.17 8383 - '@vitest/mocker': 4.0.17(vite@7.3.1(@types/node@25.0.9)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.97.2)(sugarss@5.0.1(postcss@8.5.6))) 8384 - '@vitest/pretty-format': 4.0.17 8385 - '@vitest/runner': 4.0.17 8386 - '@vitest/snapshot': 4.0.17 8387 - '@vitest/spy': 4.0.17 8388 - '@vitest/utils': 4.0.17 8858 + '@vitest/expect': 4.0.18 8859 + '@vitest/mocker': 4.0.18(vite@7.3.1(@types/node@25.0.10)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.97.3)(sugarss@5.0.1(postcss@8.5.6))) 8860 + '@vitest/pretty-format': 4.0.18 8861 + '@vitest/runner': 4.0.18 8862 + '@vitest/snapshot': 4.0.18 8863 + '@vitest/spy': 4.0.18 8864 + '@vitest/utils': 4.0.18 8389 8865 es-module-lexer: 1.7.0 8390 8866 expect-type: 1.3.0 8391 8867 magic-string: 0.30.21 ··· 8397 8873 tinyexec: 1.0.2 8398 8874 tinyglobby: 0.2.15 8399 8875 tinyrainbow: 3.0.3 8400 - vite: 7.3.1(@types/node@25.0.9)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.97.2)(sugarss@5.0.1(postcss@8.5.6)) 8876 + vite: 7.3.1(@types/node@25.0.10)(jiti@2.6.1)(lightningcss@1.30.2)(sass@1.97.3)(sugarss@5.0.1(postcss@8.5.6)) 8401 8877 why-is-node-running: 2.3.0 8402 8878 optionalDependencies: 8403 - '@types/node': 25.0.9 8879 + '@types/node': 25.0.10 8404 8880 jsdom: 27.4.0(@noble/hashes@1.8.0) 8405 8881 transitivePeerDependencies: 8406 8882 - jiti ··· 8506 8982 8507 8983 xmlchars@2.2.0: {} 8508 8984 8985 + xtend@4.0.2: {} 8986 + 8509 8987 yallist@3.1.1: {} 8510 8988 8511 8989 yocto-queue@0.1.0: {} 8990 + 8991 + zeptomatch@2.1.0: 8992 + dependencies: 8993 + grammex: 3.1.12 8994 + graphmatch: 1.1.0 8512 8995 8513 8996 zod-validation-error@4.0.2(zod@4.3.5): 8514 8997 dependencies:
-1
frontend/prisma/schema.prisma
··· 4 4 5 5 datasource db { 6 6 provider = "postgresql" 7 - url = env("DATABASE_URL") 8 7 } 9 8 model Bookmark { 10 9 uri String @id
+12 -1
frontend/src/logic/HandlePrismaClient.ts
··· 1 - // Note : Include Prisma Client. Please use Server Components or APIs only. 2 1 import { PrismaClient } from '@prisma/client'; 2 + import { PrismaPg } from '@prisma/adapter-pg'; 3 + import pg from 'pg'; 3 4 export * from '@prisma/client'; 4 5 5 6 const globalForPrisma = globalThis as unknown as { prisma: PrismaClient }; 6 7 8 + // Internal networks (localhost, Docker service names without dots) don't need SSL 9 + const isInternalNetwork = !process.env.DATABASE_URL?.match(/@[\w-]+\.[\w.-]+[:/]/); 10 + 11 + const pool = new pg.Pool({ 12 + connectionString: process.env.DATABASE_URL, 13 + ssl: isInternalNetwork ? false : { rejectUnauthorized: false }, 14 + }); 15 + const adapter = new PrismaPg(pool); 16 + 7 17 export const prisma = 8 18 globalForPrisma.prisma || 9 19 new PrismaClient({ 20 + adapter, 10 21 log: 11 22 process.env.NODE_ENV === 'development' 12 23 ? ['query', 'error', 'warn']