{"_id":"@elhalawany/engines","name":"@elhalawany/engines","dist-tags":{"latest":"1.5.0"},"versions":{"1.5.0":{"name":"@elhalawany/engines","version":"1.5.0","description":"Pluggable runtime layer that abstracts over multiple PDF engines (PDF-ium, Web Workers, mocks, etc.) to provide a unified API for rendering, search, annotation, and other document-level operations in EmbedPDF.","type":"module","main":"./dist/index.cjs","module":"./dist/index.js","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./pdfium":{"types":"./dist/lib/pdfium/index.d.ts","import":"./dist/lib/pdfium/index.js","require":"./dist/lib/pdfium/index.cjs"},"./worker":{"types":"./dist/lib/webworker/engine.d.ts","import":"./dist/lib/webworker/engine.js","require":"./dist/lib/webworker/engine.cjs"},"./converters":{"types":"./dist/lib/converters/index.d.ts","import":"./dist/lib/converters/index.js","require":"./dist/lib/converters/index.cjs"},"./pdfium-direct-engine":{"types":"./dist/lib/pdfium/web/direct-engine.d.ts","import":"./dist/lib/pdfium/web/direct-engine.js","require":"./dist/lib/pdfium/web/direct-engine.cjs"},"./pdfium-worker-engine":{"types":"./dist/lib/pdfium/web/worker-engine.d.ts","import":"./dist/lib/pdfium/web/worker-engine.js","require":"./dist/lib/pdfium/web/worker-engine.cjs"},"./react":{"types":"./dist/react/index.d.ts","import":"./dist/react/index.js","require":"./dist/react/index.cjs"},"./preact":{"types":"./dist/preact/index.d.ts","import":"./dist/preact/index.js","require":"./dist/preact/index.cjs"},"./vue":{"types":"./dist/vue/index.d.ts","import":"./dist/vue/index.js","require":"./dist/vue/index.cjs"},"./svelte":{"types":"./dist/svelte/index.d.ts","svelte":"./dist/svelte/index.js","import":"./dist/svelte/index.js","require":"./dist/svelte/index.cjs"}},"keywords":["pdf","pdf-engine","embedpdf"],"repository":{"type":"git","url":"git+https://github.com/embedpdf/embed-pdf-viewer.git","directory":"packages/engines"},"homepage":"https://www.embedpdf.com/docs/engines/introduction","bugs":{"url":"https://github.com/embedpdf/embed-pdf-viewer/issues"},"author":{"name":"Bob Singor, Ji Chang"},"license":"MIT","devDependencies":{"@types/jest":"^29.5.14","@types/react":"^18.2.0","jest":"^29.7.0","ts-jest":"^29.2.5","typescript":"^5.0.0","@elhalawany/build":"1.1.0"},"dependencies":{"@elhalawany/models":"1.5.0","@elhalawany/pdfium":"1.5.0"},"peerDependencies":{"preact":"^10.26.4","react":">=16.8.0","react-dom":">=16.8.0","svelte":">=5 <6","vue":">=3.2.0"},"publishConfig":{"access":"public"},"scripts":{"build:base":"vite build --mode base","build:react":"vite build --mode react","build:preact":"vite build --mode preact","build:vue":"vite build --mode vue","build:svelte":"vite build --mode svelte","build":"pnpm run clean && concurrently -c auto -n base,react,preact,vue,svelte \"vite build --mode base\" \"vite build --mode react\" \"vite build --mode preact\" \"vite build --mode vue\" \"vite build --mode svelte\"","clean":"rimraf dist","lint":"eslint src --color","lint:fix":"eslint src --color --fix"},"_id":"@elhalawany/engines@1.5.0","_integrity":"sha512-nr+j26w7yBgNR6zQlmhNFxZEKg5AfIDjIXqhmB8ppYuAapZO+0N8/tx2WxqhHHKLCIGAI7I798aH3QqBMtVG9A==","_resolved":"C:\\Users\\moham\\AppData\\Local\\Temp\\34de6bd7bd482077871d317a5ba34fae\\elhalawany-engines-1.5.0.tgz","_from":"file:elhalawany-engines-1.5.0.tgz","_nodeVersion":"22.17.1","_npmVersion":"10.9.2","dist":{"integrity":"sha512-nr+j26w7yBgNR6zQlmhNFxZEKg5AfIDjIXqhmB8ppYuAapZO+0N8/tx2WxqhHHKLCIGAI7I798aH3QqBMtVG9A==","shasum":"396cddf1f9bea869fa5f773bd7279e326db4f510","tarball":"https://registry.npmjs.org/@elhalawany/engines/-/engines-1.5.0.tgz","fileCount":99,"unpackedSize":2806156,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIGqaPHsPbyGM8MtDqjf/qYTVUOBSVTnJaEPMyc5Zzc/cAiBxUDIhoasGauHQ5yKbMOD1M37MCuODMY6h1fSAWGdYcw=="}]},"_npmUser":{"name":"elhalawany","email":"mohammed.el7alawany@gmail.com"},"directories":{},"maintainers":[{"name":"elhalawany","email":"mohammed.el7alawany@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/engines_1.5.0_1765679649863_0.38891232895540373"},"_hasShrinkwrap":false}},"time":{"created":"2025-12-14T02:34:09.795Z","1.5.0":"2025-12-14T02:34:10.093Z","modified":"2025-12-14T02:34:10.315Z"},"maintainers":[{"name":"elhalawany","email":"mohammed.el7alawany@gmail.com"}],"description":"Pluggable runtime layer that abstracts over multiple PDF engines (PDF-ium, Web Workers, mocks, etc.) to provide a unified API for rendering, search, annotation, and other document-level operations in EmbedPDF.","homepage":"https://www.embedpdf.com/docs/engines/introduction","keywords":["pdf","pdf-engine","embedpdf"],"repository":{"type":"git","url":"git+https://github.com/embedpdf/embed-pdf-viewer.git","directory":"packages/engines"},"author":{"name":"Bob Singor, Ji Chang"},"bugs":{"url":"https://github.com/embedpdf/embed-pdf-viewer/issues"},"license":"MIT","readme":"<div align=\"center\">\r\n  <a href=\"https://www.embedpdf.com\">\r\n    <img alt=\"EmbedPDF logo\" src=\"https://www.embedpdf.com/logo-192.png\" height=\"96\">\r\n  </a>\r\n  <h1>EmbedPDF</h1>\r\n\r\n<a href=\"https://www.npmjs.com/package/@embedpdf/engines\"><img alt=\"NPM version\" src=\"https://img.shields.io/npm/v/@embedpdf/engines.svg?style=for-the-badge&labelColor=000000\"></a> <a href=\"https://github.com/embedpdf/embed-pdf-viewer/blob/main/packages/engines/LICENSE\"><img alt=\"License\" src=\"https://img.shields.io/npm/l/@embedpdf/engines.svg?style=for-the-badge&labelColor=000000\"></a> <a href=\"https://github.com/embedpdf/embed-pdf-viewer/discussions\"><img alt=\"Join the community on GitHub\" src=\"https://img.shields.io/badge/Join%20the%20community-blueviolet.svg?style=for-the-badge&labelColor=000000\"></a>\r\n\r\n</div>\r\n\r\n# @embedpdf/engines\r\n\r\nPluggable rendering engines for EmbedPDF. Ships with **`PdfiumEngine`** – a high‑level, promise‑first wrapper built on top of `@embedpdf/pdfium`.\r\n\r\n## Documentation\r\n\r\nFor complete guides, examples, and full API reference, visit:\r\n\r\n**[Official Documentation](https://www.embedpdf.com/docs/engines/introduction)**\r\n\r\n## Why `@embedpdf/engines`?\r\n\r\n- **High‑level abstraction** – handles tasks, DPR scaling, annotation colour resolution, range/linearised loading.\r\n- **Universal runtimes** – works in browsers, Node, and serverless environments.\r\n- **Typed & composable** – 100 % TypeScript with generics for custom image pipelines.\r\n\r\n## Features\r\n\r\n- Open PDFs from `ArrayBuffer` or URL\r\n- Render full pages, arbitrary rectangles, thumbnails – all DPI‑aware\r\n- Text extraction, glyph geometry, word‑break‑aware search with context windows\r\n- Read / create / transform / delete **annotations** and **form fields**\r\n- Page ops: merge, extract, flatten, partial import\r\n- Attachments & digital‑signature introspection\r\n\r\n## Installation\r\n\r\n```bash\r\nnpm install @embedpdf/engines @embedpdf/pdfium\r\n```\r\n\r\n## Basic Usage\r\n\r\n```typescript\r\nimport { init } from '@embedpdf/pdfium';\r\nimport { PdfiumEngine } from '@embedpdf/engines/pdfium';\r\n\r\nconst pdfiumWasm =\r\n  'https://cdn.jsdelivr.net/npm/@embedpdf/pdfium/dist/pdfium.wasm';\r\n\r\n(async () => {\r\n  const response = await fetch(pdfiumWasm);\r\n  const wasmBinary = await response.arrayBuffer();\r\n  // 1 – boot the low‑level WASM module\r\n  const pdfium = await init({ wasmBinary });\r\n\r\n  // 2 – create the high‑level engine\r\n  const engine = new PdfiumEngine(pdfium);\r\n  engine.initialize();\r\n\r\n  // 3 – open & render\r\n  const document = await engine\r\n    .openDocumentUrl({ id: 'demo', url: '/demo.pdf' })\r\n    .toPromise();\r\n  const page0 = doc.pages[0];\r\n\r\n  const blob = await engine.renderPage(doc, page0).toPromise();\r\n})();\r\n```\r\n\r\n## Learn More\r\n\r\nHead over to our docs for:\r\n\r\n- **Getting Started** – initialise, render, destroy\r\n- **Engine Interface** – implement your own back‑end\r\n- **Advanced Topics** – workers, Node pipelines, Sharp image adapters\r\n\r\n## License\r\n\r\nMIT – see the [LICENSE](https://github.com/embedpdf/embed-pdf-viewer/blob/main/packages/engines/LICENSE) file.\r\n","readmeFilename":"README.md","_rev":"1-6b7645c8105d4e6179f5f97b09e68d7f"}