ad6024f3d9
Phase 1 — Seed Hardening: - Replace all Math.random() calls in seed.ts with a Mulberry32 seeded PRNG (seed 42) so the same data set is reproduced on every run - Replace crypto.randomUUID() with a PRNG-based UUID v4 generator - Add manager (Jordan Lee) and receptionist (Sam Rivera) staff members to seed — previously all staff were groomers - New packages/db/src/reset.ts drops all tables/enums and re-runs migrate + seed; exposed as `pnpm db:reset` at root - Generate migration 0010_impersonation_sessions.sql for the impersonation_sessions and impersonation_audit_logs tables that were already in schema.ts but had no corresponding migration Phase 2 — Test Factories: - New packages/db/src/factories.ts with buildStaff, buildClient, buildPet, buildService, buildAppointment and resetFactoryCounters helpers - Exported via @groombook/db/factories subpath (package.json + vitest alias) - impersonation.test.ts updated to use buildStaff instead of hand-rolled fixture objects Closes #90 (Phases 1 + 2) Co-Authored-By: Paperclip <noreply@paperclip.ing>
38 lines
867 B
JSON
38 lines
867 B
JSON
{
|
|
"name": "@groombook/db",
|
|
"version": "0.0.1",
|
|
"private": true,
|
|
"type": "module",
|
|
"main": "./dist/index.js",
|
|
"types": "./src/index.ts",
|
|
"exports": {
|
|
".": {
|
|
"default": "./dist/index.js",
|
|
"types": "./src/index.ts"
|
|
},
|
|
"./factories": {
|
|
"default": "./src/factories.ts",
|
|
"types": "./src/factories.ts"
|
|
}
|
|
},
|
|
"scripts": {
|
|
"build": "tsc",
|
|
"generate": "drizzle-kit generate",
|
|
"migrate": "drizzle-kit migrate",
|
|
"seed": "tsx src/seed.ts",
|
|
"reset": "tsx src/reset.ts && drizzle-kit migrate && tsx src/seed.ts",
|
|
"studio": "drizzle-kit studio",
|
|
"typecheck": "tsc --noEmit"
|
|
},
|
|
"dependencies": {
|
|
"drizzle-orm": "^0.38.4",
|
|
"postgres": "^3.4.5"
|
|
},
|
|
"devDependencies": {
|
|
"@types/node": "^22.10.7",
|
|
"drizzle-kit": "^0.30.4",
|
|
"tsx": "^4.19.0",
|
|
"typescript": "^5.7.3"
|
|
}
|
|
}
|