@stll/folio-core 0.0.1-placeholder.0 → 0.1.0

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 (683) hide show
  1. package/LICENSE +202 -0
  2. package/NOTICE.md +29 -0
  3. package/README.md +41 -0
  4. package/dist/_virtual/_rolldown/runtime.js +13 -0
  5. package/dist/ai-edits/apply.d.ts +35 -0
  6. package/dist/ai-edits/apply.js +683 -0
  7. package/dist/ai-edits/clean-text.d.ts +28 -0
  8. package/dist/ai-edits/clean-text.js +23 -0
  9. package/dist/ai-edits/headless.d.ts +225 -0
  10. package/dist/ai-edits/headless.js +513 -0
  11. package/dist/ai-edits/index.d.ts +6 -0
  12. package/dist/ai-edits/index.js +5 -0
  13. package/dist/ai-edits/inline-emphasis.d.ts +38 -0
  14. package/dist/ai-edits/inline-emphasis.js +78 -0
  15. package/dist/ai-edits/snapshot.d.ts +9 -0
  16. package/dist/ai-edits/snapshot.js +195 -0
  17. package/dist/ai-edits/types.d.ts +156 -0
  18. package/dist/ai-edits/types.js +0 -0
  19. package/dist/ai-edits/word-diff.d.ts +20 -0
  20. package/dist/ai-edits/word-diff.js +77 -0
  21. package/dist/ai-suggestions/apply.d.ts +17 -0
  22. package/dist/ai-suggestions/apply.js +64 -0
  23. package/dist/ai-suggestions/conflict.d.ts +22 -0
  24. package/dist/ai-suggestions/conflict.js +67 -0
  25. package/dist/ai-suggestions/text-positions.d.ts +21 -0
  26. package/dist/ai-suggestions/text-positions.js +48 -0
  27. package/dist/ai-suggestions/types.d.ts +199 -0
  28. package/dist/ai-suggestions/types.js +59 -0
  29. package/dist/content-controls/errors.d.ts +52 -0
  30. package/dist/content-controls/errors.js +36 -0
  31. package/dist/content-controls/findContentControls.d.ts +55 -0
  32. package/dist/content-controls/findContentControls.js +75 -0
  33. package/dist/content-controls/index.d.ts +4 -0
  34. package/dist/content-controls/index.js +4 -0
  35. package/dist/content-controls/mutateContentControls.d.ts +51 -0
  36. package/dist/content-controls/mutateContentControls.js +377 -0
  37. package/dist/controller/folioEditor.d.ts +21 -0
  38. package/dist/controller/folioEditor.js +29 -0
  39. package/dist/controller/folioEditorEvents.d.ts +23 -0
  40. package/dist/controller/folioEditorEvents.js +24 -0
  41. package/dist/controller/hiddenEditorApi.d.ts +35 -0
  42. package/dist/controller/hiddenEditorApi.js +112 -0
  43. package/dist/controller/hiddenEditorManager.d.ts +93 -0
  44. package/dist/controller/hiddenEditorManager.js +308 -0
  45. package/dist/controller/layoutPipeline.d.ts +63 -0
  46. package/dist/controller/layoutPipeline.js +406 -0
  47. package/dist/controller/layoutScheduler.d.ts +41 -0
  48. package/dist/controller/layoutScheduler.js +59 -0
  49. package/dist/controller/layoutSession.d.ts +24 -0
  50. package/dist/controller/layoutSession.js +13 -0
  51. package/dist/docx/blockContentParser.d.ts +13 -0
  52. package/dist/docx/blockContentParser.js +289 -0
  53. package/dist/docx/bookmarkParser.d.ts +178 -0
  54. package/dist/docx/bookmarkParser.js +246 -0
  55. package/dist/docx/bookmarkPlacement.d.ts +10 -0
  56. package/dist/docx/bookmarkPlacement.js +50 -0
  57. package/dist/docx/bulletMarkers.d.ts +4 -0
  58. package/dist/docx/bulletMarkers.js +42 -0
  59. package/dist/docx/commentParser.d.ts +34 -0
  60. package/dist/docx/commentParser.js +127 -0
  61. package/dist/docx/commentReferenceNormalization.d.ts +25 -0
  62. package/dist/docx/commentReferenceNormalization.js +97 -0
  63. package/dist/docx/commentReplyMarkers.d.ts +20 -0
  64. package/dist/docx/commentReplyMarkers.js +123 -0
  65. package/dist/docx/compatibility.d.ts +12 -0
  66. package/dist/docx/compatibility.js +77 -0
  67. package/dist/docx/documentParser.d.ts +65 -0
  68. package/dist/docx/documentParser.js +209 -0
  69. package/dist/docx/drawingUtils.d.ts +56 -0
  70. package/dist/docx/drawingUtils.js +305 -0
  71. package/dist/docx/fieldParser.d.ts +228 -0
  72. package/dist/docx/fieldParser.js +559 -0
  73. package/dist/docx/footnoteParser.d.ts +109 -0
  74. package/dist/docx/footnoteParser.js +270 -0
  75. package/dist/docx/headerFooterParser.d.ts +119 -0
  76. package/dist/docx/headerFooterParser.js +266 -0
  77. package/dist/docx/headerFooterRefParser.d.ts +22 -0
  78. package/dist/docx/headerFooterRefParser.js +52 -0
  79. package/dist/docx/headerFooterReferenceNormalization.d.ts +19 -0
  80. package/dist/docx/headerFooterReferenceNormalization.js +64 -0
  81. package/dist/docx/hyperlinkParser.d.ts +108 -0
  82. package/dist/docx/hyperlinkParser.js +230 -0
  83. package/dist/docx/imageParser.d.ts +93 -0
  84. package/dist/docx/imageParser.js +522 -0
  85. package/dist/docx/mathToMathml.d.ts +15 -0
  86. package/dist/docx/mathToMathml.js +357 -0
  87. package/dist/docx/modelValidation.d.ts +13 -0
  88. package/dist/docx/modelValidation.js +21 -0
  89. package/dist/docx/normalizeBaseDirection.d.ts +12 -0
  90. package/dist/docx/normalizeBaseDirection.js +81 -0
  91. package/dist/docx/notePropertiesParser.d.ts +16 -0
  92. package/dist/docx/notePropertiesParser.js +99 -0
  93. package/dist/docx/numberingParser.d.ts +86 -0
  94. package/dist/docx/numberingParser.js +735 -0
  95. package/dist/docx/numberingReferenceNormalization.d.ts +25 -0
  96. package/dist/docx/numberingReferenceNormalization.js +22 -0
  97. package/dist/docx/paragraphParser.d.ts +86 -0
  98. package/dist/docx/paragraphParser.js +1132 -0
  99. package/dist/docx/paragraphTraversal.d.ts +19 -0
  100. package/dist/docx/paragraphTraversal.js +76 -0
  101. package/dist/docx/parser.d.ts +67 -0
  102. package/dist/docx/parser.js +391 -0
  103. package/dist/docx/parserEnums.d.ts +45 -0
  104. package/dist/docx/parserEnums.js +70 -0
  105. package/dist/docx/relsParser.d.ts +160 -0
  106. package/dist/docx/relsParser.js +235 -0
  107. package/dist/docx/replyToComment.d.ts +29 -0
  108. package/dist/docx/replyToComment.js +73 -0
  109. package/dist/docx/rezip.d.ts +166 -0
  110. package/dist/docx/rezip.js +1194 -0
  111. package/dist/docx/runConsolidator.d.ts +57 -0
  112. package/dist/docx/runConsolidator.js +224 -0
  113. package/dist/docx/runParser.d.ts +78 -0
  114. package/dist/docx/runParser.js +661 -0
  115. package/dist/docx/sdtProperties.d.ts +15 -0
  116. package/dist/docx/sdtProperties.js +290 -0
  117. package/dist/docx/sdtPropertiesPatch.d.ts +16 -0
  118. package/dist/docx/sdtPropertiesPatch.js +144 -0
  119. package/dist/docx/sectionParser.d.ts +95 -0
  120. package/dist/docx/sectionParser.js +534 -0
  121. package/dist/docx/selectiveSave.d.ts +25 -0
  122. package/dist/docx/selectiveSave.js +247 -0
  123. package/dist/docx/selectiveSaveFlags.d.ts +33 -0
  124. package/dist/docx/selectiveSaveFlags.js +11 -0
  125. package/dist/docx/selectiveSaveTripwire.d.ts +33 -0
  126. package/dist/docx/selectiveSaveTripwire.js +79 -0
  127. package/dist/docx/selectiveXmlPatch.d.ts +103 -0
  128. package/dist/docx/selectiveXmlPatch.js +493 -0
  129. package/dist/docx/serializer/blockSdtSerializer.d.ts +6 -0
  130. package/dist/docx/serializer/blockSdtSerializer.js +88 -0
  131. package/dist/docx/serializer/borderSerializer.d.ts +25 -0
  132. package/dist/docx/serializer/borderSerializer.js +44 -0
  133. package/dist/docx/serializer/commentSerializer.d.ts +31 -0
  134. package/dist/docx/serializer/commentSerializer.js +184 -0
  135. package/dist/docx/serializer/documentSerializer.d.ts +65 -0
  136. package/dist/docx/serializer/documentSerializer.js +199 -0
  137. package/dist/docx/serializer/headerFooterSerializer.d.ts +12 -0
  138. package/dist/docx/serializer/headerFooterSerializer.js +84 -0
  139. package/dist/docx/serializer/noteSerializer.d.ts +19 -0
  140. package/dist/docx/serializer/noteSerializer.js +70 -0
  141. package/dist/docx/serializer/numberingSerializer.d.ts +12 -0
  142. package/dist/docx/serializer/numberingSerializer.js +93 -0
  143. package/dist/docx/serializer/paragraphSerializer.d.ts +48 -0
  144. package/dist/docx/serializer/paragraphSerializer.js +559 -0
  145. package/dist/docx/serializer/runSerializer.d.ts +56 -0
  146. package/dist/docx/serializer/runSerializer.js +621 -0
  147. package/dist/docx/serializer/sectionPropertiesSerializer.d.ts +6 -0
  148. package/dist/docx/serializer/sectionPropertiesSerializer.js +187 -0
  149. package/dist/docx/serializer/tableSerializer.d.ts +79 -0
  150. package/dist/docx/serializer/tableSerializer.js +422 -0
  151. package/dist/docx/serializer/xmlUtils.d.ts +20 -0
  152. package/dist/docx/serializer/xmlUtils.js +25 -0
  153. package/dist/docx/settingsParser.d.ts +8 -0
  154. package/dist/docx/settingsParser.js +36 -0
  155. package/dist/docx/shapeParser.d.ts +20 -0
  156. package/dist/docx/shapeParser.js +272 -0
  157. package/dist/docx/styleParser.d.ts +50 -0
  158. package/dist/docx/styleParser.js +905 -0
  159. package/dist/docx/tableParser.d.ts +202 -0
  160. package/dist/docx/tableParser.js +811 -0
  161. package/dist/docx/textBoxParser.d.ts +117 -0
  162. package/dist/docx/textBoxParser.js +262 -0
  163. package/dist/docx/themeParser.d.ts +77 -0
  164. package/dist/docx/themeParser.js +330 -0
  165. package/dist/docx/trackedMoveRangeNormalization.d.ts +22 -0
  166. package/dist/docx/trackedMoveRangeNormalization.js +100 -0
  167. package/dist/docx/unzip.d.ts +118 -0
  168. package/dist/docx/unzip.js +383 -0
  169. package/dist/docx/vmlImageParser.d.ts +16 -0
  170. package/dist/docx/vmlImageParser.js +100 -0
  171. package/dist/docx/watermarkParser.d.ts +45 -0
  172. package/dist/docx/watermarkParser.js +348 -0
  173. package/dist/docx/wrapTypes.d.ts +29 -0
  174. package/dist/docx/wrapTypes.js +48 -0
  175. package/dist/docx/xmlParser.d.ts +297 -0
  176. package/dist/docx/xmlParser.js +527 -0
  177. package/dist/fields/bookmarkPages.d.ts +13 -0
  178. package/dist/fields/bookmarkPages.js +66 -0
  179. package/dist/fields/bookmarkText.d.ts +16 -0
  180. package/dist/fields/bookmarkText.js +61 -0
  181. package/dist/fields/evaluateField.d.ts +23 -0
  182. package/dist/fields/evaluateField.js +77 -0
  183. package/dist/fields/fieldContext.d.ts +21 -0
  184. package/dist/fields/fieldContext.js +0 -0
  185. package/dist/fields/resolveFieldValues.d.ts +44 -0
  186. package/dist/fields/resolveFieldValues.js +204 -0
  187. package/dist/fields/sectionPageCounts.d.ts +11 -0
  188. package/dist/fields/sectionPageCounts.js +16 -0
  189. package/dist/fields/seqValues.d.ts +14 -0
  190. package/dist/fields/seqValues.js +36 -0
  191. package/dist/fonts/embeddedFontTable.d.ts +42 -0
  192. package/dist/fonts/embeddedFontTable.js +80 -0
  193. package/dist/fonts/embeddedFonts.d.ts +46 -0
  194. package/dist/fonts/embeddedFonts.js +112 -0
  195. package/dist/fonts/fontDeobfuscation.d.ts +30 -0
  196. package/dist/fonts/fontDeobfuscation.js +57 -0
  197. package/dist/index.d.ts +28 -0
  198. package/dist/index.js +23 -0
  199. package/dist/layout-bridge/convert/footnoteLayout.d.ts +57 -0
  200. package/dist/layout-bridge/convert/footnoteLayout.js +316 -0
  201. package/dist/layout-bridge/convert/headerFooterLayout.d.ts +74 -0
  202. package/dist/layout-bridge/convert/headerFooterLayout.js +432 -0
  203. package/dist/layout-bridge/convert/templatePreviewFlow.d.ts +36 -0
  204. package/dist/layout-bridge/convert/templatePreviewFlow.js +176 -0
  205. package/dist/layout-bridge/convert/toFlowBlocks.d.ts +65 -0
  206. package/dist/layout-bridge/convert/toFlowBlocks.js +1309 -0
  207. package/dist/layout-bridge/convert/wrapEditorViewAsSurface.d.ts +17 -0
  208. package/dist/layout-bridge/convert/wrapEditorViewAsSurface.js +36 -0
  209. package/dist/layout-bridge/dom/clickToPositionDom.d.ts +66 -0
  210. package/dist/layout-bridge/dom/clickToPositionDom.js +304 -0
  211. package/dist/layout-bridge/dom/findBodyPmSpans.d.ts +7 -0
  212. package/dist/layout-bridge/dom/findBodyPmSpans.js +17 -0
  213. package/dist/layout-bridge/dom/findHfPmSpans.d.ts +62 -0
  214. package/dist/layout-bridge/dom/findHfPmSpans.js +197 -0
  215. package/dist/layout-bridge/engine/clickToPosition.d.ts +66 -0
  216. package/dist/layout-bridge/engine/clickToPosition.js +403 -0
  217. package/dist/layout-bridge/engine/hitTest.d.ts +135 -0
  218. package/dist/layout-bridge/engine/hitTest.js +375 -0
  219. package/dist/layout-bridge/engine/measuring/index.d.ts +10 -0
  220. package/dist/layout-bridge/engine/measuring/index.js +9 -0
  221. package/dist/layout-bridge/engine/selectionRects.d.ts +59 -0
  222. package/dist/layout-bridge/engine/selectionRects.js +485 -0
  223. package/dist/layout-bridge/engine/tableWidthUtils.d.ts +7 -0
  224. package/dist/layout-bridge/engine/tableWidthUtils.js +25 -0
  225. package/dist/layout-engine/index.d.ts +44 -0
  226. package/dist/layout-engine/index.js +691 -0
  227. package/dist/layout-engine/keep-together.d.ts +43 -0
  228. package/dist/layout-engine/keep-together.js +98 -0
  229. package/dist/layout-engine/layoutInstrumentation.d.ts +50 -0
  230. package/dist/layout-engine/layoutInstrumentation.js +43 -0
  231. package/dist/layout-engine/lineFlow.d.ts +8 -0
  232. package/dist/layout-engine/lineFlow.js +17 -0
  233. package/dist/layout-engine/measure/cache.d.ts +93 -0
  234. package/dist/layout-engine/measure/cache.js +245 -0
  235. package/dist/layout-engine/measure/clampFloatingWrapMargins.d.ts +20 -0
  236. package/dist/layout-engine/measure/clampFloatingWrapMargins.js +29 -0
  237. package/dist/layout-engine/measure/featureFlags.d.ts +44 -0
  238. package/dist/layout-engine/measure/featureFlags.js +19 -0
  239. package/dist/layout-engine/measure/floatingZones.d.ts +89 -0
  240. package/dist/layout-engine/measure/floatingZones.js +152 -0
  241. package/dist/layout-engine/measure/font-metrics.worker.d.ts +17 -0
  242. package/dist/layout-engine/measure/font-metrics.worker.js +104 -0
  243. package/dist/layout-engine/measure/index.d.ts +9 -0
  244. package/dist/layout-engine/measure/index.js +8 -0
  245. package/dist/layout-engine/measure/listMarkerWidth.d.ts +40 -0
  246. package/dist/layout-engine/measure/listMarkerWidth.js +76 -0
  247. package/dist/layout-engine/measure/measureBlocks.d.ts +25 -0
  248. package/dist/layout-engine/measure/measureBlocks.js +450 -0
  249. package/dist/layout-engine/measure/measureContainer.d.ts +24 -0
  250. package/dist/layout-engine/measure/measureContainer.js +280 -0
  251. package/dist/layout-engine/measure/measureHelpers.d.ts +82 -0
  252. package/dist/layout-engine/measure/measureHelpers.js +156 -0
  253. package/dist/layout-engine/measure/measureParagraph.d.ts +61 -0
  254. package/dist/layout-engine/measure/measureParagraph.js +724 -0
  255. package/dist/layout-engine/measure/measureProvider.d.ts +23 -0
  256. package/dist/layout-engine/measure/measureProvider.js +35 -0
  257. package/dist/layout-engine/measure/measureTypes.d.ts +61 -0
  258. package/dist/layout-engine/measure/measureTypes.js +0 -0
  259. package/dist/layout-engine/measure/measureWorker.d.ts +54 -0
  260. package/dist/layout-engine/measure/measureWorker.js +249 -0
  261. package/dist/layout-engine/measure/measureWorkerProtocol.d.ts +88 -0
  262. package/dist/layout-engine/measure/measureWorkerProtocol.js +20 -0
  263. package/dist/layout-engine/measure/tableCellFloating.d.ts +26 -0
  264. package/dist/layout-engine/measure/tableCellFloating.js +99 -0
  265. package/dist/layout-engine/paginator.d.ts +84 -0
  266. package/dist/layout-engine/paginator.js +348 -0
  267. package/dist/layout-engine/paragraphFragmentRange.d.ts +9 -0
  268. package/dist/layout-engine/paragraphFragmentRange.js +40 -0
  269. package/dist/layout-engine/section-breaks.d.ts +78 -0
  270. package/dist/layout-engine/section-breaks.js +182 -0
  271. package/dist/layout-engine/tableRowBreak.d.ts +23 -0
  272. package/dist/layout-engine/tableRowBreak.js +147 -0
  273. package/dist/layout-engine/textBoxFlow.d.ts +50 -0
  274. package/dist/layout-engine/textBoxFlow.js +160 -0
  275. package/dist/layout-engine/types.d.ts +1031 -0
  276. package/dist/layout-engine/types.js +100 -0
  277. package/dist/layout-painter/documentColors.d.ts +4 -0
  278. package/dist/layout-painter/documentColors.js +40 -0
  279. package/dist/layout-painter/index.d.ts +110 -0
  280. package/dist/layout-painter/index.js +182 -0
  281. package/dist/layout-painter/registry/modules/image.d.ts +6 -0
  282. package/dist/layout-painter/registry/modules/image.js +17 -0
  283. package/dist/layout-painter/registry/modules/paragraph.d.ts +6 -0
  284. package/dist/layout-painter/registry/modules/paragraph.js +18 -0
  285. package/dist/layout-painter/registry/modules/table.d.ts +6 -0
  286. package/dist/layout-painter/registry/modules/table.js +16 -0
  287. package/dist/layout-painter/registry/modules/textBox.d.ts +6 -0
  288. package/dist/layout-painter/registry/modules/textBox.js +13 -0
  289. package/dist/layout-painter/registry/modules.d.ts +6 -0
  290. package/dist/layout-painter/registry/modules.js +26 -0
  291. package/dist/layout-painter/registry/registry.d.ts +24 -0
  292. package/dist/layout-painter/registry/registry.js +53 -0
  293. package/dist/layout-painter/registry/types.d.ts +61 -0
  294. package/dist/layout-painter/registry/types.js +0 -0
  295. package/dist/layout-painter/renderFragment.d.ts +32 -0
  296. package/dist/layout-painter/renderFragment.js +114 -0
  297. package/dist/layout-painter/renderImage.d.ts +88 -0
  298. package/dist/layout-painter/renderImage.js +130 -0
  299. package/dist/layout-painter/renderPage.d.ts +264 -0
  300. package/dist/layout-painter/renderPage.js +1795 -0
  301. package/dist/layout-painter/renderParagraph.d.ts +93 -0
  302. package/dist/layout-painter/renderParagraph.js +1300 -0
  303. package/dist/layout-painter/renderTable.d.ts +36 -0
  304. package/dist/layout-painter/renderTable.js +432 -0
  305. package/dist/layout-painter/renderTextBox.d.ts +22 -0
  306. package/dist/layout-painter/renderTextBox.js +67 -0
  307. package/dist/layout-painter/renderUtils.d.ts +42 -0
  308. package/dist/layout-painter/renderUtils.js +30 -0
  309. package/dist/layout-painter/renderWatermark.d.ts +16 -0
  310. package/dist/layout-painter/renderWatermark.js +61 -0
  311. package/dist/layout-painter/sdtBoundary.d.ts +6 -0
  312. package/dist/layout-painter/sdtBoundary.js +28 -0
  313. package/dist/managers/ContextMenuManager.d.ts +28 -0
  314. package/dist/managers/ContextMenuManager.js +48 -0
  315. package/dist/managers/DocumentLoaderManager.d.ts +47 -0
  316. package/dist/managers/DocumentLoaderManager.js +69 -0
  317. package/dist/managers/EditorModeManager.d.ts +28 -0
  318. package/dist/managers/EditorModeManager.js +50 -0
  319. package/dist/managers/ErrorManager.d.ts +26 -0
  320. package/dist/managers/ErrorManager.js +85 -0
  321. package/dist/managers/FindReplaceManager.d.ts +54 -0
  322. package/dist/managers/FindReplaceManager.js +104 -0
  323. package/dist/managers/HistoryManager.d.ts +92 -0
  324. package/dist/managers/HistoryManager.js +193 -0
  325. package/dist/managers/Subscribable.d.ts +34 -0
  326. package/dist/managers/Subscribable.js +46 -0
  327. package/dist/managers/TableSelectionManager.d.ts +74 -0
  328. package/dist/managers/TableSelectionManager.js +225 -0
  329. package/dist/managers/editorShortcuts.d.ts +42 -0
  330. package/dist/managers/editorShortcuts.js +60 -0
  331. package/dist/managers/types.d.ts +41 -0
  332. package/dist/managers/types.js +0 -0
  333. package/dist/markdown/annotations.d.ts +14 -0
  334. package/dist/markdown/annotations.js +42 -0
  335. package/dist/markdown/escape.d.ts +36 -0
  336. package/dist/markdown/escape.js +59 -0
  337. package/dist/markdown/fromMarkdown.d.ts +11 -0
  338. package/dist/markdown/fromMarkdown.js +223 -0
  339. package/dist/markdown/headings.d.ts +13 -0
  340. package/dist/markdown/headings.js +20 -0
  341. package/dist/markdown/images.d.ts +13 -0
  342. package/dist/markdown/images.js +63 -0
  343. package/dist/markdown/index.d.ts +18 -0
  344. package/dist/markdown/index.js +33 -0
  345. package/dist/markdown/internals.d.ts +15 -0
  346. package/dist/markdown/internals.js +35 -0
  347. package/dist/markdown/renderBlock.d.ts +7 -0
  348. package/dist/markdown/renderBlock.js +68 -0
  349. package/dist/markdown/renderParagraph.d.ts +11 -0
  350. package/dist/markdown/renderParagraph.js +64 -0
  351. package/dist/markdown/renderRuns.d.ts +11 -0
  352. package/dist/markdown/renderRuns.js +265 -0
  353. package/dist/markdown/renderTable.d.ts +8 -0
  354. package/dist/markdown/renderTable.js +229 -0
  355. package/dist/markdown/trailers.d.ts +13 -0
  356. package/dist/markdown/trailers.js +54 -0
  357. package/dist/markdown/types.d.ts +118 -0
  358. package/dist/markdown/types.js +0 -0
  359. package/dist/model.d.ts +13 -0
  360. package/dist/model.js +4 -0
  361. package/dist/paged-layout/LayoutSelectionGate.d.ts +80 -0
  362. package/dist/paged-layout/LayoutSelectionGate.js +131 -0
  363. package/dist/paged-layout/headerFooterMargins.d.ts +73 -0
  364. package/dist/paged-layout/headerFooterMargins.js +120 -0
  365. package/dist/paged-layout/hiddenEditorScroll.d.ts +4 -0
  366. package/dist/paged-layout/hiddenEditorScroll.js +4 -0
  367. package/dist/paged-layout/incrementalMeasure.d.ts +33 -0
  368. package/dist/paged-layout/incrementalMeasure.js +56 -0
  369. package/dist/paged-layout/rangeProjection.d.ts +51 -0
  370. package/dist/paged-layout/rangeProjection.js +153 -0
  371. package/dist/paged-layout/readOnlyEditAttempt.d.ts +5 -0
  372. package/dist/paged-layout/readOnlyEditAttempt.js +22 -0
  373. package/dist/paged-layout/scrollNavigation.d.ts +23 -0
  374. package/dist/paged-layout/scrollNavigation.js +31 -0
  375. package/dist/paged-layout/scrollPageInfo.d.ts +41 -0
  376. package/dist/paged-layout/scrollPageInfo.js +34 -0
  377. package/dist/paged-layout/scrollToPmPosition.d.ts +17 -0
  378. package/dist/paged-layout/scrollToPmPosition.js +95 -0
  379. package/dist/paged-layout/sectionBlockWidths.d.ts +35 -0
  380. package/dist/paged-layout/sectionBlockWidths.js +52 -0
  381. package/dist/paged-layout/sectionGeometry.d.ts +21 -0
  382. package/dist/paged-layout/sectionGeometry.js +36 -0
  383. package/dist/paged-layout/selectionViewportRect.d.ts +29 -0
  384. package/dist/paged-layout/selectionViewportRect.js +55 -0
  385. package/dist/paged-layout/tableColumnResize.d.ts +19 -0
  386. package/dist/paged-layout/tableColumnResize.js +28 -0
  387. package/dist/paged-layout/tableInsertButtonGeometry.d.ts +15 -0
  388. package/dist/paged-layout/tableInsertButtonGeometry.js +15 -0
  389. package/dist/paged-layout/transactionDirtyRange.d.ts +7 -0
  390. package/dist/paged-layout/transactionDirtyRange.js +27 -0
  391. package/dist/paged-layout/zoomScrollAnchor.d.ts +40 -0
  392. package/dist/paged-layout/zoomScrollAnchor.js +25 -0
  393. package/dist/prosemirror/attrs/index.d.ts +80 -0
  394. package/dist/prosemirror/attrs/index.js +1218 -0
  395. package/dist/prosemirror/autospacingBase.d.ts +11 -0
  396. package/dist/prosemirror/autospacingBase.js +16 -0
  397. package/dist/prosemirror/commands/comments.d.ts +93 -0
  398. package/dist/prosemirror/commands/comments.js +435 -0
  399. package/dist/prosemirror/commands/contentControls.d.ts +45 -0
  400. package/dist/prosemirror/commands/contentControls.js +294 -0
  401. package/dist/prosemirror/commands/contentControlsBlockFill.d.ts +15 -0
  402. package/dist/prosemirror/commands/contentControlsBlockFill.js +19 -0
  403. package/dist/prosemirror/commands/formatPainter.d.ts +31 -0
  404. package/dist/prosemirror/commands/formatPainter.js +130 -0
  405. package/dist/prosemirror/commands/formatting.d.ts +32 -0
  406. package/dist/prosemirror/commands/formatting.js +45 -0
  407. package/dist/prosemirror/commands/hyperlink.d.ts +31 -0
  408. package/dist/prosemirror/commands/hyperlink.js +79 -0
  409. package/dist/prosemirror/commands/image.d.ts +59 -0
  410. package/dist/prosemirror/commands/image.js +219 -0
  411. package/dist/prosemirror/commands/index.d.ts +13 -0
  412. package/dist/prosemirror/commands/index.js +13 -0
  413. package/dist/prosemirror/commands/pageBreak.d.ts +10 -0
  414. package/dist/prosemirror/commands/pageBreak.js +47 -0
  415. package/dist/prosemirror/commands/paragraph.d.ts +39 -0
  416. package/dist/prosemirror/commands/paragraph.js +64 -0
  417. package/dist/prosemirror/commands/pastePlainText.d.ts +39 -0
  418. package/dist/prosemirror/commands/pastePlainText.js +67 -0
  419. package/dist/prosemirror/commands/table.d.ts +83 -0
  420. package/dist/prosemirror/commands/table.js +105 -0
  421. package/dist/prosemirror/conversion/fromProseDoc.d.ts +27 -0
  422. package/dist/prosemirror/conversion/fromProseDoc.js +1550 -0
  423. package/dist/prosemirror/conversion/index.d.ts +4 -0
  424. package/dist/prosemirror/conversion/index.js +4 -0
  425. package/dist/prosemirror/conversion/runShadingMark.d.ts +16 -0
  426. package/dist/prosemirror/conversion/runShadingMark.js +39 -0
  427. package/dist/prosemirror/conversion/toProseDoc.d.ts +39 -0
  428. package/dist/prosemirror/conversion/toProseDoc.js +1404 -0
  429. package/dist/prosemirror/extensions/ExtensionManager.d.ts +43 -0
  430. package/dist/prosemirror/extensions/ExtensionManager.js +86 -0
  431. package/dist/prosemirror/extensions/StarterKit.d.ts +16 -0
  432. package/dist/prosemirror/extensions/StarterKit.js +132 -0
  433. package/dist/prosemirror/extensions/core/DocExtension.d.ts +9 -0
  434. package/dist/prosemirror/extensions/core/DocExtension.js +12 -0
  435. package/dist/prosemirror/extensions/core/HistoryExtension.d.ts +13 -0
  436. package/dist/prosemirror/extensions/core/HistoryExtension.js +28 -0
  437. package/dist/prosemirror/extensions/core/ParagraphExtension.d.ts +25 -0
  438. package/dist/prosemirror/extensions/core/ParagraphExtension.js +619 -0
  439. package/dist/prosemirror/extensions/core/TextExtension.d.ts +9 -0
  440. package/dist/prosemirror/extensions/core/TextExtension.js +12 -0
  441. package/dist/prosemirror/extensions/create.d.ts +17 -0
  442. package/dist/prosemirror/extensions/create.js +129 -0
  443. package/dist/prosemirror/extensions/features/AutoBidiDetectionExtension.d.ts +23 -0
  444. package/dist/prosemirror/extensions/features/AutoBidiDetectionExtension.js +106 -0
  445. package/dist/prosemirror/extensions/features/BaseKeymapExtension.d.ts +8 -0
  446. package/dist/prosemirror/extensions/features/BaseKeymapExtension.js +172 -0
  447. package/dist/prosemirror/extensions/features/BidiShortcutExtension.d.ts +16 -0
  448. package/dist/prosemirror/extensions/features/BidiShortcutExtension.js +38 -0
  449. package/dist/prosemirror/extensions/features/ContentControlWidgetsExtension.d.ts +16 -0
  450. package/dist/prosemirror/extensions/features/ContentControlWidgetsExtension.js +21 -0
  451. package/dist/prosemirror/extensions/features/DropCursorExtension.d.ts +12 -0
  452. package/dist/prosemirror/extensions/features/DropCursorExtension.js +20 -0
  453. package/dist/prosemirror/extensions/features/EmptyParagraphFormatExtension.d.ts +8 -0
  454. package/dist/prosemirror/extensions/features/EmptyParagraphFormatExtension.js +44 -0
  455. package/dist/prosemirror/extensions/features/GapCursorExtension.d.ts +19 -0
  456. package/dist/prosemirror/extensions/features/GapCursorExtension.js +24 -0
  457. package/dist/prosemirror/extensions/features/ImageDragExtension.d.ts +15 -0
  458. package/dist/prosemirror/extensions/features/ImageDragExtension.js +66 -0
  459. package/dist/prosemirror/extensions/features/ImagePasteExtension.d.ts +12 -0
  460. package/dist/prosemirror/extensions/features/ImagePasteExtension.js +91 -0
  461. package/dist/prosemirror/extensions/features/ListExtension.d.ts +14 -0
  462. package/dist/prosemirror/extensions/features/ListExtension.js +340 -0
  463. package/dist/prosemirror/extensions/features/ParaIdAllocatorExtension.d.ts +9 -0
  464. package/dist/prosemirror/extensions/features/ParaIdAllocatorExtension.js +60 -0
  465. package/dist/prosemirror/extensions/features/ParagraphChangeTrackerExtension.d.ts +35 -0
  466. package/dist/prosemirror/extensions/features/ParagraphChangeTrackerExtension.js +188 -0
  467. package/dist/prosemirror/extensions/features/PasteCleanupExtension.d.ts +20 -0
  468. package/dist/prosemirror/extensions/features/PasteCleanupExtension.js +34 -0
  469. package/dist/prosemirror/extensions/features/PasteStyleInlinerExtension.d.ts +20 -0
  470. package/dist/prosemirror/extensions/features/PasteStyleInlinerExtension.js +145 -0
  471. package/dist/prosemirror/extensions/features/SelectionTrackerExtension.d.ts +10 -0
  472. package/dist/prosemirror/extensions/features/SelectionTrackerExtension.js +17 -0
  473. package/dist/prosemirror/extensions/features/bidiShortcutController.d.ts +31 -0
  474. package/dist/prosemirror/extensions/features/bidiShortcutController.js +27 -0
  475. package/dist/prosemirror/extensions/features/pasteCleanup.d.ts +31 -0
  476. package/dist/prosemirror/extensions/features/pasteCleanup.js +159 -0
  477. package/dist/prosemirror/extensions/marks/AllCapsExtension.d.ts +9 -0
  478. package/dist/prosemirror/extensions/marks/AllCapsExtension.js +24 -0
  479. package/dist/prosemirror/extensions/marks/BoldExtension.d.ts +9 -0
  480. package/dist/prosemirror/extensions/marks/BoldExtension.js +41 -0
  481. package/dist/prosemirror/extensions/marks/CharacterSpacingExtension.d.ts +14 -0
  482. package/dist/prosemirror/extensions/marks/CharacterSpacingExtension.js +64 -0
  483. package/dist/prosemirror/extensions/marks/CharacterStyleExtension.d.ts +23 -0
  484. package/dist/prosemirror/extensions/marks/CharacterStyleExtension.js +47 -0
  485. package/dist/prosemirror/extensions/marks/CommentExtension.d.ts +12 -0
  486. package/dist/prosemirror/extensions/marks/CommentExtension.js +38 -0
  487. package/dist/prosemirror/extensions/marks/FontFamilyExtension.d.ts +9 -0
  488. package/dist/prosemirror/extensions/marks/FontFamilyExtension.js +55 -0
  489. package/dist/prosemirror/extensions/marks/FontSizeExtension.d.ts +9 -0
  490. package/dist/prosemirror/extensions/marks/FontSizeExtension.js +47 -0
  491. package/dist/prosemirror/extensions/marks/FootnoteRefExtension.d.ts +11 -0
  492. package/dist/prosemirror/extensions/marks/FootnoteRefExtension.js +92 -0
  493. package/dist/prosemirror/extensions/marks/HiddenTextExtension.d.ts +23 -0
  494. package/dist/prosemirror/extensions/marks/HiddenTextExtension.js +35 -0
  495. package/dist/prosemirror/extensions/marks/HighlightExtension.d.ts +10 -0
  496. package/dist/prosemirror/extensions/marks/HighlightExtension.js +115 -0
  497. package/dist/prosemirror/extensions/marks/HyperlinkExtension.d.ts +13 -0
  498. package/dist/prosemirror/extensions/marks/HyperlinkExtension.js +146 -0
  499. package/dist/prosemirror/extensions/marks/ItalicExtension.d.ts +9 -0
  500. package/dist/prosemirror/extensions/marks/ItalicExtension.js +34 -0
  501. package/dist/prosemirror/extensions/marks/RtlExtension.d.ts +6 -0
  502. package/dist/prosemirror/extensions/marks/RtlExtension.js +21 -0
  503. package/dist/prosemirror/extensions/marks/RunFormattingOverrideExtension.d.ts +11 -0
  504. package/dist/prosemirror/extensions/marks/RunFormattingOverrideExtension.js +75 -0
  505. package/dist/prosemirror/extensions/marks/RunShadingExtension.d.ts +6 -0
  506. package/dist/prosemirror/extensions/marks/RunShadingExtension.js +38 -0
  507. package/dist/prosemirror/extensions/marks/SmallCapsExtension.d.ts +9 -0
  508. package/dist/prosemirror/extensions/marks/SmallCapsExtension.js +24 -0
  509. package/dist/prosemirror/extensions/marks/StrikeExtension.d.ts +9 -0
  510. package/dist/prosemirror/extensions/marks/StrikeExtension.js +33 -0
  511. package/dist/prosemirror/extensions/marks/SubscriptExtension.d.ts +9 -0
  512. package/dist/prosemirror/extensions/marks/SubscriptExtension.js +25 -0
  513. package/dist/prosemirror/extensions/marks/SuperscriptExtension.d.ts +9 -0
  514. package/dist/prosemirror/extensions/marks/SuperscriptExtension.js +25 -0
  515. package/dist/prosemirror/extensions/marks/TextColorExtension.d.ts +9 -0
  516. package/dist/prosemirror/extensions/marks/TextColorExtension.js +50 -0
  517. package/dist/prosemirror/extensions/marks/TextEffectExtension.d.ts +6 -0
  518. package/dist/prosemirror/extensions/marks/TextEffectExtension.js +35 -0
  519. package/dist/prosemirror/extensions/marks/TextEffectsExtensions.d.ts +31 -0
  520. package/dist/prosemirror/extensions/marks/TextEffectsExtensions.js +134 -0
  521. package/dist/prosemirror/extensions/marks/TrackedChangeExtensions.d.ts +22 -0
  522. package/dist/prosemirror/extensions/marks/TrackedChangeExtensions.js +113 -0
  523. package/dist/prosemirror/extensions/marks/UnderlineExtension.d.ts +9 -0
  524. package/dist/prosemirror/extensions/marks/UnderlineExtension.js +60 -0
  525. package/dist/prosemirror/extensions/marks/markUtils.d.ts +34 -0
  526. package/dist/prosemirror/extensions/marks/markUtils.js +233 -0
  527. package/dist/prosemirror/extensions/nodes/BlockSdtExtension.d.ts +22 -0
  528. package/dist/prosemirror/extensions/nodes/BlockSdtExtension.js +122 -0
  529. package/dist/prosemirror/extensions/nodes/FieldExtension.d.ts +12 -0
  530. package/dist/prosemirror/extensions/nodes/FieldExtension.js +87 -0
  531. package/dist/prosemirror/extensions/nodes/HardBreakExtension.d.ts +9 -0
  532. package/dist/prosemirror/extensions/nodes/HardBreakExtension.js +38 -0
  533. package/dist/prosemirror/extensions/nodes/HorizontalRuleExtension.d.ts +9 -0
  534. package/dist/prosemirror/extensions/nodes/HorizontalRuleExtension.js +18 -0
  535. package/dist/prosemirror/extensions/nodes/ImageExtension.d.ts +9 -0
  536. package/dist/prosemirror/extensions/nodes/ImageExtension.js +132 -0
  537. package/dist/prosemirror/extensions/nodes/MathExtension.d.ts +13 -0
  538. package/dist/prosemirror/extensions/nodes/MathExtension.js +56 -0
  539. package/dist/prosemirror/extensions/nodes/PageBreakExtension.d.ts +9 -0
  540. package/dist/prosemirror/extensions/nodes/PageBreakExtension.js +20 -0
  541. package/dist/prosemirror/extensions/nodes/SdtExtension.d.ts +12 -0
  542. package/dist/prosemirror/extensions/nodes/SdtExtension.js +107 -0
  543. package/dist/prosemirror/extensions/nodes/ShapeExtension.d.ts +30 -0
  544. package/dist/prosemirror/extensions/nodes/ShapeExtension.js +502 -0
  545. package/dist/prosemirror/extensions/nodes/TabExtension.d.ts +9 -0
  546. package/dist/prosemirror/extensions/nodes/TabExtension.js +27 -0
  547. package/dist/prosemirror/extensions/nodes/TableExtension.d.ts +34 -0
  548. package/dist/prosemirror/extensions/nodes/TableExtension.js +1972 -0
  549. package/dist/prosemirror/extensions/nodes/TextBoxExtension.d.ts +34 -0
  550. package/dist/prosemirror/extensions/nodes/TextBoxExtension.js +150 -0
  551. package/dist/prosemirror/extensions/types.d.ts +101 -0
  552. package/dist/prosemirror/extensions/types.js +10 -0
  553. package/dist/prosemirror/findReplaceSelection.d.ts +23 -0
  554. package/dist/prosemirror/findReplaceSelection.js +86 -0
  555. package/dist/prosemirror/index.d.ts +25 -0
  556. package/dist/prosemirror/index.js +23 -0
  557. package/dist/prosemirror/insertOperations.d.ts +12 -0
  558. package/dist/prosemirror/insertOperations.js +19 -0
  559. package/dist/prosemirror/paragraphDirection.d.ts +42 -0
  560. package/dist/prosemirror/paragraphDirection.js +33 -0
  561. package/dist/prosemirror/plugins/aiCitationDecorations.d.ts +40 -0
  562. package/dist/prosemirror/plugins/aiCitationDecorations.js +90 -0
  563. package/dist/prosemirror/plugins/aiSuggestionDecorations.d.ts +42 -0
  564. package/dist/prosemirror/plugins/aiSuggestionDecorations.js +135 -0
  565. package/dist/prosemirror/plugins/anonymizationDecorations.d.ts +60 -0
  566. package/dist/prosemirror/plugins/anonymizationDecorations.js +120 -0
  567. package/dist/prosemirror/plugins/autocompleteSuggestion.d.ts +123 -0
  568. package/dist/prosemirror/plugins/autocompleteSuggestion.js +283 -0
  569. package/dist/prosemirror/plugins/contentControlWidgets.d.ts +56 -0
  570. package/dist/prosemirror/plugins/contentControlWidgets.js +192 -0
  571. package/dist/prosemirror/plugins/createDocScanPlugin.d.ts +37 -0
  572. package/dist/prosemirror/plugins/createDocScanPlugin.js +55 -0
  573. package/dist/prosemirror/plugins/documentStyles.d.ts +18 -0
  574. package/dist/prosemirror/plugins/documentStyles.js +46 -0
  575. package/dist/prosemirror/plugins/index.d.ts +3 -0
  576. package/dist/prosemirror/plugins/index.js +3 -0
  577. package/dist/prosemirror/plugins/pmTextScan.d.ts +19 -0
  578. package/dist/prosemirror/plugins/pmTextScan.js +39 -0
  579. package/dist/prosemirror/plugins/selectionTracker.d.ts +43 -0
  580. package/dist/prosemirror/plugins/selectionTracker.js +179 -0
  581. package/dist/prosemirror/plugins/suggestionMode.d.ts +70 -0
  582. package/dist/prosemirror/plugins/suggestionMode.js +489 -0
  583. package/dist/prosemirror/plugins/templateDirectives.d.ts +25 -0
  584. package/dist/prosemirror/plugins/templateDirectives.js +67 -0
  585. package/dist/prosemirror/plugins/templatePreviewValues.d.ts +49 -0
  586. package/dist/prosemirror/plugins/templatePreviewValues.js +117 -0
  587. package/dist/prosemirror/plugins/templateSlashMenu.d.ts +57 -0
  588. package/dist/prosemirror/plugins/templateSlashMenu.js +184 -0
  589. package/dist/prosemirror/schema/index.d.ts +15 -0
  590. package/dist/prosemirror/schema/index.js +20 -0
  591. package/dist/prosemirror/schema/marks.d.ts +118 -0
  592. package/dist/prosemirror/schema/marks.js +0 -0
  593. package/dist/prosemirror/schema/nodes.d.ts +389 -0
  594. package/dist/prosemirror/schema/nodes.js +0 -0
  595. package/dist/prosemirror/selectionState.d.ts +23 -0
  596. package/dist/prosemirror/selectionState.js +111 -0
  597. package/dist/prosemirror/styles/index.d.ts +2 -0
  598. package/dist/prosemirror/styles/index.js +2 -0
  599. package/dist/prosemirror/styles/resolvedStyleAttrs.d.ts +32 -0
  600. package/dist/prosemirror/styles/resolvedStyleAttrs.js +108 -0
  601. package/dist/prosemirror/styles/styleResolver.d.ts +94 -0
  602. package/dist/prosemirror/styles/styleResolver.js +200 -0
  603. package/dist/prosemirror/utils/findParagraphByParaId.d.ts +26 -0
  604. package/dist/prosemirror/utils/findParagraphByParaId.js +37 -0
  605. package/dist/prosemirror/utils/tabCalculator.d.ts +110 -0
  606. package/dist/prosemirror/utils/tabCalculator.js +137 -0
  607. package/dist/prosemirror/validation.d.ts +20 -0
  608. package/dist/prosemirror/validation.js +177 -0
  609. package/dist/server.d.ts +7 -0
  610. package/dist/server.js +6 -0
  611. package/dist/style-engine/index.d.ts +3 -0
  612. package/dist/style-engine/index.js +2 -0
  613. package/dist/style-engine/styleEngine.d.ts +67 -0
  614. package/dist/style-engine/styleEngine.js +70 -0
  615. package/dist/types/block-id.d.ts +58 -0
  616. package/dist/types/block-id.js +61 -0
  617. package/dist/types/colors.d.ts +2 -0
  618. package/dist/types/colors.js +0 -0
  619. package/dist/types/content.d.ts +2 -0
  620. package/dist/types/content.js +0 -0
  621. package/dist/types/document.d.ts +7 -0
  622. package/dist/types/document.js +0 -0
  623. package/dist/types/documentEnumValues.d.ts +89 -0
  624. package/dist/types/documentEnumValues.js +693 -0
  625. package/dist/types/formatting.d.ts +2 -0
  626. package/dist/types/formatting.js +0 -0
  627. package/dist/types/index.d.ts +107 -0
  628. package/dist/types/index.js +0 -0
  629. package/dist/utils/authorColors.d.ts +16 -0
  630. package/dist/utils/authorColors.js +30 -0
  631. package/dist/utils/baseDirection.d.ts +23 -0
  632. package/dist/utils/baseDirection.js +34 -0
  633. package/dist/utils/clipboard.d.ts +126 -0
  634. package/dist/utils/clipboard.js +622 -0
  635. package/dist/utils/colorResolver.d.ts +158 -0
  636. package/dist/utils/colorResolver.js +557 -0
  637. package/dist/utils/createDocument.d.ts +50 -0
  638. package/dist/utils/createDocument.js +262 -0
  639. package/dist/utils/documentLoaderBehavior.d.ts +22 -0
  640. package/dist/utils/documentLoaderBehavior.js +14 -0
  641. package/dist/utils/docxInput.d.ts +22 -0
  642. package/dist/utils/docxInput.js +16 -0
  643. package/dist/utils/domGuards.d.ts +59 -0
  644. package/dist/utils/domGuards.js +82 -0
  645. package/dist/utils/fontFamilyMerge.d.ts +7 -0
  646. package/dist/utils/fontFamilyMerge.js +31 -0
  647. package/dist/utils/fontLoader.d.ts +50 -0
  648. package/dist/utils/fontLoader.js +177 -0
  649. package/dist/utils/fontResolver.d.ts +61 -0
  650. package/dist/utils/fontResolver.js +651 -0
  651. package/dist/utils/fontWeights.d.ts +4 -0
  652. package/dist/utils/fontWeights.js +4 -0
  653. package/dist/utils/formatToStyle.d.ts +103 -0
  654. package/dist/utils/formatToStyle.js +289 -0
  655. package/dist/utils/headerFooter.d.ts +74 -0
  656. package/dist/utils/headerFooter.js +257 -0
  657. package/dist/utils/headingCollector.d.ts +22 -0
  658. package/dist/utils/headingCollector.js +36 -0
  659. package/dist/utils/hexId.d.ts +33 -0
  660. package/dist/utils/hexId.js +37 -0
  661. package/dist/utils/imageValidation.d.ts +5 -0
  662. package/dist/utils/imageValidation.js +31 -0
  663. package/dist/utils/paragraphFormattingMerge.d.ts +14 -0
  664. package/dist/utils/paragraphFormattingMerge.js +68 -0
  665. package/dist/utils/replaceText.d.ts +17 -0
  666. package/dist/utils/replaceText.js +161 -0
  667. package/dist/utils/rotationBoundingBox.d.ts +12 -0
  668. package/dist/utils/rotationBoundingBox.js +36 -0
  669. package/dist/utils/scriptSegments.d.ts +36 -0
  670. package/dist/utils/scriptSegments.js +52 -0
  671. package/dist/utils/tableOperations.d.ts +87 -0
  672. package/dist/utils/tableOperations.js +259 -0
  673. package/dist/utils/textFormattingMerge.d.ts +6 -0
  674. package/dist/utils/textFormattingMerge.js +31 -0
  675. package/dist/utils/tiffConverter.d.ts +18 -0
  676. package/dist/utils/tiffConverter.js +83 -0
  677. package/dist/utils/units.d.ts +99 -0
  678. package/dist/utils/units.js +139 -0
  679. package/dist/utils/urlSecurity.d.ts +7 -0
  680. package/dist/utils/urlSecurity.js +65 -0
  681. package/dist/watermark/index.d.ts +39 -0
  682. package/dist/watermark/index.js +149 -0
  683. package/package.json +122 -2
@@ -0,0 +1,246 @@
1
+ import { getAttribute, parseNumericAttribute } from "./xmlParser.js";
2
+ //#region src/docx/bookmarkParser.ts
3
+ /**
4
+ * Parse a bookmark start element (w:bookmarkStart)
5
+ *
6
+ * Extracts:
7
+ * - id: Numeric identifier (required, matches with bookmarkEnd)
8
+ * - name: Bookmark name (required, used by hyperlinks)
9
+ * - colFirst: First column for table bookmarks (optional)
10
+ * - colLast: Last column for table bookmarks (optional)
11
+ *
12
+ * @param node - The w:bookmarkStart XML element
13
+ * @returns Parsed BookmarkStart object
14
+ */
15
+ function parseBookmarkStart(node) {
16
+ const bookmark = {
17
+ type: "bookmarkStart",
18
+ id: parseNumericAttribute(node, "w", "id") ?? 0,
19
+ name: getAttribute(node, "w", "name") ?? ""
20
+ };
21
+ const colFirst = parseNumericAttribute(node, "w", "colFirst");
22
+ if (colFirst !== void 0) bookmark.colFirst = colFirst;
23
+ const colLast = parseNumericAttribute(node, "w", "colLast");
24
+ if (colLast !== void 0) bookmark.colLast = colLast;
25
+ return bookmark;
26
+ }
27
+ /**
28
+ * Parse a bookmark end element (w:bookmarkEnd)
29
+ *
30
+ * Bookmark ends only contain an ID that matches the corresponding start marker.
31
+ *
32
+ * @param node - The w:bookmarkEnd XML element
33
+ * @returns Parsed BookmarkEnd object
34
+ */
35
+ function parseBookmarkEnd(node) {
36
+ return {
37
+ type: "bookmarkEnd",
38
+ id: parseNumericAttribute(node, "w", "id") ?? 0
39
+ };
40
+ }
41
+ /**
42
+ * Create an empty bookmark map
43
+ */
44
+ function createBookmarkMap() {
45
+ return {
46
+ byId: /* @__PURE__ */ new Map(),
47
+ byName: /* @__PURE__ */ new Map(),
48
+ bookmarks: []
49
+ };
50
+ }
51
+ /**
52
+ * Add a bookmark to the map
53
+ *
54
+ * @param map - The bookmark map to update
55
+ * @param bookmark - The bookmark start to add
56
+ */
57
+ function addBookmark(map, bookmark) {
58
+ map.byId.set(bookmark.id, bookmark);
59
+ if (bookmark.name) map.byName.set(bookmark.name, bookmark);
60
+ map.bookmarks.push(bookmark);
61
+ }
62
+ /**
63
+ * Get a bookmark by name (for resolving internal hyperlinks)
64
+ *
65
+ * @param map - The bookmark map to search
66
+ * @param name - Bookmark name to find
67
+ * @returns The BookmarkStart or undefined if not found
68
+ */
69
+ function getBookmarkByName(map, name) {
70
+ return map.byName.get(name);
71
+ }
72
+ /**
73
+ * Get a bookmark by ID (for matching start/end pairs)
74
+ *
75
+ * @param map - The bookmark map to search
76
+ * @param id - Bookmark ID to find
77
+ * @returns The BookmarkStart or undefined if not found
78
+ */
79
+ function getBookmarkById(map, id) {
80
+ return map.byId.get(id);
81
+ }
82
+ /**
83
+ * Check if a bookmark exists by name
84
+ *
85
+ * @param map - The bookmark map to search
86
+ * @param name - Bookmark name to check
87
+ * @returns true if bookmark exists
88
+ */
89
+ function hasBookmark(map, name) {
90
+ return map.byName.has(name);
91
+ }
92
+ /**
93
+ * Get all bookmark names in the document
94
+ *
95
+ * @param map - The bookmark map
96
+ * @returns Array of bookmark names
97
+ */
98
+ function getAllBookmarkNames(map) {
99
+ return Array.from(map.byName.keys());
100
+ }
101
+ /**
102
+ * Check if a bookmark is a point bookmark (start and end at same location)
103
+ *
104
+ * Point bookmarks have no content between start and end markers.
105
+ * This is commonly used for insertion points.
106
+ *
107
+ * @param start - The bookmark start
108
+ * @param end - The bookmark end
109
+ * @param contents - Content between them
110
+ * @returns true if this is a point bookmark
111
+ */
112
+ function isPointBookmark(start, end, contents) {
113
+ return start.id === end.id && contents.length === 0;
114
+ }
115
+ /**
116
+ * Check if a bookmark is a table column bookmark
117
+ *
118
+ * Table bookmarks have colFirst and colLast attributes indicating
119
+ * they span specific table columns.
120
+ *
121
+ * @param bookmark - The bookmark to check
122
+ * @returns true if bookmark has column range info
123
+ */
124
+ function isTableBookmark(bookmark) {
125
+ return bookmark.colFirst !== void 0 || bookmark.colLast !== void 0;
126
+ }
127
+ /**
128
+ * Generate an internal hyperlink href from a bookmark name
129
+ *
130
+ * Internal hyperlinks use #anchor format.
131
+ *
132
+ * @param bookmarkName - The bookmark name to link to
133
+ * @returns Href string (e.g., "#BookmarkName")
134
+ */
135
+ function bookmarkToHref(bookmarkName) {
136
+ return `#${bookmarkName}`;
137
+ }
138
+ /**
139
+ * Extract bookmark name from an internal hyperlink href
140
+ *
141
+ * @param href - The href string
142
+ * @returns Bookmark name or null if not an internal link
143
+ */
144
+ function hrefToBookmarkName(href) {
145
+ if (href.startsWith("#")) return href.slice(1);
146
+ return null;
147
+ }
148
+ /**
149
+ * Check if a bookmark is a built-in Word bookmark
150
+ *
151
+ * Word uses certain reserved bookmark names for special purposes:
152
+ * - _GoBack: Last editing position
153
+ * - _Toc*: Table of contents entries
154
+ * - _Ref*: Cross-reference anchors
155
+ * - _Hlt*: Highlight ranges
156
+ *
157
+ * @param name - Bookmark name to check
158
+ * @returns true if this is a built-in bookmark
159
+ */
160
+ function isBuiltInBookmark(name) {
161
+ if (!name) return false;
162
+ if (name.startsWith("_")) return true;
163
+ return false;
164
+ }
165
+ /**
166
+ * Check if a bookmark is a TOC entry bookmark
167
+ *
168
+ * @param name - Bookmark name to check
169
+ * @returns true if bookmark is for TOC
170
+ */
171
+ function isTocBookmark(name) {
172
+ return name.startsWith("_Toc");
173
+ }
174
+ /**
175
+ * Check if a bookmark is a cross-reference anchor
176
+ *
177
+ * @param name - Bookmark name to check
178
+ * @returns true if bookmark is for cross-reference
179
+ */
180
+ function isRefBookmark(name) {
181
+ return name.startsWith("_Ref");
182
+ }
183
+ /**
184
+ * Get bookmark type category
185
+ *
186
+ * @param name - Bookmark name
187
+ * @returns Bookmark type
188
+ */
189
+ function getBookmarkType(name) {
190
+ if (name === "_GoBack") return "goBack";
191
+ if (isTocBookmark(name)) return "toc";
192
+ if (isRefBookmark(name)) return "ref";
193
+ if (isBuiltInBookmark(name)) return "internal";
194
+ return "user";
195
+ }
196
+ /**
197
+ * Validate that all bookmark starts have matching ends
198
+ *
199
+ * @param starts - Array of bookmark starts
200
+ * @param ends - Array of bookmark ends
201
+ * @returns Object with validation results
202
+ */
203
+ function validateBookmarkPairs(starts, ends) {
204
+ const startIds = new Set(starts.map((s) => s.id));
205
+ const endIds = new Set(ends.map((e) => e.id));
206
+ const unmatchedStarts = starts.filter((s) => !endIds.has(s.id));
207
+ const unmatchedEnds = ends.filter((e) => !startIds.has(e.id));
208
+ return {
209
+ valid: unmatchedStarts.length === 0 && unmatchedEnds.length === 0,
210
+ unmatchedStarts,
211
+ unmatchedEnds
212
+ };
213
+ }
214
+ /**
215
+ * Validate a bookmark name (for creating new bookmarks)
216
+ *
217
+ * Valid bookmark names:
218
+ * - Cannot be empty
219
+ * - Must start with a letter or underscore
220
+ * - Can contain letters, digits, and underscores
221
+ * - Cannot exceed 40 characters
222
+ *
223
+ * @param name - Name to validate
224
+ * @returns Object with validation result and error message if invalid
225
+ */
226
+ function validateBookmarkName(name) {
227
+ if (!name) return {
228
+ valid: false,
229
+ error: "Bookmark name cannot be empty"
230
+ };
231
+ if (name.length > 40) return {
232
+ valid: false,
233
+ error: "Bookmark name cannot exceed 40 characters"
234
+ };
235
+ if (!/^[a-zA-Z_]/u.test(name)) return {
236
+ valid: false,
237
+ error: "Bookmark name must start with a letter or underscore"
238
+ };
239
+ if (!/^[a-zA-Z_][a-zA-Z0-9_]*$/u.test(name)) return {
240
+ valid: false,
241
+ error: "Bookmark name can only contain letters, digits, and underscores"
242
+ };
243
+ return { valid: true };
244
+ }
245
+ //#endregion
246
+ export { addBookmark, bookmarkToHref, createBookmarkMap, getAllBookmarkNames, getBookmarkById, getBookmarkByName, getBookmarkType, hasBookmark, hrefToBookmarkName, isBuiltInBookmark, isPointBookmark, isRefBookmark, isTableBookmark, isTocBookmark, parseBookmarkEnd, parseBookmarkStart, validateBookmarkName, validateBookmarkPairs };
@@ -0,0 +1,10 @@
1
+ import { document_d_exports } from "../types/document.js";
2
+
3
+ //#region src/docx/bookmarkPlacement.d.ts
4
+ type BookmarkMarker = document_d_exports.BookmarkStart | document_d_exports.BookmarkEnd;
5
+ declare const appendBookmarkMarkerToLastParagraphInBlocks: (blocks: readonly document_d_exports.BlockContent[], marker: BookmarkMarker) => boolean;
6
+ declare const prependBookmarkMarkersToFirstParagraphInBlocks: (blocks: readonly document_d_exports.BlockContent[], markers: readonly BookmarkMarker[]) => boolean;
7
+ declare const appendBookmarkMarkerToLastParagraphInCells: (cells: readonly document_d_exports.TableCell[], marker: BookmarkMarker) => boolean;
8
+ declare const prependBookmarkMarkersToFirstParagraphInCell: (cell: document_d_exports.TableCell, markers: readonly BookmarkMarker[]) => boolean;
9
+ //#endregion
10
+ export { BookmarkMarker, appendBookmarkMarkerToLastParagraphInBlocks, appendBookmarkMarkerToLastParagraphInCells, prependBookmarkMarkersToFirstParagraphInBlocks, prependBookmarkMarkersToFirstParagraphInCell };
@@ -0,0 +1,50 @@
1
+ //#region src/docx/bookmarkPlacement.ts
2
+ const appendBookmarkMarkerToLastParagraphInBlocks = (blocks, marker) => {
3
+ for (let index = blocks.length - 1; index >= 0; index -= 1) {
4
+ const block = blocks[index];
5
+ if (block && appendBookmarkMarkerToLastParagraph(block, marker)) return true;
6
+ }
7
+ return false;
8
+ };
9
+ const prependBookmarkMarkersToFirstParagraphInBlocks = (blocks, markers) => {
10
+ if (markers.length === 0) return true;
11
+ for (const block of blocks) if (prependBookmarkMarkersToFirstParagraph(block, markers)) return true;
12
+ return false;
13
+ };
14
+ const appendBookmarkMarkerToLastParagraphInCells = (cells, marker) => {
15
+ for (let index = cells.length - 1; index >= 0; index -= 1) {
16
+ const cell = cells[index];
17
+ if (cell && appendBookmarkMarkerToLastParagraphInBlocks(cell.content, marker)) return true;
18
+ }
19
+ return false;
20
+ };
21
+ const prependBookmarkMarkersToFirstParagraphInCell = (cell, markers) => prependBookmarkMarkersToFirstParagraphInBlocks(cell.content, markers);
22
+ const appendBookmarkMarkerToLastParagraph = (block, marker) => {
23
+ if (block.type === "paragraph") {
24
+ block.content.push(marker);
25
+ return true;
26
+ }
27
+ if (block.type === "table") return appendBookmarkMarkerToLastParagraphInTable(block, marker);
28
+ return appendBookmarkMarkerToLastParagraphInBlocks(block.content, marker);
29
+ };
30
+ const appendBookmarkMarkerToLastParagraphInTable = (table, marker) => {
31
+ for (let rowIndex = table.rows.length - 1; rowIndex >= 0; rowIndex -= 1) {
32
+ const row = table.rows[rowIndex];
33
+ if (row && appendBookmarkMarkerToLastParagraphInCells(row.cells, marker)) return true;
34
+ }
35
+ return false;
36
+ };
37
+ const prependBookmarkMarkersToFirstParagraph = (block, markers) => {
38
+ if (block.type === "paragraph") {
39
+ block.content.unshift(...markers);
40
+ return true;
41
+ }
42
+ if (block.type === "table") return prependBookmarkMarkersToFirstParagraphInTable(block, markers);
43
+ return prependBookmarkMarkersToFirstParagraphInBlocks(block.content, markers);
44
+ };
45
+ const prependBookmarkMarkersToFirstParagraphInTable = (table, markers) => {
46
+ for (const row of table.rows) for (const cell of row.cells) if (prependBookmarkMarkersToFirstParagraphInCell(cell, markers)) return true;
47
+ return false;
48
+ };
49
+ //#endregion
50
+ export { appendBookmarkMarkerToLastParagraphInBlocks, appendBookmarkMarkerToLastParagraphInCells, prependBookmarkMarkersToFirstParagraphInBlocks, prependBookmarkMarkersToFirstParagraphInCell };
@@ -0,0 +1,4 @@
1
+ //#region src/docx/bulletMarkers.d.ts
2
+ declare const convertBulletToUnicode: (bulletChar: string) => string;
3
+ //#endregion
4
+ export { convertBulletToUnicode };
@@ -0,0 +1,42 @@
1
+ //#region src/docx/bulletMarkers.ts
2
+ const SYMBOL_BULLET_MAP = {
3
+ 183: "•",
4
+ 111: "○",
5
+ 167: "■",
6
+ 252: "✓",
7
+ 110: "■",
8
+ 113: "○",
9
+ 117: "◆",
10
+ 118: "❖",
11
+ 168: "✓",
12
+ 251: "✓",
13
+ 254: "✓",
14
+ 61623: "•",
15
+ 61550: "■",
16
+ 61551: "○",
17
+ 61607: "■",
18
+ 61692: "✓",
19
+ 8226: "•",
20
+ 9679: "●",
21
+ 9675: "○",
22
+ 9632: "■",
23
+ 9633: "□",
24
+ 9670: "◆",
25
+ 9671: "◇",
26
+ 8211: "–",
27
+ 8212: "—",
28
+ 62: ">",
29
+ 45: "-"
30
+ };
31
+ const convertBulletToUnicode = (bulletChar) => {
32
+ if (!bulletChar || bulletChar.trim() === "") return "•";
33
+ const charCode = bulletChar.codePointAt(0);
34
+ if (charCode === void 0) return "•";
35
+ const mapped = SYMBOL_BULLET_MAP[charCode];
36
+ if (mapped !== void 0) return mapped;
37
+ if (charCode >= 57344 && charCode <= 63743) return "•";
38
+ if (charCode < 32 || charCode >= 127 && charCode < 160) return "•";
39
+ return bulletChar;
40
+ };
41
+ //#endregion
42
+ export { convertBulletToUnicode };
@@ -0,0 +1,34 @@
1
+ import { document_d_exports } from "../types/document.js";
2
+ import { StyleMap } from "./styleParser.js";
3
+
4
+ //#region src/docx/commentParser.d.ts
5
+ type CommentExtendedInfo = {
6
+ parentParaId?: string;
7
+ done?: boolean;
8
+ };
9
+ /**
10
+ * Build a lookup from paraId → reply-thread info from
11
+ * commentsExtended.xml. The XML structure is:
12
+ *
13
+ * ```xml
14
+ * <w15:commentsEx>
15
+ * <w15:commentEx w15:paraId="..." w15:done="0"/>
16
+ * <w15:commentEx w15:paraId="..." w15:paraIdParent="..." w15:done="1"/>
17
+ * </w15:commentsEx>
18
+ * ```
19
+ *
20
+ * `w15:paraIdParent` points at the parent thread's paraId; `w15:done`
21
+ * (`"1"` / `"true"`) marks the thread resolved.
22
+ */
23
+ declare function parseCommentsExtended(xml: string): Map<string, CommentExtendedInfo>;
24
+ /**
25
+ * Parse comments.xml into an array of Comment objects.
26
+ *
27
+ * If `commentsExtensibleXml` is provided, UTC timestamps are
28
+ * cross-referenced via paraId and preferred over the ambiguous w:date
29
+ * local time. If `commentsExtendedXml` is provided, reply-thread
30
+ * parent links (`parentId`) and resolved state (`done`) are populated.
31
+ */
32
+ declare function parseComments(commentsXml: string | null, styles: StyleMap | null, theme: document_d_exports.Theme | null, rels: document_d_exports.RelationshipMap, media: Map<string, document_d_exports.MediaFile>, commentsExtensibleXml?: string | null, commentsExtendedXml?: string | null): document_d_exports.Comment[];
33
+ //#endregion
34
+ export { CommentExtendedInfo, parseComments, parseCommentsExtended };
@@ -0,0 +1,127 @@
1
+ import { findChild, getAttribute, getChildElements, parseXml } from "./xmlParser.js";
2
+ import { parseParagraph } from "./paragraphParser.js";
3
+ //#region src/docx/commentParser.ts
4
+ /**
5
+ * Build a lookup from paraId → dateUtc from commentsExtensible.xml
6
+ *
7
+ * The XML structure is:
8
+ * <w16cex:commentsExtensible>
9
+ * <w16cex:comment w16cex:paraId="..." w16cex:dateUtc="2024-02-10T14:30:45Z"/>
10
+ * </w16cex:commentsExtensible>
11
+ */
12
+ function parseCommentsExtensible(xml) {
13
+ const dateUtcByParaId = /* @__PURE__ */ new Map();
14
+ const root = parseXml(xml);
15
+ const container = findChild(root, "w16cex", "commentsExtensible") ?? root;
16
+ for (const child of getChildElements(container)) {
17
+ if ((child.name?.replace(/^.*:/u, "") ?? "") !== "comment") continue;
18
+ const paraId = getAttribute(child, "w16cex", "paraId") ?? getAttribute(child, "w15", "paraId") ?? child.attributes?.["w16cex:paraId"] ?? child.attributes?.["w15:paraId"];
19
+ const dateUtc = getAttribute(child, "w16cex", "dateUtc") ?? getAttribute(child, "w15", "dateUtc") ?? child.attributes?.["w16cex:dateUtc"] ?? child.attributes?.["w15:dateUtc"];
20
+ if (paraId && dateUtc) dateUtcByParaId.set(String(paraId).toUpperCase(), String(dateUtc));
21
+ }
22
+ return dateUtcByParaId;
23
+ }
24
+ /**
25
+ * Build a lookup from paraId → reply-thread info from
26
+ * commentsExtended.xml. The XML structure is:
27
+ *
28
+ * ```xml
29
+ * <w15:commentsEx>
30
+ * <w15:commentEx w15:paraId="..." w15:done="0"/>
31
+ * <w15:commentEx w15:paraId="..." w15:paraIdParent="..." w15:done="1"/>
32
+ * </w15:commentsEx>
33
+ * ```
34
+ *
35
+ * `w15:paraIdParent` points at the parent thread's paraId; `w15:done`
36
+ * (`"1"` / `"true"`) marks the thread resolved.
37
+ */
38
+ function parseCommentsExtended(xml) {
39
+ const infoByParaId = /* @__PURE__ */ new Map();
40
+ const root = parseXml(xml);
41
+ const container = findChild(root, "w15", "commentsEx") ?? root;
42
+ for (const child of getChildElements(container)) {
43
+ if ((child.name?.replace(/^.*:/u, "") ?? "") !== "commentEx") continue;
44
+ const paraId = getAttribute(child, "w15", "paraId") ?? child.attributes?.["w15:paraId"];
45
+ if (!paraId) continue;
46
+ const parentParaId = getAttribute(child, "w15", "paraIdParent") ?? child.attributes?.["w15:paraIdParent"];
47
+ const doneAttr = getAttribute(child, "w15", "done") ?? child.attributes?.["w15:done"];
48
+ const info = {};
49
+ if (parentParaId) info.parentParaId = String(parentParaId).toUpperCase();
50
+ if (doneAttr !== void 0) {
51
+ const v = String(doneAttr).toLowerCase();
52
+ info.done = v === "1" || v === "true";
53
+ }
54
+ infoByParaId.set(String(paraId).toUpperCase(), info);
55
+ }
56
+ return infoByParaId;
57
+ }
58
+ /**
59
+ * Parse comments.xml into an array of Comment objects.
60
+ *
61
+ * If `commentsExtensibleXml` is provided, UTC timestamps are
62
+ * cross-referenced via paraId and preferred over the ambiguous w:date
63
+ * local time. If `commentsExtendedXml` is provided, reply-thread
64
+ * parent links (`parentId`) and resolved state (`done`) are populated.
65
+ */
66
+ function parseComments(commentsXml, styles, theme, rels, media, commentsExtensibleXml, commentsExtendedXml) {
67
+ if (!commentsXml) return [];
68
+ const root = parseXml(commentsXml);
69
+ const dateUtcByParaId = commentsExtensibleXml ? parseCommentsExtensible(commentsExtensibleXml) : /* @__PURE__ */ new Map();
70
+ const extendedByParaId = commentsExtendedXml ? parseCommentsExtended(commentsExtendedXml) : /* @__PURE__ */ new Map();
71
+ const children = getChildElements(findChild(root, "w", "comments") ?? root);
72
+ const comments = [];
73
+ const commentIdByParaId = /* @__PURE__ */ new Map();
74
+ const paraIdByCommentIndex = /* @__PURE__ */ new Map();
75
+ for (const child of children) {
76
+ if ((child.name?.replace(/^.*:/u, "") ?? "") !== "comment") continue;
77
+ const id = Number.parseInt(getAttribute(child, "w", "id") ?? "0", 10);
78
+ const author = getAttribute(child, "w", "author") ?? "Unknown";
79
+ const rawInitials = getAttribute(child, "w", "initials");
80
+ const initials = rawInitials !== null ? String(rawInitials) : void 0;
81
+ const rawDate = getAttribute(child, "w", "date");
82
+ const localDate = rawDate !== null ? String(rawDate) : void 0;
83
+ let rawParaId = getAttribute(child, "w14", "paraId") ?? child.attributes?.["w14:paraId"] ?? getAttribute(child, "w15", "paraId") ?? child.attributes?.["w15:paraId"] ?? getAttribute(child, "w", "paraId");
84
+ if (!rawParaId) for (const sub of getChildElements(child)) {
85
+ if ((sub.name?.replace(/^.*:/u, "") ?? "") !== "p") continue;
86
+ const subParaId = getAttribute(sub, "w14", "paraId") ?? sub.attributes?.["w14:paraId"] ?? getAttribute(sub, "w15", "paraId") ?? sub.attributes?.["w15:paraId"] ?? getAttribute(sub, "w", "paraId");
87
+ if (subParaId) rawParaId = subParaId;
88
+ }
89
+ const paraId = rawParaId ? String(rawParaId).toUpperCase() : null;
90
+ const date = (paraId ? dateUtcByParaId.get(paraId) : void 0) ?? localDate;
91
+ const done = (paraId ? extendedByParaId.get(paraId) : void 0)?.done;
92
+ const paragraphs = [];
93
+ for (const contentChild of getChildElements(child)) if ((contentChild.name?.replace(/^.*:/u, "") ?? "") === "p") {
94
+ const paragraph = parseParagraph(contentChild, styles, theme, null, rels, media);
95
+ paragraphs.push(paragraph);
96
+ }
97
+ const commentIndex = comments.length;
98
+ if (paraId) {
99
+ commentIdByParaId.set(paraId, id);
100
+ paraIdByCommentIndex.set(commentIndex, paraId);
101
+ }
102
+ comments.push({
103
+ id,
104
+ author,
105
+ ...initials !== void 0 ? { initials } : {},
106
+ ...date !== void 0 ? { date } : {},
107
+ ...done !== void 0 ? { done } : {},
108
+ content: paragraphs
109
+ });
110
+ }
111
+ for (let i = 0; i < comments.length; i++) {
112
+ const comment = comments[i];
113
+ if (!comment) continue;
114
+ const paraId = paraIdByCommentIndex.get(i);
115
+ if (!paraId) continue;
116
+ const parentParaId = extendedByParaId.get(paraId)?.parentParaId;
117
+ if (!parentParaId) continue;
118
+ const parentId = commentIdByParaId.get(parentParaId);
119
+ if (parentId !== void 0 && parentId !== comment.id) comments[i] = {
120
+ ...comment,
121
+ parentId
122
+ };
123
+ }
124
+ return comments;
125
+ }
126
+ //#endregion
127
+ export { parseComments, parseCommentsExtended };
@@ -0,0 +1,25 @@
1
+ import { document_d_exports } from "../types/document.js";
2
+
3
+ //#region src/docx/commentReferenceNormalization.d.ts
4
+ type NormalizeCommentReferencesInput = {
5
+ documentBody: document_d_exports.DocumentBody;
6
+ comments: readonly document_d_exports.Comment[];
7
+ headers?: Map<string, document_d_exports.HeaderFooter>;
8
+ footers?: Map<string, document_d_exports.HeaderFooter>;
9
+ footnotes?: readonly document_d_exports.Footnote[];
10
+ endnotes?: readonly document_d_exports.Endnote[];
11
+ };
12
+ type NormalizeCommentReferencesResult = {
13
+ removedDanglingReferences: number;
14
+ reanchoredUnbalancedRanges: number;
15
+ };
16
+ declare const normalizeCommentReferences: ({
17
+ documentBody,
18
+ comments,
19
+ headers,
20
+ footers,
21
+ footnotes,
22
+ endnotes
23
+ }: NormalizeCommentReferencesInput) => NormalizeCommentReferencesResult;
24
+ //#endregion
25
+ export { normalizeCommentReferences };
@@ -0,0 +1,97 @@
1
+ //#region src/docx/commentReferenceNormalization.ts
2
+ const normalizeCommentReferences = ({ documentBody, comments, headers, footers, footnotes, endnotes }) => {
3
+ const validCommentIds = new Set(comments.map((comment) => comment.id));
4
+ const rangeMarkers = [];
5
+ let removedDanglingReferences = 0;
6
+ const normalizeParagraph = (paragraph) => {
7
+ const nextContent = [];
8
+ for (const content of paragraph.content) {
9
+ if (isCommentMarker(content) && !validCommentIds.has(content.id)) {
10
+ removedDanglingReferences += 1;
11
+ continue;
12
+ }
13
+ nextContent.push(content);
14
+ if (isCommentRangeMarker(content)) rangeMarkers.push({
15
+ content: nextContent,
16
+ index: nextContent.length - 1,
17
+ id: content.id,
18
+ type: content.type
19
+ });
20
+ }
21
+ paragraph.content = nextContent;
22
+ };
23
+ const normalizeTable = (table) => {
24
+ for (const row of table.rows) for (const cell of row.cells) normalizeBlocks(cell.content);
25
+ };
26
+ const normalizeBlock = (block) => {
27
+ if (block.type === "paragraph") {
28
+ normalizeParagraph(block);
29
+ return;
30
+ }
31
+ if (block.type === "table") {
32
+ normalizeTable(block);
33
+ return;
34
+ }
35
+ normalizeBlocks(block.content);
36
+ };
37
+ const normalizeBlocks = (blocks) => {
38
+ for (const block of blocks) normalizeBlock(block);
39
+ };
40
+ normalizeBlocks(documentBody.content);
41
+ for (const header of headers?.values() ?? []) normalizeBlocks(header.content);
42
+ for (const footer of footers?.values() ?? []) normalizeBlocks(footer.content);
43
+ for (const footnote of footnotes ?? []) normalizeBlocks(footnote.content);
44
+ for (const endnote of endnotes ?? []) normalizeBlocks(endnote.content);
45
+ for (const comment of comments) for (const paragraph of comment.content) normalizeParagraph(paragraph);
46
+ return {
47
+ removedDanglingReferences,
48
+ reanchoredUnbalancedRanges: reanchorUnbalancedCommentRanges(rangeMarkers)
49
+ };
50
+ };
51
+ const reanchorUnbalancedCommentRanges = (rangeMarkers) => {
52
+ const byId = /* @__PURE__ */ new Map();
53
+ for (const marker of rangeMarkers) {
54
+ const markers = byId.get(marker.id);
55
+ if (markers) {
56
+ markers.push(marker);
57
+ continue;
58
+ }
59
+ byId.set(marker.id, [marker]);
60
+ }
61
+ let reanchoredCount = 0;
62
+ for (const markers of byId.values()) {
63
+ let openStart = null;
64
+ for (const marker of markers) {
65
+ if (marker.type === "commentRangeStart") {
66
+ if (openStart) {
67
+ reanchorCommentRangeMarker(marker);
68
+ reanchoredCount += 1;
69
+ continue;
70
+ }
71
+ openStart = marker;
72
+ continue;
73
+ }
74
+ if (!openStart) {
75
+ reanchorCommentRangeMarker(marker);
76
+ reanchoredCount += 1;
77
+ continue;
78
+ }
79
+ openStart = null;
80
+ }
81
+ if (openStart) {
82
+ reanchorCommentRangeMarker(openStart);
83
+ reanchoredCount += 1;
84
+ }
85
+ }
86
+ return reanchoredCount;
87
+ };
88
+ const reanchorCommentRangeMarker = (marker) => {
89
+ marker.content[marker.index] = {
90
+ type: "commentReference",
91
+ id: marker.id
92
+ };
93
+ };
94
+ const isCommentMarker = (content) => content.type === "commentRangeStart" || content.type === "commentRangeEnd" || content.type === "commentReference";
95
+ const isCommentRangeMarker = (content) => content.type === "commentRangeStart" || content.type === "commentRangeEnd";
96
+ //#endregion
97
+ export { normalizeCommentReferences };
@@ -0,0 +1,20 @@
1
+ import { document_d_exports } from "../types/document.js";
2
+
3
+ //#region src/docx/commentReplyMarkers.d.ts
4
+ /**
5
+ * Synthesize reply range markers into a document model in place, so every
6
+ * reply comment picks up its parent's anchor before `document.xml` is
7
+ * serialized. Idempotent and safe to call on both save paths. Returns the
8
+ * number of markers injected.
9
+ */
10
+ declare const applyReplyThreadMarkers: (doc: document_d_exports.Document) => number;
11
+ /**
12
+ * Whether the model holds a reply comment that has no anchor of its own yet —
13
+ * i.e. one that still needs {@link applyReplyThreadMarkers} to run. The
14
+ * selective-save path uses this to bail to a full repack, which is the path
15
+ * that owns marker synthesis (selective only patches individually-changed
16
+ * paragraphs, so it cannot add a reply's markers to the parent's paragraph).
17
+ */
18
+ declare const hasUnsynthesizedReplyRanges: (doc: document_d_exports.Document) => boolean;
19
+ //#endregion
20
+ export { applyReplyThreadMarkers, hasUnsynthesizedReplyRanges };