@embedpdf/engine-core 3.0.0-next.13 → 3.0.0-next.15

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (135) hide show
  1. package/dist/AnnotationList-CkijRHet.d.cts +27163 -0
  2. package/dist/AnnotationList-CkijRHet.d.ts +27163 -0
  3. package/dist/Change-CKoxfTNY.js +889 -0
  4. package/dist/Change-CKoxfTNY.js.map +1 -0
  5. package/dist/Change-CjImsrN0.cjs +1020 -0
  6. package/dist/Change-CjImsrN0.cjs.map +1 -0
  7. package/dist/DocumentRenderService-BfFdFSwI.cjs +120 -0
  8. package/dist/DocumentRenderService-BfFdFSwI.cjs.map +1 -0
  9. package/dist/DocumentRenderService-DV3J9lMz.js +85 -0
  10. package/dist/DocumentRenderService-DV3J9lMz.js.map +1 -0
  11. package/dist/{DocumentSecurityService-_JRjqvoI.d.ts → DocumentSecurityService-CU1M6Q7m.d.ts} +100 -112
  12. package/dist/{DocumentSecurityService-ClTZc0zO.d.cts → DocumentSecurityService-e6vp2de8.d.cts} +100 -112
  13. package/dist/LocalDocumentHandle-D02FMm-Z.cjs +53 -0
  14. package/dist/LocalDocumentHandle-D02FMm-Z.cjs.map +1 -0
  15. package/dist/LocalDocumentHandle-DAPdaOt_.js +30 -0
  16. package/dist/LocalDocumentHandle-DAPdaOt_.js.map +1 -0
  17. package/dist/LocalEngine-DFoBm4B3.d.cts +1565 -0
  18. package/dist/LocalEngine-DPriFujS.d.ts +1565 -0
  19. package/dist/PageInsertBlankInput-CXHAM7l6.cjs +17 -0
  20. package/dist/PageInsertBlankInput-CXHAM7l6.cjs.map +1 -0
  21. package/dist/PageInsertBlankInput-DhVYVJ_S.js +12 -0
  22. package/dist/PageInsertBlankInput-DhVYVJ_S.js.map +1 -0
  23. package/dist/authority-B3BklsB4.js +2239 -0
  24. package/dist/authority-B3BklsB4.js.map +1 -0
  25. package/dist/authority-DLMNR7ff.cjs +2676 -0
  26. package/dist/authority-DLMNR7ff.cjs.map +1 -0
  27. package/dist/builders-CNj0POeY.js +161 -0
  28. package/dist/builders-CNj0POeY.js.map +1 -0
  29. package/dist/builders-Cgdp_YCn.cjs +184 -0
  30. package/dist/builders-Cgdp_YCn.cjs.map +1 -0
  31. package/dist/calibrate-7T3fnP8-.js +2404 -0
  32. package/dist/calibrate-7T3fnP8-.js.map +1 -0
  33. package/dist/calibrate-DJBXnhLE.cjs +2919 -0
  34. package/dist/calibrate-DJBXnhLE.cjs.map +1 -0
  35. package/dist/charmap-Cprti1ta.js +239 -0
  36. package/dist/charmap-Cprti1ta.js.map +1 -0
  37. package/dist/charmap-aYlefQP9.cjs +304 -0
  38. package/dist/charmap-aYlefQP9.cjs.map +1 -0
  39. package/dist/conformance.cjs +16753 -5247
  40. package/dist/conformance.cjs.map +1 -1
  41. package/dist/conformance.d.cts +928 -165
  42. package/dist/conformance.d.ts +928 -165
  43. package/dist/conformance.js +16731 -5268
  44. package/dist/conformance.js.map +1 -1
  45. package/dist/format-Bp3QFSH1.cjs +574 -0
  46. package/dist/format-Bp3QFSH1.cjs.map +1 -0
  47. package/dist/format-Dgg428Kb.js +461 -0
  48. package/dist/format-Dgg428Kb.js.map +1 -0
  49. package/dist/index.cjs +330 -103
  50. package/dist/index.d.cts +2 -2
  51. package/dist/index.d.ts +2 -2
  52. package/dist/index.js +14 -5
  53. package/dist/pageRefs-B3ur7Ckm.cjs +51 -0
  54. package/dist/pageRefs-B3ur7Ckm.cjs.map +1 -0
  55. package/dist/pageRefs-DkbuxSCV.js +40 -0
  56. package/dist/pageRefs-DkbuxSCV.js.map +1 -0
  57. package/dist/public.cjs +57 -0
  58. package/dist/public.d.cts +5 -0
  59. package/dist/public.d.ts +5 -0
  60. package/dist/public.js +9 -0
  61. package/dist/resolveAnnotationDraft-7Ke4nV7F.cjs +3646 -0
  62. package/dist/resolveAnnotationDraft-7Ke4nV7F.cjs.map +1 -0
  63. package/dist/resolveAnnotationDraft-CUpf0SMh.js +3167 -0
  64. package/dist/resolveAnnotationDraft-CUpf0SMh.js.map +1 -0
  65. package/dist/{resolver-inAVzsWt.js → resolver-CzxmD9Ck.js} +294 -144
  66. package/dist/resolver-CzxmD9Ck.js.map +1 -0
  67. package/dist/{resolver-CYVNV4hn.cjs → resolver-D2OCtE8F.cjs} +347 -143
  68. package/dist/resolver-D2OCtE8F.cjs.map +1 -0
  69. package/dist/runtime-Cl0v56mm.d.ts +2032 -0
  70. package/dist/runtime-p1WDzDo4.d.cts +2032 -0
  71. package/dist/runtime.cjs +733 -284
  72. package/dist/runtime.cjs.map +1 -1
  73. package/dist/runtime.d.cts +5 -1348
  74. package/dist/runtime.d.ts +5 -1348
  75. package/dist/runtime.js +396 -179
  76. package/dist/runtime.js.map +1 -1
  77. package/dist/schema-C-gU4vj7.cjs +3034 -0
  78. package/dist/schema-C-gU4vj7.cjs.map +1 -0
  79. package/dist/schema-DzlUNk38.js +2081 -0
  80. package/dist/schema-DzlUNk38.js.map +1 -0
  81. package/dist/schemas-Berf1swF.cjs +2481 -0
  82. package/dist/schemas-Berf1swF.cjs.map +1 -0
  83. package/dist/schemas-D6xOGjqg.js +1654 -0
  84. package/dist/schemas-D6xOGjqg.js.map +1 -0
  85. package/dist/subtype-CG4WpIRj.js +129 -0
  86. package/dist/subtype-CG4WpIRj.js.map +1 -0
  87. package/dist/subtype-aDt5TFmK.cjs +158 -0
  88. package/dist/subtype-aDt5TFmK.cjs.map +1 -0
  89. package/dist/validation.cjs +578 -0
  90. package/dist/validation.cjs.map +1 -0
  91. package/dist/validation.d.cts +174 -0
  92. package/dist/validation.d.ts +174 -0
  93. package/dist/validation.js +571 -0
  94. package/dist/validation.js.map +1 -0
  95. package/dist/value-BFS1R8ek.cjs +435 -0
  96. package/dist/value-BFS1R8ek.cjs.map +1 -0
  97. package/dist/value-Dhc8eYcx.js +340 -0
  98. package/dist/value-Dhc8eYcx.js.map +1 -0
  99. package/dist/viewport-BJW13EGZ.js +540 -0
  100. package/dist/viewport-BJW13EGZ.js.map +1 -0
  101. package/dist/viewport-DlL5Bxbg.cjs +671 -0
  102. package/dist/viewport-DlL5Bxbg.cjs.map +1 -0
  103. package/dist/wire.cjs +1056 -379
  104. package/dist/wire.cjs.map +1 -1
  105. package/dist/wire.d.cts +15069 -725
  106. package/dist/wire.d.ts +15069 -725
  107. package/dist/wire.js +825 -239
  108. package/dist/wire.js.map +1 -1
  109. package/package.json +10 -1
  110. package/dist/AbortError-Cq2igpZ6.cjs +0 -38
  111. package/dist/AbortError-Cq2igpZ6.cjs.map +0 -1
  112. package/dist/AbortError-DHqPBnYc.js +0 -27
  113. package/dist/AbortError-DHqPBnYc.js.map +0 -1
  114. package/dist/AnnotationListSnapshot-D3mFut1e.d.cts +0 -6871
  115. package/dist/AnnotationListSnapshot-D3mFut1e.d.ts +0 -6871
  116. package/dist/Engine-Bx0NOfmd.d.cts +0 -1264
  117. package/dist/Engine-DxtpCYcP.d.ts +0 -1264
  118. package/dist/PageInsertBlankInput-CqXBmFhN.cjs +0 -449
  119. package/dist/PageInsertBlankInput-CqXBmFhN.cjs.map +0 -1
  120. package/dist/PageInsertBlankInput-cHq9-i-z.js +0 -378
  121. package/dist/PageInsertBlankInput-cHq9-i-z.js.map +0 -1
  122. package/dist/builders-Bqm8yTpi.cjs +0 -3564
  123. package/dist/builders-Bqm8yTpi.cjs.map +0 -1
  124. package/dist/builders-Dqo2X-dt.js +0 -3121
  125. package/dist/builders-Dqo2X-dt.js.map +0 -1
  126. package/dist/fold-2V29cxCV.cjs +0 -447
  127. package/dist/fold-2V29cxCV.cjs.map +0 -1
  128. package/dist/fold-CdEJTBTn.js +0 -334
  129. package/dist/fold-CdEJTBTn.js.map +0 -1
  130. package/dist/resolver-CYVNV4hn.cjs.map +0 -1
  131. package/dist/resolver-inAVzsWt.js.map +0 -1
  132. package/dist/schemas-BLARNCgx.js +0 -3113
  133. package/dist/schemas-BLARNCgx.js.map +0 -1
  134. package/dist/schemas-DIqFMmrC.cjs +0 -4468
  135. package/dist/schemas-DIqFMmrC.cjs.map +0 -1
package/dist/wire.cjs CHANGED
@@ -1,6 +1,9 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
- const require_resolver = require("./resolver-CYVNV4hn.cjs");
3
- const require_schemas = require("./schemas-DIqFMmrC.cjs");
2
+ const require_format = require("./format-Bp3QFSH1.cjs");
3
+ const require_resolver = require("./resolver-D2OCtE8F.cjs");
4
+ const require_charmap = require("./charmap-aYlefQP9.cjs");
5
+ const require_schema = require("./schema-C-gU4vj7.cjs");
6
+ const require_schemas = require("./schemas-Berf1swF.cjs");
4
7
  let zod = require("zod");
5
8
  //#region src/forms/submission.ts
6
9
  const FormSubmissionEntrySchema = zod.z.object({
@@ -30,11 +33,11 @@ const FormSubmissionRequestSchema = zod.z.object({
30
33
  "hover",
31
34
  "lifecycle"
32
35
  ]),
33
- clientTimeMs: zod.z.number().finite()
36
+ sentAt: require_schema.IsoDateTimeSchema
34
37
  });
35
38
  const FormSubmissionReceiptSchema = zod.z.object({
36
39
  submissionId: zod.z.string().min(1),
37
- receivedAt: zod.z.string().min(1)
40
+ receivedAt: require_schema.IsoDateTimeSchema
38
41
  });
39
42
  //#endregion
40
43
  //#region src/wire/token.ts
@@ -115,6 +118,30 @@ const AnnotationTokenSchema = { fields: ["annotationVersion"] };
115
118
  /** Doc-level bulk annotations listing pin (plural, vs the per-page
116
119
  * `annotationVersion` token above). */
117
120
  const AnnotationsAllTokenSchema = { fields: ["annotationsVersion"] };
121
+ /** The form (`form@`): its fields, widget rows and calculation order. */
122
+ const FormTokenSchema = { fields: ["formsVersion"] };
123
+ /**
124
+ * `doc.annotations.export` leaf: the annotation and layout pins (the bundle
125
+ * carries each page's position and box, which only the layout pin covers)
126
+ * and the selection, canonical so one selection is one URL.
127
+ */
128
+ const AnnotationsExportTokenSchema = {
129
+ fields: [
130
+ "annotationsVersion",
131
+ "include",
132
+ "layoutVersion",
133
+ "selection"
134
+ ],
135
+ maxLength: 4096
136
+ };
137
+ const FormExportTokenSchema = {
138
+ fields: [
139
+ "formsVersion",
140
+ "layoutVersion",
141
+ "selection"
142
+ ],
143
+ maxLength: 4096
144
+ };
118
145
  const ActionsTokenSchema = { fields: ["actionsVersion"] };
119
146
  const AttachmentsTokenSchema = { fields: ["attachmentsVersion"] };
120
147
  /**
@@ -141,12 +168,13 @@ const DownloadTokenSchema = {
141
168
  * dotted path here and a matching branch in `PageImageOptionsWireSchema`.
142
169
  * No encoder/decoder code changes.
143
170
  *
144
- * `includeAnnotations` is deliberately NOT a token field: annotatedness
145
- * changes the artifact's plane-dependency
146
- * set, so it is expressed by the path FAMILY (`…/render/pages/` vs
147
- * `…/render/annotated/pages/`), never inside the token. `annotationVersion`
148
- * belongs to the annotated family's tokens only — each family's query
149
- * schema enforces its own pin grammar.
171
+ * What a picture draws (`includeAnnotations`, `includeFormFields`) is not a
172
+ * token field: it's the picture's family, which is its path
173
+ * (`PAGE_RENDER_FAMILIES`). Each family needs its own rights and depends on
174
+ * its own planes, and a CDN grant is a path prefix. The pins are: every
175
+ * family's `contentVersion`, and `annotationVersion` and `widgetVersion` in
176
+ * the families that draw annotations and form fields; each family's query
177
+ * schema refuses the others.
150
178
  */
