@stll/folio-core 0.15.0 → 0.15.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 (439) hide show
  1. package/dist/ai-edits/apply.d.ts +2 -2
  2. package/dist/ai-edits/blockRange.d.ts +3 -17
  3. package/dist/ai-edits/clean-text.d.ts +0 -1
  4. package/dist/ai-edits/headless.d.ts +23 -19
  5. package/dist/ai-edits/read.d.ts +8 -5
  6. package/dist/ai-edits/scoped-reading.d.ts +0 -1
  7. package/dist/ai-edits/snapshot.d.ts +1 -7
  8. package/dist/ai-edits/table-cell-mutations.d.ts +4 -31
  9. package/dist/ai-edits/table-row-column-mutations.d.ts +9 -39
  10. package/dist/ai-edits/table-targets.d.ts +0 -1
  11. package/dist/ai-edits/types.d.ts +32 -17
  12. package/dist/ai-suggestions/apply.d.ts +0 -1
  13. package/dist/ai-suggestions/conflict.d.ts +0 -1
  14. package/dist/ai-suggestions/text-positions.d.ts +2 -2
  15. package/dist/ai-suggestions/types.d.ts +27 -13
  16. package/dist/content-controls/errors.d.ts +0 -1
  17. package/dist/content-controls/findContentControls.d.ts +6 -4
  18. package/dist/content-controls/mutateContentControls.d.ts +0 -1
  19. package/dist/controller/activeEditorStory.d.ts +1 -6
  20. package/dist/controller/collaborationModules.d.ts +0 -1
  21. package/dist/controller/contentControlWidgetController.d.ts +0 -1
  22. package/dist/controller/folioEditor.d.ts +2 -2
  23. package/dist/controller/folioEditorEvents.d.ts +5 -3
  24. package/dist/controller/fontReadiness.d.ts +0 -1
  25. package/dist/controller/headerFooterEditorManager.d.ts +1 -5
  26. package/dist/controller/hiddenEditorApi.d.ts +35 -18
  27. package/dist/controller/hiddenEditorManager.d.ts +5 -3
  28. package/dist/controller/latestRequestGate.d.ts +3 -1
  29. package/dist/controller/layoutPipeline.d.ts +1 -1
  30. package/dist/controller/layoutScheduler.d.ts +8 -5
  31. package/dist/controller/layoutSession.d.ts +0 -1
  32. package/dist/controller/noteEditorManager.d.ts +0 -1
  33. package/dist/document-operations.d.ts +5 -12
  34. package/dist/document-stories.d.ts +0 -1
  35. package/dist/docx/blockContentParser.d.ts +0 -1
  36. package/dist/docx/blockContentParser.js +1 -0
  37. package/dist/docx/bookmarkParser.d.ts +5 -3
  38. package/dist/docx/bookmarkPlacement.d.ts +0 -1
  39. package/dist/docx/commentParser.d.ts +0 -1
  40. package/dist/docx/commentRangeIntegrity.d.ts +0 -1
  41. package/dist/docx/commentReferenceNormalization.d.ts +1 -9
  42. package/dist/docx/commentReplyMarkers.d.ts +0 -1
  43. package/dist/docx/compatibility.d.ts +0 -1
  44. package/dist/docx/conformance.d.ts +0 -1
  45. package/dist/docx/corePropertiesParser.d.ts +0 -1
  46. package/dist/docx/documentParser.d.ts +0 -1
  47. package/dist/docx/documentParser.js +3 -1
  48. package/dist/docx/drawingUtils.d.ts +23 -2
  49. package/dist/docx/drawingUtils.js +23 -1
  50. package/dist/docx/encryption/agileDecryption.d.ts +0 -1
  51. package/dist/docx/encryption/cryptoBytes.js +4 -1
  52. package/dist/docx/encryption/openEncryptedDocx.d.ts +5 -2
  53. package/dist/docx/ensureParaIds.d.ts +7 -3
  54. package/dist/docx/fieldParser.d.ts +23 -11
  55. package/dist/docx/fontTableParser.d.ts +0 -1
  56. package/dist/docx/footnoteParser.d.ts +26 -13
  57. package/dist/docx/footnoteParser.js +4 -2
  58. package/dist/docx/groupDrawingParser.d.ts +0 -1
  59. package/dist/docx/headerFooterParser.d.ts +9 -5
  60. package/dist/docx/headerFooterRefParser.d.ts +0 -1
  61. package/dist/docx/headerFooterReferenceNormalization.d.ts +1 -6
  62. package/dist/docx/headerFooterVerbatim.d.ts +2 -2
  63. package/dist/docx/hyperlinkParser.d.ts +0 -1
  64. package/dist/docx/hyperlinkParser.js +1 -9
  65. package/dist/docx/imageParser.d.ts +0 -1
  66. package/dist/docx/imageParser.js +15 -7
  67. package/dist/docx/mathToMathml.d.ts +0 -1
  68. package/dist/docx/metadataPrivacy.d.ts +1 -3
  69. package/dist/docx/modelValidation.d.ts +0 -1
  70. package/dist/docx/newImage.d.ts +11 -0
  71. package/dist/docx/newImage.js +11 -0
  72. package/dist/docx/normalizeBaseDirection.d.ts +0 -1
  73. package/dist/docx/notePropertiesParser.d.ts +0 -1
  74. package/dist/docx/numberingParser.d.ts +10 -6
  75. package/dist/docx/numberingParser.js +4 -2
  76. package/dist/docx/numberingReferenceNormalization.d.ts +1 -9
  77. package/dist/docx/paragraphParser.d.ts +0 -1
  78. package/dist/docx/paragraphParser.js +27 -14
  79. package/dist/docx/paragraphTextBoxEnrichment.d.ts +0 -1
  80. package/dist/docx/paragraphTextBoxEnrichment.js +2 -1
  81. package/dist/docx/paragraphTraversal.d.ts +1 -8
  82. package/dist/docx/parser.d.ts +15 -8
  83. package/dist/docx/parser.js +12 -1
  84. package/dist/docx/parserEnums.d.ts +2 -2
  85. package/dist/docx/parserEnums.js +3 -2
  86. package/dist/docx/relsParser.d.ts +1 -0
  87. package/dist/docx/renderedPageBreakNormalization.d.ts +12 -0
  88. package/dist/docx/renderedPageBreakNormalization.js +59 -0
  89. package/dist/docx/replyToComment.d.ts +2 -2
  90. package/dist/docx/rezip.d.ts +6 -7
  91. package/dist/docx/rezip.js +136 -102
  92. package/dist/docx/runConsolidator.d.ts +0 -1
  93. package/dist/docx/runParser.d.ts +0 -1
  94. package/dist/docx/runParser.js +9 -12
  95. package/dist/docx/sdtProperties.d.ts +0 -1
  96. package/dist/docx/sdtPropertiesPatch.d.ts +0 -1
  97. package/dist/docx/sectionParser.d.ts +0 -1
  98. package/dist/docx/selectiveSave.d.ts +5 -3
  99. package/dist/docx/selectiveSave.js +2 -2
  100. package/dist/docx/selectiveSaveFlags.d.ts +4 -2
  101. package/dist/docx/selectiveXmlPatch.js +20 -8
  102. package/dist/docx/serializer/blockSdtSerializer.d.ts +0 -1
  103. package/dist/docx/serializer/blockSdtSerializer.js +2 -1
  104. package/dist/docx/serializer/borderSerializer.d.ts +0 -1
  105. package/dist/docx/serializer/commentSerializer.d.ts +0 -1
  106. package/dist/docx/serializer/commentSerializer.js +11 -37
  107. package/dist/docx/serializer/documentSerializer.d.ts +0 -1
  108. package/dist/docx/serializer/documentSerializer.js +1 -1
  109. package/dist/docx/serializer/fontTableSerializer.d.ts +0 -1
  110. package/dist/docx/serializer/headerFooterSerializer.d.ts +0 -1
  111. package/dist/docx/serializer/headerFooterSerializer.js +1 -1
  112. package/dist/docx/serializer/noteSerializer.d.ts +0 -1
  113. package/dist/docx/serializer/noteSerializer.js +1 -1
  114. package/dist/docx/serializer/numberingSerializer.d.ts +0 -1
  115. package/dist/docx/serializer/paragraphSerializer.d.ts +0 -1
  116. package/dist/docx/serializer/paragraphSerializer.js +10 -23
  117. package/dist/docx/serializer/runSerializer.d.ts +0 -1
  118. package/dist/docx/serializer/runSerializer.js +37 -22
  119. package/dist/docx/serializer/sectionPropertiesSerializer.d.ts +0 -1
  120. package/dist/docx/serializer/sectionPropertiesSerializer.js +5 -4
  121. package/dist/docx/serializer/settingsSerializer.d.ts +0 -1
  122. package/dist/docx/serializer/stylesSerializer.d.ts +0 -1
  123. package/dist/docx/serializer/tableSerializer.d.ts +0 -1
  124. package/dist/docx/serializer/tableSerializer.js +2 -0
  125. package/dist/docx/serializer/themeSerializer.d.ts +0 -1
  126. package/dist/docx/serializer/xmlUtils.js +10 -1
  127. package/dist/docx/server/applyDocxXmlPatchProposal.d.ts +3 -10
  128. package/dist/docx/server/docxToMarkdown.d.ts +0 -1
  129. package/dist/docx/server/evaluateDocxXmlPatchProposal.d.ts +3 -9
  130. package/dist/docx/server/inspectDocxPackage.d.ts +3 -8
  131. package/dist/docx/server/validateDocxConformance.d.ts +0 -1
  132. package/dist/docx/settingsParser.d.ts +2 -2
  133. package/dist/docx/shapeParser.d.ts +0 -1
  134. package/dist/docx/shapeParser.js +11 -10
  135. package/dist/docx/streamingXmlParser.d.ts +16 -0
  136. package/dist/docx/streamingXmlParser.js +248 -0
  137. package/dist/docx/styleParser.d.ts +0 -1
  138. package/dist/docx/styleParser.js +6 -4
  139. package/dist/docx/tableParser.d.ts +1 -2
  140. package/dist/docx/tableParser.js +3 -6
  141. package/dist/docx/textBoxParser.d.ts +1 -2
  142. package/dist/docx/textBoxParser.js +4 -1
  143. package/dist/docx/textWhitespace.d.ts +4 -0
  144. package/dist/docx/textWhitespace.js +4 -0
  145. package/dist/docx/themeParser.d.ts +0 -1
  146. package/dist/docx/trackedMoveRangeNormalization.d.ts +1 -8
  147. package/dist/docx/unzip.d.ts +6 -3
  148. package/dist/docx/unzip.js +96 -40
  149. package/dist/docx/vmlImageParser.d.ts +0 -1
  150. package/dist/docx/vmlImageParser.js +3 -1
  151. package/dist/docx/watermarkParser.d.ts +0 -1
  152. package/dist/docx/xmlParser.d.ts +21 -8
  153. package/dist/docx/xmlParser.js +126 -43
  154. package/dist/fields/bookmarkPages.d.ts +0 -1
  155. package/dist/fields/bookmarkText.d.ts +0 -1
  156. package/dist/fields/evaluateField.d.ts +5 -3
  157. package/dist/fields/fieldContext.d.ts +11 -5
  158. package/dist/fields/resolveFieldValues.d.ts +4 -3
  159. package/dist/fields/sectionPageCounts.d.ts +0 -1
  160. package/dist/fields/seqValues.d.ts +0 -1
  161. package/dist/fonts/embeddedFontTable.d.ts +5 -2
  162. package/dist/fonts/embeddedFonts.d.ts +15 -7
  163. package/dist/index.d.ts +1 -0
  164. package/dist/layout-bridge/cellSelectionHighlight.d.ts +0 -1
  165. package/dist/layout-bridge/convert/footnoteLayout.d.ts +5 -3
  166. package/dist/layout-bridge/convert/headerFooterLayout.d.ts +2 -2
  167. package/dist/layout-bridge/convert/paragraphFrames.d.ts +0 -1
  168. package/dist/layout-bridge/convert/templatePreviewFlow.d.ts +8 -8
  169. package/dist/layout-bridge/convert/toFlowBlocks.d.ts +25 -13
  170. package/dist/layout-bridge/convert/wrapEditorViewAsSurface.d.ts +3 -2
  171. package/dist/layout-bridge/dom/findHfPmSpans.d.ts +2 -1
  172. package/dist/layout-bridge/dom/noteStoryDom.d.ts +0 -1
  173. package/dist/layout-bridge/engine/clickToPosition.d.ts +5 -3
  174. package/dist/layout-bridge/engine/hitTest.d.ts +40 -19
  175. package/dist/layout-bridge/engine/selectionRects.d.ts +16 -8
  176. package/dist/layout-bridge/engine/tableWidthUtils.d.ts +0 -1
  177. package/dist/layout-bridge/headerFooterLayout.d.ts +0 -1
  178. package/dist/layout-bridge/sectionColumns.d.ts +0 -1
  179. package/dist/layout-bridge/tableInsertHover.d.ts +8 -4
  180. package/dist/layout-engine/headerFooterRefs.d.ts +0 -1
  181. package/dist/layout-engine/index.d.ts +0 -1
  182. package/dist/layout-engine/justificationCompatibility.d.ts +0 -1
  183. package/dist/layout-engine/keep-together.d.ts +7 -4
  184. package/dist/layout-engine/layoutInstrumentation.d.ts +0 -1
  185. package/dist/layout-engine/lineFlow.d.ts +0 -1
  186. package/dist/layout-engine/measure/cache.d.ts +0 -1
  187. package/dist/layout-engine/measure/effectiveLineBreakPolicy.d.ts +6 -7
  188. package/dist/layout-engine/measure/floatingTablePosition.d.ts +0 -1
  189. package/dist/layout-engine/measure/floatingZones.d.ts +14 -6
  190. package/dist/layout-engine/measure/font-metrics.worker.d.ts +0 -1
  191. package/dist/layout-engine/measure/lineBreakProvider.d.ts +20 -9
  192. package/dist/layout-engine/measure/lineBreaks.d.ts +0 -1
  193. package/dist/layout-engine/measure/listMarkerWidth.d.ts +0 -1
  194. package/dist/layout-engine/measure/measureBlocks.d.ts +1 -0
  195. package/dist/layout-engine/measure/measureContainer.d.ts +0 -1
  196. package/dist/layout-engine/measure/measureHelpers.d.ts +0 -1
  197. package/dist/layout-engine/measure/measureParagraph.d.ts +3 -2
  198. package/dist/layout-engine/measure/measureParagraph.js +23 -3
  199. package/dist/layout-engine/measure/measureProvider.d.ts +0 -1
  200. package/dist/layout-engine/measure/measureTypes.d.ts +4 -2
  201. package/dist/layout-engine/measure/measureWorker.d.ts +0 -1
  202. package/dist/layout-engine/measure/measureWorkerProtocol.d.ts +0 -1
  203. package/dist/layout-engine/measure/tableCellFloating.d.ts +0 -1
  204. package/dist/layout-engine/measure/tableCellFlow.d.ts +0 -1
  205. package/dist/layout-engine/measure/tableCellGrid.d.ts +0 -1
  206. package/dist/layout-engine/measure/textBoxParagraphLayout.d.ts +0 -1
  207. package/dist/layout-engine/measure/textMeasurementPolicy.d.ts +0 -1
  208. package/dist/layout-engine/paginator.d.ts +66 -33
  209. package/dist/layout-engine/paragraphFragmentRange.d.ts +0 -1
  210. package/dist/layout-engine/paragraphFrame.d.ts +0 -1
  211. package/dist/layout-engine/paragraphSequence.d.ts +0 -1
  212. package/dist/layout-engine/paragraphSpacing.d.ts +1 -5
  213. package/dist/layout-engine/pmPageIndex.d.ts +0 -1
  214. package/dist/layout-engine/renderedBreakReconciliation.d.ts +2 -17
  215. package/dist/layout-engine/section-breaks.d.ts +34 -17
  216. package/dist/layout-engine/tableRowBreak.d.ts +4 -3
  217. package/dist/layout-engine/textBoxFlow.d.ts +0 -1
  218. package/dist/layout-engine/textBoxGroup.d.ts +0 -1
  219. package/dist/layout-engine/types.d.ts +382 -189
  220. package/dist/layout-painter/anchoredImagePosition.d.ts +0 -1
  221. package/dist/layout-painter/borderStroke.d.ts +0 -1
  222. package/dist/layout-painter/imageLayout.d.ts +14 -7
  223. package/dist/layout-painter/index.d.ts +9 -5
  224. package/dist/layout-painter/registry/modules/image.d.ts +0 -1
  225. package/dist/layout-painter/registry/modules/paragraph.d.ts +0 -1
  226. package/dist/layout-painter/registry/modules/table.d.ts +0 -1
  227. package/dist/layout-painter/registry/modules/textBox.d.ts +0 -1
  228. package/dist/layout-painter/registry/modules.d.ts +0 -1
  229. package/dist/layout-painter/registry/registry.d.ts +0 -1
  230. package/dist/layout-painter/registry/types.d.ts +0 -1
  231. package/dist/layout-painter/renderFragment.d.ts +2 -2
  232. package/dist/layout-painter/renderImage.d.ts +0 -1
  233. package/dist/layout-painter/renderPage.d.ts +71 -42
  234. package/dist/layout-painter/renderParagraph.d.ts +28 -14
  235. package/dist/layout-painter/renderParagraph.js +6 -2
  236. package/dist/layout-painter/renderTable.d.ts +0 -1
  237. package/dist/layout-painter/renderTextBox.d.ts +0 -1
  238. package/dist/layout-painter/renderUtils.d.ts +17 -9
  239. package/dist/layout-painter/renderWatermark.d.ts +2 -2
  240. package/dist/layout-painter/sdtBoundary.d.ts +0 -1
  241. package/dist/managers/AutoSaveManager.d.ts +22 -11
  242. package/dist/managers/ClipboardManager.d.ts +0 -1
  243. package/dist/managers/ContextMenuManager.d.ts +5 -8
  244. package/dist/managers/DocumentLoaderManager.d.ts +12 -6
  245. package/dist/managers/EditorModeManager.d.ts +3 -2
  246. package/dist/managers/ErrorManager.d.ts +0 -1
  247. package/dist/managers/FindReplaceManager.d.ts +0 -1
  248. package/dist/managers/HistoryManager.d.ts +19 -9
  249. package/dist/managers/TableSelectionManager.d.ts +0 -1
  250. package/dist/managers/editorShortcuts.d.ts +4 -6
  251. package/dist/markdown/annotations.d.ts +0 -1
  252. package/dist/markdown/fromMarkdown.d.ts +0 -1
  253. package/dist/markdown/images.d.ts +0 -1
  254. package/dist/markdown/index.d.ts +0 -1
  255. package/dist/markdown/internals.d.ts +0 -1
  256. package/dist/markdown/renderBlock.d.ts +0 -1
  257. package/dist/markdown/renderParagraph.d.ts +0 -1
  258. package/dist/markdown/renderRuns.d.ts +0 -1
  259. package/dist/markdown/renderTable.d.ts +0 -1
  260. package/dist/markdown/trailers.d.ts +0 -1
  261. package/dist/markdown/types.d.ts +39 -18
  262. package/dist/model.d.ts +3 -5
  263. package/dist/model.js +2 -2
  264. package/dist/paged-layout/incrementalMeasure.d.ts +1 -10
  265. package/dist/paged-layout/pageText.d.ts +1 -1
  266. package/dist/paged-layout/paragraphFlash.d.ts +0 -1
  267. package/dist/paged-layout/paragraphFlashTypes.d.ts +5 -2
  268. package/dist/paged-layout/rangeProjection.d.ts +10 -5
  269. package/dist/paged-layout/scrollNavigation.d.ts +0 -1
  270. package/dist/paged-layout/scrollPageInfo.d.ts +12 -13
  271. package/dist/paged-layout/scrollToPmPosition.d.ts +0 -1
  272. package/dist/paged-layout/sectionBlockWidths.d.ts +2 -11
  273. package/dist/paged-layout/sectionGeometry.d.ts +0 -1
  274. package/dist/paged-layout/selectionViewportRect.d.ts +0 -1
  275. package/dist/paged-layout/transactionDirtyRange.d.ts +0 -1
  276. package/dist/paged-layout/zoomScrollAnchor.d.ts +2 -12
  277. package/dist/prosemirror/attrs/index.d.ts +2 -2
  278. package/dist/prosemirror/attrs/index.js +5 -0
  279. package/dist/prosemirror/autospacingBase.d.ts +0 -1
  280. package/dist/prosemirror/cellDragSelection.d.ts +6 -4
  281. package/dist/prosemirror/commands/comments.d.ts +6 -4
  282. package/dist/prosemirror/commands/contentControls.d.ts +5 -3
  283. package/dist/prosemirror/commands/contentControlsBlockFill.d.ts +1 -1
  284. package/dist/prosemirror/commands/formatPainter.d.ts +0 -1
  285. package/dist/prosemirror/commands/formatting.d.ts +1 -1
  286. package/dist/prosemirror/commands/hyperlink.d.ts +4 -9
  287. package/dist/prosemirror/commands/image.d.ts +0 -1
  288. package/dist/prosemirror/commands/pageBreak.d.ts +0 -1
  289. package/dist/prosemirror/commands/paragraph.d.ts +0 -1
  290. package/dist/prosemirror/commands/pastePlainText.d.ts +0 -1
  291. package/dist/prosemirror/commands/propertyChangeScope.d.ts +0 -1
  292. package/dist/prosemirror/commands/sectionBreak.d.ts +0 -1
  293. package/dist/prosemirror/commands/table.d.ts +0 -1
  294. package/dist/prosemirror/commands/tableCellMergeResolution.d.ts +0 -1
  295. package/dist/prosemirror/commentIdAllocator.d.ts +2 -2
  296. package/dist/prosemirror/commentOps.d.ts +0 -1
  297. package/dist/prosemirror/conversion/effectiveTableCellFormatting.d.ts +1 -10
  298. package/dist/prosemirror/conversion/fromProseDoc.d.ts +0 -1
  299. package/dist/prosemirror/conversion/fromProseDoc.js +7 -4
  300. package/dist/prosemirror/conversion/runShadingMark.d.ts +0 -1
  301. package/dist/prosemirror/conversion/sdtAttrs.d.ts +0 -1
  302. package/dist/prosemirror/conversion/toProseDoc.d.ts +3 -2
  303. package/dist/prosemirror/conversion/toProseDoc.js +16 -2
  304. package/dist/prosemirror/extensions/ExtensionManager.d.ts +0 -1
  305. package/dist/prosemirror/extensions/StarterKit.d.ts +7 -4
  306. package/dist/prosemirror/extensions/core/DocExtension.d.ts +0 -1
  307. package/dist/prosemirror/extensions/core/HistoryExtension.d.ts +0 -1
  308. package/dist/prosemirror/extensions/core/ParagraphExtension.d.ts +0 -1
  309. package/dist/prosemirror/extensions/core/TextExtension.d.ts +0 -1
  310. package/dist/prosemirror/extensions/create.d.ts +0 -1
  311. package/dist/prosemirror/extensions/features/AutoBidiDetectionExtension.d.ts +0 -1
  312. package/dist/prosemirror/extensions/features/BaseKeymapExtension.d.ts +0 -1
  313. package/dist/prosemirror/extensions/features/BidiShortcutExtension.d.ts +0 -1
  314. package/dist/prosemirror/extensions/features/ContentControlWidgetsExtension.d.ts +0 -1
  315. package/dist/prosemirror/extensions/features/DropCursorExtension.d.ts +0 -1
  316. package/dist/prosemirror/extensions/features/EmptyParagraphFormatExtension.d.ts +0 -1
  317. package/dist/prosemirror/extensions/features/GapCursorExtension.d.ts +0 -1
  318. package/dist/prosemirror/extensions/features/ImageDragExtension.d.ts +0 -1
  319. package/dist/prosemirror/extensions/features/ImagePasteExtension.d.ts +0 -1
  320. package/dist/prosemirror/extensions/features/ListExtension.d.ts +0 -1
  321. package/dist/prosemirror/extensions/features/ParaIdAllocatorExtension.d.ts +0 -1
  322. package/dist/prosemirror/extensions/features/ParagraphChangeTrackerExtension.d.ts +7 -4
  323. package/dist/prosemirror/extensions/features/PasteCleanupExtension.d.ts +0 -1
  324. package/dist/prosemirror/extensions/features/PasteStyleInlinerExtension.d.ts +0 -1
  325. package/dist/prosemirror/extensions/features/SelectionTrackerExtension.d.ts +0 -1
  326. package/dist/prosemirror/extensions/features/bidiShortcutController.d.ts +3 -1
  327. package/dist/prosemirror/extensions/marks/AllCapsExtension.d.ts +0 -1
  328. package/dist/prosemirror/extensions/marks/BoldExtension.d.ts +0 -1
  329. package/dist/prosemirror/extensions/marks/CharacterSpacingExtension.d.ts +0 -1
  330. package/dist/prosemirror/extensions/marks/CharacterStyleExtension.d.ts +0 -1
  331. package/dist/prosemirror/extensions/marks/CommentExtension.d.ts +0 -1
  332. package/dist/prosemirror/extensions/marks/FontFamilyExtension.d.ts +0 -1
  333. package/dist/prosemirror/extensions/marks/FontFamilyExtension.js +1 -0
  334. package/dist/prosemirror/extensions/marks/FontSizeExtension.d.ts +0 -1
  335. package/dist/prosemirror/extensions/marks/FootnoteRefExtension.d.ts +0 -1
  336. package/dist/prosemirror/extensions/marks/HiddenTextExtension.d.ts +0 -1
  337. package/dist/prosemirror/extensions/marks/HighlightExtension.d.ts +0 -1
  338. package/dist/prosemirror/extensions/marks/HyperlinkExtension.d.ts +0 -1
  339. package/dist/prosemirror/extensions/marks/ItalicExtension.d.ts +0 -1
  340. package/dist/prosemirror/extensions/marks/LanguageExtension.d.ts +0 -1
  341. package/dist/prosemirror/extensions/marks/RtlExtension.d.ts +0 -1
  342. package/dist/prosemirror/extensions/marks/RunFormattingOverrideExtension.d.ts +0 -1
  343. package/dist/prosemirror/extensions/marks/RunShadingExtension.d.ts +0 -1
  344. package/dist/prosemirror/extensions/marks/SmallCapsExtension.d.ts +0 -1
  345. package/dist/prosemirror/extensions/marks/StrikeExtension.d.ts +0 -1
  346. package/dist/prosemirror/extensions/marks/SubscriptExtension.d.ts +0 -1
  347. package/dist/prosemirror/extensions/marks/SuperscriptExtension.d.ts +0 -1
  348. package/dist/prosemirror/extensions/marks/TextColorExtension.d.ts +0 -1
  349. package/dist/prosemirror/extensions/marks/TextEffectExtension.d.ts +0 -1
  350. package/dist/prosemirror/extensions/marks/TextEffectsExtensions.d.ts +0 -1
  351. package/dist/prosemirror/extensions/marks/TrackedChangeExtensions.d.ts +0 -1
  352. package/dist/prosemirror/extensions/marks/UnderlineExtension.d.ts +0 -1
  353. package/dist/prosemirror/extensions/marks/markUtils.d.ts +0 -1
  354. package/dist/prosemirror/extensions/marks/markUtils.js +4 -1
  355. package/dist/prosemirror/extensions/nodes/BlockSdtExtension.d.ts +0 -1
  356. package/dist/prosemirror/extensions/nodes/FieldExtension.d.ts +0 -1
  357. package/dist/prosemirror/extensions/nodes/HardBreakExtension.d.ts +0 -1
  358. package/dist/prosemirror/extensions/nodes/HorizontalRuleExtension.d.ts +0 -1
  359. package/dist/prosemirror/extensions/nodes/ImageExtension.d.ts +0 -1
  360. package/dist/prosemirror/extensions/nodes/ImageExtension.js +2 -0
  361. package/dist/prosemirror/extensions/nodes/MathExtension.d.ts +0 -1
  362. package/dist/prosemirror/extensions/nodes/PageBreakExtension.d.ts +0 -1
  363. package/dist/prosemirror/extensions/nodes/RenderedPageBreakExtension.d.ts +0 -1
  364. package/dist/prosemirror/extensions/nodes/SdtExtension.d.ts +0 -1
  365. package/dist/prosemirror/extensions/nodes/ShapeExtension.d.ts +0 -1
  366. package/dist/prosemirror/extensions/nodes/ShapeExtension.js +2 -0
  367. package/dist/prosemirror/extensions/nodes/TabExtension.d.ts +0 -1
  368. package/dist/prosemirror/extensions/nodes/TableExtension.d.ts +4 -3
  369. package/dist/prosemirror/extensions/nodes/TextBoxAnchorExtension.d.ts +0 -1
  370. package/dist/prosemirror/extensions/nodes/TextBoxExtension.d.ts +53 -27
  371. package/dist/prosemirror/extensions/types.d.ts +0 -1
  372. package/dist/prosemirror/findReplaceSelection.d.ts +5 -3
  373. package/dist/prosemirror/imageCommit.d.ts +0 -1
  374. package/dist/prosemirror/index.d.ts +4 -0
  375. package/dist/prosemirror/insertOperations.d.ts +0 -1
  376. package/dist/prosemirror/paraText.d.ts +0 -1
  377. package/dist/prosemirror/plugins/aiCitationDecorations.d.ts +2 -2
  378. package/dist/prosemirror/plugins/aiSuggestionDecorations.d.ts +0 -1
  379. package/dist/prosemirror/plugins/anonymizationDecorations.d.ts +9 -7
  380. package/dist/prosemirror/plugins/autocompleteSuggestion.d.ts +2 -2
  381. package/dist/prosemirror/plugins/contentControlWidgets.d.ts +4 -7
  382. package/dist/prosemirror/plugins/createDocScanPlugin.d.ts +3 -8
  383. package/dist/prosemirror/plugins/documentStyles.d.ts +0 -1
  384. package/dist/prosemirror/plugins/pmTextScan.d.ts +2 -2
  385. package/dist/prosemirror/plugins/revisionIds.d.ts +0 -1
  386. package/dist/prosemirror/plugins/selectionTracker.d.ts +23 -12
  387. package/dist/prosemirror/plugins/suggestionMode.d.ts +0 -1
  388. package/dist/prosemirror/plugins/templateDirectives.d.ts +10 -8
  389. package/dist/prosemirror/plugins/templatePreviewValues.d.ts +10 -5
  390. package/dist/prosemirror/plugins/templateSlashMenu.d.ts +2 -2
  391. package/dist/prosemirror/queries.d.ts +0 -1
  392. package/dist/prosemirror/schema/index.d.ts +0 -1
  393. package/dist/prosemirror/schema/marks.d.ts +8 -5
  394. package/dist/prosemirror/schema/nodes.d.ts +340 -163
  395. package/dist/prosemirror/selectionState.d.ts +13 -7
  396. package/dist/prosemirror/styles/resolvedStyleAttrs.d.ts +0 -1
  397. package/dist/prosemirror/styles/styleResolver.d.ts +3 -2
  398. package/dist/prosemirror/tableCellMergeRevision.d.ts +0 -1
  399. package/dist/prosemirror/tableResize.d.ts +0 -1
  400. package/dist/prosemirror/textBoxAnchorAttrs.d.ts +0 -1
  401. package/dist/prosemirror/utils/extractTrackedChanges.d.ts +8 -5
  402. package/dist/prosemirror/utils/findParagraphByParaId.d.ts +0 -1
  403. package/dist/prosemirror/utils/tabCalculator.d.ts +18 -7
  404. package/dist/prosemirror/utils/visualLineNavigation.d.ts +0 -1
  405. package/dist/prosemirror/validation.d.ts +0 -1
  406. package/dist/redline.d.ts +16 -8
  407. package/dist/render-dom/BodySelectionOverlay.d.ts +1 -9
  408. package/dist/render-dom/HeaderFooterSelectionOverlay.d.ts +0 -1
  409. package/dist/render-dom/RemoteSelectionOverlay.d.ts +1 -8
  410. package/dist/render-dom/resolveSidebarItemPositions.d.ts +1 -9
  411. package/dist/style-engine/styleEngine.d.ts +21 -11
  412. package/dist/style-sets/extract.d.ts +4 -3
  413. package/dist/style-sets/stellaStyle.d.ts +0 -1
  414. package/dist/style-sets/types.d.ts +0 -1
  415. package/dist/symbols.d.ts +6 -2
  416. package/dist/types/block-id.d.ts +3 -6
  417. package/dist/types/document.d.ts +0 -3
  418. package/dist/types/documentEnumValues.d.ts +2 -1
  419. package/dist/types/documentEnumValues.js +6 -1
  420. package/dist/utils/clipboard.d.ts +17 -8
  421. package/dist/utils/colorResolver.d.ts +9 -5
  422. package/dist/utils/createDocument.d.ts +19 -10
  423. package/dist/utils/documentLoaderBehavior.d.ts +1 -5
  424. package/dist/utils/docxInput.js +1 -0
  425. package/dist/utils/findReplace.d.ts +0 -1
  426. package/dist/utils/fontFamilyMerge.d.ts +0 -1
  427. package/dist/utils/fontResolver.d.ts +10 -4
  428. package/dist/utils/formatToStyle.d.ts +0 -1
  429. package/dist/utils/headerFooter.d.ts +8 -16
  430. package/dist/utils/headingCollector.d.ts +7 -4
  431. package/dist/utils/mergeDocumentContent.d.ts +0 -1
  432. package/dist/utils/paragraphFormattingMerge.d.ts +0 -1
  433. package/dist/utils/replaceText.d.ts +0 -1
  434. package/dist/utils/rotationBoundingBox.d.ts +0 -1
  435. package/dist/utils/tableOperations.d.ts +0 -1
  436. package/dist/utils/textFormattingMerge.d.ts +0 -1
  437. package/dist/version-comparison.d.ts +12 -6
  438. package/dist/watermark/index.d.ts +0 -1
  439. package/package.json +3 -3
