docxmlater 10.0.1 → 10.0.3

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 (395) hide show
  1. package/README.md +3 -2
  2. package/dist/constants/legacyCompatFlags.d.ts.map +1 -1
  3. package/dist/constants/legacyCompatFlags.js.map +1 -1
  4. package/dist/constants/limits.d.ts +0 -27
  5. package/dist/constants/limits.d.ts.map +1 -1
  6. package/dist/constants/limits.js +13 -13
  7. package/dist/constants/limits.js.map +1 -1
  8. package/dist/core/Document.d.ts +24 -19
  9. package/dist/core/Document.d.ts.map +1 -1
  10. package/dist/core/Document.js +272 -71
  11. package/dist/core/Document.js.map +1 -1
  12. package/dist/core/DocumentContent.d.ts.map +1 -1
  13. package/dist/core/DocumentContent.js.map +1 -1
  14. package/dist/core/DocumentGenerator.d.ts.map +1 -1
  15. package/dist/core/DocumentGenerator.js +59 -24
  16. package/dist/core/DocumentGenerator.js.map +1 -1
  17. package/dist/core/DocumentIdManager.d.ts.map +1 -1
  18. package/dist/core/DocumentIdManager.js.map +1 -1
  19. package/dist/core/DocumentParser.d.ts +6 -6
  20. package/dist/core/DocumentParser.d.ts.map +1 -1
  21. package/dist/core/DocumentParser.js +60 -54
  22. package/dist/core/DocumentParser.js.map +1 -1
  23. package/dist/core/DocumentValidator.d.ts.map +1 -1
  24. package/dist/core/DocumentValidator.js.map +1 -1
  25. package/dist/core/Relationship.d.ts.map +1 -1
  26. package/dist/core/Relationship.js +1 -1
  27. package/dist/core/Relationship.js.map +1 -1
  28. package/dist/core/RelationshipManager.js +3 -3
  29. package/dist/core/RelationshipManager.js.map +1 -1
  30. package/dist/elements/AlternateContent.js.map +1 -1
  31. package/dist/elements/Bookmark.d.ts.map +1 -1
  32. package/dist/elements/Bookmark.js.map +1 -1
  33. package/dist/elements/BookmarkManager.d.ts.map +1 -1
  34. package/dist/elements/BookmarkManager.js.map +1 -1
  35. package/dist/elements/Comment.js +1 -1
  36. package/dist/elements/Comment.js.map +1 -1
  37. package/dist/elements/CommentManager.d.ts.map +1 -1
  38. package/dist/elements/CommentManager.js +8 -2
  39. package/dist/elements/CommentManager.js.map +1 -1
  40. package/dist/elements/CommonTypes.d.ts.map +1 -1
  41. package/dist/elements/CommonTypes.js +1 -2
  42. package/dist/elements/CommonTypes.js.map +1 -1
  43. package/dist/elements/CustomXml.js.map +1 -1
  44. package/dist/elements/Endnote.d.ts.map +1 -1
  45. package/dist/elements/Endnote.js.map +1 -1
  46. package/dist/elements/EndnoteManager.d.ts.map +1 -1
  47. package/dist/elements/EndnoteManager.js.map +1 -1
  48. package/dist/elements/Field.d.ts.map +1 -1
  49. package/dist/elements/Field.js +31 -28
  50. package/dist/elements/Field.js.map +1 -1
  51. package/dist/elements/FieldHelpers.d.ts.map +1 -1
  52. package/dist/elements/FieldHelpers.js +6 -6
  53. package/dist/elements/FieldHelpers.js.map +1 -1
  54. package/dist/elements/FontManager.d.ts.map +1 -1
  55. package/dist/elements/FontManager.js.map +1 -1
  56. package/dist/elements/Footer.js.map +1 -1
  57. package/dist/elements/Footnote.d.ts.map +1 -1
  58. package/dist/elements/Footnote.js.map +1 -1
  59. package/dist/elements/FootnoteManager.d.ts.map +1 -1
  60. package/dist/elements/FootnoteManager.js.map +1 -1
  61. package/dist/elements/Header.js.map +1 -1
  62. package/dist/elements/HeaderFooterManager.js.map +1 -1
  63. package/dist/elements/Hyperlink.d.ts.map +1 -1
  64. package/dist/elements/Hyperlink.js +5 -5
  65. package/dist/elements/Hyperlink.js.map +1 -1
  66. package/dist/elements/Image.d.ts +2 -2
  67. package/dist/elements/Image.d.ts.map +1 -1
  68. package/dist/elements/Image.js +21 -5
  69. package/dist/elements/Image.js.map +1 -1
  70. package/dist/elements/ImageManager.d.ts.map +1 -1
  71. package/dist/elements/ImageManager.js +2 -2
  72. package/dist/elements/ImageManager.js.map +1 -1
  73. package/dist/elements/ImageRun.js.map +1 -1
  74. package/dist/elements/MathElement.js.map +1 -1
  75. package/dist/elements/Paragraph.d.ts.map +1 -1
  76. package/dist/elements/Paragraph.js +128 -117
  77. package/dist/elements/Paragraph.js.map +1 -1
  78. package/dist/elements/PreservedElement.js.map +1 -1
  79. package/dist/elements/PropertyChangeTypes.js.map +1 -1
  80. package/dist/elements/RangeMarker.js.map +1 -1
  81. package/dist/elements/Revision.d.ts +1 -0
  82. package/dist/elements/Revision.d.ts.map +1 -1
  83. package/dist/elements/Revision.js +44 -5
  84. package/dist/elements/Revision.js.map +1 -1
  85. package/dist/elements/RevisionContent.js.map +1 -1
  86. package/dist/elements/RevisionManager.d.ts.map +1 -1
  87. package/dist/elements/RevisionManager.js.map +1 -1
  88. package/dist/elements/Run.d.ts.map +1 -1
  89. package/dist/elements/Run.js +1 -3
  90. package/dist/elements/Run.js.map +1 -1
  91. package/dist/elements/Section.d.ts.map +1 -1
  92. package/dist/elements/Section.js +127 -118
  93. package/dist/elements/Section.js.map +1 -1
  94. package/dist/elements/Shape.d.ts.map +1 -1
  95. package/dist/elements/Shape.js +21 -0
  96. package/dist/elements/Shape.js.map +1 -1
  97. package/dist/elements/StructuredDocumentTag.d.ts.map +1 -1
  98. package/dist/elements/StructuredDocumentTag.js +20 -8
  99. package/dist/elements/StructuredDocumentTag.js.map +1 -1
  100. package/dist/elements/Table.d.ts +2 -2
  101. package/dist/elements/Table.d.ts.map +1 -1
  102. package/dist/elements/Table.js +29 -35
  103. package/dist/elements/Table.js.map +1 -1
  104. package/dist/elements/TableCell.d.ts +2 -2
  105. package/dist/elements/TableCell.d.ts.map +1 -1
  106. package/dist/elements/TableCell.js +63 -67
  107. package/dist/elements/TableCell.js.map +1 -1
  108. package/dist/elements/TableGridChange.js.map +1 -1
  109. package/dist/elements/TableOfContents.d.ts +6 -6
  110. package/dist/elements/TableOfContents.d.ts.map +1 -1
  111. package/dist/elements/TableOfContents.js.map +1 -1
  112. package/dist/elements/TableOfContentsElement.js.map +1 -1
  113. package/dist/elements/TableRow.d.ts.map +1 -1
  114. package/dist/elements/TableRow.js +65 -47
  115. package/dist/elements/TableRow.js.map +1 -1
  116. package/dist/elements/TextBox.d.ts.map +1 -1
  117. package/dist/elements/TextBox.js +1 -1
  118. package/dist/elements/TextBox.js.map +1 -1
  119. package/dist/formatting/AbstractNumbering.d.ts +1 -1
  120. package/dist/formatting/AbstractNumbering.d.ts.map +1 -1
  121. package/dist/formatting/AbstractNumbering.js +11 -11
  122. package/dist/formatting/AbstractNumbering.js.map +1 -1
  123. package/dist/formatting/NumberingInstance.d.ts.map +1 -1
  124. package/dist/formatting/NumberingInstance.js +4 -4
  125. package/dist/formatting/NumberingInstance.js.map +1 -1
  126. package/dist/formatting/NumberingLevel.d.ts.map +1 -1
  127. package/dist/formatting/NumberingLevel.js +26 -26
  128. package/dist/formatting/NumberingLevel.js.map +1 -1
  129. package/dist/formatting/NumberingManager.d.ts +1 -1
  130. package/dist/formatting/NumberingManager.d.ts.map +1 -1
  131. package/dist/formatting/NumberingManager.js.map +1 -1
  132. package/dist/formatting/Style.d.ts.map +1 -1
  133. package/dist/formatting/Style.js +87 -95
  134. package/dist/formatting/Style.js.map +1 -1
  135. package/dist/formatting/StylesManager.d.ts +3 -3
  136. package/dist/formatting/StylesManager.d.ts.map +1 -1
  137. package/dist/formatting/StylesManager.js.map +1 -1
  138. package/dist/helpers/CleanupHelper.d.ts.map +1 -1
  139. package/dist/helpers/CleanupHelper.js +1 -7
  140. package/dist/helpers/CleanupHelper.js.map +1 -1
  141. package/dist/images/ImageOptimizer.js.map +1 -1
  142. package/dist/index.js.map +1 -1
  143. package/dist/managers/DrawingManager.d.ts.map +1 -1
  144. package/dist/managers/DrawingManager.js.map +1 -1
  145. package/dist/tracking/DocumentTrackingContext.js.map +1 -1
  146. package/dist/tracking/TrackingContext.js.map +1 -1
  147. package/dist/types/compatibility-types.js.map +1 -1
  148. package/dist/types/formatting.js.map +1 -1
  149. package/dist/types/list-types.d.ts +4 -4
  150. package/dist/types/list-types.d.ts.map +1 -1
  151. package/dist/types/list-types.js.map +1 -1
  152. package/dist/types/settings-types.js.map +1 -1
  153. package/dist/types/styleConfig.js.map +1 -1
  154. package/dist/utils/ChangelogGenerator.d.ts.map +1 -1
  155. package/dist/utils/ChangelogGenerator.js.map +1 -1
  156. package/dist/utils/CompatibilityUpgrader.d.ts.map +1 -1
  157. package/dist/utils/CompatibilityUpgrader.js +7 -7
  158. package/dist/utils/CompatibilityUpgrader.js.map +1 -1
  159. package/dist/utils/InMemoryRevisionAcceptor.js +1 -1
  160. package/dist/utils/InMemoryRevisionAcceptor.js.map +1 -1
  161. package/dist/utils/MoveOperationHelper.js.map +1 -1
  162. package/dist/utils/RevisionAwareProcessor.js.map +1 -1
  163. package/dist/utils/RevisionWalker.js.map +1 -1
  164. package/dist/utils/SelectiveRevisionAcceptor.js.map +1 -1
  165. package/dist/utils/ShadingResolver.js +1 -1
  166. package/dist/utils/ShadingResolver.js.map +1 -1
  167. package/dist/utils/acceptRevisions.d.ts +0 -28
  168. package/dist/utils/acceptRevisions.d.ts.map +1 -1
  169. package/dist/utils/acceptRevisions.js +5 -7
  170. package/dist/utils/acceptRevisions.js.map +1 -1
  171. package/dist/utils/cnfStyleDecoder.js +1 -1
  172. package/dist/utils/cnfStyleDecoder.js.map +1 -1
  173. package/dist/utils/corruptionDetection.js.map +1 -1
  174. package/dist/utils/dateFormatting.js.map +1 -1
  175. package/dist/utils/deepClone.d.ts +0 -1
  176. package/dist/utils/deepClone.d.ts.map +1 -1
  177. package/dist/utils/deepClone.js +0 -7
  178. package/dist/utils/deepClone.js.map +1 -1
  179. package/dist/utils/diagnostics.d.ts +2 -2
  180. package/dist/utils/diagnostics.d.ts.map +1 -1
  181. package/dist/utils/diagnostics.js.map +1 -1
  182. package/dist/utils/errorHandling.js.map +1 -1
  183. package/dist/utils/formatting.js.map +1 -1
  184. package/dist/utils/list-detection.d.ts +2 -2
  185. package/dist/utils/list-detection.d.ts.map +1 -1
  186. package/dist/utils/list-detection.js +3 -3
  187. package/dist/utils/list-detection.js.map +1 -1
  188. package/dist/utils/logger.d.ts +2 -4
  189. package/dist/utils/logger.d.ts.map +1 -1
  190. package/dist/utils/logger.js +0 -2
  191. package/dist/utils/logger.js.map +1 -1
  192. package/dist/utils/parsingHelpers.js.map +1 -1
  193. package/dist/utils/stripTrackedChanges.d.ts +0 -19
  194. package/dist/utils/stripTrackedChanges.d.ts.map +1 -1
  195. package/dist/utils/stripTrackedChanges.js +0 -2
  196. package/dist/utils/stripTrackedChanges.js.map +1 -1
  197. package/dist/utils/textDiff.js.map +1 -1
  198. package/dist/utils/units.js.map +1 -1
  199. package/dist/utils/validation.d.ts.map +1 -1
  200. package/dist/utils/validation.js.map +1 -1
  201. package/dist/utils/xmlSanitization.js.map +1 -1
  202. package/dist/validation/RevisionAutoFixer.js.map +1 -1
  203. package/dist/validation/RevisionValidator.js.map +1 -1
  204. package/dist/validation/ValidationRules.js.map +1 -1
  205. package/dist/validation/index.js.map +1 -1
  206. package/dist/xml/XMLBuilder.d.ts.map +1 -1
  207. package/dist/xml/XMLBuilder.js +10 -0
  208. package/dist/xml/XMLBuilder.js.map +1 -1
  209. package/dist/xml/XMLParser.d.ts.map +1 -1
  210. package/dist/xml/XMLParser.js +4 -5
  211. package/dist/xml/XMLParser.js.map +1 -1
  212. package/dist/zip/ZipHandler.js.map +1 -1
  213. package/dist/zip/ZipReader.js.map +1 -1
  214. package/dist/zip/ZipWriter.js.map +1 -1
  215. package/dist/zip/errors.js.map +1 -1
  216. package/dist/zip/types.js.map +1 -1
  217. package/package.json +34 -4
  218. package/src/__tests__/helper-methods.test.ts +512 -0
  219. package/src/constants/legacyCompatFlags.ts +138 -0
  220. package/src/constants/limits.ts +50 -0
  221. package/src/core/CLAUDE.md +109 -0
  222. package/src/core/Document.ts +15569 -0
  223. package/src/core/DocumentContent.ts +467 -0
  224. package/src/core/DocumentGenerator.ts +1104 -0
  225. package/src/core/DocumentIdManager.ts +158 -0
  226. package/src/core/DocumentParser.ts +10107 -0
  227. package/src/core/DocumentValidator.ts +372 -0
  228. package/src/core/Relationship.ts +367 -0
  229. package/src/core/RelationshipManager.ts +428 -0
  230. package/src/elements/AlternateContent.ts +42 -0
  231. package/src/elements/Bookmark.ts +210 -0
  232. package/src/elements/BookmarkManager.ts +250 -0
  233. package/src/elements/CLAUDE.md +126 -0
  234. package/src/elements/Comment.ts +359 -0
  235. package/src/elements/CommentManager.ts +502 -0
  236. package/src/elements/CommonTypes.ts +549 -0
  237. package/src/elements/CustomXml.ts +36 -0
  238. package/src/elements/Endnote.ts +217 -0
  239. package/src/elements/EndnoteManager.ts +249 -0
  240. package/src/elements/Field.ts +1233 -0
  241. package/src/elements/FieldHelpers.ts +333 -0
  242. package/src/elements/FontManager.ts +339 -0
  243. package/src/elements/Footer.ts +269 -0
  244. package/src/elements/Footnote.ts +217 -0
  245. package/src/elements/FootnoteManager.ts +249 -0
  246. package/src/elements/Header.ts +269 -0
  247. package/src/elements/HeaderFooterManager.ts +219 -0
  248. package/src/elements/Hyperlink.ts +1146 -0
  249. package/src/elements/Image.ts +1756 -0
  250. package/src/elements/ImageManager.ts +432 -0
  251. package/src/elements/ImageRun.ts +59 -0
  252. package/src/elements/MathElement.ts +65 -0
  253. package/src/elements/Paragraph.ts +4227 -0
  254. package/src/elements/PreservedElement.ts +53 -0
  255. package/src/elements/PropertyChangeTypes.ts +442 -0
  256. package/src/elements/RangeMarker.ts +400 -0
  257. package/src/elements/Revision.ts +1217 -0
  258. package/src/elements/RevisionContent.ts +73 -0
  259. package/src/elements/RevisionManager.ts +1070 -0
  260. package/src/elements/Run.ts +3068 -0
  261. package/src/elements/Section.ts +1421 -0
  262. package/src/elements/Shape.ts +873 -0
  263. package/src/elements/StructuredDocumentTag.ts +978 -0
  264. package/src/elements/Table.ts +2524 -0
  265. package/src/elements/TableCell.ts +1586 -0
  266. package/src/elements/TableGridChange.ts +151 -0
  267. package/src/elements/TableOfContents.ts +691 -0
  268. package/src/elements/TableOfContentsElement.ts +89 -0
  269. package/src/elements/TableRow.ts +906 -0
  270. package/src/elements/TextBox.ts +768 -0
  271. package/src/formatting/AbstractNumbering.ts +548 -0
  272. package/src/formatting/CLAUDE.md +74 -0
  273. package/src/formatting/NumberingInstance.ts +212 -0
  274. package/src/formatting/NumberingLevel.ts +1006 -0
  275. package/src/formatting/NumberingManager.ts +827 -0
  276. package/src/formatting/Style.ts +1833 -0
  277. package/src/formatting/StylesManager.ts +1005 -0
  278. package/src/helpers/CleanupHelper.ts +524 -0
  279. package/src/images/ImageOptimizer.ts +274 -0
  280. package/src/index.ts +554 -0
  281. package/src/managers/CLAUDE.md +47 -0
  282. package/src/managers/DrawingManager.ts +319 -0
  283. package/src/tracking/DocumentTrackingContext.ts +643 -0
  284. package/src/tracking/TrackingContext.ts +173 -0
  285. package/src/types/compatibility-types.ts +49 -0
  286. package/src/types/formatting.ts +210 -0
  287. package/src/types/list-types.ts +152 -0
  288. package/src/types/settings-types.ts +59 -0
  289. package/src/types/styleConfig.ts +189 -0
  290. package/src/utils/CLAUDE.md +153 -0
  291. package/src/utils/ChangelogGenerator.ts +1581 -0
  292. package/src/utils/CompatibilityUpgrader.ts +237 -0
  293. package/src/utils/InMemoryRevisionAcceptor.ts +668 -0
  294. package/src/utils/MoveOperationHelper.ts +238 -0
  295. package/src/utils/RevisionAwareProcessor.ts +526 -0
  296. package/src/utils/RevisionWalker.ts +457 -0
  297. package/src/utils/SelectiveRevisionAcceptor.ts +613 -0
  298. package/src/utils/ShadingResolver.ts +107 -0
  299. package/src/utils/acceptRevisions.ts +714 -0
  300. package/src/utils/cnfStyleDecoder.ts +217 -0
  301. package/src/utils/corruptionDetection.ts +345 -0
  302. package/src/utils/dateFormatting.ts +20 -0
  303. package/src/utils/deepClone.ts +78 -0
  304. package/src/utils/diagnostics.ts +129 -0
  305. package/src/utils/errorHandling.ts +80 -0
  306. package/src/utils/formatting.ts +213 -0
  307. package/src/utils/list-detection.ts +274 -0
  308. package/src/utils/logger.ts +404 -0
  309. package/src/utils/parsingHelpers.ts +190 -0
  310. package/src/utils/stripTrackedChanges.ts +353 -0
  311. package/src/utils/textDiff.ts +100 -0
  312. package/src/utils/units.ts +421 -0
  313. package/src/utils/validation.ts +542 -0
  314. package/src/utils/xmlSanitization.ts +182 -0
  315. package/src/validation/RevisionAutoFixer.ts +542 -0
  316. package/src/validation/RevisionValidator.ts +460 -0
  317. package/src/validation/ValidationRules.ts +338 -0
  318. package/src/validation/index.ts +30 -0
  319. package/src/xml/CLAUDE.md +65 -0
  320. package/src/xml/XMLBuilder.ts +871 -0
  321. package/src/xml/XMLParser.ts +919 -0
  322. package/src/zip/CLAUDE.md +55 -0
  323. package/src/zip/ZipHandler.ts +637 -0
  324. package/src/zip/ZipReader.ts +299 -0
  325. package/src/zip/ZipWriter.ts +390 -0
  326. package/src/zip/errors.ts +69 -0
  327. package/src/zip/types.ts +116 -0
  328. package/dist/core/ListNormalizer.d.ts +0 -23
  329. package/dist/core/ListNormalizer.d.ts.map +0 -1
  330. package/dist/core/ListNormalizer.js +0 -624
  331. package/dist/core/ListNormalizer.js.map +0 -1
  332. package/dist/images/index.d.ts +0 -2
  333. package/dist/images/index.d.ts.map +0 -1
  334. package/dist/images/index.js +0 -8
  335. package/dist/images/index.js.map +0 -1
  336. package/dist/ms-doc/cfb/CFBReader.d.ts +0 -35
  337. package/dist/ms-doc/cfb/CFBReader.d.ts.map +0 -1
  338. package/dist/ms-doc/cfb/CFBReader.js +0 -360
  339. package/dist/ms-doc/cfb/CFBReader.js.map +0 -1
  340. package/dist/ms-doc/converter/DocToDocxConverter.d.ts +0 -55
  341. package/dist/ms-doc/converter/DocToDocxConverter.d.ts.map +0 -1
  342. package/dist/ms-doc/converter/DocToDocxConverter.js +0 -324
  343. package/dist/ms-doc/converter/DocToDocxConverter.js.map +0 -1
  344. package/dist/ms-doc/fib/FIB.d.ts +0 -18
  345. package/dist/ms-doc/fib/FIB.d.ts.map +0 -1
  346. package/dist/ms-doc/fib/FIB.js +0 -342
  347. package/dist/ms-doc/fib/FIB.js.map +0 -1
  348. package/dist/ms-doc/fields/FieldParser.d.ts +0 -31
  349. package/dist/ms-doc/fields/FieldParser.d.ts.map +0 -1
  350. package/dist/ms-doc/fields/FieldParser.js +0 -266
  351. package/dist/ms-doc/fields/FieldParser.js.map +0 -1
  352. package/dist/ms-doc/images/PictureExtractor.d.ts +0 -22
  353. package/dist/ms-doc/images/PictureExtractor.d.ts.map +0 -1
  354. package/dist/ms-doc/images/PictureExtractor.js +0 -233
  355. package/dist/ms-doc/images/PictureExtractor.js.map +0 -1
  356. package/dist/ms-doc/index.d.ts +0 -20
  357. package/dist/ms-doc/index.d.ts.map +0 -1
  358. package/dist/ms-doc/index.js +0 -59
  359. package/dist/ms-doc/index.js.map +0 -1
  360. package/dist/ms-doc/properties/SPRM.d.ts +0 -210
  361. package/dist/ms-doc/properties/SPRM.d.ts.map +0 -1
  362. package/dist/ms-doc/properties/SPRM.js +0 -633
  363. package/dist/ms-doc/properties/SPRM.js.map +0 -1
  364. package/dist/ms-doc/sections/SectionParser.d.ts +0 -25
  365. package/dist/ms-doc/sections/SectionParser.d.ts.map +0 -1
  366. package/dist/ms-doc/sections/SectionParser.js +0 -214
  367. package/dist/ms-doc/sections/SectionParser.js.map +0 -1
  368. package/dist/ms-doc/styles/StyleSheet.d.ts +0 -23
  369. package/dist/ms-doc/styles/StyleSheet.d.ts.map +0 -1
  370. package/dist/ms-doc/styles/StyleSheet.js +0 -268
  371. package/dist/ms-doc/styles/StyleSheet.js.map +0 -1
  372. package/dist/ms-doc/subdocuments/SubdocumentParser.d.ts +0 -61
  373. package/dist/ms-doc/subdocuments/SubdocumentParser.d.ts.map +0 -1
  374. package/dist/ms-doc/subdocuments/SubdocumentParser.js +0 -208
  375. package/dist/ms-doc/subdocuments/SubdocumentParser.js.map +0 -1
  376. package/dist/ms-doc/tables/TableParser.d.ts +0 -29
  377. package/dist/ms-doc/tables/TableParser.d.ts.map +0 -1
  378. package/dist/ms-doc/tables/TableParser.js +0 -176
  379. package/dist/ms-doc/tables/TableParser.js.map +0 -1
  380. package/dist/ms-doc/text/PieceTable.d.ts +0 -21
  381. package/dist/ms-doc/text/PieceTable.d.ts.map +0 -1
  382. package/dist/ms-doc/text/PieceTable.js +0 -171
  383. package/dist/ms-doc/text/PieceTable.js.map +0 -1
  384. package/dist/ms-doc/types/Constants.d.ts +0 -99
  385. package/dist/ms-doc/types/Constants.d.ts.map +0 -1
  386. package/dist/ms-doc/types/Constants.js +0 -102
  387. package/dist/ms-doc/types/Constants.js.map +0 -1
  388. package/dist/ms-doc/types/DocTypes.d.ts +0 -368
  389. package/dist/ms-doc/types/DocTypes.d.ts.map +0 -1
  390. package/dist/ms-doc/types/DocTypes.js +0 -3
  391. package/dist/ms-doc/types/DocTypes.js.map +0 -1
  392. package/dist/tracking/index.d.ts +0 -3
  393. package/dist/tracking/index.d.ts.map +0 -1
  394. package/dist/tracking/index.js +0 -6
  395. package/dist/tracking/index.js.map +0 -1
