Skip to content

chore: version packages (next) (next) - #968

Merged
bobsingor merged 1 commit into
mainfrom
changeset-release/main
Nov 4, 2026
Merged

bobsingor merged 1 commit into
mainfrom
changeset-release/main

Conversation

@github-actions

@github-actions github-actions Bot commented Nov 3, 2026 •

Copy link
Copy Markdown
Contributor

This PR was opened by the Changesets release GitHub action. When you're ready to do a release, you can merge this and the packages will be published to npm automatically. If you're not ready to do a release yet, that's fine, whenever you add more changesets to main, this PR will be updated.

⚠️⚠️⚠️⚠️⚠️⚠️

main is currently in pre mode so this branch has prereleases rather than normal releases. If you want to exit prereleases, run changeset pre exit on main.

⚠️⚠️⚠️⚠️⚠️⚠️

Releases

@cloudpdf/contract@3.0.0-next.22

Minor Changes

  • #978 by @bobsingor – Every markup annotation carries richText, its comment with formatting, or
    null for a plain comment, in reads, creates and updates. The rich text model
    is named once, as RichTextDocument and RichTextDocumentInput.

  • #967 by @bobsingor – deployment.modules (GET /v1/deployment/modules, API token) lists the installed server modules: ModuleManifest with its ModulePermissions and ModuleMeters, all named components. tenants.usage takes from and to (UTC days, to the day after the last) in place of period, and its metrics hold modules' meters next to the core's.

  • #971 by @bobsingor – A square, circle, polygon, polyline, line or ink annotation's color may be null: no stroke. A read gives null for a file's empty or missing stroke color.

Patch Changes

  • #972 by @bobsingor – dashArray on an annotation's create and update and on a widget placement takes at least one length (minItems: 1): an empty pattern is refused.

@cloudpdf/sdk@3.0.0-next.22

Minor Changes

  • #978 by @bobsingor – Annotations, drafts and patches of every markup kind have richText, the
    comment with formatting (RichTextDocument, RichTextDocumentInput), or
    null for a plain comment.

  • #967 by @bobsingor – deployment.modules() lists the installed server modules: their names, permissions and meters. tenants.usage takes from and to for a window of UTC days, and its metrics include modules' meters.

  • #971 by @bobsingor – A square, circle, polygon, polyline, line or ink annotation's color may be null: no stroke.

@cloudpdf/server@3.0.0-next.22

Minor Changes

  • #967 by @bobsingor – Modules describe themselves, and count their usage. A module has a name (required) and a description, and declares meters (each with a label and a unit) that its routes count with req.meters.count(meter, { oncePerDay }) for the document's tenant. A permission can say how it relates to the core's: replaces (protected-display.view replaces doc.render) and bypassedBy (doc.download…), facts for a grant dialog that the server doesn't enforce; a token may hold a permission and the one it replaces, and the core one has its usual effect. GET /v1/deployment/modules lists the installed modules as they declare themselves, with the API token. Tenant usage is counted per UTC day: tenants.usage takes from and to in place of period, and reports each installed module's meters next to the core's. Migration 051 moves the counters to days (a month counted before keeps its total on its first day) and keeps the once-a-day keys as hashes, swept when the day is over.

@cloudpdf/server-modules@3.0.0-next.22

Minor Changes

  • #967 by @bobsingor – defineServerModule takes a name (required), a description and meters; a request counts the module's meters with req.meters.count(meter, { oncePerDay }). Permissions take replaces and bypassedBy. startTestServer's tenant has the given modules turned on, so their routes answer instead of 403 FeatureNotEnabled.

@embedpdf/core-annotation@3.0.0-next.22

