@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,119 @@
1
+ /**
2
+ * DOCX Module - Document Walker (Visitor Pattern)
3
+ *
4
+ * Unified traversal engine for the DocxDocument model. Provides a single,
5
+ * tested implementation of document tree walking that all consumers
6
+ * (renderers, validators, field engines, template engines, etc.) can use
7
+ * instead of each implementing their own recursive traversal.
8
+ *
9
+ * Design principles:
10
+ * - Visitor receives enter/leave callbacks for structural elements
11
+ * - Return "skip" to prune subtrees, "stop" to abort early
12
+ * - WalkPath provides full context (location, nesting depth, container)
13
+ * - Options control which parts of the document are visited
14
+ */
15
+ import type { DocxDocument, BodyContent, Paragraph, Run, RunContent, Table, TableRow, TableCell, MathBlock, MathContent, StructuredDocumentTag, Hyperlink, InsertedRun, DeletedRun, MovedFromRun, MovedToRun, FloatingImage, BookmarkStart, CommentRangeStart, CommentRangeEnd, TextBox, TableOfContents, AltChunk, ChartContent, ChartExContent, CheckBox, DrawingShape, OpaqueDrawing } from "../types.js";
16
+ /** Action returned by visitor callbacks to control traversal. */
17
+ export type VisitAction = "continue" | "skip" | "stop";
18
+ /** Location context passed to visitor callbacks. */
19
+ export interface WalkPath {
20
+ /** Current section index (0-based). */
21
+ readonly section: number;
22
+ /** Nesting depth (0 = top-level body content). */
23
+ readonly depth: number;
24
+ /** Whether currently inside a header. */
25
+ readonly inHeader: boolean;
26
+ /** Whether currently inside a footer. */
27
+ readonly inFooter: boolean;
28
+ /** Whether currently inside a footnote. */
29
+ readonly inFootnote: boolean;
30
+ /** Whether currently inside an endnote. */
31
+ readonly inEndnote: boolean;
32
+ /** Whether currently inside a comment. */
33
+ readonly inComment: boolean;
34
+ /** Index within the parent container. */
35
+ readonly index: number;
36
+ }
37
+ /** Options controlling which parts of the document to walk. */
38
+ export interface WalkOptions {
39
+ /** Walk header content. Default: true. */
40
+ readonly includeHeaders?: boolean;
41
+ /** Walk footer content. Default: true. */
42
+ readonly includeFooters?: boolean;
43
+ /** Walk footnote content. Default: true. */
44
+ readonly includeFootnotes?: boolean;
45
+ /** Walk endnote content. Default: true. */
46
+ readonly includeEndnotes?: boolean;
47
+ /** Walk comment content. Default: false. */
48
+ readonly includeComments?: boolean;
49
+ }
50
+ /**
51
+ * Visitor interface for document traversal.
52
+ * All methods are optional — implement only what you need.
53
+ */
54
+ export interface DocxVisitor {
55
+ enterParagraph?(para: Paragraph, path: WalkPath): VisitAction | void;
56
+ leaveParagraph?(para: Paragraph, path: WalkPath): void;
57
+ enterTable?(table: Table, path: WalkPath): VisitAction | void;
58
+ leaveTable?(table: Table, path: WalkPath): void;
59
+ enterTableRow?(row: TableRow, path: WalkPath): VisitAction | void;
60
+ leaveTableRow?(row: TableRow, path: WalkPath): void;
61
+ enterTableCell?(cell: TableCell, path: WalkPath): VisitAction | void;
62
+ leaveTableCell?(cell: TableCell, path: WalkPath): void;
63
+ enterSdt?(sdt: StructuredDocumentTag, path: WalkPath): VisitAction | void;
64
+ leaveSdt?(sdt: StructuredDocumentTag, path: WalkPath): void;
65
+ enterMathBlock?(math: MathBlock, path: WalkPath): VisitAction | void;
66
+ leaveMathBlock?(math: MathBlock, path: WalkPath): void;
67
+ visitFloatingImage?(image: FloatingImage, path: WalkPath): void;
68
+ visitTextBox?(textBox: TextBox, path: WalkPath): VisitAction | void;
69
+ visitTableOfContents?(toc: TableOfContents, path: WalkPath): void;
70
+ visitAltChunk?(chunk: AltChunk, path: WalkPath): void;
71
+ visitChart?(chart: ChartContent, path: WalkPath): void;
72
+ visitChartEx?(chart: ChartExContent, path: WalkPath): void;
73
+ visitCheckBox?(checkBox: CheckBox, path: WalkPath): void;
74
+ visitDrawingShape?(shape: DrawingShape, path: WalkPath): void;
75
+ visitOpaqueDrawing?(drawing: OpaqueDrawing, path: WalkPath): void;
76
+ enterRun?(run: Run, path: WalkPath): VisitAction | void;
77
+ leaveRun?(run: Run, path: WalkPath): void;
78
+ enterHyperlink?(hyperlink: Hyperlink, path: WalkPath): VisitAction | void;
79
+ leaveHyperlink?(hyperlink: Hyperlink, path: WalkPath): void;
80
+ visitInsertedRun?(inserted: InsertedRun, path: WalkPath): VisitAction | void;
81
+ visitDeletedRun?(deleted: DeletedRun, path: WalkPath): void;
82
+ visitMovedFromRun?(moved: MovedFromRun, path: WalkPath): void;
83
+ visitMovedToRun?(moved: MovedToRun, path: WalkPath): VisitAction | void;
84
+ visitBookmarkStart?(bookmark: BookmarkStart, path: WalkPath): void;
85
+ visitBookmarkEnd?(id: number, path: WalkPath): void;
86
+ visitCommentRangeStart?(comment: CommentRangeStart, path: WalkPath): void;
87
+ visitCommentRangeEnd?(comment: CommentRangeEnd, path: WalkPath): void;
88
+ visitRunContent?(content: RunContent, run: Run, path: WalkPath): void;
89
+ visitMathContent?(content: MathContent, path: WalkPath): void;
90
+ }
91
+ /**
92
+ * Walk an entire DocxDocument, calling visitor methods for each element.
93
+ *
94
+ * @param doc - The document to walk.
95
+ * @param visitor - Visitor with callbacks for elements of interest.
96
+ * @param options - Controls which document parts to include.
97
+ */
98
+ export declare function walkDocument(doc: DocxDocument, visitor: DocxVisitor, options?: WalkOptions): void;
99
+ /**
100
+ * Walk a list of body content blocks (useful for walking sub-documents).
101
+ *
102
+ * @param blocks - Body content array to walk.
103
+ * @param visitor - Visitor with callbacks.
104
+ * @param basePath - Optional initial path context.
105
+ * @returns "stop" if traversal was aborted, "continue" otherwise.
106
+ */
107
+ export declare function walkBlocks(blocks: readonly BodyContent[], visitor: DocxVisitor, basePath?: WalkPath): "stop" | "continue";
108
+ /**
109
+ * Collect all paragraphs from a document (including nested in tables/SDTs).
110
+ */
111
+ export declare function collectParagraphs(doc: DocxDocument, options?: WalkOptions): Paragraph[];
112
+ /**
113
+ * Collect all runs from a document (including nested).
114
+ */
115
+ export declare function collectRuns(doc: DocxDocument, options?: WalkOptions): Run[];
116
+ /**
117
+ * Collect all tables from a document (including nested).
118
+ */
119
+ export declare function collectTables(doc: DocxDocument, options?: WalkOptions): Table[];
@@ -1,17 +1,22 @@
1
1
  /**
2
- * DOCX Module - Encryption & Digital Signatures (Subpath Export)
2
+ * DOCX Module - Encryption & Digital Signatures (Subpath Entry)
3
3
  *
4
- * Import separately to avoid pulling crypto code into the bundle
5
- * when only core document building is needed.
4
+ * Public API at `excelts/word/crypto`. Referenced by
5
+ * `package.json#exports["./word/crypto"]`. Import this subpath separately to
6
+ * keep encryption / CFB / signature / font obfuscation code out of bundles
7
+ * that only need core document building.
6
8
  *
7
9
  * @example
8
10
  * ```ts
9
- * import { isEncryptedDocx, decryptPackage } from "excelts/word/crypto";
11
+ * import { isEncryptedDocx, decryptDocx, encryptDocx } from "excelts/word/crypto";
10
12
  * import { extractSignatures } from "excelts/word/crypto";
11
13
  * ```
12
14
  */