@@ -0,0 +1,467 @@
1
+ /**
2
+ * DocumentContent - Manages document body elements
3
+ *
4
+ * Handles paragraphs, tables, sections, and other body elements.
5
+ * Extracted from Document.ts for better separation of concerns.
6
+ */
7
+
8
+ import { Paragraph } from "../elements/Paragraph";
9
+ import { Table } from "../elements/Table";
10
+ import { Section } from "../elements/Section";
11
+ import { StructuredDocumentTag } from "../elements/StructuredDocumentTag";
12
+ import { TableOfContentsElement } from "../elements/TableOfContentsElement";
13
+ import { AlternateContent } from "../elements/AlternateContent";
14
+ import { MathParagraph } from "../elements/MathElement";
15
+ import { CustomXmlBlock } from "../elements/CustomXml";
16
+ import { PreservedElement } from "../elements/PreservedElement";
17
+
18
+ /**
19
+ * Body element type - can be a Paragraph, Table, TOC, SDT, or raw XML preservation element
20
+ */
21
+ export type BodyElement =
22
+ | Paragraph
23
+ | Table
24
+ | TableOfContentsElement
25
+ | StructuredDocumentTag
26
+ | AlternateContent
27
+ | MathParagraph
28
+ | CustomXmlBlock
29
+ | PreservedElement;
30
+
31
+ /**
32
+ * Manages document content (paragraphs, tables, sections)
33
+ */
34
+ export class DocumentContent {
35
+ private bodyElements: BodyElement[] = [];
36
+ private section: Section;
37
+
38
+ constructor() {
39
+ this.section = new Section();
40
+ }
41
+
42
+ // ==================== Body Elements ====================
43
+
44
+ /**
45
+ * Adds an existing paragraph to the document body
46
+ *
47
+ * @param paragraph - The Paragraph instance to add
48
+ * @returns This instance for chaining
49
+ */
50
+ addParagraph(paragraph: Paragraph): this {
51
+ this.bodyElements.push(paragraph);
52
+ return this;
53
+ }
54
+
55
+ /**
56
+ * Creates a new paragraph and adds it to the document
57
+ *
58
+ * @param text - Optional text content for the paragraph
59
+ * @returns The created Paragraph instance
60
+ */
61
+ createParagraph(text?: string): Paragraph {
62
+ const para = new Paragraph();
63
+ if (text) {
64
+ para.addText(text);
65
+ }
66
+ this.bodyElements.push(para);
67
+ return para;
68
+ }
69
+
70
+ /**
71
+ * Adds an existing table to the document body
72
+ *
73
+ * @param table - The Table instance to add
74
+ * @returns This instance for chaining
75
+ */
76
+ addTable(table: Table): this {
77
+ this.bodyElements.push(table);
78
+ return this;
79
+ }
80
+
81
+ /**
82
+ * Creates a new table and adds it to the document
83
+ *
84
+ * @param rows - Number of rows to create
85
+ * @param columns - Number of columns per row
86
+ * @returns The created Table instance
87
+ */
88
+ createTable(rows: number, columns: number): Table {
89
+ const table = new Table(rows, columns);
90
+ this.bodyElements.push(table);
91
+ return table;
92
+ }
93
+
94
+ /**
95
+ * Adds a Structured Document Tag to the document body
96
+ *
97
+ * @param sdt - The StructuredDocumentTag instance to add
98
+ * @returns This instance for chaining
99
+ */
100
+ addStructuredDocumentTag(sdt: StructuredDocumentTag): this {
101
+ this.bodyElements.push(sdt);
102
+ return this;
103
+ }
104
+
105
+ /**
106
+ * Adds a Table of Contents element to the document body
107
+ *
108
+ * @param toc - The TableOfContentsElement to add
109
+ * @returns This instance for chaining
110
+ */
111
+ addTableOfContents(toc: TableOfContentsElement): this {
112
+ this.bodyElements.push(toc);
113
+ return this;
114
+ }
115
+
116
+ /**
117
+ * Adds any body element to the document
118
+ *
119
+ * @param element - The body element to add
120
+ * @returns This instance for chaining
121
+ */
122
+ addBodyElement(element: BodyElement): this {
123
+ this.bodyElements.push(element);
124
+ return this;
125
+ }
126
+
127
+ /**
128
+ * Inserts a body element at a specific index
129
+ *
130
+ * @param index - Position to insert at (0-based)
131
+ * @param element - The body element to insert
132
+ * @returns This instance for chaining
133
+ */
134
+ insertBodyElementAt(index: number, element: BodyElement): this {
135
+ index = Math.max(0, Math.min(index, this.bodyElements.length));
136
+ this.bodyElements.splice(index, 0, element);
137
+ return this;
138
+ }
139
+
140
+ /**
141
+ * Removes a body element at a specific index
142
+ *
143
+ * @param index - Position to remove from (0-based)
144
+ * @returns The removed element or undefined
145
+ */
146
+ removeBodyElementAt(index: number): BodyElement | undefined {
147
+ if (index < 0 || index >= this.bodyElements.length) {
148
+ return undefined;
149
+ }
150
+ return this.bodyElements.splice(index, 1)[0];
151
+ }
152
+
153
+ // ==================== Getters ====================
154
+
155
+ /**
156
+ * Gets all body elements
157
+ *
158
+ * @returns Array of all body elements
159
+ */
160
+ getBodyElements(): BodyElement[] {
161
+ return [...this.bodyElements];
162
+ }
163
+
164
+ /**
165
+ * Gets body elements with mutable access (internal use)
166
+ *
167
+ * @returns Reference to body elements array
168
+ * @internal
169
+ */
170
+ getBodyElementsMutable(): BodyElement[] {
171
+ return this.bodyElements;
172
+ }
173
+
174
+ /**
175
+ * Gets top-level paragraphs only
176
+ *
177
+ * @returns Array of Paragraph instances in document body
178
+ */
179
+ getParagraphs(): Paragraph[] {
180
+ return this.bodyElements.filter(
181
+ (el): el is Paragraph => el instanceof Paragraph
182
+ );
183
+ }
184
+
185
+ /**
186
+ * Gets all paragraphs including nested ones (in tables, SDTs)
187
+ *
188
+ * @returns Array of all Paragraph instances
189
+ */
190
+ getAllParagraphs(): Paragraph[] {
191
+ const paragraphs: Paragraph[] = [];
192
+
193
+ const collectParagraphs = (elements: BodyElement[]) => {
194
+ for (const element of elements) {
195
+ if (element instanceof Paragraph) {
196
+ paragraphs.push(element);
197
+ } else if (element instanceof Table) {
198
+ // Collect paragraphs from table cells
199
+ for (let row = 0; row < element.getRowCount(); row++) {
200
+ for (let col = 0; col < element.getColumnCount(); col++) {
201
+ const cell = element.getCell(row, col);
202
+ if (cell) {
203
+ paragraphs.push(...cell.getParagraphs());
204
+ }
205
+ }
206
+ }
207
+ } else if (element instanceof StructuredDocumentTag) {
208
+ // Recursively collect from SDT content
209
+ const content = element.getContent();
210
+ collectParagraphs(content as BodyElement[]);
211
+ }
212
+ }
213
+ };
214
+
215
+ collectParagraphs(this.bodyElements);
216
+ return paragraphs;
217
+ }
218
+
219
+ /**
220
+ * Gets top-level tables only
221
+ *
222
+ * @returns Array of Table instances in document body
223
+ */
224
+ getTables(): Table[] {
225
+ return this.bodyElements.filter((el): el is Table => el instanceof Table);
226
+ }
227
+
228
+ /**
229
+ * Gets all tables including nested ones
230
+ *
231
+ * @returns Array of all Table instances
232
+ */
233
+ getAllTables(): Table[] {
234
+ const tables: Table[] = [];
235
+
236
+ const collectTables = (elements: BodyElement[]) => {
237
+ for (const element of elements) {
238
+ if (element instanceof Table) {
239
+ tables.push(element);
240
+ // Check for nested tables in cells
241
+ for (let row = 0; row < element.getRowCount(); row++) {
242
+ for (let col = 0; col < element.getColumnCount(); col++) {
243
+ const cell = element.getCell(row, col);
244
+ if (cell) {
245
+ // Tables can be nested in cell content
246
+ const cellContent = cell.getParagraphs();
247
+ // Note: Cells typically contain paragraphs, not tables directly
248
+ }
249
+ }
250
+ }
251
+ } else if (element instanceof StructuredDocumentTag) {
252
+ collectTables(element.getContent() as BodyElement[]);
253
+ }
254
+ }
255
+ };
256
+
257
+ collectTables(this.bodyElements);
258
+ return tables;
259
+ }
260
+
261
+ /**
262
+ * Gets Table of Contents elements
263
+ *
264
+ * @returns Array of TableOfContentsElement instances
265
+ */
266
+ getTableOfContentsElements(): TableOfContentsElement[] {
267
+ return this.bodyElements.filter(
268
+ (el): el is TableOfContentsElement => el instanceof TableOfContentsElement
269
+ );
270
+ }
271
+
272
+ /**
273
+ * Gets Structured Document Tags
274
+ *
275
+ * @returns Array of StructuredDocumentTag instances
276
+ */
277
+ getStructuredDocumentTags(): StructuredDocumentTag[] {
278
+ return this.bodyElements.filter(
279
+ (el): el is StructuredDocumentTag => el instanceof StructuredDocumentTag
280
+ );
281
+ }
282
+
283
+ // ==================== Counts ====================
284
+
285
+ /**
286
+ * Gets the total number of body elements
287
+ */
288
+ getBodyElementCount(): number {
289
+ return this.bodyElements.length;
290
+ }
291
+
292
+ /**
293
+ * Gets the number of top-level paragraphs
294
+ */
295
+ getParagraphCount(): number {
296
+ return this.getParagraphs().length;
297
+ }
298
+
299
+ /**
300
+ * Gets the number of top-level tables
301
+ */
302
+ getTableCount(): number {
303
+ return this.getTables().length;
304
+ }
305
+
306
+ // ==================== Section ====================
307
+
308
+ /**
309
+ * Gets the document section (page setup, margins, etc.)
310
+ *
311
+ * @returns The Section instance
312
+ */
313
+ getSection(): Section {
314
+ return this.section;
315
+ }
316
+
317
+ /**
318
+ * Sets the document section
319
+ *
320
+ * @param section - The Section instance to set
321
+ * @returns This instance for chaining
322
+ */
323
+ setSection(section: Section): this {
324
+ this.section = section;
325
+ return this;
326
+ }
327
+
328
+ // ==================== Clearing ====================
329
+
330
+ /**
331
+ * Clears all body elements
332
+ *
333
+ * @returns This instance for chaining
334
+ */
335
+ clear(): this {
336
+ this.bodyElements = [];
337
+ return this;
338
+ }
339
+
340
+ /**
341
+ * Clears all paragraphs from the document
342
+ *
343
+ * @returns This instance for chaining
344
+ */
345
+ clearParagraphs(): this {
346
+ this.bodyElements = this.bodyElements.filter(
347
+ (el) => !(el instanceof Paragraph)
348
+ );
349
+ return this;
350
+ }
351
+
352
+ /**
353
+ * Clears all tables from the document
354
+ *
355
+ * @returns This instance for chaining
356
+ */
357
+ clearTables(): this {
358
+ this.bodyElements = this.bodyElements.filter(
359
+ (el) => !(el instanceof Table)
360
+ );
361
+ return this;
362
+ }
363
+
364
+ // ==================== Search ====================
365
+
366
+ /**
367
+ * Finds the index of a body element
368
+ *
369
+ * @param element - The element to find
370
+ * @returns Index or -1 if not found
371
+ */
372
+ indexOf(element: BodyElement): number {
373
+ return this.bodyElements.indexOf(element);
374
+ }
375
+
376
+ /**
377
+ * Checks if a body element exists
378
+ *
379
+ * @param element - The element to check
380
+ * @returns true if the element is in the document
381
+ */
382
+ contains(element: BodyElement): boolean {
383
+ return this.bodyElements.includes(element);
384
+ }
385
+
386
+ /**
387
+ * Finds paragraphs by style ID
388
+ *
389
+ * @param styleId - The style ID to search for
390
+ * @returns Array of paragraphs with the style
391
+ */
392
+ findParagraphsByStyle(styleId: string): Paragraph[] {
393
+ const results: Paragraph[] = [];
394
+ const normalizedStyleId = styleId.toLowerCase();
395
+
396
+ for (const paragraph of this.getAllParagraphs()) {
397
+ const paraStyle = paragraph.getStyle()?.toLowerCase();
398
+ if (paraStyle === normalizedStyleId) {
399
+ results.push(paragraph);
400
+ }
401
+ }
402
+
403
+ return results;
404
+ }
405
+
406
+ // ==================== Statistics ====================
407
+
408
+ /**
409
+ * Gets word count for all text content
410
+ *
411
+ * @returns Approximate word count
412
+ */
413
+ getWordCount(): number {
414
+ let wordCount = 0;
415
+ for (const paragraph of this.getAllParagraphs()) {
416
+ const text = paragraph.getText();
417
+ if (text) {
418
+ // Simple word counting - split on whitespace
419
+ wordCount += text.split(/\s+/).filter((word) => word.length > 0).length;
420
+ }
421
+ }
422
+ return wordCount;
423
+ }
424
+
425
+ /**
426
+ * Gets character count for all text content
427
+ *
428
+ * @param includeSpaces - Whether to include spaces (default: true)
429
+ * @returns Character count
430
+ */
431
+ getCharacterCount(includeSpaces = true): number {
432
+ let charCount = 0;
433
+ for (const paragraph of this.getAllParagraphs()) {
434
+ const text = paragraph.getText();
435
+ if (text) {
436
+ charCount += includeSpaces ? text.length : text.replace(/\s/g, "").length;
437
+ }
438
+ }
439
+ return charCount;
440
+ }
441
+
442
+ // ==================== Utility ====================
443
+
444
+ /**
445
+ * Creates a clone of this content instance
446
+ *
447
+ * Note: This creates shallow copies of body elements.
448
+ * For deep cloning, individual elements should be cloned.
449
+ *
450
+ * @returns New DocumentContent instance
451
+ */
452
+ clone(): DocumentContent {
453
+ const cloned = new DocumentContent();
454
+ cloned.bodyElements = [...this.bodyElements];
455
+ cloned.section = this.section?.clone();
456
+ return cloned;
457
+ }
458
+
459
+ /**
460
+ * Checks if the document has any content
461
+ *
462
+ * @returns true if document has no body elements
463
+ */
464
+ isEmpty(): boolean {
465
+ return this.bodyElements.length === 0;
466
+ }
467
+ }