From 3257d0a2fe73847b501bdf36f09053638b4a41a4 Mon Sep 17 00:00:00 2001 From: Julius Marminge Date: Mon, 22 Apr 2024 09:35:58 +0200 Subject: [PATCH] chore: replace better-sqlite3 with libsql (#1830) --- .changeset/beige-buttons-chew.md | 5 + cli/package.json | 3 +- cli/src/cli/index.ts | 2 +- cli/src/installers/dependencyVersionMap.ts | 3 +- cli/src/installers/drizzle.ts | 3 +- cli/src/installers/envVars.ts | 13 +- .../extras/config/drizzle-config-sqlite.ts | 2 +- .../server/db/index-drizzle/with-sqlite.ts | 14 +- pnpm-lock.yaml | 215 +++++++++++++++++- 9 files changed, 226 insertions(+), 34 deletions(-) create mode 100644 .changeset/beige-buttons-chew.md diff --git a/.changeset/beige-buttons-chew.md b/.changeset/beige-buttons-chew.md new file mode 100644 index 0000000000..bac1cf0ff5 --- /dev/null +++ b/.changeset/beige-buttons-chew.md @@ -0,0 +1,5 @@ +--- +"create-t3-app": minor +--- + +feat: replace better-sqlite3 with libsql diff --git a/cli/package.json b/cli/package.json index bf9b531713..84b732f287 100644 --- a/cli/package.json +++ b/cli/package.json @@ -64,6 +64,7 @@ "devDependencies": { "@auth/drizzle-adapter": "^0.7.0", "@auth/prisma-adapter": "^1.4.0", + "@libsql/client": "^0.6.0", "@planetscale/database": "^1.16.0", "@prisma/adapter-planetscale": "^5.10.2", "@prisma/client": "^5.10.2", @@ -73,11 +74,9 @@ "@trpc/next": "next", "@trpc/react-query": "next", "@trpc/server": "next", - "@types/better-sqlite3": "^7.6.9", "@types/fs-extra": "^11.0.4", "@types/gradient-string": "^1.1.5", "@types/node": "^20.11.20", - "better-sqlite3": "^9.4.3", "drizzle-kit": "^0.20.14", "drizzle-orm": "^0.29.4", "mysql2": "^3.9.1", diff --git a/cli/src/cli/index.ts b/cli/src/cli/index.ts index 402128a7aa..acb13a3956 100644 --- a/cli/src/cli/index.ts +++ b/cli/src/cli/index.ts @@ -284,7 +284,7 @@ export const runCli = async (): Promise => { return p.select({ message: "What database provider would you like to use?", options: [ - { value: "sqlite", label: "SQLite" }, + { value: "sqlite", label: "SQLite (LibSQL)" }, { value: "mysql", label: "MySQL" }, { value: "postgres", label: "PostgreSQL" }, { value: "planetscale", label: "PlanetScale" }, diff --git a/cli/src/installers/dependencyVersionMap.ts b/cli/src/installers/dependencyVersionMap.ts index 53ff251e74..1fbb1e6037 100644 --- a/cli/src/installers/dependencyVersionMap.ts +++ b/cli/src/installers/dependencyVersionMap.ts @@ -21,8 +21,7 @@ export const dependencyVersionMap = { "@planetscale/database": "^1.16.0", postgres: "^3.4.3", pg: "^8.11.3", - "@types/better-sqlite3": "^7.6.9", - "better-sqlite3": "^9.4.3", + "@libsql/client": "^0.6.0", // TailwindCSS tailwindcss: "^3.4.1", diff --git a/cli/src/installers/drizzle.ts b/cli/src/installers/drizzle.ts index f77fbc4754..8fac03f8ae 100644 --- a/cli/src/installers/drizzle.ts +++ b/cli/src/installers/drizzle.ts @@ -18,7 +18,6 @@ export const drizzleInstaller: Installer = ({ "eslint-plugin-drizzle", ]; if (databaseProvider === "planetscale") devPackages.push("mysql2"); - if (databaseProvider === "sqlite") devPackages.push("@types/better-sqlite3"); if (databaseProvider === "postgres") devPackages.push("pg"); addPackageDependency({ @@ -35,7 +34,7 @@ export const drizzleInstaller: Installer = ({ planetscale: "@planetscale/database", mysql: "mysql2", postgres: "postgres", - sqlite: "better-sqlite3", + sqlite: "@libsql/client", } as const )[databaseProvider], ], diff --git a/cli/src/installers/envVars.ts b/cli/src/installers/envVars.ts index e27e4c5f4f..6924f6403f 100644 --- a/cli/src/installers/envVars.ts +++ b/cli/src/installers/envVars.ts @@ -44,15 +44,8 @@ export const envVariablesInstaller: Installer = ({ "template/extras/src/env", envFile ); - const envFileText = fs.readFileSync(envSchemaSrc, "utf-8"); const envSchemaDest = path.join(projectDir, "src/env.js"); - fs.writeFileSync( - envSchemaDest, - databaseProvider === "sqlite" - ? envFileText.replace("\n .url()", "") - : envFileText, - "utf-8" - ); + fs.copyFileSync(envSchemaSrc, envSchemaDest); } const envDest = path.join(projectDir, ".env"); @@ -99,9 +92,7 @@ DATABASE_URL='mysql://YOUR_MYSQL_URL_HERE?sslaccept=strict'`; } else if (databaseProvider === "postgres") { content += `DATABASE_URL="postgresql://postgres:password@localhost:5432/${projectName}"`; } else if (databaseProvider === "sqlite") { - content += usingPrisma - ? 'DATABASE_URL="file:./db.sqlite"' - : 'DATABASE_URL="db.sqlite"'; + content += 'DATABASE_URL="file:./db.sqlite"'; } content += "\n"; } diff --git a/cli/template/extras/config/drizzle-config-sqlite.ts b/cli/template/extras/config/drizzle-config-sqlite.ts index 38b5499186..a9354348cd 100644 --- a/cli/template/extras/config/drizzle-config-sqlite.ts +++ b/cli/template/extras/config/drizzle-config-sqlite.ts @@ -4,7 +4,7 @@ import { env } from "~/env"; export default { schema: "./src/server/db/schema.ts", - driver: "better-sqlite", + driver: "libsql", dbCredentials: { url: env.DATABASE_URL, }, diff --git a/cli/template/extras/src/server/db/index-drizzle/with-sqlite.ts b/cli/template/extras/src/server/db/index-drizzle/with-sqlite.ts index ac137980fc..ef1df14ac2 100644 --- a/cli/template/extras/src/server/db/index-drizzle/with-sqlite.ts +++ b/cli/template/extras/src/server/db/index-drizzle/with-sqlite.ts @@ -1,5 +1,5 @@ -import Database from "better-sqlite3"; -import { drizzle } from "drizzle-orm/better-sqlite3"; +import { createClient, type Client } from "@libsql/client"; +import { drizzle } from "drizzle-orm/libsql"; import { env } from "~/env"; import * as schema from "./schema"; @@ -9,11 +9,11 @@ import * as schema from "./schema"; * update. */ const globalForDb = globalThis as unknown as { - conn: Database.Database | undefined; + client: Client | undefined; }; -export const conn = - globalForDb.conn ?? new Database(env.DATABASE_URL, { fileMustExist: false }); -if (env.NODE_ENV !== "production") globalForDb.conn = conn; +export const client = + globalForDb.client ?? createClient({ url: env.DATABASE_URL }); +if (env.NODE_ENV !== "production") globalForDb.client = client; -export const db = drizzle(conn, { schema }); +export const db = drizzle(client, { schema }); diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index fea6f58e23..834956baad 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -102,6 +102,9 @@ importers: '@auth/prisma-adapter': specifier: ^1.4.0 version: 1.4.0(@prisma/client@5.10.2(prisma@5.10.2)) + '@libsql/client': + specifier: ^0.6.0 + version: 0.6.0 '@planetscale/database': specifier: ^1.16.0 version: 1.16.0 @@ -129,9 +132,6 @@ importers: '@trpc/server': specifier: next version: 11.0.0-rc.340 - '@types/better-sqlite3': - specifier: ^7.6.9 - version: 7.6.9 '@types/fs-extra': specifier: ^11.0.4 version: 11.0.4 @@ -141,15 +141,12 @@ importers: '@types/node': specifier: ^20.11.20 version: 20.11.20 - better-sqlite3: - specifier: ^9.4.3 - version: 9.4.3 drizzle-kit: specifier: ^0.20.14 version: 0.20.14 drizzle-orm: specifier: ^0.29.4 - version: 0.29.4(@planetscale/database@1.16.0)(@types/better-sqlite3@7.6.9)(@types/react@18.2.57)(better-sqlite3@9.4.3)(mysql2@3.9.1)(postgres@3.4.3)(react@18.2.0) + version: 0.29.4(@libsql/client@0.6.0)(@planetscale/database@1.16.0)(@types/better-sqlite3@7.6.9)(@types/react@18.2.57)(better-sqlite3@9.4.3)(mysql2@3.9.1)(postgres@3.4.3)(react@18.2.0) mysql2: specifier: ^3.9.1 version: 3.9.1 @@ -1481,6 +1478,56 @@ packages: '@jridgewell/trace-mapping@0.3.17': resolution: {integrity: sha512-MCNzAp77qzKca9+W/+I0+sEpaUnZoeasnghNeVc41VZCEKaCH73Vq3BZZ/SzWIgrqE4H4ceI+p+b6C0mHf9T4g==} + '@libsql/client@0.6.0': + resolution: {integrity: sha512-qhQzTG/y2IEVbL3+9PULDvlQFWJ/RnjFXECr/Nc3nRngGiiMysDaOV5VUzYk7DulUX98EA4wi+z3FspKrUplUA==} + + '@libsql/core@0.6.0': + resolution: {integrity: sha512-affAB8vSqQwqI9NBDJ5uJCVaHoOAS2pOpbv1kWConh1SBbmJBnHHd4KG73RAJ2sgd2+NbT9WA+XJBqxgp28YSw==} + + '@libsql/darwin-arm64@0.3.16': + resolution: {integrity: sha512-GPQGCulqknc4BnluNuBDK55wwAah9j3KCsRQPAAbz1XsGrPyWgXOyID6e6wNk4ZPXCFOdLs9OCUsJH6hT6dwlQ==} + cpu: [arm64] + os: [darwin] + + '@libsql/darwin-x64@0.3.16': + resolution: {integrity: sha512-SXomcHsQSw5W/g0kZsiE3qNo/r4R1FAxfXoR6PgFOiFD85r7iUm+dRBcXwqtftiUanDlbhhrENhBPY0zuLoSfA==} + cpu: [x64] + os: [darwin] + + '@libsql/hrana-client@0.6.0': + resolution: {integrity: sha512-k+fqzdjqg3IvWfKmVJK5StsbjeTcyNAXFelUbXbGNz3yH1gEVT9mZ6kmhsIXP30ZSyVV0AE1Gi25p82mxC9hwg==} + + '@libsql/isomorphic-fetch@0.2.1': + resolution: {integrity: sha512-Sv07QP1Aw8A5OOrmKgRUBKe2fFhF2hpGJhtHe3d1aRnTESZCGkn//0zDycMKTGamVWb3oLYRroOsCV8Ukes9GA==} + + '@libsql/isomorphic-ws@0.1.5': + resolution: {integrity: sha512-DtLWIH29onUYR00i0GlQ3UdcTRC6EP4u9w/h9LxpUZJWRMARk6dQwZ6Jkd+QdwVpuAOrdxt18v0K2uIYR3fwFg==} + + '@libsql/linux-arm64-gnu@0.3.16': + resolution: {integrity: sha512-pvXyj0THb/y7P9mRl263ouEsQUaOPAw+dlKJZ3NDzinDImSr1JsPtgsftEAGJx2Y7qajbMAkor72uwQNj927/A==} + cpu: [arm64] + os: [linux] + + '@libsql/linux-arm64-musl@0.3.16': + resolution: {integrity: sha512-IfNkwH1TJWnCys+1NFz8j7Hto3N5KTYuCQ/EshIhUiQSzx00aNEor+5cZMr1CCK2Vw+Pdog5zKyvWKNHqUwnyw==} + cpu: [arm64] + os: [linux] + + '@libsql/linux-x64-gnu@0.3.16': + resolution: {integrity: sha512-O2OURkYa0jb2nGTjPpGWU5oTyj6DmBsB0dDCx/Y5wThpNLM5kbHRpXyyz8QdTE9PW5oM1zn9ij8kUYhgFDfCaQ==} + cpu: [x64] + os: [linux] + + '@libsql/linux-x64-musl@0.3.16': + resolution: {integrity: sha512-D+4uS9HdHIAHgn3KvH9aJSJOv4Zi80ccfCFVFVbJESJ/0pdqyJVBZGzHYyuw59ol0xZAgfcxIFSriyAragbhEA==} + cpu: [x64] + os: [linux] + + '@libsql/win32-x64-msvc@0.3.16': + resolution: {integrity: sha512-/+n2ibxYs6C1GHQbmkdeCPlw7QhAJJb4XOAEzvfk069lelk8f26MHrodJJiRBBJczmwUl4HNwDjR4HT2+k9ljw==} + cpu: [x64] + os: [win32] + '@ljharb/has-package-exports-patterns@0.0.2': resolution: {integrity: sha512-4/RWEeXDO6bocPONheFe6gX/oQdP/bEpv0oL4HqjPP5DCenBSt0mHgahppY49N0CpsaqffdwPq+TlX9CYOq2Dw==} @@ -1524,6 +1571,9 @@ packages: peerDependencies: rollup: '>=2' + '@neon-rs/load@0.0.4': + resolution: {integrity: sha512-kTPhdZyTQxB+2wpiRcFWrDcejc4JI6tkPuS7UZCG4l6Zvc5kU/gGQ/ozvHTh1XR5tS+UlfAfGuPajjzQjCiHCw==} + '@next/env@14.2.1': resolution: {integrity: sha512-qsHJle3GU3CmVx7pUoXcghX4sRN+vINkbLdH611T8ZlsP//grzqVW87BSUgOZeSAD4q7ZdZicdwNe/20U2janA==} @@ -2144,6 +2194,9 @@ packages: '@types/unist@2.0.6': resolution: {integrity: sha512-PBjIUxZHOuj0R15/xuwJYjFi+KZdNFrehocChv4g5hu6aFroHue8m0lBP0POdK2nKzbw0cgV1mws8+V/JAcEkQ==} + '@types/ws@8.5.10': + resolution: {integrity: sha512-vmQSUcfalpIq0R9q7uTo2lXs6eGIpt9wtnLdMv9LVpIjCA/+ufZRozlVoVelIYixx1ugCBKDhn89vnsEGOCx9A==} + '@types/yargs-parser@21.0.0': resolution: {integrity: sha512-iO9ZQHkZxHn4mSakYV0vFHAVDyEOIJQrV2uZ06HxEPcx+mt8swXoZHIbaaJ2crJYFfErySgktuTZ3BeLz+XmFA==} @@ -2861,6 +2914,10 @@ packages: damerau-levenshtein@1.0.8: resolution: {integrity: sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA==} + data-uri-to-buffer@4.0.1: + resolution: {integrity: sha512-0R9ikRb668HB7QDxT1vkpuUBtqc53YyAwMwGeUFKRojY/NWKvdZ+9UYtRfGmhqNbRkTSVpMbmyhXipFFv2cb/A==} + engines: {node: '>= 12'} + dataloader@1.4.0: resolution: {integrity: sha512-68s5jYdlvasItOJnCuI2Q9s4q98g0pCyL3HrcKJu8KNugUl8ahgmZYg38ysLTgQjjXX3H8CJLkAvWrclWfcalw==} @@ -3503,6 +3560,10 @@ packages: fault@2.0.1: resolution: {integrity: sha512-WtySTkS4OKev5JtpHXnib4Gxiurzh5NCGvWrFaZ34m6JehfTUhKZvn9njTfw48t6JumVQOmrKqpmGcdwxnhqBQ==} + fetch-blob@3.2.0: + resolution: {integrity: sha512-7yAQpD2UMJzLi1Dqv7qFYnPbaPx7ZfFK6PiIxQ4PfkGPyNyl2Ugx+a/umUonmKqjhM4DnfbMvdX6otXq83soQQ==} + engines: {node: ^12.20 || >= 14.13} + fflate@0.7.4: resolution: {integrity: sha512-5u2V/CDW15QM1XbbgS+0DfPxVB+jUKhWEKuuFuHncbk3tEEqzmoXL+2KyOFuKGqOnmdIy0/davWF1CkuwtibCw==} @@ -3546,6 +3607,10 @@ packages: resolution: {integrity: sha512-wzsgA6WOq+09wrU1tsJ09udeR/YZRaeArL9e1wPbFg3GG2yDnC2ldKpxs4xunpFF9DgqCqOIra3bc1HWrJ37Ww==} engines: {node: '>=0.4.x'} + formdata-polyfill@4.0.10: + resolution: {integrity: sha512-buewHzMvYL29jdeQTVILecSaZKnt/RJWjoZCF5OW60Z67/GmSLBkOFM7qh1PI3zFNtJbaZL5eQu1vLfazOwj4g==} + engines: {node: '>=12.20.0'} + fraction.js@4.2.0: resolution: {integrity: sha512-MhLuK+2gUcnZe8ZHlaaINnQLl0xRIGRfcGk2yl8xoQAfHrSsL3rYu6FCmBdkdbhc9EPlwyGHewaRsvwRMJtAlA==} @@ -4148,6 +4213,9 @@ packages: resolution: {integrity: sha512-34wB/Y7MW7bzjKRjUKTa46I2Z7eV62Rkhva+KkopW7Qvv/OSWBqvkSY7vusOPrNuZcUG3tApvdVgNB8POj3SPw==} engines: {node: '>=10'} + js-base64@3.7.7: + resolution: {integrity: sha512-7rCnleh0z2CkXhH67J8K1Ytz0b2Y+yxTPL+/KOJoa20hfnVQ/3/T6W/KflYI4bRHRagNeXeU2bkNGI3v1oS/lw==} + js-tokens@4.0.0: resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} @@ -4230,6 +4298,11 @@ packages: resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==} engines: {node: '>= 0.8.0'} + libsql@0.3.16: + resolution: {integrity: sha512-pIv3hP+W0bHTyjg56H5O3D45RP1BGcs0jnSOCk8PQ41nlPpVG3+sG9AG9Vc2NcnvFKuL02gGPFLzvbBe8AQjgg==} + cpu: [x64, arm64, wasm32] + os: [darwin, linux, win32] + lilconfig@2.1.0: resolution: {integrity: sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==} engines: {node: '>=10'} @@ -4683,6 +4756,10 @@ packages: node-addon-api@6.1.0: resolution: {integrity: sha512-+eawOlIgy680F0kBzPUNFhMZGtJ1YmqM6l4+Crf4IkImjYrO/mqPwRMh352g23uIaQKFItcQ64I7KMaJxHgAVA==} + node-domexception@1.0.0: + resolution: {integrity: sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==} + engines: {node: '>=10.5.0'} + node-fetch@2.6.9: resolution: {integrity: sha512-DJm/CJkZkRjKKj4Zi4BsKVZh3ValV5IR5s7LVZnW+6YMh0W1BfNA8XSs6DLMGYlId5F3KnA70uu2qepcR08Qqg==} engines: {node: 4.x || >=6.0.0} @@ -4692,6 +4769,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-gyp-build@4.6.0: resolution: {integrity: sha512-NTZVKn9IylLwUzaKjkas1e4u2DLNcV4rdYagA4PWdPwW87Bi7z+BznyKSRwS/761tV/lzCGXplWsiaMjLqP2zQ==} hasBin: true @@ -6257,6 +6338,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'} + web-vitals@3.4.0: resolution: {integrity: sha512-n9fZ5/bG1oeDkyxLWyep0eahrNcPDF6bFqoyispt7xkW0xhDzpUBTgyDKqWDi1twT0MgH4HvvqzpUyh0ZxZV4A==} @@ -6349,6 +6434,18 @@ packages: wrappy@1.0.2: resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} + ws@8.16.0: + resolution: {integrity: sha512-HS0c//TP7Ina87TfiPUz1rQzMhHrl/SG2guqRcTOIUYD2q8uhUdNHZYJUaQ8aTGPzCh+c6oawMKW35nFl1dxyQ==} + engines: {node: '>=10.0.0'} + peerDependencies: + bufferutil: ^4.0.1 + utf-8-validate: '>=5.0.2' + peerDependenciesMeta: + bufferutil: + optional: true + utf-8-validate: + optional: true + y18n@4.0.3: resolution: {integrity: sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==} @@ -7422,6 +7519,61 @@ snapshots: '@jridgewell/resolve-uri': 3.1.0 '@jridgewell/sourcemap-codec': 1.4.14 + '@libsql/client@0.6.0': + dependencies: + '@libsql/core': 0.6.0 + '@libsql/hrana-client': 0.6.0 + js-base64: 3.7.7 + libsql: 0.3.16 + transitivePeerDependencies: + - bufferutil + - utf-8-validate + + '@libsql/core@0.6.0': + dependencies: + js-base64: 3.7.7 + + '@libsql/darwin-arm64@0.3.16': + optional: true + + '@libsql/darwin-x64@0.3.16': + optional: true + + '@libsql/hrana-client@0.6.0': + dependencies: + '@libsql/isomorphic-fetch': 0.2.1 + '@libsql/isomorphic-ws': 0.1.5 + js-base64: 3.7.7 + node-fetch: 3.3.2 + transitivePeerDependencies: + - bufferutil + - utf-8-validate + + '@libsql/isomorphic-fetch@0.2.1': {} + + '@libsql/isomorphic-ws@0.1.5': + dependencies: + '@types/ws': 8.5.10 + ws: 8.16.0 + transitivePeerDependencies: + - bufferutil + - utf-8-validate + + '@libsql/linux-arm64-gnu@0.3.16': + optional: true + + '@libsql/linux-arm64-musl@0.3.16': + optional: true + + '@libsql/linux-x64-gnu@0.3.16': + optional: true + + '@libsql/linux-x64-musl@0.3.16': + optional: true + + '@libsql/win32-x64-msvc@0.3.16': + optional: true + '@ljharb/has-package-exports-patterns@0.0.2': {} '@manypkg/cli@0.20.0': @@ -7530,6 +7682,8 @@ snapshots: transitivePeerDependencies: - supports-color + '@neon-rs/load@0.0.4': {} + '@next/env@14.2.1': {} '@next/eslint-plugin-next@14.1.3': @@ -8062,6 +8216,7 @@ snapshots: '@types/better-sqlite3@7.6.9': dependencies: '@types/node': 20.11.20 + optional: true '@types/cookie@0.6.0': {} @@ -8188,6 +8343,10 @@ snapshots: '@types/unist@2.0.6': {} + '@types/ws@8.5.10': + dependencies: + '@types/node': 20.11.20 + '@types/yargs-parser@21.0.0': {} '@typescript-eslint/eslint-plugin@7.1.1(@typescript-eslint/parser@7.1.1(eslint@8.57.0)(typescript@5.4.2))(eslint@8.57.0)(typescript@5.4.2)': @@ -8767,6 +8926,7 @@ snapshots: dependencies: bindings: 1.5.0 prebuild-install: 7.1.1 + optional: true binary-extensions@2.2.0: {} @@ -9085,6 +9245,8 @@ snapshots: damerau-levenshtein@1.0.8: {} + data-uri-to-buffer@4.0.1: {} + dataloader@1.4.0: {} debug@3.2.7: @@ -9236,8 +9398,9 @@ snapshots: transitivePeerDependencies: - supports-color - drizzle-orm@0.29.4(@planetscale/database@1.16.0)(@types/better-sqlite3@7.6.9)(@types/react@18.2.57)(better-sqlite3@9.4.3)(mysql2@3.9.1)(postgres@3.4.3)(react@18.2.0): + drizzle-orm@0.29.4(@libsql/client@0.6.0)(@planetscale/database@1.16.0)(@types/better-sqlite3@7.6.9)(@types/react@18.2.57)(better-sqlite3@9.4.3)(mysql2@3.9.1)(postgres@3.4.3)(react@18.2.0): optionalDependencies: + '@libsql/client': 0.6.0 '@planetscale/database': 1.16.0 '@types/better-sqlite3': 7.6.9 '@types/react': 18.2.57 @@ -9992,6 +10155,11 @@ snapshots: dependencies: format: 0.2.2 + fetch-blob@3.2.0: + dependencies: + node-domexception: 1.0.0 + web-streams-polyfill: 3.3.3 + fflate@0.7.4: {} file-entry-cache@6.0.1: @@ -10037,6 +10205,10 @@ snapshots: format@0.2.2: {} + formdata-polyfill@4.0.10: + dependencies: + fetch-blob: 3.2.0 + fraction.js@4.2.0: {} fs-constants@1.0.0: {} @@ -10690,6 +10862,8 @@ snapshots: joycon@3.1.1: {} + js-base64@3.7.7: {} + js-tokens@4.0.0: {} js-yaml@3.14.1: @@ -10763,6 +10937,19 @@ snapshots: prelude-ls: 1.2.1 type-check: 0.4.0 + libsql@0.3.16: + dependencies: + '@neon-rs/load': 0.0.4 + detect-libc: 2.0.2 + optionalDependencies: + '@libsql/darwin-arm64': 0.3.16 + '@libsql/darwin-x64': 0.3.16 + '@libsql/linux-arm64-gnu': 0.3.16 + '@libsql/linux-arm64-musl': 0.3.16 + '@libsql/linux-x64-gnu': 0.3.16 + '@libsql/linux-x64-musl': 0.3.16 + '@libsql/win32-x64-msvc': 0.3.16 + lilconfig@2.1.0: {} linebreak@1.1.0: @@ -11465,10 +11652,18 @@ snapshots: node-addon-api@6.1.0: {} + node-domexception@1.0.0: {} + node-fetch@2.6.9: 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-gyp-build@4.6.0: {} node-releases@2.0.13: {} @@ -13173,6 +13368,8 @@ snapshots: web-namespaces@2.0.1: {} + web-streams-polyfill@3.3.3: {} + web-vitals@3.4.0: {} webidl-conversions@3.0.1: {} @@ -13317,6 +13514,8 @@ snapshots: wrappy@1.0.2: {} + ws@8.16.0: {} + y18n@4.0.3: {} y18n@5.0.8: {}