Releases: fayazara/pdfstudio
Release list
v0.4.0
Fixed
-
Fixed qpdf's wasm glue misdetecting the Cloudflare Workers runtime as Node.js when the
nodejs_compatcompatibility flag is enabled.The Emscripten-generated glue picks its code path via
globalThis.process?.versions?.node.nodejs_compatpolyfillsprocessfor compatibility with npm packages that expect it, which made the glue falsely take the Node.js branch. That branch callscreateRequire(import.meta.url), which throws in a bundled Worker since there's no realfile:URL to resolve — breaking every unlock/lock/merge/etc. call on Workers withnodejs_compaton (the majority of real-world Workers apps).Now detects the Workers runtime via
navigator.userAgent === 'Cloudflare-Workers'(stable regardless ofnodejs_compat, and never present in real Node.js) and hidesprocessonly for the duration of the one call that does the misdetection, restoring it immediately after. No API changes; real Node.js and browser usage are unaffected.
pdfstudio 0.3.0
First public release on npm: npm install pdfstudio
Client-side PDF toolkit powered by qpdf 12.3.2 compiled to WebAssembly (2.1 MB). Runs in browsers, Node.js ≥ 18, and Cloudflare Workers — files never leave the device.
Operations: lock (AES-256/128/40 + permissions), unlock, change/remove password, merge, split, extract/delete/reverse pages, rotate, collate, watermark (overlay/underlay), compress, linearize, repair, flatten, attachments (add/get/list/remove), typed getInfo, imagesToPdf (pure-TS JPEG→PDF), and a raw qpdf escape hatch.
43 end-to-end tests. Fully typed API. Apache-2.0.
🤖 Generated with Claude Code