13
- export { isEncryptedDocx, verifyPassword, decryptPackage, parseEncryptionInfoXml, deriveEncryptionKey, AGILE_BLOCK_KEYS } from "./encryption.js";
14
- export type { AgileEncryptionInfo } from "./encryption.js";
15
- export { hasDigitalSignatures, parseSignatureXml, extractSignatures, isWellFormedSignature } from "./digital-signatures.js";
16
- export type { DigitalSignatureInfo } from "./digital-signatures.js";
17
- export { deobfuscateFont, obfuscateFont, generateFontKey } from "./font-obfuscation.js";
15
+ export { isEncryptedDocx, verifyPassword, decryptPackage, decryptDocx, encryptDocx, parseEncryptionInfoXml, deriveEncryptionKey, AGILE_BLOCK_KEYS } from "./security/encryption.js";
16
+ export type { AgileEncryptionInfo, EncryptOptions } from "./security/encryption.js";
17
+ export { DocxEncryptedError } from "./errors.js";
18
+ export { readCfb, writeCfb } from "./security/cfb-reader.js";
19
+ export type { CfbEntry } from "./security/cfb-reader.js";
20
+ export { hasDigitalSignatures, parseSignatureXml, extractSignatures, isWellFormedSignature } from "./security/digital-signatures.js";
21
+ export type { DigitalSignatureInfo } from "./security/digital-signatures.js";
22
+ export { deobfuscateFont, obfuscateFont, generateFontKey } from "./font/font-obfuscation.js";
@@ -1,43 +1,49 @@
1
1
  /**
2
2
  * DOCX Module - Document IO
3
3
  *
4
- * IO operations that depend on docx-packager and docx-reader.
5
- * Separated from document.ts so that builder helpers can be imported
6
- * without pulling in archive/xml/writer code.
4
+ * IO operations: package/unpackage to bytes, base64, Flat OPC,
5
+ * plus the public Patch and Template APIs that combine read/patch/write.
7
6
  */
