Files
Reactive-Resume/packages/pdf/package.json
T
Amruth Pillai bc28441b66 feat(pdf): render resumes with the forme engine
Templates keep their react-pdf-style primitives. A small React renderer
records what they draw, and the result is converted to a Forme document:
styles, fonts (with ligatures disabled for text extraction), Phosphor
icons as SVG paths, pictures fitted by object-fit, and the page map from
source locations. Workarounds for Forme 0.25 layout defects live in the
converter: opaque translucent colours, border insets, row splitting,
column gaps across pages, absolute positioning and repeated backgrounds.

Consumers, the Semantic CSS adapter and the old react-pdf dependencies
follow in later commits.
2026-09-29 06:22:38 +02:00

57 lines
1.9 KiB
JSON

{
"name": "@reactive-resume/pdf",
"version": "0.0.0",
"type": "module",
"private": true,
"exports": {
"./browser": "./src/browser.tsx",
"./document": "./src/document.tsx",
"./page-map": "./src/page-map.ts",
"./semantic": "./src/semantic/index.ts",
"./semantic-legacy": "./src/semantic/legacy-converter.ts",
"./semantic-tree": "./src/semantic/tree.ts",
"./section-title": "./src/section-title.ts",
"./server": "./src/server.tsx",
"./primitives": "./src/forme/primitives.tsx"
},
"imports": {
"#react-pdf-renderer": "./src/forme/primitives.tsx"
},
"scripts": {
"typecheck": "tsgo --noEmit",
"test": "vitest run --passWithNoTests",
"test:coverage": "vitest run --coverage --passWithNoTests",
"test:ci": "vitest run --coverage --reporter=default --reporter=github-actions --reporter=json --reporter=junit --outputFile.json=reports/vitest-results.json --outputFile.junit=reports/vitest-junit.xml --passWithNoTests",
"test:agent": "vitest run --reporter=agent --reporter=json --outputFile.json=reports/vitest-results.json --passWithNoTests"
},
"dependencies": {
"@formepdf/core": "0.25.0",
"@formepdf/react": "0.25.0",
"@react-pdf/hyphenate": "0.1.0",
"@react-pdf/renderer": "^4.9.0",
"@reactive-resume/fonts": "workspace:*",
"@reactive-resume/resume": "workspace:*",
"@reactive-resume/schema": "workspace:*",
"@reactive-resume/utils": "workspace:*",
"cjk-regex": "^3.5.0",
"fast-png": "^8.0.0",
"fflate": "^0.8.3",
"node-html-parser": "^9.0.4",
"phosphor-icons-react-pdf": "^0.1.3",
"react": "^19.3.0",
"react-pdf-html": "^2.1.5",
"react-reconciler": "0.34.0"
},
"devDependencies": {
"@napi-rs/canvas": "1.0.9",
"@react-pdf/types": "^2.14.0",
"@reactive-resume/config": "workspace:*",
"@types/react": "^19.3.0",
"@types/react-reconciler": "^0.33.0",
"@typescript/native-preview": "7.0.0-dev.20260707.2",
"pdfjs-dist": "6.3.289",
"pixelmatch": "^7.2.0",
"typescript": "^7.0.2"
}
}