Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
48 changes: 48 additions & 0 deletions .changeset/pre.json
Original file line number Diff line number Diff line change
Expand Up @@ -166,6 +166,13 @@
"annotation-key-plugin-annotation",
"annotation-key-react",
"annotation-key-viewer",
"annotation-kind-change-core-annotation",
"annotation-kind-change-engine-core",
"annotation-kind-change-engine-runtime",
"annotation-kind-change-engine-services",
"annotation-kind-change-engine",
"annotation-kind-change-plugin-annotation",
"annotation-kind-change-viewer-chrome",
"annotations-cloudpdf-server",
"annotations-core-annotation",
"annotations-engine-core",
Expand Down Expand Up @@ -250,6 +257,9 @@
"caret-rotation-engine-services",
"caret-rotation-plugin-annotation",
"caret-rotation-react",
"caret-typing-style-core-annotation",
"caret-typing-style-plugin-annotation",
"caret-typing-style-web",
"change-queue-core",
"change-queue-engine-core",
"changes-and-undo-cloudpdf-contract",
Expand Down Expand Up @@ -544,6 +554,7 @@
"folder-recursive-delete-cloudpdf-contract",
"folder-recursive-delete-cloudpdf-sdk",
"folder-recursive-delete-cloudpdf-server",
"font-picker-choosable-viewer-chrome",
"fonts-docs-angular",
"fonts-docs-cloudpdf-contract",
"fonts-docs-cloudpdf-sdk",
Expand Down Expand Up @@ -750,6 +761,8 @@
"initial-embedpdf-viewer-react",
"initial-embedpdf-viewer",
"initial-embedpdf-web",
"ink-curves-core-annotation",
"ink-curves-engine-runtime",
"insert-form-fields-engine-core",
"insert-form-fields-engine-runtime",
"insert-form-fields-engine-services",
Expand All @@ -762,6 +775,9 @@
"interaction-shell-viewer-chrome",
"interaction-shell-web",
"invisible-flag-core-annotation",
"iso-dashes-cloudpdf-contract",
"iso-dashes-engine-core",
"iso-dashes-engine-runtime",
"k10-copy-angular",
"k10-copy-react",
"k10-copy-svelte",
Expand All @@ -785,6 +801,10 @@
"kernel-guarantees-stamp",
"kernel-guarantees-view-manager",
"keygen-expiring-cloudpdf-server",
"latin-fallback-core-fonts",
"latin-fallback-engine-core",
"latin-fallback-engine-runtime",
"latin-fallback-plugin-fonts",
"layer-delete-cloudpdf-contract",
"layer-delete-cloudpdf-server",
"layer-delete-core",
Expand All @@ -804,6 +824,10 @@
"legible-editors-vue",
"legible-editors-web",
"linear-base64-engine-core",
"markup-rich-text-cloudpdf-contract",
"markup-rich-text-cloudpdf-sdk",
"markup-rich-text-engine-core",
"markup-rich-text-engine-services",
"marquee-zoom-angular",
"marquee-zoom-plugin-commands",
"marquee-zoom-plugin-i18n",
Expand All @@ -829,13 +853,26 @@
"measurements-react",
"measurements-viewer-chrome",
"measurements-viewer",
"module-manifests-cloudpdf-contract",
"module-manifests-cloudpdf-sdk",
"module-manifests-cloudpdf-server-modules",
"module-manifests-cloudpdf-server",
"multipart-envelope-cloud-engine",
"multipart-envelope-cloud-server",
"multipart-envelope-cloudpdf-contract",
"multipart-envelope-cloudpdf-sdk",
"multipart-envelope-engine-core",
"multipart-envelope-engine-services",
"multipart-envelope-engine",
"no-stroke-cloudpdf-contract",
"no-stroke-cloudpdf-sdk",
"no-stroke-core-annotation",
"no-stroke-engine-core",
"no-stroke-engine-runtime",
"no-stroke-engine-services",
"no-stroke-plugin-annotation",
"no-stroke-viewer-chrome",
"no-stroke-web",
"nozoom-deep-zoom-core-annotation",
"one-viewer-cloudpdf-engine",
"one-viewer-cloudpdf-viewer-angular",
Expand Down Expand Up @@ -1212,8 +1249,19 @@
"signatures-plugin-stamp",
"signatures-viewer-chrome",
"signatures-viewer",
"snapshot-tool-angular",
"snapshot-tool-core-ui",
"snapshot-tool-plugin-commands",
"snapshot-tool-plugin-i18n",
"snapshot-tool-plugin-render",
"snapshot-tool-react",
"snapshot-tool-svelte",
"snapshot-tool-viewer-chrome",
"snapshot-tool-vue",
"snapshot-tool-web",
"stage-instance-owns-frames",
"stage-same-size-viewport",
"stale-font-answer-plugin-annotation",
"stamp-libraries-cloudpdf-viewer",
"stamp-libraries-default-stamps",
"stamp-libraries-plugin-annotation",
Expand Down
16 changes: 16 additions & 0 deletions cloudpdf/contract/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,21 @@
# @cloudpdf/contract