@@ -1,13 +1,13 @@
1
1
  import { DocxArchiveOptions } from "./boundedArchive.js";
2
2
  import { FOLIO_DOCX_XML_PATCH_PROPOSAL_PROFILE, FolioDocxPreparedXmlReplacement, FolioDocxXmlPatchProposalEvaluation, FolioDocxXmlPatchProposalLimits } from "./evaluateDocxXmlPatchProposal.js";
3
3
  import { FOLIO_DOCX_CONFORMANCE_PROFILE, FolioDocxConformanceReport } from "./validateDocxConformance.js";
4
-
5
4
  //#region src/docx/server/applyDocxXmlPatchProposal.d.ts
6
5
  declare const FOLIO_DOCX_XML_PATCH_APPLICATION_VERSION: 1;
7
6
  declare const FOLIO_DOCX_XML_PATCH_APPLICATION_PROFILE: "folio-xml-patch-application-v1";
8
7
  type ApplyDocxXmlPatchProposalArgs = {
9
8
  readonly bytes: ArrayBuffer | Uint8Array;
10
- readonly proposal: unknown; /** Exact package paths authorized by the server-side caller. */
9
+ readonly proposal: unknown;
10
+ /** Exact package paths authorized by the server-side caller. */
11
11
  readonly allowedParts: readonly string[];
12
12
  readonly validationProfile: typeof FOLIO_DOCX_CONFORMANCE_PROFILE;
13
13
  readonly archive?: DocxArchiveOptions;
@@ -75,13 +75,6 @@ declare const FolioDocxXmlPatchApplicationError_base: import("better-result").Ta
75
75
  }>;
