diff --git a/apps/api/src/db/factories.ts b/apps/api/src/db/factories.ts index 9f801e2..02c42a6 100644 --- a/apps/api/src/db/factories.ts +++ b/apps/api/src/db/factories.ts @@ -8,7 +8,7 @@ * readable values (e.g. "staff-1", "client-2") without needing crypto. * * Usage: - * import { buildStaff, buildClient, buildPet } from "./db/factories"; + * import { buildStaff, buildClient, buildPet } from "./db/factories.js"; * * const manager = buildStaff({ role: "manager" }); * const client = buildClient({ name: "Alice Smith" }); diff --git a/apps/api/src/db/seed.ts b/apps/api/src/db/seed.ts index 058b7c9..8592ccf 100644 --- a/apps/api/src/db/seed.ts +++ b/apps/api/src/db/seed.ts @@ -95,10 +95,6 @@ function pick(arr: T[]): T { } /** Return n distinct random elements from an array. */ -function pickN(arr: T[], n: number): T[] { - const shuffled = [...arr].sort(() => rand() - 0.5); - return shuffled.slice(0, n); -} function randInt(min: number, max: number): number { return Math.floor(rand() * (max - min + 1)) + min; @@ -1079,7 +1075,7 @@ async function seed() { const groomer = pick(groomers); const bather = bathers.length > 0 && rand() < 0.6 ? pick(bathers) : null; - let startTime = randDate(appointmentsBackDate, now); + const startTime = randDate(appointmentsBackDate, now); startTime.setHours(randInt(8, 16), pick([0, 15, 30, 45]), 0, 0); const endTime = new Date(startTime.getTime() + svc.dur * 60 * 1000); const effectivePrice = svc.price; diff --git a/apps/api/src/index.ts b/apps/api/src/index.ts index 478ed17..b9ccd84 100644 --- a/apps/api/src/index.ts +++ b/apps/api/src/index.ts @@ -22,7 +22,7 @@ import { searchRouter } from "./routes/search.js"; import { getObject } from "./lib/s3.js"; import { calendarRouter } from "./routes/calendar.js"; import { setupRouter } from "./routes/setup.js"; -import { getDb, businessSettings, eq, staff } from "./db"; +import { getDb, businessSettings, eq, staff } from "./db/index.js"; import { authMiddleware } from "./middleware/auth.js"; import { resolveStaffMiddleware, requireRole, requireRoleOrSuperUser, requireSuperUser } from "./middleware/rbac.js"; import { devRouter } from "./routes/dev.js"; diff --git a/apps/api/src/lib/auth.ts b/apps/api/src/lib/auth.ts index 63163d5..9fa594b 100644 --- a/apps/api/src/lib/auth.ts +++ b/apps/api/src/lib/auth.ts @@ -1,8 +1,8 @@ import { betterAuth } from "better-auth"; import { drizzleAdapter } from "better-auth/adapters/drizzle"; import { genericOAuth } from "better-auth/plugins"; -import { getDb, authProviderConfig, eq } from "./db"; -import { decryptSecret } from "./db"; +import { getDb, authProviderConfig, eq } from "../db/index.js"; +import { decryptSecret } from "../db/index.js"; import { sendEmail } from "../services/email.js"; const BETTER_AUTH_SECRET = process.env.BETTER_AUTH_SECRET; diff --git a/apps/api/src/middleware/portalAudit.ts b/apps/api/src/middleware/portalAudit.ts index d76541c..cf631f9 100644 --- a/apps/api/src/middleware/portalAudit.ts +++ b/apps/api/src/middleware/portalAudit.ts @@ -1,5 +1,5 @@ import type { MiddlewareHandler } from "hono"; -import { getDb, impersonationAuditLogs } from "../db"; +import { getDb, impersonationAuditLogs } from "../db/index.js"; import type { PortalEnv } from "./portalSession.js"; /** diff --git a/apps/api/src/middleware/portalSession.ts b/apps/api/src/middleware/portalSession.ts index b5d1f53..4fda18a 100644 --- a/apps/api/src/middleware/portalSession.ts +++ b/apps/api/src/middleware/portalSession.ts @@ -1,5 +1,5 @@ import type { MiddlewareHandler } from "hono"; -import { and, eq, getDb, impersonationSessions } from "../db"; +import { and, eq, getDb, impersonationSessions } from "../db/index.js"; export interface PortalEnv { Variables: { diff --git a/apps/api/src/middleware/rbac.ts b/apps/api/src/middleware/rbac.ts index ae105eb..a3c9d8b 100644 --- a/apps/api/src/middleware/rbac.ts +++ b/apps/api/src/middleware/rbac.ts @@ -1,5 +1,5 @@ import type { MiddlewareHandler } from "hono"; -import { and, eq, getDb, sql, staff } from "../db"; +import { and, eq, getDb, sql, staff } from "../db/index.js"; export type StaffRole = "groomer" | "receptionist" | "manager"; export type StaffRow = typeof staff.$inferSelect; diff --git a/apps/api/src/routes/admin/seed.ts b/apps/api/src/routes/admin/seed.ts index 8e89748..1220991 100644 --- a/apps/api/src/routes/admin/seed.ts +++ b/apps/api/src/routes/admin/seed.ts @@ -10,7 +10,7 @@ */ import { Hono } from "hono"; -import { eq, getDb, staff, clients, pets, services } from "./db"; +import { eq, getDb, staff, clients, pets, services } from "../../db/index.js"; export const adminSeedRouter = new Hono(); diff --git a/apps/api/src/routes/appointmentGroups.ts b/apps/api/src/routes/appointmentGroups.ts index e75ec66..b6c8e68 100644 --- a/apps/api/src/routes/appointmentGroups.ts +++ b/apps/api/src/routes/appointmentGroups.ts @@ -15,7 +15,7 @@ import { pets, services, staff, -} from "../db"; +} from "../db/index.js"; import type { AppEnv } from "../middleware/rbac.js"; export const appointmentGroupsRouter = new Hono(); diff --git a/apps/api/src/routes/appointments.ts b/apps/api/src/routes/appointments.ts index a3d29fd..85fbc76 100644 --- a/apps/api/src/routes/appointments.ts +++ b/apps/api/src/routes/appointments.ts @@ -18,7 +18,7 @@ import { reminderLogs, services, staff, -} from "../db"; +} from "../db/index.js"; import { buildConfirmationEmail, sendEmail } from "../services/email.js"; import { notifyWaitlistForAppointment } from "../services/waitlistNotify.js"; import type { AppEnv } from "../middleware/rbac.js"; diff --git a/apps/api/src/routes/authProvider.ts b/apps/api/src/routes/authProvider.ts index 9bd4f2f..4cf502f 100644 --- a/apps/api/src/routes/authProvider.ts +++ b/apps/api/src/routes/authProvider.ts @@ -1,7 +1,7 @@ import { Hono } from "hono"; import { zValidator } from "@hono/zod-validator"; import { z } from "zod/v3"; -import { eq, getDb, authProviderConfig, encryptSecret } from "../db"; +import { eq, getDb, authProviderConfig, encryptSecret } from "../db/index.js"; import { requireSuperUser } from "../middleware/rbac.js"; import { reinitAuth } from "../lib/auth.js"; diff --git a/apps/api/src/routes/book.ts b/apps/api/src/routes/book.ts index e15a131..01226db 100644 --- a/apps/api/src/routes/book.ts +++ b/apps/api/src/routes/book.ts @@ -14,7 +14,7 @@ import { appointments, clients, pets, -} from "../db"; +} from "../db/index.js"; import { generateAvailableSlots, BUSINESS_START_HOUR, diff --git a/apps/api/src/routes/calendar.ts b/apps/api/src/routes/calendar.ts index 1aba590..ba745ef 100644 --- a/apps/api/src/routes/calendar.ts +++ b/apps/api/src/routes/calendar.ts @@ -10,7 +10,7 @@ import { pets, services, staff, -} from "../db"; +} from "../db/index.js"; export const calendarRouter = new Hono(); diff --git a/apps/api/src/routes/clients.ts b/apps/api/src/routes/clients.ts index 679d3b7..2ae09f0 100644 --- a/apps/api/src/routes/clients.ts +++ b/apps/api/src/routes/clients.ts @@ -1,7 +1,7 @@ import { Hono } from "hono"; import { zValidator } from "@hono/zod-validator"; import { z } from "zod/v3"; -import { and, eq, exists, getDb, or, clients, appointments } from "../db"; +import { and, eq, exists, getDb, or, clients, appointments } from "../db/index.js"; import type { AppEnv } from "../middleware/rbac.js"; export const clientsRouter = new Hono(); diff --git a/apps/api/src/routes/dev.ts b/apps/api/src/routes/dev.ts index 34e8aa5..8154eaa 100644 --- a/apps/api/src/routes/dev.ts +++ b/apps/api/src/routes/dev.ts @@ -1,5 +1,5 @@ import { Hono } from "hono"; -import { getDb, staff, clients, eq, sql } from "../db"; +import { getDb, staff, clients, eq, sql } from "../db/index.js"; const devRouter = new Hono(); diff --git a/apps/api/src/routes/groomingLogs.ts b/apps/api/src/routes/groomingLogs.ts index 8d24d53..f3a0f5b 100644 --- a/apps/api/src/routes/groomingLogs.ts +++ b/apps/api/src/routes/groomingLogs.ts @@ -1,7 +1,7 @@ import { Hono } from "hono"; import { zValidator } from "@hono/zod-validator"; import { z } from "zod/v3"; -import { and, desc, eq, getDb, groomingVisitLogs, appointments, or } from "../db"; +import { and, desc, eq, getDb, groomingVisitLogs, appointments, or } from "../db/index.js"; import type { AppEnv } from "../middleware/rbac.js"; export const groomingLogsRouter = new Hono(); diff --git a/apps/api/src/routes/impersonation.ts b/apps/api/src/routes/impersonation.ts index 7cd98f9..bcfe43d 100644 --- a/apps/api/src/routes/impersonation.ts +++ b/apps/api/src/routes/impersonation.ts @@ -9,7 +9,7 @@ import { impersonationAuditLogs, clients, desc, -} from "../db"; +} from "../db/index.js"; import type { AppEnv } from "../middleware/rbac.js"; export const impersonationRouter = new Hono(); diff --git a/apps/api/src/routes/invoices.ts b/apps/api/src/routes/invoices.ts index ca30cae..799bc49 100644 --- a/apps/api/src/routes/invoices.ts +++ b/apps/api/src/routes/invoices.ts @@ -13,7 +13,7 @@ import { services, clients, sql, -} from "../db"; +} from "../db/index.js"; import type { AppEnv } from "../middleware/rbac.js"; export const invoicesRouter = new Hono(); diff --git a/apps/api/src/routes/pets.ts b/apps/api/src/routes/pets.ts index f911d56..1672811 100644 --- a/apps/api/src/routes/pets.ts +++ b/apps/api/src/routes/pets.ts @@ -1,7 +1,7 @@ import { Hono } from "hono"; import { zValidator } from "@hono/zod-validator"; import { z } from "zod/v3"; -import { and, eq, exists, getDb, or, pets, appointments } from "../db"; +import { and, eq, exists, getDb, or, pets, appointments } from "../db/index.js"; import type { AppEnv } from "../middleware/rbac.js"; import { getPresignedUploadUrl, diff --git a/apps/api/src/routes/portal.ts b/apps/api/src/routes/portal.ts index 421fc6d..2fe4f91 100644 --- a/apps/api/src/routes/portal.ts +++ b/apps/api/src/routes/portal.ts @@ -1,8 +1,8 @@ import { Hono } from "hono"; import { zValidator } from "@hono/zod-validator"; import { z } from "zod/v3"; -import { eq, inArray } from "../db"; -import { getDb, appointments, impersonationSessions, waitlistEntries, clients, pets, services, staff, invoices, invoiceLineItems } from "../db"; +import { eq, inArray } from "../db/index.js"; +import { getDb, appointments, impersonationSessions, waitlistEntries, clients, pets, services, staff, invoices, invoiceLineItems } from "../db/index.js"; import { validatePortalSession } from "../middleware/portalSession.js"; import { portalAudit } from "../middleware/portalAudit.js"; import type { PortalEnv } from "../middleware/portalSession.js"; diff --git a/apps/api/src/routes/reports.ts b/apps/api/src/routes/reports.ts index aeffc95..024dfff 100644 --- a/apps/api/src/routes/reports.ts +++ b/apps/api/src/routes/reports.ts @@ -12,7 +12,7 @@ import { invoiceTipSplits, services, staff, -} from "../db"; +} from "../db/index.js"; export const reportsRouter = new Hono(); diff --git a/apps/api/src/routes/search.ts b/apps/api/src/routes/search.ts index e72d700..0c08179 100644 --- a/apps/api/src/routes/search.ts +++ b/apps/api/src/routes/search.ts @@ -1,5 +1,5 @@ import { Hono } from "hono"; -import { and, eq, getDb, clients, ilike, or, pets } from "../db"; +import { and, eq, getDb, clients, ilike, or, pets } from "../db/index.js"; export const searchRouter = new Hono(); diff --git a/apps/api/src/routes/services.ts b/apps/api/src/routes/services.ts index bffe6c4..993cb96 100644 --- a/apps/api/src/routes/services.ts +++ b/apps/api/src/routes/services.ts @@ -1,7 +1,7 @@ import { Hono } from "hono"; import { zValidator } from "@hono/zod-validator"; import { z } from "zod/v3"; -import { eq, getDb, services } from "../db"; +import { eq, getDb, services } from "../db/index.js"; export const servicesRouter = new Hono(); diff --git a/apps/api/src/routes/settings.ts b/apps/api/src/routes/settings.ts index 32c48a2..3ad7b25 100644 --- a/apps/api/src/routes/settings.ts +++ b/apps/api/src/routes/settings.ts @@ -1,7 +1,7 @@ import { Hono } from "hono"; import { zValidator } from "@hono/zod-validator"; import { z } from "zod/v3"; -import { eq, getDb, businessSettings } from "../db"; +import { eq, getDb, businessSettings } from "../db/index.js"; import { getPresignedUploadUrl, deleteObject, putObject, getObject } from "../lib/s3.js"; import { requireSuperUser } from "../middleware/rbac.js"; diff --git a/apps/api/src/routes/setup.ts b/apps/api/src/routes/setup.ts index 1ad4c25..90d6c17 100644 --- a/apps/api/src/routes/setup.ts +++ b/apps/api/src/routes/setup.ts @@ -1,7 +1,7 @@ import { Hono } from "hono"; import { zValidator } from "@hono/zod-validator"; import { z } from "zod/v3"; -import { and, eq, getDb, sql, staff, businessSettings, authProviderConfig, encryptSecret } from "../db"; +import { and, eq, getDb, sql, staff, businessSettings, authProviderConfig, encryptSecret } from "../db/index.js"; import type { AppEnv } from "../middleware/rbac.js"; const RATE_LIMIT_WINDOW_MS = 60_000; diff --git a/apps/api/src/routes/staff.ts b/apps/api/src/routes/staff.ts index 80c3262..de4c92b 100644 --- a/apps/api/src/routes/staff.ts +++ b/apps/api/src/routes/staff.ts @@ -2,7 +2,7 @@ import { Hono } from "hono"; import { zValidator } from "@hono/zod-validator"; import { z } from "zod/v3"; import { randomBytes } from "node:crypto"; -import { and, eq, getDb, ne, staff, appointments } from "../db"; +import { and, eq, getDb, ne, staff, appointments } from "../db/index.js"; import type { AppEnv } from "../middleware/rbac.js"; export const staffRouter = new Hono(); diff --git a/apps/api/src/routes/stripe-webhooks.ts b/apps/api/src/routes/stripe-webhooks.ts index e4c5238..b40f063 100644 --- a/apps/api/src/routes/stripe-webhooks.ts +++ b/apps/api/src/routes/stripe-webhooks.ts @@ -1,7 +1,7 @@ import { Hono } from "hono"; import Stripe from "stripe"; import { z } from "zod/v3"; -import { eq, getDb, invoices } from "../db"; +import { eq, getDb, invoices } from "../db/index.js"; import { getStripeClient } from "../services/payment.js"; export const webhooksRouter = new Hono(); diff --git a/apps/api/src/routes/waitlist.ts b/apps/api/src/routes/waitlist.ts index 897e531..c1fe302 100644 --- a/apps/api/src/routes/waitlist.ts +++ b/apps/api/src/routes/waitlist.ts @@ -8,7 +8,7 @@ import { clients, pets, services, -} from "../db"; +} from "../db/index.js"; import type { AppEnv } from "../middleware/rbac.js"; export const waitlistRouter = new Hono(); diff --git a/apps/api/src/services/payment.ts b/apps/api/src/services/payment.ts index 93ede92..fd11805 100644 --- a/apps/api/src/services/payment.ts +++ b/apps/api/src/services/payment.ts @@ -1,5 +1,5 @@ import Stripe from "stripe"; -import { getDb, clients, eq, inArray, invoices } from "../db"; +import { getDb, clients, eq, inArray, invoices } from "../db/index.js"; let _stripe: Stripe | null | undefined; diff --git a/apps/api/src/services/reminders.ts b/apps/api/src/services/reminders.ts index 255505c..82ab9c7 100644 --- a/apps/api/src/services/reminders.ts +++ b/apps/api/src/services/reminders.ts @@ -14,7 +14,7 @@ import { staff, reminderLogs, session, -} from "../db"; +} from "../db/index.js"; import { buildReminderEmail, sendEmail, diff --git a/apps/api/src/services/waitlistNotify.ts b/apps/api/src/services/waitlistNotify.ts index bd6f76a..36dfcc3 100644 --- a/apps/api/src/services/waitlistNotify.ts +++ b/apps/api/src/services/waitlistNotify.ts @@ -1,4 +1,4 @@ -import { and, eq, getDb, waitlistEntries, clients, pets, services } from "../db"; +import { and, eq, getDb, waitlistEntries, clients, pets, services } from "../db/index.js"; import { buildWaitlistNotificationEmail, sendEmail } from "./email.js"; export async function notifyWaitlistForAppointment( diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 7a17944..149a974 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -16,12 +16,6 @@ importers: '@aws-sdk/s3-request-presigner': specifier: ^3.800.0 version: 3.1041.0 - '@groombook/db': - specifier: workspace:* - version: link:../../packages/db - '@groombook/types': - specifier: workspace:* - version: link:../../packages/types '@hono/node-server': specifier: ^1.13.7 version: 1.19.14(hono@4.12.16) @@ -30,7 +24,10 @@ importers: version: 0.7.6(hono@4.12.16)(zod@4.4.2) better-auth: specifier: ^1.5.6 - version: 1.6.9(vitest@3.2.4(@types/node@22.19.17)(tsx@4.21.0)) + version: 1.6.9(drizzle-kit@0.30.6)(drizzle-orm@0.38.4(kysely@0.28.16)(postgres@3.4.9))(vitest@3.2.4(@types/node@22.19.17)(tsx@4.21.0)) + drizzle-orm: + specifier: ^0.38.4 + version: 0.38.4(kysely@0.28.16)(postgres@3.4.9) hono: specifier: ^4.6.17 version: 4.12.16 @@ -40,6 +37,9 @@ importers: nodemailer: specifier: ^6.9.16 version: 6.10.1 + postgres: + specifier: ^3.4.5 + version: 3.4.9 stripe: specifier: ^22.0.0 version: 22.1.0(@types/node@22.19.17) @@ -62,6 +62,9 @@ importers: '@vitest/coverage-v8': specifier: ^3.2.4 version: 3.2.4(vitest@3.2.4(@types/node@22.19.17)(tsx@4.21.0)) + drizzle-kit: + specifier: ^0.30.4 + version: 0.30.6 eslint: specifier: ^9.18.0 version: 9.39.4 @@ -78,34 +81,6 @@ importers: specifier: ^3.2.4 version: 3.2.4(@types/node@22.19.17)(tsx@4.21.0) - packages/db: - dependencies: - drizzle-orm: - specifier: ^0.38.4 - version: 0.38.4(kysely@0.28.16)(postgres@3.4.9) - postgres: - specifier: ^3.4.5 - version: 3.4.9 - devDependencies: - '@types/node': - specifier: ^22.10.7 - version: 22.19.17 - drizzle-kit: - specifier: ^0.30.4 - version: 0.30.6 - tsx: - specifier: ^4.19.0 - version: 4.21.0 - typescript: - specifier: ^5.7.3 - version: 5.9.3 - - packages/types: - devDependencies: - typescript: - specifier: ^5.7.3 - version: 5.9.3 - packages: '@ampproject/remapping@2.3.0': @@ -963,79 +938,66 @@ packages: resolution: {integrity: sha512-2QxQrM+KQ7DAW4o22j+XZ6RKdxjLD7BOWTP0Bv0tmjdyhXSsr2Ul1oJDQqh9Zf5qOwTuTc7Ek83mOFaKnodPjg==} cpu: [arm] os: [linux] - libc: [glibc] '@rollup/rollup-linux-arm-musleabihf@4.60.2': resolution: {integrity: sha512-TbziEu2DVsTEOPif2mKWkMeDMLoYjx95oESa9fkQQK7r/Orta0gnkcDpzwufEcAO2BLBsD7mZkXGFqEdMRRwfw==} cpu: [arm] os: [linux] - libc: [musl] '@rollup/rollup-linux-arm64-gnu@4.60.2': resolution: {integrity: sha512-bO/rVDiDUuM2YfuCUwZ1t1cP+/yqjqz+Xf2VtkdppefuOFS2OSeAfgafaHNkFn0t02hEyXngZkxtGqXcXwO8Rg==} cpu: [arm64] os: [linux] - libc: [glibc] '@rollup/rollup-linux-arm64-musl@4.60.2': resolution: {integrity: sha512-hr26p7e93Rl0Za+JwW7EAnwAvKkehh12BU1Llm9Ykiibg4uIr2rbpxG9WCf56GuvidlTG9KiiQT/TXT1yAWxTA==} cpu: [arm64] os: [linux] - libc: [musl] '@rollup/rollup-linux-loong64-gnu@4.60.2': resolution: {integrity: sha512-pOjB/uSIyDt+ow3k/RcLvUAOGpysT2phDn7TTUB3n75SlIgZzM6NKAqlErPhoFU+npgY3/n+2HYIQVbF70P9/A==} cpu: [loong64] os: [linux] - libc: [glibc] '@rollup/rollup-linux-loong64-musl@4.60.2': resolution: {integrity: sha512-2/w+q8jszv9Ww1c+6uJT3OwqhdmGP2/4T17cu8WuwyUuuaCDDJ2ojdyYwZzCxx0GcsZBhzi3HmH+J5pZNXnd+Q==} cpu: [loong64] os: [linux] - libc: [musl] '@rollup/rollup-linux-ppc64-gnu@4.60.2': resolution: {integrity: sha512-11+aL5vKheYgczxtPVVRhdptAM2H7fcDR5Gw4/bTcteuZBlH4oP9f5s9zYO9aGZvoGeBpqXI/9TZZihZ609wKw==} cpu: [ppc64] os: [linux] - libc: [glibc] '@rollup/rollup-linux-ppc64-musl@4.60.2': resolution: {integrity: sha512-i16fokAGK46IVZuV8LIIwMdtqhin9hfYkCh8pf8iC3QU3LpwL+1FSFGej+O7l3E/AoknL6Dclh2oTdnRMpTzFQ==} cpu: [ppc64] os: [linux] - libc: [musl] '@rollup/rollup-linux-riscv64-gnu@4.60.2': resolution: {integrity: sha512-49FkKS6RGQoriDSK/6E2GkAsAuU5kETFCh7pG4yD/ylj9rKhTmO3elsnmBvRD4PgJPds5W2PkhC82aVwmUcJ7A==} cpu: [riscv64] os: [linux] - libc: [glibc] '@rollup/rollup-linux-riscv64-musl@4.60.2': resolution: {integrity: sha512-mjYNkHPfGpUR00DuM1ZZIgs64Hpf4bWcz9Z41+4Q+pgDx73UwWdAYyf6EG/lRFldmdHHzgrYyge5akFUW0D3mQ==} cpu: [riscv64] os: [linux] - libc: [musl] '@rollup/rollup-linux-s390x-gnu@4.60.2': resolution: {integrity: sha512-ALyvJz965BQk8E9Al/JDKKDLH2kfKFLTGMlgkAbbYtZuJt9LU8DW3ZoDMCtQpXAltZxwBHevXz5u+gf0yA0YoA==} cpu: [s390x] os: [linux] - libc: [glibc] '@rollup/rollup-linux-x64-gnu@4.60.2': resolution: {integrity: sha512-UQjrkIdWrKI626Du8lCQ6MJp/6V1LAo2bOK9OTu4mSn8GGXIkPXk/Vsp4bLHCd9Z9Iz2OTEaokUE90VweJgIYQ==} cpu: [x64] os: [linux] - libc: [glibc] '@rollup/rollup-linux-x64-musl@4.60.2': resolution: {integrity: sha512-bTsRGj6VlSdn/XD4CGyzMnzaBs9bsRxy79eTqTCBsA8TMIEky7qg48aPkvJvFe1HyzQ5oMZdg7AnVlWQSKLTnw==} cpu: [x64] os: [linux] - libc: [musl] '@rollup/rollup-openbsd-x64@4.60.2': resolution: {integrity: sha512-6d4Z3534xitaA1FcMWP7mQPq5zGwBmGbhphh2DwaA1aNIXUu3KTOfwrWpbwI4/Gr0uANo7NTtaykFyO2hPuFLg==} @@ -2932,10 +2894,12 @@ snapshots: nanostores: 1.3.0 zod: 4.4.2 - '@better-auth/drizzle-adapter@1.6.9(@better-auth/core@1.6.9(@better-auth/utils@0.4.0)(@better-fetch/fetch@1.1.21)(better-call@1.3.5(zod@4.4.2))(jose@6.2.3)(kysely@0.28.16)(nanostores@1.3.0))(@better-auth/utils@0.4.0)': + '@better-auth/drizzle-adapter@1.6.9(@better-auth/core@1.6.9(@better-auth/utils@0.4.0)(@better-fetch/fetch@1.1.21)(better-call@1.3.5(zod@4.4.2))(jose@6.2.3)(kysely@0.28.16)(nanostores@1.3.0))(@better-auth/utils@0.4.0)(drizzle-orm@0.38.4(kysely@0.28.16)(postgres@3.4.9))': dependencies: '@better-auth/core': 1.6.9(@better-auth/utils@0.4.0)(@better-fetch/fetch@1.1.21)(better-call@1.3.5(zod@4.4.2))(jose@6.2.3)(kysely@0.28.16)(nanostores@1.3.0) '@better-auth/utils': 0.4.0 + optionalDependencies: + drizzle-orm: 0.38.4(kysely@0.28.16)(postgres@3.4.9) '@better-auth/kysely-adapter@1.6.9(@better-auth/core@1.6.9(@better-auth/utils@0.4.0)(@better-fetch/fetch@1.1.21)(better-call@1.3.5(zod@4.4.2))(jose@6.2.3)(kysely@0.28.16)(nanostores@1.3.0))(@better-auth/utils@0.4.0)(kysely@0.28.16)': dependencies: @@ -3925,10 +3889,10 @@ snapshots: balanced-match@4.0.4: {} - better-auth@1.6.9(vitest@3.2.4(@types/node@22.19.17)(tsx@4.21.0)): + better-auth@1.6.9(drizzle-kit@0.30.6)(drizzle-orm@0.38.4(kysely@0.28.16)(postgres@3.4.9))(vitest@3.2.4(@types/node@22.19.17)(tsx@4.21.0)): dependencies: '@better-auth/core': 1.6.9(@better-auth/utils@0.4.0)(@better-fetch/fetch@1.1.21)(better-call@1.3.5(zod@4.4.2))(jose@6.2.3)(kysely@0.28.16)(nanostores@1.3.0) - '@better-auth/drizzle-adapter': 1.6.9(@better-auth/core@1.6.9(@better-auth/utils@0.4.0)(@better-fetch/fetch@1.1.21)(better-call@1.3.5(zod@4.4.2))(jose@6.2.3)(kysely@0.28.16)(nanostores@1.3.0))(@better-auth/utils@0.4.0) + '@better-auth/drizzle-adapter': 1.6.9(@better-auth/core@1.6.9(@better-auth/utils@0.4.0)(@better-fetch/fetch@1.1.21)(better-call@1.3.5(zod@4.4.2))(jose@6.2.3)(kysely@0.28.16)(nanostores@1.3.0))(@better-auth/utils@0.4.0)(drizzle-orm@0.38.4(kysely@0.28.16)(postgres@3.4.9)) '@better-auth/kysely-adapter': 1.6.9(@better-auth/core@1.6.9(@better-auth/utils@0.4.0)(@better-fetch/fetch@1.1.21)(better-call@1.3.5(zod@4.4.2))(jose@6.2.3)(kysely@0.28.16)(nanostores@1.3.0))(@better-auth/utils@0.4.0)(kysely@0.28.16) '@better-auth/memory-adapter': 1.6.9(@better-auth/core@1.6.9(@better-auth/utils@0.4.0)(@better-fetch/fetch@1.1.21)(better-call@1.3.5(zod@4.4.2))(jose@6.2.3)(kysely@0.28.16)(nanostores@1.3.0))(@better-auth/utils@0.4.0) '@better-auth/mongo-adapter': 1.6.9(@better-auth/core@1.6.9(@better-auth/utils@0.4.0)(@better-fetch/fetch@1.1.21)(better-call@1.3.5(zod@4.4.2))(jose@6.2.3)(kysely@0.28.16)(nanostores@1.3.0))(@better-auth/utils@0.4.0) @@ -3945,6 +3909,8 @@ snapshots: nanostores: 1.3.0 zod: 4.4.2 optionalDependencies: + drizzle-kit: 0.30.6 + drizzle-orm: 0.38.4(kysely@0.28.16)(postgres@3.4.9) vitest: 3.2.4(@types/node@22.19.17)(tsx@4.21.0) transitivePeerDependencies: - '@cloudflare/workers-types'