@docx-editor.dev/core 2.5.0 → 2.6.1

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 (112) hide show
  1. package/THIRD_PARTY_NOTICES.md +39 -1
  2. package/dist/automation.cjs +1 -1
  3. package/dist/automation.d.cts +6 -6
  4. package/dist/automation.d.ts +6 -6
  5. package/dist/automation.js +1 -1
  6. package/dist/binding.cjs +1 -1
  7. package/dist/binding.d.cts +12 -12
  8. package/dist/binding.d.ts +12 -12
  9. package/dist/binding.js +1 -1
  10. package/dist/chunk-4GQXAXTZ.js +5 -0
  11. package/dist/chunk-DGUHCJPF.cjs +18 -0
  12. package/dist/{chunk-2GSRLGUI.cjs → chunk-DY3QVCWC.cjs} +6 -6
  13. package/dist/{chunk-45FL7KH4.js → chunk-E7BXJ4BF.js} +1 -1
  14. package/dist/chunk-F7Z6PWAZ.cjs +2 -0
  15. package/dist/chunk-JEMP5YI5.cjs +15 -0
  16. package/dist/{chunk-3FRSOOND.cjs → chunk-JZXK4DKV.cjs} +1 -1
  17. package/dist/chunk-NIGGABAA.js +15 -0
  18. package/dist/chunk-OPKOTVQQ.js +18 -0
  19. package/dist/{chunk-GOEBQ26R.js → chunk-PSZH2VXP.js} +1 -1
  20. package/dist/{chunk-LJIX4ZDF.js → chunk-R75OLPL6.js} +6 -6
  21. package/dist/{chunk-JDHTCMFA.cjs → chunk-SFMAIFEN.cjs} +1 -1
  22. package/dist/chunk-SKWYEZCO.cjs +5 -0
  23. package/dist/{chunk-YTZIGUXT.js → chunk-SMRD66T5.js} +1 -1
  24. package/dist/chunk-WAVN7MAT.js +2 -0
  25. package/dist/chunk-WU7PUTVA.js +2 -0
  26. package/dist/{chunk-OHJQ7GPZ.cjs → chunk-YMYCPY5Y.cjs} +1 -1
  27. package/dist/{content-control-walk-BeAFh6Xi.d.cts → content-control-walk-CbTqHq6O.d.cts} +1 -1
  28. package/dist/{content-control-walk-CQp8l6eS.d.ts → content-control-walk-D06GijR0.d.ts} +1 -1
  29. package/dist/contracts/editor.cjs +1 -1
  30. package/dist/contracts/editor.d.cts +10 -10
  31. package/dist/contracts/editor.d.ts +10 -10
  32. package/dist/contracts/editor.js +1 -1
  33. package/dist/contracts/interaction.d.cts +9 -9
  34. package/dist/contracts/interaction.d.ts +9 -9
  35. package/dist/contracts/modules.d.cts +5 -5
  36. package/dist/contracts/modules.d.ts +5 -5
  37. package/dist/contracts/types.d.cts +3 -1
  38. package/dist/contracts/types.d.ts +3 -1
  39. package/dist/{custom-node-writes-CIC_-wad.d.cts → custom-node-writes-D9G3GKQ7.d.cts} +7 -7
  40. package/dist/{custom-node-writes-2clI36T9.d.ts → custom-node-writes-tJw8U9MO.d.ts} +7 -7
  41. package/dist/dist-YFULGVS3.js +2 -0
  42. package/dist/{editor-CUul9IuY.d.cts → editor-BZEJL3vv.d.cts} +33 -19
  43. package/dist/{editor-DIwctMcU.d.ts → editor-D2zOJztO.d.ts} +33 -19
  44. package/dist/editor.cjs +1 -1
  45. package/dist/editor.css +375 -38
  46. package/dist/editor.d.cts +42 -26
  47. package/dist/editor.d.ts +42 -26
  48. package/dist/editor.js +1 -1
  49. package/dist/harfbuzz.wasm +0 -0
  50. package/dist/{hf-references-CAp1xTv6.d.ts → hf-references-BdjsQNE_.d.ts} +2 -2
  51. package/dist/{hf-references-BPET4tlK.d.cts → hf-references-CgEOSw3i.d.cts} +2 -2
  52. package/dist/{image-resources-CSlQmPIm.d.cts → image-resources-BaHz4QAd.d.cts} +10 -10
  53. package/dist/{image-resources-e13t-pgy.d.ts → image-resources-Cl5_cNi9.d.ts} +10 -10
  54. package/dist/{index-BUsYjxF5.d.ts → index-D8L8WrNF.d.ts} +111 -21
  55. package/dist/{index-8t44iXTY.d.cts → index-_xF7n_z0.d.cts} +111 -21
  56. package/dist/index.cjs +1 -1
  57. package/dist/index.d.cts +20 -20
  58. package/dist/index.d.ts +20 -20
  59. package/dist/index.js +1 -1
  60. package/dist/layout.cjs +1 -1
  61. package/dist/layout.d.cts +71 -23
  62. package/dist/layout.d.ts +71 -23
  63. package/dist/layout.js +1 -1
  64. package/dist/node-module-shim-TTKTT66I.js +1 -0
  65. package/dist/{note-nodes-CZQXU6Fg.d.ts → note-nodes-BPSTVDMr.d.ts} +1 -1
  66. package/dist/{note-nodes-B2wWES2L.d.cts → note-nodes-C6DLxlvj.d.cts} +1 -1
  67. package/dist/{ooxml-package-Cmbe_M04.d.cts → ooxml-package-CR5us6ad.d.cts} +115 -115
  68. package/dist/{ooxml-package-BrxTmTsZ.d.ts → ooxml-package-D_CtywTW.d.ts} +115 -115
  69. package/dist/{ooxml-tree-CG0odFyi.d.cts → ooxml-tree-BU0e3DVi.d.cts} +1 -1
  70. package/dist/{ooxml-tree-CG0odFyi.d.ts → ooxml-tree-BU0e3DVi.d.ts} +1 -1
  71. package/dist/output.cjs +1 -1
  72. package/dist/output.d.cts +22 -8
  73. package/dist/output.d.ts +22 -8
  74. package/dist/output.js +1 -1
  75. package/dist/{protocol-B5oSt08P.d.cts → protocol-CD7slqvl.d.cts} +2 -2
  76. package/dist/{protocol-ooK7PAXz.d.ts → protocol-DsbfgBwA.d.ts} +2 -2
  77. package/dist/{note-properties-Dhqkro--.d.cts → review-reads-Dr0CpW6u.d.cts} +67 -67
  78. package/dist/{note-properties-BS66XmcC.d.ts → review-reads-HDvoQXK2.d.ts} +67 -67
  79. package/dist/{review-support-Bl9sN8cv.d.ts → review-support-D4ZBdUXa.d.ts} +2 -2
  80. package/dist/{review-support-CHuJxHmz.d.cts → review-support-T-riLz4Y.d.cts} +2 -2
  81. package/dist/{revision-projection-u4nT52xT.d.ts → revision-projection-UKqvPa4-.d.ts} +1 -1
  82. package/dist/{revision-projection-DRZMzoLD.d.cts → revision-projection-WzlQGBJx.d.cts} +1 -1
  83. package/dist/{semantic-cell-selection-Dc-_enhm.d.ts → semantic-cell-selection-B5vfPz4Q.d.ts} +4 -4
  84. package/dist/{semantic-cell-selection-CdNQ-a9-.d.cts → semantic-cell-selection-BTQFpN0S.d.cts} +4 -4
  85. package/dist/{semantic-interaction-DgaWs-5w.d.cts → semantic-interaction-CDNEU_Tx.d.cts} +1 -1
  86. package/dist/{semantic-interaction-CCVwyw2A.d.ts → semantic-interaction-lvpzZRpA.d.ts} +1 -1
  87. package/dist/{semantic-paint-6iIB4fhx.d.cts → semantic-paint-BBPL3u5w.d.ts} +111 -3
  88. package/dist/{semantic-paint-CKIbFkQ7.d.ts → semantic-paint-IjbL-4CT.d.cts} +111 -3
  89. package/dist/{semantic-records-B-qbrnp2.d.ts → semantic-records-CdQvpUj1.d.ts} +4 -4
  90. package/dist/{semantic-records-Dq8SlCY8.d.cts → semantic-records-DEOs3_tE.d.cts} +4 -4
  91. package/dist/{shaped-measurer-Dx4llNhK.d.cts → shaped-measurer-C2SJAjV0.d.cts} +1 -1
  92. package/dist/{shaped-measurer-BT4FqYe9.d.ts → shaped-measurer-l4o5ITJ0.d.ts} +1 -1
  93. package/dist/store.cjs +1 -1
  94. package/dist/store.d.cts +238 -238
  95. package/dist/store.d.ts +238 -238
  96. package/dist/store.js +1 -1
  97. package/dist/{tree-op-types-DOYNkKqD.d.cts → tree-op-types-CUCwPWjT.d.cts} +219 -219
  98. package/dist/{tree-op-types-CZw9QhWX.d.ts → tree-op-types-D0fTNBVW.d.ts} +219 -219
  99. package/dist/{tree-session-CF_EOhTW.d.ts → tree-session-CH1oA75f.d.ts} +61 -45
  100. package/dist/{tree-session-CtK3KgFU.d.cts → tree-session-b7bggR-S.d.cts} +61 -45
  101. package/dist/{tree-store-Jg-q7fyf.d.cts → tree-store-BqgeCa1Q.d.cts} +3 -3
  102. package/dist/{tree-store-9TaX-L0V.d.ts → tree-store-CIKASRHk.d.ts} +3 -3
  103. package/licenses/HarfBuzz-COPYING.txt +42 -0
  104. package/package.json +5 -3
  105. package/dist/chunk-2QIA75K3.js +0 -2
  106. package/dist/chunk-32NXPFYL.js +0 -5
  107. package/dist/chunk-3C533HSQ.cjs +0 -18
  108. package/dist/chunk-7GYF33B5.cjs +0 -2
  109. package/dist/chunk-H3DZP4LE.cjs +0 -5
  110. package/dist/chunk-L2GMLEHX.cjs +0 -14
  111. package/dist/chunk-QUZM6LWQ.js +0 -14
  112. package/dist/chunk-T252F4US.js +0 -18
