docxmlater 10.0.2 → 10.0.4

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 (398) 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 +23 -19
  9. package/dist/core/Document.d.ts.map +1 -1
  10. package/dist/core/Document.js +197 -63
  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 +86 -55
  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 +8 -0
  76. package/dist/elements/Paragraph.d.ts.map +1 -1
  77. package/dist/elements/Paragraph.js +153 -118
  78. package/dist/elements/Paragraph.js.map +1 -1
  79. package/dist/elements/PreservedElement.js.map +1 -1
  80. package/dist/elements/PropertyChangeTypes.js.map +1 -1
  81. package/dist/elements/RangeMarker.js.map +1 -1
  82. package/dist/elements/Revision.d.ts +1 -0
  83. package/dist/elements/Revision.d.ts.map +1 -1
  84. package/dist/elements/Revision.js +44 -5
  85. package/dist/elements/Revision.js.map +1 -1
  86. package/dist/elements/RevisionContent.js.map +1 -1
  87. package/dist/elements/RevisionManager.d.ts.map +1 -1
  88. package/dist/elements/RevisionManager.js.map +1 -1
  89. package/dist/elements/Run.d.ts.map +1 -1
  90. package/dist/elements/Run.js +1 -3
  91. package/dist/elements/Run.js.map +1 -1
  92. package/dist/elements/Section.d.ts.map +1 -1
  93. package/dist/elements/Section.js +127 -118
  94. package/dist/elements/Section.js.map +1 -1
  95. package/dist/elements/Shape.d.ts.map +1 -1
  96. package/dist/elements/Shape.js +21 -0
  97. package/dist/elements/Shape.js.map +1 -1
  98. package/dist/elements/StructuredDocumentTag.d.ts.map +1 -1
  99. package/dist/elements/StructuredDocumentTag.js +20 -8
  100. package/dist/elements/StructuredDocumentTag.js.map +1 -1
  101. package/dist/elements/Table.d.ts +2 -2
  102. package/dist/elements/Table.d.ts.map +1 -1
  103. package/dist/elements/Table.js +29 -35
  104. package/dist/elements/Table.js.map +1 -1
  105. package/dist/elements/TableCell.d.ts +2 -2
  106. package/dist/elements/TableCell.d.ts.map +1 -1
  107. package/dist/elements/TableCell.js +63 -67
  108. package/dist/elements/TableCell.js.map +1 -1
  109. package/dist/elements/TableGridChange.js.map +1 -1
  110. package/dist/elements/TableOfContents.d.ts +6 -6
  111. package/dist/elements/TableOfContents.d.ts.map +1 -1
  112. package/dist/elements/TableOfContents.js.map +1 -1
  113. package/dist/elements/TableOfContentsElement.js.map +1 -1
  114. package/dist/elements/TableRow.d.ts.map +1 -1
  115. package/dist/elements/TableRow.js +65 -47
  116. package/dist/elements/TableRow.js.map +1 -1
  117. package/dist/elements/TextBox.d.ts.map +1 -1
  118. package/dist/elements/TextBox.js +1 -1
  119. package/dist/elements/TextBox.js.map +1 -1
  120. package/dist/formatting/AbstractNumbering.d.ts +1 -1
  121. package/dist/formatting/AbstractNumbering.d.ts.map +1 -1
  122. package/dist/formatting/AbstractNumbering.js +11 -11
  123. package/dist/formatting/AbstractNumbering.js.map +1 -1
  124. package/dist/formatting/NumberingInstance.d.ts.map +1 -1
  125. package/dist/formatting/NumberingInstance.js +4 -4
  126. package/dist/formatting/NumberingInstance.js.map +1 -1
  127. package/dist/formatting/NumberingLevel.d.ts.map +1 -1
  128. package/dist/formatting/NumberingLevel.js +26 -26
  129. package/dist/formatting/NumberingLevel.js.map +1 -1
  130. package/dist/formatting/NumberingManager.d.ts +1 -1
  131. package/dist/formatting/NumberingManager.d.ts.map +1 -1
  132. package/dist/formatting/NumberingManager.js.map +1 -1
  133. package/dist/formatting/Style.d.ts.map +1 -1
  134. package/dist/formatting/Style.js +87 -95
  135. package/dist/formatting/Style.js.map +1 -1
  136. package/dist/formatting/StylesManager.d.ts +3 -3
  137. package/dist/formatting/StylesManager.d.ts.map +1 -1
  138. package/dist/formatting/StylesManager.js.map +1 -1
  139. package/dist/helpers/CleanupHelper.js.map +1 -1
  140. package/dist/images/ImageOptimizer.js.map +1 -1
  141. package/dist/index.js.map +1 -1
  142. package/dist/managers/DrawingManager.d.ts.map +1 -1
  143. package/dist/managers/DrawingManager.js.map +1 -1
  144. package/dist/tracking/DocumentTrackingContext.js.map +1 -1
  145. package/dist/tracking/TrackingContext.js.map +1 -1
  146. package/dist/types/compatibility-types.js.map +1 -1
  147. package/dist/types/formatting.js.map +1 -1
  148. package/dist/types/list-types.d.ts +4 -4
  149. package/dist/types/list-types.d.ts.map +1 -1
  150. package/dist/types/list-types.js.map +1 -1
  151. package/dist/types/settings-types.js.map +1 -1
  152. package/dist/types/styleConfig.js.map +1 -1
  153. package/dist/utils/ChangelogGenerator.d.ts.map +1 -1
  154. package/dist/utils/ChangelogGenerator.js.map +1 -1
  155. package/dist/utils/CompatibilityUpgrader.d.ts.map +1 -1
  156. package/dist/utils/CompatibilityUpgrader.js +7 -7
  157. package/dist/utils/CompatibilityUpgrader.js.map +1 -1
  158. package/dist/utils/InMemoryRevisionAcceptor.d.ts.map +1 -1
  159. package/dist/utils/InMemoryRevisionAcceptor.js +23 -2
  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.d.ts +1 -0
  165. package/dist/utils/SelectiveRevisionAcceptor.d.ts.map +1 -1
  166. package/dist/utils/SelectiveRevisionAcceptor.js +46 -0
  167. package/dist/utils/SelectiveRevisionAcceptor.js.map +1 -1
  168. package/dist/utils/ShadingResolver.js +1 -1
  169. package/dist/utils/ShadingResolver.js.map +1 -1
  170. package/dist/utils/acceptRevisions.d.ts +0 -28
  171. package/dist/utils/acceptRevisions.d.ts.map +1 -1
  172. package/dist/utils/acceptRevisions.js +5 -7
  173. package/dist/utils/acceptRevisions.js.map +1 -1
  174. package/dist/utils/cnfStyleDecoder.js +1 -1
  175. package/dist/utils/cnfStyleDecoder.js.map +1 -1
  176. package/dist/utils/corruptionDetection.js.map +1 -1
  177. package/dist/utils/dateFormatting.js.map +1 -1
  178. package/dist/utils/deepClone.d.ts +0 -1
  179. package/dist/utils/deepClone.d.ts.map +1 -1
  180. package/dist/utils/deepClone.js +0 -7
  181. package/dist/utils/deepClone.js.map +1 -1
  182. package/dist/utils/diagnostics.d.ts +2 -2
  183. package/dist/utils/diagnostics.d.ts.map +1 -1
  184. package/dist/utils/diagnostics.js.map +1 -1
  185. package/dist/utils/errorHandling.js.map +1 -1
  186. package/dist/utils/formatting.js.map +1 -1
  187. package/dist/utils/list-detection.d.ts +2 -2
  188. package/dist/utils/list-detection.d.ts.map +1 -1
  189. package/dist/utils/list-detection.js +3 -3
  190. package/dist/utils/list-detection.js.map +1 -1
  191. package/dist/utils/logger.d.ts +2 -4
  192. package/dist/utils/logger.d.ts.map +1 -1
  193. package/dist/utils/logger.js +0 -2
  194. package/dist/utils/logger.js.map +1 -1
  195. package/dist/utils/parsingHelpers.js.map +1 -1
  196. package/dist/utils/stripTrackedChanges.d.ts +0 -19
  197. package/dist/utils/stripTrackedChanges.d.ts.map +1 -1
  198. package/dist/utils/stripTrackedChanges.js +0 -2
  199. package/dist/utils/stripTrackedChanges.js.map +1 -1
  200. package/dist/utils/textDiff.js.map +1 -1
  201. package/dist/utils/units.js.map +1 -1
  202. package/dist/utils/validation.d.ts.map +1 -1
  203. package/dist/utils/validation.js.map +1 -1
  204. package/dist/utils/xmlSanitization.js.map +1 -1
  205. package/dist/validation/RevisionAutoFixer.js.map +1 -1
  206. package/dist/validation/RevisionValidator.js.map +1 -1
  207. package/dist/validation/ValidationRules.js.map +1 -1
  208. package/dist/validation/index.js.map +1 -1
  209. package/dist/xml/XMLBuilder.d.ts.map +1 -1
  210. package/dist/xml/XMLBuilder.js +10 -0
  211. package/dist/xml/XMLBuilder.js.map +1 -1
  212. package/dist/xml/XMLParser.d.ts.map +1 -1
  213. package/dist/xml/XMLParser.js +4 -5
  214. package/dist/xml/XMLParser.js.map +1 -1
  215. package/dist/zip/ZipHandler.js.map +1 -1
  216. package/dist/zip/ZipReader.js.map +1 -1
  217. package/dist/zip/ZipWriter.js.map +1 -1
  218. package/dist/zip/errors.js.map +1 -1
  219. package/dist/zip/types.js.map +1 -1
  220. package/package.json +34 -4
  221. package/src/__tests__/helper-methods.test.ts +512 -0
  222. package/src/constants/legacyCompatFlags.ts +138 -0
  223. package/src/constants/limits.ts +50 -0
  224. package/src/core/CLAUDE.md +109 -0
  225. package/src/core/Document.ts +15569 -0
  226. package/src/core/DocumentContent.ts +467 -0
  227. package/src/core/DocumentGenerator.ts +1104 -0
  228. package/src/core/DocumentIdManager.ts +158 -0
  229. package/src/core/DocumentParser.ts +10140 -0
  230. package/src/core/DocumentValidator.ts +372 -0
  231. package/src/core/Relationship.ts +367 -0
  232. package/src/core/RelationshipManager.ts +428 -0
  233. package/src/elements/AlternateContent.ts +42 -0
  234. package/src/elements/Bookmark.ts +210 -0
  235. package/src/elements/BookmarkManager.ts +250 -0
  236. package/src/elements/CLAUDE.md +126 -0
  237. package/src/elements/Comment.ts +359 -0
  238. package/src/elements/CommentManager.ts +502 -0
  239. package/src/elements/CommonTypes.ts +549 -0
  240. package/src/elements/CustomXml.ts +36 -0
  241. package/src/elements/Endnote.ts +217 -0
  242. package/src/elements/EndnoteManager.ts +249 -0
  243. package/src/elements/Field.ts +1233 -0
  244. package/src/elements/FieldHelpers.ts +333 -0
  245. package/src/elements/FontManager.ts +339 -0
  246. package/src/elements/Footer.ts +269 -0
  247. package/src/elements/Footnote.ts +217 -0
  248. package/src/elements/FootnoteManager.ts +249 -0
  249. package/src/elements/Header.ts +269 -0
  250. package/src/elements/HeaderFooterManager.ts +219 -0
  251. package/src/elements/Hyperlink.ts +1146 -0
  252. package/src/elements/Image.ts +1756 -0
  253. package/src/elements/ImageManager.ts +432 -0
  254. package/src/elements/ImageRun.ts +59 -0
  255. package/src/elements/MathElement.ts +65 -0
  256. package/src/elements/Paragraph.ts +4287 -0
  257. package/src/elements/PreservedElement.ts +53 -0
  258. package/src/elements/PropertyChangeTypes.ts +442 -0
  259. package/src/elements/RangeMarker.ts +400 -0
  260. package/src/elements/Revision.ts +1217 -0
  261. package/src/elements/RevisionContent.ts +73 -0
  262. package/src/elements/RevisionManager.ts +1070 -0
  263. package/src/elements/Run.ts +3068 -0
  264. package/src/elements/Section.ts +1421 -0
  265. package/src/elements/Shape.ts +873 -0
  266. package/src/elements/StructuredDocumentTag.ts +978 -0
  267. package/src/elements/Table.ts +2524 -0
  268. package/src/elements/TableCell.ts +1586 -0
  269. package/src/elements/TableGridChange.ts +151 -0
  270. package/src/elements/TableOfContents.ts +691 -0
  271. package/src/elements/TableOfContentsElement.ts +89 -0
  272. package/src/elements/TableRow.ts +906 -0
  273. package/src/elements/TextBox.ts +768 -0
  274. package/src/formatting/AbstractNumbering.ts +548 -0
  275. package/src/formatting/CLAUDE.md +74 -0
  276. package/src/formatting/NumberingInstance.ts +212 -0
  277. package/src/formatting/NumberingLevel.ts +1006 -0
  278. package/src/formatting/NumberingManager.ts +827 -0
  279. package/src/formatting/Style.ts +1833 -0
  280. package/src/formatting/StylesManager.ts +1005 -0
  281. package/src/helpers/CleanupHelper.ts +524 -0
  282. package/src/images/ImageOptimizer.ts +274 -0
  283. package/src/index.ts +554 -0
  284. package/src/managers/CLAUDE.md +47 -0
  285. package/src/managers/DrawingManager.ts +319 -0
  286. package/src/tracking/DocumentTrackingContext.ts +643 -0
  287. package/src/tracking/TrackingContext.ts +173 -0
  288. package/src/types/compatibility-types.ts +49 -0
  289. package/src/types/formatting.ts +210 -0
  290. package/src/types/list-types.ts +152 -0
  291. package/src/types/settings-types.ts +59 -0
  292. package/src/types/styleConfig.ts +189 -0
  293. package/src/utils/CLAUDE.md +153 -0
  294. package/src/utils/ChangelogGenerator.ts +1581 -0
  295. package/src/utils/CompatibilityUpgrader.ts +237 -0
  296. package/src/utils/InMemoryRevisionAcceptor.ts +696 -0
  297. package/src/utils/MoveOperationHelper.ts +238 -0
  298. package/src/utils/RevisionAwareProcessor.ts +526 -0
  299. package/src/utils/RevisionWalker.ts +457 -0
  300. package/src/utils/SelectiveRevisionAcceptor.ts +683 -0
  301. package/src/utils/ShadingResolver.ts +107 -0
  302. package/src/utils/acceptRevisions.ts +714 -0
  303. package/src/utils/cnfStyleDecoder.ts +217 -0
  304. package/src/utils/corruptionDetection.ts +345 -0
  305. package/src/utils/dateFormatting.ts +20 -0
  306. package/src/utils/deepClone.ts +78 -0
  307. package/src/utils/diagnostics.ts +129 -0
  308. package/src/utils/errorHandling.ts +80 -0
  309. package/src/utils/formatting.ts +213 -0
  310. package/src/utils/list-detection.ts +274 -0
  311. package/src/utils/logger.ts +404 -0
  312. package/src/utils/parsingHelpers.ts +190 -0
  313. package/src/utils/stripTrackedChanges.ts +353 -0
  314. package/src/utils/textDiff.ts +100 -0
  315. package/src/utils/units.ts +421 -0
  316. package/src/utils/validation.ts +542 -0
  317. package/src/utils/xmlSanitization.ts +182 -0
  318. package/src/validation/RevisionAutoFixer.ts +542 -0
  319. package/src/validation/RevisionValidator.ts +460 -0
  320. package/src/validation/ValidationRules.ts +338 -0
  321. package/src/validation/index.ts +30 -0
  322. package/src/xml/CLAUDE.md +65 -0
  323. package/src/xml/XMLBuilder.ts +871 -0
  324. package/src/xml/XMLParser.ts +919 -0
  325. package/src/zip/CLAUDE.md +55 -0
  326. package/src/zip/ZipHandler.ts +637 -0
  327. package/src/zip/ZipReader.ts +299 -0
  328. package/src/zip/ZipWriter.ts +390 -0
  329. package/src/zip/errors.ts +69 -0
  330. package/src/zip/types.ts +116 -0
  331. package/dist/core/ListNormalizer.d.ts +0 -23
  332. package/dist/core/ListNormalizer.d.ts.map +0 -1
  333. package/dist/core/ListNormalizer.js +0 -624
  334. package/dist/core/ListNormalizer.js.map +0 -1
  335. package/dist/images/index.d.ts +0 -2
  336. package/dist/images/index.d.ts.map +0 -1
  337. package/dist/images/index.js +0 -8
  338. package/dist/images/index.js.map +0 -1
  339. package/dist/ms-doc/cfb/CFBReader.d.ts +0 -35
  340. package/dist/ms-doc/cfb/CFBReader.d.ts.map +0 -1
  341. package/dist/ms-doc/cfb/CFBReader.js +0 -360
  342. package/dist/ms-doc/cfb/CFBReader.js.map +0 -1
  343. package/dist/ms-doc/converter/DocToDocxConverter.d.ts +0 -55
  344. package/dist/ms-doc/converter/DocToDocxConverter.d.ts.map +0 -1
  345. package/dist/ms-doc/converter/DocToDocxConverter.js +0 -324
  346. package/dist/ms-doc/converter/DocToDocxConverter.js.map +0 -1
  347. package/dist/ms-doc/fib/FIB.d.ts +0 -18
  348. package/dist/ms-doc/fib/FIB.d.ts.map +0 -1
  349. package/dist/ms-doc/fib/FIB.js +0 -342
  350. package/dist/ms-doc/fib/FIB.js.map +0 -1
  351. package/dist/ms-doc/fields/FieldParser.d.ts +0 -31
  352. package/dist/ms-doc/fields/FieldParser.d.ts.map +0 -1
  353. package/dist/ms-doc/fields/FieldParser.js +0 -266
  354. package/dist/ms-doc/fields/FieldParser.js.map +0 -1
  355. package/dist/ms-doc/images/PictureExtractor.d.ts +0 -22
  356. package/dist/ms-doc/images/PictureExtractor.d.ts.map +0 -1
  357. package/dist/ms-doc/images/PictureExtractor.js +0 -233
  358. package/dist/ms-doc/images/PictureExtractor.js.map +0 -1
  359. package/dist/ms-doc/index.d.ts +0 -20
  360. package/dist/ms-doc/index.d.ts.map +0 -1
  361. package/dist/ms-doc/index.js +0 -59
  362. package/dist/ms-doc/index.js.map +0 -1
  363. package/dist/ms-doc/properties/SPRM.d.ts +0 -210
  364. package/dist/ms-doc/properties/SPRM.d.ts.map +0 -1
  365. package/dist/ms-doc/properties/SPRM.js +0 -633
  366. package/dist/ms-doc/properties/SPRM.js.map +0 -1
  367. package/dist/ms-doc/sections/SectionParser.d.ts +0 -25
  368. package/dist/ms-doc/sections/SectionParser.d.ts.map +0 -1
  369. package/dist/ms-doc/sections/SectionParser.js +0 -214
  370. package/dist/ms-doc/sections/SectionParser.js.map +0 -1
  371. package/dist/ms-doc/styles/StyleSheet.d.ts +0 -23
  372. package/dist/ms-doc/styles/StyleSheet.d.ts.map +0 -1
  373. package/dist/ms-doc/styles/StyleSheet.js +0 -268
  374. package/dist/ms-doc/styles/StyleSheet.js.map +0 -1
  375. package/dist/ms-doc/subdocuments/SubdocumentParser.d.ts +0 -61
  376. package/dist/ms-doc/subdocuments/SubdocumentParser.d.ts.map +0 -1
  377. package/dist/ms-doc/subdocuments/SubdocumentParser.js +0 -208
  378. package/dist/ms-doc/subdocuments/SubdocumentParser.js.map +0 -1
  379. package/dist/ms-doc/tables/TableParser.d.ts +0 -29
  380. package/dist/ms-doc/tables/TableParser.d.ts.map +0 -1
  381. package/dist/ms-doc/tables/TableParser.js +0 -176
  382. package/dist/ms-doc/tables/TableParser.js.map +0 -1
  383. package/dist/ms-doc/text/PieceTable.d.ts +0 -21
  384. package/dist/ms-doc/text/PieceTable.d.ts.map +0 -1
  385. package/dist/ms-doc/text/PieceTable.js +0 -171
  386. package/dist/ms-doc/text/PieceTable.js.map +0 -1
  387. package/dist/ms-doc/types/Constants.d.ts +0 -99
  388. package/dist/ms-doc/types/Constants.d.ts.map +0 -1
  389. package/dist/ms-doc/types/Constants.js +0 -102
  390. package/dist/ms-doc/types/Constants.js.map +0 -1
  391. package/dist/ms-doc/types/DocTypes.d.ts +0 -368
  392. package/dist/ms-doc/types/DocTypes.d.ts.map +0 -1
  393. package/dist/ms-doc/types/DocTypes.js +0 -3
  394. package/dist/ms-doc/types/DocTypes.js.map +0 -1
  395. package/dist/tracking/index.d.ts +0 -3
  396. package/dist/tracking/index.d.ts.map +0 -1
  397. package/dist/tracking/index.js +0 -6
  398. package/dist/tracking/index.js.map +0 -1