## 3.0.0-next.22

### Minor Changes

- [#978](https://github.com/embedpdf/embed-pdf-viewer/pull/978) by [@bobsingor](https://github.com/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](https://github.com/embedpdf/embed-pdf-viewer/pull/967) by [@bobsingor](https://github.com/bobsingor) – `deployment.modules` (`GET /v1/deployment/modules`, API token) lists the installed server modules: `ModuleManifest` with its `ModulePermission`s and `ModuleMeter`s, 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](https://github.com/embedpdf/embed-pdf-viewer/pull/971) by [@bobsingor](https://github.com/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](https://github.com/embedpdf/embed-pdf-viewer/pull/972) by [@bobsingor](https://github.com/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.

## 3.0.0-next.21

### Minor Changes
Expand Down
2 changes: 1 addition & 1 deletion cloudpdf/contract/openapi.json
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
"openapi": "3.1.0",
"info": {
"title": "CloudPDF Engine API",
"version": "3.0.0-next.21",
"version": "3.0.0-next.22",
"description": "The backend-callable surface of the CloudPDF document engine: deployment and tenant administration plus the document operations (reads, annotations, forms, page operations, redaction, download). Interactive viewing goes through the CloudPDF viewer SDKs, whose session protocol is deliberately not part of this API. Generated from the @cloudpdf/contract operation registry — do not edit by hand.",
"license": {
"name": "Apache-2.0",
Expand Down
2 changes: 1 addition & 1 deletion cloudpdf/contract/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@cloudpdf/contract",
"version": "3.0.0-next.21",
"version": "3.0.0-next.22",
"private": false,
"description": "The CloudPDF engine contract: operation registry, Zod schemas, and OpenAPI emitter for every backend-callable surface — used by @cloudpdf/server and the generated @cloudpdf/sdk, and the source of the committed openapi.json.",
"type": "module",
Expand Down
2 changes: 2 additions & 0 deletions cloudpdf/engine/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
# @cloudpdf/engine

## 3.0.0-next.22

## 3.0.0-next.21

## 3.0.0-next.20
Expand Down
2 changes: 1 addition & 1 deletion cloudpdf/engine/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@cloudpdf/engine",
"version": "3.0.0-next.21",
"version": "3.0.0-next.22",
"private": false,
"description": "CloudPDF engine: the cloud client that speaks the Engine v3 interface over HTTPS to a @cloudpdf/server deployment (or CloudPDF SaaS). Same AbortablePromise-based, EngineError-coded contract as the local engine.",
"type": "module",
Expand Down
2 changes: 2 additions & 0 deletions cloudpdf/framework/web/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
# @cloudpdf/web

## 3.0.0-next.22

## 3.0.0-next.21

## 3.0.0-next.20
Expand Down
2 changes: 1 addition & 1 deletion cloudpdf/framework/web/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@cloudpdf/web",
"version": "3.0.0-next.21",
"version": "3.0.0-next.22",
"private": false,
"description": "Framework-free browser code for CloudPDF's plugins: the one home in the CloudPDF tree for code that touches the DOM, as @embedpdf/web is for EmbedPDF's. Today the protected display player: Encrypted Media Extensions and Media Source behind @cloudpdf/plugin-protected-display's player port. Never imported by a plugin, which stays DOM-free.",
"type": "module",
Expand Down
2 changes: 2 additions & 0 deletions cloudpdf/plugin/protected-display/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
# @cloudpdf/plugin-protected-display

## 3.0.0-next.22

## 3.0.0-next.21

## 3.0.0-next.20
Expand Down
2 changes: 1 addition & 1 deletion cloudpdf/plugin/protected-display/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@cloudpdf/plugin-protected-display",
"version": "3.0.0-next.21",
"version": "3.0.0-next.22",
"private": false,
"description": "Screenshot protection for the CloudPDF viewer: for a user who may read a document but not render its pages, it shows them as DRM-protected video frames from the protected display server module, so screenshots, recordings and shared screens show them black. DOM-free: the host gives the player (browserProtectedPlayer() from @cloudpdf/web in a browser), loaded only for a protected user.",
"type": "module",
Expand Down
4 changes: 2 additions & 2 deletions cloudpdf/sdk/.fern/metadata.json
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,6 @@
},
"originGitCommit": null,
"originGitCommitIsDirty": null,
"requestedVersion": "3.0.0-next.21",
"sdkVersion": "3.0.0-next.21"
"requestedVersion": "3.0.0-next.22",
"sdkVersion": "3.0.0-next.22"
}
12 changes: 12 additions & 0 deletions cloudpdf/sdk/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,17 @@
# @cloudpdf/sdk

## 3.0.0-next.22

### Minor Changes

- [#978](https://github.com/embedpdf/embed-pdf-viewer/pull/978) by [@bobsingor](https://github.com/bobsingor) – Annotations, drafts and patches of every markup kind have `richText`, the
comment with formatting (`RichTextDocument`, `RichTextDocumentInput`), or
`null` for a plain comment.

- [#967](https://github.com/embedpdf/embed-pdf-viewer/pull/967) by [@bobsingor](https://github.com/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](https://github.com/embedpdf/embed-pdf-viewer/pull/971) by [@bobsingor](https://github.com/bobsingor) – A square, circle, polygon, polyline, line or ink annotation's `color` may be `null`: no stroke.

## 3.0.0-next.21

### Minor Changes
Expand Down
6 changes: 3 additions & 3 deletions cloudpdf/sdk/cloudpdf-generation.json
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
{
"language": "typescript",
"canonicalVersion": "3.0.0-next.21",
"sdkVersion": "3.0.0-next.21",
"canonicalVersion": "3.0.0-next.22",
"sdkVersion": "3.0.0-next.22",
"source": {
"repository": "embedpdf/embed-pdf-viewer",
"openapi": "cloudpdf/contract/openapi.json",
"openapiSha256": "0fdd648c67c12f3314507bbe4809584c55486f9b11f414155fcdd4f33bc7e1ab",
"openapiSha256": "1f5aa976eec4d5fc4e2b22efe725df58a01389896733ec1870f96a6441b62859",
"gitCommit": null,
"gitCommitIsDirty": null
},
Expand Down
2 changes: 1 addition & 1 deletion cloudpdf/sdk/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@cloudpdf/sdk",
"version": "3.0.0-next.21",
"version": "3.0.0-next.22",
"private": false,
"license": "Apache-2.0",
"type": "commonjs",
Expand Down
4 changes: 2 additions & 2 deletions cloudpdf/sdk/src/BaseClient.ts
Original file line number Diff line number Diff line change
Expand Up @@ -65,8 +65,8 @@ export function normalizeClientOptions<T extends BaseClientOptions = BaseClientO
{
"X-Fern-Language": "JavaScript",
"X-Fern-SDK-Name": "@cloudpdf/sdk",
"X-Fern-SDK-Version": "3.0.0-next.21",
"User-Agent": "@cloudpdf/sdk/3.0.0-next.21",
"X-Fern-SDK-Version": "3.0.0-next.22",
"User-Agent": "@cloudpdf/sdk/3.0.0-next.22",
"X-Fern-Runtime": core.RUNTIME.type,
"X-Fern-Runtime-Version": core.RUNTIME.version,
},
Expand Down
2 changes: 1 addition & 1 deletion cloudpdf/sdk/src/version.ts
Original file line number Diff line number Diff line change
@@ -1 +1 @@
export const SDK_VERSION = "3.0.0-next.21";
export const SDK_VERSION = "3.0.0-next.22";
6 changes: 6 additions & 0 deletions cloudpdf/server-modules/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,11 @@
# @cloudpdf/server-modules

## 3.0.0-next.22

### Minor Changes

- [#967](https://github.com/embedpdf/embed-pdf-viewer/pull/967) by [@bobsingor](https://github.com/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`.

## 3.0.0-next.21

### Minor Changes
Expand Down
2 changes: 1 addition & 1 deletion cloudpdf/server-modules/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@cloudpdf/server-modules",
"version": "3.0.0-next.21",
"version": "3.0.0-next.22",
"private": false,
"description": "Write CloudPDF server modules: packages that run inside @cloudpdf/server with their own routes and permissions, and reach documents through the engine's document API, as the caller and as themselves.",
"type": "module",
Expand Down
6 changes: 6 additions & 0 deletions cloudpdf/server/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,11 @@
# @cloudpdf/server

## 3.0.0-next.22

### Minor Changes

- [#967](https://github.com/embedpdf/embed-pdf-viewer/pull/967) by [@bobsingor](https://github.com/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.

## 3.0.0-next.21

### Minor Changes
Expand Down
2 changes: 1 addition & 1 deletion cloudpdf/server/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@cloudpdf/server",
"version": "3.0.0-next.21",
"version": "3.0.0-next.22",
"private": false,
"description": "Self-hostable CloudPDF document engine server: Fastify-based HTTP/REST API in front of a Node worker_thread pool running the native EmbedPDF Runtime (PDFium fork) via @embedpdf/engine-runtime. Uses the same engine-services code as the local browser engine.",
"type": "module",
Expand Down
2 changes: 2 additions & 0 deletions cloudpdf/viewer/angular/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
# @cloudpdf/viewer-angular

## 3.0.0-next.22

## 3.0.0-next.21

## 3.0.0-next.20
Expand Down
2 changes: 1 addition & 1 deletion cloudpdf/viewer/angular/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@cloudpdf/viewer-angular",
"version": "3.0.0-next.21",
"version": "3.0.0-next.22",
"private": false,
"description": "The full viewer as an Angular component with the CloudPDF engine as its default: the same <epdf-pdf-viewer> as @embedpdf/viewer-angular, rendering on CloudPDF SaaS or your own @cloudpdf/server over HTTPS, the local engine loaded only when stamps need it.",
"type": "module",
Expand Down
2 changes: 2 additions & 0 deletions cloudpdf/viewer/main/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
# @cloudpdf/viewer

## 3.0.0-next.22

## 3.0.0-next.21

## 3.0.0-next.20
Expand Down
2 changes: 1 addition & 1 deletion cloudpdf/viewer/main/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@cloudpdf/viewer",
"version": "3.0.0-next.21",
"version": "3.0.0-next.22",
"private": false,
"description": "The open-source EmbedPDF viewer with the CloudPDF engine as its default: <embedpdf-viewer>, init() and every framework wrapper's names, pages rendered on CloudPDF SaaS or your own @cloudpdf/server, the local engine loaded only when stamps need it. dist/cloudpdf.js is the same door for a script tag.",
"type": "module",
Expand Down
2 changes: 2 additions & 0 deletions cloudpdf/viewer/react/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
# @cloudpdf/viewer-react

## 3.0.0-next.22

## 3.0.0-next.21

## 3.0.0-next.20
Expand Down
2 changes: 1 addition & 1 deletion cloudpdf/viewer/react/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@cloudpdf/viewer-react",
"version": "3.0.0-next.21",
"version": "3.0.0-next.22",
"private": false,
"description": "The full viewer as a React component with the CloudPDF engine as its default: the same <PDFViewer> as @embedpdf/viewer-react, rendering on CloudPDF SaaS or your own @cloudpdf/server over HTTPS, the local engine loaded only when stamps need it.",
"type": "module",
Expand Down
2 changes: 2 additions & 0 deletions cloudpdf/viewer/svelte/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
# @cloudpdf/viewer-svelte

## 3.0.0-next.22

## 3.0.0-next.21

## 3.0.0-next.20
Expand Down
2 changes: 1 addition & 1 deletion cloudpdf/viewer/svelte/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@cloudpdf/viewer-svelte",
"version": "3.0.0-next.21",
"version": "3.0.0-next.22",
"private": false,
"description": "The full viewer as a Svelte component with the CloudPDF engine as its default: the same <PDFViewer> as @embedpdf/viewer-svelte, rendering on CloudPDF SaaS or your own @cloudpdf/server over HTTPS, the local engine loaded only when stamps need it.",
"type": "module",
Expand Down
2 changes: 2 additions & 0 deletions cloudpdf/viewer/vue/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
# @cloudpdf/viewer-vue

## 3.0.0-next.22

## 3.0.0-next.21

## 3.0.0-next.20
Expand Down
2 changes: 1 addition & 1 deletion cloudpdf/viewer/vue/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@cloudpdf/viewer-vue",
"version": "3.0.0-next.21",
"version": "3.0.0-next.22",
"private": false,
"description": "The full viewer as a Vue component with the CloudPDF engine as its default: the same <PDFViewer> as @embedpdf/viewer-vue, rendering on CloudPDF SaaS or your own @cloudpdf/server over HTTPS, the local engine loaded only when stamps need it.",
"type": "module",
Expand Down
Loading
Loading