@cj-tech-master/excelts 9.5.4 → 9.5.5

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 (767) hide show
  1. package/dist/browser/modules/archive/compression/streaming-compress.browser.js +29 -0
  2. package/dist/browser/modules/archive/compression/streaming-compress.js +9 -0
  3. package/dist/browser/modules/archive/compression/worker-pool/pool.browser.js +26 -1
  4. package/dist/browser/modules/archive/fs/archive-file.d.ts +8 -5
  5. package/dist/browser/modules/archive/fs/archive-file.js +78 -16
  6. package/dist/browser/modules/archive/unzip/stream.browser.js +43 -2
  7. package/dist/browser/modules/excel/chart/chart-ex-builder.js +7 -2
  8. package/dist/browser/modules/excel/chart/chart-ex-renderer.js +4 -9
  9. package/dist/browser/modules/excel/chart/chart-ex-types.d.ts +0 -12
  10. package/dist/browser/modules/excel/chart/chart.d.ts +1 -5
  11. package/dist/browser/modules/excel/chart/chart.js +1 -7
  12. package/dist/browser/modules/excel/chart/types.d.ts +0 -6
  13. package/dist/browser/modules/excel/stream/workbook-reader.browser.js +25 -1
  14. package/dist/browser/modules/excel/stream/workbook-reader.js +9 -0
  15. package/dist/browser/modules/excel/stream/workbook-writer.browser.d.ts +40 -0
  16. package/dist/browser/modules/excel/stream/workbook-writer.browser.js +228 -13
  17. package/dist/browser/modules/excel/utils/string-buf.d.ts +5 -26
  18. package/dist/browser/modules/excel/utils/string-buf.js +4 -81
  19. package/dist/browser/modules/excel/workbook.browser.js +135 -25
  20. package/dist/browser/modules/excel/xlsx/xform/chart/chart-space-xform.js +6 -20
  21. package/dist/browser/modules/excel/xlsx/xlsx.browser.d.ts +19 -9
  22. package/dist/browser/modules/excel/xlsx/xlsx.browser.js +32 -8
  23. package/dist/browser/modules/excel/xlsx/xlsx.d.ts +10 -2
  24. package/dist/browser/modules/excel/xlsx/xlsx.js +9 -1
  25. package/dist/browser/modules/pdf/excel-bridge.d.ts +30 -1
  26. package/dist/browser/modules/pdf/excel-bridge.js +32 -0
  27. package/dist/browser/modules/pdf/font/metrics.d.ts +3 -52
  28. package/dist/browser/modules/pdf/font/metrics.js +3 -237
  29. package/dist/browser/modules/pdf/index.d.ts +1 -1
  30. package/dist/browser/modules/pdf/index.js +1 -1
  31. package/dist/browser/modules/pdf/render-layout-to-pdf.d.ts +66 -0
  32. package/dist/browser/modules/pdf/render-layout-to-pdf.js +647 -0
  33. package/dist/browser/modules/pdf/word-bridge.d.ts +80 -12
  34. package/dist/browser/modules/pdf/word-bridge.js +122 -274
  35. package/dist/browser/modules/stream/index.base.d.ts +2 -0
  36. package/dist/browser/modules/stream/index.base.js +2 -1
  37. package/dist/browser/modules/stream/internal/sink-adapter.d.ts +65 -0
  38. package/dist/browser/modules/stream/internal/sink-adapter.js +198 -0
  39. package/dist/browser/modules/stream/pull-stream.d.ts +19 -2
  40. package/dist/browser/modules/stream/pull-stream.js +51 -5
  41. package/dist/browser/modules/stream/types.d.ts +13 -1
  42. package/dist/browser/modules/word/advanced/diff.d.ts +61 -0
  43. package/dist/browser/modules/word/advanced/diff.js +167 -0
  44. package/dist/browser/modules/word/advanced/drawing-shapes.d.ts +269 -0
  45. package/dist/browser/modules/word/advanced/drawing-shapes.js +268 -0
  46. package/dist/browser/modules/word/advanced/field-engine.d.ts +43 -0
  47. package/dist/browser/modules/word/advanced/field-engine.js +1225 -0
  48. package/dist/browser/modules/word/advanced/glossary.d.ts +86 -0
  49. package/dist/browser/modules/word/advanced/glossary.js +79 -0
  50. package/dist/browser/modules/word/advanced/math-convert.d.ts +30 -0
  51. package/dist/browser/modules/word/advanced/math-convert.js +595 -0
  52. package/dist/browser/modules/word/advanced/ole-objects.d.ts +115 -0
  53. package/dist/browser/modules/word/advanced/ole-objects.js +271 -0
  54. package/dist/browser/modules/word/advanced/style-map.d.ts +105 -0
  55. package/dist/browser/modules/word/advanced/style-map.js +322 -0
  56. package/dist/browser/modules/word/advanced/validation.d.ts +56 -0
  57. package/dist/browser/modules/word/advanced/validation.js +1065 -0
  58. package/dist/browser/modules/word/advanced/vba-project.d.ts +91 -0
  59. package/dist/browser/modules/word/advanced/vba-project.js +265 -0
  60. package/dist/browser/modules/word/bridge/excel-bridge.d.ts +127 -0
  61. package/dist/browser/modules/word/bridge/excel-bridge.js +980 -0
  62. package/dist/browser/modules/word/builder/document-handle.d.ts +151 -0
  63. package/dist/browser/modules/word/builder/document-handle.js +664 -0
  64. package/dist/browser/modules/word/builder/paragraph-builders.d.ts +61 -0
  65. package/dist/browser/modules/word/builder/paragraph-builders.js +90 -0
  66. package/dist/browser/modules/word/builder/run-builders.d.ts +374 -0
  67. package/dist/browser/modules/word/builder/run-builders.js +600 -0
  68. package/dist/browser/modules/word/builder/table-builders.d.ts +23 -0
  69. package/dist/browser/modules/word/builder/table-builders.js +45 -0
  70. package/dist/browser/modules/word/constants.d.ts +39 -1
  71. package/dist/browser/modules/word/constants.js +109 -1
  72. package/dist/browser/modules/word/convert/conversion-ir.d.ts +210 -0
  73. package/dist/browser/modules/word/convert/conversion-ir.js +31 -0
  74. package/dist/browser/modules/word/convert/docx-to-semantic.d.ts +39 -0
  75. package/dist/browser/modules/word/convert/docx-to-semantic.js +499 -0
  76. package/dist/browser/modules/word/convert/flat-opc.d.ts +44 -0
  77. package/dist/browser/modules/word/convert/flat-opc.js +385 -0
  78. package/dist/browser/modules/word/convert/html/html-import.d.ts +50 -0
  79. package/dist/browser/modules/word/convert/html/html-import.js +1907 -0
  80. package/dist/{types/modules/word → browser/modules/word/convert/html}/html-renderer.d.ts +14 -1
  81. package/dist/{esm/modules/word → browser/modules/word/convert/html}/html-renderer.js +420 -69
  82. package/dist/browser/modules/word/convert/html/html.d.ts +15 -0
  83. package/dist/browser/modules/word/convert/html/html.js +15 -0
  84. package/dist/browser/modules/word/convert/markdown/markdown-import.d.ts +68 -0
  85. package/dist/browser/modules/word/convert/markdown/markdown-import.js +1325 -0
  86. package/dist/browser/modules/word/convert/markdown/markdown-renderer.d.ts +25 -0
  87. package/dist/browser/modules/word/convert/markdown/markdown-renderer.js +634 -0
  88. package/dist/browser/modules/word/convert/markdown/markdown.d.ts +15 -0
  89. package/dist/browser/modules/word/convert/markdown/markdown.js +15 -0
  90. package/dist/browser/modules/word/convert/odt/odt.d.ts +41 -0
  91. package/dist/browser/modules/word/convert/odt/odt.js +1932 -0
  92. package/dist/browser/modules/word/{color-utils.d.ts → core/color-utils.d.ts} +8 -1
  93. package/dist/browser/modules/word/core/color-utils.js +43 -0
  94. package/dist/browser/modules/word/core/internal-utils.d.ts +90 -0
  95. package/dist/browser/modules/word/core/internal-utils.js +209 -0
  96. package/dist/browser/modules/word/core/mapper.d.ts +44 -0
  97. package/dist/browser/modules/word/core/mapper.js +427 -0
  98. package/dist/browser/modules/word/core/opc-paths.d.ts +33 -0
  99. package/dist/browser/modules/word/core/opc-paths.js +48 -0
  100. package/dist/browser/modules/word/core/text-utils.d.ts +38 -0
  101. package/dist/browser/modules/word/core/text-utils.js +202 -0
  102. package/dist/browser/modules/word/core/walker.d.ts +119 -0
  103. package/dist/browser/modules/word/core/walker.js +570 -0
  104. package/dist/browser/modules/word/crypto.d.ts +14 -9
  105. package/dist/browser/modules/word/crypto.js +13 -7
  106. package/dist/browser/modules/word/document-io.d.ts +59 -27
  107. package/dist/browser/modules/word/document-io.js +80 -197
  108. package/dist/browser/modules/word/errors.d.ts +44 -1
  109. package/dist/browser/modules/word/errors.js +54 -2
  110. package/dist/browser/modules/word/excel.d.ts +14 -0
  111. package/dist/browser/modules/word/excel.js +13 -0
  112. package/dist/browser/modules/word/font/font-embed.d.ts +112 -0
  113. package/dist/browser/modules/word/font/font-embed.js +646 -0
  114. package/dist/{esm/modules/word → browser/modules/word/font}/font-obfuscation.js +4 -9
  115. package/dist/browser/modules/word/font/hyphenation.d.ts +65 -0
  116. package/dist/browser/modules/word/font/hyphenation.js +4210 -0
  117. package/dist/browser/modules/word/font/text-shaping.d.ts +58 -0
  118. package/dist/browser/modules/word/font/text-shaping.js +635 -0
  119. package/dist/browser/modules/word/html.d.ts +7 -6
  120. package/dist/browser/modules/word/html.js +6 -5
  121. package/dist/browser/modules/word/incremental-edit.d.ts +123 -0
  122. package/dist/browser/modules/word/incremental-edit.js +361 -0
  123. package/dist/browser/modules/word/index.base.d.ts +194 -10
  124. package/dist/browser/modules/word/index.base.js +138 -29
  125. package/dist/browser/modules/word/layout/layout-constants.d.ts +17 -0
  126. package/dist/browser/modules/word/layout/layout-constants.js +17 -0
  127. package/dist/browser/modules/word/layout/layout-full.d.ts +53 -0
  128. package/dist/browser/modules/word/layout/layout-full.js +1696 -0
  129. package/dist/browser/modules/word/layout/layout-model.d.ts +344 -0
  130. package/dist/browser/modules/word/layout/layout-model.js +16 -0
  131. package/dist/browser/modules/word/layout/layout.d.ts +63 -0
  132. package/dist/browser/modules/word/layout/layout.js +1167 -0
  133. package/dist/browser/modules/word/layout/render-page.d.ts +57 -0
  134. package/dist/browser/modules/word/layout/render-page.js +1238 -0
  135. package/dist/browser/modules/word/markdown.d.ts +14 -0
  136. package/dist/browser/modules/word/markdown.js +13 -0
  137. package/dist/browser/modules/word/patcher.d.ts +62 -0
  138. package/dist/browser/modules/word/patcher.js +537 -0
  139. package/dist/browser/modules/word/query/compat.d.ts +25 -0
  140. package/dist/browser/modules/word/query/compat.js +58 -0
  141. package/dist/browser/modules/word/query/data-binding.d.ts +22 -0
  142. package/dist/browser/modules/word/query/data-binding.js +392 -0
  143. package/dist/browser/modules/word/query/form-fields.d.ts +41 -0
  144. package/dist/browser/modules/word/query/form-fields.js +268 -0
  145. package/dist/browser/modules/word/query/format-search.d.ts +99 -0
  146. package/dist/browser/modules/word/query/format-search.js +329 -0
  147. package/dist/browser/modules/word/query/mail-merge.d.ts +25 -0
  148. package/dist/browser/modules/word/query/mail-merge.js +111 -0
  149. package/dist/browser/modules/word/query/merge.d.ts +50 -0
  150. package/dist/browser/modules/word/query/merge.js +617 -0
  151. package/dist/browser/modules/word/query/replace.d.ts +47 -0
  152. package/dist/browser/modules/word/query/replace.js +301 -0
  153. package/dist/browser/modules/word/query/revisions.d.ts +67 -0
  154. package/dist/browser/modules/word/query/revisions.js +879 -0
  155. package/dist/browser/modules/word/query/search.d.ts +129 -0
  156. package/dist/browser/modules/word/query/search.js +346 -0
  157. package/dist/browser/modules/word/query/split.d.ts +44 -0
  158. package/dist/browser/modules/word/query/split.js +135 -0
  159. package/dist/browser/modules/word/query/style-resolve.d.ts +104 -0
  160. package/dist/browser/modules/word/query/style-resolve.js +368 -0
  161. package/dist/browser/modules/word/reader/chart-parser.d.ts +20 -0
  162. package/dist/browser/modules/word/reader/chart-parser.js +810 -0
  163. package/dist/browser/modules/word/reader/comments-parser.d.ts +26 -0
  164. package/dist/browser/modules/word/reader/comments-parser.js +92 -0
  165. package/dist/browser/modules/word/reader/doc-props-parsers.d.ts +15 -0
  166. package/dist/browser/modules/word/reader/doc-props-parsers.js +190 -0
  167. package/dist/browser/modules/word/reader/docx-reader.d.ts +27 -0
  168. package/dist/browser/modules/word/reader/docx-reader.js +2557 -0
  169. package/dist/browser/modules/word/reader/drawing-helpers.d.ts +27 -0
  170. package/dist/browser/modules/word/reader/drawing-helpers.js +84 -0
  171. package/dist/browser/modules/word/reader/form-field-parser.d.ts +21 -0
  172. package/dist/browser/modules/word/reader/form-field-parser.js +82 -0
  173. package/dist/browser/modules/word/reader/image-parsers.d.ts +11 -0
  174. package/dist/browser/modules/word/reader/image-parsers.js +291 -0
  175. package/dist/browser/modules/word/reader/math-parser.d.ts +12 -0
  176. package/dist/browser/modules/word/reader/math-parser.js +422 -0
  177. package/dist/browser/modules/word/reader/metadata-parsers.d.ts +17 -0
  178. package/dist/browser/modules/word/reader/metadata-parsers.js +87 -0
  179. package/dist/browser/modules/word/reader/numbering-parser.d.ts +13 -0
  180. package/dist/browser/modules/word/reader/numbering-parser.js +166 -0
  181. package/dist/browser/modules/word/reader/paragraph-section-parsers.d.ts +12 -0
  182. package/dist/browser/modules/word/reader/paragraph-section-parsers.js +503 -0
  183. package/dist/browser/modules/word/reader/parse-utils.d.ts +91 -0
  184. package/dist/browser/modules/word/reader/parse-utils.js +249 -0
  185. package/dist/browser/modules/word/reader/properties-parsers.d.ts +21 -0
  186. package/dist/browser/modules/word/reader/properties-parsers.js +332 -0
  187. package/dist/browser/modules/word/reader/reader-context.d.ts +69 -0
  188. package/dist/browser/modules/word/reader/reader-context.js +61 -0
  189. package/dist/browser/modules/word/reader/sdt-helpers.d.ts +29 -0
  190. package/dist/browser/modules/word/reader/sdt-helpers.js +111 -0
  191. package/dist/browser/modules/word/reader/settings-parser.d.ts +8 -0
  192. package/dist/browser/modules/word/reader/settings-parser.js +263 -0
  193. package/dist/browser/modules/word/reader/styles-parser.d.ts +12 -0
  194. package/dist/browser/modules/word/reader/styles-parser.js +147 -0
  195. package/dist/browser/modules/word/reader/table-properties-parsers.d.ts +12 -0
  196. package/dist/browser/modules/word/reader/table-properties-parsers.js +234 -0
  197. package/dist/browser/modules/word/reader/theme-parser.d.ts +8 -0
  198. package/dist/browser/modules/word/reader/theme-parser.js +167 -0
  199. package/dist/browser/modules/word/reader/watermark-parser.d.ts +15 -0
  200. package/dist/browser/modules/word/reader/watermark-parser.js +110 -0
  201. package/dist/browser/modules/word/security/cfb-reader.d.ts +37 -0
  202. package/dist/browser/modules/word/security/cfb-reader.js +410 -0
  203. package/dist/browser/modules/word/{digital-signatures.d.ts → security/digital-signatures.d.ts} +19 -11
  204. package/dist/browser/modules/word/{digital-signatures.js → security/digital-signatures.js} +34 -34
  205. package/dist/browser/modules/word/security/document-protection.d.ts +93 -0
  206. package/dist/browser/modules/word/security/document-protection.js +201 -0
  207. package/dist/{types/modules/word → browser/modules/word/security}/encryption.d.ts +51 -4
  208. package/dist/browser/modules/word/security/encryption.js +602 -0
  209. package/dist/browser/modules/word/security/policy.d.ts +80 -0
  210. package/dist/browser/modules/word/security/policy.js +102 -0
  211. package/dist/browser/modules/word/template/template-chart.d.ts +56 -0
  212. package/dist/browser/modules/word/template/template-chart.js +167 -0
  213. package/dist/browser/modules/word/template/template-datasource.d.ts +154 -0
  214. package/dist/browser/modules/word/template/template-datasource.js +541 -0
  215. package/dist/browser/modules/word/template/template-engine.d.ts +121 -0
  216. package/dist/browser/modules/word/template/template-engine.js +1435 -0
  217. package/dist/browser/modules/word/types.d.ts +224 -25
  218. package/dist/browser/modules/word/units.d.ts +26 -0
  219. package/dist/browser/modules/word/units.js +43 -14
  220. package/dist/browser/modules/word/{writers → writer}/chart-writer.js +164 -23
  221. package/dist/browser/modules/word/writer/checkbox-writer.d.ts +17 -0
  222. package/dist/browser/modules/word/writer/checkbox-writer.js +79 -0
  223. package/dist/{types/modules/word/writers → browser/modules/word/writer}/comment-writer.d.ts +2 -1
  224. package/dist/browser/modules/word/{writers → writer}/comment-writer.js +8 -6
  225. package/dist/browser/modules/word/writer/common-parts.d.ts +57 -0
  226. package/dist/browser/modules/word/writer/common-parts.js +101 -0
  227. package/dist/{types/modules/word → browser/modules/word/writer}/content-types.d.ts +2 -2
  228. package/dist/{esm/modules/word → browser/modules/word/writer}/content-types.js +14 -6
  229. package/dist/browser/modules/word/writer/document-writer.d.ts +24 -0
  230. package/dist/browser/modules/word/writer/document-writer.js +473 -0
  231. package/dist/browser/modules/word/writer/docx-packager.d.ts +35 -0
  232. package/dist/browser/modules/word/writer/docx-packager.js +1515 -0
  233. package/dist/{types/modules/word/writers → browser/modules/word/writer}/footnote-writer.d.ts +3 -2
  234. package/dist/{esm/modules/word/writers → browser/modules/word/writer}/footnote-writer.js +13 -10
  235. package/dist/{types/modules/word/writers → browser/modules/word/writer}/header-footer-writer.d.ts +3 -2
  236. package/dist/{esm/modules/word/writers → browser/modules/word/writer}/header-footer-writer.js +39 -21
  237. package/dist/{types/modules/word/writers → browser/modules/word/writer}/image-writer.d.ts +1 -1
  238. package/dist/browser/modules/word/{writers → writer}/image-writer.js +11 -7
  239. package/dist/browser/modules/word/writer/math-writer.d.ts +20 -0
  240. package/dist/{esm/modules/word/writers → browser/modules/word/writer}/math-writer.js +21 -1
  241. package/dist/browser/modules/word/{writers → writer}/numbering-writer.d.ts +1 -1
  242. package/dist/{esm/modules/word/writers → browser/modules/word/writer}/numbering-writer.js +11 -4
  243. package/dist/browser/modules/word/{writers → writer}/paragraph-writer.d.ts +2 -1
  244. package/dist/browser/modules/word/{writers → writer}/paragraph-writer.js +73 -38
  245. package/dist/browser/modules/word/{writers → writer}/parts-writer.d.ts +3 -3
  246. package/dist/{esm/modules/word/writers → browser/modules/word/writer}/parts-writer.js +91 -12
  247. package/dist/browser/modules/word/writer/reference-scanners.d.ts +42 -0
  248. package/dist/browser/modules/word/writer/reference-scanners.js +111 -0
  249. package/dist/browser/modules/word/writer/relationships.d.ts +52 -0
  250. package/dist/browser/modules/word/writer/relationships.js +117 -0
  251. package/dist/browser/modules/word/writer/render-context.d.ts +124 -0
  252. package/dist/browser/modules/word/writer/render-context.js +46 -0
  253. package/dist/browser/modules/word/{writers → writer}/run-writer.d.ts +10 -1
  254. package/dist/{esm/modules/word/writers → browser/modules/word/writer}/run-writer.js +126 -24
  255. package/dist/browser/modules/word/writer/sdt-writer.d.ts +25 -0
  256. package/dist/browser/modules/word/writer/sdt-writer.js +189 -0
  257. package/dist/browser/modules/word/writer/stream-buf.d.ts +37 -0
  258. package/dist/browser/modules/word/writer/stream-buf.js +73 -0
  259. package/dist/browser/modules/word/writer/streaming-writer.d.ts +344 -0
  260. package/dist/browser/modules/word/writer/streaming-writer.js +1382 -0
  261. package/dist/browser/modules/word/writer/string-buf.d.ts +8 -0
  262. package/dist/browser/modules/word/writer/string-buf.js +7 -0
  263. package/dist/browser/modules/word/{writers → writer}/styles-writer.js +32 -1
  264. package/dist/browser/modules/word/{writers → writer}/table-writer.d.ts +2 -1
  265. package/dist/browser/modules/word/{writers → writer}/table-writer.js +94 -11
  266. package/dist/browser/modules/xml/types.d.ts +22 -0
  267. package/dist/browser/utils/crypto.browser.d.ts +3 -1
  268. package/dist/browser/utils/crypto.browser.js +3 -1
  269. package/dist/browser/utils/crypto.d.ts +4 -1
  270. package/dist/browser/utils/crypto.js +4 -1
  271. package/dist/browser/utils/font-metrics.d.ts +63 -0
  272. package/dist/browser/utils/font-metrics.js +293 -0
  273. package/dist/browser/utils/string-buf.d.ts +42 -0
  274. package/dist/browser/utils/string-buf.js +89 -0
  275. package/dist/browser/utils/theme-colors.d.ts +55 -0
  276. package/dist/browser/utils/theme-colors.js +120 -0
  277. package/dist/cjs/modules/archive/compression/streaming-compress.browser.js +29 -0
  278. package/dist/cjs/modules/archive/compression/streaming-compress.js +9 -0
  279. package/dist/cjs/modules/archive/compression/worker-pool/pool.browser.js +26 -1
  280. package/dist/cjs/modules/archive/fs/archive-file.js +78 -16
  281. package/dist/cjs/modules/archive/unzip/stream.browser.js +43 -2
  282. package/dist/cjs/modules/excel/chart/chart-ex-builder.js +7 -2
  283. package/dist/cjs/modules/excel/chart/chart-ex-renderer.js +4 -9
  284. package/dist/cjs/modules/excel/chart/chart.js +1 -7
  285. package/dist/cjs/modules/excel/stream/workbook-reader.browser.js +25 -1
  286. package/dist/cjs/modules/excel/stream/workbook-reader.js +9 -0
  287. package/dist/cjs/modules/excel/stream/workbook-writer.browser.js +228 -13
  288. package/dist/cjs/modules/excel/utils/string-buf.js +5 -81
  289. package/dist/cjs/modules/excel/workbook.browser.js +135 -25
  290. package/dist/cjs/modules/excel/xlsx/xform/chart/chart-space-xform.js +6 -20
  291. package/dist/cjs/modules/excel/xlsx/xlsx.browser.js +32 -8
  292. package/dist/cjs/modules/excel/xlsx/xlsx.js +9 -1
  293. package/dist/cjs/modules/pdf/excel-bridge.js +33 -0
  294. package/dist/cjs/modules/pdf/font/metrics.js +11 -244
  295. package/dist/cjs/modules/pdf/index.js +2 -1
  296. package/dist/cjs/modules/pdf/render-layout-to-pdf.js +651 -0
  297. package/dist/cjs/modules/pdf/word-bridge.js +155 -274
  298. package/dist/cjs/modules/stream/index.base.js +4 -2
  299. package/dist/cjs/modules/stream/internal/sink-adapter.js +202 -0
  300. package/dist/cjs/modules/stream/pull-stream.js +51 -5
  301. package/dist/cjs/modules/word/advanced/diff.js +170 -0
  302. package/dist/cjs/modules/word/advanced/drawing-shapes.js +279 -0
  303. package/dist/cjs/modules/word/advanced/field-engine.js +1229 -0
  304. package/dist/cjs/modules/word/advanced/glossary.js +87 -0
  305. package/dist/cjs/modules/word/advanced/math-convert.js +599 -0
  306. package/dist/cjs/modules/word/advanced/ole-objects.js +277 -0
  307. package/dist/cjs/modules/word/advanced/style-map.js +329 -0
  308. package/dist/cjs/modules/word/advanced/validation.js +1068 -0
  309. package/dist/cjs/modules/word/advanced/vba-project.js +274 -0
  310. package/dist/cjs/modules/word/bridge/excel-bridge.js +1020 -0
  311. package/dist/cjs/modules/word/builder/document-handle.js +667 -0
  312. package/dist/cjs/modules/word/builder/paragraph-builders.js +109 -0
  313. package/dist/cjs/modules/word/builder/run-builders.js +676 -0
  314. package/dist/cjs/modules/word/builder/table-builders.js +53 -0
  315. package/dist/cjs/modules/word/constants.js +111 -2
  316. package/dist/cjs/modules/word/convert/conversion-ir.js +34 -0
  317. package/dist/cjs/modules/word/convert/docx-to-semantic.js +502 -0
  318. package/dist/cjs/modules/word/convert/flat-opc.js +390 -0
  319. package/dist/cjs/modules/word/convert/html/html-import.js +1910 -0
  320. package/dist/cjs/modules/word/{html-renderer.js → convert/html/html-renderer.js} +420 -69
  321. package/dist/cjs/modules/word/convert/html/html.js +20 -0
  322. package/dist/cjs/modules/word/convert/markdown/markdown-import.js +1329 -0
  323. package/dist/cjs/modules/word/convert/markdown/markdown-renderer.js +637 -0
  324. package/dist/cjs/modules/word/convert/markdown/markdown.js +21 -0
  325. package/dist/cjs/modules/word/convert/odt/odt.js +1936 -0
  326. package/dist/cjs/modules/word/core/color-utils.js +47 -0
  327. package/dist/cjs/modules/word/core/internal-utils.js +219 -0
  328. package/dist/cjs/modules/word/core/mapper.js +430 -0
  329. package/dist/cjs/modules/word/core/opc-paths.js +53 -0
  330. package/dist/cjs/modules/word/core/text-utils.js +210 -0
  331. package/dist/cjs/modules/word/core/walker.js +577 -0
  332. package/dist/cjs/modules/word/crypto.js +19 -8
  333. package/dist/cjs/modules/word/document-io.js +117 -197
  334. package/dist/cjs/modules/word/errors.js +59 -13
  335. package/dist/cjs/modules/word/excel.js +22 -0
  336. package/dist/cjs/modules/word/font/font-embed.js +652 -0
  337. package/dist/cjs/modules/word/{font-obfuscation.js → font/font-obfuscation.js} +4 -9
  338. package/dist/cjs/modules/word/font/hyphenation.js +4216 -0
  339. package/dist/cjs/modules/word/font/text-shaping.js +640 -0
  340. package/dist/cjs/modules/word/html.js +9 -7
  341. package/dist/cjs/modules/word/incremental-edit.js +366 -0
  342. package/dist/cjs/modules/word/index.base.js +370 -137
  343. package/dist/cjs/modules/word/layout/layout-constants.js +20 -0
  344. package/dist/cjs/modules/word/layout/layout-full.js +1699 -0
  345. package/dist/cjs/modules/word/layout/layout-model.js +17 -0
  346. package/dist/cjs/modules/word/layout/layout.js +1170 -0
  347. package/dist/cjs/modules/word/layout/render-page.js +1243 -0
  348. package/dist/cjs/modules/word/markdown.js +19 -0
  349. package/dist/cjs/modules/word/patcher.js +539 -0
  350. package/dist/cjs/modules/word/query/compat.js +61 -0
  351. package/dist/cjs/modules/word/query/data-binding.js +395 -0
  352. package/dist/cjs/modules/word/query/form-fields.js +272 -0
  353. package/dist/cjs/modules/word/query/format-search.js +334 -0
  354. package/dist/cjs/modules/word/query/mail-merge.js +114 -0
  355. package/dist/cjs/modules/word/query/merge.js +620 -0
  356. package/dist/cjs/modules/word/query/replace.js +304 -0
  357. package/dist/cjs/modules/word/query/revisions.js +885 -0
  358. package/dist/cjs/modules/word/query/search.js +361 -0
  359. package/dist/cjs/modules/word/query/split.js +138 -0
  360. package/dist/cjs/modules/word/query/style-resolve.js +374 -0
  361. package/dist/cjs/modules/word/reader/chart-parser.js +814 -0
  362. package/dist/cjs/modules/word/reader/comments-parser.js +96 -0
  363. package/dist/cjs/modules/word/reader/doc-props-parsers.js +194 -0
  364. package/dist/cjs/modules/word/reader/docx-reader.js +2560 -0
  365. package/dist/cjs/modules/word/reader/drawing-helpers.js +90 -0
  366. package/dist/cjs/modules/word/reader/form-field-parser.js +85 -0
  367. package/dist/cjs/modules/word/reader/image-parsers.js +293 -0
  368. package/dist/cjs/modules/word/reader/math-parser.js +424 -0
  369. package/dist/cjs/modules/word/reader/metadata-parsers.js +93 -0
  370. package/dist/cjs/modules/word/reader/numbering-parser.js +168 -0
  371. package/dist/cjs/modules/word/reader/paragraph-section-parsers.js +505 -0
  372. package/dist/cjs/modules/word/reader/parse-utils.js +271 -0
  373. package/dist/cjs/modules/word/reader/properties-parsers.js +338 -0
  374. package/dist/cjs/modules/word/reader/reader-context.js +66 -0
  375. package/dist/cjs/modules/word/reader/sdt-helpers.js +114 -0
  376. package/dist/cjs/modules/word/reader/settings-parser.js +265 -0
  377. package/dist/cjs/modules/word/reader/styles-parser.js +149 -0
  378. package/dist/cjs/modules/word/reader/table-properties-parsers.js +237 -0
  379. package/dist/cjs/modules/word/reader/theme-parser.js +169 -0
  380. package/dist/cjs/modules/word/reader/watermark-parser.js +113 -0
  381. package/dist/cjs/modules/word/security/cfb-reader.js +414 -0
  382. package/dist/cjs/modules/word/{digital-signatures.js → security/digital-signatures.js} +34 -34
  383. package/dist/cjs/modules/word/security/document-protection.js +208 -0
  384. package/dist/cjs/modules/word/security/encryption.js +612 -0
  385. package/dist/cjs/modules/word/security/policy.js +106 -0
  386. package/dist/cjs/modules/word/template/template-chart.js +170 -0
  387. package/dist/cjs/modules/word/template/template-datasource.js +549 -0
  388. package/dist/cjs/modules/word/template/template-engine.js +1430 -0
  389. package/dist/cjs/modules/word/units.js +44 -14
  390. package/dist/cjs/modules/word/{writers → writer}/chart-writer.js +163 -22
  391. package/dist/cjs/modules/word/writer/checkbox-writer.js +82 -0
  392. package/dist/cjs/modules/word/{writers → writer}/comment-writer.js +8 -6
  393. package/dist/cjs/modules/word/writer/common-parts.js +104 -0
  394. package/dist/cjs/modules/word/{content-types.js → writer/content-types.js} +14 -6
  395. package/dist/cjs/modules/word/writer/document-writer.js +478 -0
  396. package/dist/cjs/modules/word/writer/docx-packager.js +1551 -0
  397. package/dist/cjs/modules/word/{writers → writer}/footnote-writer.js +13 -10
  398. package/dist/cjs/modules/word/{writers → writer}/header-footer-writer.js +38 -20
  399. package/dist/cjs/modules/word/{writers → writer}/image-writer.js +11 -7
  400. package/dist/cjs/modules/word/{writers → writer}/math-writer.js +21 -1
  401. package/dist/cjs/modules/word/{writers → writer}/numbering-writer.js +11 -4
  402. package/dist/cjs/modules/word/{writers → writer}/paragraph-writer.js +72 -37
  403. package/dist/cjs/modules/word/{writers → writer}/parts-writer.js +91 -12
  404. package/dist/cjs/modules/word/writer/reference-scanners.js +120 -0
  405. package/dist/cjs/modules/word/writer/relationships.js +124 -0
  406. package/dist/cjs/modules/word/writer/render-context.js +51 -0
  407. package/dist/cjs/modules/word/{writers → writer}/run-writer.js +127 -24
  408. package/dist/cjs/modules/word/writer/sdt-writer.js +192 -0
  409. package/dist/cjs/modules/word/writer/stream-buf.js +76 -0
  410. package/dist/cjs/modules/word/writer/streaming-writer.js +1387 -0
  411. package/dist/cjs/modules/word/writer/string-buf.js +11 -0
  412. package/dist/cjs/modules/word/{writers → writer}/styles-writer.js +32 -1
  413. package/dist/cjs/modules/word/{writers → writer}/table-writer.js +94 -11
  414. package/dist/cjs/utils/crypto.browser.js +3 -1
  415. package/dist/cjs/utils/crypto.js +4 -1
  416. package/dist/cjs/utils/font-metrics.js +303 -0
  417. package/dist/cjs/utils/string-buf.js +92 -0
  418. package/dist/cjs/utils/theme-colors.js +126 -0
  419. package/dist/esm/modules/archive/compression/streaming-compress.browser.js +29 -0
  420. package/dist/esm/modules/archive/compression/streaming-compress.js +9 -0
  421. package/dist/esm/modules/archive/compression/worker-pool/pool.browser.js +26 -1
  422. package/dist/esm/modules/archive/fs/archive-file.js +78 -16
  423. package/dist/esm/modules/archive/unzip/stream.browser.js +43 -2
  424. package/dist/esm/modules/excel/chart/chart-ex-builder.js +7 -2
  425. package/dist/esm/modules/excel/chart/chart-ex-renderer.js +4 -9
  426. package/dist/esm/modules/excel/chart/chart.js +1 -7
  427. package/dist/esm/modules/excel/stream/workbook-reader.browser.js +25 -1
  428. package/dist/esm/modules/excel/stream/workbook-reader.js +9 -0
  429. package/dist/esm/modules/excel/stream/workbook-writer.browser.js +228 -13
  430. package/dist/esm/modules/excel/utils/string-buf.js +4 -81
  431. package/dist/esm/modules/excel/workbook.browser.js +135 -25
  432. package/dist/esm/modules/excel/xlsx/xform/chart/chart-space-xform.js +6 -20
  433. package/dist/esm/modules/excel/xlsx/xlsx.browser.js +32 -8
  434. package/dist/esm/modules/excel/xlsx/xlsx.js +9 -1
  435. package/dist/esm/modules/pdf/excel-bridge.js +32 -0
  436. package/dist/esm/modules/pdf/font/metrics.js +3 -237
  437. package/dist/esm/modules/pdf/index.js +1 -1
  438. package/dist/esm/modules/pdf/render-layout-to-pdf.js +647 -0
  439. package/dist/esm/modules/pdf/word-bridge.js +122 -274
  440. package/dist/esm/modules/stream/index.base.js +2 -1
  441. package/dist/esm/modules/stream/internal/sink-adapter.js +198 -0
  442. package/dist/esm/modules/stream/pull-stream.js +51 -5
  443. package/dist/esm/modules/word/advanced/diff.js +167 -0
  444. package/dist/esm/modules/word/advanced/drawing-shapes.js +268 -0
  445. package/dist/esm/modules/word/advanced/field-engine.js +1225 -0
  446. package/dist/esm/modules/word/advanced/glossary.js +79 -0
  447. package/dist/esm/modules/word/advanced/math-convert.js +595 -0
  448. package/dist/esm/modules/word/advanced/ole-objects.js +271 -0
  449. package/dist/esm/modules/word/advanced/style-map.js +322 -0
  450. package/dist/esm/modules/word/advanced/validation.js +1065 -0
  451. package/dist/esm/modules/word/advanced/vba-project.js +265 -0
  452. package/dist/esm/modules/word/bridge/excel-bridge.js +980 -0
  453. package/dist/esm/modules/word/builder/document-handle.js +664 -0
  454. package/dist/esm/modules/word/builder/paragraph-builders.js +90 -0
  455. package/dist/esm/modules/word/builder/run-builders.js +600 -0
  456. package/dist/esm/modules/word/builder/table-builders.js +45 -0
  457. package/dist/esm/modules/word/constants.js +109 -1
  458. package/dist/esm/modules/word/convert/conversion-ir.js +31 -0
  459. package/dist/esm/modules/word/convert/docx-to-semantic.js +499 -0
  460. package/dist/esm/modules/word/convert/flat-opc.js +385 -0
  461. package/dist/esm/modules/word/convert/html/html-import.js +1907 -0
  462. package/dist/{browser/modules/word → esm/modules/word/convert/html}/html-renderer.js +420 -69
  463. package/dist/esm/modules/word/convert/html/html.js +15 -0
  464. package/dist/esm/modules/word/convert/markdown/markdown-import.js +1325 -0
  465. package/dist/esm/modules/word/convert/markdown/markdown-renderer.js +634 -0
  466. package/dist/esm/modules/word/convert/markdown/markdown.js +15 -0
  467. package/dist/esm/modules/word/convert/odt/odt.js +1932 -0
  468. package/dist/esm/modules/word/core/color-utils.js +43 -0
  469. package/dist/esm/modules/word/core/internal-utils.js +209 -0
  470. package/dist/esm/modules/word/core/mapper.js +427 -0
  471. package/dist/esm/modules/word/core/opc-paths.js +48 -0
  472. package/dist/esm/modules/word/core/text-utils.js +202 -0
  473. package/dist/esm/modules/word/core/walker.js +570 -0
  474. package/dist/esm/modules/word/crypto.js +13 -7
  475. package/dist/esm/modules/word/document-io.js +80 -197
  476. package/dist/esm/modules/word/errors.js +54 -2
  477. package/dist/esm/modules/word/excel.js +13 -0
  478. package/dist/esm/modules/word/font/font-embed.js +646 -0
  479. package/dist/{browser/modules/word → esm/modules/word/font}/font-obfuscation.js +4 -9
  480. package/dist/esm/modules/word/font/hyphenation.js +4210 -0
  481. package/dist/esm/modules/word/font/text-shaping.js +635 -0
  482. package/dist/esm/modules/word/html.js +6 -5
  483. package/dist/esm/modules/word/incremental-edit.js +361 -0
  484. package/dist/esm/modules/word/index.base.js +138 -29
  485. package/dist/esm/modules/word/layout/layout-constants.js +17 -0
  486. package/dist/esm/modules/word/layout/layout-full.js +1696 -0
  487. package/dist/esm/modules/word/layout/layout-model.js +16 -0
  488. package/dist/esm/modules/word/layout/layout.js +1167 -0
  489. package/dist/esm/modules/word/layout/render-page.js +1238 -0
  490. package/dist/esm/modules/word/markdown.js +13 -0
  491. package/dist/esm/modules/word/patcher.js +537 -0
  492. package/dist/esm/modules/word/query/compat.js +58 -0
  493. package/dist/esm/modules/word/query/data-binding.js +392 -0
  494. package/dist/esm/modules/word/query/form-fields.js +268 -0
  495. package/dist/esm/modules/word/query/format-search.js +329 -0
  496. package/dist/esm/modules/word/query/mail-merge.js +111 -0
  497. package/dist/esm/modules/word/query/merge.js +617 -0
  498. package/dist/esm/modules/word/query/replace.js +301 -0
  499. package/dist/esm/modules/word/query/revisions.js +879 -0
  500. package/dist/esm/modules/word/query/search.js +346 -0
  501. package/dist/esm/modules/word/query/split.js +135 -0
  502. package/dist/esm/modules/word/query/style-resolve.js +368 -0
  503. package/dist/esm/modules/word/reader/chart-parser.js +810 -0
  504. package/dist/esm/modules/word/reader/comments-parser.js +92 -0
  505. package/dist/esm/modules/word/reader/doc-props-parsers.js +190 -0
  506. package/dist/esm/modules/word/reader/docx-reader.js +2557 -0
  507. package/dist/esm/modules/word/reader/drawing-helpers.js +84 -0
  508. package/dist/esm/modules/word/reader/form-field-parser.js +82 -0
  509. package/dist/esm/modules/word/reader/image-parsers.js +291 -0
  510. package/dist/esm/modules/word/reader/math-parser.js +422 -0
  511. package/dist/esm/modules/word/reader/metadata-parsers.js +87 -0
  512. package/dist/esm/modules/word/reader/numbering-parser.js +166 -0
  513. package/dist/esm/modules/word/reader/paragraph-section-parsers.js +503 -0
  514. package/dist/esm/modules/word/reader/parse-utils.js +249 -0
  515. package/dist/esm/modules/word/reader/properties-parsers.js +332 -0
  516. package/dist/esm/modules/word/reader/reader-context.js +61 -0
  517. package/dist/esm/modules/word/reader/sdt-helpers.js +111 -0
  518. package/dist/esm/modules/word/reader/settings-parser.js +263 -0
  519. package/dist/esm/modules/word/reader/styles-parser.js +147 -0
  520. package/dist/esm/modules/word/reader/table-properties-parsers.js +234 -0
  521. package/dist/esm/modules/word/reader/theme-parser.js +167 -0
  522. package/dist/esm/modules/word/reader/watermark-parser.js +110 -0
  523. package/dist/esm/modules/word/security/cfb-reader.js +410 -0
  524. package/dist/esm/modules/word/{digital-signatures.js → security/digital-signatures.js} +34 -34
  525. package/dist/esm/modules/word/security/document-protection.js +201 -0
  526. package/dist/esm/modules/word/security/encryption.js +602 -0
  527. package/dist/esm/modules/word/security/policy.js +102 -0
  528. package/dist/esm/modules/word/template/template-chart.js +167 -0
  529. package/dist/esm/modules/word/template/template-datasource.js +541 -0
  530. package/dist/esm/modules/word/template/template-engine.js +1435 -0
  531. package/dist/esm/modules/word/units.js +43 -14
  532. package/dist/esm/modules/word/{writers → writer}/chart-writer.js +164 -23
  533. package/dist/esm/modules/word/writer/checkbox-writer.js +79 -0
  534. package/dist/esm/modules/word/{writers → writer}/comment-writer.js +8 -6
  535. package/dist/esm/modules/word/writer/common-parts.js +101 -0
  536. package/dist/{browser/modules/word → esm/modules/word/writer}/content-types.js +14 -6
  537. package/dist/esm/modules/word/writer/document-writer.js +473 -0
  538. package/dist/esm/modules/word/writer/docx-packager.js +1515 -0
  539. package/dist/{browser/modules/word/writers → esm/modules/word/writer}/footnote-writer.js +13 -10
  540. package/dist/{browser/modules/word/writers → esm/modules/word/writer}/header-footer-writer.js +39 -21
  541. package/dist/esm/modules/word/{writers → writer}/image-writer.js +11 -7
  542. package/dist/{browser/modules/word/writers → esm/modules/word/writer}/math-writer.js +21 -1
  543. package/dist/{browser/modules/word/writers → esm/modules/word/writer}/numbering-writer.js +11 -4
  544. package/dist/esm/modules/word/{writers → writer}/paragraph-writer.js +73 -38
  545. package/dist/{browser/modules/word/writers → esm/modules/word/writer}/parts-writer.js +91 -12
  546. package/dist/esm/modules/word/writer/reference-scanners.js +111 -0
  547. package/dist/esm/modules/word/writer/relationships.js +117 -0
  548. package/dist/esm/modules/word/writer/render-context.js +46 -0
  549. package/dist/{browser/modules/word/writers → esm/modules/word/writer}/run-writer.js +126 -24
  550. package/dist/esm/modules/word/writer/sdt-writer.js +189 -0
  551. package/dist/esm/modules/word/writer/stream-buf.js +73 -0
  552. package/dist/esm/modules/word/writer/streaming-writer.js +1382 -0
  553. package/dist/esm/modules/word/writer/string-buf.js +7 -0
  554. package/dist/esm/modules/word/{writers → writer}/styles-writer.js +32 -1
  555. package/dist/esm/modules/word/{writers → writer}/table-writer.js +94 -11
  556. package/dist/esm/utils/crypto.browser.js +3 -1
  557. package/dist/esm/utils/crypto.js +4 -1
  558. package/dist/esm/utils/font-metrics.js +293 -0
  559. package/dist/esm/utils/string-buf.js +89 -0
  560. package/dist/esm/utils/theme-colors.js +120 -0
  561. package/dist/iife/excelts.iife.js +70692 -70337
  562. package/dist/iife/excelts.iife.js.map +1 -1
  563. package/dist/iife/excelts.iife.min.js +57 -57
  564. package/dist/types/modules/archive/fs/archive-file.d.ts +8 -5
  565. package/dist/types/modules/excel/chart/chart-ex-types.d.ts +0 -12
  566. package/dist/types/modules/excel/chart/chart.d.ts +1 -5
  567. package/dist/types/modules/excel/chart/types.d.ts +0 -6
  568. package/dist/types/modules/excel/stream/workbook-writer.browser.d.ts +40 -0
  569. package/dist/types/modules/excel/utils/string-buf.d.ts +5 -26
  570. package/dist/types/modules/excel/xlsx/xlsx.browser.d.ts +19 -9
  571. package/dist/types/modules/excel/xlsx/xlsx.d.ts +10 -2
  572. package/dist/types/modules/pdf/excel-bridge.d.ts +30 -1
  573. package/dist/types/modules/pdf/font/metrics.d.ts +3 -52
  574. package/dist/types/modules/pdf/index.d.ts +1 -1
  575. package/dist/types/modules/pdf/render-layout-to-pdf.d.ts +66 -0
  576. package/dist/types/modules/pdf/word-bridge.d.ts +80 -12
  577. package/dist/types/modules/stream/index.base.d.ts +2 -0
  578. package/dist/types/modules/stream/internal/sink-adapter.d.ts +65 -0
  579. package/dist/types/modules/stream/pull-stream.d.ts +19 -2
  580. package/dist/types/modules/stream/types.d.ts +13 -1
  581. package/dist/types/modules/word/advanced/diff.d.ts +61 -0
  582. package/dist/types/modules/word/advanced/drawing-shapes.d.ts +269 -0
  583. package/dist/types/modules/word/advanced/field-engine.d.ts +43 -0
  584. package/dist/types/modules/word/advanced/glossary.d.ts +86 -0
  585. package/dist/types/modules/word/advanced/math-convert.d.ts +30 -0
  586. package/dist/types/modules/word/advanced/ole-objects.d.ts +115 -0
  587. package/dist/types/modules/word/advanced/style-map.d.ts +105 -0
  588. package/dist/types/modules/word/advanced/validation.d.ts +56 -0
  589. package/dist/types/modules/word/advanced/vba-project.d.ts +91 -0
  590. package/dist/types/modules/word/bridge/excel-bridge.d.ts +127 -0
  591. package/dist/types/modules/word/builder/document-handle.d.ts +151 -0
  592. package/dist/types/modules/word/builder/paragraph-builders.d.ts +61 -0
  593. package/dist/types/modules/word/builder/run-builders.d.ts +374 -0
  594. package/dist/types/modules/word/builder/table-builders.d.ts +23 -0
  595. package/dist/types/modules/word/constants.d.ts +39 -1
  596. package/dist/types/modules/word/convert/conversion-ir.d.ts +210 -0
  597. package/dist/types/modules/word/convert/docx-to-semantic.d.ts +39 -0
  598. package/dist/types/modules/word/convert/flat-opc.d.ts +44 -0
  599. package/dist/types/modules/word/convert/html/html-import.d.ts +50 -0
  600. package/dist/{browser/modules/word → types/modules/word/convert/html}/html-renderer.d.ts +14 -1
  601. package/dist/types/modules/word/convert/html/html.d.ts +15 -0
  602. package/dist/types/modules/word/convert/markdown/markdown-import.d.ts +68 -0
  603. package/dist/types/modules/word/convert/markdown/markdown-renderer.d.ts +25 -0
  604. package/dist/types/modules/word/convert/markdown/markdown.d.ts +15 -0
  605. package/dist/types/modules/word/convert/odt/odt.d.ts +41 -0
  606. package/dist/types/modules/word/{color-utils.d.ts → core/color-utils.d.ts} +8 -1
  607. package/dist/types/modules/word/core/internal-utils.d.ts +90 -0
  608. package/dist/types/modules/word/core/mapper.d.ts +44 -0
  609. package/dist/types/modules/word/core/opc-paths.d.ts +33 -0
  610. package/dist/types/modules/word/core/text-utils.d.ts +38 -0
  611. package/dist/types/modules/word/core/walker.d.ts +119 -0
  612. package/dist/types/modules/word/crypto.d.ts +14 -9
  613. package/dist/types/modules/word/document-io.d.ts +59 -27
  614. package/dist/types/modules/word/errors.d.ts +44 -1
  615. package/dist/types/modules/word/excel.d.ts +14 -0
  616. package/dist/types/modules/word/font/font-embed.d.ts +112 -0
  617. package/dist/types/modules/word/font/hyphenation.d.ts +65 -0
  618. package/dist/types/modules/word/font/text-shaping.d.ts +58 -0
  619. package/dist/types/modules/word/html.d.ts +7 -6
  620. package/dist/types/modules/word/incremental-edit.d.ts +123 -0
  621. package/dist/types/modules/word/index.base.d.ts +194 -10
  622. package/dist/types/modules/word/layout/layout-constants.d.ts +17 -0
  623. package/dist/types/modules/word/layout/layout-full.d.ts +53 -0
  624. package/dist/types/modules/word/layout/layout-model.d.ts +344 -0
  625. package/dist/types/modules/word/layout/layout.d.ts +63 -0
  626. package/dist/types/modules/word/layout/render-page.d.ts +57 -0
  627. package/dist/types/modules/word/markdown.d.ts +14 -0
  628. package/dist/types/modules/word/patcher.d.ts +62 -0
  629. package/dist/types/modules/word/query/compat.d.ts +25 -0
  630. package/dist/types/modules/word/query/data-binding.d.ts +22 -0
  631. package/dist/types/modules/word/query/form-fields.d.ts +41 -0
  632. package/dist/types/modules/word/query/format-search.d.ts +99 -0
  633. package/dist/types/modules/word/query/mail-merge.d.ts +25 -0
  634. package/dist/types/modules/word/query/merge.d.ts +50 -0
  635. package/dist/types/modules/word/query/replace.d.ts +47 -0
  636. package/dist/types/modules/word/query/revisions.d.ts +67 -0
  637. package/dist/types/modules/word/query/search.d.ts +129 -0
  638. package/dist/types/modules/word/query/split.d.ts +44 -0
  639. package/dist/types/modules/word/query/style-resolve.d.ts +104 -0
  640. package/dist/types/modules/word/reader/chart-parser.d.ts +20 -0
  641. package/dist/types/modules/word/reader/comments-parser.d.ts +26 -0
  642. package/dist/types/modules/word/reader/doc-props-parsers.d.ts +15 -0
  643. package/dist/types/modules/word/reader/docx-reader.d.ts +27 -0
  644. package/dist/types/modules/word/reader/drawing-helpers.d.ts +27 -0
  645. package/dist/types/modules/word/reader/form-field-parser.d.ts +21 -0
  646. package/dist/types/modules/word/reader/image-parsers.d.ts +11 -0
  647. package/dist/types/modules/word/reader/math-parser.d.ts +12 -0
  648. package/dist/types/modules/word/reader/metadata-parsers.d.ts +17 -0
  649. package/dist/types/modules/word/reader/numbering-parser.d.ts +13 -0
  650. package/dist/types/modules/word/reader/paragraph-section-parsers.d.ts +12 -0
  651. package/dist/types/modules/word/reader/parse-utils.d.ts +91 -0
  652. package/dist/types/modules/word/reader/properties-parsers.d.ts +21 -0
  653. package/dist/types/modules/word/reader/reader-context.d.ts +69 -0
  654. package/dist/types/modules/word/reader/sdt-helpers.d.ts +29 -0
  655. package/dist/types/modules/word/reader/settings-parser.d.ts +8 -0
  656. package/dist/types/modules/word/reader/styles-parser.d.ts +12 -0
  657. package/dist/types/modules/word/reader/table-properties-parsers.d.ts +12 -0
  658. package/dist/types/modules/word/reader/theme-parser.d.ts +8 -0
  659. package/dist/types/modules/word/reader/watermark-parser.d.ts +15 -0
  660. package/dist/types/modules/word/security/cfb-reader.d.ts +37 -0
  661. package/dist/types/modules/word/{digital-signatures.d.ts → security/digital-signatures.d.ts} +19 -11
  662. package/dist/types/modules/word/security/document-protection.d.ts +93 -0
  663. package/dist/{browser/modules/word → types/modules/word/security}/encryption.d.ts +51 -4
  664. package/dist/types/modules/word/security/policy.d.ts +80 -0
  665. package/dist/types/modules/word/template/template-chart.d.ts +56 -0
  666. package/dist/types/modules/word/template/template-datasource.d.ts +154 -0
  667. package/dist/types/modules/word/template/template-engine.d.ts +121 -0
  668. package/dist/types/modules/word/types.d.ts +224 -25
  669. package/dist/types/modules/word/units.d.ts +26 -0
  670. package/dist/types/modules/word/writer/checkbox-writer.d.ts +17 -0
  671. package/dist/{browser/modules/word/writers → types/modules/word/writer}/comment-writer.d.ts +2 -1
  672. package/dist/types/modules/word/writer/common-parts.d.ts +57 -0
  673. package/dist/{browser/modules/word → types/modules/word/writer}/content-types.d.ts +2 -2
  674. package/dist/types/modules/word/writer/document-writer.d.ts +24 -0
  675. package/dist/types/modules/word/writer/docx-packager.d.ts +35 -0
  676. package/dist/{browser/modules/word/writers → types/modules/word/writer}/footnote-writer.d.ts +3 -2
  677. package/dist/{browser/modules/word/writers → types/modules/word/writer}/header-footer-writer.d.ts +3 -2
  678. package/dist/{browser/modules/word/writers → types/modules/word/writer}/image-writer.d.ts +1 -1
  679. package/dist/types/modules/word/writer/math-writer.d.ts +20 -0
  680. package/dist/types/modules/word/{writers → writer}/numbering-writer.d.ts +1 -1
  681. package/dist/types/modules/word/{writers → writer}/paragraph-writer.d.ts +2 -1
  682. package/dist/types/modules/word/{writers → writer}/parts-writer.d.ts +3 -3
  683. package/dist/types/modules/word/writer/reference-scanners.d.ts +42 -0
  684. package/dist/types/modules/word/writer/relationships.d.ts +52 -0
  685. package/dist/types/modules/word/writer/render-context.d.ts +124 -0
  686. package/dist/types/modules/word/{writers → writer}/run-writer.d.ts +10 -1
  687. package/dist/types/modules/word/writer/sdt-writer.d.ts +25 -0
  688. package/dist/types/modules/word/writer/stream-buf.d.ts +37 -0
  689. package/dist/types/modules/word/writer/streaming-writer.d.ts +344 -0
  690. package/dist/types/modules/word/writer/string-buf.d.ts +8 -0
  691. package/dist/types/modules/word/{writers → writer}/table-writer.d.ts +2 -1
  692. package/dist/types/modules/xml/types.d.ts +22 -0
  693. package/dist/types/utils/crypto.browser.d.ts +3 -1
  694. package/dist/types/utils/crypto.d.ts +4 -1
  695. package/dist/types/utils/font-metrics.d.ts +63 -0
  696. package/dist/types/utils/string-buf.d.ts +42 -0
  697. package/dist/types/utils/theme-colors.d.ts +55 -0
  698. package/package.json +121 -39
  699. package/dist/browser/modules/word/color-utils.js +0 -94
  700. package/dist/browser/modules/word/document.d.ts +0 -657
  701. package/dist/browser/modules/word/document.js +0 -1533
  702. package/dist/browser/modules/word/docx-packager.d.ts +0 -14
  703. package/dist/browser/modules/word/docx-packager.js +0 -822
  704. package/dist/browser/modules/word/docx-reader.d.ts +0 -11
  705. package/dist/browser/modules/word/docx-reader.js +0 -4929
  706. package/dist/browser/modules/word/encryption.js +0 -274
  707. package/dist/browser/modules/word/internal-utils.d.ts +0 -23
  708. package/dist/browser/modules/word/internal-utils.js +0 -54
  709. package/dist/browser/modules/word/namespaces.d.ts +0 -159
  710. package/dist/browser/modules/word/namespaces.js +0 -189
  711. package/dist/browser/modules/word/relationships.d.ts +0 -30
  712. package/dist/browser/modules/word/relationships.js +0 -48
  713. package/dist/browser/modules/word/writers/checkbox-writer.d.ts +0 -9
  714. package/dist/browser/modules/word/writers/checkbox-writer.js +0 -42
  715. package/dist/browser/modules/word/writers/document-writer.d.ts +0 -16
  716. package/dist/browser/modules/word/writers/document-writer.js +0 -461
  717. package/dist/browser/modules/word/writers/math-writer.d.ts +0 -9
  718. package/dist/cjs/modules/word/color-utils.js +0 -97
  719. package/dist/cjs/modules/word/document.js +0 -1645
  720. package/dist/cjs/modules/word/docx-packager.js +0 -825
  721. package/dist/cjs/modules/word/docx-reader.js +0 -4932
  722. package/dist/cjs/modules/word/encryption.js +0 -282
  723. package/dist/cjs/modules/word/internal-utils.js +0 -59
  724. package/dist/cjs/modules/word/namespaces.js +0 -192
  725. package/dist/cjs/modules/word/relationships.js +0 -55
  726. package/dist/cjs/modules/word/writers/checkbox-writer.js +0 -45
  727. package/dist/cjs/modules/word/writers/document-writer.js +0 -465
  728. package/dist/esm/modules/word/color-utils.js +0 -94
  729. package/dist/esm/modules/word/document.js +0 -1533
  730. package/dist/esm/modules/word/docx-packager.js +0 -822
  731. package/dist/esm/modules/word/docx-reader.js +0 -4929
  732. package/dist/esm/modules/word/encryption.js +0 -274
  733. package/dist/esm/modules/word/internal-utils.js +0 -54
  734. package/dist/esm/modules/word/namespaces.js +0 -189
  735. package/dist/esm/modules/word/relationships.js +0 -48
  736. package/dist/esm/modules/word/writers/checkbox-writer.js +0 -42
  737. package/dist/esm/modules/word/writers/document-writer.js +0 -461
  738. package/dist/types/modules/word/document.d.ts +0 -657
  739. package/dist/types/modules/word/docx-packager.d.ts +0 -14
  740. package/dist/types/modules/word/docx-reader.d.ts +0 -11
  741. package/dist/types/modules/word/internal-utils.d.ts +0 -23
  742. package/dist/types/modules/word/namespaces.d.ts +0 -159
  743. package/dist/types/modules/word/relationships.d.ts +0 -30
  744. package/dist/types/modules/word/writers/checkbox-writer.d.ts +0 -9
  745. package/dist/types/modules/word/writers/document-writer.d.ts +0 -16
  746. package/dist/types/modules/word/writers/math-writer.d.ts +0 -9
  747. /package/dist/browser/modules/word/{font-obfuscation.d.ts → font/font-obfuscation.d.ts} +0 -0
  748. /package/dist/browser/modules/word/{writers → writer}/chart-writer.d.ts +0 -0
  749. /package/dist/browser/modules/word/{writers → writer}/section-writer.d.ts +0 -0
  750. /package/dist/browser/modules/word/{writers → writer}/section-writer.js +0 -0
  751. /package/dist/browser/modules/word/{writers → writer}/styles-writer.d.ts +0 -0
  752. /package/dist/browser/modules/word/{writers → writer}/textbox-writer.d.ts +0 -0
  753. /package/dist/browser/modules/word/{writers → writer}/textbox-writer.js +0 -0
  754. /package/dist/browser/modules/word/{writers → writer}/toc-writer.d.ts +0 -0
  755. /package/dist/browser/modules/word/{writers → writer}/toc-writer.js +0 -0
  756. /package/dist/cjs/modules/word/{writers → writer}/section-writer.js +0 -0
  757. /package/dist/cjs/modules/word/{writers → writer}/textbox-writer.js +0 -0
  758. /package/dist/cjs/modules/word/{writers → writer}/toc-writer.js +0 -0
  759. /package/dist/esm/modules/word/{writers → writer}/section-writer.js +0 -0
  760. /package/dist/esm/modules/word/{writers → writer}/textbox-writer.js +0 -0
  761. /package/dist/esm/modules/word/{writers → writer}/toc-writer.js +0 -0
  762. /package/dist/types/modules/word/{font-obfuscation.d.ts → font/font-obfuscation.d.ts} +0 -0
  763. /package/dist/types/modules/word/{writers → writer}/chart-writer.d.ts +0 -0
  764. /package/dist/types/modules/word/{writers → writer}/section-writer.d.ts +0 -0
  765. /package/dist/types/modules/word/{writers → writer}/styles-writer.d.ts +0 -0
  766. /package/dist/types/modules/word/{writers → writer}/textbox-writer.d.ts +0 -0
  767. /package/dist/types/modules/word/{writers → writer}/toc-writer.d.ts +0 -0