Minor Changes

  • #973 by @bobsingor – A record changes its kind to a sibling: withValues takes a subtype the annotation can become now (canChangeKind; not when it's locked), and the patch and the pending view are the new kind's. setFields gives it only to annotations people may change by hand as the new kind too, so a mixed selection changes the ones that can and restyles the rest. New selectionProperties(model, annotations): the properties a style panel shows for selected annotations, led by a subtype choice (label annotation.style.kind, each kind named as the comment list names it) when they are kinds of one group and each can change kind.

  • #975 by @bobsingor – New typeWithStyle(before, after, at, style): the text typed at a caret takes a style chosen there, a line break carries the style on to the next line, and any other edit drops it. New restyleRuns(doc, change) and withoutStyle(style, keys) change every run's own style. A whole free text restyled by hand now restyles all of its text: setTextFormat and a font, size or text color in setFields set the body and take that property off every word that set its own, so a box typed bold from its first letter turns regular with one toggle.

  • #971 by @bobsingor – A style's color may be null: a shape or line drawn without a stroke. A color property's allowsNone says a panel may offer none, which writes null: on a shape's or line's stroke and fill, a text box's background, a redaction's fill and a form field's border and background.

    A line, polyline or ink at width 0 is drawn as a hairline (Paint.hairline), with the line endings a 1 pt line has, as the engine and Acrobat draw it.

Patch Changes

  • #971 by @bobsingor – Ink is drawn as Acrobat draws it: each stroke as the smooth curves Acrobat fits to its points (cubic Béziers, never more than about 1.4 points from any point), with round caps and no join, and a stroke of one point as a filled dot. Its box and hit testing follow those curves, so a live drawing looks the same as the appearance the engine writes.

@embedpdf/core-fonts@3.0.0-next.22

Minor Changes

  • #974 by @bobsingor – standardFontForFace moved to @embedpdf/engine-core/runtime, so the engine and the browser pick the standard font for a face with one function; it is no longer exported here.

@embedpdf/core-ui@3.0.0-next.22

Minor Changes

  • #980 by @bobsingor – A bar can sit by the snapshot tool's box: { at: 'snapshot' }, beside { at: 'selection' } and { at: 'annotation' }.

@embedpdf/engine-core@3.0.0-next.22

Minor Changes

  • #973 by @bobsingor – An update can change an annotation's kind to a sibling: a highlight, underline, squiggly line or strikeout into another of the four, and a square into a circle and back, the kinds ISO 32000-2 describes with one table of entries. New siblingKindsOf(subtype) lists the kinds an annotation can become, canChangeKind(annotation, subtype) says whether it can become one now, and fieldTheKindCannotHold(annotation, subtype) names the value in the way. The patch is the new kind's patch, checked against its schema, and the annotation stays itself: its ref, nm, replies, popup, group and author. Any other subtype is refused with InvalidArg (details.field 'subtype'), naming the kinds it can become. A value the new kind has no field for is refused, never dropped (details.field names it): clear it first, in the same change, as a replacement's strikeout clears its intent.

    applyAnnotationPatch and mergeAnnotationPatch predict the new kind, a field only it has reading null, and annotationPatchBetween states subtype when the kind changed.

  • #974 by @bobsingor – Latin a font lacks is never a box. After the fallback fonts, the engine draws a character the run's font doesn't have in the standard font that stands in for that font, in its weight and italic (Times for Times New Roman, Courier for Courier New, Helvetica for any other), and only then in the last resort. doc.fonts.resolve() says so: each run's fallbacks ends with that standard font's program, unless the run is drawn in it. standardFontForFace(face), the rule that picks it, is exported from @embedpdf/engine-core/runtime.

  • #978 by @bobsingor – Every markup annotation has richText, its comment with formatting (/RC, ISO 32000-2 §12.5.6.2): a note, a highlight, a shape, a line, ink, a stamp, a caret, a file attachment or a redaction. It is the RichTextDocument a free text has, or null when the comment is plain text, and contents is its plain projection. A create or update with richText brings its contents; contents alone on a formatted comment replaces its paragraphs with plain ones and keeps its body; richText: null keeps the text and drops the formatting. contents and richText given together must say the same text, line breaks however spelled, for every kind. Links, popups and widgets have no richText. The rich text schemas are named RichTextDocument and RichTextDocumentInput among the annotation wire components.

  • #971 by @bobsingor – A square, circle, polygon, polyline, line or ink annotation takes color: null for no stroke, and keeps its strokeWidth. A shape whose file gives it no stroke color reads color: null. runNoStrokeConformance and NO_STROKE_FIXTURE_PDF check both engines read, write and draw it as Acrobat does.