8
- import type { DocxDocument, Paragraph, Table, ImageDef } from "./types.js";
7
+ import { type PatchOperation } from "./patcher.js";
8
+ import type { TemplateOptions } from "./template/template-engine.js";
9
+ import type { DocxDocument } from "./types.js";
10
+ export type { PatchContent, PatchOperation } from "./patcher.js";
9
11
  /** Package a DocxDocument model to DOCX bytes. */
10
12
  export declare function toBuffer(doc: DocxDocument, compressionLevel?: number): Promise<Uint8Array>;
11
13
  /** Package a DocxDocument model to base64 string. */
12
14
  export declare function toBase64(doc: DocxDocument, compressionLevel?: number): Promise<string>;
13
- /** Type of content to patch into a placeholder. */
14
- export type PatchContent = {
15
- readonly type: "text";
16
- readonly text: string;
17
- } | {
18
- readonly type: "paragraph";
19
- readonly children: readonly Paragraph[];
20
- } | {
21
- readonly type: "table";
22
- readonly table: Table;
23
- } | {
24
- readonly type: "image";
25
- readonly image: ImageDef;
26
- readonly width: number;
27
- readonly height: number;
28
- };
29
- /** A single patch operation mapping a placeholder to replacement content. */
30
- export interface PatchOperation {
31
- /** Placeholder string to find (e.g. "{{name}}"). */
32
- readonly placeholder: string;
33
- /** Content to replace the placeholder with. */
34
- readonly content: PatchContent;
35
- }
36
15
  /** Options for patchDocument. */
