From b94b7b5216d6ca268cc26bc5174df035074dde71 Mon Sep 17 00:00:00 2001 From: Rihan Arfan Date: Mon, 13 Oct 2025 11:15:21 +0100 Subject: [PATCH 01/11] feat: use nuxthub --- nuxt.config.ts | 8 +- package.json | 1 + pnpm-lock.yaml | 1066 +++++++++++++++++++++++++++++++-- server/api/chats/[id].post.ts | 5 +- server/utils/drizzle.ts | 9 +- 5 files changed, 1033 insertions(+), 56 deletions(-) diff --git a/nuxt.config.ts b/nuxt.config.ts index 370b850..4d68857 100644 --- a/nuxt.config.ts +++ b/nuxt.config.ts @@ -4,7 +4,8 @@ export default defineNuxtConfig({ '@nuxt/eslint', '@nuxt/ui', '@nuxtjs/mdc', - 'nuxt-auth-utils' + 'nuxt-auth-utils', + '@nuxthub/core-nightly' ], devtools: { @@ -32,6 +33,11 @@ export default defineNuxtConfig({ } }, + hub: { + ai: 'vercel', + database: 'postgresql' + }, + vite: { $server: { build: { diff --git a/package.json b/package.json index d008f15..f3f824d 100644 --- a/package.json +++ b/package.json @@ -19,6 +19,7 @@ "@iconify-json/lucide": "^1.2.68", "@iconify-json/simple-icons": "^1.2.54", "@nuxt/ui": "^4.0.1", + "@nuxthub/core-nightly": "1.0.0-20251013-051212-5debfb7", "@nuxtjs/mdc": "^0.17.4", "ai": "^5.0.60", "date-fns": "^4.1.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 216ff99..a6bb23b 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -13,10 +13,10 @@ importers: dependencies: '@ai-sdk/gateway': specifier: ^1.0.33 - version: 1.0.33(zod@4.1.11) + version: 1.0.33(zod@4.1.12) '@ai-sdk/vue': specifier: ^2.0.60 - version: 2.0.60(vue@3.5.22(typescript@5.9.3))(zod@4.1.11) + version: 2.0.60(vue@3.5.22(typescript@5.9.3))(zod@4.1.12) '@iconify-json/logos': specifier: ^1.2.9 version: 1.2.9 @@ -28,22 +28,25 @@ importers: version: 1.2.54 '@nuxt/ui': specifier: ^4.0.1 - version: 4.0.1(@babel/parser@7.28.4)(change-case@5.4.4)(db0@0.3.4(drizzle-orm@0.44.6(@opentelemetry/api@1.9.0)(pg@8.16.3)))(embla-carousel@8.6.0)(ioredis@5.8.0)(magicast@0.3.5)(typescript@5.9.3)(vite@7.1.9(@types/node@24.7.0)(jiti@2.6.1)(lightningcss@1.30.1)(terser@5.44.0)(yaml@2.8.1))(vue-router@4.5.1(vue@3.5.22(typescript@5.9.3)))(vue@3.5.22(typescript@5.9.3))(zod@4.1.11) + version: 4.0.1(@babel/parser@7.28.4)(@vercel/blob@2.0.0)(aws4fetch@1.0.20)(change-case@5.4.4)(db0@0.3.4(drizzle-orm@0.44.6(@cloudflare/workers-types@4.20251011.0)(@opentelemetry/api@1.9.0)(pg@8.16.3)))(embla-carousel@8.6.0)(ioredis@5.8.0)(magicast@0.3.5)(typescript@5.9.3)(vite@7.1.9(@types/node@24.7.0)(jiti@2.6.1)(lightningcss@1.30.1)(terser@5.44.0)(yaml@2.8.1))(vue-router@4.5.1(vue@3.5.22(typescript@5.9.3)))(vue@3.5.22(typescript@5.9.3))(zod@4.1.12) + '@nuxthub/core-nightly': + specifier: 1.0.0-20251013-051212-5debfb7 + version: 1.0.0-20251013-051212-5debfb7(@ai-sdk/gateway@1.0.33(zod@4.1.12))(drizzle-orm@0.44.6(@cloudflare/workers-types@4.20251011.0)(@opentelemetry/api@1.9.0)(pg@8.16.3))(ioredis@5.8.0)(magicast@0.3.5)(typescript@5.9.3)(vite@7.1.9(@types/node@24.7.0)(jiti@2.6.1)(lightningcss@1.30.1)(terser@5.44.0)(yaml@2.8.1))(vue-tsc@3.1.0(typescript@5.9.3))(workers-ai-provider@2.0.0(zod@4.1.12)) '@nuxtjs/mdc': specifier: ^0.17.4 version: 0.17.4(magicast@0.3.5) ai: specifier: ^5.0.60 - version: 5.0.60(zod@4.1.11) + version: 5.0.60(zod@4.1.12) date-fns: specifier: ^4.1.0 version: 4.1.0 drizzle-orm: specifier: ^0.44.6 - version: 0.44.6(@opentelemetry/api@1.9.0)(pg@8.16.3) + version: 0.44.6(@cloudflare/workers-types@4.20251011.0)(@opentelemetry/api@1.9.0)(pg@8.16.3) nuxt: specifier: ^4.1.2 - version: 4.1.2(@parcel/watcher@2.5.1)(@types/node@24.7.0)(@vue/compiler-sfc@3.5.22)(db0@0.3.4(drizzle-orm@0.44.6(@opentelemetry/api@1.9.0)(pg@8.16.3)))(drizzle-orm@0.44.6(@opentelemetry/api@1.9.0)(pg@8.16.3))(eslint@9.37.0(jiti@2.6.1))(ioredis@5.8.0)(lightningcss@1.30.1)(magicast@0.3.5)(optionator@0.9.4)(rollup@4.52.4)(terser@5.44.0)(typescript@5.9.3)(vite@7.1.9(@types/node@24.7.0)(jiti@2.6.1)(lightningcss@1.30.1)(terser@5.44.0)(yaml@2.8.1))(vue-tsc@3.1.0(typescript@5.9.3))(yaml@2.8.1) + version: 4.1.2(@parcel/watcher@2.5.1)(@types/node@24.7.0)(@vercel/blob@2.0.0)(@vue/compiler-sfc@3.5.22)(aws4fetch@1.0.20)(db0@0.3.4(drizzle-orm@0.44.6(@cloudflare/workers-types@4.20251011.0)(@opentelemetry/api@1.9.0)(pg@8.16.3)))(drizzle-orm@0.44.6(@cloudflare/workers-types@4.20251011.0)(@opentelemetry/api@1.9.0)(pg@8.16.3))(eslint@9.37.0(jiti@2.6.1))(ioredis@5.8.0)(lightningcss@1.30.1)(magicast@0.3.5)(optionator@0.9.4)(rolldown@1.0.0-beta.9)(rollup@4.52.4)(terser@5.44.0)(typescript@5.9.3)(vite@7.1.9(@types/node@24.7.0)(jiti@2.6.1)(lightningcss@1.30.1)(terser@5.44.0)(yaml@2.8.1))(vue-tsc@3.1.0(typescript@5.9.3))(yaml@2.8.1) nuxt-auth-utils: specifier: ^0.5.25 version: 0.5.25(magicast@0.3.5) @@ -93,12 +96,24 @@ packages: peerDependencies: zod: ^3.25.76 || ^4.1.8 + '@ai-sdk/gateway@1.0.39': + resolution: {integrity: sha512-ijYCKG2sbn2RBVfIgaXNXvzHAf2HpFXxQODtjMI+T7Z4CLryflytchsZZ9qrGtsjiQVopKOV6m6kj4lq5fnbsg==} + engines: {node: '>=18'} + peerDependencies: + zod: ^3.25.76 || ^4.1.8 + '@ai-sdk/provider-utils@3.0.10': resolution: {integrity: sha512-T1gZ76gEIwffep6MWI0QNy9jgoybUHE7TRaHB5k54K8mF91ciGFlbtCGxDYhMH3nCRergKwYFIDeFF0hJSIQHQ==} engines: {node: '>=18'} peerDependencies: zod: ^3.25.76 || ^4.1.8 + '@ai-sdk/provider-utils@3.0.12': + resolution: {integrity: sha512-ZtbdvYxdMoria+2SlNarEk6Hlgyf+zzcznlD55EAl+7VZvJaSg2sqPvwArY7L6TfDEDJsnCq0fdhBSkYo0Xqdg==} + engines: {node: '>=18'} + peerDependencies: + zod: ^3.25.76 || ^4.1.8 + '@ai-sdk/provider@2.0.0': resolution: {integrity: sha512-6o7Y2SeO9vFKB8lArHXehNuusnpddKPk7xqL7T2/b+OvXMRIXUO1rR4wcv1hAFUAT9avGZshty3Wlua/XA7TvA==} engines: {node: '>=18'} @@ -264,6 +279,9 @@ packages: resolution: {integrity: sha512-+tv3z+SPp+gqTIcImN9o0hqE9xyfQjI1XD9pL6NuKjua9B1y7mNYv0S9cP+QEbA4ppVgGZEmKOvHX5G5Ei1CVA==} engines: {node: '>=18.0.0'} + '@cloudflare/workers-types@4.20251011.0': + resolution: {integrity: sha512-gQpih+pbq3sP4uXltUeCSbPgZxTNp2gQd8639SaIbQMwgA6oJNHLhIART1fWy6DQACngiRzDVULA2x0ohmkGTQ==} + '@drizzle-team/brocli@0.10.2': resolution: {integrity: sha512-z33Il7l5dKjUgGULTqBsQBQwckHh5AbIuxhdsIxDDiZAzBOrZO6q9ogcWC65kU382AfynTfgNumVcNIjuIua6w==} @@ -637,6 +655,10 @@ packages: resolution: {integrity: sha512-sB5uyeq+dwCWyPi31B2gQlVlo+j5brPlWx4yZBrEaRo/nhdDE8Xke1gsGgtiBdaBTxuTkceLVuVt/pclrasb0A==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@fastify/busboy@2.1.1': + resolution: {integrity: sha512-vBZP4NlzfOlerQTnba4aqZoMhE/a9HY7HRqoOPaETQcSQuWEIyZMHGfVu6w9wGtGK5fED5qRs2DteVCjOH60sA==} + engines: {node: '>=14'} + '@floating-ui/core@1.7.3': resolution: {integrity: sha512-sGnvb5dmrJaKEZ+LDIpguvdX3bDlEllmv4/ClQ9awcmCZrlx5jQyyMWFM5kBI+EyNOCDDiKk8il0zeuX3Zlg/w==} @@ -883,6 +905,13 @@ packages: peerDependencies: vue: ^3.3.4 + '@nuxthub/core-nightly@1.0.0-20251013-051212-5debfb7': + resolution: {integrity: sha512-ZP4FBkD5CqAr4N8l0XYS2GkJBbWdeWnnsViWtTykvLdnKf+QP5/jne4Kc/JJ9afMusdXqrtG79N87rno13PTwg==} + hasBin: true + peerDependencies: + '@ai-sdk/gateway': ^1.0.30 + workers-ai-provider: ^2.0.0 + '@nuxtjs/color-mode@3.5.2': resolution: {integrity: sha512-cC6RfgZh3guHBMLLjrBB2Uti5eUoGM9KyauOaYS9ETmxNWBMTvpgjvSiSJp1OFljIXPIqVTJ3xtJpSNZiO3ZaA==} @@ -899,83 +928,166 @@ packages: cpu: [arm64] os: [android] + '@oxc-minify/binding-darwin-arm64@0.72.3': + resolution: {integrity: sha512-F/QC1UnSfx5+dmWNLqm6EL1Yj1GpXtfRuZjwENtH/ULZZzPlKBxd4LSaH1GIncldk7zPQ60jtprnS53CRFcU1Q==} + engines: {node: '>=14.0.0'} + cpu: [arm64] + os: [darwin] + '@oxc-minify/binding-darwin-arm64@0.87.0': resolution: {integrity: sha512-ewmNsTY8YbjWOI8+EOWKTVATOYvG4Qq4zQHH5VFBeqhQPVusY1ORD6Ei+BijVKrnlbpjibLlkTl8IWqXCGK89A==} engines: {node: '>=14.0.0'} cpu: [arm64] os: [darwin] + '@oxc-minify/binding-darwin-x64@0.72.3': + resolution: {integrity: sha512-LRhug/hQ19Lqf9P7K9jBiyTfwlOWsY1HTh2/Vo771NUUZkVNq9L8tkSQhg+u8tmcRjJTI5LkAK8nW751fLkZ7Q==} + engines: {node: '>=14.0.0'} + cpu: [x64] + os: [darwin] + '@oxc-minify/binding-darwin-x64@0.87.0': resolution: {integrity: sha512-qDH4w4EYttSC3Cs2VCh+CiMYKrcL2SNmnguBZXoUXe/RNk3csM+RhgcwdpX687xGvOhTFhH5PCIA84qh3ZpIbQ==} engines: {node: '>=14.0.0'} cpu: [x64] os: [darwin] + '@oxc-minify/binding-freebsd-x64@0.72.3': + resolution: {integrity: sha512-/BDZAumYnSFeTsJU7mA9qZp6U93dVnlPlZ7YcqXYgFSZBkQsMe1gtzRfAZ6veJ7pB4L57h56JTTVBDQB1B4QpA==} + engines: {node: '>=14.0.0'} + cpu: [x64] + os: [freebsd] + '@oxc-minify/binding-freebsd-x64@0.87.0': resolution: {integrity: sha512-5kxjHlSev2A09rDeITk+LMHxSrU3Iu8pUb0Zp4m+ul8FKlB9FrvFkAYwbctin6g47O98s3Win7Ewhy0w8JaiUA==} engines: {node: '>=14.0.0'} cpu: [x64] os: [freebsd] + '@oxc-minify/binding-linux-arm-gnueabihf@0.72.3': + resolution: {integrity: sha512-W6tbZwlCT4EZaAw5SyLeeDx1J2XPA9P3WhwotPBs3J7/vAFm+xWM+115sE4/PdqnEDaHG4lMBKF76XXihn9HpQ==} + engines: {node: '>=14.0.0'} + cpu: [arm] + os: [linux] + '@oxc-minify/binding-linux-arm-gnueabihf@0.87.0': resolution: {integrity: sha512-NjbGXnNaAl5EgyonaDg2cPyH2pTf5a/+AP/5SRCJ0KetpXV22ZSUCvcy04Yt4QqjMcDs+WnJaGVxwx15Ofr6Gw==} engines: {node: '>=14.0.0'} cpu: [arm] os: [linux] + '@oxc-minify/binding-linux-arm-musleabihf@0.72.3': + resolution: {integrity: sha512-IMItUkn9b2bny5GCQWFkrfuM9lpW5kUpw/UEvqW9SrjrfBeof9I/76EGuvZluA99hhz+0BFDpdOr1hlQygKZ/A==} + engines: {node: '>=14.0.0'} + cpu: [arm] + os: [linux] + '@oxc-minify/binding-linux-arm-musleabihf@0.87.0': resolution: {integrity: sha512-llAjfCA0iV2LMMl+LTR3JhqAc2iQmj+DTKd0VWOrbNOuNczeE9D5kJFkqYplD73LrkuqxrX9oDeUjjeLdVBPXw==} engines: {node: '>=14.0.0'} cpu: [arm] os: [linux] + '@oxc-minify/binding-linux-arm64-gnu@0.72.3': + resolution: {integrity: sha512-DvzsxlcSG0IRGWCJTHMZXpSyng1RSTVBL5DyPCzD0OUMQaurJRs/NsVK7+zF95CtuSoiNp0wAX2cl7+v3YtnYw==} + engines: {node: '>=14.0.0'} + cpu: [arm64] + os: [linux] + '@oxc-minify/binding-linux-arm64-gnu@0.87.0': resolution: {integrity: sha512-tf2Shom09AaSmu7U1hYYcEFF/cd+20HtmQ8eyGsRkqD5bqUj6lDu8TNSU9FWZ9tcZ83NzyFMwXZWHyeeIIbpxw==} engines: {node: '>=14.0.0'} cpu: [arm64] os: [linux] + '@oxc-minify/binding-linux-arm64-musl@0.72.3': + resolution: {integrity: sha512-lc7A7eiQxf3slm/DR+DjJVGnjkw8Xnvi63PdaqHf4+8569n8u6FbcVpBzaW3ENxrYCilSdjMeVeSa8dW62SJ1g==} + engines: {node: '>=14.0.0'} + cpu: [arm64] + os: [linux] + '@oxc-minify/binding-linux-arm64-musl@0.87.0': resolution: {integrity: sha512-pgWeYfSprtpnJVea9Q5eI6Eo80lDGlMw2JdcSMXmShtBjEhBl6bvDNHlV+6kNfh7iT65y/uC6FR8utFrRghu8A==} engines: {node: '>=14.0.0'} cpu: [arm64] os: [linux] + '@oxc-minify/binding-linux-riscv64-gnu@0.72.3': + resolution: {integrity: sha512-OgACyiKTywSlXdegGnAJKMsya6+XcQQrCCJV77bdCQJJG3qpVwCEKplh4GXgoIHGiqQVgccHHImyeVgAEDpB8w==} + engines: {node: '>=14.0.0'} + cpu: [riscv64] + os: [linux] + '@oxc-minify/binding-linux-riscv64-gnu@0.87.0': resolution: {integrity: sha512-O1QPczlT+lqNZVeKOdFxxL+s1RIlnixaJYFLrcqDcRyn82MGKLz7sAenBTFRQoIfLnSxtMGL6dqHOefYkQx7Cg==} engines: {node: '>=14.0.0'} cpu: [riscv64] os: [linux] + '@oxc-minify/binding-linux-s390x-gnu@0.72.3': + resolution: {integrity: sha512-ZGAAgZ65LID/w4UN7rIZjWCb+BlGMpRQ1d6ujXG80dIZEns/Y5HIYBdDetnHA65KNiqR/dhokdvgIsGrtVB6wA==} + engines: {node: '>=14.0.0'} + cpu: [s390x] + os: [linux] + '@oxc-minify/binding-linux-s390x-gnu@0.87.0': resolution: {integrity: sha512-tcwt3ZUWOKfNLXN2edxFVHMlIuPvbuyMaKmRopgljSCfFcNHWhfTNlxlvmECRNhuQ91EcGwte6F1dwoeMCNd7A==} engines: {node: '>=14.0.0'} cpu: [s390x] os: [linux] + '@oxc-minify/binding-linux-x64-gnu@0.72.3': + resolution: {integrity: sha512-c2w3yyVvmoweH27JRmr87P49PgShsYsp9wEJqaLglHO9po3T2vg9cvuWQdolvFzOK5l6cIK9H6qWQ/iM14eXxQ==} + engines: {node: '>=14.0.0'} + cpu: [x64] + os: [linux] + '@oxc-minify/binding-linux-x64-gnu@0.87.0': resolution: {integrity: sha512-Xf4AXF14KXUzSnfgTcFLFSM0TykJhFw14+xwNvlAb6WdqXAKlMrz9joIAezc8dkW1NNscCVTsqBUPJ4RhvCM1Q==} engines: {node: '>=14.0.0'} cpu: [x64] os: [linux] + '@oxc-minify/binding-linux-x64-musl@0.72.3': + resolution: {integrity: sha512-n1B/srkCowXBklgr+E5ASv7xav/y3Ipj0NlLGFIF++bfYXdz06jN4xQ7jwPxqBTq7UZcJ3s3VB+Qyua7qmgBcA==} + engines: {node: '>=14.0.0'} + cpu: [x64] + os: [linux] + '@oxc-minify/binding-linux-x64-musl@0.87.0': resolution: {integrity: sha512-LIqvpx9UihEW4n9QbEljDnfUdAWqhr6dRqmzSFwVAeLZRUECluLCDdsdwemrC/aZkvnisA4w0LFcFr3HmeTLJg==} engines: {node: '>=14.0.0'} cpu: [x64] os: [linux] + '@oxc-minify/binding-wasm32-wasi@0.72.3': + resolution: {integrity: sha512-ZWuHsE6kp+rKruj3S8u86BdbamR9OJ1fZaJtg/Wj//U7hVV5a9i2a2gTiEA8wQIbNFqAhR4b0a11M1amzOskqA==} + engines: {node: '>=14.0.0'} + cpu: [wasm32] + '@oxc-minify/binding-wasm32-wasi@0.87.0': resolution: {integrity: sha512-h0xluvc+YryfH5G5dndjGHuA/D4Kp85EkPMxqoOjNudOKDCtdobEaC9horhCqnOOQ0lgn+PGFl3w8u4ToOuRrA==} engines: {node: '>=14.0.0'} cpu: [wasm32] + '@oxc-minify/binding-win32-arm64-msvc@0.72.3': + resolution: {integrity: sha512-8zOQJWIllPVGLb+yG+B55QtGW2dbTiqbSe2aCAEAis1VROyQ68URH3OX4I70WOyFCQycKKFo95RjZkepaGfbIA==} + engines: {node: '>=14.0.0'} + cpu: [arm64] + os: [win32] + '@oxc-minify/binding-win32-arm64-msvc@0.87.0': resolution: {integrity: sha512-fgxSx+TUc7e2rNtRAMnhHrjqh1e8p/JKmWxRZXtkILveMr/TOHGiDis7U3JJbwycmTZ+HSsJ/PNFQl+tKzmDxw==} engines: {node: '>=14.0.0'} cpu: [arm64] os: [win32] + '@oxc-minify/binding-win32-x64-msvc@0.72.3': + resolution: {integrity: sha512-FqZ/NHt5wgM9TUI63//eVcgvLToWtzdm0XK1mVIvMVLsmuj2lQAC4TCiSyZqg7HqSoqun1PVeqwsFmRVhVjK6A==} + engines: {node: '>=14.0.0'} + cpu: [x64] + os: [win32] + '@oxc-minify/binding-win32-x64-msvc@0.87.0': resolution: {integrity: sha512-K6TTrlitEJgD0FGIW2r0t3CIJNqBkzHT97h49gZLS24ey2UG1zKt27iSHkpXMJYDiG97ZD2yv3pSph1ctMlFXw==} engines: {node: '>=14.0.0'} @@ -988,89 +1100,178 @@ packages: cpu: [arm64] os: [android] + '@oxc-parser/binding-darwin-arm64@0.72.3': + resolution: {integrity: sha512-g6wgcfL7At4wHNHutl0NmPZTAju+cUSmSX5WGUMyTJmozRzhx8E9a2KL4rTqNJPwEpbCFrgC29qX9f4fpDnUpA==} + engines: {node: '>=14.0.0'} + cpu: [arm64] + os: [darwin] + '@oxc-parser/binding-darwin-arm64@0.87.0': resolution: {integrity: sha512-99e8E76M+k3Gtwvs5EU3VTs2hQkJmvnrl/eu7HkBUc9jLFHA4nVjYSgukMuqahWe270udUYEPRfcWKmoE1Nukg==} engines: {node: '>=20.0.0'} cpu: [arm64] os: [darwin] + '@oxc-parser/binding-darwin-x64@0.72.3': + resolution: {integrity: sha512-pc+tplB2fd0AqdnXY90FguqSF2OwbxXwrMOLAMmsUiK4/ytr8Z/ftd49+d27GgvQJKeg2LfnIbskaQtY/j2tAA==} + engines: {node: '>=14.0.0'} + cpu: [x64] + os: [darwin] + '@oxc-parser/binding-darwin-x64@0.87.0': resolution: {integrity: sha512-2rRo6Dz560/4ot5Q0KPUTEunEObkP8mDC9mMiH0RJk1FiOb9c+xpPbkYoUHNKuVMm8uIoiBCxIAbPtBhs9QaXQ==} engines: {node: '>=20.0.0'} cpu: [x64] os: [darwin] + '@oxc-parser/binding-freebsd-x64@0.72.3': + resolution: {integrity: sha512-igBR6rOvL8t5SBm1f1rjtWNsjB53HNrM3au582JpYzWxOqCjeA5Jlm9KZbjQJC+J8SPB9xyljM7G+6yGZ2UAkQ==} + engines: {node: '>=14.0.0'} + cpu: [x64] + os: [freebsd] + '@oxc-parser/binding-freebsd-x64@0.87.0': resolution: {integrity: sha512-uR+WZAvWkFQPVoeqXgQFr7iy+3hEI295qTbQ4ujmklgM5eTX3YgMFoIV00Stloxfd1irSDDSaK7ySnnzF6mRJg==} engines: {node: '>=20.0.0'} cpu: [x64] os: [freebsd] + '@oxc-parser/binding-linux-arm-gnueabihf@0.72.3': + resolution: {integrity: sha512-/izdr3wg7bK+2RmNhZXC2fQwxbaTH3ELeqdR+Wg4FiEJ/C7ZBIjfB0E734bZGgbDu+rbEJTBlbG77XzY0wRX/Q==} + engines: {node: '>=14.0.0'} + cpu: [arm] + os: [linux] + '@oxc-parser/binding-linux-arm-gnueabihf@0.87.0': resolution: {integrity: sha512-Emm1NpVGKbwzQOIZJI8ZuZu0z8FAd5xscqdS6qpDFpDdEMxk6ab7o3nM8V09RhNCORAzeUlk4TBHQ2Crzjd50A==} engines: {node: '>=20.0.0'} cpu: [arm] os: [linux] + '@oxc-parser/binding-linux-arm-musleabihf@0.72.3': + resolution: {integrity: sha512-Vz7C+qJb22HIFl3zXMlwvlTOR+MaIp5ps78060zsdeZh2PUGlYuUYkYXtGEjJV3kc8aKFj79XKqAY1EPG2NWQA==} + engines: {node: '>=14.0.0'} + cpu: [arm] + os: [linux] + '@oxc-parser/binding-linux-arm-musleabihf@0.87.0': resolution: {integrity: sha512-1PPCxRZSJXzQaqc8y+wH7EqPgSfQ/JU3pK6WTN/1SUe/8paNVSKKqk175a8BbRVxGUtPnwEG89pi+xfPTSE7GA==} engines: {node: '>=20.0.0'} cpu: [arm] os: [linux] + '@oxc-parser/binding-linux-arm64-gnu@0.72.3': + resolution: {integrity: sha512-nomoMe2VpVxW767jhF+G3mDGmE0U6nvvi5nw9Edqd/5DIylQfq/lEGUWL7qITk+E72YXBsnwHtpRRlIAJOMyZg==} + engines: {node: '>=14.0.0'} + cpu: [arm64] + os: [linux] + '@oxc-parser/binding-linux-arm64-gnu@0.87.0': resolution: {integrity: sha512-fcnnsfcyLamJOMVKq+BQ8dasb8gRnZtNpCUfZhaEFAdXQ7J2RmZreFzlygcn80iti0V7c5LejcjHbF4IdK3GAw==} engines: {node: '>=20.0.0'} cpu: [arm64] os: [linux] + '@oxc-parser/binding-linux-arm64-musl@0.72.3': + resolution: {integrity: sha512-4DswiIK5dI7hFqcMKWtZ7IZnWkRuskh6poI1ad4gkY2p678NOGtl6uOGCCRlDmLOOhp3R27u4VCTzQ6zra977w==} + engines: {node: '>=14.0.0'} + cpu: [arm64] + os: [linux] + '@oxc-parser/binding-linux-arm64-musl@0.87.0': resolution: {integrity: sha512-tBPkSPgRSSbmrje8CUovISi/Hj/tWjZJ3n/qnrjx2B+u86hWtwLsngtPDQa5d4seSyDaHSx6tNEUcH7+g5Ee0Q==} engines: {node: '>=20.0.0'} cpu: [arm64] os: [linux] + '@oxc-parser/binding-linux-riscv64-gnu@0.72.3': + resolution: {integrity: sha512-R9GEiA4WFPGU/3RxAhEd6SaMdpqongGTvGEyTvYCS/MAQyXKxX/LFvc2xwjdvESpjIemmc/12aTTq6if28vHkQ==} + engines: {node: '>=14.0.0'} + cpu: [riscv64] + os: [linux] + '@oxc-parser/binding-linux-riscv64-gnu@0.87.0': resolution: {integrity: sha512-z4UKGM4wv2wEAQAlx2pBq6+pDJw5J/5oDEXqW6yBSLbWLjLDo4oagmRSE3+giOWteUa+0FVJ+ypq4iYxBkYSWg==} engines: {node: '>=20.0.0'} cpu: [riscv64] os: [linux] + '@oxc-parser/binding-linux-s390x-gnu@0.72.3': + resolution: {integrity: sha512-/sEYJQMVqikZO8gK9VDPT4zXo9du3gvvu8jp6erMmW5ev+14PErWRypJjktp0qoTj+uq4MzXro0tg7U+t5hP1w==} + engines: {node: '>=14.0.0'} + cpu: [s390x] + os: [linux] + '@oxc-parser/binding-linux-s390x-gnu@0.87.0': resolution: {integrity: sha512-6W1ENe/nZtr2TBnrEzmdGEraEAdZOiH3YoUNNeQWuqwLkmpoHTJJdclieToPe/l2IKJ4WL3FsSLSGHE8yt/OEg==} engines: {node: '>=20.0.0'} cpu: [s390x] os: [linux] + '@oxc-parser/binding-linux-x64-gnu@0.72.3': + resolution: {integrity: sha512-hlyljEZ0sMPKJQCd5pxnRh2sAf/w+Ot2iJecgV9Hl3brrYrYCK2kofC0DFaJM3NRmG/8ZB3PlxnSRSKZTocwCw==} + engines: {node: '>=14.0.0'} + cpu: [x64] + os: [linux] + '@oxc-parser/binding-linux-x64-gnu@0.87.0': resolution: {integrity: sha512-s3kB/Ii3X3IOZ27Iu7wx2zYkIcDO22Emu32SNC6kkUSy09dPBc1yaW14TnAkPMe/rvtuzR512JPWj3iGpl+Dng==} engines: {node: '>=20.0.0'} cpu: [x64] os: [linux] + '@oxc-parser/binding-linux-x64-musl@0.72.3': + resolution: {integrity: sha512-T17S8ORqAIq+YDFMvLfbNdAiYHYDM1+sLMNhesR5eWBtyTHX510/NbgEvcNemO9N6BNR7m4A9o+q468UG+dmbg==} + engines: {node: '>=14.0.0'} + cpu: [x64] + os: [linux] + '@oxc-parser/binding-linux-x64-musl@0.87.0': resolution: {integrity: sha512-3+M9hfrZSDi4+Uy4Ll3rtOuVG3IHDQlj027jgtmAAHJK1eqp4CQfC7rrwE+LFUqUwX+KD2GwlxR+eHyyEf5Gbg==} engines: {node: '>=20.0.0'} cpu: [x64] os: [linux] + '@oxc-parser/binding-wasm32-wasi@0.72.3': + resolution: {integrity: sha512-x0Ojn/jyRUk6MllvVB/puSvI2tczZBIYweKVYHNv1nBatjPRiqo+6/uXiKrZwSfGLkGARrKkTuHSa5RdZBMOdA==} + engines: {node: '>=14.0.0'} + cpu: [wasm32] + '@oxc-parser/binding-wasm32-wasi@0.87.0': resolution: {integrity: sha512-2jgeEeOa4GbQQg2Et/gFTgs5wKS/+CxIg+CN2mMOJ4EqbmvUVeGiumO01oFOWTYnJy1oONwIocBzrnMuvOcItA==} engines: {node: '>=14.0.0'} cpu: [wasm32] + '@oxc-parser/binding-win32-arm64-msvc@0.72.3': + resolution: {integrity: sha512-kRVAl87ugRjLZTm9vGUyiXU50mqxLPHY81rgnZUP1HtNcqcmTQtM/wUKQL2UdqvhA6xm6zciqzqCgJfU+RW8uA==} + engines: {node: '>=14.0.0'} + cpu: [arm64] + os: [win32] + '@oxc-parser/binding-win32-arm64-msvc@0.87.0': resolution: {integrity: sha512-KZp9poaBaVvuFM0TrsHCDOjPQK5eMDXblz21boMhKHGW5/bOlkMlg3CYn5j0f67FkK68NSdNKREMxmibBeXllQ==} engines: {node: '>=20.0.0'} cpu: [arm64] os: [win32] + '@oxc-parser/binding-win32-x64-msvc@0.72.3': + resolution: {integrity: sha512-vpVdoGAP5iGE5tIEPJgr7FkQJZA+sKjMkg5x1jarWJ1nnBamfGsfYiZum4QjCfW7jb+pl42rHVSS3lRmMPcyrQ==} + engines: {node: '>=14.0.0'} + cpu: [x64] + os: [win32] + '@oxc-parser/binding-win32-x64-msvc@0.87.0': resolution: {integrity: sha512-86uisngtp/8XdcerIKxMyJTqgDSTJatkfpylpUH0d96W8Bb9E+bVvM2fIIhLWB0Eb03PeY2BdIT7DNIln9TnHg==} engines: {node: '>=20.0.0'} cpu: [x64] os: [win32] + '@oxc-project/types@0.70.0': + resolution: {integrity: sha512-ngyLUpUjO3dpqygSRQDx7nMx8+BmXbWOU4oIwTJFV2MVIDG7knIZwgdwXlQWLg3C3oxg1lS7ppMtPKqKFb7wzw==} + + '@oxc-project/types@0.72.3': + resolution: {integrity: sha512-CfAC4wrmMkUoISpQkFAIfMVvlPfQV3xg7ZlcqPXPOIMQhdKIId44G8W0mCPgtpWdFFAyJ+SFtiM+9vbyCkoVng==} + '@oxc-project/types@0.87.0': resolution: {integrity: sha512-ipZFWVGE9fADBVXXWJWY/cxpysc41Gt5upKDeb32F6WMgFyO7XETUMVq8UuREKCih+Km5E6p2VhEvf6Fuhey6g==} @@ -1080,83 +1281,166 @@ packages: cpu: [arm64] os: [android] + '@oxc-transform/binding-darwin-arm64@0.72.3': + resolution: {integrity: sha512-TfCD0OJvZUummYr127gshEETLtPVi9y48HTxd3FtZ0931Ys2a9lr1zVRmASRLbhgudyfvC3/kLcH5Zp1VGFdxg==} + engines: {node: '>=14.0.0'} + cpu: [arm64] + os: [darwin] + '@oxc-transform/binding-darwin-arm64@0.87.0': resolution: {integrity: sha512-HImW3xOPx7FHKqfC5WfE82onhRfnWQUiB7R+JgYrk+7NR404h3zANSPzu3V/W9lbDxlmHTcqoD2LKbNC5j0TQA==} engines: {node: '>=14.0.0'} cpu: [arm64] os: [darwin] + '@oxc-transform/binding-darwin-x64@0.72.3': + resolution: {integrity: sha512-7atxxYqDg6Jx2V/05pomROFfTuqZTVZjPJINBAmq2/hf6U7VzoSn/knwvRLUi6GFW9GcJodBCy609wcJNpsPQw==} + engines: {node: '>=14.0.0'} + cpu: [x64] + os: [darwin] + '@oxc-transform/binding-darwin-x64@0.87.0': resolution: {integrity: sha512-MDbgugi6mvuPTfS78E2jyozm7493Kuqmpc5r406CsUdEsXlnsF+xvmKlrW9ZIkisO74dD+HWouSiDtNyPQHjlw==} engines: {node: '>=14.0.0'} cpu: [x64] os: [darwin] + '@oxc-transform/binding-freebsd-x64@0.72.3': + resolution: {integrity: sha512-lHORAYfapKWomKe9GOuJwYZFnSmDsPcD3/zIP2rs2ECwhobXqXIKvEEe6XvuemK3kUyQVC1I6fbFE3vBYReYjw==} + engines: {node: '>=14.0.0'} + cpu: [x64] + os: [freebsd] + '@oxc-transform/binding-freebsd-x64@0.87.0': resolution: {integrity: sha512-N0M5D/4haJw7BMn2WZ3CWz0WkdLyoK1+3KxOyCv2CPedMCxx6eQay2AtJxSzj9tjVU1+ukbSb2fDO24JIJGsVA==} engines: {node: '>=14.0.0'} cpu: [x64] os: [freebsd] + '@oxc-transform/binding-linux-arm-gnueabihf@0.72.3': + resolution: {integrity: sha512-TklLVfKgzisN5VN/pKPkSulAabPM+sBz86SGxehGr0z1q1ThgNR7Ds7Jp/066htd+lMBvTVQ21j1cWQEs1/b3g==} + engines: {node: '>=14.0.0'} + cpu: [arm] + os: [linux] + '@oxc-transform/binding-linux-arm-gnueabihf@0.87.0': resolution: {integrity: sha512-PubObCNOUOzm1S+P0yn7S+/6xRLbSPMqhgrb73L3p+J1Z20fv/FYVg0kFd36Yho24TSC/byOkebEZWAtxCasWw==} engines: {node: '>=14.0.0'} cpu: [arm] os: [linux] + '@oxc-transform/binding-linux-arm-musleabihf@0.72.3': + resolution: {integrity: sha512-pF+Zx0zoZ5pP9vmCwEJrgv363c7RDFJ1p0gB6NpVaEzlANR2xyEpdXZAm/aDCcBmVJP1TBBT3/SeSpUrW0XjGw==} + engines: {node: '>=14.0.0'} + cpu: [arm] + os: [linux] + '@oxc-transform/binding-linux-arm-musleabihf@0.87.0': resolution: {integrity: sha512-Nk2d/FS7sMCmCl99vHojzigakjDPamkjOXs2i+H71o/NqytS0pk3M+tXat8M3IGpeLJIEszA5Mv+dcq731nlYA==} engines: {node: '>=14.0.0'} cpu: [arm] os: [linux] + '@oxc-transform/binding-linux-arm64-gnu@0.72.3': + resolution: {integrity: sha512-p4GD2rkN8dAWlW7gsKNliSn7C5aou76RFrKYk3OkquMIKzaN1zScu47fjxUZQo0SBamOIxdy7DLmgP/B2kamlg==} + engines: {node: '>=14.0.0'} + cpu: [arm64] + os: [linux] + '@oxc-transform/binding-linux-arm64-gnu@0.87.0': resolution: {integrity: sha512-BxFkIcso2V1+FCDoU+KctxvJzSQVSnEZ5EEQ8O3Up9EoFVQRnZ8ktXvqYj2Oqvc4IYPskLPsKUgc9gdK8wGhUg==} engines: {node: '>=14.0.0'} cpu: [arm64] os: [linux] + '@oxc-transform/binding-linux-arm64-musl@0.72.3': + resolution: {integrity: sha512-McyHuMg9DeAcAm+JUk9f/xB4HmA+0y/q0JJvm/ynBSEDaMqAQbOSHRGrSE3IcqY1/HrxNHIaDL+3j0mS9MrfVg==} + engines: {node: '>=14.0.0'} + cpu: [arm64] + os: [linux] + '@oxc-transform/binding-linux-arm64-musl@0.87.0': resolution: {integrity: sha512-MZ1/TNaebhXK73j1UDfwyBFnAy0tT3n6otOkhlt1vlJwqboUS/D7E/XrCZmAuHIfVPxAXRPovkl7kfxLB43SKw==} engines: {node: '>=14.0.0'} cpu: [arm64] os: [linux] + '@oxc-transform/binding-linux-riscv64-gnu@0.72.3': + resolution: {integrity: sha512-YL8dil5j0Fgzm1swZ1V0gvYP/fxG5K0jsPB8uGbkdKEKtGc0hTZgNIIoA8UvQ0YwXWTc1D6p4Q1+boiKK9b7iA==} + engines: {node: '>=14.0.0'} + cpu: [riscv64] + os: [linux] + '@oxc-transform/binding-linux-riscv64-gnu@0.87.0': resolution: {integrity: sha512-JCWE6n4Hicu0FVbvmLdH/dS8V6JykOUsbrbDYm6JwFlHr4eFTTlS2B+mh5KPOxcdeOlv/D/XRnvMJ6WGYs25EA==} engines: {node: '>=14.0.0'} cpu: [riscv64] os: [linux] + '@oxc-transform/binding-linux-s390x-gnu@0.72.3': + resolution: {integrity: sha512-CLIm+fiv0pOB1fXlckXoGzImlqDX/beCYwGAveFbHnQ/ACmzeUzb1eLXEXLiMGqFQDH4QJBZoEaUdxXWSoo1zg==} + engines: {node: '>=14.0.0'} + cpu: [s390x] + os: [linux] + '@oxc-transform/binding-linux-s390x-gnu@0.87.0': resolution: {integrity: sha512-n2NTgM+3PqFagJV9UXRDNOmYesF+TO9SF9FeHqwVmW893ayef9KK+vfWAAhvOYHXYaKWT5XoHd87ODD7nruyhw==} engines: {node: '>=14.0.0'} cpu: [s390x] os: [linux] + '@oxc-transform/binding-linux-x64-gnu@0.72.3': + resolution: {integrity: sha512-MxMhnyU4D0a1Knv8JXLPB38yEYx2P+IAk+WJ+lJHBncTkkPQvOaEv/QQcSyr2vHSKJuyav16U4B1ZtAHlZcq6A==} + engines: {node: '>=14.0.0'} + cpu: [x64] + os: [linux] + '@oxc-transform/binding-linux-x64-gnu@0.87.0': resolution: {integrity: sha512-ZOKW3wx0bW2O7jGdOzr8DyLZqX2C36sXvJdsHj3IueZZ//d/NjLZqEiUKz+q0JlERHtCVKShQ5PLaCx7NpuqNg==} engines: {node: '>=14.0.0'} cpu: [x64] os: [linux] + '@oxc-transform/binding-linux-x64-musl@0.72.3': + resolution: {integrity: sha512-xUXHOWmrxWpDn86IUkLVNEZ3HkAnKZsgRQ+UoYmiaaWRcoCFtfnKETNYjkuWtW8lU00KT00llqptnPfhV7WdWw==} + engines: {node: '>=14.0.0'} + cpu: [x64] + os: [linux] + '@oxc-transform/binding-linux-x64-musl@0.87.0': resolution: {integrity: sha512-eIspx/JqkVMPK1CAYEOo2J8o49s4ZTf+32MSMUknIN2ZS1fvRmWS0D/xFFaLP/9UGhdrXRIPbn/iSYEA8JnV/g==} engines: {node: '>=14.0.0'} cpu: [x64] os: [linux] + '@oxc-transform/binding-wasm32-wasi@0.72.3': + resolution: {integrity: sha512-JdxNYpR/gXz4rnDxYTToHDCCJEW9+RmBvAL/pQPGHf26xHmE7vXtxqI3Mbw6jS57pTvC6FA8Cx3PMb3UJ+nEEg==} + engines: {node: '>=14.0.0'} + cpu: [wasm32] + '@oxc-transform/binding-wasm32-wasi@0.87.0': resolution: {integrity: sha512-4uRjJQnt/+kmJUIC6Iwzn+MqqZhLP1zInPtDwgL37KI4VuUewUQWoL+sggMssMEgm7ZJwOPoZ6piuSWwMgOqgQ==} engines: {node: '>=14.0.0'} cpu: [wasm32] + '@oxc-transform/binding-win32-arm64-msvc@0.72.3': + resolution: {integrity: sha512-DAKJgdMLsQvOuSwT7jjse0dOiqYj+QJc76wUogg1C/C3ub6PtvNLiCzrXkTnJ+C47dFozaxvSyEZnSXkorF0Kg==} + engines: {node: '>=14.0.0'} + cpu: [arm64] + os: [win32] + '@oxc-transform/binding-win32-arm64-msvc@0.87.0': resolution: {integrity: sha512-l/qSi4/N5W1yXKU9+1gWGo0tBoRpp4zvHYrpsbq3zbefPL4VYdA0gKF7O10/ZQVkYylzxiVh2zpYO34/FbZdIg==} engines: {node: '>=14.0.0'} cpu: [arm64] os: [win32] + '@oxc-transform/binding-win32-x64-msvc@0.72.3': + resolution: {integrity: sha512-BmSG7DkjV7C5votwwB8bP8qpkRjavLRQPFsAuvyCcc6gnEPeIvdWSPDZXk39YMe00Nm3wQ2oNRa7hgwDMatTvw==} + engines: {node: '>=14.0.0'} + cpu: [x64] + os: [win32] + '@oxc-transform/binding-win32-x64-msvc@0.87.0': resolution: {integrity: sha512-jG/MhMjfSdyj5KyhnwNWr4mnAlAsz+gNUYpjQ+UXWsfsoB3f8HqbsTkG02RBtNa/IuVQYvYYVf1eIimNN3gBEQ==} engines: {node: '>=14.0.0'} @@ -1282,12 +1566,75 @@ packages: resolution: {integrity: sha512-da+MMyeXhBaKtxQiWPfy7+056wk3lVIhioJnXHXkJ2/OHDaZfFcyKHNl1R06sdYO8lIRXcXdoZ6LO2ARmkAREA==} engines: {node: '>=18.16.0'} + '@rolldown/binding-darwin-arm64@1.0.0-beta.9': + resolution: {integrity: sha512-geUG/FUpm+membLC0NQBb39vVyOfguYZ2oyXc7emr6UjH6TeEECT4b0CPZXKFnELareTiU/Jfl70/eEgNxyQeA==} + cpu: [arm64] + os: [darwin] + + '@rolldown/binding-darwin-x64@1.0.0-beta.9': + resolution: {integrity: sha512-7wPXDwcOtv2I+pWTL2UNpNAxMAGukgBT90Jz4DCfwaYdGvQncF7J0S7IWrRVsRFhBavxM+65RcueE3VXw5UIbg==} + cpu: [x64] + os: [darwin] + + '@rolldown/binding-freebsd-x64@1.0.0-beta.9': + resolution: {integrity: sha512-agO5mONTNKVrcIt4SRxw5Ni0FOVV3gaH8dIiNp1A4JeU91b9kw7x+JRuNJAQuM2X3pYqVvA6qh13UTNOsaqM/Q==} + cpu: [x64] + os: [freebsd] + + '@rolldown/binding-linux-arm-gnueabihf@1.0.0-beta.9': + resolution: {integrity: sha512-dDNDV9p/8WYDriS9HCcbH6y6+JP38o3enj/pMkdkmkxEnZ0ZoHIfQ9RGYWeRYU56NKBCrya4qZBJx49Jk9LRug==} + cpu: [arm] + os: [linux] + + '@rolldown/binding-linux-arm64-gnu@1.0.0-beta.9': + resolution: {integrity: sha512-kZKegmHG1ZvfsFIwYU6DeFSxSIcIliXzeznsJHUo9D9/dlVSDi/PUvsRKcuJkQjZoejM6pk8MHN/UfgGdIhPHw==} + cpu: [arm64] + os: [linux] + + '@rolldown/binding-linux-arm64-musl@1.0.0-beta.9': + resolution: {integrity: sha512-f+VL8mO31pyMJiJPr2aA1ryYONkP2UqgbwK7fKtKHZIeDd/AoUGn3+ujPqDhuy2NxgcJ5H8NaSvDpG1tJMHh+g==} + cpu: [arm64] + os: [linux] + + '@rolldown/binding-linux-x64-gnu@1.0.0-beta.9': + resolution: {integrity: sha512-GiUEZ0WPjX5LouDoC3O8aJa4h6BLCpIvaAboNw5JoRour/3dC6rbtZZ/B5FC3/ySsN3/dFOhAH97ylQxoZJi7A==} + cpu: [x64] + os: [linux] + + '@rolldown/binding-linux-x64-musl@1.0.0-beta.9': + resolution: {integrity: sha512-AMb0dicw+QHh6RxvWo4BRcuTMgS0cwUejJRMpSyIcHYnKTbj6nUW4HbWNQuDfZiF27l6F5gEwBS+YLUdVzL9vg==} + cpu: [x64] + os: [linux] + + '@rolldown/binding-wasm32-wasi@1.0.0-beta.9': + resolution: {integrity: sha512-+pdaiTx7L8bWKvsAuCE0HAxP1ze1WOLoWGCawcrZbMSY10dMh2i82lJiH6tXGXbfYYwsNWhWE2NyG4peFZvRfQ==} + engines: {node: '>=14.21.3'} + cpu: [wasm32] + + '@rolldown/binding-win32-arm64-msvc@1.0.0-beta.9': + resolution: {integrity: sha512-A7kN248viWvb8eZMzQu024TBKGoyoVYBsDG2DtoP8u2pzwoh5yDqUL291u01o4f8uzpUHq8mfwQJmcGChFu8KQ==} + cpu: [arm64] + os: [win32] + + '@rolldown/binding-win32-ia32-msvc@1.0.0-beta.9': + resolution: {integrity: sha512-DzKN7iEYjAP8AK8F2G2aCej3fk43Y/EQrVrR3gF0XREes56chjQ7bXIhw819jv74BbxGdnpPcslhet/cgt7WRA==} + cpu: [ia32] + os: [win32] + + '@rolldown/binding-win32-x64-msvc@1.0.0-beta.9': + resolution: {integrity: sha512-GMWgTvvbZ8TfBsAiJpoz4SRq3IN3aUMn0rYm8q4I8dcEk4J1uISyfb6ZMzvqW+cvScTWVKWZNqnrmYOKLLUt4w==} + cpu: [x64] + os: [win32] + '@rolldown/pluginutils@1.0.0-beta.29': resolution: {integrity: sha512-NIJgOsMjbxAXvoGq/X0gD7VPMQ8j9g0BiDaNjVNVjvl+iKXxL3Jre0v31RmBYeLEmkbj2s02v8vFTbUXi5XS2Q==} '@rolldown/pluginutils@1.0.0-beta.41': resolution: {integrity: sha512-ycMEPrS3StOIeb87BT3/+bu+blEtyvwQ4zmo2IcJQy0Rd1DAAhKksA0iUZ3MYSpJtjlPhg0Eo6mvVS6ggPhRbw==} + '@rolldown/pluginutils@1.0.0-beta.9': + resolution: {integrity: sha512-e9MeMtVWo186sgvFFJOPGy7/d2j2mZhLJIdVW0C/xDluuOvymEATqz6zKsP0ZmXGzQtqlyjz5sC1sYQUoJG98w==} + '@rollup/plugin-alias@5.1.1': resolution: {integrity: sha512-PR9zDb+rOzkRb2VD+EuKB7UC41vU5DIwZ5qqCpk0KJudcWAyi8rvYOhS7+L5aZCspw1stTViLgN5v6FF1p5cgQ==} engines: {node: '>=14.0.0'} @@ -1470,6 +1817,9 @@ packages: cpu: [x64] os: [win32] + '@sec-ant/readable-stream@0.4.1': + resolution: {integrity: sha512-831qok9r2t8AlxLko40y2ebgSDhenenCatLVeW/uBtnHPyhHOvG0C7TvfgecV+wHzIm5KUICgzmVpWS+IMEAeg==} + '@shikijs/core@3.13.0': resolution: {integrity: sha512-3P8rGsg2Eh2qIHekwuQjzWhKI4jV97PhvYjYUzGqjvJfqdQPz+nMlfWahU24GZAyW1FxFI1sYjyhfh5CoLmIUA==} @@ -1506,6 +1856,10 @@ packages: resolution: {integrity: sha512-LtoMMhxAlorcGhmFYI+LhPgbPZCkgP6ra1YL604EeF6U98pLlQ3iWIGMdWSC+vWmPBWBNgmDBAhnAobLROJmwg==} engines: {node: '>=18'} + '@sindresorhus/merge-streams@4.0.0': + resolution: {integrity: sha512-tlqY9xq5ukxTUZBmoOp+m61cqwQD5pHJtFY3Mn8CA8ps6yghLH/Hw8UPdqg4OLmFW3IFlcXnQNmo/dh8HzXYIQ==} + engines: {node: '>=18'} + '@speed-highlight/core@1.2.7': resolution: {integrity: sha512-0dxmVj4gxg3Jg879kvFS/msl4s9F3T9UXC1InxgOf7t5NvcPD97u/WTA5vL/IxWHMn7qSxBozqrnnE2wvl1m8g==} @@ -1843,6 +2197,13 @@ packages: cpu: [x64] os: [win32] + '@uploadthing/mime-types@0.3.6': + resolution: {integrity: sha512-t3tTzgwFV9+1D7lNDYc7Lr7kBwotHaX0ZsvoCGe7xGnXKo9z0jG2Sjl/msll12FeoLj77nyhsxevXyGpQDBvLg==} + + '@vercel/blob@2.0.0': + resolution: {integrity: sha512-oAj7Pdy83YKSwIaMFoM7zFeLYWRc+qUpW3PiDSblxQMnGFb43qs4bmfq7dr/+JIfwhs6PTwe1o2YBwKhyjWxXw==} + engines: {node: '>=20.0.0'} + '@vercel/nft@0.30.2': resolution: {integrity: sha512-pquXF3XZFg/T3TBor08rUhIGgOhdSilbn7WQLVP/aVSSO+25Rs4H/m3nxNDQ2x3znX7Z3yYjryN8xaLwypcwQg==} engines: {node: '>=18'} @@ -1852,6 +2213,10 @@ packages: resolution: {integrity: sha512-V/YRVrJDqM6VaMBjRUrd6qRMrTKvZjHdVdEmdXsOZMulTa3iK98ijKTc3wldBmst6W5rHpqMoKllKcBAHgN7GQ==} engines: {node: '>= 20'} + '@vercel/oidc@3.0.2': + resolution: {integrity: sha512-JekxQ0RApo4gS4un/iMGsIL1/k4KUBe3HmnGcDvzHuFBdQdudEJgTqcsJC7y6Ul4Yw5CeykgvQbX2XeEJd0+DA==} + engines: {node: '>= 20'} + '@vitejs/plugin-vue-jsx@5.1.1': resolution: {integrity: sha512-uQkfxzlF8SGHJJVH966lFTdjM/lGcwJGzwAHpVqAPDD/QcsqoUGa+q31ox1BrUfi+FLP2ChVp7uLXE3DkHyDdQ==} engines: {node: ^20.19.0 || >=22.12.0} @@ -2057,6 +2422,12 @@ packages: peerDependencies: zod: ^3.25.76 || ^4.1.8 + ai@5.0.68: + resolution: {integrity: sha512-SB6r+4TkKVlSg2ozGBSfuf6Is5hrcX/bpGBzOoyHIN3b4ILGhaly0IHEvP8+3GGIHXqtkPVEUmR6V05jKdjNlg==} + engines: {node: '>=18'} + peerDependencies: + zod: ^3.25.76 || ^4.1.8 + ajv@6.12.6: resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} @@ -2110,10 +2481,17 @@ packages: resolution: {integrity: sha512-cl76xfBQM6pztbrFWRnxbrDm9EOqDr1BF6+qQnnDZG2Co2LjyUktkN9GTJfBAfdae+DbT2nJf2nCGAdDDN7W2g==} engines: {node: '>=20.18.0'} + ast-kit@2.1.3: + resolution: {integrity: sha512-TH+b3Lv6pUjy/Nu0m6A2JULtdzLpmqF9x1Dhj00ZoEiML8qvVA9j1flkzTKNYgdEhWrjDwtWNpyyCUbfQe514g==} + engines: {node: '>=20.19.0'} + ast-walker-scope@0.8.2: resolution: {integrity: sha512-3pYeLyDZ6nJew9QeBhS4Nly02269Dkdk32+zdbbKmL6n4ZuaGorwwA+xx12xgOciA8BF1w9x+dlH7oUkFTW91w==} engines: {node: '>=20.18.0'} + async-retry@1.3.3: + resolution: {integrity: sha512-wfr/jstw9xNi/0teMHrRW7dsz3Lt5ARhYNZ2ewpadnhaIp5mbALhOAP+EAdsC7t4Z6wqsDVv9+W6gm1Dk9mEyw==} + async-sema@3.1.1: resolution: {integrity: sha512-tLRNUXati5MFePdAk8dw7Qt7DpxPB60ofAgn8WRhW6a2rcimZnYBP9oxHiv0OHy+Wz7kPMG+t4LGdt31+4EmGg==} @@ -2127,6 +2505,9 @@ packages: peerDependencies: postcss: ^8.1.0 + aws4fetch@1.0.20: + resolution: {integrity: sha512-/djoAN709iY65ETD6LKCtyyEI04XIBP5xVvfmNxsEP0uJB5tyaGBztSryRr4HqMStr9R06PisQE7m9zDTXKu6g==} + b4a@1.7.3: resolution: {integrity: sha512-5Q2mfq2WfGuFp3uS//0s6baOJLMoVduPYVeNmDYxu5OUA1/cBfvr2RIS7vi62LdNj/urk1hfmj867I3qt6uZ7Q==} peerDependencies: @@ -2676,6 +3057,15 @@ packages: sqlite3: optional: true + dts-resolver@2.1.2: + resolution: {integrity: sha512-xeXHBQkn2ISSXxbJWD828PFjtyg+/UrMDo7W4Ffcs7+YWCquxU8YjV1KoxuiL+eJ5pg3ll+bC6flVv61L3LKZg==} + engines: {node: '>=20.18.0'} + peerDependencies: + oxc-resolver: '>=11.0.0' + peerDependenciesMeta: + oxc-resolver: + optional: true + duplexer@0.1.2: resolution: {integrity: sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==} @@ -2962,6 +3352,10 @@ packages: resolution: {integrity: sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==} engines: {node: '>=16.17'} + execa@9.6.0: + resolution: {integrity: sha512-jpWzZ1ZhwUmeWRhS7Qv3mhpOhLfwI+uAX4e5fOcXqwMR7EcJ0pj2kV1CVzHVMX/LphnKWD3LObjZCoJ71lKpHw==} + engines: {node: ^18.19.0 || >=20.5.0} + exsolve@1.0.7: resolution: {integrity: sha512-VO5fQUzZtI6C+vx4w/4BWJpg3s/5l+6pRQEHzFRM8WFi4XffSP1Z+4qi7GbjWbvRQEbdIco5mIMq+zX4rPuLrw==} @@ -2999,6 +3393,10 @@ packages: picomatch: optional: true + figures@6.1.0: + resolution: {integrity: sha512-d+l3qxjSesT4V7v2fh+QnmFnUWv9lSpjarhShNTgBOfA0ttejbQUAlHLitbjkoRiDulW0OPoQPYIGhIC8ohejg==} + engines: {node: '>=18'} + file-entry-cache@8.0.0: resolution: {integrity: sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==} engines: {node: '>=16.0.0'} @@ -3096,9 +3494,16 @@ packages: resolution: {integrity: sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==} engines: {node: '>=16'} + get-stream@9.0.1: + resolution: {integrity: sha512-kVCxPF3vQM/N0B1PmoqVUqgHP+EeVjmZSQn+1oCRPxd2P21P2F19lIgbR3HBosbB1PUhOAoctJnfEn2GbN2eZA==} + engines: {node: '>=18'} + get-tsconfig@4.10.1: resolution: {integrity: sha512-auHyJ4AgMz7vgS8Hp3N6HXSmlMdUyhSUrfBF16w153rxtLIEOE+HGqaBppczZvnHLqQJfiHotCYpNhl0lUROFQ==} + get-tsconfig@4.12.0: + resolution: {integrity: sha512-LScr2aNr2FbjAjZh2C6X6BxRx1/x+aTDExct/xyq2XKbYOiG5c0aK7pMsSuyc0brz3ibr/lbQiHD9jzt4lccJw==} + giget@2.0.0: resolution: {integrity: sha512-L5bGsVkxJbJgdnwyuheIunkGatUF/zssUoxxjACCseZYAVbaqdh9Tsmmlkl8vYan09H7sbvKt4pS8GqKLBrEzA==} hasBin: true @@ -3250,6 +3655,10 @@ packages: resolution: {integrity: sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==} engines: {node: '>=16.17.0'} + human-signals@8.0.1: + resolution: {integrity: sha512-eKCa6bwnJhvxj14kZk5NCPc6Hb6BdsU9DZcOnmQKSnO1VKrfV0zCvtttPZUsBvjmNDn8rpcJfpwSYnHBjc95MQ==} + engines: {node: '>=18.18.0'} + ieee754@1.2.1: resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==} @@ -3307,6 +3716,10 @@ packages: resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} engines: {node: '>=8'} + is-buffer@2.0.5: + resolution: {integrity: sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ==} + engines: {node: '>=4'} + is-builtin-module@5.0.0: resolution: {integrity: sha512-f4RqJKBUe5rQkJ2eJEJBXSticB3hGbN9j0yxxMQFqIW89Jp9WYFtzfTcRlstDKVUTRzSOTLKRfO9vIztenwtxA==} engines: {node: '>=18.20'} @@ -3355,6 +3768,9 @@ packages: is-module@1.0.0: resolution: {integrity: sha512-51ypPSPCoTEIN9dy5Oy+h4pShgJmPCygKfyRCISBI+JoWT/2oJvK8QPxmwv7b/p239jXrm9M1mlQbyKJ5A152g==} + is-node-process@1.2.0: + resolution: {integrity: sha512-Vg4o6/fqPxIjtxgUH5QLJhwZ7gW5diGCVlXpuUfELC62CuxM1iHcRe51f2W1FDy04Ai4KJkagKjx3XaqyfRKXw==} + is-number@7.0.0: resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} engines: {node: '>=0.12.0'} @@ -3381,6 +3797,14 @@ packages: resolution: {integrity: sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + is-stream@4.0.1: + resolution: {integrity: sha512-Dnz92NInDqYckGEUJv689RbRiTSEHCQ7wOVeALbkOz999YpqT46yMRIGtSNl2iCL1waAZSx40+h59NV/EwzV/A==} + engines: {node: '>=18'} + + is-unicode-supported@2.1.0: + resolution: {integrity: sha512-mE00Gnza5EEB3Ds0HfMyllZzbBrmLOX3vfWoj9A9PEnTfratQ/BcaJOuMhnkhjXvb2+FkY3VuHqtAGpTPmglFQ==} + engines: {node: '>=18'} + is-what@4.1.16: resolution: {integrity: sha512-ZhMwEosbFJkA0YhFnNDgTM4ZxDRsS6HqTo7qsZM08fehyRYIYa0yHu5R6mgo1n/8MgaPBXiPimPD77baVFYg+A==} engines: {node: '>=12.13'} @@ -3862,6 +4286,9 @@ packages: natural-compare@1.4.0: resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} + nitro-cloudflare-dev@0.2.2: + resolution: {integrity: sha512-aZfNTVdgXPQeAmXW0Tw8hm3usAHr4qVG4Bg3WhHBGeZYuXr9OyT04Ztb+STkMzhyaXvfMHViAaPUPg06iAYqag==} + nitropack@2.12.6: resolution: {integrity: sha512-DEq31s0SP4/Z5DIoVBRo9DbWFPWwIoYD4cQMEz7eE+iJMiAP+1k9A3B9kcc6Ihc0jDJmfUcHYyh6h2XlynCx6g==} engines: {node: ^20.19.0 || >=22.12.0} @@ -3967,6 +4394,10 @@ packages: oauth4webapi@3.8.2: resolution: {integrity: sha512-FzZZ+bht5X0FKe7Mwz3DAVAmlH1BV5blSak/lHMBKz0/EBMhX6B10GlQYI51+oRp8ObJaX0g6pXrAxZh5s8rjw==} + obuild@0.2.1: + resolution: {integrity: sha512-CmOvMKrnFAeVEbcHRIRX2RnBRIrf/R/93v3drS8ayCCYJfhbx1XlTqp85PYth3RC9hX+QujxNlzRKaN+4W0hlA==} + hasBin: true + ofetch@1.4.1: resolution: {integrity: sha512-QZj2DfGplQAr2oj9KzceK9Hwz6Whxazmn85yYeVuS3u9XTMOGMRx0kO95MQ+vLsj/S/NwBDMMLU5hpxvI6Tklw==} @@ -4006,14 +4437,26 @@ packages: resolution: {integrity: sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==} engines: {node: '>= 0.8.0'} + oxc-minify@0.72.3: + resolution: {integrity: sha512-0h1Qf5SJKSYGLbtZVsJpGOGf2If7xvCziZKJACtL8QIrBqU/LXjQ/Smd9lIL+OEVj1/kInyPbIi/TtU79P8n0Q==} + engines: {node: '>=14.0.0'} + oxc-minify@0.87.0: resolution: {integrity: sha512-+UHWp6+0mdq0S2rEsZx9mqgL6JnG9ogO+CU17XccVrPUFtISFcZzk/biTn1JdBYFQ3kztof19pv8blMtgStQ2g==} engines: {node: '>=14.0.0'} + oxc-parser@0.72.3: + resolution: {integrity: sha512-JYQeJKDcUTTZ/uTdJ+fZBGFjAjkLD1h0p3Tf44ZYXRcoMk+57d81paNPFAAwzrzzqhZmkGvKKXDxwyhJXYZlpg==} + engines: {node: '>=14.0.0'} + oxc-parser@0.87.0: resolution: {integrity: sha512-uc47XrtHwkBoES4HFgwgfH9sqwAtJXgAIBq4fFBMZ4hWmgVZoExyn+L4g4VuaecVKXkz1bvlaHcfwHAJPQb5Gw==} engines: {node: '>=20.0.0'} + oxc-transform@0.72.3: + resolution: {integrity: sha512-n9nf9BgUEA0j+lplu2XLgNuBAdruS5xgja/AWWr5eZ7RBRDgYQ/G1YJatn1j63dI4TCUpZVPx0BjESz+l/iuyA==} + engines: {node: '>=14.0.0'} + oxc-transform@0.87.0: resolution: {integrity: sha512-dt6INKWY2DKbSc8yR9VQoqBsCjPQ3z/SKv882UqlwFve+K38xtpi2avDlvNd35SpHUwDLDFoV3hMX0U3qOSaaQ==} engines: {node: '>=14.0.0'} @@ -4058,6 +4501,10 @@ packages: parse-imports-exports@0.2.4: resolution: {integrity: sha512-4s6vd6dx1AotCx/RCI2m7t7GCh5bDRUtGNvRfHSP2wbBQdMi67pPe7mtzmgwcaQ8VKK/6IB7Glfyu3qdZJPybQ==} + parse-ms@4.0.0: + resolution: {integrity: sha512-TXfryirbmq34y8QBwgqCVLi+8oA3oWx2eAnSn62ITyEhEYaWRlVZ2DvMM9eZbMs/RfxPu/PK/aBLyGj4IrqMHw==} + engines: {node: '>=18'} + parse-path@7.1.0: resolution: {integrity: sha512-EuCycjZtfPcjWk7KTksnJ5xPMvWGA/6i4zrLYhRG0hGvC3GPU/jGUj3Cy+ZR0v30duV3e23R95T1lE2+lsndSw==} @@ -4376,6 +4823,10 @@ packages: resolution: {integrity: sha512-nODzvTiYVRGRqAOvE84Vk5JDPyyxsVk0/fbA/bq7RqlnhksGpset09XTxbpvLTIjoaF7K8Z8DG8yHtKGTPSYRw==} engines: {node: '>=20'} + pretty-ms@9.3.0: + resolution: {integrity: sha512-gjVS5hOP+M3wMm5nmNOucbIrqudzs9v/57bWRHQWLYklXqoXKrVfYW2W9+glfGsqtPgpiz5WwyEEB+ksXIx3gQ==} + engines: {node: '>=18'} + process-nextick-args@2.0.1: resolution: {integrity: sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==} @@ -4538,6 +4989,10 @@ packages: restructure@3.0.2: resolution: {integrity: sha512-gSfoiOEA0VPE6Tukkrr7I0RBdE0s7H1eFCDBk05l1KIQT1UIKNc5JZy6jdyW6eYH3aR3g5b3PuL77rq0hvwtAw==} + retry@0.13.1: + resolution: {integrity: sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==} + engines: {node: '>= 4'} + reusify@1.1.0: resolution: {integrity: sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==} engines: {iojs: '>=1.0.0', node: '>=0.10.0'} @@ -4545,6 +5000,31 @@ packages: rfdc@1.4.1: resolution: {integrity: sha512-q1b3N5QkRUWUl7iyylaaj3kOpIT0N2i9MqIEQXP73GVsN9cw3fdx8X63cEmWhJGi2PPCF23Ijp7ktmd39rawIA==} + rolldown-plugin-dts@0.13.14: + resolution: {integrity: sha512-wjNhHZz9dlN6PTIXyizB6u/mAg1wEFMW9yw7imEVe3CxHSRnNHVyycIX0yDEOVJfDNISLPbkCIPEpFpizy5+PQ==} + engines: {node: '>=20.18.0'} + peerDependencies: + '@typescript/native-preview': '>=7.0.0-dev.20250601.1' + rolldown: ^1.0.0-beta.9 + typescript: ^5.0.0 + vue-tsc: ^2.2.0 || ^3.0.0 + peerDependenciesMeta: + '@typescript/native-preview': + optional: true + typescript: + optional: true + vue-tsc: + optional: true + + rolldown@1.0.0-beta.9: + resolution: {integrity: sha512-ZgZky52n6iF0UainGKjptKGrOG4Con2S5sdc4C4y2Oj25D5PHAY8Y8E5f3M2TSd/zlhQs574JlMeTe3vREczSg==} + hasBin: true + peerDependencies: + '@oxc-project/runtime': 0.70.0 + peerDependenciesMeta: + '@oxc-project/runtime': + optional: true + rollup-plugin-visualizer@6.0.4: resolution: {integrity: sha512-q8Q7J/6YofkmaGW1sH/fPRAz37x/+pd7VBuaUU7lwvOS/YikuiiEU9jeb9PH8XHiq50XFrUsBbOxeAMYQ7KZkg==} engines: {node: '>=18'} @@ -4759,6 +5239,10 @@ packages: resolution: {integrity: sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==} engines: {node: '>=12'} + strip-final-newline@4.0.0: + resolution: {integrity: sha512-aulFJcD6YK8V1G7iRB5tigAP4TsHBZZrOV8pjV++zdUwmeV8uzbY7yn6h9MswN62adStNZFuCIx4haBnRuMDaw==} + engines: {node: '>=18'} + strip-indent@4.1.0: resolution: {integrity: sha512-OA95x+JPmL7kc7zCu+e+TeYxEiaIyndRx0OrBcK2QPPH09oAndr2ALvymxWA+Lx1PYYvFUm4O63pRkdJAaW96w==} engines: {node: '>=12'} @@ -4844,6 +5328,10 @@ packages: text-decoder@1.2.3: resolution: {integrity: sha512-3/o9z3X0X0fTupwsYvR03pJ/DjWuqqrfwBgTQzdWDiQSm9KitAyz/9WqsT2JQW7KV2m+bC2ol/zqpW37NHxLaA==} + throttleit@2.1.0: + resolution: {integrity: sha512-nt6AMGKW1p/70DF/hGBdJB57B8Tspmbp5gfJ8ilhLnt7kkr2ye7hzD6NVG8GGErk2HWF34igrL2CXmNIkzKqKw==} + engines: {node: '>=18'} + tiny-inflate@1.0.3: resolution: {integrity: sha512-pkY1fj1cKHb2seWDy0B16HeWyczlJA9/WW3u3c4z/NiWDsO3DOU5D7nhTLE9CF0yXv/QZFY7sEJmj24dK+Rrqw==} @@ -4924,6 +5412,10 @@ packages: undici-types@7.14.0: resolution: {integrity: sha512-QQiYxHuyZ9gQUIrmPo3IA+hUl4KYk8uSA7cHrcKd/l3p1OTpZcM0Tbp9x7FAtXdAYhlasd60ncPpgu6ihG6TOA==} + undici@5.29.0: + resolution: {integrity: sha512-raqeBD6NQK4SkWhQzeYKd1KmIG6dllBOTt55Rmkt4HtI9mwdWtJljnrXjAFUBLTSN67HWrOIZ3EPF4kjUw80Bg==} + engines: {node: '>=14.0'} + unenv@2.0.0-rc.21: resolution: {integrity: sha512-Wj7/AMtE9MRnAXa6Su3Lk0LNCfqDYgfwVjwRFVum9U7wsto1imuHqk4kTm7Jni+5A0Hn7dttL6O/zjvUvoo+8A==} @@ -5314,6 +5806,9 @@ packages: resolution: {integrity: sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==} engines: {node: '>=0.10.0'} + workers-ai-provider@2.0.0: + resolution: {integrity: sha512-AoGGy8aOR3lzCzRouSxA6mgrCKuZfrnzxvOHHy9kOzwz4Mm4Hb55a/9G8zz+v0I/mn8bYLs/4I6JABSl/zXJ7w==} + wrap-ansi@7.0.0: resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} engines: {node: '>=10'} @@ -5378,6 +5873,10 @@ packages: resolution: {integrity: sha512-AyeEbWOu/TAXdxlV9wmGcR0+yh2j3vYPGOECcIj2S7MkrLyC7ne+oye2BKTItt0ii2PHk4cDy+95+LshzbXnGg==} engines: {node: '>=12.20'} + yoctocolors@2.1.2: + resolution: {integrity: sha512-CzhO+pFNo8ajLM2d2IW/R93ipy99LWjtwblvC1RsoSUMZgyLbYFr221TnSNT7GjGdYui6P459mw9JH/g/zW2ug==} + engines: {node: '>=18'} + youch-core@0.3.3: resolution: {integrity: sha512-ho7XuGjLaJ2hWHoK8yFnsUGy2Y5uDpqSTq1FkHLK4/oqKtyUU1AFbOOxY4IpC9f0fTLjwYbslUz0Po5BpD1wrA==} @@ -5388,8 +5887,8 @@ packages: resolution: {integrity: sha512-zK7YHHz4ZXpW89AHXUPbQVGKI7uvkd3hzusTdotCg1UxyaVtg0zFJSTfW/Dq5f7OBBVnq6cZIaC8Ti4hb6dtCA==} engines: {node: '>= 14'} - zod@4.1.11: - resolution: {integrity: sha512-WPsqwxITS2tzx1bzhIKsEs19ABD5vmCVa4xBo2tq/SrV4RNZtfws1EnCWQXM6yh8bD08a1idvkB5MZSBiZsjwg==} + zod@4.1.12: + resolution: {integrity: sha512-JInaHOamG8pt5+Ey8kGmdcAcg3OL9reK8ltczgHTAwNhMys/6ThXHityHxVV2p3fkw/c+MAvBHFVYHFZDmjMCQ==} zwitch@2.0.4: resolution: {integrity: sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==} @@ -5401,32 +5900,46 @@ snapshots: '@phc/format': 1.0.0 '@poppinss/utils': 6.10.1 - '@ai-sdk/gateway@1.0.33(zod@4.1.11)': + '@ai-sdk/gateway@1.0.33(zod@4.1.12)': dependencies: '@ai-sdk/provider': 2.0.0 - '@ai-sdk/provider-utils': 3.0.10(zod@4.1.11) + '@ai-sdk/provider-utils': 3.0.10(zod@4.1.12) '@vercel/oidc': 3.0.1 - zod: 4.1.11 + zod: 4.1.12 + + '@ai-sdk/gateway@1.0.39(zod@4.1.12)': + dependencies: + '@ai-sdk/provider': 2.0.0 + '@ai-sdk/provider-utils': 3.0.12(zod@4.1.12) + '@vercel/oidc': 3.0.2 + zod: 4.1.12 + + '@ai-sdk/provider-utils@3.0.10(zod@4.1.12)': + dependencies: + '@ai-sdk/provider': 2.0.0 + '@standard-schema/spec': 1.0.0 + eventsource-parser: 3.0.6 + zod: 4.1.12 - '@ai-sdk/provider-utils@3.0.10(zod@4.1.11)': + '@ai-sdk/provider-utils@3.0.12(zod@4.1.12)': dependencies: '@ai-sdk/provider': 2.0.0 '@standard-schema/spec': 1.0.0 eventsource-parser: 3.0.6 - zod: 4.1.11 + zod: 4.1.12 '@ai-sdk/provider@2.0.0': dependencies: json-schema: 0.4.0 - '@ai-sdk/vue@2.0.60(vue@3.5.22(typescript@5.9.3))(zod@4.1.11)': + '@ai-sdk/vue@2.0.60(vue@3.5.22(typescript@5.9.3))(zod@4.1.12)': dependencies: - '@ai-sdk/provider-utils': 3.0.10(zod@4.1.11) - ai: 5.0.60(zod@4.1.11) + '@ai-sdk/provider-utils': 3.0.10(zod@4.1.12) + ai: 5.0.60(zod@4.1.12) swrv: 1.1.0(vue@3.5.22(typescript@5.9.3)) optionalDependencies: vue: 3.5.22(typescript@5.9.3) - zod: 4.1.11 + zod: 4.1.12 '@alloc/quick-lru@5.2.0': {} @@ -5634,6 +6147,8 @@ snapshots: dependencies: mime: 3.0.0 + '@cloudflare/workers-types@4.20251011.0': {} + '@drizzle-team/brocli@0.10.2': {} '@emnapi/core@1.5.0': @@ -5898,6 +6413,8 @@ snapshots: '@eslint/core': 0.16.0 levn: 0.4.1 + '@fastify/busboy@2.1.1': {} + '@floating-ui/core@1.7.3': dependencies: '@floating-ui/utils': 0.2.10 @@ -6240,7 +6757,7 @@ snapshots: - utf-8-validate - vite - '@nuxt/fonts@0.11.4(db0@0.3.4(drizzle-orm@0.44.6(@opentelemetry/api@1.9.0)(pg@8.16.3)))(ioredis@5.8.0)(magicast@0.3.5)(vite@7.1.9(@types/node@24.7.0)(jiti@2.6.1)(lightningcss@1.30.1)(terser@5.44.0)(yaml@2.8.1))': + '@nuxt/fonts@0.11.4(@vercel/blob@2.0.0)(aws4fetch@1.0.20)(db0@0.3.4(drizzle-orm@0.44.6(@cloudflare/workers-types@4.20251011.0)(@opentelemetry/api@1.9.0)(pg@8.16.3)))(ioredis@5.8.0)(magicast@0.3.5)(vite@7.1.9(@types/node@24.7.0)(jiti@2.6.1)(lightningcss@1.30.1)(terser@5.44.0)(yaml@2.8.1))': dependencies: '@nuxt/devtools-kit': 2.6.5(magicast@0.3.5)(vite@7.1.9(@types/node@24.7.0)(jiti@2.6.1)(lightningcss@1.30.1)(terser@5.44.0)(yaml@2.8.1)) '@nuxt/kit': 3.19.2(magicast@0.3.5) @@ -6261,7 +6778,7 @@ snapshots: ufo: 1.6.1 unifont: 0.4.1 unplugin: 2.3.10 - unstorage: 1.17.1(db0@0.3.4(drizzle-orm@0.44.6(@opentelemetry/api@1.9.0)(pg@8.16.3)))(ioredis@5.8.0) + unstorage: 1.17.1(@vercel/blob@2.0.0)(aws4fetch@1.0.20)(db0@0.3.4(drizzle-orm@0.44.6(@cloudflare/workers-types@4.20251011.0)(@opentelemetry/api@1.9.0)(pg@8.16.3)))(ioredis@5.8.0) transitivePeerDependencies: - '@azure/app-configuration' - '@azure/cosmos' @@ -6390,13 +6907,13 @@ snapshots: transitivePeerDependencies: - magicast - '@nuxt/ui@4.0.1(@babel/parser@7.28.4)(change-case@5.4.4)(db0@0.3.4(drizzle-orm@0.44.6(@opentelemetry/api@1.9.0)(pg@8.16.3)))(embla-carousel@8.6.0)(ioredis@5.8.0)(magicast@0.3.5)(typescript@5.9.3)(vite@7.1.9(@types/node@24.7.0)(jiti@2.6.1)(lightningcss@1.30.1)(terser@5.44.0)(yaml@2.8.1))(vue-router@4.5.1(vue@3.5.22(typescript@5.9.3)))(vue@3.5.22(typescript@5.9.3))(zod@4.1.11)': + '@nuxt/ui@4.0.1(@babel/parser@7.28.4)(@vercel/blob@2.0.0)(aws4fetch@1.0.20)(change-case@5.4.4)(db0@0.3.4(drizzle-orm@0.44.6(@cloudflare/workers-types@4.20251011.0)(@opentelemetry/api@1.9.0)(pg@8.16.3)))(embla-carousel@8.6.0)(ioredis@5.8.0)(magicast@0.3.5)(typescript@5.9.3)(vite@7.1.9(@types/node@24.7.0)(jiti@2.6.1)(lightningcss@1.30.1)(terser@5.44.0)(yaml@2.8.1))(vue-router@4.5.1(vue@3.5.22(typescript@5.9.3)))(vue@3.5.22(typescript@5.9.3))(zod@4.1.12)': dependencies: - '@ai-sdk/vue': 2.0.60(vue@3.5.22(typescript@5.9.3))(zod@4.1.11) + '@ai-sdk/vue': 2.0.60(vue@3.5.22(typescript@5.9.3))(zod@4.1.12) '@iconify/vue': 5.0.0(vue@3.5.22(typescript@5.9.3)) '@internationalized/date': 3.10.0 '@internationalized/number': 3.6.5 - '@nuxt/fonts': 0.11.4(db0@0.3.4(drizzle-orm@0.44.6(@opentelemetry/api@1.9.0)(pg@8.16.3)))(ioredis@5.8.0)(magicast@0.3.5)(vite@7.1.9(@types/node@24.7.0)(jiti@2.6.1)(lightningcss@1.30.1)(terser@5.44.0)(yaml@2.8.1)) + '@nuxt/fonts': 0.11.4(@vercel/blob@2.0.0)(aws4fetch@1.0.20)(db0@0.3.4(drizzle-orm@0.44.6(@cloudflare/workers-types@4.20251011.0)(@opentelemetry/api@1.9.0)(pg@8.16.3)))(ioredis@5.8.0)(magicast@0.3.5)(vite@7.1.9(@types/node@24.7.0)(jiti@2.6.1)(lightningcss@1.30.1)(terser@5.44.0)(yaml@2.8.1)) '@nuxt/icon': 2.0.0(magicast@0.3.5)(vite@7.1.9(@types/node@24.7.0)(jiti@2.6.1)(lightningcss@1.30.1)(terser@5.44.0)(yaml@2.8.1))(vue@3.5.22(typescript@5.9.3)) '@nuxt/kit': 4.1.2(magicast@0.3.5) '@nuxt/schema': 4.1.2 @@ -6440,7 +6957,7 @@ snapshots: vue-component-type-helpers: 3.1.0 optionalDependencies: vue-router: 4.5.1(vue@3.5.22(typescript@5.9.3)) - zod: 4.1.11 + zod: 4.1.12 transitivePeerDependencies: - '@azure/app-configuration' - '@azure/cosmos' @@ -6483,7 +7000,7 @@ snapshots: - vite - vue - '@nuxt/vite-builder@4.1.2(@types/node@24.7.0)(eslint@9.37.0(jiti@2.6.1))(lightningcss@1.30.1)(magicast@0.3.5)(optionator@0.9.4)(rollup@4.52.4)(terser@5.44.0)(typescript@5.9.3)(vue-tsc@3.1.0(typescript@5.9.3))(vue@3.5.22(typescript@5.9.3))(yaml@2.8.1)': + '@nuxt/vite-builder@4.1.2(@types/node@24.7.0)(eslint@9.37.0(jiti@2.6.1))(lightningcss@1.30.1)(magicast@0.3.5)(optionator@0.9.4)(rolldown@1.0.0-beta.9)(rollup@4.52.4)(terser@5.44.0)(typescript@5.9.3)(vue-tsc@3.1.0(typescript@5.9.3))(vue@3.5.22(typescript@5.9.3))(yaml@2.8.1)': dependencies: '@nuxt/kit': 4.1.2(magicast@0.3.5) '@rollup/plugin-replace': 6.0.2(rollup@4.52.4) @@ -6506,7 +7023,7 @@ snapshots: pathe: 2.0.3 pkg-types: 2.3.0 postcss: 8.5.6 - rollup-plugin-visualizer: 6.0.4(rollup@4.52.4) + rollup-plugin-visualizer: 6.0.4(rolldown@1.0.0-beta.9)(rollup@4.52.4) std-env: 3.9.0 ufo: 1.6.1 unenv: 2.0.0-rc.21 @@ -6540,6 +7057,68 @@ snapshots: - vue-tsc - yaml + '@nuxthub/core-nightly@1.0.0-20251013-051212-5debfb7(@ai-sdk/gateway@1.0.33(zod@4.1.12))(drizzle-orm@0.44.6(@cloudflare/workers-types@4.20251011.0)(@opentelemetry/api@1.9.0)(pg@8.16.3))(ioredis@5.8.0)(magicast@0.3.5)(typescript@5.9.3)(vite@7.1.9(@types/node@24.7.0)(jiti@2.6.1)(lightningcss@1.30.1)(terser@5.44.0)(yaml@2.8.1))(vue-tsc@3.1.0(typescript@5.9.3))(workers-ai-provider@2.0.0(zod@4.1.12))': + dependencies: + '@ai-sdk/gateway': 1.0.33(zod@4.1.12) + '@ai-sdk/provider': 2.0.0 + '@cloudflare/workers-types': 4.20251011.0 + '@nuxt/devtools-kit': 2.6.5(magicast@0.3.5)(vite@7.1.9(@types/node@24.7.0)(jiti@2.6.1)(lightningcss@1.30.1)(terser@5.44.0)(yaml@2.8.1)) + '@uploadthing/mime-types': 0.3.6 + '@vercel/blob': 2.0.0 + ai: 5.0.68(zod@4.1.12) + aws4fetch: 1.0.20 + consola: 3.4.2 + db0: 0.3.4(drizzle-orm@0.44.6(@cloudflare/workers-types@4.20251011.0)(@opentelemetry/api@1.9.0)(pg@8.16.3)) + defu: 6.1.4 + destr: 2.0.5 + execa: 9.6.0 + get-port-please: 3.2.0 + h3: 1.15.4 + mime: 4.1.0 + nitro-cloudflare-dev: 0.2.2 + nypm: 0.6.2 + obuild: 0.2.1(magicast@0.3.5)(typescript@5.9.3)(vue-tsc@3.1.0(typescript@5.9.3)) + ofetch: 1.4.1 + pathe: 2.0.3 + pkg-types: 2.3.0 + std-env: 3.9.0 + ufo: 1.6.1 + uncrypto: 0.1.3 + unstorage: 1.17.1(@vercel/blob@2.0.0)(aws4fetch@1.0.20)(db0@0.3.4(drizzle-orm@0.44.6(@cloudflare/workers-types@4.20251011.0)(@opentelemetry/api@1.9.0)(pg@8.16.3)))(ioredis@5.8.0) + workers-ai-provider: 2.0.0(zod@4.1.12) + zod: 4.1.12 + transitivePeerDependencies: + - '@azure/app-configuration' + - '@azure/cosmos' + - '@azure/data-tables' + - '@azure/identity' + - '@azure/keyvault-secrets' + - '@azure/storage-blob' + - '@capacitor/preferences' + - '@deno/kv' + - '@electric-sql/pglite' + - '@libsql/client' + - '@netlify/blobs' + - '@oxc-project/runtime' + - '@planetscale/database' + - '@typescript/native-preview' + - '@upstash/redis' + - '@vercel/functions' + - '@vercel/kv' + - better-sqlite3 + - drizzle-orm + - idb-keyval + - ioredis + - magicast + - mysql2 + - oxc-resolver + - sqlite3 + - supports-color + - typescript + - uploadthing + - vite + - vue-tsc + '@nuxtjs/color-mode@3.5.2(magicast@0.3.5)': dependencies: '@nuxt/kit': 3.19.2(magicast@0.3.5) @@ -6603,143 +7182,279 @@ snapshots: '@oxc-minify/binding-android-arm64@0.87.0': optional: true + '@oxc-minify/binding-darwin-arm64@0.72.3': + optional: true + '@oxc-minify/binding-darwin-arm64@0.87.0': optional: true + '@oxc-minify/binding-darwin-x64@0.72.3': + optional: true + '@oxc-minify/binding-darwin-x64@0.87.0': optional: true + '@oxc-minify/binding-freebsd-x64@0.72.3': + optional: true + '@oxc-minify/binding-freebsd-x64@0.87.0': optional: true + '@oxc-minify/binding-linux-arm-gnueabihf@0.72.3': + optional: true + '@oxc-minify/binding-linux-arm-gnueabihf@0.87.0': optional: true + '@oxc-minify/binding-linux-arm-musleabihf@0.72.3': + optional: true + '@oxc-minify/binding-linux-arm-musleabihf@0.87.0': optional: true + '@oxc-minify/binding-linux-arm64-gnu@0.72.3': + optional: true + '@oxc-minify/binding-linux-arm64-gnu@0.87.0': optional: true + '@oxc-minify/binding-linux-arm64-musl@0.72.3': + optional: true + '@oxc-minify/binding-linux-arm64-musl@0.87.0': optional: true + '@oxc-minify/binding-linux-riscv64-gnu@0.72.3': + optional: true + '@oxc-minify/binding-linux-riscv64-gnu@0.87.0': optional: true + '@oxc-minify/binding-linux-s390x-gnu@0.72.3': + optional: true + '@oxc-minify/binding-linux-s390x-gnu@0.87.0': optional: true + '@oxc-minify/binding-linux-x64-gnu@0.72.3': + optional: true + '@oxc-minify/binding-linux-x64-gnu@0.87.0': optional: true + '@oxc-minify/binding-linux-x64-musl@0.72.3': + optional: true + '@oxc-minify/binding-linux-x64-musl@0.87.0': optional: true + '@oxc-minify/binding-wasm32-wasi@0.72.3': + dependencies: + '@napi-rs/wasm-runtime': 0.2.12 + optional: true + '@oxc-minify/binding-wasm32-wasi@0.87.0': dependencies: '@napi-rs/wasm-runtime': 1.0.6 optional: true + '@oxc-minify/binding-win32-arm64-msvc@0.72.3': + optional: true + '@oxc-minify/binding-win32-arm64-msvc@0.87.0': optional: true + '@oxc-minify/binding-win32-x64-msvc@0.72.3': + optional: true + '@oxc-minify/binding-win32-x64-msvc@0.87.0': optional: true '@oxc-parser/binding-android-arm64@0.87.0': optional: true + '@oxc-parser/binding-darwin-arm64@0.72.3': + optional: true + '@oxc-parser/binding-darwin-arm64@0.87.0': optional: true + '@oxc-parser/binding-darwin-x64@0.72.3': + optional: true + '@oxc-parser/binding-darwin-x64@0.87.0': optional: true + '@oxc-parser/binding-freebsd-x64@0.72.3': + optional: true + '@oxc-parser/binding-freebsd-x64@0.87.0': optional: true + '@oxc-parser/binding-linux-arm-gnueabihf@0.72.3': + optional: true + '@oxc-parser/binding-linux-arm-gnueabihf@0.87.0': optional: true + '@oxc-parser/binding-linux-arm-musleabihf@0.72.3': + optional: true + '@oxc-parser/binding-linux-arm-musleabihf@0.87.0': optional: true + '@oxc-parser/binding-linux-arm64-gnu@0.72.3': + optional: true + '@oxc-parser/binding-linux-arm64-gnu@0.87.0': optional: true + '@oxc-parser/binding-linux-arm64-musl@0.72.3': + optional: true + '@oxc-parser/binding-linux-arm64-musl@0.87.0': optional: true + '@oxc-parser/binding-linux-riscv64-gnu@0.72.3': + optional: true + '@oxc-parser/binding-linux-riscv64-gnu@0.87.0': optional: true + '@oxc-parser/binding-linux-s390x-gnu@0.72.3': + optional: true + '@oxc-parser/binding-linux-s390x-gnu@0.87.0': optional: true + '@oxc-parser/binding-linux-x64-gnu@0.72.3': + optional: true + '@oxc-parser/binding-linux-x64-gnu@0.87.0': optional: true + '@oxc-parser/binding-linux-x64-musl@0.72.3': + optional: true + '@oxc-parser/binding-linux-x64-musl@0.87.0': optional: true + '@oxc-parser/binding-wasm32-wasi@0.72.3': + dependencies: + '@napi-rs/wasm-runtime': 0.2.12 + optional: true + '@oxc-parser/binding-wasm32-wasi@0.87.0': dependencies: '@napi-rs/wasm-runtime': 1.0.6 optional: true + '@oxc-parser/binding-win32-arm64-msvc@0.72.3': + optional: true + '@oxc-parser/binding-win32-arm64-msvc@0.87.0': optional: true + '@oxc-parser/binding-win32-x64-msvc@0.72.3': + optional: true + '@oxc-parser/binding-win32-x64-msvc@0.87.0': optional: true + '@oxc-project/types@0.70.0': {} + + '@oxc-project/types@0.72.3': {} + '@oxc-project/types@0.87.0': {} '@oxc-transform/binding-android-arm64@0.87.0': optional: true + '@oxc-transform/binding-darwin-arm64@0.72.3': + optional: true + '@oxc-transform/binding-darwin-arm64@0.87.0': optional: true + '@oxc-transform/binding-darwin-x64@0.72.3': + optional: true + '@oxc-transform/binding-darwin-x64@0.87.0': optional: true + '@oxc-transform/binding-freebsd-x64@0.72.3': + optional: true + '@oxc-transform/binding-freebsd-x64@0.87.0': optional: true + '@oxc-transform/binding-linux-arm-gnueabihf@0.72.3': + optional: true + '@oxc-transform/binding-linux-arm-gnueabihf@0.87.0': optional: true + '@oxc-transform/binding-linux-arm-musleabihf@0.72.3': + optional: true + '@oxc-transform/binding-linux-arm-musleabihf@0.87.0': optional: true + '@oxc-transform/binding-linux-arm64-gnu@0.72.3': + optional: true + '@oxc-transform/binding-linux-arm64-gnu@0.87.0': optional: true + '@oxc-transform/binding-linux-arm64-musl@0.72.3': + optional: true + '@oxc-transform/binding-linux-arm64-musl@0.87.0': optional: true + '@oxc-transform/binding-linux-riscv64-gnu@0.72.3': + optional: true + '@oxc-transform/binding-linux-riscv64-gnu@0.87.0': optional: true + '@oxc-transform/binding-linux-s390x-gnu@0.72.3': + optional: true + '@oxc-transform/binding-linux-s390x-gnu@0.87.0': optional: true + '@oxc-transform/binding-linux-x64-gnu@0.72.3': + optional: true + '@oxc-transform/binding-linux-x64-gnu@0.87.0': optional: true + '@oxc-transform/binding-linux-x64-musl@0.72.3': + optional: true + '@oxc-transform/binding-linux-x64-musl@0.87.0': optional: true + '@oxc-transform/binding-wasm32-wasi@0.72.3': + dependencies: + '@napi-rs/wasm-runtime': 0.2.12 + optional: true + '@oxc-transform/binding-wasm32-wasi@0.87.0': dependencies: '@napi-rs/wasm-runtime': 1.0.6 optional: true + '@oxc-transform/binding-win32-arm64-msvc@0.72.3': + optional: true + '@oxc-transform/binding-win32-arm64-msvc@0.87.0': optional: true + '@oxc-transform/binding-win32-x64-msvc@0.72.3': + optional: true + '@oxc-transform/binding-win32-x64-msvc@0.87.0': optional: true @@ -6849,10 +7564,50 @@ snapshots: safe-stable-stringify: 2.5.0 secure-json-parse: 4.1.0 + '@rolldown/binding-darwin-arm64@1.0.0-beta.9': + optional: true + + '@rolldown/binding-darwin-x64@1.0.0-beta.9': + optional: true + + '@rolldown/binding-freebsd-x64@1.0.0-beta.9': + optional: true + + '@rolldown/binding-linux-arm-gnueabihf@1.0.0-beta.9': + optional: true + + '@rolldown/binding-linux-arm64-gnu@1.0.0-beta.9': + optional: true + + '@rolldown/binding-linux-arm64-musl@1.0.0-beta.9': + optional: true + + '@rolldown/binding-linux-x64-gnu@1.0.0-beta.9': + optional: true + + '@rolldown/binding-linux-x64-musl@1.0.0-beta.9': + optional: true + + '@rolldown/binding-wasm32-wasi@1.0.0-beta.9': + dependencies: + '@napi-rs/wasm-runtime': 0.2.12 + optional: true + + '@rolldown/binding-win32-arm64-msvc@1.0.0-beta.9': + optional: true + + '@rolldown/binding-win32-ia32-msvc@1.0.0-beta.9': + optional: true + + '@rolldown/binding-win32-x64-msvc@1.0.0-beta.9': + optional: true + '@rolldown/pluginutils@1.0.0-beta.29': {} '@rolldown/pluginutils@1.0.0-beta.41': {} + '@rolldown/pluginutils@1.0.0-beta.9': {} + '@rollup/plugin-alias@5.1.1(rollup@4.52.4)': optionalDependencies: rollup: 4.52.4 @@ -6982,6 +7737,8 @@ snapshots: '@rollup/rollup-win32-x64-msvc@4.52.4': optional: true + '@sec-ant/readable-stream@0.4.1': {} + '@shikijs/core@3.13.0': dependencies: '@shikijs/types': 3.13.0 @@ -7026,6 +7783,8 @@ snapshots: '@sindresorhus/merge-streams@2.3.0': {} + '@sindresorhus/merge-streams@4.0.0': {} + '@speed-highlight/core@1.2.7': {} '@standard-schema/spec@1.0.0': {} @@ -7342,6 +8101,16 @@ snapshots: '@unrs/resolver-binding-win32-x64-msvc@1.11.1': optional: true + '@uploadthing/mime-types@0.3.6': {} + + '@vercel/blob@2.0.0': + dependencies: + async-retry: 1.3.3 + is-buffer: 2.0.5 + is-node-process: 1.2.0 + throttleit: 2.1.0 + undici: 5.29.0 + '@vercel/nft@0.30.2(rollup@4.52.4)': dependencies: '@mapbox/node-pre-gyp': 2.0.0 @@ -7363,6 +8132,8 @@ snapshots: '@vercel/oidc@3.0.1': {} + '@vercel/oidc@3.0.2': {} + '@vitejs/plugin-vue-jsx@5.1.1(vite@7.1.9(@types/node@24.7.0)(jiti@2.6.1)(lightningcss@1.30.1)(terser@5.44.0)(yaml@2.8.1))(vue@3.5.22(typescript@5.9.3))': dependencies: '@babel/core': 7.28.4 @@ -7602,13 +8373,21 @@ snapshots: agent-base@7.1.4: {} - ai@5.0.60(zod@4.1.11): + ai@5.0.60(zod@4.1.12): + dependencies: + '@ai-sdk/gateway': 1.0.33(zod@4.1.12) + '@ai-sdk/provider': 2.0.0 + '@ai-sdk/provider-utils': 3.0.10(zod@4.1.12) + '@opentelemetry/api': 1.9.0 + zod: 4.1.12 + + ai@5.0.68(zod@4.1.12): dependencies: - '@ai-sdk/gateway': 1.0.33(zod@4.1.11) + '@ai-sdk/gateway': 1.0.39(zod@4.1.12) '@ai-sdk/provider': 2.0.0 - '@ai-sdk/provider-utils': 3.0.10(zod@4.1.11) + '@ai-sdk/provider-utils': 3.0.12(zod@4.1.12) '@opentelemetry/api': 1.9.0 - zod: 4.1.11 + zod: 4.1.12 ajv@6.12.6: dependencies: @@ -7671,11 +8450,20 @@ snapshots: '@babel/parser': 7.28.4 pathe: 2.0.3 + ast-kit@2.1.3: + dependencies: + '@babel/parser': 7.28.4 + pathe: 2.0.3 + ast-walker-scope@0.8.2: dependencies: '@babel/parser': 7.28.4 ast-kit: 2.1.2 + async-retry@1.3.3: + dependencies: + retry: 0.13.1 + async-sema@3.1.1: {} async@3.2.6: {} @@ -7690,6 +8478,8 @@ snapshots: postcss: 8.5.6 postcss-value-parser: 4.2.0 + aws4fetch@1.0.20: {} + b4a@1.7.3: {} bail@2.0.2: {} @@ -8015,9 +8805,9 @@ snapshots: date-fns@4.1.0: {} - db0@0.3.4(drizzle-orm@0.44.6(@opentelemetry/api@1.9.0)(pg@8.16.3)): + db0@0.3.4(drizzle-orm@0.44.6(@cloudflare/workers-types@4.20251011.0)(@opentelemetry/api@1.9.0)(pg@8.16.3)): optionalDependencies: - drizzle-orm: 0.44.6(@opentelemetry/api@1.9.0)(pg@8.16.3) + drizzle-orm: 0.44.6(@cloudflare/workers-types@4.20251011.0)(@opentelemetry/api@1.9.0)(pg@8.16.3) debug@4.4.3: dependencies: @@ -8103,11 +8893,14 @@ snapshots: transitivePeerDependencies: - supports-color - drizzle-orm@0.44.6(@opentelemetry/api@1.9.0)(pg@8.16.3): + drizzle-orm@0.44.6(@cloudflare/workers-types@4.20251011.0)(@opentelemetry/api@1.9.0)(pg@8.16.3): optionalDependencies: + '@cloudflare/workers-types': 4.20251011.0 '@opentelemetry/api': 1.9.0 pg: 8.16.3 + dts-resolver@2.1.2: {} + duplexer@0.1.2: {} eastasianwidth@0.2.0: {} @@ -8467,6 +9260,21 @@ snapshots: signal-exit: 4.1.0 strip-final-newline: 3.0.0 + execa@9.6.0: + dependencies: + '@sindresorhus/merge-streams': 4.0.0 + cross-spawn: 7.0.6 + figures: 6.1.0 + get-stream: 9.0.1 + human-signals: 8.0.1 + is-plain-obj: 4.1.0 + is-stream: 4.0.1 + npm-run-path: 6.0.0 + pretty-ms: 9.3.0 + signal-exit: 4.1.0 + strip-final-newline: 4.0.0 + yoctocolors: 2.1.2 + exsolve@1.0.7: {} extend@3.0.2: {} @@ -8497,6 +9305,10 @@ snapshots: optionalDependencies: picomatch: 4.0.3 + figures@6.1.0: + dependencies: + is-unicode-supported: 2.1.0 + file-entry-cache@8.0.0: dependencies: flat-cache: 4.0.1 @@ -8586,10 +9398,19 @@ snapshots: get-stream@8.0.1: {} + get-stream@9.0.1: + dependencies: + '@sec-ant/readable-stream': 0.4.1 + is-stream: 4.0.1 + get-tsconfig@4.10.1: dependencies: resolve-pkg-maps: 1.0.0 + get-tsconfig@4.12.0: + dependencies: + resolve-pkg-maps: 1.0.0 + giget@2.0.0: dependencies: citty: 0.1.6 @@ -8843,6 +9664,8 @@ snapshots: human-signals@5.0.0: {} + human-signals@8.0.1: {} + ieee754@1.2.1: {} ignore@5.3.2: {} @@ -8901,6 +9724,8 @@ snapshots: dependencies: binary-extensions: 2.3.0 + is-buffer@2.0.5: {} + is-builtin-module@5.0.0: dependencies: builtin-modules: 5.0.0 @@ -8936,6 +9761,8 @@ snapshots: is-module@1.0.0: {} + is-node-process@1.2.0: {} + is-number@7.0.0: {} is-path-inside@4.0.0: {} @@ -8954,6 +9781,10 @@ snapshots: is-stream@3.0.0: {} + is-stream@4.0.1: {} + + is-unicode-supported@2.1.0: {} + is-what@4.1.16: {} is-wsl@2.2.0: @@ -9570,7 +10401,13 @@ snapshots: natural-compare@1.4.0: {} - nitropack@2.12.6(drizzle-orm@0.44.6(@opentelemetry/api@1.9.0)(pg@8.16.3)): + nitro-cloudflare-dev@0.2.2: + dependencies: + consola: 3.4.2 + mlly: 1.8.0 + pkg-types: 2.3.0 + + nitropack@2.12.6(@vercel/blob@2.0.0)(aws4fetch@1.0.20)(drizzle-orm@0.44.6(@cloudflare/workers-types@4.20251011.0)(@opentelemetry/api@1.9.0)(pg@8.16.3))(rolldown@1.0.0-beta.9): dependencies: '@cloudflare/kv-asset-handler': 0.4.0 '@rollup/plugin-alias': 5.1.1(rollup@4.52.4) @@ -9591,7 +10428,7 @@ snapshots: cookie-es: 2.0.0 croner: 9.1.0 crossws: 0.3.5 - db0: 0.3.4(drizzle-orm@0.44.6(@opentelemetry/api@1.9.0)(pg@8.16.3)) + db0: 0.3.4(drizzle-orm@0.44.6(@cloudflare/workers-types@4.20251011.0)(@opentelemetry/api@1.9.0)(pg@8.16.3)) defu: 6.1.4 destr: 2.0.5 dot-prop: 9.0.0 @@ -9623,7 +10460,7 @@ snapshots: pretty-bytes: 7.1.0 radix3: 1.1.2 rollup: 4.52.4 - rollup-plugin-visualizer: 6.0.4(rollup@4.52.4) + rollup-plugin-visualizer: 6.0.4(rolldown@1.0.0-beta.9)(rollup@4.52.4) scule: 1.3.0 semver: 7.7.2 serve-placeholder: 2.0.2 @@ -9637,7 +10474,7 @@ snapshots: unenv: 2.0.0-rc.21 unimport: 4.1.1 unplugin-utils: 0.3.0 - unstorage: 1.17.1(db0@0.3.4(drizzle-orm@0.44.6(@opentelemetry/api@1.9.0)(pg@8.16.3)))(ioredis@5.8.0) + unstorage: 1.17.1(@vercel/blob@2.0.0)(aws4fetch@1.0.20)(db0@0.3.4(drizzle-orm@0.44.6(@cloudflare/workers-types@4.20251011.0)(@opentelemetry/api@1.9.0)(pg@8.16.3)))(ioredis@5.8.0) untyped: 2.0.0 unwasm: 0.3.11 youch: 4.1.0-beta.11 @@ -9733,7 +10570,7 @@ snapshots: - bcrypt - magicast - nuxt@4.1.2(@parcel/watcher@2.5.1)(@types/node@24.7.0)(@vue/compiler-sfc@3.5.22)(db0@0.3.4(drizzle-orm@0.44.6(@opentelemetry/api@1.9.0)(pg@8.16.3)))(drizzle-orm@0.44.6(@opentelemetry/api@1.9.0)(pg@8.16.3))(eslint@9.37.0(jiti@2.6.1))(ioredis@5.8.0)(lightningcss@1.30.1)(magicast@0.3.5)(optionator@0.9.4)(rollup@4.52.4)(terser@5.44.0)(typescript@5.9.3)(vite@7.1.9(@types/node@24.7.0)(jiti@2.6.1)(lightningcss@1.30.1)(terser@5.44.0)(yaml@2.8.1))(vue-tsc@3.1.0(typescript@5.9.3))(yaml@2.8.1): + nuxt@4.1.2(@parcel/watcher@2.5.1)(@types/node@24.7.0)(@vercel/blob@2.0.0)(@vue/compiler-sfc@3.5.22)(aws4fetch@1.0.20)(db0@0.3.4(drizzle-orm@0.44.6(@cloudflare/workers-types@4.20251011.0)(@opentelemetry/api@1.9.0)(pg@8.16.3)))(drizzle-orm@0.44.6(@cloudflare/workers-types@4.20251011.0)(@opentelemetry/api@1.9.0)(pg@8.16.3))(eslint@9.37.0(jiti@2.6.1))(ioredis@5.8.0)(lightningcss@1.30.1)(magicast@0.3.5)(optionator@0.9.4)(rolldown@1.0.0-beta.9)(rollup@4.52.4)(terser@5.44.0)(typescript@5.9.3)(vite@7.1.9(@types/node@24.7.0)(jiti@2.6.1)(lightningcss@1.30.1)(terser@5.44.0)(yaml@2.8.1))(vue-tsc@3.1.0(typescript@5.9.3))(yaml@2.8.1): dependencies: '@nuxt/cli': 3.28.0(magicast@0.3.5) '@nuxt/devalue': 2.0.2 @@ -9741,7 +10578,7 @@ snapshots: '@nuxt/kit': 4.1.2(magicast@0.3.5) '@nuxt/schema': 4.1.2 '@nuxt/telemetry': 2.6.6(magicast@0.3.5) - '@nuxt/vite-builder': 4.1.2(@types/node@24.7.0)(eslint@9.37.0(jiti@2.6.1))(lightningcss@1.30.1)(magicast@0.3.5)(optionator@0.9.4)(rollup@4.52.4)(terser@5.44.0)(typescript@5.9.3)(vue-tsc@3.1.0(typescript@5.9.3))(vue@3.5.22(typescript@5.9.3))(yaml@2.8.1) + '@nuxt/vite-builder': 4.1.2(@types/node@24.7.0)(eslint@9.37.0(jiti@2.6.1))(lightningcss@1.30.1)(magicast@0.3.5)(optionator@0.9.4)(rolldown@1.0.0-beta.9)(rollup@4.52.4)(terser@5.44.0)(typescript@5.9.3)(vue-tsc@3.1.0(typescript@5.9.3))(vue@3.5.22(typescript@5.9.3))(yaml@2.8.1) '@unhead/vue': 2.0.17(vue@3.5.22(typescript@5.9.3)) '@vue/shared': 3.5.22 c12: 3.3.0(magicast@0.3.5) @@ -9768,7 +10605,7 @@ snapshots: mlly: 1.8.0 mocked-exports: 0.1.1 nanotar: 0.2.0 - nitropack: 2.12.6(drizzle-orm@0.44.6(@opentelemetry/api@1.9.0)(pg@8.16.3)) + nitropack: 2.12.6(@vercel/blob@2.0.0)(aws4fetch@1.0.20)(drizzle-orm@0.44.6(@cloudflare/workers-types@4.20251011.0)(@opentelemetry/api@1.9.0)(pg@8.16.3))(rolldown@1.0.0-beta.9) nypm: 0.6.2 ofetch: 1.4.1 ohash: 2.0.11 @@ -9792,7 +10629,7 @@ snapshots: unimport: 4.1.1 unplugin: 2.3.10 unplugin-vue-router: 0.15.0(@vue/compiler-sfc@3.5.22)(typescript@5.9.3)(vue-router@4.5.1(vue@3.5.22(typescript@5.9.3)))(vue@3.5.22(typescript@5.9.3)) - unstorage: 1.17.1(db0@0.3.4(drizzle-orm@0.44.6(@opentelemetry/api@1.9.0)(pg@8.16.3)))(ioredis@5.8.0) + unstorage: 1.17.1(@vercel/blob@2.0.0)(aws4fetch@1.0.20)(db0@0.3.4(drizzle-orm@0.44.6(@cloudflare/workers-types@4.20251011.0)(@opentelemetry/api@1.9.0)(pg@8.16.3)))(ioredis@5.8.0) untyped: 2.0.0 vue: 3.5.22(typescript@5.9.3) vue-bundle-renderer: 2.2.0 @@ -9867,6 +10704,29 @@ snapshots: oauth4webapi@3.8.2: {} + obuild@0.2.1(magicast@0.3.5)(typescript@5.9.3)(vue-tsc@3.1.0(typescript@5.9.3)): + dependencies: + c12: 3.3.0(magicast@0.3.5) + consola: 3.4.2 + defu: 6.1.4 + exsolve: 1.0.7 + magic-string: 0.30.19 + oxc-minify: 0.72.3 + oxc-parser: 0.72.3 + oxc-transform: 0.72.3 + pretty-bytes: 7.1.0 + rolldown: 1.0.0-beta.9 + rolldown-plugin-dts: 0.13.14(rolldown@1.0.0-beta.9)(typescript@5.9.3)(vue-tsc@3.1.0(typescript@5.9.3)) + tinyglobby: 0.2.15 + transitivePeerDependencies: + - '@oxc-project/runtime' + - '@typescript/native-preview' + - magicast + - oxc-resolver + - supports-color + - typescript + - vue-tsc + ofetch@1.4.1: dependencies: destr: 2.0.5 @@ -9920,6 +10780,23 @@ snapshots: type-check: 0.4.0 word-wrap: 1.2.5 + oxc-minify@0.72.3: + optionalDependencies: + '@oxc-minify/binding-darwin-arm64': 0.72.3 + '@oxc-minify/binding-darwin-x64': 0.72.3 + '@oxc-minify/binding-freebsd-x64': 0.72.3 + '@oxc-minify/binding-linux-arm-gnueabihf': 0.72.3 + '@oxc-minify/binding-linux-arm-musleabihf': 0.72.3 + '@oxc-minify/binding-linux-arm64-gnu': 0.72.3 + '@oxc-minify/binding-linux-arm64-musl': 0.72.3 + '@oxc-minify/binding-linux-riscv64-gnu': 0.72.3 + '@oxc-minify/binding-linux-s390x-gnu': 0.72.3 + '@oxc-minify/binding-linux-x64-gnu': 0.72.3 + '@oxc-minify/binding-linux-x64-musl': 0.72.3 + '@oxc-minify/binding-wasm32-wasi': 0.72.3 + '@oxc-minify/binding-win32-arm64-msvc': 0.72.3 + '@oxc-minify/binding-win32-x64-msvc': 0.72.3 + oxc-minify@0.87.0: optionalDependencies: '@oxc-minify/binding-android-arm64': 0.87.0 @@ -9938,6 +10815,25 @@ snapshots: '@oxc-minify/binding-win32-arm64-msvc': 0.87.0 '@oxc-minify/binding-win32-x64-msvc': 0.87.0 + oxc-parser@0.72.3: + dependencies: + '@oxc-project/types': 0.72.3 + optionalDependencies: + '@oxc-parser/binding-darwin-arm64': 0.72.3 + '@oxc-parser/binding-darwin-x64': 0.72.3 + '@oxc-parser/binding-freebsd-x64': 0.72.3 + '@oxc-parser/binding-linux-arm-gnueabihf': 0.72.3 + '@oxc-parser/binding-linux-arm-musleabihf': 0.72.3 + '@oxc-parser/binding-linux-arm64-gnu': 0.72.3 + '@oxc-parser/binding-linux-arm64-musl': 0.72.3 + '@oxc-parser/binding-linux-riscv64-gnu': 0.72.3 + '@oxc-parser/binding-linux-s390x-gnu': 0.72.3 + '@oxc-parser/binding-linux-x64-gnu': 0.72.3 + '@oxc-parser/binding-linux-x64-musl': 0.72.3 + '@oxc-parser/binding-wasm32-wasi': 0.72.3 + '@oxc-parser/binding-win32-arm64-msvc': 0.72.3 + '@oxc-parser/binding-win32-x64-msvc': 0.72.3 + oxc-parser@0.87.0: dependencies: '@oxc-project/types': 0.87.0 @@ -9958,6 +10854,23 @@ snapshots: '@oxc-parser/binding-win32-arm64-msvc': 0.87.0 '@oxc-parser/binding-win32-x64-msvc': 0.87.0 + oxc-transform@0.72.3: + optionalDependencies: + '@oxc-transform/binding-darwin-arm64': 0.72.3 + '@oxc-transform/binding-darwin-x64': 0.72.3 + '@oxc-transform/binding-freebsd-x64': 0.72.3 + '@oxc-transform/binding-linux-arm-gnueabihf': 0.72.3 + '@oxc-transform/binding-linux-arm-musleabihf': 0.72.3 + '@oxc-transform/binding-linux-arm64-gnu': 0.72.3 + '@oxc-transform/binding-linux-arm64-musl': 0.72.3 + '@oxc-transform/binding-linux-riscv64-gnu': 0.72.3 + '@oxc-transform/binding-linux-s390x-gnu': 0.72.3 + '@oxc-transform/binding-linux-x64-gnu': 0.72.3 + '@oxc-transform/binding-linux-x64-musl': 0.72.3 + '@oxc-transform/binding-wasm32-wasi': 0.72.3 + '@oxc-transform/binding-win32-arm64-msvc': 0.72.3 + '@oxc-transform/binding-win32-x64-msvc': 0.72.3 + oxc-transform@0.87.0: optionalDependencies: '@oxc-transform/binding-android-arm64': 0.87.0 @@ -10021,6 +10934,8 @@ snapshots: dependencies: parse-statements: 1.0.11 + parse-ms@4.0.0: {} + parse-path@7.1.0: dependencies: protocols: 2.0.2 @@ -10305,6 +11220,10 @@ snapshots: pretty-bytes@7.1.0: {} + pretty-ms@9.3.0: + dependencies: + parse-ms: 4.0.0 + process-nextick-args@2.0.1: {} process@0.11.10: {} @@ -10543,17 +11462,57 @@ snapshots: restructure@3.0.2: {} + retry@0.13.1: {} + reusify@1.1.0: {} rfdc@1.4.1: {} - rollup-plugin-visualizer@6.0.4(rollup@4.52.4): + rolldown-plugin-dts@0.13.14(rolldown@1.0.0-beta.9)(typescript@5.9.3)(vue-tsc@3.1.0(typescript@5.9.3)): + dependencies: + '@babel/generator': 7.28.3 + '@babel/parser': 7.28.4 + '@babel/types': 7.28.4 + ast-kit: 2.1.3 + birpc: 2.6.1 + debug: 4.4.3 + dts-resolver: 2.1.2 + get-tsconfig: 4.12.0 + rolldown: 1.0.0-beta.9 + optionalDependencies: + typescript: 5.9.3 + vue-tsc: 3.1.0(typescript@5.9.3) + transitivePeerDependencies: + - oxc-resolver + - supports-color + + rolldown@1.0.0-beta.9: + dependencies: + '@oxc-project/types': 0.70.0 + '@rolldown/pluginutils': 1.0.0-beta.9 + ansis: 4.2.0 + optionalDependencies: + '@rolldown/binding-darwin-arm64': 1.0.0-beta.9 + '@rolldown/binding-darwin-x64': 1.0.0-beta.9 + '@rolldown/binding-freebsd-x64': 1.0.0-beta.9 + '@rolldown/binding-linux-arm-gnueabihf': 1.0.0-beta.9 + '@rolldown/binding-linux-arm64-gnu': 1.0.0-beta.9 + '@rolldown/binding-linux-arm64-musl': 1.0.0-beta.9 + '@rolldown/binding-linux-x64-gnu': 1.0.0-beta.9 + '@rolldown/binding-linux-x64-musl': 1.0.0-beta.9 + '@rolldown/binding-wasm32-wasi': 1.0.0-beta.9 + '@rolldown/binding-win32-arm64-msvc': 1.0.0-beta.9 + '@rolldown/binding-win32-ia32-msvc': 1.0.0-beta.9 + '@rolldown/binding-win32-x64-msvc': 1.0.0-beta.9 + + rollup-plugin-visualizer@6.0.4(rolldown@1.0.0-beta.9)(rollup@4.52.4): dependencies: open: 8.4.2 picomatch: 4.0.3 source-map: 0.7.6 yargs: 17.7.2 optionalDependencies: + rolldown: 1.0.0-beta.9 rollup: 4.52.4 rollup@4.52.4: @@ -10779,6 +11738,8 @@ snapshots: strip-final-newline@3.0.0: {} + strip-final-newline@4.0.0: {} + strip-indent@4.1.0: {} strip-json-comments@3.1.1: {} @@ -10864,6 +11825,8 @@ snapshots: transitivePeerDependencies: - react-native-b4a + throttleit@2.1.0: {} + tiny-inflate@1.0.3: {} tiny-invariant@1.3.3: {} @@ -10924,6 +11887,10 @@ snapshots: undici-types@7.14.0: {} + undici@5.29.0: + dependencies: + '@fastify/busboy': 2.1.1 + unenv@2.0.0-rc.21: dependencies: defu: 6.1.4 @@ -11111,7 +12078,7 @@ snapshots: '@unrs/resolver-binding-win32-ia32-msvc': 1.11.1 '@unrs/resolver-binding-win32-x64-msvc': 1.11.1 - unstorage@1.17.1(db0@0.3.4(drizzle-orm@0.44.6(@opentelemetry/api@1.9.0)(pg@8.16.3)))(ioredis@5.8.0): + unstorage@1.17.1(@vercel/blob@2.0.0)(aws4fetch@1.0.20)(db0@0.3.4(drizzle-orm@0.44.6(@cloudflare/workers-types@4.20251011.0)(@opentelemetry/api@1.9.0)(pg@8.16.3)))(ioredis@5.8.0): dependencies: anymatch: 3.1.3 chokidar: 4.0.3 @@ -11122,7 +12089,9 @@ snapshots: ofetch: 1.4.1 ufo: 1.6.1 optionalDependencies: - db0: 0.3.4(drizzle-orm@0.44.6(@opentelemetry/api@1.9.0)(pg@8.16.3)) + '@vercel/blob': 2.0.0 + aws4fetch: 1.0.20 + db0: 0.3.4(drizzle-orm@0.44.6(@cloudflare/workers-types@4.20251011.0)(@opentelemetry/api@1.9.0)(pg@8.16.3)) ioredis: 5.8.0 untun@0.1.3: @@ -11347,6 +12316,13 @@ snapshots: word-wrap@1.2.5: {} + workers-ai-provider@2.0.0(zod@4.1.12): + dependencies: + '@ai-sdk/provider': 2.0.0 + '@ai-sdk/provider-utils': 3.0.12(zod@4.1.12) + transitivePeerDependencies: + - zod + wrap-ansi@7.0.0: dependencies: ansi-styles: 4.3.0 @@ -11393,6 +12369,8 @@ snapshots: yocto-queue@1.2.1: {} + yoctocolors@2.1.2: {} + youch-core@0.3.3: dependencies: '@poppinss/exception': 1.2.2 @@ -11412,6 +12390,6 @@ snapshots: compress-commons: 6.0.2 readable-stream: 4.7.0 - zod@4.1.11: {} + zod@4.1.12: {} zwitch@2.0.4: {} diff --git a/server/api/chats/[id].post.ts b/server/api/chats/[id].post.ts index ed46a03..a5fa61d 100644 --- a/server/api/chats/[id].post.ts +++ b/server/api/chats/[id].post.ts @@ -1,5 +1,4 @@ import { convertToModelMessages, createUIMessageStream, createUIMessageStreamResponse, generateText, streamText } from 'ai' -import { gateway } from '@ai-sdk/gateway' import type { UIMessage } from 'ai' import { z } from 'zod' @@ -34,7 +33,7 @@ export default defineEventHandler(async (event) => { if (!chat.title) { const { text: title } = await generateText({ - model: gateway('openai/gpt-4o-mini'), + model: hubAI('openai/gpt-4o-mini'), system: `You are a title generator for a chat: - Generate a short title based on the first user's message - The title should be less than 30 characters long @@ -59,7 +58,7 @@ export default defineEventHandler(async (event) => { const stream = createUIMessageStream({ execute: ({ writer }) => { const result = streamText({ - model: gateway(model), + model: hubAI(model), system: 'You are a helpful assistant that can answer questions and help.', messages: convertToModelMessages(messages) }) diff --git a/server/utils/drizzle.ts b/server/utils/drizzle.ts index d59902c..171df32 100644 --- a/server/utils/drizzle.ts +++ b/server/utils/drizzle.ts @@ -1,5 +1,3 @@ -import { drizzle } from 'drizzle-orm/node-postgres' - import * as schema from '../database/schema' export { sql, eq, and, or, desc } from 'drizzle-orm' @@ -7,12 +5,7 @@ export { sql, eq, and, or, desc } from 'drizzle-orm' export const tables = schema export function useDrizzle() { - return drizzle({ - connection: { - connectionString: process.env.DATABASE_URL - }, - schema - }) + return hubDrizzle({ schema }) } export type Chat = typeof schema.chats.$inferSelect From 66b2b414b27a8a3c68a4c4da6cf08166a7b6243f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9bastien=20Chopin?= Date: Fri, 17 Oct 2025 17:30:58 +0200 Subject: [PATCH 02/11] chore: move to sqlite + turso --- README.md | 4 +- drizzle.config.ts | 7 +- nuxt.config.ts | 4 +- package.json | 5 +- pnpm-lock.yaml | 523 ++++++++++++++++-- pnpm-workspace.yaml | 3 + .../migrations/0000_amusing_gunslinger.sql | 32 -- .../migrations/0000_fancy_dracula.sql | 30 + .../migrations/meta/0000_snapshot.json | 213 +++---- server/database/migrations/meta/_journal.json | 6 +- server/database/schema.ts | 41 +- 11 files changed, 635 insertions(+), 233 deletions(-) delete mode 100644 server/database/migrations/0000_amusing_gunslinger.sql create mode 100644 server/database/migrations/0000_fancy_dracula.sql diff --git a/README.md b/README.md index 3b65418..bc968f5 100644 --- a/README.md +++ b/README.md @@ -20,7 +20,7 @@ Full-featured AI Chatbot Nuxt application with authentication, chat history, mul - ⚡️ **Streaming AI messages** powered by the [AI SDK v5](https://sdk.vercel.ai) - 🤖 **Multiple model support** via various AI providers with built-in AI Gateway support - 🔐 **Authentication** via [nuxt-auth-utils](https://github.com/atinux/nuxt-auth-utils) -- 💾 **Chat history persistence** using PostgreSQL database and [Drizzle ORM](https://orm.drizzle.team) +- 💾 **Chat history persistence** using SQLite database (Turso in production) and [Drizzle ORM](https://orm.drizzle.team) - 🚀 **Easy deploy** to Vercel with zero configuration ## Quick Start @@ -31,7 +31,7 @@ npm create nuxt@latest -- -t ui/chat ## Deploy your own -[![Deploy with Vercel](https://vercel.com/button)](https://vercel.com/new/clone?repository-name=chat&repository-url=https%3A%2F%2Fgithub.com%2Fnuxt-ui-templates%2Fchat&env=NUXT_SESSION_PASSWORD,NUXT_OAUTH_GITHUB_CLIENT_ID,NUXT_OAUTH_GITHUB_CLIENT_SECRET&products=%5B%7B%22type%22%3A%22integration%22%2C%22group%22%3A%22postgres%22%7D%5D&demo-image=https%3A%2F%2Fui.nuxt.com%2Fassets%2Ftemplates%2Fnuxt%2Fchat-dark.png&demo-url=https%3A%2F%2Fchat-template.nuxt.dev%2F&demo-title=Nuxt%20Chat%20Template&demo-description=An%20AI%20chatbot%20template%20to%20build%20your%20own%20chatbot%20powered%20by%20Nuxt%20MDC%20and%20Vercel%20AI%20SDK.) +[![Deploy with Vercel](https://vercel.com/button)](https://vercel.com/new/clone?repository-name=chat&repository-url=https%3A%2F%2Fgithub.com%2Fnuxt-ui-templates%2Fchat&env=NUXT_SESSION_PASSWORD,NUXT_OAUTH_GITHUB_CLIENT_ID,NUXT_OAUTH_GITHUB_CLIENT_SECRET&products=%5B%7B%22type%22%3A%22integration%22%2C%22group%22%3A%22libsql%22%7D%5D&demo-image=https%3A%2F%2Fui.nuxt.com%2Fassets%2Ftemplates%2Fnuxt%2Fchat-dark.png&demo-url=https%3A%2F%2Fchat-template.nuxt.dev%2F&demo-title=Nuxt%20Chat%20Template&demo-description=An%20AI%20chatbot%20template%20to%20build%20your%20own%20chatbot%20powered%20by%20Nuxt%20MDC%20and%20Vercel%20AI%20SDK.) ## Setup diff --git a/drizzle.config.ts b/drizzle.config.ts index 0f8dad8..505a7d1 100644 --- a/drizzle.config.ts +++ b/drizzle.config.ts @@ -1,10 +1,7 @@ import { defineConfig } from 'drizzle-kit' export default defineConfig({ - dialect: 'postgresql', + dialect: 'sqlite', schema: './server/database/schema.ts', - out: './server/database/migrations', - dbCredentials: { - url: process.env.DATABASE_URL! - } + out: './server/database/migrations' }) diff --git a/nuxt.config.ts b/nuxt.config.ts index 4d68857..5e71e1a 100644 --- a/nuxt.config.ts +++ b/nuxt.config.ts @@ -5,7 +5,7 @@ export default defineNuxtConfig({ '@nuxt/ui', '@nuxtjs/mdc', 'nuxt-auth-utils', - '@nuxthub/core-nightly' + '@nuxthub/core' ], devtools: { @@ -35,7 +35,7 @@ export default defineNuxtConfig({ hub: { ai: 'vercel', - database: 'postgresql' + database: 'sqlite' }, vite: { diff --git a/package.json b/package.json index f3f824d..b69f69c 100644 --- a/package.json +++ b/package.json @@ -18,15 +18,16 @@ "@iconify-json/logos": "^1.2.9", "@iconify-json/lucide": "^1.2.68", "@iconify-json/simple-icons": "^1.2.54", + "@libsql/client": "^0.15.15", "@nuxt/ui": "^4.0.1", - "@nuxthub/core-nightly": "1.0.0-20251013-051212-5debfb7", + "@nuxthub/core": "npm:@nuxthub/core-nightly@1.0.0-20251017-151859-a29e297", "@nuxtjs/mdc": "^0.17.4", "ai": "^5.0.60", + "better-sqlite3": "^12.4.1", "date-fns": "^4.1.0", "drizzle-orm": "^0.44.6", "nuxt": "^4.1.2", "nuxt-auth-utils": "^0.5.25", - "pg": "^8.16.3", "shiki-stream": "^0.1.2" }, "devDependencies": { diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index a6bb23b..57a3bf8 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -26,33 +26,36 @@ importers: '@iconify-json/simple-icons': specifier: ^1.2.54 version: 1.2.54 + '@libsql/client': + specifier: ^0.15.15 + version: 0.15.15 '@nuxt/ui': specifier: ^4.0.1 - version: 4.0.1(@babel/parser@7.28.4)(@vercel/blob@2.0.0)(aws4fetch@1.0.20)(change-case@5.4.4)(db0@0.3.4(drizzle-orm@0.44.6(@cloudflare/workers-types@4.20251011.0)(@opentelemetry/api@1.9.0)(pg@8.16.3)))(embla-carousel@8.6.0)(ioredis@5.8.0)(magicast@0.3.5)(typescript@5.9.3)(vite@7.1.9(@types/node@24.7.0)(jiti@2.6.1)(lightningcss@1.30.1)(terser@5.44.0)(yaml@2.8.1))(vue-router@4.5.1(vue@3.5.22(typescript@5.9.3)))(vue@3.5.22(typescript@5.9.3))(zod@4.1.12) - '@nuxthub/core-nightly': - specifier: 1.0.0-20251013-051212-5debfb7 - version: 1.0.0-20251013-051212-5debfb7(@ai-sdk/gateway@1.0.33(zod@4.1.12))(drizzle-orm@0.44.6(@cloudflare/workers-types@4.20251011.0)(@opentelemetry/api@1.9.0)(pg@8.16.3))(ioredis@5.8.0)(magicast@0.3.5)(typescript@5.9.3)(vite@7.1.9(@types/node@24.7.0)(jiti@2.6.1)(lightningcss@1.30.1)(terser@5.44.0)(yaml@2.8.1))(vue-tsc@3.1.0(typescript@5.9.3))(workers-ai-provider@2.0.0(zod@4.1.12)) + version: 4.0.1(@babel/parser@7.28.4)(@vercel/blob@2.0.0)(aws4fetch@1.0.20)(change-case@5.4.4)(db0@0.3.4(@libsql/client@0.15.15)(better-sqlite3@12.4.1)(drizzle-orm@0.44.6(@cloudflare/workers-types@4.20251011.0)(@libsql/client@0.15.15)(@opentelemetry/api@1.9.0)(better-sqlite3@12.4.1)(pg@8.16.3)))(embla-carousel@8.6.0)(ioredis@5.8.0)(magicast@0.3.5)(typescript@5.9.3)(vite@7.1.9(@types/node@24.7.0)(jiti@2.6.1)(lightningcss@1.30.1)(terser@5.44.0)(yaml@2.8.1))(vue-router@4.5.1(vue@3.5.22(typescript@5.9.3)))(vue@3.5.22(typescript@5.9.3))(zod@4.1.12) + '@nuxthub/core': + specifier: npm:@nuxthub/core-nightly@1.0.0-20251017-151859-a29e297 + version: '@nuxthub/core-nightly@1.0.0-20251017-151859-a29e297(@ai-sdk/gateway@1.0.33(zod@4.1.12))(@libsql/client@0.15.15)(better-sqlite3@12.4.1)(drizzle-orm@0.44.6(@cloudflare/workers-types@4.20251011.0)(@libsql/client@0.15.15)(@opentelemetry/api@1.9.0)(better-sqlite3@12.4.1)(pg@8.16.3))(ioredis@5.8.0)(magicast@0.3.5)(typescript@5.9.3)(vite@7.1.9(@types/node@24.7.0)(jiti@2.6.1)(lightningcss@1.30.1)(terser@5.44.0)(yaml@2.8.1))(vue-tsc@3.1.0(typescript@5.9.3))(workers-ai-provider@2.0.0(zod@4.1.12))' '@nuxtjs/mdc': specifier: ^0.17.4 version: 0.17.4(magicast@0.3.5) ai: specifier: ^5.0.60 version: 5.0.60(zod@4.1.12) + better-sqlite3: + specifier: ^12.4.1 + version: 12.4.1 date-fns: specifier: ^4.1.0 version: 4.1.0 drizzle-orm: specifier: ^0.44.6 - version: 0.44.6(@cloudflare/workers-types@4.20251011.0)(@opentelemetry/api@1.9.0)(pg@8.16.3) + version: 0.44.6(@cloudflare/workers-types@4.20251011.0)(@libsql/client@0.15.15)(@opentelemetry/api@1.9.0)(better-sqlite3@12.4.1)(pg@8.16.3) nuxt: specifier: ^4.1.2 - version: 4.1.2(@parcel/watcher@2.5.1)(@types/node@24.7.0)(@vercel/blob@2.0.0)(@vue/compiler-sfc@3.5.22)(aws4fetch@1.0.20)(db0@0.3.4(drizzle-orm@0.44.6(@cloudflare/workers-types@4.20251011.0)(@opentelemetry/api@1.9.0)(pg@8.16.3)))(drizzle-orm@0.44.6(@cloudflare/workers-types@4.20251011.0)(@opentelemetry/api@1.9.0)(pg@8.16.3))(eslint@9.37.0(jiti@2.6.1))(ioredis@5.8.0)(lightningcss@1.30.1)(magicast@0.3.5)(optionator@0.9.4)(rolldown@1.0.0-beta.9)(rollup@4.52.4)(terser@5.44.0)(typescript@5.9.3)(vite@7.1.9(@types/node@24.7.0)(jiti@2.6.1)(lightningcss@1.30.1)(terser@5.44.0)(yaml@2.8.1))(vue-tsc@3.1.0(typescript@5.9.3))(yaml@2.8.1) + version: 4.1.2(@libsql/client@0.15.15)(@parcel/watcher@2.5.1)(@types/node@24.7.0)(@vercel/blob@2.0.0)(@vue/compiler-sfc@3.5.22)(aws4fetch@1.0.20)(better-sqlite3@12.4.1)(db0@0.3.4(@libsql/client@0.15.15)(better-sqlite3@12.4.1)(drizzle-orm@0.44.6(@cloudflare/workers-types@4.20251011.0)(@libsql/client@0.15.15)(@opentelemetry/api@1.9.0)(better-sqlite3@12.4.1)(pg@8.16.3)))(drizzle-orm@0.44.6(@cloudflare/workers-types@4.20251011.0)(@libsql/client@0.15.15)(@opentelemetry/api@1.9.0)(better-sqlite3@12.4.1)(pg@8.16.3))(eslint@9.37.0(jiti@2.6.1))(ioredis@5.8.0)(lightningcss@1.30.1)(magicast@0.3.5)(optionator@0.9.4)(rolldown@1.0.0-beta.9)(rollup@4.52.4)(terser@5.44.0)(typescript@5.9.3)(vite@7.1.9(@types/node@24.7.0)(jiti@2.6.1)(lightningcss@1.30.1)(terser@5.44.0)(yaml@2.8.1))(vue-tsc@3.1.0(typescript@5.9.3))(yaml@2.8.1) nuxt-auth-utils: specifier: ^0.5.25 version: 0.5.25(magicast@0.3.5) - pg: - specifier: ^8.16.3 - version: 8.16.3 shiki-stream: specifier: ^0.1.2 version: 0.1.2(vue@3.5.22(typescript@5.9.3)) @@ -760,6 +763,67 @@ packages: '@kwsites/promise-deferred@1.1.1': resolution: {integrity: sha512-GaHYm+c0O9MjZRu0ongGBRbinu8gVAMd2UZjji6jVmqKtZluZnptXGWhz1E8j8D2HJ3f/yMxKAUC0b+57wncIw==} + '@libsql/client@0.15.15': + resolution: {integrity: sha512-twC0hQxPNHPKfeOv3sNT6u2pturQjLcI+CnpTM0SjRpocEGgfiZ7DWKXLNnsothjyJmDqEsBQJ5ztq9Wlu470w==} + + '@libsql/core@0.15.15': + resolution: {integrity: sha512-C88Z6UKl+OyuKKPwz224riz02ih/zHYI3Ho/LAcVOgjsunIRZoBw7fjRfaH9oPMmSNeQfhGklSG2il1URoOIsA==} + + '@libsql/darwin-arm64@0.5.22': + resolution: {integrity: sha512-4B8ZlX3nIDPndfct7GNe0nI3Yw6ibocEicWdC4fvQbSs/jdq/RC2oCsoJxJ4NzXkvktX70C1J4FcmmoBy069UA==} + cpu: [arm64] + os: [darwin] + + '@libsql/darwin-x64@0.5.22': + resolution: {integrity: sha512-ny2HYWt6lFSIdNFzUFIJ04uiW6finXfMNJ7wypkAD8Pqdm6nAByO+Fdqu8t7sD0sqJGeUCiOg480icjyQ2/8VA==} + cpu: [x64] + os: [darwin] + + '@libsql/hrana-client@0.7.0': + resolution: {integrity: sha512-OF8fFQSkbL7vJY9rfuegK1R7sPgQ6kFMkDamiEccNUvieQ+3urzfDFI616oPl8V7T9zRmnTkSjMOImYCAVRVuw==} + + '@libsql/isomorphic-fetch@0.3.1': + resolution: {integrity: sha512-6kK3SUK5Uu56zPq/Las620n5aS9xJq+jMBcNSOmjhNf/MUvdyji4vrMTqD7ptY7/4/CAVEAYDeotUz60LNQHtw==} + engines: {node: '>=18.0.0'} + + '@libsql/isomorphic-ws@0.1.5': + resolution: {integrity: sha512-DtLWIH29onUYR00i0GlQ3UdcTRC6EP4u9w/h9LxpUZJWRMARk6dQwZ6Jkd+QdwVpuAOrdxt18v0K2uIYR3fwFg==} + + '@libsql/linux-arm-gnueabihf@0.5.22': + resolution: {integrity: sha512-3Uo3SoDPJe/zBnyZKosziRGtszXaEtv57raWrZIahtQDsjxBVjuzYQinCm9LRCJCUT5t2r5Z5nLDPJi2CwZVoA==} + cpu: [arm] + os: [linux] + + '@libsql/linux-arm-musleabihf@0.5.22': + resolution: {integrity: sha512-LCsXh07jvSojTNJptT9CowOzwITznD+YFGGW+1XxUr7fS+7/ydUrpDfsMX7UqTqjm7xG17eq86VkWJgHJfvpNg==} + cpu: [arm] + os: [linux] + + '@libsql/linux-arm64-gnu@0.5.22': + resolution: {integrity: sha512-KSdnOMy88c9mpOFKUEzPskSaF3VLflfSUCBwas/pn1/sV3pEhtMF6H8VUCd2rsedwoukeeCSEONqX7LLnQwRMA==} + cpu: [arm64] + os: [linux] + + '@libsql/linux-arm64-musl@0.5.22': + resolution: {integrity: sha512-mCHSMAsDTLK5YH//lcV3eFEgiR23Ym0U9oEvgZA0667gqRZg/2px+7LshDvErEKv2XZ8ixzw3p1IrBzLQHGSsw==} + cpu: [arm64] + os: [linux] + + '@libsql/linux-x64-gnu@0.5.22': + resolution: {integrity: sha512-kNBHaIkSg78Y4BqAdgjcR2mBilZXs4HYkAmi58J+4GRwDQZh5fIUWbnQvB9f95DkWUIGVeenqLRFY2pcTmlsew==} + cpu: [x64] + os: [linux] + + '@libsql/linux-x64-musl@0.5.22': + resolution: {integrity: sha512-UZ4Xdxm4pu3pQXjvfJiyCzZop/9j/eA2JjmhMaAhe3EVLH2g11Fy4fwyUp9sT1QJYR1kpc2JLuybPM0kuXv/Tg==} + cpu: [x64] + os: [linux] + + '@libsql/win32-x64-msvc@0.5.22': + resolution: {integrity: sha512-Fj0j8RnBpo43tVZUVoNK6BV/9AtDUM5S7DF3LB4qTYg1LMSZqi3yeCneUTLJD6XomQJlZzbI4mst89yspVSAnA==} + cpu: [x64] + os: [win32] + '@lukeed/ms@2.0.2': resolution: {integrity: sha512-9I2Zn6+NJLfaGoz9jN3lpwDgAYvfGeNYdbAIjJOqzs4Tpc+VU3Jqq4IofSUBKajiDS8k9fZIg18/z13mpk1bsA==} engines: {node: '>=8'} @@ -775,6 +839,9 @@ packages: '@napi-rs/wasm-runtime@1.0.6': resolution: {integrity: sha512-DXj75ewm11LIWUk198QSKUTxjyRjsBwk09MuMk5DGK+GDUtyPhhEHOGP/Xwwj3DjQXXkivoBirmOnKrLfc0+9g==} + '@neon-rs/load@0.0.4': + resolution: {integrity: sha512-kTPhdZyTQxB+2wpiRcFWrDcejc4JI6tkPuS7UZCG4l6Zvc5kU/gGQ/ozvHTh1XR5tS+UlfAfGuPajjzQjCiHCw==} + '@nodelib/fs.scandir@2.1.5': resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} engines: {node: '>= 8'} @@ -905,8 +972,8 @@ packages: peerDependencies: vue: ^3.3.4 - '@nuxthub/core-nightly@1.0.0-20251013-051212-5debfb7': - resolution: {integrity: sha512-ZP4FBkD5CqAr4N8l0XYS2GkJBbWdeWnnsViWtTykvLdnKf+QP5/jne4Kc/JJ9afMusdXqrtG79N87rno13PTwg==} + '@nuxthub/core-nightly@1.0.0-20251017-151859-a29e297': + resolution: {integrity: sha512-zASjEOjll6ZbcGY9We+Boep1NEiYTRH+3wiIYAaDbB4BAbFfvi88lrH+qgOONkxIFlSCkk+k5L7y90S7fFkoEA==} hasBin: true peerDependencies: '@ai-sdk/gateway': ^1.0.30 @@ -2035,6 +2102,9 @@ packages: '@types/web-bluetooth@0.0.21': resolution: {integrity: sha512-oIQLCGWtcFZy2JW77j9k8nHzAOpqMHLQejDA48XXMWH6tjCQHz5RCFz1bzsmROyL6PUm+LLnUiI4BCn221inxA==} + '@types/ws@8.18.1': + resolution: {integrity: sha512-ThVF6DCVhA8kUGy+aazFQ4kXQ7E1Ty7A3ypFOe0IcJV8O/M511G99AW24irKrW56Wt44yG9+ij8FaqoBGkuBXg==} + '@typescript-eslint/eslint-plugin@8.45.0': resolution: {integrity: sha512-HC3y9CVuevvWCl/oyZuI47dOeDF9ztdMEfMH8/DW/Mhwa9cCLnK1oD7JoTVGW/u7kFzNZUKUoyJEqkaJh5y3Wg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} @@ -2532,6 +2602,10 @@ packages: resolution: {integrity: sha512-vAPMQdnyKCBtkmQA6FMCBvU9qFIppS3nzyXnEM+Lo2IAhG4Mpjv9cCxMudhgV3YdNNJv6TNqXy97dfRVL2LmaQ==} hasBin: true + better-sqlite3@12.4.1: + resolution: {integrity: sha512-3yVdyZhklTiNrtg+4WqHpJpFDd+WHTg2oM7UcR80GqL05AOV0xEJzc6qNvFYoEtE+hRp1n9MpN6/+4yhlGkDXQ==} + engines: {node: 20.x || 22.x || 23.x || 24.x} + binary-extensions@2.3.0: resolution: {integrity: sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==} engines: {node: '>=8'} @@ -2542,6 +2616,9 @@ packages: birpc@2.6.1: resolution: {integrity: sha512-LPnFhlDpdSH6FJhJyn4M0kFO7vtQ5iPw24FnG0y21q09xC7e8+1LeR31S1MAIrDAHp4m7aas4bEkTDTvMAtebQ==} + bl@4.1.0: + resolution: {integrity: sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==} + blob-to-buffer@1.2.9: resolution: {integrity: sha512-BF033y5fN6OCofD3vgHmNtwZWRcq9NLyyxyILx9hfMy1sXYy4ojFl765hJ2lP0YaN2fuxPaLO2Vzzoxy0FLFFA==} @@ -2573,6 +2650,9 @@ packages: buffer-from@1.1.2: resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==} + buffer@5.7.1: + resolution: {integrity: sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==} + buffer@6.0.3: resolution: {integrity: sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==} @@ -2654,6 +2734,9 @@ packages: resolution: {integrity: sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==} engines: {node: '>= 14.16.0'} + chownr@1.1.4: + resolution: {integrity: sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==} + chownr@3.0.0: resolution: {integrity: sha512-+IxzY9BZOQd/XuYPRmrvEVjF/nqj5kgT4kEq7VofrDoM1MxoRjEWkrCC3EtLi59TVawxTAn+orJwFQcrqEN1+g==} engines: {node: '>=18'} @@ -2832,6 +2915,10 @@ packages: csstype@3.1.3: resolution: {integrity: sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==} + data-uri-to-buffer@4.0.1: + resolution: {integrity: sha512-0R9ikRb668HB7QDxT1vkpuUBtqc53YyAwMwGeUFKRojY/NWKvdZ+9UYtRfGmhqNbRkTSVpMbmyhXipFFv2cb/A==} + engines: {node: '>= 12'} + date-fns@4.1.0: resolution: {integrity: sha512-Ukq0owbQXxa/U3EGtsdVBkR1w7KOQ5gIBqdH2hkvknzZPYvBxb/aa6E8L7tmjFtkwZBu3UXBbjIgPo/Ez4xaNg==} @@ -2870,6 +2957,14 @@ packages: decode-named-character-reference@1.2.0: resolution: {integrity: sha512-c6fcElNV6ShtZXmsgNgFFV5tVX2PaV4g+MOAkb8eXHvn6sryJBrZa9r0zV6+dtTyoCKxtDy5tyQ5ZwQuidtd+Q==} + decompress-response@6.0.0: + resolution: {integrity: sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==} + engines: {node: '>=10'} + + deep-extend@0.6.0: + resolution: {integrity: sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==} + engines: {node: '>=4.0.0'} + deep-is@0.1.4: resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} @@ -2919,6 +3014,10 @@ packages: engines: {node: '>=0.10'} hasBin: true + detect-libc@2.0.2: + resolution: {integrity: sha512-UX6sGumvvqSaXgdKGUsgZWqcUyIXZ/vZTrlRT/iobiKhGL0zL4d3osHj3uqllWJK+i+sixDS/3COVEOFbupFyw==} + engines: {node: '>=8'} + detect-libc@2.1.2: resolution: {integrity: sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ==} engines: {node: '>=8'} @@ -3138,6 +3237,9 @@ packages: resolution: {integrity: sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==} engines: {node: '>= 0.8'} + end-of-stream@1.4.5: + resolution: {integrity: sha512-ooEGc6HP26xXq/N+GCGOT0JKCLDGrq2bQUZrQ7gyrJiZANJ/8YDTxTpQBXGMn+WbIQXNVpyWymm7KYVICQnyOg==} + enhanced-resolve@5.18.3: resolution: {integrity: sha512-d4lC8xfavMeBjzGr2vECC3fsGXziXZQyJxD868h2M/mBI3PwAuODxAkLkq5HYuvrPYcUtiLzsTo8U3PgX3Ocww==} engines: {node: '>=10.13.0'} @@ -3356,6 +3458,10 @@ packages: resolution: {integrity: sha512-jpWzZ1ZhwUmeWRhS7Qv3mhpOhLfwI+uAX4e5fOcXqwMR7EcJ0pj2kV1CVzHVMX/LphnKWD3LObjZCoJ71lKpHw==} engines: {node: ^18.19.0 || >=20.5.0} + expand-template@2.0.3: + resolution: {integrity: sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg==} + engines: {node: '>=6'} + exsolve@1.0.7: resolution: {integrity: sha512-VO5fQUzZtI6C+vx4w/4BWJpg3s/5l+6pRQEHzFRM8WFi4XffSP1Z+4qi7GbjWbvRQEbdIco5mIMq+zX4rPuLrw==} @@ -3393,6 +3499,10 @@ packages: picomatch: optional: true + fetch-blob@3.2.0: + resolution: {integrity: sha512-7yAQpD2UMJzLi1Dqv7qFYnPbaPx7ZfFK6PiIxQ4PfkGPyNyl2Ugx+a/umUonmKqjhM4DnfbMvdX6otXq83soQQ==} + engines: {node: ^12.20 || >= 14.13} + figures@6.1.0: resolution: {integrity: sha512-d+l3qxjSesT4V7v2fh+QnmFnUWv9lSpjarhShNTgBOfA0ttejbQUAlHLitbjkoRiDulW0OPoQPYIGhIC8ohejg==} engines: {node: '>=18'} @@ -3446,6 +3556,10 @@ packages: resolution: {integrity: sha512-gIXjKqtFuWEgzFRJA9WCQeSJLZDjgJUOMCMzxtvFq/37KojM1BFGufqsCy0r4qSQmYLsZYMeyRqzIWOMup03sw==} engines: {node: '>=14'} + formdata-polyfill@4.0.10: + resolution: {integrity: sha512-buewHzMvYL29jdeQTVILecSaZKnt/RJWjoZCF5OW60Z67/GmSLBkOFM7qh1PI3zFNtJbaZL5eQu1vLfazOwj4g==} + engines: {node: '>=12.20.0'} + fraction.js@4.3.7: resolution: {integrity: sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==} @@ -3467,6 +3581,9 @@ packages: resolution: {integrity: sha512-Rx/WycZ60HOaqLKAi6cHRKKI7zxWbJ31MhntmtwMoaTeF7XFH9hhBp8vITaMidfljRQ6eYWCKkaTK+ykVJHP2A==} engines: {node: '>= 0.8'} + fs-constants@1.0.0: + resolution: {integrity: sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==} + fsevents@2.3.3: resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} @@ -3514,6 +3631,9 @@ packages: git-url-parse@16.1.0: resolution: {integrity: sha512-cPLz4HuK86wClEW7iDdeAKcCVlWXmrLpb2L+G9goW0Z1dtpNS6BXXSOckUTlJT/LDQViE1QZKstNORzHsLnobw==} + github-from-package@0.0.0: + resolution: {integrity: sha512-SyHy3T1v2NUXn29OsWdxmK6RwHD+vkj3v8en8AOBZ1wBQ/hCAQ5bAQTD02kW4W9tUp/3Qh6J8r9EvntiyCmOOw==} + github-slugger@2.0.0: resolution: {integrity: sha512-IaOQ9puYtjrkq7Y0Ygl9KDZnrf/aiUJYUpVf89y8kyaxbRG7Y1SrX/jaumrv81vc61+kiMempujsM3Yw7w5qcw==} @@ -3691,6 +3811,9 @@ packages: inherits@2.0.4: resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} + ini@1.3.8: + resolution: {integrity: sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==} + ini@4.1.1: resolution: {integrity: sha512-QQnnxNyfvmHFIsj7gkPcYymR8Jdw/o7mp5ZFihxn6h8Ci6fh3Dx4E1gPjpQEpIuPo9XVNY/ZUwh4BPMjGyL01g==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} @@ -3841,6 +3964,9 @@ packages: jose@6.1.0: resolution: {integrity: sha512-TTQJyoEoKcC1lscpVDCSsVgYzUDg/0Bt3WE//WiTPK6uOCQC2KZS4MpugbMWt/zyjkopgZoXhZuCi00gLudfUA==} + js-base64@3.7.8: + resolution: {integrity: sha512-hNngCeKxIUQiEUN3GPJOkz4wF/YvdUdbNL9hsBcMQTkKzboD7T/q3OYOuuPZLUE6dBxSGpwhk5mwuDud7JVAow==} + js-tokens@4.0.0: resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} @@ -3921,6 +4047,11 @@ packages: resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==} engines: {node: '>= 0.8.0'} + libsql@0.5.22: + resolution: {integrity: sha512-NscWthMQt7fpU8lqd7LXMvT9pi+KhhmTHAJWUB/Lj6MWa0MKFv0F2V4C6WKKpjCVZl0VwcDz4nOI3CyaT1DDiA==} + cpu: [x64, arm64, wasm32, arm] + os: [darwin, linux, win32] + lightningcss-darwin-arm64@1.30.1: resolution: {integrity: sha512-c8JK7hyE65X1MHMN+Viq9n11RRC7hgin3HhYKhrMyaXflk5GVplZ60IxyoVtzILeKr+xAJwg6zK6sjTBJ0FKYQ==} engines: {node: '>= 12.0.0'} @@ -4211,6 +4342,10 @@ packages: resolution: {integrity: sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==} engines: {node: '>=12'} + mimic-response@3.1.0: + resolution: {integrity: sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==} + engines: {node: '>=10'} + minimatch@10.0.3: resolution: {integrity: sha512-IPZ167aShDZZUMdRk66cyQAW3qr0WzbHkPdMYa8bzZhlHhO3jALbKdxcaak7W9FfT2rZNpQuUu4Od7ILEpXSaw==} engines: {node: 20 || >=22} @@ -4226,6 +4361,9 @@ packages: resolution: {integrity: sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==} engines: {node: '>=16 || 14 >=14.17'} + minimist@1.2.8: + resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} + minipass@7.1.2: resolution: {integrity: sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==} engines: {node: '>=16 || 14 >=14.17'} @@ -4237,6 +4375,9 @@ packages: mitt@3.0.1: resolution: {integrity: sha512-vKivATfr97l2/QBCYAkXYDbrIWPM2IIKEl7YPhjCvKlG3kE2gm+uBo6nEXK3M5/Ffh/FLpKExzOQ3JJoJGFKBw==} + mkdirp-classic@0.5.3: + resolution: {integrity: sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==} + mlly@1.8.0: resolution: {integrity: sha512-l8D9ODSRWLe2KHJSifWGwBqpTZXIXTeo8mlKjY+E2HAakaTeNpqAyBZ8GSqLzHgw4XmHmC8whvpjJNMbFZN7/g==} @@ -4278,6 +4419,9 @@ packages: nanotar@0.2.0: resolution: {integrity: sha512-9ca1h0Xjvo9bEkE4UOxgAzLV0jHKe6LMaxo37ND2DAhhAtd0j8pR1Wxz+/goMrZO8AEZTWCmyaOsFI/W5AdpCQ==} + napi-build-utils@2.0.0: + resolution: {integrity: sha512-GEbrYkbfF7MoNaoh2iGG84Mnf/WZfB0GdGEsM8wz7Expx/LlWf5U8t9nvJKXSp3qr5IsEbK04cBGhol/KwOsWA==} + napi-postinstall@0.3.4: resolution: {integrity: sha512-PHI5f1O0EP5xJ9gQmFGMS6IZcrVvTjpXjz7Na41gTE7eE2hK11lg04CECCYEEjdc17EV4DO+fkGEtt7TpTaTiQ==} engines: {node: ^12.20.0 || ^14.18.0 || >=16.0.0} @@ -4299,9 +4443,18 @@ packages: xml2js: optional: true + node-abi@3.78.0: + resolution: {integrity: sha512-E2wEyrgX/CqvicaQYU3Ze1PFGjc4QYPGsjUrlYkqAE0WjHEZwgOsGMPMzkMse4LjJbDmaEuDX3CM036j5K2DSQ==} + engines: {node: '>=10'} + node-addon-api@7.1.1: resolution: {integrity: sha512-5m3bsyrjFWE1xf7nz7YXdN4udnVtXK6/Yfgn5qnahL6bCkf2yKt4k3nuTKAtT4r3IG8JNR2ncsIMdZuAzJjHQQ==} + node-domexception@1.0.0: + resolution: {integrity: sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==} + engines: {node: '>=10.5.0'} + deprecated: Use your platform's native DOMException instead + node-emoji@2.2.0: resolution: {integrity: sha512-Z3lTE9pLaJF47NyMhd4ww1yFTAP8YhYI8SleJiHzM46Fgpm5cnNzSl9XfzFNqbaz+VlJrIj3fXQ4DeN1Rjm6cw==} engines: {node: '>=18'} @@ -4318,6 +4471,10 @@ packages: encoding: optional: true + node-fetch@3.3.2: + resolution: {integrity: sha512-dRB78srN/l6gqWulah9SrxeYnxeddIG30+GOqK/9OlLVyLg3HPnr6SqOWTWOXKRwC2eGYCkZ59NNuSgvSrpgOA==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + node-forge@1.3.1: resolution: {integrity: sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==} engines: {node: '>= 6.13.0'} @@ -4412,6 +4569,9 @@ packages: resolution: {integrity: sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==} engines: {node: '>= 0.8'} + once@1.4.0: + resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} + onetime@6.0.0: resolution: {integrity: sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==} engines: {node: '>=12'} @@ -4815,6 +4975,11 @@ packages: resolution: {integrity: sha512-9ZhXKM/rw350N1ovuWHbGxnGh/SNJ4cnxHiM0rxE4VN41wsg8P8zWn9hv/buK00RP4WvlOyr/RBDiptyxVbkZQ==} engines: {node: '>=0.10.0'} + prebuild-install@7.1.3: + resolution: {integrity: sha512-8Mf2cbV7x1cXPUILADGI3wuhfqWvtiLA1iclTDbFRZkgRQS0NqsPZphna9V+HyTEadheuPmjaJMsbzKQFOzLug==} + engines: {node: '>=10'} + hasBin: true + prelude-ls@1.2.1: resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} engines: {node: '>= 0.8.0'} @@ -4834,6 +4999,9 @@ packages: resolution: {integrity: sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==} engines: {node: '>= 0.6.0'} + promise-limit@2.7.0: + resolution: {integrity: sha512-7nJ6v5lnJsXwGprnGXga4wx6d1POjvi5Qmf1ivTRxTjH4Z/9Czja/UCMLVmB9N93GeWOU93XaFaEt6jbuoagNw==} + prompts@2.4.2: resolution: {integrity: sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==} engines: {node: '>= 6'} @@ -4847,6 +5015,9 @@ packages: protocols@2.0.2: resolution: {integrity: sha512-hHVTzba3wboROl0/aWRRG9dMytgH6ow//STBZh43l/wQgmMhYhOFi0EHWAPtoCz9IAUymsyP0TSBHkhgMEGNnQ==} + pump@3.0.3: + resolution: {integrity: sha512-todwxLMY7/heScKmntwQG8CXVkWUOdYxIvY2s0VWAAMh/nd8SoYiRaKjlr7+iCs984f2P8zvrfWcDDYVb73NfA==} + punycode@2.3.1: resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} engines: {node: '>=6'} @@ -4870,9 +5041,17 @@ packages: rc9@2.1.2: resolution: {integrity: sha512-btXCnMmRIBINM2LDZoEmOogIZU7Qe7zn4BpomSKZ/ykbLObuBdvG+mFq11DL6fjH1DRwHhrlgtYWG96bJiC7Cg==} + rc@1.2.8: + resolution: {integrity: sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==} + hasBin: true + readable-stream@2.3.8: resolution: {integrity: sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==} + readable-stream@3.6.2: + resolution: {integrity: sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==} + engines: {node: '>= 6'} + readable-stream@4.7.0: resolution: {integrity: sha512-oIGGmcpTLwPga8Bn6/Z75SVaH1z5dUut2ibSyAMVhmUggWpmDn2dapB0n7f8nwaSiRtepAsfJyfXIO5DCVAODg==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} @@ -5129,6 +5308,12 @@ packages: resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==} engines: {node: '>=14'} + simple-concat@1.0.1: + resolution: {integrity: sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==} + + simple-get@4.0.1: + resolution: {integrity: sha512-brv7p5WgH0jmQJr1ZDDfKDOSeWWg+OVypG99A/5vYGPqJ6pxiaHLy8nxtFjBA7oMa01ebA9gfh1uMCFqOuXxvA==} + simple-git@3.28.0: resolution: {integrity: sha512-Rs/vQRwsn1ILH1oBUy8NucJlXmnnLeLCfcvbSehkPzbv3wwoFWIdtfd6Ndo6ZPhlPsCZ60CPI4rxurnwAa+a2w==} @@ -5247,6 +5432,10 @@ packages: resolution: {integrity: sha512-OA95x+JPmL7kc7zCu+e+TeYxEiaIyndRx0OrBcK2QPPH09oAndr2ALvymxWA+Lx1PYYvFUm4O63pRkdJAaW96w==} engines: {node: '>=12'} + strip-json-comments@2.0.1: + resolution: {integrity: sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==} + engines: {node: '>=0.10.0'} + strip-json-comments@3.1.1: resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} engines: {node: '>=8'} @@ -5313,6 +5502,13 @@ packages: resolution: {integrity: sha512-g9ljZiwki/LfxmQADO3dEY1CbpmXT5Hm2fJ+QaGKwSXUylMybePR7/67YW7jOrrvjEgL1Fmz5kzyAjWVWLlucg==} engines: {node: '>=6'} + tar-fs@2.1.4: + resolution: {integrity: sha512-mDAjwmZdh7LTT6pNleZ05Yt65HC3E+NiQzl672vQG38jIrehtJk/J3mNwIg+vShQPcLF/LV7CMnDW6vjj6sfYQ==} + + tar-stream@2.2.0: + resolution: {integrity: sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==} + engines: {node: '>=6'} + tar-stream@3.1.7: resolution: {integrity: sha512-qJj60CXt7IU1Ffyc3NJMjh6EkuCFej46zUqJ4J7pqYlThyd9bO0XBTmcOIhSzZJVWfsLks0+nle/j538YAW9RQ==} @@ -5381,6 +5577,9 @@ packages: tslib@2.8.1: resolution: {integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==} + tunnel-agent@0.6.0: + resolution: {integrity: sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==} + type-check@0.4.0: resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} engines: {node: '>= 0.8.0'} @@ -5779,6 +5978,10 @@ packages: web-namespaces@2.0.1: resolution: {integrity: sha512-bKr1DkiNa2krS7qxNtdrtHAmzuYGFQLiQ13TsorsdT6ULTkPLKuu5+GsFpDlg6JFjUTwX2DyhMPG2be8uPrqsQ==} + web-streams-polyfill@3.3.3: + resolution: {integrity: sha512-d2JWLCivmZYTSIoge9MsgFCZrt571BikcWGYkjC1khllbTeDlGqZ2D8vD8E/lJa8WGWbb7Plm8/XJYV7IJHZZw==} + engines: {node: '>= 8'} + webidl-conversions@3.0.1: resolution: {integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==} @@ -5817,6 +6020,9 @@ packages: resolution: {integrity: sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==} engines: {node: '>=12'} + wrappy@1.0.2: + resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} + ws@8.18.3: resolution: {integrity: sha512-PEIGCY5tSlUt50cqyMXfCzX+oOPqN0vuGqWzbcJ2xvnkzkq46oOpz7dQaTDBdfICb4N14+GARUDw2XV2N4tvzg==} engines: {node: '>=10.0.0'} @@ -6543,6 +6749,68 @@ snapshots: '@kwsites/promise-deferred@1.1.1': {} + '@libsql/client@0.15.15': + dependencies: + '@libsql/core': 0.15.15 + '@libsql/hrana-client': 0.7.0 + js-base64: 3.7.8 + libsql: 0.5.22 + promise-limit: 2.7.0 + transitivePeerDependencies: + - bufferutil + - utf-8-validate + + '@libsql/core@0.15.15': + dependencies: + js-base64: 3.7.8 + + '@libsql/darwin-arm64@0.5.22': + optional: true + + '@libsql/darwin-x64@0.5.22': + optional: true + + '@libsql/hrana-client@0.7.0': + dependencies: + '@libsql/isomorphic-fetch': 0.3.1 + '@libsql/isomorphic-ws': 0.1.5 + js-base64: 3.7.8 + node-fetch: 3.3.2 + transitivePeerDependencies: + - bufferutil + - utf-8-validate + + '@libsql/isomorphic-fetch@0.3.1': {} + + '@libsql/isomorphic-ws@0.1.5': + dependencies: + '@types/ws': 8.18.1 + ws: 8.18.3 + transitivePeerDependencies: + - bufferutil + - utf-8-validate + + '@libsql/linux-arm-gnueabihf@0.5.22': + optional: true + + '@libsql/linux-arm-musleabihf@0.5.22': + optional: true + + '@libsql/linux-arm64-gnu@0.5.22': + optional: true + + '@libsql/linux-arm64-musl@0.5.22': + optional: true + + '@libsql/linux-x64-gnu@0.5.22': + optional: true + + '@libsql/linux-x64-musl@0.5.22': + optional: true + + '@libsql/win32-x64-msvc@0.5.22': + optional: true + '@lukeed/ms@2.0.2': {} '@mapbox/node-pre-gyp@2.0.0': @@ -6572,6 +6840,8 @@ snapshots: '@tybys/wasm-util': 0.10.1 optional: true + '@neon-rs/load@0.0.4': {} + '@nodelib/fs.scandir@2.1.5': dependencies: '@nodelib/fs.stat': 2.0.5 @@ -6757,7 +7027,7 @@ snapshots: - utf-8-validate - vite - '@nuxt/fonts@0.11.4(@vercel/blob@2.0.0)(aws4fetch@1.0.20)(db0@0.3.4(drizzle-orm@0.44.6(@cloudflare/workers-types@4.20251011.0)(@opentelemetry/api@1.9.0)(pg@8.16.3)))(ioredis@5.8.0)(magicast@0.3.5)(vite@7.1.9(@types/node@24.7.0)(jiti@2.6.1)(lightningcss@1.30.1)(terser@5.44.0)(yaml@2.8.1))': + '@nuxt/fonts@0.11.4(@vercel/blob@2.0.0)(aws4fetch@1.0.20)(db0@0.3.4(@libsql/client@0.15.15)(better-sqlite3@12.4.1)(drizzle-orm@0.44.6(@cloudflare/workers-types@4.20251011.0)(@libsql/client@0.15.15)(@opentelemetry/api@1.9.0)(better-sqlite3@12.4.1)(pg@8.16.3)))(ioredis@5.8.0)(magicast@0.3.5)(vite@7.1.9(@types/node@24.7.0)(jiti@2.6.1)(lightningcss@1.30.1)(terser@5.44.0)(yaml@2.8.1))': dependencies: '@nuxt/devtools-kit': 2.6.5(magicast@0.3.5)(vite@7.1.9(@types/node@24.7.0)(jiti@2.6.1)(lightningcss@1.30.1)(terser@5.44.0)(yaml@2.8.1)) '@nuxt/kit': 3.19.2(magicast@0.3.5) @@ -6778,7 +7048,7 @@ snapshots: ufo: 1.6.1 unifont: 0.4.1 unplugin: 2.3.10 - unstorage: 1.17.1(@vercel/blob@2.0.0)(aws4fetch@1.0.20)(db0@0.3.4(drizzle-orm@0.44.6(@cloudflare/workers-types@4.20251011.0)(@opentelemetry/api@1.9.0)(pg@8.16.3)))(ioredis@5.8.0) + unstorage: 1.17.1(@vercel/blob@2.0.0)(aws4fetch@1.0.20)(db0@0.3.4(@libsql/client@0.15.15)(better-sqlite3@12.4.1)(drizzle-orm@0.44.6(@cloudflare/workers-types@4.20251011.0)(@libsql/client@0.15.15)(@opentelemetry/api@1.9.0)(better-sqlite3@12.4.1)(pg@8.16.3)))(ioredis@5.8.0) transitivePeerDependencies: - '@azure/app-configuration' - '@azure/cosmos' @@ -6907,13 +7177,13 @@ snapshots: transitivePeerDependencies: - magicast - '@nuxt/ui@4.0.1(@babel/parser@7.28.4)(@vercel/blob@2.0.0)(aws4fetch@1.0.20)(change-case@5.4.4)(db0@0.3.4(drizzle-orm@0.44.6(@cloudflare/workers-types@4.20251011.0)(@opentelemetry/api@1.9.0)(pg@8.16.3)))(embla-carousel@8.6.0)(ioredis@5.8.0)(magicast@0.3.5)(typescript@5.9.3)(vite@7.1.9(@types/node@24.7.0)(jiti@2.6.1)(lightningcss@1.30.1)(terser@5.44.0)(yaml@2.8.1))(vue-router@4.5.1(vue@3.5.22(typescript@5.9.3)))(vue@3.5.22(typescript@5.9.3))(zod@4.1.12)': + '@nuxt/ui@4.0.1(@babel/parser@7.28.4)(@vercel/blob@2.0.0)(aws4fetch@1.0.20)(change-case@5.4.4)(db0@0.3.4(@libsql/client@0.15.15)(better-sqlite3@12.4.1)(drizzle-orm@0.44.6(@cloudflare/workers-types@4.20251011.0)(@libsql/client@0.15.15)(@opentelemetry/api@1.9.0)(better-sqlite3@12.4.1)(pg@8.16.3)))(embla-carousel@8.6.0)(ioredis@5.8.0)(magicast@0.3.5)(typescript@5.9.3)(vite@7.1.9(@types/node@24.7.0)(jiti@2.6.1)(lightningcss@1.30.1)(terser@5.44.0)(yaml@2.8.1))(vue-router@4.5.1(vue@3.5.22(typescript@5.9.3)))(vue@3.5.22(typescript@5.9.3))(zod@4.1.12)': dependencies: '@ai-sdk/vue': 2.0.60(vue@3.5.22(typescript@5.9.3))(zod@4.1.12) '@iconify/vue': 5.0.0(vue@3.5.22(typescript@5.9.3)) '@internationalized/date': 3.10.0 '@internationalized/number': 3.6.5 - '@nuxt/fonts': 0.11.4(@vercel/blob@2.0.0)(aws4fetch@1.0.20)(db0@0.3.4(drizzle-orm@0.44.6(@cloudflare/workers-types@4.20251011.0)(@opentelemetry/api@1.9.0)(pg@8.16.3)))(ioredis@5.8.0)(magicast@0.3.5)(vite@7.1.9(@types/node@24.7.0)(jiti@2.6.1)(lightningcss@1.30.1)(terser@5.44.0)(yaml@2.8.1)) + '@nuxt/fonts': 0.11.4(@vercel/blob@2.0.0)(aws4fetch@1.0.20)(db0@0.3.4(@libsql/client@0.15.15)(better-sqlite3@12.4.1)(drizzle-orm@0.44.6(@cloudflare/workers-types@4.20251011.0)(@libsql/client@0.15.15)(@opentelemetry/api@1.9.0)(better-sqlite3@12.4.1)(pg@8.16.3)))(ioredis@5.8.0)(magicast@0.3.5)(vite@7.1.9(@types/node@24.7.0)(jiti@2.6.1)(lightningcss@1.30.1)(terser@5.44.0)(yaml@2.8.1)) '@nuxt/icon': 2.0.0(magicast@0.3.5)(vite@7.1.9(@types/node@24.7.0)(jiti@2.6.1)(lightningcss@1.30.1)(terser@5.44.0)(yaml@2.8.1))(vue@3.5.22(typescript@5.9.3)) '@nuxt/kit': 4.1.2(magicast@0.3.5) '@nuxt/schema': 4.1.2 @@ -7057,7 +7327,7 @@ snapshots: - vue-tsc - yaml - '@nuxthub/core-nightly@1.0.0-20251013-051212-5debfb7(@ai-sdk/gateway@1.0.33(zod@4.1.12))(drizzle-orm@0.44.6(@cloudflare/workers-types@4.20251011.0)(@opentelemetry/api@1.9.0)(pg@8.16.3))(ioredis@5.8.0)(magicast@0.3.5)(typescript@5.9.3)(vite@7.1.9(@types/node@24.7.0)(jiti@2.6.1)(lightningcss@1.30.1)(terser@5.44.0)(yaml@2.8.1))(vue-tsc@3.1.0(typescript@5.9.3))(workers-ai-provider@2.0.0(zod@4.1.12))': + '@nuxthub/core-nightly@1.0.0-20251017-151859-a29e297(@ai-sdk/gateway@1.0.33(zod@4.1.12))(@libsql/client@0.15.15)(better-sqlite3@12.4.1)(drizzle-orm@0.44.6(@cloudflare/workers-types@4.20251011.0)(@libsql/client@0.15.15)(@opentelemetry/api@1.9.0)(better-sqlite3@12.4.1)(pg@8.16.3))(ioredis@5.8.0)(magicast@0.3.5)(typescript@5.9.3)(vite@7.1.9(@types/node@24.7.0)(jiti@2.6.1)(lightningcss@1.30.1)(terser@5.44.0)(yaml@2.8.1))(vue-tsc@3.1.0(typescript@5.9.3))(workers-ai-provider@2.0.0(zod@4.1.12))': dependencies: '@ai-sdk/gateway': 1.0.33(zod@4.1.12) '@ai-sdk/provider': 2.0.0 @@ -7068,7 +7338,7 @@ snapshots: ai: 5.0.68(zod@4.1.12) aws4fetch: 1.0.20 consola: 3.4.2 - db0: 0.3.4(drizzle-orm@0.44.6(@cloudflare/workers-types@4.20251011.0)(@opentelemetry/api@1.9.0)(pg@8.16.3)) + db0: 0.3.4(@libsql/client@0.15.15)(better-sqlite3@12.4.1)(drizzle-orm@0.44.6(@cloudflare/workers-types@4.20251011.0)(@libsql/client@0.15.15)(@opentelemetry/api@1.9.0)(better-sqlite3@12.4.1)(pg@8.16.3)) defu: 6.1.4 destr: 2.0.5 execa: 9.6.0 @@ -7084,7 +7354,7 @@ snapshots: std-env: 3.9.0 ufo: 1.6.1 uncrypto: 0.1.3 - unstorage: 1.17.1(@vercel/blob@2.0.0)(aws4fetch@1.0.20)(db0@0.3.4(drizzle-orm@0.44.6(@cloudflare/workers-types@4.20251011.0)(@opentelemetry/api@1.9.0)(pg@8.16.3)))(ioredis@5.8.0) + unstorage: 1.17.1(@vercel/blob@2.0.0)(aws4fetch@1.0.20)(db0@0.3.4(@libsql/client@0.15.15)(better-sqlite3@12.4.1)(drizzle-orm@0.44.6(@cloudflare/workers-types@4.20251011.0)(@libsql/client@0.15.15)(@opentelemetry/api@1.9.0)(better-sqlite3@12.4.1)(pg@8.16.3)))(ioredis@5.8.0) workers-ai-provider: 2.0.0(zod@4.1.12) zod: 4.1.12 transitivePeerDependencies: @@ -7941,6 +8211,10 @@ snapshots: '@types/web-bluetooth@0.0.21': {} + '@types/ws@8.18.1': + dependencies: + '@types/node': 24.7.0 + '@typescript-eslint/eslint-plugin@8.45.0(@typescript-eslint/parser@8.45.0(eslint@9.37.0(jiti@2.6.1))(typescript@5.9.3))(eslint@9.37.0(jiti@2.6.1))(typescript@5.9.3)': dependencies: '@eslint-community/regexpp': 4.12.1 @@ -8492,6 +8766,11 @@ snapshots: baseline-browser-mapping@2.8.12: {} + better-sqlite3@12.4.1: + dependencies: + bindings: 1.5.0 + prebuild-install: 7.1.3 + binary-extensions@2.3.0: {} bindings@1.5.0: @@ -8500,6 +8779,12 @@ snapshots: birpc@2.6.1: {} + bl@4.1.0: + dependencies: + buffer: 5.7.1 + inherits: 2.0.4 + readable-stream: 3.6.2 + blob-to-buffer@1.2.9: {} boolbase@1.0.0: {} @@ -8533,6 +8818,11 @@ snapshots: buffer-from@1.1.2: {} + buffer@5.7.1: + dependencies: + base64-js: 1.5.1 + ieee754: 1.2.1 + buffer@6.0.3: dependencies: base64-js: 1.5.1 @@ -8618,6 +8908,8 @@ snapshots: dependencies: readdirp: 4.1.2 + chownr@1.1.4: {} + chownr@3.0.0: {} ci-info@4.3.1: {} @@ -8803,11 +9095,15 @@ snapshots: csstype@3.1.3: {} + data-uri-to-buffer@4.0.1: {} + date-fns@4.1.0: {} - db0@0.3.4(drizzle-orm@0.44.6(@cloudflare/workers-types@4.20251011.0)(@opentelemetry/api@1.9.0)(pg@8.16.3)): + db0@0.3.4(@libsql/client@0.15.15)(better-sqlite3@12.4.1)(drizzle-orm@0.44.6(@cloudflare/workers-types@4.20251011.0)(@libsql/client@0.15.15)(@opentelemetry/api@1.9.0)(better-sqlite3@12.4.1)(pg@8.16.3)): optionalDependencies: - drizzle-orm: 0.44.6(@cloudflare/workers-types@4.20251011.0)(@opentelemetry/api@1.9.0)(pg@8.16.3) + '@libsql/client': 0.15.15 + better-sqlite3: 12.4.1 + drizzle-orm: 0.44.6(@cloudflare/workers-types@4.20251011.0)(@libsql/client@0.15.15)(@opentelemetry/api@1.9.0)(better-sqlite3@12.4.1)(pg@8.16.3) debug@4.4.3: dependencies: @@ -8817,6 +9113,12 @@ snapshots: dependencies: character-entities: 2.0.2 + decompress-response@6.0.0: + dependencies: + mimic-response: 3.1.0 + + deep-extend@0.6.0: {} + deep-is@0.1.4: {} deepmerge@4.3.1: {} @@ -8846,6 +9148,8 @@ snapshots: detect-libc@1.0.3: {} + detect-libc@2.0.2: {} + detect-libc@2.1.2: {} devalue@5.3.2: {} @@ -8893,10 +9197,12 @@ snapshots: transitivePeerDependencies: - supports-color - drizzle-orm@0.44.6(@cloudflare/workers-types@4.20251011.0)(@opentelemetry/api@1.9.0)(pg@8.16.3): + drizzle-orm@0.44.6(@cloudflare/workers-types@4.20251011.0)(@libsql/client@0.15.15)(@opentelemetry/api@1.9.0)(better-sqlite3@12.4.1)(pg@8.16.3): optionalDependencies: '@cloudflare/workers-types': 4.20251011.0 + '@libsql/client': 0.15.15 '@opentelemetry/api': 1.9.0 + better-sqlite3: 12.4.1 pg: 8.16.3 dts-resolver@2.1.2: {} @@ -8956,6 +9262,10 @@ snapshots: encodeurl@2.0.0: {} + end-of-stream@1.4.5: + dependencies: + once: 1.4.0 + enhanced-resolve@5.18.3: dependencies: graceful-fs: 4.2.11 @@ -9275,6 +9585,8 @@ snapshots: strip-final-newline: 4.0.0 yoctocolors: 2.1.2 + expand-template@2.0.3: {} + exsolve@1.0.7: {} extend@3.0.2: {} @@ -9305,6 +9617,11 @@ snapshots: optionalDependencies: picomatch: 4.0.3 + fetch-blob@3.2.0: + dependencies: + node-domexception: 1.0.0 + web-streams-polyfill: 3.3.3 + figures@6.1.0: dependencies: is-unicode-supported: 2.1.0 @@ -9373,6 +9690,10 @@ snapshots: cross-spawn: 7.0.6 signal-exit: 4.1.0 + formdata-polyfill@4.0.10: + dependencies: + fetch-blob: 3.2.0 + fraction.js@4.3.7: {} framer-motion@12.23.12: @@ -9383,6 +9704,8 @@ snapshots: fresh@2.0.0: {} + fs-constants@1.0.0: {} + fsevents@2.3.3: optional: true @@ -9429,6 +9752,8 @@ snapshots: dependencies: git-up: 8.1.1 + github-from-package@0.0.0: {} + github-slugger@2.0.0: {} glob-parent@5.1.2: @@ -9693,6 +10018,8 @@ snapshots: inherits@2.0.4: {} + ini@1.3.8: {} + ini@4.1.1: {} ioredis@5.8.0: @@ -9815,6 +10142,8 @@ snapshots: jose@6.1.0: {} + js-base64@3.7.8: {} + js-tokens@4.0.0: {} js-tokens@9.0.1: {} @@ -9874,6 +10203,21 @@ snapshots: prelude-ls: 1.2.1 type-check: 0.4.0 + libsql@0.5.22: + dependencies: + '@neon-rs/load': 0.0.4 + detect-libc: 2.0.2 + optionalDependencies: + '@libsql/darwin-arm64': 0.5.22 + '@libsql/darwin-x64': 0.5.22 + '@libsql/linux-arm-gnueabihf': 0.5.22 + '@libsql/linux-arm-musleabihf': 0.5.22 + '@libsql/linux-arm64-gnu': 0.5.22 + '@libsql/linux-arm64-musl': 0.5.22 + '@libsql/linux-x64-gnu': 0.5.22 + '@libsql/linux-x64-musl': 0.5.22 + '@libsql/win32-x64-msvc': 0.5.22 + lightningcss-darwin-arm64@1.30.1: optional: true @@ -10334,6 +10678,8 @@ snapshots: mimic-fn@4.0.0: {} + mimic-response@3.1.0: {} + minimatch@10.0.3: dependencies: '@isaacs/brace-expansion': 5.0.0 @@ -10350,6 +10696,8 @@ snapshots: dependencies: brace-expansion: 2.0.2 + minimist@1.2.8: {} + minipass@7.1.2: {} minizlib@3.1.0: @@ -10358,6 +10706,8 @@ snapshots: mitt@3.0.1: {} + mkdirp-classic@0.5.3: {} + mlly@1.8.0: dependencies: acorn: 8.15.0 @@ -10397,6 +10747,8 @@ snapshots: nanotar@0.2.0: {} + napi-build-utils@2.0.0: {} + napi-postinstall@0.3.4: {} natural-compare@1.4.0: {} @@ -10407,7 +10759,7 @@ snapshots: mlly: 1.8.0 pkg-types: 2.3.0 - nitropack@2.12.6(@vercel/blob@2.0.0)(aws4fetch@1.0.20)(drizzle-orm@0.44.6(@cloudflare/workers-types@4.20251011.0)(@opentelemetry/api@1.9.0)(pg@8.16.3))(rolldown@1.0.0-beta.9): + nitropack@2.12.6(@libsql/client@0.15.15)(@vercel/blob@2.0.0)(aws4fetch@1.0.20)(better-sqlite3@12.4.1)(drizzle-orm@0.44.6(@cloudflare/workers-types@4.20251011.0)(@libsql/client@0.15.15)(@opentelemetry/api@1.9.0)(better-sqlite3@12.4.1)(pg@8.16.3))(rolldown@1.0.0-beta.9): dependencies: '@cloudflare/kv-asset-handler': 0.4.0 '@rollup/plugin-alias': 5.1.1(rollup@4.52.4) @@ -10428,7 +10780,7 @@ snapshots: cookie-es: 2.0.0 croner: 9.1.0 crossws: 0.3.5 - db0: 0.3.4(drizzle-orm@0.44.6(@cloudflare/workers-types@4.20251011.0)(@opentelemetry/api@1.9.0)(pg@8.16.3)) + db0: 0.3.4(@libsql/client@0.15.15)(better-sqlite3@12.4.1)(drizzle-orm@0.44.6(@cloudflare/workers-types@4.20251011.0)(@libsql/client@0.15.15)(@opentelemetry/api@1.9.0)(better-sqlite3@12.4.1)(pg@8.16.3)) defu: 6.1.4 destr: 2.0.5 dot-prop: 9.0.0 @@ -10474,7 +10826,7 @@ snapshots: unenv: 2.0.0-rc.21 unimport: 4.1.1 unplugin-utils: 0.3.0 - unstorage: 1.17.1(@vercel/blob@2.0.0)(aws4fetch@1.0.20)(db0@0.3.4(drizzle-orm@0.44.6(@cloudflare/workers-types@4.20251011.0)(@opentelemetry/api@1.9.0)(pg@8.16.3)))(ioredis@5.8.0) + unstorage: 1.17.1(@vercel/blob@2.0.0)(aws4fetch@1.0.20)(db0@0.3.4(@libsql/client@0.15.15)(better-sqlite3@12.4.1)(drizzle-orm@0.44.6(@cloudflare/workers-types@4.20251011.0)(@libsql/client@0.15.15)(@opentelemetry/api@1.9.0)(better-sqlite3@12.4.1)(pg@8.16.3)))(ioredis@5.8.0) untyped: 2.0.0 unwasm: 0.3.11 youch: 4.1.0-beta.11 @@ -10508,8 +10860,14 @@ snapshots: - supports-color - uploadthing + node-abi@3.78.0: + dependencies: + semver: 7.7.2 + node-addon-api@7.1.1: {} + node-domexception@1.0.0: {} + node-emoji@2.2.0: dependencies: '@sindresorhus/is': 4.6.0 @@ -10523,6 +10881,12 @@ snapshots: dependencies: whatwg-url: 5.0.0 + node-fetch@3.3.2: + dependencies: + data-uri-to-buffer: 4.0.1 + fetch-blob: 3.2.0 + formdata-polyfill: 4.0.10 + node-forge@1.3.1: {} node-gyp-build@4.8.4: {} @@ -10570,7 +10934,7 @@ snapshots: - bcrypt - magicast - nuxt@4.1.2(@parcel/watcher@2.5.1)(@types/node@24.7.0)(@vercel/blob@2.0.0)(@vue/compiler-sfc@3.5.22)(aws4fetch@1.0.20)(db0@0.3.4(drizzle-orm@0.44.6(@cloudflare/workers-types@4.20251011.0)(@opentelemetry/api@1.9.0)(pg@8.16.3)))(drizzle-orm@0.44.6(@cloudflare/workers-types@4.20251011.0)(@opentelemetry/api@1.9.0)(pg@8.16.3))(eslint@9.37.0(jiti@2.6.1))(ioredis@5.8.0)(lightningcss@1.30.1)(magicast@0.3.5)(optionator@0.9.4)(rolldown@1.0.0-beta.9)(rollup@4.52.4)(terser@5.44.0)(typescript@5.9.3)(vite@7.1.9(@types/node@24.7.0)(jiti@2.6.1)(lightningcss@1.30.1)(terser@5.44.0)(yaml@2.8.1))(vue-tsc@3.1.0(typescript@5.9.3))(yaml@2.8.1): + nuxt@4.1.2(@libsql/client@0.15.15)(@parcel/watcher@2.5.1)(@types/node@24.7.0)(@vercel/blob@2.0.0)(@vue/compiler-sfc@3.5.22)(aws4fetch@1.0.20)(better-sqlite3@12.4.1)(db0@0.3.4(@libsql/client@0.15.15)(better-sqlite3@12.4.1)(drizzle-orm@0.44.6(@cloudflare/workers-types@4.20251011.0)(@libsql/client@0.15.15)(@opentelemetry/api@1.9.0)(better-sqlite3@12.4.1)(pg@8.16.3)))(drizzle-orm@0.44.6(@cloudflare/workers-types@4.20251011.0)(@libsql/client@0.15.15)(@opentelemetry/api@1.9.0)(better-sqlite3@12.4.1)(pg@8.16.3))(eslint@9.37.0(jiti@2.6.1))(ioredis@5.8.0)(lightningcss@1.30.1)(magicast@0.3.5)(optionator@0.9.4)(rolldown@1.0.0-beta.9)(rollup@4.52.4)(terser@5.44.0)(typescript@5.9.3)(vite@7.1.9(@types/node@24.7.0)(jiti@2.6.1)(lightningcss@1.30.1)(terser@5.44.0)(yaml@2.8.1))(vue-tsc@3.1.0(typescript@5.9.3))(yaml@2.8.1): dependencies: '@nuxt/cli': 3.28.0(magicast@0.3.5) '@nuxt/devalue': 2.0.2 @@ -10605,7 +10969,7 @@ snapshots: mlly: 1.8.0 mocked-exports: 0.1.1 nanotar: 0.2.0 - nitropack: 2.12.6(@vercel/blob@2.0.0)(aws4fetch@1.0.20)(drizzle-orm@0.44.6(@cloudflare/workers-types@4.20251011.0)(@opentelemetry/api@1.9.0)(pg@8.16.3))(rolldown@1.0.0-beta.9) + nitropack: 2.12.6(@libsql/client@0.15.15)(@vercel/blob@2.0.0)(aws4fetch@1.0.20)(better-sqlite3@12.4.1)(drizzle-orm@0.44.6(@cloudflare/workers-types@4.20251011.0)(@libsql/client@0.15.15)(@opentelemetry/api@1.9.0)(better-sqlite3@12.4.1)(pg@8.16.3))(rolldown@1.0.0-beta.9) nypm: 0.6.2 ofetch: 1.4.1 ohash: 2.0.11 @@ -10629,7 +10993,7 @@ snapshots: unimport: 4.1.1 unplugin: 2.3.10 unplugin-vue-router: 0.15.0(@vue/compiler-sfc@3.5.22)(typescript@5.9.3)(vue-router@4.5.1(vue@3.5.22(typescript@5.9.3)))(vue@3.5.22(typescript@5.9.3)) - unstorage: 1.17.1(@vercel/blob@2.0.0)(aws4fetch@1.0.20)(db0@0.3.4(drizzle-orm@0.44.6(@cloudflare/workers-types@4.20251011.0)(@opentelemetry/api@1.9.0)(pg@8.16.3)))(ioredis@5.8.0) + unstorage: 1.17.1(@vercel/blob@2.0.0)(aws4fetch@1.0.20)(db0@0.3.4(@libsql/client@0.15.15)(better-sqlite3@12.4.1)(drizzle-orm@0.44.6(@cloudflare/workers-types@4.20251011.0)(@libsql/client@0.15.15)(@opentelemetry/api@1.9.0)(better-sqlite3@12.4.1)(pg@8.16.3)))(ioredis@5.8.0) untyped: 2.0.0 vue: 3.5.22(typescript@5.9.3) vue-bundle-renderer: 2.2.0 @@ -10741,6 +11105,10 @@ snapshots: dependencies: ee-first: 1.1.1 + once@1.4.0: + dependencies: + wrappy: 1.0.2 + onetime@6.0.0: dependencies: mimic-fn: 4.0.0 @@ -10987,15 +11355,19 @@ snapshots: pg-cloudflare@1.2.7: optional: true - pg-connection-string@2.9.1: {} + pg-connection-string@2.9.1: + optional: true - pg-int8@1.0.1: {} + pg-int8@1.0.1: + optional: true pg-pool@3.10.1(pg@8.16.3): dependencies: pg: 8.16.3 + optional: true - pg-protocol@1.10.3: {} + pg-protocol@1.10.3: + optional: true pg-types@2.2.0: dependencies: @@ -11004,6 +11376,7 @@ snapshots: postgres-bytea: 1.0.0 postgres-date: 1.0.7 postgres-interval: 1.2.0 + optional: true pg@8.16.3: dependencies: @@ -11014,10 +11387,12 @@ snapshots: pgpass: 1.0.5 optionalDependencies: pg-cloudflare: 1.2.7 + optional: true pgpass@1.0.5: dependencies: split2: 4.2.0 + optional: true picocolors@1.1.1: {} @@ -11206,15 +11581,34 @@ snapshots: picocolors: 1.1.1 source-map-js: 1.2.1 - postgres-array@2.0.0: {} + postgres-array@2.0.0: + optional: true - postgres-bytea@1.0.0: {} + postgres-bytea@1.0.0: + optional: true - postgres-date@1.0.7: {} + postgres-date@1.0.7: + optional: true postgres-interval@1.2.0: dependencies: xtend: 4.0.2 + optional: true + + prebuild-install@7.1.3: + dependencies: + detect-libc: 2.1.2 + expand-template: 2.0.3 + github-from-package: 0.0.0 + minimist: 1.2.8 + mkdirp-classic: 0.5.3 + napi-build-utils: 2.0.0 + node-abi: 3.78.0 + pump: 3.0.3 + rc: 1.2.8 + simple-get: 4.0.1 + tar-fs: 2.1.4 + tunnel-agent: 0.6.0 prelude-ls@1.2.1: {} @@ -11228,6 +11622,8 @@ snapshots: process@0.11.10: {} + promise-limit@2.7.0: {} + prompts@2.4.2: dependencies: kleur: 3.0.3 @@ -11239,6 +11635,11 @@ snapshots: protocols@2.0.2: {} + pump@3.0.3: + dependencies: + end-of-stream: 1.4.5 + once: 1.4.0 + punycode@2.3.1: {} quansync@0.2.11: {} @@ -11258,6 +11659,13 @@ snapshots: defu: 6.1.4 destr: 2.0.5 + rc@1.2.8: + dependencies: + deep-extend: 0.6.0 + ini: 1.3.8 + minimist: 1.2.8 + strip-json-comments: 2.0.1 + readable-stream@2.3.8: dependencies: core-util-is: 1.0.3 @@ -11268,6 +11676,12 @@ snapshots: string_decoder: 1.1.1 util-deprecate: 1.0.2 + readable-stream@3.6.2: + dependencies: + inherits: 2.0.4 + string_decoder: 1.3.0 + util-deprecate: 1.0.2 + readable-stream@4.7.0: dependencies: abort-controller: 3.0.0 @@ -11633,6 +12047,14 @@ snapshots: signal-exit@4.1.0: {} + simple-concat@1.0.1: {} + + simple-get@4.0.1: + dependencies: + decompress-response: 6.0.0 + once: 1.4.0 + simple-concat: 1.0.1 + simple-git@3.28.0: dependencies: '@kwsites/file-exists': 1.1.1 @@ -11683,7 +12105,8 @@ snapshots: speakingurl@14.0.1: {} - split2@4.2.0: {} + split2@4.2.0: + optional: true stable-hash-x@0.2.0: {} @@ -11742,6 +12165,8 @@ snapshots: strip-indent@4.1.0: {} + strip-json-comments@2.0.1: {} + strip-json-comments@3.1.1: {} strip-literal@3.1.0: @@ -11796,6 +12221,21 @@ snapshots: tapable@2.3.0: {} + tar-fs@2.1.4: + dependencies: + chownr: 1.1.4 + mkdirp-classic: 0.5.3 + pump: 3.0.3 + tar-stream: 2.2.0 + + tar-stream@2.2.0: + dependencies: + bl: 4.1.0 + end-of-stream: 1.4.5 + fs-constants: 1.0.0 + inherits: 2.0.4 + readable-stream: 3.6.2 + tar-stream@3.1.7: dependencies: b4a: 1.7.3 @@ -11862,6 +12302,10 @@ snapshots: tslib@2.8.1: {} + tunnel-agent@0.6.0: + dependencies: + safe-buffer: 5.2.1 + type-check@0.4.0: dependencies: prelude-ls: 1.2.1 @@ -12078,7 +12522,7 @@ snapshots: '@unrs/resolver-binding-win32-ia32-msvc': 1.11.1 '@unrs/resolver-binding-win32-x64-msvc': 1.11.1 - unstorage@1.17.1(@vercel/blob@2.0.0)(aws4fetch@1.0.20)(db0@0.3.4(drizzle-orm@0.44.6(@cloudflare/workers-types@4.20251011.0)(@opentelemetry/api@1.9.0)(pg@8.16.3)))(ioredis@5.8.0): + unstorage@1.17.1(@vercel/blob@2.0.0)(aws4fetch@1.0.20)(db0@0.3.4(@libsql/client@0.15.15)(better-sqlite3@12.4.1)(drizzle-orm@0.44.6(@cloudflare/workers-types@4.20251011.0)(@libsql/client@0.15.15)(@opentelemetry/api@1.9.0)(better-sqlite3@12.4.1)(pg@8.16.3)))(ioredis@5.8.0): dependencies: anymatch: 3.1.3 chokidar: 4.0.3 @@ -12091,7 +12535,7 @@ snapshots: optionalDependencies: '@vercel/blob': 2.0.0 aws4fetch: 1.0.20 - db0: 0.3.4(drizzle-orm@0.44.6(@cloudflare/workers-types@4.20251011.0)(@opentelemetry/api@1.9.0)(pg@8.16.3)) + db0: 0.3.4(@libsql/client@0.15.15)(better-sqlite3@12.4.1)(drizzle-orm@0.44.6(@cloudflare/workers-types@4.20251011.0)(@libsql/client@0.15.15)(@opentelemetry/api@1.9.0)(better-sqlite3@12.4.1)(pg@8.16.3)) ioredis: 5.8.0 untun@0.1.3: @@ -12295,6 +12739,8 @@ snapshots: web-namespaces@2.0.1: {} + web-streams-polyfill@3.3.3: {} + webidl-conversions@3.0.1: {} webpack-virtual-modules@0.6.2: {} @@ -12335,6 +12781,8 @@ snapshots: string-width: 5.1.2 strip-ansi: 7.1.2 + wrappy@1.0.2: {} + ws@8.18.3: {} wsl-utils@0.1.0: @@ -12343,7 +12791,8 @@ snapshots: xml-name-validator@4.0.0: {} - xtend@4.0.2: {} + xtend@4.0.2: + optional: true y18n@5.0.8: {} diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml index 085ffce..47524b6 100644 --- a/pnpm-workspace.yaml +++ b/pnpm-workspace.yaml @@ -4,3 +4,6 @@ ignoredBuiltDependencies: - esbuild - unrs-resolver - vue-demi + +onlyBuiltDependencies: + - better-sqlite3 diff --git a/server/database/migrations/0000_amusing_gunslinger.sql b/server/database/migrations/0000_amusing_gunslinger.sql deleted file mode 100644 index e18375b..0000000 --- a/server/database/migrations/0000_amusing_gunslinger.sql +++ /dev/null @@ -1,32 +0,0 @@ -CREATE TYPE "public"."provider" AS ENUM('github');--> statement-breakpoint -CREATE TYPE "public"."role" AS ENUM('user', 'assistant');--> statement-breakpoint -CREATE TABLE "chats" ( - "id" varchar(36) PRIMARY KEY NOT NULL, - "title" varchar(200), - "userId" varchar(36) NOT NULL, - "createdAt" timestamp DEFAULT now() NOT NULL -); ---> statement-breakpoint -CREATE TABLE "messages" ( - "id" varchar(36) PRIMARY KEY NOT NULL, - "chatId" varchar(36) NOT NULL, - "role" "role" NOT NULL, - "parts" json, - "createdAt" timestamp DEFAULT now() NOT NULL -); ---> statement-breakpoint -CREATE TABLE "users" ( - "id" varchar(36) PRIMARY KEY NOT NULL, - "email" varchar(255) NOT NULL, - "name" varchar(100) NOT NULL, - "avatar" varchar(500) NOT NULL, - "username" varchar(50) NOT NULL, - "provider" "provider" NOT NULL, - "providerId" varchar(50) NOT NULL, - "createdAt" timestamp DEFAULT now() NOT NULL -); ---> statement-breakpoint -ALTER TABLE "messages" ADD CONSTRAINT "messages_chatId_chats_id_fk" FOREIGN KEY ("chatId") REFERENCES "public"."chats"("id") ON DELETE cascade ON UPDATE no action;--> statement-breakpoint -CREATE INDEX "chats_user_id_idx" ON "chats" USING btree ("userId");--> statement-breakpoint -CREATE INDEX "messages_chat_id_idx" ON "messages" USING btree ("chatId");--> statement-breakpoint -CREATE UNIQUE INDEX "users_provider_id_idx" ON "users" USING btree ("provider","providerId"); \ No newline at end of file diff --git a/server/database/migrations/0000_fancy_dracula.sql b/server/database/migrations/0000_fancy_dracula.sql new file mode 100644 index 0000000..9b2cbb9 --- /dev/null +++ b/server/database/migrations/0000_fancy_dracula.sql @@ -0,0 +1,30 @@ +CREATE TABLE `chats` ( + `id` text PRIMARY KEY NOT NULL, + `title` text, + `user_id` text NOT NULL, + `created_at` integer NOT NULL +); +--> statement-breakpoint +CREATE INDEX `chats_user_id_idx` ON `chats` (`user_id`);--> statement-breakpoint +CREATE TABLE `messages` ( + `id` text PRIMARY KEY NOT NULL, + `chat_id` text NOT NULL, + `role` text NOT NULL, + `parts` text, + `created_at` integer NOT NULL, + FOREIGN KEY (`chat_id`) REFERENCES `chats`(`id`) ON UPDATE no action ON DELETE cascade +); +--> statement-breakpoint +CREATE INDEX `messages_chat_id_idx` ON `messages` (`chat_id`);--> statement-breakpoint +CREATE TABLE `users` ( + `id` text PRIMARY KEY NOT NULL, + `email` text NOT NULL, + `name` text NOT NULL, + `avatar` text NOT NULL, + `username` text NOT NULL, + `provider` text NOT NULL, + `provider_id` text NOT NULL, + `created_at` integer NOT NULL +); +--> statement-breakpoint +CREATE UNIQUE INDEX `users_provider_id_idx` ON `users` (`provider`,`provider_id`); \ No newline at end of file diff --git a/server/database/migrations/meta/0000_snapshot.json b/server/database/migrations/meta/0000_snapshot.json index 7171ae3..5fd5a29 100644 --- a/server/database/migrations/meta/0000_snapshot.json +++ b/server/database/migrations/meta/0000_snapshot.json @@ -1,124 +1,110 @@ { - "id": "4649a6e7-6b2e-4bbc-86c5-7d5bbaa2cd87", + "version": "6", + "dialect": "sqlite", + "id": "e12d1abe-bd16-4590-ac9a-d9ae3ed4d2b3", "prevId": "00000000-0000-0000-0000-000000000000", - "version": "7", - "dialect": "postgresql", "tables": { - "public.chats": { + "chats": { "name": "chats", - "schema": "", "columns": { "id": { "name": "id", - "type": "varchar(36)", + "type": "text", "primaryKey": true, - "notNull": true + "notNull": true, + "autoincrement": false }, "title": { "name": "title", - "type": "varchar(200)", + "type": "text", "primaryKey": false, - "notNull": false + "notNull": false, + "autoincrement": false }, - "userId": { - "name": "userId", - "type": "varchar(36)", + "user_id": { + "name": "user_id", + "type": "text", "primaryKey": false, - "notNull": true + "notNull": true, + "autoincrement": false }, - "createdAt": { - "name": "createdAt", - "type": "timestamp", + "created_at": { + "name": "created_at", + "type": "integer", "primaryKey": false, "notNull": true, - "default": "now()" + "autoincrement": false } }, "indexes": { "chats_user_id_idx": { "name": "chats_user_id_idx", "columns": [ - { - "expression": "userId", - "isExpression": false, - "asc": true, - "nulls": "last" - } + "user_id" ], - "isUnique": false, - "concurrently": false, - "method": "btree", - "with": {} + "isUnique": false } }, "foreignKeys": {}, "compositePrimaryKeys": {}, "uniqueConstraints": {}, - "policies": {}, - "checkConstraints": {}, - "isRLSEnabled": false + "checkConstraints": {} }, - "public.messages": { + "messages": { "name": "messages", - "schema": "", "columns": { "id": { "name": "id", - "type": "varchar(36)", + "type": "text", "primaryKey": true, - "notNull": true + "notNull": true, + "autoincrement": false }, - "chatId": { - "name": "chatId", - "type": "varchar(36)", + "chat_id": { + "name": "chat_id", + "type": "text", "primaryKey": false, - "notNull": true + "notNull": true, + "autoincrement": false }, "role": { "name": "role", - "type": "role", - "typeSchema": "public", + "type": "text", "primaryKey": false, - "notNull": true + "notNull": true, + "autoincrement": false }, "parts": { "name": "parts", - "type": "json", + "type": "text", "primaryKey": false, - "notNull": false + "notNull": false, + "autoincrement": false }, - "createdAt": { - "name": "createdAt", - "type": "timestamp", + "created_at": { + "name": "created_at", + "type": "integer", "primaryKey": false, "notNull": true, - "default": "now()" + "autoincrement": false } }, "indexes": { "messages_chat_id_idx": { "name": "messages_chat_id_idx", "columns": [ - { - "expression": "chatId", - "isExpression": false, - "asc": true, - "nulls": "last" - } + "chat_id" ], - "isUnique": false, - "concurrently": false, - "method": "btree", - "with": {} + "isUnique": false } }, "foreignKeys": { - "messages_chatId_chats_id_fk": { - "name": "messages_chatId_chats_id_fk", + "messages_chat_id_chats_id_fk": { + "name": "messages_chat_id_chats_id_fk", "tableFrom": "messages", "tableTo": "chats", "columnsFrom": [ - "chatId" + "chat_id" ], "columnsTo": [ "id" @@ -129,121 +115,92 @@ }, "compositePrimaryKeys": {}, "uniqueConstraints": {}, - "policies": {}, - "checkConstraints": {}, - "isRLSEnabled": false + "checkConstraints": {} }, - "public.users": { + "users": { "name": "users", - "schema": "", "columns": { "id": { "name": "id", - "type": "varchar(36)", + "type": "text", "primaryKey": true, - "notNull": true + "notNull": true, + "autoincrement": false }, "email": { "name": "email", - "type": "varchar(255)", + "type": "text", "primaryKey": false, - "notNull": true + "notNull": true, + "autoincrement": false }, "name": { "name": "name", - "type": "varchar(100)", + "type": "text", "primaryKey": false, - "notNull": true + "notNull": true, + "autoincrement": false }, "avatar": { "name": "avatar", - "type": "varchar(500)", + "type": "text", "primaryKey": false, - "notNull": true + "notNull": true, + "autoincrement": false }, "username": { "name": "username", - "type": "varchar(50)", + "type": "text", "primaryKey": false, - "notNull": true + "notNull": true, + "autoincrement": false }, "provider": { "name": "provider", - "type": "provider", - "typeSchema": "public", + "type": "text", "primaryKey": false, - "notNull": true + "notNull": true, + "autoincrement": false }, - "providerId": { - "name": "providerId", - "type": "varchar(50)", + "provider_id": { + "name": "provider_id", + "type": "text", "primaryKey": false, - "notNull": true + "notNull": true, + "autoincrement": false }, - "createdAt": { - "name": "createdAt", - "type": "timestamp", + "created_at": { + "name": "created_at", + "type": "integer", "primaryKey": false, "notNull": true, - "default": "now()" + "autoincrement": false } }, "indexes": { "users_provider_id_idx": { "name": "users_provider_id_idx", "columns": [ - { - "expression": "provider", - "isExpression": false, - "asc": true, - "nulls": "last" - }, - { - "expression": "providerId", - "isExpression": false, - "asc": true, - "nulls": "last" - } + "provider", + "provider_id" ], - "isUnique": true, - "concurrently": false, - "method": "btree", - "with": {} + "isUnique": true } }, "foreignKeys": {}, "compositePrimaryKeys": {}, "uniqueConstraints": {}, - "policies": {}, - "checkConstraints": {}, - "isRLSEnabled": false + "checkConstraints": {} } }, - "enums": { - "public.provider": { - "name": "provider", - "schema": "public", - "values": [ - "github" - ] - }, - "public.role": { - "name": "role", - "schema": "public", - "values": [ - "user", - "assistant" - ] - } - }, - "schemas": {}, - "sequences": {}, - "roles": {}, - "policies": {}, "views": {}, + "enums": {}, "_meta": { - "columns": {}, "schemas": {}, - "tables": {} + "tables": {}, + "columns": {} + }, + "internal": { + "indexes": {} } } \ No newline at end of file diff --git a/server/database/migrations/meta/_journal.json b/server/database/migrations/meta/_journal.json index ccc9f73..bea7e92 100644 --- a/server/database/migrations/meta/_journal.json +++ b/server/database/migrations/meta/_journal.json @@ -4,9 +4,9 @@ "entries": [ { "idx": 0, - "version": "7", - "when": 1756991789044, - "tag": "0000_amusing_gunslinger", + "version": "6", + "when": 1760619512848, + "tag": "0000_fancy_dracula", "breakpoints": true } ] diff --git a/server/database/schema.ts b/server/database/schema.ts index 62a44f8..8615501 100644 --- a/server/database/schema.ts +++ b/server/database/schema.ts @@ -1,21 +1,18 @@ -import { pgTable, varchar, pgEnum, timestamp, index, uniqueIndex, json } from 'drizzle-orm/pg-core' +import { sqliteTable, text, integer, index, uniqueIndex } from 'drizzle-orm/sqlite-core' import { relations } from 'drizzle-orm' const timestamps = { - createdAt: timestamp().defaultNow().notNull() + createdAt: integer('created_at', { mode: 'timestamp' }).notNull().$defaultFn(() => new Date()) } -export const providerEnum = pgEnum('provider', ['github']) -export const roleEnum = pgEnum('role', ['user', 'assistant']) - -export const users = pgTable('users', { - id: varchar({ length: 36 }).primaryKey().$defaultFn(() => crypto.randomUUID()), - email: varchar({ length: 255 }).notNull(), - name: varchar({ length: 100 }).notNull(), - avatar: varchar({ length: 500 }).notNull(), - username: varchar({ length: 50 }).notNull(), - provider: providerEnum().notNull(), - providerId: varchar({ length: 50 }).notNull(), +export const users = sqliteTable('users', { + id: text('id').primaryKey().$defaultFn(() => crypto.randomUUID()), + email: text('email').notNull(), + name: text('name').notNull(), + avatar: text('avatar').notNull(), + username: text('username').notNull(), + provider: text('provider').notNull(), // 'github' + providerId: text('provider_id').notNull(), ...timestamps }, table => [ uniqueIndex('users_provider_id_idx').on(table.provider, table.providerId) @@ -25,10 +22,10 @@ export const usersRelations = relations(users, ({ many }) => ({ chats: many(chats) })) -export const chats = pgTable('chats', { - id: varchar({ length: 36 }).primaryKey().$defaultFn(() => crypto.randomUUID()), - title: varchar({ length: 200 }), - userId: varchar({ length: 36 }).notNull(), +export const chats = sqliteTable('chats', { + id: text('id').primaryKey().$defaultFn(() => crypto.randomUUID()), + title: text('title'), + userId: text('user_id').notNull(), ...timestamps }, table => [ index('chats_user_id_idx').on(table.userId) @@ -42,11 +39,11 @@ export const chatsRelations = relations(chats, ({ one, many }) => ({ messages: many(messages) })) -export const messages = pgTable('messages', { - id: varchar({ length: 36 }).primaryKey().$defaultFn(() => crypto.randomUUID()), - chatId: varchar({ length: 36 }).notNull().references(() => chats.id, { onDelete: 'cascade' }), - role: roleEnum().notNull(), - parts: json(), +export const messages = sqliteTable('messages', { + id: text('id').primaryKey().$defaultFn(() => crypto.randomUUID()), + chatId: text('chat_id').notNull().references(() => chats.id, { onDelete: 'cascade' }), + role: text('role').notNull(), // 'user' | 'assistant' + parts: text('parts', { mode: 'json' }), ...timestamps }, table => [ index('messages_chat_id_idx').on(table.chatId) From feabb96379b79949734328390b2a8dfff297c8df Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9bastien=20Chopin?= Date: Fri, 17 Oct 2025 18:57:49 +0200 Subject: [PATCH 03/11] chore: update deps --- package.json | 2 +- pnpm-lock.yaml | 10 +++++----- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/package.json b/package.json index b69f69c..58b02bc 100644 --- a/package.json +++ b/package.json @@ -20,7 +20,7 @@ "@iconify-json/simple-icons": "^1.2.54", "@libsql/client": "^0.15.15", "@nuxt/ui": "^4.0.1", - "@nuxthub/core": "npm:@nuxthub/core-nightly@1.0.0-20251017-151859-a29e297", + "@nuxthub/core": "npm:@nuxthub/core-nightly@1.0.0-20251017-153430-af6a6fe", "@nuxtjs/mdc": "^0.17.4", "ai": "^5.0.60", "better-sqlite3": "^12.4.1", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 57a3bf8..e0430a1 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -33,8 +33,8 @@ importers: specifier: ^4.0.1 version: 4.0.1(@babel/parser@7.28.4)(@vercel/blob@2.0.0)(aws4fetch@1.0.20)(change-case@5.4.4)(db0@0.3.4(@libsql/client@0.15.15)(better-sqlite3@12.4.1)(drizzle-orm@0.44.6(@cloudflare/workers-types@4.20251011.0)(@libsql/client@0.15.15)(@opentelemetry/api@1.9.0)(better-sqlite3@12.4.1)(pg@8.16.3)))(embla-carousel@8.6.0)(ioredis@5.8.0)(magicast@0.3.5)(typescript@5.9.3)(vite@7.1.9(@types/node@24.7.0)(jiti@2.6.1)(lightningcss@1.30.1)(terser@5.44.0)(yaml@2.8.1))(vue-router@4.5.1(vue@3.5.22(typescript@5.9.3)))(vue@3.5.22(typescript@5.9.3))(zod@4.1.12) '@nuxthub/core': - specifier: npm:@nuxthub/core-nightly@1.0.0-20251017-151859-a29e297 - version: '@nuxthub/core-nightly@1.0.0-20251017-151859-a29e297(@ai-sdk/gateway@1.0.33(zod@4.1.12))(@libsql/client@0.15.15)(better-sqlite3@12.4.1)(drizzle-orm@0.44.6(@cloudflare/workers-types@4.20251011.0)(@libsql/client@0.15.15)(@opentelemetry/api@1.9.0)(better-sqlite3@12.4.1)(pg@8.16.3))(ioredis@5.8.0)(magicast@0.3.5)(typescript@5.9.3)(vite@7.1.9(@types/node@24.7.0)(jiti@2.6.1)(lightningcss@1.30.1)(terser@5.44.0)(yaml@2.8.1))(vue-tsc@3.1.0(typescript@5.9.3))(workers-ai-provider@2.0.0(zod@4.1.12))' + specifier: npm:@nuxthub/core-nightly@1.0.0-20251017-153430-af6a6fe + version: '@nuxthub/core-nightly@1.0.0-20251017-153430-af6a6fe(@ai-sdk/gateway@1.0.33(zod@4.1.12))(@libsql/client@0.15.15)(better-sqlite3@12.4.1)(drizzle-orm@0.44.6(@cloudflare/workers-types@4.20251011.0)(@libsql/client@0.15.15)(@opentelemetry/api@1.9.0)(better-sqlite3@12.4.1)(pg@8.16.3))(ioredis@5.8.0)(magicast@0.3.5)(typescript@5.9.3)(vite@7.1.9(@types/node@24.7.0)(jiti@2.6.1)(lightningcss@1.30.1)(terser@5.44.0)(yaml@2.8.1))(vue-tsc@3.1.0(typescript@5.9.3))(workers-ai-provider@2.0.0(zod@4.1.12))' '@nuxtjs/mdc': specifier: ^0.17.4 version: 0.17.4(magicast@0.3.5) @@ -972,8 +972,8 @@ packages: peerDependencies: vue: ^3.3.4 - '@nuxthub/core-nightly@1.0.0-20251017-151859-a29e297': - resolution: {integrity: sha512-zASjEOjll6ZbcGY9We+Boep1NEiYTRH+3wiIYAaDbB4BAbFfvi88lrH+qgOONkxIFlSCkk+k5L7y90S7fFkoEA==} + '@nuxthub/core-nightly@1.0.0-20251017-153430-af6a6fe': + resolution: {integrity: sha512-I1PG7NopE7YozHs2OF3tjBHcS6L76M/fWWXHxGZOs4p8/tpnqIj8k6kMtwGfRonNJ/K5DxOiekEJ5JXdgcGBQg==} hasBin: true peerDependencies: '@ai-sdk/gateway': ^1.0.30 @@ -7327,7 +7327,7 @@ snapshots: - vue-tsc - yaml - '@nuxthub/core-nightly@1.0.0-20251017-151859-a29e297(@ai-sdk/gateway@1.0.33(zod@4.1.12))(@libsql/client@0.15.15)(better-sqlite3@12.4.1)(drizzle-orm@0.44.6(@cloudflare/workers-types@4.20251011.0)(@libsql/client@0.15.15)(@opentelemetry/api@1.9.0)(better-sqlite3@12.4.1)(pg@8.16.3))(ioredis@5.8.0)(magicast@0.3.5)(typescript@5.9.3)(vite@7.1.9(@types/node@24.7.0)(jiti@2.6.1)(lightningcss@1.30.1)(terser@5.44.0)(yaml@2.8.1))(vue-tsc@3.1.0(typescript@5.9.3))(workers-ai-provider@2.0.0(zod@4.1.12))': + '@nuxthub/core-nightly@1.0.0-20251017-153430-af6a6fe(@ai-sdk/gateway@1.0.33(zod@4.1.12))(@libsql/client@0.15.15)(better-sqlite3@12.4.1)(drizzle-orm@0.44.6(@cloudflare/workers-types@4.20251011.0)(@libsql/client@0.15.15)(@opentelemetry/api@1.9.0)(better-sqlite3@12.4.1)(pg@8.16.3))(ioredis@5.8.0)(magicast@0.3.5)(typescript@5.9.3)(vite@7.1.9(@types/node@24.7.0)(jiti@2.6.1)(lightningcss@1.30.1)(terser@5.44.0)(yaml@2.8.1))(vue-tsc@3.1.0(typescript@5.9.3))(workers-ai-provider@2.0.0(zod@4.1.12))': dependencies: '@ai-sdk/gateway': 1.0.33(zod@4.1.12) '@ai-sdk/provider': 2.0.0 From f3d79c205bef43196613fa57b1715932ce0f55ef Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9bastien=20Chopin?= Date: Fri, 17 Oct 2025 19:10:09 +0200 Subject: [PATCH 04/11] chore: update nuxthub --- package.json | 2 +- pnpm-lock.yaml | 10 +++++----- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/package.json b/package.json index 58b02bc..857b391 100644 --- a/package.json +++ b/package.json @@ -20,7 +20,7 @@ "@iconify-json/simple-icons": "^1.2.54", "@libsql/client": "^0.15.15", "@nuxt/ui": "^4.0.1", - "@nuxthub/core": "npm:@nuxthub/core-nightly@1.0.0-20251017-153430-af6a6fe", + "@nuxthub/core": "npm:@nuxthub/core-nightly@1.0.0-20251017-170828-f0385d0", "@nuxtjs/mdc": "^0.17.4", "ai": "^5.0.60", "better-sqlite3": "^12.4.1", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index e0430a1..4133582 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -33,8 +33,8 @@ importers: specifier: ^4.0.1 version: 4.0.1(@babel/parser@7.28.4)(@vercel/blob@2.0.0)(aws4fetch@1.0.20)(change-case@5.4.4)(db0@0.3.4(@libsql/client@0.15.15)(better-sqlite3@12.4.1)(drizzle-orm@0.44.6(@cloudflare/workers-types@4.20251011.0)(@libsql/client@0.15.15)(@opentelemetry/api@1.9.0)(better-sqlite3@12.4.1)(pg@8.16.3)))(embla-carousel@8.6.0)(ioredis@5.8.0)(magicast@0.3.5)(typescript@5.9.3)(vite@7.1.9(@types/node@24.7.0)(jiti@2.6.1)(lightningcss@1.30.1)(terser@5.44.0)(yaml@2.8.1))(vue-router@4.5.1(vue@3.5.22(typescript@5.9.3)))(vue@3.5.22(typescript@5.9.3))(zod@4.1.12) '@nuxthub/core': - specifier: npm:@nuxthub/core-nightly@1.0.0-20251017-153430-af6a6fe - version: '@nuxthub/core-nightly@1.0.0-20251017-153430-af6a6fe(@ai-sdk/gateway@1.0.33(zod@4.1.12))(@libsql/client@0.15.15)(better-sqlite3@12.4.1)(drizzle-orm@0.44.6(@cloudflare/workers-types@4.20251011.0)(@libsql/client@0.15.15)(@opentelemetry/api@1.9.0)(better-sqlite3@12.4.1)(pg@8.16.3))(ioredis@5.8.0)(magicast@0.3.5)(typescript@5.9.3)(vite@7.1.9(@types/node@24.7.0)(jiti@2.6.1)(lightningcss@1.30.1)(terser@5.44.0)(yaml@2.8.1))(vue-tsc@3.1.0(typescript@5.9.3))(workers-ai-provider@2.0.0(zod@4.1.12))' + specifier: npm:@nuxthub/core-nightly@1.0.0-20251017-170828-f0385d0 + version: '@nuxthub/core-nightly@1.0.0-20251017-170828-f0385d0(@ai-sdk/gateway@1.0.33(zod@4.1.12))(@libsql/client@0.15.15)(better-sqlite3@12.4.1)(drizzle-orm@0.44.6(@cloudflare/workers-types@4.20251011.0)(@libsql/client@0.15.15)(@opentelemetry/api@1.9.0)(better-sqlite3@12.4.1)(pg@8.16.3))(ioredis@5.8.0)(magicast@0.3.5)(typescript@5.9.3)(vite@7.1.9(@types/node@24.7.0)(jiti@2.6.1)(lightningcss@1.30.1)(terser@5.44.0)(yaml@2.8.1))(vue-tsc@3.1.0(typescript@5.9.3))(workers-ai-provider@2.0.0(zod@4.1.12))' '@nuxtjs/mdc': specifier: ^0.17.4 version: 0.17.4(magicast@0.3.5) @@ -972,8 +972,8 @@ packages: peerDependencies: vue: ^3.3.4 - '@nuxthub/core-nightly@1.0.0-20251017-153430-af6a6fe': - resolution: {integrity: sha512-I1PG7NopE7YozHs2OF3tjBHcS6L76M/fWWXHxGZOs4p8/tpnqIj8k6kMtwGfRonNJ/K5DxOiekEJ5JXdgcGBQg==} + '@nuxthub/core-nightly@1.0.0-20251017-170828-f0385d0': + resolution: {integrity: sha512-BYWj+FF4xKIEE/JkS5rcYeccu2sbkzaY33wmfohMNA1y6LbXv7FJIv5NSYJTFVg/GjldDvG1lhRlsfM5/MK+PQ==} hasBin: true peerDependencies: '@ai-sdk/gateway': ^1.0.30 @@ -7327,7 +7327,7 @@ snapshots: - vue-tsc - yaml - '@nuxthub/core-nightly@1.0.0-20251017-153430-af6a6fe(@ai-sdk/gateway@1.0.33(zod@4.1.12))(@libsql/client@0.15.15)(better-sqlite3@12.4.1)(drizzle-orm@0.44.6(@cloudflare/workers-types@4.20251011.0)(@libsql/client@0.15.15)(@opentelemetry/api@1.9.0)(better-sqlite3@12.4.1)(pg@8.16.3))(ioredis@5.8.0)(magicast@0.3.5)(typescript@5.9.3)(vite@7.1.9(@types/node@24.7.0)(jiti@2.6.1)(lightningcss@1.30.1)(terser@5.44.0)(yaml@2.8.1))(vue-tsc@3.1.0(typescript@5.9.3))(workers-ai-provider@2.0.0(zod@4.1.12))': + '@nuxthub/core-nightly@1.0.0-20251017-170828-f0385d0(@ai-sdk/gateway@1.0.33(zod@4.1.12))(@libsql/client@0.15.15)(better-sqlite3@12.4.1)(drizzle-orm@0.44.6(@cloudflare/workers-types@4.20251011.0)(@libsql/client@0.15.15)(@opentelemetry/api@1.9.0)(better-sqlite3@12.4.1)(pg@8.16.3))(ioredis@5.8.0)(magicast@0.3.5)(typescript@5.9.3)(vite@7.1.9(@types/node@24.7.0)(jiti@2.6.1)(lightningcss@1.30.1)(terser@5.44.0)(yaml@2.8.1))(vue-tsc@3.1.0(typescript@5.9.3))(workers-ai-provider@2.0.0(zod@4.1.12))': dependencies: '@ai-sdk/gateway': 1.0.33(zod@4.1.12) '@ai-sdk/provider': 2.0.0 From cb821c86d3a98a1714eccb7c63921ee978d70b95 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9bastien=20Chopin?= Date: Fri, 17 Oct 2025 19:24:58 +0200 Subject: [PATCH 05/11] chore: working now --- package.json | 2 +- pnpm-lock.yaml | 12 ++++++------ 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/package.json b/package.json index 8bb8486..b361972 100644 --- a/package.json +++ b/package.json @@ -20,7 +20,7 @@ "@iconify-json/simple-icons": "^1.2.54", "@libsql/client": "^0.15.15", "@nuxt/ui": "^4.0.1", - "@nuxthub/core": "npm:@nuxthub/core-nightly@1.0.0-20251017-170828-f0385d0", + "@nuxthub/core": "npm:@nuxthub/core-nightly@1.0.0-20251017-172254-46a60d8", "better-sqlite3": "^12.4.1", "@nuxtjs/mdc": "^0.18.0", "ai": "^5.0.68", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 210f38e..f902441 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -33,8 +33,8 @@ importers: specifier: ^4.0.1 version: 4.0.1(@babel/parser@7.28.4)(@vercel/blob@2.0.0)(aws4fetch@1.0.20)(change-case@5.4.4)(db0@0.3.4(@libsql/client@0.15.15)(better-sqlite3@12.4.1)(drizzle-orm@0.44.6(@cloudflare/workers-types@4.20251011.0)(@libsql/client@0.15.15)(@opentelemetry/api@1.9.0)(better-sqlite3@12.4.1)(pg@8.16.3)))(embla-carousel@8.6.0)(ioredis@5.8.0)(magicast@0.3.5)(typescript@5.9.3)(vite@7.1.9(@types/node@24.8.1)(jiti@2.6.1)(lightningcss@1.30.1)(terser@5.44.0)(yaml@2.8.1))(vue-router@4.5.1(vue@3.5.22(typescript@5.9.3)))(vue@3.5.22(typescript@5.9.3))(zod@4.1.12) '@nuxthub/core': - specifier: npm:@nuxthub/core-nightly@1.0.0-20251017-170828-f0385d0 - version: '@nuxthub/core-nightly@1.0.0-20251017-170828-f0385d0(@ai-sdk/gateway@1.0.39(zod@4.1.12))(@libsql/client@0.15.15)(better-sqlite3@12.4.1)(drizzle-orm@0.44.6(@cloudflare/workers-types@4.20251011.0)(@libsql/client@0.15.15)(@opentelemetry/api@1.9.0)(better-sqlite3@12.4.1)(pg@8.16.3))(ioredis@5.8.0)(magicast@0.3.5)(typescript@5.9.3)(vite@7.1.9(@types/node@24.8.1)(jiti@2.6.1)(lightningcss@1.30.1)(terser@5.44.0)(yaml@2.8.1))(vue-tsc@3.1.1(typescript@5.9.3))(workers-ai-provider@2.0.0(zod@4.1.12))' + specifier: npm:@nuxthub/core-nightly@1.0.0-20251017-172254-46a60d8 + version: '@nuxthub/core-nightly@1.0.0-20251017-172254-46a60d8(@ai-sdk/gateway@1.0.39(zod@4.1.12))(@libsql/client@0.15.15)(better-sqlite3@12.4.1)(drizzle-orm@0.44.6(@cloudflare/workers-types@4.20251011.0)(@libsql/client@0.15.15)(@opentelemetry/api@1.9.0)(better-sqlite3@12.4.1)(pg@8.16.3))(ioredis@5.8.0)(magicast@0.3.5)(typescript@5.9.3)(vite@7.1.9(@types/node@24.8.1)(jiti@2.6.1)(lightningcss@1.30.1)(terser@5.44.0)(yaml@2.8.1))(vue-tsc@3.1.1(typescript@5.9.3))(workers-ai-provider@2.0.0(zod@4.1.12))' '@nuxtjs/mdc': specifier: ^0.18.0 version: 0.18.0(magicast@0.3.5) @@ -978,8 +978,8 @@ packages: rolldown: optional: true - '@nuxthub/core-nightly@1.0.0-20251017-170828-f0385d0': - resolution: {integrity: sha512-BYWj+FF4xKIEE/JkS5rcYeccu2sbkzaY33wmfohMNA1y6LbXv7FJIv5NSYJTFVg/GjldDvG1lhRlsfM5/MK+PQ==} + '@nuxthub/core-nightly@1.0.0-20251017-172254-46a60d8': + resolution: {integrity: sha512-xqsCwPTfeJhaoXKQYDR0eOJ3GxME+ZASneIy4f4YETFlbI4jyN6daS9rQXgFRX6mab2tv3absq4GXqUkp2Ww0g==} hasBin: true peerDependencies: '@ai-sdk/gateway': ^1.0.30 @@ -7390,7 +7390,7 @@ snapshots: - vue-tsc - yaml - '@nuxthub/core-nightly@1.0.0-20251017-170828-f0385d0(@ai-sdk/gateway@1.0.39(zod@4.1.12))(@libsql/client@0.15.15)(better-sqlite3@12.4.1)(drizzle-orm@0.44.6(@cloudflare/workers-types@4.20251011.0)(@libsql/client@0.15.15)(@opentelemetry/api@1.9.0)(better-sqlite3@12.4.1)(pg@8.16.3))(ioredis@5.8.0)(magicast@0.3.5)(typescript@5.9.3)(vite@7.1.9(@types/node@24.8.1)(jiti@2.6.1)(lightningcss@1.30.1)(terser@5.44.0)(yaml@2.8.1))(vue-tsc@3.1.1(typescript@5.9.3))(workers-ai-provider@2.0.0(zod@4.1.12))': + '@nuxthub/core-nightly@1.0.0-20251017-172254-46a60d8(@ai-sdk/gateway@1.0.39(zod@4.1.12))(@libsql/client@0.15.15)(better-sqlite3@12.4.1)(drizzle-orm@0.44.6(@cloudflare/workers-types@4.20251011.0)(@libsql/client@0.15.15)(@opentelemetry/api@1.9.0)(better-sqlite3@12.4.1)(pg@8.16.3))(ioredis@5.8.0)(magicast@0.3.5)(typescript@5.9.3)(vite@7.1.9(@types/node@24.8.1)(jiti@2.6.1)(lightningcss@1.30.1)(terser@5.44.0)(yaml@2.8.1))(vue-tsc@3.1.1(typescript@5.9.3))(workers-ai-provider@2.0.0(zod@4.1.12))': dependencies: '@ai-sdk/gateway': 1.0.39(zod@4.1.12) '@ai-sdk/provider': 2.0.0 @@ -7398,7 +7398,7 @@ snapshots: '@nuxt/devtools-kit': 2.6.5(magicast@0.3.5)(vite@7.1.9(@types/node@24.8.1)(jiti@2.6.1)(lightningcss@1.30.1)(terser@5.44.0)(yaml@2.8.1)) '@uploadthing/mime-types': 0.3.6 '@vercel/blob': 2.0.0 - ai: 5.0.68(zod@4.1.12) + ai: 5.0.76(zod@4.1.12) aws4fetch: 1.0.20 consola: 3.4.2 db0: 0.3.4(@libsql/client@0.15.15)(better-sqlite3@12.4.1)(drizzle-orm@0.44.6(@cloudflare/workers-types@4.20251011.0)(@libsql/client@0.15.15)(@opentelemetry/api@1.9.0)(better-sqlite3@12.4.1)(pg@8.16.3)) From 3137eef9acd78cbc4ba1532cf0b380e78e5ea92c Mon Sep 17 00:00:00 2001 From: Benjamin Canac Date: Mon, 20 Oct 2025 13:27:16 +0200 Subject: [PATCH 06/11] chore(readme): update for tursocloud --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index bc968f5..ed398b1 100644 --- a/README.md +++ b/README.md @@ -31,7 +31,7 @@ npm create nuxt@latest -- -t ui/chat ## Deploy your own -[![Deploy with Vercel](https://vercel.com/button)](https://vercel.com/new/clone?repository-name=chat&repository-url=https%3A%2F%2Fgithub.com%2Fnuxt-ui-templates%2Fchat&env=NUXT_SESSION_PASSWORD,NUXT_OAUTH_GITHUB_CLIENT_ID,NUXT_OAUTH_GITHUB_CLIENT_SECRET&products=%5B%7B%22type%22%3A%22integration%22%2C%22group%22%3A%22libsql%22%7D%5D&demo-image=https%3A%2F%2Fui.nuxt.com%2Fassets%2Ftemplates%2Fnuxt%2Fchat-dark.png&demo-url=https%3A%2F%2Fchat-template.nuxt.dev%2F&demo-title=Nuxt%20Chat%20Template&demo-description=An%20AI%20chatbot%20template%20to%20build%20your%20own%20chatbot%20powered%20by%20Nuxt%20MDC%20and%20Vercel%20AI%20SDK.) +[![Deploy with Vercel](https://vercel.com/button)](https://vercel.com/new/clone?repository-name=chat&repository-url=https%3A%2F%2Fgithub.com%2Fnuxt-ui-templates%2Fchat&env=NUXT_SESSION_PASSWORD,NUXT_OAUTH_GITHUB_CLIENT_ID,NUXT_OAUTH_GITHUB_CLIENT_SECRET&products=%5B%7B%22type%22%3A%22integration%22%2C%22protocol%22%3A%22storage%22%2C%22productSlug%22%3A%22database%22%2C%22integrationSlug%22%3A%22tursocloud%22%7D%5D&demo-image=https%3A%2F%2Fui.nuxt.com%2Fassets%2Ftemplates%2Fnuxt%2Fchat-dark.png&demo-url=https%3A%2F%2Fchat-template.nuxt.dev%2F&demo-title=Nuxt%20Chat%20Template&demo-description=An%20AI%20chatbot%20template%20to%20build%20your%20own%20chatbot%20powered%20by%20Nuxt%20MDC%20and%20Vercel%20AI%20SDK.) ## Setup From 9f84b0c845b8aac64f39b0d84e98fac7648e25cb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9bastien=20Chopin?= Date: Tue, 28 Oct 2025 10:27:50 +0100 Subject: [PATCH 07/11] chore: update nuxthub --- package.json | 2 +- pnpm-lock.yaml | 67 +++++--------------------------------------------- 2 files changed, 7 insertions(+), 62 deletions(-) diff --git a/package.json b/package.json index 4161fa2..08d8c7c 100644 --- a/package.json +++ b/package.json @@ -20,7 +20,7 @@ "@iconify-json/simple-icons": "^1.2.55", "@libsql/client": "^0.15.15", "@nuxt/ui": "^4.1.0", - "@nuxthub/core": "npm:@nuxthub/core-nightly@1.0.0-20251017-172254-46a60d8", + "@nuxthub/core": "npm:@nuxthub/core-nightly@1.0.0-20251028-004316-83d4099", "better-sqlite3": "^12.4.1", "@nuxtjs/mdc": "^0.18.0", "ai": "^5.0.80", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 69607c5..48a0db9 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -38,8 +38,8 @@ importers: specifier: ^4.1.0 version: 4.1.0(@babel/parser@7.28.4)(@vercel/blob@2.0.0)(aws4fetch@1.0.20)(change-case@5.4.4)(db0@0.3.4(@libsql/client@0.15.15)(better-sqlite3@12.4.1)(drizzle-orm@0.44.7(@cloudflare/workers-types@4.20251014.0)(@libsql/client@0.15.15)(@opentelemetry/api@1.9.0)(better-sqlite3@12.4.1)(pg@8.16.3)))(embla-carousel@8.6.0)(ioredis@5.8.2)(magicast@0.3.5)(typescript@5.9.3)(vite@7.1.12(@types/node@24.9.1)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.0)(yaml@2.8.1))(vue-router@4.6.3(vue@3.5.22(typescript@5.9.3)))(vue@3.5.22(typescript@5.9.3))(zod@4.1.12) '@nuxthub/core': - specifier: npm:@nuxthub/core-nightly@1.0.0-20251017-172254-46a60d8 - version: '@nuxthub/core-nightly@1.0.0-20251017-172254-46a60d8(@ai-sdk/gateway@2.0.2(zod@4.1.12))(@libsql/client@0.15.15)(better-sqlite3@12.4.1)(drizzle-orm@0.44.7(@cloudflare/workers-types@4.20251014.0)(@libsql/client@0.15.15)(@opentelemetry/api@1.9.0)(better-sqlite3@12.4.1)(pg@8.16.3))(ioredis@5.8.2)(magicast@0.3.5)(typescript@5.9.3)(vite@7.1.12(@types/node@24.9.1)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.0)(yaml@2.8.1))(vue-tsc@3.1.2(typescript@5.9.3))(workers-ai-provider@2.0.0(zod@4.1.12))' + specifier: npm:@nuxthub/core-nightly@1.0.0-20251028-004316-83d4099 + version: '@nuxthub/core-nightly@1.0.0-20251028-004316-83d4099(@libsql/client@0.15.15)(better-sqlite3@12.4.1)(drizzle-orm@0.44.7(@cloudflare/workers-types@4.20251014.0)(@libsql/client@0.15.15)(@opentelemetry/api@1.9.0)(better-sqlite3@12.4.1)(pg@8.16.3))(ioredis@5.8.2)(magicast@0.3.5)(typescript@5.9.3)(vite@7.1.12(@types/node@24.9.1)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.0)(yaml@2.8.1))(vue-tsc@3.1.2(typescript@5.9.3))' '@nuxtjs/mdc': specifier: ^0.18.0 version: 0.18.0(magicast@0.3.5) @@ -101,24 +101,12 @@ packages: bcrypt: optional: true - '@ai-sdk/gateway@2.0.0': - resolution: {integrity: sha512-Gj0PuawK7NkZuyYgO/h5kDK/l6hFOjhLdTq3/Lli1FTl47iGmwhH1IZQpAL3Z09BeFYWakcwUmn02ovIm2wy9g==} - engines: {node: '>=18'} - peerDependencies: - zod: ^3.25.76 || ^4.1.8 - '@ai-sdk/gateway@2.0.2': resolution: {integrity: sha512-25F1qPqZxOw9IcV9OQCL29hV4HAFLw5bFWlzQLBi5aDhEZsTMT2rMi3umSqNaUxrrw+dLRtjOL7RbHC+WjbA/A==} engines: {node: '>=18'} peerDependencies: zod: ^3.25.76 || ^4.1.8 - '@ai-sdk/provider-utils@3.0.12': - resolution: {integrity: sha512-ZtbdvYxdMoria+2SlNarEk6Hlgyf+zzcznlD55EAl+7VZvJaSg2sqPvwArY7L6TfDEDJsnCq0fdhBSkYo0Xqdg==} - engines: {node: '>=18'} - peerDependencies: - zod: ^3.25.76 || ^4.1.8 - '@ai-sdk/provider-utils@3.0.13': resolution: {integrity: sha512-aXFLBLRPTUYA853MJliItefSXeJPl+mg0KSjbToP41kJ+banBmHO8ZPGLJhNqGlCU82o11TYN7G05EREKX8CkA==} engines: {node: '>=18'} @@ -1061,12 +1049,9 @@ packages: rolldown: optional: true - '@nuxthub/core-nightly@1.0.0-20251017-172254-46a60d8': - resolution: {integrity: sha512-xqsCwPTfeJhaoXKQYDR0eOJ3GxME+ZASneIy4f4YETFlbI4jyN6daS9rQXgFRX6mab2tv3absq4GXqUkp2Ww0g==} + '@nuxthub/core-nightly@1.0.0-20251028-004316-83d4099': + resolution: {integrity: sha512-Uz6eB39dG2dm1MSfdMeDPSzb+Wdjw7cxXlbX2HPzt5v2HCxgRHKAlC1bsSHq6rppfZlcCvDT/e5kmNcgXTKGnw==} hasBin: true - peerDependencies: - '@ai-sdk/gateway': ^1.0.30 - workers-ai-provider: ^2.0.0 '@nuxtjs/color-mode@3.5.2': resolution: {integrity: sha512-cC6RfgZh3guHBMLLjrBB2Uti5eUoGM9KyauOaYS9ETmxNWBMTvpgjvSiSJp1OFljIXPIqVTJ3xtJpSNZiO3ZaA==} @@ -2732,12 +2717,6 @@ packages: resolution: {integrity: sha512-MnA+YT8fwfJPgBx3m60MNqakm30XOkyIoH1y6huTQvC0PwZG7ki8NacLBcrPbNoo8vEZy7Jpuk7+jMO+CUovTQ==} engines: {node: '>= 14'} - ai@5.0.76: - resolution: {integrity: sha512-ZCxi1vrpyCUnDbtYrO/W8GLvyacV9689f00yshTIQ3mFFphbD7eIv40a2AOZBv3GGRA7SSRYIDnr56wcS/gyQg==} - engines: {node: '>=18'} - peerDependencies: - zod: ^3.25.76 || ^4.1.8 - ai@5.0.81: resolution: {integrity: sha512-SB7oMC9QSpIu1VLswFTZuhhpfQfrGtFBUbWLtHBkhjWZIQskjtcdEhB+N4yO9hscdc2wYtjw/tacgoxX93QWFw==} engines: {node: '>=18'} @@ -6590,9 +6569,6 @@ packages: resolution: {integrity: sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==} engines: {node: '>=0.10.0'} - workers-ai-provider@2.0.0: - resolution: {integrity: sha512-AoGGy8aOR3lzCzRouSxA6mgrCKuZfrnzxvOHHy9kOzwz4Mm4Hb55a/9G8zz+v0I/mn8bYLs/4I6JABSl/zXJ7w==} - wrap-ansi@7.0.0: resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} engines: {node: '>=10'} @@ -6691,13 +6667,6 @@ snapshots: '@phc/format': 1.0.0 '@poppinss/utils': 6.10.1 - '@ai-sdk/gateway@2.0.0(zod@4.1.12)': - dependencies: - '@ai-sdk/provider': 2.0.0 - '@ai-sdk/provider-utils': 3.0.12(zod@4.1.12) - '@vercel/oidc': 3.0.3 - zod: 4.1.12 - '@ai-sdk/gateway@2.0.2(zod@4.1.12)': dependencies: '@ai-sdk/provider': 2.0.0 @@ -6705,13 +6674,6 @@ snapshots: '@vercel/oidc': 3.0.3 zod: 4.1.12 - '@ai-sdk/provider-utils@3.0.12(zod@4.1.12)': - dependencies: - '@ai-sdk/provider': 2.0.0 - '@standard-schema/spec': 1.0.0 - eventsource-parser: 3.0.6 - zod: 4.1.12 - '@ai-sdk/provider-utils@3.0.13(zod@4.1.12)': dependencies: '@ai-sdk/provider': 2.0.0 @@ -8068,15 +8030,14 @@ snapshots: - vue-tsc - yaml - '@nuxthub/core-nightly@1.0.0-20251017-172254-46a60d8(@ai-sdk/gateway@2.0.2(zod@4.1.12))(@libsql/client@0.15.15)(better-sqlite3@12.4.1)(drizzle-orm@0.44.7(@cloudflare/workers-types@4.20251014.0)(@libsql/client@0.15.15)(@opentelemetry/api@1.9.0)(better-sqlite3@12.4.1)(pg@8.16.3))(ioredis@5.8.2)(magicast@0.3.5)(typescript@5.9.3)(vite@7.1.12(@types/node@24.9.1)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.0)(yaml@2.8.1))(vue-tsc@3.1.2(typescript@5.9.3))(workers-ai-provider@2.0.0(zod@4.1.12))': + '@nuxthub/core-nightly@1.0.0-20251028-004316-83d4099(@libsql/client@0.15.15)(better-sqlite3@12.4.1)(drizzle-orm@0.44.7(@cloudflare/workers-types@4.20251014.0)(@libsql/client@0.15.15)(@opentelemetry/api@1.9.0)(better-sqlite3@12.4.1)(pg@8.16.3))(ioredis@5.8.2)(magicast@0.3.5)(typescript@5.9.3)(vite@7.1.12(@types/node@24.9.1)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.0)(yaml@2.8.1))(vue-tsc@3.1.2(typescript@5.9.3))': dependencies: - '@ai-sdk/gateway': 2.0.2(zod@4.1.12) '@ai-sdk/provider': 2.0.0 '@cloudflare/workers-types': 4.20251014.0 '@nuxt/devtools-kit': 2.6.5(magicast@0.3.5)(vite@7.1.12(@types/node@24.9.1)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.0)(yaml@2.8.1)) '@uploadthing/mime-types': 0.3.6 '@vercel/blob': 2.0.0 - ai: 5.0.76(zod@4.1.12) + ai: 5.0.81(zod@4.1.12) aws4fetch: 1.0.20 consola: 3.4.2 db0: 0.3.4(@libsql/client@0.15.15)(better-sqlite3@12.4.1)(drizzle-orm@0.44.7(@cloudflare/workers-types@4.20251014.0)(@libsql/client@0.15.15)(@opentelemetry/api@1.9.0)(better-sqlite3@12.4.1)(pg@8.16.3)) @@ -8096,7 +8057,6 @@ snapshots: ufo: 1.6.1 uncrypto: 0.1.3 unstorage: 1.17.1(@vercel/blob@2.0.0)(aws4fetch@1.0.20)(db0@0.3.4(@libsql/client@0.15.15)(better-sqlite3@12.4.1)(drizzle-orm@0.44.7(@cloudflare/workers-types@4.20251014.0)(@libsql/client@0.15.15)(@opentelemetry/api@1.9.0)(better-sqlite3@12.4.1)(pg@8.16.3)))(ioredis@5.8.2) - workers-ai-provider: 2.0.0(zod@4.1.12) zod: 4.1.12 transitivePeerDependencies: - '@azure/app-configuration' @@ -9616,14 +9576,6 @@ snapshots: agent-base@7.1.4: {} - ai@5.0.76(zod@4.1.12): - dependencies: - '@ai-sdk/gateway': 2.0.0(zod@4.1.12) - '@ai-sdk/provider': 2.0.0 - '@ai-sdk/provider-utils': 3.0.12(zod@4.1.12) - '@opentelemetry/api': 1.9.0 - zod: 4.1.12 - ai@5.0.81(zod@4.1.12): dependencies: '@ai-sdk/gateway': 2.0.2(zod@4.1.12) @@ -14082,13 +14034,6 @@ snapshots: word-wrap@1.2.5: {} - workers-ai-provider@2.0.0(zod@4.1.12): - dependencies: - '@ai-sdk/provider': 2.0.0 - '@ai-sdk/provider-utils': 3.0.13(zod@4.1.12) - transitivePeerDependencies: - - zod - wrap-ansi@7.0.0: dependencies: ansi-styles: 4.3.0 From d90037fdc08b422d463c1fd3e713ed72aa2d8299 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9bastien=20Chopin?= Date: Tue, 28 Oct 2025 10:29:41 +0100 Subject: [PATCH 08/11] chore: revove bettersqlite3 as dep --- package.json | 1 - pnpm-lock.yaml | 51 ++++++++++++++++++++++++++++++++++++-------------- 2 files changed, 37 insertions(+), 15 deletions(-) diff --git a/package.json b/package.json index 08d8c7c..fffaf6d 100644 --- a/package.json +++ b/package.json @@ -21,7 +21,6 @@ "@libsql/client": "^0.15.15", "@nuxt/ui": "^4.1.0", "@nuxthub/core": "npm:@nuxthub/core-nightly@1.0.0-20251028-004316-83d4099", - "better-sqlite3": "^12.4.1", "@nuxtjs/mdc": "^0.18.0", "ai": "^5.0.80", "date-fns": "^4.1.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 48a0db9..0c115aa 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -46,9 +46,6 @@ importers: ai: specifier: ^5.0.80 version: 5.0.81(zod@4.1.12) - better-sqlite3: - specifier: ^12.4.1 - version: 12.4.1 date-fns: specifier: ^4.1.0 version: 4.1.0 @@ -9692,6 +9689,7 @@ snapshots: dependencies: bindings: 1.5.0 prebuild-install: 7.1.3 + optional: true bindings@1.5.0: dependencies: @@ -9704,6 +9702,7 @@ snapshots: buffer: 5.7.1 inherits: 2.0.4 readable-stream: 3.6.2 + optional: true blob-to-buffer@1.2.9: {} @@ -9742,6 +9741,7 @@ snapshots: dependencies: base64-js: 1.5.1 ieee754: 1.2.1 + optional: true buffer@6.0.3: dependencies: @@ -9816,7 +9816,8 @@ snapshots: dependencies: readdirp: 4.1.2 - chownr@1.1.4: {} + chownr@1.1.4: + optional: true chownr@3.0.0: {} @@ -10222,8 +10223,10 @@ snapshots: decompress-response@6.0.0: dependencies: mimic-response: 3.1.0 + optional: true - deep-extend@0.6.0: {} + deep-extend@0.6.0: + optional: true deep-is@0.1.4: {} @@ -10379,6 +10382,7 @@ snapshots: end-of-stream@1.4.5: dependencies: once: 1.4.0 + optional: true enhanced-resolve@5.18.3: dependencies: @@ -10702,7 +10706,8 @@ snapshots: strip-final-newline: 4.0.0 yoctocolors: 2.1.2 - expand-template@2.0.3: {} + expand-template@2.0.3: + optional: true exsolve@1.0.7: {} @@ -10823,7 +10828,8 @@ snapshots: fresh@2.0.0: {} - fs-constants@1.0.0: {} + fs-constants@1.0.0: + optional: true fsevents@2.3.3: optional: true @@ -10873,7 +10879,8 @@ snapshots: dependencies: git-up: 8.1.1 - github-from-package@0.0.0: {} + github-from-package@0.0.0: + optional: true github-slugger@2.0.0: {} @@ -11858,7 +11865,8 @@ snapshots: mimic-fn@4.0.0: {} - mimic-response@3.1.0: {} + mimic-response@3.1.0: + optional: true minimatch@10.0.3: dependencies: @@ -11886,7 +11894,8 @@ snapshots: mitt@3.0.1: {} - mkdirp-classic@0.5.3: {} + mkdirp-classic@0.5.3: + optional: true mlly@1.8.0: dependencies: @@ -11929,7 +11938,8 @@ snapshots: nanotar@0.2.0: {} - napi-build-utils@2.0.0: {} + napi-build-utils@2.0.0: + optional: true napi-postinstall@0.3.4: {} @@ -12045,6 +12055,7 @@ snapshots: node-abi@3.78.0: dependencies: semver: 7.7.3 + optional: true node-addon-api@7.1.1: {} @@ -12296,6 +12307,7 @@ snapshots: once@1.4.0: dependencies: wrappy: 1.0.2 + optional: true onetime@6.0.0: dependencies: @@ -12815,6 +12827,7 @@ snapshots: simple-get: 4.0.1 tar-fs: 2.1.4 tunnel-agent: 0.6.0 + optional: true prelude-ls@1.2.1: {} @@ -12847,6 +12860,7 @@ snapshots: dependencies: end-of-stream: 1.4.5 once: 1.4.0 + optional: true punycode@2.3.1: {} @@ -12875,6 +12889,7 @@ snapshots: ini: 1.3.8 minimist: 1.2.8 strip-json-comments: 2.0.1 + optional: true readable-stream@2.3.8: dependencies: @@ -12891,6 +12906,7 @@ snapshots: inherits: 2.0.4 string_decoder: 1.3.0 util-deprecate: 1.0.2 + optional: true readable-stream@4.7.0: dependencies: @@ -13265,13 +13281,15 @@ snapshots: signal-exit@4.1.0: {} - simple-concat@1.0.1: {} + simple-concat@1.0.1: + optional: true simple-get@4.0.1: dependencies: decompress-response: 6.0.0 once: 1.4.0 simple-concat: 1.0.1 + optional: true simple-git@3.28.0: dependencies: @@ -13387,7 +13405,8 @@ snapshots: strip-indent@4.1.0: {} - strip-json-comments@2.0.1: {} + strip-json-comments@2.0.1: + optional: true strip-json-comments@3.1.1: {} @@ -13459,6 +13478,7 @@ snapshots: mkdirp-classic: 0.5.3 pump: 3.0.3 tar-stream: 2.2.0 + optional: true tar-stream@2.2.0: dependencies: @@ -13467,6 +13487,7 @@ snapshots: fs-constants: 1.0.0 inherits: 2.0.4 readable-stream: 3.6.2 + optional: true tar-stream@3.1.7: dependencies: @@ -13551,6 +13572,7 @@ snapshots: tunnel-agent@0.6.0: dependencies: safe-buffer: 5.2.1 + optional: true type-check@0.4.0: dependencies: @@ -14046,7 +14068,8 @@ snapshots: string-width: 5.1.2 strip-ansi: 7.1.2 - wrappy@1.0.2: {} + wrappy@1.0.2: + optional: true ws@8.18.3: {} From 74d5166cbfbb1def97e11703e507f730690e69bb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9bastien=20Chopin?= Date: Tue, 28 Oct 2025 10:55:39 +0100 Subject: [PATCH 09/11] Update server/utils/drizzle.ts Co-authored-by: vercel[bot] <35613825+vercel[bot]@users.noreply.github.com> --- server/utils/drizzle.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/server/utils/drizzle.ts b/server/utils/drizzle.ts index 171df32..e4c1099 100644 --- a/server/utils/drizzle.ts +++ b/server/utils/drizzle.ts @@ -5,7 +5,7 @@ export { sql, eq, and, or, desc } from 'drizzle-orm' export const tables = schema export function useDrizzle() { - return hubDrizzle({ schema }) + return drizzle({ schema }) } export type Chat = typeof schema.chats.$inferSelect From 79988051752e7f4777337de0658de2f11d05795f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9bastien=20Chopin?= Date: Tue, 28 Oct 2025 10:57:33 +0100 Subject: [PATCH 10/11] fix: workaround for upcoming ai improvement --- package.json | 3 ++- pnpm-lock.yaml | 13 +++++++++++++ 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/package.json b/package.json index fffaf6d..49f3936 100644 --- a/package.json +++ b/package.json @@ -28,7 +28,8 @@ "nuxt": "^4.2.0", "nuxt-auth-utils": "^0.5.25", "nuxt-charts": "0.2.4", - "shiki-stream": "^0.1.2" + "shiki-stream": "^0.1.2", + "workers-ai-provider": "^2.0.0" }, "devDependencies": { "@nuxt/eslint": "^1.9.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 0c115aa..1947503 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -64,6 +64,9 @@ importers: shiki-stream: specifier: ^0.1.2 version: 0.1.2(vue@3.5.22(typescript@5.9.3)) + workers-ai-provider: + specifier: ^2.0.0 + version: 2.0.0(zod@4.1.12) devDependencies: '@nuxt/eslint': specifier: ^1.9.0 @@ -6566,6 +6569,9 @@ packages: resolution: {integrity: sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==} engines: {node: '>=0.10.0'} + workers-ai-provider@2.0.0: + resolution: {integrity: sha512-AoGGy8aOR3lzCzRouSxA6mgrCKuZfrnzxvOHHy9kOzwz4Mm4Hb55a/9G8zz+v0I/mn8bYLs/4I6JABSl/zXJ7w==} + wrap-ansi@7.0.0: resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} engines: {node: '>=10'} @@ -14056,6 +14062,13 @@ snapshots: word-wrap@1.2.5: {} + workers-ai-provider@2.0.0(zod@4.1.12): + dependencies: + '@ai-sdk/provider': 2.0.0 + '@ai-sdk/provider-utils': 3.0.13(zod@4.1.12) + transitivePeerDependencies: + - zod + wrap-ansi@7.0.0: dependencies: ansi-styles: 4.3.0 From bf28374196a5ba24863b16cb6feb2ad5a6db7f0d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9bastien=20Chopin?= Date: Tue, 28 Oct 2025 11:08:46 +0100 Subject: [PATCH 11/11] chore: update --- server/utils/drizzle.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/server/utils/drizzle.ts b/server/utils/drizzle.ts index e4c1099..b5b0d6e 100644 --- a/server/utils/drizzle.ts +++ b/server/utils/drizzle.ts @@ -1,3 +1,4 @@ +import { drizzle } from 'hub:database' import * as schema from '../database/schema' export { sql, eq, and, or, desc } from 'drizzle-orm'