package/dist/store.d.ts CHANGED
@@ -1,241 +1,18 @@
1
- import { e as ResourceLimits } from './image-resources-e13t-pgy.js';
2
- export { C as CreateImageResourceCacheOptions, D as DEFAULT_IMAGE_RESOURCE_LIMITS, f as DEFAULT_LIMITS, H as HARD_CEILINGS, g as IMAGE_RESOURCE_HARD_CEILINGS, b as ImageDecodePort, c as ImageResourceLimits, h as ImageResourceLookup, I as ImageResourceState, M as MAX_SVG_SNIFF_BYTES, P as PreservedImageMime, S as SupportedImageMime, i as ValidatedRasterHeader, j as createImageResourceCache, k as hasBoundedSvgRoot, l as imageResourceLookupFor, m as liveDrawingReferenceCount, r as resolveImageResourceLimits, n as resolveLimits, s as sniffImageMime, o as validateGifHeader, p as validateJpegHeader, q as validatePngHeader, v as validateRasterHeader } from './image-resources-e13t-pgy.js';
3
- import { O as OoxmlPackage, R as RelationshipRecord } from './ooxml-package-BrxTmTsZ.js';
4
- export { C as ContentTypeError, c as ContentTypeIndex, d as ContentTypeRecords, D as DEFAULT_OOXML_PACKAGE_LIMITS, e as DEFAULT_ZIP_LIMITS, f as DefaultRecord, I as IMAGE_RELATIONSHIP_TYPE, g as ImageRelationshipResolution, h as IndexResult, N as NameRejection, i as NameResult, j as OoxmlExternalTarget, a as OoxmlPackageLimits, b as OoxmlPackageRejection, k as OoxmlPackageResult, l as OverrideRecord, m as RelationshipError, n as RelationshipSetResult, o as ResolveResult, p as ResolvedRelationship, T as TargetMode, Z as ZipLimits, q as ZipReadResult, r as ZipRejection, s as asciiFold, t as buildContentTypeIndex, u as buildRelationshipSet, v as detectDuplicateNames, w as extensionKey, x as isValidMime, y as normalizePartName, z as partNameKey, A as readOoxmlPackage, B as readZip, E as resolveContentType, F as resolveImageRelationship, G as resolveInternalTarget, H as resolveRelationship, J as validateExternalTarget, K as withPart, L as writeOoxmlPackage, M as writeZip } from './ooxml-package-BrxTmTsZ.js';
5
- import { e as OoxmlPart, O as OoxmlNode, r as OoxmlInvariantResult, s as OoxmlInvariantIssue, a as OoxmlElement, f as OoxmlParagraphNode, t as OoxmlHardBreakNode, u as OoxmlFldCharNode, v as OoxmlFldSimpleNode, w as OoxmlInstrTextNode, x as OoxmlAttribute } from './ooxml-tree-CG0odFyi.js';
6
- export { y as OOXML_NODE_IDENTITY_RULES, z as OoxmlBodyNode, A as OoxmlBookmarkEndNode, B as OoxmlBookmarkStartNode, C as OoxmlContentControlCalendarNode, D as OoxmlContentControlCheckboxNode, E as OoxmlContentControlCheckedNode, F as OoxmlContentControlCheckedStateNode, G as OoxmlContentControlComboBoxNode, d as OoxmlContentControlContentNode, H as OoxmlContentControlDataBindingNode, I as OoxmlContentControlDateFormatNode, J as OoxmlContentControlDateNode, K as OoxmlContentControlDropDownListNode, o as OoxmlContentControlEndPropertiesNode, L as OoxmlContentControlLidNode, M as OoxmlContentControlListItemNode, b as OoxmlContentControlNode, p as OoxmlContentControlPropertiesNode, N as OoxmlContentControlStoreMappedDataAsNode, P as OoxmlContentControlTextNode, Q as OoxmlContentControlUncheckedStateNode, h as OoxmlContinuationSeparatorNode, R as OoxmlDocumentNode, i as OoxmlEndnotesNode, j as OoxmlFootnotesNode, c as OoxmlGenericElementNode, S as OoxmlGenericExtensionAttribute, T as OoxmlHyperlinkNode, U as OoxmlInvariantIssueCode, V as OoxmlKnownNodeAttribute, W as OoxmlNamespaceBinding, Y as OoxmlNodeId, Z as OoxmlNodeIdentityRules, g as OoxmlNoteNode, k as OoxmlNoteRefNode, l as OoxmlNoteReferenceNode, _ as OoxmlParagraphPropertiesNode, $ as OoxmlPartMetadata, n as OoxmlReadRejection, a0 as OoxmlReadResult, a1 as OoxmlRunNode, a2 as OoxmlRunPropertiesNode, m as OoxmlSeparatorNode, a3 as OoxmlTabNode, a4 as OoxmlTextElementNode, a5 as OoxmlTextNode, a6 as OoxmlWmlValAttribute, a7 as OoxmlXmlSpaceAttribute, a8 as WML_NAMESPACE_URI, a9 as XMLNS_NAMESPACE_URI, aa as XML_NAMESPACE_URI, X as XmlLimits, ab as XmlNode, ac as XmlRejection, ad as XmlResult, ae as childElements, af as findElement, ag as isContentRevisionKind, ah as isRangeMarkerKind, ai as readOnOffChild, aj as readOoxmlPart, ak as readXml, al as textContent } from './ooxml-tree-CG0odFyi.js';
7
- export { e as BookmarkAnchor, B as BookmarkIndex, f as CascadeDeletedNoteReferencesOptions, g as CustomNodePayloadRead, h as CustomNodePayloadWrite, b as CustomNodeSweepOutcome, i as CustomNodeSweepResult, j as CustomNodeWriteRejection, C as CustomNodeWriteResult, k as DEFAULT_MAX_EDITABLE_STORY_PARTS, D as DocumentTrackingSettings, l as DrawingPropertyIdResult, E as EmbeddedFont, F as FontStyleKey, H as HeaderFooterLifecycleImpact, m as HeaderFooterLifecycleOp, n as HeaderFooterLifecycleRejection, o as HeaderFooterLifecycleResult, I as InsertCustomNodeWrite, L as ListKind, M as MAX_CUSTOM_NODE_LABEL_LENGTH, p as MAX_CUSTOM_NODE_PAYLOAD_LENGTH, q as MAX_NOTE_REFERENCE_PARTS, r as MAX_NOTE_REFERENCE_SCAN, N as NO_TRACKING_SETTINGS, s as NoteDiagnostic, t as NoteDiagnosticCode, u as NoteLifecycleImpact, v as NoteLifecycleOp, w as NoteLifecycleOptions, x as NoteLifecycleRejection, y as NoteLifecycleResult, z as NoteReferenceHit, G as NoteReferenceScanBudget, P as PackageTransactResult, J as ReadEmbeddedFontsOptions, K as StoryResolveResult, S as StoryScope, a as StoryTargetRejection, T as TreePackageStore, O as TreePackageStoreOptions, Q as allocateDrawingPropertyId, U as applyHeaderFooterLifecycleOp, V as applyNoteLifecycleOp, W as buildBookmarkIndex, X as cascadeDeletedNoteReferences, Y as collectNoteReferences, Z as collectPackageNoteReferences, _ as createNoteReferenceScanBudget, $ as customNodePayloadsByControl, a0 as customNodePayloadsOf, a1 as deobfuscateFont, a2 as diagnoseNoteReferences, a3 as ensureListDefinition, a4 as ensureNumberingLevel, a5 as insertCustomNodeWrite, a6 as isHeaderFooterLifecycleOp, a7 as isNoteLifecycleOp, a8 as normalNoteIds, a9 as notesPartHasId, aa as readEmbeddedFonts, ab as readTrackingSettings, ac as removeCustomNodeWrite, ad as resolveNotesPart, ae as sweepCustomNodePayloads, af as withBinaryPart, ag as withEmbeddedImage, ah as withoutUnreferencedImagePart } from './custom-node-writes-2clI36T9.js';
8
- export { c as HeaderFooterKind, a as HeaderFooterParts, b as HeaderFooterSectionResolution, d as HeaderFooterSlotMeta, H as HeaderFooterVariant, e as collectSectionPropertyNodes, r as resolveHeaderFooterParts, f as resolveHeaderFooterPartsBySection, g as resolveHeaderFooterResolutionBySection } from './hf-references-CAp1xTv6.js';
9
- export { c as collectFlowBlocks, d as contentControlContentOf, i as isContentControl, b as isContentControlContent, w as walkAllStoryParagraphs, e as walkParagraphInline, f as walkStoryBlocks } from './content-control-walk-CQp8l6eS.js';
10
- import { T as TreeDocOp, a as TreeOpRejection, q as TreeOpResult, O as OoxmlProperty, j as DrawingTreeDocOp, I as ImpactClass, b as ImageWrapTarget } from './tree-op-types-CZw9QhWX.js';
11
- export { A as ACCEPTED_PARAGRAPH_PROPERTIES, r as ACCEPTED_RUN_PROPERTIES, s as CONTENT_CONTROL_ID_MAX, t as CONTENT_CONTROL_PROPERTY_ORDER, u as ContentControlCheckbox, v as ContentControlCheckboxState, p as ContentControlDataBinding, w as ContentControlDateFormat, x as ContentControlEntry, C as ContentControlKind, n as ContentControlLevel, y as ContentControlListItem, o as ContentControlLock, z as ContentControlProperties, c as DrawingKind, e as DrawingLocks, d as DrawingPositionInput, H as HYPERLINK_RELATIONSHIP_TYPE, B as HyperlinkKind, E as HyperlinkTarget, i as IMAGE_WRAP_TARGETS, M as MAX_CONTENT_CONTROLS_PER_PART, F as MAX_CONTENT_CONTROL_NESTING, G as OFFICE_RELATIONSHIP_NAMESPACE_URI, J as RelationshipTargetResolver, R as RevisionAddress, S as SourceCrop, K as TABLE_BORDER_STYLES, L as TREE_DOC_OP_KINDS, m as TableBorderStyle, N as TreeDocOpKind, P as TreeOpEffect, Q as allocateContentControlId, U as contentControlContentChildren, W as contentControlContentNodeOf, X as contentControlEndPropertiesNodeOf, Y as contentControlLevelOf, Z as contentControlPropertiesNodeOf, _ as contentControlPropertiesOf, $ as contentControlTextOf, a0 as contentControlsIn, a1 as findContentControl, a2 as flattenContentControls, a3 as hyperlinkAnchorOf, a4 as hyperlinkRelationshipIdOf, a5 as hyperlinkTargetOf, a6 as isContentControlContentNode, a7 as isContentControlNode, a8 as isContentControlWrapper, a9 as isHyperlinkNode, aa as lockForbidsEdit, ab as lockForbidsRemoval, ac as orderedContentControlProperties, ad as parseContentControlId, ae as projectDrawing, af as resolveContentControlLock } from './tree-op-types-CZw9QhWX.js';
12
- export { A as AtomicNoteSpan, M as MAX_NOTES_PER_PART, a as NOTE_ATOM_CHAR, b as NOTE_CONTINUATION_SEPARATOR_ID, c as NOTE_ID_MAX, d as NOTE_ID_MIN, e as NOTE_SEPARATOR_ID, N as NoteKind, f as NoteType, g as allocateNoteId, h as atomicNoteSpansOf, i as customMarkFollows, j as findNoteById, k as formatNoteScopeId, l as isContinuationSeparatorNode, m as isEndnotesNode, o as isFootnotesNode, p as isNormalNote, q as isNoteAtomNode, r as isNoteNode, s as isNoteRefNode, t as isNoteReferenceNode, u as isSeparatorNode, v as noteAtomText, w as noteIdOf, x as noteKindOf, y as noteRefKindOf, z as noteReferenceKindOf, n as noteTypeOf, B as notesOf, C as parseNoteId, D as parseNoteScopeId } from './note-nodes-CZQXU6Fg.js';
13
- export { A as AuthoredNoteProperties, C as CommentAnchor, b as CommentPosition, c as CommentRecord, d as CommentThreadState, D as DEFAULT_ENDNOTE_PROPERTIES, e as DEFAULT_FOOTNOTE_PROPERTIES, E as EndnotePosition, F as FootnotePosition, L as LinkableReviewItem, N as NoteNumRestart, a as ResolvedEndnoteProperties, R as ResolvedFootnoteProperties, f as ReviewCommentItem, g as ReviewItem, h as ReviewModelInput, i as ReviewPosition, j as ReviewRange, k as ReviewRevisionItem, l as ReviewRevisionKind, W as W15_NAMESPACE_URI, m as authoredDocumentEndnoteProperties, n as authoredDocumentFootnoteProperties, o as authoredEndnotePropertiesFromSectPr, q as authoredFootnotePropertiesFromSectPr, r as collectReviewItems, s as commentAnchorsOfStory, t as commentBodyText, u as commentInitials, v as commentItemsOf, w as commentsOfPart, x as deepParagraphOrderOfPart, y as firstReviewRange, z as hasAnyComment, B as isLegalEndnotePosition, G as isLegalFootnotePosition, H as isLegalNumRestart, I as linkRevisionReplies, p as paragraphOrderOfPart, J as parseAuthoredNoteProperties, K as resolveEndnoteProperties, M as resolveFootnoteProperties, O as reviewItemKey, P as reviewItemRanges, Q as revisionItemsOf, S as settingsPartOf, T as threadStateOfPart } from './note-properties-BS66XmcC.js';
14
- import { T as TreeModelChange, b as TreeDocumentStore } from './tree-store-9TaX-L0V.js';
15
- export { D as DocumentProperties, S as SelectionMark, f as TreeDocumentStoreOptions, a as TreeStoryRef, d as TreeTransactOptions, g as TreeTransactResult, c as TreeTransactionContext } from './tree-store-9TaX-L0V.js';
16
-
17
- /**
18
- * Serialize normalized XML from a canonical part using repository-controlled
19
- * prefixes and validated, escaped names and values. This does not yet replace
20
- * writeDocx; package integration belongs to the subsequent migration pass.
21
- */
22
- declare function serializeOoxmlPart(part: OoxmlPart): string;
23
- /** Repository-owned namespace-aware semantic XML oracle. */
24
- declare function canonicalOoxmlFingerprint(value: OoxmlPart | OoxmlNode): string;
25
- /**
26
- * Structural equality of two canonical trees, ignoring node ids.
27
- *
28
- * Ids differ between two parses of the same bytes, so comparing them would report every reopen as
29
- * a change. This compares what the document SAYS.
30
- */
31
- declare function ooxmlTreesEqual(left: OoxmlPart | OoxmlNode, right: OoxmlPart | OoxmlNode): boolean;
32
-
33
- /**
34
- * Validate a parser-created or copy-modified immutable part before publication.
35
- * Future tree-edit primitives can retain shared nodes and their IDs, while any
36
- * replacement chooses explicitly whether to retain or allocate identity.
37
- */
38
- declare function validateOoxmlPart(part: OoxmlPart): OoxmlInvariantResult;
39
-
40
- /** An edited part, or the invariant violations that rejected the edit. */
41
- type OoxmlEditResult = {
42
- readonly ok: true;
43
- readonly part: OoxmlPart;
44
- } | {
45
- readonly ok: false;
46
- readonly issues: readonly OoxmlInvariantIssue[];
47
- };
48
- /**
49
- * How an edit primitive validates its result.
50
- *
51
- * By default every primitive runs the full-part invariant validation before handing its
52
- * result back — the safe reading for an isolated call. A TRANSACTION applying many ops pays
53
- * that full-tree walk once per primitive, which is what made a hundred-paragraph paste
54
- * quadratic; it defers instead, and runs the same validation ONCE on the final tree before
55
- * anything is published. Deferring is only sound for a caller that owns a commit boundary:
56
- * nothing may escape between the unvalidated intermediate and the validated result.
57
- */
58
- interface EditOptions {
59
- readonly deferValidation?: boolean;
60
- }
61
- /** Every node id currently present in the part. */
62
- declare function collectNodeIds(part: OoxmlPart): Set<string>;
63
- /**
64
- * Mint ids for nodes an edit introduces.
65
- *
66
- * Deterministic and collision-checked against the whole part: a structural-path id from the
67
- * original parse (`/word/document.xml#0.1.2`) and a minted one (`/word/document.xml#new:3`)
68
- * can never coincide, and the counter skips anything already taken so repeated edits in one
69
- * session stay unique.
70
- *
71
- * Checks the part's node index directly rather than copying every id into a fresh set: the
72
- * copy was O(document) per op, and an allocator is created for every op.
73
- */
74
- declare function createNodeIdAllocator(part: OoxmlPart): () => string;
75
- /** Whether a node id exists in the part. */
76
- declare function hasNode(part: OoxmlPart, nodeId: string): boolean;
77
- /** Read a node back out of a part by id. */
78
- declare function findNode(part: OoxmlPart, nodeId: string): OoxmlNode | null;
79
- /** The element that holds a node, or null for the root and for unknown ids. */
80
- declare function parentNodeOf(part: OoxmlPart, nodeId: string): OoxmlElement | null;
81
- /** Replace one node's children wholesale. */
82
- declare function replaceChildren(part: OoxmlPart, nodeId: string, children: readonly OoxmlNode[], options?: EditOptions): OoxmlEditResult;
83
- /** Insert children into a node at `index` (clamped to the child list). */
84
- declare function insertChildren(part: OoxmlPart, nodeId: string, index: number, children: readonly OoxmlNode[], options?: EditOptions): OoxmlEditResult;
85
- /** Replace one node with another, keeping its position among its siblings. */
86
- declare function replaceNode(part: OoxmlPart, nodeId: string, replacement: OoxmlNode, options?: EditOptions): OoxmlEditResult;
87
- /** Remove a node and its subtree. */
88
- declare function removeNode(part: OoxmlPart, nodeId: string, options?: EditOptions): OoxmlEditResult;
89
- /**
90
- * Apply several primitives as ONE atomic step.
91
- *
92
- * Each edit runs against the result of the previous one, and the whole sequence is
93
- * validated once at the end. If any step fails, the ORIGINAL part is what the caller keeps
94
- * — there is no partially-edited intermediate to publish. This is the shape a multi-`DocOp`
95
- * store transaction needs.
96
- */
97
- declare function applyEdits(part: OoxmlPart, edits: readonly ((current: OoxmlPart) => OoxmlEditResult)[], options?: EditOptions): OoxmlEditResult;
98
-
99
- /** One addressable unit of paragraph text: text, tab, hard break, or atomic field. */
100
- interface Segment {
101
- readonly runId: string;
102
- readonly node: OoxmlNode;
103
- readonly start: number;
104
- readonly end: number;
105
- /**
106
- * When set, deleting this segment removes every listed node id in one step (atomic
107
- * field begin→end or `fldSimple`). Absent for ordinary text/tab/break segments.
108
- */
109
- readonly removeNodeIds?: readonly string[];
110
- /**
111
- * When set, run formatting for this atom targets these runs (field result ownership),
112
- * not necessarily `runId`. Absent for ordinary text/tab/break segments.
113
- */
114
- readonly formatRunIds?: readonly string[];
115
- }
116
- /**
117
- * Flatten a paragraph into UTF-16 addressable segments, in document order.
118
- *
119
- * A HYPERLINK's runs are addressed too. `w:hyperlink` is a run container, not a leaf, and
120
- * the characters inside a link are ordinary paragraph text: the user selects them, types
121
- * over them and deletes them like any other. Skipping the container — which is what
122
- * iterating only direct `w:r` children did — left every link's text with no offsets at all,
123
- * so `paragraphTextOf` read "Visit or ." for a sentence that says "Visit Example.com or
124
- * Anthropic's website." and layout, selection and the ops all agreed on the wrong string.
125
- *
126
- * Inline CONTENT CONTROLS are the same class of wrapper: their `w:sdtContent` runs join the
127
- * paragraph's offset stream with no break opportunity at the boundary. Nesting is bounded
128
- * (`MAX_CONTENT_CONTROL_NESTING`); beyond the bound the wrapper is opaque so recursion
129
- * cannot exhaust the stack.
130
- *
131
- * `runId` stays the id of the run the content actually lives in, at whatever depth: the
132
- * appliers resolve it with `findNode` and rebuild that run's children, so nesting costs them
133
- * nothing.
134
- */
135
- declare function segmentsOf(paragraph: OoxmlParagraphNode): Segment[];
136
- /** Half-open `[start, end)` of one node in its paragraph's model offset space. */
137
- interface OffsetSpan {
138
- readonly start: number;
139
- readonly end: number;
140
- }
141
- /**
142
- * Every node's place in the paragraph's model offset space, from the SAME walk `segmentsOf`
143
- * uses.
144
- *
145
- * The offset model has exactly one authority, and this is how a caller borrows it. Three
146
- * private walkers used to re-derive it — one in the tracked-change writer, one in the comment
147
- * anchor reader, one in the review queue — and all three disagreed with `segmentsOf` and with
148
- * each other: none gave a note reference or an atomic field its length of one, one counted a
149
- * field's instruction text as visible characters, and one never descended into `w:hyperlink`
150
- * at all. The consequences were an anchor short by a link's length, two unrelated comments
151
- * threaded onto one zero-width offset, and a tracked insert landing a character out in any
152
- * paragraph carrying a footnote. Patching each walker only resets the clock on the next drift.
153
- *
154
- * A node the walk never reaches — content under a `generic` container, or past the nesting cap
155
- * — has NO span, and {@link ParagraphOffsetIndex.lengthOf} reports zero for it. That is the
156
- * same answer `segmentsOf` gives: it contributes no addressable characters.
157
- */
158
- interface ParagraphOffsetIndex {
159
- /** The paragraph's own length, identical to {@link paragraphLength}. */
160
- readonly length: number;
161
- readonly segments: readonly Segment[];
162
- /** Where a node sits, or null when the offset walk never reached it. */
163
- spanOf(node: OoxmlNode | string): OffsetSpan | null;
164
- /** A node's model length: `end - start` of its span, and 0 when it has none. */
165
- lengthOf(node: OoxmlNode | string): number;
166
- }
167
- /**
168
- * THE paragraph offset authority: maps a paragraph's UTF-16 offsets to the nodes holding them.
169
- *
170
- * One authority on purpose. An atomic field spans many nodes but is ONE unit to an offset, and a
171
- * second implementation that disagreed would place edits inside content that cannot be split.
172
- */
173
- declare function paragraphOffsetIndex(paragraph: OoxmlParagraphNode): ParagraphOffsetIndex;
174
- /** One inline content control's identity and the UTF-16 span its content covers. */
175
- interface InlineControlSpan {
176
- readonly controlId: string;
177
- readonly start: number;
178
- readonly end: number;
179
- }
180
- /**
181
- * The innermost inline content control whose content ends exactly at `offset` — the caret
182
- * at its right outer edge. What Backspace consults to delete the node as ONE unit
183
- * (pro-review-and-custom-nodes 4.6): deleting its last character from outside would either
184
- * strip one letter from a content-locked label (refused, so the key looks dead) or leave a
185
- * half-deleted chip whose tag still claims the full payload.
186
- */
187
- declare function inlineControlEndingAt(paragraph: OoxmlParagraphNode, offset: number): InlineControlSpan | null;
188
- /** The forward-delete mirror: the control whose content STARTS exactly at `offset`. */
189
- declare function inlineControlStartingAt(paragraph: OoxmlParagraphNode, offset: number): InlineControlSpan | null;
190
-
191
- /** Structural validation, run before any tree work so a rejection changes nothing. */
192
- declare function validateTreeOp(part: OoxmlPart, op: TreeDocOp): TreeOpRejection | null;
193
-
194
- interface RevisionSite {
195
- readonly node: OoxmlElement;
196
- readonly parent: OoxmlElement | null;
197
- /** True when this site cannot be resolved and the whole op must refuse. */
198
- readonly refused: boolean;
199
- /** True for `w:pPr/w:rPr/w:ins|w:del` — the paragraph MARK, not content. */
200
- readonly paragraphMark: boolean;
201
- /** True for `w:rPrChange` / `w:pPrChange`. */
202
- readonly propertyChange: boolean;
203
- /**
204
- * How many content-revision wrappers ENCLOSE this one, counted within its own paragraph.
205
- *
206
- * Revisions nest for real: `w:ins` wrapping `w:del` is content one reviewer added and another
207
- * struck, and both stay pending because each author has to be answered separately. The two
208
- * wrappers then cover exactly the same characters, so a range cannot tell them apart and
209
- * "which change is this text under" has only one honest answer — the innermost one, which is
210
- * the change that decides what the reader is looking at.
211
- *
212
- * Relative to the paragraph or table subtree, which is the unit the site walk memoizes. That
213
- * is enough and it is what keeps the memo valid: a content revision cannot enclose a
214
- * paragraph, and two sites can only cover one position if they are in the same paragraph.
215
- */
216
- readonly nesting: number;
217
- }
218
- /** Every revision-bearing element in the part. */
219
- declare function collectRevisionSites(part: OoxmlPart): RevisionSite[];
220
-
221
- /** The `w:p` a node sits inside, and the model offset it starts at within that paragraph. */
222
- interface SiteLocation {
223
- readonly paragraphId: string;
224
- readonly start: number;
225
- readonly end: number;
226
- }
227
- /**
228
- * Locate every revision site in one walk.
229
- *
230
- * One walk rather than a lookup per site: `resolveRevisions` learned the same lesson the hard
231
- * way, where a per-site tree walk inside a per-site loop made accept-all quadratic.
232
- *
233
- * Offsets come from `paragraphOffsetIndex`, which is `segmentsOf`'s walk. A private one here
234
- * measured a run by summing its text and gave a note reference, an atomic field and a field's
235
- * instruction text the wrong lengths, so every card in a paragraph holding one reported a
236
- * range the caret and the ops disagreed with.
237
- */
238
- declare function locateSites(part: OoxmlPart): ReadonlyMap<string, SiteLocation>;
1
+ import { e as ResourceLimits } from './image-resources-Cl5_cNi9.js';
2
+ export { C as CreateImageResourceCacheOptions, D as DEFAULT_IMAGE_RESOURCE_LIMITS, f as DEFAULT_LIMITS, H as HARD_CEILINGS, g as IMAGE_RESOURCE_HARD_CEILINGS, b as ImageDecodePort, c as ImageResourceLimits, h as ImageResourceLookup, I as ImageResourceState, M as MAX_SVG_SNIFF_BYTES, P as PreservedImageMime, S as SupportedImageMime, i as ValidatedRasterHeader, j as createImageResourceCache, k as hasBoundedSvgRoot, l as imageResourceLookupFor, m as liveDrawingReferenceCount, r as resolveImageResourceLimits, n as resolveLimits, s as sniffImageMime, o as validateGifHeader, p as validateJpegHeader, q as validatePngHeader, v as validateRasterHeader } from './image-resources-Cl5_cNi9.js';
3
+ import { O as OoxmlPackage, R as RelationshipRecord } from './ooxml-package-D_CtywTW.js';
4
+ export { C as ContentTypeError, c as ContentTypeIndex, d as ContentTypeRecords, D as DEFAULT_OOXML_PACKAGE_LIMITS, e as DEFAULT_ZIP_LIMITS, f as DefaultRecord, I as IMAGE_RELATIONSHIP_TYPE, g as ImageRelationshipResolution, h as IndexResult, N as NameRejection, i as NameResult, j as OoxmlExternalTarget, a as OoxmlPackageLimits, b as OoxmlPackageRejection, k as OoxmlPackageResult, l as OverrideRecord, m as RelationshipError, n as RelationshipSetResult, o as ResolveResult, p as ResolvedRelationship, T as TargetMode, Z as ZipLimits, q as ZipReadResult, r as ZipRejection, s as asciiFold, t as buildContentTypeIndex, u as buildRelationshipSet, v as detectDuplicateNames, w as extensionKey, x as isValidMime, y as normalizePartName, z as partNameKey, A as readOoxmlPackage, B as readZip, E as resolveContentType, F as resolveImageRelationship, G as resolveInternalTarget, H as resolveRelationship, J as validateExternalTarget, K as withPart, L as writeOoxmlPackage, M as writeZip } from './ooxml-package-D_CtywTW.js';
5
+ import { e as OoxmlPart, O as OoxmlNode, r as OoxmlInvariantResult, a as OoxmlElement, s as OoxmlInvariantIssue, t as OoxmlHardBreakNode, f as OoxmlParagraphNode, u as OoxmlFldCharNode, v as OoxmlFldSimpleNode, w as OoxmlInstrTextNode, x as OoxmlAttribute } from './ooxml-tree-BU0e3DVi.js';
6
+ export { y as OOXML_NODE_IDENTITY_RULES, z as OoxmlBodyNode, A as OoxmlBookmarkEndNode, B as OoxmlBookmarkStartNode, C as OoxmlContentControlCalendarNode, D as OoxmlContentControlCheckboxNode, E as OoxmlContentControlCheckedNode, F as OoxmlContentControlCheckedStateNode, G as OoxmlContentControlComboBoxNode, d as OoxmlContentControlContentNode, H as OoxmlContentControlDataBindingNode, I as OoxmlContentControlDateFormatNode, J as OoxmlContentControlDateNode, K as OoxmlContentControlDropDownListNode, p as OoxmlContentControlEndPropertiesNode, L as OoxmlContentControlLidNode, M as OoxmlContentControlListItemNode, b as OoxmlContentControlNode, q as OoxmlContentControlPropertiesNode, N as OoxmlContentControlStoreMappedDataAsNode, P as OoxmlContentControlTextNode, Q as OoxmlContentControlUncheckedStateNode, h as OoxmlContinuationSeparatorNode, R as OoxmlDocumentNode, i as OoxmlEndnotesNode, j as OoxmlFootnotesNode, c as OoxmlGenericElementNode, S as OoxmlGenericExtensionAttribute, T as OoxmlHyperlinkNode, U as OoxmlInvariantIssueCode, V as OoxmlKnownNodeAttribute, W as OoxmlNamespaceBinding, Y as OoxmlNodeId, Z as OoxmlNodeIdentityRules, g as OoxmlNoteNode, k as OoxmlNoteRefNode, l as OoxmlNoteReferenceNode, _ as OoxmlParagraphPropertiesNode, $ as OoxmlPartMetadata, n as OoxmlReadRejection, a0 as OoxmlReadResult, a1 as OoxmlRunNode, a2 as OoxmlRunPropertiesNode, m as OoxmlSeparatorNode, a3 as OoxmlTabNode, a4 as OoxmlTextElementNode, a5 as OoxmlTextNode, a6 as OoxmlWmlValAttribute, a7 as OoxmlXmlSpaceAttribute, a8 as WML_NAMESPACE_URI, a9 as XMLNS_NAMESPACE_URI, aa as XML_NAMESPACE_URI, X as XmlLimits, ab as XmlNode, ac as XmlRejection, ad as XmlResult, ae as childElements, af as findElement, ag as isContentRevisionKind, ah as isRangeMarkerKind, ai as readOnOffChild, aj as readOoxmlPart, ak as readXml, al as textContent } from './ooxml-tree-BU0e3DVi.js';
7
+ export { e as BookmarkAnchor, B as BookmarkIndex, f as CascadeDeletedNoteReferencesOptions, g as CustomNodePayloadRead, h as CustomNodePayloadWrite, b as CustomNodeSweepOutcome, i as CustomNodeSweepResult, j as CustomNodeWriteRejection, C as CustomNodeWriteResult, k as DEFAULT_MAX_EDITABLE_STORY_PARTS, D as DocumentTrackingSettings, l as DrawingPropertyIdResult, E as EmbeddedFont, F as FontStyleKey, H as HeaderFooterLifecycleImpact, m as HeaderFooterLifecycleOp, n as HeaderFooterLifecycleRejection, o as HeaderFooterLifecycleResult, I as InsertCustomNodeWrite, L as ListKind, M as MAX_CUSTOM_NODE_LABEL_LENGTH, p as MAX_CUSTOM_NODE_PAYLOAD_LENGTH, q as MAX_NOTE_REFERENCE_PARTS, r as MAX_NOTE_REFERENCE_SCAN, N as NO_TRACKING_SETTINGS, s as NoteDiagnostic, t as NoteDiagnosticCode, u as NoteLifecycleImpact, v as NoteLifecycleOp, w as NoteLifecycleOptions, x as NoteLifecycleRejection, y as NoteLifecycleResult, z as NoteReferenceHit, G as NoteReferenceScanBudget, P as PackageTransactResult, J as ReadEmbeddedFontsOptions, K as StoryResolveResult, S as StoryScope, a as StoryTargetRejection, T as TreePackageStore, O as TreePackageStoreOptions, Q as allocateDrawingPropertyId, U as applyHeaderFooterLifecycleOp, V as applyNoteLifecycleOp, W as buildBookmarkIndex, X as cascadeDeletedNoteReferences, Y as collectNoteReferences, Z as collectPackageNoteReferences, _ as createNoteReferenceScanBudget, $ as customNodePayloadsByControl, a0 as customNodePayloadsOf, a1 as deobfuscateFont, a2 as diagnoseNoteReferences, a3 as ensureListDefinition, a4 as ensureNumberingLevel, a5 as insertCustomNodeWrite, a6 as isHeaderFooterLifecycleOp, a7 as isNoteLifecycleOp, a8 as normalNoteIds, a9 as notesPartHasId, aa as readEmbeddedFonts, ab as readTrackingSettings, ac as removeCustomNodeWrite, ad as resolveNotesPart, ae as sweepCustomNodePayloads, af as withBinaryPart, ag as withEmbeddedImage, ah as withoutUnreferencedImagePart } from './custom-node-writes-tJw8U9MO.js';
8
+ export { c as HeaderFooterKind, a as HeaderFooterParts, b as HeaderFooterSectionResolution, d as HeaderFooterSlotMeta, H as HeaderFooterVariant, e as collectSectionPropertyNodes, r as resolveHeaderFooterParts, f as resolveHeaderFooterPartsBySection, g as resolveHeaderFooterResolutionBySection } from './hf-references-BdjsQNE_.js';
9
+ export { c as collectFlowBlocks, d as contentControlContentOf, i as isContentControl, b as isContentControlContent, w as walkAllStoryParagraphs, e as walkParagraphInline, f as walkStoryBlocks } from './content-control-walk-D06GijR0.js';
10
+ import { T as TreeDocOp, a as TreeOpRejection, q as TreeOpResult, O as OoxmlProperty, h as DrawingTreeDocOp, I as ImpactClass, b as ImageWrapTarget } from './tree-op-types-D0fTNBVW.js';
11
+ export { A as ACCEPTED_PARAGRAPH_PROPERTIES, r as ACCEPTED_RUN_PROPERTIES, s as CONTENT_CONTROL_ID_MAX, t as CONTENT_CONTROL_PROPERTY_ORDER, u as ContentControlCheckbox, v as ContentControlCheckboxState, p as ContentControlDataBinding, w as ContentControlDateFormat, x as ContentControlEntry, C as ContentControlKind, n as ContentControlLevel, y as ContentControlListItem, o as ContentControlLock, z as ContentControlProperties, c as DrawingKind, e as DrawingLocks, d as DrawingPositionInput, H as HYPERLINK_RELATIONSHIP_TYPE, B as HyperlinkKind, E as HyperlinkTarget, j as IMAGE_WRAP_TARGETS, M as MAX_CONTENT_CONTROLS_PER_PART, F as MAX_CONTENT_CONTROL_NESTING, G as OFFICE_RELATIONSHIP_NAMESPACE_URI, J as RelationshipTargetResolver, R as RevisionAddress, S as SourceCrop, K as TABLE_BORDER_STYLES, L as TREE_DOC_OP_KINDS, m as TableBorderStyle, N as TreeDocOpKind, P as TreeOpEffect, Q as allocateContentControlId, U as contentControlContentChildren, W as contentControlContentNodeOf, X as contentControlEndPropertiesNodeOf, Y as contentControlLevelOf, Z as contentControlPropertiesNodeOf, _ as contentControlPropertiesOf, $ as contentControlTextOf, a0 as contentControlsIn, a1 as findContentControl, a2 as flattenContentControls, a3 as hyperlinkAnchorOf, a4 as hyperlinkRelationshipIdOf, a5 as hyperlinkTargetOf, a6 as isContentControlContentNode, a7 as isContentControlNode, a8 as isContentControlWrapper, a9 as isHyperlinkNode, aa as lockForbidsEdit, ab as lockForbidsRemoval, ac as orderedContentControlProperties, ad as parseContentControlId, ae as projectDrawing, af as resolveContentControlLock } from './tree-op-types-D0fTNBVW.js';
12
+ export { A as AtomicNoteSpan, M as MAX_NOTES_PER_PART, a as NOTE_ATOM_CHAR, b as NOTE_CONTINUATION_SEPARATOR_ID, c as NOTE_ID_MAX, d as NOTE_ID_MIN, e as NOTE_SEPARATOR_ID, N as NoteKind, f as NoteType, g as allocateNoteId, h as atomicNoteSpansOf, i as customMarkFollows, j as findNoteById, k as formatNoteScopeId, l as isContinuationSeparatorNode, m as isEndnotesNode, o as isFootnotesNode, p as isNormalNote, q as isNoteAtomNode, r as isNoteNode, s as isNoteRefNode, t as isNoteReferenceNode, u as isSeparatorNode, v as noteAtomText, w as noteIdOf, x as noteKindOf, y as noteRefKindOf, z as noteReferenceKindOf, n as noteTypeOf, B as notesOf, C as parseNoteId, D as parseNoteScopeId } from './note-nodes-BPSTVDMr.js';
13
+ export { A as AuthoredNoteProperties, C as CommentAnchor, b as CommentPosition, c as CommentRecord, d as CommentThreadState, D as DEFAULT_ENDNOTE_PROPERTIES, e as DEFAULT_FOOTNOTE_PROPERTIES, E as EndnotePosition, F as FootnotePosition, L as LinkableReviewItem, N as NoteNumRestart, a as ResolvedEndnoteProperties, R as ResolvedFootnoteProperties, f as ReviewCommentItem, g as ReviewItem, h as ReviewModelInput, i as ReviewPosition, j as ReviewRange, k as ReviewRevisionItem, l as ReviewRevisionKind, W as W15_NAMESPACE_URI, m as authoredDocumentEndnoteProperties, n as authoredDocumentFootnoteProperties, o as authoredEndnotePropertiesFromSectPr, q as authoredFootnotePropertiesFromSectPr, r as collectReviewItems, s as commentAnchorsOfStory, t as commentBodyText, u as commentInitials, v as commentItemsOf, w as commentsOfPart, x as deepParagraphOrderOfPart, y as firstReviewRange, z as hasAnyComment, B as isLegalEndnotePosition, G as isLegalFootnotePosition, H as isLegalNumRestart, I as linkRevisionReplies, p as paragraphOrderOfPart, J as parseAuthoredNoteProperties, K as resolveEndnoteProperties, M as resolveFootnoteProperties, O as reviewItemKey, P as reviewItemRanges, Q as revisionItemsOf, S as settingsPartOf, T as threadStateOfPart } from './review-reads-HDvoQXK2.js';
14
+ import { T as TreeModelChange, b as TreeDocumentStore } from './tree-store-CIKASRHk.js';
15
+ export { D as DocumentProperties, S as SelectionMark, f as TreeDocumentStoreOptions, a as TreeStoryRef, d as TreeTransactOptions, g as TreeTransactResult, c as TreeTransactionContext } from './tree-store-CIKASRHk.js';
239
16
 