Patch Changes

  • #972 by @bobsingor – A dashed border whose dashArray is left out, on create or by an update that makes it dashed while it has no pattern, now states the default [3, 3] and reads it back, for every kind with a border and for widget placements. The pattern is written into the file because Acrobat redraws a dashed border whose file names none as a solid line. dashArray: null is no pattern: written as none, it reads back null. A write refuses an empty dashArray: an empty pattern is a solid line, which is borderStyle: 'solid'.

@embedpdf/engine@3.0.0-next.22

Minor Changes

  • #973 by @bobsingor – page.annotations.update() changes an annotation's kind to a sibling: a highlight, underline, squiggly line or strikeout into another of the four, a square into a circle and back. It stays the same annotation, with its ref, replies, popup, group and author, and undo turns it back. Any other subtype is refused with InvalidArg, and so is a value the new kind has no field for: clear it first, in the same change.

@embedpdf/engine-runtime@3.0.0-next.22

Minor Changes

  • #973 by @bobsingor – The runtime has EPDFAnnot_SetSubtype: an annotation's kind changed in place, its /Subtype written and every other entry kept.

  • #974 by @bobsingor – The runtime draws Latin a font lacks in the standard font that stands in for that font (its own standard family, else Helvetica, in its weight and italic), after the fallback fonts and before the last-resort box, in free text, form fields and redaction labels: text in a font without Latin, such as Noto Sans Hebrew, keeps its Latin letters. A registered font's /BaseFont is its PostScript name rather than the family it was registered under, so two weights of one family are two fonts in the PDF and in EPDFFont_GetPostScriptName(); a variable-font instance is named as the font names that instance, and each subset has its own tag.

  • #971 by @bobsingor – A square, circle, polygon, polyline, line or ink whose /C is empty or left out draws no stroke, as Acrobat does: the fill alone, still inset half the border width, and only the filled line endings. A line, polyline or ink at border width 0 draws a hairline. Adds the EPDFAnnot_SetNoColor binding, which writes a color entry as an empty array.

Patch Changes

  • #971 by @bobsingor – An ink annotation's appearance draws each stroke as Acrobat does: the cubic Béziers Acrobat fits to its points, never more than about 1.4 points from any of them, with round caps and no join, and a stroke of one point as a dot of radius 0.5. /Rect follows the curves.

  • #972 by @bobsingor – An empty dash pattern (/BS /D []) is a solid line, as ISO 32000 says: a shape's, line's, ink's or form widget's border with one draws no dashes and reads solid. A dashed border without /D still draws the default dash.

@embedpdf/engine-services@3.0.0-next.22

Minor Changes

  • #973 by @bobsingor – An update with a sibling subtype writes the annotation as its new kind: its /Subtype, its fields as the new kind's, and an appearance drawn as one. Undo puts the old kind back, also when the annotation changed since.

  • #978 by @bobsingor – A markup annotation's comment reads and writes as rich text: richText reads its /RC (null without one) and a write sets /RC and /Contents together, as Acrobat writes a note's, without touching its appearance. Writing contents alone on a formatted comment rewrites its /RC too, so other PDF apps no longer show the old text. A comment body that names no font reads as Helvetica, and is written back naming none. A redaction's overlay font is read from its /DA alone, so a comment in another font no longer changes it.

  • #971 by @bobsingor – color: null on a square, circle, polygon, polyline, line or ink is written as /C [], the empty color ISO 32000 defines as no color. A shape whose /C is empty or left out reads color: null, where it read red before.

@embedpdf/angular@3.0.0-next.22

Minor Changes

  • #980 by @bobsingor – New <epdf-snapshot-layer> in /render: the snapshot tool's box on each page, in the snapshot.box colors. New <epdf-snapshot-menu>: your UI by the snapshot, once it's taken. EpdfRender has canSnapshot(), getSnapshot(), clearSnapshot() and snapshotChanged$. copyImage comes from /runtime, beside saveFile.

@embedpdf/react@3.0.0-next.22

