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,53 @@
1
+ /**
2
+ * PreservedElement - Represents XML elements preserved as raw XML for round-trip fidelity
3
+ *
4
+ * Used for elements that don't need full object model support but must be
5
+ * preserved during round-trip (load → save) to avoid data loss.
6
+ *
7
+ * Examples: w:proofErr, w:permStart, w:permEnd, w:altChunk, w:ruby
8
+ */
9
+
10
+ import { XMLElement } from '../xml/XMLBuilder';
11
+
12
+ /**
13
+ * Element context where it can appear
14
+ */
15
+ export type PreservedElementContext = 'inline' | 'block';
16
+
17
+ /**
18
+ * Represents an XML element preserved as raw XML
19
+ */
20
+ export class PreservedElement {
21
+ private rawXml: string;
22
+ private elementType: string;
23
+ private context: PreservedElementContext;
24
+
25
+ constructor(rawXml: string, elementType: string, context: PreservedElementContext = 'inline') {
26
+ this.rawXml = rawXml;
27
+ this.elementType = elementType;
28
+ this.context = context;
29
+ }
30
+
31
+ toXML(): XMLElement {
32
+ return {
33
+ name: '__rawXml',
34
+ rawXml: this.rawXml,
35
+ } as XMLElement;
36
+ }
37
+
38
+ getRawXml(): string {
39
+ return this.rawXml;
40
+ }
41
+
42
+ getElementType(): string {
43
+ return this.elementType;
44
+ }
45
+
46
+ getContext(): PreservedElementContext {
47
+ return this.context;
48
+ }
49
+
50
+ getType(): string {
51
+ return 'preservedElement';
52
+ }
53
+ }
@@ -0,0 +1,442 @@
1
+ /**
2
+ * PropertyChangeTypes - Type definitions for property change tracking in revisions
3
+ *
4
+ * These types represent the parsed data from OOXML property change elements:
5
+ * - w:rPrChange (run property changes)
6
+ * - w:pPrChange (paragraph property changes)
7
+ * - w:tblPrChange, w:trPrChange, w:tcPrChange (table property changes)
8
+ * - w:sectPrChange (section property changes)
9
+ * - w:numberingChange (numbering property changes)
10
+ *
11
+ * Per ECMA-376, property change elements track the PREVIOUS state of properties
12
+ * before a change was made, allowing Word to show what changed and enabling
13
+ * accept/reject functionality.
14
+ *
15
+ * @module PropertyChangeTypes
16
+ */
17
+
18
+ import type { RunFormatting } from './Run';
19
+ import type { ShadingConfig } from './CommonTypes';
20
+
21
+ /**
22
+ * Common base for all property change types
23
+ */
24
+ export interface PropertyChangeBase {
25
+ /** Unique revision ID (ST_DecimalNumber) */
26
+ id: number;
27
+ /** Author who made the change (required) */
28
+ author: string;
29
+ /** Date when the change was made (ISO 8601) */
30
+ date: Date;
31
+ }
32
+
33
+ /**
34
+ * Run property change (w:rPrChange)
35
+ *
36
+ * Tracks changes to run-level formatting such as:
37
+ * - Bold, italic, underline
38
+ * - Font name, size, color
39
+ * - Highlight, strikethrough
40
+ * - Character spacing, subscript/superscript
41
+ *
42
+ * @example
43
+ * ```xml
44
+ * <w:rPrChange w:id="1" w:author="John" w:date="2024-01-15T10:30:00Z">
45
+ * <w:rPr>
46
+ * <w:b/> <!-- Was bold before change -->
47
+ * </w:rPr>
48
+ * </w:rPrChange>
49
+ * ```
50
+ */
51
+ export interface RunPropertyChange extends PropertyChangeBase {
52
+ /** Previous run formatting properties before the change */
53
+ previousProperties: Partial<RunFormatting>;
54
+ }
55
+
56
+ /**
57
+ * Border definition for paragraph borders
58
+ * Per ECMA-376 Part 1 Section 17.3.1.24
59
+ */
60
+ export interface ParagraphBorderDef {
61
+ /** Border style (single, double, dotted, dashed, etc.) */
62
+ val?: string;
63
+ /** Border width in eighths of a point */
64
+ sz?: number;
65
+ /** Space between border and content in points */
66
+ space?: number;
67
+ /** Border color (hex RGB without #) */
68
+ color?: string;
69
+ /** Theme color reference */
70
+ themeColor?: string;
71
+ }
72
+
73
+ /**
74
+ * Paragraph borders (w:pBdr)
75
+ * Per ECMA-376 Part 1 Section 17.3.1.24
76
+ */
77
+ export interface ParagraphBorders {
78
+ /** Top border */
79
+ top?: ParagraphBorderDef;
80
+ /** Bottom border */
81
+ bottom?: ParagraphBorderDef;
82
+ /** Left border */
83
+ left?: ParagraphBorderDef;
84
+ /** Right border */
85
+ right?: ParagraphBorderDef;
86
+ /** Border between paragraphs with same borders */
87
+ between?: ParagraphBorderDef;
88
+ /** Bar border (vertical line) */
89
+ bar?: ParagraphBorderDef;
90
+ }
91
+
92
+ /**
93
+ * Paragraph shading (w:shd)
94
+ * @see ShadingConfig in CommonTypes.ts for the canonical definition
95
+ */
96
+ export type ParagraphShading = ShadingConfig;
97
+
98
+ /**
99
+ * Tab stop definition
100
+ * Per ECMA-376 Part 1 Section 17.3.1.38
101
+ */
102
+ export interface TabStopDef {
103
+ /** Tab stop type (left, right, center, decimal, bar, clear) */
104
+ val?: string;
105
+ /** Tab position in twips */
106
+ pos?: number;
107
+ /** Leader character (none, dot, hyphen, underscore, middleDot) */
108
+ leader?: string;
109
+ }
110
+
111
+ /**
112
+ * Paragraph formatting options (subset for type safety)
113
+ * Full ParagraphFormatting is in Paragraph.ts but we need a partial here
114
+ *
115
+ * Per ECMA-376 Part 1 Section 17.3.1, this covers all paragraph properties
116
+ * that can be tracked in w:pPrChange revision elements.
117
+ */
118
+ export interface ParagraphFormattingPartial {
119
+ /** Text alignment: left, center, right, justify */
120
+ alignment?: 'left' | 'center' | 'right' | 'justify';
121
+ /** Left indentation in twips */
122
+ leftIndent?: number;
123
+ /** Right indentation in twips */
124
+ rightIndent?: number;
125
+ /** First line indentation in twips */
126
+ firstLineIndent?: number;
127
+ /** Hanging indentation in twips */
128
+ hangingIndent?: number;
129
+ /** Spacing before paragraph in twips */
130
+ spaceBefore?: number;
131
+ /** Spacing after paragraph in twips */
132
+ spaceAfter?: number;
133
+ /** Line spacing in twips */
134
+ lineSpacing?: number;
135
+ /** Line spacing rule */
136
+ lineSpacingRule?: 'auto' | 'exact' | 'atLeast';
137
+ /** Paragraph style ID */
138
+ style?: string;
139
+ /** Keep with next paragraph */
140
+ keepNext?: boolean;
141
+ /** Keep lines together */
142
+ keepLines?: boolean;
143
+ /** Page break before */
144
+ pageBreakBefore?: boolean;
145
+ /** Widow/orphan control */
146
+ widowControl?: boolean;
147
+ /** Suppress auto-hyphenation */
148
+ suppressAutoHyphens?: boolean;
149
+ /** Contextual spacing */
150
+ contextualSpacing?: boolean;
151
+ /** Mirror indents */
152
+ mirrorIndents?: boolean;
153
+ /** Outline level (for headings) */
154
+ outlineLevel?: number;
155
+ /** Right-to-left paragraph */
156
+ bidi?: boolean;
157
+ /** Numbering properties (list formatting) */
158
+ numbering?: {
159
+ numId?: number;
160
+ level?: number;
161
+ };
162
+
163
+ // === Extended properties for full ECMA-376 compliance ===
164
+
165
+ /**
166
+ * Paragraph borders (w:pBdr)
167
+ * Per ECMA-376 Part 1 Section 17.3.1.24
168
+ */
169
+ borders?: ParagraphBorders;
170
+
171
+ /**
172
+ * Paragraph shading/background (w:shd)
173
+ * Per ECMA-376 Part 1 Section 17.3.1.32
174
+ */
175
+ shading?: ParagraphShading;
176
+
177
+ /**
178
+ * Custom tab stops (w:tabs)
179
+ * Per ECMA-376 Part 1 Section 17.3.1.38
180
+ */
181
+ tabs?: TabStopDef[];
182
+
183
+ /**
184
+ * Text direction (w:textDirection)
185
+ * Per ECMA-376 Part 1 Section 17.3.1.40
186
+ * Values: lrTb, tbRl, btLr, lrTbV, tbRlV, tbLrV
187
+ */
188
+ textDirection?: string;
189
+
190
+ /**
191
+ * Text alignment (w:textAlignment)
192
+ * Per ECMA-376 Part 1 Section 17.3.1.39
193
+ * Values: auto, top, center, baseline, bottom
194
+ */
195
+ textAlignment?: string;
196
+
197
+ /**
198
+ * Suppress line numbers (w:suppressLineNumbers)
199
+ * Per ECMA-376 Part 1 Section 17.3.1.35
200
+ */
201
+ suppressLineNumbers?: boolean;
202
+
203
+ /**
204
+ * Adjust right indent (w:adjustRightInd)
205
+ * Per ECMA-376 Part 1 Section 17.3.1.1
206
+ */
207
+ adjustRightInd?: boolean;
208
+
209
+ /**
210
+ * Snap to grid (w:snapToGrid)
211
+ * Per ECMA-376 Part 1 Section 17.3.1.33
212
+ */
213
+ snapToGrid?: boolean;
214
+
215
+ /**
216
+ * Word wrap (w:wordWrap)
217
+ * Per ECMA-376 Part 1 Section 17.3.1.44
218
+ */
219
+ wordWrap?: boolean;
220
+
221
+ /**
222
+ * Auto space between East Asian and numeric (w:autoSpaceDE)
223
+ */
224
+ autoSpaceDE?: boolean;
225
+
226
+ /**
227
+ * Auto space between East Asian and Western (w:autoSpaceDN)
228
+ */
229
+ autoSpaceDN?: boolean;
230
+ }
231
+
232
+ /**
233
+ * Paragraph property change (w:pPrChange)
234
+ *
235
+ * Tracks changes to paragraph-level formatting such as:
236
+ * - Alignment (left, center, right, justify)
237
+ * - Indentation (left, right, first line, hanging)
238
+ * - Spacing (before, after, line)
239
+ * - Keep with next, keep lines together
240
+ * - Paragraph style
241
+ * - Numbering/list formatting (numId, ilvl)
242
+ *
243
+ * @example
244
+ * ```xml
245
+ * <w:pPrChange w:id="2" w:author="Jane" w:date="2024-01-15T11:00:00Z">
246
+ * <w:pPr>
247
+ * <w:jc w:val="left"/> <!-- Was left-aligned before change -->
248
+ * </w:pPr>
249
+ * </w:pPrChange>
250
+ * ```
251
+ */
252
+ export interface ParagraphPropertyChange extends PropertyChangeBase {
253
+ /** Previous paragraph formatting properties before the change */
254
+ previousProperties: Partial<ParagraphFormattingPartial>;
255
+ }
256
+
257
+ /**
258
+ * Table property change types
259
+ */
260
+ export type TablePropertyChangeType = 'table' | 'row' | 'cell';
261
+
262
+ /**
263
+ * Table property change (w:tblPrChange, w:trPrChange, w:tcPrChange)
264
+ *
265
+ * Tracks changes to table-level properties including:
266
+ * - Table: width, alignment, borders, shading
267
+ * - Row: height, header row, can't split
268
+ * - Cell: width, vertical alignment, borders, shading, merge
269
+ *
270
+ * @example
271
+ * ```xml
272
+ * <w:tblPrChange w:id="3" w:author="John" w:date="2024-01-15T12:00:00Z">
273
+ * <w:tblPr>
274
+ * <w:tblW w:w="5000" w:type="pct"/>
275
+ * </w:tblPr>
276
+ * </w:tblPrChange>
277
+ * ```
278
+ */
279
+ export interface TablePropertyChange extends PropertyChangeBase {
280
+ /** Type of table element (table, row, or cell) */
281
+ elementType: TablePropertyChangeType;
282
+ /** Previous table properties before the change */
283
+ previousProperties: Record<string, any>;
284
+ }
285
+
286
+ /**
287
+ * Section property change (w:sectPrChange)
288
+ *
289
+ * Tracks changes to section-level properties such as:
290
+ * - Page size (width, height)
291
+ * - Page margins (top, bottom, left, right, header, footer, gutter)
292
+ * - Page orientation (portrait, landscape)
293
+ * - Columns configuration
294
+ * - Page numbering
295
+ *
296
+ * @example
297
+ * ```xml
298
+ * <w:sectPrChange w:id="4" w:author="Jane" w:date="2024-01-15T13:00:00Z">
299
+ * <w:sectPr>
300
+ * <w:pgSz w:w="12240" w:h="15840"/>
301
+ * <w:pgMar w:top="1440" w:right="1440" w:bottom="1440" w:left="1440"/>
302
+ * </w:sectPr>
303
+ * </w:sectPrChange>
304
+ * ```
305
+ */
306
+ export interface SectionPropertyChange extends PropertyChangeBase {
307
+ /** Previous section properties before the change */
308
+ previousProperties: Record<string, any>;
309
+ }
310
+
311
+ /**
312
+ * Numbering change (w:numberingChange)
313
+ *
314
+ * Tracks changes to list numbering properties:
315
+ * - Numbering definition ID
316
+ * - Indentation level
317
+ * - Starting number
318
+ *
319
+ * @example
320
+ * ```xml
321
+ * <w:numberingChange w:id="5" w:author="John" w:date="2024-01-15T14:00:00Z"
322
+ * w:original="1" />
323
+ * ```
324
+ */
325
+ export interface NumberingChange extends PropertyChangeBase {
326
+ /** Previous numbering definition ID */
327
+ previousNumId?: number;
328
+ /** Previous indentation level */
329
+ previousIlvl?: number;
330
+ /** Original numbering format string */
331
+ original?: string;
332
+ }
333
+
334
+ /**
335
+ * Location of a revision within the document structure
336
+ * Used for precise change tracking and changelog generation
337
+ */
338
+ export interface RevisionLocation {
339
+ /** Paragraph index within the document body (0-based) */
340
+ paragraphIndex?: number;
341
+ /** Run index within the paragraph (0-based) */
342
+ runIndex?: number;
343
+ /** Table row index (0-based) - only for table revisions */
344
+ tableRow?: number;
345
+ /** Table cell index within row (0-based) - only for table revisions */
346
+ tableCell?: number;
347
+ /** Section index (0-based) - only for section revisions */
348
+ sectionIndex?: number;
349
+ /** Header/footer type if revision is in header/footer */
350
+ headerFooterType?: 'header' | 'footer' | 'firstHeader' | 'firstFooter' | 'evenHeader' | 'evenFooter';
351
+ }
352
+
353
+ /**
354
+ * Union type for all property change types
355
+ */
356
+ export type AnyPropertyChange =
357
+ | RunPropertyChange
358
+ | ParagraphPropertyChange
359
+ | TablePropertyChange
360
+ | SectionPropertyChange
361
+ | NumberingChange;
362
+
363
+ /**
364
+ * Type guard to check if a property change is a RunPropertyChange
365
+ *
366
+ * Note: Empty previousProperties cannot be reliably typed - this guard returns
367
+ * false for empty objects. Use context-aware typing when the source is known.
368
+ */
369
+ export function isRunPropertyChange(change: AnyPropertyChange): change is RunPropertyChange {
370
+ if (!('previousProperties' in change) || 'elementType' in change || 'previousNumId' in change) {
371
+ return false;
372
+ }
373
+ // Check for typical run properties - must have at least one identifiable property
374
+ const props = change.previousProperties as Partial<RunFormatting>;
375
+ return props.bold !== undefined ||
376
+ props.italic !== undefined ||
377
+ props.font !== undefined ||
378
+ props.size !== undefined ||
379
+ props.color !== undefined ||
380
+ props.underline !== undefined ||
381
+ props.strike !== undefined ||
382
+ props.highlight !== undefined ||
383
+ props.smallCaps !== undefined ||
384
+ props.allCaps !== undefined ||
385
+ props.subscript !== undefined ||
386
+ props.superscript !== undefined;
387
+ }
388
+
389
+ /**
390
+ * Type guard to check if a property change is a ParagraphPropertyChange
391
+ */
392
+ export function isParagraphPropertyChange(change: AnyPropertyChange): change is ParagraphPropertyChange {
393
+ return 'previousProperties' in change &&
394
+ !('elementType' in change) &&
395
+ !('previousNumId' in change) &&
396
+ // Check for typical paragraph properties
397
+ ((change.previousProperties as ParagraphFormattingPartial).alignment !== undefined ||
398
+ (change.previousProperties as ParagraphFormattingPartial).leftIndent !== undefined ||
399
+ (change.previousProperties as ParagraphFormattingPartial).spaceBefore !== undefined ||
400
+ (change.previousProperties as ParagraphFormattingPartial).style !== undefined);
401
+ }
402
+
403
+ /**
404
+ * Type guard to check if a property change is a TablePropertyChange
405
+ */
406
+ export function isTablePropertyChange(change: AnyPropertyChange): change is TablePropertyChange {
407
+ return 'elementType' in change;
408
+ }
409
+
410
+ /**
411
+ * Type guard to check if a property change is a SectionPropertyChange
412
+ *
413
+ * Checks for section-specific properties: page size, margins, orientation, columns, etc.
414
+ * Per ECMA-376, section properties are distinct from run/paragraph properties.
415
+ */
416
+ export function isSectionPropertyChange(change: AnyPropertyChange): change is SectionPropertyChange {
417
+ if (!('previousProperties' in change) || 'elementType' in change || 'previousNumId' in change) {
418
+ return false;
419
+ }
420
+ // Check for section-specific properties
421
+ const props = change.previousProperties as Record<string, any>;
422
+ return props.pageWidth !== undefined ||
423
+ props.pageHeight !== undefined ||
424
+ props.orientation !== undefined ||
425
+ props.marginTop !== undefined ||
426
+ props.marginBottom !== undefined ||
427
+ props.marginLeft !== undefined ||
428
+ props.marginRight !== undefined ||
429
+ props.columns !== undefined ||
430
+ props.headerDistance !== undefined ||
431
+ props.footerDistance !== undefined ||
432
+ props.gutterMargin !== undefined ||
433
+ props.pageNumberStart !== undefined ||
434
+ props.sectionType !== undefined;
435
+ }
436
+
437
+ /**
438
+ * Type guard to check if a property change is a NumberingChange
439
+ */
440
+ export function isNumberingChange(change: AnyPropertyChange): change is NumberingChange {
441
+ return 'previousNumId' in change || 'previousIlvl' in change || 'original' in change;
442
+ }