240
17
  /**
241
18
  * Every kind of thing the registry gives a stable identity to.
@@ -1002,6 +779,29 @@ declare function nullRecord<T = unknown>(): Record<string, T>;
1002
779
  */
1003
780
  declare function toSafeRecord(value: unknown, path?: string): unknown;
1004
781
 
782
+ /**
783
+ * Serialize normalized XML from a canonical part using repository-controlled
784
+ * prefixes and validated, escaped names and values. This does not yet replace
785
+ * writeDocx; package integration belongs to the subsequent migration pass.
786
+ */
787
+ declare function serializeOoxmlPart(part: OoxmlPart): string;
788
+ /** Repository-owned namespace-aware semantic XML oracle. */
789
+ declare function canonicalOoxmlFingerprint(value: OoxmlPart | OoxmlNode): string;
790
+ /**
791
+ * Structural equality of two canonical trees, ignoring node ids.
792
+ *
793
+ * Ids differ between two parses of the same bytes, so comparing them would report every reopen as
794
+ * a change. This compares what the document SAYS.
795
+ */
796
+ declare function ooxmlTreesEqual(left: OoxmlPart | OoxmlNode, right: OoxmlPart | OoxmlNode): boolean;
797
+
798
+ /**
799
+ * Validate a parser-created or copy-modified immutable part before publication.
800
+ * Future tree-edit primitives can retain shared nodes and their IDs, while any
801
+ * replacement chooses explicitly whether to retain or allocate identity.
802
+ */
803
+ declare function validateOoxmlPart(part: OoxmlPart): OoxmlInvariantResult;
804
+
1005
805
  /** Locate `[Content_Types].xml` bytes regardless of zip key spelling. */