Minor Changes

  • #980 by @bobsingor – New <SnapshotLayer> in /render: the snapshot tool's box on each page, in the snapshot.box colors. New <SnapshotMenu>: your UI by the snapshot, once it's taken. New useSnapshot(): the snapshot the tool holds, or null. copyImage comes from /runtime, beside saveFile.

@embedpdf/svelte@3.0.0-next.22

Minor Changes

  • #980 by @bobsingor – New <SnapshotLayer> in /render: the snapshot tool's box on each page, in the snapshot.box colors. New <SnapshotMenu>: your UI by the snapshot, once it's taken. New useSnapshot(): the snapshot the tool holds, or null. copyImage comes from /runtime, beside saveFile.

@embedpdf/vue@3.0.0-next.22

Minor Changes

  • #980 by @bobsingor – New <SnapshotLayer> in /render: the snapshot tool's box on each page, in the snapshot.box colors. New <SnapshotMenu>: your UI by the snapshot, once it's taken. New useSnapshot(): the snapshot the tool holds, or null. copyImage comes from /runtime, beside saveFile.

@embedpdf/web@3.0.0-next.22

Minor Changes

  • #975 by @bobsingor – The rich text editor keeps up with fast typing: an update that brings back text the editor already reported is late, not a change, so it no longer undoes the keystrokes typed after it. RichTextEditorHost.onInput may return the document the host keeps (text typed at the caret in a style chosen there), which the editor shows at once, and TextBoxEditorAnnotation.draftRichText returns it. A format shortcut reports the selection as it is before the command runs, and the caret is reported once an input method composition ends instead of while it moves through it.

  • #971 by @bobsingor – A scene paint's hairline draws a stroke one pixel wide at any zoom: a line, polyline or ink at width 0, as the engine and Acrobat draw it.

  • #980 by @bobsingor – New copyImage(image): copies a picture to the clipboard as PNG, starting the write at once, so it works in a click before the picture is there (Safari copies only then). New snapshotBoxPaint and SNAPSHOT_BOX_DASH, the look of the snapshot tool's box, with the --epdf-snapshot-box-fill and --epdf-snapshot-box-stroke variables. standardCommandsBrowser has copyImage, and its saveFile takes the content type.

@embedpdf/plugin-annotation@3.0.0-next.22

Minor Changes

  • #973 by @bobsingor – selection.update({ subtype }) changes each selected annotation that can become that kind, as the same annotation, and the rest keep theirs. selection.getProperties() leads with a subtype choice when the selection's kinds are siblings that can change kind (not a replacement's strikeout), offering the kinds people may change by hand.

  • #975 by @bobsingor – The caret works as in a word processor. With a caret in a text box, selection.getProperties() reports the text typed next: the style of the text before the caret (at the start of a line, the text after it). text.toggleFormat() and a font, size or color from selection.update() at a caret style the text typed next, without writing anything, and moving the caret drops that style. A selected box reads all of its text, so bold shows only when every word is bold, and a change styles all of it, a word with its own style included. text.toggleFormat() turns a format on unless all of the text already has it, so words that disagree all take it. A box restyled while it is already drawn live now draws in its new font at once, not in the font answer for its old style.

  • #971 by @bobsingor – A shape or line tool's defaults may set color: null, so the tool draws without a stroke.

Patch Changes

  • #974 by @bobsingor – A free text box restyled after it was typed in is drawn in its new font at once: the fonts the engine answered for its old font no longer draw its body while its other runs follow the new one. An answer holds for the faces it was asked about; a box whose faces change is asked again, and typing keeps the answer.

@embedpdf/plugin-commands@3.0.0-next.22

Minor Changes

  • #980 by @bobsingor – New standard commands: tool:snapshot, not allowed without doc.content.copy (commands.notAllowed.doc-content-copy); snapshot:copy (Mod+C), snapshot:save (a PNG named after the document and the page) and snapshot:clear (Escape), each enabled while there is a snapshot. StandardCommandsPlatform has copyImage(image), and saveFile takes the file's content type. Commands that share a key take turns: a key runs the one that can run now, wherever it is in the list, so Escape lets a snapshot go even though cancelling a drawing has Escape too.

@embedpdf/plugin-i18n@3.0.0-next.22

