@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.
Files changed (59) hide show
  1. package/dist/{AbortError-CRSooKsk.cjs → AbortError-Cq2igpZ6.cjs} +2 -2
  2. package/dist/{AbortError-CRSooKsk.cjs.map → AbortError-Cq2igpZ6.cjs.map} +1 -1
  3. package/dist/{AbortError-8-9JAX1Y.js → AbortError-DHqPBnYc.js} +2 -2
  4. package/dist/{AbortError-8-9JAX1Y.js.map → AbortError-DHqPBnYc.js.map} +1 -1
  5. package/dist/{AnnotationListSnapshot-C1U3XUxP.d.cts → AnnotationListSnapshot-D3mFut1e.d.cts} +1323 -214
  6. package/dist/{AnnotationListSnapshot-C1U3XUxP.d.ts → AnnotationListSnapshot-D3mFut1e.d.ts} +1323 -214
  7. package/dist/{DocumentSecurityService-6rhztZlz.d.cts → DocumentSecurityService-ClTZc0zO.d.cts} +2 -2
  8. package/dist/{DocumentSecurityService-7nL9aY75.d.ts → DocumentSecurityService-_JRjqvoI.d.ts} +2 -2
  9. package/dist/{Engine-D3868xIU.d.cts → Engine-Bx0NOfmd.d.cts} +219 -11
  10. package/dist/{Engine-CWnAKccD.d.ts → Engine-DxtpCYcP.d.ts} +219 -11
  11. package/dist/{PageInsertBlankInput-CzShuSJI.cjs → PageInsertBlankInput-CqXBmFhN.cjs} +37 -2
  12. package/dist/PageInsertBlankInput-CqXBmFhN.cjs.map +1 -0
  13. package/dist/{PageInsertBlankInput-WKY0tr6S.js → PageInsertBlankInput-cHq9-i-z.js} +37 -2
  14. package/dist/PageInsertBlankInput-cHq9-i-z.js.map +1 -0
  15. package/dist/{builders-Do6_4KnS.cjs → builders-Bqm8yTpi.cjs} +1483 -11
  16. package/dist/builders-Bqm8yTpi.cjs.map +1 -0
  17. package/dist/{builders-Cdz34nbF.js → builders-Dqo2X-dt.js} +1364 -12
  18. package/dist/builders-Dqo2X-dt.js.map +1 -0
  19. package/dist/conformance.cjs +1630 -107
  20. package/dist/conformance.cjs.map +1 -1
  21. package/dist/conformance.d.cts +117 -3
  22. package/dist/conformance.d.ts +117 -3
  23. package/dist/conformance.js +1627 -108
  24. package/dist/conformance.js.map +1 -1
  25. package/dist/{fold-C7I5GpBz.cjs → fold-2V29cxCV.cjs} +2 -2
  26. package/dist/{fold-C7I5GpBz.cjs.map → fold-2V29cxCV.cjs.map} +1 -1
  27. package/dist/{fold-BfyxxwS6.js → fold-CdEJTBTn.js} +2 -2
  28. package/dist/{fold-BfyxxwS6.js.map → fold-CdEJTBTn.js.map} +1 -1
  29. package/dist/index.cjs +33 -4
  30. package/dist/index.d.cts +2 -2
  31. package/dist/index.d.ts +2 -2
  32. package/dist/index.js +5 -5
  33. package/dist/{resolver-D-jumvgM.cjs → resolver-CYVNV4hn.cjs} +216 -10
  34. package/dist/resolver-CYVNV4hn.cjs.map +1 -0
  35. package/dist/{resolver-CHG4waXL.js → resolver-inAVzsWt.js} +157 -11
  36. package/dist/resolver-inAVzsWt.js.map +1 -0
  37. package/dist/runtime.cjs +34 -5
  38. package/dist/runtime.d.cts +253 -5
  39. package/dist/runtime.d.ts +253 -5
  40. package/dist/runtime.js +6 -6
  41. package/dist/{schemas-XGrNVMDd.js → schemas-BLARNCgx.js} +469 -7
  42. package/dist/schemas-BLARNCgx.js.map +1 -0
  43. package/dist/{schemas-CS5iPpX5.cjs → schemas-DIqFMmrC.cjs} +672 -6
  44. package/dist/schemas-DIqFMmrC.cjs.map +1 -0
  45. package/dist/wire.cjs +250 -12
  46. package/dist/wire.cjs.map +1 -1
  47. package/dist/wire.d.cts +444 -4
  48. package/dist/wire.d.ts +444 -4
  49. package/dist/wire.js +214 -13
  50. package/dist/wire.js.map +1 -1
  51. package/package.json +1 -1
  52. package/dist/PageInsertBlankInput-CzShuSJI.cjs.map +0 -1
  53. package/dist/PageInsertBlankInput-WKY0tr6S.js.map +0 -1
  54. package/dist/builders-Cdz34nbF.js.map +0 -1
  55. package/dist/builders-Do6_4KnS.cjs.map +0 -1
  56. package/dist/resolver-CHG4waXL.js.map +0 -1
  57. package/dist/resolver-D-jumvgM.cjs.map +0 -1
  58. package/dist/schemas-CS5iPpX5.cjs.map +0 -1
  59. package/dist/schemas-XGrNVMDd.js.map +0 -1