@@ -0,0 +1,189 @@
1
+ /**
2
+ * Configuration interfaces for customizable style formatting
3
+ * Used by Document.applyCustomFormattingToExistingStyles()
4
+ */
5
+
6
+ /**
7
+ * Run (character) formatting configuration for styles
8
+ */
9
+ export interface StyleRunFormatting {
10
+ /** Font family name (e.g., 'Verdana', 'Arial', 'Times New Roman') */
11
+ font?: string;
12
+
13
+ /** Font size in points (e.g., 12, 14, 18) */
14
+ size?: number;
15
+
16
+ /** Whether text should be bold */
17
+ bold?: boolean;
18
+
19
+ /** Whether text should be italic */
20
+ italic?: boolean;
21
+
22
+ /** Whether text should be underlined */
23
+ underline?: boolean;
24
+
25
+ /** Text color as hex without # (e.g., '000000', 'FF0000') */
26
+ color?: string;
27
+
28
+ /** If true, preserve existing bold formatting (don't apply bold property) */
29
+ preserveBold?: boolean;
30
+
31
+ /** If true, preserve existing italic formatting (don't apply italic property) */
32
+ preserveItalic?: boolean;
33
+
34
+ /** If true, preserve existing underline formatting (don't apply underline property) */
35
+ preserveUnderline?: boolean;
36
+ }
37
+
38
+ /**
39
+ * Paragraph formatting configuration for styles
40
+ */
41
+ export interface StyleParagraphFormatting {
42
+ /** Text alignment */
43
+ alignment?: "left" | "center" | "right" | "justify";
44
+
45
+ /** Spacing configuration */
46
+ spacing?: {
47
+ /** Spacing before paragraph in twips (20 twips = 1 point) */
48
+ before?: number;
49
+
50
+ /** Spacing after paragraph in twips (20 twips = 1 point) */
51
+ after?: number;
52
+
53
+ /** Line spacing in twips (240 = single spacing when lineRule is 'auto') */
54
+ line?: number;
55
+
56
+ /** How to interpret the line spacing value */
57
+ lineRule?: "auto" | "exact" | "atLeast";
58
+ };
59
+
60
+ /** Indentation configuration */
61
+ indentation?: {
62
+ /** Left indent in twips (1440 twips = 1 inch) */
63
+ left?: number;
64
+
65
+ /** Right indent in twips */
66
+ right?: number;
67
+
68
+ /** First line indent in twips (positive = indent, negative = outdent) */
69
+ firstLine?: number;
70
+
71
+ /** Hanging indent in twips (typically used for lists) */
72
+ hanging?: number;
73
+ };
74
+
75
+ /**
76
+ * Whether to remove spacing between consecutive paragraphs of the same style
77
+ * Per ECMA-376 Part 1 §17.3.1.8
78
+ */
79
+ contextualSpacing?: boolean;
80
+ }
81
+
82
+ /**
83
+ * Table appearance options for Heading2 wrapping
84
+ * Heading2 paragraphs are always wrapped in 1x1 tables with these settings
85
+ */
86
+ export interface Heading2TableOptions {
87
+ /** Cell background color as hex without # (e.g., 'BFBFBF' for gray) */
88
+ shading?: string;
89
+
90
+ /** Top cell margin in twips */
91
+ marginTop?: number;
92
+
93
+ /** Bottom cell margin in twips */
94
+ marginBottom?: number;
95
+
96
+ /** Left cell margin in twips (115 twips = 0.08 inches) */
97
+ marginLeft?: number;
98
+
99
+ /** Right cell margin in twips (115 twips = 0.08 inches) */
100
+ marginRight?: number;
101
+
102
+ /** Table width as percentage (5000 = 100%) */
103
+ tableWidthPercent?: number;
104
+ }
105
+
106
+ /**
107
+ * Base style configuration combining run and paragraph formatting
108
+ */
109
+ export interface StyleConfig {
110
+ /** Character formatting for the style */
111
+ run?: StyleRunFormatting;
112
+
113
+ /** Paragraph formatting for the style */
114
+ paragraph?: StyleParagraphFormatting;
115
+ }
116
+
117
+ /**
118
+ * Extended configuration for Heading2 style including table options
119
+ * Heading2 paragraphs are always wrapped in tables
120
+ */
121
+ export interface Heading2Config extends StyleConfig {
122
+ /** Table appearance options for wrapping Heading2 paragraphs */
123
+ tableOptions?: Heading2TableOptions;
124
+ }
125
+
126
+ /**
127
+ * Extended configuration for Normal style with alignment preservation options
128
+ */
129
+ export interface NormalConfig extends StyleConfig {
130
+ /**
131
+ * Whether to preserve center alignment during style application.
132
+ * When true, paragraphs that are center-aligned will retain their center alignment
133
+ * instead of being changed to the Normal style's alignment (typically 'left').
134
+ * This is useful for preserving intentional centering like image captions or table headers.
135
+ * @default false
136
+ */
137
+ preserveCenterAlignment?: boolean;
138
+ }
139
+
140
+ /**
141
+ * Complete configuration for applyStyles()
142
+ * All properties are optional - defaults will be used if not provided
143
+ */
144
+ export interface ApplyStylesOptions {
145
+ /** Heading1 style configuration */
146
+ heading1?: StyleConfig;
147
+
148
+ /** Heading2 style configuration with table options */
149
+ heading2?: Heading2Config;
150
+
151
+ /** Heading3 style configuration */
152
+ heading3?: StyleConfig;
153
+
154
+ /** Normal style configuration with alignment preservation options */
155
+ normal?: NormalConfig;
156
+
157
+ /** List Paragraph style configuration */
158
+ listParagraph?: StyleConfig;
159
+
160
+ /**
161
+ * Whether to preserve blank lines added after 1x1 Heading 2 tables.
162
+ * When true, blank paragraphs added after Heading 2 tables are marked as preserved
163
+ * to prevent accidental removal by document processing operations (e.g., removing extra blank lines).
164
+ * @default true
165
+ */
166
+ preserveBlankLinesAfterHeading2Tables?: boolean;
167
+
168
+ /**
169
+ * Whether to preserve white font (FFFFFF) color during style application.
170
+ * When true, runs with white color will not have their color changed.
171
+ * This is useful for preserving hidden text like ID tags or overlay text.
172
+ * @default false
173
+ */
174
+ preserveWhiteFont?: boolean;
175
+
176
+ /**
177
+ * Whether to apply Normal style changes to NormalWeb (Normal (Web)) style as well.
178
+ * When true (default), if NormalWeb style exists in the document,
179
+ * it will receive the same formatting changes applied to Normal.
180
+ * This ensures consistency between Normal and Normal (Web) styles.
181
+ * @default true
182
+ */
183
+ linkNormalWebToNormal?: boolean;
184
+ }
185
+
186
+ /**
187
+ * @deprecated Use {@link ApplyStylesOptions} instead (renamed in v4.0.0)
188
+ */
189
+ export type ApplyCustomFormattingOptions = ApplyStylesOptions;
@@ -0,0 +1,153 @@
1
+ # Utils Module
2
+
3
+ `src/utils/` — Standalone utilities (22 TypeScript files) for unit conversions, revision processing, validation, logging, and helpers.
4
+
5
+ ## Unit Conversions (`units.ts`)
6
+
7
+ 40+ conversion functions between twips, EMUs, points, half-points, pixels, inches, centimeters.
8
+
9
+ Key constants: 1 inch = 1440 twips = 914400 EMUs = 72 points. 1 point = 20 twips. Font sizes use half-points.
10
+
11
+ ## Validation (`validation.ts`)
12
+
13
+ - `validateRunText(text)` — Detects XML patterns accidentally passed as text
14
+ - `cleanXmlFromText(text)` — Removes XML patterns from text
15
+ - `isValidDocxStructure(files)` — Validates DOCX file structure
16
+
17
+ ## Corruption Detection (`corruptionDetection.ts`)
18
+
19
+ ```typescript
20
+ const report = detectCorruptionInDocument(doc);
21
+ // report: { isCorrupted, summary, locations: [{ suggestedFix }] }
22
+ ```
23
+
24
+ Detects XML markup in text, invalid characters, malformed structures.
25
+
26
+ ## XML Sanitization (`xmlSanitization.ts`)
27
+
28
+ XML 1.0 control character validation. Auto-applied by `XMLBuilder.escapeXmlText()`.
29
+
30
+ - `removeInvalidXmlChars(text)` — Strips 0x00-0x08, 0x0B-0x0C, 0x0E-0x1F, 0x7F
31
+ - `hasInvalidXmlChars(text)` / `findInvalidXmlChars(text)`
32
+ - Tab (0x09), newline (0x0A), CR (0x0D) are preserved
33
+
34
+ ## Parsing Helpers (`parsingHelpers.ts`)
35
+
36
+ Safe OOXML attribute parsing with zero-value edge case handling:
37
+
38
+ - `safeParseInt(value, default?)` — NaN-safe integer parsing
39
+ - `parseOoxmlBoolean(prop)` — Handles self-closing tags, `val="1"`, `val="true"`, `val="on"`
40
+ - `isExplicitlySet(value)` — Handles 0 correctly (common bug: treating 0 as falsy)
41
+ - `parseNumericAttribute(value, default?)` — Zero-safe numeric parsing
42
+
43
+ ## Formatting Utilities (`formatting.ts`)
44
+
45
+ - `normalizeColor(color)` — Uppercase 6-char hex
46
+
47
+ ## Deep Clone (`deepClone.ts`)
48
+
49
+ - `deepClone<T>(obj)` — Safe deep cloning
50
+
51
+ ## Date Formatting (`dateFormatting.ts`)
52
+
53
+ - `formatDateForXml(date)` — ISO 8601 without milliseconds (Word rejects dates with ms in `w:date`)
54
+
55
+ ## Revision Processing
56
+
57
+ ### acceptRevisions (`acceptRevisions.ts`)
58
+
59
+ Main entry point for accepting tracked changes via raw XML:
60
+ ```typescript
61
+ await acceptAllRevisions(zipHandler, options?)
62
+ // Options: acceptInsertions, acceptDeletions, acceptMoves, acceptPropertyChanges, useDomParser
63
+ ```
64
+ Processes document.xml + all headers/footers, remaps image relationship IDs, cleans metadata.
65
+
66
+ ### RevisionWalker (`RevisionWalker.ts`)
67
+
68
+ DOM-based tree walker for revision acceptance. Handles nested revisions, preserves element order via `_orderedChildren`. ReDoS-safe.
69
+
70
+ ### ChangelogGenerator (`ChangelogGenerator.ts`)
71
+
72
+ Converts revisions to structured changelog data:
73
+ ```typescript
74
+ const entries = ChangelogGenerator.fromDocument(doc, options?);
75
+ ChangelogGenerator.toMarkdown(entries) // Also: toJSON, toHTML, toCSV
76
+ ChangelogGenerator.getSummary(entries)
77
+ ChangelogGenerator.consolidate(entries)
78
+ ```
79
+ Options: `includeFormattingChanges`, `consolidate`, `filterAuthors`, `filterCategories`, `sortBy`, `sortOrder`.
80
+
81
+ ### SelectiveRevisionAcceptor (`SelectiveRevisionAcceptor.ts`)
82
+
83
+ Accept/reject revisions by criteria (authors, types, date range, categories).
84
+
85
+ ### MoveOperationHelper (`MoveOperationHelper.ts`)
86
+
87
+ Creates complete move operations with ECMA-376 range markers. See `src/elements/CLAUDE.md` for usage.
88
+
89
+ ### stripTrackedChanges (`stripTrackedChanges.ts`)
90
+
91
+ Removes all revision markup: `await stripTrackedChanges(zipHandler)`.
92
+
93
+ ## Text Diff (`textDiff.ts`)
94
+
95
+ Character-level diff for granular tracking in `Run.setText()`:
96
+ ```typescript
97
+ const segments = diffText('Hello World', 'Hello Earth');
98
+ // [{ type: 'equal', text: 'Hello ' }, { type: 'delete', text: 'World' }, { type: 'insert', text: 'Earth' }]
99
+ if (diffHasUnchangedParts(segments)) { /* granular tracking */ }
100
+ ```
101
+
102
+ ## Compatibility Utilities
103
+
104
+ ### CompatibilityUpgrader (`CompatibilityUpgrader.ts`)
105
+
106
+ Upgrades `w:compat` blocks to modern Word 2013+ format. Used by `Document.upgradeToModernFormat()`.
107
+
108
+ Related constants in `src/constants/legacyCompatFlags.ts`:
109
+ - `LEGACY_COMPAT_ELEMENTS` — 65 legacy boolean flags
110
+ - `MODERN_COMPAT_SETTINGS` — 5 default modern settings
111
+ - `MS_WORD_COMPAT_URI` — Microsoft namespace URI
112
+
113
+ ## Logging (`logger.ts`)
114
+
115
+ **Levels:** `DEBUG`, `INFO`, `WARN`, `ERROR`
116
+
117
+ **Implementations:** `ConsoleLogger` (timestamps), `SilentLogger` (no output), `CollectingLogger` (in-memory).
118
+
119
+ **Environment:**
120
+ ```bash
121
+ DOCXMLATER_LOG_LEVEL=info npm test # info/debug/silent
122
+ DEBUG=docxmlater npm test
123
+ ```
124
+
125
+ **Programmatic:**
126
+ ```typescript
127
+ import { setGlobalLogger, ConsoleLogger, LogLevel } from 'docxmlater';
128
+ setGlobalLogger(new ConsoleLogger(LogLevel.INFO));
129
+ ```
130
+
131
+ **Scoped:**
132
+ ```typescript
133
+ const logger = createScopedLogger(getGlobalLogger(), 'MyComponent');
134
+ logger.info('Done', { count: 10 });
135
+ // Output: 12:34:56.789 [INFO ] [MyComponent] Done count=10
136
+ ```
137
+
138
+ | Component | INFO | DEBUG |
139
+ |-----------|------|-------|
140
+ | Document | Load/save ops | + details |
141
+ | ZipHandler | File ops, validation | + counts, sizes |
142
+ | DocumentParser | Completion, warnings | + element counts |
143
+ | DocumentGenerator | Generation steps | + XML sizes |
144
+ | RevisionManager | Clear, summary | + each registration |
145
+
146
+ ## Error Handling (`errorHandling.ts`)
147
+
148
+ `DocXMLaterError` → `InvalidDocxError`, `ParseError`, `ValidationError`.
149
+
150
+ ## Diagnostics (`diagnostics.ts`)
151
+
152
+ - `debugXmlStructure(xml)` — Debug XML structure
153
+ - `inspectElement(element)` — Element inspection