Minor Changes

  • #980 by @bobsingor – Labels for the snapshot tool and its commands (commands.tool.snapshot, commands.snapshot.copy, .save, .clear) in every language.

@embedpdf/plugin-render@3.0.0-next.22

Minor Changes

  • #980 by @bobsingor – renderPage renders part of a page: rect, in page space, cut at the page's edge (one that misses the page is invalid-input), sized by width or scale. rotation turns the picture. Either one renders for its caller alone, outside the layers' cache. New snapshot tool, added when the interaction plugin is there: drag a box on a page, or click for the whole page, and the box is held as the snapshot, { page, rect, image }, its picture a PNG at snapshot.scale (default 2) pixels per point, turned as the page is shown, made smaller to fit 16 million pixels or the deployment's budget, and rendered once every change made before it is in. New canSnapshot() (doc.render and doc.content.copy), getSnapshot(), clearSnapshot(), onSnapshotChanged, the snapshot settings (scale, box.fill, box.stroke) and, on the host lens, getSnapshotBox(page).

@embedpdf/viewer-chrome@3.0.0-next.22

Minor Changes

  • #973 by @bobsingor – The style panel has a Type row for a selected highlight, underline, squiggly line or strikethrough, and for a square or circle: one button per kind it can become, each with its tool's icon. Picking one changes the annotation's kind in place, with its comment and replies. The annotation.style.kind label is translated into every viewer language.

  • #971 by @bobsingor – The style panel offers no color for a shape's or line's stroke and for a form field's border, as it does for fills.

  • #980 by @bobsingor – Take a Snapshot, in the document menu: drag a box over a page, or click a page for all of it, and a bar under the box copies the picture (Ctrl/Cmd+C) or saves it as a PNG; Escape lets it go. New commands tool:snapshot, snapshot:copy, snapshot:save and snapshot:clear, the snapshot bar, and the snapshots feature for disable. A PDF that forbids copying has no Take a Snapshot. In all fifteen languages.

Patch Changes

  • #970 by @bobsingor – The style panel's font picker offers only the fonts new text can be written in. A document font that can't be chosen (one the PDF holds only the characters of, a Type 3 font, one licensed for viewing only) is no longer listed greyed; the box that has it still shows it as its font, with why it can't be chosen for another box.

@embedpdf/plugin-fonts@3.0.0-next.22

Patch Changes

  • #974 by @bobsingor – A font's CSS and a box's paint fonts end their fallbacks with the standard font that stands in for the font, as the engine writes them: Latin a font lacks (Noto Sans Hebrew has none) shows in Helvetica, in the same weight, never as boxes.

@cloudpdf/engine@3.0.0-next.22

@cloudpdf/web@3.0.0-next.22

@cloudpdf/plugin-protected-display@3.0.0-next.22

@cloudpdf/viewer-angular@3.0.0-next.22

@cloudpdf/viewer@3.0.0-next.22

@cloudpdf/viewer-react@3.0.0-next.22

@cloudpdf/viewer-svelte@3.0.0-next.22

@cloudpdf/viewer-vue@3.0.0-next.22

@embedpdf/core-acrojs@3.0.0-next.22

@embedpdf/core-form@3.0.0-next.22

@embedpdf/core-geometry@3.0.0-next.22

@embedpdf/core-js-sandbox@3.0.0-next.22

@embedpdf/core@3.0.0-next.22

@embedpdf/core-signature@3.0.0-next.22

@embedpdf/core-stage@3.0.0-next.22

@embedpdf/core-text@3.0.0-next.22

@embedpdf/engine-runtime-darwin-arm64@3.0.0-next.22

@embedpdf/engine-runtime-darwin-x64@3.0.0-next.22

@embedpdf/engine-runtime-linux-arm64@3.0.0-next.22

@embedpdf/engine-runtime-linux-x64@3.0.0-next.22

@embedpdf/engine-runtime-linuxmusl-arm64@3.0.0-next.22

@embedpdf/engine-runtime-linuxmusl-x64@3.0.0-next.22

@embedpdf/engine-runtime-wasm32@3.0.0-next.22

