From 838e129f37a4e5678107e338bd00d7016fce5256 Mon Sep 17 00:00:00 2001 From: yiekheng Date: Sun, 10 May 2026 17:41:06 +0800 Subject: [PATCH] chore: add bcryptjs to web + db packages Pure-JS bcrypt for password hashing. Avoids the native-build pain of node-bcrypt in our Alpine Docker images. Login is a rare event so the perf gap is irrelevant for our scale. --- apps/web/package.json | 2 ++ packages/db/package.json | 2 ++ pnpm-lock.yaml | 26 ++++++++++++++++++++++++++ 3 files changed, 30 insertions(+) diff --git a/apps/web/package.json b/apps/web/package.json index 9607371..77dfcb8 100644 --- a/apps/web/package.json +++ b/apps/web/package.json @@ -18,6 +18,7 @@ "@hookform/resolvers": "^5.2.2", "@serwist/next": "^9.5.11", "@types/luxon": "^3.4.2", + "bcryptjs": "^3.0.3", "class-variance-authority": "^0.7.1", "clsx": "^2.1.1", "drizzle-orm": "^0.36.0", @@ -44,6 +45,7 @@ }, "devDependencies": { "@tailwindcss/postcss": "^4.0.0", + "@types/bcryptjs": "^3.0.0", "@types/node": "^22.7.0", "@types/pg": "^8.11.10", "@types/qrcode": "^1.5.5", diff --git a/packages/db/package.json b/packages/db/package.json index 5439df3..db4ff15 100644 --- a/packages/db/package.json +++ b/packages/db/package.json @@ -26,10 +26,12 @@ "seed": "tsx src/seed.ts" }, "dependencies": { + "bcryptjs": "^3.0.3", "drizzle-orm": "^0.36.0", "pg": "^8.13.0" }, "devDependencies": { + "@types/bcryptjs": "^3.0.0", "@types/node": "^22.7.0", "@types/pg": "^8.11.10", "drizzle-kit": "^0.28.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 8a6002d..e07dd63 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -93,6 +93,9 @@ importers: '@types/luxon': specifier: ^3.4.2 version: 3.7.1 + bcryptjs: + specifier: ^3.0.3 + version: 3.0.3 class-variance-authority: specifier: ^0.7.1 version: 0.7.1 @@ -166,6 +169,9 @@ importers: '@tailwindcss/postcss': specifier: ^4.0.0 version: 4.3.0 + '@types/bcryptjs': + specifier: ^3.0.0 + version: 3.0.0 '@types/node': specifier: ^22.7.0 version: 22.19.18 @@ -202,6 +208,9 @@ importers: packages/db: dependencies: + bcryptjs: + specifier: ^3.0.3 + version: 3.0.3 drizzle-orm: specifier: ^0.36.0 version: 0.36.4(@types/pg@8.20.0)(@types/react@19.2.14)(pg@8.20.0)(react@19.2.6) @@ -209,6 +218,9 @@ importers: specifier: ^8.13.0 version: 8.20.0 devDependencies: + '@types/bcryptjs': + specifier: ^3.0.0 + version: 3.0.0 '@types/node': specifier: ^22.7.0 version: 22.19.18 @@ -2370,6 +2382,10 @@ packages: cpu: [arm64] os: [win32] + '@types/bcryptjs@3.0.0': + resolution: {integrity: sha512-WRZOuCuaz8UcZZE4R5HXTco2goQSI2XxjGY3hbM/xDvwmqFWd4ivooImsMx65OKM6CtNKbnZ5YL+YwAwK7c1dg==} + deprecated: This is a stub types definition. bcryptjs provides its own type definitions, so you do not need this installed. + '@types/estree@1.0.8': resolution: {integrity: sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==} @@ -2559,6 +2575,10 @@ packages: engines: {node: '>=6.0.0'} hasBin: true + bcryptjs@3.0.3: + resolution: {integrity: sha512-GlF5wPWnSa/X5LKM1o0wz0suXIINz1iHRLvTS+sLyi7XPbe5ycmYI3DlZqVGZZtDgl4DmasFg7gOB3JYbphV5g==} + hasBin: true + body-parser@2.2.2: resolution: {integrity: sha512-oP5VkATKlNwcgvxi0vM0p/D3n2C3EReYVX+DNYs5TjZFn/oQt2j+4sVJtSMr18pdRr8wjTcBl6LoV+FUwzPmNA==} engines: {node: '>=18'} @@ -6461,6 +6481,10 @@ snapshots: '@turbo/windows-arm64@2.9.12': optional: true + '@types/bcryptjs@3.0.0': + dependencies: + bcryptjs: 3.0.3 + '@types/estree@1.0.8': {} '@types/estree@1.0.9': {} @@ -6676,6 +6700,8 @@ snapshots: baseline-browser-mapping@2.10.28: {} + bcryptjs@3.0.3: {} + body-parser@2.2.2: dependencies: bytes: 3.1.2