76
76
  declare class FolioDocxXmlPatchApplicationError extends FolioDocxXmlPatchApplicationError_base {}
77
77
  /** Apply a guarded XML proposal and return output only after full profile validation. */
78
- declare const applyDocxXmlPatchProposal: ({
79
- bytes,
80
- proposal: rawProposal,
81
- allowedParts,
82
- validationProfile,
83
- archive,
84
- limits
85
- }: ApplyDocxXmlPatchProposalArgs) => Promise<FolioDocxXmlPatchApplication>;
78
+ declare const applyDocxXmlPatchProposal: ({ bytes, proposal: rawProposal, allowedParts, validationProfile, archive, limits }: ApplyDocxXmlPatchProposalArgs) => Promise<FolioDocxXmlPatchApplication>;
86
79
  //#endregion
87
80
  export { ApplyDocxXmlPatchProposalArgs, FOLIO_DOCX_XML_PATCH_APPLICATION_PROFILE, FOLIO_DOCX_XML_PATCH_APPLICATION_VERSION, FolioDocxXmlPatchApplication, FolioDocxXmlPatchApplicationError, FolioDocxXmlPatchApplicationReceipt, UnsupportedFolioDocxXmlPatchApplicationProfileError, applyDocxXmlPatchProposal };
@@ -1,5 +1,4 @@
1
1
  import { MarkdownOptions } from "../../markdown/types.js";
2
-
3
2
  //#region src/docx/server/docxToMarkdown.d.ts
4
3
  /**
5
4
  * Convert a DOCX file to markdown in a single server-safe call.
@@ -1,5 +1,4 @@
1
1
  import { DocxArchiveOptions } from "./boundedArchive.js";
2
-
3
2
  //#region src/docx/server/evaluateDocxXmlPatchProposal.d.ts
4
3
  declare const FOLIO_DOCX_XML_PATCH_PROPOSAL_VERSION: 1;
5
4
  declare const FOLIO_DOCX_XML_PATCH_PROPOSAL_PROFILE: "folio-xml-patch-proposal-v1";
@@ -26,7 +25,8 @@ type FolioDocxXmlPatchProposalLimits = {
26
25
  };
27
26
  type EvaluateDocxXmlPatchProposalArgs = {
28
27
  readonly bytes: ArrayBuffer | Uint8Array;
29
- readonly proposal: unknown; /** Exact package paths authorized by the server-side caller. */
28
+ readonly proposal: unknown;
29
+ /** Exact package paths authorized by the server-side caller. */
30
30
  readonly allowedParts: readonly string[];
31
31
  readonly archive?: DocxArchiveOptions;
32
32
  readonly limits?: FolioDocxXmlPatchProposalLimits;