@embedpdf/engine-runtime-win32-arm64@3.0.0-next.22

@embedpdf/engine-runtime-win32-x64@3.0.0-next.22

@embedpdf/plugin-actions@3.0.0-next.22

@embedpdf/plugin-attachment@3.0.0-next.22

@embedpdf/plugin-form@3.0.0-next.22

@embedpdf/plugin-history@3.0.0-next.22

@embedpdf/plugin-interaction@3.0.0-next.22

@embedpdf/plugin-link@3.0.0-next.22

@embedpdf/plugin-measurement@3.0.0-next.22

@embedpdf/plugin-metadata@3.0.0-next.22

@embedpdf/plugin-outline@3.0.0-next.22

@embedpdf/plugin-page-edit@3.0.0-next.22

@embedpdf/plugin-redaction@3.0.0-next.22

@embedpdf/plugin-search@3.0.0-next.22

@embedpdf/plugin-selection@3.0.0-next.22

@embedpdf/plugin-shell@3.0.0-next.22

@embedpdf/plugin-signature@3.0.0-next.22

@embedpdf/plugin-stage@3.0.0-next.22

@embedpdf/plugin-stamp@3.0.0-next.22

@embedpdf/plugin-view-manager@3.0.0-next.22

@embedpdf/viewer-angular@3.0.0-next.22

@embedpdf/viewer@3.0.0-next.22

@embedpdf/viewer-react@3.0.0-next.22

@embedpdf/viewer-svelte@3.0.0-next.22

@embedpdf/viewer-vue@3.0.0-next.22

@vercel

vercel Bot commented Nov 3, 2026 •

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated
cloudpdf-com Canceled Canceled Nov 4, 2026 11:06pm UTC
embed-pdf-snippet Error Error Nov 4, 2026 11:06pm UTC
embed-pdf-viewer-react-mui Error Error Nov 4, 2026 11:06pm UTC
embed-pdf-viewer-svelte-tailwind Error Error Nov 4, 2026 11:06pm UTC
embed-pdf-viewer-vue-vuetify Error Error Nov 4, 2026 11:06pm UTC
embed-pdf-website Canceled Canceled Nov 4, 2026 11:06pm UTC

Request Review

@github-actions
github-actions Bot force-pushed the changeset-release/main branch from a73ad39 to dfe2806 Compare November 3, 2026 19:43
@github-actions
github-actions Bot force-pushed the changeset-release/main branch from dfe2806 to f7fc8d5 Compare November 3, 2026 23:22
@github-actions
github-actions Bot force-pushed the changeset-release/main branch from f7fc8d5 to b8d861e Compare November 4, 2026 00:42
@github-actions
github-actions Bot force-pushed the changeset-release/main branch from b8d861e to 6cfc325 Compare November 4, 2026 00:55
@github-actions
github-actions Bot force-pushed the changeset-release/main branch from 6cfc325 to 83a3bf1 Compare November 4, 2026 01:06
@github-actions
github-actions Bot force-pushed the changeset-release/main branch from 83a3bf1 to 5c07049 Compare November 4, 2026 01:34
@github-actions
github-actions Bot force-pushed the changeset-release/main branch from 5c07049 to a82f2a8 Compare November 4, 2026 10:59
@github-actions
github-actions Bot force-pushed the changeset-release/main branch from a82f2a8 to 14d836e Compare November 4, 2026 12:49

This branch had an error being deployed

4 failed and 2 inactive deployments
Preview – cloudpdf-com — 7031a79e Deployed Nov 4, 2026 by vercel[bot]
Preview – embed-pdf-website — 7031a79e Deployed Nov 4, 2026 by vercel[bot]
Preview – embed-pdf-viewer-react-mui — 7031a79e Deployed Nov 4, 2026 by vercel[bot]
Preview – embed-pdf-viewer-vue-vuetify — 7031a79e Deployed Nov 4, 2026 by vercel[bot]
Preview – embed-pdf-snippet — 7031a79e Deployed Nov 4, 2026 by vercel[bot]
Preview – embed-pdf-viewer-svelte-tailwind — 7031a79e Deployed Nov 4, 2026 by vercel[bot]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant