feat(document-templates): delete TipTap-to-pdfme bridge
Phase 1 / commit 12 of 14 — strips out the 571-line tiptap-to-pdfme
serializer and every code path that depended on it. TipTap document
templates remain as Documenso-template seed bodies; the CRM no longer
renders them to PDF in-app.
Deleted:
src/lib/pdf/tiptap-to-pdfme.ts (571 LOC)
src/lib/pdf/templates/eoi-standard-inapp.ts (337 LOC)
src/app/api/v1/admin/templates/preview/route.ts
src/app/api/v1/document-templates/[id]/generate/route.ts
src/app/api/v1/document-templates/[id]/generate-and-send/route.ts
src/lib/services/document-templates.ts:generateFromTemplate (~140 LOC)
src/lib/services/document-templates.ts:generateAndSend (~40 LOC)
src/lib/validators/document-templates.ts:generateAndSendSchema
src/lib/validators/document-templates.ts:previewAdminTemplateSchema
tests/unit/tiptap-serializer.test.ts (old bridge tests)
Preserved as src/lib/pdf/tiptap-validation.ts (~70 LOC):
- validateTipTapDocument() — still used to reject unsupported nodes
on save in the admin template editor
- TEMPLATE_VARIABLES — drives the merge-token picker in the
admin template form + preview UI
generateAndSign() now throws a clear ValidationError when a non-EOI
template tries the in-app pathway. Use a Documenso template, or wait
for the deferred AcroForm-fill admin-upload feature.
seed-data.ts: "Standard EOI (in-app)" template row now seeds with stub
bodyHtml + small MERGE_FIELDS array; the deleted HTML helper was never
actually rendered (in-app EOI is pdf-lib AcroForm fill on the source
PDF — generateEoiPdfFromTemplate, unchanged).
After this commit, pdfme has zero callers left. Commit 14 drops the
deps and the generate.ts shim.
1298/1298 vitest green.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -63,10 +63,6 @@ export const generateSchema = z.object({
|
||||
berthId: z.string().optional(),
|
||||
});
|
||||
|
||||
export const generateAndSendSchema = generateSchema.extend({
|
||||
recipientEmail: z.string().email(),
|
||||
});
|
||||
|
||||
export const generateAndSignSchema = generateSchema.extend({
|
||||
pathway: z.enum(['inapp', 'documenso-template']).default('inapp'),
|
||||
signers: z
|
||||
@@ -86,7 +82,6 @@ export type CreateTemplateInput = z.infer<typeof createTemplateSchema>;
|
||||
export type UpdateTemplateInput = z.infer<typeof updateTemplateSchema>;
|
||||
export type ListTemplatesInput = z.infer<typeof listTemplatesSchema>;
|
||||
export type GenerateInput = z.infer<typeof generateSchema>;
|
||||
export type GenerateAndSendInput = z.infer<typeof generateAndSendSchema>;
|
||||
export type GenerateAndSignInput = z.infer<typeof generateAndSignSchema>;
|
||||
|
||||
// ─── TipTap-based Admin Template Schemas ─────────────────────────────────────
|
||||
@@ -113,11 +108,6 @@ export const updateAdminTemplateSchema = z.object({
|
||||
isActive: z.boolean().optional(),
|
||||
});
|
||||
|
||||
export const previewAdminTemplateSchema = z.object({
|
||||
content: z.record(z.string(), z.unknown()),
|
||||
sampleData: z.record(z.string(), z.string()).optional(),
|
||||
});
|
||||
|
||||
export const rollbackAdminTemplateSchema = z.object({
|
||||
version: z.number().int().min(1),
|
||||
});
|
||||
@@ -132,6 +122,5 @@ export const listAdminTemplatesSchema = baseListQuerySchema.extend({
|
||||
|
||||
export type CreateAdminTemplateInput = z.infer<typeof createAdminTemplateSchema>;
|
||||
export type UpdateAdminTemplateInput = z.infer<typeof updateAdminTemplateSchema>;
|
||||
export type PreviewAdminTemplateInput = z.infer<typeof previewAdminTemplateSchema>;
|
||||
export type RollbackAdminTemplateInput = z.infer<typeof rollbackAdminTemplateSchema>;
|
||||
export type ListAdminTemplatesInput = z.infer<typeof listAdminTemplatesSchema>;
|
||||
|
||||
Reference in New Issue
Block a user