151
179
  const RenderTokenSchema = {
152
180
  fields: [
@@ -157,13 +185,14 @@ const RenderTokenSchema = {
157
185
  "quality",
158
186
  "rotation",
159
187
  "target.kind",
160
- "target.rect.bottom",
161
- "target.rect.left",
162
- "target.rect.right",
163
- "target.rect.top",
188
+ "target.rect.height",
189
+ "target.rect.width",
190
+ "target.rect.x",
191
+ "target.rect.y",
164
192
  "viewport.kind",
165
193
  "viewport.scale",
166
- "viewport.width"
194
+ "viewport.width",
195
+ "widgetVersion"
167
196
  ],
168
197
  maxLength: 512
169
198
  };
@@ -174,21 +203,22 @@ const RenderTokenSchema = {
174
203
  * charset excludes free text), and the resume position. Canonical by
175
204
  * construction: the codec sorts fields and the encoder omits every
176
205
  * default, so equal searches produce byte-equal tokens — the property CDN
177
- * cache hits live on. Mode is NOT a field; it is the endpoint (separate
206
+ * cache hits live on. Mode is not a field; it is the endpoint (separate
178
207
  * permission tiers must never share cache entries).
179
208
  */
180
209
  const SearchTokenSchema = {
181
210
  fields: [
182
211
  "epoch",
183
212
  "format",
213
+ "from",
214
+ "ignoreWhitespace",
215
+ "limitMatches",
216
+ "limitPages",
184
217
  "matchCase",
185
218
  "matchDiacritics",
186
- "maxMatches",
187
- "maxPages",
188
219
  "q",
189
220
  "regex",
190
221
  "skip",
191
- "startPage",
192
222
  "wholeWord"
193
223
  ],
194
224
  maxLength: 2048
@@ -196,18 +226,40 @@ const SearchTokenSchema = {
196
226
  /**
197
227
  * Token for the batch annotation-appearance render endpoint. Narrower than
198
228
  * the page render token: appearance bitmaps are sized per annotation `/Rect`
199
- * so there is no target/viewport — only a uniform `scale` and page
200
- * `rotation`. Keyed by `annotationVersion` only (appearances do not depend on
201
- * page base content). The cloud endpoint renders the Normal appearance only,
202
- * so `modes` is intentionally absent here (it is a worker/local-only option).
229
+ * so there is no target — only the page's `viewport` and `rotation`. Keyed by
230
+ * `annotationVersion` only (appearances do not depend on page base content).
231
+ * `modes` is present only when a request asks for fewer than every mode, as
232
+ * one value (`normal-down`, in the engine's mode order), so one request for
233
+ * every mode is one URL.
203
234
  */
204
235
  const AnnotationAppearancesRenderTokenSchema = {
205
236
  fields: [
206
237
  "annotationVersion",
207
238
  "format",
239
+ "modes",
240
+ "quality",
241
+ "rotation",
242
+ "viewport.kind",
243
+ "viewport.scale",
244
+ "viewport.width"
245
+ ],
246
+ maxLength: 256
247
+ };
248
+ /**
249
+ * Token for a page's widget images (`form/pages/{p}/appearances@`): the
250
+ * annotation appearance token's options, keyed by the page's
251
+ * `widgetVersion`.
252
+ */
253
+ const WidgetAppearancesRenderTokenSchema = {
254
+ fields: [
255
+ "format",
256
+ "modes",
208
257
  "quality",
209
258
  "rotation",
210
- "scale"
259
+ "viewport.kind",
260
+ "viewport.scale",
261
+ "viewport.width",
262
+ "widgetVersion"
211
263
  ],
212
264
  maxLength: 256
213
265
  };
@@ -265,6 +317,95 @@ const encodeAnnotationToken = (annotationVersion) => encodeToken(AnnotationToken
265
317
  const decodeAnnotationToken = (raw) => decodePositiveInteger(decodeToken(AnnotationTokenSchema, raw).annotationVersion, "annotationVersion");
266
318
  const encodeAnnotationsAllToken = (annotationsVersion) => encodeToken(AnnotationsAllTokenSchema, { annotationsVersion });
267
319
  const decodeAnnotationsAllToken = (raw) => decodePositiveInteger(decodeToken(AnnotationsAllTokenSchema, raw).annotationsVersion, "annotationsVersion");
320
+ const encodeFormToken = (formsVersion) => encodeToken(FormTokenSchema, { formsVersion });
321
+ const decodeFormToken = (raw) => decodePositiveInteger(decodeToken(FormTokenSchema, raw).formsVersion, "formsVersion");
322
+ const encodeAnnotationsExportToken = (token) => {
323
+ const { selection } = token;
324
+ const wire = {};
325
+ if (selection.pages) wire.p = [...new Set(selection.pages.map((page) => page.objectNumber))].sort((left, right) => left - right);
326
+ if (selection.refs) {
327
+ const refs = /* @__PURE__ */ new Map();
328
+ for (const ref of selection.refs) {
329
+ const entry = [ref.page.objectNumber, require_resolver.encodeAnnotKey(ref)];
330
+ refs.set(JSON.stringify(entry), entry);
331
+ }
332
+ wire.r = [...refs.keys()].sort().map((key) => refs.get(key));
333
+ }
334
+ return encodeToken(AnnotationsExportTokenSchema, {
335
+ annotationsVersion: token.annotationsVersion,
336
+ layoutVersion: token.layoutVersion,
337
+ include: selection.include === "references" ? "references" : void 0,
338
+ selection: wire.p || wire.r ? encodeTokenText(JSON.stringify(wire)) : void 0
339
+ });
340
+ };
341
+ const decodeAnnotationsExportToken = (raw) => {
342
+ const query = decodeToken(AnnotationsExportTokenSchema, raw);
343
+ const selection = {};
344
+ if (query.include !== void 0) {
345
+ if (query.include !== "references") throw new Error(`unknown include "${query.include}"`);
346
+ selection.include = "references";
347
+ }
348
+ if (query.selection !== void 0) {
349
+ const wire = JSON.parse(decodeTokenText(query.selection));
350
+ const isNumber = (value) => Number.isInteger(value) && value > 0;
351
+ if (typeof wire !== "object" || wire === null) throw new Error("malformed export selection");
352
+ if (wire.p !== void 0) {
353
+ if (!Array.isArray(wire.p) || !wire.p.every(isNumber)) throw new Error("malformed export pages");
354
+ selection.pages = wire.p.map((pageObjectNumber) => require_format.toPageRef(pageObjectNumber));
355
+ }
356
+ if (wire.r !== void 0) {
357
+ if (!Array.isArray(wire.r)) throw new Error("malformed export refs");
358
+ selection.refs = wire.r.map((entry) => {
359
+ if (!Array.isArray(entry) || entry.length !== 2 || !isNumber(entry[0])) throw new Error("malformed export ref");
360
+ const ref = typeof entry[1] === "string" ? require_resolver.decodeAnnotKey(require_format.toPageRef(entry[0]), entry[1]) : null;
361
+ if (!ref) throw new Error("malformed export ref");
362
+ return ref;
363
+ });
364
+ }
365
+ }
366
+ return {
367
+ annotationsVersion: decodePositiveInteger(query.annotationsVersion, "annotationsVersion"),
368
+ layoutVersion: decodePositiveInteger(query.layoutVersion, "layoutVersion"),
369
+ selection
370
+ };
371
+ };
372
+ const encodeFormExportToken = (token) => {
373
+ const { selection } = token;
374
+ const wire = {};
375
+ if (selection.pages) wire.p = [...new Set(selection.pages.map((page) => page.objectNumber))].sort((left, right) => left - right);
376
+ if (selection.fields) wire.f = [...new Set(selection.fields.map(require_format.encodeFieldRefKey))].sort();
377
+ return encodeToken(FormExportTokenSchema, {
378
+ formsVersion: token.formsVersion,
379
+ layoutVersion: token.layoutVersion,
380
+ selection: wire.p || wire.f ? encodeTokenText(JSON.stringify(wire)) : void 0
381
+ });
382
+ };
383
+ const decodeFormExportToken = (raw) => {
384
+ const query = decodeToken(FormExportTokenSchema, raw);
385
+ const selection = {};
386
+ if (query.selection !== void 0) {
387
+ const wire = JSON.parse(decodeTokenText(query.selection));
388
+ if (typeof wire !== "object" || wire === null) throw new Error("malformed export selection");
389
+ if (wire.p !== void 0) {
390
+ const isNumber = (value) => Number.isInteger(value) && value > 0;
391
+ if (!Array.isArray(wire.p) || !wire.p.every(isNumber)) throw new Error("malformed export pages");
392
+ selection.pages = wire.p.map((pageObjectNumber) => require_format.toPageRef(pageObjectNumber));
393
+ }
394
+ if (wire.f !== void 0) {
395
+ if (!Array.isArray(wire.f)) throw new Error("malformed export fields");
396
+ selection.fields = wire.f.map((key) => {
397
+ const ref = typeof key === "string" ? require_format.decodeFieldRefKey(key) : null;
398
+ if (!ref) throw new Error("malformed export field");
399
+ return ref;
400
+ });
401
+ }
402
+ }
403
+ return {
404
+ formsVersion: decodePositiveInteger(query.formsVersion, "formsVersion"),
405
+ layoutVersion: decodePositiveInteger(query.layoutVersion, "layoutVersion"),
406
+ selection
407
+ };
408
+ };
268
409
  const encodeActionsToken = (actionsVersion) => encodeToken(ActionsTokenSchema, { actionsVersion });
269
410
  const decodeActionsToken = (raw) => decodePositiveInteger(decodeToken(ActionsTokenSchema, raw).actionsVersion, "actionsVersion");
270
411
  const encodeAttachmentsToken = (attachmentsVersion) => encodeToken(AttachmentsTokenSchema, { attachmentsVersion });
@@ -284,7 +425,7 @@ const decodeDownloadToken = (raw) => {
284
425
  * Encode a render token from a flat wire-shape input. The input is the
285
426
  * output of `flatten(...)` over an SDK `PageImageOptions`-shaped object plus
286
427
  * cache versions. Semantic invariants (viewport-kind XOR fields, per-family
287
- * pin grammar — annotatedness itself is PATH-expressed, never a token key —
428
+ * pin grammar — annotatedness itself is path-expressed, never a token key —
288
429
  * target rect coherence) live in the per-family render query schemas —
289
430
  * running them here would duplicate the spec.
290
431
  */
@@ -301,18 +442,24 @@ const decodeRenderToken = (raw) => decodeToken(RenderTokenSchema, raw);
301
442
  * plus cache versions). Semantic validation lives in
302
443
  * `AnnotationAppearancesQuerySchema`.
303
444
  */
445
+ /** `modes` as one token value: the modes in engine order, joined by `-`. */
446
+ const encodeAppearanceModes = (modes) => modes.join("-");
304
447
  const encodeAnnotationAppearancesRenderToken = (input) => encodeToken(AnnotationAppearancesRenderTokenSchema, input);
305
448
  /** Decode an annotation-appearance render token to a flat field map. */
306
449
  const decodeAnnotationAppearancesRenderToken = (raw) => decodeToken(AnnotationAppearancesRenderTokenSchema, raw);
450
+ /** Encode a widget-appearance render token, the annotation one's twin keyed by `widgetVersion`. */
451
+ const encodeWidgetAppearancesRenderToken = (input) => encodeToken(WidgetAppearancesRenderTokenSchema, input);
452
+ /** Decode a widget-appearance render token to a flat field map. */
453
+ const decodeWidgetAppearancesRenderToken = (raw) => decodeToken(WidgetAppearancesRenderTokenSchema, raw);
307
454
  /**
308
- * The search RESULT representation this client speaks — part of the token
455
+ * The search result representation this client speaks — part of the token
309
456
  * (and therefore the versioned URL), so a response-shape change can never
310
457
  * serve a stale CDN body to a newer client: new tokens are new cache keys,
311
- * and old tokens fail decode on new servers. Deliberately ALWAYS encoded —
458
+ * and old tokens fail decode on new servers. Deliberately always encoded —
312
459
  * an exception to the omit-defaults rule, because its entire job is to
313
460
  * change the token bytes when the format changes.
314
461
  */
315
- const SEARCH_RESULT_FORMAT = "segments1";
462
+ const SEARCH_RESULT_FORMAT = "ranges1";
316
463
  const encodeSearchToken = (input) => {
317
464
  const q = input.query;
318
465
  return encodeToken(SearchTokenSchema, {
@@ -323,34 +470,36 @@ const encodeSearchToken = (input) => {
323
470
  matchCase: q.matchCase ? true : void 0,
324
471
  matchDiacritics: q.matchDiacritics ? true : void 0,
325
472
  wholeWord: q.wholeWord ? true : void 0,
326
- startPage: input.startPage,
473
+ ignoreWhitespace: q.ignoreWhitespace ? true : void 0,
474
+ from: input.from,
327
475
  skip: input.skip > 0 ? input.skip : void 0,
328
- maxPages: input.budget?.maxPages,
329
- maxMatches: input.budget?.maxMatches
476
+ limitPages: input.limit?.pages,
477
+ limitMatches: input.limit?.matches
330
478
  });
331
479
  };
332
480
  const decodeSearchToken = (raw) => {
333
481
  const t = decodeToken(SearchTokenSchema, raw);
334
482
  if (t.epoch === void 0) throw new Error("search token is missing \"epoch\"");
335
483
  if (t.q === void 0) throw new Error("search token is missing \"q\"");
336
- if (t.format !== "segments1") throw new Error(`search token has unsupported result format "${t.format ?? "legacy"}" (expected "${SEARCH_RESULT_FORMAT}")`);
484
+ if (t.format !== "ranges1") throw new Error(`search token has unsupported result format "${t.format ?? "legacy"}" (expected "${SEARCH_RESULT_FORMAT}")`);
337
485
  const query = {
338
486
  text: decodeTokenText(t.q),
339
487
  ...t.regex === "true" ? { regex: true } : {},
340
488
  ...t.matchCase === "true" ? { matchCase: true } : {},
341
489
  ...t.matchDiacritics === "true" ? { matchDiacritics: true } : {},
342
- ...t.wholeWord === "true" ? { wholeWord: true } : {}
490
+ ...t.wholeWord === "true" ? { wholeWord: true } : {},
491
+ ...t.ignoreWhitespace === "true" ? { ignoreWhitespace: true } : {}
343
492
  };
344
- const maxPages = t.maxPages === void 0 ? void 0 : decodePositiveInteger(t.maxPages, "maxPages");
345
- const maxMatches = t.maxMatches === void 0 ? void 0 : decodePositiveInteger(t.maxMatches, "maxMatches");
493
+ const pages = t.limitPages === void 0 ? void 0 : decodePositiveInteger(t.limitPages, "limitPages");
494
+ const matches = t.limitMatches === void 0 ? void 0 : decodePositiveInteger(t.limitMatches, "limitMatches");
346
495
  return {
347
496
  epoch: t.epoch,
348
497
  query,
349
- ...t.startPage === void 0 ? {} : { startPage: decodePositiveInteger(t.startPage, "startPage") },
498
+ ...t.from === void 0 ? {} : { from: decodePositiveInteger(t.from, "from") },
350
499
  skip: t.skip === void 0 ? 0 : decodePositiveInteger(t.skip, "skip"),
351
- ...maxPages !== void 0 || maxMatches !== void 0 ? { budget: {
352
- ...maxPages !== void 0 ? { maxPages } : {},
353
- ...maxMatches !== void 0 ? { maxMatches } : {}
500
+ ...pages !== void 0 || matches !== void 0 ? { limit: {
501
+ ...matches !== void 0 ? { matches } : {},
502
+ ...pages !== void 0 ? { pages } : {}
354
503
  } } : {}
355
504
  };
356
505
  };
@@ -404,7 +553,7 @@ function decodePdfSaveMode(raw) {
404
553
  * Single source of truth for cloud HTTP paths. Both @cloudpdf/engine and
405
554
  * @cloudpdf/server import these so they cannot drift.
406
555
  *
407
- * **URL layout convention (paths v2)**
556
+ * **URL layout convention**
408
557
  *
409
558
  * Each resource type lives at its own distinct path prefix. This
410
559
  * lets prefix-matching CDNs (Bunny, Cloud CDN, Azure FD) enforce
@@ -416,28 +565,39 @@ function decodePdfSaveMode(raw) {
416
565
  * /v1/docs/{id} — doc root
417
566
  * /v1/docs/{id}/manifest@{ver} — doc-level read
418
567
  * /v1/docs/{id}/render/pages/{N}/data@{ver} — render is its own prefix
568
+ * /v1/docs/{id}/render/{annotations,fields,all}/pages/{N}/data@{ver} — and each picture family
419
569
  * /v1/docs/{id}/text/pages/{N}/data@{ver} — text is its own prefix
420
570
  * /v1/docs/{id}/geometry/pages/{N}/data@{ver} — geometry is its own prefix
421
571
  * /v1/docs/{id}/layers/{L}/manifest@{ver}
422
572
  * /v1/docs/{id}/layers/{L}/metadata@{ver}
573
+ * /v1/docs/{id}/layers/{L}/metadata/custom@{ver} — the Info dict's own keys
423
574
  * /v1/docs/{id}/layers/{L}/render/pages/{N}/data@{ver}
424
575
  * /v1/docs/{id}/layers/{L}/text/pages/{N}/data@{ver}
425
576
  * /v1/docs/{id}/layers/{L}/geometry/pages/{N}/data@{ver}
426
577
  * /v1/docs/{id}/layers/{L}/annotations/pages/{N}/items@{ver} — collection (read)
427
578
  * /v1/docs/{id}/layers/{L}/annotations/pages/{N}/items — collection (create)
428
579
  * /v1/docs/{id}/layers/{L}/annotations/pages/{N}/items/{key} — member
429
- * /v1/docs/{id}/layers/{L}/annotations/pages/{N}/items/move — batch reorder
430
- * /v1/docs/{id}/layers/{L}/pages/move — batch page reorder
580
+ * /v1/docs/{id}/layers/{L}/annotations/pages/{N}/items/reorder — stacking order
581
+ * /v1/docs/{id}/layers/{L}/pages/reorder — page order
431
582
  * /v1/docs/{id}/layers/{L}/pages/rotate — batch absolute rotation
432
583
  * /v1/docs/{id}/layers/{L}/pages/delete — batch page delete
433
- * /v1/docs/{id}/layers/{L}/form — reconciled snapshot (read)
584
+ * /v1/docs/{id}/form@{ver} — the form: fields + widget rows (read)
585
+ * /v1/docs/{id}/form/pages/{N}/appearances@{ver} — a page's widget images (read)
586
+ * /v1/docs/{id}/layers/{L}/form@{ver}
587
+ * /v1/docs/{id}/layers/{L}/form/pages/{N}/appearances@{ver}
588
+ * /v1/docs/{id}/layers/{L}/form — the form, current (read)
589
+ * /v1/docs/{id}/layers/{L}/form/widgets/{N}/{key} — a widget's place and look (patch)
590
+ * /v1/docs/{id}/layers/{L}/form/widgets/{N}/reorder — the widgets' stacking order
434
591
  * /v1/docs/{id}/layers/{L}/form/fields — field collection (create)
435
592
  * /v1/docs/{id}/layers/{L}/form/fields/{key} — field member (read/patch/delete)
436
593
  * /v1/docs/{id}/layers/{L}/form/fields/{key}/value — value write (fill)
437
594
  * /v1/docs/{id}/layers/{L}/form/fields/{key}/reset — reset to /DV (fill)
438
595
  * /v1/docs/{id}/layers/{L}/form/fields/{key}/widgets — adopt a widget (attach)
439
596
  * /v1/docs/{id}/layers/{L}/form/fields/{key}/widgets/detach — release a widget
440
- * /v1/docs/{id}/layers/{L}/form/data — FDF/XFDF export (GET) / import (POST)
597
+ * /v1/docs/{id}/layers/{L}/form/export@{token} — form bundle export (GET)
598
+ * /v1/docs/{id}/layers/{L}/form/export — form bundle export by body (POST)
599
+ * /v1/docs/{id}/layers/{L}/form/import — design import (multipart POST)
600
+ * /v1/docs/{id}/layers/{L}/form/import-values — values import (multipart POST)
441
601
  * /v1/docs/{id}/layers/{L}/form/repair — durable reconciliation
442
602
  * /v1/docs/{id}/layers/{L}/download@{ver}
443
603
  *
@@ -454,16 +614,21 @@ const wirePaths = {
454
614
  * against the token like every layer route — the grant is
455
615
  * layer-scoped in substance: CDN coverage, scopes, and the client's
456
616
  * binding all carry the layer). Path-addressed so the affinity tier —
457
- * the `X-CloudPDF-Doc` header derivation AND the chart's uri-mode
617
+ * the `X-CloudPDF-Doc` header derivation and the chart's uri-mode
458
618
  * regex — pins the session bootstrap to the document's pod from the
459
619
  * very first request. Default-layer callers spell `layers/default/`,
460
620
  * same as every other layer route.
461
621
  */
462
622
  access: (docId, layerName) => `/v1/docs/${encodeURIComponent(docId)}/layers/${encodeURIComponent(layerName)}/access`,
463
- /** Deprecated alias (docId in the BODY) — served for one prerelease
623
+ /** Deprecated alias (docId in the body) — served for one prerelease
464
624
  * cycle so pre-rename clients keep working; remove after. */
465
625
  accessLegacy: "/v1/access",
466
626
  /**
627
+ * POST `{ count }`: hand the caller's editing session `count` more object
628
+ * numbers at once (at most 1,000), for a large paste.
629
+ */
630
+ objectNumbers: (docId, layerName) => `/v1/docs/${encodeURIComponent(docId)}/layers/${encodeURIComponent(layerName)}/object-numbers`,
631
+ /**
467
632
  * GET: open the document referenced by the doc-scoped JWT and
468
633
  * return its `DocumentHead`. The server materialises the base
469
634
  * PDF into its file cache and binds it to a worker the first
@@ -501,9 +666,9 @@ const wirePaths = {
501
666
  */
502
667
  layerLayout: (docId, layerName, layoutVersion) => `/v1/docs/${encodeURIComponent(docId)}/layers/${encodeURIComponent(layerName)}/layout@${encodeLayoutToken(layoutVersion)}`,
503
668
  /**
504
- * Immutable BASE page-geometry list (plane-scope model): the shared-URL
669
+ * Immutable base page-geometry list (plane-scope model): the shared-URL
505
670
  * variant a layout-inheriting layer resolves at — every visitor's page
506
- * list is ONE CDN object served from the base worker session.
671
+ * list is one CDN object served from the base worker session.
507
672
  */
508
673
  docLayout: (docId, layoutVersion) => `/v1/docs/${encodeURIComponent(docId)}/layout@${encodeLayoutToken(layoutVersion)}`,
509
674
  layerLayoutCurrent: (docId, layerName) => `/v1/docs/${encodeURIComponent(docId)}/layers/${encodeURIComponent(layerName)}/layout`,
@@ -517,12 +682,21 @@ const wirePaths = {
517
682
  */
518
683
  layerMetadata: (docId, layerName, metadataVersion) => `/v1/docs/${encodeURIComponent(docId)}/layers/${encodeURIComponent(layerName)}/metadata@${encodeMetadataToken(metadataVersion)}`,
519
684
  layerMetadataCurrent: (docId, layerName) => `/v1/docs/${encodeURIComponent(docId)}/layers/${encodeURIComponent(layerName)}/metadata`,
520
- /** Immutable BASE metadata (plane-scope model): the shared-URL variant a
685
+ /** Immutable base metadata (plane-scope model): the shared-URL variant a
521
686
  * metadata-inheriting layer resolves at. */
522
687
  docMetadata: (docId, metadataVersion) => `/v1/docs/${encodeURIComponent(docId)}/metadata@${encodeMetadataToken(metadataVersion)}`,
688
+ /**
689
+ * GET: the Info dict's custom keys for the layer at a specific
690
+ * `metadataVersion` — the same version pointer as `layerMetadata`, since
691
+ * both halves live in one dict. Content-addressed like it.
692
+ */
693
+ layerCustomMetadata: (docId, layerName, metadataVersion) => `/v1/docs/${encodeURIComponent(docId)}/layers/${encodeURIComponent(layerName)}/metadata/custom@${encodeMetadataToken(metadataVersion)}`,
694
+ layerCustomMetadataCurrent: (docId, layerName) => `/v1/docs/${encodeURIComponent(docId)}/layers/${encodeURIComponent(layerName)}/metadata/custom`,
695
+ /** Immutable base custom keys: the shared-URL twin of `layerCustomMetadata`. */
696
+ docCustomMetadata: (docId, metadataVersion) => `/v1/docs/${encodeURIComponent(docId)}/metadata/custom@${encodeMetadataToken(metadataVersion)}`,
523
697
  /** Immutable catalog-owned actions, independently pinned in the manifest. */
524
698
  layerActions: (docId, layerName, actionsVersion) => `/v1/docs/${encodeURIComponent(docId)}/layers/${encodeURIComponent(layerName)}/actions@${encodeActionsToken(actionsVersion)}`,
525
- /** Immutable BASE catalog actions (plane-scope model): the shared-URL
699
+ /** Immutable base catalog actions (plane-scope model): the shared-URL
526
700
  * variant an actions-inheriting layer resolves at. */
527
701
  docActions: (docId, actionsVersion) => `/v1/docs/${encodeURIComponent(docId)}/actions@${encodeActionsToken(actionsVersion)}`,
528
702
  /** Immutable layer signature snapshot (base signatures + the layer's fields + protection). */
@@ -536,7 +710,7 @@ const wirePaths = {
536
710
  /** POST (JSON): install the CMS and publish the sealed bytes as the next base version. */
537
711
  layerSignatureComplete: (docId, layerName, signingId) => `/v1/docs/${encodeURIComponent(docId)}/layers/${encodeURIComponent(layerName)}/signatures/${encodeURIComponent(signingId)}/complete`,
538
712
  /** DELETE: discard a pending signing. */
539
- layerSignatureAbort: (docId, layerName, signingId) => `/v1/docs/${encodeURIComponent(docId)}/layers/${encodeURIComponent(layerName)}/signatures/${encodeURIComponent(signingId)}`,
713
+ layerSignatureCancel: (docId, layerName, signingId) => `/v1/docs/${encodeURIComponent(docId)}/layers/${encodeURIComponent(layerName)}/signatures/${encodeURIComponent(signingId)}`,
540
714
  /** The document's base versions, oldest first (grows; never cached). */
541
715
  docVersions: (docId) => `/v1/docs/${encodeURIComponent(docId)}/versions`,
542
716
  /** Immutable: the signature snapshot of one base version. */
@@ -555,13 +729,15 @@ const wirePaths = {
555
729
  layerFormFieldSignatureAppearance: (docId, layerName, fieldKey) => `/v1/docs/${encodeURIComponent(docId)}/layers/${encodeURIComponent(layerName)}/form/fields/${encodeURIComponent(fieldKey)}/signature-appearance`,
556
730
  /** POST: rewrite the document Info dict for the layer (metadata edit). */
557
731
  layerMetadataUpdate: (docId, layerName) => `/v1/docs/${encodeURIComponent(docId)}/layers/${encodeURIComponent(layerName)}/metadata`,
732
+ /** POST: set and remove the Info dict's custom keys for the layer. */
733
+ layerCustomMetadataUpdate: (docId, layerName) => `/v1/docs/${encodeURIComponent(docId)}/layers/${encodeURIComponent(layerName)}/metadata/custom`,
558
734
  /**
559
- * Immutable BASE /EmbeddedFiles listing: the shared-URL variant an
735
+ * Immutable base /EmbeddedFiles listing: the shared-URL variant an
560
736
  * attachments-undiverged layer resolves at — every visitor's sidebar list
561
- * is ONE CDN object served from the base worker session.
737
+ * is one CDN object served from the base worker session.
562
738
  */
563
739
  docAttachments: (docId, attachmentsVersion) => `/v1/docs/${encodeURIComponent(docId)}/attachments@${encodeAttachmentsToken(attachmentsVersion)}`,
564
- /** Immutable BASE decoded bytes of one embedded file (twin of
740
+ /** Immutable base decoded bytes of one embedded file (twin of
565
741
  * `layerAttachmentFile` — same capability tier split). */
566
742
  docAttachmentFile: (docId, key, attachmentsVersion) => `/v1/docs/${encodeURIComponent(docId)}/attachment-files/${encodeTokenText(key)}/data@${encodeAttachmentsToken(attachmentsVersion)}`,
567
743
  /** Immutable /EmbeddedFiles listing, pinned by `attachmentsVersion`. */
@@ -578,14 +754,14 @@ const wirePaths = {
578
754
  */
579
755
  layerAttachmentFile: (docId, layerName, key, attachmentsVersion) => `/v1/docs/${encodeURIComponent(docId)}/layers/${encodeURIComponent(layerName)}/attachment-files/${encodeTokenText(key)}/data@${encodeAttachmentsToken(attachmentsVersion)}`,
580
756
  /** Immutable decoded bytes of a FileAttachment annotation's embedded file. */
581
- layerAnnotationFile: (docId, layerName, pageObjectNumber, annotKey, attachmentsVersion) => `/v1/docs/${encodeURIComponent(docId)}/layers/${encodeURIComponent(layerName)}/attachment-files/pages/${pageObjectNumber}/items/${encodeURIComponent(annotKey)}/data@${encodeAttachmentsToken(attachmentsVersion)}`,
757
+ layerAnnotationFile: (docId, layerName, page, annotKey, attachmentsVersion) => `/v1/docs/${encodeURIComponent(docId)}/layers/${encodeURIComponent(layerName)}/attachment-files/pages/${encodeURIComponent(require_format.encodePageKey(page))}/items/${encodeURIComponent(annotKey)}/data@${encodeAttachmentsToken(attachmentsVersion)}`,
582
758
  /**
583
- * Immutable BASE bytes of a FileAttachment annotation's embedded file
759
+ * Immutable base bytes of a FileAttachment annotation's embedded file
584
760
  * (plane-scope model). Depends on the `annotations` plane (the annotation
585
- * exists in this view) AND the `attachments` plane (the pin); the origin
761
+ * exists in this view) and the `attachments` plane (the pin); the origin
586
762
  * guard requires both inherited.
587
763
  */
588
- docAnnotationFile: (docId, pageObjectNumber, annotKey, attachmentsVersion) => `/v1/docs/${encodeURIComponent(docId)}/attachment-files/pages/${pageObjectNumber}/items/${encodeURIComponent(annotKey)}/data@${encodeAttachmentsToken(attachmentsVersion)}`,
764
+ docAnnotationFile: (docId, page, annotKey, attachmentsVersion) => `/v1/docs/${encodeURIComponent(docId)}/attachment-files/pages/${encodeURIComponent(require_format.encodePageKey(page))}/items/${encodeURIComponent(annotKey)}/data@${encodeAttachmentsToken(attachmentsVersion)}`,
589
765
  /**
590
766
  * GET: full plain-text extraction for a single page at a specific
591
767
  * `contentVersion`. Content-addressed; CDN may cache forever.
@@ -593,55 +769,60 @@ const wirePaths = {
593
769
  * retry walks `/head` → `/manifest@docVersion=N` to learn the new
594
770
  * `contentVersion`.
595
771
  */
596
- docPageText: (docId, pageObjectNumber, contentVersion) => `/v1/docs/${encodeURIComponent(docId)}/text/pages/${pageObjectNumber}/data@${encodeContentToken(contentVersion)}`,
597
- layerPageText: (docId, layerName, pageObjectNumber, contentVersion) => `/v1/docs/${encodeURIComponent(docId)}/layers/${encodeURIComponent(layerName)}/text/pages/${pageObjectNumber}/data@${encodeContentToken(contentVersion)}`,
598
- layerPageTextCurrent: (docId, layerName, pageObjectNumber) => `/v1/docs/${encodeURIComponent(docId)}/layers/${encodeURIComponent(layerName)}/text/pages/${pageObjectNumber}/data`,
599
- docPageGeometry: (docId, pageObjectNumber, contentVersion) => `/v1/docs/${encodeURIComponent(docId)}/geometry/pages/${pageObjectNumber}/data@${encodeContentToken(contentVersion)}`,
600
- docPageGeometryCurrent: (docId, pageObjectNumber) => `/v1/docs/${encodeURIComponent(docId)}/geometry/pages/${pageObjectNumber}/data`,
601
- docPageRender: (docId, pageObjectNumber, token) => `/v1/docs/${encodeURIComponent(docId)}/render/pages/${pageObjectNumber}/data@${encodeRenderToken(token)}`,
602
- docPageRenderCurrent: (docId, pageObjectNumber) => `/v1/docs/${encodeURIComponent(docId)}/render/pages/${pageObjectNumber}/data`,
772
+ docPageText: (docId, page, contentVersion) => `/v1/docs/${encodeURIComponent(docId)}/text/pages/${encodeURIComponent(require_format.encodePageKey(page))}/data@${encodeContentToken(contentVersion)}`,
773
+ layerPageText: (docId, layerName, page, contentVersion) => `/v1/docs/${encodeURIComponent(docId)}/layers/${encodeURIComponent(layerName)}/text/pages/${encodeURIComponent(require_format.encodePageKey(page))}/data@${encodeContentToken(contentVersion)}`,
774
+ layerPageTextCurrent: (docId, layerName, page) => `/v1/docs/${encodeURIComponent(docId)}/layers/${encodeURIComponent(layerName)}/text/pages/${encodeURIComponent(require_format.encodePageKey(page))}/data`,
775
+ docPageGeometry: (docId, page, contentVersion) => `/v1/docs/${encodeURIComponent(docId)}/geometry/pages/${encodeURIComponent(require_format.encodePageKey(page))}/data@${encodeContentToken(contentVersion)}`,
776
+ docPageGeometryCurrent: (docId, page) => `/v1/docs/${encodeURIComponent(docId)}/geometry/pages/${encodeURIComponent(require_format.encodePageKey(page))}/data`,
603
777
  /**
604
- * Immutable BASE annotated render (plane-scope model). Its OWN path family,
605
- * not a token flag under `/render/pages/`: an annotated render depends on
606
- * `content + annotations`, an annotation-free one on `content` alone, and
607
- * edge grants are prefix-scoped — the prefix law says a path's prefix must
608
- * identify its full plane-dependency set. Annotatedness is therefore
609
- * PATH-ONLY (the token/path law): the wire token has no
610
- * `includeAnnotations` key at all; the annotated family's token carries
611
- * `annotationVersion`, the free family's cannot.
778
+ * A page picture of one family (`PAGE_RENDER_FAMILIES`). The family is a
779
+ * path of its own, never a token field: each depends on its own planes and
780
+ * needs its own rights, and an edge grant sees only prefixes. Its token
781
+ * carries the family's pins.
612
782
  */
613
- docPageRenderAnnotated: (docId, pageObjectNumber, token) => `/v1/docs/${encodeURIComponent(docId)}/render/annotated/pages/${pageObjectNumber}/data@${encodeRenderToken(token)}`,
614
- layerPageGeometry: (docId, layerName, pageObjectNumber, contentVersion) => `/v1/docs/${encodeURIComponent(docId)}/layers/${encodeURIComponent(layerName)}/geometry/pages/${pageObjectNumber}/data@${encodeContentToken(contentVersion)}`,
615
- layerPageGeometryCurrent: (docId, layerName, pageObjectNumber) => `/v1/docs/${encodeURIComponent(docId)}/layers/${encodeURIComponent(layerName)}/geometry/pages/${pageObjectNumber}/data`,
616
- layerPageRender: (docId, layerName, pageObjectNumber, token) => `/v1/docs/${encodeURIComponent(docId)}/layers/${encodeURIComponent(layerName)}/render/pages/${pageObjectNumber}/data@${encodeRenderToken(token)}`,
617
- layerPageRenderCurrent: (docId, layerName, pageObjectNumber) => `/v1/docs/${encodeURIComponent(docId)}/layers/${encodeURIComponent(layerName)}/render/pages/${pageObjectNumber}/data`,
618
- /** Layer twin of `docPageRenderAnnotated` — the grammar is uniform:
619
- * annotatedness is path-only at BOTH tiers. */
620
- layerPageRenderAnnotated: (docId, layerName, pageObjectNumber, token) => `/v1/docs/${encodeURIComponent(docId)}/layers/${encodeURIComponent(layerName)}/render/annotated/pages/${pageObjectNumber}/data@${encodeRenderToken(token)}`,
621
- layerPageRenderAnnotatedCurrent: (docId, layerName, pageObjectNumber) => `/v1/docs/${encodeURIComponent(docId)}/layers/${encodeURIComponent(layerName)}/render/annotated/pages/${pageObjectNumber}/data`,
783
+ docPageRender: (docId, family, page, token) => `/v1/docs/${encodeURIComponent(docId)}/${require_schemas.PAGE_RENDER_FAMILIES[family].path}/${encodeURIComponent(require_format.encodePageKey(page))}/data@${encodeRenderToken(token)}`,
784
+ docPageRenderCurrent: (docId, family, page) => `/v1/docs/${encodeURIComponent(docId)}/${require_schemas.PAGE_RENDER_FAMILIES[family].path}/${encodeURIComponent(require_format.encodePageKey(page))}/data`,
785
+ layerPageGeometry: (docId, layerName, page, contentVersion) => `/v1/docs/${encodeURIComponent(docId)}/layers/${encodeURIComponent(layerName)}/geometry/pages/${encodeURIComponent(require_format.encodePageKey(page))}/data@${encodeContentToken(contentVersion)}`,
786
+ layerPageGeometryCurrent: (docId, layerName, page) => `/v1/docs/${encodeURIComponent(docId)}/layers/${encodeURIComponent(layerName)}/geometry/pages/${encodeURIComponent(require_format.encodePageKey(page))}/data`,
787
+ layerPageRender: (docId, layerName, family, page, token) => `/v1/docs/${encodeURIComponent(docId)}/layers/${encodeURIComponent(layerName)}/${require_schemas.PAGE_RENDER_FAMILIES[family].path}/${encodeURIComponent(require_format.encodePageKey(page))}/data@${encodeRenderToken(token)}`,
788
+ layerPageRenderCurrent: (docId, layerName, family, page) => `/v1/docs/${encodeURIComponent(docId)}/layers/${encodeURIComponent(layerName)}/${require_schemas.PAGE_RENDER_FAMILIES[family].path}/${encodeURIComponent(require_format.encodePageKey(page))}/data`,
622
789
  /**
623
- * Immutable BASE annotation list for a single page (plane-scope model):
790
+ * Immutable base annotation list for a single page (plane-scope model):
624
791
  * the shared-URL variant an annotations-inheriting layer resolves at — a
625
- * base's own annotations (weak-identity ones included) are simply visible
626
- * through every pristine layer, so 1,000 visitors' sidebars are ONE CDN
792
+ * base's own annotations (inline ones included) are simply visible
793
+ * through every pristine layer, so 1,000 visitors' sidebars are one CDN
627
794
  * object served from the base worker session.
628
795
  */
629
- docPageAnnotations: (docId, pageObjectNumber, annotationVersion) => `/v1/docs/${encodeURIComponent(docId)}/annotations/pages/${pageObjectNumber}/items@${encodeAnnotationToken(annotationVersion)}`,
630
- /** Immutable BASE whole-document annotation listing (bulk hydration). */
796
+ docPageAnnotations: (docId, page, annotationVersion) => `/v1/docs/${encodeURIComponent(docId)}/annotations/pages/${encodeURIComponent(require_format.encodePageKey(page))}/items@${encodeAnnotationToken(annotationVersion)}`,
797
+ /** Immutable base whole-document annotation listing (bulk hydration). */
631
798
  docAnnotationsAll: (docId, annotationsVersion) => `/v1/docs/${encodeURIComponent(docId)}/annotations/items@${encodeAnnotationsAllToken(annotationsVersion)}`,
632
- /** Immutable BASE appearance batch (twin of
799
+ /** Immutable base appearance batch (twin of
633
800
  * `layerPageAnnotationAppearances` — same `annotations` plane gate). */
634
- docPageAnnotationAppearances: (docId, pageObjectNumber, token) => `/v1/docs/${encodeURIComponent(docId)}/annotations/pages/${pageObjectNumber}/appearances@${encodeAnnotationAppearancesRenderToken(token)}`,
801
+ docPageAnnotationAppearances: (docId, page, token) => `/v1/docs/${encodeURIComponent(docId)}/annotations/pages/${encodeURIComponent(require_format.encodePageKey(page))}/appearances@${encodeAnnotationAppearancesRenderToken(token)}`,
635
802
  /**
636
803
  * GET: full annotation list for a single page at a specific
637
804
  * `annotationVersion`. Same cache-control rules and 404-retry
638
805
  * semantics as `docPageText`. The `items` suffix is the
639
806
  * collection name — see file-level docstring.
640
807
  */
641
- layerPageAnnotations: (docId, layerName, pageObjectNumber, annotationVersion) => `/v1/docs/${encodeURIComponent(docId)}/layers/${encodeURIComponent(layerName)}/annotations/pages/${pageObjectNumber}/items@${encodeAnnotationToken(annotationVersion)}`,
642
- /** Immutable LAYER whole-document annotation listing (bulk hydration). */
808
+ layerPageAnnotations: (docId, layerName, page, annotationVersion) => `/v1/docs/${encodeURIComponent(docId)}/layers/${encodeURIComponent(layerName)}/annotations/pages/${encodeURIComponent(require_format.encodePageKey(page))}/items@${encodeAnnotationToken(annotationVersion)}`,
809
+ /** Immutable base annotation export: a bundle as multipart, needing
810
+ * `doc.annotate.read` and `doc.download`. */
811
+ docAnnotationsExport: (docId, token) => `/v1/docs/${encodeURIComponent(docId)}/annotations/export@${encodeAnnotationsExportToken(token)}`,
812
+ /** Immutable layer annotation export (twin of `docAnnotationsExport`). */
813
+ layerAnnotationsExport: (docId, layerName, token) => `/v1/docs/${encodeURIComponent(docId)}/layers/${encodeURIComponent(layerName)}/annotations/export@${encodeAnnotationsExportToken(token)}`,
814
+ /**
815
+ * A layer annotation export whose selection a URL can't carry (position
816
+ * refs, long ref lists): a POST of the pins and the selection, not cached.
817
+ */
818
+ layerAnnotationsExportRequest: (docId, layerName) => `/v1/docs/${encodeURIComponent(docId)}/layers/${encodeURIComponent(layerName)}/annotations/export`,
819
+ /** A layer's changes: user actions, each its ops in one transaction, or an undo (`doc.apply`). */
820
+ layerChanges: (docId, layerName) => `/v1/docs/${encodeURIComponent(docId)}/layers/${encodeURIComponent(layerName)}/changes`,
821
+ /** A bundle's annotations, created in the layer as one change (`doc.annotations.import`). */
822
+ layerAnnotationsImport: (docId, layerName) => `/v1/docs/${encodeURIComponent(docId)}/layers/${encodeURIComponent(layerName)}/annotations/import`,
823
+ /** Immutable layer whole-document annotation listing (bulk hydration). */
643
824
  layerAnnotationsAll: (docId, layerName, annotationsVersion) => `/v1/docs/${encodeURIComponent(docId)}/layers/${encodeURIComponent(layerName)}/annotations/items@${encodeAnnotationsAllToken(annotationsVersion)}`,
644
- layerPageAnnotationsCurrent: (docId, layerName, pageObjectNumber) => `/v1/docs/${encodeURIComponent(docId)}/layers/${encodeURIComponent(layerName)}/annotations/pages/${pageObjectNumber}/items`,
825
+ layerPageAnnotationsCurrent: (docId, layerName, page) => `/v1/docs/${encodeURIComponent(docId)}/layers/${encodeURIComponent(layerName)}/annotations/pages/${encodeURIComponent(require_format.encodePageKey(page))}/items`,
645
826
  /**
646
827
  * GET: batch-rendered annotation appearance bitmaps for a single page as a
647
828
  * `multipart/form-data` body. Sibling collection of `items` under the same
@@ -652,28 +833,52 @@ const wirePaths = {
652
833
  * Content-addressed via the appearance render token (`annotationVersion`
653
834
  * plus render options like scale/format); CDN may cache forever. Appearance
654
835
  * pixels depend only on the annotation `/AP` stream, so `contentVersion` is
655
- * deliberately NOT part of the key.
836
+ * deliberately not part of the key.
656
837
  */
657
- layerPageAnnotationAppearances: (docId, layerName, pageObjectNumber, token) => `/v1/docs/${encodeURIComponent(docId)}/layers/${encodeURIComponent(layerName)}/annotations/pages/${pageObjectNumber}/appearances@${encodeAnnotationAppearancesRenderToken(token)}`,
658
- layerPageAnnotationAppearancesCurrent: (docId, layerName, pageObjectNumber) => `/v1/docs/${encodeURIComponent(docId)}/layers/${encodeURIComponent(layerName)}/annotations/pages/${pageObjectNumber}/appearances`,
659
- layerPageAnnotationsCreate: (docId, layerName, pageObjectNumber) => `/v1/docs/${encodeURIComponent(docId)}/layers/${encodeURIComponent(layerName)}/annotations/pages/${pageObjectNumber}/items`,
660
- layerAnnotationByKey: (docId, layerName, pageObjectNumber, key) => `/v1/docs/${encodeURIComponent(docId)}/layers/${encodeURIComponent(layerName)}/annotations/pages/${pageObjectNumber}/items/${encodeURIComponent(key)}`,
661
- layerPageAnnotationsMove: (docId, layerName, pageObjectNumber) => `/v1/docs/${encodeURIComponent(docId)}/layers/${encodeURIComponent(layerName)}/annotations/pages/${pageObjectNumber}/items/move`,
838
+ layerPageAnnotationAppearances: (docId, layerName, page, token) => `/v1/docs/${encodeURIComponent(docId)}/layers/${encodeURIComponent(layerName)}/annotations/pages/${encodeURIComponent(require_format.encodePageKey(page))}/appearances@${encodeAnnotationAppearancesRenderToken(token)}`,
839
+ layerPageAnnotationAppearancesCurrent: (docId, layerName, page) => `/v1/docs/${encodeURIComponent(docId)}/layers/${encodeURIComponent(layerName)}/annotations/pages/${encodeURIComponent(require_format.encodePageKey(page))}/appearances`,
840
+ layerPageAnnotationsCreate: (docId, layerName, page) => `/v1/docs/${encodeURIComponent(docId)}/layers/${encodeURIComponent(layerName)}/annotations/pages/${encodeURIComponent(require_format.encodePageKey(page))}/items`,
841
+ layerAnnotationByKey: (docId, layerName, page, key) => `/v1/docs/${encodeURIComponent(docId)}/layers/${encodeURIComponent(layerName)}/annotations/pages/${encodeURIComponent(require_format.encodePageKey(page))}/items/${encodeURIComponent(key)}`,
842
+ /** GET: an annotation's `appearance` resource, its drawing as a one-page
843
+ * PDF — a derived read (application/pdf, no-store), gated like pages/extract. */
844
+ layerAnnotationAppearanceResource: (docId, layerName, page, key) => `/v1/docs/${encodeURIComponent(docId)}/layers/${encodeURIComponent(layerName)}/annotations/pages/${encodeURIComponent(require_format.encodePageKey(page))}/items/${encodeURIComponent(key)}/resources/appearance`,
845
+ layerPageAnnotationsReorder: (docId, layerName, page) => `/v1/docs/${encodeURIComponent(docId)}/layers/${encodeURIComponent(layerName)}/annotations/pages/${encodeURIComponent(require_format.encodePageKey(page))}/items/reorder`,
662
846
  /** POST: flatten a chosen set of the page's annotations into its content
663
847
  * (a content + annotation mutation of that page). */
664
- layerPageAnnotationsFlatten: (docId, layerName, pageObjectNumber) => `/v1/docs/${encodeURIComponent(docId)}/layers/${encodeURIComponent(layerName)}/annotations/pages/${pageObjectNumber}/items/flatten`,
848
+ layerPageAnnotationsFlatten: (docId, layerName, page) => `/v1/docs/${encodeURIComponent(docId)}/layers/${encodeURIComponent(layerName)}/annotations/pages/${encodeURIComponent(require_format.encodePageKey(page))}/items/flatten`,
665
849
  /** POST: the chosen annotations' appearances as one single-page PDF — a
666
850
  * derived read (application/pdf, no-store), gated like pages/extract. */
667
- layerPageAnnotationsAppearance: (docId, layerName, pageObjectNumber) => `/v1/docs/${encodeURIComponent(docId)}/layers/${encodeURIComponent(layerName)}/annotations/pages/${pageObjectNumber}/items/appearance`,
851
+ layerPageAnnotationsAppearance: (docId, layerName, page) => `/v1/docs/${encodeURIComponent(docId)}/layers/${encodeURIComponent(layerName)}/annotations/pages/${encodeURIComponent(require_format.encodePageKey(page))}/items/appearance`,
852
+ /**
853
+ * Immutable base form: the fields, every widget row, the calculation
854
+ * order (`doc.forms.list()`), at the document's `formsVersion`. Needs
855
+ * `doc.forms.read`, under its own prefix, so the CDN signs it apart from
856
+ * the annotations.
857
+ */
858
+ docForm: (docId, formsVersion) => `/v1/docs/${encodeURIComponent(docId)}/form@${encodeFormToken(formsVersion)}`,
859
+ /** Immutable layer form (twin of `docForm`). */
860
+ layerForm: (docId, layerName, formsVersion) => `/v1/docs/${encodeURIComponent(docId)}/layers/${encodeURIComponent(layerName)}/form@${encodeFormToken(formsVersion)}`,
861
+ /** GET: the layer's form as it is now — for API callers, served `no-store`. */
862
+ layerFormCurrent: (docId, layerName) => `/v1/docs/${encodeURIComponent(docId)}/layers/${encodeURIComponent(layerName)}/form`,
863
+ /**
864
+ * Immutable base batch of a page's widget images, every mode and state, as
865
+ * `multipart/form-data` (`page.forms.renderAppearances()`), keyed by the
866
+ * page's `widgetVersion`.
867
+ */
868
+ docPageFormAppearances: (docId, page, token) => `/v1/docs/${encodeURIComponent(docId)}/form/pages/${encodeURIComponent(require_format.encodePageKey(page))}/appearances@${encodeWidgetAppearancesRenderToken(token)}`,
869
+ /** Immutable layer twin of `docPageFormAppearances`. */
870
+ layerPageFormAppearances: (docId, layerName, page, token) => `/v1/docs/${encodeURIComponent(docId)}/layers/${encodeURIComponent(layerName)}/form/pages/${encodeURIComponent(require_format.encodePageKey(page))}/appearances@${encodeWidgetAppearancesRenderToken(token)}`,
871
+ layerPageFormAppearancesCurrent: (docId, layerName, page) => `/v1/docs/${encodeURIComponent(docId)}/layers/${encodeURIComponent(layerName)}/form/pages/${encodeURIComponent(require_format.encodePageKey(page))}/appearances`,
668
872
  /**
669
- * GET: the reconciled form snapshot (field tree + widget joins) for the
670
- * layer's CURRENT state. Forms are document-scoped (one AcroForm per
671
- * document), so there is no per-page collection and — unlike annotations —
672
- * no content-addressed `@version` variant: the snapshot is always served
673
- * `no-store`. Mutation results carry the per-page `cacheDelta` that keeps
674
- * annotation/render caches coherent when widget appearances change.
873
+ * PATCH: a widget's place and look (`doc.forms.updateWidget`). `key` is
874
+ * the widget's annotation key. Not under `form/pages/`, which the CDN
875
+ * signs for reads.
675
876
  */
676
- layerForm: (docId, layerName) => `/v1/docs/${encodeURIComponent(docId)}/layers/${encodeURIComponent(layerName)}/form`,
877
+ /** POST: the form's calculation order (`doc.forms.reorderCalculations`). */
878
+ layerFormCalculationsReorder: (docId, layerName) => `/v1/docs/${encodeURIComponent(docId)}/layers/${encodeURIComponent(layerName)}/form/calculations/reorder`,
879
+ /** POST: the stacking order of a page's widgets (`doc.forms.reorderWidgets`). */
880
+ layerFormWidgetsReorder: (docId, layerName, page) => `/v1/docs/${encodeURIComponent(docId)}/layers/${encodeURIComponent(layerName)}/form/widgets/${encodeURIComponent(require_format.encodePageKey(page))}/reorder`,
881
+ layerFormWidget: (docId, layerName, page, key) => `/v1/docs/${encodeURIComponent(docId)}/layers/${encodeURIComponent(layerName)}/form/widgets/${encodeURIComponent(require_format.encodePageKey(page))}/${encodeURIComponent(key)}`,
677
882
  /** POST: create a field (optionally with styled widget placements). */
678
883
  layerFormFields: (docId, layerName) => `/v1/docs/${encodeURIComponent(docId)}/layers/${encodeURIComponent(layerName)}/form/fields`,
679
884
  /**
@@ -684,9 +889,9 @@ const wirePaths = {
684
889
  layerFormFieldByKey: (docId, layerName, fieldKey) => `/v1/docs/${encodeURIComponent(docId)}/layers/${encodeURIComponent(layerName)}/form/fields/${encodeURIComponent(fieldKey)}`,
685
890
  /** POST: replace the field's value (`{ value: FormFieldValue }`). */
686
891
  layerFormFieldValue: (docId, layerName, fieldKey) => `/v1/docs/${encodeURIComponent(docId)}/layers/${encodeURIComponent(layerName)}/form/fields/${encodeURIComponent(fieldKey)}/value`,
687
- /** POST: reset the field to /DV (or clear). Empty body. */
688
- layerFormFieldReset: (docId, layerName, fieldKey) => `/v1/docs/${encodeURIComponent(docId)}/layers/${encodeURIComponent(layerName)}/form/fields/${encodeURIComponent(fieldKey)}/reset`,
689
- /** POST: adopt an inert widget annotation (`{ widget, onState? }`). */
892
+ /** POST: reset fields to /DV (or clear): `{ refs? }`, the whole form without `refs`. */
893
+ layerFormReset: (docId, layerName) => `/v1/docs/${encodeURIComponent(docId)}/layers/${encodeURIComponent(layerName)}/form/reset`,
894
+ /** POST: add a widget to the field, the body its placement (`WidgetPlacement`). */
690
895
  layerFormFieldWidgets: (docId, layerName, fieldKey) => `/v1/docs/${encodeURIComponent(docId)}/layers/${encodeURIComponent(layerName)}/form/fields/${encodeURIComponent(fieldKey)}/widgets`,
691
896
  /**
692
897
  * POST: release a widget back to the inert annotation plane
@@ -695,18 +900,21 @@ const wirePaths = {
695
900
  * one codec instead of inventing a second composite key syntax.
696
901
  */
697
902
  layerFormFieldWidgetsDetach: (docId, layerName, fieldKey) => `/v1/docs/${encodeURIComponent(docId)}/layers/${encodeURIComponent(layerName)}/form/fields/${encodeURIComponent(fieldKey)}/widgets/detach`,
698
- /**
699
- * GET: serialized form data (`?format=fdf|xfdf`, default `xfdf`).
700
- * POST: import an FDF/XFDF payload (raw bytes body; format sniffed
701
- * server-side unless `?format=` pins it).
702
- */
703
- layerFormData: (docId, layerName, format) => `/v1/docs/${encodeURIComponent(docId)}/layers/${encodeURIComponent(layerName)}/form/data${format ? `?format=${format}` : ""}`,
903
+ /** Immutable base form export: a bundle as multipart, needing `doc.forms.read` and `doc.download`. */
904
+ docFormExport: (docId, token) => `/v1/docs/${encodeURIComponent(docId)}/form/export@${encodeFormExportToken(token)}`,
905
+ /** Immutable layer form export (twin of `docFormExport`). */
906
+ layerFormExport: (docId, layerName, token) => `/v1/docs/${encodeURIComponent(docId)}/layers/${encodeURIComponent(layerName)}/form/export@${encodeFormExportToken(token)}`,
907
+ /** A layer form export whose selection a URL can't carry: a POST of the pins and the selection, not cached. */
908
+ layerFormExportRequest: (docId, layerName) => `/v1/docs/${encodeURIComponent(docId)}/layers/${encodeURIComponent(layerName)}/form/export`,
909
+ /** A bundle's design, created in the layer as one change (`doc.forms.import`). */
910
+ layerFormImport: (docId, layerName) => `/v1/docs/${encodeURIComponent(docId)}/layers/${encodeURIComponent(layerName)}/form/import`,
911
+ /** A bundle's values, written in the layer as one change (`doc.forms.importValues`). */
912
+ layerFormImportValues: (docId, layerName) => `/v1/docs/${encodeURIComponent(docId)}/layers/${encodeURIComponent(layerName)}/form/import-values`,
704
913
  /** POST: durable reconciliation (`{ bakeAppearances? }`). */
705
914
  layerFormRepair: (docId, layerName) => `/v1/docs/${encodeURIComponent(docId)}/layers/${encodeURIComponent(layerName)}/form/repair`,
706
- layerFormEffects: (docId, layerName) => `/v1/docs/${encodeURIComponent(docId)}/layers/${encodeURIComponent(layerName)}/form/effects`,
707
915
  /**
708
916
  * GET: one budgeted search slice, versioned form. The token
709
- * (`encodeSearchToken`) IS the cache key: content epoch + query +
917
+ * (`encodeSearchToken`) is the cache key: content epoch + query +
710
918
  * position. Immutable; CDN may cache forever. Mode is the path — rects
711
919
  * and full are separate resources so permission tiers never share
712
920
  * cache entries (`'rects'` needs `doc.text.search`; `'full'` also
@@ -716,15 +924,17 @@ const wirePaths = {
716
924
  layerSearchFull: (docId, layerName, token) => `/v1/docs/${encodeURIComponent(docId)}/layers/${encodeURIComponent(layerName)}/search/full/data@${token}`,
717
925
  /**
718
926
  * GET: unversioned form — same fields as flat query params (`q` as
719
- * plain text), served from the CURRENT content, always `no-store`.
927
+ * plain text), served from the current content, always `no-store`.
720
928
  * The debug/simple-client variant; the SDK uses the versioned form.
721
929
  */
722
930
  layerSearchRectsCurrent: (docId, layerName) => `/v1/docs/${encodeURIComponent(docId)}/layers/${encodeURIComponent(layerName)}/search/rects/data`,
723
931
  layerSearchFullCurrent: (docId, layerName) => `/v1/docs/${encodeURIComponent(docId)}/layers/${encodeURIComponent(layerName)}/search/full/data`,
724
- layerPagesMove: (docId, layerName) => `/v1/docs/${encodeURIComponent(docId)}/layers/${encodeURIComponent(layerName)}/pages/move`,
932
+ layerPageViewports: (docId, layerName, page) => `/v1/docs/${encodeURIComponent(docId)}/layers/${encodeURIComponent(layerName)}/pages/${encodeURIComponent(require_format.encodePageKey(page))}/viewports`,
933
+ layerPageScale: (docId, layerName, page) => `/v1/docs/${encodeURIComponent(docId)}/layers/${encodeURIComponent(layerName)}/pages/${encodeURIComponent(require_format.encodePageKey(page))}/scale`,
934
+ layerPagesReorder: (docId, layerName) => `/v1/docs/${encodeURIComponent(docId)}/layers/${encodeURIComponent(layerName)}/pages/reorder`,
725
935
  layerPagesRotate: (docId, layerName) => `/v1/docs/${encodeURIComponent(docId)}/layers/${encodeURIComponent(layerName)}/pages/rotate`,
726
936
  layerPagesDelete: (docId, layerName) => `/v1/docs/${encodeURIComponent(docId)}/layers/${encodeURIComponent(layerName)}/pages/delete`,
727
- /** POST: register/rename a `/Names /Pages` entry — a page-STRUCTURE
937
+ /** POST: register/rename a `/Names /Pages` entry — a page-structure
728
938
  * mutation (docVersion + layoutVersion advance; reads ride `/layout`). */
729
939
  layerPagesNames: (docId, layerName) => `/v1/docs/${encodeURIComponent(docId)}/layers/${encodeURIComponent(layerName)}/pages/names`,
730
940
  /** POST: remove a `/Names /Pages` entry (the page stays). */
@@ -732,14 +942,14 @@ const wirePaths = {
732
942
  layerPagesFlatten: (docId, layerName) => `/v1/docs/${encodeURIComponent(docId)}/layers/${encodeURIComponent(layerName)}/pages/flatten`,
733
943
  /**
734
944
  * POST (multipart mutation envelope): copy every page of the `source`
735
- * resource part (a standalone PDF) in at the body's `destIndex`.
945
+ * resource part (a standalone PDF) in at the body's `toIndex`.
736
946
  */
737
947
  layerPagesInsert: (docId, layerName) => `/v1/docs/${encodeURIComponent(docId)}/layers/${encodeURIComponent(layerName)}/pages/insert`,
738
948
  /** POST (plain JSON): create blank pages — pages.insert minus the bytes. */
739
949
  layerPagesInsertBlank: (docId, layerName) => `/v1/docs/${encodeURIComponent(docId)}/layers/${encodeURIComponent(layerName)}/pages/insert-blank`,
740
950
  /**
741
951
  * POST (plain JSON → `application/pdf` bytes): export the listed pages,
742
- * in caller order, as a standalone PDF. A READ over the current layer
952
+ * in caller order, as a standalone PDF. A read over the current layer
743
953
  * state (gated like /download), so it is a POST only for its body —
744
954
  * nothing mutates and no event is published.
745
955
  */
@@ -749,15 +959,6 @@ const wirePaths = {
749
959
  layerDownload: (docId, layerName) => `/v1/docs/${encodeURIComponent(docId)}/layers/${encodeURIComponent(layerName)}/download`,
750
960
  layerDownloadVersioned: (docId, layerName, token) => `/v1/docs/${encodeURIComponent(docId)}/layers/${encodeURIComponent(layerName)}/download@${encodeDownloadToken(token)}`,
751
961
  /**
752
- * Weak-annotation-sessions: pluralized in v2 so the collection
753
- * lives at `/weak-annotation-sessions` and members at
754
- * `/weak-annotation-sessions/{sessionId}` — REST-conventional.
755
- */
756
- layerWeakAnnotationSession: (docId, layerName) => `/v1/docs/${encodeURIComponent(docId)}/layers/${encodeURIComponent(layerName)}/weak-annotation-sessions`,
757
- layerWeakAnnotationSessionHeartbeat: (docId, layerName, sessionId) => `/v1/docs/${encodeURIComponent(docId)}/layers/${encodeURIComponent(layerName)}/weak-annotation-sessions/${encodeURIComponent(sessionId)}/heartbeat`,
758
- layerWeakAnnotationSessionPages: (docId, layerName, sessionId) => `/v1/docs/${encodeURIComponent(docId)}/layers/${encodeURIComponent(layerName)}/weak-annotation-sessions/${encodeURIComponent(sessionId)}/pages`,
759
- layerWeakAnnotationSessionRelease: (docId, layerName, sessionId) => `/v1/docs/${encodeURIComponent(docId)}/layers/${encodeURIComponent(layerName)}/weak-annotation-sessions/${encodeURIComponent(sessionId)}`,
760
- /**
761
962
  * POST: pre-warm the doc cache + worker open before any user
762
963
  * request lands. Body is `{ docId }`. Doc-scoped token required.
763
964
  */
@@ -776,20 +977,30 @@ function analysisQueryString(query) {
776
977
  const wireTemplates = {
777
978
  docHead: "/v1/docs/:docId/head",
778
979
  layerManifest: "/v1/docs/:docId/layers/:layerName/manifest",
980
+ layerChanges: "/v1/docs/:docId/layers/:layerName/changes",
779
981
  layerMetadata: "/v1/docs/:docId/layers/:layerName/metadata",
780
- layerRenderPage: "/v1/docs/:docId/layers/:layerName/render/pages/:pon/data",
781
- layerTextPage: "/v1/docs/:docId/layers/:layerName/text/pages/:pon/data",
982
+ layerCustomMetadata: "/v1/docs/:docId/layers/:layerName/metadata/custom",
983
+ layerRenderPage: "/v1/docs/:docId/layers/:layerName/render/pages/:pageKey/data",
984
+ layerTextPage: "/v1/docs/:docId/layers/:layerName/text/pages/:pageKey/data",
782
985
  layerAnnotationItemsAll: "/v1/docs/:docId/layers/:layerName/annotations/items",
783
- layerAnnotationItems: "/v1/docs/:docId/layers/:layerName/annotations/pages/:pon/items",
784
- layerAnnotationItem: "/v1/docs/:docId/layers/:layerName/annotations/pages/:pon/items/:annotKey",
785
- layerAnnotationItemsFlatten: "/v1/docs/:docId/layers/:layerName/annotations/pages/:pon/items/flatten",
786
- layerAnnotationItemsAppearance: "/v1/docs/:docId/layers/:layerName/annotations/pages/:pon/items/appearance",
986
+ layerAnnotationItems: "/v1/docs/:docId/layers/:layerName/annotations/pages/:pageKey/items",
987
+ layerAnnotationItem: "/v1/docs/:docId/layers/:layerName/annotations/pages/:pageKey/items/:annotKey",
988
+ layerAnnotationItemsReorder: "/v1/docs/:docId/layers/:layerName/annotations/pages/:pageKey/items/reorder",
989
+ layerAnnotationItemsFlatten: "/v1/docs/:docId/layers/:layerName/annotations/pages/:pageKey/items/flatten",
990
+ layerAnnotationItemsAppearance: "/v1/docs/:docId/layers/:layerName/annotations/pages/:pageKey/items/appearance",
991
+ layerAnnotationItemAppearanceResource: "/v1/docs/:docId/layers/:layerName/annotations/pages/:pageKey/items/:annotKey/resources/appearance",
787
992
  layerForm: "/v1/docs/:docId/layers/:layerName/form",
993
+ layerFormWidget: "/v1/docs/:docId/layers/:layerName/form/widgets/:pageKey/:annotKey",
994
+ layerFormWidgetsReorder: "/v1/docs/:docId/layers/:layerName/form/widgets/:pageKey/reorder",
995
+ layerFormCalculationsReorder: "/v1/docs/:docId/layers/:layerName/form/calculations/reorder",
788
996
  layerFormFieldValue: "/v1/docs/:docId/layers/:layerName/form/fields/:fieldKey/value",
789
- layerFormFieldReset: "/v1/docs/:docId/layers/:layerName/form/fields/:fieldKey/reset",
997
+ layerFormReset: "/v1/docs/:docId/layers/:layerName/form/reset",
790
998
  layerFormFieldSignatureAppearance: "/v1/docs/:docId/layers/:layerName/form/fields/:fieldKey/signature-appearance",
791
- layerFormData: "/v1/docs/:docId/layers/:layerName/form/data",
792
- layerPagesMove: "/v1/docs/:docId/layers/:layerName/pages/move",
999
+ layerFormImport: "/v1/docs/:docId/layers/:layerName/form/import",
1000
+ layerFormImportValues: "/v1/docs/:docId/layers/:layerName/form/import-values",
1001
+ layerPageViewports: "/v1/docs/:docId/layers/:layerName/pages/:pageKey/viewports",
1002
+ layerPageScale: "/v1/docs/:docId/layers/:layerName/pages/:pageKey/scale",
1003
+ layerPagesReorder: "/v1/docs/:docId/layers/:layerName/pages/reorder",
793
1004
  layerPagesRotate: "/v1/docs/:docId/layers/:layerName/pages/rotate",
794
1005
  layerPagesDelete: "/v1/docs/:docId/layers/:layerName/pages/delete",
795
1006
  layerPagesNames: "/v1/docs/:docId/layers/:layerName/pages/names",
@@ -804,7 +1015,7 @@ const wireTemplates = {
804
1015
  layerSignaturesAnalysis: "/v1/docs/:docId/layers/:layerName/signatures/analysis",
805
1016
  layerSignaturesPrepare: "/v1/docs/:docId/layers/:layerName/signatures/prepare",
806
1017
  layerSignatureComplete: "/v1/docs/:docId/layers/:layerName/signatures/:signingId/complete",
807
- layerSignatureAbort: "/v1/docs/:docId/layers/:layerName/signatures/:signingId",
1018
+ layerSignatureCancel: "/v1/docs/:docId/layers/:layerName/signatures/:signingId",
808
1019
  docVersions: "/v1/docs/:docId/versions",
809
1020
  docVersionSignatures: "/v1/docs/:docId/versions/signatures/:sha",
810
1021
  docVersionSignatureContents: "/v1/docs/:docId/versions/signatures/:sha/:fieldKey/contents",
@@ -815,8 +1026,45 @@ const wireTemplates = {
815
1026
  };
816
1027
  //#endregion
817
1028
  //#region src/wire/resources.ts
1029
+ /** A page picture of one family, at the document's shared path. */
1030
+ function pageRenderResource(family) {
1031
+ const { resource, path, needs } = require_schemas.PAGE_RENDER_FAMILIES[family];
1032
+ return {
1033
+ id: resource,
1034
+ pathPattern: `/v1/docs/{docId}/${path}/*/data@*`,
1035
+ resolvePathPattern: (docId) => `/v1/docs/${docId}/${path}/*/data@*`,
1036
+ pathPrefix: `/v1/docs/{docId}/${path}/`,
1037
+ resolvePathPrefix: (docId) => `/v1/docs/${docId}/${path}/`,
1038
+ requirement: requirementOf(needs),
1039
+ routeKind: "versioned-read",
1040
+ cdnCacheable: true
1041
+ };
1042
+ }
1043
+ /** A page picture of one family, at a layer's path. */
1044
+ function layerPageRenderResource(family) {
1045
+ const { layerResource, path, needs } = require_schemas.PAGE_RENDER_FAMILIES[family];
1046
+ return {
1047
+ id: layerResource,
1048
+ pathPattern: `/v1/docs/{docId}/layers/{layerName}/${path}/*/data@*`,
1049
+ resolvePathPattern: (docId, layerName = "default") => `/v1/docs/${docId}/layers/${layerName}/${path}/*/data@*`,
1050
+ pathPrefix: `/v1/docs/{docId}/layers/{layerName}/${path}/`,
1051
+ resolvePathPrefix: (docId, layerName = "default") => `/v1/docs/${docId}/layers/${layerName}/${path}/`,
1052
+ requirement: requirementOf(needs),
1053
+ routeKind: "versioned-read",
1054
+ cdnCacheable: true
1055
+ };
1056
+ }
1057
+ function requirementOf(needs) {
1058
+ return needs.length === 1 ? {
1059
+ kind: "single",
1060
+ capability: needs[0]
1061
+ } : {
1062
+ kind: "all",
1063
+ capabilities: needs
1064
+ };
1065
+ }
818
1066
  /**
819
- * URL layout (paths v2): each resource type lives at a distinct path
1067
+ * URL layout: each resource type lives at a distinct path
820
1068
  * prefix so prefix-matching CDNs (Bunny, Cloud CDN, Azure FD) can
821
1069
  * enforce per-resource scope at the edge. See wire/paths.ts for the
822
1070
  * full shape and rationale.
@@ -861,32 +1109,10 @@ const DOC_RESOURCES = {
861
1109
  routeKind: "versioned-read",
862
1110
  cdnCacheable: true
863
1111
  },
864
- "page-render": {
865
- id: "page-render",
866
- pathPattern: "/v1/docs/{docId}/render/pages/*/data@*",
867
- resolvePathPattern: (docId) => `/v1/docs/${docId}/render/pages/*/data@*`,
868
- pathPrefix: "/v1/docs/{docId}/render/pages/",
869
- resolvePathPrefix: (docId) => `/v1/docs/${docId}/render/pages/`,
870
- requirement: {
871
- kind: "single",
872
- capability: "doc.render"
873
- },
874
- routeKind: "versioned-read",
875
- cdnCacheable: true
876
- },
877
- "page-render-annotated": {
878
- id: "page-render-annotated",
879
- pathPattern: "/v1/docs/{docId}/render/annotated/pages/*/data@*",
880
- resolvePathPattern: (docId) => `/v1/docs/${docId}/render/annotated/pages/*/data@*`,
881
- pathPrefix: "/v1/docs/{docId}/render/annotated/pages/",
882
- resolvePathPrefix: (docId) => `/v1/docs/${docId}/render/annotated/pages/`,
883
- requirement: {
884
- kind: "single",
885
- capability: "doc.render"
886
- },
887
- routeKind: "versioned-read",
888
- cdnCacheable: true
889
- },
1112
+ "page-render": pageRenderResource("pages"),
1113
+ "page-render-annotations": pageRenderResource("annotations"),
1114
+ "page-render-fields": pageRenderResource("fields"),
1115
+ "page-render-all": pageRenderResource("all"),
890
1116
  "page-annotations": {
891
1117
  id: "page-annotations",
892
1118
  pathPattern: "/v1/docs/{docId}/annotations/pages/*/items@*",
@@ -913,6 +1139,58 @@ const DOC_RESOURCES = {
913
1139
  routeKind: "versioned-read",
914
1140
  cdnCacheable: true
915
1141
  },
1142
+ "annotations-export": {
1143
+ id: "annotations-export",
1144
+ pathPattern: "/v1/docs/{docId}/annotations/export@*",
1145
+ resolvePathPattern: (docId) => `/v1/docs/${docId}/annotations/export@*`,
1146
+ pathPrefix: "/v1/docs/{docId}/annotations/export@",
1147
+ resolvePathPrefix: (docId) => `/v1/docs/${docId}/annotations/export@`,
1148
+ requirement: {
1149
+ kind: "all",
1150
+ capabilities: ["doc.annotate.read", "doc.download"]
1151
+ },
1152
+ routeKind: "versioned-read",
1153
+ cdnCacheable: true
1154
+ },
1155
+ "form-export": {
1156
+ id: "form-export",
1157
+ pathPattern: "/v1/docs/{docId}/form/export@*",
1158
+ resolvePathPattern: (docId) => `/v1/docs/${docId}/form/export@*`,
1159
+ pathPrefix: "/v1/docs/{docId}/form/export@",
1160
+ resolvePathPrefix: (docId) => `/v1/docs/${docId}/form/export@`,
1161
+ requirement: {
1162
+ kind: "all",
1163
+ capabilities: ["doc.forms.read", "doc.download"]
1164
+ },
1165
+ routeKind: "versioned-read",
1166
+ cdnCacheable: true
1167
+ },
1168
+ form: {
1169
+ id: "form",
1170
+ pathPattern: "/v1/docs/{docId}/form@*",
1171
+ resolvePathPattern: (docId) => `/v1/docs/${docId}/form@*`,
1172
+ pathPrefix: "/v1/docs/{docId}/form@",
1173
+ resolvePathPrefix: (docId) => `/v1/docs/${docId}/form@`,
1174
+ requirement: {
1175
+ kind: "single",
1176
+ capability: "doc.forms.read"
1177
+ },
1178
+ routeKind: "versioned-read",
1179
+ cdnCacheable: true
1180
+ },
1181
+ "page-form": {
1182
+ id: "page-form",
1183
+ pathPattern: "/v1/docs/{docId}/form/pages/*/appearances@*",
1184
+ resolvePathPattern: (docId) => `/v1/docs/${docId}/form/pages/*/appearances@*`,
1185
+ pathPrefix: "/v1/docs/{docId}/form/pages/",
1186
+ resolvePathPrefix: (docId) => `/v1/docs/${docId}/form/pages/`,
1187
+ requirement: {
1188
+ kind: "single",
1189
+ capability: "doc.forms.read"
1190
+ },
1191
+ routeKind: "versioned-read",
1192
+ cdnCacheable: true
1193
+ },
916
1194
  layout: {
917
1195
  id: "layout",
918
1196
  pathPattern: "/v1/docs/{docId}/layout@*",
@@ -939,6 +1217,19 @@ const DOC_RESOURCES = {
939
1217
  routeKind: "versioned-read",
940
1218
  cdnCacheable: true
941
1219
  },
1220
+ "metadata-custom": {
1221
+ id: "metadata-custom",
1222
+ pathPattern: "/v1/docs/{docId}/metadata/custom@*",
1223
+ resolvePathPattern: (docId) => `/v1/docs/${docId}/metadata/custom@*`,
1224
+ pathPrefix: "/v1/docs/{docId}/metadata/custom@",
1225
+ resolvePathPrefix: (docId) => `/v1/docs/${docId}/metadata/custom@`,
1226
+ requirement: {
1227
+ kind: "single",
1228
+ capability: "doc.open"
1229
+ },
1230
+ routeKind: "versioned-read",
1231
+ cdnCacheable: true
1232
+ },
942
1233
  actions: {
943
1234
  id: "actions",
944
1235
  pathPattern: "/v1/docs/{docId}/actions@*",
@@ -978,6 +1269,19 @@ const DOC_RESOURCES = {
978
1269
  routeKind: "versioned-read",
979
1270
  cdnCacheable: true
980
1271
  },
1272
+ "layer-metadata-custom": {
1273
+ id: "layer-metadata-custom",
1274
+ pathPattern: "/v1/docs/{docId}/layers/{layerName}/metadata/custom@*",
1275
+ resolvePathPattern: (docId, layerName = "default") => `/v1/docs/${docId}/layers/${layerName}/metadata/custom@*`,
1276
+ pathPrefix: "/v1/docs/{docId}/layers/{layerName}/metadata/custom@",
1277
+ resolvePathPrefix: (docId, layerName = "default") => `/v1/docs/${docId}/layers/${layerName}/metadata/custom@`,
1278
+ requirement: {
1279
+ kind: "single",
1280
+ capability: "doc.open"
1281
+ },
1282
+ routeKind: "versioned-read",
1283
+ cdnCacheable: true
1284
+ },
981
1285
  "layer-actions": {
982
1286
  id: "layer-actions",
983
1287
  pathPattern: "/v1/docs/{docId}/layers/{layerName}/actions@*",
@@ -1043,32 +1347,10 @@ const DOC_RESOURCES = {
1043
1347
  routeKind: "versioned-read",
1044
1348
  cdnCacheable: true
1045
1349
  },
1046
- "layer-page-render": {
1047
- id: "layer-page-render",
1048
- pathPattern: "/v1/docs/{docId}/layers/{layerName}/render/pages/*/data@*",
1049
- resolvePathPattern: (docId, layerName = "default") => `/v1/docs/${docId}/layers/${layerName}/render/pages/*/data@*`,
1050
- pathPrefix: "/v1/docs/{docId}/layers/{layerName}/render/pages/",
1051
- resolvePathPrefix: (docId, layerName = "default") => `/v1/docs/${docId}/layers/${layerName}/render/pages/`,
1052
- requirement: {
1053
- kind: "single",
1054
- capability: "doc.render"
1055
- },
1056
- routeKind: "versioned-read",
1057
- cdnCacheable: true
1058
- },
1059
- "layer-page-render-annotated": {
1060
- id: "layer-page-render-annotated",
1061
- pathPattern: "/v1/docs/{docId}/layers/{layerName}/render/annotated/pages/*/data@*",
1062
- resolvePathPattern: (docId, layerName = "default") => `/v1/docs/${docId}/layers/${layerName}/render/annotated/pages/*/data@*`,
1063
- pathPrefix: "/v1/docs/{docId}/layers/{layerName}/render/annotated/pages/",
1064
- resolvePathPrefix: (docId, layerName = "default") => `/v1/docs/${docId}/layers/${layerName}/render/annotated/pages/`,
1065
- requirement: {
1066
- kind: "single",
1067
- capability: "doc.render"
1068
- },
1069
- routeKind: "versioned-read",
1070
- cdnCacheable: true
1071
- },
1350
+ "layer-page-render": layerPageRenderResource("pages"),
1351
+ "layer-page-render-annotations": layerPageRenderResource("annotations"),
1352
+ "layer-page-render-fields": layerPageRenderResource("fields"),
1353
+ "layer-page-render-all": layerPageRenderResource("all"),
1072
1354
  "page-text": {
1073
1355
  id: "page-text",
1074
1356
  pathPattern: "/v1/docs/{docId}/text/pages/*/data@*",
@@ -1160,6 +1442,19 @@ const DOC_RESOURCES = {
1160
1442
  routeKind: "versioned-read",
1161
1443
  cdnCacheable: true
1162
1444
  },
1445
+ "layer-annotations-export": {
1446
+ id: "layer-annotations-export",
1447
+ pathPattern: "/v1/docs/{docId}/layers/{layerName}/annotations/export@*",
1448
+ resolvePathPattern: (docId, layerName = "default") => `/v1/docs/${docId}/layers/${layerName}/annotations/export@*`,
1449
+ pathPrefix: "/v1/docs/{docId}/layers/{layerName}/annotations/export@",
1450
+ resolvePathPrefix: (docId, layerName = "default") => `/v1/docs/${docId}/layers/${layerName}/annotations/export@`,
1451
+ requirement: {
1452
+ kind: "all",
1453
+ capabilities: ["doc.annotate.read", "doc.download"]
1454
+ },
1455
+ routeKind: "versioned-read",
1456
+ cdnCacheable: true
1457
+ },
1163
1458
  "layer-annotations-all": {
1164
1459
  id: "layer-annotations-all",
1165
1460
  pathPattern: "/v1/docs/{docId}/layers/{layerName}/annotations/items@*",
@@ -1173,6 +1468,45 @@ const DOC_RESOURCES = {
1173
1468
  routeKind: "versioned-read",
1174
1469
  cdnCacheable: true
1175
1470
  },
1471
+ "layer-form-export": {
1472
+ id: "layer-form-export",
1473
+ pathPattern: "/v1/docs/{docId}/layers/{layerName}/form/export@*",
1474
+ resolvePathPattern: (docId, layerName = "default") => `/v1/docs/${docId}/layers/${layerName}/form/export@*`,
1475
+ pathPrefix: "/v1/docs/{docId}/layers/{layerName}/form/export@",
1476
+ resolvePathPrefix: (docId, layerName = "default") => `/v1/docs/${docId}/layers/${layerName}/form/export@`,
1477
+ requirement: {
1478
+ kind: "all",
1479
+ capabilities: ["doc.forms.read", "doc.download"]
1480
+ },
1481
+ routeKind: "versioned-read",
1482
+ cdnCacheable: true
1483
+ },
1484
+ "layer-form": {
1485
+ id: "layer-form",
1486
+ pathPattern: "/v1/docs/{docId}/layers/{layerName}/form@*",
1487
+ resolvePathPattern: (docId, layerName = "default") => `/v1/docs/${docId}/layers/${layerName}/form@*`,
1488
+ pathPrefix: "/v1/docs/{docId}/layers/{layerName}/form@",
1489
+ resolvePathPrefix: (docId, layerName = "default") => `/v1/docs/${docId}/layers/${layerName}/form@`,
1490
+ requirement: {
1491
+ kind: "single",
1492
+ capability: "doc.forms.read"
1493
+ },
1494
+ routeKind: "versioned-read",
1495
+ cdnCacheable: true
1496
+ },
1497
+ "layer-page-form": {
1498
+ id: "layer-page-form",
1499
+ pathPattern: "/v1/docs/{docId}/layers/{layerName}/form/pages/*/appearances@*",
1500
+ resolvePathPattern: (docId, layerName = "default") => `/v1/docs/${docId}/layers/${layerName}/form/pages/*/appearances@*`,
1501
+ pathPrefix: "/v1/docs/{docId}/layers/{layerName}/form/pages/",
1502
+ resolvePathPrefix: (docId, layerName = "default") => `/v1/docs/${docId}/layers/${layerName}/form/pages/`,
1503
+ requirement: {
1504
+ kind: "single",
1505
+ capability: "doc.forms.read"
1506
+ },
1507
+ routeKind: "versioned-read",
1508
+ cdnCacheable: true
1509
+ },
1176
1510
  "download-current": {
1177
1511
  id: "download-current",
1178
1512
  pathPattern: "/v1/docs/{docId}/layers/{layerName}/download",
@@ -1319,15 +1653,14 @@ function checkResourceAccess(resourceId, rawScope, pdfBits) {
1319
1653
  * `requirement` at the origin route, but the CDN never gets a
1320
1654
  * credential for them.
1321
1655
  *
1322
- * The URL restructure (paths v2) guarantees each cacheable resource
1323
- * type has a distinct prefix, so prefix-matching adapters get
1324
- * per-resource scope enforcement at the edge — a Bunny token signed
1325
- * at `/v1/docs/{id}/render/pages/` can only authorize render bytes,
1326
- * never text or annotations.
1656
+ * The URL layout gives each cacheable resource type a distinct prefix,
1657
+ * so prefix-matching adapters get per-resource scope enforcement at the
1658
+ * edge — a Bunny token signed at `/v1/docs/{id}/render/pages/` can only
1659
+ * authorize render bytes, never text or annotations.
1327
1660
  */
1328
1661
  /**
1329
- * Plane map: the planes each DOC-LEVEL shared resource depends on. A
1330
- * layer token's edge credential covers a resource's prefix iff EVERY listed
1662
+ * Plane map: the planes each doc-level shared resource depends on. A
1663
+ * layer token's edge credential covers a resource's prefix iff every listed
1331
1664
  * plane is inherited (`'base'`) in the caller's scopes — the same condition
1332
1665
  * the origin guard enforces (origin is the truth; this grant is the
1333
1666
  * TTL-bounded optimization). Resources absent from this map (head, manifest,
@@ -1342,14 +1675,20 @@ function checkResourceAccess(resourceId, rawScope, pdfBits) {
1342
1675
  * as every edge grant.
1343
1676
  */
1344
1677
  const RESOURCE_PLANES = {
1345
- "page-render": ["content"],
1678
+ "page-render": require_schemas.PAGE_RENDER_FAMILIES.pages.planes,
1679
+ "page-render-annotations": require_schemas.PAGE_RENDER_FAMILIES.annotations.planes,
1680
+ "page-render-fields": require_schemas.PAGE_RENDER_FAMILIES.fields.planes,
1681
+ "page-render-all": require_schemas.PAGE_RENDER_FAMILIES.all.planes,
1346
1682
  "page-text": ["content"],
1347
1683
  "page-geometry": ["content"],
1348
- "page-render-annotated": ["content", "annotations"],
1349
1684
  "page-annotations": ["annotations"],
1350
1685
  "annotations-all": ["annotations"],
1686
+ form: ["forms"],
1687
+ "page-form": ["forms"],
1688
+ "annotations-export": ["annotations", "layout"],
1351
1689
  layout: ["layout"],
1352
1690
  metadata: ["metadata"],
1691
+ "metadata-custom": ["metadata"],
1353
1692
  actions: ["actions"],
1354
1693
  attachments: ["attachments"],
1355
1694
  "attachment-files": ["attachments"]
@@ -1379,11 +1718,11 @@ function cdnCoverageForScope(rawScope, pdfBits, context) {
1379
1718
  * effects to attach. Used by both:
1380
1719
  * - the @cloudpdf/engine HttpClient (to actually route requests through
1381
1720
  * the CDN edge when an /access response says it can)
1382
- * - the smoke/diagnostic inspector (to PREVIEW what the SDK would do
1721
+ * - the smoke/diagnostic inspector (to preview what the SDK would do
1383
1722
  * for a given path, with no network)
1384
1723
  *
1385
1724
  * Keeping this in engine-core means cloud-side request routing and
1386
- * server-side test fixtures use the SAME algorithm. If a regression
1725
+ * server-side test fixtures use the same algorithm. If a regression
1387
1726
  * sneaks in, both ends break together.
1388
1727
  *
1389
1728
  * Selection rules
@@ -1397,7 +1736,7 @@ function cdnCoverageForScope(rawScope, pdfBits, context) {
1397
1736
  * origin — that's how scope narrowing works at the edge: the
1398
1737
  * server only emits overrides for resources the caller's scope
1399
1738
  * grants.
1400
- * 3. Find the LONGEST-matching `signedPathPolicies` entry (its
1739
+ * 3. Find the longest-matching `signedPathPolicies` entry (its
1401
1740
  * `pathPrefix` is a prefix of the request path). Append its
1402
1741
  * `queryParams`. No match falls back to `signedQueryParams` if
1403
1742
  * the adapter emitted a global token.
@@ -1458,8 +1797,8 @@ function applyCdnAccess(input) {
1458
1797
  * is a (longest) prefix of `path`. Returns null when no resource
1459
1798
  * matches — admin routes, /access, /warm fall into this bucket.
1460
1799
  *
1461
- * Each cacheable resource has a DISTINCT prefix (paths v2 invariant),
1462
- * so longest-match is deterministic.
1800
+ * Each cacheable resource has a distinct prefix, so longest-match is
1801
+ * deterministic.
1463
1802
  */
1464
1803
  function resolveResourceIdForPath(path, docId, layerName) {
1465
1804
  let best = null;
@@ -1541,33 +1880,22 @@ function unflatten(flat) {
1541
1880
  /**
1542
1881
  * Project image render options plus cache versions into the flat wire shape
1543
1882
  * the render token encoder consumes. The output is a generic dotted-key map
1544
- * (`viewport.kind`, `target.rect.left`, …) — the schema and codec never need
1883
+ * (`viewport.kind`, `target.rect.x`, …) — the schema and codec never need
1545
1884
  * to know about specific option fields. Adding a new render option means
1546
1885
  * extending `PageImageOptions`, the render query schemas, and
1547
1886
  * `RenderTokenSchema.fields`; this function does not change.
1548
1887
  *
1549
- * Token/path rule: tokens carry VERSION PINS and RENDER
1550
- * PARAMETERS; anything that changes the artifact's plane-dependency set is
1551
- * PATH-expressed. Annotatedness changes the planes (`content` vs
1552
- * `content + annotations`), so the wire map never carries
1553
- * `includeAnnotations` — the caller picks the path FAMILY
1554
- * (`…/render/pages/` vs `…/render/annotated/pages/`) and passes
1555
- * `annotationVersion` iff it chose the annotated one. Contradictory states
1556
- * are unrepresentable; each family's query schema enforces its own pin
1557
- * grammar structurally.
1558
- *
1559
- * Semantic validation (viewport-kind invariants, per-family pin presence,
1560
- * rect coherence) lives in `PageRenderQuerySchema` /
1561
- * `PageRenderAnnotatedQuerySchema` and runs when the resulting URL is
1562
- * decoded server-side. Round-tripping (flatten → encode → decode →
1563
- * unflatten → schema parse) recovers the original SDK options.
1888
+ * What the picture draws is never in the token: the caller picks the
1889
+ * family's path (`PAGE_RENDER_FAMILIES`) and passes that family's pins.
1890
+ * Each family's query schema checks its own pins when the URL is decoded
1891
+ * server-side. Round-tripping (flatten → encode → decode → unflatten →
1892
+ * schema parse) recovers the original SDK options.
1564
1893
  */
1565
1894
  function renderImageOptionsToWire(options, versions) {
1566
- const { includeAnnotations: _pathExpressed, ...wireOptions } = options;
1895
+ const { includeAnnotations: _inThePath, includeFormFields: _alsoInThePath, ...wireOptions } = options;
1567
1896
  return flatten({
1568
1897
  ...wireOptions,
1569
- contentVersion: versions.contentVersion,
1570
- ...versions.annotationVersion !== void 0 ? { annotationVersion: versions.annotationVersion } : {}
1898
+ ...versions
1571
1899
  });
1572
1900
  }
1573
1901
  /**
@@ -1578,17 +1906,18 @@ function renderImageOptionsToToken(options, versions) {
1578
1906
  return encodeRenderToken(renderImageOptionsToWire(options, versions));
1579
1907
  }
1580
1908
  /**
1581
- * Re-attach `includeAnnotations` onto the worker-side `PageRenderOptions`
1582
- * shape. Pure shape transform; consumed by the server route after
1583
- * `PageRenderQuerySchema` has produced the SDK-shaped options.
1909
+ * The worker-side `PageRenderOptions` of a parsed picture request: the
1910
+ * render options, and what its family draws (stamped by the family's query
1911
+ * schema). Pure shape transform; image encoding stays out.
1584
1912
  */
1585
- function pageRenderOptionsFromImageOptions(options, includeAnnotations) {
1913
+ function pageRenderOptionsFromImageOptions(options) {
1586
1914
  return {
1587
1915
  ...options.target ? { target: options.target } : {},
1588
1916
  ...options.viewport ? { viewport: options.viewport } : {},
1589
1917
  ...options.rotation !== void 0 ? { rotation: options.rotation } : {},
1590
1918
  ...options.background !== void 0 ? { background: options.background } : {},
1591
- includeAnnotations
1919
+ includeAnnotations: options.includeAnnotations ?? false,
1920
+ includeFormFields: options.includeFormFields ?? false
1592
1921
  };
1593
1922
  }
1594
1923
  /**
@@ -1597,15 +1926,33 @@ function pageRenderOptionsFromImageOptions(options, includeAnnotations) {
1597
1926
  * Mirrors {@link renderImageOptionsToWire}.
1598
1927
  */
1599
1928
  function annotationAppearancesImageOptionsToWire(options, versions) {
1600
- return flatten({
1601
- ...options,
1602
- annotationVersion: versions.annotationVersion
1603
- });
1929
+ return appearancesToWire(options, { annotationVersion: versions.annotationVersion });
1604
1930
  }
1605
1931
  /** Convenience: build the full encoded appearance render token in one call. */
1606
1932
  function annotationAppearancesImageOptionsToToken(options, versions) {
1607
1933
  return encodeAnnotationAppearancesRenderToken(annotationAppearancesImageOptionsToWire(options, versions));
1608
1934
  }
1935
+ /** The widget twin of {@link annotationAppearancesImageOptionsToWire}. */
1936
+ function widgetAppearancesImageOptionsToWire(options, versions) {
1937
+ return appearancesToWire(options, { widgetVersion: versions.widgetVersion });
1938
+ }
1939
+ /** The widget twin of {@link annotationAppearancesImageOptionsToToken}. */
1940
+ function widgetAppearancesImageOptionsToToken(options, versions) {
1941
+ return encodeWidgetAppearancesRenderToken(widgetAppearancesImageOptionsToWire(options, versions));
1942
+ }
1943
+ /**
1944
+ * Appearance options and a pin, flat. `modes` only when it asks for fewer
1945
+ * than every mode, as one value, so every request for all of them is one URL.
1946
+ */
1947
+ function appearancesToWire(options, pin) {
1948
+ const { modes, ...rest } = options;
1949
+ const asked = require_charmap.appearanceModesOf(modes);
1950
+ return flatten({
1951
+ ...rest,
1952
+ ...asked ? { modes: encodeAppearanceModes(asked) } : {},
1953
+ ...pin
1954
+ });
1955
+ }
1609
1956
  /**
1610
1957
  * Strip image-encoding fields, leaving the worker-side
1611
1958
  * `AnnotationAppearanceRenderOptions`. Pure shape transform consumed by the
@@ -1614,67 +1961,326 @@ function annotationAppearancesImageOptionsToToken(options, versions) {
1614
1961
  */
1615
1962
  function annotationRenderOptionsFromImageOptions(options) {
1616
1963
  return {
1617
- ...options.scale !== void 0 ? { scale: options.scale } : {},
1964
+ ...options.viewport ? { viewport: options.viewport } : {},
1618
1965
  ...options.rotation !== void 0 ? { rotation: options.rotation } : {},
1619
1966
  ...options.modes ? { modes: options.modes } : {}
1620
1967
  };
1621
1968
  }
1622
1969
  //#endregion
1623
- exports.ANNOTATION_KINDS = require_schemas.ANNOTATION_KINDS;
1970
+ //#region src/wire/changeSchemas.ts
1971
+ /**
1972
+ * `POST /v1/docs/{docId}/layers/{layerName}/changes`: a request's changes and
1973
+ * their answers. A change's bytes (a stamp's drawing, an attached file, a
1974
+ * signature's artwork) travel as multipart parts beside the JSON
1975
+ * (`resource:{key}`), which names them by key where the change takes them.
1976
+ */
1977
+ /** An op's id for its change: 1 to 255 visible ASCII characters, as `opId` always is. */
1978
+ const OpIdSchema = zod.z.string().regex(/^[\x21-\x7e]{1,255}$/);
1979
+ const FormFieldDisplaySchema = zod.z.enum([
1980
+ "visible",
1981
+ "hidden",
1982
+ "noPrint",
1983
+ "noView"
1984
+ ]);
1985
+ /** One op of a change, as the request sends it. */
1986
+ const ChangeOpWireSchema = zod.z.discriminatedUnion("type", [
1987
+ zod.z.object({
1988
+ type: zod.z.literal("annotations.create"),
1989
+ page: require_schema.PageRefSchema,
1990
+ data: require_schema.AnnotationDraftSchema,
1991
+ objectNumber: zod.z.number().int().positive().optional(),
1992
+ resources: require_schema.AnnotationResourceKeysSchema.optional()
1993
+ }),
1994
+ zod.z.object({
1995
+ type: zod.z.literal("annotations.update"),
1996
+ ref: require_schema.AnnotationRefSchema,
1997
+ patch: require_schema.AnnotationPatchSchema,
1998
+ resources: require_schema.AnnotationResourceKeysSchema.optional(),
1999
+ expect: require_schema.AnnotationPatchSchema.optional()
2000
+ }),
2001
+ zod.z.object({
2002
+ type: zod.z.literal("annotations.delete"),
2003
+ ref: require_schema.AnnotationRefSchema,
2004
+ expect: require_schema.AnnotationPatchSchema.optional()
2005
+ }),
2006
+ zod.z.object({
2007
+ type: zod.z.literal("annotations.reorder"),
2008
+ page: require_schema.PageRefSchema,
2009
+ refs: zod.z.array(require_schema.AnnotationRefSchema).min(1),
2010
+ position: require_schemas.AnnotationPositionSchema
2011
+ }),
2012
+ zod.z.object({
2013
+ type: zod.z.literal("forms.setValue"),
2014
+ field: require_schema.FormFieldRefSchema,
2015
+ value: require_schema.FormFieldValueSchema,
2016
+ expect: require_schema.FormFieldValueSchema.optional()
2017
+ }),
2018
+ zod.z.object({
2019
+ type: zod.z.literal("forms.setDisplay"),
2020
+ field: require_schema.FormFieldRefSchema,
2021
+ display: FormFieldDisplaySchema
2022
+ }),
2023
+ zod.z.object({
2024
+ type: zod.z.literal("forms.setAppearanceText"),
2025
+ field: require_schema.FormFieldRefSchema,
2026
+ text: zod.z.string()
2027
+ }),
2028
+ zod.z.object({
2029
+ type: zod.z.literal("forms.reset"),
2030
+ fields: zod.z.array(require_schema.FormFieldRefSchema).optional()
2031
+ }),
2032
+ zod.z.object({
2033
+ type: zod.z.literal("forms.create"),
2034
+ draft: require_schema.FormFieldDraftSchema,
2035
+ objectNumber: zod.z.number().int().positive().optional(),
2036
+ widgetObjectNumbers: zod.z.array(zod.z.number().int().positive()).optional()
2037
+ }),
2038
+ zod.z.object({
2039
+ type: zod.z.literal("forms.update"),
2040
+ field: require_schema.FormFieldRefSchema,
2041
+ patch: require_schema.FormFieldPatchSchema,
2042
+ expect: require_schema.FormFieldPatchSchema.optional()
2043
+ }),
2044
+ zod.z.object({
2045
+ type: zod.z.literal("forms.delete"),
2046
+ field: require_schema.FormFieldRefSchema,
2047
+ expect: require_schema.FormFieldPatchSchema.optional()
2048
+ }),
2049
+ zod.z.object({
2050
+ type: zod.z.literal("forms.addWidget"),
2051
+ field: require_schema.FormFieldRefSchema,
2052
+ placement: require_schema.WidgetPlacementSchema,
2053
+ objectNumber: zod.z.number().int().positive().optional(),
2054
+ splitObjectNumber: zod.z.number().int().positive().optional()
2055
+ }),
2056
+ zod.z.object({
2057
+ type: zod.z.literal("forms.removeWidget"),
2058
+ field: require_schema.FormFieldRefSchema,
2059
+ widget: require_schema.AnnotationRefSchema
2060
+ }),
2061
+ zod.z.object({
2062
+ type: zod.z.literal("forms.deleteWidget"),
2063
+ widget: require_schema.AnnotationRefSchema,
2064
+ expect: require_schema.WidgetPatchSchema.optional()
2065
+ }),
2066
+ zod.z.object({
2067
+ type: zod.z.literal("forms.reorderCalculations"),
2068
+ fields: zod.z.array(require_schema.FormFieldRefSchema).min(1),
2069
+ position: require_schemas.FieldPositionSchema
2070
+ }),
2071
+ zod.z.object({
2072
+ type: zod.z.literal("forms.reorderWidgets"),
2073
+ page: require_schema.PageRefSchema,
2074
+ widgets: zod.z.array(require_schema.AnnotationRefSchema).min(1),
2075
+ position: require_schemas.AnnotationPositionSchema
2076
+ }),
2077
+ zod.z.object({
2078
+ type: zod.z.literal("forms.updateWidget"),
2079
+ widget: require_schema.AnnotationRefSchema,
2080
+ patch: require_schema.WidgetPatchSchema,
2081
+ expect: require_schema.WidgetPatchSchema.optional()
2082
+ }),
2083
+ zod.z.object({
2084
+ type: zod.z.literal("forms.setSignatureAppearance"),
2085
+ field: require_schema.FormFieldRefSchema,
2086
+ /** The one-page PDF drawn in, as the key of its multipart part. */
2087
+ resources: require_schema.AppearanceResourceKeysSchema
2088
+ }),
2089
+ zod.z.object({
2090
+ type: zod.z.literal("metadata.update"),
2091
+ patch: require_schemas.MetadataPatchSchema,
2092
+ expect: require_schemas.MetadataPatchSchema.optional()
2093
+ }),
2094
+ zod.z.object({
2095
+ type: zod.z.literal("metadata.updateCustom"),
2096
+ patch: require_schemas.CustomMetadataPatchSchema
2097
+ })
2098
+ ]);
2099
+ /**
2100
+ * One change of a request: its `ops`, or `undoOf`, the undo of an earlier
2101
+ * change. One object with exactly one of the two, so the wire has no untagged
2102
+ * union (the API reference labels variants by a discriminating literal).
2103
+ */
2104
+ const ChangeEntryWireSchema = zod.z.object({
2105
+ opId: OpIdSchema,
2106
+ ops: zod.z.array(ChangeOpWireSchema).optional(),
2107
+ undoOf: OpIdSchema.optional()
2108
+ }).strict().refine((entry) => entry.ops === void 0 !== (entry.undoOf === void 0), { message: "exactly one of ops or undoOf" });
2109
+ /** What a request may hold. */
2110
+ const CHANGE_REQUEST_LIMITS = {
2111
+ /** Changes per request. */
2112
+ changes: 64,
2113
+ /** Ops per change. */
2114
+ ops: 512
2115
+ };
2116
+ /** A `POST …/changes` body: the changes, applied in order, each on its own. */
2117
+ const ChangeRequestSchema = zod.z.object({ changes: zod.z.array(ChangeEntryWireSchema).min(1).max(CHANGE_REQUEST_LIMITS.changes) });
2118
+ /** What an item can be: an op's type, or a restore (only in an undo). */
2119
+ const ChangeItemTypeSchema = zod.z.enum([
2120
+ ...ChangeOpWireSchema.options.map((op) => op.shape.type.value),
2121
+ "annotations.restore",
2122
+ "forms.restore"
2123
+ ]);
2124
+ /** What an undo left alone, by name. */
2125
+ const SkippedFieldsSchema = zod.z.array(zod.z.string()).optional();
2126
+ /** An item of `type`: its verb's result, after the type and what else the item adds. */
2127
+ function itemOf(type, result, extra = {}) {
2128
+ return zod.z.object({
2129
+ type: zod.z.literal(type),
2130
+ ...extra
2131
+ }).merge(result);
2132
+ }
2133
+ /**
2134
+ * One item of a change's result: what one op did, or that an undo left it
2135
+ * alone (`skipped`). Every item names itself by `type`.
2136
+ */
2137
+ const ChangeItemSchema = zod.z.union([
2138
+ zod.z.object({
2139
+ type: zod.z.literal("skipped"),
2140
+ /** The item it would have been. */
2141
+ op: ChangeItemTypeSchema,
2142
+ meta: require_schemas.MutationMetaSchema
2143
+ }),
2144
+ itemOf("annotations.create", require_schemas.AnnotationCreateResultSchema, { page: require_schema.PageRefSchema }),
2145
+ itemOf("annotations.update", require_schemas.AnnotationUpdateResultSchema, {
2146
+ page: require_schema.PageRefSchema,
2147
+ skipped: SkippedFieldsSchema
2148
+ }),
2149
+ itemOf("annotations.delete", require_schemas.AnnotationDeleteResultSchema, { page: require_schema.PageRefSchema }),
2150
+ itemOf("annotations.reorder", require_schemas.AnnotationReorderResultSchema, { page: require_schema.PageRefSchema }),
2151
+ zod.z.object({
2152
+ type: zod.z.literal("annotations.restore"),
2153
+ page: require_schema.PageRefSchema,
2154
+ annotations: zod.z.array(require_schema.AnnotationSchema),
2155
+ meta: require_schemas.AnnotationListMutationMetaSchema
2156
+ }),
2157
+ itemOf("forms.setValue", require_schemas.FormSetValueResultSchema),
2158
+ itemOf("forms.setDisplay", require_schemas.FormFieldUpdateResultSchema),
2159
+ itemOf("forms.setAppearanceText", require_schemas.FormFieldUpdateResultSchema),
2160
+ itemOf("forms.reset", require_schemas.FormResetResultSchema, { skipped: SkippedFieldsSchema }),
2161
+ itemOf("forms.create", require_schemas.FormFieldCreateResultSchema),
2162
+ itemOf("forms.update", require_schemas.FormFieldUpdateResultSchema, { skipped: SkippedFieldsSchema }),
2163
+ itemOf("forms.delete", require_schemas.FormFieldDeleteResultSchema),
2164
+ zod.z.object({
2165
+ type: zod.z.literal("forms.restore"),
2166
+ field: require_schema.FormFieldDTOSchema,
2167
+ widgets: zod.z.array(require_schema.WidgetDTOSchema),
2168
+ meta: require_schemas.FormMutationMetaSchema
2169
+ }),
2170
+ itemOf("forms.setSignatureAppearance", require_schemas.FormFieldUpdateResultSchema),
2171
+ itemOf("forms.addWidget", require_schemas.FormWidgetLinkResultSchema),
2172
+ itemOf("forms.removeWidget", require_schemas.FormWidgetLinkResultSchema),
2173
+ itemOf("forms.deleteWidget", require_schemas.FormWidgetDeleteResultSchema),
2174
+ itemOf("forms.restoreWidget", require_schemas.FormWidgetRestoreResultSchema),
2175
+ itemOf("forms.reorderWidgets", require_schemas.FormWidgetsReorderResultSchema),
2176
+ itemOf("forms.reorderCalculations", require_schemas.FormCalculationsReorderResultSchema),
2177
+ itemOf("forms.updateWidget", require_schemas.FormWidgetUpdateResultSchema, { skipped: SkippedFieldsSchema }),
2178
+ itemOf("metadata.update", require_schemas.MetadataUpdateResultSchema, { skipped: SkippedFieldsSchema }),
2179
+ itemOf("metadata.updateCustom", require_schemas.CustomMetadataUpdateResultSchema, { skipped: SkippedFieldsSchema })
2180
+ ]);
2181
+ /** What a change did: one item per op (per step of an undo), and its meta. */
2182
+ const ChangeResultSchema = zod.z.object({
2183
+ items: zod.z.array(ChangeItemSchema),
2184
+ meta: require_schemas.MutationMetaSchema
2185
+ });
2186
+ /** One change's answer: applied with its result, or refused with the error. */
2187
+ const ChangeAnswerSchema = zod.z.discriminatedUnion("status", [zod.z.object({
2188
+ opId: zod.z.string(),
2189
+ status: zod.z.literal("applied"),
2190
+ result: ChangeResultSchema
2191
+ }), zod.z.object({
2192
+ opId: zod.z.string(),
2193
+ status: zod.z.literal("refused"),
2194
+ error: require_schemas.EngineErrorPayloadSchema
2195
+ })]);
2196
+ /** A `POST …/changes` response: one answer per change, in order. */
2197
+ const ChangeResponseSchema = zod.z.object({ changes: zod.z.array(ChangeAnswerSchema) });
2198
+ /**
2199
+ * Stable public component names for the change wire model, so an OpenAPI
2200
+ * projection names an op, an item and a result once, like
2201
+ * `AnnotationWireComponents`.
2202
+ */
2203
+ const ChangeWireComponents = {
2204
+ ChangeOp: ChangeOpWireSchema,
2205
+ ChangeItem: ChangeItemSchema,
2206
+ ChangeResult: ChangeResultSchema
2207
+ };
2208
+ //#endregion
2209
+ exports.ANNOTATION_KINDS = require_schema.ANNOTATION_KINDS;
1624
2210
  exports.AccessRequestSchema = require_schemas.AccessRequestSchema;
1625
2211
  exports.AccessResponseSchema = require_schemas.AccessResponseSchema;
1626
2212
  exports.ActionsTokenSchema = ActionsTokenSchema;
2213
+ exports.AnnotationAppearanceBatchSchema = require_schemas.AnnotationAppearanceBatchSchema;
1627
2214
  exports.AnnotationAppearanceExportInputSchema = require_schemas.AnnotationAppearanceExportInputSchema;
1628
- exports.AnnotationAppearanceManifestSchema = require_schemas.AnnotationAppearanceManifestSchema;
1629
2215
  exports.AnnotationAppearancesQuerySchema = require_schemas.AnnotationAppearancesQuerySchema;
1630
2216
  exports.AnnotationAppearancesRenderTokenSchema = AnnotationAppearancesRenderTokenSchema;
1631
- exports.AnnotationBaseShape = require_schemas.AnnotationBaseShape;
1632
- exports.AnnotationBorderStyleSchema = require_schemas.AnnotationBorderStyleSchema;
2217
+ exports.AnnotationBorderStyleSchema = require_schema.AnnotationBorderStyleSchema;
1633
2218
  exports.AnnotationCreateResultSchema = require_schemas.AnnotationCreateResultSchema;
1634
- exports.AnnotationDTOSchema = require_schemas.AnnotationDTOSchema;
1635
2219
  exports.AnnotationDeleteResultSchema = require_schemas.AnnotationDeleteResultSchema;
1636
- exports.AnnotationDraftBaseShape = require_schemas.AnnotationDraftBaseShape;
1637
- exports.AnnotationDraftSchema = require_schemas.AnnotationDraftSchema;
1638
- exports.AnnotationFlagsPartialSchema = require_schemas.AnnotationFlagsPartialSchema;
1639
- exports.AnnotationFlagsSchema = require_schemas.AnnotationFlagsSchema;
2220
+ exports.AnnotationDraftSchema = require_schema.AnnotationDraftSchema;
2221
+ exports.AnnotationExportSelectionSchema = require_schemas.AnnotationExportSelectionSchema;
1640
2222
  exports.AnnotationFlattenInputSchema = require_schemas.AnnotationFlattenInputSchema;
1641
2223
  exports.AnnotationFlattenResultSchema = require_schemas.AnnotationFlattenResultSchema;
2224
+ exports.AnnotationImportBodySchema = require_schemas.AnnotationImportBodySchema;
2225
+ exports.AnnotationImportOptionsSchema = require_schemas.AnnotationImportOptionsSchema;
2226
+ exports.AnnotationImportResultSchema = require_schemas.AnnotationImportResultSchema;
1642
2227
  exports.AnnotationListMutationMetaSchema = require_schemas.AnnotationListMutationMetaSchema;
1643
- exports.AnnotationListPageSnapshotSchema = require_schemas.AnnotationListPageSnapshotSchema;
1644
- exports.AnnotationListSnapshotAllPagesSchema = require_schemas.AnnotationListSnapshotAllPagesSchema;
1645
- exports.AnnotationMoveResultSchema = require_schemas.AnnotationMoveResultSchema;
1646
- exports.AnnotationPatchBaseShape = require_schemas.AnnotationPatchBaseShape;
1647
- exports.AnnotationPatchSchema = require_schemas.AnnotationPatchSchema;
1648
- exports.AnnotationRefSchema = require_schemas.AnnotationRefSchema;
1649
- exports.AnnotationStableIdSchema = require_schemas.AnnotationStableIdSchema;
2228
+ exports.AnnotationListSchema = require_schemas.AnnotationListSchema;
2229
+ exports.AnnotationPatchSchema = require_schema.AnnotationPatchSchema;
2230
+ exports.AnnotationPositionSchema = require_schemas.AnnotationPositionSchema;
2231
+ exports.AnnotationRefSchema = require_schema.AnnotationRefSchema;
2232
+ exports.AnnotationReorderBodySchema = require_schemas.AnnotationReorderBodySchema;
2233
+ exports.AnnotationReorderResultSchema = require_schemas.AnnotationReorderResultSchema;
2234
+ exports.AnnotationResourceKeysSchema = require_schema.AnnotationResourceKeysSchema;
2235
+ exports.AnnotationSchema = require_schema.AnnotationSchema;
1650
2236
  exports.AnnotationTokenSchema = AnnotationTokenSchema;
1651
2237
  exports.AnnotationUpdateResultSchema = require_schemas.AnnotationUpdateResultSchema;
2238
+ exports.AnnotationWireComponents = require_schemas.AnnotationWireComponents;
2239
+ exports.AnnotationsExportRequestSchema = require_schemas.AnnotationsExportRequestSchema;
1652
2240
  exports.AppearanceOutcomeSchema = require_schemas.AppearanceOutcomeSchema;
2241
+ exports.AppearanceResourceKeysSchema = require_schema.AppearanceResourceKeysSchema;
1653
2242
  exports.AttachmentCreateResultSchema = require_schemas.AttachmentCreateResultSchema;
1654
2243
  exports.AttachmentDeleteResultSchema = require_schemas.AttachmentDeleteResultSchema;
1655
- exports.AttachmentFileInfoSchema = require_schemas.AttachmentFileInfoSchema;
1656
- exports.AttachmentsCacheSchema = require_schemas.AttachmentsCacheSchema;
2244
+ exports.AttachmentFileInfoSchema = require_schema.AttachmentFileInfoSchema;
2245
+ exports.AttachmentListSchema = require_schemas.AttachmentListSchema;
2246
+ exports.AttachmentMutationMetaSchema = require_schemas.AttachmentMutationMetaSchema;
2247
+ exports.AttachmentRefSchema = require_schema.AttachmentRefSchema;
2248
+ exports.AttachmentSchema = require_schema.AttachmentSchema;
1657
2249
  exports.BaseVersionInfoSchema = require_schemas.BaseVersionInfoSchema;
1658
- exports.BlendModeSchema = require_schemas.BlendModeSchema;
2250
+ exports.BlendModeSchema = require_schema.BlendModeSchema;
2251
+ exports.BundleLimitsSchema = require_schemas.BundleLimitsSchema;
1659
2252
  exports.ByteRangeSchema = require_schemas.ByteRangeSchema;
2253
+ exports.CHANGE_REQUEST_LIMITS = CHANGE_REQUEST_LIMITS;
1660
2254
  exports.CacheDeltaSchema = require_schemas.CacheDeltaSchema;
1661
2255
  exports.CachePinsSchema = require_schemas.CachePinsSchema;
1662
- exports.CalloutLineSchema = require_schemas.CalloutLineSchema;
1663
- exports.CaretDTOSchema = require_schemas.CaretDTOSchema;
1664
- exports.CaretDraftSchema = require_schemas.CaretDraftSchema;
1665
- exports.CaretIntentSchema = require_schemas.CaretIntentSchema;
1666
- exports.CaretPatchSchema = require_schemas.CaretPatchSchema;
2256
+ exports.CalloutLineSchema = require_schema.CalloutLineSchema;
2257
+ exports.CaretDTOSchema = require_schema.CaretDTOSchema;
2258
+ exports.CaretDraftSchema = require_schema.CaretDraftSchema;
2259
+ exports.CaretIntentSchema = require_schema.CaretIntentSchema;
2260
+ exports.CaretPatchSchema = require_schema.CaretPatchSchema;
1667
2261
  exports.ChangeAnalysisSchema = require_schemas.ChangeAnalysisSchema;
1668
- exports.CircleDTOSchema = require_schemas.CircleDTOSchema;
1669
- exports.CircleDraftSchema = require_schemas.CircleDraftSchema;
1670
- exports.CirclePatchSchema = require_schemas.CirclePatchSchema;
1671
- exports.ColorSchema = require_schemas.ColorSchema;
2262
+ exports.ChangeAnswerSchema = ChangeAnswerSchema;
2263
+ exports.ChangeEntryWireSchema = ChangeEntryWireSchema;
2264
+ exports.ChangeItemSchema = ChangeItemSchema;
2265
+ exports.ChangeOpWireSchema = ChangeOpWireSchema;
2266
+ exports.ChangeRequestSchema = ChangeRequestSchema;
2267
+ exports.ChangeResponseSchema = ChangeResponseSchema;
2268
+ exports.ChangeResultSchema = ChangeResultSchema;
2269
+ exports.ChangeWireComponents = ChangeWireComponents;
2270
+ exports.CircleDTOSchema = require_schema.CircleDTOSchema;
2271
+ exports.CircleDraftSchema = require_schema.CircleDraftSchema;
2272
+ exports.CirclePatchSchema = require_schema.CirclePatchSchema;
2273
+ exports.ColorSchema = require_schema.ColorSchema;
1672
2274
  exports.ContentTokenSchema = ContentTokenSchema;
2275
+ exports.CustomMetadataPatchSchema = require_schemas.CustomMetadataPatchSchema;
2276
+ exports.CustomMetadataSchema = require_schemas.CustomMetadataSchema;
2277
+ exports.CustomMetadataUpdateResultSchema = require_schemas.CustomMetadataUpdateResultSchema;
1673
2278
  exports.DEFAULT_LAYER_NAME = DEFAULT_LAYER_NAME;
1674
2279
  exports.DOC_RESOURCES = DOC_RESOURCES;
2280
+ exports.DateInputSchema = require_schema.DateInputSchema;
1675
2281
  exports.DigestAlgorithmSchema = require_schemas.DigestAlgorithmSchema;
1676
2282
  exports.DocTokenSchema = DocTokenSchema;
1677
- exports.DocumentActionsSnapshotSchema = require_schemas.DocumentActionsSnapshotSchema;
2283
+ exports.DocumentActionsSnapshotSchema = require_schema.DocumentActionsSnapshotSchema;
1678
2284
  exports.DocumentHeadSchema = require_schemas.DocumentHeadSchema;
1679
2285
  exports.DocumentManifestSchema = require_schemas.DocumentManifestSchema;
1680
2286
  exports.DocumentMetadataSchema = require_schemas.DocumentMetadataSchema;
@@ -1683,64 +2289,95 @@ exports.DocumentSecurityStateSchema = require_schemas.DocumentSecurityStateSchem
1683
2289
  exports.DocumentVersionRefSchema = require_schemas.DocumentVersionRefSchema;
1684
2290
  exports.DocumentVersionSchema = require_schemas.DocumentVersionSchema;
1685
2291
  exports.DocumentVersionsSchema = require_schemas.DocumentVersionsSchema;
1686
- exports.EmbeddedFileItemSchema = require_schemas.EmbeddedFileItemSchema;
1687
- exports.EmbeddedFileRefSchema = require_schemas.EmbeddedFileRefSchema;
2292
+ exports.DocumentWireComponents = require_schemas.DocumentWireComponents;
2293
+ exports.DrawnBorderStyleSchema = require_schema.DrawnBorderStyleSchema;
2294
+ exports.EditSessionAccessSchema = require_schemas.EditSessionAccessSchema;
2295
+ exports.EditSessionStatusSchema = require_schemas.EditSessionStatusSchema;
1688
2296
  exports.EngineErrorPayloadSchema = require_schemas.EngineErrorPayloadSchema;
2297
+ exports.FieldActionsPatchSchema = require_schema.FieldActionsPatchSchema;
1689
2298
  exports.FieldLockSpecSchema = require_schemas.FieldLockSpecSchema;
1690
- exports.FileAttachmentDTOSchema = require_schemas.FileAttachmentDTOSchema;
1691
- exports.FileAttachmentIconSchema = require_schemas.FileAttachmentIconSchema;
1692
- exports.FileAttachmentPatchSchema = require_schemas.FileAttachmentPatchSchema;
1693
- exports.FileAttachmentWireDraftSchema = require_schemas.FileAttachmentWireDraftSchema;
1694
- exports.FormDataFormatSchema = require_schemas.FormDataFormatSchema;
1695
- exports.FormEffectSchema = require_schemas.FormEffectSchema;
1696
- exports.FormEffectsResultSchema = require_schemas.FormEffectsResultSchema;
2299
+ exports.FieldPositionSchema = require_schemas.FieldPositionSchema;
2300
+ exports.FieldScriptWriteSchema = require_schema.FieldScriptWriteSchema;
2301
+ exports.FileAttachmentDTOSchema = require_schema.FileAttachmentDTOSchema;
2302
+ exports.FileAttachmentDraftSchema = require_schema.FileAttachmentDraftSchema;
2303
+ exports.FileAttachmentIconSchema = require_schema.FileAttachmentIconSchema;
2304
+ exports.FileAttachmentPatchSchema = require_schema.FileAttachmentPatchSchema;
2305
+ exports.FileResourceKeysSchema = require_schema.FileResourceKeysSchema;
2306
+ exports.FileWidgetActionsPatchSchema = require_schema.FileWidgetActionsPatchSchema;
2307
+ exports.FormCalculationsReorderBodySchema = require_schemas.FormCalculationsReorderBodySchema;
2308
+ exports.FormCalculationsReorderResultSchema = require_schemas.FormCalculationsReorderResultSchema;
2309
+ exports.FormExportRequestSchema = require_schemas.FormExportRequestSchema;
2310
+ exports.FormExportSelectionSchema = require_schemas.FormExportSelectionSchema;
1697
2311
  exports.FormFieldCreateResultSchema = require_schemas.FormFieldCreateResultSchema;
1698
- exports.FormFieldDTOSchema = require_schemas.FormFieldDTOSchema;
2312
+ exports.FormFieldDTOSchema = require_schema.FormFieldDTOSchema;
1699
2313
  exports.FormFieldDeleteResultSchema = require_schemas.FormFieldDeleteResultSchema;
1700
- exports.FormFieldDraftSchema = require_schemas.FormFieldDraftSchema;
1701
- exports.FormFieldFlagsSchema = require_schemas.FormFieldFlagsSchema;
1702
- exports.FormFieldOptionInputSchema = require_schemas.FormFieldOptionInputSchema;
1703
- exports.FormFieldOptionSchema = require_schemas.FormFieldOptionSchema;
1704
- exports.FormFieldPatchSchema = require_schemas.FormFieldPatchSchema;
1705
- exports.FormFieldRefSchema = require_schemas.FormFieldRefSchema;
2314
+ exports.FormFieldDraftSchema = require_schema.FormFieldDraftSchema;
2315
+ exports.FormFieldOptionInputSchema = require_schema.FormFieldOptionInputSchema;
2316
+ exports.FormFieldOptionSchema = require_schema.FormFieldOptionSchema;
2317
+ exports.FormFieldPatchSchema = require_schema.FormFieldPatchSchema;
2318
+ exports.FormFieldRefSchema = require_schema.FormFieldRefSchema;
1706
2319
  exports.FormFieldUpdateResultSchema = require_schemas.FormFieldUpdateResultSchema;
1707
- exports.FormFieldValueSchema = require_schemas.FormFieldValueSchema;
2320
+ exports.FormFieldValueSchema = require_schema.FormFieldValueSchema;
2321
+ exports.FormImportBodySchema = require_schemas.FormImportBodySchema;
2322
+ exports.FormImportOptionsSchema = require_schemas.FormImportOptionsSchema;
1708
2323
  exports.FormImportResultSchema = require_schemas.FormImportResultSchema;
1709
- exports.FormKindSchema = require_schemas.FormKindSchema;
2324
+ exports.FormKindSchema = require_schema.FormKindSchema;
2325
+ exports.FormMutationMetaSchema = require_schemas.FormMutationMetaSchema;
1710
2326
  exports.FormRepairResultSchema = require_schemas.FormRepairResultSchema;
2327
+ exports.FormResetBodySchema = require_schemas.FormResetBodySchema;
2328
+ exports.FormResetResultSchema = require_schemas.FormResetResultSchema;
1711
2329
  exports.FormSetValueResultSchema = require_schemas.FormSetValueResultSchema;
1712
- exports.FormSnapshotSchema = require_schemas.FormSnapshotSchema;
2330
+ exports.FormSnapshotSchema = require_schema.FormSnapshotSchema;
1713
2331
  exports.FormSubmissionEntrySchema = FormSubmissionEntrySchema;
1714
2332
  exports.FormSubmissionReceiptSchema = FormSubmissionReceiptSchema;
1715
2333
  exports.FormSubmissionRequestSchema = FormSubmissionRequestSchema;
1716
- exports.FormValueEntrySchema = require_schemas.FormValueEntrySchema;
2334
+ exports.FormTokenSchema = FormTokenSchema;
2335
+ exports.FormValueEntrySchema = require_schema.FormValueEntrySchema;
2336
+ exports.FormValuesImportBodySchema = require_schemas.FormValuesImportBodySchema;
2337
+ exports.FormValuesImportOptionsSchema = require_schemas.FormValuesImportOptionsSchema;
2338
+ exports.FormValuesImportResultSchema = require_schemas.FormValuesImportResultSchema;
2339
+ exports.FormWidgetDeleteResultSchema = require_schemas.FormWidgetDeleteResultSchema;
1717
2340
  exports.FormWidgetLinkResultSchema = require_schemas.FormWidgetLinkResultSchema;
1718
- exports.FormWidgetRefSchema = require_schemas.FormWidgetRefSchema;
1719
- exports.FreeTextDTOSchema = require_schemas.FreeTextDTOSchema;
1720
- exports.FreeTextDraftSchema = require_schemas.FreeTextDraftSchema;
1721
- exports.FreeTextIntentSchema = require_schemas.FreeTextIntentSchema;
1722
- exports.FreeTextPatchSchema = require_schemas.FreeTextPatchSchema;
1723
- exports.HighlightDTOSchema = require_schemas.HighlightDTOSchema;
1724
- exports.HighlightDraftSchema = require_schemas.HighlightDraftSchema;
1725
- exports.HighlightPatchSchema = require_schemas.HighlightPatchSchema;
1726
- exports.InkDTOSchema = require_schemas.InkDTOSchema;
1727
- exports.InkDraftSchema = require_schemas.InkDraftSchema;
1728
- exports.InkIntentSchema = require_schemas.InkIntentSchema;
1729
- exports.InkListSchema = require_schemas.InkListSchema;
1730
- exports.InkPatchSchema = require_schemas.InkPatchSchema;
1731
- exports.KIND_BY_SUBTYPE = require_schemas.KIND_BY_SUBTYPE;
2341
+ exports.FormWidgetRestoreResultSchema = require_schemas.FormWidgetRestoreResultSchema;
2342
+ exports.FormWidgetSchema = require_schema.FormWidgetSchema;
2343
+ exports.FormWidgetUpdateBodySchema = require_schemas.FormWidgetUpdateBodySchema;
2344
+ exports.FormWidgetUpdateResultSchema = require_schemas.FormWidgetUpdateResultSchema;
2345
+ exports.FormWidgetsReorderBodySchema = require_schemas.FormWidgetsReorderBodySchema;
2346
+ exports.FormWidgetsReorderResultSchema = require_schemas.FormWidgetsReorderResultSchema;
2347
+ exports.FormWireComponents = require_schemas.FormWireComponents;
2348
+ exports.FreeTextDTOSchema = require_schema.FreeTextDTOSchema;
2349
+ exports.FreeTextDraftSchema = require_schema.FreeTextDraftSchema;
2350
+ exports.FreeTextIntentSchema = require_schema.FreeTextIntentSchema;
2351
+ exports.FreeTextIntentWriteSchema = require_schema.FreeTextIntentWriteSchema;
2352
+ exports.FreeTextPatchSchema = require_schema.FreeTextPatchSchema;
2353
+ exports.HighlightDTOSchema = require_schema.HighlightDTOSchema;
2354
+ exports.HighlightDraftSchema = require_schema.HighlightDraftSchema;
2355
+ exports.HighlightPatchSchema = require_schema.HighlightPatchSchema;
2356
+ exports.IdentitySchema = require_schemas.IdentitySchema;
2357
+ exports.ImageResourceKeysSchema = require_schema.ImageResourceKeysSchema;
2358
+ exports.InkDTOSchema = require_schema.InkDTOSchema;
2359
+ exports.InkDraftSchema = require_schema.InkDraftSchema;
2360
+ exports.InkIntentSchema = require_schema.InkIntentSchema;
2361
+ exports.InkListSchema = require_schema.InkListSchema;
2362
+ exports.InkPatchSchema = require_schema.InkPatchSchema;
2363
+ exports.IsoDateTimeSchema = require_schema.IsoDateTimeSchema;
2364
+ exports.KIND_BY_SUBTYPE = require_schema.KIND_BY_SUBTYPE;
1732
2365
  exports.LayerAnalysisQuerySchema = require_schemas.LayerAnalysisQuerySchema;
1733
2366
  exports.LayerScopesSchema = require_schemas.LayerScopesSchema;
1734
2367
  exports.LayoutTokenSchema = LayoutTokenSchema;
1735
- exports.LineDTOSchema = require_schemas.LineDTOSchema;
1736
- exports.LineDraftSchema = require_schemas.LineDraftSchema;
1737
- exports.LineEndingSchema = require_schemas.LineEndingSchema;
1738
- exports.LineEndingsSchema = require_schemas.LineEndingsSchema;
1739
- exports.LinePatchSchema = require_schemas.LinePatchSchema;
1740
- exports.LinePointsSchema = require_schemas.LinePointsSchema;
1741
- exports.LinkDTOSchema = require_schemas.LinkDTOSchema;
1742
- exports.LinkDraftSchema = require_schemas.LinkDraftSchema;
1743
- exports.LinkPatchSchema = require_schemas.LinkPatchSchema;
2368
+ exports.LineCaptionPatchSchema = require_schema.LineCaptionPatchSchema;
2369
+ exports.LineDTOSchema = require_schema.LineDTOSchema;
2370
+ exports.LineDimensionCaptionSchema = require_schema.LineDimensionCaptionSchema;
2371
+ exports.LineDraftSchema = require_schema.LineDraftSchema;
2372
+ exports.LineEndingSchema = require_schema.LineEndingSchema;
2373
+ exports.LineEndingsSchema = require_schema.LineEndingsSchema;
2374
+ exports.LineIntentSchema = require_schema.LineIntentSchema;
2375
+ exports.LineLeaderSchema = require_schema.LineLeaderSchema;
2376
+ exports.LinePatchSchema = require_schema.LinePatchSchema;
2377
+ exports.LinePointsSchema = require_schema.LinePointsSchema;
2378
+ exports.LinkDTOSchema = require_schema.LinkDTOSchema;
2379
+ exports.LinkDraftSchema = require_schema.LinkDraftSchema;
2380
+ exports.LinkPatchSchema = require_schema.LinkPatchSchema;
1744
2381
  exports.ManifestPageSchema = require_schemas.ManifestPageSchema;
1745
2382
  exports.MetadataPatchSchema = require_schemas.MetadataPatchSchema;
1746
2383
  exports.MetadataTokenSchema = MetadataTokenSchema;
@@ -1748,8 +2385,13 @@ exports.MetadataUpdateResultSchema = require_schemas.MetadataUpdateResultSchema;
1748
2385
  exports.ModificationLevelSchema = require_schemas.ModificationLevelSchema;
1749
2386
  exports.MutationMetaSchema = require_schemas.MutationMetaSchema;
1750
2387
  exports.NamedPageEntrySchema = require_schemas.NamedPageEntrySchema;
1751
- exports.NoteIconSchema = require_schemas.NoteIconSchema;
2388
+ exports.NoteIconSchema = require_schema.NoteIconSchema;
2389
+ exports.ObjectNumberRangeSchema = require_schemas.ObjectNumberRangeSchema;
2390
+ exports.ObjectNumberReservationRequestSchema = require_schemas.ObjectNumberReservationRequestSchema;
2391
+ exports.ObjectNumberReservationResponseSchema = require_schemas.ObjectNumberReservationResponseSchema;
1752
2392
  exports.OpenDocumentResponseSchema = require_schemas.OpenDocumentResponseSchema;
2393
+ exports.PAGE_RENDER_FAMILIES = require_schemas.PAGE_RENDER_FAMILIES;
2394
+ exports.PageBoxSchema = require_schema.PageBoxSchema;
1753
2395
  exports.PageBoxesSchema = require_schemas.PageBoxesSchema;
1754
2396
  exports.PageDeleteInputSchema = require_schemas.PageDeleteInputSchema;
1755
2397
  exports.PageDeleteResultSchema = require_schemas.PageDeleteResultSchema;
@@ -1762,62 +2404,76 @@ exports.PageInsertInputSchema = require_schemas.PageInsertInputSchema;
1762
2404
  exports.PageInsertResultSchema = require_schemas.PageInsertResultSchema;
1763
2405
  exports.PageLayoutSchema = require_schemas.PageLayoutSchema;
1764
2406
  exports.PageListSnapshotSchema = require_schemas.PageListSnapshotSchema;
1765
- exports.PageMoveInputSchema = require_schemas.PageMoveInputSchema;
1766
- exports.PageMoveResultSchema = require_schemas.PageMoveResultSchema;
2407
+ exports.PageMeasurementViewportListSchema = require_schema.PageMeasurementViewportListSchema;
2408
+ exports.PageMeasurementViewportSchema = require_schema.PageMeasurementViewportSchema;
1767
2409
  exports.PageNameInputSchema = require_schemas.PageNameInputSchema;
1768
2410
  exports.PageNameResultSchema = require_schemas.PageNameResultSchema;
1769
2411
  exports.PageNetworkRenderFormatSchema = require_schemas.PageNetworkRenderFormatSchema;
2412
+ exports.PagePointSchema = require_schema.PagePointSchema;
2413
+ exports.PagePositionSchema = require_schemas.PagePositionSchema;
2414
+ exports.PageQuadSchema = require_schema.PageQuadSchema;
2415
+ exports.PageRefSchema = require_schema.PageRefSchema;
1770
2416
  exports.PageRemoveNameInputSchema = require_schemas.PageRemoveNameInputSchema;
1771
- exports.PageRenderAnnotatedQuerySchema = require_schemas.PageRenderAnnotatedQuerySchema;
1772
- exports.PageRenderQuerySchema = require_schemas.PageRenderQuerySchema;
2417
+ exports.PageRenderQuerySchemas = require_schemas.PageRenderQuerySchemas;
2418
+ exports.PageReorderInputSchema = require_schemas.PageReorderInputSchema;
2419
+ exports.PageReorderResultSchema = require_schemas.PageReorderResultSchema;
1773
2420
  exports.PageRotateInputSchema = require_schemas.PageRotateInputSchema;
1774
2421
  exports.PageRotateResultSchema = require_schemas.PageRotateResultSchema;
1775
- exports.PageStateSchema = require_schemas.PageStateSchema;
1776
- exports.PageStructureCacheSchema = require_schemas.PageStructureCacheSchema;
2422
+ exports.PageScaleInputSchema = require_schema.PageScaleInputSchema;
2423
+ exports.PageScaleResultSchema = require_schemas.PageScaleResultSchema;
1777
2424
  exports.PageTextSnapshotSchema = require_schemas.PageTextSnapshotSchema;
1778
- exports.PdfActionNodeSchema = require_schemas.PdfActionNodeSchema;
1779
- exports.PdfActionTargetRefSchema = require_schemas.PdfActionTargetRefSchema;
1780
- exports.PdfActionTreeSchema = require_schemas.PdfActionTreeSchema;
1781
- exports.PdfActionTypeSchema = require_schemas.PdfActionTypeSchema;
1782
- exports.PdfActionWireComponents = require_schemas.PdfActionWireComponents;
1783
- exports.PdfAnnotationActionsSchema = require_schemas.PdfAnnotationActionsSchema;
1784
- exports.PdfDestinationSchema = require_schemas.PdfDestinationSchema;
1785
- exports.PdfFieldActionsSchema = require_schemas.PdfFieldActionsSchema;
1786
- exports.PdfLinkTargetSchema = require_schemas.PdfLinkTargetSchema;
1787
- exports.PdfLinkTargetWritableSchema = require_schemas.PdfLinkTargetWritableSchema;
1788
- exports.PdfPageActionsSchema = require_schemas.PdfPageActionsSchema;
1789
- exports.PdfPointSchema = require_schemas.PdfPointSchema;
1790
- exports.PdfQuadSchema = require_schemas.PdfQuadSchema;
1791
- exports.PdfRectDifferencesSchema = require_schemas.PdfRectDifferencesSchema;
1792
- exports.PdfRectSchema = require_schemas.PdfRectSchema;
2425
+ exports.PdfActionNodeSchema = require_schema.PdfActionNodeSchema;
2426
+ exports.PdfActionTargetRefSchema = require_schema.PdfActionTargetRefSchema;
2427
+ exports.PdfActionTreeSchema = require_schema.PdfActionTreeSchema;
2428
+ exports.PdfActionTypeSchema = require_schema.PdfActionTypeSchema;
2429
+ exports.PdfActionWireComponents = require_schema.PdfActionWireComponents;
2430
+ exports.PdfActionWriteSchema = require_schema.PdfActionWriteSchema;
2431
+ exports.PdfAnnotationActionsSchema = require_schema.PdfAnnotationActionsSchema;
2432
+ exports.PdfDestinationSchema = require_schema.PdfDestinationSchema;
2433
+ exports.PdfFieldActionsSchema = require_schema.PdfFieldActionsSchema;
2434
+ exports.PdfForeignMeasureSchema = require_schema.PdfForeignMeasureSchema;
2435
+ exports.PdfLinkTargetSchema = require_schema.PdfLinkTargetSchema;
2436
+ exports.PdfLinkTargetWritableSchema = require_schema.PdfLinkTargetWritableSchema;
2437
+ exports.PdfMeasureSchema = require_schema.PdfMeasureSchema;
2438
+ exports.PdfMeasureWriteSchema = require_schema.PdfMeasureWriteSchema;
2439
+ exports.PdfMeasurementSchema = require_schema.PdfMeasurementSchema;
2440
+ exports.PdfNumberFormatSchema = require_schema.PdfNumberFormatSchema;
2441
+ exports.PdfPageActionsSchema = require_schema.PdfPageActionsSchema;
2442
+ exports.PdfPointSchema = require_schema.PdfPointSchema;
2443
+ exports.PdfQuadSchema = require_schema.PdfQuadSchema;
2444
+ exports.PdfRectSchema = require_schema.PdfRectSchema;
1793
2445
  exports.PdfRevisionSchema = require_schemas.PdfRevisionSchema;
1794
- exports.PdfRotationSchema = require_schemas.PdfRotationSchema;
2446
+ exports.PdfRotationSchema = require_schema.PdfRotationSchema;
1795
2447
  exports.PdfSaveModeSchema = require_schemas.PdfSaveModeSchema;
1796
- exports.PdfSizeSchema = require_schemas.PdfSizeSchema;
1797
- exports.PointSchema = require_schemas.PointSchema;
1798
- exports.PolygonDTOSchema = require_schemas.PolygonDTOSchema;
1799
- exports.PolygonDraftSchema = require_schemas.PolygonDraftSchema;
1800
- exports.PolygonPatchSchema = require_schemas.PolygonPatchSchema;
1801
- exports.PolylineDTOSchema = require_schemas.PolylineDTOSchema;
1802
- exports.PolylineDraftSchema = require_schemas.PolylineDraftSchema;
1803
- exports.PolylinePatchSchema = require_schemas.PolylinePatchSchema;
1804
- exports.RectSchema = require_schemas.RectSchema;
2448
+ exports.PdfSizeSchema = require_schema.PdfSizeSchema;
2449
+ exports.PointSchema = require_schema.PointSchema;
2450
+ exports.PolygonDTOSchema = require_schema.PolygonDTOSchema;
2451
+ exports.PolygonDraftSchema = require_schema.PolygonDraftSchema;
2452
+ exports.PolygonIntentSchema = require_schema.PolygonIntentSchema;
2453
+ exports.PolygonPatchSchema = require_schema.PolygonPatchSchema;
2454
+ exports.PolylineDTOSchema = require_schema.PolylineDTOSchema;
2455
+ exports.PolylineDraftSchema = require_schema.PolylineDraftSchema;
2456
+ exports.PolylineIntentSchema = require_schema.PolylineIntentSchema;
2457
+ exports.PolylinePatchSchema = require_schema.PolylinePatchSchema;
2458
+ exports.PopupDTOSchema = require_schema.PopupDTOSchema;
2459
+ exports.PopupDraftSchema = require_schema.PopupDraftSchema;
2460
+ exports.PopupPatchSchema = require_schema.PopupPatchSchema;
2461
+ exports.RectSchema = require_schema.RectSchema;
1805
2462
  exports.RedactionApplyResultSchema = require_schemas.RedactionApplyResultSchema;
1806
2463
  exports.RedactionApplyScopeSchema = require_schemas.RedactionApplyScopeSchema;
1807
- exports.RefetchReasonSchema = require_schemas.RefetchReasonSchema;
1808
2464
  exports.RenderTokenSchema = RenderTokenSchema;
1809
- exports.ResourceRefSchema = require_schemas.ResourceRefSchema;
1810
- exports.RevisionTokenSchema = require_schemas.RevisionTokenSchema;
2465
+ exports.ResourceKeySchema = require_schema.ResourceKeySchema;
1811
2466
  exports.SEARCH_RESULT_FORMAT = SEARCH_RESULT_FORMAT;
1812
2467
  exports.SearchMatchSchema = require_schemas.SearchMatchSchema;
1813
- exports.SearchModeSchema = require_schemas.SearchModeSchema;
1814
2468
  exports.SearchQuerySchema = require_schemas.SearchQuerySchema;
1815
2469
  exports.SearchRequestSchema = require_schemas.SearchRequestSchema;
1816
2470
  exports.SearchSliceSchema = require_schemas.SearchSliceSchema;
1817
2471
  exports.SearchSnippetSchema = require_schemas.SearchSnippetSchema;
1818
2472
  exports.SearchTokenSchema = SearchTokenSchema;
1819
- exports.SignatureAbortResultSchema = require_schemas.SignatureAbortResultSchema;
2473
+ exports.ShapeCaptionPatchSchema = require_schema.ShapeCaptionPatchSchema;
2474
+ exports.ShapeDimensionCaptionSchema = require_schema.ShapeDimensionCaptionSchema;
1820
2475
  exports.SignatureAppearanceBodySchema = require_schemas.SignatureAppearanceBodySchema;
2476
+ exports.SignatureCancelResultSchema = require_schemas.SignatureCancelResultSchema;
1821
2477
  exports.SignatureCompleteBodySchema = require_schemas.SignatureCompleteBodySchema;
1822
2478
  exports.SignatureCompleteResultSchema = require_schemas.SignatureCompleteResultSchema;
1823
2479
  exports.SignatureDTOSchema = require_schemas.SignatureDTOSchema;
@@ -1825,41 +2481,50 @@ exports.SignaturePrepareBodySchema = require_schemas.SignaturePrepareBodySchema;
1825
2481
  exports.SignaturePreparedWireSchema = require_schemas.SignaturePreparedWireSchema;
1826
2482
  exports.SignatureSeedValueSchema = require_schemas.SignatureSeedValueSchema;
1827
2483
  exports.SignatureSnapshotSchema = require_schemas.SignatureSnapshotSchema;
1828
- exports.SquareDTOSchema = require_schemas.SquareDTOSchema;
1829
- exports.SquareDraftSchema = require_schemas.SquareDraftSchema;
1830
- exports.SquarePatchSchema = require_schemas.SquarePatchSchema;
1831
- exports.SquigglyDTOSchema = require_schemas.SquigglyDTOSchema;
1832
- exports.SquigglyDraftSchema = require_schemas.SquigglyDraftSchema;
1833
- exports.SquigglyPatchSchema = require_schemas.SquigglyPatchSchema;
1834
- exports.StampDTOSchema = require_schemas.StampDTOSchema;
1835
- exports.StampWireDraftSchema = require_schemas.StampWireDraftSchema;
1836
- exports.StampWirePatchSchema = require_schemas.StampWirePatchSchema;
1837
- exports.StandardFontSchema = require_schemas.StandardFontSchema;
1838
- exports.StrikeoutDTOSchema = require_schemas.StrikeoutDTOSchema;
1839
- exports.StrikeoutDraftSchema = require_schemas.StrikeoutDraftSchema;
1840
- exports.StrikeoutIntentSchema = require_schemas.StrikeoutIntentSchema;
1841
- exports.StrikeoutPatchSchema = require_schemas.StrikeoutPatchSchema;
1842
- exports.TextAlignmentSchema = require_schemas.TextAlignmentSchema;
1843
- exports.TextDTOSchema = require_schemas.TextDTOSchema;
1844
- exports.TextDraftSchema = require_schemas.TextDraftSchema;
1845
- exports.TextPatchSchema = require_schemas.TextPatchSchema;
1846
- exports.ToggleFieldWidgetSchema = require_schemas.ToggleFieldWidgetSchema;
1847
- exports.UnderlineDTOSchema = require_schemas.UnderlineDTOSchema;
1848
- exports.UnderlineDraftSchema = require_schemas.UnderlineDraftSchema;
1849
- exports.UnderlinePatchSchema = require_schemas.UnderlinePatchSchema;
1850
- exports.UnsupportedDTOSchema = require_schemas.UnsupportedDTOSchema;
1851
- exports.UnsupportedDraftSchema = require_schemas.UnsupportedDraftSchema;
1852
- exports.UnsupportedPatchSchema = require_schemas.UnsupportedPatchSchema;
2484
+ exports.SourceResourceKeysSchema = require_schema.SourceResourceKeysSchema;
2485
+ exports.SquareDTOSchema = require_schema.SquareDTOSchema;
2486
+ exports.SquareDraftSchema = require_schema.SquareDraftSchema;
2487
+ exports.SquarePatchSchema = require_schema.SquarePatchSchema;
2488
+ exports.SquigglyDTOSchema = require_schema.SquigglyDTOSchema;
2489
+ exports.SquigglyDraftSchema = require_schema.SquigglyDraftSchema;
2490
+ exports.SquigglyPatchSchema = require_schema.SquigglyPatchSchema;
2491
+ exports.StampDTOSchema = require_schema.StampDTOSchema;
2492
+ exports.StampDraftSchema = require_schema.StampDraftSchema;
2493
+ exports.StampFitSchema = require_schema.StampFitSchema;
2494
+ exports.StampPatchSchema = require_schema.StampPatchSchema;
2495
+ exports.StandardFontSchema = require_schema.StandardFontSchema;
2496
+ exports.StrikeoutDTOSchema = require_schema.StrikeoutDTOSchema;
2497
+ exports.StrikeoutDraftSchema = require_schema.StrikeoutDraftSchema;
2498
+ exports.StrikeoutIntentSchema = require_schema.StrikeoutIntentSchema;
2499
+ exports.StrikeoutPatchSchema = require_schema.StrikeoutPatchSchema;
2500
+ exports.TextAlignmentSchema = require_schema.TextAlignmentSchema;
2501
+ exports.TextDTOSchema = require_schema.TextDTOSchema;
2502
+ exports.TextDraftSchema = require_schema.TextDraftSchema;
2503
+ exports.TextPatchSchema = require_schema.TextPatchSchema;
2504
+ exports.ToggleFieldWidgetSchema = require_schema.ToggleFieldWidgetSchema;
2505
+ exports.UnderlineDTOSchema = require_schema.UnderlineDTOSchema;
2506
+ exports.UnderlineDraftSchema = require_schema.UnderlineDraftSchema;
2507
+ exports.UnderlinePatchSchema = require_schema.UnderlinePatchSchema;
2508
+ exports.UnsupportedDTOSchema = require_schema.UnsupportedDTOSchema;
2509
+ exports.UnsupportedDraftSchema = require_schema.UnsupportedDraftSchema;
2510
+ exports.UnsupportedPatchSchema = require_schema.UnsupportedPatchSchema;
1853
2511
  exports.VersionAnalysisQuerySchema = require_schemas.VersionAnalysisQuerySchema;
1854
- exports.WeakAnnotationSessionPagesRequestSchema = require_schemas.WeakAnnotationSessionPagesRequestSchema;
1855
- exports.WeakAnnotationSessionResponseSchema = require_schemas.WeakAnnotationSessionResponseSchema;
1856
- exports.WidgetAppearanceSchema = require_schemas.WidgetAppearanceSchema;
1857
- exports.WidgetPlacementSchema = require_schemas.WidgetPlacementSchema;
1858
- exports.WireAttachmentFileSchema = require_schemas.WireAttachmentFileSchema;
2512
+ exports.VerticalAlignmentSchema = require_schema.VerticalAlignmentSchema;
2513
+ exports.WidgetActionsPatchSchema = require_schema.WidgetActionsPatchSchema;
2514
+ exports.WidgetAppearanceSchema = require_schema.WidgetAppearanceSchema;
2515
+ exports.WidgetAppearancesQuerySchema = require_schemas.WidgetAppearancesQuerySchema;
2516
+ exports.WidgetAppearancesRenderTokenSchema = WidgetAppearancesRenderTokenSchema;
2517
+ exports.WidgetBorderStyleSchema = require_schema.WidgetBorderStyleSchema;
2518
+ exports.WidgetCheckStyleSchema = require_schema.WidgetCheckStyleSchema;
2519
+ exports.WidgetDTOSchema = require_schema.WidgetDTOSchema;
2520
+ exports.WidgetPatchSchema = require_schema.WidgetPatchSchema;
2521
+ exports.WidgetPlacementSchema = require_schema.WidgetPlacementSchema;
2522
+ exports.WireAttachmentFileSchema = require_schema.WireAttachmentFileSchema;
1859
2523
  exports.analysisQueryString = analysisQueryString;
1860
2524
  exports.analyzeInputFromQuery = require_schemas.analyzeInputFromQuery;
1861
2525
  exports.annotationAppearancesImageOptionsToToken = annotationAppearancesImageOptionsToToken;
1862
2526
  exports.annotationAppearancesImageOptionsToWire = annotationAppearancesImageOptionsToWire;
2527
+ exports.annotationPatchSchemaOf = require_schema.annotationPatchSchemaOf;
1863
2528
  exports.annotationRenderOptionsFromImageOptions = annotationRenderOptionsFromImageOptions;
1864
2529
  exports.applyCdnAccess = applyCdnAccess;
1865
2530
  exports.cdnCoverageForScope = cdnCoverageForScope;
@@ -1869,10 +2534,13 @@ exports.decodeAnalysisToken = decodeAnalysisToken;
1869
2534
  exports.decodeAnnotationAppearancesRenderToken = decodeAnnotationAppearancesRenderToken;
1870
2535
  exports.decodeAnnotationToken = decodeAnnotationToken;
1871
2536
  exports.decodeAnnotationsAllToken = decodeAnnotationsAllToken;
2537
+ exports.decodeAnnotationsExportToken = decodeAnnotationsExportToken;
1872
2538
  exports.decodeAttachmentsToken = decodeAttachmentsToken;
1873
2539
  exports.decodeContentToken = decodeContentToken;
1874
2540
  exports.decodeDocToken = decodeDocToken;
1875
2541
  exports.decodeDownloadToken = decodeDownloadToken;
2542
+ exports.decodeFormExportToken = decodeFormExportToken;
2543
+ exports.decodeFormToken = decodeFormToken;
1876
2544
  exports.decodeLayoutToken = decodeLayoutToken;
1877
2545
  exports.decodeMetadataToken = decodeMetadataToken;
1878
2546
  exports.decodePrepared = require_schemas.decodePrepared;
@@ -1880,15 +2548,20 @@ exports.decodeRenderToken = decodeRenderToken;
1880
2548
  exports.decodeSearchToken = decodeSearchToken;
1881
2549
  exports.decodeToken = decodeToken;
1882
2550
  exports.decodeTokenText = decodeTokenText;
2551
+ exports.decodeWidgetAppearancesRenderToken = decodeWidgetAppearancesRenderToken;
1883
2552
  exports.encodeActionsToken = encodeActionsToken;
1884
2553
  exports.encodeAnalysisToken = encodeAnalysisToken;
1885
2554
  exports.encodeAnnotationAppearancesRenderToken = encodeAnnotationAppearancesRenderToken;
1886
2555
  exports.encodeAnnotationToken = encodeAnnotationToken;
1887
2556
  exports.encodeAnnotationsAllToken = encodeAnnotationsAllToken;
2557
+ exports.encodeAnnotationsExportToken = encodeAnnotationsExportToken;
2558
+ exports.encodeAppearanceModes = encodeAppearanceModes;
1888
2559
  exports.encodeAttachmentsToken = encodeAttachmentsToken;
1889
2560
  exports.encodeContentToken = encodeContentToken;
1890
2561
  exports.encodeDocToken = encodeDocToken;
1891
2562
  exports.encodeDownloadToken = encodeDownloadToken;
2563
+ exports.encodeFormExportToken = encodeFormExportToken;
2564
+ exports.encodeFormToken = encodeFormToken;
1892
2565
  exports.encodeLayoutToken = encodeLayoutToken;
1893
2566
  exports.encodeMetadataToken = encodeMetadataToken;
1894
2567
  exports.encodePrepared = require_schemas.encodePrepared;
@@ -1896,14 +2569,18 @@ exports.encodeRenderToken = encodeRenderToken;
1896
2569
  exports.encodeSearchToken = encodeSearchToken;
1897
2570
  exports.encodeToken = encodeToken;
1898
2571
  exports.encodeTokenText = encodeTokenText;
2572
+ exports.encodeWidgetAppearancesRenderToken = encodeWidgetAppearancesRenderToken;
1899
2573
  exports.flatten = flatten;
1900
- exports.fromBase64 = require_schemas.fromBase64;
2574
+ exports.fromBase64 = require_charmap.fromBase64;
2575
+ exports.pageRenderFamilyOf = require_schemas.pageRenderFamilyOf;
1901
2576
  exports.pageRenderOptionsFromImageOptions = pageRenderOptionsFromImageOptions;
1902
2577
  exports.renderImageOptionsToToken = renderImageOptionsToToken;
1903
2578
  exports.renderImageOptionsToWire = renderImageOptionsToWire;
1904
2579
  exports.resolveResourceIdForPath = resolveResourceIdForPath;
1905
- exports.toBase64 = require_schemas.toBase64;
2580
+ exports.toBase64 = require_charmap.toBase64;
1906
2581
  exports.unflatten = unflatten;
2582
+ exports.widgetAppearancesImageOptionsToToken = widgetAppearancesImageOptionsToToken;
2583
+ exports.widgetAppearancesImageOptionsToWire = widgetAppearancesImageOptionsToWire;
1907
2584
  exports.wirePaths = wirePaths;
1908
2585
  exports.wireTemplates = wireTemplates;
1909
2586