From 126b72ed36868f744ef826e19bff6d1580fc5fb7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jim=20Liu=20=E5=AE=9D=E7=8E=89?= Date: Tue, 7 Apr 2026 01:31:35 -0500 Subject: [PATCH] feat: add pdf-lib dependency for PDF generation --- bun.lockb | Bin 122640 -> 124512 bytes package.json | 3 +++ 2 files changed, 3 insertions(+) diff --git a/bun.lockb b/bun.lockb index 915b77f371b6c6a27140ab422146e85436680d1f..4dcb909971a6d8ac064ea0de28a8fc37098ae12e 100755 GIT binary patch delta 23214 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 Iy))x~020_udH?_b diff --git a/package.json b/package.json index dee5b4f..15e026f 100644 --- a/package.json +++ b/package.json @@ -15,5 +15,8 @@ "turndown": "^7.2.2", "turndown-plugin-gfm": "^1.0.2", "tsx": "^4.20.5" + }, + "dependencies": { + "pdf-lib": "^1.17.1" } }