1006
806
  declare function contentTypesPartBytes(pkg: OoxmlPackage): {
1007
807
  readonly storageKey: string;
@@ -1178,6 +978,65 @@ interface ScrubResult {
1178
978
  /** Explicit scrub export: remove inert executable classes, report removals. */
1179
979
  declare function scrubExport(items: readonly ContentItem[]): ScrubResult;
1180
980
 
981
+ /** An edited part, or the invariant violations that rejected the edit. */
982
+ type OoxmlEditResult = {
983
+ readonly ok: true;
984
+ readonly part: OoxmlPart;
985
+ } | {
986
+ readonly ok: false;
987
+ readonly issues: readonly OoxmlInvariantIssue[];
988
+ };
989
+ /**
990
+ * How an edit primitive validates its result.
991
+ *
992
+ * By default every primitive runs the full-part invariant validation before handing its
993
+ * result back — the safe reading for an isolated call. A TRANSACTION applying many ops pays
994
+ * that full-tree walk once per primitive, which is what made a hundred-paragraph paste
995
+ * quadratic; it defers instead, and runs the same validation ONCE on the final tree before
996
+ * anything is published. Deferring is only sound for a caller that owns a commit boundary:
997
+ * nothing may escape between the unvalidated intermediate and the validated result.
998
+ */
999
+ interface EditOptions {
1000
+ readonly deferValidation?: boolean;
1001
+ }
1002
+ /** Every node id currently present in the part. */
1003
+ declare function collectNodeIds(part: OoxmlPart): Set<string>;
1004
+ /**
1005
+ * Mint ids for nodes an edit introduces.
1006
+ *
1007
+ * Deterministic and collision-checked against the whole part: a structural-path id from the
1008
+ * original parse (`/word/document.xml#0.1.2`) and a minted one (`/word/document.xml#new:3`)
1009
+ * can never coincide, and the counter skips anything already taken so repeated edits in one
1010
+ * session stay unique.
1011
+ *
1012
+ * Checks the part's node index directly rather than copying every id into a fresh set: the
1013
+ * copy was O(document) per op, and an allocator is created for every op.
1014
+ */
1015
+ declare function createNodeIdAllocator(part: OoxmlPart): () => string;
1016
+ /** Whether a node id exists in the part. */
1017
+ declare function hasNode(part: OoxmlPart, nodeId: string): boolean;
1018
+ /** Read a node back out of a part by id. */
1019
+ declare function findNode(part: OoxmlPart, nodeId: string): OoxmlNode | null;
1020
+ /** The element that holds a node, or null for the root and for unknown ids. */
1021
+ declare function parentNodeOf(part: OoxmlPart, nodeId: string): OoxmlElement | null;
1022
+ /** Replace one node's children wholesale. */
1023
+ declare function replaceChildren(part: OoxmlPart, nodeId: string, children: readonly OoxmlNode[], options?: EditOptions): OoxmlEditResult;
1024
+ /** Insert children into a node at `index` (clamped to the child list). */
1025
+ declare function insertChildren(part: OoxmlPart, nodeId: string, index: number, children: readonly OoxmlNode[], options?: EditOptions): OoxmlEditResult;
1026
+ /** Replace one node with another, keeping its position among its siblings. */
1027
+ declare function replaceNode(part: OoxmlPart, nodeId: string, replacement: OoxmlNode, options?: EditOptions): OoxmlEditResult;
1028
+ /** Remove a node and its subtree. */
1029
+ declare function removeNode(part: OoxmlPart, nodeId: string, options?: EditOptions): OoxmlEditResult;
1030
+ /**
1031
+ * Apply several primitives as ONE atomic step.
1032
+ *
1033
+ * Each edit runs against the result of the previous one, and the whole sequence is
1034
+ * validated once at the end. If any step fails, the ORIGINAL part is what the caller keeps
1035
+ * — there is no partially-edited intermediate to publish. This is the shape a multi-`DocOp`
1036
+ * store transaction needs.
1037
+ */
1038
+ declare function applyEdits(part: OoxmlPart, edits: readonly ((current: OoxmlPart) => OoxmlEditResult)[], options?: EditOptions): OoxmlEditResult;
1039
+
1181
1040
  /** UTF-16 placeholder for a page break in paragraph text projections. */
1182
1041
  declare const PAGE_BREAK_CHAR = "\f";
1183
1042
  /** What a `w:br` breaks. `other` covers values this engine does not model, kept losslessly. */
@@ -1920,6 +1779,128 @@ type CustomNodeExportResult = {
1920
1779
  */
1921
1780
  declare function withExportedCustomNodes(pkg: OoxmlPackage, request: CustomNodeExportRequest): CustomNodeExportResult;
1922
1781
 
1782
+ /** One addressable unit of paragraph text: text, tab, hard break, or atomic field. */
1783
+ interface Segment {
1784
+ readonly runId: string;
1785
+ readonly node: OoxmlNode;
1786
+ readonly start: number;
1787
+ readonly end: number;
1788
+ /**
1789
+ * When set, deleting this segment removes every listed node id in one step (atomic
1790
+ * field begin→end or `fldSimple`). Absent for ordinary text/tab/break segments.
1791
+ */
1792
+ readonly removeNodeIds?: readonly string[];
1793
+ /**
1794
+ * When set, run formatting for this atom targets these runs (field result ownership),
1795
+ * not necessarily `runId`. Absent for ordinary text/tab/break segments.
1796
+ */
1797
+ readonly formatRunIds?: readonly string[];
1798
+ }
1799
+ /**
1800
+ * Flatten a paragraph into UTF-16 addressable segments, in document order.
1801
+ *
1802
+ * A HYPERLINK's runs are addressed too. `w:hyperlink` is a run container, not a leaf, and
1803
+ * the characters inside a link are ordinary paragraph text: the user selects them, types
1804
+ * over them and deletes them like any other. Skipping the container — which is what
1805
+ * iterating only direct `w:r` children did — left every link's text with no offsets at all,
1806
+ * so `paragraphTextOf` read "Visit or ." for a sentence that says "Visit Example.com or
1807
+ * Anthropic's website." and layout, selection and the ops all agreed on the wrong string.
1808
+ *
1809
+ * Inline CONTENT CONTROLS are the same class of wrapper: their `w:sdtContent` runs join the
1810
+ * paragraph's offset stream with no break opportunity at the boundary. Nesting is bounded
1811
+ * (`MAX_CONTENT_CONTROL_NESTING`); beyond the bound the wrapper is opaque so recursion
1812
+ * cannot exhaust the stack.
1813
+ *
1814
+ * `runId` stays the id of the run the content actually lives in, at whatever depth: the
1815
+ * appliers resolve it with `findNode` and rebuild that run's children, so nesting costs them
1816
+ * nothing.
1817
+ */
1818
+ declare function segmentsOf(paragraph: OoxmlParagraphNode): Segment[];
1819
+ /** Half-open `[start, end)` of one node in its paragraph's model offset space. */
1820
+ interface OffsetSpan {
1821
+ readonly start: number;
1822
+ readonly end: number;
1823
+ }
1824
+ /**
1825
+ * Every node's place in the paragraph's model offset space, from the SAME walk `segmentsOf`
1826
+ * uses.
1827
+ *
1828
+ * The offset model has exactly one authority, and this is how a caller borrows it. Three
1829
+ * private walkers used to re-derive it — one in the tracked-change writer, one in the comment
1830
+ * anchor reader, one in the review queue — and all three disagreed with `segmentsOf` and with
1831
+ * each other: none gave a note reference or an atomic field its length of one, one counted a
1832
+ * field's instruction text as visible characters, and one never descended into `w:hyperlink`
1833
+ * at all. The consequences were an anchor short by a link's length, two unrelated comments
1834
+ * threaded onto one zero-width offset, and a tracked insert landing a character out in any
1835
+ * paragraph carrying a footnote. Patching each walker only resets the clock on the next drift.
1836
+ *
1837
+ * A node the walk never reaches — content under a `generic` container, or past the nesting cap
1838
+ * — has NO span, and {@link ParagraphOffsetIndex.lengthOf} reports zero for it. That is the
1839
+ * same answer `segmentsOf` gives: it contributes no addressable characters.
1840
+ */
1841
+ interface ParagraphOffsetIndex {
1842
+ /** The paragraph's own length, identical to {@link paragraphLength}. */
1843
+ readonly length: number;
1844
+ readonly segments: readonly Segment[];
1845
+ /** Where a node sits, or null when the offset walk never reached it. */
1846
+ spanOf(node: OoxmlNode | string): OffsetSpan | null;
1847
+ /** A node's model length: `end - start` of its span, and 0 when it has none. */
1848
+ lengthOf(node: OoxmlNode | string): number;
1849
+ }
1850
+ /**
1851
+ * THE paragraph offset authority: maps a paragraph's UTF-16 offsets to the nodes holding them.
1852
+ *
1853
+ * One authority on purpose. An atomic field spans many nodes but is ONE unit to an offset, and a
1854
+ * second implementation that disagreed would place edits inside content that cannot be split.
1855
+ */
1856
+ declare function paragraphOffsetIndex(paragraph: OoxmlParagraphNode): ParagraphOffsetIndex;
1857
+ /** One inline content control's identity and the UTF-16 span its content covers. */
1858
+ interface InlineControlSpan {
1859
+ readonly controlId: string;
1860
+ readonly start: number;
1861
+ readonly end: number;
1862
+ }
1863
+ /**
1864
+ * The innermost inline content control whose content ends exactly at `offset` — the caret
1865
+ * at its right outer edge. What Backspace consults to delete the node as ONE unit
1866
+ * (pro-review-and-custom-nodes 4.6): deleting its last character from outside would either
1867
+ * strip one letter from a content-locked label (refused, so the key looks dead) or leave a
1868
+ * half-deleted chip whose tag still claims the full payload.
1869
+ */
1870
+ declare function inlineControlEndingAt(paragraph: OoxmlParagraphNode, offset: number): InlineControlSpan | null;
1871
+ /** The forward-delete mirror: the control whose content STARTS exactly at `offset`. */
1872
+ declare function inlineControlStartingAt(paragraph: OoxmlParagraphNode, offset: number): InlineControlSpan | null;
1873
+
1874
+ interface RevisionSite {
1875
+ readonly node: OoxmlElement;
1876
+ readonly parent: OoxmlElement | null;
1877
+ /** True when this site cannot be resolved and the whole op must refuse. */
1878
+ readonly refused: boolean;
1879
+ /** True for `w:pPr/w:rPr/w:ins|w:del` — the paragraph MARK, not content. */
1880
+ readonly paragraphMark: boolean;
1881
+ /** True for `w:rPrChange` / `w:pPrChange`. */
1882
+ readonly propertyChange: boolean;
1883
+ /**
1884
+ * How many content-revision wrappers ENCLOSE this one, counted within its own paragraph.
1885
+ *
1886
+ * Revisions nest for real: `w:ins` wrapping `w:del` is content one reviewer added and another
1887
+ * struck, and both stay pending because each author has to be answered separately. The two
1888
+ * wrappers then cover exactly the same characters, so a range cannot tell them apart and
1889
+ * "which change is this text under" has only one honest answer — the innermost one, which is
1890
+ * the change that decides what the reader is looking at.
1891
+ *
1892
+ * Relative to the paragraph or table subtree, which is the unit the site walk memoizes. That
1893
+ * is enough and it is what keeps the memo valid: a content revision cannot enclose a
1894
+ * paragraph, and two sites can only cover one position if they are in the same paragraph.
1895
+ */
1896
+ readonly nesting: number;
1897
+ }
1898
+ /** Every revision-bearing element in the part. */
1899
+ declare function collectRevisionSites(part: OoxmlPart): RevisionSite[];
1900
+
1901
+ /** Structural validation, run before any tree work so a rejection changes nothing. */
1902
+ declare function validateTreeOp(part: OoxmlPart, op: TreeDocOp): TreeOpRejection | null;
1903
+
1923
1904
  /**
1924
1905
  * Apply one validated op to a part.
1925
1906
  *
@@ -2126,6 +2107,25 @@ declare function runPropertyEdits(part: OoxmlPart, paragraphId: string, start: n
2126
2107
  */
2127
2108
  declare function runsCovering(part: OoxmlPart, paragraphId: string, start: number, end: number): readonly OoxmlNode[];
2128
2109
 
2110
+ /** The `w:p` a node sits inside, and the model offset it starts at within that paragraph. */
2111
+ interface SiteLocation {
2112
+ readonly paragraphId: string;
2113
+ readonly start: number;
2114
+ readonly end: number;
2115
+ }
2116
+ /**
2117
+ * Locate every revision site in one walk.
2118
+ *
2119
+ * One walk rather than a lookup per site: `resolveRevisions` learned the same lesson the hard
2120
+ * way, where a per-site tree walk inside a per-site loop made accept-all quadratic.
2121
+ *
2122
+ * Offsets come from `paragraphOffsetIndex`, which is `segmentsOf`'s walk. A private one here
2123
+ * measured a run by summing its text and gave a note reference, an atomic field and a field's
2124
+ * instruction text the wrong lengths, so every card in a paragraph holding one reported a
2125
+ * range the caret and the ops disagreed with.
2126
+ */
2127
+ declare function locateSites(part: OoxmlPart): ReadonlyMap<string, SiteLocation>;
2128
+
2129
2129
  /**
2130
2130
  * Longest accepted query. A query is host input rather than file content, but the scan is
2131
2131
  * proportional to it and there is no legitimate find phrase this long.
package/dist/store.js CHANGED
@@ -1 +1 @@
1
- export{j as Budget,i as BudgetError,z as COMPARATORS,l as CancellationController,k as CancellationError,P as DEFAULT_VIEW_SETTINGS,o as DeterministicClock,v as DeterministicMemoryMeter,a as ID_KINDS,t as LIMIT_KEYS,s as LIMIT_SPECS,N as NO_TRACKING_SETTINGS,n as PortRegistry,m as PortResolutionError,g as RegistryError,p as SequentialIdentity,w as assertLimitInvariants,c as assertValidId,q as beginOperation,x as canonicalize,A as compareArtifacts,e as compareSemVer,F as deobfuscateFont,K as diffSemanticDigests,I as digestPart,r as endOperation,L as ensureListDefinition,M as ensureNumberingLevel,B as fingerprint,E as hashAuthored,b as isValidId,u as makeLimitCounter,d as parseSemVer,G as readEmbeddedFonts,O as readTrackingSettings,Q as readViewSettings,D as replayFixture,h as resolve,H as resolveTocRowHeadings,f as satisfies,J as semanticDigest,y as stableHash,C as validateFixture,T as withExportedCustomNodes}from'./chunk-YTZIGUXT.js';export{mf as ACCEPTED_PARAGRAPH_PROPERTIES,lf as ACCEPTED_RUN_PROPERTIES,z as ALL_FROZEN_IDS,$f as AUTHORABLE_PARAGRAPH_PROPERTIES,ag as AUTHORABLE_RUN_PROPERTIES,H as BoundedCounter,u as CANONICAL_MUTATION_ORIGINS,he as CONTENT_CONTROL_ID_MAX,ze as CONTENT_CONTROL_PROPERTY_ORDER,ff as CUSTOM_NODE_XPATH_PREFIX,Se as CUSTOM_XML_PROPS_REL,Te as CUSTOM_XML_PROPS_TYPE,Re as CUSTOM_XML_REL,Q as DANGEROUS_KEYS,Ue as DATASTORE_NAMESPACE_URI,Cd as DEFAULT_ENDNOTE_PROPERTIES,Bd as DEFAULT_FOOTNOTE_PROPERTIES,E as DEFAULT_IMAGE_RESOURCE_LIMITS,B as DEFAULT_LIMITS,Jf as DEFAULT_MAX_EDITABLE_STORY_PARTS,xb as DEFAULT_OOXML_PACKAGE_LIMITS,Ma as DEFAULT_ZIP_LIMITS,y as DEPENDENCY_KEY_IDS,R as DangerousKeyError,ac as FIELD_ATOM_CHAR,A as HARD_CEILINGS,Qa as HYPERLINK_RELATIONSHIP_TYPE,M as IMAGE_RELATIONSHIP_TYPE,D as IMAGE_RESOURCE_HARD_CEILINGS,Xa as IMAGE_WRAP_TARGETS,_ as INERT_EXECUTABLE_KINDS,G as LimitExceededError,ge as MAX_CONTENT_CONTROLS_PER_PART,fe as MAX_CONTENT_CONTROL_NESTING,Vf as MAX_CUSTOM_NODE_LABEL_LENGTH,Uf as MAX_CUSTOM_NODE_PAYLOAD_LENGTH,xd as MAX_NOTES_PER_PART,Wd as MAX_NOTE_REFERENCE_PARTS,Vd as MAX_NOTE_REFERENCE_SCAN,Ce as MAX_STORY_SDT_NESTING,ib as MAX_SVG_SNIFF_BYTES,v as NON_CANONICAL_ORIGINS,_c as NOTE_ATOM_CHAR,cd as NOTE_CONTINUATION_SEPARATOR_ID,ad as NOTE_ID_MAX,$c as NOTE_ID_MIN,bd as NOTE_SEPARATOR_ID,Pa as OFFICE_RELATIONSHIP_NAMESPACE_URI,Aa as OOXML_NODE_IDENTITY_RULES,t as ORIGIN_IDS,Xb as PAGE_BREAK_CHAR,ka as PrefixAllocator,w as RESULT_IDS,x as RUNTIME_PORT_IDS,yg as SEARCH_MATCH_LIMIT,xg as SEARCH_QUERY_MAX,tf as TABLE_BORDER_STYLES,Dc as TOC_LEVEL_INDENT_TWIPS,wc as TOC_MAX_BOOKMARKS_PER_REFRESH,vc as TOC_MAX_ENTRIES,xc as TOC_MAX_FIELD_NESTING,uc as TOC_MAX_INSTRUCTION_CHARS,yc as TOC_MAX_PAGE_PASSES,nf as TREE_DOC_OP_KINDS,If as TreeDocumentStore,Kf as TreePackageStore,Ie as W15_NAMESPACE_URI,ma as WML_NAMESPACE_URI,oa as XMLNS_NAMESPACE_URI,na as XML_NAMESPACE_URI,Pf as addComment,Be as allocateContentControlId,tb as allocateDrawingPropertyId,yd as allocateNoteId,La as applyEdits,Zc as applyHeaderFooterLifecycleOp,de as applyNoteLifecycleOp,Ef as applyTreeOp,o as asciiFold,ja as assertValidQName,sc as atomicFieldSpansOf,wd as atomicNoteSpansOf,Vc as authorableHyperlinkTarget,Id as authoredDocumentEndnoteProperties,Hd as authoredDocumentFootnoteProperties,Fd as authoredEndnotePropertiesFromSectPr,Ed as authoredFootnotePropertiesFromSectPr,dg as authoredProperties,Ee as bodyStoryRoot,Jc as bookmarkPairNodes,jf as boundCustomXmlNodeIdOf,hf as boundCustomXmlNodeIds,if as boundCustomXmlNodeIdsInPackage,Cc as buildBookmarkIndex,K as buildContentTypeIndex,N as buildRelationshipSet,Gc as buildTocContentControl,Fc as buildTocEntryParagraph,xa as canonicalOoxmlFingerprint,ee as cascadeDeletedNoteReferences,Qe as cascadeEmptiedComments,fa as childElements,Pb as collectFlowBlocks,Ca as collectNodeIds,Zd as collectNoteReferences,_d as collectPackageNoteReferences,rg as collectReviewItems,kf as collectRevisionSites,Tb as collectSectionPropertyNodes,Ge as collectStoryParagraphs,Je as commentAnchorsOfStory,ng as commentBodyText,og as commentInitials,qg as commentItemsOf,Sf as commentPartNameOf,Tf as commentsExtendedPartNameOf,Ke as commentsOfPart,Z as containsCssFetch,le as contentControlContentChildren,pe as contentControlContentNodeOf,Nb as contentControlContentOf,oe as contentControlEndPropertiesNodeOf,se as contentControlLevelOf,ne as contentControlPropertiesNodeOf,re as contentControlPropertiesOf,ve as contentControlTextOf,te as contentControlsIn,Bb as contentTypesPartBytes,sb as createImageResourceCache,Da as createNodeIdAllocator,Xd as createNoteReferenceScanBudget,td as customMarkFollows,gf as customNodeBinding,Zf as customNodePayloadsByControl,_f as customNodePayloadsOf,We as customXmlDataParts,df as customXmlLabelXPath,_e as customXmlNodes,ef as customXmlPrefixMappings,Ve as datastoreItemIdFor,ug as deepParagraphOrderOfPart,Ne as deleteCommentThread,Mc as deriveOoxmlIndexes,Ac as detectBodyTocs,q as detectDuplicateNames,$d as diagnoseNoteReferences,fg as directParagraphMarkProperties,eg as directParagraphProperties,Af as drawingOpImpact,Wc as ensureHyperlinkRelationship,Y as escapeCssString,W as escapeXml,J as extensionKey,mc as fieldAtomText,lc as fieldOnOffAttribute,ue as findContentControl,Xe as findCustomXmlDataPart,Bc as findDetectedToc,ea as findElement,Fa as findNode,Ad as findNoteById,Cg as findOccurrences,wg as firstReviewRange,me as flattenContentControls,bc as fldCharType,kc as fldSimpleInstr,Pc as fnv1a32,zg as foldCase,ed as formatNoteScopeId,ig as formatOwnedRunIds,$b as hardBreakAttributes,Yb as hardBreakKind,_b as hardBreakText,Me as hasAnyComment,jb as hasBoundedSvgRoot,Rf as hasCommentPart,oc as hasLegacyFormFieldData,Ea as hasNode,Sa as hyperlinkAnchorOf,Ta as hyperlinkRelationshipIdOf,Ua as hyperlinkTargetOf,rb as imageResourceLookupFor,Kc as indexStyles,Td as inlineControlEndingAt,Ud as inlineControlStartingAt,Ia as insertChildren,Wf as insertCustomNodeWrite,jc as instrTextValue,bg as isAuthorableRunProperty,Lb as isContentControl,Mb as isContentControlContent,je as isContentControlContentNode,ie as isContentControlNode,ke as isContentControlWrapper,ra as isContentRevisionKind,md as isContinuationSeparatorNode,S as isDangerousKey,Df as isDrawingTreeDocOp,hd as isEndnotesNode,aa as isEvaluableField,nc as isFieldChrome,fc as isFldChar,cc as isFldCharNode,ic as isFldSimple,ec as isFldSimpleNode,gd as isFootnotesNode,Yc as isHeaderFooterLifecycleOp,Ra as isHyperlinkNode,$ as isInertExecutable,gc as isInstrText,dc as isInstrTextNode,Ld as isLegalEndnotePosition,tc as isLegalFldCharType,Md as isLegalFootnotePosition,Nd as isLegalNumRestart,qd as isNormalNote,vd as isNoteAtomNode,ce as isNoteLifecycleOp,id as isNoteNode,kd as isNoteRefNode,jd as isNoteReferenceNode,Zb as isPageBreakNode,sa as isRangeMarkerKind,Bg as isSearchableQuery,ld as isSeparatorNode,I as isValidMime,ha as isValidNCName,Nc as isValidParaId,ia as isValidQName,Ag as isWholeWord,sg as linkRevisionReplies,qb as liveDrawingReferenceCount,lg as locateSites,xe as lockForbidsEdit,ye as lockForbidsRemoval,gg as mergedProperties,Qc as mintParaId,Tc as mintedParagraphIdentityAttributes,be as normalNoteIds,Uc as normalizeParagraphIdentity,m as normalizePartName,ud as noteAtomText,od as noteIdOf,nd as noteKindOf,sd as noteRefKindOf,rd as noteReferenceKindOf,pd as noteTypeOf,zd as notesOf,ae as notesPartHasId,T as nullRecord,ya as ooxmlTreesEqual,Ae as orderedContentControlProperties,Oc as paraIdOf,Sd as paragraphOffsetIndex,tg as paragraphOrderOfPart,Ff as paragraphTextOf,Ga as parentNodeOf,Dd as parseAuthoredNoteProperties,qe as parseContentControlId,dd as parseNoteId,fd as parseNoteScopeId,zc as parseTocInstruction,p as partNameKey,Ic as planTocEntries,cb as projectDrawing,cg as propertyContainer,$e as readCustomXmlNode,ta as readOnOffChild,yb as readOoxmlPackage,Ba as readOoxmlPart,da as readXml,Na as readZip,Xc as relationshipTargetIn,Cb as relationshipsOf,Eb as relsPartNameFor,Xf as removeCustomNodeWrite,Ka as removeNode,Ha as replaceChildren,Ja as replaceNode,we as resolveContentControlLock,L as resolveContentType,Db as resolveContentTypeOf,Kd as resolveEndnoteProperties,Jd as resolveFootnoteProperties,Wb as resolveHeaderFooterParts,Vb as resolveHeaderFooterPartsBySection,Ub as resolveHeaderFooterResolutionBySection,P as resolveImageRelationship,F as resolveImageResourceLimits,r as resolveInternalTarget,C as resolveLimits,Yd as resolveNotesPart,O as resolveRelationship,mg as reviewItemKey,vg as reviewItemRanges,pg as revisionItemsOf,hg as runAddressRanges,jg as runPropertyEdits,kg as runsCovering,V as sanitizeHref,ba as scrubExport,Rd as segmentsOf,ua as serializeOoxmlPart,Qf as setCommentResolved,Gd as settingsPartOf,kb as sniffImageMime,Fe as storyParagraphs,De as storyRootsOf,Lc as stylesPartOf,Yf as sweepCustomNodePayloads,ga as textContent,Le as threadStateOfPart,U as toSafeRecord,Hc as tocEntryText,Ec as tocLeftIndentTwips,Rc as usedParaIds,Bf as validateDrawingOp,s as validateExternalTarget,mb as validateGifHeader,nb as validateJpegHeader,za as validateOoxmlPart,Jb as validatePackageInvariants,lb as validatePngHeader,pb as validateRasterHeader,Hf as validateTreeOp,Sc as w14RootPrefix,Rb as walkAllStoryParagraphs,Sb as walkParagraphInline,Qb as walkStoryBlocks,ub as withBinaryPart,Fb as withContentTypeOverride,Ye as withCustomXmlDataPart,af as withCustomXmlNode,vb as withEmbeddedImage,Ib as withNewPart,Ab as withPart,Hb as withRelationship,Ze as withoutCustomXmlDataPart,bf as withoutCustomXmlNode,cf as withoutOrphanCustomXmlNodes,wb as withoutUnreferencedImagePart,Cf as wrapTargetToAnchorSpec,zb as writeOoxmlPackage,Oa as writeZip}from'./chunk-LJIX4ZDF.js';
1
+ export{j as Budget,i as BudgetError,z as COMPARATORS,l as CancellationController,k as CancellationError,P as DEFAULT_VIEW_SETTINGS,o as DeterministicClock,v as DeterministicMemoryMeter,a as ID_KINDS,t as LIMIT_KEYS,s as LIMIT_SPECS,N as NO_TRACKING_SETTINGS,n as PortRegistry,m as PortResolutionError,g as RegistryError,p as SequentialIdentity,w as assertLimitInvariants,c as assertValidId,q as beginOperation,x as canonicalize,A as compareArtifacts,e as compareSemVer,F as deobfuscateFont,K as diffSemanticDigests,I as digestPart,r as endOperation,L as ensureListDefinition,M as ensureNumberingLevel,B as fingerprint,E as hashAuthored,b as isValidId,u as makeLimitCounter,d as parseSemVer,G as readEmbeddedFonts,O as readTrackingSettings,Q as readViewSettings,D as replayFixture,h as resolve,H as resolveTocRowHeadings,f as satisfies,J as semanticDigest,y as stableHash,C as validateFixture,T as withExportedCustomNodes}from'./chunk-SMRD66T5.js';export{mf as ACCEPTED_PARAGRAPH_PROPERTIES,lf as ACCEPTED_RUN_PROPERTIES,z as ALL_FROZEN_IDS,$f as AUTHORABLE_PARAGRAPH_PROPERTIES,ag as AUTHORABLE_RUN_PROPERTIES,H as BoundedCounter,u as CANONICAL_MUTATION_ORIGINS,he as CONTENT_CONTROL_ID_MAX,ze as CONTENT_CONTROL_PROPERTY_ORDER,ff as CUSTOM_NODE_XPATH_PREFIX,Se as CUSTOM_XML_PROPS_REL,Te as CUSTOM_XML_PROPS_TYPE,Re as CUSTOM_XML_REL,Q as DANGEROUS_KEYS,Ue as DATASTORE_NAMESPACE_URI,Cd as DEFAULT_ENDNOTE_PROPERTIES,Bd as DEFAULT_FOOTNOTE_PROPERTIES,E as DEFAULT_IMAGE_RESOURCE_LIMITS,B as DEFAULT_LIMITS,Jf as DEFAULT_MAX_EDITABLE_STORY_PARTS,xb as DEFAULT_OOXML_PACKAGE_LIMITS,Ma as DEFAULT_ZIP_LIMITS,y as DEPENDENCY_KEY_IDS,R as DangerousKeyError,ac as FIELD_ATOM_CHAR,A as HARD_CEILINGS,Qa as HYPERLINK_RELATIONSHIP_TYPE,M as IMAGE_RELATIONSHIP_TYPE,D as IMAGE_RESOURCE_HARD_CEILINGS,Xa as IMAGE_WRAP_TARGETS,_ as INERT_EXECUTABLE_KINDS,G as LimitExceededError,ge as MAX_CONTENT_CONTROLS_PER_PART,fe as MAX_CONTENT_CONTROL_NESTING,Vf as MAX_CUSTOM_NODE_LABEL_LENGTH,Uf as MAX_CUSTOM_NODE_PAYLOAD_LENGTH,xd as MAX_NOTES_PER_PART,Wd as MAX_NOTE_REFERENCE_PARTS,Vd as MAX_NOTE_REFERENCE_SCAN,Ce as MAX_STORY_SDT_NESTING,ib as MAX_SVG_SNIFF_BYTES,v as NON_CANONICAL_ORIGINS,_c as NOTE_ATOM_CHAR,cd as NOTE_CONTINUATION_SEPARATOR_ID,ad as NOTE_ID_MAX,$c as NOTE_ID_MIN,bd as NOTE_SEPARATOR_ID,Pa as OFFICE_RELATIONSHIP_NAMESPACE_URI,Aa as OOXML_NODE_IDENTITY_RULES,t as ORIGIN_IDS,Xb as PAGE_BREAK_CHAR,ka as PrefixAllocator,w as RESULT_IDS,x as RUNTIME_PORT_IDS,yg as SEARCH_MATCH_LIMIT,xg as SEARCH_QUERY_MAX,tf as TABLE_BORDER_STYLES,Dc as TOC_LEVEL_INDENT_TWIPS,wc as TOC_MAX_BOOKMARKS_PER_REFRESH,vc as TOC_MAX_ENTRIES,xc as TOC_MAX_FIELD_NESTING,uc as TOC_MAX_INSTRUCTION_CHARS,yc as TOC_MAX_PAGE_PASSES,nf as TREE_DOC_OP_KINDS,If as TreeDocumentStore,Kf as TreePackageStore,Ie as W15_NAMESPACE_URI,ma as WML_NAMESPACE_URI,oa as XMLNS_NAMESPACE_URI,na as XML_NAMESPACE_URI,Pf as addComment,Be as allocateContentControlId,tb as allocateDrawingPropertyId,yd as allocateNoteId,La as applyEdits,Zc as applyHeaderFooterLifecycleOp,de as applyNoteLifecycleOp,Ef as applyTreeOp,o as asciiFold,ja as assertValidQName,sc as atomicFieldSpansOf,wd as atomicNoteSpansOf,Vc as authorableHyperlinkTarget,Id as authoredDocumentEndnoteProperties,Hd as authoredDocumentFootnoteProperties,Fd as authoredEndnotePropertiesFromSectPr,Ed as authoredFootnotePropertiesFromSectPr,dg as authoredProperties,Ee as bodyStoryRoot,Jc as bookmarkPairNodes,jf as boundCustomXmlNodeIdOf,hf as boundCustomXmlNodeIds,if as boundCustomXmlNodeIdsInPackage,Cc as buildBookmarkIndex,K as buildContentTypeIndex,N as buildRelationshipSet,Gc as buildTocContentControl,Fc as buildTocEntryParagraph,xa as canonicalOoxmlFingerprint,ee as cascadeDeletedNoteReferences,Qe as cascadeEmptiedComments,fa as childElements,Pb as collectFlowBlocks,Ca as collectNodeIds,Zd as collectNoteReferences,_d as collectPackageNoteReferences,rg as collectReviewItems,kf as collectRevisionSites,Tb as collectSectionPropertyNodes,Ge as collectStoryParagraphs,Je as commentAnchorsOfStory,ng as commentBodyText,og as commentInitials,qg as commentItemsOf,Sf as commentPartNameOf,Tf as commentsExtendedPartNameOf,Ke as commentsOfPart,Z as containsCssFetch,le as contentControlContentChildren,pe as contentControlContentNodeOf,Nb as contentControlContentOf,oe as contentControlEndPropertiesNodeOf,se as contentControlLevelOf,ne as contentControlPropertiesNodeOf,re as contentControlPropertiesOf,ve as contentControlTextOf,te as contentControlsIn,Bb as contentTypesPartBytes,sb as createImageResourceCache,Da as createNodeIdAllocator,Xd as createNoteReferenceScanBudget,td as customMarkFollows,gf as customNodeBinding,Zf as customNodePayloadsByControl,_f as customNodePayloadsOf,We as customXmlDataParts,df as customXmlLabelXPath,_e as customXmlNodes,ef as customXmlPrefixMappings,Ve as datastoreItemIdFor,ug as deepParagraphOrderOfPart,Ne as deleteCommentThread,Mc as deriveOoxmlIndexes,Ac as detectBodyTocs,q as detectDuplicateNames,$d as diagnoseNoteReferences,fg as directParagraphMarkProperties,eg as directParagraphProperties,Af as drawingOpImpact,Wc as ensureHyperlinkRelationship,Y as escapeCssString,W as escapeXml,J as extensionKey,mc as fieldAtomText,lc as fieldOnOffAttribute,ue as findContentControl,Xe as findCustomXmlDataPart,Bc as findDetectedToc,ea as findElement,Fa as findNode,Ad as findNoteById,Cg as findOccurrences,wg as firstReviewRange,me as flattenContentControls,bc as fldCharType,kc as fldSimpleInstr,Pc as fnv1a32,zg as foldCase,ed as formatNoteScopeId,ig as formatOwnedRunIds,$b as hardBreakAttributes,Yb as hardBreakKind,_b as hardBreakText,Me as hasAnyComment,jb as hasBoundedSvgRoot,Rf as hasCommentPart,oc as hasLegacyFormFieldData,Ea as hasNode,Sa as hyperlinkAnchorOf,Ta as hyperlinkRelationshipIdOf,Ua as hyperlinkTargetOf,rb as imageResourceLookupFor,Kc as indexStyles,Td as inlineControlEndingAt,Ud as inlineControlStartingAt,Ia as insertChildren,Wf as insertCustomNodeWrite,jc as instrTextValue,bg as isAuthorableRunProperty,Lb as isContentControl,Mb as isContentControlContent,je as isContentControlContentNode,ie as isContentControlNode,ke as isContentControlWrapper,ra as isContentRevisionKind,md as isContinuationSeparatorNode,S as isDangerousKey,Df as isDrawingTreeDocOp,hd as isEndnotesNode,aa as isEvaluableField,nc as isFieldChrome,fc as isFldChar,cc as isFldCharNode,ic as isFldSimple,ec as isFldSimpleNode,gd as isFootnotesNode,Yc as isHeaderFooterLifecycleOp,Ra as isHyperlinkNode,$ as isInertExecutable,gc as isInstrText,dc as isInstrTextNode,Ld as isLegalEndnotePosition,tc as isLegalFldCharType,Md as isLegalFootnotePosition,Nd as isLegalNumRestart,qd as isNormalNote,vd as isNoteAtomNode,ce as isNoteLifecycleOp,id as isNoteNode,kd as isNoteRefNode,jd as isNoteReferenceNode,Zb as isPageBreakNode,sa as isRangeMarkerKind,Bg as isSearchableQuery,ld as isSeparatorNode,I as isValidMime,ha as isValidNCName,Nc as isValidParaId,ia as isValidQName,Ag as isWholeWord,sg as linkRevisionReplies,qb as liveDrawingReferenceCount,lg as locateSites,xe as lockForbidsEdit,ye as lockForbidsRemoval,gg as mergedProperties,Qc as mintParaId,Tc as mintedParagraphIdentityAttributes,be as normalNoteIds,Uc as normalizeParagraphIdentity,m as normalizePartName,ud as noteAtomText,od as noteIdOf,nd as noteKindOf,sd as noteRefKindOf,rd as noteReferenceKindOf,pd as noteTypeOf,zd as notesOf,ae as notesPartHasId,T as nullRecord,ya as ooxmlTreesEqual,Ae as orderedContentControlProperties,Oc as paraIdOf,Sd as paragraphOffsetIndex,tg as paragraphOrderOfPart,Ff as paragraphTextOf,Ga as parentNodeOf,Dd as parseAuthoredNoteProperties,qe as parseContentControlId,dd as parseNoteId,fd as parseNoteScopeId,zc as parseTocInstruction,p as partNameKey,Ic as planTocEntries,cb as projectDrawing,cg as propertyContainer,$e as readCustomXmlNode,ta as readOnOffChild,yb as readOoxmlPackage,Ba as readOoxmlPart,da as readXml,Na as readZip,Xc as relationshipTargetIn,Cb as relationshipsOf,Eb as relsPartNameFor,Xf as removeCustomNodeWrite,Ka as removeNode,Ha as replaceChildren,Ja as replaceNode,we as resolveContentControlLock,L as resolveContentType,Db as resolveContentTypeOf,Kd as resolveEndnoteProperties,Jd as resolveFootnoteProperties,Wb as resolveHeaderFooterParts,Vb as resolveHeaderFooterPartsBySection,Ub as resolveHeaderFooterResolutionBySection,P as resolveImageRelationship,F as resolveImageResourceLimits,r as resolveInternalTarget,C as resolveLimits,Yd as resolveNotesPart,O as resolveRelationship,mg as reviewItemKey,vg as reviewItemRanges,pg as revisionItemsOf,hg as runAddressRanges,jg as runPropertyEdits,kg as runsCovering,V as sanitizeHref,ba as scrubExport,Rd as segmentsOf,ua as serializeOoxmlPart,Qf as setCommentResolved,Gd as settingsPartOf,kb as sniffImageMime,Fe as storyParagraphs,De as storyRootsOf,Lc as stylesPartOf,Yf as sweepCustomNodePayloads,ga as textContent,Le as threadStateOfPart,U as toSafeRecord,Hc as tocEntryText,Ec as tocLeftIndentTwips,Rc as usedParaIds,Bf as validateDrawingOp,s as validateExternalTarget,mb as validateGifHeader,nb as validateJpegHeader,za as validateOoxmlPart,Jb as validatePackageInvariants,lb as validatePngHeader,pb as validateRasterHeader,Hf as validateTreeOp,Sc as w14RootPrefix,Rb as walkAllStoryParagraphs,Sb as walkParagraphInline,Qb as walkStoryBlocks,ub as withBinaryPart,Fb as withContentTypeOverride,Ye as withCustomXmlDataPart,af as withCustomXmlNode,vb as withEmbeddedImage,Ib as withNewPart,Ab as withPart,Hb as withRelationship,Ze as withoutCustomXmlDataPart,bf as withoutCustomXmlNode,cf as withoutOrphanCustomXmlNodes,wb as withoutUnreferencedImagePart,Cf as wrapTargetToAnchorSpec,zb as writeOoxmlPackage,Oa as writeZip}from'./chunk-R75OLPL6.js';