From b94b7b5216d6ca268cc26bc5174df035074dde71 Mon Sep 17 00:00:00 2001 From: Rihan Arfan Date: Mon, 13 Oct 2025 11:15:21 +0100 Subject: [PATCH 01/19] 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/19] 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/19] 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/19] 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/19] 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/19] 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/19] 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/19] 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/19] 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/19] 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/19] 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' From 7929bbcad9f728f79b859672af5c70809f82cd5d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9bastien=20Chopin?= Date: Sun, 2 Nov 2025 00:32:56 +0100 Subject: [PATCH 12/19] chore: up --- app/composables/useChats.ts | 7 - drizzle.config.ts | 7 - package.json | 4 +- pnpm-lock.yaml | 1224 +++++------------ server/api/chats.get.ts | 4 +- server/api/chats.post.ts | 5 +- server/api/chats/[id].delete.ts | 6 +- server/api/chats/[id].get.ts | 4 +- server/api/chats/[id].post.ts | 9 +- .../database/{schema.ts => schema.sqlite.ts} | 0 .../0000_fancy_dracula.sql | 0 .../meta/0000_snapshot.json | 0 .../{migrations => sqlite}/meta/_journal.json | 0 server/utils/drizzle.ts | 13 - shared/types/db.d.ts | 4 + 15 files changed, 355 insertions(+), 932 deletions(-) delete mode 100644 drizzle.config.ts rename server/database/{schema.ts => schema.sqlite.ts} (100%) rename server/database/{migrations => sqlite}/0000_fancy_dracula.sql (100%) rename server/database/{migrations => sqlite}/meta/0000_snapshot.json (100%) rename server/database/{migrations => sqlite}/meta/_journal.json (100%) delete mode 100644 server/utils/drizzle.ts create mode 100644 shared/types/db.d.ts diff --git a/app/composables/useChats.ts b/app/composables/useChats.ts index 5c7c037..8b341fd 100644 --- a/app/composables/useChats.ts +++ b/app/composables/useChats.ts @@ -1,12 +1,5 @@ import { isToday, isYesterday, subMonths } from 'date-fns' -interface Chat { - id: string - label: string - icon: string - createdAt: string -} - export function useChats(chats: Ref) { const groups = computed(() => { // Group chats by date diff --git a/drizzle.config.ts b/drizzle.config.ts deleted file mode 100644 index 505a7d1..0000000 --- a/drizzle.config.ts +++ /dev/null @@ -1,7 +0,0 @@ -import { defineConfig } from 'drizzle-kit' - -export default defineConfig({ - dialect: 'sqlite', - schema: './server/database/schema.ts', - out: './server/database/migrations' -}) diff --git a/package.json b/package.json index 49f3936..5e0611b 100644 --- a/package.json +++ b/package.json @@ -20,12 +20,12 @@ "@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-20251028-004316-83d4099", + "@nuxthub/core": "npm:@nuxthub/core-nightly@1.0.0-20251101-232620-31e6b29", "@nuxtjs/mdc": "^0.18.0", "ai": "^5.0.80", "date-fns": "^4.1.0", "drizzle-orm": "^0.44.7", - "nuxt": "^4.2.0", + "nuxt": "4.1.0", "nuxt-auth-utils": "^0.5.25", "nuxt-charts": "0.2.4", "shiki-stream": "^0.1.2", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 1947503..42466e4 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-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))' + specifier: npm:@nuxthub/core-nightly@1.0.0-20251101-232620-31e6b29 + version: '@nuxthub/core-nightly@1.0.0-20251101-232620-31e6b29(@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)(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))' '@nuxtjs/mdc': specifier: ^0.18.0 version: 0.18.0(magicast@0.3.5) @@ -53,8 +53,8 @@ importers: specifier: ^0.44.7 version: 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) nuxt: - specifier: ^4.2.0 - version: 4.2.0(@libsql/client@0.15.15)(@parcel/watcher@2.5.1)(@types/node@24.9.1)(@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.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)))(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))(eslint@9.38.0(jiti@2.6.1))(ioredis@5.8.2)(lightningcss@1.30.2)(magicast@0.3.5)(optionator@0.9.4)(rolldown@1.0.0-beta.9)(rollup@4.52.5)(terser@5.44.0)(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))(yaml@2.8.1) + specifier: 4.1.0 + version: 4.1.0(@libsql/client@0.15.15)(@parcel/watcher@2.5.1)(@types/node@24.9.1)(@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.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)))(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))(eslint@9.38.0(jiti@2.6.1))(ioredis@5.8.2)(lightningcss@1.30.2)(magicast@0.3.5)(optionator@0.9.4)(rolldown@1.0.0-beta.9)(rollup@4.52.5)(terser@5.44.0)(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))(yaml@2.8.1) nuxt-auth-utils: specifier: ^0.5.25 version: 0.5.25(magicast@0.3.5) @@ -288,12 +288,6 @@ packages: '@drizzle-team/brocli@0.10.2': resolution: {integrity: sha512-z33Il7l5dKjUgGULTqBsQBQwckHh5AbIuxhdsIxDDiZAzBOrZO6q9ogcWC65kU382AfynTfgNumVcNIjuIua6w==} - '@dxup/nuxt@0.2.0': - resolution: {integrity: sha512-tUS2040HEiGwjwZ8hTczfuRoiXSOuA+ATPXO9Bllf03nHHj1lSlmaAyVJHFsSXL5Os5NZqimNAZ1iDed7VElzA==} - - '@dxup/unimport@0.1.0': - resolution: {integrity: sha512-6Q/Po8qGmlrShdG/R9+rpIhme9N/PGJumpvmwr1UAxGpt9DfOCt9kF8+yJkxhtPdJFL37KgUILZBRAkSU8cJZg==} - '@emnapi/core@1.5.0': resolution: {integrity: sha512-sbP8GzB1WDzacS8fgNPpHlp6C9VZe+SJP3F90W9rLemaQj2PzIuTEl1qDOYQf58YIpyjViI24y9aPWCjEzY2cg==} @@ -991,15 +985,17 @@ packages: resolution: {integrity: sha512-+QiqO0WcIxsKLUqXdVn3m4rzTRm2fO9MZgd330utCAaagGmHsgiMJp67kE14boJEPutnikfz3qOmrzBnDIHUUg==} engines: {node: '>=18.12.0'} + '@nuxt/kit@4.1.0': + resolution: {integrity: sha512-QY6wgano7szNP5hLUKNeZTLdx009F2n+a8L9M4Wzk1jhubvENc81jLWHAnaJOogRpqMeEqZcjHRfqTx+J1/lfQ==} + engines: {node: '>=18.12.0'} + '@nuxt/kit@4.2.0': resolution: {integrity: sha512-1yN3LL6RDN5GjkNLPUYCbNRkaYnat6hqejPyfIBBVzrWOrpiQeNMGxQM/IcVdaSuBJXAnu0sUvTKXpXkmPhljg==} engines: {node: '>=18.12.0'} - '@nuxt/nitro-server@4.2.0': - resolution: {integrity: sha512-1fZwAV+VTQwmPVUYKH+eoeB+3jPE+c/mreK3PpuY6vvrIDuMh9L4QIeLFB0fIcY2MJ4XkvjU/5w3B9uu3GR9yQ==} - engines: {node: ^20.19.0 || >=22.12.0} - peerDependencies: - nuxt: ^4.2.0 + '@nuxt/schema@4.1.0': + resolution: {integrity: sha512-LvcsO7XIYD+rqjxsjaBHUyOgN2Vw8MCF4rvuF09P/UqEogbck94zrwzSTYk6FVU7K6eQO/egvefanGMj/nPkMg==} + engines: {node: ^14.18.0 || >=16.10.0} '@nuxt/schema@4.2.0': resolution: {integrity: sha512-YMbgpEyPokgOYME6BvY8Okk7GAIwhEFYzrkkkoU9IVgu0tKWetYRrjUwbd0eICqPm9EWDBQl5tTTNJ8xCndVbw==} @@ -1038,19 +1034,14 @@ packages: zod: optional: true - '@nuxt/vite-builder@4.2.0': - resolution: {integrity: sha512-pNHIoO8kiSsOnoMo2zmxy0mk71ZBP4KJCiXr7Ahq8ewOm4W4vFQ1NV1O46wJGZyxlPC6nqFuYBvcUwVp1LgTNg==} + '@nuxt/vite-builder@4.1.0': + resolution: {integrity: sha512-eya04QZ+j6n+Ru3zyYDGrXGKuBdgBro2FrDiQl5faKK9fK4dqNYuBGeYNKmBHNZg6fOnUUEaGrZmK/EfrLBmcw==} engines: {node: ^20.19.0 || >=22.12.0} peerDependencies: - nuxt: 4.2.0 - rolldown: ^1.0.0-beta.38 vue: ^3.3.4 - peerDependenciesMeta: - rolldown: - optional: true - '@nuxthub/core-nightly@1.0.0-20251028-004316-83d4099': - resolution: {integrity: sha512-Uz6eB39dG2dm1MSfdMeDPSzb+Wdjw7cxXlbX2HPzt5v2HCxgRHKAlC1bsSHq6rppfZlcCvDT/e5kmNcgXTKGnw==} + '@nuxthub/core-nightly@1.0.0-20251101-232620-31e6b29': + resolution: {integrity: sha512-spg8CGGdaQZDX5NYRqG3vv3NXp42i5I7ovWrpImfkkt8m+SGqoiYjxuUbCH5F3MqckM+EjgJym4UCJ60trNYaA==} hasBin: true '@nuxtjs/color-mode@3.5.2': @@ -1063,531 +1054,279 @@ packages: resolution: {integrity: sha512-3giAOQvZiH5F9bMlMiv8+GSPMeqg0dbaeo58/0SlA9sxSqZhnUtxzX9/2FzyhS9sWQf5S0GJE0AKBrFqjpeYcg==} engines: {node: '>=8.0.0'} - '@oxc-minify/binding-android-arm64@0.95.0': - resolution: {integrity: sha512-ck0NakTt3oBWTMQjxKf5ZW1GzCs0y1kETzJdh8h8NAWTutlMfeWiuUxCgG4FMF4XiTnCdLq/dFAKFcdbiwcoqg==} - engines: {node: ^20.19.0 || >=22.12.0} + '@oxc-minify/binding-android-arm64@0.86.0': + resolution: {integrity: sha512-jOgbDgp6A1ax9sxHPRHBxUpxIzp2VTgbZ/6HPKIVUJ7IQqKVsELKFXIOEbCDlb1rUhZZtGf53MFypXf72kR5eQ==} + engines: {node: '>=14.0.0'} cpu: [arm64] os: [android] - '@oxc-minify/binding-darwin-arm64@0.72.3': - resolution: {integrity: sha512-F/QC1UnSfx5+dmWNLqm6EL1Yj1GpXtfRuZjwENtH/ULZZzPlKBxd4LSaH1GIncldk7zPQ60jtprnS53CRFcU1Q==} + '@oxc-minify/binding-darwin-arm64@0.86.0': + resolution: {integrity: sha512-LQkjIHhIzxVYnxfC2QV7MMe4hgqIbwK07j+zzEsNWWfdmWABw11Aa6FP0uIvERmoxstzsDT77F8c/+xhxswKiw==} engines: {node: '>=14.0.0'} cpu: [arm64] os: [darwin] - '@oxc-minify/binding-darwin-arm64@0.95.0': - resolution: {integrity: sha512-uvRkBVsh88DgMqddCIHcL1tKycKThfzLHNuBOm7csfpOD85TJimpl/1qAfrTCNrdaiteFK4U9QRKBdDvZay4RQ==} - engines: {node: ^20.19.0 || >=22.12.0} - cpu: [arm64] - os: [darwin] - - '@oxc-minify/binding-darwin-x64@0.72.3': - resolution: {integrity: sha512-LRhug/hQ19Lqf9P7K9jBiyTfwlOWsY1HTh2/Vo771NUUZkVNq9L8tkSQhg+u8tmcRjJTI5LkAK8nW751fLkZ7Q==} + '@oxc-minify/binding-darwin-x64@0.86.0': + resolution: {integrity: sha512-AuLkeXIvJ535qOhFzZfHBkcEZA59SN1vKUblW2oN+6ClZfIMru0I2wr0cCHA9QDxIVDkI7swDu29qcn2AqKdrg==} engines: {node: '>=14.0.0'} cpu: [x64] os: [darwin] - '@oxc-minify/binding-darwin-x64@0.95.0': - resolution: {integrity: sha512-SpDArHPKy/K9rduOCdlqz4BxFZte5Ad4/CPNaP0EaVTNbDW1OjBMrVOzRxr/bveWUbUJW3gbWby//YzXCese/w==} - engines: {node: ^20.19.0 || >=22.12.0} - cpu: [x64] - os: [darwin] - - '@oxc-minify/binding-freebsd-x64@0.72.3': - resolution: {integrity: sha512-/BDZAumYnSFeTsJU7mA9qZp6U93dVnlPlZ7YcqXYgFSZBkQsMe1gtzRfAZ6veJ7pB4L57h56JTTVBDQB1B4QpA==} + '@oxc-minify/binding-freebsd-x64@0.86.0': + resolution: {integrity: sha512-UcXLcM8+iHW1EL+peHHV1HDBFUVdoxFMJC7HBc2U83q9oiF/K73TnAEgW/xteR+IvbV/9HD+cQsH+DX6oBXoQg==} engines: {node: '>=14.0.0'} cpu: [x64] os: [freebsd] - '@oxc-minify/binding-freebsd-x64@0.95.0': - resolution: {integrity: sha512-U/ER7VsDCOv9HTE3rIZmNdN2ijZTT1vjDPPRsl9Z5Zyip2OsbHJxh4iNC00bO7qSw5keADuP4ooXsu2pjnfXNA==} - engines: {node: ^20.19.0 || >=22.12.0} - cpu: [x64] - os: [freebsd] - - '@oxc-minify/binding-linux-arm-gnueabihf@0.72.3': - resolution: {integrity: sha512-W6tbZwlCT4EZaAw5SyLeeDx1J2XPA9P3WhwotPBs3J7/vAFm+xWM+115sE4/PdqnEDaHG4lMBKF76XXihn9HpQ==} + '@oxc-minify/binding-linux-arm-gnueabihf@0.86.0': + resolution: {integrity: sha512-UtSplQY10Idp//cLS5i2rFaunS71padZFavHLHygNAxJBt+37DPKDl/4kddpV6Kv2Mr6bhw2KpXGAVs0C3dIOw==} engines: {node: '>=14.0.0'} cpu: [arm] os: [linux] - '@oxc-minify/binding-linux-arm-gnueabihf@0.95.0': - resolution: {integrity: sha512-g+u5Zg72J7G9DbjnCIO6BhHE4lSaODLFjArFq9sZWu4xi4QOYapGdNZVbQWrWjzGlKTvYOhH621ySMOc07O64g==} - engines: {node: ^20.19.0 || >=22.12.0} - cpu: [arm] - os: [linux] - - '@oxc-minify/binding-linux-arm-musleabihf@0.72.3': - resolution: {integrity: sha512-IMItUkn9b2bny5GCQWFkrfuM9lpW5kUpw/UEvqW9SrjrfBeof9I/76EGuvZluA99hhz+0BFDpdOr1hlQygKZ/A==} + '@oxc-minify/binding-linux-arm-musleabihf@0.86.0': + resolution: {integrity: sha512-P5efCOl9QiwqqJHrw1Q+4ssexvOz+MAmgTmBorbdEM3WJdIHR1CWGDj4GqcvKBlwpBqt4XilOuoN0QD8dfl85A==} engines: {node: '>=14.0.0'} cpu: [arm] os: [linux] - '@oxc-minify/binding-linux-arm-musleabihf@0.95.0': - resolution: {integrity: sha512-RqQctWyvgSVkJ+UMhDPLDjSO+YjAWFGoSfvikgEIvGrTVjFzXz20EDFSH+CR9J+mXsuJOku63VKmcAZr8Vd/Qg==} - engines: {node: ^20.19.0 || >=22.12.0} - cpu: [arm] - os: [linux] - - '@oxc-minify/binding-linux-arm64-gnu@0.72.3': - resolution: {integrity: sha512-DvzsxlcSG0IRGWCJTHMZXpSyng1RSTVBL5DyPCzD0OUMQaurJRs/NsVK7+zF95CtuSoiNp0wAX2cl7+v3YtnYw==} + '@oxc-minify/binding-linux-arm64-gnu@0.86.0': + resolution: {integrity: sha512-hwHahfs//g9iZLQmKldjQPmnpzq76eyHvfkmdnXXmPtwTHnwXL1hPlNbTIqakUirAsroBeQwXqzHm3I040R+mg==} engines: {node: '>=14.0.0'} cpu: [arm64] os: [linux] - '@oxc-minify/binding-linux-arm64-gnu@0.95.0': - resolution: {integrity: sha512-psrzacTaa5zmRXm2Skooj5YOZvueFZLOjNDAkwQcjIgrVAzl7uXtDCPq8soM46O12wGXMpDNUkrbD2BVcF+S9g==} - engines: {node: ^20.19.0 || >=22.12.0} - cpu: [arm64] - os: [linux] - - '@oxc-minify/binding-linux-arm64-musl@0.72.3': - resolution: {integrity: sha512-lc7A7eiQxf3slm/DR+DjJVGnjkw8Xnvi63PdaqHf4+8569n8u6FbcVpBzaW3ENxrYCilSdjMeVeSa8dW62SJ1g==} + '@oxc-minify/binding-linux-arm64-musl@0.86.0': + resolution: {integrity: sha512-S2dL24nxWqDCwrq48xlZBvhSIBcEWOu3aDOiaccP4q73PiTLrf6rm1M11J7vQNSRiH6ao9UKr7ZMsepCZcOyfA==} engines: {node: '>=14.0.0'} cpu: [arm64] os: [linux] - '@oxc-minify/binding-linux-arm64-musl@0.95.0': - resolution: {integrity: sha512-W5VWcOTIxH8bvIviiFreNHK5RkaNE7Y7hm0fxYa9pAdDe8U2OnD77JPPHmNSKYROaDa1ZsmXK1dAOnwGcxvv1w==} - engines: {node: ^20.19.0 || >=22.12.0} - cpu: [arm64] - os: [linux] - - '@oxc-minify/binding-linux-riscv64-gnu@0.72.3': - resolution: {integrity: sha512-OgACyiKTywSlXdegGnAJKMsya6+XcQQrCCJV77bdCQJJG3qpVwCEKplh4GXgoIHGiqQVgccHHImyeVgAEDpB8w==} + '@oxc-minify/binding-linux-riscv64-gnu@0.86.0': + resolution: {integrity: sha512-itZ24A1a5NOw0ibbt6EYOHdBojfV4vbiC209d06Dwv5WLXtntHCjc8P4yfrCsC22uDmMPNkVa+UL+OM4mkUrwg==} engines: {node: '>=14.0.0'} cpu: [riscv64] os: [linux] - '@oxc-minify/binding-linux-riscv64-gnu@0.95.0': - resolution: {integrity: sha512-FBAaIvTcRqdXDPZAsfEBc5nK3noZtEAO82090ne5EDsDNKu8u8sjLhXYJWM3AZFD6p7OPRqBby6N4pVicrk0dA==} - engines: {node: ^20.19.0 || >=22.12.0} - cpu: [riscv64] - os: [linux] - - '@oxc-minify/binding-linux-s390x-gnu@0.72.3': - resolution: {integrity: sha512-ZGAAgZ65LID/w4UN7rIZjWCb+BlGMpRQ1d6ujXG80dIZEns/Y5HIYBdDetnHA65KNiqR/dhokdvgIsGrtVB6wA==} + '@oxc-minify/binding-linux-s390x-gnu@0.86.0': + resolution: {integrity: sha512-/nJAwS/uit19qXNpaOybf7GYJI7modbXYVZ8q1pIFdxs6HkhZLxS1ZvcIzY3W75+37u+uKeZ4MbygawAN8kQpQ==} engines: {node: '>=14.0.0'} cpu: [s390x] os: [linux] - '@oxc-minify/binding-linux-s390x-gnu@0.95.0': - resolution: {integrity: sha512-7/OWwUC3r0/nPsHOCsTkgitdjpvDOwm8f4lE/Xeigt+9EcRcVuaSHRVOHI47mQ/cSL6V3AObVcmiAGysR36vEw==} - engines: {node: ^20.19.0 || >=22.12.0} - cpu: [s390x] - os: [linux] - - '@oxc-minify/binding-linux-x64-gnu@0.72.3': - resolution: {integrity: sha512-c2w3yyVvmoweH27JRmr87P49PgShsYsp9wEJqaLglHO9po3T2vg9cvuWQdolvFzOK5l6cIK9H6qWQ/iM14eXxQ==} + '@oxc-minify/binding-linux-x64-gnu@0.86.0': + resolution: {integrity: sha512-3qnWZB2cOj5Em/uEJqJ1qP/8lxtoi/Rf1U8fmdLzPW5zIaiTRUr/LklB4aJ+Vc/GU5g3HX5nFPQG3ZnEV3Ktzg==} engines: {node: '>=14.0.0'} cpu: [x64] os: [linux] - '@oxc-minify/binding-linux-x64-gnu@0.95.0': - resolution: {integrity: sha512-3K2lxzk679ml1vXJtO8Nt3xMD2trnDQWBb4Q676Un5g3dbaYf1WgTmEI13ZnCrwE5uBI02DFtFQplkLFqb9dGA==} - engines: {node: ^20.19.0 || >=22.12.0} - cpu: [x64] - os: [linux] - - '@oxc-minify/binding-linux-x64-musl@0.72.3': - resolution: {integrity: sha512-n1B/srkCowXBklgr+E5ASv7xav/y3Ipj0NlLGFIF++bfYXdz06jN4xQ7jwPxqBTq7UZcJ3s3VB+Qyua7qmgBcA==} + '@oxc-minify/binding-linux-x64-musl@0.86.0': + resolution: {integrity: sha512-+ZqYG8IQSRq9dR2djrnyzGHlmwGRKdueVjHYbEOwngb/4h/+FxAOaNUbsoUsCthAfXTrZHVXiQMTKJ32r7j2Bg==} engines: {node: '>=14.0.0'} cpu: [x64] os: [linux] - '@oxc-minify/binding-linux-x64-musl@0.95.0': - resolution: {integrity: sha512-DrxQAALZs/He11OlCWZrJGsdwGSAK61nkZxcl3MnO33mL54Qs/vI9AbI2lMtggU+xB2sNKbjKTTpTbCPHOmhTA==} - engines: {node: ^20.19.0 || >=22.12.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.95.0': - resolution: {integrity: sha512-PASXKqJyLHesNjTweXqkA3kG/hdjpauGb+REP5yZ4dr8gxu5DbMqk4QjsBmW3LjDF4tXXjRs8nHR6Qt2dhxTzA==} + '@oxc-minify/binding-wasm32-wasi@0.86.0': + resolution: {integrity: sha512-ixeSZW7jzd3g9fh8MoR9AzGLQxMCo//Q2mVpO2S/4NmcPtMaJEog85KzHULgUvbs70RqxTHEUqtVgpnc/5lMWA==} engines: {node: '>=14.0.0'} cpu: [wasm32] - '@oxc-minify/binding-win32-arm64-msvc@0.72.3': - resolution: {integrity: sha512-8zOQJWIllPVGLb+yG+B55QtGW2dbTiqbSe2aCAEAis1VROyQ68URH3OX4I70WOyFCQycKKFo95RjZkepaGfbIA==} + '@oxc-minify/binding-win32-arm64-msvc@0.86.0': + resolution: {integrity: sha512-cN309CnFVG8jeSRd+lQGnoMpZAVmz4bzH4fgqJM0NsMXVnFPGFceG/XiToLoBA1FigGQvkV0PJ7MQKWxBHPoUA==} engines: {node: '>=14.0.0'} cpu: [arm64] os: [win32] - '@oxc-minify/binding-win32-arm64-msvc@0.95.0': - resolution: {integrity: sha512-fPVQZWObqqBRYedFy/bOI0UzUZCqq6ra/PBZFqi31c5Zn73ETTseLYL7ebQqKgjv8l9gQPBIAFIoXYsaoxT72A==} - engines: {node: ^20.19.0 || >=22.12.0} - cpu: [arm64] - os: [win32] - - '@oxc-minify/binding-win32-x64-msvc@0.72.3': - resolution: {integrity: sha512-FqZ/NHt5wgM9TUI63//eVcgvLToWtzdm0XK1mVIvMVLsmuj2lQAC4TCiSyZqg7HqSoqun1PVeqwsFmRVhVjK6A==} + '@oxc-minify/binding-win32-x64-msvc@0.86.0': + resolution: {integrity: sha512-YAqCKtZ9KKhSW73d/Oa9Uut0myYnCEUL2D0buMjJ4p0PuK1PQsMCJsmX4ku0PgK31snanZneRwtEjjNFYNdX2A==} engines: {node: '>=14.0.0'} cpu: [x64] os: [win32] - '@oxc-minify/binding-win32-x64-msvc@0.95.0': - resolution: {integrity: sha512-mtCkksnBcO4dIxuj1n9THbMihV+zjO7ZIVCPOq54pylA+hTb/OHau3OV+XyU0pnmREGTuF9xV3BUKag1SYS/lQ==} - engines: {node: ^20.19.0 || >=22.12.0} - cpu: [x64] - os: [win32] - - '@oxc-parser/binding-android-arm64@0.95.0': - resolution: {integrity: sha512-dZyxhhvJigwWL1wgnLlqyEiSeuqO0WdDH9H+if0dPcBM4fKa5fjVkaUcJT1jBMcBTnkjxMwTXYZy5TK60N0fjg==} - engines: {node: ^20.19.0 || >=22.12.0} + '@oxc-parser/binding-android-arm64@0.86.0': + resolution: {integrity: sha512-BfNFEWpRo4gqLHKvRuQmhbPGeJqB1Ka/hsPhKf1imAojwUcf/Dr/yRkZBuEi2yc1LWBjApKYJEqpsBUmtqSY1Q==} + engines: {node: '>=20.0.0'} 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.95.0': - resolution: {integrity: sha512-zun9+V33kyCtNec9oUSWwb0qi3fB8pXwum1yGFECPEr55g/CrWju6/Jv4hwwNBeW2tK9Ch/PRstEtYmOLMhHpg==} - engines: {node: ^20.19.0 || >=22.12.0} + '@oxc-parser/binding-darwin-arm64@0.86.0': + resolution: {integrity: sha512-gRSnEHcyNEfLdNj6v8XKcuHUaZnRpH2lOZFztuGEi23ENydPOQVEtiZYexuHOTeaLGgzw+93TgB4n/YkjYodug==} + 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.95.0': - resolution: {integrity: sha512-9djMQ/t6Ns/UXtziwUe562uVJMbhtuLtCj+Xav+HMVT/rhV9gWO8PQOG7AwDLUBjJanItsrfqrGtqhNxtZ701w==} - engines: {node: ^20.19.0 || >=22.12.0} + '@oxc-parser/binding-darwin-x64@0.86.0': + resolution: {integrity: sha512-6mdymm8i+VpLTJP19D3PSFumMmAyfhhhIRWcRHsc0bL7CSZjCWbvRb00ActKrGKWtsol/A/KKgqglJwpvjlzOA==} + 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.95.0': - resolution: {integrity: sha512-GK6k0PgCVkkeRZtHgcosCYbXIRySpJpuPw/OInfLGFh8f3x9gp2l8Fbcfx+YO+ZOHFBCd2NNedGqw8wMgouxfA==} - engines: {node: ^20.19.0 || >=22.12.0} + '@oxc-parser/binding-freebsd-x64@0.86.0': + resolution: {integrity: sha512-mc2xYRPxhzFg4NX1iqfIWP+8ORtXiNpAkaomNDepegQFlIFUmrESa3IJrKJ/4vg77Tbti7omHbraOqwdTk849g==} + 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.95.0': - resolution: {integrity: sha512-+g/lFITtyHHEk69cunOHuiT5cX+mpUTcbGYNe8suguZ7FqgNwai+PnGv0ctCvtgxBPVfckfUK8c3RvFKo+vi/w==} - engines: {node: ^20.19.0 || >=22.12.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'} + '@oxc-parser/binding-linux-arm-gnueabihf@0.86.0': + resolution: {integrity: sha512-LZzapjFhwGQMKefcFsn3lJc/mTY37fBlm0jjEvETgNCyd5pH4gDwOcrp/wZHAz2qw5uLWOHaa69I6ci5lBjJgA==} + engines: {node: '>=20.0.0'} cpu: [arm] os: [linux] - '@oxc-parser/binding-linux-arm-musleabihf@0.95.0': - resolution: {integrity: sha512-SXNasDtPw8ycNV7VEvFxb4LETmykvWKUhHR7K3us818coXYpDj54P8WEx8hJobP/9skuuiFuKHmtYLdjX8wntA==} - engines: {node: ^20.19.0 || >=22.12.0} + '@oxc-parser/binding-linux-arm-musleabihf@0.86.0': + resolution: {integrity: sha512-/rhJMpng7/Qgn8hE4sigxTRb04+zdO0K1kfAMZ3nONphk5r2Yk2RjyEpLLz17adysCyQw/KndaMHNv8GR8VMNg==} + 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.95.0': - resolution: {integrity: sha512-0LzebARTU0ROfD6pDK4h1pFn+09meErCZ0MA2TaW08G72+GNneEsksPufOuI+9AxVSRa+jKE3fu0wavvhZgSkg==} - engines: {node: ^20.19.0 || >=22.12.0} - cpu: [arm64] - os: [linux] - - '@oxc-parser/binding-linux-arm64-musl@0.72.3': - resolution: {integrity: sha512-4DswiIK5dI7hFqcMKWtZ7IZnWkRuskh6poI1ad4gkY2p678NOGtl6uOGCCRlDmLOOhp3R27u4VCTzQ6zra977w==} - engines: {node: '>=14.0.0'} + '@oxc-parser/binding-linux-arm64-gnu@0.86.0': + resolution: {integrity: sha512-IXEZnk6O0zJg5gDn1Zvt5Qx62Z3E+ewrKwPgMfExqnNCLq+Ix2g7hQypevm/S6qxVgyz5HbiW+a/5ziMFXTCJQ==} + engines: {node: '>=20.0.0'} cpu: [arm64] os: [linux] - '@oxc-parser/binding-linux-arm64-musl@0.95.0': - resolution: {integrity: sha512-Pvi1lGe/G+mJZ3hUojMP/aAHAzHA25AEtVr8/iuz7UV72t/15NOgJYr9kELMUMNjPqpr3vKUgXTFmTtAxp11Qw==} - engines: {node: ^20.19.0 || >=22.12.0} + '@oxc-parser/binding-linux-arm64-musl@0.86.0': + resolution: {integrity: sha512-QG7DUVZ/AtBaUGMhgToB4glOdq0MGAEYU1MJQpNB5HqiEcOpteF9Pd+oPfscj2zrGPd47KNyljtJRBKJr6Ut0w==} + 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.95.0': - resolution: {integrity: sha512-pUEVHIOVNDfhk4sTlLhn6mrNENhE4/dAwemxIfqpcSyBlYG0xYZND1F3jjR2yWY6DakXZ6VSuDbtiv1LPNlOLw==} - engines: {node: ^20.19.0 || >=22.12.0} + '@oxc-parser/binding-linux-riscv64-gnu@0.86.0': + resolution: {integrity: sha512-smz+J6riX2du2lp0IKeZSaOBIhhoE2N/L1IQdOLCpzB0ikjCDBoyNKdDM7te8ZDq3KDnRmJChmhQGd8P1/LGBQ==} + 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.95.0': - resolution: {integrity: sha512-5+olaepHTE3J/+w7g0tr3nocvv5BKilAJnzj4L8tWBCLEZbL6olJcGVoldUO+3cgg1SO1xJywP5BuLhT0mDUDw==} - engines: {node: ^20.19.0 || >=22.12.0} + '@oxc-parser/binding-linux-s390x-gnu@0.86.0': + resolution: {integrity: sha512-vas1BOMWVdicuimmi5Y+xPj3csaYQquVA45Im9a/DtVsypVeh8RWYXBMO1qJNM5Fg5HD0QvYNqxvftx3c+f5pg==} + 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.95.0': - resolution: {integrity: sha512-8huzHlK/N98wrnYKxIcYsK8ZGBWomQchu/Mzi6m+CtbhjWOv9DmK0jQ2fUWImtluQVpTwS0uZT06d3g7XIkJrA==} - engines: {node: ^20.19.0 || >=22.12.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'} + '@oxc-parser/binding-linux-x64-gnu@0.86.0': + resolution: {integrity: sha512-3Fsi+JA3NwdZdrpC6AieOP48cuBrq0q59JgnR0mfoWfr9wHrbn2lt8EEubrj6EXpBUmu1Zii7S9NNRC6fl/d+w==} + engines: {node: '>=20.0.0'} cpu: [x64] os: [linux] - '@oxc-parser/binding-linux-x64-musl@0.95.0': - resolution: {integrity: sha512-bWnrLfGDcx/fab0+UQnFbVFbiykof/btImbYf+cI2pU/1Egb2x+OKSmM5Qt0nEUiIpM5fgJmYXxTopybSZOKYA==} - engines: {node: ^20.19.0 || >=22.12.0} + '@oxc-parser/binding-linux-x64-musl@0.86.0': + resolution: {integrity: sha512-89/d43EW76wJagz8u5zcKW8itB2rnS/uN7un5APb8Ebme8TePBwDyxo64J6oY5rcJYkfJ6lEszSF/ovicsNVPw==} + 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==} + '@oxc-parser/binding-wasm32-wasi@0.86.0': + resolution: {integrity: sha512-gRrGmE2L27stNMeiAucy/ffHF9VjYr84MizuJzSYnnKmd5WXf3HelNdd0UYSJnpb7APBuyFSN2Oato+Qb6yAFw==} engines: {node: '>=14.0.0'} cpu: [wasm32] - '@oxc-parser/binding-wasm32-wasi@0.95.0': - resolution: {integrity: sha512-0JLyqkZu1HnQIZ4e5LBGOtzqua1QwFEUOoMSycdoerXqayd4LK2b7WMfAx8eCIf+jGm1Uj6f3R00nlsx8g1faQ==} - 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.95.0': - resolution: {integrity: sha512-RWvaA6s1SYlBj9CxwHfNn0CRlkPdv9fEUAXfZkGQPdP5e1ppIaO2KYE0sUov/zzp9hPTMMsTMHl4dcIbb+pHCQ==} - engines: {node: ^20.19.0 || >=22.12.0} + '@oxc-parser/binding-win32-arm64-msvc@0.86.0': + resolution: {integrity: sha512-parTnpNviJYR3JIFLseDGip1KkYbhWLeuZG9OMek62gr6Omflddoytvb17s+qODoZqFAVjvuOmVipDdjTl9q3Q==} + 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.95.0': - resolution: {integrity: sha512-BQpgl7rDjFvCIHudmUR0dCwc4ylBYZl4CPVinlD3NhkMif4WD5dADckoo5ES/KOpFyvwcbKZX+grP63cjHi26g==} - engines: {node: ^20.19.0 || >=22.12.0} + '@oxc-parser/binding-win32-x64-msvc@0.86.0': + resolution: {integrity: sha512-FTso24eQh3vPTe/SOTf0/RXfjJ13tsk5fw728fm+z5y6Rb+mmEBfyVT6XxyGhEwtdfnRSZawheX74/9caI1etw==} + 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.95.0': - resolution: {integrity: sha512-vACy7vhpMPhjEJhULNxrdR0D943TkA/MigMpJCHmBHvMXxRStRi/dPtTlfQ3uDwWSzRpT8z+7ImjZVf8JWBocQ==} + '@oxc-project/types@0.86.0': + resolution: {integrity: sha512-bJ57vWNQnOnUe5ZxUkrWpLyExxqb0BoyQ+IRmI/V1uxHbBNBzFGMIjKIf5ECFsgS0KgUUl8TM3a4xpeAtAnvIA==} - '@oxc-transform/binding-android-arm64@0.95.0': - resolution: {integrity: sha512-eW+BCgRWOsMrDiz7FEV7BjAmaF9lGIc2ueGdRUYjRUMq4f5FSGS7gMBTYDxajdoIB3L5Gnksh1CWkIlgg95UVA==} - engines: {node: ^20.19.0 || >=22.12.0} + '@oxc-transform/binding-android-arm64@0.86.0': + resolution: {integrity: sha512-025JJoCWi04alNef6WvLnGCbx2MH9Ld2xvr0168bpOcpBjxt8sOZawu0MPrZQhnNWWiX8rrwrhuUDasWCWHxFw==} + engines: {node: '>=14.0.0'} cpu: [arm64] os: [android] - '@oxc-transform/binding-darwin-arm64@0.72.3': - resolution: {integrity: sha512-TfCD0OJvZUummYr127gshEETLtPVi9y48HTxd3FtZ0931Ys2a9lr1zVRmASRLbhgudyfvC3/kLcH5Zp1VGFdxg==} + '@oxc-transform/binding-darwin-arm64@0.86.0': + resolution: {integrity: sha512-dJls3eCO1Y2dc4zAdA+fiRbQwlvFFDmfRHRpGOllwS1FtvKQ7dMkRFKsHODEdxWakxISLvyabUmkGOhcJ47Dog==} engines: {node: '>=14.0.0'} cpu: [arm64] os: [darwin] - '@oxc-transform/binding-darwin-arm64@0.95.0': - resolution: {integrity: sha512-OUUaYZVss8tyDZZ7TGr2vnH3+i3Ouwsx0frQRGkiePNatXxaJJ3NS5+Kwgi9hh3WryXaQz2hWji4AM2RHYE7Cg==} - engines: {node: ^20.19.0 || >=22.12.0} - cpu: [arm64] - os: [darwin] - - '@oxc-transform/binding-darwin-x64@0.72.3': - resolution: {integrity: sha512-7atxxYqDg6Jx2V/05pomROFfTuqZTVZjPJINBAmq2/hf6U7VzoSn/knwvRLUi6GFW9GcJodBCy609wcJNpsPQw==} + '@oxc-transform/binding-darwin-x64@0.86.0': + resolution: {integrity: sha512-udMZFZn6FEy36tVMs/yrczEqWyCJc+l/lqIMS4xYWsm/6qVafUWDSAZJLgcPilng16IdMnHINkc8NSz7Pp1EVw==} engines: {node: '>=14.0.0'} cpu: [x64] os: [darwin] - '@oxc-transform/binding-darwin-x64@0.95.0': - resolution: {integrity: sha512-49UPEgIlgWUndwcP3LH6dvmOewZ92DxCMpFMo11JhUlmNJxA3sjVImEBRB56/tJ+XF+xnya9kB1oCW4yRY+mRw==} - engines: {node: ^20.19.0 || >=22.12.0} - cpu: [x64] - os: [darwin] - - '@oxc-transform/binding-freebsd-x64@0.72.3': - resolution: {integrity: sha512-lHORAYfapKWomKe9GOuJwYZFnSmDsPcD3/zIP2rs2ECwhobXqXIKvEEe6XvuemK3kUyQVC1I6fbFE3vBYReYjw==} + '@oxc-transform/binding-freebsd-x64@0.86.0': + resolution: {integrity: sha512-41J5qSlypbE0HCOd+4poFD96+ZKoR8sfDn5qdaU0Hc5bT5Drwat/wv06s9Y5Lu86uXYTwPPj6kbbxHHsiV2irw==} engines: {node: '>=14.0.0'} cpu: [x64] os: [freebsd] - '@oxc-transform/binding-freebsd-x64@0.95.0': - resolution: {integrity: sha512-lNKrHKaDEm8pbKlVbn0rv2L97O0lbA0Tsrxx4GF/HhmdW+NgwGU1pMzZ4tB2QcylbqgKxOB+v9luebHyh1jfgA==} - engines: {node: ^20.19.0 || >=22.12.0} - cpu: [x64] - os: [freebsd] - - '@oxc-transform/binding-linux-arm-gnueabihf@0.72.3': - resolution: {integrity: sha512-TklLVfKgzisN5VN/pKPkSulAabPM+sBz86SGxehGr0z1q1ThgNR7Ds7Jp/066htd+lMBvTVQ21j1cWQEs1/b3g==} + '@oxc-transform/binding-linux-arm-gnueabihf@0.86.0': + resolution: {integrity: sha512-mrI+nKgwRsr4FYjb0pECrNTVnNvHAflukS3SFqFHI8n+3LJgrCYDcnbrFD/4VWKp2EUrkIZ//RhwgGsTiSXbng==} engines: {node: '>=14.0.0'} cpu: [arm] os: [linux] - '@oxc-transform/binding-linux-arm-gnueabihf@0.95.0': - resolution: {integrity: sha512-+VWcLeeizI8IjU+V+o8AmzPuIMiTrGr0vrmXU3CEsV05MrywCuJU+f6ilPs3JBKno9VIwqvRpHB/z39sQabHWg==} - engines: {node: ^20.19.0 || >=22.12.0} - cpu: [arm] - os: [linux] - - '@oxc-transform/binding-linux-arm-musleabihf@0.72.3': - resolution: {integrity: sha512-pF+Zx0zoZ5pP9vmCwEJrgv363c7RDFJ1p0gB6NpVaEzlANR2xyEpdXZAm/aDCcBmVJP1TBBT3/SeSpUrW0XjGw==} + '@oxc-transform/binding-linux-arm-musleabihf@0.86.0': + resolution: {integrity: sha512-FXWyvpxiEXBewA3L6HGFtEribqFjGOiounD8ke/4C1F5134+rH5rNrgK6vY116P4MtWKfZolMRdvlzaD3TaX0A==} engines: {node: '>=14.0.0'} cpu: [arm] os: [linux] - '@oxc-transform/binding-linux-arm-musleabihf@0.95.0': - resolution: {integrity: sha512-a59xPw84t6VwlvNEGcmuw3feGcKcWOC7uB8oePJ/BVSAV1yayLoB3k6JASwLTZ7N/PNPNUhcw1jDxowgAfBJfg==} - engines: {node: ^20.19.0 || >=22.12.0} - cpu: [arm] - os: [linux] - - '@oxc-transform/binding-linux-arm64-gnu@0.72.3': - resolution: {integrity: sha512-p4GD2rkN8dAWlW7gsKNliSn7C5aou76RFrKYk3OkquMIKzaN1zScu47fjxUZQo0SBamOIxdy7DLmgP/B2kamlg==} + '@oxc-transform/binding-linux-arm64-gnu@0.86.0': + resolution: {integrity: sha512-gktU/9WLAc0d2hAq8yRi3K92xwkWoDt1gJmokMOfb1FU4fyDbzbt13jdZEd6KVn2xLaiQeaFTTfFTghFsJUM3A==} engines: {node: '>=14.0.0'} cpu: [arm64] os: [linux] - '@oxc-transform/binding-linux-arm64-gnu@0.95.0': - resolution: {integrity: sha512-NLdrFuEHlmbiC1M1WESFV4luUcB/84GXi+cbnRXhgMjIW/CThRVJ989eTJy59QivkVlLcJSKTiKiKCt0O6TTlQ==} - engines: {node: ^20.19.0 || >=22.12.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==} + '@oxc-transform/binding-linux-arm64-musl@0.86.0': + resolution: {integrity: sha512-2w5e5qiTBYQ0xc1aSY1GNyAOP9BQFEjN43FI3OhrRWZXHOj3inqcVSlptO/hHGK3Q2bG26kWLfSNFOEylTX39A==} engines: {node: '>=14.0.0'} cpu: [arm64] os: [linux] - '@oxc-transform/binding-linux-arm64-musl@0.95.0': - resolution: {integrity: sha512-GL0ffCPW8JlFI0/jeSgCY665yDdojHxA0pbYG+k8oEHOWCYZUZK9AXL+r0oerNEWYJ8CRB+L5Yq87ZtU/YUitw==} - engines: {node: ^20.19.0 || >=22.12.0} - cpu: [arm64] - os: [linux] - - '@oxc-transform/binding-linux-riscv64-gnu@0.72.3': - resolution: {integrity: sha512-YL8dil5j0Fgzm1swZ1V0gvYP/fxG5K0jsPB8uGbkdKEKtGc0hTZgNIIoA8UvQ0YwXWTc1D6p4Q1+boiKK9b7iA==} + '@oxc-transform/binding-linux-riscv64-gnu@0.86.0': + resolution: {integrity: sha512-PfnTYm+vQ9X5VNXqs0Z3S67Xp2FoZj5RteYKUNwL+j/sxGi05eps+EWLVrcGsuN9x2GHFpTiqBz3lzERCn2USg==} engines: {node: '>=14.0.0'} cpu: [riscv64] os: [linux] - '@oxc-transform/binding-linux-riscv64-gnu@0.95.0': - resolution: {integrity: sha512-tbH7LaClSmN3YFVo1UjMSe7D6gkb5f+CMIbj9i873UUZomVRmAjC4ygioObfzM+sj/tX0WoTXx5L1YOfQkHL6Q==} - engines: {node: ^20.19.0 || >=22.12.0} - cpu: [riscv64] - os: [linux] - - '@oxc-transform/binding-linux-s390x-gnu@0.72.3': - resolution: {integrity: sha512-CLIm+fiv0pOB1fXlckXoGzImlqDX/beCYwGAveFbHnQ/ACmzeUzb1eLXEXLiMGqFQDH4QJBZoEaUdxXWSoo1zg==} + '@oxc-transform/binding-linux-s390x-gnu@0.86.0': + resolution: {integrity: sha512-uHgGN0rFfqDcdkLUITshqrpV34PRKAiRwsw6Jgkg7CRcRGIU8rOJc568EU0jfhTZ1zO5MJKt/S8D6cgIFJwe0A==} engines: {node: '>=14.0.0'} cpu: [s390x] os: [linux] - '@oxc-transform/binding-linux-s390x-gnu@0.95.0': - resolution: {integrity: sha512-8jMqiURWa0iTiPMg7BWaln89VdhhWzNlPyKM90NaFVVhBIKCr2UEhrQWdpBw/E9C8uWf/4VabBEhfPMK+0yS4w==} - engines: {node: ^20.19.0 || >=22.12.0} - cpu: [s390x] - os: [linux] - - '@oxc-transform/binding-linux-x64-gnu@0.72.3': - resolution: {integrity: sha512-MxMhnyU4D0a1Knv8JXLPB38yEYx2P+IAk+WJ+lJHBncTkkPQvOaEv/QQcSyr2vHSKJuyav16U4B1ZtAHlZcq6A==} + '@oxc-transform/binding-linux-x64-gnu@0.86.0': + resolution: {integrity: sha512-MtrvfU2RkSD+oTnzG4Xle3jK8FXJPQa1MhYQm0ivcAMf0tUQDojTaqBtM/9E0iFr/4l1xZODJOHCGjLktdpykg==} engines: {node: '>=14.0.0'} cpu: [x64] os: [linux] - '@oxc-transform/binding-linux-x64-gnu@0.95.0': - resolution: {integrity: sha512-D5ULJ2uWipsTgfvHIvqmnGkCtB3Fyt2ZN7APRjVO+wLr+HtmnaWddKsLdrRWX/m/6nQ2xQdoQekdJrokYK9LtQ==} - engines: {node: ^20.19.0 || >=22.12.0} - cpu: [x64] - os: [linux] - - '@oxc-transform/binding-linux-x64-musl@0.72.3': - resolution: {integrity: sha512-xUXHOWmrxWpDn86IUkLVNEZ3HkAnKZsgRQ+UoYmiaaWRcoCFtfnKETNYjkuWtW8lU00KT00llqptnPfhV7WdWw==} + '@oxc-transform/binding-linux-x64-musl@0.86.0': + resolution: {integrity: sha512-wTTTIPcnoS04SRJ7HuOL/VxIu1QzUtv2n6Mx0wPIEQobj2qPGum0qYGnFEMU0Njltp+8FAUg5EfX6u3udRQBbQ==} engines: {node: '>=14.0.0'} cpu: [x64] os: [linux] - '@oxc-transform/binding-linux-x64-musl@0.95.0': - resolution: {integrity: sha512-DmCGU+FzRezES5wVAGVimZGzYIjMOapXbWpxuz8M8p3nMrfdBEQ5/tpwBp2vRlIohhABy4vhHJByl4c64ENCGQ==} - engines: {node: ^20.19.0 || >=22.12.0} - cpu: [x64] - os: [linux] - - '@oxc-transform/binding-wasm32-wasi@0.72.3': - resolution: {integrity: sha512-JdxNYpR/gXz4rnDxYTToHDCCJEW9+RmBvAL/pQPGHf26xHmE7vXtxqI3Mbw6jS57pTvC6FA8Cx3PMb3UJ+nEEg==} + '@oxc-transform/binding-wasm32-wasi@0.86.0': + resolution: {integrity: sha512-g+0bf+ZA2DvBHQ+0u8TvEY8ERo86Brqvdghfv06Wph2qGTlhzSmrE0c0Zurr7yhtqI5yZjMaBr2HbqwW1kHFng==} engines: {node: '>=14.0.0'} cpu: [wasm32] - '@oxc-transform/binding-wasm32-wasi@0.95.0': - resolution: {integrity: sha512-tSo1EU4Whd1gXyae7cwSDouhppkuz6Jkd5LY8Uch9VKsHVSRhDLDW19Mq6VSwtyPxDPTJnJ2jYJWm+n8SYXiXQ==} - engines: {node: '>=14.0.0'} - cpu: [wasm32] - - '@oxc-transform/binding-win32-arm64-msvc@0.72.3': - resolution: {integrity: sha512-DAKJgdMLsQvOuSwT7jjse0dOiqYj+QJc76wUogg1C/C3ub6PtvNLiCzrXkTnJ+C47dFozaxvSyEZnSXkorF0Kg==} + '@oxc-transform/binding-win32-arm64-msvc@0.86.0': + resolution: {integrity: sha512-dgBeU4qBEag0rhW3OT9YHgj4cvW51KZzrxhDQ1gAVX2fqgl+CeJnu0a9q+DMhefHrO3c8Yxwbt7NxUDmWGkEtg==} engines: {node: '>=14.0.0'} cpu: [arm64] os: [win32] - '@oxc-transform/binding-win32-arm64-msvc@0.95.0': - resolution: {integrity: sha512-6eaxlgj+J5n8zgJTSugqdPLBtKGRqvxYLcvHN8b+U9hVhF/2HG/JCOrcSYV/XgWGNPQiaRVzpR3hGhmFro9QTw==} - engines: {node: ^20.19.0 || >=22.12.0} - cpu: [arm64] - os: [win32] - - '@oxc-transform/binding-win32-x64-msvc@0.72.3': - resolution: {integrity: sha512-BmSG7DkjV7C5votwwB8bP8qpkRjavLRQPFsAuvyCcc6gnEPeIvdWSPDZXk39YMe00Nm3wQ2oNRa7hgwDMatTvw==} + '@oxc-transform/binding-win32-x64-msvc@0.86.0': + resolution: {integrity: sha512-M1eCl8xz7MmEatuqWdr+VdvNCUJ+d4ECF+HND39PqRCVkaH+Vl1rcyP5pLILb2CB/wTb2DMvZmb9RCt5+8S5TQ==} engines: {node: '>=14.0.0'} cpu: [x64] os: [win32] - '@oxc-transform/binding-win32-x64-msvc@0.95.0': - resolution: {integrity: sha512-Y8JY79A7fTuBjEXZFu+mHbHzgsV3uJDUuUKeGffpOwI1ayOGCKeBJTiMhksYkiir1xS+DkGLEz73+xse9Is9rw==} - engines: {node: ^20.19.0 || >=22.12.0} - cpu: [x64] - os: [win32] - '@parcel/watcher-android-arm64@2.5.1': resolution: {integrity: sha512-KF8+j9nNbUN8vzOFDpRMsaKBHZ/mcjEjMToVMJOhTozkDonQFFrRcfdLWn6yWKCmJKmdVxSgHiYvTCef4/qcBA==} engines: {node: '>= 10.0.0'} @@ -2541,9 +2280,9 @@ packages: '@volar/typescript@2.4.23': resolution: {integrity: sha512-lAB5zJghWxVPqfcStmAP1ZqQacMpe90UrP5RJ3arDyrhy4aCUQqmxPPLB2PWDKugvylmO41ljK7vZ+t6INMTag==} - '@vue-macros/common@3.1.1': - resolution: {integrity: sha512-afW2DMjgCBVs33mWRlz7YsGHzoEEupnl0DK5ZTKsgziAlLh5syc5m+GM7eqeYrgiQpwMaVxa1fk73caCvPxyAw==} - engines: {node: '>=20.19.0'} + '@vue-macros/common@3.0.0-beta.16': + resolution: {integrity: sha512-8O2gWxWFiaoNkk7PGi0+p7NPGe/f8xJ3/INUufvje/RZOs7sJvlI1jnR4lydtRFa/mU0ylMXUXXjSK0fHDEYTA==} + engines: {node: '>=20.18.0'} peerDependencies: vue: ^2.7.0 || ^3.2.25 peerDependenciesMeta: @@ -3452,6 +3191,10 @@ packages: resolution: {integrity: sha512-+CHgPFzuoTQTt7cOYCV6MOw2w8vqEn/ap1yv4bpZOWL03u7rlVRQhUY0WYT3rHsgVTXwYQDZaSUJSQrMBUKuWg==} hasBin: true + drizzle-kit@0.31.6: + resolution: {integrity: sha512-/B4e/4pwnx25QwD5xXgdpo1S+077a2VZdosXbItE/oNmUgQwZydGDz9qJYmnQl/b+5IX0rLfwRhrPnroGtrg8Q==} + hasBin: true + drizzle-orm@0.44.7: resolution: {integrity: sha512-quIpnYznjU9lHshEOAYLoZ9s3jweleHlZIAWR/jX9gAWNg/JhQ1wj0KGRf7/Zm+obRrYd9GjPVJg790QY9N5AQ==} peerDependencies: @@ -3544,15 +3287,6 @@ 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==} @@ -4993,8 +4727,8 @@ packages: nuxt-charts@0.2.4: resolution: {integrity: sha512-CCSK8mhbLcmsEt+nzBMiH/JAQ/L+e0Cmg87lOwLehjlJ23rMyBcajF2Fn9fqwx6nQv2PT1MFDlTVHoAsAMYnWA==} - nuxt@4.2.0: - resolution: {integrity: sha512-4qzf2Ymf07dMMj50TZdNZgMqCdzDch8NY3NO2ClucUaIvvsr6wd9+JrDpI1CckSTHwqU37/dIPFpvIQZoeHoYA==} + nuxt@4.1.0: + resolution: {integrity: sha512-bnHWcztOrxjBMcoiqO51cVR0kzycohTazrdEVgL2I6U5gCX3R63XWP+PQ2itO/DCdZPP5i9ZF9HsJGXYbc5w/g==} engines: {node: ^20.19.0 || >=22.12.0} hasBin: true peerDependencies: @@ -5014,19 +4748,15 @@ 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==} ohash@2.0.11: resolution: {integrity: sha512-RdR9FQrFwNBNXAr4GixM8YaRZRJ5PUWbKYbE5eOsrwAjJW0q2REGcf79oYPsLyskQCZG1PLN+S/K1V00joZAoQ==} - on-change@6.0.0: - resolution: {integrity: sha512-J7kocOS+ZNyjmW6tUUTtA7jLt8GjQlrOdz9z3yLNTvdsswO+b5lYSdMVzDczWnooyFAkkQiKyap5g/Zba+cFRA==} - engines: {node: '>=20'} + on-change@5.0.1: + resolution: {integrity: sha512-n7THCP7RkyReRSLkJb8kUWoNsxUIBxTkIp3JKno+sEz6o/9AJ3w3P9fzQkITEkMwyTKJjZciF3v/pVoouxZZMg==} + engines: {node: '>=18'} on-finished@2.4.1: resolution: {integrity: sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==} @@ -5060,32 +4790,20 @@ 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==} + oxc-minify@0.86.0: + resolution: {integrity: sha512-pjtM94KElw/RxF3R1ls1ADcBUyZcrCgn0qeL4nD8cOotfzeVFa0xXwQQeCkk+5GPiOqdRApNFuJvK//lQgpqJw==} engines: {node: '>=14.0.0'} - oxc-minify@0.95.0: - resolution: {integrity: sha512-3k//447vscNk5JZXVnr2qv0QONjUU7F8Y6ewAPFVQNgdvYh3gCLYCRjQ/DR5kVkqxFgVa8R/FFBV3X5jlztSzw==} - engines: {node: ^20.19.0 || >=22.12.0} - - oxc-parser@0.72.3: - resolution: {integrity: sha512-JYQeJKDcUTTZ/uTdJ+fZBGFjAjkLD1h0p3Tf44ZYXRcoMk+57d81paNPFAAwzrzzqhZmkGvKKXDxwyhJXYZlpg==} - engines: {node: '>=14.0.0'} - - oxc-parser@0.95.0: - resolution: {integrity: sha512-Te8fE/SmiiKWIrwBwxz5Dod87uYvsbcZ9JAL5ylPg1DevyKgTkxCXnPEaewk1Su2qpfNmry5RHoN+NywWFCG+A==} - engines: {node: ^20.19.0 || >=22.12.0} + oxc-parser@0.86.0: + resolution: {integrity: sha512-v9+uomgqyLSxlq3qlaMqJJtXg2+rUsa368p/zkmgi5OMGmcZAtZt5GIeSVFF84iNET+08Hdx/rUtd/FyIdfNFQ==} + engines: {node: '>=20.0.0'} - oxc-transform@0.72.3: - resolution: {integrity: sha512-n9nf9BgUEA0j+lplu2XLgNuBAdruS5xgja/AWWr5eZ7RBRDgYQ/G1YJatn1j63dI4TCUpZVPx0BjESz+l/iuyA==} + oxc-transform@0.86.0: + resolution: {integrity: sha512-Ghgm/zzjPXROMpljLy4HYBcko/25sixWi2yJQJ6rDu/ltgFB1nEQ4JYCYV5F+ENt0McsJkcgmX5I4dRfDViyDA==} engines: {node: '>=14.0.0'} - oxc-transform@0.95.0: - resolution: {integrity: sha512-SmS5aThb5K0SoUZgzGbikNBjrGHfOY4X5TEqBlaZb1uy5YgXbUSbpakpZJ13yW36LNqy8Im5+y+sIk5dlzpZ/w==} - engines: {node: ^20.19.0 || >=22.12.0} - - oxc-walker@0.5.2: - resolution: {integrity: sha512-XYoZqWwApSKUmSDEFeOKdy3Cdh95cOcSU8f7yskFWE4Rl3cfL5uwyY+EV7Brk9mdNLy+t5SseJajd6g7KncvlA==} + oxc-walker@0.4.0: + resolution: {integrity: sha512-x5TJAZQD3kRnRBGZ+8uryMZUwkTYddwzBftkqyJIcmpBOXmoK/fwriRKATjZroR2d+aS7+2w1B0oz189bBTwfw==} peerDependencies: oxc-parser: '>=0.72.0' @@ -5668,22 +5386,6 @@ packages: robust-predicates@3.0.2: resolution: {integrity: sha512-IXgzBWvWQwE6PrDI05OvmXUIruQTcoMDzRsOd5CDvHCVLcLHMTSYvOK5Cm46kWqlV3yAbuSpBZdJ5oP5OUoStg==} - 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 @@ -5763,10 +5465,6 @@ packages: serialize-javascript@6.0.2: resolution: {integrity: sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==} - seroval@1.3.2: - resolution: {integrity: sha512-RbcPH1n5cfwKrru7v7+zrZvjLurgHhGyso3HTyGtRivGWgYjbOmGuivCQaORNELjNONoK35nj28EoWul9sb1zQ==} - engines: {node: '>=10'} - serve-placeholder@2.0.2: resolution: {integrity: sha512-/TMG8SboeiQbZJWRlfTCqMs2DD3SZgWp0kDQePz9yUuCnDfDh/92gf7/PxGhzXTKBIPASIHxFcZndoNbp6QOLQ==} @@ -6065,6 +5763,10 @@ packages: tinyexec@1.0.1: resolution: {integrity: sha512-5uC6DDlmeqiOwCPmK9jMSdOuZTh8bU39Ys6yidB+UTt5hfZUPGAypSgFRiEp+jbi9qH40BLDvy85jIU88wKSqw==} + tinyglobby@0.2.14: + resolution: {integrity: sha512-tX5e7OM1HnYr2+a2C/4V0htOcSQcoSTH9KgJnVvNm5zm/cyEWKJ7j7YutsH9CxMdtOkkLFy2AHrMci9IM8IPZQ==} + engines: {node: '>=12.0.0'} + tinyglobby@0.2.15: resolution: {integrity: sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ==} engines: {node: '>=12.0.0'} @@ -6248,11 +5950,11 @@ packages: '@nuxt/kit': optional: true - unplugin-vue-router@0.16.0: - resolution: {integrity: sha512-yFmUQoN07KABkbxMSaNvfjnflwSi3nkSVKi7v6FTwXlzXyRDSx63vQ8Se4ho0T9Ao9I8U5FJB12fzmrGxFB0CA==} + unplugin-vue-router@0.15.0: + resolution: {integrity: sha512-PyGehCjd9Ny9h+Uer4McbBjjib3lHihcyUEILa7pHKl6+rh8N7sFyw4ZkV+N30Oq2zmIUG7iKs3qpL0r+gXAaQ==} peerDependencies: '@vue/compiler-sfc': ^3.5.17 - vue-router: ^4.6.0 + vue-router: ^4.5.1 peerDependenciesMeta: vue-router: optional: true @@ -6382,18 +6084,17 @@ packages: engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0} hasBin: true - vite-plugin-checker@0.11.0: - resolution: {integrity: sha512-iUdO9Pl9UIBRPAragwi3as/BXXTtRu4G12L3CMrjx+WVTd9g/MsqNakreib9M/2YRVkhZYiTEwdH2j4Dm0w7lw==} - engines: {node: '>=16.11'} + vite-plugin-checker@0.10.3: + resolution: {integrity: sha512-f4sekUcDPF+T+GdbbE8idb1i2YplBAoH+SfRS0e/WRBWb2rYb1Jf5Pimll0Rj+3JgIYWwG2K5LtBPCXxoibkLg==} + engines: {node: '>=14.16'} peerDependencies: '@biomejs/biome': '>=1.7' eslint: '>=7' meow: ^13.2.0 optionator: ^0.9.4 - oxlint: '>=1' stylelint: '>=16' typescript: '*' - vite: '>=5.4.20' + vite: '>=2.0.0' vls: '*' vti: '*' vue-tsc: ~2.2.10 || ^3.0.0 @@ -6406,8 +6107,6 @@ packages: optional: true optionator: optional: true - oxlint: - optional: true stylelint: optional: true typescript: @@ -6909,18 +6608,6 @@ snapshots: '@drizzle-team/brocli@0.10.2': {} - '@dxup/nuxt@0.2.0(magicast@0.3.5)': - dependencies: - '@dxup/unimport': 0.1.0 - '@nuxt/kit': 4.2.0(magicast@0.3.5) - chokidar: 4.0.3 - pathe: 2.0.3 - tinyglobby: 0.2.15 - transitivePeerDependencies: - - magicast - - '@dxup/unimport@0.1.0': {} - '@emnapi/core@1.5.0': dependencies: '@emnapi/wasi-threads': 1.1.0 @@ -7765,7 +7452,7 @@ snapshots: transitivePeerDependencies: - magicast - '@nuxt/kit@4.2.0(magicast@0.3.5)': + '@nuxt/kit@4.1.0(magicast@0.3.5)': dependencies: c12: 3.3.1(magicast@0.3.5) consola: 3.4.2 @@ -7783,75 +7470,48 @@ snapshots: rc9: 2.1.2 scule: 1.3.0 semver: 7.7.3 + std-env: 3.10.0 tinyglobby: 0.2.15 ufo: 1.6.1 unctx: 2.4.1 + unimport: 4.1.1 untyped: 2.0.0 transitivePeerDependencies: - magicast - '@nuxt/nitro-server@4.2.0(b4c0def27a33c6f3dab5838788004f3c)': + '@nuxt/kit@4.2.0(magicast@0.3.5)': dependencies: - '@nuxt/devalue': 2.0.2 - '@nuxt/kit': 4.2.0(magicast@0.3.5) - '@unhead/vue': 2.0.19(vue@3.5.22(typescript@5.9.3)) - '@vue/shared': 3.5.22 + c12: 3.3.1(magicast@0.3.5) consola: 3.4.2 defu: 6.1.4 destr: 2.0.5 - devalue: 5.4.2 errx: 0.1.0 - escape-string-regexp: 5.0.0 exsolve: 1.0.7 - h3: 1.15.4 - impound: 1.0.0 + ignore: 7.0.5 + jiti: 2.6.1 klona: 2.0.6 - mocked-exports: 0.1.1 - nitropack: 2.12.8(@libsql/client@0.15.15)(@vercel/blob@2.0.0)(aws4fetch@1.0.20)(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))(rolldown@1.0.0-beta.9) - nuxt: 4.2.0(@libsql/client@0.15.15)(@parcel/watcher@2.5.1)(@types/node@24.9.1)(@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.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)))(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))(eslint@9.38.0(jiti@2.6.1))(ioredis@5.8.2)(lightningcss@1.30.2)(magicast@0.3.5)(optionator@0.9.4)(rolldown@1.0.0-beta.9)(rollup@4.52.5)(terser@5.44.0)(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))(yaml@2.8.1) + mlly: 1.8.0 + ohash: 2.0.11 pathe: 2.0.3 pkg-types: 2.3.0 - radix3: 1.1.2 - std-env: 3.10.0 + rc9: 2.1.2 + scule: 1.3.0 + semver: 7.7.3 + tinyglobby: 0.2.15 ufo: 1.6.1 unctx: 2.4.1 - 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) - vue: 3.5.22(typescript@5.9.3) - vue-bundle-renderer: 2.2.0 - vue-devtools-stub: 0.1.0 + untyped: 2.0.0 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' - - '@planetscale/database' - - '@upstash/redis' - - '@vercel/blob' - - '@vercel/functions' - - '@vercel/kv' - - aws4fetch - - better-sqlite3 - - db0 - - drizzle-orm - - encoding - - idb-keyval - - ioredis - magicast - - mysql2 - - react-native-b4a - - rolldown - - sqlite3 - - supports-color - - typescript - - uploadthing - - xml2js + + '@nuxt/schema@4.1.0': + dependencies: + '@vue/shared': 3.5.22 + consola: 3.4.2 + defu: 6.1.4 + pathe: 2.0.3 + std-env: 3.10.0 + ufo: 1.6.1 '@nuxt/schema@4.2.0': dependencies: @@ -7972,9 +7632,9 @@ snapshots: - vite - vue - '@nuxt/vite-builder@4.2.0(patch_hash=dbfb7f37d331cee8de42bac0867af36d698e9207ed6dfd1415b4b243177e569e)(3303c323539edf60f8cb1c76ae1eb94b)': + '@nuxt/vite-builder@4.1.0(patch_hash=dbfb7f37d331cee8de42bac0867af36d698e9207ed6dfd1415b4b243177e569e)(@types/node@24.9.1)(eslint@9.38.0(jiti@2.6.1))(lightningcss@1.30.2)(magicast@0.3.5)(optionator@0.9.4)(rolldown@1.0.0-beta.9)(rollup@4.52.5)(terser@5.44.0)(typescript@5.9.3)(vue-tsc@3.1.2(typescript@5.9.3))(vue@3.5.22(typescript@5.9.3))(yaml@2.8.1)': dependencies: - '@nuxt/kit': 4.2.0(magicast@0.3.5) + '@nuxt/kit': 4.1.0(magicast@0.3.5) '@rollup/plugin-replace': 6.0.2(rollup@4.52.5) '@vitejs/plugin-vue': 6.0.1(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@3.5.22(typescript@5.9.3)) '@vitejs/plugin-vue-jsx': 5.1.1(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@3.5.22(typescript@5.9.3)) @@ -7992,22 +7652,18 @@ snapshots: magic-string: 0.30.21 mlly: 1.8.0 mocked-exports: 0.1.1 - nuxt: 4.2.0(@libsql/client@0.15.15)(@parcel/watcher@2.5.1)(@types/node@24.9.1)(@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.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)))(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))(eslint@9.38.0(jiti@2.6.1))(ioredis@5.8.2)(lightningcss@1.30.2)(magicast@0.3.5)(optionator@0.9.4)(rolldown@1.0.0-beta.9)(rollup@4.52.5)(terser@5.44.0)(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))(yaml@2.8.1) pathe: 2.0.3 pkg-types: 2.3.0 postcss: 8.5.6 rollup-plugin-visualizer: 6.0.5(rolldown@1.0.0-beta.9)(rollup@4.52.5) - seroval: 1.3.2 std-env: 3.10.0 ufo: 1.6.1 unenv: 2.0.0-rc.22 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) vite-node: 3.2.4(@types/node@24.9.1)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.0)(yaml@2.8.1) - vite-plugin-checker: 0.11.0(eslint@9.38.0(jiti@2.6.1))(optionator@0.9.4)(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)) + vite-plugin-checker: 0.10.3(eslint@9.38.0(jiti@2.6.1))(optionator@0.9.4)(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)) vue: 3.5.22(typescript@5.9.3) vue-bundle-renderer: 2.2.0 - optionalDependencies: - rolldown: 1.0.0-beta.9 transitivePeerDependencies: - '@biomejs/biome' - '@types/node' @@ -8017,7 +7673,7 @@ snapshots: - magicast - meow - optionator - - oxlint + - rolldown - rollup - sass - sass-embedded @@ -8033,7 +7689,7 @@ snapshots: - vue-tsc - yaml - '@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))': + '@nuxthub/core-nightly@1.0.0-20251101-232620-31e6b29(@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)(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))': dependencies: '@ai-sdk/provider': 2.0.0 '@cloudflare/workers-types': 4.20251014.0 @@ -8042,21 +7698,24 @@ snapshots: '@vercel/blob': 2.0.0 ai: 5.0.81(zod@4.1.12) aws4fetch: 1.0.20 + chokidar: 4.0.3 + citty: 0.1.6 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)) defu: 6.1.4 destr: 2.0.5 + drizzle-kit: 0.31.6 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.2(typescript@5.9.3)) ofetch: 1.4.1 pathe: 2.0.3 pkg-types: 2.3.0 std-env: 3.10.0 + tinyglobby: 0.2.15 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) @@ -8073,9 +7732,7 @@ snapshots: - '@electric-sql/pglite' - '@libsql/client' - '@netlify/blobs' - - '@oxc-project/runtime' - '@planetscale/database' - - '@typescript/native-preview' - '@upstash/redis' - '@vercel/functions' - '@vercel/kv' @@ -8085,13 +7742,10 @@ snapshots: - ioredis - magicast - mysql2 - - oxc-resolver - sqlite3 - supports-color - - typescript - uploadthing - vite - - vue-tsc '@nuxtjs/color-mode@3.5.2(magicast@0.3.5)': dependencies: @@ -8153,283 +7807,150 @@ snapshots: '@opentelemetry/api@1.9.0': {} - '@oxc-minify/binding-android-arm64@0.95.0': - optional: true - - '@oxc-minify/binding-darwin-arm64@0.72.3': - optional: true - - '@oxc-minify/binding-darwin-arm64@0.95.0': - optional: true - - '@oxc-minify/binding-darwin-x64@0.72.3': - optional: true - - '@oxc-minify/binding-darwin-x64@0.95.0': + '@oxc-minify/binding-android-arm64@0.86.0': optional: true - '@oxc-minify/binding-freebsd-x64@0.72.3': + '@oxc-minify/binding-darwin-arm64@0.86.0': optional: true - '@oxc-minify/binding-freebsd-x64@0.95.0': + '@oxc-minify/binding-darwin-x64@0.86.0': optional: true - '@oxc-minify/binding-linux-arm-gnueabihf@0.72.3': + '@oxc-minify/binding-freebsd-x64@0.86.0': optional: true - '@oxc-minify/binding-linux-arm-gnueabihf@0.95.0': + '@oxc-minify/binding-linux-arm-gnueabihf@0.86.0': optional: true - '@oxc-minify/binding-linux-arm-musleabihf@0.72.3': + '@oxc-minify/binding-linux-arm-musleabihf@0.86.0': optional: true - '@oxc-minify/binding-linux-arm-musleabihf@0.95.0': + '@oxc-minify/binding-linux-arm64-gnu@0.86.0': optional: true - '@oxc-minify/binding-linux-arm64-gnu@0.72.3': + '@oxc-minify/binding-linux-arm64-musl@0.86.0': optional: true - '@oxc-minify/binding-linux-arm64-gnu@0.95.0': + '@oxc-minify/binding-linux-riscv64-gnu@0.86.0': optional: true - '@oxc-minify/binding-linux-arm64-musl@0.72.3': + '@oxc-minify/binding-linux-s390x-gnu@0.86.0': optional: true - '@oxc-minify/binding-linux-arm64-musl@0.95.0': + '@oxc-minify/binding-linux-x64-gnu@0.86.0': optional: true - '@oxc-minify/binding-linux-riscv64-gnu@0.72.3': + '@oxc-minify/binding-linux-x64-musl@0.86.0': optional: true - '@oxc-minify/binding-linux-riscv64-gnu@0.95.0': - optional: true - - '@oxc-minify/binding-linux-s390x-gnu@0.72.3': - optional: true - - '@oxc-minify/binding-linux-s390x-gnu@0.95.0': - optional: true - - '@oxc-minify/binding-linux-x64-gnu@0.72.3': - optional: true - - '@oxc-minify/binding-linux-x64-gnu@0.95.0': - optional: true - - '@oxc-minify/binding-linux-x64-musl@0.72.3': - optional: true - - '@oxc-minify/binding-linux-x64-musl@0.95.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.95.0': + '@oxc-minify/binding-wasm32-wasi@0.86.0': dependencies: '@napi-rs/wasm-runtime': 1.0.7 optional: true - '@oxc-minify/binding-win32-arm64-msvc@0.72.3': - optional: true - - '@oxc-minify/binding-win32-arm64-msvc@0.95.0': - optional: true - - '@oxc-minify/binding-win32-x64-msvc@0.72.3': - optional: true - - '@oxc-minify/binding-win32-x64-msvc@0.95.0': - optional: true - - '@oxc-parser/binding-android-arm64@0.95.0': - optional: true - - '@oxc-parser/binding-darwin-arm64@0.72.3': - optional: true - - '@oxc-parser/binding-darwin-arm64@0.95.0': + '@oxc-minify/binding-win32-arm64-msvc@0.86.0': optional: true - '@oxc-parser/binding-darwin-x64@0.72.3': + '@oxc-minify/binding-win32-x64-msvc@0.86.0': optional: true - '@oxc-parser/binding-darwin-x64@0.95.0': + '@oxc-parser/binding-android-arm64@0.86.0': optional: true - '@oxc-parser/binding-freebsd-x64@0.72.3': + '@oxc-parser/binding-darwin-arm64@0.86.0': optional: true - '@oxc-parser/binding-freebsd-x64@0.95.0': + '@oxc-parser/binding-darwin-x64@0.86.0': optional: true - '@oxc-parser/binding-linux-arm-gnueabihf@0.72.3': + '@oxc-parser/binding-freebsd-x64@0.86.0': optional: true - '@oxc-parser/binding-linux-arm-gnueabihf@0.95.0': + '@oxc-parser/binding-linux-arm-gnueabihf@0.86.0': optional: true - '@oxc-parser/binding-linux-arm-musleabihf@0.72.3': + '@oxc-parser/binding-linux-arm-musleabihf@0.86.0': optional: true - '@oxc-parser/binding-linux-arm-musleabihf@0.95.0': + '@oxc-parser/binding-linux-arm64-gnu@0.86.0': optional: true - '@oxc-parser/binding-linux-arm64-gnu@0.72.3': + '@oxc-parser/binding-linux-arm64-musl@0.86.0': optional: true - '@oxc-parser/binding-linux-arm64-gnu@0.95.0': + '@oxc-parser/binding-linux-riscv64-gnu@0.86.0': optional: true - '@oxc-parser/binding-linux-arm64-musl@0.72.3': + '@oxc-parser/binding-linux-s390x-gnu@0.86.0': optional: true - '@oxc-parser/binding-linux-arm64-musl@0.95.0': + '@oxc-parser/binding-linux-x64-gnu@0.86.0': optional: true - '@oxc-parser/binding-linux-riscv64-gnu@0.72.3': + '@oxc-parser/binding-linux-x64-musl@0.86.0': optional: true - '@oxc-parser/binding-linux-riscv64-gnu@0.95.0': - optional: true - - '@oxc-parser/binding-linux-s390x-gnu@0.72.3': - optional: true - - '@oxc-parser/binding-linux-s390x-gnu@0.95.0': - optional: true - - '@oxc-parser/binding-linux-x64-gnu@0.72.3': - optional: true - - '@oxc-parser/binding-linux-x64-gnu@0.95.0': - optional: true - - '@oxc-parser/binding-linux-x64-musl@0.72.3': - optional: true - - '@oxc-parser/binding-linux-x64-musl@0.95.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.95.0': + '@oxc-parser/binding-wasm32-wasi@0.86.0': dependencies: '@napi-rs/wasm-runtime': 1.0.7 optional: true - '@oxc-parser/binding-win32-arm64-msvc@0.72.3': - optional: true - - '@oxc-parser/binding-win32-arm64-msvc@0.95.0': - optional: true - - '@oxc-parser/binding-win32-x64-msvc@0.72.3': - optional: true - - '@oxc-parser/binding-win32-x64-msvc@0.95.0': - optional: true - - '@oxc-project/types@0.70.0': {} - - '@oxc-project/types@0.72.3': {} - - '@oxc-project/types@0.95.0': {} - - '@oxc-transform/binding-android-arm64@0.95.0': - optional: true - - '@oxc-transform/binding-darwin-arm64@0.72.3': + '@oxc-parser/binding-win32-arm64-msvc@0.86.0': optional: true - '@oxc-transform/binding-darwin-arm64@0.95.0': + '@oxc-parser/binding-win32-x64-msvc@0.86.0': optional: true - '@oxc-transform/binding-darwin-x64@0.72.3': - optional: true - - '@oxc-transform/binding-darwin-x64@0.95.0': - optional: true - - '@oxc-transform/binding-freebsd-x64@0.72.3': - optional: true - - '@oxc-transform/binding-freebsd-x64@0.95.0': - optional: true - - '@oxc-transform/binding-linux-arm-gnueabihf@0.72.3': - optional: true - - '@oxc-transform/binding-linux-arm-gnueabihf@0.95.0': - optional: true - - '@oxc-transform/binding-linux-arm-musleabihf@0.72.3': - optional: true - - '@oxc-transform/binding-linux-arm-musleabihf@0.95.0': + '@oxc-project/types@0.70.0': optional: true - '@oxc-transform/binding-linux-arm64-gnu@0.72.3': - optional: true + '@oxc-project/types@0.86.0': {} - '@oxc-transform/binding-linux-arm64-gnu@0.95.0': + '@oxc-transform/binding-android-arm64@0.86.0': optional: true - '@oxc-transform/binding-linux-arm64-musl@0.72.3': + '@oxc-transform/binding-darwin-arm64@0.86.0': optional: true - '@oxc-transform/binding-linux-arm64-musl@0.95.0': + '@oxc-transform/binding-darwin-x64@0.86.0': optional: true - '@oxc-transform/binding-linux-riscv64-gnu@0.72.3': + '@oxc-transform/binding-freebsd-x64@0.86.0': optional: true - '@oxc-transform/binding-linux-riscv64-gnu@0.95.0': + '@oxc-transform/binding-linux-arm-gnueabihf@0.86.0': optional: true - '@oxc-transform/binding-linux-s390x-gnu@0.72.3': + '@oxc-transform/binding-linux-arm-musleabihf@0.86.0': optional: true - '@oxc-transform/binding-linux-s390x-gnu@0.95.0': + '@oxc-transform/binding-linux-arm64-gnu@0.86.0': optional: true - '@oxc-transform/binding-linux-x64-gnu@0.72.3': + '@oxc-transform/binding-linux-arm64-musl@0.86.0': optional: true - '@oxc-transform/binding-linux-x64-gnu@0.95.0': + '@oxc-transform/binding-linux-riscv64-gnu@0.86.0': optional: true - '@oxc-transform/binding-linux-x64-musl@0.72.3': + '@oxc-transform/binding-linux-s390x-gnu@0.86.0': optional: true - '@oxc-transform/binding-linux-x64-musl@0.95.0': + '@oxc-transform/binding-linux-x64-gnu@0.86.0': optional: true - '@oxc-transform/binding-wasm32-wasi@0.72.3': - dependencies: - '@napi-rs/wasm-runtime': 0.2.12 + '@oxc-transform/binding-linux-x64-musl@0.86.0': optional: true - '@oxc-transform/binding-wasm32-wasi@0.95.0': + '@oxc-transform/binding-wasm32-wasi@0.86.0': dependencies: '@napi-rs/wasm-runtime': 1.0.7 optional: true - '@oxc-transform/binding-win32-arm64-msvc@0.72.3': - optional: true - - '@oxc-transform/binding-win32-arm64-msvc@0.95.0': - optional: true - - '@oxc-transform/binding-win32-x64-msvc@0.72.3': + '@oxc-transform/binding-win32-arm64-msvc@0.86.0': optional: true - '@oxc-transform/binding-win32-x64-msvc@0.95.0': + '@oxc-transform/binding-win32-x64-msvc@0.86.0': optional: true '@parcel/watcher-android-arm64@2.5.1': @@ -8580,7 +8101,8 @@ snapshots: '@rolldown/pluginutils@1.0.0-beta.41': {} - '@rolldown/pluginutils@1.0.0-beta.9': {} + '@rolldown/pluginutils@1.0.0-beta.9': + optional: true '@rollup/plugin-alias@5.1.1(rollup@4.52.5)': optionalDependencies: @@ -9370,13 +8892,13 @@ snapshots: path-browserify: 1.0.1 vscode-uri: 3.1.0 - '@vue-macros/common@3.1.1(vue@3.5.22(typescript@5.9.3))': + '@vue-macros/common@3.0.0-beta.16(vue@3.5.22(typescript@5.9.3))': dependencies: '@vue/compiler-sfc': 3.5.22 ast-kit: 2.1.2 local-pkg: 1.1.2 magic-string-ast: 1.0.2 - unplugin-utils: 0.3.1 + unplugin-utils: 0.2.5 optionalDependencies: vue: 3.5.22(typescript@5.9.3) @@ -10316,6 +9838,15 @@ snapshots: transitivePeerDependencies: - supports-color + drizzle-kit@0.31.6: + dependencies: + '@drizzle-team/brocli': 0.10.2 + '@esbuild-kit/esm-loader': 2.6.5 + esbuild: 0.25.11 + esbuild-register: 3.6.0(esbuild@0.25.11) + transitivePeerDependencies: + - supports-color + 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): optionalDependencies: '@cloudflare/workers-types': 4.20251014.0 @@ -10324,8 +9855,6 @@ snapshots: better-sqlite3: 12.4.1 pg: 8.16.3 - dts-resolver@2.1.2: {} - duplexer@0.1.2: {} earcut@2.2.4: {} @@ -12144,16 +11673,15 @@ snapshots: - supports-color - vue - nuxt@4.2.0(@libsql/client@0.15.15)(@parcel/watcher@2.5.1)(@types/node@24.9.1)(@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.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)))(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))(eslint@9.38.0(jiti@2.6.1))(ioredis@5.8.2)(lightningcss@1.30.2)(magicast@0.3.5)(optionator@0.9.4)(rolldown@1.0.0-beta.9)(rollup@4.52.5)(terser@5.44.0)(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))(yaml@2.8.1): + nuxt@4.1.0(@libsql/client@0.15.15)(@parcel/watcher@2.5.1)(@types/node@24.9.1)(@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.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)))(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))(eslint@9.38.0(jiti@2.6.1))(ioredis@5.8.2)(lightningcss@1.30.2)(magicast@0.3.5)(optionator@0.9.4)(rolldown@1.0.0-beta.9)(rollup@4.52.5)(terser@5.44.0)(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))(yaml@2.8.1): dependencies: - '@dxup/nuxt': 0.2.0(magicast@0.3.5) '@nuxt/cli': 3.29.3(magicast@0.3.5) + '@nuxt/devalue': 2.0.2 '@nuxt/devtools': 2.6.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))(vue@3.5.22(typescript@5.9.3)) - '@nuxt/kit': 4.2.0(magicast@0.3.5) - '@nuxt/nitro-server': 4.2.0(b4c0def27a33c6f3dab5838788004f3c) - '@nuxt/schema': 4.2.0 + '@nuxt/kit': 4.1.0(magicast@0.3.5) + '@nuxt/schema': 4.1.0 '@nuxt/telemetry': 2.6.6(magicast@0.3.5) - '@nuxt/vite-builder': 4.2.0(patch_hash=dbfb7f37d331cee8de42bac0867af36d698e9207ed6dfd1415b4b243177e569e)(3303c323539edf60f8cb1c76ae1eb94b) + '@nuxt/vite-builder': 4.1.0(patch_hash=dbfb7f37d331cee8de42bac0867af36d698e9207ed6dfd1415b4b243177e569e)(@types/node@24.9.1)(eslint@9.38.0(jiti@2.6.1))(lightningcss@1.30.2)(magicast@0.3.5)(optionator@0.9.4)(rolldown@1.0.0-beta.9)(rollup@4.52.5)(terser@5.44.0)(typescript@5.9.3)(vue-tsc@3.1.2(typescript@5.9.3))(vue@3.5.22(typescript@5.9.3))(yaml@2.8.1) '@unhead/vue': 2.0.19(vue@3.5.22(typescript@5.9.3)) '@vue/shared': 3.5.22 c12: 3.3.1(magicast@0.3.5) @@ -12165,7 +11693,9 @@ snapshots: destr: 2.0.5 devalue: 5.4.2 errx: 0.1.0 + esbuild: 0.25.11 escape-string-regexp: 5.0.0 + estree-walker: 3.0.3 exsolve: 1.0.7 h3: 1.15.4 hookable: 5.5.3 @@ -12176,15 +11706,17 @@ snapshots: knitwork: 1.2.0 magic-string: 0.30.21 mlly: 1.8.0 + mocked-exports: 0.1.1 nanotar: 0.2.0 + nitropack: 2.12.8(@libsql/client@0.15.15)(@vercel/blob@2.0.0)(aws4fetch@1.0.20)(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))(rolldown@1.0.0-beta.9) nypm: 0.6.2 ofetch: 1.4.1 ohash: 2.0.11 - on-change: 6.0.0 - oxc-minify: 0.95.0 - oxc-parser: 0.95.0 - oxc-transform: 0.95.0 - oxc-walker: 0.5.2(oxc-parser@0.95.0) + on-change: 5.0.1 + oxc-minify: 0.86.0 + oxc-parser: 0.86.0 + oxc-transform: 0.86.0 + oxc-walker: 0.4.0(oxc-parser@0.86.0) pathe: 2.0.3 perfect-debounce: 2.0.0 pkg-types: 2.3.0 @@ -12192,16 +11724,20 @@ snapshots: scule: 1.3.0 semver: 7.7.3 std-env: 3.10.0 - tinyglobby: 0.2.15 + strip-literal: 3.1.0 + tinyglobby: 0.2.14 ufo: 1.6.1 ultrahtml: 1.6.0 uncrypto: 0.1.3 unctx: 2.4.1 unimport: 4.1.1 unplugin: 2.3.10 - unplugin-vue-router: 0.16.0(@vue/compiler-sfc@3.5.22)(typescript@5.9.3)(vue-router@4.6.3(vue@3.5.22(typescript@5.9.3)))(vue@3.5.22(typescript@5.9.3)) + unplugin-vue-router: 0.15.0(@vue/compiler-sfc@3.5.22)(typescript@5.9.3)(vue-router@4.6.3(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(@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) untyped: 2.0.0 vue: 3.5.22(typescript@5.9.3) + vue-bundle-renderer: 2.2.0 + vue-devtools-stub: 0.1.0 vue-router: 4.6.3(vue@3.5.22(typescript@5.9.3)) optionalDependencies: '@parcel/watcher': 2.5.1 @@ -12240,7 +11776,6 @@ snapshots: - meow - mysql2 - optionator - - oxlint - react-native-b4a - rolldown - rollup @@ -12273,29 +11808,6 @@ snapshots: oauth4webapi@3.8.2: {} - obuild@0.2.1(magicast@0.3.5)(typescript@5.9.3)(vue-tsc@3.1.2(typescript@5.9.3)): - dependencies: - c12: 3.3.1(magicast@0.3.5) - consola: 3.4.2 - defu: 6.1.4 - exsolve: 1.0.7 - magic-string: 0.30.21 - 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.2(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 @@ -12304,7 +11816,7 @@ snapshots: ohash@2.0.11: {} - on-change@6.0.0: {} + on-change@5.0.1: {} on-finished@2.4.1: dependencies: @@ -12354,119 +11866,67 @@ 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.95.0: - optionalDependencies: - '@oxc-minify/binding-android-arm64': 0.95.0 - '@oxc-minify/binding-darwin-arm64': 0.95.0 - '@oxc-minify/binding-darwin-x64': 0.95.0 - '@oxc-minify/binding-freebsd-x64': 0.95.0 - '@oxc-minify/binding-linux-arm-gnueabihf': 0.95.0 - '@oxc-minify/binding-linux-arm-musleabihf': 0.95.0 - '@oxc-minify/binding-linux-arm64-gnu': 0.95.0 - '@oxc-minify/binding-linux-arm64-musl': 0.95.0 - '@oxc-minify/binding-linux-riscv64-gnu': 0.95.0 - '@oxc-minify/binding-linux-s390x-gnu': 0.95.0 - '@oxc-minify/binding-linux-x64-gnu': 0.95.0 - '@oxc-minify/binding-linux-x64-musl': 0.95.0 - '@oxc-minify/binding-wasm32-wasi': 0.95.0 - '@oxc-minify/binding-win32-arm64-msvc': 0.95.0 - '@oxc-minify/binding-win32-x64-msvc': 0.95.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.95.0: - dependencies: - '@oxc-project/types': 0.95.0 + oxc-minify@0.86.0: optionalDependencies: - '@oxc-parser/binding-android-arm64': 0.95.0 - '@oxc-parser/binding-darwin-arm64': 0.95.0 - '@oxc-parser/binding-darwin-x64': 0.95.0 - '@oxc-parser/binding-freebsd-x64': 0.95.0 - '@oxc-parser/binding-linux-arm-gnueabihf': 0.95.0 - '@oxc-parser/binding-linux-arm-musleabihf': 0.95.0 - '@oxc-parser/binding-linux-arm64-gnu': 0.95.0 - '@oxc-parser/binding-linux-arm64-musl': 0.95.0 - '@oxc-parser/binding-linux-riscv64-gnu': 0.95.0 - '@oxc-parser/binding-linux-s390x-gnu': 0.95.0 - '@oxc-parser/binding-linux-x64-gnu': 0.95.0 - '@oxc-parser/binding-linux-x64-musl': 0.95.0 - '@oxc-parser/binding-wasm32-wasi': 0.95.0 - '@oxc-parser/binding-win32-arm64-msvc': 0.95.0 - '@oxc-parser/binding-win32-x64-msvc': 0.95.0 - - oxc-transform@0.72.3: + '@oxc-minify/binding-android-arm64': 0.86.0 + '@oxc-minify/binding-darwin-arm64': 0.86.0 + '@oxc-minify/binding-darwin-x64': 0.86.0 + '@oxc-minify/binding-freebsd-x64': 0.86.0 + '@oxc-minify/binding-linux-arm-gnueabihf': 0.86.0 + '@oxc-minify/binding-linux-arm-musleabihf': 0.86.0 + '@oxc-minify/binding-linux-arm64-gnu': 0.86.0 + '@oxc-minify/binding-linux-arm64-musl': 0.86.0 + '@oxc-minify/binding-linux-riscv64-gnu': 0.86.0 + '@oxc-minify/binding-linux-s390x-gnu': 0.86.0 + '@oxc-minify/binding-linux-x64-gnu': 0.86.0 + '@oxc-minify/binding-linux-x64-musl': 0.86.0 + '@oxc-minify/binding-wasm32-wasi': 0.86.0 + '@oxc-minify/binding-win32-arm64-msvc': 0.86.0 + '@oxc-minify/binding-win32-x64-msvc': 0.86.0 + + oxc-parser@0.86.0: + dependencies: + '@oxc-project/types': 0.86.0 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.95.0: + '@oxc-parser/binding-android-arm64': 0.86.0 + '@oxc-parser/binding-darwin-arm64': 0.86.0 + '@oxc-parser/binding-darwin-x64': 0.86.0 + '@oxc-parser/binding-freebsd-x64': 0.86.0 + '@oxc-parser/binding-linux-arm-gnueabihf': 0.86.0 + '@oxc-parser/binding-linux-arm-musleabihf': 0.86.0 + '@oxc-parser/binding-linux-arm64-gnu': 0.86.0 + '@oxc-parser/binding-linux-arm64-musl': 0.86.0 + '@oxc-parser/binding-linux-riscv64-gnu': 0.86.0 + '@oxc-parser/binding-linux-s390x-gnu': 0.86.0 + '@oxc-parser/binding-linux-x64-gnu': 0.86.0 + '@oxc-parser/binding-linux-x64-musl': 0.86.0 + '@oxc-parser/binding-wasm32-wasi': 0.86.0 + '@oxc-parser/binding-win32-arm64-msvc': 0.86.0 + '@oxc-parser/binding-win32-x64-msvc': 0.86.0 + + oxc-transform@0.86.0: optionalDependencies: - '@oxc-transform/binding-android-arm64': 0.95.0 - '@oxc-transform/binding-darwin-arm64': 0.95.0 - '@oxc-transform/binding-darwin-x64': 0.95.0 - '@oxc-transform/binding-freebsd-x64': 0.95.0 - '@oxc-transform/binding-linux-arm-gnueabihf': 0.95.0 - '@oxc-transform/binding-linux-arm-musleabihf': 0.95.0 - '@oxc-transform/binding-linux-arm64-gnu': 0.95.0 - '@oxc-transform/binding-linux-arm64-musl': 0.95.0 - '@oxc-transform/binding-linux-riscv64-gnu': 0.95.0 - '@oxc-transform/binding-linux-s390x-gnu': 0.95.0 - '@oxc-transform/binding-linux-x64-gnu': 0.95.0 - '@oxc-transform/binding-linux-x64-musl': 0.95.0 - '@oxc-transform/binding-wasm32-wasi': 0.95.0 - '@oxc-transform/binding-win32-arm64-msvc': 0.95.0 - '@oxc-transform/binding-win32-x64-msvc': 0.95.0 - - oxc-walker@0.5.2(oxc-parser@0.95.0): + '@oxc-transform/binding-android-arm64': 0.86.0 + '@oxc-transform/binding-darwin-arm64': 0.86.0 + '@oxc-transform/binding-darwin-x64': 0.86.0 + '@oxc-transform/binding-freebsd-x64': 0.86.0 + '@oxc-transform/binding-linux-arm-gnueabihf': 0.86.0 + '@oxc-transform/binding-linux-arm-musleabihf': 0.86.0 + '@oxc-transform/binding-linux-arm64-gnu': 0.86.0 + '@oxc-transform/binding-linux-arm64-musl': 0.86.0 + '@oxc-transform/binding-linux-riscv64-gnu': 0.86.0 + '@oxc-transform/binding-linux-s390x-gnu': 0.86.0 + '@oxc-transform/binding-linux-x64-gnu': 0.86.0 + '@oxc-transform/binding-linux-x64-musl': 0.86.0 + '@oxc-transform/binding-wasm32-wasi': 0.86.0 + '@oxc-transform/binding-win32-arm64-msvc': 0.86.0 + '@oxc-transform/binding-win32-x64-msvc': 0.86.0 + + oxc-walker@0.4.0(oxc-parser@0.86.0): dependencies: + estree-walker: 3.0.3 magic-regexp: 0.10.0 - oxc-parser: 0.95.0 + oxc-parser: 0.86.0 p-limit@3.1.0: dependencies: @@ -13116,24 +12576,6 @@ snapshots: robust-predicates@3.0.2: {} - rolldown-plugin-dts@0.13.14(rolldown@1.0.0-beta.9)(typescript@5.9.3)(vue-tsc@3.1.2(typescript@5.9.3)): - dependencies: - '@babel/generator': 7.28.3 - '@babel/parser': 7.28.4 - '@babel/types': 7.28.4 - ast-kit: 2.1.2 - birpc: 2.6.1 - debug: 4.4.3 - dts-resolver: 2.1.2 - get-tsconfig: 4.10.1 - rolldown: 1.0.0-beta.9 - optionalDependencies: - typescript: 5.9.3 - vue-tsc: 3.1.2(typescript@5.9.3) - transitivePeerDependencies: - - oxc-resolver - - supports-color - rolldown@1.0.0-beta.9: dependencies: '@oxc-project/types': 0.70.0 @@ -13152,6 +12594,7 @@ snapshots: '@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 + optional: true rollup-plugin-visualizer@6.0.5(rolldown@1.0.0-beta.9)(rollup@4.52.5): dependencies: @@ -13243,8 +12686,6 @@ snapshots: dependencies: randombytes: 2.1.0 - seroval@1.3.2: {} - serve-placeholder@2.0.2: dependencies: defu: 6.1.4 @@ -13536,6 +12977,11 @@ snapshots: tinyexec@1.0.1: {} + tinyglobby@0.2.14: + dependencies: + fdir: 6.5.0(picomatch@4.0.3) + picomatch: 4.0.3 + tinyglobby@0.2.15: dependencies: fdir: 6.5.0(picomatch@4.0.3) @@ -13752,10 +13198,9 @@ snapshots: transitivePeerDependencies: - supports-color - unplugin-vue-router@0.16.0(@vue/compiler-sfc@3.5.22)(typescript@5.9.3)(vue-router@4.6.3(vue@3.5.22(typescript@5.9.3)))(vue@3.5.22(typescript@5.9.3)): + unplugin-vue-router@0.15.0(@vue/compiler-sfc@3.5.22)(typescript@5.9.3)(vue-router@4.6.3(vue@3.5.22(typescript@5.9.3)))(vue@3.5.22(typescript@5.9.3)): dependencies: - '@babel/generator': 7.28.3 - '@vue-macros/common': 3.1.1(vue@3.5.22(typescript@5.9.3)) + '@vue-macros/common': 3.0.0-beta.16(vue@3.5.22(typescript@5.9.3)) '@vue/compiler-sfc': 3.5.22 '@vue/language-core': 3.1.2(typescript@5.9.3) ast-walker-scope: 0.8.2 @@ -13770,7 +13215,7 @@ snapshots: scule: 1.3.0 tinyglobby: 0.2.15 unplugin: 2.3.10 - unplugin-utils: 0.3.1 + unplugin-utils: 0.2.5 yaml: 2.8.1 optionalDependencies: vue-router: 4.6.3(vue@3.5.22(typescript@5.9.3)) @@ -13916,13 +13361,14 @@ snapshots: - tsx - yaml - vite-plugin-checker@0.11.0(eslint@9.38.0(jiti@2.6.1))(optionator@0.9.4)(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)): + vite-plugin-checker@0.10.3(eslint@9.38.0(jiti@2.6.1))(optionator@0.9.4)(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: '@babel/code-frame': 7.27.1 chokidar: 4.0.3 npm-run-path: 6.0.0 picocolors: 1.1.1 picomatch: 4.0.3 + strip-ansi: 7.1.2 tiny-invariant: 1.3.3 tinyglobby: 0.2.15 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) diff --git a/server/api/chats.get.ts b/server/api/chats.get.ts index 5f54c76..8c21565 100644 --- a/server/api/chats.get.ts +++ b/server/api/chats.get.ts @@ -1,5 +1,7 @@ +import { eq } from 'drizzle-orm' + export default defineEventHandler(async (event) => { const session = await getUserSession(event) - return (await useDrizzle().select().from(tables.chats).where(eq(tables.chats.userId, session.user?.id || session.id))).sort((a, b) => b.createdAt.getTime() - a.createdAt.getTime()) + return (await db.select().from(schema.chats).where(eq(schema.chats.userId, session.user?.id || session.id))).sort((a, b) => b.createdAt.getTime() - a.createdAt.getTime()) }) diff --git a/server/api/chats.post.ts b/server/api/chats.post.ts index 5a81a65..38719d3 100644 --- a/server/api/chats.post.ts +++ b/server/api/chats.post.ts @@ -2,9 +2,8 @@ export default defineEventHandler(async (event) => { const session = await getUserSession(event) const { input } = await readBody(event) - const db = useDrizzle() - const [chat] = await db.insert(tables.chats).values({ + const [chat] = await db.insert(schema.chats).values({ title: '', userId: session.user?.id || session.id }).returning() @@ -12,7 +11,7 @@ export default defineEventHandler(async (event) => { throw createError({ statusCode: 500, statusMessage: 'Failed to create chat' }) } - await db.insert(tables.messages).values({ + await db.insert(schema.messages).values({ chatId: chat.id, role: 'user', parts: [{ type: 'text', text: input }] diff --git a/server/api/chats/[id].delete.ts b/server/api/chats/[id].delete.ts index 33430f8..41bf8ec 100644 --- a/server/api/chats/[id].delete.ts +++ b/server/api/chats/[id].delete.ts @@ -3,9 +3,7 @@ export default defineEventHandler(async (event) => { const { id } = getRouterParams(event) - const db = useDrizzle() - - return await db.delete(tables.chats) - .where(and(eq(tables.chats.id, id as string), eq(tables.chats.userId, session.user?.id || session.id))) + return await db.delete(schema.chats) + .where(and(eq(schema.chats.id, id as string), eq(schema.chats.userId, session.user?.id || session.id))) .returning() }) diff --git a/server/api/chats/[id].get.ts b/server/api/chats/[id].get.ts index 11d9e2c..4509e48 100644 --- a/server/api/chats/[id].get.ts +++ b/server/api/chats/[id].get.ts @@ -1,9 +1,11 @@ +import { and, eq } from 'drizzle-orm' + export default defineEventHandler(async (event) => { const session = await getUserSession(event) const { id } = getRouterParams(event) - const chat = await useDrizzle().query.chats.findFirst({ + const chat = await db.query.chats.findFirst({ where: (chat, { eq }) => and(eq(chat.id, id as string), eq(chat.userId, session.user?.id || session.id)), with: { messages: { diff --git a/server/api/chats/[id].post.ts b/server/api/chats/[id].post.ts index 162eb29..eb373c8 100644 --- a/server/api/chats/[id].post.ts +++ b/server/api/chats/[id].post.ts @@ -1,6 +1,7 @@ import { convertToModelMessages, createUIMessageStream, createUIMessageStreamResponse, generateText, smoothStream, stepCountIs, streamText } from 'ai' import type { UIMessage } from 'ai' import { z } from 'zod' +import { and, eq } from 'drizzle-orm' defineRouteMeta({ openAPI: { @@ -21,8 +22,6 @@ export default defineEventHandler(async (event) => { messages: z.array(z.custom()) }).parse) - const db = useDrizzle() - const chat = await db.query.chats.findFirst({ where: (chat, { eq }) => and(eq(chat.id, id as string), eq(chat.userId, session.user?.id || session.id)), with: { @@ -45,12 +44,12 @@ export default defineEventHandler(async (event) => { prompt: JSON.stringify(messages[0]) }) - await db.update(tables.chats).set({ title }).where(eq(tables.chats.id, id as string)) + await db.update(schema.chats).set({ title }).where(eq(schema.chats.id, id as string)) } const lastMessage = messages[messages.length - 1] if (lastMessage?.role === 'user' && messages.length > 1) { - await db.insert(tables.messages).values({ + await db.insert(schema.messages).values({ chatId: id as string, role: 'user', parts: lastMessage.parts @@ -111,7 +110,7 @@ export default defineEventHandler(async (event) => { })) }, onFinish: async ({ messages }) => { - await db.insert(tables.messages).values(messages.map(message => ({ + await db.insert(schema.messages).values(messages.map(message => ({ chatId: chat.id, role: message.role as 'user' | 'assistant', parts: message.parts diff --git a/server/database/schema.ts b/server/database/schema.sqlite.ts similarity index 100% rename from server/database/schema.ts rename to server/database/schema.sqlite.ts diff --git a/server/database/migrations/0000_fancy_dracula.sql b/server/database/sqlite/0000_fancy_dracula.sql similarity index 100% rename from server/database/migrations/0000_fancy_dracula.sql rename to server/database/sqlite/0000_fancy_dracula.sql diff --git a/server/database/migrations/meta/0000_snapshot.json b/server/database/sqlite/meta/0000_snapshot.json similarity index 100% rename from server/database/migrations/meta/0000_snapshot.json rename to server/database/sqlite/meta/0000_snapshot.json diff --git a/server/database/migrations/meta/_journal.json b/server/database/sqlite/meta/_journal.json similarity index 100% rename from server/database/migrations/meta/_journal.json rename to server/database/sqlite/meta/_journal.json diff --git a/server/utils/drizzle.ts b/server/utils/drizzle.ts deleted file mode 100644 index b5b0d6e..0000000 --- a/server/utils/drizzle.ts +++ /dev/null @@ -1,13 +0,0 @@ -import { drizzle } from 'hub:database' -import * as schema from '../database/schema' - -export { sql, eq, and, or, desc } from 'drizzle-orm' - -export const tables = schema - -export function useDrizzle() { - return drizzle({ schema }) -} - -export type Chat = typeof schema.chats.$inferSelect -export type Message = typeof schema.messages.$inferSelect diff --git a/shared/types/db.d.ts b/shared/types/db.d.ts new file mode 100644 index 0000000..a1175c6 --- /dev/null +++ b/shared/types/db.d.ts @@ -0,0 +1,4 @@ +import { schema } from 'hub:database' + +export type Chat = typeof schema.chats.$inferSelect +export type Message = typeof schema.messages.$inferSelect From ac27654e3674c4b28c08f32299019b03033bd34b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9bastien=20Chopin?= Date: Sun, 2 Nov 2025 09:43:05 +0100 Subject: [PATCH 13/19] chore: move migration --- .../sqlite/0000_amusing_ozymandias.sql} | 0 .../{ => migrations}/sqlite/meta/0000_snapshot.json | 2 +- server/database/{ => migrations}/sqlite/meta/_journal.json | 6 +++--- 3 files changed, 4 insertions(+), 4 deletions(-) rename server/database/{sqlite/0000_fancy_dracula.sql => migrations/sqlite/0000_amusing_ozymandias.sql} (100%) rename server/database/{ => migrations}/sqlite/meta/0000_snapshot.json (99%) rename server/database/{ => migrations}/sqlite/meta/_journal.json (55%) diff --git a/server/database/sqlite/0000_fancy_dracula.sql b/server/database/migrations/sqlite/0000_amusing_ozymandias.sql similarity index 100% rename from server/database/sqlite/0000_fancy_dracula.sql rename to server/database/migrations/sqlite/0000_amusing_ozymandias.sql diff --git a/server/database/sqlite/meta/0000_snapshot.json b/server/database/migrations/sqlite/meta/0000_snapshot.json similarity index 99% rename from server/database/sqlite/meta/0000_snapshot.json rename to server/database/migrations/sqlite/meta/0000_snapshot.json index 5fd5a29..c13d188 100644 --- a/server/database/sqlite/meta/0000_snapshot.json +++ b/server/database/migrations/sqlite/meta/0000_snapshot.json @@ -1,7 +1,7 @@ { "version": "6", "dialect": "sqlite", - "id": "e12d1abe-bd16-4590-ac9a-d9ae3ed4d2b3", + "id": "68d5da0a-1951-4b77-8928-52099b08b27e", "prevId": "00000000-0000-0000-0000-000000000000", "tables": { "chats": { diff --git a/server/database/sqlite/meta/_journal.json b/server/database/migrations/sqlite/meta/_journal.json similarity index 55% rename from server/database/sqlite/meta/_journal.json rename to server/database/migrations/sqlite/meta/_journal.json index bea7e92..4c4e9d1 100644 --- a/server/database/sqlite/meta/_journal.json +++ b/server/database/migrations/sqlite/meta/_journal.json @@ -1,12 +1,12 @@ { "version": "7", - "dialect": "postgresql", + "dialect": "sqlite", "entries": [ { "idx": 0, "version": "6", - "when": 1760619512848, - "tag": "0000_fancy_dracula", + "when": 1762072892319, + "tag": "0000_amusing_ozymandias", "breakpoints": true } ] From 1b6d0ea75f01e7454f29f592d658fac4e4a65f53 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9bastien=20Chopin?= Date: Sun, 2 Nov 2025 09:59:36 +0100 Subject: [PATCH 14/19] chore: add postgres migrations --- package.json | 2 + pnpm-lock.yaml | 86 +++--- .../postgresql/0000_living_purple_man.sql | 32 +++ .../postgresql/meta/0000_snapshot.json | 249 ++++++++++++++++++ .../migrations/postgresql/meta/_journal.json | 13 + server/database/schema.postgresql.ts | 60 +++++ 6 files changed, 399 insertions(+), 43 deletions(-) create mode 100644 server/database/migrations/postgresql/0000_living_purple_man.sql create mode 100644 server/database/migrations/postgresql/meta/0000_snapshot.json create mode 100644 server/database/migrations/postgresql/meta/_journal.json create mode 100644 server/database/schema.postgresql.ts diff --git a/package.json b/package.json index 5e0611b..d2caeea 100644 --- a/package.json +++ b/package.json @@ -15,6 +15,7 @@ "dependencies": { "@ai-sdk/gateway": "^2.0.2", "@ai-sdk/vue": "^2.0.80", + "@electric-sql/pglite": "^0.3.11", "@iconify-json/logos": "^1.2.9", "@iconify-json/lucide": "^1.2.71", "@iconify-json/simple-icons": "^1.2.55", @@ -28,6 +29,7 @@ "nuxt": "4.1.0", "nuxt-auth-utils": "^0.5.25", "nuxt-charts": "0.2.4", + "pg": "^8.16.3", "shiki-stream": "^0.1.2", "workers-ai-provider": "^2.0.0" }, diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 42466e4..83b8ee8 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -22,6 +22,9 @@ importers: '@ai-sdk/vue': specifier: ^2.0.80 version: 2.0.81(vue@3.5.22(typescript@5.9.3))(zod@4.1.12) + '@electric-sql/pglite': + specifier: ^0.3.11 + version: 0.3.11 '@iconify-json/logos': specifier: ^1.2.9 version: 1.2.9 @@ -36,10 +39,10 @@ importers: version: 0.15.15 '@nuxt/ui': 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) + 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(@electric-sql/pglite@0.3.11)(@libsql/client@0.15.15)(better-sqlite3@12.4.1)(drizzle-orm@0.44.7(@cloudflare/workers-types@4.20251014.0)(@electric-sql/pglite@0.3.11)(@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-20251101-232620-31e6b29 - version: '@nuxthub/core-nightly@1.0.0-20251101-232620-31e6b29(@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)(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))' + version: '@nuxthub/core-nightly@1.0.0-20251101-232620-31e6b29(@electric-sql/pglite@0.3.11)(@libsql/client@0.15.15)(better-sqlite3@12.4.1)(drizzle-orm@0.44.7(@cloudflare/workers-types@4.20251014.0)(@electric-sql/pglite@0.3.11)(@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)(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))' '@nuxtjs/mdc': specifier: ^0.18.0 version: 0.18.0(magicast@0.3.5) @@ -51,16 +54,19 @@ importers: version: 4.1.0 drizzle-orm: specifier: ^0.44.7 - version: 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) + version: 0.44.7(@cloudflare/workers-types@4.20251014.0)(@electric-sql/pglite@0.3.11)(@libsql/client@0.15.15)(@opentelemetry/api@1.9.0)(better-sqlite3@12.4.1)(pg@8.16.3) nuxt: specifier: 4.1.0 - version: 4.1.0(@libsql/client@0.15.15)(@parcel/watcher@2.5.1)(@types/node@24.9.1)(@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.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)))(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))(eslint@9.38.0(jiti@2.6.1))(ioredis@5.8.2)(lightningcss@1.30.2)(magicast@0.3.5)(optionator@0.9.4)(rolldown@1.0.0-beta.9)(rollup@4.52.5)(terser@5.44.0)(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))(yaml@2.8.1) + version: 4.1.0(@electric-sql/pglite@0.3.11)(@libsql/client@0.15.15)(@parcel/watcher@2.5.1)(@types/node@24.9.1)(@vercel/blob@2.0.0)(@vue/compiler-sfc@3.5.22)(aws4fetch@1.0.20)(better-sqlite3@12.4.1)(db0@0.3.4(@electric-sql/pglite@0.3.11)(@libsql/client@0.15.15)(better-sqlite3@12.4.1)(drizzle-orm@0.44.7(@cloudflare/workers-types@4.20251014.0)(@electric-sql/pglite@0.3.11)(@libsql/client@0.15.15)(@opentelemetry/api@1.9.0)(better-sqlite3@12.4.1)(pg@8.16.3)))(drizzle-orm@0.44.7(@cloudflare/workers-types@4.20251014.0)(@electric-sql/pglite@0.3.11)(@libsql/client@0.15.15)(@opentelemetry/api@1.9.0)(better-sqlite3@12.4.1)(pg@8.16.3))(eslint@9.38.0(jiti@2.6.1))(ioredis@5.8.2)(lightningcss@1.30.2)(magicast@0.3.5)(optionator@0.9.4)(rolldown@1.0.0-beta.9)(rollup@4.52.5)(terser@5.44.0)(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))(yaml@2.8.1) nuxt-auth-utils: specifier: ^0.5.25 version: 0.5.25(magicast@0.3.5) nuxt-charts: specifier: 0.2.4 version: 0.2.4(magicast@0.3.5)(vue@3.5.22(typescript@5.9.3)) + 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)) @@ -288,6 +294,9 @@ packages: '@drizzle-team/brocli@0.10.2': resolution: {integrity: sha512-z33Il7l5dKjUgGULTqBsQBQwckHh5AbIuxhdsIxDDiZAzBOrZO6q9ogcWC65kU382AfynTfgNumVcNIjuIua6w==} + '@electric-sql/pglite@0.3.11': + resolution: {integrity: sha512-FJtjnEyez8XgmgyE5Ewmx89TGVN+75ZjykFoExApRIbJBMT4dsbsuZkF/YWLuymGDfGFHDACjvENPMEqg4FoWg==} + '@emnapi/core@1.5.0': resolution: {integrity: sha512-sbP8GzB1WDzacS8fgNPpHlp6C9VZe+SJP3F90W9rLemaQj2PzIuTEl1qDOYQf58YIpyjViI24y9aPWCjEzY2cg==} @@ -6608,6 +6617,8 @@ snapshots: '@drizzle-team/brocli@0.10.2': {} + '@electric-sql/pglite@0.3.11': {} + '@emnapi/core@1.5.0': dependencies: '@emnapi/wasi-threads': 1.1.0 @@ -7356,7 +7367,7 @@ snapshots: - utf-8-validate - vite - '@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.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)(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))': + '@nuxt/fonts@0.11.4(@vercel/blob@2.0.0)(aws4fetch@1.0.20)(db0@0.3.4(@electric-sql/pglite@0.3.11)(@libsql/client@0.15.15)(better-sqlite3@12.4.1)(drizzle-orm@0.44.7(@cloudflare/workers-types@4.20251014.0)(@electric-sql/pglite@0.3.11)(@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)(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))': dependencies: '@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)) '@nuxt/kit': 3.19.2(magicast@0.3.5) @@ -7377,7 +7388,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(@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) + unstorage: 1.17.1(@vercel/blob@2.0.0)(aws4fetch@1.0.20)(db0@0.3.4(@electric-sql/pglite@0.3.11)(@libsql/client@0.15.15)(better-sqlite3@12.4.1)(drizzle-orm@0.44.7(@cloudflare/workers-types@4.20251014.0)(@electric-sql/pglite@0.3.11)(@libsql/client@0.15.15)(@opentelemetry/api@1.9.0)(better-sqlite3@12.4.1)(pg@8.16.3)))(ioredis@5.8.2) transitivePeerDependencies: - '@azure/app-configuration' - '@azure/cosmos' @@ -7538,13 +7549,13 @@ snapshots: transitivePeerDependencies: - magicast - '@nuxt/ui@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)': + '@nuxt/ui@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(@electric-sql/pglite@0.3.11)(@libsql/client@0.15.15)(better-sqlite3@12.4.1)(drizzle-orm@0.44.7(@cloudflare/workers-types@4.20251014.0)(@electric-sql/pglite@0.3.11)(@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)': dependencies: '@ai-sdk/vue': 2.0.81(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(@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)(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)) + '@nuxt/fonts': 0.11.4(@vercel/blob@2.0.0)(aws4fetch@1.0.20)(db0@0.3.4(@electric-sql/pglite@0.3.11)(@libsql/client@0.15.15)(better-sqlite3@12.4.1)(drizzle-orm@0.44.7(@cloudflare/workers-types@4.20251014.0)(@electric-sql/pglite@0.3.11)(@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)(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)) '@nuxt/icon': 2.0.0(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))(vue@3.5.22(typescript@5.9.3)) '@nuxt/kit': 4.2.0(magicast@0.3.5) '@nuxt/schema': 4.2.0 @@ -7689,7 +7700,7 @@ snapshots: - vue-tsc - yaml - '@nuxthub/core-nightly@1.0.0-20251101-232620-31e6b29(@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)(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))': + '@nuxthub/core-nightly@1.0.0-20251101-232620-31e6b29(@electric-sql/pglite@0.3.11)(@libsql/client@0.15.15)(better-sqlite3@12.4.1)(drizzle-orm@0.44.7(@cloudflare/workers-types@4.20251014.0)(@electric-sql/pglite@0.3.11)(@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)(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))': dependencies: '@ai-sdk/provider': 2.0.0 '@cloudflare/workers-types': 4.20251014.0 @@ -7701,7 +7712,7 @@ snapshots: chokidar: 4.0.3 citty: 0.1.6 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)) + db0: 0.3.4(@electric-sql/pglite@0.3.11)(@libsql/client@0.15.15)(better-sqlite3@12.4.1)(drizzle-orm@0.44.7(@cloudflare/workers-types@4.20251014.0)(@electric-sql/pglite@0.3.11)(@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 drizzle-kit: 0.31.6 @@ -7718,7 +7729,7 @@ snapshots: tinyglobby: 0.2.15 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) + unstorage: 1.17.1(@vercel/blob@2.0.0)(aws4fetch@1.0.20)(db0@0.3.4(@electric-sql/pglite@0.3.11)(@libsql/client@0.15.15)(better-sqlite3@12.4.1)(drizzle-orm@0.44.7(@cloudflare/workers-types@4.20251014.0)(@electric-sql/pglite@0.3.11)(@libsql/client@0.15.15)(@opentelemetry/api@1.9.0)(better-sqlite3@12.4.1)(pg@8.16.3)))(ioredis@5.8.2) zod: 4.1.12 transitivePeerDependencies: - '@azure/app-configuration' @@ -9734,11 +9745,12 @@ snapshots: date-fns@4.1.0: {} - 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)): + db0@0.3.4(@electric-sql/pglite@0.3.11)(@libsql/client@0.15.15)(better-sqlite3@12.4.1)(drizzle-orm@0.44.7(@cloudflare/workers-types@4.20251014.0)(@electric-sql/pglite@0.3.11)(@libsql/client@0.15.15)(@opentelemetry/api@1.9.0)(better-sqlite3@12.4.1)(pg@8.16.3)): optionalDependencies: + '@electric-sql/pglite': 0.3.11 '@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) + drizzle-orm: 0.44.7(@cloudflare/workers-types@4.20251014.0)(@electric-sql/pglite@0.3.11)(@libsql/client@0.15.15)(@opentelemetry/api@1.9.0)(better-sqlite3@12.4.1)(pg@8.16.3) debug@4.4.3: dependencies: @@ -9847,9 +9859,10 @@ snapshots: transitivePeerDependencies: - supports-color - 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): + drizzle-orm@0.44.7(@cloudflare/workers-types@4.20251014.0)(@electric-sql/pglite@0.3.11)(@libsql/client@0.15.15)(@opentelemetry/api@1.9.0)(better-sqlite3@12.4.1)(pg@8.16.3): optionalDependencies: '@cloudflare/workers-types': 4.20251014.0 + '@electric-sql/pglite': 0.3.11 '@libsql/client': 0.15.15 '@opentelemetry/api': 1.9.0 better-sqlite3: 12.4.1 @@ -11486,7 +11499,7 @@ snapshots: mlly: 1.8.0 pkg-types: 2.3.0 - nitropack@2.12.8(@libsql/client@0.15.15)(@vercel/blob@2.0.0)(aws4fetch@1.0.20)(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))(rolldown@1.0.0-beta.9): + nitropack@2.12.8(@electric-sql/pglite@0.3.11)(@libsql/client@0.15.15)(@vercel/blob@2.0.0)(aws4fetch@1.0.20)(better-sqlite3@12.4.1)(drizzle-orm@0.44.7(@cloudflare/workers-types@4.20251014.0)(@electric-sql/pglite@0.3.11)(@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.5) @@ -11507,7 +11520,7 @@ snapshots: cookie-es: 2.0.0 croner: 9.1.0 crossws: 0.3.5 - 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)) + db0: 0.3.4(@electric-sql/pglite@0.3.11)(@libsql/client@0.15.15)(better-sqlite3@12.4.1)(drizzle-orm@0.44.7(@cloudflare/workers-types@4.20251014.0)(@electric-sql/pglite@0.3.11)(@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: 10.1.0 @@ -11553,7 +11566,7 @@ snapshots: unenv: 2.0.0-rc.21 unimport: 4.1.1 unplugin-utils: 0.3.1 - 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) + unstorage: 1.17.1(@vercel/blob@2.0.0)(aws4fetch@1.0.20)(db0@0.3.4(@electric-sql/pglite@0.3.11)(@libsql/client@0.15.15)(better-sqlite3@12.4.1)(drizzle-orm@0.44.7(@cloudflare/workers-types@4.20251014.0)(@electric-sql/pglite@0.3.11)(@libsql/client@0.15.15)(@opentelemetry/api@1.9.0)(better-sqlite3@12.4.1)(pg@8.16.3)))(ioredis@5.8.2) untyped: 2.0.0 unwasm: 0.3.11 youch: 4.1.0-beta.11 @@ -11673,7 +11686,7 @@ snapshots: - supports-color - vue - nuxt@4.1.0(@libsql/client@0.15.15)(@parcel/watcher@2.5.1)(@types/node@24.9.1)(@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.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)))(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))(eslint@9.38.0(jiti@2.6.1))(ioredis@5.8.2)(lightningcss@1.30.2)(magicast@0.3.5)(optionator@0.9.4)(rolldown@1.0.0-beta.9)(rollup@4.52.5)(terser@5.44.0)(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))(yaml@2.8.1): + nuxt@4.1.0(@electric-sql/pglite@0.3.11)(@libsql/client@0.15.15)(@parcel/watcher@2.5.1)(@types/node@24.9.1)(@vercel/blob@2.0.0)(@vue/compiler-sfc@3.5.22)(aws4fetch@1.0.20)(better-sqlite3@12.4.1)(db0@0.3.4(@electric-sql/pglite@0.3.11)(@libsql/client@0.15.15)(better-sqlite3@12.4.1)(drizzle-orm@0.44.7(@cloudflare/workers-types@4.20251014.0)(@electric-sql/pglite@0.3.11)(@libsql/client@0.15.15)(@opentelemetry/api@1.9.0)(better-sqlite3@12.4.1)(pg@8.16.3)))(drizzle-orm@0.44.7(@cloudflare/workers-types@4.20251014.0)(@electric-sql/pglite@0.3.11)(@libsql/client@0.15.15)(@opentelemetry/api@1.9.0)(better-sqlite3@12.4.1)(pg@8.16.3))(eslint@9.38.0(jiti@2.6.1))(ioredis@5.8.2)(lightningcss@1.30.2)(magicast@0.3.5)(optionator@0.9.4)(rolldown@1.0.0-beta.9)(rollup@4.52.5)(terser@5.44.0)(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))(yaml@2.8.1): dependencies: '@nuxt/cli': 3.29.3(magicast@0.3.5) '@nuxt/devalue': 2.0.2 @@ -11708,7 +11721,7 @@ snapshots: mlly: 1.8.0 mocked-exports: 0.1.1 nanotar: 0.2.0 - nitropack: 2.12.8(@libsql/client@0.15.15)(@vercel/blob@2.0.0)(aws4fetch@1.0.20)(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))(rolldown@1.0.0-beta.9) + nitropack: 2.12.8(@electric-sql/pglite@0.3.11)(@libsql/client@0.15.15)(@vercel/blob@2.0.0)(aws4fetch@1.0.20)(better-sqlite3@12.4.1)(drizzle-orm@0.44.7(@cloudflare/workers-types@4.20251014.0)(@electric-sql/pglite@0.3.11)(@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 @@ -11733,7 +11746,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.6.3(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(@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) + unstorage: 1.17.1(@vercel/blob@2.0.0)(aws4fetch@1.0.20)(db0@0.3.4(@electric-sql/pglite@0.3.11)(@libsql/client@0.15.15)(better-sqlite3@12.4.1)(drizzle-orm@0.44.7(@cloudflare/workers-types@4.20251014.0)(@electric-sql/pglite@0.3.11)(@libsql/client@0.15.15)(@opentelemetry/api@1.9.0)(better-sqlite3@12.4.1)(pg@8.16.3)))(ioredis@5.8.2) untyped: 2.0.0 vue: 3.5.22(typescript@5.9.3) vue-bundle-renderer: 2.2.0 @@ -12037,19 +12050,15 @@ snapshots: pg-cloudflare@1.2.7: optional: true - pg-connection-string@2.9.1: - optional: true + pg-connection-string@2.9.1: {} - pg-int8@1.0.1: - optional: true + pg-int8@1.0.1: {} pg-pool@3.10.1(pg@8.16.3): dependencies: pg: 8.16.3 - optional: true - pg-protocol@1.10.3: - optional: true + pg-protocol@1.10.3: {} pg-types@2.2.0: dependencies: @@ -12058,7 +12067,6 @@ snapshots: postgres-bytea: 1.0.0 postgres-date: 1.0.7 postgres-interval: 1.2.0 - optional: true pg@8.16.3: dependencies: @@ -12069,12 +12077,10 @@ 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: {} @@ -12263,19 +12269,15 @@ snapshots: picocolors: 1.1.1 source-map-js: 1.2.1 - postgres-array@2.0.0: - optional: true + postgres-array@2.0.0: {} - postgres-bytea@1.0.0: - optional: true + postgres-bytea@1.0.0: {} - postgres-date@1.0.7: - optional: true + postgres-date@1.0.7: {} postgres-interval@1.2.0: dependencies: xtend: 4.0.2 - optional: true potpack@1.0.2: {} @@ -12790,8 +12792,7 @@ snapshots: speakingurl@14.0.1: {} - split2@4.2.0: - optional: true + split2@4.2.0: {} srvx@0.8.16: {} @@ -13254,7 +13255,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(@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): + unstorage@1.17.1(@vercel/blob@2.0.0)(aws4fetch@1.0.20)(db0@0.3.4(@electric-sql/pglite@0.3.11)(@libsql/client@0.15.15)(better-sqlite3@12.4.1)(drizzle-orm@0.44.7(@cloudflare/workers-types@4.20251014.0)(@electric-sql/pglite@0.3.11)(@libsql/client@0.15.15)(@opentelemetry/api@1.9.0)(better-sqlite3@12.4.1)(pg@8.16.3)))(ioredis@5.8.2): dependencies: anymatch: 3.1.3 chokidar: 4.0.3 @@ -13267,7 +13268,7 @@ snapshots: optionalDependencies: '@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)) + db0: 0.3.4(@electric-sql/pglite@0.3.11)(@libsql/client@0.15.15)(better-sqlite3@12.4.1)(drizzle-orm@0.44.7(@cloudflare/workers-types@4.20251014.0)(@electric-sql/pglite@0.3.11)(@libsql/client@0.15.15)(@opentelemetry/api@1.9.0)(better-sqlite3@12.4.1)(pg@8.16.3)) ioredis: 5.8.2 untun@0.1.3: @@ -13538,8 +13539,7 @@ snapshots: xml-name-validator@4.0.0: {} - xtend@4.0.2: - optional: true + xtend@4.0.2: {} y18n@5.0.8: {} diff --git a/server/database/migrations/postgresql/0000_living_purple_man.sql b/server/database/migrations/postgresql/0000_living_purple_man.sql new file mode 100644 index 0000000..e18375b --- /dev/null +++ b/server/database/migrations/postgresql/0000_living_purple_man.sql @@ -0,0 +1,32 @@ +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/postgresql/meta/0000_snapshot.json b/server/database/migrations/postgresql/meta/0000_snapshot.json new file mode 100644 index 0000000..f1e14a4 --- /dev/null +++ b/server/database/migrations/postgresql/meta/0000_snapshot.json @@ -0,0 +1,249 @@ +{ + "id": "dd96a88b-f6b9-48cd-a5b4-09f0364cd249", + "prevId": "00000000-0000-0000-0000-000000000000", + "version": "7", + "dialect": "postgresql", + "tables": { + "public.chats": { + "name": "chats", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "varchar(36)", + "primaryKey": true, + "notNull": true + }, + "title": { + "name": "title", + "type": "varchar(200)", + "primaryKey": false, + "notNull": false + }, + "userId": { + "name": "userId", + "type": "varchar(36)", + "primaryKey": false, + "notNull": true + }, + "createdAt": { + "name": "createdAt", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + } + }, + "indexes": { + "chats_user_id_idx": { + "name": "chats_user_id_idx", + "columns": [ + { + "expression": "userId", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.messages": { + "name": "messages", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "varchar(36)", + "primaryKey": true, + "notNull": true + }, + "chatId": { + "name": "chatId", + "type": "varchar(36)", + "primaryKey": false, + "notNull": true + }, + "role": { + "name": "role", + "type": "role", + "typeSchema": "public", + "primaryKey": false, + "notNull": true + }, + "parts": { + "name": "parts", + "type": "json", + "primaryKey": false, + "notNull": false + }, + "createdAt": { + "name": "createdAt", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + } + }, + "indexes": { + "messages_chat_id_idx": { + "name": "messages_chat_id_idx", + "columns": [ + { + "expression": "chatId", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + } + }, + "foreignKeys": { + "messages_chatId_chats_id_fk": { + "name": "messages_chatId_chats_id_fk", + "tableFrom": "messages", + "tableTo": "chats", + "columnsFrom": [ + "chatId" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.users": { + "name": "users", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "varchar(36)", + "primaryKey": true, + "notNull": true + }, + "email": { + "name": "email", + "type": "varchar(255)", + "primaryKey": false, + "notNull": true + }, + "name": { + "name": "name", + "type": "varchar(100)", + "primaryKey": false, + "notNull": true + }, + "avatar": { + "name": "avatar", + "type": "varchar(500)", + "primaryKey": false, + "notNull": true + }, + "username": { + "name": "username", + "type": "varchar(50)", + "primaryKey": false, + "notNull": true + }, + "provider": { + "name": "provider", + "type": "provider", + "typeSchema": "public", + "primaryKey": false, + "notNull": true + }, + "providerId": { + "name": "providerId", + "type": "varchar(50)", + "primaryKey": false, + "notNull": true + }, + "createdAt": { + "name": "createdAt", + "type": "timestamp", + "primaryKey": false, + "notNull": true, + "default": "now()" + } + }, + "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" + } + ], + "isUnique": true, + "concurrently": false, + "method": "btree", + "with": {} + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + } + }, + "enums": { + "public.provider": { + "name": "provider", + "schema": "public", + "values": [ + "github" + ] + }, + "public.role": { + "name": "role", + "schema": "public", + "values": [ + "user", + "assistant" + ] + } + }, + "schemas": {}, + "sequences": {}, + "roles": {}, + "policies": {}, + "views": {}, + "_meta": { + "columns": {}, + "schemas": {}, + "tables": {} + } +} \ No newline at end of file diff --git a/server/database/migrations/postgresql/meta/_journal.json b/server/database/migrations/postgresql/meta/_journal.json new file mode 100644 index 0000000..1ae5c3e --- /dev/null +++ b/server/database/migrations/postgresql/meta/_journal.json @@ -0,0 +1,13 @@ +{ + "version": "7", + "dialect": "postgresql", + "entries": [ + { + "idx": 0, + "version": "7", + "when": 1762073297549, + "tag": "0000_living_purple_man", + "breakpoints": true + } + ] +} \ No newline at end of file diff --git a/server/database/schema.postgresql.ts b/server/database/schema.postgresql.ts new file mode 100644 index 0000000..62a44f8 --- /dev/null +++ b/server/database/schema.postgresql.ts @@ -0,0 +1,60 @@ +import { pgTable, varchar, pgEnum, timestamp, index, uniqueIndex, json } from 'drizzle-orm/pg-core' +import { relations } from 'drizzle-orm' + +const timestamps = { + createdAt: timestamp().defaultNow().notNull() +} + +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(), + ...timestamps +}, table => [ + uniqueIndex('users_provider_id_idx').on(table.provider, table.providerId) +]) + +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(), + ...timestamps +}, table => [ + index('chats_user_id_idx').on(table.userId) +]) + +export const chatsRelations = relations(chats, ({ one, many }) => ({ + user: one(users, { + fields: [chats.userId], + references: [users.id] + }), + 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(), + ...timestamps +}, table => [ + index('messages_chat_id_idx').on(table.chatId) +]) + +export const messagesRelations = relations(messages, ({ one }) => ({ + chat: one(chats, { + fields: [messages.chatId], + references: [chats.id] + }) +})) From 4625f125a017f3367887152fc74efd8eed4b0d41 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9bastien=20Chopin?= Date: Sun, 2 Nov 2025 11:09:25 +0100 Subject: [PATCH 15/19] should be ready --- app/composables/useChats.ts | 21 +++++--- app/layouts/default.vue | 5 +- app/pages/chat/[id].vue | 6 +-- package.json | 4 +- pnpm-lock.yaml | 92 +++++++++++++++++++------------- server/api/chats.get.ts | 7 ++- server/api/chats.post.ts | 2 +- server/api/chats/[id].delete.ts | 9 +++- server/api/chats/[id].get.ts | 13 +++-- server/api/chats/[id].post.ts | 5 +- server/routes/auth/github.get.ts | 14 +++-- shared/types/db.d.ts | 6 +-- 12 files changed, 118 insertions(+), 66 deletions(-) diff --git a/app/composables/useChats.ts b/app/composables/useChats.ts index 8b341fd..38ec744 100644 --- a/app/composables/useChats.ts +++ b/app/composables/useChats.ts @@ -1,13 +1,20 @@ import { isToday, isYesterday, subMonths } from 'date-fns' -export function useChats(chats: Ref) { +export interface UIChat { + id: string + label: string + icon: string + createdAt: string +} + +export function useChats(chats: Ref) { const groups = computed(() => { // Group chats by date - const today: Chat[] = [] - const yesterday: Chat[] = [] - const lastWeek: Chat[] = [] - const lastMonth: Chat[] = [] - const older: Record = {} + const today: UIChat[] = [] + const yesterday: UIChat[] = [] + const lastWeek: UIChat[] = [] + const lastMonth: UIChat[] = [] + const older: Record = {} const oneWeekAgo = subMonths(new Date(), 0.25) // ~7 days ago const oneMonthAgo = subMonths(new Date(), 1) @@ -49,7 +56,7 @@ export function useChats(chats: Ref) { const formattedGroups = [] as Array<{ id: string label: string - items: Array + items: Array }> // Add groups that have chats diff --git a/app/layouts/default.vue b/app/layouts/default.vue index 4cf32e2..ff2bfd4 100644 --- a/app/layouts/default.vue +++ b/app/layouts/default.vue @@ -1,5 +1,6 @@