37
16
  export interface PatchOptions {
38
17
  /** Compression level (0-9). Default: 6. */
39
18
  readonly compressionLevel?: number;
40
19
  }
20
+ /** A compiled template that can be reused for multiple patch operations. */
21
+ export interface CompiledTemplate {
22
+ /** The parsed document model (internal use only). */
23
+ readonly _doc: DocxDocument;
24
+ }
25
+ /**
26
+ * Compile a DOCX template for reuse with multiple data sets.
27
+ *
28
+ * Parsing the ZIP and XML is expensive. If you need to patch the same template
29
+ * multiple times with different data, compile it once and reuse.
30
+ *
31
+ * @param buffer - The source DOCX template file as a Uint8Array.
32
+ * @returns A compiled template handle.
33
+ */
34
+ export declare function compileTemplate(buffer: Uint8Array): Promise<CompiledTemplate>;
35
+ /**
36
+ * Apply patches to a pre-compiled template.
37
+ *
38
+ * Much faster than `patchDocument` when applying to the same template repeatedly,
39
+ * since ZIP/XML parsing is skipped.
40
+ *
41
+ * @param template - A compiled template from `compileTemplate`.
42
+ * @param patches - Array of patch operations to apply.
43
+ * @param options - Optional compression settings.
44
+ * @returns New DOCX file as a Uint8Array.
45
+ */
46
+ export declare function patchTemplate(template: CompiledTemplate, patches: readonly PatchOperation[], options?: PatchOptions): Promise<Uint8Array>;
41
47
  /**
42
48
  * Read an existing DOCX file, replace placeholders with content, and produce a new DOCX.
43
49
  *
@@ -56,3 +62,29 @@ export interface PatchOptions {
56
62
  * @returns New DOCX file as a Uint8Array.
57
63
  */
58
64
  export declare function patchDocument(buffer: Uint8Array, patches: readonly PatchOperation[], options?: PatchOptions): Promise<Uint8Array>;
65
+ /**
66
+ * Read a DOCX buffer, fill template placeholders with data, and produce a new DOCX.
67
+ *
68
+ * This is a convenience wrapper combining readDocx + fillTemplate + packageDocx.
69
+ *
70
+ * @param buffer - The source DOCX template file as a Uint8Array.
71
+ * @param data - Data object to fill into the template placeholders.
72
+ * @param options - Template and compression options.
73
+ * @returns New DOCX file as a Uint8Array.
74
+ */
75
+ export declare function fillTemplateFromBuffer(buffer: Uint8Array, data: Record<string, unknown>, options?: TemplateOptions & {
76
+ readonly compressionLevel?: number;
77
+ }): Promise<Uint8Array>;
78
+ /**
79
+ * Package a DocxDocument model into Flat OPC XML format.
80
+ *
81
+ * This packages the document to a ZIP, then re-reads the entries to wrap
82
+ * them as Flat OPC XML. While this involves a ZIP round-trip, it ensures
83
+ * the Flat OPC output is byte-identical to what `packageDocx` would produce
84
+ * (same XML serialization, same relationships, same content types).
85
+ *
86
+ * @param doc - The document model.
87
+ * @param compressionLevel - Optional compression level (0 = no compression, faster for Flat OPC).
88
+ * @returns The Flat OPC XML string.
89
+ */
90
+ export declare function toFlatOpcFromDoc(doc: DocxDocument, compressionLevel?: number): Promise<string>;
@@ -4,7 +4,6 @@
4
4
  * All DOCX-related errors extend DocxError.
5
5
  */
6
6
  import { BaseError, type BaseErrorOptions } from "../../utils/errors.js";
7
- export { AbortError, createAbortError, isAbortError, throwIfAborted, createLinkedAbortController, toError, suppressUnhandledRejection, errorToJSON, getErrorChain, getRootCause, type BaseErrorOptions } from "../../utils/errors.js";
8
7
  /**
9
8
  * Base class for all DOCX-related errors.
10
9
  */
