feat(05-01): add preparePdf utility and fields/prepare API routes

- Installed @cantoo/pdf-lib for server-side PDF mutation
- Created src/lib/pdf/prepare-document.ts with preparePdf function using atomic tmp->rename write pattern
- form.flatten() called before drawing signature rectangles
- Created GET/PUT /api/documents/[id]/fields routes for signature field storage
- Created POST /api/documents/[id]/prepare route that calls preparePdf and transitions status to Sent
- Fixed pre-existing null check error in scripts/debug-inspect2.ts (Rule 3: blocking build)
- Build compiles successfully with 2 new API routes

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
Chandler Copeland
2026-03-19 23:54:41 -06:00
parent d67130da20
commit c81e8ea838
6 changed files with 353 additions and 3 deletions

View File

@@ -15,7 +15,9 @@
"scrape:forms": "DOTENV_CONFIG_PATH=.env.local npx tsx scripts/scrape-skyslope-forms.ts"
},
"dependencies": {
"@cantoo/pdf-lib": "^2.6.3",
"@vercel/blob": "^2.3.1",
"adm-zip": "^0.5.16",
"bcryptjs": "^3.0.3",
"drizzle-orm": "^0.45.1",
"lucide-react": "^0.577.0",
@@ -30,6 +32,7 @@
},
"devDependencies": {
"@tailwindcss/postcss": "^4",
"@types/adm-zip": "^0.5.8",
"@types/bcryptjs": "^2.4.6",
"@types/node": "^20",
"@types/nodemailer": "^7.0.11",