npm / @embedpdf/plugin-render
@embedpdf/plugin-render
What changed in @embedpdf/plugin-render 3, from its official release notes, upgrade guides and advisories. Sources checked 2026-11-06.
25 breaking1 security33 new APIs and options5 behavior and defaults2 fixes and other
See which of these apply to your code, ranked, in your agent:
npx @unstale/cli init@embedpdf/plugin-render 366 changes
Breaking changes 25
Replaces the tile setting name bleed and makes its units explicit.
Checks render access; unauthorized page and tile renders are rejected locally with PermissionDenied.
Now takes a PageRef.
Replaces tilesFor and returns a ViewDemand with pure reads and explicit demand, paint, release, and disposal operations.
Replaces the tile setting name engageAt and makes its units explicit.
Form imports now emit a forms.created or forms.valueSet event per field, following removal of forms.imported.
Removed; form imports now fire per-field forms.created or forms.valueSet events.
Names the full-page settings type, replacing the previous Options type.
Removed; a widget's picture version is provided by the form plugin.
Replaces paintSettings and returns reference-stable paint settings.
Replaces renderEpoch, accepts a page ref or index and optional layer options, and returns 0 for a page not in the document.
Replaces renderPolicy as the public render-policy accessor.
Replaces renderSourceKey in the host capability and can request a thumbnail.
Reports confirmed pixel changes, including remote changes, with the engine origin fields.
Render refusals use PluginErrors with permission-denied, not-found, operation-cancelled, or operation-failed codes.
Provides a reference-stable tile handle bound to a view identity for planning, paint reporting, and release.
Now represents DeepPartial<RenderSettings>.
Removed in favor of renderAppearances; a widget's picture version is provided by the form plugin.
Names the conforming viewer door, replacing the host capability's renderPage method; it can request a thumbnail.
Renders a page thumbnail at 512 pixels on its long side and requires only doc.render.thumbnail; maxWidth is no longer supported.
Render requests reject with operation-cancelled as soon as their signal fires.
Removed along with toEngineRect; the kernel page space converts tile regions to PDF space.
Removed; new tiles appear as soon as they are ready, without a fade.
Names the tile settings type, replacing the previous Options type.
Removed along with tileEngineRect; the kernel page space converts tile regions to PDF space.
Security 1
Unauthorized page and tile render requests are refused locally rather than repeatedly sent to the engine.
New APIs and options 33
Reports whether the session may render thumbnails.
Checks for doc.render and doc.content.copy permissions required for snapshots.
Clears the current snapshot.
Publishes a bundle-safe entry for the render token, paint-plan vocabulary, settings, and capability types without raster or plugin wiring.
Reports which parts of a page the user may read.
Reports which painter currently holds the page pictures.
Reports whether a page picture is loading, ready, forbidden, errored, or idle in a view, and whether loading has been slow.
Reads live render settings for every open document.
Reads the current snapshot.
Reads the snapshot box for a page on the host lens.
Controls whether page pictures include form fields; asking for content the user may not read is refused.
Accepts a fields scope; invalidation pages use page refs or indexes, and pages not in the document are skipped.
Returns an item's last appearance pictures after it has left its page.
Fires whenever picture state changes.
Signals changes to live render settings.
Signals snapshot changes.
Adds includeFormFields alongside includeAnnotations.
Replaces page-number arguments for rendering and tile methods; renderPage, renderThumbnail, renderPages, getRenderEpoch, and invalidate also accept a page index.
Adds a configurable strategy for exact and lattice-backed deployments, with separate full-page and tile-plane budgets and format conformance.
Hands page-picture painting to another plugin; only one plugin can paint at a time, and the handover can be returned or lasts until document close.
Fetches appearance pictures for annotation or form-widget items and shares matching requests.
Renders a page region in page space, clipped at the page edge; a region missing the page is invalid-input.
Turns the rendered picture; region or rotation renders are caller-specific and outside the layers' cache.
Renders multiple pages with optional concurrency and reports results in input order.
Lets the layers report a page picture to the host lens.
Resets live render settings.
Compares two tile demands by value.
Sets when a page waiting to render is considered slow; defaults to 400.
Adds an interaction-plugin tool that captures a selected page box or whole page as an image and updates it for changes made before capture.
Configures the snapshot box fill color; omitted colors follow the accent again when the box setting changes.
Configures the snapshot box stroke color.
Sets snapshot image scale in pixels per point and defaults to 2.
Updates live render settings; new budgets, tile sizes, or formats apply immediately and trigger replanning and redraw.
Behavior and default changes 5
Uses bounded fetch backpressure and raster residency, generation retention, bled overlap, and stronger raster identities to limit memory and avoid stale reuse, seams, and zoom or pan quality regressions.
Reads null while the engine chooses; setting it to null gives the choice back.
Pictures are cached and redrawn according to the content they draw; annotation changes redraw pictures that include annotations.
Reads null while the engine chooses, allowing the choice to be returned by setting it to null.
Renders at the requested size without snapping, shares the raster cache with view layers, and can render a page region with optional rotation.
Fixes and other changes 2
A fonts.changed write repaints only what its events require; registering local-engine fonts after drawing repaints every page.
A page that disappears before it reaches the engine rejects not-found; pages that arrive later are drawn once available.