@@ -47,3 +46,47 @@ export declare class DocxUnsupportedFeatureError extends DocxError {
47
46
  name: string;
48
47
  constructor(feature: string);
49
48
  }
49
+ /**
50
+ * Error thrown when a DOCX file is encrypted (CFB format) and no password
51
+ * was provided. Pass `{ password }` in the second argument of `readDocx()`
52
+ * to decrypt automatically, or call `decryptDocx()` from "excelts/word/crypto"
53
+ * directly if you need lower-level access to the decrypted ZIP bytes.
54
+ */
55
+ export declare class DocxEncryptedError extends DocxError {
56
+ name: string;
57
+ constructor();
58
+ }
59
+ /**
60
+ * Error thrown when an encrypted DOCX cannot be decrypted with the provided
61
+ * password (wrong password) or when the encryption metadata is malformed.
62
+ */
63
+ export declare class DocxDecryptionError extends DocxError {
64
+ name: string;
65
+ }
66
+ /**
67
+ * Error thrown when an input package exceeds a declared resource limit (e.g.
68
+ * total package size, single part size, number of parts). Used to defend
69
+ * against ZIP bombs and runaway memory usage.
70
+ */
71
+ export declare class DocxLimitExceededError extends DocxParseError {
72
+ name: string;
73
+ /** Limit category that was exceeded. */
74
+ readonly limit: "packageSize" | "partSize" | "partCount";
75
+ /** Configured maximum. */
76
+ readonly maximum: number;
77
+ /** Actual measured value (or the value that would have been reached). */
78
+ readonly actual: number;
79
+ constructor(limit: "packageSize" | "partSize" | "partCount", maximum: number, actual: number, detail?: string);
80
+ }
81
+ /**
82
+ * Error thrown when the active `WordSecurityPolicy.rawXmlPolicy` is `"reject"`
83
+ * and the writer encounters opaque/preserved rawXml that would otherwise have
84
+ * been emitted verbatim. Callers can either drop the offending model field
85
+ * before serialisation or relax the policy to `"strip"` / `"preserve"`.
86
+ */
87
+ export declare class DocxRawXmlPolicyError extends DocxWriteError {
88
+ name: string;
89
+ /** Short label identifying the offending writer site. */
90
+ readonly site: string;
91
+ constructor(site: string);
92
+ }
@@ -0,0 +1,14 @@
1
+ /**
2
+ * DOCX Module - Excel Bridge (Subpath Entry)
3
+ *
4
+ * Re-exports the Excel bridge API at `excelts/word/excel`. This file is
5
+ * referenced by `package.json#exports["./word/excel"]`; it forwards to the
6
+ * implementation under `./bridge/excel-bridge`.
7
+ *
8
+ * @example
9
+ * ```ts
10
+ * import { excelToDocx } from "excelts/word/excel";
11
+ * ```
12
+ */
13
+ export { excelToDocx, extractTablesToExcel, renderWordChartSvg, buildWordChartExXml, wordChartToChartModel, generateChartEmbeddedXlsx } from "./bridge/excel-bridge.js";
14
+ export type { ExcelToDocxOptions, WordChartExOptions } from "./bridge/excel-bridge.js";
@@ -0,0 +1,112 @@
1
+ /**
2
+ * DOCX Module - Embedded Font Writer
3
+ *
4
+ * Provides the ability to embed font files into DOCX documents.
5
+ * Supports TTF, OTF, and WOFF fonts with optional ODTTF obfuscation
6
+ * as required by the OOXML specification for embedded fonts.
7
+ *
8
+ * ECMA-376 Part 1, §17.8.3 describes how fonts are embedded:
9
+ * - Fonts are stored in word/fonts/ directory
10
+ * - Each embedded font has a relationship in fontTable.xml
11
+ * - Obfuscation uses a GUID-based XOR scheme (ODTTF format)
12
+ *
13
+ * Supports font subsetting to reduce file size by only including
14
+ * glyphs that are actually used in the document.
15
+ */
16
+ import type { DocxDocument, FontDef, EmbeddedFont } from "../types.js";
17
+ /** Font embedding style (which variants to embed). */
18
+ export type FontEmbedStyle = "regular" | "bold" | "italic" | "boldItalic";
19
+ /** Options for embedding a font. */
20
+ export interface EmbedFontOptions {
21
+ /** Font family name as it will appear in the document. */
22
+ readonly name: string;
23
+ /** The raw font file data (TTF/OTF/WOFF). */
24
+ readonly data: Uint8Array;
25
+ /** Which style variant this is. Default: "regular". */
26
+ readonly style?: FontEmbedStyle;
27
+ /** Whether to apply ODTTF obfuscation. Default: true. */
28
+ readonly obfuscate?: boolean;
29
+ /** Font family classification. */
30
+ readonly family?: "roman" | "swiss" | "modern" | "script" | "decorative" | "auto";
31
+ /** Font pitch. */
32
+ readonly pitch?: "default" | "fixed" | "variable";
33
+ /** Panose-1 classification (10-byte hex string). */
34
+ readonly panose1?: string;
35
+ /** Character set (0 = ANSI). */
36
+ readonly charset?: number;
37
+ /**
38
+ * Characters used in the document for subsetting.
39
+ * When provided, the embedded font will only contain glyphs for these characters,
40
+ * significantly reducing file size. Pass all unique characters from the document
41
+ * that use this font.
42
+ */
43
+ readonly usedCharacters?: string;
44
+ }
45
+ /** Result of embedding a font. */
46
+ export interface EmbedFontResult {
47
+ /** The font definition to add to `doc.fonts`. */
48
+ readonly fontDef: FontDef;
49
+ /** The embedded font entry to add to `doc.embeddedFonts`. */
50
+ readonly embeddedFont: EmbeddedFont;
51
+ }
52
+ /**
53
+ * Subset a TrueType/OpenType font to include only the specified characters.
54
+ *
55
+ * This performs a minimal subset by:
56
+ * 1. Parsing the cmap table to find glyph IDs for requested characters
57
+ * 2. Building a new glyf/loca table with only needed glyphs (+ composite dependencies)
58
+ * 3. Rebuilding the font with minimal tables
59
+ *
60
+ * For CFF (PostScript-outline) fonts, subsetting is more complex and we fall back
61
+ * to embedding the full font.
62
+ *
63
+ * @param fontData - Raw TTF/OTF font bytes
64
+ * @param characters - String of characters to keep
65
+ * @returns Subsetted font bytes, or original if subsetting fails/not applicable
66
+ */
67
+ export declare function subsetFont(fontData: Uint8Array, characters: string): Uint8Array;
68
+ /**
69
+ * Prepare a font for embedding into a DOCX document.
70
+ *
71
+ * Returns both the FontDef (for the font table) and the EmbeddedFont
72
+ * (for the embedded binary). The caller should add these to the document model.
73
+ *
74
+ * @param options - Font embedding options.
75
+ * @returns The font definition and embedded font data.
76
+ *
77
+ * @example
78
+ * ```ts
79
+ * const result = embedFont({
80
+ * name: "CustomFont",
81
+ * data: fontFileBytes,
82
+ * style: "regular",
83
+ * obfuscate: true
84
+ * });
85
+ *
86
+ * // Add to document
87
+ * const doc = {
88
+ * ...existingDoc,
89
+ * fonts: [...(existingDoc.fonts ?? []), result.fontDef],
90
+ * embeddedFonts: [...(existingDoc.embeddedFonts ?? []), result.embeddedFont]
91
+ * };
92
+ * ```
93
+ */
94
+ export declare function embedFont(options: EmbedFontOptions): EmbedFontResult;
95
+ /**
96
+ * Embed multiple font variants (regular, bold, italic, boldItalic) for a font family.
97
+ *
98
+ * @param name - Font family name.
99
+ * @param variants - Map of style to font data.
100
+ * @param options - Shared options for all variants.
101
+ * @returns Array of embed results.
102
+ */
103
+ export declare function embedFontFamily(name: string, variants: Partial<Record<FontEmbedStyle, Uint8Array>>, options?: Omit<EmbedFontOptions, "name" | "data" | "style">): EmbedFontResult[];
104
+ /**
105
+ * Add embedded fonts to an existing document model.
106
+ * Merges new fonts with existing font definitions.
107
+ *
108
+ * @param doc - The existing document.
109
+ * @param results - Embed results from `embedFont` or `embedFontFamily`.
110
+ * @returns A new document with embedded fonts added.
111
+ */
112
+ export declare function addEmbeddedFonts(doc: DocxDocument, results: readonly EmbedFontResult[]): DocxDocument;
@@ -0,0 +1,65 @@
1
+ /**
2
+ * Hyphenation Engine
3
+ *
4
+ * Implements Liang's hyphenation algorithm (as used in TeX) for automatic
5
+ * word hyphenation without external dependencies.
6
+ *
7
+ * Features:
8
+ * - Pattern-based hyphenation (Liang algorithm)
9
+ * - Built-in patterns for English (US)
10
+ * - Pluggable pattern sets for other languages
11
+ * - Min-prefix / min-suffix constraints
12
+ * - Exception dictionary support
13
+ *
14
+ * @stability experimental
15
+ */
16
+ /** Hyphenation options. */
17
+ export interface HyphenationOptions {
18
+ /** Minimum characters before the first hyphenation point. Default: 2. */
19
+ readonly minLeft?: number;
20
+ /** Minimum characters after the last hyphenation point. Default: 2. */
21
+ readonly minRight?: number;
22
+ /** Custom hyphen character. Default: "\u00AD" (soft hyphen). */
23
+ readonly hyphenChar?: string;
24
+ }
25
+ /** Hyphenation pattern set for a language. */
26
+ export interface HyphenationPatterns {
27
+ /** Language identifier (e.g., "en-us"). */
28
+ readonly language: string;
29
+ /** Patterns in Liang format (e.g., ".ach4" means level 4 between 'c' and 'h' at word start). */
30
+ readonly patterns: readonly string[];
31
+ /** Exception words with explicit hyphenation (e.g., "as-so-ciate"). */
32
+ readonly exceptions?: readonly string[];
33
+ }
34
+ /**
35
+ * Create a hyphenator function for a given language/pattern set.
36
+ *
37
+ * @param patterns - The hyphenation patterns to use.
38
+ * @param options - Hyphenation constraints.
39
+ * @returns A function that takes a word and returns an array of hyphenation points (indices).
40
+ */
41
+ export declare function createHyphenator(patterns: HyphenationPatterns, options?: HyphenationOptions): (word: string) => number[];
42
+ /**
43
+ * Hyphenate a word by inserting soft hyphens at valid break points.
44
+ *
45
+ * @param word - The word to hyphenate.
46
+ * @param hyphenator - A hyphenator function (from createHyphenator).
47
+ * @param hyphenChar - The hyphen character to insert. Default: "\u00AD".
48
+ * @returns The word with soft hyphens inserted.
49
+ */
50
+ export declare function hyphenateWord(word: string, hyphenator: (w: string) => number[], hyphenChar?: string): string;
51
+ /**
52
+ * Hyphenate all words in a text string.
53
+ *
54
+ * @param text - The text to hyphenate.
55
+ * @param hyphenator - A hyphenator function.
56
+ * @param hyphenChar - The hyphen character to insert.
57
+ * @returns The text with soft hyphens inserted.
58
+ */
59
+ export declare function hyphenateText(text: string, hyphenator: (w: string) => number[], hyphenChar?: string): string;
60
+ /**
61
+ * English (US) hyphenation patterns — comprehensive TeX US English patterns.
62
+ * Based on Liang's dissertation patterns (hyph-en-us) providing full coverage
63
+ * for standard English word hyphenation.
64
+ */
65
+ export declare const ENGLISH_US_PATTERNS: HyphenationPatterns;
@@ -0,0 +1,58 @@
1
+ /**
2
+ * OpenType Text Shaping Engine
3
+ *
4
+ * Provides basic text shaping for complex scripts without external dependencies.
5
+ * Covers Arabic joining, BiDi reordering, and basic Indic/Thai features.
6
+ *
7
+ * This is not a full HarfBuzz replacement — it handles the most common shaping
8
+ * requirements for document layout and rendering:
9
+ * - Arabic contextual joining (Initial/Medial/Final/Isolated forms)
10
+ * - Unicode Bidirectional Algorithm (UAX #9) simplified implementation
11
+ * - Basic Indic vowel reordering (Devanagari, Bengali, Tamil, etc.)
12
+ * - Thai/Lao mark positioning hints
13
+ *
14
+ * @stability experimental
15
+ */
16
+ /** Script classification for a text run. */
17
+ export type ScriptType = "latin" | "arabic" | "hebrew" | "devanagari" | "bengali" | "tamil" | "thai" | "lao" | "cjk" | "hangul" | "other";
18
+ /** BiDi direction for a text segment. */
19
+ export type BiDiDirection = "ltr" | "rtl";
20
+ /** A shaped glyph cluster — the output of shaping. */
21
+ export interface ShapedCluster {
22
+ /** The original characters in this cluster. */
23
+ readonly chars: string;
24
+ /** The visual form (after joining/reordering). */
25
+ readonly visual: string;
26
+ /** Advance width multiplier (1.0 = normal, 0 = zero-width). */
27
+ readonly advanceMultiplier: number;
28
+ /** Script classification. */
29
+ readonly script: ScriptType;
30
+ /** BiDi direction. */
31
+ readonly direction: BiDiDirection;
32
+ }
33
+ /** Shaping options. */
34
+ export interface ShapingOptions {
35
+ /** Base paragraph direction. Default: "ltr". */
36
+ readonly direction?: BiDiDirection;
37
+ /** Enable Arabic joining. Default: true. */
38
+ readonly arabicJoining?: boolean;
39
+ /** Enable BiDi reordering. Default: true. */
40
+ readonly bidiReorder?: boolean;
41
+ }
42
+ /**
43
+ * Shape a text string for complex script rendering.
44
+ * Returns an array of shaped clusters in visual order.
45
+ *
46
+ * @param text - The input text in logical order.
47
+ * @param options - Shaping options.
48
+ * @returns Array of shaped clusters.
49
+ */
50
+ export declare function shapeText(text: string, options?: ShapingOptions): ShapedCluster[];
51
+ /**
52
+ * Detect the dominant script of a text string.
53
+ */
54
+ export declare function detectScript(text: string): ScriptType;
55
+ /**
56
+ * Determine the BiDi direction of a text based on its first strong character.
57
+ */
58
+ export declare function detectDirection(text: string): BiDiDirection;
@@ -1,13 +1,14 @@
1
1
  /**
2
- * DOCX Module - HTML Renderer (Subpath Export)
2
+ * DOCX Module - HTML Converters (Subpath Entry)
3
3
  *
4
- * Import separately to avoid pulling html-renderer into the bundle
5
- * when only core document building is needed.
4
+ * Re-exports the HTML converter API at `excelts/word/html`. This file is
5
+ * referenced by `package.json#exports["./word/html"]`; it forwards to the
6
+ * implementation under `./convert/html`.
6
7
  *
7
8
  * @example
8
9
  * ```ts
9
- * import { renderToHtml } from "excelts/word/html";
10
+ * import { renderToHtml, htmlToDocxBody } from "excelts/word/html";
10
11
  * ```
11
12
  */
12
- export { renderToHtml } from "./html-renderer.js";
13
- export type { HtmlRenderOptions, HtmlRenderResult } from "./html-renderer.js";
13
+ export { renderToHtml, htmlToDocxBody } from "./convert/html/html.js";
14
+ export type { HtmlRenderOptions, HtmlRenderResult, HtmlImportOptions } from "./convert/html/html.js";