diff --git a/.github/workflows/adapter-tests.yml b/.github/workflows/adapter-tests.yml index fbf8473fb9..62550eb822 100644 --- a/.github/workflows/adapter-tests.yml +++ b/.github/workflows/adapter-tests.yml @@ -59,11 +59,11 @@ jobs: sleep 10 - name: Test Adapters - working-directory: packages/better-auth + working-directory: e2e/adapter env: TURBO_TOKEN: ${{ secrets.TURBO_TOKEN }} TURBO_TEAM: ${{ vars.TURBO_TEAM || github.repository_owner }} - run: pnpm test:adapters + run: pnpm test - name: Stop Docker Containers run: docker compose down diff --git a/demo/oidc-client/tsconfig.json b/demo/oidc-client/tsconfig.json index c20738e283..e618c8c494 100644 --- a/demo/oidc-client/tsconfig.json +++ b/demo/oidc-client/tsconfig.json @@ -20,6 +20,6 @@ "@/*": ["./src/*"] } }, - "include": ["src"], + "include": ["./src"], "references": [{ "path": "./tsconfig.node.json" }] } diff --git a/e2e/adapter/package.json b/e2e/adapter/package.json new file mode 100644 index 0000000000..d4ed857ec1 --- /dev/null +++ b/e2e/adapter/package.json @@ -0,0 +1,33 @@ +{ + "name": "adapter", + "scripts": { + "test": "vitest", + "prepare": "prisma generate --schema ./test/prisma-adapter/base.prisma" + }, + "private": true, + "devDependencies": { + "@better-auth/core": "workspace:*", + "@better-auth/drizzle-adapter": "workspace:*", + "@better-auth/kysely-adapter": "workspace:*", + "@better-auth/memory-adapter": "workspace:*", + "@better-auth/mongo-adapter": "workspace:*", + "@better-auth/prisma-adapter": "workspace:*", + "@prisma/client": "^5.22.0", + "@types/better-sqlite3": "^7.6.13", + "@types/pg": "^8.15.5", + "better-auth": "workspace:*", + "better-sqlite3": "^12.5.0", + "drizzle-kit": "^0.30.0", + "drizzle-orm": "^0.45.1", + "mongodb": "^7.0.0", + "mysql2": "^3.14.4", + "pg": "^8.16.3", + "prisma": "^5.22.0", + "tarn": "^3.0.2", + "tedious": "^18.6.1" + }, + "dependencies": { + "deepmerge": "^4.3.1", + "kysely": "^0.28.5" + } +} diff --git a/packages/better-auth/src/adapters/memory-adapter/adapter.memory.test.ts b/e2e/adapter/test/adapter.memory.test.ts similarity index 80% rename from packages/better-auth/src/adapters/memory-adapter/adapter.memory.test.ts rename to e2e/adapter/test/adapter.memory.test.ts index 96adda7347..00b79c0b35 100644 --- a/packages/better-auth/src/adapters/memory-adapter/adapter.memory.test.ts +++ b/e2e/adapter/test/adapter.memory.test.ts @@ -1,5 +1,6 @@ -import { getAuthTables } from "../../db"; -import { testAdapter } from "../test-adapter"; +import { memoryAdapter } from "@better-auth/memory-adapter"; +import { getAuthTables } from "better-auth/db"; +import { testAdapter } from "./test-adapter"; import { authFlowTestSuite, joinsTestSuite, @@ -7,8 +8,7 @@ import { numberIdTestSuite, transactionsTestSuite, uuidTestSuite, -} from "../tests"; -import { memoryAdapter } from "./memory-adapter"; +} from "./tests"; let db: Record = {}; diff --git a/packages/better-auth/src/adapters/create-test-suite.ts b/e2e/adapter/test/create-test-suite.ts similarity index 99% rename from packages/better-auth/src/adapters/create-test-suite.ts rename to e2e/adapter/test/create-test-suite.ts index 7eea1e07ab..ca15ff2659 100644 --- a/packages/better-auth/src/adapters/create-test-suite.ts +++ b/e2e/adapter/test/create-test-suite.ts @@ -1,4 +1,10 @@ import type { BetterAuthOptions } from "@better-auth/core"; +import type { + Account, + Session, + User, + Verification, +} from "@better-auth/core/db"; import { getAuthTables } from "@better-auth/core/db"; import type { DBAdapter } from "@better-auth/core/db/adapter"; import { @@ -8,9 +14,8 @@ import { } from "@better-auth/core/db/adapter"; import { TTY_COLORS } from "@better-auth/core/env"; import { generateId } from "@better-auth/core/utils/id"; +import { betterAuth } from "better-auth"; import { test } from "vitest"; -import { betterAuth } from "../auth/full"; -import type { Account, Session, User, Verification } from "../types"; import type { Logger } from "./test-adapter"; /** diff --git a/packages/better-auth/src/adapters/drizzle-adapter/test/.gitignore b/e2e/adapter/test/drizzle-adapter/.gitignore similarity index 100% rename from packages/better-auth/src/adapters/drizzle-adapter/test/.gitignore rename to e2e/adapter/test/drizzle-adapter/.gitignore diff --git a/packages/better-auth/src/adapters/drizzle-adapter/test/adapter.drizzle.mysql.test.ts b/e2e/adapter/test/drizzle-adapter/adapter.drizzle.mysql.test.ts similarity index 94% rename from packages/better-auth/src/adapters/drizzle-adapter/test/adapter.drizzle.mysql.test.ts rename to e2e/adapter/test/drizzle-adapter/adapter.drizzle.mysql.test.ts index c6cb3cc067..a364bde6b0 100644 --- a/packages/better-auth/src/adapters/drizzle-adapter/test/adapter.drizzle.mysql.test.ts +++ b/e2e/adapter/test/drizzle-adapter/adapter.drizzle.mysql.test.ts @@ -1,8 +1,9 @@ import { execSync } from "node:child_process"; +import { drizzleAdapter } from "@better-auth/drizzle-adapter"; import { drizzle } from "drizzle-orm/mysql2"; import { createPool } from "mysql2/promise"; import { assert } from "vitest"; -import { testAdapter } from "../../test-adapter"; +import { testAdapter } from "../test-adapter"; import { authFlowTestSuite, joinsTestSuite, @@ -10,8 +11,7 @@ import { numberIdTestSuite, transactionsTestSuite, uuidTestSuite, -} from "../../tests"; -import { drizzleAdapter } from "../drizzle-adapter"; +} from "../tests"; import { generateDrizzleSchema, resetGenerationCount } from "./generate-schema"; const mysqlDB = createPool({ diff --git a/packages/better-auth/src/adapters/drizzle-adapter/test/adapter.drizzle.pg.test.ts b/e2e/adapter/test/drizzle-adapter/adapter.drizzle.pg.test.ts similarity index 93% rename from packages/better-auth/src/adapters/drizzle-adapter/test/adapter.drizzle.pg.test.ts rename to e2e/adapter/test/drizzle-adapter/adapter.drizzle.pg.test.ts index ce94f4e037..cf7a43b6ab 100644 --- a/packages/better-auth/src/adapters/drizzle-adapter/test/adapter.drizzle.pg.test.ts +++ b/e2e/adapter/test/drizzle-adapter/adapter.drizzle.pg.test.ts @@ -1,7 +1,8 @@ import { execSync } from "node:child_process"; +import { drizzleAdapter } from "@better-auth/drizzle-adapter"; import { drizzle } from "drizzle-orm/node-postgres"; import { Pool } from "pg"; -import { testAdapter } from "../../test-adapter"; +import { testAdapter } from "../test-adapter"; import { authFlowTestSuite, joinsTestSuite, @@ -9,8 +10,7 @@ import { numberIdTestSuite, transactionsTestSuite, uuidTestSuite, -} from "../../tests"; -import { drizzleAdapter } from "../drizzle-adapter"; +} from "../tests"; import { generateDrizzleSchema, resetGenerationCount } from "./generate-schema"; const pgDB = new Pool({ diff --git a/packages/better-auth/src/adapters/drizzle-adapter/test/adapter.drizzle.sqlite.test.ts b/e2e/adapter/test/drizzle-adapter/adapter.drizzle.sqlite.test.ts similarity index 93% rename from packages/better-auth/src/adapters/drizzle-adapter/test/adapter.drizzle.sqlite.test.ts rename to e2e/adapter/test/drizzle-adapter/adapter.drizzle.sqlite.test.ts index 44e93e0b57..23a7576c6a 100644 --- a/packages/better-auth/src/adapters/drizzle-adapter/test/adapter.drizzle.sqlite.test.ts +++ b/e2e/adapter/test/drizzle-adapter/adapter.drizzle.sqlite.test.ts @@ -1,9 +1,10 @@ import { execSync } from "node:child_process"; import fs from "node:fs/promises"; import path from "node:path"; +import { drizzleAdapter } from "@better-auth/drizzle-adapter"; import Database from "better-sqlite3"; import { drizzle } from "drizzle-orm/better-sqlite3"; -import { testAdapter } from "../../test-adapter"; +import { testAdapter } from "../test-adapter"; import { authFlowTestSuite, joinsTestSuite, @@ -11,8 +12,7 @@ import { numberIdTestSuite, transactionsTestSuite, uuidTestSuite, -} from "../../tests"; -import { drizzleAdapter } from "../drizzle-adapter"; +} from "../tests"; import { clearSchemaCache, generateDrizzleSchema, diff --git a/packages/better-auth/src/adapters/drizzle-adapter/test/generate-schema.ts b/e2e/adapter/test/drizzle-adapter/generate-schema.ts similarity index 93% rename from packages/better-auth/src/adapters/drizzle-adapter/test/generate-schema.ts rename to e2e/adapter/test/drizzle-adapter/generate-schema.ts index ad4cf4f27c..c389053cf1 100644 --- a/packages/better-auth/src/adapters/drizzle-adapter/test/generate-schema.ts +++ b/e2e/adapter/test/drizzle-adapter/generate-schema.ts @@ -2,7 +2,7 @@ import fs from "node:fs/promises"; import { join } from "node:path"; import type { BetterAuthOptions } from "@better-auth/core"; import type { DBAdapter } from "@better-auth/core/db/adapter"; -import { drizzleAdapter } from "../drizzle-adapter"; +import { drizzleAdapter } from "@better-auth/drizzle-adapter"; let generationCount = 0; @@ -42,7 +42,10 @@ export const generateDrizzleSchema = async ( }; const { generateSchema } = (await i( - join(import.meta.dirname, "./../../../../../cli/src/generators/index"), + join( + import.meta.dirname, + "./../../../../packages/cli/src/generators/index", + ), )) as { generateSchema: (opts: { adapter: DBAdapter; diff --git a/packages/better-auth/src/adapters/kysely-adapter/test/adapter.kysely.custom-schema-pg.test.ts b/e2e/adapter/test/kysely-adapter/adapter.kysely.custom-schema-pg.test.ts similarity index 94% rename from packages/better-auth/src/adapters/kysely-adapter/test/adapter.kysely.custom-schema-pg.test.ts rename to e2e/adapter/test/kysely-adapter/adapter.kysely.custom-schema-pg.test.ts index dc7bbbca33..a2336114a5 100644 --- a/packages/better-auth/src/adapters/kysely-adapter/test/adapter.kysely.custom-schema-pg.test.ts +++ b/e2e/adapter/test/kysely-adapter/adapter.kysely.custom-schema-pg.test.ts @@ -1,8 +1,9 @@ import type { BetterAuthOptions } from "@better-auth/core"; +import { kyselyAdapter } from "@better-auth/kysely-adapter"; +import { getMigrations } from "better-auth/db/migration"; import { Kysely, PostgresDialect } from "kysely"; import { Pool } from "pg"; -import { getMigrations } from "../../../db/get-migration"; -import { testAdapter } from "../../test-adapter"; +import { testAdapter } from "../test-adapter"; import { authFlowTestSuite, joinsTestSuite, @@ -10,8 +11,7 @@ import { numberIdTestSuite, transactionsTestSuite, uuidTestSuite, -} from "../../tests"; -import { kyselyAdapter } from "../kysely-adapter"; +} from "../tests"; /** * Test suite for PostgreSQL with custom (non-default) schema diff --git a/packages/better-auth/src/adapters/kysely-adapter/test/adapter.kysely.mssql.test.ts b/e2e/adapter/test/kysely-adapter/adapter.kysely.mssql.test.ts similarity index 98% rename from packages/better-auth/src/adapters/kysely-adapter/test/adapter.kysely.mssql.test.ts rename to e2e/adapter/test/kysely-adapter/adapter.kysely.mssql.test.ts index 462e866beb..bd0e4b9e09 100644 --- a/packages/better-auth/src/adapters/kysely-adapter/test/adapter.kysely.mssql.test.ts +++ b/e2e/adapter/test/kysely-adapter/adapter.kysely.mssql.test.ts @@ -1,9 +1,10 @@ import type { BetterAuthOptions } from "@better-auth/core"; +import { kyselyAdapter } from "@better-auth/kysely-adapter"; +import { getMigrations } from "better-auth/db/migration"; import { Kysely, MssqlDialect } from "kysely"; import * as Tarn from "tarn"; import * as Tedious from "tedious"; -import { getMigrations } from "../../../db/get-migration"; -import { testAdapter } from "../../test-adapter"; +import { testAdapter } from "../test-adapter"; import { authFlowTestSuite, joinsTestSuite, @@ -11,8 +12,7 @@ import { numberIdTestSuite, transactionsTestSuite, uuidTestSuite, -} from "../../tests"; -import { kyselyAdapter } from "../kysely-adapter"; +} from "../tests"; // We are not allowed to handle the mssql connection // we must let kysely handle it. This is because if kysely is already diff --git a/packages/better-auth/src/adapters/kysely-adapter/test/adapter.kysely.mysql.test.ts b/e2e/adapter/test/kysely-adapter/adapter.kysely.mysql.test.ts similarity index 89% rename from packages/better-auth/src/adapters/kysely-adapter/test/adapter.kysely.mysql.test.ts rename to e2e/adapter/test/kysely-adapter/adapter.kysely.mysql.test.ts index d1a7e647d0..8090454d65 100644 --- a/packages/better-auth/src/adapters/kysely-adapter/test/adapter.kysely.mysql.test.ts +++ b/e2e/adapter/test/kysely-adapter/adapter.kysely.mysql.test.ts @@ -1,8 +1,9 @@ +import { kyselyAdapter } from "@better-auth/kysely-adapter"; +import { getMigrations } from "better-auth/db/migration"; import { Kysely, MysqlDialect } from "kysely"; import { createPool } from "mysql2/promise"; import { assert } from "vitest"; -import { getMigrations } from "../../../db/get-migration"; -import { testAdapter } from "../../test-adapter"; +import { testAdapter } from "../test-adapter"; import { authFlowTestSuite, joinsTestSuite, @@ -10,8 +11,7 @@ import { numberIdTestSuite, transactionsTestSuite, uuidTestSuite, -} from "../../tests"; -import { kyselyAdapter } from "../kysely-adapter"; +} from "../tests"; const mysqlDB = createPool({ uri: "mysql://user:password@localhost:3307/better_auth", diff --git a/packages/better-auth/src/adapters/kysely-adapter/test/adapter.kysely.pg.test.ts b/e2e/adapter/test/kysely-adapter/adapter.kysely.pg.test.ts similarity index 89% rename from packages/better-auth/src/adapters/kysely-adapter/test/adapter.kysely.pg.test.ts rename to e2e/adapter/test/kysely-adapter/adapter.kysely.pg.test.ts index 259c5d8688..57899254fe 100644 --- a/packages/better-auth/src/adapters/kysely-adapter/test/adapter.kysely.pg.test.ts +++ b/e2e/adapter/test/kysely-adapter/adapter.kysely.pg.test.ts @@ -1,8 +1,9 @@ import type { BetterAuthOptions } from "@better-auth/core"; +import { kyselyAdapter } from "@better-auth/kysely-adapter"; +import { getMigrations } from "better-auth/db/migration"; import { Kysely, PostgresDialect } from "kysely"; import { Pool } from "pg"; -import { getMigrations } from "../../../db/get-migration"; -import { testAdapter } from "../../test-adapter"; +import { testAdapter } from "../test-adapter"; import { authFlowTestSuite, joinsTestSuite, @@ -10,8 +11,7 @@ import { numberIdTestSuite, transactionsTestSuite, uuidTestSuite, -} from "../../tests"; -import { kyselyAdapter } from "../kysely-adapter"; +} from "../tests"; import { DEFAULT_SCHEMA_REFERENCE, schemaRefJoinTestSuite, diff --git a/packages/better-auth/src/adapters/kysely-adapter/test/adapter.kysely.sqlite.test.ts b/e2e/adapter/test/kysely-adapter/adapter.kysely.sqlite.test.ts similarity index 87% rename from packages/better-auth/src/adapters/kysely-adapter/test/adapter.kysely.sqlite.test.ts rename to e2e/adapter/test/kysely-adapter/adapter.kysely.sqlite.test.ts index 19a05dc3a4..64f427eb1f 100644 --- a/packages/better-auth/src/adapters/kysely-adapter/test/adapter.kysely.sqlite.test.ts +++ b/e2e/adapter/test/kysely-adapter/adapter.kysely.sqlite.test.ts @@ -1,9 +1,10 @@ import fs from "node:fs/promises"; import path from "node:path"; +import { kyselyAdapter } from "@better-auth/kysely-adapter"; +import { getMigrations } from "better-auth/db/migration"; import Database from "better-sqlite3"; import { Kysely, SqliteDialect } from "kysely"; -import { getMigrations } from "../../../db/get-migration"; -import { testAdapter } from "../../test-adapter"; +import { testAdapter } from "../test-adapter"; import { authFlowTestSuite, joinsTestSuite, @@ -11,8 +12,7 @@ import { numberIdTestSuite, transactionsTestSuite, uuidTestSuite, -} from "../../tests"; -import { kyselyAdapter } from "../kysely-adapter"; +} from "../tests"; const dbPath = path.join(__dirname, "test.db"); let database = new Database(dbPath); diff --git a/packages/better-auth/src/adapters/kysely-adapter/test/node-sqlite-dialect.test.ts b/e2e/adapter/test/kysely-adapter/node-sqlite-dialect.test.ts similarity index 96% rename from packages/better-auth/src/adapters/kysely-adapter/test/node-sqlite-dialect.test.ts rename to e2e/adapter/test/kysely-adapter/node-sqlite-dialect.test.ts index 455899af43..1a0e363057 100644 --- a/packages/better-auth/src/adapters/kysely-adapter/test/node-sqlite-dialect.test.ts +++ b/e2e/adapter/test/kysely-adapter/node-sqlite-dialect.test.ts @@ -1,12 +1,12 @@ import type { DatabaseSync } from "node:sqlite"; import type { BetterAuthOptions } from "@better-auth/core"; +import { kyselyAdapter } from "@better-auth/kysely-adapter"; +import { NodeSqliteDialect } from "@better-auth/kysely-adapter/node-sqlite-dialect"; +import { getMigrations } from "better-auth/db/migration"; import merge from "deepmerge"; import { Kysely, sql } from "kysely"; import { afterAll, beforeAll, describe, expect, it } from "vitest"; -import { getMigrations } from "../../../db/get-migration"; -import { runAdapterTest } from "../../test"; -import { kyselyAdapter } from "../kysely-adapter"; -import { NodeSqliteDialect } from "../node-sqlite-dialect"; +import { runAdapterTest } from "../test"; const nodeVersion = process.version; const nodeSqliteSupported = +nodeVersion.split(".")[0]!.slice(1) >= 22; diff --git a/packages/better-auth/src/adapters/kysely-adapter/test/schema-reference-test-suite.ts b/e2e/adapter/test/kysely-adapter/schema-reference-test-suite.ts similarity index 88% rename from packages/better-auth/src/adapters/kysely-adapter/test/schema-reference-test-suite.ts rename to e2e/adapter/test/kysely-adapter/schema-reference-test-suite.ts index 0442fc3cf7..8b4a951435 100644 --- a/packages/better-auth/src/adapters/kysely-adapter/test/schema-reference-test-suite.ts +++ b/e2e/adapter/test/kysely-adapter/schema-reference-test-suite.ts @@ -1,6 +1,6 @@ -import type { BetterAuthOptions } from "../../../types"; -import { createTestSuite } from "../../create-test-suite"; -import { getNormalTestSuiteTests } from "../../tests"; +import type { BetterAuthOptions } from "@better-auth/core"; +import { createTestSuite } from "../create-test-suite"; +import { getNormalTestSuiteTests } from "../tests"; export const DEFAULT_SCHEMA_REFERENCE = "internal"; diff --git a/packages/better-auth/src/adapters/mongodb-adapter/adapter.mongo-db.test.ts b/e2e/adapter/test/mongodb-adapter/adapter.mongo-db.test.ts similarity index 93% rename from packages/better-auth/src/adapters/mongodb-adapter/adapter.mongo-db.test.ts rename to e2e/adapter/test/mongodb-adapter/adapter.mongo-db.test.ts index f35e3ff2b8..f89c43b56d 100644 --- a/packages/better-auth/src/adapters/mongodb-adapter/adapter.mongo-db.test.ts +++ b/e2e/adapter/test/mongodb-adapter/adapter.mongo-db.test.ts @@ -1,3 +1,4 @@ +import { mongodbAdapter } from "@better-auth/mongo-adapter"; import { MongoClient, ObjectId } from "mongodb"; import { testAdapter } from "../test-adapter"; import { @@ -6,7 +7,6 @@ import { normalTestSuite, transactionsTestSuite, } from "../tests"; -import { mongodbAdapter } from "./mongodb-adapter"; const dbClient = async (connectionString: string, dbName: string) => { const client = new MongoClient(connectionString); diff --git a/packages/better-auth/src/adapters/prisma-adapter/test/.gitignore b/e2e/adapter/test/prisma-adapter/.gitignore similarity index 100% rename from packages/better-auth/src/adapters/prisma-adapter/test/.gitignore rename to e2e/adapter/test/prisma-adapter/.gitignore diff --git a/packages/better-auth/src/adapters/prisma-adapter/test/base.prisma b/e2e/adapter/test/prisma-adapter/base.prisma similarity index 100% rename from packages/better-auth/src/adapters/prisma-adapter/test/base.prisma rename to e2e/adapter/test/prisma-adapter/base.prisma diff --git a/packages/better-auth/src/adapters/prisma-adapter/test/generate-auth-config.ts b/e2e/adapter/test/prisma-adapter/generate-auth-config.ts similarity index 100% rename from packages/better-auth/src/adapters/prisma-adapter/test/generate-auth-config.ts rename to e2e/adapter/test/prisma-adapter/generate-auth-config.ts diff --git a/packages/better-auth/src/adapters/prisma-adapter/test/generate-prisma-schema.ts b/e2e/adapter/test/prisma-adapter/generate-prisma-schema.ts similarity index 91% rename from packages/better-auth/src/adapters/prisma-adapter/test/generate-prisma-schema.ts rename to e2e/adapter/test/prisma-adapter/generate-prisma-schema.ts index 2e1987703e..f8354e004a 100644 --- a/packages/better-auth/src/adapters/prisma-adapter/test/generate-prisma-schema.ts +++ b/e2e/adapter/test/prisma-adapter/generate-prisma-schema.ts @@ -2,8 +2,8 @@ import fs from "node:fs/promises"; import { join } from "node:path"; import type { BetterAuthOptions } from "@better-auth/core"; import type { DBAdapter } from "@better-auth/core/db/adapter"; +import { prismaAdapter } from "@better-auth/prisma-adapter"; import type { PrismaClient } from "@prisma/client"; -import { prismaAdapter } from "../prisma-adapter"; export async function generatePrismaSchema( betterAuthOptions: BetterAuthOptions, @@ -13,7 +13,10 @@ export async function generatePrismaSchema( ) { const i = async (x: string) => await import(x); const { generateSchema } = (await i( - join(import.meta.dirname, "./../../../../../cli/src/generators/index"), + join( + import.meta.dirname, + "./../../../../packages/cli/src/generators/index", + ), )) as { generateSchema: (opts: { adapter: DBAdapter; diff --git a/packages/better-auth/src/adapters/prisma-adapter/test/get-prisma-client.ts b/e2e/adapter/test/prisma-adapter/get-prisma-client.ts similarity index 100% rename from packages/better-auth/src/adapters/prisma-adapter/test/get-prisma-client.ts rename to e2e/adapter/test/prisma-adapter/get-prisma-client.ts diff --git a/packages/better-auth/src/adapters/prisma-adapter/test/prisma.mysql.test.ts b/e2e/adapter/test/prisma-adapter/prisma.mysql.test.ts similarity index 92% rename from packages/better-auth/src/adapters/prisma-adapter/test/prisma.mysql.test.ts rename to e2e/adapter/test/prisma-adapter/prisma.mysql.test.ts index 9d4e68b360..de233f045e 100644 --- a/packages/better-auth/src/adapters/prisma-adapter/test/prisma.mysql.test.ts +++ b/e2e/adapter/test/prisma-adapter/prisma.mysql.test.ts @@ -1,6 +1,7 @@ import type { BetterAuthOptions } from "@better-auth/core"; +import { prismaAdapter } from "@better-auth/prisma-adapter"; import { createPool } from "mysql2/promise"; -import { testAdapter } from "../../test-adapter"; +import { testAdapter } from "../test-adapter"; import { authFlowTestSuite, joinsTestSuite, @@ -8,8 +9,7 @@ import { numberIdTestSuite, transactionsTestSuite, uuidTestSuite, -} from "../../tests"; -import { prismaAdapter } from "../prisma-adapter"; +} from "../tests"; import { generateAuthConfigFile } from "./generate-auth-config"; import { generatePrismaSchema } from "./generate-prisma-schema"; import { diff --git a/packages/better-auth/src/adapters/prisma-adapter/test/prisma.pg.test.ts b/e2e/adapter/test/prisma-adapter/prisma.pg.test.ts similarity index 92% rename from packages/better-auth/src/adapters/prisma-adapter/test/prisma.pg.test.ts rename to e2e/adapter/test/prisma-adapter/prisma.pg.test.ts index c909f386f0..f150eb108b 100644 --- a/packages/better-auth/src/adapters/prisma-adapter/test/prisma.pg.test.ts +++ b/e2e/adapter/test/prisma-adapter/prisma.pg.test.ts @@ -1,6 +1,7 @@ import type { BetterAuthOptions } from "@better-auth/core"; +import { prismaAdapter } from "@better-auth/prisma-adapter"; import { Pool } from "pg"; -import { testAdapter } from "../../test-adapter"; +import { testAdapter } from "../test-adapter"; import { authFlowTestSuite, joinsTestSuite, @@ -8,8 +9,7 @@ import { numberIdTestSuite, transactionsTestSuite, uuidTestSuite, -} from "../../tests"; -import { prismaAdapter } from "../prisma-adapter"; +} from "../tests"; import { generateAuthConfigFile } from "./generate-auth-config"; import { generatePrismaSchema } from "./generate-prisma-schema"; import { diff --git a/packages/better-auth/src/adapters/prisma-adapter/test/prisma.sqlite.test.ts b/e2e/adapter/test/prisma-adapter/prisma.sqlite.test.ts similarity index 92% rename from packages/better-auth/src/adapters/prisma-adapter/test/prisma.sqlite.test.ts rename to e2e/adapter/test/prisma-adapter/prisma.sqlite.test.ts index 3e7aefaf3f..eb224a6077 100644 --- a/packages/better-auth/src/adapters/prisma-adapter/test/prisma.sqlite.test.ts +++ b/e2e/adapter/test/prisma-adapter/prisma.sqlite.test.ts @@ -1,7 +1,8 @@ import fs from "node:fs/promises"; import { join } from "node:path"; import type { BetterAuthOptions } from "@better-auth/core"; -import { testAdapter } from "../../test-adapter"; +import { prismaAdapter } from "@better-auth/prisma-adapter"; +import { testAdapter } from "../test-adapter"; import { authFlowTestSuite, joinsTestSuite, @@ -9,8 +10,7 @@ import { numberIdTestSuite, transactionsTestSuite, uuidTestSuite, -} from "../../tests"; -import { prismaAdapter } from "../prisma-adapter"; +} from "../tests"; import { generateAuthConfigFile } from "./generate-auth-config"; import { generatePrismaSchema } from "./generate-prisma-schema"; import { diff --git a/packages/better-auth/src/adapters/prisma-adapter/test/push-prisma-schema.ts b/e2e/adapter/test/prisma-adapter/push-prisma-schema.ts similarity index 100% rename from packages/better-auth/src/adapters/prisma-adapter/test/push-prisma-schema.ts rename to e2e/adapter/test/prisma-adapter/push-prisma-schema.ts diff --git a/packages/better-auth/src/adapters/test-adapter.ts b/e2e/adapter/test/test-adapter.ts similarity index 99% rename from packages/better-auth/src/adapters/test-adapter.ts rename to e2e/adapter/test/test-adapter.ts index 5d8e990232..bcedaad2e9 100644 --- a/packages/better-auth/src/adapters/test-adapter.ts +++ b/e2e/adapter/test/test-adapter.ts @@ -2,8 +2,8 @@ import type { Awaitable, BetterAuthOptions } from "@better-auth/core"; import type { DBAdapter } from "@better-auth/core/db/adapter"; import { deepmerge, initGetModelName } from "@better-auth/core/db/adapter"; import { TTY_COLORS } from "@better-auth/core/env"; +import { getAuthTables } from "better-auth/db"; import { afterAll, beforeAll, describe } from "vitest"; -import { getAuthTables } from "../db"; import type { createTestSuite, TestSuiteStats } from "./create-test-suite"; export type Logger = { diff --git a/packages/better-auth/src/adapters/test.ts b/e2e/adapter/test/test.ts similarity index 99% rename from packages/better-auth/src/adapters/test.ts rename to e2e/adapter/test/test.ts index 9b35ca094c..00c3e52888 100644 --- a/packages/better-auth/src/adapters/test.ts +++ b/e2e/adapter/test/test.ts @@ -1,8 +1,8 @@ import type { Awaitable, BetterAuthOptions } from "@better-auth/core"; +import type { User } from "@better-auth/core/db"; import type { DBAdapter } from "@better-auth/core/db/adapter"; import { generateId } from "@better-auth/core/utils/id"; import { beforeAll, describe, expect, test } from "vitest"; -import type { User } from "../types"; interface AdapterTestOptions { getAdapter: ( diff --git a/packages/better-auth/src/adapters/tests/__snapshots__/adapter-factory.test.ts.snap b/e2e/adapter/test/tests/__snapshots__/adapter-factory.test.ts.snap similarity index 100% rename from packages/better-auth/src/adapters/tests/__snapshots__/adapter-factory.test.ts.snap rename to e2e/adapter/test/tests/__snapshots__/adapter-factory.test.ts.snap diff --git a/packages/better-auth/src/adapters/tests/adapter-factory.test.ts b/e2e/adapter/test/tests/adapter-factory.test.ts similarity index 99% rename from packages/better-auth/src/adapters/tests/adapter-factory.test.ts rename to e2e/adapter/test/tests/adapter-factory.test.ts index 70cf158aa3..2bbf9dc3d3 100644 --- a/packages/better-auth/src/adapters/tests/adapter-factory.test.ts +++ b/e2e/adapter/test/tests/adapter-factory.test.ts @@ -1,4 +1,5 @@ import type { BetterAuthOptions } from "@better-auth/core"; +import type { User } from "@better-auth/core/db"; import type { AdapterFactoryConfig, AdapterFactoryCustomizeAdapterCreator, @@ -6,9 +7,8 @@ import type { Where, } from "@better-auth/core/db/adapter"; import { createAdapterFactory } from "@better-auth/core/db/adapter"; +import { betterAuth } from "better-auth"; import { describe, expect, test } from "vitest"; -import { betterAuth } from "../../auth/full"; -import type { User } from "../../types"; /* diff --git a/packages/better-auth/src/adapters/tests/auth-flow.ts b/e2e/adapter/test/tests/auth-flow.ts similarity index 97% rename from packages/better-auth/src/adapters/tests/auth-flow.ts rename to e2e/adapter/test/tests/auth-flow.ts index 280fe0a3ce..60c9ba8921 100644 --- a/packages/better-auth/src/adapters/tests/auth-flow.ts +++ b/e2e/adapter/test/tests/auth-flow.ts @@ -1,6 +1,6 @@ +import type { Session, User } from "@better-auth/core/db"; +import { setCookieToHeader } from "better-auth/cookies"; import { expect } from "vitest"; -import { setCookieToHeader } from "../../cookies"; -import type { Session, User } from "../../types"; import { createTestSuite } from "../create-test-suite"; /** diff --git a/packages/better-auth/src/adapters/tests/basic.ts b/e2e/adapter/test/tests/basic.ts similarity index 99% rename from packages/better-auth/src/adapters/tests/basic.ts rename to e2e/adapter/test/tests/basic.ts index d0cfa05b22..fc2399593a 100644 --- a/packages/better-auth/src/adapters/tests/basic.ts +++ b/e2e/adapter/test/tests/basic.ts @@ -1,8 +1,13 @@ import type { BetterAuthPlugin } from "@better-auth/core"; +import type { Account, Session, User } from "@better-auth/core/db"; +import type { + Invitation, + Member, + Organization, + Team, +} from "better-auth/plugins/organization"; +import { organization } from "better-auth/plugins/organization"; import { expect } from "vitest"; -import type { Invitation, Member, Organization, Team } from "../../plugins"; -import { organization } from "../../plugins"; -import type { Account, Session, User } from "../../types"; import { createTestSuite } from "../create-test-suite"; /** diff --git a/packages/better-auth/src/adapters/tests/index.ts b/e2e/adapter/test/tests/index.ts similarity index 100% rename from packages/better-auth/src/adapters/tests/index.ts rename to e2e/adapter/test/tests/index.ts diff --git a/packages/better-auth/src/adapters/tests/joins.ts b/e2e/adapter/test/tests/joins.ts similarity index 100% rename from packages/better-auth/src/adapters/tests/joins.ts rename to e2e/adapter/test/tests/joins.ts diff --git a/packages/better-auth/src/adapters/tests/number-id.ts b/e2e/adapter/test/tests/number-id.ts similarity index 100% rename from packages/better-auth/src/adapters/tests/number-id.ts rename to e2e/adapter/test/tests/number-id.ts diff --git a/packages/better-auth/src/adapters/tests/transactions.ts b/e2e/adapter/test/tests/transactions.ts similarity index 100% rename from packages/better-auth/src/adapters/tests/transactions.ts rename to e2e/adapter/test/tests/transactions.ts diff --git a/packages/better-auth/src/adapters/tests/uuid.ts b/e2e/adapter/test/tests/uuid.ts similarity index 100% rename from packages/better-auth/src/adapters/tests/uuid.ts rename to e2e/adapter/test/tests/uuid.ts diff --git a/e2e/adapter/tsconfig.json b/e2e/adapter/tsconfig.json new file mode 100644 index 0000000000..c7682ccf95 --- /dev/null +++ b/e2e/adapter/tsconfig.json @@ -0,0 +1,30 @@ +{ + "extends": "../../tsconfig.base.json", + "compilerOptions": { + "lib": ["esnext", "dom", "dom.iterable"], + "types": ["node", "bun"] + }, + "references": [ + { + "path": "../../packages/better-auth/tsconfig.json" + }, + { + "path": "../../packages/core/tsconfig.json" + }, + { + "path": "../../packages/drizzle-adapter/tsconfig.json" + }, + { + "path": "../../packages/kysely-adapter/tsconfig.json" + }, + { + "path": "../../packages/memory-adapter/tsconfig.json" + }, + { + "path": "../../packages/mongo-adapter/tsconfig.json" + }, + { + "path": "../../packages/prisma-adapter/tsconfig.json" + } + ] +} diff --git a/e2e/adapter/vitest.config.ts b/e2e/adapter/vitest.config.ts new file mode 100644 index 0000000000..d7b613c2a4 --- /dev/null +++ b/e2e/adapter/vitest.config.ts @@ -0,0 +1,3 @@ +import { defineProject } from "vitest/config"; + +export default defineProject({}); diff --git a/knip.jsonc b/knip.jsonc index 9c032afda8..1280ffd613 100644 --- a/knip.jsonc +++ b/knip.jsonc @@ -11,6 +11,9 @@ "project": ["src/**/*.ts!"], "ignoreDependencies": ["@better-auth/core"] }, + "packages/prisma-adapter": { + "ignoreDependencies": ["@prisma/client", "prisma"] + }, "packages/better-auth": { "project": [ "src/**/*.ts!", diff --git a/package.json b/package.json index 26890a8a7b..d7d4bb2c49 100644 --- a/package.json +++ b/package.json @@ -41,6 +41,7 @@ "@types/bun": "^1.3.6", "@types/node": "^25.0.9", "@vitest/coverage-istanbul": "catalog:vitest", + "@vitest/ui": "catalog:vitest", "bumpp": "^10.4.0", "cspell": "^9.6.0", "knip": "^5.82.1", diff --git a/packages/better-auth/package.json b/packages/better-auth/package.json index ceaa4830bd..ef6cb7154e 100644 --- a/packages/better-auth/package.json +++ b/packages/better-auth/package.json @@ -30,7 +30,6 @@ "lint:package": "publint run --strict", "lint:types": "attw --profile esm-only --pack .", "test:adapters": "vitest run --config vitest.config.adapters.ts", - "prepare": "prisma generate --schema ./src/adapters/prisma-adapter/test/base.prisma", "typecheck": "tsc --project tsconfig.json" }, "files": [ @@ -195,11 +194,6 @@ "types": "./dist/adapters/memory-adapter/index.d.mts", "default": "./dist/adapters/memory-adapter/index.mjs" }, - "./adapters/test": { - "dev-source": "./src/adapters/test.ts", - "types": "./dist/adapters/test.d.mts", - "default": "./dist/adapters/test.mjs" - }, "./adapters": { "dev-source": "./src/adapters/index.ts", "types": "./dist/adapters/index.d.mts", @@ -478,6 +472,11 @@ }, "dependencies": { "@better-auth/core": "workspace:*", + "@better-auth/drizzle-adapter": "workspace:*", + "@better-auth/kysely-adapter": "workspace:*", + "@better-auth/memory-adapter": "workspace:*", + "@better-auth/mongo-adapter": "workspace:*", + "@better-auth/prisma-adapter": "workspace:*", "@better-auth/telemetry": "workspace:*", "@better-auth/utils": "catalog:", "@better-fetch/fetch": "catalog:", @@ -492,7 +491,6 @@ }, "devDependencies": { "@lynx-js/react": "^0.115.4", - "@prisma/client": "^5.22.0", "@sveltejs/kit": "^2.49.5", "@tanstack/react-start": "^1.151.2", "@tanstack/solid-start": "^1.151.2", @@ -502,17 +500,11 @@ "@types/react": "catalog:react19", "better-sqlite3": "^12.4.1", "deepmerge": "^4.3.1", - "drizzle-kit": "^0.31.4", - "drizzle-orm": "^0.41.0", "happy-dom": "^20.0.10", "listhen": "^1.9.0", - "mongodb": "^6.18.0", "msw": "^2.12.4", - "mysql2": "^3.14.4", "next": "^16.1.1", "oauth2-mock-server": "^7.2.1", - "pg": "^8.16.3", - "prisma": "^5.22.0", "react": "catalog:react19", "react-dom": "catalog:react19", "solid-js": "^1.9.8", diff --git a/packages/better-auth/src/adapters/drizzle-adapter/index.ts b/packages/better-auth/src/adapters/drizzle-adapter/index.ts index cc8f2521f5..212cffe625 100644 --- a/packages/better-auth/src/adapters/drizzle-adapter/index.ts +++ b/packages/better-auth/src/adapters/drizzle-adapter/index.ts @@ -1 +1 @@ -export * from "./drizzle-adapter"; +export * from "@better-auth/drizzle-adapter"; diff --git a/packages/better-auth/src/adapters/kysely-adapter/index.ts b/packages/better-auth/src/adapters/kysely-adapter/index.ts index cbfdc15fd0..d89ad4545b 100644 --- a/packages/better-auth/src/adapters/kysely-adapter/index.ts +++ b/packages/better-auth/src/adapters/kysely-adapter/index.ts @@ -1,5 +1 @@ -export * from "./dialect"; -export * from "./kysely-adapter"; -export * from "./types"; -// Don't export node:sqlite by default, as it is not production ready. -// export * from "./node-sqlite"; +export * from "@better-auth/kysely-adapter"; diff --git a/packages/better-auth/src/adapters/memory-adapter/index.ts b/packages/better-auth/src/adapters/memory-adapter/index.ts index 10943f2461..1186beeb0d 100644 --- a/packages/better-auth/src/adapters/memory-adapter/index.ts +++ b/packages/better-auth/src/adapters/memory-adapter/index.ts @@ -1 +1 @@ -export * from "./memory-adapter"; +export * from "@better-auth/memory-adapter"; diff --git a/packages/better-auth/src/adapters/mongodb-adapter/index.ts b/packages/better-auth/src/adapters/mongodb-adapter/index.ts index 7e8d96d3da..761c6c2b26 100644 --- a/packages/better-auth/src/adapters/mongodb-adapter/index.ts +++ b/packages/better-auth/src/adapters/mongodb-adapter/index.ts @@ -1 +1 @@ -export * from "./mongodb-adapter"; +export * from "@better-auth/mongo-adapter"; diff --git a/packages/better-auth/src/adapters/prisma-adapter/index.ts b/packages/better-auth/src/adapters/prisma-adapter/index.ts index 2ac2694671..17fd60713d 100644 --- a/packages/better-auth/src/adapters/prisma-adapter/index.ts +++ b/packages/better-auth/src/adapters/prisma-adapter/index.ts @@ -1 +1 @@ -export * from "./prisma-adapter"; +export * from "@better-auth/prisma-adapter"; diff --git a/packages/better-auth/src/api/routes/session-api.test.ts b/packages/better-auth/src/api/routes/session-api.test.ts index 82c644d35c..c67eb9d8a3 100644 --- a/packages/better-auth/src/api/routes/session-api.test.ts +++ b/packages/better-auth/src/api/routes/session-api.test.ts @@ -1,8 +1,8 @@ import type { GenericEndpointContext } from "@better-auth/core"; import { runWithEndpointContext } from "@better-auth/core/context"; +import type { MemoryDB } from "@better-auth/memory-adapter"; +import { memoryAdapter } from "@better-auth/memory-adapter"; import { beforeEach, describe, expect, expectTypeOf, it, vi } from "vitest"; -import type { MemoryDB } from "../../adapters/memory-adapter"; -import { memoryAdapter } from "../../adapters/memory-adapter"; import { parseCookies, parseSetCookieHeader } from "../../cookies"; import { signJWT, verifyJWT } from "../../crypto"; import { getTestInstance } from "../../test-utils/test-instance"; diff --git a/packages/better-auth/src/auth/minimal.test.ts b/packages/better-auth/src/auth/minimal.test.ts index 24c43b6d54..a8fb6339ee 100644 --- a/packages/better-auth/src/auth/minimal.test.ts +++ b/packages/better-auth/src/auth/minimal.test.ts @@ -1,6 +1,6 @@ +import { memoryAdapter } from "@better-auth/memory-adapter"; import Database from "better-sqlite3"; import { describe, expect, expectTypeOf, it } from "vitest"; -import { memoryAdapter } from "../adapters/memory-adapter/memory-adapter"; import type { Auth } from "../types"; import { betterAuth } from "./minimal"; diff --git a/packages/better-auth/src/context/init-minimal.test.ts b/packages/better-auth/src/context/init-minimal.test.ts index 636fb5a3c3..7fb89f008e 100644 --- a/packages/better-auth/src/context/init-minimal.test.ts +++ b/packages/better-auth/src/context/init-minimal.test.ts @@ -1,5 +1,5 @@ +import { memoryAdapter } from "@better-auth/memory-adapter"; import { describe, expect, it } from "vitest"; -import { memoryAdapter } from "../adapters/memory-adapter"; import { initMinimal } from "./init-minimal"; describe("init-minimal (without Kysely)", () => { diff --git a/packages/better-auth/src/context/init.ts b/packages/better-auth/src/context/init.ts index bc34e573f3..d7001001bb 100644 --- a/packages/better-auth/src/context/init.ts +++ b/packages/better-auth/src/context/init.ts @@ -1,5 +1,5 @@ import { BetterAuthError } from "@better-auth/core/error"; -import { getKyselyDatabaseType } from "../adapters/kysely-adapter/dialect"; +import { getKyselyDatabaseType } from "@better-auth/kysely-adapter"; import { getAdapter } from "../db/adapter-kysely"; import { getMigrations } from "../db/get-migration"; import type { BetterAuthOptions } from "../types"; diff --git a/packages/better-auth/src/db/adapter-base.ts b/packages/better-auth/src/db/adapter-base.ts index 5f1b5d1245..5aa72d5a61 100644 --- a/packages/better-auth/src/db/adapter-base.ts +++ b/packages/better-auth/src/db/adapter-base.ts @@ -2,7 +2,7 @@ import type { BetterAuthOptions } from "@better-auth/core"; import { getAuthTables } from "@better-auth/core/db"; import type { DBAdapter } from "@better-auth/core/db/adapter"; import { logger } from "@better-auth/core/env"; -import type { MemoryDB } from "../adapters/memory-adapter"; +import type { MemoryDB } from "@better-auth/memory-adapter"; export async function getBaseAdapter( options: BetterAuthOptions, @@ -18,7 +18,7 @@ export async function getBaseAdapter( acc[key] = []; return acc; }, {}); - const { memoryAdapter } = await import("../adapters/memory-adapter"); + const { memoryAdapter } = await import("@better-auth/memory-adapter"); adapter = memoryAdapter(memoryDB)(options); } else if (typeof options.database === "function") { adapter = options.database(options); diff --git a/packages/better-auth/src/db/get-migration.ts b/packages/better-auth/src/db/get-migration.ts index 874f4ac52a..5eca45069d 100644 --- a/packages/better-auth/src/db/get-migration.ts +++ b/packages/better-auth/src/db/get-migration.ts @@ -6,6 +6,8 @@ import { initGetModelName, } from "@better-auth/core/db/adapter"; import { createLogger } from "@better-auth/core/env"; +import type { KyselyDatabaseType } from "@better-auth/kysely-adapter"; +import { createKyselyAdapter } from "@better-auth/kysely-adapter"; import type { AlterTableBuilder, AlterTableColumnAlteringBuilder, @@ -16,8 +18,6 @@ import type { RawBuilder, } from "kysely"; import { sql } from "kysely"; -import { createKyselyAdapter } from "../adapters/kysely-adapter/dialect"; -import type { KyselyDatabaseType } from "../adapters/kysely-adapter/types"; import { getSchema } from "./get-schema"; const postgresMap = { diff --git a/packages/better-auth/src/plugins/organization/organization.test.ts b/packages/better-auth/src/plugins/organization/organization.test.ts index e564700ce9..f50cdd349d 100644 --- a/packages/better-auth/src/plugins/organization/organization.test.ts +++ b/packages/better-auth/src/plugins/organization/organization.test.ts @@ -1,7 +1,7 @@ import type { APIError } from "@better-auth/core/error"; +import { memoryAdapter } from "@better-auth/memory-adapter"; import type { Prettify } from "better-call"; import { describe, expect, expectTypeOf, it } from "vitest"; -import { memoryAdapter } from "../../adapters/memory-adapter"; import type { BetterFetchError, PreinitializedWritableAtom, diff --git a/packages/better-auth/tsconfig.json b/packages/better-auth/tsconfig.json index d7cd446578..013e4eb168 100644 --- a/packages/better-auth/tsconfig.json +++ b/packages/better-auth/tsconfig.json @@ -10,6 +10,21 @@ }, { "path": "../telemetry/tsconfig.json" + }, + { + "path": "../drizzle-adapter/tsconfig.json" + }, + { + "path": "../kysely-adapter/tsconfig.json" + }, + { + "path": "../memory-adapter/tsconfig.json" + }, + { + "path": "../mongo-adapter/tsconfig.json" + }, + { + "path": "../prisma-adapter/tsconfig.json" } ] } diff --git a/packages/better-auth/tsdown.config.ts b/packages/better-auth/tsdown.config.ts index a8aad4eb8e..58988282d0 100644 --- a/packages/better-auth/tsdown.config.ts +++ b/packages/better-auth/tsdown.config.ts @@ -17,7 +17,6 @@ export default defineConfig({ "./src/adapters/mongodb-adapter/index.ts", "./src/adapters/kysely-adapter/index.ts", "./src/adapters/memory-adapter/index.ts", - "./src/adapters/test.ts", "./src/adapters/index.ts", "./src/db/index.ts", "./src/db/adapter-kysely.ts", diff --git a/packages/drizzle-adapter/package.json b/packages/drizzle-adapter/package.json new file mode 100644 index 0000000000..7111ad6fbe --- /dev/null +++ b/packages/drizzle-adapter/package.json @@ -0,0 +1,34 @@ +{ + "name": "@better-auth/drizzle-adapter", + "version": "1.5.0-beta.8", + "description": "Drizzle adapter for Better Auth", + "type": "module", + "main": "./dist/index.mjs", + "module": "./dist/index.mjs", + "types": "./dist/index.d.mts", + "exports": { + ".": { + "dev-source": "./src/index.ts", + "types": "./dist/index.d.mts", + "default": "./dist/index.mjs" + } + }, + "scripts": { + "build": "tsdown", + "dev": "tsdown --watch", + "test": "vitest", + "typecheck": "tsc --noEmit" + }, + "peerDependencies": { + "@better-auth/core": "workspace:*", + "@better-auth/utils": "^0.3.0", + "drizzle-orm": "^0.30.0" + }, + "devDependencies": { + "@better-auth/core": "workspace:*", + "@better-auth/utils": "^0.3.0", + "drizzle-orm": "^0.30.0", + "tsdown": "catalog:", + "typescript": "catalog:" + } +} diff --git a/packages/drizzle-adapter/src/drizzle-adapter.test.ts b/packages/drizzle-adapter/src/drizzle-adapter.test.ts new file mode 100644 index 0000000000..2133a262f5 --- /dev/null +++ b/packages/drizzle-adapter/src/drizzle-adapter.test.ts @@ -0,0 +1,17 @@ +import { describe, expect, it } from "vitest"; +import { drizzleAdapter } from "./drizzle-adapter"; + +describe("drizzle-adapter", () => { + it("should create drizzle adapter", () => { + const db = { + _: { + fullSchema: {}, + }, + } as any; + const config = { + provider: "sqlite" as const, + }; + const adapter = drizzleAdapter(db, config); + expect(adapter).toBeDefined(); + }); +}); diff --git a/packages/better-auth/src/adapters/drizzle-adapter/drizzle-adapter.ts b/packages/drizzle-adapter/src/drizzle-adapter.ts similarity index 100% rename from packages/better-auth/src/adapters/drizzle-adapter/drizzle-adapter.ts rename to packages/drizzle-adapter/src/drizzle-adapter.ts diff --git a/packages/drizzle-adapter/src/index.ts b/packages/drizzle-adapter/src/index.ts new file mode 100644 index 0000000000..cc8f2521f5 --- /dev/null +++ b/packages/drizzle-adapter/src/index.ts @@ -0,0 +1 @@ +export * from "./drizzle-adapter"; diff --git a/packages/drizzle-adapter/tsconfig.json b/packages/drizzle-adapter/tsconfig.json new file mode 100644 index 0000000000..cf83d122e7 --- /dev/null +++ b/packages/drizzle-adapter/tsconfig.json @@ -0,0 +1,9 @@ +{ + "extends": "../../tsconfig.base.json", + "include": ["./src"], + "references": [ + { + "path": "../core/tsconfig.json" + } + ] +} diff --git a/packages/drizzle-adapter/tsdown.config.ts b/packages/drizzle-adapter/tsdown.config.ts new file mode 100644 index 0000000000..5112448db4 --- /dev/null +++ b/packages/drizzle-adapter/tsdown.config.ts @@ -0,0 +1,7 @@ +import { defineConfig } from "tsdown"; + +export default defineConfig({ + dts: { build: true, incremental: true }, + format: ["esm"], + entry: ["./src/index.ts"], +}); diff --git a/packages/drizzle-adapter/vitest.config.ts b/packages/drizzle-adapter/vitest.config.ts new file mode 100644 index 0000000000..d7b613c2a4 --- /dev/null +++ b/packages/drizzle-adapter/vitest.config.ts @@ -0,0 +1,3 @@ +import { defineProject } from "vitest/config"; + +export default defineProject({}); diff --git a/packages/kysely-adapter/package.json b/packages/kysely-adapter/package.json new file mode 100644 index 0000000000..3950d29dac --- /dev/null +++ b/packages/kysely-adapter/package.json @@ -0,0 +1,39 @@ +{ + "name": "@better-auth/kysely-adapter", + "version": "1.5.0-beta.8", + "description": "Kysely adapter for Better Auth", + "type": "module", + "main": "./dist/index.mjs", + "module": "./dist/index.mjs", + "types": "./dist/index.d.mts", + "exports": { + ".": { + "dev-source": "./src/index.ts", + "types": "./dist/index.d.mts", + "default": "./dist/index.mjs" + }, + "./node-sqlite-dialect": { + "dev-source": "./src/node-sqlite-dialect.ts", + "types": "./dist/node-sqlite-dialect.d.mts", + "default": "./dist/node-sqlite-dialect.mjs" + } + }, + "scripts": { + "build": "tsdown", + "dev": "tsdown --watch", + "test": "vitest", + "typecheck": "tsc --noEmit" + }, + "peerDependencies": { + "@better-auth/core": "workspace:*", + "@better-auth/utils": "^0.3.0", + "kysely": "^0.27.0 || ^0.28.0" + }, + "devDependencies": { + "@better-auth/core": "workspace:*", + "@better-auth/utils": "^0.3.0", + "kysely": "^0.28.5", + "tsdown": "catalog:", + "typescript": "catalog:" + } +} diff --git a/packages/better-auth/src/adapters/kysely-adapter/bun-sqlite-dialect.ts b/packages/kysely-adapter/src/bun-sqlite-dialect.ts similarity index 100% rename from packages/better-auth/src/adapters/kysely-adapter/bun-sqlite-dialect.ts rename to packages/kysely-adapter/src/bun-sqlite-dialect.ts diff --git a/packages/better-auth/src/adapters/kysely-adapter/dialect.ts b/packages/kysely-adapter/src/dialect.ts similarity index 100% rename from packages/better-auth/src/adapters/kysely-adapter/dialect.ts rename to packages/kysely-adapter/src/dialect.ts diff --git a/packages/kysely-adapter/src/index.ts b/packages/kysely-adapter/src/index.ts new file mode 100644 index 0000000000..cbfdc15fd0 --- /dev/null +++ b/packages/kysely-adapter/src/index.ts @@ -0,0 +1,5 @@ +export * from "./dialect"; +export * from "./kysely-adapter"; +export * from "./types"; +// Don't export node:sqlite by default, as it is not production ready. +// export * from "./node-sqlite"; diff --git a/packages/kysely-adapter/src/kysely-adapter.test.ts b/packages/kysely-adapter/src/kysely-adapter.test.ts new file mode 100644 index 0000000000..4232adfb9a --- /dev/null +++ b/packages/kysely-adapter/src/kysely-adapter.test.ts @@ -0,0 +1,24 @@ +import { Kysely, SqliteDialect } from "kysely"; +import { describe, expect, it } from "vitest"; +import { kyselyAdapter } from "./kysely-adapter"; + +describe("kysely-adapter", () => { + it("should create kysely adapter", () => { + const db = new Kysely({ + dialect: new SqliteDialect({ + database: { + close: () => {}, + prepare: () => + ({ + all: () => [], + run: () => {}, + get: () => {}, + iterate: () => [], + }) as any, + } as any, + }), + }); + const adapter = kyselyAdapter(db); + expect(adapter).toBeDefined(); + }); +}); diff --git a/packages/better-auth/src/adapters/kysely-adapter/kysely-adapter.ts b/packages/kysely-adapter/src/kysely-adapter.ts similarity index 100% rename from packages/better-auth/src/adapters/kysely-adapter/kysely-adapter.ts rename to packages/kysely-adapter/src/kysely-adapter.ts diff --git a/packages/better-auth/src/adapters/kysely-adapter/node-sqlite-dialect.ts b/packages/kysely-adapter/src/node-sqlite-dialect.ts similarity index 100% rename from packages/better-auth/src/adapters/kysely-adapter/node-sqlite-dialect.ts rename to packages/kysely-adapter/src/node-sqlite-dialect.ts diff --git a/packages/better-auth/src/adapters/kysely-adapter/types.ts b/packages/kysely-adapter/src/types.ts similarity index 100% rename from packages/better-auth/src/adapters/kysely-adapter/types.ts rename to packages/kysely-adapter/src/types.ts diff --git a/packages/kysely-adapter/tsconfig.json b/packages/kysely-adapter/tsconfig.json new file mode 100644 index 0000000000..cf83d122e7 --- /dev/null +++ b/packages/kysely-adapter/tsconfig.json @@ -0,0 +1,9 @@ +{ + "extends": "../../tsconfig.base.json", + "include": ["./src"], + "references": [ + { + "path": "../core/tsconfig.json" + } + ] +} diff --git a/packages/kysely-adapter/tsdown.config.ts b/packages/kysely-adapter/tsdown.config.ts new file mode 100644 index 0000000000..648770d9dd --- /dev/null +++ b/packages/kysely-adapter/tsdown.config.ts @@ -0,0 +1,7 @@ +import { defineConfig } from "tsdown"; + +export default defineConfig({ + dts: { build: true, incremental: true }, + format: ["esm"], + entry: ["./src/index.ts", "./src/node-sqlite-dialect.ts"], +}); diff --git a/packages/kysely-adapter/vitest.config.ts b/packages/kysely-adapter/vitest.config.ts new file mode 100644 index 0000000000..d7b613c2a4 --- /dev/null +++ b/packages/kysely-adapter/vitest.config.ts @@ -0,0 +1,3 @@ +import { defineProject } from "vitest/config"; + +export default defineProject({}); diff --git a/packages/memory-adapter/package.json b/packages/memory-adapter/package.json new file mode 100644 index 0000000000..f4fcaf6192 --- /dev/null +++ b/packages/memory-adapter/package.json @@ -0,0 +1,32 @@ +{ + "name": "@better-auth/memory-adapter", + "version": "1.5.0-beta.8", + "description": "Memory adapter for Better Auth", + "type": "module", + "main": "./dist/index.mjs", + "module": "./dist/index.mjs", + "types": "./dist/index.d.mts", + "exports": { + ".": { + "dev-source": "./src/index.ts", + "types": "./dist/index.d.mts", + "default": "./dist/index.mjs" + } + }, + "scripts": { + "build": "tsdown", + "dev": "tsdown --watch", + "test": "vitest", + "typecheck": "tsc --noEmit" + }, + "peerDependencies": { + "@better-auth/core": "workspace:*", + "@better-auth/utils": "^0.3.0" + }, + "devDependencies": { + "@better-auth/core": "workspace:*", + "@better-auth/utils": "^0.3.0", + "tsdown": "catalog:", + "typescript": "catalog:" + } +} diff --git a/packages/memory-adapter/src/index.ts b/packages/memory-adapter/src/index.ts new file mode 100644 index 0000000000..2710a99ccd --- /dev/null +++ b/packages/memory-adapter/src/index.ts @@ -0,0 +1,5 @@ +export { + type MemoryAdapterConfig, + type MemoryDB, + memoryAdapter, +} from "./memory-adapter"; diff --git a/packages/better-auth/src/adapters/memory-adapter/memory-adapter.ts b/packages/memory-adapter/src/memory-adapter.ts similarity index 100% rename from packages/better-auth/src/adapters/memory-adapter/memory-adapter.ts rename to packages/memory-adapter/src/memory-adapter.ts diff --git a/packages/memory-adapter/tsconfig.json b/packages/memory-adapter/tsconfig.json new file mode 100644 index 0000000000..cf83d122e7 --- /dev/null +++ b/packages/memory-adapter/tsconfig.json @@ -0,0 +1,9 @@ +{ + "extends": "../../tsconfig.base.json", + "include": ["./src"], + "references": [ + { + "path": "../core/tsconfig.json" + } + ] +} diff --git a/packages/memory-adapter/tsdown.config.ts b/packages/memory-adapter/tsdown.config.ts new file mode 100644 index 0000000000..5112448db4 --- /dev/null +++ b/packages/memory-adapter/tsdown.config.ts @@ -0,0 +1,7 @@ +import { defineConfig } from "tsdown"; + +export default defineConfig({ + dts: { build: true, incremental: true }, + format: ["esm"], + entry: ["./src/index.ts"], +}); diff --git a/packages/memory-adapter/vitest.config.ts b/packages/memory-adapter/vitest.config.ts new file mode 100644 index 0000000000..d7b613c2a4 --- /dev/null +++ b/packages/memory-adapter/vitest.config.ts @@ -0,0 +1,3 @@ +import { defineProject } from "vitest/config"; + +export default defineProject({}); diff --git a/packages/mongo-adapter/package.json b/packages/mongo-adapter/package.json new file mode 100644 index 0000000000..3af4c0371f --- /dev/null +++ b/packages/mongo-adapter/package.json @@ -0,0 +1,34 @@ +{ + "name": "@better-auth/mongo-adapter", + "version": "1.5.0-beta.8", + "description": "Mongo adapter for Better Auth", + "type": "module", + "main": "./dist/index.mjs", + "module": "./dist/index.mjs", + "types": "./dist/index.d.mts", + "exports": { + ".": { + "dev-source": "./src/index.ts", + "types": "./dist/index.d.mts", + "default": "./dist/index.mjs" + } + }, + "scripts": { + "build": "tsdown", + "dev": "tsdown --watch", + "test": "vitest", + "typecheck": "tsc --noEmit" + }, + "peerDependencies": { + "@better-auth/core": "workspace:*", + "@better-auth/utils": "^0.3.0", + "mongodb": "^6.0.0 || ^7.0.0" + }, + "devDependencies": { + "@better-auth/core": "workspace:*", + "@better-auth/utils": "^0.3.0", + "mongodb": "^7.0.0", + "tsdown": "catalog:", + "typescript": "catalog:" + } +} diff --git a/packages/mongo-adapter/src/index.ts b/packages/mongo-adapter/src/index.ts new file mode 100644 index 0000000000..7e8d96d3da --- /dev/null +++ b/packages/mongo-adapter/src/index.ts @@ -0,0 +1 @@ +export * from "./mongodb-adapter"; diff --git a/packages/mongo-adapter/src/mongodb-adapter.test.ts b/packages/mongo-adapter/src/mongodb-adapter.test.ts new file mode 100644 index 0000000000..96505229af --- /dev/null +++ b/packages/mongo-adapter/src/mongodb-adapter.test.ts @@ -0,0 +1,12 @@ +import { describe, expect, it, vi } from "vitest"; +import { mongodbAdapter } from "./mongodb-adapter"; + +describe("mongodb-adapter", () => { + it("should create mongodb adapter", () => { + const db = { + collection: vi.fn(), + } as any; + const adapter = mongodbAdapter(db); + expect(adapter).toBeDefined(); + }); +}); diff --git a/packages/better-auth/src/adapters/mongodb-adapter/mongodb-adapter.ts b/packages/mongo-adapter/src/mongodb-adapter.ts similarity index 100% rename from packages/better-auth/src/adapters/mongodb-adapter/mongodb-adapter.ts rename to packages/mongo-adapter/src/mongodb-adapter.ts diff --git a/packages/mongo-adapter/tsconfig.json b/packages/mongo-adapter/tsconfig.json new file mode 100644 index 0000000000..cf83d122e7 --- /dev/null +++ b/packages/mongo-adapter/tsconfig.json @@ -0,0 +1,9 @@ +{ + "extends": "../../tsconfig.base.json", + "include": ["./src"], + "references": [ + { + "path": "../core/tsconfig.json" + } + ] +} diff --git a/packages/mongo-adapter/tsdown.config.ts b/packages/mongo-adapter/tsdown.config.ts new file mode 100644 index 0000000000..5112448db4 --- /dev/null +++ b/packages/mongo-adapter/tsdown.config.ts @@ -0,0 +1,7 @@ +import { defineConfig } from "tsdown"; + +export default defineConfig({ + dts: { build: true, incremental: true }, + format: ["esm"], + entry: ["./src/index.ts"], +}); diff --git a/packages/mongo-adapter/vitest.config.ts b/packages/mongo-adapter/vitest.config.ts new file mode 100644 index 0000000000..d7b613c2a4 --- /dev/null +++ b/packages/mongo-adapter/vitest.config.ts @@ -0,0 +1,3 @@ +import { defineProject } from "vitest/config"; + +export default defineProject({}); diff --git a/packages/prisma-adapter/package.json b/packages/prisma-adapter/package.json new file mode 100644 index 0000000000..de9490b905 --- /dev/null +++ b/packages/prisma-adapter/package.json @@ -0,0 +1,38 @@ +{ + "name": "@better-auth/prisma-adapter", + "version": "1.5.0-beta.8", + "description": "Prisma adapter for Better Auth", + "type": "module", + "main": "./dist/index.mjs", + "module": "./dist/index.mjs", + "types": "./dist/index.d.mts", + "exports": { + ".": { + "dev-source": "./src/index.ts", + "types": "./dist/index.d.mts", + "default": "./dist/index.mjs" + } + }, + "scripts": { + "build": "tsdown", + "dev": "tsdown --watch", + "test": "vitest", + "typecheck": "tsc --noEmit" + }, + "dependencies": { + "@prisma/client": "^5.0.0" + }, + "peerDependencies": { + "@prisma/client": "^5.0.0 || ^6.0.0 || ^7.0.0", + "@better-auth/core": "workspace:*", + "@better-auth/utils": "^0.3.0", + "prisma": "^5.0.0 || ^6.0.0 || ^7.0.0" + }, + "devDependencies": { + "@better-auth/core": "workspace:*", + "@better-auth/utils": "^0.3.0", + "prisma": "^5.0.0", + "tsdown": "catalog:", + "typescript": "catalog:" + } +} diff --git a/packages/prisma-adapter/src/index.ts b/packages/prisma-adapter/src/index.ts new file mode 100644 index 0000000000..2ac2694671 --- /dev/null +++ b/packages/prisma-adapter/src/index.ts @@ -0,0 +1 @@ +export * from "./prisma-adapter"; diff --git a/packages/prisma-adapter/src/prisma-adapter.test.ts b/packages/prisma-adapter/src/prisma-adapter.test.ts new file mode 100644 index 0000000000..9240dc3d0f --- /dev/null +++ b/packages/prisma-adapter/src/prisma-adapter.test.ts @@ -0,0 +1,14 @@ +import { describe, expect, it, vi } from "vitest"; +import { prismaAdapter } from "./prisma-adapter"; + +describe("prisma-adapter", () => { + it("should create prisma adapter", () => { + const prisma = { + $transaction: vi.fn(), + } as any; + const adapter = prismaAdapter(prisma, { + provider: "sqlite", + }); + expect(adapter).toBeDefined(); + }); +}); diff --git a/packages/better-auth/src/adapters/prisma-adapter/prisma-adapter.ts b/packages/prisma-adapter/src/prisma-adapter.ts similarity index 100% rename from packages/better-auth/src/adapters/prisma-adapter/prisma-adapter.ts rename to packages/prisma-adapter/src/prisma-adapter.ts diff --git a/packages/prisma-adapter/tsconfig.json b/packages/prisma-adapter/tsconfig.json new file mode 100644 index 0000000000..cf83d122e7 --- /dev/null +++ b/packages/prisma-adapter/tsconfig.json @@ -0,0 +1,9 @@ +{ + "extends": "../../tsconfig.base.json", + "include": ["./src"], + "references": [ + { + "path": "../core/tsconfig.json" + } + ] +} diff --git a/packages/prisma-adapter/tsdown.config.ts b/packages/prisma-adapter/tsdown.config.ts new file mode 100644 index 0000000000..5112448db4 --- /dev/null +++ b/packages/prisma-adapter/tsdown.config.ts @@ -0,0 +1,7 @@ +import { defineConfig } from "tsdown"; + +export default defineConfig({ + dts: { build: true, incremental: true }, + format: ["esm"], + entry: ["./src/index.ts"], +}); diff --git a/packages/prisma-adapter/vitest.config.ts b/packages/prisma-adapter/vitest.config.ts new file mode 100644 index 0000000000..d7b613c2a4 --- /dev/null +++ b/packages/prisma-adapter/vitest.config.ts @@ -0,0 +1,3 @@ +import { defineProject } from "vitest/config"; + +export default defineProject({}); diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index c212b02438..ac230b8917 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -51,6 +51,9 @@ catalogs: '@vitest/coverage-istanbul': specifier: ^4.0.17 version: 4.0.17 + '@vitest/ui': + specifier: ^4.0.17 + version: 4.0.17 vitest: specifier: ^4.0.17 version: 4.0.17 @@ -73,7 +76,10 @@ importers: version: 25.0.9 '@vitest/coverage-istanbul': specifier: catalog:vitest - version: 4.0.17(vitest@4.0.17(@opentelemetry/api@1.9.0)(@types/node@25.0.9)(happy-dom@20.0.11)(jiti@2.6.1)(less@4.5.1)(lightningcss@1.30.2)(msw@2.12.7(@types/node@25.0.9)(typescript@5.9.3))(sass@1.97.1)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2)) + version: 4.0.17(vitest@4.0.17) + '@vitest/ui': + specifier: catalog:vitest + version: 4.0.17(vitest@4.0.17) bumpp: specifier: ^10.4.0 version: 10.4.0(magicast@0.5.1) @@ -109,7 +115,7 @@ importers: version: 5.9.3 vitest: specifier: catalog:vitest - version: 4.0.17(@opentelemetry/api@1.9.0)(@types/node@25.0.9)(happy-dom@20.0.11)(jiti@2.6.1)(less@4.5.1)(lightningcss@1.30.2)(msw@2.12.7(@types/node@25.0.9)(typescript@5.9.3))(sass@1.97.1)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2) + version: 4.0.17(@opentelemetry/api@1.9.0)(@types/node@25.0.9)(@vitest/ui@4.0.17)(happy-dom@20.0.11)(jiti@2.6.1)(less@4.5.1)(lightningcss@1.30.2)(msw@2.12.7(@types/node@25.0.9)(typescript@5.9.3))(sass@1.97.1)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2) demo/expo: dependencies: @@ -917,6 +923,73 @@ importers: specifier: 'catalog:' version: 5.9.3 + e2e/adapter: + dependencies: + deepmerge: + specifier: ^4.3.1 + version: 4.3.1 + kysely: + specifier: ^0.28.5 + version: 0.28.9 + devDependencies: + '@better-auth/core': + specifier: workspace:* + version: link:../../packages/core + '@better-auth/drizzle-adapter': + specifier: workspace:* + version: link:../../packages/drizzle-adapter + '@better-auth/kysely-adapter': + specifier: workspace:* + version: link:../../packages/kysely-adapter + '@better-auth/memory-adapter': + specifier: workspace:* + version: link:../../packages/memory-adapter + '@better-auth/mongo-adapter': + specifier: workspace:* + version: link:../../packages/mongo-adapter + '@better-auth/prisma-adapter': + specifier: workspace:* + version: link:../../packages/prisma-adapter + '@prisma/client': + specifier: ^5.22.0 + version: 5.22.0(prisma@5.22.0) + '@types/better-sqlite3': + specifier: ^7.6.13 + version: 7.6.13 + '@types/pg': + specifier: ^8.15.5 + version: 8.16.0 + better-auth: + specifier: workspace:* + version: link:../../packages/better-auth + better-sqlite3: + specifier: ^12.5.0 + version: 12.5.0 + drizzle-kit: + specifier: ^0.30.0 + version: 0.30.6 + drizzle-orm: + specifier: ^0.45.1 + version: 0.45.1(@cloudflare/workers-types@4.20260103.0)(@electric-sql/pglite@0.3.14)(@libsql/client@0.15.15)(@opentelemetry/api@1.9.0)(@prisma/client@5.22.0(prisma@5.22.0))(@types/better-sqlite3@7.6.13)(@types/pg@8.16.0)(better-sqlite3@12.5.0)(bun-types@1.3.6)(gel@2.2.0)(kysely@0.28.9)(mysql2@3.16.0)(pg@8.16.3)(postgres@3.4.7)(prisma@5.22.0) + mongodb: + specifier: ^7.0.0 + version: 7.0.0 + mysql2: + specifier: ^3.14.4 + version: 3.16.0 + pg: + specifier: ^8.16.3 + version: 8.16.3 + prisma: + specifier: ^5.22.0 + version: 5.22.0 + tarn: + specifier: ^3.0.2 + version: 3.0.2 + tedious: + specifier: ^18.6.1 + version: 18.6.1 + e2e/integration: dependencies: better-auth: @@ -934,7 +1007,7 @@ importers: version: 0.15.3(solid-js@1.9.9) '@solidjs/start': specifier: ^1.1.7 - version: 1.1.7(solid-js@1.9.9)(vinxi@0.5.8(186a7588b61c4b5af5e57e454f0edfaa))(vite@7.3.1(@types/node@25.0.9)(jiti@2.6.1)(less@4.5.1)(lightningcss@1.30.2)(sass@1.97.1)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2)) + version: 1.1.7(solid-js@1.9.9)(vinxi@0.5.8(5cf6d5d1c3dfc70a051a8471a64ca767))(vite@7.3.1(@types/node@25.0.9)(jiti@2.6.1)(less@4.5.1)(lightningcss@1.30.2)(sass@1.97.1)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2)) better-auth: specifier: workspace:* version: link:../../../packages/better-auth @@ -946,7 +1019,7 @@ importers: version: 1.9.9 vinxi: specifier: ^0.5.8 - version: 0.5.8(186a7588b61c4b5af5e57e454f0edfaa) + version: 0.5.8(5cf6d5d1c3dfc70a051a8471a64ca767) devDependencies: '@better-auth/test-utils': specifier: workspace:* @@ -999,14 +1072,14 @@ importers: version: link:../../../../../packages/better-auth drizzle-orm: specifier: ^0.44.5 - version: 0.44.5(@cloudflare/workers-types@4.20260103.0)(@electric-sql/pglite@0.3.14)(@libsql/client@0.15.15)(@opentelemetry/api@1.9.0)(@prisma/client@7.2.0(prisma@7.2.0(@types/react@19.2.7)(better-sqlite3@12.5.0)(magicast@0.5.1)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(typescript@5.9.3))(typescript@5.9.3))(@types/better-sqlite3@7.6.13)(@types/pg@8.16.0)(better-sqlite3@12.5.0)(bun-types@1.3.6)(kysely@0.28.9)(mysql2@3.16.0)(pg@8.16.3)(postgres@3.4.7)(prisma@7.2.0(@types/react@19.2.7)(better-sqlite3@12.5.0)(magicast@0.5.1)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(typescript@5.9.3)) + version: 0.44.5(@cloudflare/workers-types@4.20260103.0)(@electric-sql/pglite@0.3.14)(@libsql/client@0.15.15)(@opentelemetry/api@1.9.0)(@prisma/client@7.2.0(prisma@7.2.0(@types/react@19.2.7)(better-sqlite3@12.5.0)(magicast@0.5.1)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(typescript@5.9.3))(typescript@5.9.3))(@types/better-sqlite3@7.6.13)(@types/pg@8.16.0)(better-sqlite3@12.5.0)(bun-types@1.3.6)(gel@2.2.0)(kysely@0.28.9)(mysql2@3.16.0)(pg@8.16.3)(postgres@3.4.7)(prisma@7.2.0(@types/react@19.2.7)(better-sqlite3@12.5.0)(magicast@0.5.1)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(typescript@5.9.3)) hono: specifier: ^4.11.4 version: 4.11.4 devDependencies: '@cloudflare/vitest-pool-workers': specifier: ^0.8.69 - version: 0.8.69(@cloudflare/workers-types@4.20260103.0)(@vitest/runner@4.0.17)(@vitest/snapshot@4.0.17)(vitest@4.0.17(@opentelemetry/api@1.9.0)(@types/node@25.0.9)(happy-dom@20.0.11)(jiti@2.6.1)(less@4.5.1)(lightningcss@1.30.2)(msw@2.12.7(@types/node@25.0.9)(typescript@5.9.3))(sass@1.97.1)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2)) + version: 0.8.69(@cloudflare/workers-types@4.20260103.0)(@vitest/runner@4.0.17)(@vitest/snapshot@4.0.17)(vitest@4.0.17) '@cloudflare/workers-types': specifier: ^4.20250903.0 version: 4.20260103.0 @@ -1102,6 +1175,21 @@ importers: '@better-auth/core': specifier: workspace:* version: link:../core + '@better-auth/drizzle-adapter': + specifier: workspace:* + version: link:../drizzle-adapter + '@better-auth/kysely-adapter': + specifier: workspace:* + version: link:../kysely-adapter + '@better-auth/memory-adapter': + specifier: workspace:* + version: link:../memory-adapter + '@better-auth/mongo-adapter': + specifier: workspace:* + version: link:../mongo-adapter + '@better-auth/prisma-adapter': + specifier: workspace:* + version: link:../prisma-adapter '@better-auth/telemetry': specifier: workspace:* version: link:../telemetry @@ -1117,21 +1205,42 @@ importers: '@noble/hashes': specifier: ^2.0.0 version: 2.0.0 + '@prisma/client': + specifier: ^5.0.0 || ^6.0.0 || ^7.0.0 + version: 5.22.0(prisma@5.22.0) better-call: specifier: 'catalog:' version: 1.2.0(zod@4.3.4) defu: specifier: ^6.1.4 version: 6.1.4 + drizzle-kit: + specifier: '>=0.31.4' + version: 0.31.4 + drizzle-orm: + specifier: '>=0.41.0' + version: 0.45.1(@cloudflare/workers-types@4.20260103.0)(@electric-sql/pglite@0.3.14)(@libsql/client@0.15.15)(@opentelemetry/api@1.9.0)(@prisma/client@5.22.0(prisma@5.22.0))(@types/better-sqlite3@7.6.13)(@types/pg@8.16.0)(better-sqlite3@12.5.0)(bun-types@1.3.6)(gel@2.2.0)(kysely@0.28.9)(mysql2@3.16.0)(pg@8.16.3)(postgres@3.4.7)(prisma@5.22.0) jose: specifier: ^6.1.0 version: 6.1.3 kysely: specifier: ^0.28.5 version: 0.28.9 + mongodb: + specifier: ^6.0.0 || ^7.0.0 + version: 7.0.0 + mysql2: + specifier: ^3.0.0 + version: 3.16.0 nanostores: specifier: ^1.0.1 version: 1.0.1 + pg: + specifier: ^8.0.0 + version: 8.16.3 + prisma: + specifier: ^5.0.0 || ^6.0.0 || ^7.0.0 + version: 5.22.0 svelte: specifier: ^4.0.0 || ^5.0.0 version: 5.46.1 @@ -1142,9 +1251,6 @@ importers: '@lynx-js/react': specifier: ^0.115.4 version: 0.115.4(@types/react@19.2.7) - '@prisma/client': - specifier: ^5.22.0 - version: 5.22.0(prisma@5.22.0) '@sveltejs/kit': specifier: ^2.49.5 version: 2.49.5(@opentelemetry/api@1.9.0)(@sveltejs/vite-plugin-svelte@6.2.1(svelte@5.46.1)(vite@7.3.1(@types/node@25.0.9)(jiti@2.6.1)(less@4.5.1)(lightningcss@1.30.2)(sass@1.97.1)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2)))(svelte@5.46.1)(typescript@5.9.3)(vite@7.3.1(@types/node@25.0.9)(jiti@2.6.1)(less@4.5.1)(lightningcss@1.30.2)(sass@1.97.1)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2)) @@ -1172,39 +1278,21 @@ importers: deepmerge: specifier: ^4.3.1 version: 4.3.1 - drizzle-kit: - specifier: ^0.31.4 - version: 0.31.4 - drizzle-orm: - specifier: ^0.41.0 - version: 0.41.0(@cloudflare/workers-types@4.20260103.0)(@electric-sql/pglite@0.3.14)(@libsql/client@0.15.15)(@opentelemetry/api@1.9.0)(@prisma/client@5.22.0(prisma@5.22.0))(@types/better-sqlite3@7.6.13)(@types/pg@8.16.0)(better-sqlite3@12.5.0)(bun-types@1.3.6)(kysely@0.28.9)(mysql2@3.16.0)(pg@8.16.3)(postgres@3.4.7)(prisma@5.22.0) happy-dom: specifier: ^20.0.10 version: 20.0.11 listhen: specifier: ^1.9.0 version: 1.9.0 - mongodb: - specifier: ^6.18.0 - version: 6.18.0 msw: specifier: ^2.12.4 version: 2.12.7(@types/node@25.0.9)(typescript@5.9.3) - mysql2: - specifier: ^3.14.4 - version: 3.16.0 next: specifier: ^16.1.1 version: 16.1.1(@babel/core@7.28.5)(@opentelemetry/api@1.9.0)(@playwright/test@1.57.0)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(sass@1.97.1) oauth2-mock-server: specifier: ^7.2.1 version: 7.2.1 - pg: - specifier: ^8.16.3 - version: 8.16.3 - prisma: - specifier: ^5.22.0 - version: 5.22.0 react: specifier: catalog:react19 version: 19.2.3 @@ -1231,7 +1319,7 @@ importers: version: 5.9.3 vitest: specifier: ^4.0.17 - version: 4.0.17(@opentelemetry/api@1.9.0)(@types/node@25.0.9)(happy-dom@20.0.11)(jiti@2.6.1)(less@4.5.1)(lightningcss@1.30.2)(msw@2.12.7(@types/node@25.0.9)(typescript@5.9.3))(sass@1.97.1)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2) + version: 4.0.17(@opentelemetry/api@1.9.0)(@types/node@25.0.9)(@vitest/ui@4.0.17)(happy-dom@20.0.11)(jiti@2.6.1)(less@4.5.1)(lightningcss@1.30.2)(msw@2.12.7(@types/node@25.0.9)(typescript@5.9.3))(sass@1.97.1)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2) vue: specifier: ^3.5.18 version: 3.5.26(typescript@5.9.3) @@ -1288,7 +1376,7 @@ importers: version: 17.2.3 drizzle-orm: specifier: ^0.41.0 - version: 0.41.0(@cloudflare/workers-types@4.20260103.0)(@electric-sql/pglite@0.3.14)(@libsql/client@0.15.15)(@opentelemetry/api@1.9.0)(@prisma/client@5.22.0(prisma@7.2.0(@types/react@19.2.7)(better-sqlite3@12.5.0)(magicast@0.5.1)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(typescript@5.9.3)))(@types/better-sqlite3@7.6.13)(@types/pg@8.16.0)(better-sqlite3@12.5.0)(bun-types@1.3.6)(kysely@0.28.9)(mysql2@3.16.0)(pg@8.16.3)(postgres@3.4.7)(prisma@7.2.0(@types/react@19.2.7)(better-sqlite3@12.5.0)(magicast@0.5.1)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(typescript@5.9.3)) + version: 0.41.0(@cloudflare/workers-types@4.20260103.0)(@electric-sql/pglite@0.3.14)(@libsql/client@0.15.15)(@opentelemetry/api@1.9.0)(@prisma/client@5.22.0(prisma@7.2.0(@types/react@19.2.7)(better-sqlite3@12.5.0)(magicast@0.5.1)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(typescript@5.9.3)))(@types/better-sqlite3@7.6.13)(@types/pg@8.16.0)(better-sqlite3@12.5.0)(bun-types@1.3.6)(gel@2.2.0)(kysely@0.28.9)(mysql2@3.16.0)(pg@8.16.3)(postgres@3.4.7)(prisma@7.2.0(@types/react@19.2.7)(better-sqlite3@12.5.0)(magicast@0.5.1)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(typescript@5.9.3)) open: specifier: ^10.2.0 version: 10.2.0 @@ -1370,6 +1458,24 @@ importers: specifier: 'catalog:' version: 0.19.0(@arethetypeswrong/core@0.18.2)(oxc-resolver@11.16.3)(publint@0.3.16)(synckit@0.11.11)(typescript@5.9.3) + packages/drizzle-adapter: + devDependencies: + '@better-auth/core': + specifier: workspace:* + version: link:../core + '@better-auth/utils': + specifier: ^0.3.0 + version: 0.3.0 + drizzle-orm: + specifier: ^0.30.0 + version: 0.30.10(@cloudflare/workers-types@4.20260103.0)(@electric-sql/pglite@0.3.14)(@libsql/client@0.15.15)(@opentelemetry/api@1.9.0)(@types/better-sqlite3@7.6.13)(@types/pg@8.16.0)(@types/react@19.2.7)(better-sqlite3@12.5.0)(bun-types@1.3.6)(kysely@0.28.9)(mysql2@3.16.0)(pg@8.16.3)(postgres@3.4.7)(react@19.2.3) + tsdown: + specifier: 'catalog:' + version: 0.19.0(@arethetypeswrong/core@0.18.2)(oxc-resolver@11.16.3)(publint@0.3.16)(synckit@0.11.11)(typescript@5.9.3) + typescript: + specifier: 'catalog:' + version: 5.9.3 + packages/expo: dependencies: '@better-fetch/fetch': @@ -1407,6 +1513,24 @@ importers: specifier: 'catalog:' version: 0.19.0(@arethetypeswrong/core@0.18.2)(oxc-resolver@11.16.3)(publint@0.3.16)(synckit@0.11.11)(typescript@5.9.3) + packages/kysely-adapter: + devDependencies: + '@better-auth/core': + specifier: workspace:* + version: link:../core + '@better-auth/utils': + specifier: ^0.3.0 + version: 0.3.0 + kysely: + specifier: ^0.28.5 + version: 0.28.9 + tsdown: + specifier: 'catalog:' + version: 0.19.0(@arethetypeswrong/core@0.18.2)(oxc-resolver@11.16.3)(publint@0.3.16)(synckit@0.11.11)(typescript@5.9.3) + typescript: + specifier: 'catalog:' + version: 5.9.3 + packages/mcp: dependencies: '@modelcontextprotocol/sdk': @@ -1423,6 +1547,39 @@ importers: specifier: 'catalog:' version: 5.9.3 + packages/memory-adapter: + devDependencies: + '@better-auth/core': + specifier: workspace:* + version: link:../core + '@better-auth/utils': + specifier: ^0.3.0 + version: 0.3.0 + tsdown: + specifier: 'catalog:' + version: 0.19.0(@arethetypeswrong/core@0.18.2)(oxc-resolver@11.16.3)(publint@0.3.16)(synckit@0.11.11)(typescript@5.9.3) + typescript: + specifier: 'catalog:' + version: 5.9.3 + + packages/mongo-adapter: + devDependencies: + '@better-auth/core': + specifier: workspace:* + version: link:../core + '@better-auth/utils': + specifier: ^0.3.0 + version: 0.3.0 + mongodb: + specifier: ^7.0.0 + version: 7.0.0 + tsdown: + specifier: 'catalog:' + version: 0.19.0(@arethetypeswrong/core@0.18.2)(oxc-resolver@11.16.3)(publint@0.3.16)(synckit@0.11.11)(typescript@5.9.3) + typescript: + specifier: 'catalog:' + version: 5.9.3 + packages/oauth-provider: dependencies: '@better-auth/utils': @@ -1491,6 +1648,28 @@ importers: specifier: 'catalog:' version: 0.19.0(@arethetypeswrong/core@0.18.2)(oxc-resolver@11.16.3)(publint@0.3.16)(synckit@0.11.11)(typescript@5.9.3) + packages/prisma-adapter: + dependencies: + '@prisma/client': + specifier: ^5.0.0 + version: 5.22.0(prisma@5.22.0) + devDependencies: + '@better-auth/core': + specifier: workspace:* + version: link:../core + '@better-auth/utils': + specifier: ^0.3.0 + version: 0.3.0 + prisma: + specifier: ^5.0.0 + version: 5.22.0 + tsdown: + specifier: 'catalog:' + version: 0.19.0(@arethetypeswrong/core@0.18.2)(oxc-resolver@11.16.3)(publint@0.3.16)(synckit@0.11.11)(typescript@5.9.3) + typescript: + specifier: 'catalog:' + version: 5.9.3 + packages/scim: dependencies: '@better-auth/utils': @@ -1631,7 +1810,7 @@ importers: version: 7.14.0 vitest: specifier: catalog:vitest - version: 4.0.17(@opentelemetry/api@1.9.0)(@types/node@25.0.9)(happy-dom@20.0.11)(jiti@2.6.1)(less@4.5.1)(lightningcss@1.30.2)(msw@2.12.7(@types/node@25.0.9)(typescript@5.9.3))(sass@1.97.1)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2) + version: 4.0.17(@opentelemetry/api@1.9.0)(@types/node@25.0.9)(@vitest/ui@4.0.17)(happy-dom@20.0.11)(jiti@2.6.1)(less@4.5.1)(lightningcss@1.30.2)(msw@2.12.7(@types/node@25.0.9)(typescript@5.9.3))(sass@1.97.1)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2) packages: @@ -3125,9 +3304,6 @@ packages: '@emnapi/core@1.8.1': resolution: {integrity: sha512-AvT9QFpxK0Zd8J0jopedNm+w/2fIzvtPKPjqyw9jwvBaReTTqPBk9Hixaz7KbjimP+QNz605/XnjFcDAL2pqBg==} - '@emnapi/runtime@1.7.1': - resolution: {integrity: sha512-PVtJr5CmLwYAU9PZDMITZoR5iAOShYREoR45EyyLrbntV50mdePTgUn4AmOw90Ifcj+x2kRjdzr1HP3RrNiHGA==} - '@emnapi/runtime@1.8.1': resolution: {integrity: sha512-mehfKSMWjjNol8659Z8KxEMrdSJDDot5SXMq00dM8BN4o+CLNXQ0xH2V7EchNHV4RmbZLmmPdEaXZc5H2FXmDg==} @@ -3146,6 +3322,12 @@ packages: resolution: {integrity: sha512-FxEMIkJKnodyA1OaCUoEvbYRkoZlLZ4d/eXFu9Fh8CbBBgP5EmZxrfTRyN0qpXZ4vOvqnE5YdRdcrmUUXuU+dA==} deprecated: 'Merged into tsx: https://tsx.is' + '@esbuild/aix-ppc64@0.19.12': + resolution: {integrity: sha512-bmoCYyWdEL3wDQIVbcyzRyeKLgk2WtWLTWz1ZIAZF/EGbNOwSA6ew3PftJ1PqMiOOGu0OyFMzG53L0zqIpPeNA==} + engines: {node: '>=12'} + cpu: [ppc64] + os: [aix] + '@esbuild/aix-ppc64@0.25.12': resolution: {integrity: sha512-Hhmwd6CInZ3dwpuGTF8fJG6yoWmsToE+vYgD4nytZVxcu1ulHpUQRAB1UJ8+N1Am3Mz4+xOByoQoSZf4D+CpkA==} engines: {node: '>=18'} @@ -3176,6 +3358,12 @@ packages: cpu: [arm64] os: [android] + '@esbuild/android-arm64@0.19.12': + resolution: {integrity: sha512-P0UVNGIienjZv3f5zq0DP3Nt2IE/3plFzuaS96vihvD0Hd6H/q4WXUGpCxD/E8YrSXfNyRPbpTq+T8ZQioSuPA==} + engines: {node: '>=12'} + cpu: [arm64] + os: [android] + '@esbuild/android-arm64@0.25.12': resolution: {integrity: sha512-6AAmLG7zwD1Z159jCKPvAxZd4y/VTO0VkprYy+3N2FtJ8+BQWFXU+OxARIwA46c5tdD9SsKGZ/1ocqBS/gAKHg==} engines: {node: '>=18'} @@ -3206,6 +3394,12 @@ packages: cpu: [arm] os: [android] + '@esbuild/android-arm@0.19.12': + resolution: {integrity: sha512-qg/Lj1mu3CdQlDEEiWrlC4eaPZ1KztwGJ9B6J+/6G+/4ewxJg7gqj8eVYWvao1bXrqGiW2rsBZFSX3q2lcW05w==} + engines: {node: '>=12'} + cpu: [arm] + os: [android] + '@esbuild/android-arm@0.25.12': resolution: {integrity: sha512-VJ+sKvNA/GE7Ccacc9Cha7bpS8nyzVv0jdVgwNDaR4gDMC/2TTRc33Ip8qrNYUcpkOHUT5OZ0bUcNNVZQ9RLlg==} engines: {node: '>=18'} @@ -3236,6 +3430,12 @@ packages: cpu: [x64] os: [android] + '@esbuild/android-x64@0.19.12': + resolution: {integrity: sha512-3k7ZoUW6Q6YqhdhIaq/WZ7HwBpnFBlW905Fa4s4qWJyiNOgT1dOqDiVAQFwBH7gBRZr17gLrlFCRzF6jFh7Kew==} + engines: {node: '>=12'} + cpu: [x64] + os: [android] + '@esbuild/android-x64@0.25.12': resolution: {integrity: sha512-5jbb+2hhDHx5phYR2By8GTWEzn6I9UqR11Kwf22iKbNpYrsmRB18aX/9ivc5cabcUiAT/wM+YIZ6SG9QO6a8kg==} engines: {node: '>=18'} @@ -3266,6 +3466,12 @@ packages: cpu: [arm64] os: [darwin] + '@esbuild/darwin-arm64@0.19.12': + resolution: {integrity: sha512-B6IeSgZgtEzGC42jsI+YYu9Z3HKRxp8ZT3cqhvliEHovq8HSX2YX8lNocDn79gCKJXOSaEot9MVYky7AKjCs8g==} + engines: {node: '>=12'} + cpu: [arm64] + os: [darwin] + '@esbuild/darwin-arm64@0.25.12': resolution: {integrity: sha512-N3zl+lxHCifgIlcMUP5016ESkeQjLj/959RxxNYIthIg+CQHInujFuXeWbWMgnTo4cp5XVHqFPmpyu9J65C1Yg==} engines: {node: '>=18'} @@ -3296,6 +3502,12 @@ packages: cpu: [x64] os: [darwin] + '@esbuild/darwin-x64@0.19.12': + resolution: {integrity: sha512-hKoVkKzFiToTgn+41qGhsUJXFlIjxI/jSYeZf3ugemDYZldIXIxhvwN6erJGlX4t5h417iFuheZ7l+YVn05N3A==} + engines: {node: '>=12'} + cpu: [x64] + os: [darwin] + '@esbuild/darwin-x64@0.25.12': resolution: {integrity: sha512-HQ9ka4Kx21qHXwtlTUVbKJOAnmG1ipXhdWTmNXiPzPfWKpXqASVcWdnf2bnL73wgjNrFXAa3yYvBSd9pzfEIpA==} engines: {node: '>=18'} @@ -3326,6 +3538,12 @@ packages: cpu: [arm64] os: [freebsd] + '@esbuild/freebsd-arm64@0.19.12': + resolution: {integrity: sha512-4aRvFIXmwAcDBw9AueDQ2YnGmz5L6obe5kmPT8Vd+/+x/JMVKCgdcRwH6APrbpNXsPz+K653Qg8HB/oXvXVukA==} + engines: {node: '>=12'} + cpu: [arm64] + os: [freebsd] + '@esbuild/freebsd-arm64@0.25.12': resolution: {integrity: sha512-gA0Bx759+7Jve03K1S0vkOu5Lg/85dou3EseOGUes8flVOGxbhDDh/iZaoek11Y8mtyKPGF3vP8XhnkDEAmzeg==} engines: {node: '>=18'} @@ -3356,6 +3574,12 @@ packages: cpu: [x64] os: [freebsd] + '@esbuild/freebsd-x64@0.19.12': + resolution: {integrity: sha512-EYoXZ4d8xtBoVN7CEwWY2IN4ho76xjYXqSXMNccFSx2lgqOG/1TBPW0yPx1bJZk94qu3tX0fycJeeQsKovA8gg==} + engines: {node: '>=12'} + cpu: [x64] + os: [freebsd] + '@esbuild/freebsd-x64@0.25.12': resolution: {integrity: sha512-TGbO26Yw2xsHzxtbVFGEXBFH0FRAP7gtcPE7P5yP7wGy7cXK2oO7RyOhL5NLiqTlBh47XhmIUXuGciXEqYFfBQ==} engines: {node: '>=18'} @@ -3386,6 +3610,12 @@ packages: cpu: [arm64] os: [linux] + '@esbuild/linux-arm64@0.19.12': + resolution: {integrity: sha512-EoTjyYyLuVPfdPLsGVVVC8a0p1BFFvtpQDB/YLEhaXyf/5bczaGeN15QkR+O4S5LeJ92Tqotve7i1jn35qwvdA==} + engines: {node: '>=12'} + cpu: [arm64] + os: [linux] + '@esbuild/linux-arm64@0.25.12': resolution: {integrity: sha512-8bwX7a8FghIgrupcxb4aUmYDLp8pX06rGh5HqDT7bB+8Rdells6mHvrFHHW2JAOPZUbnjUpKTLg6ECyzvas2AQ==} engines: {node: '>=18'} @@ -3416,6 +3646,12 @@ packages: cpu: [arm] os: [linux] + '@esbuild/linux-arm@0.19.12': + resolution: {integrity: sha512-J5jPms//KhSNv+LO1S1TX1UWp1ucM6N6XuL6ITdKWElCu8wXP72l9MM0zDTzzeikVyqFE6U8YAV9/tFyj0ti+w==} + engines: {node: '>=12'} + cpu: [arm] + os: [linux] + '@esbuild/linux-arm@0.25.12': resolution: {integrity: sha512-lPDGyC1JPDou8kGcywY0YILzWlhhnRjdof3UlcoqYmS9El818LLfJJc3PXXgZHrHCAKs/Z2SeZtDJr5MrkxtOw==} engines: {node: '>=18'} @@ -3446,6 +3682,12 @@ packages: cpu: [ia32] os: [linux] + '@esbuild/linux-ia32@0.19.12': + resolution: {integrity: sha512-Thsa42rrP1+UIGaWz47uydHSBOgTUnwBwNq59khgIwktK6x60Hivfbux9iNR0eHCHzOLjLMLfUMLCypBkZXMHA==} + engines: {node: '>=12'} + cpu: [ia32] + os: [linux] + '@esbuild/linux-ia32@0.25.12': resolution: {integrity: sha512-0y9KrdVnbMM2/vG8KfU0byhUN+EFCny9+8g202gYqSSVMonbsCfLjUO+rCci7pM0WBEtz+oK/PIwHkzxkyharA==} engines: {node: '>=18'} @@ -3476,6 +3718,12 @@ packages: cpu: [loong64] os: [linux] + '@esbuild/linux-loong64@0.19.12': + resolution: {integrity: sha512-LiXdXA0s3IqRRjm6rV6XaWATScKAXjI4R4LoDlvO7+yQqFdlr1Bax62sRwkVvRIrwXxvtYEHHI4dm50jAXkuAA==} + engines: {node: '>=12'} + cpu: [loong64] + os: [linux] + '@esbuild/linux-loong64@0.25.12': resolution: {integrity: sha512-h///Lr5a9rib/v1GGqXVGzjL4TMvVTv+s1DPoxQdz7l/AYv6LDSxdIwzxkrPW438oUXiDtwM10o9PmwS/6Z0Ng==} engines: {node: '>=18'} @@ -3506,6 +3754,12 @@ packages: cpu: [mips64el] os: [linux] + '@esbuild/linux-mips64el@0.19.12': + resolution: {integrity: sha512-fEnAuj5VGTanfJ07ff0gOA6IPsvrVHLVb6Lyd1g2/ed67oU1eFzL0r9WL7ZzscD+/N6i3dWumGE1Un4f7Amf+w==} + engines: {node: '>=12'} + cpu: [mips64el] + os: [linux] + '@esbuild/linux-mips64el@0.25.12': resolution: {integrity: sha512-iyRrM1Pzy9GFMDLsXn1iHUm18nhKnNMWscjmp4+hpafcZjrr2WbT//d20xaGljXDBYHqRcl8HnxbX6uaA/eGVw==} engines: {node: '>=18'} @@ -3536,6 +3790,12 @@ packages: cpu: [ppc64] os: [linux] + '@esbuild/linux-ppc64@0.19.12': + resolution: {integrity: sha512-nYJA2/QPimDQOh1rKWedNOe3Gfc8PabU7HT3iXWtNUbRzXS9+vgB0Fjaqr//XNbd82mCxHzik2qotuI89cfixg==} + engines: {node: '>=12'} + cpu: [ppc64] + os: [linux] + '@esbuild/linux-ppc64@0.25.12': resolution: {integrity: sha512-9meM/lRXxMi5PSUqEXRCtVjEZBGwB7P/D4yT8UG/mwIdze2aV4Vo6U5gD3+RsoHXKkHCfSxZKzmDssVlRj1QQA==} engines: {node: '>=18'} @@ -3566,6 +3826,12 @@ packages: cpu: [riscv64] os: [linux] + '@esbuild/linux-riscv64@0.19.12': + resolution: {integrity: sha512-2MueBrlPQCw5dVJJpQdUYgeqIzDQgw3QtiAHUC4RBz9FXPrskyyU3VI1hw7C0BSKB9OduwSJ79FTCqtGMWqJHg==} + engines: {node: '>=12'} + cpu: [riscv64] + os: [linux] + '@esbuild/linux-riscv64@0.25.12': resolution: {integrity: sha512-Zr7KR4hgKUpWAwb1f3o5ygT04MzqVrGEGXGLnj15YQDJErYu/BGg+wmFlIDOdJp0PmB0lLvxFIOXZgFRrdjR0w==} engines: {node: '>=18'} @@ -3596,6 +3862,12 @@ packages: cpu: [s390x] os: [linux] + '@esbuild/linux-s390x@0.19.12': + resolution: {integrity: sha512-+Pil1Nv3Umes4m3AZKqA2anfhJiVmNCYkPchwFJNEJN5QxmTs1uzyy4TvmDrCRNT2ApwSari7ZIgrPeUx4UZDg==} + engines: {node: '>=12'} + cpu: [s390x] + os: [linux] + '@esbuild/linux-s390x@0.25.12': resolution: {integrity: sha512-MsKncOcgTNvdtiISc/jZs/Zf8d0cl/t3gYWX8J9ubBnVOwlk65UIEEvgBORTiljloIWnBzLs4qhzPkJcitIzIg==} engines: {node: '>=18'} @@ -3626,6 +3898,12 @@ packages: cpu: [x64] os: [linux] + '@esbuild/linux-x64@0.19.12': + resolution: {integrity: sha512-B71g1QpxfwBvNrfyJdVDexenDIt1CiDN1TIXLbhOw0KhJzE78KIFGX6OJ9MrtC0oOqMWf+0xop4qEU8JrJTwCg==} + engines: {node: '>=12'} + cpu: [x64] + os: [linux] + '@esbuild/linux-x64@0.25.12': resolution: {integrity: sha512-uqZMTLr/zR/ed4jIGnwSLkaHmPjOjJvnm6TVVitAa08SLS9Z0VM8wIRx7gWbJB5/J54YuIMInDquWyYvQLZkgw==} engines: {node: '>=18'} @@ -3680,6 +3958,12 @@ packages: cpu: [x64] os: [netbsd] + '@esbuild/netbsd-x64@0.19.12': + resolution: {integrity: sha512-3ltjQ7n1owJgFbuC61Oj++XhtzmymoCihNFgT84UAmJnxJfm4sYCiSLTXZtE00VWYpPMYc+ZQmB6xbSdVh0JWA==} + engines: {node: '>=12'} + cpu: [x64] + os: [netbsd] + '@esbuild/netbsd-x64@0.25.12': resolution: {integrity: sha512-Ld5pTlzPy3YwGec4OuHh1aCVCRvOXdH8DgRjfDy/oumVovmuSzWfnSJg+VtakB9Cm0gxNO9BzWkj6mtO1FMXkQ==} engines: {node: '>=18'} @@ -3734,6 +4018,12 @@ packages: cpu: [x64] os: [openbsd] + '@esbuild/openbsd-x64@0.19.12': + resolution: {integrity: sha512-RbrfTB9SWsr0kWmb9srfF+L933uMDdu9BIzdA7os2t0TXhCRjrQyCeOt6wVxr79CKD4c+p+YhCj31HBkYcXebw==} + engines: {node: '>=12'} + cpu: [x64] + os: [openbsd] + '@esbuild/openbsd-x64@0.25.12': resolution: {integrity: sha512-MZyXUkZHjQxUvzK7rN8DJ3SRmrVrke8ZyRusHlP+kuwqTcfWLyqMOE3sScPPyeIXN/mDJIfGXvcMqCgYKekoQw==} engines: {node: '>=18'} @@ -3776,6 +4066,12 @@ packages: cpu: [x64] os: [sunos] + '@esbuild/sunos-x64@0.19.12': + resolution: {integrity: sha512-HKjJwRrW8uWtCQnQOz9qcU3mUZhTUQvi56Q8DPTLLB+DawoiQdjsYq+j+D3s9I8VFtDr+F9CjgXKKC4ss89IeA==} + engines: {node: '>=12'} + cpu: [x64] + os: [sunos] + '@esbuild/sunos-x64@0.25.12': resolution: {integrity: sha512-3wGSCDyuTHQUzt0nV7bocDy72r2lI33QL3gkDNGkod22EsYl04sMf0qLb8luNKTOmgF/eDEDP5BFNwoBKH441w==} engines: {node: '>=18'} @@ -3806,6 +4102,12 @@ packages: cpu: [arm64] os: [win32] + '@esbuild/win32-arm64@0.19.12': + resolution: {integrity: sha512-URgtR1dJnmGvX864pn1B2YUYNzjmXkuJOIqG2HdU62MVS4EHpU2946OZoTMnRUHklGtJdJZ33QfzdjGACXhn1A==} + engines: {node: '>=12'} + cpu: [arm64] + os: [win32] + '@esbuild/win32-arm64@0.25.12': resolution: {integrity: sha512-rMmLrur64A7+DKlnSuwqUdRKyd3UE7oPJZmnljqEptesKM8wx9J8gx5u0+9Pq0fQQW8vqeKebwNXdfOyP+8Bsg==} engines: {node: '>=18'} @@ -3836,6 +4138,12 @@ packages: cpu: [ia32] os: [win32] + '@esbuild/win32-ia32@0.19.12': + resolution: {integrity: sha512-+ZOE6pUkMOJfmxmBZElNOx72NKpIa/HFOMGzu8fqzQJ5kgf6aTGrcJaFsNiVMH4JKpMipyK+7k0n2UXN7a8YKQ==} + engines: {node: '>=12'} + cpu: [ia32] + os: [win32] + '@esbuild/win32-ia32@0.25.12': resolution: {integrity: sha512-HkqnmmBoCbCwxUKKNPBixiWDGCpQGVsrQfJoVGYLPT41XWF8lHuE5N6WhVia2n4o5QK5M4tYr21827fNhi4byQ==} engines: {node: '>=18'} @@ -3866,6 +4174,12 @@ packages: cpu: [x64] os: [win32] + '@esbuild/win32-x64@0.19.12': + resolution: {integrity: sha512-T1QyPSDCyMXaO3pzBkF96E8xMkiRYbUEZADd29SyPGabqxMViNoii+NcK7eWJAEoU6RZyEm5lVSIjTmcdoB9HA==} + engines: {node: '>=12'} + cpu: [x64] + os: [win32] + '@esbuild/win32-x64@0.25.12': resolution: {integrity: sha512-alJC0uCZpTFrSL0CCDjcgleBXPnCrEAhTBILpeAp7M/OFgoqtAetfBzX0xM00MUsVVPpVjlPuMbREqnZCXaTnA==} engines: {node: '>=18'} @@ -4603,8 +4917,8 @@ packages: '@cfworker/json-schema': optional: true - '@mongodb-js/saslprep@1.2.2': - resolution: {integrity: sha512-EB0O3SCSNRUFk66iRCpI+cXzIjdswfCs7F6nOC3RAGJ7xr5YhaicvsRwJ9eyzYvYRlCSDUO/c7g4yNulxKC1WA==} + '@mongodb-js/saslprep@1.4.5': + resolution: {integrity: sha512-k64Lbyb7ycCSXHSLzxVdb2xsKGPMvYZfCICXvDsI8Z65CeWQzTEKS4YmGbnqw+U9RBvLPTsB6UCmwkgsDTGWIw==} '@mrleebo/prisma-ast@0.12.1': resolution: {integrity: sha512-JwqeCQ1U3fvccttHZq7Tk0m/TMC6WcFAQZdukypW3AzlJYKYTGNVd1ANU2GuhKnv4UQuOFj3oAl0LLG/gxFN1w==} @@ -5183,6 +5497,9 @@ packages: '@peculiar/asn1-x509@2.3.15': resolution: {integrity: sha512-0dK5xqTqSLaxv1FHXIcd4Q/BZNuopg+u1l23hT9rOmQ1g4dNtw0g/RnEi+TboB0gOwGtrWn269v27cMgchFIIg==} + '@petamoriken/float16@3.9.3': + resolution: {integrity: sha512-8awtpHXCx/bNpFt4mt2xdkgtgVvKqty8VbjHI/WWWQuEw+KLzFot3f4+LkQY9YmOtq7A5GdOnqoIC8Pdygjk2g==} + '@pkgjs/parseargs@0.11.0': resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==} engines: {node: '>=14'} @@ -7678,8 +7995,8 @@ packages: '@types/whatwg-mimetype@3.0.2': resolution: {integrity: sha512-c2AKvDT8ToxLIOUlN51gTiHXflsfIFisS4pO7pDPoKouJCESkhZnEy623gwP9laCy5lnLDAw1vAzu2vM2YLOrA==} - '@types/whatwg-url@11.0.5': - resolution: {integrity: sha512-coYR071JRaHa+xoEvvYqvnIHaVqaYrLPbsufM9BF63HkwI5Lgmy2QR8Q5K/lYDYo5AK82wOvSOS0UsLTpTG7uQ==} + '@types/whatwg-url@13.0.0': + resolution: {integrity: sha512-N8WXpbE6Wgri7KUSvrmQcqrMllKZ9uxkYWMt+mCSGwNc0Hsw9VQTW7ApqI4XNrx6/SaM2QQJCzMPDEXE058s+Q==} '@types/ws@8.18.1': resolution: {integrity: sha512-ThVF6DCVhA8kUGy+aazFQ4kXQ7E1Ty7A3ypFOe0IcJV8O/M511G99AW24irKrW56Wt44yG9+ij8FaqoBGkuBXg==} @@ -7824,6 +8141,11 @@ packages: '@vitest/spy@4.0.17': resolution: {integrity: sha512-I1bQo8QaP6tZlTomQNWKJE6ym4SHf3oLS7ceNjozxxgzavRAgZDc06T7kD8gb9bXKEgcLNt00Z+kZO6KaJ62Ew==} + '@vitest/ui@4.0.17': + resolution: {integrity: sha512-hRDjg6dlDz7JlZAvjbiCdAJ3SDG+NH8tjZe21vjxfvT2ssYAn72SRXMge3dKKABm3bIJ3C+3wdunIdur8PHEAw==} + peerDependencies: + vitest: 4.0.17 + '@vitest/utils@4.0.17': resolution: {integrity: sha512-RG6iy+IzQpa9SB8HAFHJ9Y+pTzI+h8553MrciN9eC6TFBErqrQaTas4vG+MVj8S4uKk8uTT2p0vgZPnTdxd96w==} @@ -8368,9 +8690,9 @@ packages: bser@2.1.1: resolution: {integrity: sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==} - bson@6.10.4: - resolution: {integrity: sha512-WIsKqkSC0ABoBJuT1LEX+2HEvNmNKKgnTAyd0fL8qzK4SH2i9NXg+t08YtdZp/V9IZ33cxe3iV4yM0qg8lMQng==} - engines: {node: '>=16.20.1'} + bson@7.1.1: + resolution: {integrity: sha512-TtJgBB+QyOlWjrbM+8bRgH84VM/xrDjyBFgSgGrfZF4xvt6gbEDtcswm27Tn9F9TWsjQybxT8b8VpCP/oJK4Dw==} + engines: {node: '>=20.19.0'} buffer-crc32@0.2.13: resolution: {integrity: sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==} @@ -9295,10 +9617,94 @@ packages: resolution: {integrity: sha512-JVUnt+DUIzu87TABbhPmNfVdBDt18BLOWjMUFJMSi/Qqg7NTYtabbvSNJGOJ7afbRuv9D/lngizHtP7QyLQ+9w==} engines: {node: '>=12'} + drizzle-kit@0.30.6: + resolution: {integrity: sha512-U4wWit0fyZuGuP7iNmRleQyK2V8wCuv57vf5l3MnG4z4fzNTjY/U13M8owyQ5RavqvqxBifWORaR3wIUzlN64g==} + hasBin: true + drizzle-kit@0.31.4: resolution: {integrity: sha512-tCPWVZWZqWVx2XUsVpJRnH9Mx0ClVOf5YUHerZ5so1OKSlqww4zy1R5ksEdGRcO3tM3zj0PYN6V48TbQCL1RfA==} hasBin: true + drizzle-orm@0.30.10: + resolution: {integrity: sha512-IRy/QmMWw9lAQHpwbUh1b8fcn27S/a9zMIzqea1WNOxK9/4EB8gIo+FZWLiPXzl2n9ixGSv8BhsLZiOppWEwBw==} + peerDependencies: + '@aws-sdk/client-rds-data': '>=3' + '@cloudflare/workers-types': '>=3' + '@electric-sql/pglite': '>=0.1.1' + '@libsql/client': '*' + '@neondatabase/serverless': '>=0.1' + '@op-engineering/op-sqlite': '>=2' + '@opentelemetry/api': ^1.4.1 + '@planetscale/database': '>=1' + '@types/better-sqlite3': '*' + '@types/pg': '*' + '@types/react': '>=18' + '@types/sql.js': '*' + '@vercel/postgres': '>=0.8.0' + '@xata.io/client': '*' + better-sqlite3: '>=7' + bun-types: '*' + expo-sqlite: '>=13.2.0' + knex: '*' + kysely: '*' + mysql2: '>=2' + pg: '>=8' + postgres: '>=3' + react: '>=18' + sql.js: '>=1' + sqlite3: '>=5' + peerDependenciesMeta: + '@aws-sdk/client-rds-data': + optional: true + '@cloudflare/workers-types': + optional: true + '@electric-sql/pglite': + optional: true + '@libsql/client': + optional: true + '@neondatabase/serverless': + optional: true + '@op-engineering/op-sqlite': + optional: true + '@opentelemetry/api': + optional: true + '@planetscale/database': + optional: true + '@types/better-sqlite3': + optional: true + '@types/pg': + optional: true + '@types/react': + optional: true + '@types/sql.js': + optional: true + '@vercel/postgres': + optional: true + '@xata.io/client': + optional: true + better-sqlite3: + optional: true + bun-types: + optional: true + expo-sqlite: + optional: true + knex: + optional: true + kysely: + optional: true + mysql2: + optional: true + pg: + optional: true + postgres: + optional: true + react: + optional: true + sql.js: + optional: true + sqlite3: + optional: true + drizzle-orm@0.41.0: resolution: {integrity: sha512-7A4ZxhHk9gdlXmTdPj/lREtP+3u8KvZ4yEN6MYVxBzZGex5Wtdc+CWSbu7btgF6TB0N+MNPrvW7RKBbxJchs/Q==} peerDependencies: @@ -9759,6 +10165,11 @@ packages: engines: {node: '>=12'} hasBin: true + esbuild@0.19.12: + resolution: {integrity: sha512-aARqgq8roFBj054KvQr5f1sFu0D65G+miZRCuJyJ0G13Zwx7vRar5Zhn2tkQNzIXcBrNVsv/8stehpj+GAjgbg==} + engines: {node: '>=12'} + hasBin: true + esbuild@0.25.12: resolution: {integrity: sha512-bbPBYYrtZbkt6Os6FiTLCTFxvq4tt3JKall1vRwshA3fdVztsLAatFaZobhkBC8/BrPetoa0oksYoKXoG4ryJg==} engines: {node: '>=18'} @@ -10446,6 +10857,11 @@ packages: peerDependencies: next: '>=13.2.0' + gel@2.2.0: + resolution: {integrity: sha512-q0ma7z2swmoamHQusey8ayo8+ilVdzDt4WTxSPzq/yRqvucWRfymRVMvNgmSC0XK7eNjjEZEcplxpgaNojKdmQ==} + engines: {node: '>= 18.0.0'} + hasBin: true + generate-function@2.3.1: resolution: {integrity: sha512-eeB5GfMNeevm/GRYq20ShmsaGcmI81kIX2K9XQx5miC8KdHaC6Jm0qQ8ZNeGOi7wYB8OsdxKs+Y2oVuTFuVwKQ==} @@ -12203,20 +12619,21 @@ packages: module-details-from-path@1.0.4: resolution: {integrity: sha512-EGWKgxALGMgzvxYF1UyGTy0HXX/2vHLkw6+NvDKW2jypWbHpjQuj4UMcqQWXHERJhVGKikolT06G3bcKe4fi7w==} - mongodb-connection-string-url@3.0.2: - resolution: {integrity: sha512-rMO7CGo/9BFwyZABcKAWL8UJwH/Kc2x0g72uhDWzG48URRax5TCIcJ7Rc3RZqffZzO/Gwff/jyKwCU9TN8gehA==} + mongodb-connection-string-url@7.0.0: + resolution: {integrity: sha512-irhhjRVLE20hbkRl4zpAYLnDMM+zIZnp0IDB9akAFFUZp/3XdOfwwddc7y6cNvF2WCEtfTYRwYbIfYa2kVY0og==} + engines: {node: '>=20.19.0'} - mongodb@6.18.0: - resolution: {integrity: sha512-fO5ttN9VC8P0F5fqtQmclAkgXZxbIkYRTUi1j8JO6IYwvamkhtYDilJr35jOPELR49zqCJgXZWwCtW7B+TM8vQ==} - engines: {node: '>=16.20.1'} + mongodb@7.0.0: + resolution: {integrity: sha512-vG/A5cQrvGGvZm2mTnCSz1LUcbOPl83hfB6bxULKQ8oFZauyox/2xbZOoGNl+64m8VBrETkdGCDBdOsCr3F3jg==} + engines: {node: '>=20.19.0'} peerDependencies: - '@aws-sdk/credential-providers': ^3.188.0 - '@mongodb-js/zstd': ^1.1.0 || ^2.0.0 - gcp-metadata: ^5.2.0 - kerberos: ^2.0.1 - mongodb-client-encryption: '>=6.0.0 <7' - snappy: ^7.2.2 - socks: ^2.7.1 + '@aws-sdk/credential-providers': ^3.806.0 + '@mongodb-js/zstd': ^7.0.0 + gcp-metadata: ^7.0.1 + kerberos: ^7.0.0 + mongodb-client-encryption: '>=7.0.0 <7.1.0' + snappy: ^7.3.2 + socks: ^2.8.6 peerDependenciesMeta: '@aws-sdk/credential-providers': optional: true @@ -17432,7 +17849,7 @@ snapshots: '@babel/helper-module-imports': 7.27.1 '@babel/helper-plugin-utils': 7.27.1 '@babel/plugin-syntax-jsx': 7.27.1(@babel/core@7.28.5) - '@babel/types': 7.28.5 + '@babel/types': 7.28.6 transitivePeerDependencies: - supports-color @@ -17443,7 +17860,7 @@ snapshots: '@babel/helper-module-imports': 7.27.1 '@babel/helper-plugin-utils': 7.27.1 '@babel/plugin-syntax-jsx': 7.27.1(@babel/core@7.28.6) - '@babel/types': 7.28.5 + '@babel/types': 7.28.6 transitivePeerDependencies: - supports-color @@ -17917,7 +18334,7 @@ snapshots: optionalDependencies: workerd: 1.20250829.0 - '@cloudflare/vitest-pool-workers@0.8.69(@cloudflare/workers-types@4.20260103.0)(@vitest/runner@4.0.17)(@vitest/snapshot@4.0.17)(vitest@4.0.17(@opentelemetry/api@1.9.0)(@types/node@25.0.9)(happy-dom@20.0.11)(jiti@2.6.1)(less@4.5.1)(lightningcss@1.30.2)(msw@2.12.7(@types/node@25.0.9)(typescript@5.9.3))(sass@1.97.1)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2))': + '@cloudflare/vitest-pool-workers@0.8.69(@cloudflare/workers-types@4.20260103.0)(@vitest/runner@4.0.17)(@vitest/snapshot@4.0.17)(vitest@4.0.17)': dependencies: '@vitest/runner': 4.0.17 '@vitest/snapshot': 4.0.17 @@ -17926,7 +18343,7 @@ snapshots: devalue: 5.6.1 miniflare: 4.20250829.0 semver: 7.7.3 - vitest: 4.0.17(@opentelemetry/api@1.9.0)(@types/node@25.0.9)(happy-dom@20.0.11)(jiti@2.6.1)(less@4.5.1)(lightningcss@1.30.2)(msw@2.12.7(@types/node@25.0.9)(typescript@5.9.3))(sass@1.97.1)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2) + vitest: 4.0.17(@opentelemetry/api@1.9.0)(@types/node@25.0.9)(@vitest/ui@4.0.17)(happy-dom@20.0.11)(jiti@2.6.1)(less@4.5.1)(lightningcss@1.30.2)(msw@2.12.7(@types/node@25.0.9)(typescript@5.9.3))(sass@1.97.1)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2) wrangler: 4.33.2(@cloudflare/workers-types@4.20260103.0) zod: 3.25.76 transitivePeerDependencies: @@ -18222,11 +18639,6 @@ snapshots: tslib: 2.8.1 optional: true - '@emnapi/runtime@1.7.1': - dependencies: - tslib: 2.8.1 - optional: true - '@emnapi/runtime@1.8.1': dependencies: tslib: 2.8.1 @@ -18253,6 +18665,9 @@ snapshots: '@esbuild-kit/core-utils': 3.3.2 get-tsconfig: 4.13.0 + '@esbuild/aix-ppc64@0.19.12': + optional: true + '@esbuild/aix-ppc64@0.25.12': optional: true @@ -18268,6 +18683,9 @@ snapshots: '@esbuild/android-arm64@0.18.20': optional: true + '@esbuild/android-arm64@0.19.12': + optional: true + '@esbuild/android-arm64@0.25.12': optional: true @@ -18283,6 +18701,9 @@ snapshots: '@esbuild/android-arm@0.18.20': optional: true + '@esbuild/android-arm@0.19.12': + optional: true + '@esbuild/android-arm@0.25.12': optional: true @@ -18298,6 +18719,9 @@ snapshots: '@esbuild/android-x64@0.18.20': optional: true + '@esbuild/android-x64@0.19.12': + optional: true + '@esbuild/android-x64@0.25.12': optional: true @@ -18313,6 +18737,9 @@ snapshots: '@esbuild/darwin-arm64@0.18.20': optional: true + '@esbuild/darwin-arm64@0.19.12': + optional: true + '@esbuild/darwin-arm64@0.25.12': optional: true @@ -18328,6 +18755,9 @@ snapshots: '@esbuild/darwin-x64@0.18.20': optional: true + '@esbuild/darwin-x64@0.19.12': + optional: true + '@esbuild/darwin-x64@0.25.12': optional: true @@ -18343,6 +18773,9 @@ snapshots: '@esbuild/freebsd-arm64@0.18.20': optional: true + '@esbuild/freebsd-arm64@0.19.12': + optional: true + '@esbuild/freebsd-arm64@0.25.12': optional: true @@ -18358,6 +18791,9 @@ snapshots: '@esbuild/freebsd-x64@0.18.20': optional: true + '@esbuild/freebsd-x64@0.19.12': + optional: true + '@esbuild/freebsd-x64@0.25.12': optional: true @@ -18373,6 +18809,9 @@ snapshots: '@esbuild/linux-arm64@0.18.20': optional: true + '@esbuild/linux-arm64@0.19.12': + optional: true + '@esbuild/linux-arm64@0.25.12': optional: true @@ -18388,6 +18827,9 @@ snapshots: '@esbuild/linux-arm@0.18.20': optional: true + '@esbuild/linux-arm@0.19.12': + optional: true + '@esbuild/linux-arm@0.25.12': optional: true @@ -18403,6 +18845,9 @@ snapshots: '@esbuild/linux-ia32@0.18.20': optional: true + '@esbuild/linux-ia32@0.19.12': + optional: true + '@esbuild/linux-ia32@0.25.12': optional: true @@ -18418,6 +18863,9 @@ snapshots: '@esbuild/linux-loong64@0.18.20': optional: true + '@esbuild/linux-loong64@0.19.12': + optional: true + '@esbuild/linux-loong64@0.25.12': optional: true @@ -18433,6 +18881,9 @@ snapshots: '@esbuild/linux-mips64el@0.18.20': optional: true + '@esbuild/linux-mips64el@0.19.12': + optional: true + '@esbuild/linux-mips64el@0.25.12': optional: true @@ -18448,6 +18899,9 @@ snapshots: '@esbuild/linux-ppc64@0.18.20': optional: true + '@esbuild/linux-ppc64@0.19.12': + optional: true + '@esbuild/linux-ppc64@0.25.12': optional: true @@ -18463,6 +18917,9 @@ snapshots: '@esbuild/linux-riscv64@0.18.20': optional: true + '@esbuild/linux-riscv64@0.19.12': + optional: true + '@esbuild/linux-riscv64@0.25.12': optional: true @@ -18478,6 +18935,9 @@ snapshots: '@esbuild/linux-s390x@0.18.20': optional: true + '@esbuild/linux-s390x@0.19.12': + optional: true + '@esbuild/linux-s390x@0.25.12': optional: true @@ -18493,6 +18953,9 @@ snapshots: '@esbuild/linux-x64@0.18.20': optional: true + '@esbuild/linux-x64@0.19.12': + optional: true + '@esbuild/linux-x64@0.25.12': optional: true @@ -18520,6 +18983,9 @@ snapshots: '@esbuild/netbsd-x64@0.18.20': optional: true + '@esbuild/netbsd-x64@0.19.12': + optional: true + '@esbuild/netbsd-x64@0.25.12': optional: true @@ -18547,6 +19013,9 @@ snapshots: '@esbuild/openbsd-x64@0.18.20': optional: true + '@esbuild/openbsd-x64@0.19.12': + optional: true + '@esbuild/openbsd-x64@0.25.12': optional: true @@ -18568,6 +19037,9 @@ snapshots: '@esbuild/sunos-x64@0.18.20': optional: true + '@esbuild/sunos-x64@0.19.12': + optional: true + '@esbuild/sunos-x64@0.25.12': optional: true @@ -18583,6 +19055,9 @@ snapshots: '@esbuild/win32-arm64@0.18.20': optional: true + '@esbuild/win32-arm64@0.19.12': + optional: true + '@esbuild/win32-arm64@0.25.12': optional: true @@ -18598,6 +19073,9 @@ snapshots: '@esbuild/win32-ia32@0.18.20': optional: true + '@esbuild/win32-ia32@0.19.12': + optional: true + '@esbuild/win32-ia32@0.25.12': optional: true @@ -18613,6 +19091,9 @@ snapshots: '@esbuild/win32-x64@0.18.20': optional: true + '@esbuild/win32-x64@0.19.12': + optional: true + '@esbuild/win32-x64@0.25.12': optional: true @@ -19323,7 +19804,7 @@ snapshots: '@img/sharp-wasm32@0.34.5': dependencies: - '@emnapi/runtime': 1.7.1 + '@emnapi/runtime': 1.8.1 optional: true '@img/sharp-win32-arm64@0.34.5': @@ -19728,7 +20209,7 @@ snapshots: - hono - supports-color - '@mongodb-js/saslprep@1.2.2': + '@mongodb-js/saslprep@1.4.5': dependencies: sparse-bitfield: 3.0.3 @@ -20338,6 +20819,8 @@ snapshots: pvtsutils: 1.3.6 tslib: 2.8.1 + '@petamoriken/float16@3.9.3': {} + '@pkgjs/parseargs@0.11.0': optional: true @@ -22566,11 +23049,11 @@ snapshots: dependencies: solid-js: 1.9.9 - '@solidjs/start@1.1.7(solid-js@1.9.9)(vinxi@0.5.8(186a7588b61c4b5af5e57e454f0edfaa))(vite@7.3.1(@types/node@25.0.9)(jiti@2.6.1)(less@4.5.1)(lightningcss@1.30.2)(sass@1.97.1)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2))': + '@solidjs/start@1.1.7(solid-js@1.9.9)(vinxi@0.5.8(5cf6d5d1c3dfc70a051a8471a64ca767))(vite@7.3.1(@types/node@25.0.9)(jiti@2.6.1)(less@4.5.1)(lightningcss@1.30.2)(sass@1.97.1)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2))': dependencies: '@tanstack/server-functions-plugin': 1.121.21(vite@7.3.1(@types/node@25.0.9)(jiti@2.6.1)(less@4.5.1)(lightningcss@1.30.2)(sass@1.97.1)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2)) - '@vinxi/plugin-directives': 0.5.1(vinxi@0.5.8(186a7588b61c4b5af5e57e454f0edfaa)) - '@vinxi/server-components': 0.5.1(vinxi@0.5.8(186a7588b61c4b5af5e57e454f0edfaa)) + '@vinxi/plugin-directives': 0.5.1(vinxi@0.5.8(5cf6d5d1c3dfc70a051a8471a64ca767)) + '@vinxi/server-components': 0.5.1(vinxi@0.5.8(5cf6d5d1c3dfc70a051a8471a64ca767)) defu: 6.1.4 error-stack-parser: 2.1.4 html-to-image: 1.11.13 @@ -22581,7 +23064,7 @@ snapshots: source-map-js: 1.2.1 terracotta: 1.0.6(solid-js@1.9.9) tinyglobby: 0.2.15 - vinxi: 0.5.8(186a7588b61c4b5af5e57e454f0edfaa) + vinxi: 0.5.8(5cf6d5d1c3dfc70a051a8471a64ca767) vite-plugin-solid: 2.11.8(solid-js@1.9.9)(vite@7.3.1(@types/node@25.0.9)(jiti@2.6.1)(less@4.5.1)(lightningcss@1.30.2)(sass@1.97.1)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2)) transitivePeerDependencies: - '@testing-library/jest-dom' @@ -23260,7 +23743,7 @@ snapshots: '@types/pg@8.16.0': dependencies: - '@types/node': 24.10.1 + '@types/node': 25.0.9 pg-protocol: 1.10.3 pg-types: 2.2.0 @@ -23287,7 +23770,7 @@ snapshots: '@types/readable-stream@4.0.20': dependencies: - '@types/node': 24.10.1 + '@types/node': 25.0.9 '@types/resolve@1.20.2': {} @@ -23326,7 +23809,7 @@ snapshots: '@types/whatwg-mimetype@3.0.2': {} - '@types/whatwg-url@11.0.5': + '@types/whatwg-url@13.0.0': dependencies: '@types/webidl-conversions': 7.0.3 @@ -23459,7 +23942,7 @@ snapshots: untun: 0.1.3 uqr: 0.1.2 - '@vinxi/plugin-directives@0.5.1(vinxi@0.5.8(186a7588b61c4b5af5e57e454f0edfaa))': + '@vinxi/plugin-directives@0.5.1(vinxi@0.5.8(5cf6d5d1c3dfc70a051a8471a64ca767))': dependencies: '@babel/parser': 7.28.5 acorn: 8.15.0 @@ -23470,18 +23953,18 @@ snapshots: magicast: 0.2.11 recast: 0.23.11 tslib: 2.8.1 - vinxi: 0.5.8(186a7588b61c4b5af5e57e454f0edfaa) + vinxi: 0.5.8(5cf6d5d1c3dfc70a051a8471a64ca767) - '@vinxi/server-components@0.5.1(vinxi@0.5.8(186a7588b61c4b5af5e57e454f0edfaa))': + '@vinxi/server-components@0.5.1(vinxi@0.5.8(5cf6d5d1c3dfc70a051a8471a64ca767))': dependencies: - '@vinxi/plugin-directives': 0.5.1(vinxi@0.5.8(186a7588b61c4b5af5e57e454f0edfaa)) + '@vinxi/plugin-directives': 0.5.1(vinxi@0.5.8(5cf6d5d1c3dfc70a051a8471a64ca767)) acorn: 8.15.0 acorn-loose: 8.5.2 acorn-typescript: 1.4.13(acorn@8.15.0) astring: 1.9.0 magicast: 0.2.11 recast: 0.23.11 - vinxi: 0.5.8(186a7588b61c4b5af5e57e454f0edfaa) + vinxi: 0.5.8(5cf6d5d1c3dfc70a051a8471a64ca767) '@vitejs/plugin-react-swc@4.2.2(vite@7.3.1(@types/node@25.0.9)(jiti@2.6.1)(less@4.5.1)(lightningcss@1.30.2)(sass@1.97.1)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2))': dependencies: @@ -23491,7 +23974,7 @@ snapshots: transitivePeerDependencies: - '@swc/helpers' - '@vitest/coverage-istanbul@4.0.17(vitest@4.0.17(@opentelemetry/api@1.9.0)(@types/node@25.0.9)(happy-dom@20.0.11)(jiti@2.6.1)(less@4.5.1)(lightningcss@1.30.2)(msw@2.12.7(@types/node@25.0.9)(typescript@5.9.3))(sass@1.97.1)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2))': + '@vitest/coverage-istanbul@4.0.17(vitest@4.0.17)': dependencies: '@istanbuljs/schema': 0.1.3 '@jridgewell/gen-mapping': 0.3.13 @@ -23503,7 +23986,7 @@ snapshots: magicast: 0.5.1 obug: 2.1.1 tinyrainbow: 3.0.3 - vitest: 4.0.17(@opentelemetry/api@1.9.0)(@types/node@25.0.9)(happy-dom@20.0.11)(jiti@2.6.1)(less@4.5.1)(lightningcss@1.30.2)(msw@2.12.7(@types/node@25.0.9)(typescript@5.9.3))(sass@1.97.1)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2) + vitest: 4.0.17(@opentelemetry/api@1.9.0)(@types/node@25.0.9)(@vitest/ui@4.0.17)(happy-dom@20.0.11)(jiti@2.6.1)(less@4.5.1)(lightningcss@1.30.2)(msw@2.12.7(@types/node@25.0.9)(typescript@5.9.3))(sass@1.97.1)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2) transitivePeerDependencies: - supports-color @@ -23542,6 +24025,17 @@ snapshots: '@vitest/spy@4.0.17': {} + '@vitest/ui@4.0.17(vitest@4.0.17)': + dependencies: + '@vitest/utils': 4.0.17 + fflate: 0.8.2 + flatted: 3.3.3 + pathe: 2.0.3 + sirv: 3.0.2 + tinyglobby: 0.2.15 + tinyrainbow: 3.0.3 + vitest: 4.0.17(@opentelemetry/api@1.9.0)(@types/node@25.0.9)(@vitest/ui@4.0.17)(happy-dom@20.0.11)(jiti@2.6.1)(less@4.5.1)(lightningcss@1.30.2)(msw@2.12.7(@types/node@25.0.9)(typescript@5.9.3))(sass@1.97.1)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2) + '@vitest/utils@4.0.17': dependencies: '@vitest/pretty-format': 4.0.17 @@ -23552,7 +24046,7 @@ snapshots: '@vue/compiler-core@3.5.26': dependencies: - '@babel/parser': 7.28.5 + '@babel/parser': 7.28.6 '@vue/shared': 3.5.26 entities: 7.0.0 estree-walker: 2.0.2 @@ -23850,7 +24344,7 @@ snapshots: ast-kit@2.2.0: dependencies: - '@babel/parser': 7.28.5 + '@babel/parser': 7.28.6 pathe: 2.0.3 ast-module-types@6.0.1: {} @@ -24192,7 +24686,7 @@ snapshots: dependencies: '@better-auth/utils': 0.3.0 '@better-fetch/fetch': 1.1.21 - rou3: 0.7.12 + rou3: 0.7.10 set-cookie-parser: 2.7.2 optionalDependencies: zod: 4.3.5 @@ -24360,7 +24854,7 @@ snapshots: dependencies: node-int64: 0.4.0 - bson@6.10.4: {} + bson@7.1.1: {} buffer-crc32@0.2.13: {} @@ -25160,12 +25654,12 @@ snapshots: dayjs@1.11.19: optional: true - db0@0.3.2(@electric-sql/pglite@0.3.14)(@libsql/client@0.15.15)(better-sqlite3@12.5.0)(drizzle-orm@0.45.1(@cloudflare/workers-types@4.20260103.0)(@electric-sql/pglite@0.3.14)(@libsql/client@0.15.15)(@opentelemetry/api@1.9.0)(@prisma/client@7.2.0(prisma@7.2.0(@types/react@19.2.7)(better-sqlite3@12.5.0)(magicast@0.3.5)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(typescript@5.9.3))(typescript@5.9.3))(@types/better-sqlite3@7.6.13)(@types/pg@8.16.0)(better-sqlite3@12.5.0)(bun-types@1.3.6)(kysely@0.28.9)(mysql2@3.16.0)(pg@8.16.3)(postgres@3.4.7)(prisma@7.2.0(@types/react@19.2.7)(better-sqlite3@12.5.0)(magicast@0.3.5)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(typescript@5.9.3)))(mysql2@3.16.0): + db0@0.3.2(@electric-sql/pglite@0.3.14)(@libsql/client@0.15.15)(better-sqlite3@12.5.0)(drizzle-orm@0.45.1(@cloudflare/workers-types@4.20260103.0)(@electric-sql/pglite@0.3.14)(@libsql/client@0.15.15)(@opentelemetry/api@1.9.0)(@prisma/client@7.2.0(prisma@7.2.0(@types/react@19.2.7)(better-sqlite3@12.5.0)(magicast@0.3.5)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(typescript@5.9.3))(typescript@5.9.3))(@types/better-sqlite3@7.6.13)(@types/pg@8.16.0)(better-sqlite3@12.5.0)(bun-types@1.3.6)(gel@2.2.0)(kysely@0.28.9)(mysql2@3.16.0)(pg@8.16.3)(postgres@3.4.7)(prisma@7.2.0(@types/react@19.2.7)(better-sqlite3@12.5.0)(magicast@0.3.5)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(typescript@5.9.3)))(mysql2@3.16.0): optionalDependencies: '@electric-sql/pglite': 0.3.14 '@libsql/client': 0.15.15 better-sqlite3: 12.5.0 - drizzle-orm: 0.45.1(@cloudflare/workers-types@4.20260103.0)(@electric-sql/pglite@0.3.14)(@libsql/client@0.15.15)(@opentelemetry/api@1.9.0)(@prisma/client@7.2.0(prisma@7.2.0(@types/react@19.2.7)(better-sqlite3@12.5.0)(magicast@0.3.5)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(typescript@5.9.3))(typescript@5.9.3))(@types/better-sqlite3@7.6.13)(@types/pg@8.16.0)(better-sqlite3@12.5.0)(bun-types@1.3.6)(kysely@0.28.9)(mysql2@3.16.0)(pg@8.16.3)(postgres@3.4.7)(prisma@7.2.0(@types/react@19.2.7)(better-sqlite3@12.5.0)(magicast@0.3.5)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(typescript@5.9.3)) + drizzle-orm: 0.45.1(@cloudflare/workers-types@4.20260103.0)(@electric-sql/pglite@0.3.14)(@libsql/client@0.15.15)(@opentelemetry/api@1.9.0)(@prisma/client@7.2.0(prisma@7.2.0(@types/react@19.2.7)(better-sqlite3@12.5.0)(magicast@0.3.5)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(typescript@5.9.3))(typescript@5.9.3))(@types/better-sqlite3@7.6.13)(@types/pg@8.16.0)(better-sqlite3@12.5.0)(bun-types@1.3.6)(gel@2.2.0)(kysely@0.28.9)(mysql2@3.16.0)(pg@8.16.3)(postgres@3.4.7)(prisma@7.2.0(@types/react@19.2.7)(better-sqlite3@12.5.0)(magicast@0.3.5)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(typescript@5.9.3)) mysql2: 3.16.0 debug@2.6.9: @@ -25353,6 +25847,16 @@ snapshots: dotenv@17.2.3: {} + drizzle-kit@0.30.6: + dependencies: + '@drizzle-team/brocli': 0.10.2 + '@esbuild-kit/esm-loader': 2.6.5 + esbuild: 0.19.12 + esbuild-register: 3.6.0(esbuild@0.19.12) + gel: 2.2.0 + transitivePeerDependencies: + - supports-color + drizzle-kit@0.31.4: dependencies: '@drizzle-team/brocli': 0.10.2 @@ -25362,24 +25866,24 @@ snapshots: transitivePeerDependencies: - supports-color - drizzle-orm@0.41.0(@cloudflare/workers-types@4.20260103.0)(@electric-sql/pglite@0.3.14)(@libsql/client@0.15.15)(@opentelemetry/api@1.9.0)(@prisma/client@5.22.0(prisma@5.22.0))(@types/better-sqlite3@7.6.13)(@types/pg@8.16.0)(better-sqlite3@12.5.0)(bun-types@1.3.6)(kysely@0.28.9)(mysql2@3.16.0)(pg@8.16.3)(postgres@3.4.7)(prisma@5.22.0): + drizzle-orm@0.30.10(@cloudflare/workers-types@4.20260103.0)(@electric-sql/pglite@0.3.14)(@libsql/client@0.15.15)(@opentelemetry/api@1.9.0)(@types/better-sqlite3@7.6.13)(@types/pg@8.16.0)(@types/react@19.2.7)(better-sqlite3@12.5.0)(bun-types@1.3.6)(kysely@0.28.9)(mysql2@3.16.0)(pg@8.16.3)(postgres@3.4.7)(react@19.2.3): optionalDependencies: '@cloudflare/workers-types': 4.20260103.0 '@electric-sql/pglite': 0.3.14 '@libsql/client': 0.15.15 '@opentelemetry/api': 1.9.0 - '@prisma/client': 5.22.0(prisma@5.22.0) '@types/better-sqlite3': 7.6.13 '@types/pg': 8.16.0 + '@types/react': 19.2.7 better-sqlite3: 12.5.0 bun-types: 1.3.6 kysely: 0.28.9 mysql2: 3.16.0 pg: 8.16.3 postgres: 3.4.7 - prisma: 5.22.0 + react: 19.2.3 - drizzle-orm@0.41.0(@cloudflare/workers-types@4.20260103.0)(@electric-sql/pglite@0.3.14)(@libsql/client@0.15.15)(@opentelemetry/api@1.9.0)(@prisma/client@5.22.0(prisma@7.2.0(@types/react@19.2.7)(better-sqlite3@12.5.0)(magicast@0.5.1)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(typescript@5.9.3)))(@types/better-sqlite3@7.6.13)(@types/pg@8.16.0)(better-sqlite3@12.5.0)(bun-types@1.3.6)(kysely@0.28.9)(mysql2@3.16.0)(pg@8.16.3)(postgres@3.4.7)(prisma@7.2.0(@types/react@19.2.7)(better-sqlite3@12.5.0)(magicast@0.5.1)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(typescript@5.9.3)): + drizzle-orm@0.41.0(@cloudflare/workers-types@4.20260103.0)(@electric-sql/pglite@0.3.14)(@libsql/client@0.15.15)(@opentelemetry/api@1.9.0)(@prisma/client@5.22.0(prisma@7.2.0(@types/react@19.2.7)(better-sqlite3@12.5.0)(magicast@0.5.1)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(typescript@5.9.3)))(@types/better-sqlite3@7.6.13)(@types/pg@8.16.0)(better-sqlite3@12.5.0)(bun-types@1.3.6)(gel@2.2.0)(kysely@0.28.9)(mysql2@3.16.0)(pg@8.16.3)(postgres@3.4.7)(prisma@7.2.0(@types/react@19.2.7)(better-sqlite3@12.5.0)(magicast@0.5.1)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(typescript@5.9.3)): optionalDependencies: '@cloudflare/workers-types': 4.20260103.0 '@electric-sql/pglite': 0.3.14 @@ -25390,13 +25894,14 @@ snapshots: '@types/pg': 8.16.0 better-sqlite3: 12.5.0 bun-types: 1.3.6 + gel: 2.2.0 kysely: 0.28.9 mysql2: 3.16.0 pg: 8.16.3 postgres: 3.4.7 prisma: 7.2.0(@types/react@19.2.7)(better-sqlite3@12.5.0)(magicast@0.5.1)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(typescript@5.9.3) - drizzle-orm@0.44.5(@cloudflare/workers-types@4.20260103.0)(@electric-sql/pglite@0.3.14)(@libsql/client@0.15.15)(@opentelemetry/api@1.9.0)(@prisma/client@7.2.0(prisma@7.2.0(@types/react@19.2.7)(better-sqlite3@12.5.0)(magicast@0.5.1)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(typescript@5.9.3))(typescript@5.9.3))(@types/better-sqlite3@7.6.13)(@types/pg@8.16.0)(better-sqlite3@12.5.0)(bun-types@1.3.6)(kysely@0.28.9)(mysql2@3.16.0)(pg@8.16.3)(postgres@3.4.7)(prisma@7.2.0(@types/react@19.2.7)(better-sqlite3@12.5.0)(magicast@0.5.1)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(typescript@5.9.3)): + drizzle-orm@0.44.5(@cloudflare/workers-types@4.20260103.0)(@electric-sql/pglite@0.3.14)(@libsql/client@0.15.15)(@opentelemetry/api@1.9.0)(@prisma/client@7.2.0(prisma@7.2.0(@types/react@19.2.7)(better-sqlite3@12.5.0)(magicast@0.5.1)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(typescript@5.9.3))(typescript@5.9.3))(@types/better-sqlite3@7.6.13)(@types/pg@8.16.0)(better-sqlite3@12.5.0)(bun-types@1.3.6)(gel@2.2.0)(kysely@0.28.9)(mysql2@3.16.0)(pg@8.16.3)(postgres@3.4.7)(prisma@7.2.0(@types/react@19.2.7)(better-sqlite3@12.5.0)(magicast@0.5.1)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(typescript@5.9.3)): optionalDependencies: '@cloudflare/workers-types': 4.20260103.0 '@electric-sql/pglite': 0.3.14 @@ -25407,13 +25912,32 @@ snapshots: '@types/pg': 8.16.0 better-sqlite3: 12.5.0 bun-types: 1.3.6 + gel: 2.2.0 kysely: 0.28.9 mysql2: 3.16.0 pg: 8.16.3 postgres: 3.4.7 prisma: 7.2.0(@types/react@19.2.7)(better-sqlite3@12.5.0)(magicast@0.5.1)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(typescript@5.9.3) - drizzle-orm@0.45.1(@cloudflare/workers-types@4.20260103.0)(@electric-sql/pglite@0.3.14)(@libsql/client@0.15.15)(@opentelemetry/api@1.9.0)(@prisma/client@7.2.0(prisma@7.2.0(@types/react@19.2.7)(better-sqlite3@12.5.0)(magicast@0.3.5)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(typescript@5.9.3))(typescript@5.9.3))(@types/better-sqlite3@7.6.13)(@types/pg@8.16.0)(better-sqlite3@12.5.0)(bun-types@1.3.6)(kysely@0.28.9)(mysql2@3.16.0)(pg@8.16.3)(postgres@3.4.7)(prisma@7.2.0(@types/react@19.2.7)(better-sqlite3@12.5.0)(magicast@0.3.5)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(typescript@5.9.3)): + drizzle-orm@0.45.1(@cloudflare/workers-types@4.20260103.0)(@electric-sql/pglite@0.3.14)(@libsql/client@0.15.15)(@opentelemetry/api@1.9.0)(@prisma/client@5.22.0(prisma@5.22.0))(@types/better-sqlite3@7.6.13)(@types/pg@8.16.0)(better-sqlite3@12.5.0)(bun-types@1.3.6)(gel@2.2.0)(kysely@0.28.9)(mysql2@3.16.0)(pg@8.16.3)(postgres@3.4.7)(prisma@5.22.0): + optionalDependencies: + '@cloudflare/workers-types': 4.20260103.0 + '@electric-sql/pglite': 0.3.14 + '@libsql/client': 0.15.15 + '@opentelemetry/api': 1.9.0 + '@prisma/client': 5.22.0(prisma@5.22.0) + '@types/better-sqlite3': 7.6.13 + '@types/pg': 8.16.0 + better-sqlite3: 12.5.0 + bun-types: 1.3.6 + gel: 2.2.0 + kysely: 0.28.9 + mysql2: 3.16.0 + pg: 8.16.3 + postgres: 3.4.7 + prisma: 5.22.0 + + drizzle-orm@0.45.1(@cloudflare/workers-types@4.20260103.0)(@electric-sql/pglite@0.3.14)(@libsql/client@0.15.15)(@opentelemetry/api@1.9.0)(@prisma/client@7.2.0(prisma@7.2.0(@types/react@19.2.7)(better-sqlite3@12.5.0)(magicast@0.3.5)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(typescript@5.9.3))(typescript@5.9.3))(@types/better-sqlite3@7.6.13)(@types/pg@8.16.0)(better-sqlite3@12.5.0)(bun-types@1.3.6)(gel@2.2.0)(kysely@0.28.9)(mysql2@3.16.0)(pg@8.16.3)(postgres@3.4.7)(prisma@7.2.0(@types/react@19.2.7)(better-sqlite3@12.5.0)(magicast@0.3.5)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(typescript@5.9.3)): optionalDependencies: '@cloudflare/workers-types': 4.20260103.0 '@electric-sql/pglite': 0.3.14 @@ -25424,6 +25948,7 @@ snapshots: '@types/pg': 8.16.0 better-sqlite3: 12.5.0 bun-types: 1.3.6 + gel: 2.2.0 kysely: 0.28.9 mysql2: 3.16.0 pg: 8.16.3 @@ -25588,6 +26113,13 @@ snapshots: esast-util-from-estree: 2.0.0 vfile-message: 4.0.3 + esbuild-register@3.6.0(esbuild@0.19.12): + dependencies: + debug: 4.4.3 + esbuild: 0.19.12 + transitivePeerDependencies: + - supports-color + esbuild-register@3.6.0(esbuild@0.25.12): dependencies: debug: 4.4.3 @@ -25620,6 +26152,32 @@ snapshots: '@esbuild/win32-ia32': 0.18.20 '@esbuild/win32-x64': 0.18.20 + esbuild@0.19.12: + optionalDependencies: + '@esbuild/aix-ppc64': 0.19.12 + '@esbuild/android-arm': 0.19.12 + '@esbuild/android-arm64': 0.19.12 + '@esbuild/android-x64': 0.19.12 + '@esbuild/darwin-arm64': 0.19.12 + '@esbuild/darwin-x64': 0.19.12 + '@esbuild/freebsd-arm64': 0.19.12 + '@esbuild/freebsd-x64': 0.19.12 + '@esbuild/linux-arm': 0.19.12 + '@esbuild/linux-arm64': 0.19.12 + '@esbuild/linux-ia32': 0.19.12 + '@esbuild/linux-loong64': 0.19.12 + '@esbuild/linux-mips64el': 0.19.12 + '@esbuild/linux-ppc64': 0.19.12 + '@esbuild/linux-riscv64': 0.19.12 + '@esbuild/linux-s390x': 0.19.12 + '@esbuild/linux-x64': 0.19.12 + '@esbuild/netbsd-x64': 0.19.12 + '@esbuild/openbsd-x64': 0.19.12 + '@esbuild/sunos-x64': 0.19.12 + '@esbuild/win32-arm64': 0.19.12 + '@esbuild/win32-ia32': 0.19.12 + '@esbuild/win32-x64': 0.19.12 + esbuild@0.25.12: optionalDependencies: '@esbuild/aix-ppc64': 0.25.12 @@ -26716,6 +27274,17 @@ snapshots: dependencies: next: 16.1.1(@babel/core@7.28.6)(@opentelemetry/api@1.9.0)(@playwright/test@1.57.0)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(sass@1.97.1) + gel@2.2.0: + dependencies: + '@petamoriken/float16': 3.9.3 + debug: 4.4.3 + env-paths: 3.0.0 + semver: 7.7.3 + shell-quote: 1.8.3 + which: 4.0.0 + transitivePeerDependencies: + - supports-color + generate-function@2.3.1: dependencies: is-property: 1.0.2 @@ -28453,7 +29022,7 @@ snapshots: dependencies: '@babel/traverse': 7.28.5 '@babel/traverse--for-generate-function-map': '@babel/traverse@7.28.6' - '@babel/types': 7.28.5 + '@babel/types': 7.28.6 flow-enums-runtime: 0.0.6 invariant: 2.2.4 metro-symbolicate: 0.82.5 @@ -28515,7 +29084,7 @@ snapshots: metro-transform-plugins@0.83.3: dependencies: '@babel/core': 7.28.5 - '@babel/generator': 7.28.5 + '@babel/generator': 7.28.6 '@babel/template': 7.27.2 '@babel/traverse': 7.28.5 flow-enums-runtime: 0.0.6 @@ -28546,7 +29115,7 @@ snapshots: metro-transform-worker@0.83.3: dependencies: '@babel/core': 7.28.5 - '@babel/generator': 7.28.5 + '@babel/generator': 7.28.6 '@babel/parser': 7.28.6 '@babel/types': 7.28.6 flow-enums-runtime: 0.0.6 @@ -28614,7 +29183,7 @@ snapshots: dependencies: '@babel/code-frame': 7.27.1 '@babel/core': 7.28.5 - '@babel/generator': 7.28.5 + '@babel/generator': 7.28.6 '@babel/parser': 7.28.6 '@babel/template': 7.27.2 '@babel/traverse': 7.28.5 @@ -29027,16 +29596,16 @@ snapshots: module-details-from-path@1.0.4: optional: true - mongodb-connection-string-url@3.0.2: + mongodb-connection-string-url@7.0.0: dependencies: - '@types/whatwg-url': 11.0.5 + '@types/whatwg-url': 13.0.0 whatwg-url: 14.2.0 - mongodb@6.18.0: + mongodb@7.0.0: dependencies: - '@mongodb-js/saslprep': 1.2.2 - bson: 6.10.4 - mongodb-connection-string-url: 3.0.2 + '@mongodb-js/saslprep': 1.4.5 + bson: 7.1.1 + mongodb-connection-string-url: 7.0.0 motion-dom@12.23.12: dependencies: @@ -29105,7 +29674,7 @@ snapshots: aws-ssl-profiles: 1.1.2 denque: 2.1.0 generate-function: 2.3.1 - iconv-lite: 0.7.1 + iconv-lite: 0.7.2 long: 5.3.2 lru.min: 1.1.3 named-placeholders: 1.1.6 @@ -29232,7 +29801,7 @@ snapshots: - '@babel/core' - babel-plugin-macros - nitropack@2.12.4(@azure/identity@4.13.0)(@electric-sql/pglite@0.3.14)(@libsql/client@0.15.15)(@netlify/blobs@10.5.0)(better-sqlite3@12.5.0)(drizzle-orm@0.45.1(@cloudflare/workers-types@4.20260103.0)(@electric-sql/pglite@0.3.14)(@libsql/client@0.15.15)(@opentelemetry/api@1.9.0)(@prisma/client@7.2.0(prisma@7.2.0(@types/react@19.2.7)(better-sqlite3@12.5.0)(magicast@0.3.5)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(typescript@5.9.3))(typescript@5.9.3))(@types/better-sqlite3@7.6.13)(@types/pg@8.16.0)(better-sqlite3@12.5.0)(bun-types@1.3.6)(kysely@0.28.9)(mysql2@3.16.0)(pg@8.16.3)(postgres@3.4.7)(prisma@7.2.0(@types/react@19.2.7)(better-sqlite3@12.5.0)(magicast@0.3.5)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(typescript@5.9.3)))(mysql2@3.16.0)(rolldown@1.0.0-beta.59): + nitropack@2.12.4(@azure/identity@4.13.0)(@electric-sql/pglite@0.3.14)(@libsql/client@0.15.15)(@netlify/blobs@10.5.0)(better-sqlite3@12.5.0)(drizzle-orm@0.45.1(@cloudflare/workers-types@4.20260103.0)(@electric-sql/pglite@0.3.14)(@libsql/client@0.15.15)(@opentelemetry/api@1.9.0)(@prisma/client@7.2.0(prisma@7.2.0(@types/react@19.2.7)(better-sqlite3@12.5.0)(magicast@0.3.5)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(typescript@5.9.3))(typescript@5.9.3))(@types/better-sqlite3@7.6.13)(@types/pg@8.16.0)(better-sqlite3@12.5.0)(bun-types@1.3.6)(gel@2.2.0)(kysely@0.28.9)(mysql2@3.16.0)(pg@8.16.3)(postgres@3.4.7)(prisma@7.2.0(@types/react@19.2.7)(better-sqlite3@12.5.0)(magicast@0.3.5)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(typescript@5.9.3)))(mysql2@3.16.0)(rolldown@1.0.0-beta.59): dependencies: '@cloudflare/kv-asset-handler': 0.4.0 '@netlify/functions': 3.1.10(rollup@4.54.0) @@ -29254,7 +29823,7 @@ snapshots: cookie-es: 2.0.0 croner: 9.1.0 crossws: 0.3.5 - db0: 0.3.2(@electric-sql/pglite@0.3.14)(@libsql/client@0.15.15)(better-sqlite3@12.5.0)(drizzle-orm@0.45.1(@cloudflare/workers-types@4.20260103.0)(@electric-sql/pglite@0.3.14)(@libsql/client@0.15.15)(@opentelemetry/api@1.9.0)(@prisma/client@7.2.0(prisma@7.2.0(@types/react@19.2.7)(better-sqlite3@12.5.0)(magicast@0.3.5)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(typescript@5.9.3))(typescript@5.9.3))(@types/better-sqlite3@7.6.13)(@types/pg@8.16.0)(better-sqlite3@12.5.0)(bun-types@1.3.6)(kysely@0.28.9)(mysql2@3.16.0)(pg@8.16.3)(postgres@3.4.7)(prisma@7.2.0(@types/react@19.2.7)(better-sqlite3@12.5.0)(magicast@0.3.5)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(typescript@5.9.3)))(mysql2@3.16.0) + db0: 0.3.2(@electric-sql/pglite@0.3.14)(@libsql/client@0.15.15)(better-sqlite3@12.5.0)(drizzle-orm@0.45.1(@cloudflare/workers-types@4.20260103.0)(@electric-sql/pglite@0.3.14)(@libsql/client@0.15.15)(@opentelemetry/api@1.9.0)(@prisma/client@7.2.0(prisma@7.2.0(@types/react@19.2.7)(better-sqlite3@12.5.0)(magicast@0.3.5)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(typescript@5.9.3))(typescript@5.9.3))(@types/better-sqlite3@7.6.13)(@types/pg@8.16.0)(better-sqlite3@12.5.0)(bun-types@1.3.6)(gel@2.2.0)(kysely@0.28.9)(mysql2@3.16.0)(pg@8.16.3)(postgres@3.4.7)(prisma@7.2.0(@types/react@19.2.7)(better-sqlite3@12.5.0)(magicast@0.3.5)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(typescript@5.9.3)))(mysql2@3.16.0) defu: 6.1.4 destr: 2.0.5 dot-prop: 9.0.0 @@ -29300,7 +29869,7 @@ snapshots: unenv: 2.0.0-rc.19 unimport: 5.2.0 unplugin-utils: 0.2.5 - unstorage: 1.16.1(@azure/identity@4.13.0)(@netlify/blobs@10.5.0)(db0@0.3.2(@electric-sql/pglite@0.3.14)(@libsql/client@0.15.15)(better-sqlite3@12.5.0)(drizzle-orm@0.45.1(@cloudflare/workers-types@4.20260103.0)(@electric-sql/pglite@0.3.14)(@libsql/client@0.15.15)(@opentelemetry/api@1.9.0)(@prisma/client@7.2.0(prisma@7.2.0(@types/react@19.2.7)(better-sqlite3@12.5.0)(magicast@0.3.5)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(typescript@5.9.3))(typescript@5.9.3))(@types/better-sqlite3@7.6.13)(@types/pg@8.16.0)(better-sqlite3@12.5.0)(bun-types@1.3.6)(kysely@0.28.9)(mysql2@3.16.0)(pg@8.16.3)(postgres@3.4.7)(prisma@7.2.0(@types/react@19.2.7)(better-sqlite3@12.5.0)(magicast@0.3.5)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(typescript@5.9.3)))(mysql2@3.16.0))(ioredis@5.7.0) + unstorage: 1.16.1(@azure/identity@4.13.0)(@netlify/blobs@10.5.0)(db0@0.3.2(@electric-sql/pglite@0.3.14)(@libsql/client@0.15.15)(better-sqlite3@12.5.0)(drizzle-orm@0.45.1(@cloudflare/workers-types@4.20260103.0)(@electric-sql/pglite@0.3.14)(@libsql/client@0.15.15)(@opentelemetry/api@1.9.0)(@prisma/client@7.2.0(prisma@7.2.0(@types/react@19.2.7)(better-sqlite3@12.5.0)(magicast@0.3.5)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(typescript@5.9.3))(typescript@5.9.3))(@types/better-sqlite3@7.6.13)(@types/pg@8.16.0)(better-sqlite3@12.5.0)(bun-types@1.3.6)(gel@2.2.0)(kysely@0.28.9)(mysql2@3.16.0)(pg@8.16.3)(postgres@3.4.7)(prisma@7.2.0(@types/react@19.2.7)(better-sqlite3@12.5.0)(magicast@0.3.5)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(typescript@5.9.3)))(mysql2@3.16.0))(ioredis@5.7.0) untyped: 2.0.0 unwasm: 0.3.11 youch: 4.1.0-beta.8 @@ -31895,9 +32464,9 @@ snapshots: rolldown-plugin-dts@0.20.0(oxc-resolver@11.16.3)(rolldown@1.0.0-beta.59)(typescript@5.9.3): dependencies: - '@babel/generator': 7.28.5 - '@babel/parser': 7.28.5 - '@babel/types': 7.28.5 + '@babel/generator': 7.28.6 + '@babel/parser': 7.28.6 + '@babel/types': 7.28.6 ast-kit: 2.2.0 birpc: 4.0.0 dts-resolver: 2.1.3(oxc-resolver@11.16.3) @@ -32802,7 +33371,7 @@ snapshots: '@azure/identity': 4.13.0 '@azure/keyvault-keys': 4.9.0 '@js-joda/core': 5.6.5 - '@types/node': 24.10.1 + '@types/node': 25.0.9 bl: 6.1.0 iconv-lite: 0.6.3 js-md4: 0.3.2 @@ -33295,7 +33864,7 @@ snapshots: optionalDependencies: synckit: 0.11.11 - unstorage@1.16.1(@azure/identity@4.13.0)(@netlify/blobs@10.5.0)(db0@0.3.2(@electric-sql/pglite@0.3.14)(@libsql/client@0.15.15)(better-sqlite3@12.5.0)(drizzle-orm@0.45.1(@cloudflare/workers-types@4.20260103.0)(@electric-sql/pglite@0.3.14)(@libsql/client@0.15.15)(@opentelemetry/api@1.9.0)(@prisma/client@7.2.0(prisma@7.2.0(@types/react@19.2.7)(better-sqlite3@12.5.0)(magicast@0.3.5)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(typescript@5.9.3))(typescript@5.9.3))(@types/better-sqlite3@7.6.13)(@types/pg@8.16.0)(better-sqlite3@12.5.0)(bun-types@1.3.6)(kysely@0.28.9)(mysql2@3.16.0)(pg@8.16.3)(postgres@3.4.7)(prisma@7.2.0(@types/react@19.2.7)(better-sqlite3@12.5.0)(magicast@0.3.5)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(typescript@5.9.3)))(mysql2@3.16.0))(ioredis@5.7.0): + unstorage@1.16.1(@azure/identity@4.13.0)(@netlify/blobs@10.5.0)(db0@0.3.2(@electric-sql/pglite@0.3.14)(@libsql/client@0.15.15)(better-sqlite3@12.5.0)(drizzle-orm@0.45.1(@cloudflare/workers-types@4.20260103.0)(@electric-sql/pglite@0.3.14)(@libsql/client@0.15.15)(@opentelemetry/api@1.9.0)(@prisma/client@7.2.0(prisma@7.2.0(@types/react@19.2.7)(better-sqlite3@12.5.0)(magicast@0.3.5)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(typescript@5.9.3))(typescript@5.9.3))(@types/better-sqlite3@7.6.13)(@types/pg@8.16.0)(better-sqlite3@12.5.0)(bun-types@1.3.6)(gel@2.2.0)(kysely@0.28.9)(mysql2@3.16.0)(pg@8.16.3)(postgres@3.4.7)(prisma@7.2.0(@types/react@19.2.7)(better-sqlite3@12.5.0)(magicast@0.3.5)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(typescript@5.9.3)))(mysql2@3.16.0))(ioredis@5.7.0): dependencies: anymatch: 3.1.3 chokidar: 4.0.3 @@ -33308,7 +33877,7 @@ snapshots: optionalDependencies: '@azure/identity': 4.13.0 '@netlify/blobs': 10.5.0 - db0: 0.3.2(@electric-sql/pglite@0.3.14)(@libsql/client@0.15.15)(better-sqlite3@12.5.0)(drizzle-orm@0.45.1(@cloudflare/workers-types@4.20260103.0)(@electric-sql/pglite@0.3.14)(@libsql/client@0.15.15)(@opentelemetry/api@1.9.0)(@prisma/client@7.2.0(prisma@7.2.0(@types/react@19.2.7)(better-sqlite3@12.5.0)(magicast@0.3.5)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(typescript@5.9.3))(typescript@5.9.3))(@types/better-sqlite3@7.6.13)(@types/pg@8.16.0)(better-sqlite3@12.5.0)(bun-types@1.3.6)(kysely@0.28.9)(mysql2@3.16.0)(pg@8.16.3)(postgres@3.4.7)(prisma@7.2.0(@types/react@19.2.7)(better-sqlite3@12.5.0)(magicast@0.3.5)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(typescript@5.9.3)))(mysql2@3.16.0) + db0: 0.3.2(@electric-sql/pglite@0.3.14)(@libsql/client@0.15.15)(better-sqlite3@12.5.0)(drizzle-orm@0.45.1(@cloudflare/workers-types@4.20260103.0)(@electric-sql/pglite@0.3.14)(@libsql/client@0.15.15)(@opentelemetry/api@1.9.0)(@prisma/client@7.2.0(prisma@7.2.0(@types/react@19.2.7)(better-sqlite3@12.5.0)(magicast@0.3.5)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(typescript@5.9.3))(typescript@5.9.3))(@types/better-sqlite3@7.6.13)(@types/pg@8.16.0)(better-sqlite3@12.5.0)(bun-types@1.3.6)(gel@2.2.0)(kysely@0.28.9)(mysql2@3.16.0)(pg@8.16.3)(postgres@3.4.7)(prisma@7.2.0(@types/react@19.2.7)(better-sqlite3@12.5.0)(magicast@0.3.5)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(typescript@5.9.3)))(mysql2@3.16.0) ioredis: 5.7.0 until-async@3.0.2: {} @@ -33464,7 +34033,7 @@ snapshots: d3-time: 3.1.0 d3-timer: 3.0.1 - vinxi@0.5.8(186a7588b61c4b5af5e57e454f0edfaa): + vinxi@0.5.8(5cf6d5d1c3dfc70a051a8471a64ca767): dependencies: '@babel/core': 7.28.5 '@babel/plugin-syntax-jsx': 7.27.1(@babel/core@7.28.5) @@ -33485,7 +34054,7 @@ snapshots: hookable: 5.5.3 http-proxy: 1.18.1 micromatch: 4.0.8 - nitropack: 2.12.4(@azure/identity@4.13.0)(@electric-sql/pglite@0.3.14)(@libsql/client@0.15.15)(@netlify/blobs@10.5.0)(better-sqlite3@12.5.0)(drizzle-orm@0.45.1(@cloudflare/workers-types@4.20260103.0)(@electric-sql/pglite@0.3.14)(@libsql/client@0.15.15)(@opentelemetry/api@1.9.0)(@prisma/client@7.2.0(prisma@7.2.0(@types/react@19.2.7)(better-sqlite3@12.5.0)(magicast@0.3.5)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(typescript@5.9.3))(typescript@5.9.3))(@types/better-sqlite3@7.6.13)(@types/pg@8.16.0)(better-sqlite3@12.5.0)(bun-types@1.3.6)(kysely@0.28.9)(mysql2@3.16.0)(pg@8.16.3)(postgres@3.4.7)(prisma@7.2.0(@types/react@19.2.7)(better-sqlite3@12.5.0)(magicast@0.3.5)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(typescript@5.9.3)))(mysql2@3.16.0)(rolldown@1.0.0-beta.59) + nitropack: 2.12.4(@azure/identity@4.13.0)(@electric-sql/pglite@0.3.14)(@libsql/client@0.15.15)(@netlify/blobs@10.5.0)(better-sqlite3@12.5.0)(drizzle-orm@0.45.1(@cloudflare/workers-types@4.20260103.0)(@electric-sql/pglite@0.3.14)(@libsql/client@0.15.15)(@opentelemetry/api@1.9.0)(@prisma/client@7.2.0(prisma@7.2.0(@types/react@19.2.7)(better-sqlite3@12.5.0)(magicast@0.3.5)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(typescript@5.9.3))(typescript@5.9.3))(@types/better-sqlite3@7.6.13)(@types/pg@8.16.0)(better-sqlite3@12.5.0)(bun-types@1.3.6)(gel@2.2.0)(kysely@0.28.9)(mysql2@3.16.0)(pg@8.16.3)(postgres@3.4.7)(prisma@7.2.0(@types/react@19.2.7)(better-sqlite3@12.5.0)(magicast@0.3.5)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(typescript@5.9.3)))(mysql2@3.16.0)(rolldown@1.0.0-beta.59) node-fetch-native: 1.6.7 path-to-regexp: 6.3.0 pathe: 1.1.2 @@ -33497,7 +34066,7 @@ snapshots: ufo: 1.6.1 unctx: 2.4.1 unenv: 1.10.0 - unstorage: 1.16.1(@azure/identity@4.13.0)(@netlify/blobs@10.5.0)(db0@0.3.2(@electric-sql/pglite@0.3.14)(@libsql/client@0.15.15)(better-sqlite3@12.5.0)(drizzle-orm@0.45.1(@cloudflare/workers-types@4.20260103.0)(@electric-sql/pglite@0.3.14)(@libsql/client@0.15.15)(@opentelemetry/api@1.9.0)(@prisma/client@7.2.0(prisma@7.2.0(@types/react@19.2.7)(better-sqlite3@12.5.0)(magicast@0.3.5)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(typescript@5.9.3))(typescript@5.9.3))(@types/better-sqlite3@7.6.13)(@types/pg@8.16.0)(better-sqlite3@12.5.0)(bun-types@1.3.6)(kysely@0.28.9)(mysql2@3.16.0)(pg@8.16.3)(postgres@3.4.7)(prisma@7.2.0(@types/react@19.2.7)(better-sqlite3@12.5.0)(magicast@0.3.5)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(typescript@5.9.3)))(mysql2@3.16.0))(ioredis@5.7.0) + unstorage: 1.16.1(@azure/identity@4.13.0)(@netlify/blobs@10.5.0)(db0@0.3.2(@electric-sql/pglite@0.3.14)(@libsql/client@0.15.15)(better-sqlite3@12.5.0)(drizzle-orm@0.45.1(@cloudflare/workers-types@4.20260103.0)(@electric-sql/pglite@0.3.14)(@libsql/client@0.15.15)(@opentelemetry/api@1.9.0)(@prisma/client@7.2.0(prisma@7.2.0(@types/react@19.2.7)(better-sqlite3@12.5.0)(magicast@0.3.5)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(typescript@5.9.3))(typescript@5.9.3))(@types/better-sqlite3@7.6.13)(@types/pg@8.16.0)(better-sqlite3@12.5.0)(bun-types@1.3.6)(gel@2.2.0)(kysely@0.28.9)(mysql2@3.16.0)(pg@8.16.3)(postgres@3.4.7)(prisma@7.2.0(@types/react@19.2.7)(better-sqlite3@12.5.0)(magicast@0.3.5)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(typescript@5.9.3)))(mysql2@3.16.0))(ioredis@5.7.0) vite: 6.4.1(@types/node@25.0.9)(jiti@2.6.1)(less@4.5.1)(lightningcss@1.30.2)(sass@1.97.1)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2) zod: 3.25.76 transitivePeerDependencies: @@ -33597,7 +34166,7 @@ snapshots: optionalDependencies: vite: 7.3.1(@types/node@25.0.9)(jiti@2.6.1)(less@4.5.1)(lightningcss@1.30.2)(sass@1.97.1)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2) - vitest@4.0.17(@opentelemetry/api@1.9.0)(@types/node@25.0.9)(happy-dom@20.0.11)(jiti@2.6.1)(less@4.5.1)(lightningcss@1.30.2)(msw@2.12.7(@types/node@25.0.9)(typescript@5.9.3))(sass@1.97.1)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2): + vitest@4.0.17(@opentelemetry/api@1.9.0)(@types/node@25.0.9)(@vitest/ui@4.0.17)(happy-dom@20.0.11)(jiti@2.6.1)(less@4.5.1)(lightningcss@1.30.2)(msw@2.12.7(@types/node@25.0.9)(typescript@5.9.3))(sass@1.97.1)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2): dependencies: '@vitest/expect': 4.0.17 '@vitest/mocker': 4.0.17(msw@2.12.7(@types/node@25.0.9)(typescript@5.9.3))(vite@7.3.1(@types/node@25.0.9)(jiti@2.6.1)(less@4.5.1)(lightningcss@1.30.2)(sass@1.97.1)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2)) @@ -33622,6 +34191,7 @@ snapshots: optionalDependencies: '@opentelemetry/api': 1.9.0 '@types/node': 25.0.9 + '@vitest/ui': 4.0.17(vitest@4.0.17) happy-dom: 20.0.11 transitivePeerDependencies: - jiti diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml index cbe5a44828..a40b8a75bf 100644 --- a/pnpm-workspace.yaml +++ b/pnpm-workspace.yaml @@ -25,6 +25,7 @@ catalogs: tailwindcss-animate: ^1.0.7 vitest: '@vitest/coverage-istanbul': ^4.0.17 + '@vitest/ui': ^4.0.17 vitest: ^4.0.17 neverBuiltDependencies: [] diff --git a/tsconfig.json b/tsconfig.json index 220da18d90..76f8b95b9d 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -30,6 +30,21 @@ { "path": "./packages/telemetry/tsconfig.json" }, + { + "path": "./packages/prisma-adapter/tsconfig.json" + }, + { + "path": "./packages/mongo-adapter/tsconfig.json" + }, + { + "path": "./packages/memory-adapter/tsconfig.json" + }, + { + "path": "./packages/drizzle-adapter/tsconfig.json" + }, + { + "path": "./packages/kysely-adapter/tsconfig.json" + }, { "path": "./test/tsconfig.json" }