@embedpdf/engine-core 3.0.0-next.1 → 3.0.0-next.11
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.
- package/dist/{AbortError-CjSasIlL.js → AbortError-8-9JAX1Y.js} +2 -2
- package/dist/{AbortError-CjSasIlL.js.map → AbortError-8-9JAX1Y.js.map} +1 -1
- package/dist/{AbortError-ByBflvEl.cjs → AbortError-CRSooKsk.cjs} +2 -2
- package/dist/{AbortError-ByBflvEl.cjs.map → AbortError-CRSooKsk.cjs.map} +1 -1
- package/dist/{AnnotationListSnapshot-W0RCsyDE.d.cts → AnnotationListSnapshot-C1U3XUxP.d.cts} +846 -127
- package/dist/{AnnotationListSnapshot-W0RCsyDE.d.ts → AnnotationListSnapshot-C1U3XUxP.d.ts} +846 -127
- package/dist/{DocumentSecurityService-Df79fgpe.d.cts → DocumentSecurityService-6rhztZlz.d.cts} +33 -2
- package/dist/{DocumentSecurityService-B-tULKNY.d.ts → DocumentSecurityService-7nL9aY75.d.ts} +33 -2
- package/dist/{Engine-B7Oe7f5i.d.ts → Engine-CWnAKccD.d.ts} +62 -19
- package/dist/{Engine-D9loFZc1.d.cts → Engine-D3868xIU.d.cts} +62 -19
- package/dist/{subtype-qejjVr6h.cjs → PageInsertBlankInput-CzShuSJI.cjs} +184 -1
- package/dist/PageInsertBlankInput-CzShuSJI.cjs.map +1 -0
- package/dist/{subtype-BvAzLCGC.js → PageInsertBlankInput-WKY0tr6S.js} +149 -2
- package/dist/PageInsertBlankInput-WKY0tr6S.js.map +1 -0
- package/dist/{builders-C548U47M.js → builders-Cdz34nbF.js} +566 -164
- package/dist/builders-Cdz34nbF.js.map +1 -0
- package/dist/{builders-BvikWRuO.cjs → builders-Do6_4KnS.cjs} +628 -220
- package/dist/builders-Do6_4KnS.cjs.map +1 -0
- package/dist/conformance.cjs +1039 -204
- package/dist/conformance.cjs.map +1 -1
- package/dist/conformance.d.cts +130 -6
- package/dist/conformance.d.ts +130 -6
- package/dist/conformance.js +994 -163
- package/dist/conformance.js.map +1 -1
- package/dist/{fold-CB4fAOOy.js → fold-BfyxxwS6.js} +162 -3
- package/dist/fold-BfyxxwS6.js.map +1 -0
- package/dist/{fold-IaMph3CO.cjs → fold-C7I5GpBz.cjs} +235 -4
- package/dist/fold-C7I5GpBz.cjs.map +1 -0
- package/dist/index.cjs +38 -19
- package/dist/index.d.cts +2 -2
- package/dist/index.d.ts +2 -2
- package/dist/index.js +5 -5
- package/dist/{resolver-DiPMTfcy.js → resolver-CHG4waXL.js} +2 -1
- package/dist/resolver-CHG4waXL.js.map +1 -0
- package/dist/{resolver-DAZWVoJL.cjs → resolver-D-jumvgM.cjs} +2 -1
- package/dist/resolver-D-jumvgM.cjs.map +1 -0
- package/dist/runtime.cjs +43 -24
- package/dist/runtime.cjs.map +1 -1
- package/dist/runtime.d.cts +103 -5
- package/dist/runtime.d.ts +103 -5
- package/dist/runtime.js +6 -6
- package/dist/{schemas-B_1VyFsm.cjs → schemas-CS5iPpX5.cjs} +305 -111
- package/dist/schemas-CS5iPpX5.cjs.map +1 -0
- package/dist/{schemas-9OpSSeM6.js → schemas-XGrNVMDd.js} +250 -92
- package/dist/schemas-XGrNVMDd.js.map +1 -0
- package/dist/wire.cjs +131 -4
- package/dist/wire.cjs.map +1 -1
- package/dist/wire.d.cts +277 -20
- package/dist/wire.d.ts +277 -20
- package/dist/wire.js +120 -5
- package/dist/wire.js.map +1 -1
- package/package.json +1 -1
- package/dist/builders-BvikWRuO.cjs.map +0 -1
- package/dist/builders-C548U47M.js.map +0 -1
- package/dist/fold-CB4fAOOy.js.map +0 -1
- package/dist/fold-IaMph3CO.cjs.map +0 -1
- package/dist/resolver-DAZWVoJL.cjs.map +0 -1
- package/dist/resolver-DiPMTfcy.js.map +0 -1
- package/dist/schemas-9OpSSeM6.js.map +0 -1
- package/dist/schemas-B_1VyFsm.cjs.map +0 -1
- package/dist/subtype-BvAzLCGC.js.map +0 -1
- package/dist/subtype-qejjVr6h.cjs.map +0 -1
|
@@ -16,20 +16,245 @@ interface DocumentMetadata {
|
|
|
16
16
|
custom: Record<string, string>;
|
|
17
17
|
}
|
|
18
18
|
//#endregion
|
|
19
|
+
//#region src/identity/PageObjectNumber.d.ts
|
|
20
|
+
/**
|
|
21
|
+
* PDF indirect object number for a page.
|
|
22
|
+
*
|
|
23
|
+
* Resolved via the PDFium runtime helper `EPDFPage_GetObjectNumber(pagePtr)`.
|
|
24
|
+
* Always > 0 for well-formed PDFs. This replaces the v2 page index as the
|
|
25
|
+
* primary addressing key. The page index is kept on `PageHandle` as display
|
|
26
|
+
* metadata only, because it can shift when pages are inserted, deleted, or
|
|
27
|
+
* reordered while a session is open.
|
|
28
|
+
*/
|
|
29
|
+
type PageObjectNumber = number;
|
|
30
|
+
/**
|
|
31
|
+
* Type guard for the rare malformed-PDF case where a page is a direct
|
|
32
|
+
* object. The engine treats `0` as malformed and throws `EngineError(NotFound)`
|
|
33
|
+
* before any page-level operation.
|
|
34
|
+
*/
|
|
35
|
+
declare function isValidPageObjectNumber(value: unknown): value is PageObjectNumber;
|
|
36
|
+
//#endregion
|
|
37
|
+
//#region src/dto/PdfDestination.d.ts
|
|
38
|
+
/**
|
|
39
|
+
* An explicit PDF destination (ISO 32000-1 §12.3.2.2): a page, a location,
|
|
40
|
+
* and a magnification. Produced by outlines/bookmarks, link annotations,
|
|
41
|
+
* `/OpenAction`, and GoTo actions; named destinations resolve to one of
|
|
42
|
+
* these through the catalog's `/Dests` dictionary or name tree — the
|
|
43
|
+
* ENGINE does that resolution, so the viewer only ever sees this explicit
|
|
44
|
+
* form.
|
|
45
|
+
*
|
|
46
|
+
* Coordinates are PDF user space (y-up, points, absolute — NOT
|
|
47
|
+
* crop-relative). `null` means "retain the current value" (the spec's
|
|
48
|
+
* meaning for null array entries); a `/XYZ` zoom of `0` is equivalent to
|
|
49
|
+
* null. The `fitB*` kinds refer to the page's content BOUNDING box rather
|
|
50
|
+
* than the crop box.
|
|
51
|
+
*
|
|
52
|
+
* Viewers translate these onto the stage's reveal primitive — see
|
|
53
|
+
* `destinationToReveal` in `@embedpdf/plugin-stage`.
|
|
54
|
+
*/
|
|
55
|
+
type PdfDestination = {
|
|
56
|
+
kind: 'xyz';
|
|
57
|
+
pageObjectNumber: PageObjectNumber;
|
|
58
|
+
left?: number | null;
|
|
59
|
+
top?: number | null;
|
|
60
|
+
zoom?: number | null;
|
|
61
|
+
} | {
|
|
62
|
+
kind: 'fit';
|
|
63
|
+
pageObjectNumber: PageObjectNumber;
|
|
64
|
+
} | {
|
|
65
|
+
kind: 'fitH';
|
|
66
|
+
pageObjectNumber: PageObjectNumber;
|
|
67
|
+
top?: number | null;
|
|
68
|
+
} | {
|
|
69
|
+
kind: 'fitV';
|
|
70
|
+
pageObjectNumber: PageObjectNumber;
|
|
71
|
+
left?: number | null;
|
|
72
|
+
} | {
|
|
73
|
+
kind: 'fitR';
|
|
74
|
+
pageObjectNumber: PageObjectNumber;
|
|
75
|
+
left: number;
|
|
76
|
+
bottom: number;
|
|
77
|
+
right: number;
|
|
78
|
+
top: number;
|
|
79
|
+
} | {
|
|
80
|
+
kind: 'fitB';
|
|
81
|
+
pageObjectNumber: PageObjectNumber;
|
|
82
|
+
} | {
|
|
83
|
+
kind: 'fitBH';
|
|
84
|
+
pageObjectNumber: PageObjectNumber;
|
|
85
|
+
top?: number | null;
|
|
86
|
+
} | {
|
|
87
|
+
kind: 'fitBV';
|
|
88
|
+
pageObjectNumber: PageObjectNumber;
|
|
89
|
+
left?: number | null;
|
|
90
|
+
};
|
|
91
|
+
//#endregion
|
|
19
92
|
//#region src/dto/PdfAction.d.ts
|
|
20
93
|
/** Normalized values of an action dictionary's `/S` name. */
|
|
21
|
-
type PdfActionType = '
|
|
22
|
-
/**
|
|
23
|
-
|
|
24
|
-
|
|
94
|
+
type PdfActionType = PdfActionNode['type'];
|
|
95
|
+
/**
|
|
96
|
+
* One Hide `/T` or ResetForm `/Fields` entry. Deliberately UNSCOPED: a
|
|
97
|
+
* dictionary reference carries no page, so resolution (a name to widgets, an
|
|
98
|
+
* object number to an annotation or field) is the interpreter's job — never
|
|
99
|
+
* the extractor's.
|
|
100
|
+
*/
|
|
101
|
+
type PdfActionTargetRef = {
|
|
102
|
+
kind: 'name';
|
|
103
|
+
name: string;
|
|
104
|
+
} | {
|
|
105
|
+
kind: 'objectNumber';
|
|
106
|
+
objectNumber: number;
|
|
107
|
+
};
|
|
108
|
+
/**
|
|
109
|
+
* Decoded SubmitForm `/Flags` word (ISO 32000-2:2020 Table 240) plus the raw
|
|
110
|
+
* value. `exclude` is DERIVED from bit 1 — never stored separately, so the
|
|
111
|
+
* two cannot disagree. Note the two easily-missed positions verified against
|
|
112
|
+
* the spec: bit 12 is `ExclFKey` (not "ExclFDFTemplate") and bit 13 is
|
|
113
|
+
* reserved/undefined, so `EmbedForm` is bit 14.
|
|
114
|
+
*/
|
|
115
|
+
interface SubmitFormFlags {
|
|
116
|
+
raw: number;
|
|
117
|
+
/** Bit 1: set → `fields` lists EXCLUDED fields. */
|
|
118
|
+
exclude: boolean;
|
|
119
|
+
/** Bit 2: submit designated valueless fields too, as name-only entries. */
|
|
120
|
+
includeNoValueFields: boolean;
|
|
121
|
+
/** Bits 3/6/9 folded into one verdict: bit 9 SubmitPDF dominates ("all
|
|
122
|
+
* other flags shall be ignored except GetMethod"), else bit 6 XFDF, else
|
|
123
|
+
* bit 3 HTML Form format, else FDF (the Table 240 default). */
|
|
124
|
+
format: 'fdf' | 'html' | 'xfdf' | 'pdf';
|
|
125
|
+
/** Bit 4. ISO makes GetMethod meaningful only with ExportFormat set, and
|
|
126
|
+
* the bit-9 rule keeps it alive for SubmitPDF — so `'get'` only for
|
|
127
|
+
* `'html'` and `'pdf'`; everything else posts. */
|
|
128
|
+
method: 'post' | 'get';
|
|
129
|
+
/** Bit 5 (meaningful only with ExportFormat; passed through — this stack
|
|
130
|
+
* does not capture click coordinates). */
|
|
131
|
+
submitCoordinates: boolean;
|
|
132
|
+
/** Bit 7 (FDF only): include incremental updates via FDF `Differences`. */
|
|
133
|
+
includeAppendSaves: boolean;
|
|
134
|
+
/** Bit 8 (FDF only): include markup annotations. */
|
|
135
|
+
includeAnnotations: boolean;
|
|
136
|
+
/** Bit 10: convert date-like values to the standard date format. */
|
|
137
|
+
canonicalFormat: boolean;
|
|
138
|
+
/** Bit 11 (FDF, with IncludeAnnotations): only the current user's
|
|
139
|
+
* annotations. */
|
|
140
|
+
exclNonUserAnnots: boolean;
|
|
141
|
+
/** Bit 12: the submitted FDF excludes its `F` entry. */
|
|
142
|
+
exclFKey: boolean;
|
|
143
|
+
/** Bit 14 (bit 13 is reserved): the FDF `F` entry embeds the source PDF. */
|
|
144
|
+
embedForm: boolean;
|
|
145
|
+
}
|
|
146
|
+
/**
|
|
147
|
+
* The one Table-240 decode, shared by the reader, the schema's producers,
|
|
148
|
+
* and tests — so bit semantics cannot fork.
|
|
149
|
+
*/
|
|
150
|
+
declare const decodeSubmitFormFlags: (raw: number) => SubmitFormFlags;
|
|
151
|
+
/**
|
|
152
|
+
* SubmitForm's extracted intent. ATOMIC on purpose: either every required
|
|
153
|
+
* component resolved (a complete, executable payload) or the node carries no
|
|
154
|
+
* payload at all — partial states are unrepresentable. An unreadable
|
|
155
|
+
* REQUIRED component (`/F`) degrades the whole node to `unknown` +
|
|
156
|
+
* `payload-dropped` at read time instead.
|
|
157
|
+
*/
|
|
158
|
+
interface SubmitFormPayload {
|
|
159
|
+
/** Resolved `/F` URL — a `<< /FS /URL >>` file specification (7.11.5,
|
|
160
|
+
* `/UF` preferred over `/F` per 7.11.2); a bare string `/F` is accepted
|
|
161
|
+
* as a producer-compat extension. */
|
|
162
|
+
url: string;
|
|
163
|
+
/**
|
|
164
|
+
* `null` = `/Fields` ABSENT → Include/Exclude is ignored and every field
|
|
165
|
+
* except NoExport-flagged ones is submitted (Table 239). `[]` =
|
|
166
|
+
* present-but-empty: include mode submits NOTHING, exclude mode submits
|
|
167
|
+
* everything eligible — presence and emptiness are different states.
|
|
168
|
+
*/
|
|
169
|
+
fields: PdfActionTargetRef[] | null;
|
|
170
|
+
flags: SubmitFormFlags;
|
|
171
|
+
/** `/CharSet` (PDF 2.0), extracted but not encoded by this stack. */
|
|
172
|
+
charSet?: string;
|
|
173
|
+
}
|
|
174
|
+
interface PdfActionNodeCommon {
|
|
25
175
|
/** Raw `/S` name, retained for unknown and future action types. */
|
|
26
176
|
subtype: string;
|
|
27
|
-
/** Decoded `/JS` source for JavaScript and Rendition actions. */
|
|
28
|
-
script?: string;
|
|
29
177
|
/** Normalized `/Next` children in PDF order. */
|
|
30
178
|
next: PdfActionNode[];
|
|
31
179
|
}
|
|
32
|
-
|
|
180
|
+
/**
|
|
181
|
+
* One detached node in a normalized PDF action tree, discriminated on the
|
|
182
|
+
* interpreter that would execute it. Every executable arm carries its full
|
|
183
|
+
* payload — a `goto` without a destination or a `uri` without a URI is
|
|
184
|
+
* unrepresentable. A payload the reader cannot materialize degrades the node
|
|
185
|
+
* to `unknown` (original `/S` kept on `subtype`) and appends the tree-level
|
|
186
|
+
* `'payload-dropped'` warning.
|
|
187
|
+
*/
|
|
188
|
+
type PdfActionNode = PdfActionNodeCommon & ({
|
|
189
|
+
type: 'javascript';
|
|
190
|
+
script: string;
|
|
191
|
+
} | {
|
|
192
|
+
type: 'goto';
|
|
193
|
+
destination: PdfDestination;
|
|
194
|
+
} | {
|
|
195
|
+
type: 'uri';
|
|
196
|
+
uri: string;
|
|
197
|
+
isMap: boolean;
|
|
198
|
+
} | {
|
|
199
|
+
type: 'named';
|
|
200
|
+
name: string;
|
|
201
|
+
} | {
|
|
202
|
+
type: 'hide';
|
|
203
|
+
targets: PdfActionTargetRef[];
|
|
204
|
+
hide: boolean;
|
|
205
|
+
} | {
|
|
206
|
+
type: 'reset-form';
|
|
207
|
+
/**
|
|
208
|
+
* `null` = `/Fields` ABSENT → reset every field (`exclude` is
|
|
209
|
+
* meaningless). `[]` = present-but-empty: with `exclude` false reset
|
|
210
|
+
* NOTHING, with `exclude` true reset EVERYTHING — PDFium's executor
|
|
211
|
+
* branches on presence first.
|
|
212
|
+
*/
|
|
213
|
+
fields: PdfActionTargetRef[] | null;
|
|
214
|
+
exclude: boolean;
|
|
215
|
+
} |
|
|
216
|
+
/** Reported, never executed. */
|
|
217
|
+
{
|
|
218
|
+
type: 'goto-remote';
|
|
219
|
+
filePath: string;
|
|
220
|
+
} | {
|
|
221
|
+
type: 'goto-embedded';
|
|
222
|
+
filePath: string;
|
|
223
|
+
} | {
|
|
224
|
+
type: 'launch';
|
|
225
|
+
filePath: string;
|
|
226
|
+
} |
|
|
227
|
+
/** ISO allows `/Rendition` to carry `/JS`; preserved, not collected. */
|
|
228
|
+
{
|
|
229
|
+
type: 'rendition';
|
|
230
|
+
script?: string;
|
|
231
|
+
} |
|
|
232
|
+
/** Recognized; executable only when `payload` is present. Absent payload
|
|
233
|
+
* = extracted by an older runtime (skew) — the node stays
|
|
234
|
+
* recognized-inert exactly as before this payload existed. */
|
|
235
|
+
{
|
|
236
|
+
type: 'submit-form';
|
|
237
|
+
payload?: SubmitFormPayload;
|
|
238
|
+
} | {
|
|
239
|
+
type: 'thread';
|
|
240
|
+
} | {
|
|
241
|
+
type: 'sound';
|
|
242
|
+
} | {
|
|
243
|
+
type: 'movie';
|
|
244
|
+
} | {
|
|
245
|
+
type: 'import-data';
|
|
246
|
+
} | {
|
|
247
|
+
type: 'set-ocg-state';
|
|
248
|
+
} | {
|
|
249
|
+
type: 'transition';
|
|
250
|
+
} | {
|
|
251
|
+
type: 'goto-3d-view';
|
|
252
|
+
} | {
|
|
253
|
+
type: 'unknown';
|
|
254
|
+
});
|
|
255
|
+
type PdfActionWarning = 'cycle-dropped' | 'malformed-next' | 'incomplete' |
|
|
256
|
+
/** A node's payload could not be read; that node degraded to `unknown`. */
|
|
257
|
+
'payload-dropped';
|
|
33
258
|
/**
|
|
34
259
|
* One extracted action root plus the native reader's safety verdict.
|
|
35
260
|
* Consumers must never execute a tree whose `incomplete` flag is true.
|
|
@@ -38,7 +263,8 @@ interface PdfActionTree {
|
|
|
38
263
|
/** Null when the model was valid but its root exceeded a safety bound. */
|
|
39
264
|
root: PdfActionNode | null;
|
|
40
265
|
incomplete: boolean;
|
|
41
|
-
/** Raw native bits, retained so newer warnings survive older SDKs.
|
|
266
|
+
/** Raw native bits, retained so newer warnings survive older SDKs.
|
|
267
|
+
* TS-detected warnings (`payload-dropped`) appear only in `warnings`. */
|
|
42
268
|
warningFlags: number;
|
|
43
269
|
warnings: PdfActionWarning[];
|
|
44
270
|
}
|
|
@@ -73,8 +299,13 @@ interface NamedJavaScriptAction {
|
|
|
73
299
|
/** Catalog-owned actions. Page actions stay on their owning PageLayout. */
|
|
74
300
|
interface DocumentActionsSnapshot {
|
|
75
301
|
nameTreeScripts: NamedJavaScriptAction[];
|
|
76
|
-
/** Action-form `/OpenAction
|
|
302
|
+
/** Action-form `/OpenAction`. Mutually exclusive with `openDestination` —
|
|
303
|
+
* `/OpenAction` is one entry, a dictionary or an array. */
|
|
77
304
|
openAction: PdfActionTree | null;
|
|
305
|
+
/** Destination-form `/OpenAction` — the initial view, not an action.
|
|
306
|
+
* Optional on the wire for skew tolerance (absent ≡ null); the schema
|
|
307
|
+
* defaults it, so parsed snapshots always carry the key. */
|
|
308
|
+
openDestination?: PdfDestination | null;
|
|
78
309
|
willClose?: PdfActionTree;
|
|
79
310
|
willSave?: PdfActionTree;
|
|
80
311
|
didSave?: PdfActionTree;
|
|
@@ -90,6 +321,13 @@ interface ActionReadBudget {
|
|
|
90
321
|
maxModels: number;
|
|
91
322
|
maxNodes: number;
|
|
92
323
|
maxScriptCodeUnits: number;
|
|
324
|
+
/** Hide `/T` + ResetForm/SubmitForm `/Fields` entries, aggregate across
|
|
325
|
+
* the job. */
|
|
326
|
+
maxTargetEntries: number;
|
|
327
|
+
/** Payload string code units (URIs, submit URLs/CharSets, names, file
|
|
328
|
+
* paths, name-tree script names), aggregate across the job. Reserved
|
|
329
|
+
* BEFORE allocation. */
|
|
330
|
+
maxPayloadCodeUnits: number;
|
|
93
331
|
}
|
|
94
332
|
//#endregion
|
|
95
333
|
//#region src/geometry/primitives.d.ts
|
|
@@ -116,9 +354,13 @@ interface PdfPoint {
|
|
|
116
354
|
y: number;
|
|
117
355
|
}
|
|
118
356
|
/**
|
|
119
|
-
* A rectangle in PDF user space, expressed as edges
|
|
120
|
-
* and `right > left` once normalized). Page-box
|
|
121
|
-
* `left`/`bottom` may be non-zero or negative.
|
|
357
|
+
* A rectangle in the FILE's coordinates — PDF user space, expressed as edges
|
|
358
|
+
* (y-up, so `top > bottom` and `right > left` once normalized). Page-box
|
|
359
|
+
* origin is preserved, so `left`/`bottom` may be non-zero or negative.
|
|
360
|
+
*
|
|
361
|
+
* The rule: stored in the file → `PdfRect`; shown on screen → the viewer's
|
|
362
|
+
* y-down `Rect` (`{x, y, width, height}`). The shapes are incompatible on
|
|
363
|
+
* purpose — passing one where the other goes doesn't compile.
|
|
122
364
|
*/
|
|
123
365
|
interface PdfRect {
|
|
124
366
|
left: number;
|
|
@@ -290,6 +532,36 @@ interface PdfRectDifferences {
|
|
|
290
532
|
* group (e.g. the Caret of a text-edit pair).
|
|
291
533
|
*/
|
|
292
534
|
type AnnotationReplyType = 'reply' | 'group';
|
|
535
|
+
/** The two ISO 32000 §12.5.6.3 standard state models (Table 174). */
|
|
536
|
+
type KnownAnnotationStateModel = 'review' | 'marked';
|
|
537
|
+
/**
|
|
538
|
+
* The `/StateModel` of an annotation-state text annotation — ISO 32000
|
|
539
|
+
* §12.5.6.3. The standard models are `'review'` and `'marked'`, but the
|
|
540
|
+
* PDF stores the entry as a free text string and Acrobat supports
|
|
541
|
+
* registering custom state models, so the type stays open. The
|
|
542
|
+
* `(string & {})` arm keeps the standard literals auto-completing while
|
|
543
|
+
* accepting any custom model (the {@link FreeTextFont} pattern).
|
|
544
|
+
*
|
|
545
|
+
* Known values are wire-stable lowercase; the engine maps them onto the
|
|
546
|
+
* capitalized PDF spellings (`Review`, `Marked`) at read/write time.
|
|
547
|
+
* Unknown values round-trip verbatim in both directions.
|
|
548
|
+
*/
|
|
549
|
+
type AnnotationStateModel = KnownAnnotationStateModel | (string & {});
|
|
550
|
+
/** The ISO 32000 §12.5.6.3 standard states (Table 174). */
|
|
551
|
+
type KnownAnnotationState = 'accepted' | 'rejected' | 'cancelled' | 'completed' | 'none' | 'marked' | 'unmarked';
|
|
552
|
+
/**
|
|
553
|
+
* The `/State` an annotation-state text annotation sets — ISO 32000
|
|
554
|
+
* §12.5.6.3. `'accepted' | 'rejected' | 'cancelled' | 'completed' |
|
|
555
|
+
* 'none'` belong to the `'review'` model; `'marked' | 'unmarked'` to the
|
|
556
|
+
* `'marked'` model. Open for the same reason as
|
|
557
|
+
* {@link AnnotationStateModel}: custom models bring custom states.
|
|
558
|
+
*
|
|
559
|
+
* States are PER USER and live on separate text annotations replying
|
|
560
|
+
* (`/IRT`) to their target — never on the target itself. The `/T` of the
|
|
561
|
+
* state annotation names who set it; later changes by the same user
|
|
562
|
+
* chain as replies to their previous state annotation, latest wins.
|
|
563
|
+
*/
|
|
564
|
+
type AnnotationState = KnownAnnotationState | (string & {});
|
|
293
565
|
/**
|
|
294
566
|
* Bitset wrapper for the `/F` (Annotation Flags) PDF entry. We expose each
|
|
295
567
|
* bit as its own boolean so callers don't have to know the bit positions.
|
|
@@ -308,24 +580,6 @@ interface AnnotationFlags {
|
|
|
308
580
|
}
|
|
309
581
|
declare const NO_ANNOTATION_FLAGS: AnnotationFlags;
|
|
310
582
|
//#endregion
|
|
311
|
-
//#region src/identity/PageObjectNumber.d.ts
|
|
312
|
-
/**
|
|
313
|
-
* PDF indirect object number for a page.
|
|
314
|
-
*
|
|
315
|
-
* Resolved via the PDFium runtime helper `EPDFPage_GetObjectNumber(pagePtr)`.
|
|
316
|
-
* Always > 0 for well-formed PDFs. This replaces the v2 page index as the
|
|
317
|
-
* primary addressing key. The page index is kept on `PageHandle` as display
|
|
318
|
-
* metadata only, because it can shift when pages are inserted, deleted, or
|
|
319
|
-
* reordered while a session is open.
|
|
320
|
-
*/
|
|
321
|
-
type PageObjectNumber = number;
|
|
322
|
-
/**
|
|
323
|
-
* Type guard for the rare malformed-PDF case where a page is a direct
|
|
324
|
-
* object. The engine treats `0` as malformed and throws `EngineError(NotFound)`
|
|
325
|
-
* before any page-level operation.
|
|
326
|
-
*/
|
|
327
|
-
declare function isValidPageObjectNumber(value: unknown): value is PageObjectNumber;
|
|
328
|
-
//#endregion
|
|
329
583
|
//#region src/revision/RevisionToken.d.ts
|
|
330
584
|
/**
|
|
331
585
|
* Opaque token a client must hand back when addressing an annotation by
|
|
@@ -392,6 +646,8 @@ type AnnotationRef = {
|
|
|
392
646
|
*/
|
|
393
647
|
interface AnnotationDraftBase {
|
|
394
648
|
contents?: string | null;
|
|
649
|
+
/** `/Subj` — short subject line (ISO 32000 §12.5.6.2, markup annotations). */
|
|
650
|
+
subject?: string | null;
|
|
395
651
|
/** Blend mode to bake into the normal appearance. Omit for the subtype default. */
|
|
396
652
|
blendMode?: BlendMode;
|
|
397
653
|
/** Optional /NM the caller wants to assign on creation. */
|
|
@@ -428,7 +684,7 @@ interface AnnotationDraftBase {
|
|
|
428
684
|
* expands these capabilities. PDF bits are NEVER consulted unless
|
|
429
685
|
* `pdf.permissions` is in scope.
|
|
430
686
|
*/
|
|
431
|
-
type DocCapability = 'doc.open' | 'doc.render' | 'doc.text.select' | 'doc.text.copy' | 'doc.text.search' | 'doc.content.copy' | 'doc.download' | 'doc.download.flattened' | 'doc.print' | 'doc.print.high' | 'doc.pages.modify' | 'doc.pages.assemble' | 'doc.forms.read' | 'doc.forms.fill' | 'doc.forms.modify' | 'doc.annotate.read' | 'doc.annotate.modify' | 'doc.metadata.modify' | 'doc.attachments.modify' | 'doc.redact';
|
|
687
|
+
type DocCapability = 'doc.open' | 'doc.render' | 'doc.text.select' | 'doc.text.copy' | 'doc.text.search' | 'doc.content.copy' | 'doc.download' | 'doc.download.flattened' | 'doc.print' | 'doc.print.high' | 'doc.pages.modify' | 'doc.pages.assemble' | 'doc.forms.read' | 'doc.forms.fill' | 'doc.forms.modify' | 'doc.forms.submit' | 'doc.annotate.read' | 'doc.annotate.modify' | 'doc.metadata.modify' | 'doc.attachments.modify' | 'doc.redact';
|
|
432
688
|
/**
|
|
433
689
|
* Single-entity collaboration vocabulary. Only annotations are
|
|
434
690
|
* collab-scoped today; future entities slot into the same grammar.
|
|
@@ -932,9 +1188,9 @@ interface OpenInputById {
|
|
|
932
1188
|
* `GET /v1/docs/:docId/head`. The returned handle is bound to this
|
|
933
1189
|
* token; subsequent operations on it carry that bearer.
|
|
934
1190
|
*
|
|
935
|
-
* Use this
|
|
936
|
-
*
|
|
937
|
-
*
|
|
1191
|
+
* Use this when your backend mints doc-scoped JWTs itself (e.g. a
|
|
1192
|
+
* logged-in reviewer authorised for exactly one document). For the
|
|
1193
|
+
* no-backend public-share flow, use `kind: 'share'` instead.
|
|
938
1194
|
*
|
|
939
1195
|
* Rejected by `@embedpdf/engine`.
|
|
940
1196
|
*/
|
|
@@ -949,7 +1205,31 @@ interface OpenInputToken {
|
|
|
949
1205
|
token: TokenSource;
|
|
950
1206
|
password?: string | null;
|
|
951
1207
|
}
|
|
952
|
-
|
|
1208
|
+
/**
|
|
1209
|
+
* Cloud-engine: open via a public share token (`shr_…`) from the
|
|
1210
|
+
* dashboard's embed snippet. A share token is a REFERENCE to a
|
|
1211
|
+
* stored grant on the server, not a credential — the engine
|
|
1212
|
+
* exchanges it for a short-lived doc-scoped session JWT and
|
|
1213
|
+
* silently re-exchanges near expiry, so revoking or editing the
|
|
1214
|
+
* share retargets every embedded copy at the next renewal. No
|
|
1215
|
+
* backend required; the engine itself may be constructed with no
|
|
1216
|
+
* engine-level token at all.
|
|
1217
|
+
*
|
|
1218
|
+
* Rejected by `@embedpdf/engine`.
|
|
1219
|
+
*/
|
|
1220
|
+
interface OpenInputShare {
|
|
1221
|
+
kind: 'share';
|
|
1222
|
+
/** Public share token (`shr_…`) identifying the grant. */
|
|
1223
|
+
shareToken: string;
|
|
1224
|
+
/**
|
|
1225
|
+
* Passphrase for a protected grant. This is the SHARE passphrase,
|
|
1226
|
+
* checked by the exchange endpoint — not the PDF's encryption
|
|
1227
|
+
* password, which stays in `password` like every other kind.
|
|
1228
|
+
*/
|
|
1229
|
+
sharePassword?: string;
|
|
1230
|
+
password?: string | null;
|
|
1231
|
+
}
|
|
1232
|
+
type OpenInput = OpenInputBytes | OpenInputLayerBytes | OpenInputById | OpenInputToken | OpenInputShare;
|
|
953
1233
|
interface OpenOptions {
|
|
954
1234
|
password?: string | null;
|
|
955
1235
|
/**
|
|
@@ -1151,16 +1431,127 @@ declare function pdfQuadCorners(q: PdfQuad): PdfQuadCorners;
|
|
|
1151
1431
|
*/
|
|
1152
1432
|
declare function pdfQuadFromCorners(c: PdfQuadCorners): PdfQuad;
|
|
1153
1433
|
//#endregion
|
|
1434
|
+
//#region src/text/charmap.d.ts
|
|
1435
|
+
/**
|
|
1436
|
+
* Character↔text index translation — the ONE place the two text index
|
|
1437
|
+
* spaces of a page meet.
|
|
1438
|
+
*
|
|
1439
|
+
* A page has two index spaces:
|
|
1440
|
+
*
|
|
1441
|
+
* - CHARACTER space: PDFium's internal character list, the space geometry
|
|
1442
|
+
* runs tile (`PageGeometryRun.charStart`), hit-testing addresses, and
|
|
1443
|
+
* selection ranges live in. Size: `PageTextSnapshot.charCount`.
|
|
1444
|
+
* - TEXT space: UTF-16 code-unit offsets into the extracted string
|
|
1445
|
+
* `PageTextSnapshot.text` — what search matching and slicing operate on.
|
|
1446
|
+
*
|
|
1447
|
+
* They diverge in exactly two ways, both encoded by `charMap` anchors:
|
|
1448
|
+
* - a non-printing character occupies a character slot but contributes
|
|
1449
|
+
* ZERO text units (PDFium's `char_indices_` skip list);
|
|
1450
|
+
* - a supplementary-plane character contributes TWO text units (a
|
|
1451
|
+
* surrogate pair) once extraction is UTF-16-faithful.
|
|
1452
|
+
*
|
|
1453
|
+
* `charMap` semantics (see {@link CharMapAnchor}): an implicit head anchor
|
|
1454
|
+
* `[0, 0]`; between anchors every character advances the text by exactly one
|
|
1455
|
+
* unit; an anchor sits at `i + 1` whenever character `i` contributed
|
|
1456
|
+
* something other than one unit. Absent/empty map = identity
|
|
1457
|
+
* (`charCount === text.length`). `charMapViolation` is the validator both
|
|
1458
|
+
* the wire schema and engine builders share — malformed maps are rejected,
|
|
1459
|
+
* never silently repaired.
|
|
1460
|
+
*
|
|
1461
|
+
* Boundary model: a "character boundary" `c` ∈ [0, charCount] sits BEFORE
|
|
1462
|
+
* character `c`; `boundaryTextOffset(s, charCount) === text.length` always.
|
|
1463
|
+
* All ranges are half-open in both spaces.
|
|
1464
|
+
*/
|
|
1465
|
+
/**
|
|
1466
|
+
* One anchor of the character→text mapping: from character index `char`
|
|
1467
|
+
* onward (until the next anchor), boundary `c` maps to text offset
|
|
1468
|
+
* `text + (c - char)`.
|
|
1469
|
+
*/
|
|
1470
|
+
type CharMapAnchor = readonly [char: number, text: number];
|
|
1471
|
+
/** Direction to resolve a text offset that falls on a zero-width plateau —
|
|
1472
|
+
* see {@link charBoundaryAtTextOffset}. */
|
|
1473
|
+
type CharBoundaryBias = 'start' | 'end';
|
|
1474
|
+
/**
|
|
1475
|
+
* Text offset of character boundary `boundary` (clamped into
|
|
1476
|
+
* [0, charCount]). For a dropped character this is the offset of the next
|
|
1477
|
+
* real text unit — exactly what half-open slicing needs at either end.
|
|
1478
|
+
*/
|
|
1479
|
+
declare function boundaryTextOffset(snapshot: PageTextSnapshot, boundary: number): number;
|
|
1480
|
+
/**
|
|
1481
|
+
* The character boundary for a text offset, with explicit plateau bias:
|
|
1482
|
+
*
|
|
1483
|
+
* - `'start'`: the GREATEST boundary whose text offset is <= `offset` —
|
|
1484
|
+
* scans forward past zero-width characters, so a range start never
|
|
1485
|
+
* includes a dropped character that precedes its first real unit.
|
|
1486
|
+
* - `'end'`: the SMALLEST boundary whose text offset is >= `offset` —
|
|
1487
|
+
* stops before zero-width characters, so a range end never swallows a
|
|
1488
|
+
* dropped character that follows its last real unit.
|
|
1489
|
+
*
|
|
1490
|
+
* An offset inside a surrogate pair resolves outward under both biases
|
|
1491
|
+
* (start → the pair's character, end → past it), so a clipped astral
|
|
1492
|
+
* character is always covered whole. Prefer {@link charRangeForTextOffsets}
|
|
1493
|
+
* — the two biases exist to be used as a PAIR.
|
|
1494
|
+
*/
|
|
1495
|
+
declare function charBoundaryAtTextOffset(snapshot: PageTextSnapshot, offset: number, bias: CharBoundaryBias): number;
|
|
1496
|
+
/**
|
|
1497
|
+
* The character range whose text projection is exactly
|
|
1498
|
+
* `text.slice(startOffset, endOffset)` — THE inverse used by search-hit
|
|
1499
|
+
* conversion and select-by-text. Start is right-biased and end left-biased
|
|
1500
|
+
* (see {@link charBoundaryAtTextOffset}), so zero-width characters adjacent
|
|
1501
|
+
* to the range fall OUTSIDE it on both sides.
|
|
1502
|
+
*
|
|
1503
|
+
* A non-empty text range can never invert: `end > start` implies
|
|
1504
|
+
* `B(end) >= endOffset > startOffset >= B(start)`, which forces
|
|
1505
|
+
* `end > start` by monotonicity. Empty input (`endOffset <= startOffset`)
|
|
1506
|
+
* normalizes to the end-rule boundary of `startOffset` on both sides.
|
|
1507
|
+
*/
|
|
1508
|
+
declare function charRangeForTextOffsets(snapshot: PageTextSnapshot, startOffset: number, endOffset: number): {
|
|
1509
|
+
start: number;
|
|
1510
|
+
end: number;
|
|
1511
|
+
};
|
|
1512
|
+
/**
|
|
1513
|
+
* THE copy primitive: the text projection of the half-open character range
|
|
1514
|
+
* `[charStart, charEnd)`. Dropped characters inside the range contribute
|
|
1515
|
+
* nothing; a supplementary character contributes its full surrogate pair.
|
|
1516
|
+
* `sliceTextByChars(s, 0, s.charCount) === s.text` always.
|
|
1517
|
+
*/
|
|
1518
|
+
declare function sliceTextByChars(snapshot: PageTextSnapshot, charStart: number, charEnd: number): string;
|
|
1519
|
+
/**
|
|
1520
|
+
* First invariant violation of a snapshot's char map, or null when valid.
|
|
1521
|
+
* Shared by the wire schema (rejects malformed bodies) and engine builders
|
|
1522
|
+
* (dev-mode assertion). The invariants:
|
|
1523
|
+
*
|
|
1524
|
+
* 1. absent/empty map ⇒ identity, so `charCount === text.length`;
|
|
1525
|
+
* 2. anchor chars strictly increasing, each in [1, charCount];
|
|
1526
|
+
* 3. step rule: against the previous anchor (implicit head [0, 0]), the
|
|
1527
|
+
* character just before each anchor contributed exactly 0 units
|
|
1528
|
+
* (dropped) or 2 (surrogate pair):
|
|
1529
|
+
* `t₂ - (t₁ + (c₂ - c₁ - 1)) ∈ {0, 2}`;
|
|
1530
|
+
* 4. tail: `lastText + (charCount - lastChar) === text.length`
|
|
1531
|
+
* (equivalently `boundaryTextOffset(s, charCount) === text.length`).
|
|
1532
|
+
*/
|
|
1533
|
+
declare function charMapViolation(charCount: number, textLength: number, charMap: ReadonlyArray<CharMapAnchor> | undefined): string | null;
|
|
1534
|
+
//#endregion
|
|
1154
1535
|
//#region src/dto/PageTextSnapshot.d.ts
|
|
1155
1536
|
/**
|
|
1156
1537
|
* Per-page text snapshot returned by `PageHandle.text.read()` and over
|
|
1157
|
-
* the wire as the `GET /
|
|
1158
|
-
*
|
|
1159
|
-
* `text` is the full
|
|
1160
|
-
* (
|
|
1161
|
-
*
|
|
1162
|
-
*
|
|
1163
|
-
*
|
|
1538
|
+
* the wire as the `GET …/text/pages/:pon/data@<contentVersion>` body.
|
|
1539
|
+
*
|
|
1540
|
+
* `text` is the full extracted page text in display order, UTF-16 faithful
|
|
1541
|
+
* (supplementary-plane characters are surrogate pairs, never dropped).
|
|
1542
|
+
*
|
|
1543
|
+
* `charCount` is the size of the page's CHARACTER space — PDFium's internal
|
|
1544
|
+
* character list, the same space geometry runs tile
|
|
1545
|
+
* (`PageGeometryRun.charStart`) and selection ranges live in. It is NOT the
|
|
1546
|
+
* length of `text`: a non-printing character occupies a character slot but
|
|
1547
|
+
* contributes zero text units, and a supplementary character contributes
|
|
1548
|
+
* two. `charMap` encodes exactly those deviations; absent/empty means the
|
|
1549
|
+
* two spaces are identical (`charCount === text.length`), which is the
|
|
1550
|
+
* common case and costs nothing on the wire. All translation goes through
|
|
1551
|
+
* the helpers in `text/charmap.ts` (`boundaryTextOffset`,
|
|
1552
|
+
* `charRangeForTextOffsets`, `sliceTextByChars`) — consumers never
|
|
1553
|
+
* interpret anchors directly, and the wire schema rejects maps that violate
|
|
1554
|
+
* the invariants documented there.
|
|
1164
1555
|
*
|
|
1165
1556
|
* This snapshot is pure content, addressed and cached by `contentVersion`.
|
|
1166
1557
|
* It deliberately carries NO annotation liveness envelope (`PageState`):
|
|
@@ -1168,22 +1559,19 @@ declare function pdfQuadFromCorners(c: PdfQuadCorners): PdfQuad;
|
|
|
1168
1559
|
* annotation `revision` / weak-state changes on a different cadence than
|
|
1169
1560
|
* `contentVersion`, so baking liveness into this content-cached body would
|
|
1170
1561
|
* be a stale-data hazard. Liveness lives on annotation reads instead.
|
|
1171
|
-
*
|
|
1172
|
-
* Future extensions (per-character bounding boxes, font runs, search
|
|
1173
|
-
* results, etc.) land on `PageTextService` as additional methods; the
|
|
1174
|
-
* snapshot shape stays stable so the wire URL and CDN cache remain
|
|
1175
|
-
* intact across SDK versions.
|
|
1176
1562
|
*/
|
|
1177
1563
|
interface PageTextSnapshot {
|
|
1178
1564
|
text: string;
|
|
1179
1565
|
charCount: number;
|
|
1566
|
+
/** Character→text anchors; absent/empty = identity. See `text/charmap.ts`. */
|
|
1567
|
+
charMap?: ReadonlyArray<CharMapAnchor>;
|
|
1180
1568
|
}
|
|
1181
1569
|
//#endregion
|
|
1182
1570
|
//#region src/dto/PageGeometrySnapshot.d.ts
|
|
1183
1571
|
/**
|
|
1184
|
-
* One glyph's geometry in PDF user space (y-up edges).
|
|
1572
|
+
* One upright glyph's geometry in PDF user space (y-up edges).
|
|
1185
1573
|
*
|
|
1186
|
-
* `looseBox` is the loose char
|
|
1574
|
+
* `looseBox` is the loose char cell (pdfium `FPDFText_GetLooseCharBox`): the
|
|
1187
1575
|
* font-metric box covering the full glyph cell without regard to the actual
|
|
1188
1576
|
* glyph shape. Always present (zeroed + flagged empty for degenerate glyphs);
|
|
1189
1577
|
* it's the box selection envelopes are built from.
|
|
@@ -1200,15 +1588,61 @@ interface PageGeometryGlyph {
|
|
|
1200
1588
|
tightBox?: PdfRect;
|
|
1201
1589
|
}
|
|
1202
1590
|
/**
|
|
1203
|
-
* One
|
|
1204
|
-
*
|
|
1591
|
+
* One non-upright glyph's geometry: the exact oriented cells, in PDF user
|
|
1592
|
+
* space (page coordinates — NOT a local frame). The corner SLOTS are
|
|
1593
|
+
* frame-geometric in the glyph's own upright frame:
|
|
1594
|
+
* `p1` = upper-start, `p2` = upper-end, `p3` = lower-start, `p4` = lower-end,
|
|
1595
|
+
* where "upper" is the ascent side and "start" is the frame's minimum-x side.
|
|
1596
|
+
* Deliberately NOT a bidi/reading-order statement — advance direction is a
|
|
1597
|
+
* glyph-sequence concern, carried separately where consumers need it.
|
|
1598
|
+
*
|
|
1599
|
+
* Degenerate glyphs carry a zeroed `looseQuad` plus the empty flag (bit 2),
|
|
1600
|
+
* mirroring the upright variant's zeroed-box convention. `flags` bits match
|
|
1601
|
+
* {@link PageGeometryGlyph.flags}.
|
|
1602
|
+
*/
|
|
1603
|
+
interface RotatedGeometryGlyph {
|
|
1604
|
+
looseQuad: PdfQuad;
|
|
1605
|
+
flags: number;
|
|
1606
|
+
tightQuad?: PdfQuad;
|
|
1607
|
+
}
|
|
1608
|
+
/**
|
|
1609
|
+
* A run whose char matrix is upright — byte-identical to the wire shape that
|
|
1610
|
+
* predates orientation support, so upright documents never pay for it.
|
|
1205
1611
|
*/
|
|
1206
|
-
interface
|
|
1612
|
+
interface UprightGeometryRun {
|
|
1207
1613
|
rect: PdfRect;
|
|
1208
1614
|
charStart: number;
|
|
1209
1615
|
glyphs: PageGeometryGlyph[];
|
|
1210
1616
|
fontSize?: number;
|
|
1211
1617
|
}
|
|
1618
|
+
/**
|
|
1619
|
+
* A run whose char matrix is NOT upright (rotated, sheared, or mirrored).
|
|
1620
|
+
*
|
|
1621
|
+
* `rect` stays a page-space AABB (culling), like every other wire rect.
|
|
1622
|
+
* `rotation` is the baseline angle in radians, CCW in PDF y-up space
|
|
1623
|
+
* (`atan2(m.b, m.a)` of the run's char matrix). Note a shear-only run has
|
|
1624
|
+
* `rotation === 0` and still uses this variant — its cells are
|
|
1625
|
+
* parallelograms an AABB would misrepresent. `ascentFlip` is true when the
|
|
1626
|
+
* ascent vector maps opposite the rotated frame's +y (mirrored /
|
|
1627
|
+
* negative-determinant content).
|
|
1628
|
+
*/
|
|
1629
|
+
interface RotatedGeometryRun {
|
|
1630
|
+
rect: PdfRect;
|
|
1631
|
+
charStart: number;
|
|
1632
|
+
glyphs: RotatedGeometryGlyph[];
|
|
1633
|
+
rotation: number;
|
|
1634
|
+
ascentFlip: boolean;
|
|
1635
|
+
fontSize?: number;
|
|
1636
|
+
}
|
|
1637
|
+
/**
|
|
1638
|
+
* One text run (contiguous glyphs sharing a text object and orientation).
|
|
1639
|
+
* A discriminated union so consumers CANNOT read axis-aligned boxes off
|
|
1640
|
+
* rotated text by accident — handling orientation is a compile-time
|
|
1641
|
+
* obligation, not a runtime discovery. Narrow with
|
|
1642
|
+
* {@link isRotatedGeometryRun}, or use the uniform {@link glyphLooseQuad} /
|
|
1643
|
+
* {@link glyphLooseBounds} views.
|
|
1644
|
+
*/
|
|
1645
|
+
type PageGeometryRun = UprightGeometryRun | RotatedGeometryRun;
|
|
1212
1646
|
/**
|
|
1213
1647
|
* Geometry-only text layout for one page, in PDF user space (y-up). The v3
|
|
1214
1648
|
* viewer converts to content/view space via the page geometry matrix.
|
|
@@ -1220,6 +1654,22 @@ interface PageGeometryRun {
|
|
|
1220
1654
|
interface PageGeometrySnapshot {
|
|
1221
1655
|
runs: PageGeometryRun[];
|
|
1222
1656
|
}
|
|
1657
|
+
/** Narrowing guard: is this run the rotated (non-upright) variant? */
|
|
1658
|
+
declare function isRotatedGeometryRun(run: PageGeometryRun): run is RotatedGeometryRun;
|
|
1659
|
+
/**
|
|
1660
|
+
* Uniform oriented-cell view over either run variant: the glyph's loose cell
|
|
1661
|
+
* as a quad (synthesized from the box corners when the run is upright, in
|
|
1662
|
+
* the same frame-geometric slot order).
|
|
1663
|
+
*/
|
|
1664
|
+
declare function glyphLooseQuad(run: PageGeometryRun, index: number): PdfQuad;
|
|
1665
|
+
/**
|
|
1666
|
+
* Uniform AABB view over either run variant: the glyph's loose box, or the
|
|
1667
|
+
* enclosing bounds of its oriented cell when the run is rotated. The
|
|
1668
|
+
* conservative envelope for consumers that genuinely want a box (culling,
|
|
1669
|
+
* scroll targets) — never a substitute for handling orientation in geometry
|
|
1670
|
+
* that gets DRAWN.
|
|
1671
|
+
*/
|
|
1672
|
+
declare function glyphLooseBounds(run: PageGeometryRun, index: number): PdfRect;
|
|
1223
1673
|
//#endregion
|
|
1224
1674
|
//#region src/dto/PageRender.d.ts
|
|
1225
1675
|
type PageRenderEncodedFormat = 'png' | 'webp' | 'bmp';
|
|
@@ -1426,8 +1876,8 @@ interface AnnotationAppearancesQuery {
|
|
|
1426
1876
|
* (y-up), so the consumer can place the bitmap without a second read.
|
|
1427
1877
|
*
|
|
1428
1878
|
* Rotation convention: for annotations whose rotation lives in the AP
|
|
1429
|
-
* `/Matrix` — box-family kinds (square/circle/free-text/stamp) whose
|
|
1430
|
-
* carries BOTH `rotation` and `unrotatedRect` — the raster renders
|
|
1879
|
+
* `/Matrix` — box-family kinds (square/circle/free-text/stamp/caret) whose
|
|
1880
|
+
* DTO carries BOTH `rotation` and `unrotatedRect` — the raster renders
|
|
1431
1881
|
* ROTATION-STRIPPED and `rect` is the logical `unrotatedRect`; the consumer
|
|
1432
1882
|
* re-applies the DTO's `rotation` as a view transform about the box centre
|
|
1433
1883
|
* (e.g. CSS `rotate`), which makes the raster rotation-invariant (rotating
|
|
@@ -1586,6 +2036,14 @@ declare const EngineErrorCode: {
|
|
|
1586
2036
|
readonly DocOpenFailed: "DocOpenFailed";
|
|
1587
2037
|
readonly DocPasswordRequired: "DocPasswordRequired";
|
|
1588
2038
|
readonly DocPasswordIncorrect: "DocPasswordIncorrect";
|
|
2039
|
+
/**
|
|
2040
|
+
* A share-token exchange (`open({ kind: 'share' })`) needs the grant's
|
|
2041
|
+
* passphrase: none was supplied, or the supplied one was rejected —
|
|
2042
|
+
* indistinguishable by design, mirroring the server. Prompt and retry
|
|
2043
|
+
* with `sharePassword`. Distinct from `DocPasswordRequired`, which is
|
|
2044
|
+
* about the PDF's own encryption password.
|
|
2045
|
+
*/
|
|
2046
|
+
readonly SharePasswordRequired: "SharePasswordRequired";
|
|
1589
2047
|
readonly Aborted: "Aborted";
|
|
1590
2048
|
readonly Network: "Network";
|
|
1591
2049
|
readonly Unauthenticated: "Unauthenticated";
|
|
@@ -1760,6 +2218,13 @@ interface AnnotationBase {
|
|
|
1760
2218
|
rect: PdfRect;
|
|
1761
2219
|
/** /Contents text. */
|
|
1762
2220
|
contents: string | null;
|
|
2221
|
+
/**
|
|
2222
|
+
* `/Subj` — short subject line of a markup annotation (ISO 32000
|
|
2223
|
+
* §12.5.6.2, Table 172). Normalized onto the base like `contents` /
|
|
2224
|
+
* `author`: non-markup subtypes simply read `null`. Faithful read:
|
|
2225
|
+
* `null` iff the key is absent (a present-but-empty `/Subj` reads `''`).
|
|
2226
|
+
*/
|
|
2227
|
+
subject: string | null;
|
|
1763
2228
|
/** /T author. */
|
|
1764
2229
|
author: string | null;
|
|
1765
2230
|
/** ISO 8601 from /CreationDate. */
|
|
@@ -1843,6 +2308,8 @@ interface AnnotationBase {
|
|
|
1843
2308
|
*/
|
|
1844
2309
|
interface AnnotationPatchBase {
|
|
1845
2310
|
contents?: string | null;
|
|
2311
|
+
/** `/Subj`, three-state like `contents`: undefined=leave, null=remove, value=set. */
|
|
2312
|
+
subject?: string | null;
|
|
1846
2313
|
/** New appearance blend mode. Omit to preserve the current effective mode. */
|
|
1847
2314
|
blendMode?: BlendMode;
|
|
1848
2315
|
/**
|
|
@@ -2371,6 +2838,64 @@ declare function refKey(ref: AnnotationRef): string;
|
|
|
2371
2838
|
*/
|
|
2372
2839
|
declare function buildThreads(annotations: readonly AnnotationDTO[]): AnnotationThread[];
|
|
2373
2840
|
//#endregion
|
|
2841
|
+
//#region src/annotation/comments.d.ts
|
|
2842
|
+
/** One reviewer's status, derived from an ISO §12.5.6.3 state annotation. */
|
|
2843
|
+
interface ReviewStatus {
|
|
2844
|
+
/** Wire-normalized when known (`'accepted'`, …); verbatim when custom. */
|
|
2845
|
+
state: string;
|
|
2846
|
+
/** `'review'`, `'marked'`, or a custom model verbatim. */
|
|
2847
|
+
stateModel: string;
|
|
2848
|
+
/** Reviewer key: `/EMBD_Metadata` userId, else `/T`, else null. */
|
|
2849
|
+
by: string | null;
|
|
2850
|
+
/** `/M` ?? `/CreationDate` of the state annotation (ISO 8601). */
|
|
2851
|
+
at: string | null;
|
|
2852
|
+
/** The state annotation itself — for auditing or deletion. */
|
|
2853
|
+
ref: AnnotationRef;
|
|
2854
|
+
}
|
|
2855
|
+
/**
|
|
2856
|
+
* Review state of one thread. The two ISO state models are independent
|
|
2857
|
+
* axes: `byReviewer` / `lastChange` cover the review axis (the standard
|
|
2858
|
+
* `Review` model plus custom models), while the personal-checkmark
|
|
2859
|
+
* `Marked` axis lives solely in `markedBy`.
|
|
2860
|
+
*/
|
|
2861
|
+
interface CommentThreadReview {
|
|
2862
|
+
/** Latest review-axis status per reviewer key (unattributed skipped). */
|
|
2863
|
+
byReviewer: Record<string, ReviewStatus>;
|
|
2864
|
+
/** Latest review-axis change overall — a convenience, NOT a verdict. */
|
|
2865
|
+
lastChange: ReviewStatus | null;
|
|
2866
|
+
/** Reviewer keys whose latest Marked-model status is `'marked'`. */
|
|
2867
|
+
markedBy: string[];
|
|
2868
|
+
/**
|
|
2869
|
+
* Every state annotation in the thread's subtree (both axes, all
|
|
2870
|
+
* reviewers, chronological) — thread MEMBERSHIP, not status history:
|
|
2871
|
+
* deleting a whole thread must delete its state annotations too, and
|
|
2872
|
+
* the classified summaries above deliberately drop superseded refs.
|
|
2873
|
+
*/
|
|
2874
|
+
statusRefs: AnnotationRef[];
|
|
2875
|
+
/** `byReviewer[currentUserId]`; only set when the option was given. */
|
|
2876
|
+
mine?: ReviewStatus | null;
|
|
2877
|
+
}
|
|
2878
|
+
interface CommentThread<T extends AnnotationDTO = AnnotationDTO> {
|
|
2879
|
+
root: T;
|
|
2880
|
+
pageObjectNumber: PageObjectNumber;
|
|
2881
|
+
/** Whole-subtree replies, flattened chronologically; states excluded. */
|
|
2882
|
+
replies: T[];
|
|
2883
|
+
/** Every `/RT /Group` subordinate found in the subtree. */
|
|
2884
|
+
groupedParts: T[];
|
|
2885
|
+
review: CommentThreadReview;
|
|
2886
|
+
}
|
|
2887
|
+
interface BuildCommentThreadsOptions {
|
|
2888
|
+
/** Compute `review.mine` against this reviewer key. */
|
|
2889
|
+
currentUserId?: string;
|
|
2890
|
+
}
|
|
2891
|
+
/**
|
|
2892
|
+
* An ISO 32000 §12.5.6.3 state annotation: a text annotation carrying a
|
|
2893
|
+
* non-empty `/State` or `/StateModel`. Classification never relies on
|
|
2894
|
+
* flags — producers disagree on how state annotations are flagged.
|
|
2895
|
+
*/
|
|
2896
|
+
declare function isStateAnnotation(a: AnnotationDTO): boolean;
|
|
2897
|
+
declare function buildCommentThreads(annotations: readonly AnnotationDTO[], opts?: BuildCommentThreadsOptions): CommentThread[];
|
|
2898
|
+
//#endregion
|
|
2374
2899
|
//#region src/dto/LayerScopes.d.ts
|
|
2375
2900
|
/**
|
|
2376
2901
|
* Plane-scope block: a layer is a set of per-plane DELTAS
|
|
@@ -2455,6 +2980,19 @@ interface DocumentManifest {
|
|
|
2455
2980
|
* caches stay warm across unrelated edits (the `layoutVersion` design).
|
|
2456
2981
|
*/
|
|
2457
2982
|
attachmentsVersion: number;
|
|
2983
|
+
/**
|
|
2984
|
+
* Doc-level pin for the immutable whole-document annotation listing
|
|
2985
|
+
* (`/annotations/items@annotationsVersion=N`) — the cloud's one-request
|
|
2986
|
+
* hydration read. Bumps ONLY when annotation list BODIES change —
|
|
2987
|
+
* annotation create/update/delete/move, page insert/delete,
|
|
2988
|
+
* redaction-apply, flatten, and form field/widget structure — and
|
|
2989
|
+
* deliberately NOT on form value writes (widget DTOs carry no value;
|
|
2990
|
+
* only `/AP` rasters change, which the per-page `annotationVersion`
|
|
2991
|
+
* covers), metadata, attachments, or page move/rotate (bulk page order
|
|
2992
|
+
* is unspecified by contract). The same independent-cadence design as
|
|
2993
|
+
* `layoutVersion` / `metadataVersion`.
|
|
2994
|
+
*/
|
|
2995
|
+
annotationsVersion: number;
|
|
2458
2996
|
/**
|
|
2459
2997
|
* Audit-log head at this manifest's state — written in the same
|
|
2460
2998
|
* transaction as the version bumps, so an event subscriber that starts
|
|
@@ -2473,61 +3011,6 @@ interface DocumentManifest {
|
|
|
2473
3011
|
pages: ManifestPage[];
|
|
2474
3012
|
}
|
|
2475
3013
|
//#endregion
|
|
2476
|
-
//#region src/dto/PdfDestination.d.ts
|
|
2477
|
-
/**
|
|
2478
|
-
* An explicit PDF destination (ISO 32000-1 §12.3.2.2): a page, a location,
|
|
2479
|
-
* and a magnification. Produced by outlines/bookmarks, link annotations,
|
|
2480
|
-
* `/OpenAction`, and GoTo actions; named destinations resolve to one of
|
|
2481
|
-
* these through the catalog's `/Dests` dictionary or name tree — the
|
|
2482
|
-
* ENGINE does that resolution, so the viewer only ever sees this explicit
|
|
2483
|
-
* form.
|
|
2484
|
-
*
|
|
2485
|
-
* Coordinates are PDF user space (y-up, points, absolute — NOT
|
|
2486
|
-
* crop-relative). `null` means "retain the current value" (the spec's
|
|
2487
|
-
* meaning for null array entries); a `/XYZ` zoom of `0` is equivalent to
|
|
2488
|
-
* null. The `fitB*` kinds refer to the page's content BOUNDING box rather
|
|
2489
|
-
* than the crop box.
|
|
2490
|
-
*
|
|
2491
|
-
* Viewers translate these onto the stage's reveal primitive — see
|
|
2492
|
-
* `destinationToReveal` in `@embedpdf/plugin-stage`.
|
|
2493
|
-
*/
|
|
2494
|
-
type PdfDestination = {
|
|
2495
|
-
kind: 'xyz';
|
|
2496
|
-
pageObjectNumber: PageObjectNumber;
|
|
2497
|
-
left?: number | null;
|
|
2498
|
-
top?: number | null;
|
|
2499
|
-
zoom?: number | null;
|
|
2500
|
-
} | {
|
|
2501
|
-
kind: 'fit';
|
|
2502
|
-
pageObjectNumber: PageObjectNumber;
|
|
2503
|
-
} | {
|
|
2504
|
-
kind: 'fitH';
|
|
2505
|
-
pageObjectNumber: PageObjectNumber;
|
|
2506
|
-
top?: number | null;
|
|
2507
|
-
} | {
|
|
2508
|
-
kind: 'fitV';
|
|
2509
|
-
pageObjectNumber: PageObjectNumber;
|
|
2510
|
-
left?: number | null;
|
|
2511
|
-
} | {
|
|
2512
|
-
kind: 'fitR';
|
|
2513
|
-
pageObjectNumber: PageObjectNumber;
|
|
2514
|
-
left: number;
|
|
2515
|
-
bottom: number;
|
|
2516
|
-
right: number;
|
|
2517
|
-
top: number;
|
|
2518
|
-
} | {
|
|
2519
|
-
kind: 'fitB';
|
|
2520
|
-
pageObjectNumber: PageObjectNumber;
|
|
2521
|
-
} | {
|
|
2522
|
-
kind: 'fitBH';
|
|
2523
|
-
pageObjectNumber: PageObjectNumber;
|
|
2524
|
-
top?: number | null;
|
|
2525
|
-
} | {
|
|
2526
|
-
kind: 'fitBV';
|
|
2527
|
-
pageObjectNumber: PageObjectNumber;
|
|
2528
|
-
left?: number | null;
|
|
2529
|
-
};
|
|
2530
|
-
//#endregion
|
|
2531
3014
|
//#region src/dto/PdfLinkTarget.d.ts
|
|
2532
3015
|
/**
|
|
2533
3016
|
* Where a link annotation points, NORMALIZED. A link may carry either a
|
|
@@ -2604,6 +3087,14 @@ type PdfLinkTargetWritable = Extract<PdfLinkTarget, {
|
|
|
2604
3087
|
interface CacheDelta {
|
|
2605
3088
|
previousDocVersion: number;
|
|
2606
3089
|
docVersion: number;
|
|
3090
|
+
/**
|
|
3091
|
+
* New doc-level bulk annotations pin, present when this mutation bumped
|
|
3092
|
+
* it (annotation CRUD, page insert/delete, redaction, flatten, form
|
|
3093
|
+
* structure — see `DocumentManifest.annotationsVersion`). Absorbing it
|
|
3094
|
+
* keeps the client's cached manifest addressing the fresh bulk leaf
|
|
3095
|
+
* without a 404-refresh round trip.
|
|
3096
|
+
*/
|
|
3097
|
+
annotationsVersion?: number;
|
|
2607
3098
|
pages: Array<{
|
|
2608
3099
|
pageObjectNumber: PageObjectNumber;
|
|
2609
3100
|
cache: CachePins;
|
|
@@ -3316,6 +3807,59 @@ type FormFieldValue = {
|
|
|
3316
3807
|
/** Serialized form-data interchange formats. */
|
|
3317
3808
|
type FormDataFormat = 'fdf' | 'xfdf';
|
|
3318
3809
|
//#endregion
|
|
3810
|
+
//#region src/forms/submission.d.ts
|
|
3811
|
+
/**
|
|
3812
|
+
* One resolved entry of a form submission. The viewer resolved it with the
|
|
3813
|
+
* ISO 32000-2 Table 239/240 semantics already applied (Include/Exclude +
|
|
3814
|
+
* descendants, the unconditional NoExport veto, push-button and
|
|
3815
|
+
* unsupported-value exclusion), so the home never re-derives selection.
|
|
3816
|
+
* `value === null` is a NAME-ONLY entry (the IncludeNoValueFields shape);
|
|
3817
|
+
* `string[]` is a multi-select list box.
|
|
3818
|
+
*/
|
|
3819
|
+
interface FormSubmissionEntry {
|
|
3820
|
+
name: string;
|
|
3821
|
+
value: string | string[] | null;
|
|
3822
|
+
}
|
|
3823
|
+
/**
|
|
3824
|
+
* What a submit-capable document HOME receives — the resolved dataset plus
|
|
3825
|
+
* the document's declared intent as METADATA. The stack never fetches the
|
|
3826
|
+
* declared URL itself (a PDF-controlled URL reaching a server-side fetcher
|
|
3827
|
+
* is the SSRF class this contract exists to prevent); the home stores the
|
|
3828
|
+
* intent so its consumers can decide what to honor.
|
|
3829
|
+
*
|
|
3830
|
+
* Deliberately ABSENT: identity. The home derives who submitted from its
|
|
3831
|
+
* OWN verified session (the JWT it authenticated) — a client-supplied
|
|
3832
|
+
* identity would be a spoofing surface.
|
|
3833
|
+
*/
|
|
3834
|
+
interface FormSubmissionRequest {
|
|
3835
|
+
entries: FormSubmissionEntry[];
|
|
3836
|
+
/** The document's declared routing wish, verbatim (metadata, not orders).
|
|
3837
|
+
* `url` is null for scripted submits that named no target. */
|
|
3838
|
+
intent: {
|
|
3839
|
+
url: string | null;
|
|
3840
|
+
format: 'fdf' | 'html' | 'xfdf' | 'pdf';
|
|
3841
|
+
method: 'post' | 'get';
|
|
3842
|
+
/** Raw ISO Table 240 flag word (0 for scripted submits without one). */
|
|
3843
|
+
flagsRaw: number;
|
|
3844
|
+
/** /CharSet (PDF 2.0), extracted but never encoded by this stack. */
|
|
3845
|
+
charSet?: string;
|
|
3846
|
+
};
|
|
3847
|
+
/** How the submission was triggered — the viewer-derived origin axis. */
|
|
3848
|
+
origin: 'user' | 'hover' | 'lifecycle';
|
|
3849
|
+
/** Client wall-clock, milliseconds since epoch. Informational — the home
|
|
3850
|
+
* stamps its own authoritative `receivedAt`. */
|
|
3851
|
+
clientTimeMs: number;
|
|
3852
|
+
}
|
|
3853
|
+
/** The home's acknowledgment: the stored submission's durable identity. */
|
|
3854
|
+
interface FormSubmissionReceipt {
|
|
3855
|
+
submissionId: string;
|
|
3856
|
+
/** ISO 8601, the home's clock. */
|
|
3857
|
+
receivedAt: string;
|
|
3858
|
+
}
|
|
3859
|
+
declare const FormSubmissionEntrySchema: z.ZodType<FormSubmissionEntry>;
|
|
3860
|
+
declare const FormSubmissionRequestSchema: z.ZodType<FormSubmissionRequest>;
|
|
3861
|
+
declare const FormSubmissionReceiptSchema: z.ZodType<FormSubmissionReceipt>;
|
|
3862
|
+
//#endregion
|
|
3319
3863
|
//#region src/forms/effects.d.ts
|
|
3320
3864
|
type FormFieldDisplay = 'visible' | 'hidden' | 'noPrint' | 'noView';
|
|
3321
3865
|
/** Ordered, committed outputs of one client-side form script run. */
|
|
@@ -3438,6 +3982,85 @@ interface FormRepairResult {
|
|
|
3438
3982
|
meta: MutationMeta;
|
|
3439
3983
|
}
|
|
3440
3984
|
//#endregion
|
|
3985
|
+
//#region src/text/layout.d.ts
|
|
3986
|
+
/**
|
|
3987
|
+
* One merged visual line of a text range, in PDF user space. `quad` is the
|
|
3988
|
+
* geometric authority (frame-geometric slot order: `p1..p4` = upper-start,
|
|
3989
|
+
* upper-end, lower-start, lower-end — visual semantics, NOT reading order);
|
|
3990
|
+
* `rect` is its axis-aligned bounds, produced by the same constructor.
|
|
3991
|
+
* `advance` is the READING direction along the baseline, derived from the
|
|
3992
|
+
* glyph SEQUENCE (+1 = the frame's +x), never inferred from geometry.
|
|
3993
|
+
*/
|
|
3994
|
+
interface PdfTextSegment {
|
|
3995
|
+
quad: PdfQuad;
|
|
3996
|
+
rect: PdfRect;
|
|
3997
|
+
advance: 1 | -1;
|
|
3998
|
+
}
|
|
3999
|
+
/** One glyph in its frame's space. `loose` builds segments; `tight` hit-tests. */
|
|
4000
|
+
interface TextLayoutGlyph {
|
|
4001
|
+
loose: PdfRect;
|
|
4002
|
+
tight?: PdfRect;
|
|
4003
|
+
flags: number;
|
|
4004
|
+
}
|
|
4005
|
+
/** A contiguous run of glyphs (a text object) in one frame. */
|
|
4006
|
+
interface TextLayoutRun {
|
|
4007
|
+
/** First char index — identical to the flat glyph index (runs tile the page). */
|
|
4008
|
+
charStart: number;
|
|
4009
|
+
count: number;
|
|
4010
|
+
/** Frame-local loose box (page space itself in frame 0). */
|
|
4011
|
+
rect: PdfRect;
|
|
4012
|
+
fontSize?: number;
|
|
4013
|
+
/** Index into {@link PageTextLayout.frames}; 0 = page space (upright). */
|
|
4014
|
+
frame: number;
|
|
4015
|
+
}
|
|
4016
|
+
/** An orientation cluster's orthonormal basis in page space. */
|
|
4017
|
+
interface TextLayoutFrame {
|
|
4018
|
+
/** Unit vector along the reading baseline (+x of the frame). */
|
|
4019
|
+
baseline: PdfPoint;
|
|
4020
|
+
/** Unit vector toward the ascent side (+y of the frame), ⟂ baseline. */
|
|
4021
|
+
ascent: PdfPoint;
|
|
4022
|
+
}
|
|
4023
|
+
/**
|
|
4024
|
+
* A page's text laid out per-frame: a flat glyph list (index = text-page
|
|
4025
|
+
* char index), the run structure, and the orientation frames.
|
|
4026
|
+
*/
|
|
4027
|
+
interface PageTextLayout {
|
|
4028
|
+
glyphs: TextLayoutGlyph[];
|
|
4029
|
+
runs: TextLayoutRun[];
|
|
4030
|
+
frames: TextLayoutFrame[];
|
|
4031
|
+
}
|
|
4032
|
+
/**
|
|
4033
|
+
* Flatten a page's geometry snapshot into the canonical layout. Upright runs
|
|
4034
|
+
* copy their wire boxes verbatim (frame 0 — byte-identical to the
|
|
4035
|
+
* pre-orientation behavior, wire run rects included); rotated runs project
|
|
4036
|
+
* their glyph cells into their cluster's frame.
|
|
4037
|
+
*/
|
|
4038
|
+
declare function buildPageTextLayout(snapshot: PageGeometrySnapshot): PageTextLayout;
|
|
4039
|
+
/**
|
|
4040
|
+
* The glyph (char) index at a page-space point, or null when nothing is near
|
|
4041
|
+
* (so callers can show the pointer cursor off-text). PDFium `GetIndexAtPos`:
|
|
4042
|
+
* exact tight-box containment first, then a tolerance pass (closest by
|
|
4043
|
+
* Manhattan distance within `toleranceFactor × average glyph height`). Each
|
|
4044
|
+
* run tests the point in ITS OWN frame, so rotated text hit-tests exactly.
|
|
4045
|
+
*/
|
|
4046
|
+
declare function textGlyphAt(layout: PageTextLayout, point: PdfPoint, toleranceFactor?: number): number | null;
|
|
4047
|
+
/** Double-click: the word around `glyph` (walk to space/empty glyphs both ways). */
|
|
4048
|
+
declare function expandTextRangeToWord(layout: PageTextLayout, glyph: number): [number, number];
|
|
4049
|
+
/** Triple-click: the full visual line — SAME-FRAME runs whose vertical extent
|
|
4050
|
+
* overlaps the anchor run's. A differently-oriented run is a line boundary. */
|
|
4051
|
+
declare function expandTextRangeToLine(layout: PageTextLayout, glyph: number): [number, number];
|
|
4052
|
+
/**
|
|
4053
|
+
* A single glyph's oriented cell in page space, or null for degenerate
|
|
4054
|
+
* glyphs — the anchor for caret placement at a selection boundary.
|
|
4055
|
+
*/
|
|
4056
|
+
declare function textGlyphQuad(layout: PageTextLayout, glyph: number): PdfQuad | null;
|
|
4057
|
+
/**
|
|
4058
|
+
* Merged visual-line segments for the half-open char range
|
|
4059
|
+
* `[charStart, charStart + charCount)` — THE canonical segmentation. Chars
|
|
4060
|
+
* outside the layout are ignored.
|
|
4061
|
+
*/
|
|
4062
|
+
declare function textSegmentsForRange(layout: PageTextLayout, charStart: number, charCount: number): PdfTextSegment[];
|
|
4063
|
+
//#endregion
|
|
3441
4064
|
//#region src/search/types.d.ts
|
|
3442
4065
|
/**
|
|
3443
4066
|
* What to search for — THE one shape, engine → wire → plugin state →
|
|
@@ -3548,19 +4171,26 @@ interface SearchSnippet {
|
|
|
3548
4171
|
matchLength: number;
|
|
3549
4172
|
}
|
|
3550
4173
|
/**
|
|
3551
|
-
* One hit. `charStart`/`charCount`
|
|
3552
|
-
* space — the
|
|
3553
|
-
*
|
|
3554
|
-
* (
|
|
3555
|
-
*
|
|
3556
|
-
*
|
|
3557
|
-
*
|
|
4174
|
+
* One hit. `charStart`/`charCount` are a half-open range in the page's
|
|
4175
|
+
* CHARACTER space — the space `PageGeometryRun.charStart` tiles and
|
|
4176
|
+
* selection ranges live in, NOT string offsets into `PageTextSnapshot.text`
|
|
4177
|
+
* (engines convert match string-ranges through the snapshot's `charMap`
|
|
4178
|
+
* before building the hit; see engine-core `text/charmap.ts`). That is what
|
|
4179
|
+
* lets a match join the selection subsystem — select-this-match, markup
|
|
4180
|
+
* creation — with no re-mapping, and it means zero-width characters
|
|
4181
|
+
* adjacent to the matched text are never inside the range. Snippet offsets
|
|
4182
|
+
* are the one exception: they are string offsets INTERNAL to the snippet's
|
|
4183
|
+
* own `text`. `segments` are the CANONICAL visual-line segments (the same
|
|
4184
|
+
* engine-core text layout selection uses) — a match highlights exactly like
|
|
4185
|
+
* a selection of the same characters, one oriented segment per visual line,
|
|
4186
|
+
* never per glyph. Each segment carries the exact quad, its AABB `rect`,
|
|
4187
|
+
* and the reading `advance`.
|
|
3558
4188
|
*/
|
|
3559
4189
|
interface SearchMatch {
|
|
3560
4190
|
pageObjectNumber: PageObjectNumber;
|
|
3561
4191
|
charStart: number;
|
|
3562
4192
|
charCount: number;
|
|
3563
|
-
|
|
4193
|
+
segments: PdfTextSegment[];
|
|
3564
4194
|
snippet?: SearchSnippet;
|
|
3565
4195
|
}
|
|
3566
4196
|
/**
|
|
@@ -3724,10 +4354,14 @@ declare function buildSnippet(text: string, range: SearchMatchRange, context?: n
|
|
|
3724
4354
|
//#endregion
|
|
3725
4355
|
//#region src/search/rects.d.ts
|
|
3726
4356
|
/**
|
|
3727
|
-
*
|
|
3728
|
-
*
|
|
3729
|
-
*
|
|
4357
|
+
* Match-range → canonical visual-line segments. Thin wrappers over the ONE
|
|
4358
|
+
* text layout (`src/text/layout.ts`) — search owns matching and cursors,
|
|
4359
|
+
* never segmentation, so a match highlights exactly like a selection of the
|
|
4360
|
+
* same characters. No frame or merge logic lives here.
|
|
3730
4361
|
*/
|
|
4362
|
+
/** Canonical segments for `[charStart, charStart + charCount)`. */
|
|
4363
|
+
declare function searchSegmentsForRange(snapshot: PageGeometrySnapshot, charStart: number, charCount: number): PdfTextSegment[];
|
|
4364
|
+
/** The segments' AABBs — for consumers that genuinely want boxes. */
|
|
3731
4365
|
declare function searchRectsForRange(snapshot: PageGeometrySnapshot, charStart: number, charCount: number): PdfRect[];
|
|
3732
4366
|
//#endregion
|
|
3733
4367
|
//#region src/search/epoch.d.ts
|
|
@@ -3917,6 +4551,29 @@ interface PageInsertResult {
|
|
|
3917
4551
|
cache: PageStructureCache | null;
|
|
3918
4552
|
}
|
|
3919
4553
|
//#endregion
|
|
4554
|
+
//#region src/mutation/PageInsertBlankInput.d.ts
|
|
4555
|
+
/**
|
|
4556
|
+
* Upper bound on `count` for a single `pages.insertBlank()` call. A CONTRACT
|
|
4557
|
+
* cap, enforced identically by every engine (the cloud input schema carries
|
|
4558
|
+
* the same number), so a UI never discovers a lower server limit by surprise.
|
|
4559
|
+
* Larger batches are a loop at the call site.
|
|
4560
|
+
*/
|
|
4561
|
+
declare const PAGE_INSERT_BLANK_MAX_COUNT = 100;
|
|
4562
|
+
/**
|
|
4563
|
+
* Spec for `pages.insertBlank()`: create `count` blank pages of `size`.
|
|
4564
|
+
*
|
|
4565
|
+
* `size` is explicit and in PDF points, un-rotated — the same convention as
|
|
4566
|
+
* `PageLayout.size`. The "match my neighbour" default developers expect is a
|
|
4567
|
+
* registry read, so it lives in the page-edit capability, not here: the
|
|
4568
|
+
* engine wire never guesses (the `rotateBy` law).
|
|
4569
|
+
*/
|
|
4570
|
+
interface PageInsertBlankSpec {
|
|
4571
|
+
/** Page size in PDF points. Both dimensions must be finite and > 0. */
|
|
4572
|
+
size: PdfSize;
|
|
4573
|
+
/** Pages to create, in `[1, PAGE_INSERT_BLANK_MAX_COUNT]`. Default 1. */
|
|
4574
|
+
count?: number;
|
|
4575
|
+
}
|
|
4576
|
+
//#endregion
|
|
3920
4577
|
//#region src/mutation/PageFlattenResult.d.ts
|
|
3921
4578
|
type PageFlattenUsage = 'display' | 'print';
|
|
3922
4579
|
type PageFlattenStatus = 'applied' | 'unchanged' | 'failed' | 'skipped';
|
|
@@ -4388,12 +5045,16 @@ interface LinkPatch extends AnnotationPatchBase {
|
|
|
4388
5045
|
target?: PdfLinkTargetWritable | null;
|
|
4389
5046
|
}
|
|
4390
5047
|
//#endregion
|
|
4391
|
-
//#region src/
|
|
5048
|
+
//#region src/dto/PdfDestination.schema.d.ts
|
|
4392
5049
|
/**
|
|
4393
|
-
* Runtime schema for {@link PdfDestination}. Lives
|
|
4394
|
-
*
|
|
5050
|
+
* Runtime schema for {@link PdfDestination}. Lives beside its DTO in `dto/`
|
|
5051
|
+
* so every destination-shaped surface (link targets, action-node payloads,
|
|
5052
|
+
* the document `openDestination`) shares one schema without an import cycle
|
|
5053
|
+
* through the annotation tree.
|
|
4395
5054
|
*/
|
|
4396
5055
|
declare const PdfDestinationSchema: z.ZodType<PdfDestination>;
|
|
5056
|
+
//#endregion
|
|
5057
|
+
//#region src/annotation/kinds/link/schema.d.ts
|
|
4397
5058
|
declare const PdfLinkTargetSchema: z.ZodType<PdfLinkTarget>;
|
|
4398
5059
|
/** Drafts/patches only author `goto`/`uri` — see {@link PdfLinkTargetWritable}. */
|
|
4399
5060
|
declare const PdfLinkTargetWritableSchema: z.ZodType<PdfLinkTargetWritable>;
|
|
@@ -4558,6 +5219,9 @@ interface CaretDraft extends AnnotationDraftBase, ColorStyleDraftFields {
|
|
|
4558
5219
|
rect: PdfRect;
|
|
4559
5220
|
/** `/RD` inset of the drawn caret from `/Rect`. */
|
|
4560
5221
|
rectDifferences?: PdfRectDifferences | null;
|
|
5222
|
+
/** Tri-state box-rotation pair (see the DTO): omitted/`null` = upright. */
|
|
5223
|
+
rotation?: number | null;
|
|
5224
|
+
unrotatedRect?: PdfRect | null;
|
|
4561
5225
|
}
|
|
4562
5226
|
//#endregion
|
|
4563
5227
|
//#region src/annotation/kinds/caret/dto.d.ts
|
|
@@ -4565,6 +5229,12 @@ interface CaretDraft extends AnnotationDraftBase, ColorStyleDraftFields {
|
|
|
4565
5229
|
* Caret annotation — a visual marker for a proposed text insertion or edit
|
|
4566
5230
|
* point. It carries no geometry of its own beyond `/Rect`: just a `/C` color,
|
|
4567
5231
|
* `/CA` opacity, and an optional `/RD` inset of the drawn symbol from `/Rect`.
|
|
5232
|
+
*
|
|
5233
|
+
* A caret anchored to ROTATED text carries the box-family rotation pair:
|
|
5234
|
+
* `rotation` (`/EMBD_Metadata/Rotation`, PDF-convention degrees) tilts the
|
|
5235
|
+
* baked symbol to ride its text's baseline, `unrotatedRect` is the logical
|
|
5236
|
+
* box, and `/Rect` stays the rotated visual AABB — exactly the shape/free-text
|
|
5237
|
+
* contract, so the generic AP machinery bakes it.
|
|
4568
5238
|
*/
|
|
4569
5239
|
type CaretAnnotationDTO = AnnotationBase & ColorStyleFields & {
|
|
4570
5240
|
subtype: 'caret';
|
|
@@ -4572,6 +5242,10 @@ type CaretAnnotationDTO = AnnotationBase & ColorStyleFields & {
|
|
|
4572
5242
|
intent: CaretIntent | null;
|
|
4573
5243
|
/** `/RD` inset of the drawn caret from `/Rect`; `null` when absent. */
|
|
4574
5244
|
rectDifferences: PdfRectDifferences | null;
|
|
5245
|
+
/** `/EMBD_Metadata/Rotation` — degrees, normalized `[0,360)`. */
|
|
5246
|
+
rotation?: number;
|
|
5247
|
+
/** `/EMBD_Metadata/UnrotatedRect` — the logical box (required when rotation != 0). */
|
|
5248
|
+
unrotatedRect?: PdfRect;
|
|
4575
5249
|
};
|
|
4576
5250
|
//#endregion
|
|
4577
5251
|
//#region src/annotation/kinds/caret/patch.d.ts
|
|
@@ -4581,6 +5255,10 @@ interface CaretPatch extends AnnotationPatchBase, ColorStylePatchFields {
|
|
|
4581
5255
|
rect?: PdfRect;
|
|
4582
5256
|
/** Tri-state: omitted preserves, a value sets, `null` removes `/RD`. */
|
|
4583
5257
|
rectDifferences?: PdfRectDifferences | null;
|
|
5258
|
+
/** Tri-state: omitted preserves, `null`/`0` flattens, a value sets (needs the box). */
|
|
5259
|
+
rotation?: number | null;
|
|
5260
|
+
/** Tri-state: omitted preserves, `null` removes, a value sets. */
|
|
5261
|
+
unrotatedRect?: PdfRect | null;
|
|
4584
5262
|
}
|
|
4585
5263
|
//#endregion
|
|
4586
5264
|
//#region src/annotation/kinds/caret/schema.d.ts
|
|
@@ -4608,6 +5286,16 @@ interface TextDraft extends AnnotationDraftBase, ColorStyleDraftFields {
|
|
|
4608
5286
|
rect: PdfRect;
|
|
4609
5287
|
/** `/Name` icon. Default `'note'` (the ISO 32000 default). */
|
|
4610
5288
|
icon?: NoteIcon;
|
|
5289
|
+
/**
|
|
5290
|
+
* Write `/State` + `/StateModel`, making this draft an ISO 32000
|
|
5291
|
+
* §12.5.6.3 review-status reply (pair with `inReplyTo` → the annotation
|
|
5292
|
+
* under review). `state` requires `stateModel` — the engine throws
|
|
5293
|
+
* `InvalidArg` otherwise. `stateModel` alone is valid: the model's
|
|
5294
|
+
* default state applies (`none` for review, `unmarked` for marked).
|
|
5295
|
+
*/
|
|
5296
|
+
state?: AnnotationState;
|
|
5297
|
+
/** See {@link state}. */
|
|
5298
|
+
stateModel?: AnnotationStateModel;
|
|
4611
5299
|
}
|
|
4612
5300
|
//#endregion
|
|
4613
5301
|
//#region src/annotation/kinds/text/dto.d.ts
|
|
@@ -4621,6 +5309,17 @@ type TextAnnotationDTO = AnnotationBase & ColorStyleFields & {
|
|
|
4621
5309
|
subtype: 'text';
|
|
4622
5310
|
/** `/Name` icon; an absent `/Name` reads as `'note'` (the ISO default). */
|
|
4623
5311
|
icon: NoteIcon;
|
|
5312
|
+
/**
|
|
5313
|
+
* `/State` — ISO 32000 §12.5.6.3 annotation state, carried by a
|
|
5314
|
+
* review-status reply (a text annotation whose `inReplyTo` points at
|
|
5315
|
+
* the annotation being reviewed). Faithful read: `null` iff the key
|
|
5316
|
+
* is absent. ISO defaulting — a `stateModel` present with no explicit
|
|
5317
|
+
* `state` implies `none` (review) / `unmarked` (marked) — is a
|
|
5318
|
+
* thread-composer concern, deliberately not applied here.
|
|
5319
|
+
*/
|
|
5320
|
+
state: AnnotationState | null;
|
|
5321
|
+
/** `/StateModel` — see {@link state}. `null` iff the key is absent. */
|
|
5322
|
+
stateModel: AnnotationStateModel | null;
|
|
4624
5323
|
};
|
|
4625
5324
|
//#endregion
|
|
4626
5325
|
//#region src/annotation/kinds/text/patch.d.ts
|
|
@@ -4628,6 +5327,10 @@ interface TextPatch extends AnnotationPatchBase, ColorStylePatchFields {
|
|
|
4628
5327
|
subtype: 'text';
|
|
4629
5328
|
rect?: PdfRect;
|
|
4630
5329
|
icon?: NoteIcon;
|
|
5330
|
+
/** `/State`, three-state: undefined=leave, null=remove the entry, value=set. */
|
|
5331
|
+
state?: AnnotationState | null;
|
|
5332
|
+
/** `/StateModel`, three-state: undefined=leave, null=remove the entry, value=set. */
|
|
5333
|
+
stateModel?: AnnotationStateModel | null;
|
|
4631
5334
|
}
|
|
4632
5335
|
//#endregion
|
|
4633
5336
|
//#region src/annotation/kinds/text/schema.d.ts
|
|
@@ -5019,11 +5722,27 @@ declare const AnnotationPatchSchema: z.ZodType<WireAnnotationPatch>;
|
|
|
5019
5722
|
/**
|
|
5020
5723
|
* Whole-document raw read response. Returned by
|
|
5021
5724
|
* `DocumentAnnotationsService.listRawAll()` and over the wire as the
|
|
5022
|
-
* cloud layer annotation reads.
|
|
5023
|
-
*
|
|
5725
|
+
* cloud layer annotation reads.
|
|
5726
|
+
*
|
|
5727
|
+
* One entry per page. ORDER IS UNSPECIFIED — the local engine serves
|
|
5728
|
+
* document order while the cloud engine serves manifest (pageObjectNumber
|
|
5729
|
+
* registry) order; join `pageState.pageObjectNumber` against
|
|
5730
|
+
* `pages.list()` when display order matters.
|
|
5024
5731
|
*/
|
|
5025
5732
|
interface AnnotationListSnapshotAllPages {
|
|
5026
5733
|
pages: AnnotationListPageSnapshot[];
|
|
5734
|
+
/**
|
|
5735
|
+
* Audit-log position this snapshot is consistent with (cloud only;
|
|
5736
|
+
* absent locally, where no audit log exists). Every page reflects
|
|
5737
|
+
* exactly the mutations with `serverId <= auditHead` and none newer —
|
|
5738
|
+
* the reads are pinned to one manifest, whose `auditHead` is written in
|
|
5739
|
+
* the same transaction as its version bumps.
|
|
5740
|
+
*
|
|
5741
|
+
* This is the reconciliation cursor for consumers that keep a snapshot
|
|
5742
|
+
* fresh from `doc.events`: drop events with `origin.serverId <=
|
|
5743
|
+
* auditHead` (already inside the snapshot), apply the rest.
|
|
5744
|
+
*/
|
|
5745
|
+
auditHead?: number;
|
|
5027
5746
|
}
|
|
5028
5747
|
/**
|
|
5029
5748
|
* Single-page raw or full read response. Returned by
|
|
@@ -5039,5 +5758,5 @@ interface AnnotationListPageSnapshot {
|
|
|
5039
5758
|
annotations: AnnotationDTO[];
|
|
5040
5759
|
}
|
|
5041
5760
|
//#endregion
|
|
5042
|
-
export { CaretDraftSchema as $, AnnotationIdentityQuality as $a, LayerScopes as $i, searchRectsForRange as $n, pdfQuadCorners as $o, ListBoxFieldDraft as $r, revisionTokensEqual as $s, CircleDraftSchema as $t, FileAttachmentWireDraftSchema as A, EmbeddedFileItem as Aa, PdfSize as Ac, AnnotationCreateResult as Ai, HighlightDraft as An, PageImageHandle as Ao, FormFieldDeleteResult as Ar, filterMatches as As, LineDraft as At, StampAnnotationDTO as B, BinarySource as Ba, PdfPageActions as Bc, changesAnnotationList as Bi, PageFlattenStatus as Bn, PageRenderOptions as Bo, FormFieldDisplay as Br, CollabEntity as Bs, PolygonPatch as Bt, RedactDraft as C, GeometryStyleDraftFields as Ca, InkList as Cc, ToggleFieldWidget as Ci, UnderlineAnnotationDTO as Cn, AnnotationAppearancesQuery as Co, SearchQuery as Cr, CollabTarget as Cs, LinkAnnotationDTO as Ct, FileAttachmentDTOSchema as D, AttachmentFileBase as Da, PdfQuad as Dc, FormWidgetRef as Di, HighlightPatchSchema as Dn, WeakAnnotationState as Do, SearchSnippet as Dr, checkSetGroup as Ds, LinePatchSchema as Dt, WidgetDraft as E, AttachmentContent as Ea, PdfPoint as Ec, FormFieldRef as Ei, HighlightDraftSchema as En, UNKNOWN_WEAK_ANNOTATION_STATE as Eo, SearchSliceBudget as Er, checkCollab as Es, LineDraftSchema as Et, StampDTOSchema as F, normalizeAnnotationPatch as Fa, PdfActionTree as Fc, AppearanceImpact as Fi, RedactionApplyScope as Fn, PageNetworkRenderFormat as Fo, FormWidgetLinkResult as Fr, validateScopeArray as Fs, PolylineAnnotationDTO as Ft, TextDTOSchema as G, ANNOTATION_SUBTYPES as Ga, CacheDelta as Gi, PageRotateResult as Gn, PageGeometryGlyph as Go, FormFieldPatch as Gr, ParsedCollab as Gs, VertexPatchFields as Gt, StampFit as H, WireResource as Ha, DocumentMetadataTrapped as Hc, shiftsExistingAnnotationIndices as Hi, PageInsertResult as Hn, PageRenderTarget as Ho, FormFieldValue as Hr, DocCapability as Hs, PolygonDraft as Ht, StampWireDraftSchema as I, BinaryMetadata as Ia, PdfActionType as Ic, AppearanceOutcome as Ii, RedactionApplyStatus as In, PageRaster as Io, FormEffect as Ir, PDF_BITS as Is, PolylineDraft as It, TextPatch as J, PDF_SUBTYPE_TO_CODE as Ja, PdfLinkTargetWritable as Ji, PageMoveResult as Jn, PageTextSnapshot as Jo, TextFieldPatch as Jr, ParsedWildcard as Js, SquarePatchSchema as Jt, TextDraftSchema as K, AnnotationSubtype as Ka, MutationMeta as Ki, PageRotateInput as Kn, PageGeometryRun as Ko, ListBoxFieldPatch as Kr, ParsedScope as Ks, SquareDTOSchema as Kt, StampWirePatchSchema as L, BinaryMimeType as La, PdfActionWarning as Lc, appearanceImpactOf as Li, PageFlattenInput as Ln, PageRenderBackground as Lo, FormEffectResult as Lr, decodePdfBits as Ls, PolygonDTOSchema as Lt, FileAttachmentPatch as M, NormalizedDraft as Ma, DocumentActionsSnapshot as Mc, AnnotationMoveResult as Mi, MetadataUpdateResult as Mn, PageImageOptions as Mo, FormImportResult as Mr, MissingIdentity as Ms, PolylineDraftSchema as Mt, FileAttachmentAnnotationDTO as N, NormalizedPatch as Na, NamedJavaScriptAction as Nc, AnnotationUpdateResult as Ni, RedactionApplyItemResult as Nn, PageImageResult as No, FormRepairResult as Nr, PermissionDenied as Ns, PolylinePatchSchema as Nt, FileAttachmentIconSchema as O, AttachmentFileInfo as Oa, PdfRect as Oc, decodeFieldRefKey as Oi, HighlightPatch as On, knownWeakAnnotationState as Oo, FormDataExport as Or, expandRawScope as Os, LinePatch as Ot, ResourceRefSchema as P, normalizeAnnotationDraft as Pa, PdfActionNode as Pc, AppearanceAction as Pi, RedactionApplyResult as Pn, PageImageSource as Po, FormSetValueResult as Pr, parseScope as Ps, PolylinePatch as Pt, CaretDTOSchema as Q, AnnotationBase as Qa, LayerScopePlane as Qi, searchContentEpoch as Qn, pdfQuadBounds as Qo, FormFieldOptionInput as Qr, RevisionToken as Qs, CircleDTOSchema as Qt, StampPatch as R, sniffBinaryMetadata as Ra, PdfAnnotationActions as Rc, semanticEqual as Ri, PageFlattenItemResult as Rn, PageRenderEncodedFormat as Ro, FormEffectStatus as Rr, AnnotationActor as Rs, PolygonDraftSchema as Rt, RedactAnnotationDTO as S, FilledStylePatchFields as Sa, CalloutLine as Sc, TextFieldDTO as Si, UnderlinePatch as Sn, AnnotationAppearanceRenderOptions as So, SearchMode as Sr, pdfPermissions as Ss, LinkPatch as St, WidgetAnnotationDTO as T, GeometryStylePatchFields as Ta, LinePoints as Tc, FormValueEntry as Ti, HighlightDTOSchema as Tn, PageState as To, SearchSlice as Tr, checkCapability as Ts, LineDTOSchema as Tt, StampWireDraft as U, WireResourceMap as Ua, AnnotationListMutationMeta as Ui, PageDeleteResult as Un, PageRenderViewport as Uo, CheckboxFieldPatch as Ur, IdentityClaims as Us, VertexAnnotationFields as Ut, StampDraft as V, ResourceRef as Va, DocumentMetadata as Vc, invalidatesWeakIndexRefs as Vi, PageFlattenUsage as Vn, PageRenderQuery as Vo, FormDataFormat as Vr, CollabFilter as Vs, PolygonAnnotationDTO as Vt, NoteIconSchema as W, resolveBinarySource as Wa, RefetchReason as Wi, PageDeleteInput as Wn, createPageImageHandle as Wo, ComboBoxFieldPatch as Wr, ParsedCapability as Ws, VertexDraftFields as Wt, NoteIcon as X, subtypeFromCode as Xa, DocumentManifest as Xi, PageMoveInput as Xn, PdfQuadCorners as Xo, ComboBoxFieldDraft as Xr, AnnotationDraftBase as Xs, SquareAnnotationDTO as Xt, TextAnnotationDTO as Y, PdfAnnotationSubtypeCode as Ya, PdfDestination as Yi, PageStructureCache as Yn, PdfOriginSize as Yo, CheckboxFieldDraft as Yr, PdfBits as Ys, SquarePatch as Yt, TextDraft as Z, AnnotationPatchBase as Za, ManifestPage as Zi, canonicalSearchQuery as Zn, normalizePdfRect as Zo, FormFieldDraft as Zr, AnnotationRef as Zs, SquareDraft as Zt, UnsupportedPatchSchema as _, ColorStyleDraftFields as _a, Rotation as _c, FormFieldOrigin as _i, SquigglyAnnotationDTO as _n, AnnotationAppearanceImagesResult as _o, SEARCH_FOLD_VERSION as _r, OpenOptions as _s, LinkDraftSchema as _t, AnnotationDTOSchema as a, AnnotationKindModule as aa, BlendMode as ac, WidgetAppearance as ai, ShapeDraftFields as an, SerializedEngineError as ao, SearchQueryValidation as ar, pdfRectWidth as as, FreeTextDraftSchema as at, UnsupportedAnnotationDTO as b, FilledStyleDraftFields as ba, StrikeoutIntent as bc, RadioFieldDTO as bi, UnderlineDraftSchema as bn, AnnotationAppearanceMode as bo, toOriginalRange as br, collab as bs, PdfLinkTargetSchema as bt, AnnotationKind as c, PatchOfKind as ca, FreeTextFont as cc, WidgetStyleFields as ci, StrikeoutDraftSchema as cn, EngineErrorCode as co, matchRegex as cr, PageLayout as cs, FreeTextAnnotationDTO as ct, AnnotationSubtypeOfKind as d, AttachmentsCache as da, LineEnding as dc, ComboBoxFieldDTO as di, StrikeoutAnnotationDTO as dn, FontSpec as do, foldOptionsFor as dr, OpenInput as ds, InkDraftSchema as dt, AnnotationRelationKind as ea, PageObjectNumber as ec, RadioFieldDraft as ei, CirclePatchSchema as en, AnnotationStableId as eo, SEARCH_SNIPPET_CONTEXT as er, pdfQuadFromCorners as es, CaretPatchSchema as et, KIND_BY_SUBTYPE as f, normalizeAttachmentFileSource as fa, LineEndings as fc, FormFieldBase as fi, StrikeoutDraft as fn, DEFAULT_PDF_SAVE_MODE as fo, matchLiteral as fr, OpenInputById as fs, InkPatchSchema as ft, UnsupportedDraftSchema as g, WireAttachmentFile as ga, Rect as gc, FormFieldOption as gi, SquigglyPatch as gn, AnnotationAppearanceImageOptions as go, FoldedText as gr, OpenInputToken as gs, LinkDTOSchema as gt, UnsupportedDTOSchema as h, FileAttachmentWireDraft as ha, Point as hc, FormFieldFlags as hi, SquigglyPatchSchema as hn, AnnotationAppearanceImage as ho, FoldOptions as hr, OpenInputLayerSource as hs, InkDraft as ht, AnnotationDTO as i, refKey as ia, AnnotationReplyType as ic, FormSnapshot as ii, ShapeAnnotationFields as in, EngineErrorOptions as io, SearchQueryIssue as ir, pdfRectToOriginSize as is, FreeTextDTOSchema as it, WireAttachmentFileSchema as j, EmbeddedFileRef as ja, ActionReadBudget as jc, AnnotationDeleteResult as ji, MetadataCache as jn, PageImageObjectUrl as jo, FormFieldUpdateResult as jr, InvalidScope as js, PolylineDTOSchema as jt, FileAttachmentPatchSchema as k, AttachmentFileSource as ka, PdfRotation as kc, encodeFieldRefKey as ki, HighlightAnnotationDTO as kn, PageImageBlobSource as ko, FormFieldCreateResult as kr, expandedCapabilities as ks, LineAnnotationDTO as kt, AnnotationPatch as l, AttachmentCreateResult as la, FreeTextIntent as lc, WidgetStylePatchFields as li, StrikeoutPatchSchema as ln, FontHandle as lo, validateSearchQuery as lr, PageRotation as ls, FreeTextDraft as lt, WireAnnotationPatch as m, FileAttachmentIcon as ma, PdfRectDifferences as mc, FormFieldFamily as mi, SquigglyDraftSchema as mn, CachePins as mo, wordBefore as mr, OpenInputLayerBytes as ms, InkAnnotationDTO as mt, AnnotationListSnapshotAllPages as n, buildThreads as na, AnnotationBorderStyle as nc, WidgetPlacement as ni, CircleAnnotationDTO as nn, encodeStableIdKey as no, matchPageText as nr, pdfRectHeight as ns, CaretAnnotationDTO as nt, AnnotationDraft as o, DTOOfKind as oa, CaretIntent as oc, WidgetAppearanceSchema as oi, ShapePatchFields as on, deserializeError as oo, SearchRegexIssue as or, PageListSnapshot as os, FreeTextPatchSchema as ot, WireAnnotationDraft as p, FileAttachmentDraft as pa, NO_ANNOTATION_FLAGS as pc, FormFieldDTO as pi, SquigglyDTOSchema as pn, PdfSaveMode as po, wordAt as pr, OpenInputBytes as ps, InkPatch as pt, TextPatchSchema as q, PDF_CODE_TO_SUBTYPE as qa, PdfLinkTarget as qi, PageMoveCache as qn, PageGeometrySnapshot as qo, RadioFieldPatch as qr, ParsedVirtual as qs, SquareDraftSchema as qt, ANNOTATION_KINDS as r, classifyRelation as ra, AnnotationFlags as rc, FormKind as ri, CircleDraft as rn, EngineError as ro, SEARCH_REGEX_MAX_LENGTH as rr, pdfRectSize as rs, CaretDraft as rt, AnnotationDraftSchema as s, DraftOfKind as sa, Color as sc, WidgetStyleDraftFields as si, StrikeoutDTOSchema as sn, serializeError as so, SearchRegexValidation as sr, PageBoxes as ss, FreeTextPatch as st, AnnotationListPageSnapshot as t, AnnotationThread as ta, isValidPageObjectNumber as tc, TextFieldDraft as ti, CirclePatch as tn, decodeStableIdKey as to, buildSnippet as tr, pdfRectFromOriginSize as ts, CaretPatch as tt, AnnotationPatchSchema as u, AttachmentDeleteResult as ua, InkIntent as uc, CheckboxFieldDTO as ui, StrikeoutPatch as un, FontKey as uo, validateSearchRegex as ur, MetadataPatch as us, InkDTOSchema as ut, UnsupportedPatch as v, ColorStyleFields as va, Size as vc, ListBoxFieldDTO as vi, SquigglyDraft as vn, AnnotationAppearanceManifest as vo, SearchMatchRange as vr, TokenSource as vs, LinkPatchSchema as vt, WidgetPatch as w, GeometryStyleFields as wa, InkStroke as wc, UnknownFieldDTO as wi, UnderlineDraft as wn, AnnotationAppearancesResult as wo, SearchRequest as wr, checkAnyCapability as ws, LinkDraft as wt, RedactPatch as x, FilledStyleFields as xa, TextAlignment as xc, SignatureFieldDTO as xi, UnderlinePatchSchema as xn, AnnotationAppearanceRaster as xo, SearchMatch as xr, materializePdfPermissions as xs, PdfLinkTargetWritableSchema as xt, UnsupportedDraft as y, ColorStylePatchFields as ya, StandardFont as yc, PushButtonFieldDTO as yi, UnderlineDTOSchema as yn, AnnotationAppearanceManifestEntry as yo, foldText as yr, caps as ys, PdfDestinationSchema as yt, StampWirePatch as z, BinaryPayload as za, PdfFieldActions as zc, AnnotationMutationKind as zi, PageFlattenResult as zn, PageRenderFormat as zo, FormEffectsResult as zr, CollabAction as zs, PolygonPatchSchema as zt };
|
|
5043
|
-
//# sourceMappingURL=AnnotationListSnapshot-
|
|
5761
|
+
export { CaretDraftSchema as $, AttachmentFileInfo as $a, Rect as $c, AnnotationUpdateResult as $i, canonicalSearchQuery as $n, knownWeakAnnotationState as $o, FormEffectsResult as $r, OpenInputLayerSource as $s, CircleDraftSchema as $t, FileAttachmentWireDraftSchema as A, AnnotationKindModule as Aa, ParsedCollab as Ac, CheckboxFieldDTO as Ai, isValidPageObjectNumber as Al, HighlightDraft as An, SerializedEngineError as Ao, SearchSnippet as Ar, charMapViolation as As, LineDraft as At, StampAnnotationDTO as B, FileAttachmentWireDraft as Ba, AnnotationFlags as Bc, RadioFieldDTO as Bi, PageFlattenStatus as Bn, AnnotationAppearanceImage as Bo, textGlyphQuad as Br, pdfRectHeight as Bs, PolygonPatch as Bt, RedactDraft as C, buildCommentThreads as Ca, AnnotationActor as Cc, FormKind as Ci, PdfFieldActions as Cl, UnderlineAnnotationDTO as Cn, AnnotationBase as Co, toOriginalRange as Cr, glyphLooseQuad as Cs, LinkAnnotationDTO as Ct, FileAttachmentDTOSchema as D, buildThreads as Da, DocCapability as Dc, WidgetStyleDraftFields as Di, decodeSubmitFormFlags as Dl, HighlightPatchSchema as Dn, encodeStableIdKey as Do, SearchRequest as Dr, CharMapAnchor as Ds, LinePatchSchema as Dt, WidgetDraft as E, AnnotationThread as Ea, CollabFilter as Ec, WidgetAppearanceSchema as Ei, SubmitFormPayload as El, HighlightDraftSchema as En, decodeStableIdKey as Eo, SearchQuery as Er, CharBoundaryBias as Es, LineDraftSchema as Et, StampDTOSchema as F, AttachmentDeleteResult as Fa, AnnotationDraftBase as Fc, FormFieldFlags as Fi, RedactionApplyScope as Fn, FontKey as Fo, TextLayoutRun as Fr, normalizePdfRect as Fs, PolylineAnnotationDTO as Ft, TextDTOSchema as G, FilledStyleDraftFields as Ga, FreeTextFont as Gc, FormValueEntry as Gi, PageDeleteResult as Gn, AnnotationAppearanceMode as Go, FormFieldUpdateResult as Gr, PageBoxes as Gs, VertexPatchFields as Gt, StampFit as H, ColorStyleDraftFields as Ha, BlendMode as Hc, TextFieldDTO as Hi, PAGE_INSERT_BLANK_MAX_COUNT as Hn, AnnotationAppearanceImagesResult as Ho, FormDataExport as Hr, pdfRectToOriginSize as Hs, PolygonDraft as Ht, StampWireDraftSchema as I, AttachmentsCache as Ia, AnnotationRef as Ic, FormFieldOption as Ii, RedactionApplyStatus as In, FontSpec as Io, buildPageTextLayout as Ir, pdfQuadBounds as Is, PolylineDraft as It, TextPatch as J, GeometryStyleDraftFields as Ja, LineEnding as Jc, decodeFieldRefKey as Ji, PageRotateInput as Jn, AnnotationAppearancesQuery as Jo, FormSetValueResult as Jr, MetadataPatch as Js, SquarePatchSchema as Jt, TextDraftSchema as K, FilledStyleFields as Ka, FreeTextIntent as Kc, FormFieldRef as Ki, PageDeleteInput as Kn, AnnotationAppearanceRaster as Ko, FormImportResult as Kr, PageLayout as Ks, SquareDTOSchema as Kt, StampWirePatchSchema as L, normalizeAttachmentFileSource as La, RevisionToken as Lc, FormFieldOrigin as Li, PageFlattenInput as Ln, DEFAULT_PDF_SAVE_MODE as Lo, expandTextRangeToLine as Lr, pdfQuadCorners as Ls, PolygonDTOSchema as Lt, FileAttachmentPatch as M, DraftOfKind as Ma, ParsedVirtual as Mc, FormFieldBase as Mi, DocumentMetadataTrapped as Ml, MetadataUpdateResult as Mn, serializeError as Mo, PdfTextSegment as Mr, sliceTextByChars as Ms, PolylineDraftSchema as Mt, FileAttachmentAnnotationDTO as N, PatchOfKind as Na, ParsedWildcard as Nc, FormFieldDTO as Ni, RedactionApplyItemResult as Nn, EngineErrorCode as No, TextLayoutFrame as Nr, PdfOriginSize as Ns, PolylinePatchSchema as Nt, FileAttachmentIconSchema as O, classifyRelation as Oa, IdentityClaims as Oc, WidgetStyleFields as Oi, PdfDestination as Ol, HighlightPatch as On, EngineError as Oo, SearchSlice as Or, boundaryTextOffset as Os, LinePatch as Ot, ResourceRefSchema as P, AttachmentCreateResult as Pa, PdfBits as Pc, FormFieldFamily as Pi, RedactionApplyResult as Pn, FontHandle as Po, TextLayoutGlyph as Pr, PdfQuadCorners as Ps, PolylinePatch as Pt, CaretDTOSchema as Q, AttachmentFileBase as Qa, Point as Qc, AnnotationMoveResult as Qi, PageMoveInput as Qn, WeakAnnotationState as Qo, FormEffectStatus as Qr, OpenInputLayerBytes as Qs, CircleDTOSchema as Qt, StampPatch as R, FileAttachmentDraft as Ra, revisionTokensEqual as Rc, ListBoxFieldDTO as Ri, PageFlattenItemResult as Rn, PdfSaveMode as Ro, expandTextRangeToWord as Rr, pdfQuadFromCorners as Rs, PolygonDraftSchema as Rt, RedactAnnotationDTO as S, ReviewStatus as Sa, decodePdfBits as Sc, WidgetPlacement as Si, PdfAnnotationActions as Sl, UnderlinePatch as Sn, AnnotationPatchBase as So, foldText as Sr, glyphLooseBounds as Ss, LinkPatch as St, WidgetAnnotationDTO as T, AnnotationRelationKind as Ta, CollabEntity as Tc, WidgetAppearance as Ti, SubmitFormFlags as Tl, HighlightDTOSchema as Tn, AnnotationStableId as To, SearchMode as Tr, PageTextSnapshot as Ts, LineDTOSchema as Tt, StampWireDraft as U, ColorStyleFields as Ua, CaretIntent as Uc, ToggleFieldWidget as Ui, PageInsertBlankSpec as Un, AnnotationAppearanceManifest as Uo, FormFieldCreateResult as Ur, pdfRectWidth as Us, VertexAnnotationFields as Ut, StampDraft as V, WireAttachmentFile as Va, AnnotationReplyType as Vc, SignatureFieldDTO as Vi, PageFlattenUsage as Vn, AnnotationAppearanceImageOptions as Vo, textSegmentsForRange as Vr, pdfRectSize as Vs, PolygonAnnotationDTO as Vt, NoteIconSchema as W, ColorStylePatchFields as Wa, Color as Wc, UnknownFieldDTO as Wi, PageInsertResult as Wn, AnnotationAppearanceManifestEntry as Wo, FormFieldDeleteResult as Wr, PageListSnapshot as Ws, VertexDraftFields as Wt, NoteIcon as X, GeometryStylePatchFields as Xa, NO_ANNOTATION_FLAGS as Xc, AnnotationCreateResult as Xi, PageMoveResult as Xn, PageState as Xo, FormEffect as Xr, OpenInputById as Xs, SquareAnnotationDTO as Xt, TextAnnotationDTO as Y, GeometryStyleFields as Ya, LineEndings as Yc, encodeFieldRefKey as Yi, PageMoveCache as Yn, AnnotationAppearancesResult as Yo, FormWidgetLinkResult as Yr, OpenInput as Ys, SquarePatch as Yt, TextDraft as Z, AttachmentContent as Za, PdfRectDifferences as Zc, AnnotationDeleteResult as Zi, PageStructureCache as Zn, UNKNOWN_WEAK_ANNOTATION_STATE as Zo, FormEffectResult as Zr, OpenInputBytes as Zs, SquareDraft as Zt, UnsupportedPatchSchema as _, LayerScopePlane as _a, MissingIdentity as _c, FormFieldDraft as _i, PdfActionNode as _l, SquigglyAnnotationDTO as _n, AnnotationSubtype as _o, wordBefore as _r, PageGeometryRun as _s, LinkDraftSchema as _t, AnnotationDTOSchema as a, AnnotationMutationKind as aa, collab as ac, FormSubmissionRequest as ai, CalloutLine as al, ShapeDraftFields as an, normalizeAnnotationDraft as ao, matchPageText as ar, PageImageSource as as, FreeTextDraftSchema as at, UnsupportedAnnotationDTO as b, CommentThread as ba, validateScopeArray as bc, RadioFieldDraft as bi, PdfActionType as bl, UnderlineDraftSchema as bn, PdfAnnotationSubtypeCode as bo, SEARCH_FOLD_VERSION as br, RotatedGeometryRun as bs, PdfLinkTargetWritableSchema as bt, AnnotationKind as c, shiftsExistingAnnotationIndices as ca, CollabTarget as cc, FormFieldValue as ci, LinePoints as cl, StrikeoutDraftSchema as cn, BinaryMimeType as co, SearchQueryValidation as cr, PageRenderBackground as cs, FreeTextAnnotationDTO as ct, AnnotationSubtypeOfKind as d, CacheDelta as da, checkCollab as dc, FormFieldPatch as di, PdfRect as dl, StrikeoutAnnotationDTO as dn, BinarySource as do, matchRegex as dr, PageRenderOptions as ds, InkDraftSchema as dt, AppearanceAction as ea, OpenInputShare as ec, FormFieldDisplay as ei, Rotation as el, CirclePatchSchema as en, AttachmentFileSource as eo, searchContentEpoch as er, PageImageBlobSource as es, CaretPatchSchema as et, KIND_BY_SUBTYPE as f, MutationMeta as fa, checkSetGroup as fc, ListBoxFieldPatch as fi, PdfRotation as fl, StrikeoutDraft as fn, ResourceRef as fo, validateSearchQuery as fr, PageRenderQuery as fs, InkPatchSchema as ft, UnsupportedDraftSchema as g, ManifestPage as ga, InvalidScope as gc, ComboBoxFieldDraft as gi, NamedJavaScriptAction as gl, SquigglyPatch as gn, ANNOTATION_SUBTYPES as go, wordAt as gr, PageGeometryGlyph as gs, LinkDTOSchema as gt, UnsupportedDTOSchema as h, DocumentManifest as ha, filterMatches as hc, CheckboxFieldDraft as hi, DocumentActionsSnapshot as hl, SquigglyPatchSchema as hn, resolveBinarySource as ho, matchLiteral as hr, createPageImageHandle as hs, InkDraft as ht, AnnotationDTO as i, semanticEqual as ia, caps as ic, FormSubmissionReceiptSchema as ii, TextAlignment as il, ShapeAnnotationFields as in, NormalizedPatch as io, buildSnippet as ir, PageImageResult as is, FreeTextDTOSchema as it, WireAttachmentFileSchema as j, DTOOfKind as ja, ParsedScope as jc, ComboBoxFieldDTO as ji, DocumentMetadata as jl, MetadataCache as jn, deserializeError as jo, PageTextLayout as jr, charRangeForTextOffsets as js, PolylineDTOSchema as jt, FileAttachmentPatchSchema as k, refKey as ka, ParsedCapability as kc, WidgetStylePatchFields as ki, PageObjectNumber as kl, HighlightAnnotationDTO as kn, EngineErrorOptions as ko, SearchSliceBudget as kr, charBoundaryAtTextOffset as ks, LineAnnotationDTO as kt, AnnotationPatch as l, AnnotationListMutationMeta as la, checkAnyCapability as lc, CheckboxFieldPatch as li, PdfPoint as ll, StrikeoutPatchSchema as ln, sniffBinaryMetadata as lo, SearchRegexIssue as lr, PageRenderEncodedFormat as ls, FreeTextDraft as lt, WireAnnotationPatch as m, PdfLinkTargetWritable as ma, expandedCapabilities as mc, TextFieldPatch as mi, ActionReadBudget as ml, SquigglyDraftSchema as mn, WireResourceMap as mo, foldOptionsFor as mr, PageRenderViewport as ms, InkAnnotationDTO as mt, AnnotationListSnapshotAllPages as n, AppearanceOutcome as na, OpenOptions as nc, FormSubmissionEntrySchema as ni, StandardFont as nl, CircleAnnotationDTO as nn, EmbeddedFileRef as no, searchSegmentsForRange as nr, PageImageObjectUrl as ns, CaretAnnotationDTO as nt, AnnotationDraft as o, changesAnnotationList as oa, materializePdfPermissions as oc, FormSubmissionRequestSchema as oi, InkList as ol, ShapePatchFields as on, normalizeAnnotationPatch as oo, SEARCH_REGEX_MAX_LENGTH as or, PageNetworkRenderFormat as os, FreeTextPatchSchema as ot, WireAnnotationDraft as p, PdfLinkTarget as pa, expandRawScope as pc, RadioFieldPatch as pi, PdfSize as pl, SquigglyDTOSchema as pn, WireResource as po, validateSearchRegex as pr, PageRenderTarget as ps, InkPatch as pt, TextPatchSchema as q, FilledStylePatchFields as qa, InkIntent as qc, FormWidgetRef as qi, PageRotateResult as qn, AnnotationAppearanceRenderOptions as qo, FormRepairResult as qr, PageRotation as qs, SquareDraftSchema as qt, ANNOTATION_KINDS as r, appearanceImpactOf as ra, TokenSource as rc, FormSubmissionReceipt as ri, StrikeoutIntent as rl, CircleDraft as rn, NormalizedDraft as ro, SEARCH_SNIPPET_CONTEXT as rr, PageImageOptions as rs, CaretDraft as rt, AnnotationDraftSchema as s, invalidatesWeakIndexRefs as sa, pdfPermissions as sc, FormDataFormat as si, InkStroke as sl, StrikeoutDTOSchema as sn, BinaryMetadata as so, SearchQueryIssue as sr, PageRaster as ss, FreeTextPatch as st, AnnotationListPageSnapshot as t, AppearanceImpact as ta, OpenInputToken as tc, FormSubmissionEntry as ti, Size as tl, CirclePatch as tn, EmbeddedFileItem as to, searchRectsForRange as tr, PageImageHandle as ts, CaretPatch as tt, AnnotationPatchSchema as u, RefetchReason as ua, checkCapability as uc, ComboBoxFieldPatch as ui, PdfQuad as ul, StrikeoutPatch as un, BinaryPayload as uo, SearchRegexValidation as ur, PageRenderFormat as us, InkDTOSchema as ut, UnsupportedPatch as v, LayerScopes as va, PermissionDenied as vc, FormFieldOptionInput as vi, PdfActionTargetRef as vl, SquigglyDraft as vn, PDF_CODE_TO_SUBTYPE as vo, FoldOptions as vr, PageGeometrySnapshot as vs, LinkPatchSchema as vt, WidgetPatch as w, isStateAnnotation as wa, CollabAction as wc, FormSnapshot as wi, PdfPageActions as wl, UnderlineDraft as wn, AnnotationIdentityQuality as wo, SearchMatch as wr, isRotatedGeometryRun as ws, LinkDraft as wt, RedactPatch as x, CommentThreadReview as xa, PDF_BITS as xc, TextFieldDraft as xi, PdfActionWarning as xl, UnderlinePatchSchema as xn, subtypeFromCode as xo, SearchMatchRange as xr, UprightGeometryRun as xs, PdfDestinationSchema as xt, UnsupportedDraft as y, BuildCommentThreadsOptions as ya, parseScope as yc, ListBoxFieldDraft as yi, PdfActionTree as yl, UnderlineDTOSchema as yn, PDF_SUBTYPE_TO_CODE as yo, FoldedText as yr, RotatedGeometryGlyph as ys, PdfLinkTargetSchema as yt, StampWirePatch as z, FileAttachmentIcon as za, AnnotationBorderStyle as zc, PushButtonFieldDTO as zi, PageFlattenResult as zn, CachePins as zo, textGlyphAt as zr, pdfRectFromOriginSize as zs, PolygonPatchSchema as zt };
|
|
5762
|
+
//# sourceMappingURL=AnnotationListSnapshot-C1U3XUxP.d.ts.map
|