@@ -74,12 +74,6 @@ declare const InvalidFolioDocxXmlPatchProposalOptionsError_base: import("better-
74
74
  }>;
75
75
  declare class InvalidFolioDocxXmlPatchProposalOptionsError extends InvalidFolioDocxXmlPatchProposalOptionsError_base {}
76
76
  declare const parseFolioDocxXmlPatchProposal: (value: unknown) => FolioDocxXmlPatchProposal;
77
- declare const evaluateDocxXmlPatchProposal: ({
78
- bytes,
79
- proposal: rawProposal,
80
- allowedParts,
81
- archive,
82
- limits: rawLimits
83
- }: EvaluateDocxXmlPatchProposalArgs) => Promise<FolioDocxXmlPatchProposalEvaluation>;
77
+ declare const evaluateDocxXmlPatchProposal: ({ bytes, proposal: rawProposal, allowedParts, archive, limits: rawLimits }: EvaluateDocxXmlPatchProposalArgs) => Promise<FolioDocxXmlPatchProposalEvaluation>;
84
78
  //#endregion
85
79
  export { EvaluateDocxXmlPatchProposalArgs, FOLIO_DOCX_XML_PATCH_PROPOSAL_DEFAULTS, FOLIO_DOCX_XML_PATCH_PROPOSAL_ISSUE_CODES, FOLIO_DOCX_XML_PATCH_PROPOSAL_PROFILE, FOLIO_DOCX_XML_PATCH_PROPOSAL_VERSION, FolioDocxPreparedXmlReplacement, FolioDocxXmlPatchProposal, FolioDocxXmlPatchProposalEvaluation, FolioDocxXmlPatchProposalIssue, FolioDocxXmlPatchProposalIssueCode, FolioDocxXmlPatchProposalLimits, FolioDocxXmlReplacement, InvalidFolioDocxXmlPatchProposalError, InvalidFolioDocxXmlPatchProposalOptionsError, evaluateDocxXmlPatchProposal, parseFolioDocxXmlPatchProposal };
@@ -1,5 +1,4 @@
1
1
  import { DocxArchiveOptions } from "./boundedArchive.js";
2
-
3
2
  //#region src/docx/server/inspectDocxPackage.d.ts
4
3
  declare const FOLIO_DOCX_PACKAGE_INSPECTION_VERSION: 1;
5
4
  declare const FOLIO_DOCX_PACKAGE_INSPECTION_DEFAULTS: Readonly<{
@@ -37,7 +36,8 @@ type FolioDocxInspectedXmlPart = {
37
36
  readonly path: string;
38
37
  readonly contentType: string | null;
39
38
  readonly byteLength: number;
40
- readonly sha256: string; /** Untrusted document data; callers must not treat this text as instructions. */
39
+ readonly sha256: string;
40
+ /** Untrusted document data; callers must not treat this text as instructions. */
41
41
  readonly text: string;
42
42
  };
43
43
  type FolioDocxPackageInspection = {
@@ -54,12 +54,7 @@ type ReadRequestedXmlPartsOptions = {
54
54
  maxBytes: number;
55
55
  }) => Promise<Uint8Array | null>;
56
56
  };
57
- declare const readRequestedXmlParts: ({
58
- paths,
59
- partsByPath,
60
- limits,
61
- readEntryUint8
62
- }: ReadRequestedXmlPartsOptions) => Promise<FolioDocxInspectedXmlPart[]>;
57
+ declare const readRequestedXmlParts: ({ paths, partsByPath, limits, readEntryUint8 }: ReadRequestedXmlPartsOptions) => Promise<FolioDocxInspectedXmlPart[]>;
63
58
  /**
64
59
  * Inspect package metadata and only the explicitly requested XML part bodies.
65
60
  * This reports archive contents, not package conformance; use the conformance
@@ -1,6 +1,5 @@
1
1
  import { document_d_exports } from "../../types/document.js";
2
2
  import { DocxArchiveOptions } from "./boundedArchive.js";
3
-
4
3
  //#region src/docx/server/validateDocxConformance.d.ts
5
4
  declare const FOLIO_DOCX_CONFORMANCE_REPORT_VERSION: 1;
6
5
  declare const FOLIO_DOCX_CONFORMANCE_PROFILE: "folio-supported-v1";
@@ -1,8 +1,8 @@
1
1
  import { document_d_exports } from "../types/document.js";
2
-
3
2
  //#region src/docx/settingsParser.d.ts
4
3
  type FolioDocumentSettings = document_d_exports.DocumentSettings & {
5
- /** Swap left/right section margins on even physical pages. */mirrorMargins?: boolean;
4
+ /** Swap left/right section margins on even physical pages. */
5
+ mirrorMargins?: boolean;
6
6
  };
7
7
  /** OOXML default per §17.6.13 when `w:defaultTabStop` is absent. */
8
8
  declare const DEFAULT_TAB_STOP_TWIPS = 720;
@@ -1,6 +1,5 @@
1
1
  import { document_d_exports } from "../types/document.js";
2
2
  import { XmlElement } from "./xmlParser.js";
3
-
4
3
  //#region src/docx/shapeParser.d.ts