@@ -0,0 +1,91 @@
1
+ /**
2
+ * DOCX Reader - Shared XML/parsing utilities
3
+ *
4
+ * Low-level helpers used across the various reader sub-modules.
5
+ * Extracted from docx-reader.ts to keep that file focused on
6
+ * orchestration of the higher-level parsers.
7
+ */
8
+ import type { XmlElement } from "../../xml/types.js";
9
+ import type { ParsedRelationship } from "./reader-context.js";
10
+ /** Get an attribute value, trying both `w:name` and bare `name`. */
11
+ export declare function attrVal(el: XmlElement, name: string): string | undefined;
12
+ /** Get an attribute as an integer (returns undefined if missing or non-numeric). */
13
+ export declare function attrInt(el: XmlElement, name: string): number | undefined;
14
+ /**
15
+ * Like `parseInt(value ?? fallback, 10)` but never returns NaN: any
16
+ * non-numeric value falls back to `fallback`. Use this when forwarding
17
+ * raw attribute strings into numeric model fields — round-tripping a
18
+ * `NaN` back into XML produces literal `"NaN"` and corrupts the
19
+ * resulting DOCX.
20
+ */
21
+ export declare function safeParseInt(value: string | undefined, fallback: number): number;
22
+ /** Get the local name from a possibly-prefixed tag (`"w:p"` → `"p"`). */
23
+ export declare function localName(name: string): string;
24
+ /** Find a child element by local name (matches both `w:name` and bare `name`). */
25
+ export declare function findChildNs(el: XmlElement, localName: string): XmlElement | undefined;
26
+ /** Find all child elements with a given local name. */
27
+ export declare function findChildrenNs(el: XmlElement, localName: string): XmlElement[];
28
+ /**
29
+ * Namespace-agnostic child finder: matches on the **local name** regardless
30
+ * of the prefix. Useful for namespaces other than `w:` (e.g. `m:`, `c:`,
31
+ * `cx:`) where the prefix may be inconsistent across producers.
32
+ */
33
+ export declare function findChildLocal(el: XmlElement, name: string): XmlElement | undefined;
34
+ /** Namespace-agnostic version of {@link findChildrenNs}. */
35
+ export declare function findChildrenLocal(el: XmlElement, name: string): XmlElement[];
36
+ /**
37
+ * Get an attribute value by **local name**, regardless of prefix.
38
+ * Useful when the same attribute may appear as `w:val`, `m:val`, etc.
39
+ */
40
+ export declare function attrLocal(el: XmlElement, name: string): string | undefined;
41
+ /**
42
+ * Check for a boolean toggle element.
43
+ *
44
+ * In OOXML, many properties are represented as toggle elements where:
45
+ * - Element present = true
46
+ * - Element with `w:val="0"` or `"false"` = explicit false
47
+ * - Element absent = undefined (use parent's default)
48
+ */
49
+ export declare function boolToggle(parent: XmlElement, name: string): boolean | undefined;
50
+ /** Serialize an XmlElement back to an XML string (used for opaque preservation). */
51
+ export declare function serializeElement(el: XmlElement): string;
52
+ /** Extract all `r:xxx` attribute values (relationship IDs) from an element tree. */
53
+ export declare function collectRIds(el: XmlElement, out: Set<string>): void;
54
+ export { getPartRelsPath, getFileName, getFileExt } from "../core/opc-paths.js";
55
+ /**
56
+ * Resolve an OPC relationship target against its source part.
57
+ *
58
+ * - Leading `/` → package root absolute
59
+ * - `../` / `./` → resolved relative to the source part's directory
60
+ * - Plain paths → resolved relative to the source part's directory
61
+ *
62
+ * Returns an empty string when the resolved path would escape the package
63
+ * root (i.e. more `..` segments than there are directories above the
64
+ * source). The previous behaviour silently treated extra `..` as a no-op,
65
+ * which let a malicious or malformed `Target` value point at an entirely
66
+ * different part than the directory traversal would suggest.
67
+ */
68
+ export declare function resolvePartPath(sourcePart: string, target: string): string;
69
+ /**
70
+ * Find the first relationship of a given type and resolve its target path.
71
+ * Returns undefined if no matching relationship exists.
72
+ */
73
+ export declare function resolveRelTarget(rels: ParsedRelationship[], relType: string, sourcePart: string): string | undefined;
74
+ /** Convert OOXML cryptAlgorithmSid to human-readable algorithm name. */
75
+ export declare function sidToHashAlgorithm(sid: string | undefined): string | undefined;
76
+ /**
77
+ * Common shape returned by {@link parseNoteProperties}.
78
+ *
79
+ * `numFmt` is widened to `string` (rather than `NoteNumberFormat`) so the
80
+ * helper can populate either `FootnoteProperties` or `EndnoteProperties`,
81
+ * which only differ in `position`'s narrow union. Callers cast at the
82
+ * assignment site.
83
+ */
84
+ export interface ParsedNoteProperties {
85
+ numFmt?: string;
86
+ numStart?: number;
87
+ numRestart?: string;
88
+ position?: string;
89
+ }
90
+ /** Parse footnote/endnote properties element. */
91
+ export declare function parseNoteProperties(el: XmlElement): ParsedNoteProperties | undefined;
@@ -0,0 +1,249 @@
1
+ /**
2
+ * DOCX Reader - Shared XML/parsing utilities
3
+ *
4
+ * Low-level helpers used across the various reader sub-modules.
5
+ * Extracted from docx-reader.ts to keep that file focused on
6
+ * orchestration of the higher-level parsers.
7
+ */
8
+ import { findChild, findChildren } from "../../xml/dom.js";
9
+ import { xmlEncode, xmlEncodeAttr } from "../../xml/encode.js";
10
+ // =============================================================================
11
+ // Attribute Readers
12
+ // =============================================================================
13
+ /** Get an attribute value, trying both `w:name` and bare `name`. */
14
+ export function attrVal(el, name) {
15
+ return el.attributes[`w:${name}`] ?? el.attributes[name];
16
+ }
17
+ /** Get an attribute as an integer (returns undefined if missing or non-numeric). */
18
+ export function attrInt(el, name) {
19
+ const v = attrVal(el, name);
20
+ if (v === undefined) {
21
+ return undefined;
22
+ }
23
+ const n = parseInt(v, 10);
24
+ return Number.isFinite(n) ? n : undefined;
25
+ }
26
+ /**
27
+ * Like `parseInt(value ?? fallback, 10)` but never returns NaN: any
28
+ * non-numeric value falls back to `fallback`. Use this when forwarding
29
+ * raw attribute strings into numeric model fields — round-tripping a
30
+ * `NaN` back into XML produces literal `"NaN"` and corrupts the
31
+ * resulting DOCX.
32
+ */
33
+ export function safeParseInt(value, fallback) {
34
+ if (value === undefined) {
35
+ return fallback;
36
+ }
37
+ const n = parseInt(value, 10);
38
+ return Number.isFinite(n) ? n : fallback;
39
+ }
40
+ // =============================================================================
41
+ // Child Element Readers
42
+ // =============================================================================
43
+ /** Get the local name from a possibly-prefixed tag (`"w:p"` → `"p"`). */
44
+ export function localName(name) {
45
+ const idx = name.indexOf(":");
46
+ return idx >= 0 ? name.slice(idx + 1) : name;
47
+ }
48
+ /** Find a child element by local name (matches both `w:name` and bare `name`). */
49
+ export function findChildNs(el, localName) {
50
+ return findChild(el, `w:${localName}`) ?? findChild(el, localName);
51
+ }
52
+ /** Find all child elements with a given local name. */
53
+ export function findChildrenNs(el, localName) {
54
+ const a = findChildren(el, `w:${localName}`);
55
+ return a.length > 0 ? a : findChildren(el, localName);
56
+ }
57
+ /**
58
+ * Namespace-agnostic child finder: matches on the **local name** regardless
59
+ * of the prefix. Useful for namespaces other than `w:` (e.g. `m:`, `c:`,
60
+ * `cx:`) where the prefix may be inconsistent across producers.
61
+ */
62
+ export function findChildLocal(el, name) {
63
+ for (const child of el.children) {
64
+ if (child.type === "element" && localName(child.name) === name) {
65
+ return child;
66
+ }
67
+ }
68
+ return undefined;
69
+ }
70
+ /** Namespace-agnostic version of {@link findChildrenNs}. */
71
+ export function findChildrenLocal(el, name) {
72
+ const out = [];
73
+ for (const child of el.children) {
74
+ if (child.type === "element" && localName(child.name) === name) {
75
+ out.push(child);
76
+ }
77
+ }
78
+ return out;
79
+ }
80
+ /**
81
+ * Get an attribute value by **local name**, regardless of prefix.
82
+ * Useful when the same attribute may appear as `w:val`, `m:val`, etc.
83
+ */
84
+ export function attrLocal(el, name) {
85
+ for (const [k, v] of Object.entries(el.attributes)) {
86
+ if (localName(k) === name) {
87
+ return v;
88
+ }
89
+ }
90
+ return undefined;
91
+ }
92
+ /**
93
+ * Check for a boolean toggle element.
94
+ *
95
+ * In OOXML, many properties are represented as toggle elements where:
96
+ * - Element present = true
97
+ * - Element with `w:val="0"` or `"false"` = explicit false
98
+ * - Element absent = undefined (use parent's default)
99
+ */
100
+ export function boolToggle(parent, name) {
101
+ const el = findChildNs(parent, name);
102
+ if (!el) {
103
+ return undefined;
104
+ }
105
+ const v = attrVal(el, "val");
106
+ if (v === "0" || v === "false") {
107
+ return false;
108
+ }
109
+ return true;
110
+ }
111
+ // =============================================================================
112
+ // XML Serialization
113
+ // =============================================================================
114
+ /** Serialize an XmlElement back to an XML string (used for opaque preservation). */
115
+ export function serializeElement(el) {
116
+ let s = `<${el.name}`;
117
+ for (const [k, v] of Object.entries(el.attributes)) {
118
+ s += ` ${k}="${xmlEncodeAttr(v)}"`;
119
+ }
120
+ if (el.children.length === 0) {
121
+ return s + "/>";
122
+ }
123
+ s += ">";
124
+ for (const child of el.children) {
125
+ if (child.type === "element") {
126
+ s += serializeElement(child);
127
+ }
128
+ else if (child.type === "text") {
129
+ s += xmlEncode(child.value);
130
+ }
131
+ }
132
+ s += `</${el.name}>`;
133
+ return s;
134
+ }
135
+ /** Extract all `r:xxx` attribute values (relationship IDs) from an element tree. */
136
+ export function collectRIds(el, out) {
137
+ for (const [k, v] of Object.entries(el.attributes)) {
138
+ if (k.startsWith("r:") || k === "r:id" || k === "r:embed" || k === "r:link") {
139
+ out.add(v);
140
+ }
141
+ }
142
+ for (const child of el.children) {
143
+ if (child.type === "element") {
144
+ collectRIds(child, out);
145
+ }
146
+ }
147
+ }
148
+ // =============================================================================
149
+ // Path / Relationship Helpers
150
+ // =============================================================================
151
+ export { getPartRelsPath, getFileName, getFileExt } from "../core/opc-paths.js";
152
+ /**
153
+ * Resolve an OPC relationship target against its source part.
154
+ *
155
+ * - Leading `/` → package root absolute
156
+ * - `../` / `./` → resolved relative to the source part's directory
157
+ * - Plain paths → resolved relative to the source part's directory
158
+ *
159
+ * Returns an empty string when the resolved path would escape the package
160
+ * root (i.e. more `..` segments than there are directories above the
161
+ * source). The previous behaviour silently treated extra `..` as a no-op,
162
+ * which let a malicious or malformed `Target` value point at an entirely
163
+ * different part than the directory traversal would suggest.
164
+ */
165
+ export function resolvePartPath(sourcePart, target) {
166
+ if (!target) {
167
+ return "";
168
+ }
169
+ if (target.startsWith("/")) {
170
+ return target.slice(1);
171
+ }
172
+ const lastSlash = sourcePart.lastIndexOf("/");
173
+ const baseDir = lastSlash >= 0 ? sourcePart.substring(0, lastSlash).split("/") : [];
174
+ const segs = target.split("/");
175
+ for (const seg of segs) {
176
+ if (seg === "..") {
177
+ if (baseDir.length === 0) {
178
+ // The target asks to step above the package root. Treat as
179
+ // unresolvable instead of silently swallowing the segment.
180
+ return "";
181
+ }
182
+ baseDir.pop();
183
+ }
184
+ else if (seg !== "." && seg !== "") {
185
+ baseDir.push(seg);
186
+ }
187
+ }
188
+ return baseDir.join("/");
189
+ }
190
+ /**
191
+ * Find the first relationship of a given type and resolve its target path.
192
+ * Returns undefined if no matching relationship exists.
193
+ */
194
+ export function resolveRelTarget(rels, relType, sourcePart) {
195
+ for (const rel of rels) {
196
+ if (rel.type === relType) {
197
+ return resolvePartPath(sourcePart, rel.target);
198
+ }
199
+ }
200
+ return undefined;
201
+ }
202
+ // =============================================================================
203
+ // Crypto Helpers
204
+ // =============================================================================
205
+ /** Convert OOXML cryptAlgorithmSid to human-readable algorithm name. */
206
+ export function sidToHashAlgorithm(sid) {
207
+ if (!sid) {
208
+ return undefined;
209
+ }
210
+ switch (sid) {
211
+ case "1":
212
+ return "MD2";
213
+ case "2":
214
+ return "MD4";
215
+ case "3":
216
+ return "MD5";
217
+ case "4":
218
+ return "SHA-1";
219
+ case "12":
220
+ return "SHA-256";
221
+ case "13":
222
+ return "SHA-384";
223
+ case "14":
224
+ return "SHA-512";
225
+ default:
226
+ return `SID-${sid}`;
227
+ }
228
+ }
229
+ /** Parse footnote/endnote properties element. */
230
+ export function parseNoteProperties(el) {
231
+ const props = {};
232
+ const numFmtEl = findChildNs(el, "numFmt");
233
+ if (numFmtEl) {
234
+ props.numFmt = attrVal(numFmtEl, "val");
235
+ }
236
+ const numStartEl = findChildNs(el, "numStart");
237
+ if (numStartEl) {
238
+ props.numStart = attrInt(numStartEl, "val");
239
+ }
240
+ const numRestartEl = findChildNs(el, "numRestart");
241
+ if (numRestartEl) {
242
+ props.numRestart = attrVal(numRestartEl, "val");
243
+ }
244
+ const posEl = findChildNs(el, "pos");
245
+ if (posEl) {
246
+ props.position = attrVal(posEl, "val");
247
+ }
248
+ return Object.keys(props).length > 0 ? props : undefined;
249
+ }
@@ -0,0 +1,21 @@
1
+ /**
2
+ * DOCX Reader - Properties Parsers
3
+ *
4
+ * Pure parsers for OOXML property structures that don't depend on the
5
+ * main reader context. These are the building blocks used by the higher-level
6
+ * paragraph/run/table/section parsers.
7
+ *
8
+ * Includes:
9
+ * - `parseRunProperties` (w:rPr)
10
+ * - `parseShading` (w:shd)
11
+ * - `parseBorder` (any border element)
12
+ * - `parseTableWidth` (w:tblW, w:tcW, etc.)
13
+ * - `parseRevisionInfo` (w:ins/w:del/w:rPrChange/etc. revision metadata)
14
+ */
15
+ import type { XmlElement } from "../../xml/types.js";
16
+ import type { Border, RevisionInfo, RunProperties, Shading, TableWidth } from "../types.js";
17
+ export declare function parseRunProperties(rPrEl: XmlElement): RunProperties;
18
+ export declare function parseShading(el: XmlElement): Shading;
19
+ export declare function parseBorder(el: XmlElement): Border;
20
+ export declare function parseTableWidth(el: XmlElement): TableWidth;
21
+ export declare function parseRevisionInfo(el: XmlElement): RevisionInfo | undefined;
@@ -0,0 +1,332 @@
1
+ /**
2
+ * DOCX Reader - Properties Parsers
3
+ *
4
+ * Pure parsers for OOXML property structures that don't depend on the
5
+ * main reader context. These are the building blocks used by the higher-level
6
+ * paragraph/run/table/section parsers.
7
+ *
8
+ * Includes:
9
+ * - `parseRunProperties` (w:rPr)
10
+ * - `parseShading` (w:shd)
11
+ * - `parseBorder` (any border element)
12
+ * - `parseTableWidth` (w:tblW, w:tcW, etc.)
13
+ * - `parseRevisionInfo` (w:ins/w:del/w:rPrChange/etc. revision metadata)
14
+ */
15
+ import {} from "../core/internal-utils.js";
16
+ import { attrInt, attrVal, boolToggle, findChildNs, safeParseInt } from "./parse-utils.js";
17
+ // =============================================================================
18
+ // Run Properties
19
+ // =============================================================================
20
+ export function parseRunProperties(rPrEl) {
21
+ const rPr = {};
22
+ const rStyleEl = findChildNs(rPrEl, "rStyle");
23
+ if (rStyleEl) {
24
+ rPr.style = attrVal(rStyleEl, "val");
25
+ }
26
+ const fontsEl = findChildNs(rPrEl, "rFonts");
27
+ if (fontsEl) {
28
+ const f = {};
29
+ const ascii = attrVal(fontsEl, "ascii");
30
+ const hAnsi = attrVal(fontsEl, "hAnsi");
31
+ const eastAsia = attrVal(fontsEl, "eastAsia");
32
+ const cs = attrVal(fontsEl, "cs");
33
+ const hint = attrVal(fontsEl, "hint");
34
+ if (ascii) {
35
+ f.ascii = ascii;
36
+ }
37
+ if (hAnsi) {
38
+ f.hAnsi = hAnsi;
39
+ }
40
+ if (eastAsia) {
41
+ f.eastAsia = eastAsia;
42
+ }
43
+ if (cs) {
44
+ f.cs = cs;
45
+ }
46
+ if (hint) {
47
+ f.hint = hint;
48
+ }
49
+ const asciiTheme = attrVal(fontsEl, "asciiTheme");
50
+ if (asciiTheme) {
51
+ f.asciiTheme = asciiTheme;
52
+ }
53
+ const hAnsiTheme = attrVal(fontsEl, "hAnsiTheme");
54
+ if (hAnsiTheme) {
55
+ f.hAnsiTheme = hAnsiTheme;
56
+ }
57
+ const eastAsiaTheme = attrVal(fontsEl, "eastAsiaTheme");
58
+ if (eastAsiaTheme) {
59
+ f.eastAsiaTheme = eastAsiaTheme;
60
+ }
61
+ const cstheme = attrVal(fontsEl, "cstheme");
62
+ if (cstheme) {
63
+ f.cstheme = cstheme;
64
+ }
65
+ rPr.font = f;
66
+ }
67
+ // Boolean toggles: true-only (element presence = true; absence = undefined)
68
+ // Format: [elementName, propertyKey]
69
+ const RUN_ONCE_TOGGLES = [
70
+ ["strike", "strike"],
71
+ ["dstrike", "doubleStrike"],
72
+ ["caps", "caps"],
73
+ ["smallCaps", "smallCaps"],
74
+ ["vanish", "vanish"],
75
+ ["emboss", "emboss"],
76
+ ["imprint", "imprint"],
77
+ ["noProof", "noProof"],
78
+ ["specVanish", "specVanish"],
79
+ ["outline", "outline"],
80
+ ["shadow", "shadow"],
81
+ ["cs", "complexScript"],
82
+ ["oMath", "math"],
83
+ ["webHidden", "webHidden"]
84
+ ];
85
+ for (const [tag, key] of RUN_ONCE_TOGGLES) {
86
+ if (findChildNs(rPrEl, tag) && boolToggle(rPrEl, tag) !== false) {
87
+ rPr[key] = true;
88
+ }
89
+ }
90
+ // Boolean toggles: tri-state (can be explicitly true or false)
91
+ const RUN_TRISTATE_TOGGLES = [
92
+ ["b", "bold"],
93
+ ["bCs", "boldCs"],
94
+ ["i", "italic"],
95
+ ["iCs", "italicCs"],
96
+ ["snapToGrid", "snapToGrid"],
97
+ ["rtl", "rightToLeft"]
98
+ ];
99
+ for (const [tag, key] of RUN_TRISTATE_TOGGLES) {
100
+ const v = boolToggle(rPrEl, tag);
101
+ if (v !== undefined) {
102
+ rPr[key] = v;
103
+ }
104
+ }
105
+ // fitText
106
+ const fitTextEl = findChildNs(rPrEl, "fitText");
107
+ if (fitTextEl) {
108
+ const val = attrInt(fitTextEl, "val");
109
+ if (val !== undefined) {
110
+ const id = attrInt(fitTextEl, "id");
111
+ rPr.fitText = id !== undefined ? { val, id } : { val };
112
+ }
113
+ }
114
+ const colorEl = findChildNs(rPrEl, "color");
115
+ if (colorEl) {
116
+ const val = attrVal(colorEl, "val");
117
+ const themeColor = attrVal(colorEl, "themeColor");
118
+ if (themeColor) {
119
+ const spec = { val, themeColor };
120
+ const themeTint = attrVal(colorEl, "themeTint");
121
+ const themeShade = attrVal(colorEl, "themeShade");
122
+ if (themeTint) {
123
+ spec.themeTint = themeTint;
124
+ }
125
+ if (themeShade) {
126
+ spec.themeShade = themeShade;
127
+ }
128
+ rPr.color = spec;
129
+ }
130
+ else {
131
+ rPr.color = val;
132
+ }
133
+ }
134
+ const szEl = findChildNs(rPrEl, "sz");
135
+ if (szEl) {
136
+ rPr.size = attrInt(szEl, "val");
137
+ }
138
+ const szCsEl = findChildNs(rPrEl, "szCs");
139
+ if (szCsEl) {
140
+ rPr.sizeCs = attrInt(szCsEl, "val");
141
+ }
142
+ const uEl = findChildNs(rPrEl, "u");
143
+ if (uEl) {
144
+ const uStyle = (attrVal(uEl, "val") ?? "single");
145
+ const uColor = attrVal(uEl, "color");
146
+ if (uColor) {
147
+ rPr.underline = { style: uStyle, color: uColor };
148
+ }
149
+ else {
150
+ rPr.underline = uStyle;
151
+ }
152
+ }
153
+ const highlightEl = findChildNs(rPrEl, "highlight");
154
+ if (highlightEl) {
155
+ rPr.highlight = attrVal(highlightEl, "val");
156
+ }
157
+ const vertAlignEl = findChildNs(rPrEl, "vertAlign");
158
+ if (vertAlignEl) {
159
+ rPr.vertAlign = attrVal(vertAlignEl, "val");
160
+ }
161
+ const spacingEl = findChildNs(rPrEl, "spacing");
162
+ if (spacingEl) {
163
+ rPr.spacing = attrInt(spacingEl, "val");
164
+ }
165
+ const shdEl = findChildNs(rPrEl, "shd");
166
+ if (shdEl) {
167
+ rPr.shading = parseShading(shdEl);
168
+ }
169
+ const langEl = findChildNs(rPrEl, "lang");
170
+ if (langEl) {
171
+ rPr.language = {
172
+ val: attrVal(langEl, "val"),
173
+ eastAsia: attrVal(langEl, "eastAsia"),
174
+ bidi: attrVal(langEl, "bidi")
175
+ };
176
+ }
177
+ // New valued properties
178
+ const kernEl = findChildNs(rPrEl, "kern");
179
+ if (kernEl) {
180
+ rPr.kern = attrInt(kernEl, "val");
181
+ }
182
+ const positionEl = findChildNs(rPrEl, "position");
183
+ if (positionEl) {
184
+ rPr.position = attrInt(positionEl, "val");
185
+ }
186
+ const wEl = findChildNs(rPrEl, "w");
187
+ if (wEl) {
188
+ rPr.scale = attrInt(wEl, "val");
189
+ }
190
+ const effectEl = findChildNs(rPrEl, "effect");
191
+ if (effectEl) {
192
+ rPr.effect = attrVal(effectEl, "val");
193
+ }
194
+ const emEl = findChildNs(rPrEl, "em");
195
+ if (emEl) {
196
+ rPr.emphasisMark = attrVal(emEl, "val");
197
+ }
198
+ const eaLayoutEl = findChildNs(rPrEl, "eastAsianLayout");
199
+ if (eaLayoutEl) {
200
+ const ea = parseEastAsianLayout(eaLayoutEl);
201
+ if (ea) {
202
+ rPr.eastAsianLayout = ea;
203
+ }
204
+ }
205
+ const bdrEl = findChildNs(rPrEl, "bdr");
206
+ if (bdrEl) {
207
+ rPr.border = parseBorder(bdrEl);
208
+ }
209
+ // rPrChange (track changes for run properties)
210
+ const rPrChangeEl = findChildNs(rPrEl, "rPrChange");
211
+ if (rPrChangeEl) {
212
+ const rev = parseRevisionInfo(rPrChangeEl);
213
+ if (rev) {
214
+ const prevRPrEl = findChildNs(rPrChangeEl, "rPr");
215
+ const change = {
216
+ revision: rev,
217
+ previousProperties: prevRPrEl ? parseRunProperties(prevRPrEl) : undefined
218
+ };
219
+ rPr.propertyChange = change;
220
+ }
221
+ }
222
+ return rPr;
223
+ }
224
+ // =============================================================================
225
+ // East Asian Layout
226
+ // =============================================================================
227
+ const VALID_COMBINE_BRACKETS = new Set([
228
+ "none",
229
+ "round",
230
+ "square",
231
+ "angle",
232
+ "curly"
233
+ ]);
234
+ /**
235
+ * Interpret an OOXML on/off attribute (ECMA-376 §17.17.4): a value of
236
+ * `"1"`, `"true"`, `"on"` or the empty string is true; `"0"`, `"false"`,
237
+ * `"off"` is false; missing yields undefined.
238
+ */
239
+ function attrOnOff(el, name) {
240
+ const v = attrVal(el, name);
241
+ if (v == null) {
242
+ return undefined;
243
+ }
244
+ if (v === "0" || v === "false" || v === "off") {
245
+ return false;
246
+ }
247
+ return true;
248
+ }
249
+ function parseEastAsianLayout(el) {
250
+ const spec = {};
251
+ const id = attrInt(el, "id");
252
+ if (id != null) {
253
+ spec.id = id;
254
+ }
255
+ if (attrOnOff(el, "combine") === true) {
256
+ spec.combine = true;
257
+ }
258
+ const brackets = attrVal(el, "combineBrackets");
259
+ if (brackets && VALID_COMBINE_BRACKETS.has(brackets)) {
260
+ spec.combineBrackets = brackets;
261
+ }
262
+ if (attrOnOff(el, "vert") === true) {
263
+ spec.vert = true;
264
+ }
265
+ if (attrOnOff(el, "vertCompress") === true) {
266
+ spec.vertCompress = true;
267
+ }
268
+ return Object.keys(spec).length > 0 ? spec : undefined;
269
+ }
270
+ // =============================================================================
271
+ // Shading / Border / Width
272
+ // =============================================================================
273
+ export function parseShading(el) {
274
+ return {
275
+ pattern: attrVal(el, "val"),
276
+ color: attrVal(el, "color"),
277
+ fill: attrVal(el, "fill") ?? "auto"
278
+ };
279
+ }
280
+ export function parseBorder(el) {
281
+ const b = {
282
+ style: (attrVal(el, "val") ?? "single"),
283
+ size: attrInt(el, "sz"),
284
+ space: attrInt(el, "space"),
285
+ color: attrVal(el, "color")
286
+ };
287
+ const tc = attrVal(el, "themeColor");
288
+ if (tc) {
289
+ b.themeColor = tc;
290
+ }
291
+ const shadow = attrVal(el, "shadow");
292
+ if (shadow === "1" || shadow === "true") {
293
+ b.shadow = true;
294
+ }
295
+ const frame = attrVal(el, "frame");
296
+ if (frame === "1" || frame === "true") {
297
+ b.frame = true;
298
+ }
299
+ const art = attrVal(el, "art");
300
+ if (art) {
301
+ b.art = art;
302
+ }
303
+ return b;
304
+ }
305
+ export function parseTableWidth(el) {
306
+ return {
307
+ // Reject non-numeric values (a hostile DOCX could write
308
+ // `<w:tblW w:w="abc"/>`); falling back to 0 keeps the model field
309
+ // a finite number and prevents `NaN` from being serialised back to
310
+ // the output XML, which Word rejects.
311
+ value: safeParseInt(el.attributes["w:w"] ?? el.attributes["w"], 0),
312
+ type: (el.attributes["w:type"] ?? el.attributes["type"] ?? "dxa")
313
+ };
314
+ }
315
+ // =============================================================================
316
+ // Revision Info
317
+ // =============================================================================
318
+ export function parseRevisionInfo(el) {
319
+ const author = attrVal(el, "author");
320
+ const id = attrInt(el, "id");
321
+ // ECMA-376 marks `w:author` and `w:id` as optional on revision elements.
322
+ // Earlier we returned `undefined` if either was missing — that quietly
323
+ // dropped the entire `<w:ins>`/`<w:del>` body in callers that gate on
324
+ // this result. Fall back to a sentinel author/id so the surrounding runs
325
+ // are still preserved (the user-visible text is what matters; the
326
+ // metadata is purely informational).
327
+ return {
328
+ author: author ?? "",
329
+ id: id ?? 0,
330
+ date: attrVal(el, "date")
331
+ };
332
+ }