Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion examples/pdf-server/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -25,11 +25,11 @@
"build:mcpb": "npm run build && node build-mcpb.mjs"
},
"dependencies": {
"@cantoo/pdf-lib": "^2.6.5",
"@modelcontextprotocol/ext-apps": "^1.0.0",
"@modelcontextprotocol/sdk": "^1.29.0",
"cors": "^2.8.5",
"express": "^5.1.0",
"pdf-lib": "^1.17.1",
"pdfjs-dist": "^5.0.0",
"zod": "^4.1.13"
},
Expand Down
2 changes: 1 addition & 1 deletion examples/pdf-server/server.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ import path from "node:path";
import { Client } from "@modelcontextprotocol/sdk/client/index.js";
import { InMemoryTransport } from "@modelcontextprotocol/sdk/inMemory.js";
import { getDocument } from "pdfjs-dist/legacy/build/pdf.mjs";
import { PDFDocument } from "pdf-lib";
import { PDFDocument } from "@cantoo/pdf-lib";
import { makeRandomJpeg } from "../../tests/helpers/range-counting-server";
import {
createPdfCache,
Expand Down
26 changes: 16 additions & 10 deletions examples/pdf-server/src/pdf-annotations.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,13 @@ import {
type PdfAnnotationDef,
type AnnotationDiff,
} from "./pdf-annotations";
import { PDFDocument, PDFDict, PDFName, PDFArray, PDFNumber } from "pdf-lib";
import {
PDFDocument,
PDFDict,
PDFName,
PDFArray,
PDFNumber,
} from "@cantoo/pdf-lib";

// =============================================================================
// Diff Model
Expand Down Expand Up @@ -1074,16 +1080,16 @@ describe("buildAnnotatedPdfBytes", () => {
// Check /C (stroke color) = [1, 0, 0] for #ff0000
const cArr = annotDict.get(PDFName.of("C")) as PDFArray;
expect(cArr).toBeDefined();
expect((cArr.get(0) as PDFNumber).value()).toBe(1); // r
expect((cArr.get(1) as PDFNumber).value()).toBe(0); // g
expect((cArr.get(2) as PDFNumber).value()).toBe(0); // b
expect((cArr.get(0) as PDFNumber).asNumber()).toBe(1); // r
expect((cArr.get(1) as PDFNumber).asNumber()).toBe(0); // g
expect((cArr.get(2) as PDFNumber).asNumber()).toBe(0); // b

// Check /IC (fill color) = [0, 1, 0] for #00ff00
const icArr = annotDict.get(PDFName.of("IC")) as PDFArray;
expect(icArr).toBeDefined();
expect((icArr.get(0) as PDFNumber).value()).toBe(0); // r
expect((icArr.get(1) as PDFNumber).value()).toBe(1); // g
expect((icArr.get(2) as PDFNumber).value()).toBe(0); // b
expect((icArr.get(0) as PDFNumber).asNumber()).toBe(0); // r
expect((icArr.get(1) as PDFNumber).asNumber()).toBe(1); // g
expect((icArr.get(2) as PDFNumber).asNumber()).toBe(0); // b
});

it("adds freetext annotation to PDF", async () => {
Expand Down Expand Up @@ -1159,9 +1165,9 @@ describe("buildAnnotatedPdfBytes", () => {
// Check /C color
const cArr = annotDict.get(PDFName.of("C")) as PDFArray;
expect(cArr).toBeDefined();
expect((cArr.get(0) as PDFNumber).value()).toBe(0);
expect((cArr.get(1) as PDFNumber).value()).toBe(1);
expect((cArr.get(2) as PDFNumber).value()).toBe(0);
expect((cArr.get(0) as PDFNumber).asNumber()).toBe(0);
expect((cArr.get(1) as PDFNumber).asNumber()).toBe(1);
expect((cArr.get(2) as PDFNumber).asNumber()).toBe(0);

// Check appearance stream exists and contains the color
const ap = annotDict.get(PDFName.of("AP")) as PDFDict;
Expand Down
2 changes: 1 addition & 1 deletion examples/pdf-server/src/pdf-annotations.ts
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ import {
PDFOptionList,
PDFRadioGroup,
type PDFForm,
} from "pdf-lib";
} from "@cantoo/pdf-lib";

// =============================================================================
// Types
Expand Down
92 changes: 69 additions & 23 deletions package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

7 changes: 6 additions & 1 deletion tests/helpers/range-counting-server.ts
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,12 @@
*/
import http from "node:http";
import type { AddressInfo } from "node:net";
import { PDFDocument, PDFName, PDFString, StandardFonts } from "pdf-lib";
import {
PDFDocument,
PDFName,
PDFString,
StandardFonts,
} from "@cantoo/pdf-lib";

export interface RangeServerStats {
/** Total bytes written across all responses (sum of slice lengths). */
Expand Down
Loading