@embedpdf/engine-core 3.0.0-next.11 → 3.0.0-next.13
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-CRSooKsk.cjs → AbortError-Cq2igpZ6.cjs} +2 -2
- package/dist/{AbortError-CRSooKsk.cjs.map → AbortError-Cq2igpZ6.cjs.map} +1 -1
- package/dist/{AbortError-8-9JAX1Y.js → AbortError-DHqPBnYc.js} +2 -2
- package/dist/{AbortError-8-9JAX1Y.js.map → AbortError-DHqPBnYc.js.map} +1 -1
- package/dist/{AnnotationListSnapshot-C1U3XUxP.d.cts → AnnotationListSnapshot-D3mFut1e.d.cts} +1323 -214
- package/dist/{AnnotationListSnapshot-C1U3XUxP.d.ts → AnnotationListSnapshot-D3mFut1e.d.ts} +1323 -214
- package/dist/{DocumentSecurityService-6rhztZlz.d.cts → DocumentSecurityService-ClTZc0zO.d.cts} +2 -2
- package/dist/{DocumentSecurityService-7nL9aY75.d.ts → DocumentSecurityService-_JRjqvoI.d.ts} +2 -2
- package/dist/{Engine-D3868xIU.d.cts → Engine-Bx0NOfmd.d.cts} +219 -11
- package/dist/{Engine-CWnAKccD.d.ts → Engine-DxtpCYcP.d.ts} +219 -11
- package/dist/{PageInsertBlankInput-CzShuSJI.cjs → PageInsertBlankInput-CqXBmFhN.cjs} +37 -2
- package/dist/PageInsertBlankInput-CqXBmFhN.cjs.map +1 -0
- package/dist/{PageInsertBlankInput-WKY0tr6S.js → PageInsertBlankInput-cHq9-i-z.js} +37 -2
- package/dist/PageInsertBlankInput-cHq9-i-z.js.map +1 -0
- package/dist/{builders-Do6_4KnS.cjs → builders-Bqm8yTpi.cjs} +1483 -11
- package/dist/builders-Bqm8yTpi.cjs.map +1 -0
- package/dist/{builders-Cdz34nbF.js → builders-Dqo2X-dt.js} +1364 -12
- package/dist/builders-Dqo2X-dt.js.map +1 -0
- package/dist/conformance.cjs +1630 -107
- package/dist/conformance.cjs.map +1 -1
- package/dist/conformance.d.cts +117 -3
- package/dist/conformance.d.ts +117 -3
- package/dist/conformance.js +1627 -108
- package/dist/conformance.js.map +1 -1
- package/dist/{fold-C7I5GpBz.cjs → fold-2V29cxCV.cjs} +2 -2
- package/dist/{fold-C7I5GpBz.cjs.map → fold-2V29cxCV.cjs.map} +1 -1
- package/dist/{fold-BfyxxwS6.js → fold-CdEJTBTn.js} +2 -2
- package/dist/{fold-BfyxxwS6.js.map → fold-CdEJTBTn.js.map} +1 -1
- package/dist/index.cjs +33 -4
- package/dist/index.d.cts +2 -2
- package/dist/index.d.ts +2 -2
- package/dist/index.js +5 -5
- package/dist/{resolver-D-jumvgM.cjs → resolver-CYVNV4hn.cjs} +216 -10
- package/dist/resolver-CYVNV4hn.cjs.map +1 -0
- package/dist/{resolver-CHG4waXL.js → resolver-inAVzsWt.js} +157 -11
- package/dist/resolver-inAVzsWt.js.map +1 -0
- package/dist/runtime.cjs +34 -5
- package/dist/runtime.d.cts +253 -5
- package/dist/runtime.d.ts +253 -5
- package/dist/runtime.js +6 -6
- package/dist/{schemas-XGrNVMDd.js → schemas-BLARNCgx.js} +469 -7
- package/dist/schemas-BLARNCgx.js.map +1 -0
- package/dist/{schemas-CS5iPpX5.cjs → schemas-DIqFMmrC.cjs} +672 -6
- package/dist/schemas-DIqFMmrC.cjs.map +1 -0
- package/dist/wire.cjs +250 -12
- package/dist/wire.cjs.map +1 -1
- package/dist/wire.d.cts +444 -4
- package/dist/wire.d.ts +444 -4
- package/dist/wire.js +214 -13
- package/dist/wire.js.map +1 -1
- package/package.json +1 -1
- package/dist/PageInsertBlankInput-CzShuSJI.cjs.map +0 -1
- package/dist/PageInsertBlankInput-WKY0tr6S.js.map +0 -1
- package/dist/builders-Cdz34nbF.js.map +0 -1
- package/dist/builders-Do6_4KnS.cjs.map +0 -1
- package/dist/resolver-CHG4waXL.js.map +0 -1
- package/dist/resolver-D-jumvgM.cjs.map +0 -1
- package/dist/schemas-CS5iPpX5.cjs.map +0 -1
- package/dist/schemas-XGrNVMDd.js.map +0 -1
package/dist/conformance.d.cts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { t as Engine } from "./Engine-
|
|
1
|
+
import { $u as PdfRect, An as HighlightDraft, Ju as InkList, Mc as CharMapAnchor, Xu as LinePoints, Zu as PdfPoint, n as AnnotationListSnapshotAllPages, t as AnnotationListPageSnapshot, yd as DocumentMetadata } from "./AnnotationListSnapshot-D3mFut1e.cjs";
|
|
2
|
+
import { t as Engine } from "./Engine-Bx0NOfmd.cjs";
|
|
3
3
|
//#region src/conformance/runMetadataConformance.d.ts
|
|
4
4
|
interface ConformanceTestRunner {
|
|
5
5
|
describe(name: string, fn: () => void): void;
|
|
@@ -356,6 +356,53 @@ declare function runPageRotateConformance(runner: ConformanceTestRunner, opts: C
|
|
|
356
356
|
*/
|
|
357
357
|
declare function runPageDeleteConformance(runner: ConformanceTestRunner, opts: ConformanceOptions): void;
|
|
358
358
|
//#endregion
|
|
359
|
+
//#region src/conformance/runNamedPagesConformance.d.ts
|
|
360
|
+
/**
|
|
361
|
+
* Named-pages conformance: the catalog's `/Names /Pages` registry as LAYOUT
|
|
362
|
+
* data. Locks the invariants both engines must share — do not loosen
|
|
363
|
+
* without re-reading `NamedPageEntry` and `PageNameResult`:
|
|
364
|
+
*
|
|
365
|
+
* 1. `pages.list().namedPages` is present (possibly empty) and every
|
|
366
|
+
* registration resolves to a page in `pages`, a template, or is
|
|
367
|
+
* reported dangling — never silently dropped.
|
|
368
|
+
* 2. `pages.setName()` creates or replaces by decoded key (idempotent),
|
|
369
|
+
* `replace` renames in one job, and the result IS the new layout.
|
|
370
|
+
* 3. `pages.removeName()` drops the registration and nothing else.
|
|
371
|
+
* 4. Deleting a page removes every registration pointing at it — inside
|
|
372
|
+
* the delete, with no plugin in the loop.
|
|
373
|
+
* 5. Non-ASCII keys round-trip unchanged (Acrobat writes UTF-16 + BOM).
|
|
374
|
+
*
|
|
375
|
+
* Skips cleanly when the engine does not implement the optional members.
|
|
376
|
+
*/
|
|
377
|
+
declare function runNamedPagesConformance(runner: ConformanceTestRunner, opts: ConformanceOptions): void;
|
|
378
|
+
//#endregion
|
|
379
|
+
//#region src/conformance/runAnnotationFlattenConformance.d.ts
|
|
380
|
+
/**
|
|
381
|
+
* Selective annotation flatten: `page(pon).annotations.flatten(refs)` is
|
|
382
|
+
* `pages.flatten` for a chosen set. Locks, on every engine:
|
|
383
|
+
* 1. only the given refs are painted and removed; the rest of the page's
|
|
384
|
+
* annotations are untouched;
|
|
385
|
+
* 2. per-ref status (`applied` / `skipped`), one `annotations.flattened`
|
|
386
|
+
* event, a `meta` with that page's new pins, layout unchanged;
|
|
387
|
+
* 3. a hidden ref is `skipped`; a ref on another page rejects `InvalidArg`
|
|
388
|
+
* with nothing mutated.
|
|
389
|
+
* Skips cleanly when the engine does not implement the optional member.
|
|
390
|
+
*/
|
|
391
|
+
declare function runAnnotationFlattenConformance(runner: ConformanceTestRunner, opts: ConformanceOptions): void;
|
|
392
|
+
//#endregion
|
|
393
|
+
//#region src/conformance/runAnnotationAppearanceExportConformance.d.ts
|
|
394
|
+
/**
|
|
395
|
+
* `page(pon).annotations.exportAppearance(refs)`: the chosen annotations'
|
|
396
|
+
* appearances as ONE single-page PDF sized to their union /Rect. Locks:
|
|
397
|
+
* 1. bytes are a PDF; the source page is untouched (no mutation, no
|
|
398
|
+
* revision bump);
|
|
399
|
+
* 2. re-opened (local engines), the page is exactly the union size and the
|
|
400
|
+
* requested count of annotations is gone — they are content now;
|
|
401
|
+
* 3. a ref on another page rejects `InvalidArg`; an empty list rejects.
|
|
402
|
+
* Skips cleanly when the engine does not implement the optional member.
|
|
403
|
+
*/
|
|
404
|
+
declare function runAnnotationAppearanceExportConformance(runner: ConformanceTestRunner, opts: ConformanceOptions): void;
|
|
405
|
+
//#endregion
|
|
359
406
|
//#region src/conformance/runPageFlattenConformance.d.ts
|
|
360
407
|
/** Transport-neutral coverage for the content + annotation flatten rail. */
|
|
361
408
|
declare function runPageFlattenConformance(runner: ConformanceTestRunner, opts: ConformanceOptions): void;
|
|
@@ -650,5 +697,72 @@ declare function runSearchConformance(runner: ConformanceTestRunner, opts: Searc
|
|
|
650
697
|
declare function diffAnnotationListSnapshot(a: AnnotationListPageSnapshot, b: AnnotationListPageSnapshot): string[];
|
|
651
698
|
declare function diffAnnotationListSnapshotAll(a: AnnotationListSnapshotAllPages, b: AnnotationListSnapshotAllPages): string[];
|
|
652
699
|
//#endregion
|
|
653
|
-
|
|
700
|
+
//#region src/conformance/runSignatureConformance.d.ts
|
|
701
|
+
interface SignatureConformanceFixtures {
|
|
702
|
+
/** A form with no signature fields at all. */
|
|
703
|
+
unsignedForm: ConformanceFixture;
|
|
704
|
+
/**
|
|
705
|
+
* Three revisions: the original, an approval signature sealing revision
|
|
706
|
+
* 1, and a form fill plus a second approval signature sealing revision
|
|
707
|
+
* 2. Both signatures have whole-revision coverage; `textField` is the
|
|
708
|
+
* filled text field.
|
|
709
|
+
*/
|
|
710
|
+
twoApprovals: ConformanceFixture & {
|
|
711
|
+
fieldNames: [string, string];
|
|
712
|
+
textField: string;
|
|
713
|
+
};
|
|
714
|
+
/** Two revisions: a certification signature with permission 2 sealing revision 1. */
|
|
715
|
+
certified: ConformanceFixture & {
|
|
716
|
+
fieldName: string;
|
|
717
|
+
};
|
|
718
|
+
/** Two revisions: one approval signature whose FieldMDP includes `lockedField`. */
|
|
719
|
+
fieldMdp: ConformanceFixture & {
|
|
720
|
+
fieldName: string;
|
|
721
|
+
lockedField: string;
|
|
722
|
+
};
|
|
723
|
+
/** Three chained revisions, two signatures whose ranges are well-formed but seal no revision. */
|
|
724
|
+
partialChain: ConformanceFixture;
|
|
725
|
+
/** One unsigned signature field (with a widget) and one text field, nothing signed. */
|
|
726
|
+
unsignedSigField: ConformanceFixture & {
|
|
727
|
+
fieldName: string;
|
|
728
|
+
textField: string;
|
|
729
|
+
};
|
|
730
|
+
/** Any single-page PDF, used as signature artwork. */
|
|
731
|
+
artwork: ConformanceFixture;
|
|
732
|
+
}
|
|
733
|
+
interface SignatureConformanceOptions {
|
|
734
|
+
label: string;
|
|
735
|
+
makeEngine: () => Promise<Engine> | Engine;
|
|
736
|
+
/**
|
|
737
|
+
* An engine constructed with `signedDocumentPolicy: 'permit'`; the
|
|
738
|
+
* suite proves the protection it lifts. Omit where the engine has no
|
|
739
|
+
* such option.
|
|
740
|
+
*/
|
|
741
|
+
makePermitEngine?: () => Promise<Engine> | Engine;
|
|
742
|
+
/** `layerBytes` opens each fixture as an immutable base with a fresh layer on top. */
|
|
743
|
+
openKind: 'bytes' | 'layerBytes' | 'id';
|
|
744
|
+
fixtures: SignatureConformanceFixtures;
|
|
745
|
+
}
|
|
746
|
+
/**
|
|
747
|
+
* Digital signatures, read side. The service is OPTIONAL on the contract
|
|
748
|
+
* (`downloadLayer?` pattern) — the suite runs only where the engine
|
|
749
|
+
* provides it.
|
|
750
|
+
*
|
|
751
|
+
* Invariants:
|
|
752
|
+
* 1. Byte facts describe the LOADED bytes: a revision is a byte prefix,
|
|
753
|
+
* a whole-revision signature seals exactly one, the digest over its
|
|
754
|
+
* `/ByteRange` is what the file's bytes hash to, and an unsaved edit
|
|
755
|
+
* changes none of it.
|
|
756
|
+
* 2. Protection is derived from the signatures in the file and applied
|
|
757
|
+
* as document-derived capabilities: a certification with permission 2
|
|
758
|
+
* takes page assembly and annotation writes away, a FieldMDP freezes
|
|
759
|
+
* the fields it names, a rewrite save is refused. Under
|
|
760
|
+
* `signedDocumentPolicy: 'permit'` none of that applies and the
|
|
761
|
+
* analysis is unchanged.
|
|
762
|
+
* 3. The same answers come from a plain session and from a layer
|
|
763
|
+
* session over the same bytes.
|
|
764
|
+
*/
|
|
765
|
+
declare function runSignatureConformance(runner: ConformanceTestRunner, opts: SignatureConformanceOptions): void;
|
|
766
|
+
//#endregion
|
|
767
|
+
export { type ActionsConformanceFixtures, type ActionsConformanceOptions, type AnnotationAppearanceConformanceFixture, type AnnotationAppearanceConformanceOptions, type AnnotationConformanceOptions, type AnnotationMutationConformanceFixture, type AnnotationMutationConformanceOptions, type AnnotationReadConformanceFixture, type ConformanceExpect, type ConformanceFixture, type ConformanceOptions, type ConformanceTestRunner, type FormConformanceFixtures, type FormConformanceOptions, type PageGeometryOrientationFixture, type PageGeometryOrientationOptions, type PageReorderConformanceFixture, type PageReorderConformanceOptions, type PageTextConformanceFixture, type PageTextConformanceOptions, type SearchConformanceFixture, type SearchConformanceOptions, type SignatureConformanceFixtures, type SignatureConformanceOptions, TEXT_DIVERGENCE_CASES, type TextDivergenceCase, type TextDivergenceConformanceFixture, type TextDivergenceConformanceOptions, diffAnnotationListSnapshot, diffAnnotationListSnapshotAll, runActionsConformance, runAnnotationAppearanceConformance, runAnnotationAppearanceExportConformance, runAnnotationFlattenConformance, runAnnotationMutationConformance, runAnnotationReadConformance, runAttachmentConformance, runDocumentEventsConformance, runFormConformance, runMetadataConformance, runNamedPagesConformance, runPageDeleteConformance, runPageExtractConformance, runPageFlattenConformance, runPageGeometryOrientationConformance, runPageInsertBlankConformance, runPageInsertConformance, runPageReorderConformance, runPageRotateConformance, runPageTextConformance, runPieceInfoConformance, runRedactionApplyConformance, runSearchConformance, runSignatureConformance, runTextDivergenceConformance };
|
|
654
768
|
//# sourceMappingURL=conformance.d.cts.map
|
package/dist/conformance.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { t as Engine } from "./Engine-
|
|
1
|
+
import { $u as PdfRect, An as HighlightDraft, Ju as InkList, Mc as CharMapAnchor, Xu as LinePoints, Zu as PdfPoint, n as AnnotationListSnapshotAllPages, t as AnnotationListPageSnapshot, yd as DocumentMetadata } from "./AnnotationListSnapshot-D3mFut1e.js";
|
|
2
|
+
import { t as Engine } from "./Engine-DxtpCYcP.js";
|
|
3
3
|
//#region src/conformance/runMetadataConformance.d.ts
|
|
4
4
|
interface ConformanceTestRunner {
|
|
5
5
|
describe(name: string, fn: () => void): void;
|
|
@@ -356,6 +356,53 @@ declare function runPageRotateConformance(runner: ConformanceTestRunner, opts: C
|
|
|
356
356
|
*/
|
|
357
357
|
declare function runPageDeleteConformance(runner: ConformanceTestRunner, opts: ConformanceOptions): void;
|
|
358
358
|
//#endregion
|
|
359
|
+
//#region src/conformance/runNamedPagesConformance.d.ts
|
|
360
|
+
/**
|
|
361
|
+
* Named-pages conformance: the catalog's `/Names /Pages` registry as LAYOUT
|
|
362
|
+
* data. Locks the invariants both engines must share — do not loosen
|
|
363
|
+
* without re-reading `NamedPageEntry` and `PageNameResult`:
|
|
364
|
+
*
|
|
365
|
+
* 1. `pages.list().namedPages` is present (possibly empty) and every
|
|
366
|
+
* registration resolves to a page in `pages`, a template, or is
|
|
367
|
+
* reported dangling — never silently dropped.
|
|
368
|
+
* 2. `pages.setName()` creates or replaces by decoded key (idempotent),
|
|
369
|
+
* `replace` renames in one job, and the result IS the new layout.
|
|
370
|
+
* 3. `pages.removeName()` drops the registration and nothing else.
|
|
371
|
+
* 4. Deleting a page removes every registration pointing at it — inside
|
|
372
|
+
* the delete, with no plugin in the loop.
|
|
373
|
+
* 5. Non-ASCII keys round-trip unchanged (Acrobat writes UTF-16 + BOM).
|
|
374
|
+
*
|
|
375
|
+
* Skips cleanly when the engine does not implement the optional members.
|
|
376
|
+
*/
|
|
377
|
+
declare function runNamedPagesConformance(runner: ConformanceTestRunner, opts: ConformanceOptions): void;
|
|
378
|
+
//#endregion
|
|
379
|
+
//#region src/conformance/runAnnotationFlattenConformance.d.ts
|
|
380
|
+
/**
|
|
381
|
+
* Selective annotation flatten: `page(pon).annotations.flatten(refs)` is
|
|
382
|
+
* `pages.flatten` for a chosen set. Locks, on every engine:
|
|
383
|
+
* 1. only the given refs are painted and removed; the rest of the page's
|
|
384
|
+
* annotations are untouched;
|
|
385
|
+
* 2. per-ref status (`applied` / `skipped`), one `annotations.flattened`
|
|
386
|
+
* event, a `meta` with that page's new pins, layout unchanged;
|
|
387
|
+
* 3. a hidden ref is `skipped`; a ref on another page rejects `InvalidArg`
|
|
388
|
+
* with nothing mutated.
|
|
389
|
+
* Skips cleanly when the engine does not implement the optional member.
|
|
390
|
+
*/
|
|
391
|
+
declare function runAnnotationFlattenConformance(runner: ConformanceTestRunner, opts: ConformanceOptions): void;
|
|
392
|
+
//#endregion
|
|
393
|
+
//#region src/conformance/runAnnotationAppearanceExportConformance.d.ts
|
|
394
|
+
/**
|
|
395
|
+
* `page(pon).annotations.exportAppearance(refs)`: the chosen annotations'
|
|
396
|
+
* appearances as ONE single-page PDF sized to their union /Rect. Locks:
|
|
397
|
+
* 1. bytes are a PDF; the source page is untouched (no mutation, no
|
|
398
|
+
* revision bump);
|
|
399
|
+
* 2. re-opened (local engines), the page is exactly the union size and the
|
|
400
|
+
* requested count of annotations is gone — they are content now;
|
|
401
|
+
* 3. a ref on another page rejects `InvalidArg`; an empty list rejects.
|
|
402
|
+
* Skips cleanly when the engine does not implement the optional member.
|
|
403
|
+
*/
|
|
404
|
+
declare function runAnnotationAppearanceExportConformance(runner: ConformanceTestRunner, opts: ConformanceOptions): void;
|
|
405
|
+
//#endregion
|
|
359
406
|
//#region src/conformance/runPageFlattenConformance.d.ts
|
|
360
407
|
/** Transport-neutral coverage for the content + annotation flatten rail. */
|
|
361
408
|
declare function runPageFlattenConformance(runner: ConformanceTestRunner, opts: ConformanceOptions): void;
|
|
@@ -650,5 +697,72 @@ declare function runSearchConformance(runner: ConformanceTestRunner, opts: Searc
|
|
|
650
697
|
declare function diffAnnotationListSnapshot(a: AnnotationListPageSnapshot, b: AnnotationListPageSnapshot): string[];
|
|
651
698
|
declare function diffAnnotationListSnapshotAll(a: AnnotationListSnapshotAllPages, b: AnnotationListSnapshotAllPages): string[];
|
|
652
699
|
//#endregion
|
|
653
|
-
|
|
700
|
+
//#region src/conformance/runSignatureConformance.d.ts
|
|
701
|
+
interface SignatureConformanceFixtures {
|
|
702
|
+
/** A form with no signature fields at all. */
|
|
703
|
+
unsignedForm: ConformanceFixture;
|
|
704
|
+
/**
|
|
705
|
+
* Three revisions: the original, an approval signature sealing revision
|
|
706
|
+
* 1, and a form fill plus a second approval signature sealing revision
|
|
707
|
+
* 2. Both signatures have whole-revision coverage; `textField` is the
|
|
708
|
+
* filled text field.
|
|
709
|
+
*/
|
|
710
|
+
twoApprovals: ConformanceFixture & {
|
|
711
|
+
fieldNames: [string, string];
|
|
712
|
+
textField: string;
|
|
713
|
+
};
|
|
714
|
+
/** Two revisions: a certification signature with permission 2 sealing revision 1. */
|
|
715
|
+
certified: ConformanceFixture & {
|
|
716
|
+
fieldName: string;
|
|
717
|
+
};
|
|
718
|
+
/** Two revisions: one approval signature whose FieldMDP includes `lockedField`. */
|
|
719
|
+
fieldMdp: ConformanceFixture & {
|
|
720
|
+
fieldName: string;
|
|
721
|
+
lockedField: string;
|
|
722
|
+
};
|
|
723
|
+
/** Three chained revisions, two signatures whose ranges are well-formed but seal no revision. */
|
|
724
|
+
partialChain: ConformanceFixture;
|
|
725
|
+
/** One unsigned signature field (with a widget) and one text field, nothing signed. */
|
|
726
|
+
unsignedSigField: ConformanceFixture & {
|
|
727
|
+
fieldName: string;
|
|
728
|
+
textField: string;
|
|
729
|
+
};
|
|
730
|
+
/** Any single-page PDF, used as signature artwork. */
|
|
731
|
+
artwork: ConformanceFixture;
|
|
732
|
+
}
|
|
733
|
+
interface SignatureConformanceOptions {
|
|
734
|
+
label: string;
|
|
735
|
+
makeEngine: () => Promise<Engine> | Engine;
|
|
736
|
+
/**
|
|
737
|
+
* An engine constructed with `signedDocumentPolicy: 'permit'`; the
|
|
738
|
+
* suite proves the protection it lifts. Omit where the engine has no
|
|
739
|
+
* such option.
|
|
740
|
+
*/
|
|
741
|
+
makePermitEngine?: () => Promise<Engine> | Engine;
|
|
742
|
+
/** `layerBytes` opens each fixture as an immutable base with a fresh layer on top. */
|
|
743
|
+
openKind: 'bytes' | 'layerBytes' | 'id';
|
|
744
|
+
fixtures: SignatureConformanceFixtures;
|
|
745
|
+
}
|
|
746
|
+
/**
|
|
747
|
+
* Digital signatures, read side. The service is OPTIONAL on the contract
|
|
748
|
+
* (`downloadLayer?` pattern) — the suite runs only where the engine
|
|
749
|
+
* provides it.
|
|
750
|
+
*
|
|
751
|
+
* Invariants:
|
|
752
|
+
* 1. Byte facts describe the LOADED bytes: a revision is a byte prefix,
|
|
753
|
+
* a whole-revision signature seals exactly one, the digest over its
|
|
754
|
+
* `/ByteRange` is what the file's bytes hash to, and an unsaved edit
|
|
755
|
+
* changes none of it.
|
|
756
|
+
* 2. Protection is derived from the signatures in the file and applied
|
|
757
|
+
* as document-derived capabilities: a certification with permission 2
|
|
758
|
+
* takes page assembly and annotation writes away, a FieldMDP freezes
|
|
759
|
+
* the fields it names, a rewrite save is refused. Under
|
|
760
|
+
* `signedDocumentPolicy: 'permit'` none of that applies and the
|
|
761
|
+
* analysis is unchanged.
|
|
762
|
+
* 3. The same answers come from a plain session and from a layer
|
|
763
|
+
* session over the same bytes.
|
|
764
|
+
*/
|
|
765
|
+
declare function runSignatureConformance(runner: ConformanceTestRunner, opts: SignatureConformanceOptions): void;
|
|
766
|
+
//#endregion
|
|
767
|
+
export { type ActionsConformanceFixtures, type ActionsConformanceOptions, type AnnotationAppearanceConformanceFixture, type AnnotationAppearanceConformanceOptions, type AnnotationConformanceOptions, type AnnotationMutationConformanceFixture, type AnnotationMutationConformanceOptions, type AnnotationReadConformanceFixture, type ConformanceExpect, type ConformanceFixture, type ConformanceOptions, type ConformanceTestRunner, type FormConformanceFixtures, type FormConformanceOptions, type PageGeometryOrientationFixture, type PageGeometryOrientationOptions, type PageReorderConformanceFixture, type PageReorderConformanceOptions, type PageTextConformanceFixture, type PageTextConformanceOptions, type SearchConformanceFixture, type SearchConformanceOptions, type SignatureConformanceFixtures, type SignatureConformanceOptions, TEXT_DIVERGENCE_CASES, type TextDivergenceCase, type TextDivergenceConformanceFixture, type TextDivergenceConformanceOptions, diffAnnotationListSnapshot, diffAnnotationListSnapshotAll, runActionsConformance, runAnnotationAppearanceConformance, runAnnotationAppearanceExportConformance, runAnnotationFlattenConformance, runAnnotationMutationConformance, runAnnotationReadConformance, runAttachmentConformance, runDocumentEventsConformance, runFormConformance, runMetadataConformance, runNamedPagesConformance, runPageDeleteConformance, runPageExtractConformance, runPageFlattenConformance, runPageGeometryOrientationConformance, runPageInsertBlankConformance, runPageInsertConformance, runPageReorderConformance, runPageRotateConformance, runPageTextConformance, runPieceInfoConformance, runRedactionApplyConformance, runSearchConformance, runSignatureConformance, runTextDivergenceConformance };
|
|
654
768
|
//# sourceMappingURL=conformance.d.ts.map
|