5
4
  /**
6
5
  * Parse a `<wps:wsp>` element into a Shape model. Does NOT pick up the
@@ -179,13 +179,10 @@ function colorNeedsRawPreservation(color) {
179
179
  }
180
180
  function fillNeedsRawPreservation(fill) {
181
181
  if (!fill) return false;
182
- if (fill.type === "solid") return colorNeedsRawPreservation(fill.color);
182
+ if (fill.type === "solid") return false;
183
183
  if (fill.type === "gradient") return fill.gradient?.stops.some((stop) => colorNeedsRawPreservation(stop.color)) ?? false;
184
184
  return false;
185
185
  }
186
- function outlineNeedsRawPreservation(outline) {
187
- return colorNeedsRawPreservation(outline?.color);
188
- }
189
186
  /**
190
187
  * Parse a `<wps:wsp>` element into a Shape model. Does NOT pick up the
191
188
  * extent / position / wrap fields — those live on the wrapping
@@ -231,13 +228,17 @@ function parseShapeFromDrawing(drawingEl) {
231
228
  if (!wsp) return null;
232
229
  if (findChildByLocalName(wsp, "txbx") !== null) return null;
233
230
  const spPr = findChildByLocalName(wsp, "spPr");
234
- if (hasUnsupportedGeometry(spPr) || hasUnsupportedRgbColorModifiers(spPr) || hasUnmodeledFill(spPr) || fillNeedsRawPreservation(parseShapeFill(spPr)) || outlineNeedsRawPreservation(parseShapeOutline(spPr))) return null;
231
+ if (hasUnsupportedGeometry(spPr) || hasUnsupportedRgbColorModifiers(spPr) || hasUnmodeledFill(spPr) || fillNeedsRawPreservation(parseShapeFill(spPr))) return null;
235
232
  const shape = parseShape(wsp);
236
233
  const extent = findChildByLocalName(container, "extent");
237
- if (extent) shape.size = {
238
- width: parseNumericAttribute(extent, null, "cx") ?? shape.size.width,
239
- height: parseNumericAttribute(extent, null, "cy") ?? shape.size.height
240
- };
234
+ if (extent) {
235
+ const outerWidth = parseNumericAttribute(extent, null, "cx");
236
+ const outerHeight = parseNumericAttribute(extent, null, "cy");
237
+ shape.size = {
238
+ width: outerWidth !== void 0 && (outerWidth > 0 || shape.size.width === 0) ? outerWidth : shape.size.width,
239
+ height: outerHeight !== void 0 && (outerHeight > 0 || shape.size.height === 0) ? outerHeight : shape.size.height
240
+ };
241
+ }
241
242
  if (container === anchor) {
242
243
  const position = parseAnchorPosition(container);
243
244
  if (position) shape.position = position;
@@ -266,7 +267,7 @@ function shouldPreserveRawShapeDrawing(drawingEl) {
266
267
  if (hasUnsupportedGeometry(spPr)) return true;
267
268
  if (hasUnsupportedRgbColorModifiers(spPr)) return true;
268
269
  if (hasUnmodeledFill(spPr)) return true;
269
- return fillNeedsRawPreservation(parseShapeFill(spPr)) || outlineNeedsRawPreservation(parseShapeOutline(spPr));
270
+ return fillNeedsRawPreservation(parseShapeFill(spPr));
270
271
  }
271
272
  //#endregion
272
273
  export { parseShape, parseShapeFromDrawing, shouldPreserveRawShapeDrawing };
@@ -0,0 +1,16 @@
1
+ import { XmlElement } from "./xmlParser.js";
2
+ //#region src/docx/streamingXmlParser.d.ts
3
+ type ParseXmlResult = {
4
+ status: "parsed";
5
+ value: XmlElement;
6
+ } | {
7
+ status: "unsupported";
8
+ };
9
+ /**
10
+ * Parse ordinary OOXML into Folio's existing element representation in one
11
+ * pass. Unsupported or malformed constructs return a sentinel so callers can
12
+ * retain the general-purpose parser as a compatibility fallback.
13
+ */
14
+ declare const parseStreamingXml: (xml: string) => ParseXmlResult;
15
+ //#endregion
16
+ export { parseStreamingXml };
@@ -0,0 +1,248 @@
1
+ //#region src/docx/streamingXmlParser.ts
2
+ const BUILT_IN_ENTITIES = {
3
+ amp: "&",
4
+ apos: "'",
5
+ gt: ">",
6
+ lt: "<",
7
+ quot: "\""
8
+ };
9
+ /**
10
+ * Parse ordinary OOXML into Folio's existing element representation in one
11
+ * pass. Unsupported or malformed constructs return a sentinel so callers can
12
+ * retain the general-purpose parser as a compatibility fallback.
13
+ */
14
+ const parseStreamingXml = (xml) => {
15
+ const root = { elements: [] };
16
+ const stack = [];
17
+ let cursor = 0;
18
+ let mergeAdjacentText = false;
19
+ while (cursor < xml.length) {
20
+ const open = xml.indexOf("<", cursor);
21
+ if (open === -1) {
22
+ if (!appendText(xml.slice(cursor), stack, mergeAdjacentText)) return { status: "unsupported" };
23
+ break;
24
+ }
25
+ if (open > cursor && !appendText(xml.slice(cursor, open), stack, mergeAdjacentText)) return { status: "unsupported" };
26
+ if (open > cursor) mergeAdjacentText = true;
27
+ if (xml.startsWith("<!--", open)) {
28
+ const close = xml.indexOf("-->", open + 4);
29
+ if (close === -1) return { status: "unsupported" };
30
+ cursor = close + 3;
31
+ continue;
32
+ }
33
+ if (xml.startsWith("<![CDATA[", open)) {
34
+ const close = xml.indexOf("]]>", open + 9);
35
+ if (close === -1 || !appendRawText(normalizeLineEndings(xml.slice(open + 9, close)), stack)) return { status: "unsupported" };
36
+ cursor = close + 3;
37
+ mergeAdjacentText = false;
38
+ continue;
39
+ }
40
+ if (xml.startsWith("<?", open)) {
41
+ const close = xml.indexOf("?>", open + 2);
42
+ if (close === -1) return { status: "unsupported" };
43
+ cursor = close + 2;
44
+ continue;
45
+ }
46
+ if (xml.startsWith("<!", open)) return { status: "unsupported" };
47
+ const close = findTagClose(xml, open + 1);
48
+ if (close === -1) return { status: "unsupported" };
49
+ if (xml.charCodeAt(open + 1) === 47) {
50
+ const name = xml.slice(open + 2, close).trim();
51
+ const frame = stack.pop();
52
+ if (!frame || frame.name !== name) return { status: "unsupported" };
53
+ cursor = close + 1;
54
+ mergeAdjacentText = false;
55
+ continue;
56
+ }
57
+ const parsedTag = parseOpenTag(xml, open + 1, close);
58
+ if (parsedTag.status === "unsupported") return parsedTag;
59
+ const parent = stack.at(-1)?.element ?? root;
60
+ appendElement(parent, parsedTag.element);
61
+ if (!parsedTag.selfClosing) {
62
+ if (stack.length >= 100) return { status: "unsupported" };
63
+ stack.push({
64
+ element: parsedTag.element,
65
+ name: parsedTag.name
66
+ });
67
+ }
68
+ cursor = close + 1;
69
+ mergeAdjacentText = false;
70
+ }
71
+ if (stack.length > 0) return { status: "unsupported" };
72
+ return {
73
+ status: "parsed",
74
+ value: root
75
+ };
76
+ };
77
+ const parseOpenTag = (xml, start, close) => {
78
+ let cursor = skipWhitespace(xml, start, close);
79
+ const nameStart = cursor;
80
+ cursor = scanName(xml, cursor, close);
81
+ if (cursor === nameStart) return { status: "unsupported" };
82
+ const name = xml.slice(nameStart, cursor);
83
+ if (isUnsafePropertyName(name)) return { status: "unsupported" };
84
+ let attributes;
85
+ let selfClosing = false;
86
+ while (cursor < close) {
87
+ cursor = skipWhitespace(xml, cursor, close);
88
+ if (cursor >= close) break;
89
+ if (xml.charCodeAt(cursor) === 47) {
90
+ selfClosing = true;
91
+ cursor = skipWhitespace(xml, cursor + 1, close);
92
+ if (cursor !== close) return { status: "unsupported" };
93
+ break;
94
+ }
95
+ const attributeNameStart = cursor;
96
+ cursor = scanName(xml, cursor, close);
97
+ if (cursor === attributeNameStart) return { status: "unsupported" };
98
+ const attributeName = xml.slice(attributeNameStart, cursor);
99
+ if (isUnsafePropertyName(attributeName)) return { status: "unsupported" };
100
+ cursor = skipWhitespace(xml, cursor, close);
101
+ if (xml.charCodeAt(cursor) !== 61) return { status: "unsupported" };
102
+ cursor = skipWhitespace(xml, cursor + 1, close);
103
+ const quote = xml.charCodeAt(cursor);
104
+ if (quote !== 34 && quote !== 39) return { status: "unsupported" };
105
+ const valueStart = cursor + 1;
106
+ cursor = xml.indexOf(quote === 34 ? "\"" : "'", valueStart);
107
+ if (cursor === -1 || cursor > close) return { status: "unsupported" };
108
+ const decoded = decodeXmlEntities(normalizeLineEndings(xml.slice(valueStart, cursor)));
109
+ if (decoded === null) return { status: "unsupported" };
110
+ attributes ??= {};
111
+ attributes[attributeName] = decoded;
112
+ cursor += 1;
113
+ }
114
+ const element = {
115
+ type: "element",
116
+ name
117
+ };
118
+ if (attributes) element.attributes = attributes;
119
+ return {
120
+ status: "parsed",
121
+ element,
122
+ name,
123
+ selfClosing
124
+ };
125
+ };
126
+ const appendElement = (parent, child) => {
127
+ parent.elements ??= [];
128
+ parent.elements.push(child);
129
+ };
130
+ const appendText = (text, stack, mergeAdjacentText) => {
131
+ if (text.length === 0) return true;
132
+ const decoded = decodeXmlEntities(normalizeLineEndings(text));
133
+ if (decoded === null) return false;
134
+ const parent = stack.at(-1)?.element;
135
+ const previous = mergeAdjacentText ? parent?.elements?.at(-1) : void 0;
136
+ if (previous?.type === "text" && typeof previous.text === "string") {
137
+ previous.text += decoded;
138
+ return true;
139
+ }
140
+ return appendRawText(decoded, stack);
141
+ };
142
+ const appendRawText = (text, stack) => {
143
+ const parent = stack.at(-1)?.element;
144
+ if (!parent) return text.trim().length === 0;
145
+ appendElement(parent, {
146
+ type: "text",
147
+ text
148
+ });
149
+ return true;
150
+ };
151
+ const findTagClose = (xml, start) => {
152
+ let quote = 0;
153
+ for (let cursor = start; cursor < xml.length; cursor += 1) {
154
+ const code = xml.charCodeAt(cursor);
155
+ if (quote !== 0) {
156
+ if (code === quote) quote = 0;
157
+ continue;
158
+ }
159
+ if (code === 34 || code === 39) {
160
+ quote = code;
161
+ continue;
162
+ }
163
+ if (code === 62) return cursor;
164
+ }
165
+ return -1;
166
+ };
167
+ const skipWhitespace = (xml, start, limit) => {
168
+ let cursor = start;
169
+ while (cursor < limit) {
170
+ const code = xml.charCodeAt(cursor);
171
+ if (code !== 9 && code !== 10 && code !== 13 && code !== 32) break;
172
+ cursor += 1;
173
+ }
174
+ return cursor;
175
+ };
176
+ const scanName = (xml, start, limit) => {
177
+ let cursor = start;
178
+ while (cursor < limit) {
179
+ const code = xml.charCodeAt(cursor);
180
+ if (code === 9 || code === 10 || code === 13 || code === 32 || code === 47 || code === 61 || code === 62) break;
181
+ cursor += 1;
182
+ }
183
+ return cursor;
184
+ };
185
+ const decodeXmlEntities = (value) => {
186
+ const firstEntity = value.indexOf("&");
187
+ if (firstEntity === -1) return value;
188
+ const parts = [];
189
+ let cursor = 0;
190
+ let entityStart = firstEntity;
191
+ while (entityStart !== -1) {
192
+ parts.push(value.slice(cursor, entityStart));
193
+ const entityEnd = value.indexOf(";", entityStart + 1);
194
+ if (entityEnd === -1) return null;
195
+ const entity = value.slice(entityStart + 1, entityEnd);
196
+ const decoded = decodeXmlEntity(entity);
197
+ if (decoded === null) return null;
198
+ parts.push(decoded);
199
+ cursor = entityEnd + 1;
200
+ entityStart = value.indexOf("&", cursor);
201
+ }
202
+ parts.push(value.slice(cursor));
203
+ return parts.join("");
204
+ };
205
+ const normalizeLineEndings = (value) => {
206
+ if (!value.includes("\r")) return value;
207
+ return value.replaceAll("\r\n", "\n").replaceAll("\r", "\n");
208
+ };
209
+ const decodeXmlEntity = (entity) => {
210
+ switch (entity) {
211
+ case "amp": return BUILT_IN_ENTITIES.amp;
212
+ case "apos": return BUILT_IN_ENTITIES.apos;
213
+ case "gt": return BUILT_IN_ENTITIES.gt;
214
+ case "lt": return BUILT_IN_ENTITIES.lt;
215
+ case "quot": return BUILT_IN_ENTITIES.quot;
216
+ }
217
+ if (entity.charCodeAt(0) !== 35) return null;
218
+ const hexadecimal = entity.charCodeAt(1) === 120 || entity.charCodeAt(1) === 88;
219
+ const digits = entity.slice(hexadecimal ? 2 : 1);
220
+ if (digits.length === 0 || !hasOnlyDigits(digits, hexadecimal)) return null;
221
+ const codePoint = Number.parseInt(digits, hexadecimal ? 16 : 10);
222
+ if (!Number.isInteger(codePoint) || codePoint <= 0 || codePoint > 1114111 || codePoint >= 55296 && codePoint <= 57343) return null;
223
+ return String.fromCodePoint(codePoint);
224
+ };
225
+ const hasOnlyDigits = (value, hexadecimal) => {
226
+ for (let index = 0; index < value.length; index += 1) {
227
+ const code = value.charCodeAt(index);
228
+ if (!(code >= 48 && code <= 57) && !(hexadecimal && code >= 97 && code <= 102) && !(hexadecimal && code >= 65 && code <= 70)) return false;
229
+ }
230
+ return true;
231
+ };
232
+ const isUnsafePropertyName = (name) => {
233
+ switch (name) {
234
+ case "__defineGetter__":
235
+ case "__defineSetter__":
236
+ case "__lookupGetter__":
237
+ case "__lookupSetter__":
238
+ case "__proto__":
239
+ case "constructor":
240
+ case "hasOwnProperty":
241
+ case "prototype":
242
+ case "toString":
243
+ case "valueOf": return true;
244
+ default: return false;
245
+ }
246
+ };
247
+ //#endregion
248
+ export { parseStreamingXml };
@@ -1,5 +1,4 @@
1
1
  import { document_d_exports } from "../types/document.js";