@@ -1,5 +1,5 @@
1
- import { An as HighlightDraft, Ds as CharMapAnchor, cl as LinePoints, dl as PdfRect, jl as DocumentMetadata, ll as PdfPoint, n as AnnotationListSnapshotAllPages, ol as InkList, t as AnnotationListPageSnapshot } from "./AnnotationListSnapshot-C1U3XUxP.cjs";
2
- import { t as Engine } from "./Engine-D3868xIU.cjs";
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
- 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, TEXT_DIVERGENCE_CASES, type TextDivergenceCase, type TextDivergenceConformanceFixture, type TextDivergenceConformanceOptions, diffAnnotationListSnapshot, diffAnnotationListSnapshotAll, runActionsConformance, runAnnotationAppearanceConformance, runAnnotationMutationConformance, runAnnotationReadConformance, runAttachmentConformance, runDocumentEventsConformance, runFormConformance, runMetadataConformance, runPageDeleteConformance, runPageExtractConformance, runPageFlattenConformance, runPageGeometryOrientationConformance, runPageInsertBlankConformance, runPageInsertConformance, runPageReorderConformance, runPageRotateConformance, runPageTextConformance, runPieceInfoConformance, runRedactionApplyConformance, runSearchConformance, runTextDivergenceConformance };
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
@@ -1,5 +1,5 @@
1
- import { An as HighlightDraft, Ds as CharMapAnchor, cl as LinePoints, dl as PdfRect, jl as DocumentMetadata, ll as PdfPoint, n as AnnotationListSnapshotAllPages, ol as InkList, t as AnnotationListPageSnapshot } from "./AnnotationListSnapshot-C1U3XUxP.js";
2
- import { t as Engine } from "./Engine-CWnAKccD.js";
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
- 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, TEXT_DIVERGENCE_CASES, type TextDivergenceCase, type TextDivergenceConformanceFixture, type TextDivergenceConformanceOptions, diffAnnotationListSnapshot, diffAnnotationListSnapshotAll, runActionsConformance, runAnnotationAppearanceConformance, runAnnotationMutationConformance, runAnnotationReadConformance, runAttachmentConformance, runDocumentEventsConformance, runFormConformance, runMetadataConformance, runPageDeleteConformance, runPageExtractConformance, runPageFlattenConformance, runPageGeometryOrientationConformance, runPageInsertBlankConformance, runPageInsertConformance, runPageReorderConformance, runPageRotateConformance, runPageTextConformance, runPieceInfoConformance, runRedactionApplyConformance, runSearchConformance, runTextDivergenceConformance };
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