2
-
3
2
  //#region src/docx/styleParser.d.ts
4
3
  /**
5
4
  * Style map keyed by styleId
@@ -1,5 +1,5 @@
1
- import { BorderStyleSchema, ConditionalStyleTypeSchema, EmphasisMarkSchema, FontThemeSchema, HighlightColorSchema, LineSpacingRuleSchema, ParagraphAlignmentSchema, ShadingPatternSchema, StyleTypeSchema, TabLeaderSchema, TabStopAlignmentSchema, TableCellTextDirectionSchema, TableRowHeightRuleSchema, TableWidthTypeSchema, TextEffectSchema, ThemeColorSlotSchema, UnderlineStyleSchema, narrowEnum } from "./parserEnums.js";
2
- import { findChild, findChildren, getAttribute, getLocalName, parseBooleanElement, parseNumericAttribute, parseTableMeasurementValue, parseXmlDocument } from "./xmlParser.js";
1
+ import { BorderStyleSchema, ConditionalStyleTypeSchema, EmphasisMarkSchema, FontHintSchema, FontThemeSchema, HighlightColorSchema, LineSpacingRuleSchema, ParagraphAlignmentSchema, ShadingPatternSchema, StyleTypeSchema, TabLeaderSchema, TabStopAlignmentSchema, TableCellTextDirectionSchema, TableRowHeightRuleSchema, TableWidthTypeSchema, TextEffectSchema, ThemeColorSlotSchema, UnderlineStyleSchema, narrowEnum } from "./parserEnums.js";
2
+ import { findChild, findChildren, getAttribute, getLocalName, parseBooleanElement, parseNumberingLevelAttribute, parseNumericAttribute, parseTableMeasurementValue, parseXmlDocument } from "./xmlParser.js";
3
3
  import { mergeTextFormatting } from "../utils/textFormattingMerge.js";
4
4
  import { mergeParagraphFormatting } from "../utils/paragraphFormattingMerge.js";
5
5
  import { resolveThemeFontRef } from "./themeParser.js";
@@ -76,6 +76,8 @@ function parseRunProperties(rPr, theme) {
76
76
  if (eastAsia) fontFamily.eastAsia = eastAsia;
77
77
  const csFont = getAttribute(rFonts, "w", "cs");
78
78
  if (csFont) fontFamily.cs = csFont;
79
+ const hint = narrowEnum(getAttribute(rFonts, "w", "hint"), FontHintSchema);
80
+ if (hint) fontFamily.hint = hint;
79
81
  const asciiTheme = narrowEnum(getAttribute(rFonts, "w", "asciiTheme"), FontThemeSchema);
80
82
  if (asciiTheme) {
81
83
  fontFamily.asciiTheme = asciiTheme;
@@ -244,7 +246,7 @@ function parseTabStops(tabs) {
244
246
  alignment
245
247
  };
246
248
  const leader = narrowEnum(getAttribute(tab, "w", "leader"), TabLeaderSchema);
247
- if (leader) tabStop.leader = leader;
249
+ if (leader && leader !== "none") tabStop.leader = leader;
248
250
  result.push(tabStop);
249
251
  }
250
252
  }
@@ -342,7 +344,7 @@ function parseParagraphProperties(pPr, theme) {
342
344
  if (val !== void 0) formatting.numPr.numId = val;
343
345
  }
344
346
  if (ilvl) {
345
- const val = parseNumericAttribute(ilvl, "w", "val");
347
+ const val = parseNumberingLevelAttribute(ilvl);
346
348
  if (val !== void 0) formatting.numPr.ilvl = val;
347
349
  }
348
350
  }
@@ -2,7 +2,6 @@ import { document_d_exports } from "../types/document.js";
2
2
  import { NumberingMap } from "./numberingParser.js";
3
3
  import { StyleMap } from "./styleParser.js";
4
4
  import { XmlElement } from "./xmlParser.js";
5
-
6
5
  //#region src/docx/tableParser.d.ts
7
6
  /**
8
7
  * Sanity cap on `w:gridSpan` (and the derived table column count). Word's
@@ -139,7 +138,7 @@ declare function parseTableGrid(tblGridElement: XmlElement | null): number[] | u
139
138
  declare function parseTable(tblElement: XmlElement, styles: StyleMap | null, theme: document_d_exports.Theme | null, numbering: NumberingMap | null, rels: document_d_exports.RelationshipMap | null, media: Map<string, document_d_exports.MediaFile> | null, options?: {
140
139
  inHeaderFooter?: boolean;
141
140
  rootXmlns?: Record<string, string>;
142
- }): document_d_exports.Table;
141
+ }): document_d_exports.Table | undefined;
143
142
  /**
144
143
  * Get the number of columns in a table
145
144
  *
@@ -1,5 +1,5 @@
1
1
  import { BorderStyleSchema, FloatingTableXSpecSchema, FloatingTableYSpecSchema, ShadingPatternSchema, TableCellTextDirectionSchema, ThemeColorSlotSchema, narrowEnum } from "./parserEnums.js";
2
- import { findChild, findChildByLocalName, findChildren, getAttribute, getChildElements, mergeXmlnsDeclarations, parseBooleanElement, parseNumericAttribute, parseTableMeasurementValue } from "./xmlParser.js";
2
+ import { findChild, findChildByLocalName, findChildren, getAttribute, getChildElements, getLocalName, mergeXmlnsDeclarations, parseBooleanElement, parseNumericAttribute, parseTableMeasurementValue } from "./xmlParser.js";
3
3
  import { parseBookmarkEnd, parseBookmarkStart } from "./bookmarkParser.js";
4
4
  import { parseParagraph } from "./paragraphParser.js";
5
5
  import { appendBookmarkMarkerToLastParagraphInBlocks, appendBookmarkMarkerToLastParagraphInCells, prependBookmarkMarkersToFirstParagraphInBlocks, prependBookmarkMarkersToFirstParagraphInCell } from "./bookmarkPlacement.js";
@@ -536,6 +536,7 @@ function parseCellContent(tcElement, styles, theme, numbering, rels, media, opti
536
536
  }
537
537
  if (localName === "tbl") {
538
538
  const table = parseTable(child, styles, theme, numbering, rels, media, options);
539
+ if (!table) return;
539
540
  if (prependBookmarkMarkersToFirstParagraphInBlocks([table], pendingBookmarkMarkers)) pendingBookmarkMarkers.length = 0;
540
541
  content.push(table);
541
542
  return;
@@ -635,11 +636,6 @@ function parseTableRow(trElement, styles, theme, numbering, rels, media, options
635
636
  if (pendingBookmarkMarkers.length > 0) appendBookmarkMarkersToLastCell(row, pendingBookmarkMarkers);
636
637
  return row;
637
638
  }
638
- function getLocalName(name) {
639
- if (!name) return "";
640
- const colonIndex = name.indexOf(":");
641
- return colonIndex === -1 ? name : name.slice(colonIndex + 1);
642
- }
643
639
  function parseBookmarkMarker(child, localName) {
644
640
  if (localName === "bookmarkStart") return parseBookmarkStart(child);
645
641
  return parseBookmarkEnd(child);
@@ -751,6 +747,7 @@ function parseTable(tblElement, styles, theme, numbering, rels, media, options)
751
747
  for (const sdtChild of getChildElements(sdtContent)) parseTableChild(sdtChild);
752
748
  };
753
749
  for (const child of getChildElements(tblElement)) parseTableChild(child);
750
+ if (table.rows.length === 0) return;
754
751
  inferImplicitSingleCellRowSpans(table, rowsWithGridOffsets);
755
752
  return table;
756
753
  }
@@ -2,7 +2,6 @@ import { document_d_exports } from "../types/document.js";
2
2
  import { NumberingMap } from "./numberingParser.js";
3
3
  import { StyleMap } from "./styleParser.js";
4
4
  import { XmlElement } from "./xmlParser.js";
5
-
6
5
  //#region src/docx/textBoxParser.d.ts
7
6
  /**
8
7
  * Extract raw paragraph elements from w:txbxContent
@@ -19,7 +18,7 @@ type ParagraphParserFn = (node: XmlElement, styles: StyleMap | null, theme: docu
19
18
  /**
20
19
  * Type for the table parser function to avoid circular imports
21
20
  */
22
- type TableParserFn = (node: XmlElement, styles: StyleMap | null, theme: document_d_exports.Theme | null, numbering: NumberingMap | null, rels: document_d_exports.RelationshipMap | null, media: Map<string, document_d_exports.MediaFile> | null) => document_d_exports.Table;
21
+ type TableParserFn = (node: XmlElement, styles: StyleMap | null, theme: document_d_exports.Theme | null, numbering: NumberingMap | null, rels: document_d_exports.RelationshipMap | null, media: Map<string, document_d_exports.MediaFile> | null) => document_d_exports.Table | undefined;
23
22
  /**
24
23
  * Parse text box content with provided parser functions
25
24
  * This avoids circular dependencies by accepting parser functions as parameters
@@ -55,7 +55,10 @@ function parseTextBoxContent(txbxContent, parseParagraph, parseTable, styles, th
55
55
  if (localName === "p") {
56
56
  const paragraph = parseParagraph(child, styles, theme, numbering, rels, media);
57
57
  blocks.push(paragraph);
58
- } else if (localName === "tbl" && parseTable) blocks.push(parseTable(child, styles, theme, numbering, rels, media));
58
+ } else if (localName === "tbl" && parseTable) {
59
+ const table = parseTable(child, styles, theme, numbering, rels, media);
60
+ if (table) blocks.push(table);
61
+ }
59
62
  }
60
63
  return blocks;
61
64
  }
@@ -0,0 +1,4 @@
1
+ //#region src/docx/textWhitespace.d.ts
2
+ declare const requiresXmlSpacePreserve: (text: string) => boolean;
3
+ //#endregion
4
+ export { requiresXmlSpacePreserve };
@@ -0,0 +1,4 @@
1
+ //#region src/docx/textWhitespace.ts
2
+ const requiresXmlSpacePreserve = (text) => text.startsWith(" ") || text.endsWith(" ") || text.includes(" ");
3
+ //#endregion
4
+ export { requiresXmlSpacePreserve };
@@ -1,5 +1,4 @@
1
1
  import { document_d_exports } from "../types/document.js";
2
-
3
2
  //#region src/docx/themeParser.d.ts
4
3
  /**
5
4
  * Parse theme1.xml content
@@ -1,5 +1,4 @@
1
1
  import { document_d_exports } from "../types/document.js";
2
-
3
2
  //#region src/docx/trackedMoveRangeNormalization.d.ts
4
3
  type NormalizeTrackedMoveRangesInput = {
5
4
  documentBody: document_d_exports.DocumentBody;
@@ -11,12 +10,6 @@ type NormalizeTrackedMoveRangesInput = {
11
10
  type NormalizeTrackedMoveRangesResult = {
12
11
  removedUnbalancedMoveRangeMarkers: number;
13
12
  };
14
- declare const normalizeTrackedMoveRanges: ({
15
- documentBody,
16
- headers,
17
- footers,
18
- footnotes,
19
- endnotes
20
- }: NormalizeTrackedMoveRangesInput) => NormalizeTrackedMoveRangesResult;
13
+ declare const normalizeTrackedMoveRanges: ({ documentBody, headers, footers, footnotes, endnotes }: NormalizeTrackedMoveRangesInput) => NormalizeTrackedMoveRangesResult;
21
14
  //#endregion
22
15
  export { normalizeTrackedMoveRanges };
@@ -1,5 +1,4 @@
1
1
  import JSZip from "jszip";
2
-
3
2
  //#region src/docx/unzip.d.ts
4
3
  declare class DocxSecurityError extends Error {
5
4
  constructor(message: string);
@@ -14,7 +13,10 @@ type DocxUnzipLimits = {
14
13
  allowedMediaMimeTypes: ReadonlySet<string>;
15
14
  };
16
15
  type DocxUnzipOptions = Partial<Omit<DocxUnzipLimits, "allowedMediaMimeTypes">> & {
17
- allowedMediaMimeTypes?: Iterable<string>; /** Password for Agile-encrypted .docx files (Office 2010+). */
16
+ allowedMediaMimeTypes?: Iterable<string>;
17
+ /** Extract every XML part into allXml instead of only parts used by the parser. */
18
+ extractAllXml?: boolean;
19
+ /** Password for Agile-encrypted .docx files (Office 2010+). */
18
20
  password?: string | undefined;
19
21
  };
20
22
  /**
@@ -46,7 +48,8 @@ type RawDocxContent = {
46
48
  allXml: Map<string, string>;
47
49
  originalZip: JSZip;
48
50
  originalBuffer: ArrayBuffer;
49
- warnings: string[]; /** True when the input was a password-protected CFB container. */
51
+ warnings: string[];
52
+ /** True when the input was a password-protected CFB container. */
50
53
  wasEncrypted: boolean;
51
54
  };
52
55
  /**