@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
@@ -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>;
@@ -1,13 +1,14 @@
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 { packageDocx } from "./docx-packager.js";
9
- import { readDocx } from "./docx-reader.js";
10
- import { bytesToBase64 } from "./internal-utils.js";
7
+ import { bytesToBase64 } from "./core/internal-utils.js";
8
+ import { applyPatchesToDocument } from "./patcher.js";
9
+ import { readDocx } from "./reader/docx-reader.js";
10
+ import { fillTemplate } from "./template/template-engine.js";
11
+ import { packageDocx } from "./writer/docx-packager.js";
11
12
  // =============================================================================
12
13
  // Document IO (toBuffer / toBase64)
13
14
  // =============================================================================
@@ -20,6 +21,36 @@ export async function toBase64(doc, compressionLevel) {
20
21
  const bytes = await toBuffer(doc, compressionLevel);
21
22
  return bytesToBase64(bytes);
22
23
  }
24
+ /**
25
+ * Compile a DOCX template for reuse with multiple data sets.
26
+ *
27
+ * Parsing the ZIP and XML is expensive. If you need to patch the same template
28
+ * multiple times with different data, compile it once and reuse.
29
+ *
30
+ * @param buffer - The source DOCX template file as a Uint8Array.
31
+ * @returns A compiled template handle.
32
+ */
33
+ export async function compileTemplate(buffer) {
34
+ const doc = await readDocx(buffer);
35
+ return { _doc: doc };
36
+ }
37
+ /**
38
+ * Apply patches to a pre-compiled template.
39
+ *
40
+ * Much faster than `patchDocument` when applying to the same template repeatedly,
41
+ * since ZIP/XML parsing is skipped.
42
+ *
43
+ * @param template - A compiled template from `compileTemplate`.
44
+ * @param patches - Array of patch operations to apply.
45
+ * @param options - Optional compression settings.
46
+ * @returns New DOCX file as a Uint8Array.
47
+ */
48
+ export async function patchTemplate(template, patches, options) {
49
+ // Deep clone the document to avoid mutating the cached template
50
+ const doc = structuredClone(template._doc);
51
+ const patched = applyPatchesToDocument(doc, patches);
52
+ return packageDocx(patched, options?.compressionLevel);
53
+ }
23
54
  /**
24
55
  * Read an existing DOCX file, replace placeholders with content, and produce a new DOCX.
25
56
  *
@@ -39,201 +70,53 @@ export async function toBase64(doc, compressionLevel) {
39
70
  */
40
71
  export async function patchDocument(buffer, patches, options) {
41
72
  const doc = await readDocx(buffer);
42
- // Build lookup map for quick placeholder matching
43
- const patchMap = new Map();
44
- for (const patch of patches) {
45
- patchMap.set(patch.placeholder, patch);
46
- }
47
- // Process body content
48
- const newBody = [];
49
- for (const block of doc.body) {
50
- if (block.type === "paragraph") {
51
- const result = patchParagraph(block, patchMap);
52
- if (result) {
53
- if (Array.isArray(result)) {
54
- newBody.push(...result);
55
- }
56
- else {
57
- newBody.push(result);
58
- }
59
- }
60
- }
61
- else if (block.type === "table") {
62
- patchTable(block, patchMap);
63
- newBody.push(block);
64
- }
65
- else {
66
- newBody.push(block);
67
- }
68
- }
69
- // Patch headers
70
- if (doc.headers) {
71
- for (const [, headerDef] of doc.headers) {
72
- patchHeaderFooterContent(headerDef.content, patchMap);
73
- }
74
- }
75
- // Patch footers
76
- if (doc.footers) {
77
- for (const [, footerDef] of doc.footers) {
78
- patchHeaderFooterContent(footerDef.content, patchMap);
79
- }
80
- }
81
- // Add any new images from patches
82
- const images = doc.images ? [...doc.images] : [];
83
- for (const patch of patches) {
84
- if (patch.content.type === "image") {
85
- const imgContent = patch.content;
86
- const existing = images.find(i => i.fileName === imgContent.image.fileName);
87
- if (!existing) {
88
- images.push(imgContent.image);
89
- }
90
- }
91
- }
92
- const patched = {
93
- ...doc,
94
- body: newBody,
95
- images: images.length > 0 ? images : undefined
96
- };
73
+ const patched = applyPatchesToDocument(doc, patches);
97
74
  return packageDocx(patched, options?.compressionLevel);
98
75
  }
99
76
  // =============================================================================
100
- // Internal helpers
77
+ // Template Engine - Convenience IO
101
78
  // =============================================================================
102
- /** Extract concatenated plain text from a paragraph's runs. */
103
- function paragraphText(para) {
104
- let t = "";
105
- for (const child of para.children) {
106
- if ("content" in child && Array.isArray(child.content)) {
107
- for (const c of child.content) {
108
- if ("type" in c && c.type === "text" && "text" in c) {
109
- t += c.text;
110
- }
111
- }
112
- }
113
- }
114
- return t;
115
- }
116
- /** Replace text within a single paragraph. */
117
- function replaceInParagraph(para, search, replacement) {
118
- for (const child of para.children) {
119
- if (!("content" in child) || !Array.isArray(child.content)) {
120
- continue;
121
- }
122
- for (const c of child.content) {
123
- if (!("type" in c) || c.type !== "text" || !("text" in c)) {
124
- continue;
125
- }
126
- const before = c.text;
127
- if (before.includes(search)) {
128
- c.text = before.replaceAll(search, replacement);
129
- }
130
- }
131
- }
132
- // Cross-run replacement fallback
133
- const fullText = paragraphText(para);
134
- if (fullText.includes(search)) {
135
- const newText = fullText.replaceAll(search, replacement);
136
- let placed = false;
137
- for (const child of para.children) {
138
- if (!("content" in child) || !Array.isArray(child.content)) {
139
- continue;
140
- }
141
- for (const c of child.content) {
142
- if (!("type" in c) || c.type !== "text" || !("text" in c)) {
143
- continue;
144
- }
145
- if (!placed) {
146
- c.text = newText;
147
- placed = true;
148
- }
149
- else {
150
- c.text = "";
151
- }
152
- }
153
- }
154
- }
155
- }
156
- /** Patch a paragraph — returns replacement content or null to remove. */
157
- function patchParagraph(para, patchMap) {
158
- const text = paragraphText(para);
159
- for (const [placeholder, patch] of patchMap) {
160
- if (!text.includes(placeholder)) {
161
- continue;
162
- }
163
- switch (patch.content.type) {
164
- case "text": {
165
- replaceInParagraph(para, placeholder, patch.content.text);
166
- return para;
167
- }
168
- case "paragraph": {
169
- return patch.content.children;
170
- }
171
- case "table": {
172
- return patch.content.table;
173
- }
174
- case "image": {
175
- const img = patch.content.image;
176
- const rId = img.rId ?? `rId_img_${img.fileName}`;
177
- const imgContent = {
178
- type: "image",
179
- rId,
180
- width: patch.content.width,
181
- height: patch.content.height,
182
- altText: img.fileName,
183
- name: img.fileName
184
- };
185
- const newPara = {
186
- type: "paragraph",
187
- properties: para.properties,
188
- children: [{ content: [imgContent] }]
189
- };
190
- return newPara;
191
- }
192
- }
193
- }
194
- return para;
195
- }
196
- /** Patch text inside table cells recursively. */
197
- function patchTable(table, patchMap) {
198
- for (const row of table.rows) {
199
- for (const cell of row.cells) {
200
- const newContent = [];
201
- for (const block of cell.content) {
202
- if (block.type === "paragraph") {
203
- const result = patchParagraph(block, patchMap);
204
- if (result) {
205
- if (Array.isArray(result)) {
206
- newContent.push(...result);
207
- }
208
- else {
209
- newContent.push(result);
210
- }
211
- }
212
- }
213
- else if (block.type === "table") {
214
- patchTable(block, patchMap);
215
- newContent.push(block);
216
- }
217
- else {
218
- newContent.push(block);
219
- }
220
- }
221
- cell.content = newContent;
222
- }
223
- }
79
+ /**
80
+ * Read a DOCX buffer, fill template placeholders with data, and produce a new DOCX.
81
+ *
82
+ * This is a convenience wrapper combining readDocx + fillTemplate + packageDocx.
83
+ *
84
+ * @param buffer - The source DOCX template file as a Uint8Array.
85
+ * @param data - Data object to fill into the template placeholders.
86
+ * @param options - Template and compression options.
87
+ * @returns New DOCX file as a Uint8Array.
88
+ */
89
+ export async function fillTemplateFromBuffer(buffer, data, options) {
90
+ const doc = await readDocx(buffer);
91
+ const filled = fillTemplate(doc, data, options);
92
+ return packageDocx(filled, options?.compressionLevel);
224
93
  }
225
- /** Patch text in header/footer content. */
226
- function patchHeaderFooterContent(content, patchMap) {
227
- for (const child of content.children) {
228
- if (child.type === "paragraph") {
229
- for (const [placeholder, patch] of patchMap) {
230
- if (patch.content.type === "text") {
231
- const text = paragraphText(child);
232
- if (text.includes(placeholder)) {
233
- replaceInParagraph(child, placeholder, patch.content.text);
234
- }
235
- }
236
- }
237
- }
94
+ // =============================================================================
95
+ // Flat OPC Convenience
96
+ // =============================================================================
97
+ /**
98
+ * Package a DocxDocument model into Flat OPC XML format.
99
+ *
100
+ * This packages the document to a ZIP, then re-reads the entries to wrap
101
+ * them as Flat OPC XML. While this involves a ZIP round-trip, it ensures
102
+ * the Flat OPC output is byte-identical to what `packageDocx` would produce
103
+ * (same XML serialization, same relationships, same content types).
104
+ *
105
+ * @param doc - The document model.
106
+ * @param compressionLevel - Optional compression level (0 = no compression, faster for Flat OPC).
107
+ * @returns The Flat OPC XML string.
108
+ */
109
+ export async function toFlatOpcFromDoc(doc, compressionLevel) {
110
+ // Use level 0 (store-only) since we're immediately decompressing
111
+ const zipBytes = await packageDocx(doc, compressionLevel ?? 0);
112
+ const { unzip } = await import("../archive/read-archive.js");
113
+ const reader = unzip(zipBytes);
114
+ const entries = new Map();
115
+ for await (const entry of reader.entries()) {
116
+ const data = await entry.bytes();
117
+ const path = entry.path.replace(/^\//, "").replace(/\\/g, "/");
118
+ entries.set(path, data);
238
119
  }
120
+ const { toFlatOpc } = await import("./convert/flat-opc.js");
121
+ return toFlatOpc(entries);
239
122
  }
@@ -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
+ }
@@ -4,8 +4,6 @@
4
4
  * All DOCX-related errors extend DocxError.
5
5
  */
6
6
  import { BaseError } from "../../utils/errors.js";
7
- // Re-export common utilities from base
8
- export { AbortError, createAbortError, isAbortError, throwIfAborted, createLinkedAbortController, toError, suppressUnhandledRejection, errorToJSON, getErrorChain, getRootCause } from "../../utils/errors.js";
9
7
  /**
10
8
  * Base class for all DOCX-related errors.
11
9
  */
@@ -66,3 +64,57 @@ export class DocxUnsupportedFeatureError extends DocxError {
66
64
  this.name = "DocxUnsupportedFeatureError";
67
65
  }
68
66
  }
67
+ /**
68
+ * Error thrown when a DOCX file is encrypted (CFB format) and no password
69
+ * was provided. Pass `{ password }` in the second argument of `readDocx()`
70
+ * to decrypt automatically, or call `decryptDocx()` from "excelts/word/crypto"
71
+ * directly if you need lower-level access to the decrypted ZIP bytes.
72
+ */
73
+ export class DocxEncryptedError extends DocxError {
74
+ constructor() {
75
+ super("The document is encrypted (password-protected). " +
76
+ 'Pass { password } to readDocx(), or use decryptDocx() from "excelts/word/crypto" ' +
77
+ "for lower-level decryption.");
78
+ this.name = "DocxEncryptedError";
79
+ }
80
+ }
81
+ /**
82
+ * Error thrown when an encrypted DOCX cannot be decrypted with the provided
83
+ * password (wrong password) or when the encryption metadata is malformed.
84
+ */
85
+ export class DocxDecryptionError extends DocxError {
86
+ constructor() {
87
+ super(...arguments);
88
+ this.name = "DocxDecryptionError";
89
+ }
90
+ }
91
+ /**
92
+ * Error thrown when an input package exceeds a declared resource limit (e.g.
93
+ * total package size, single part size, number of parts). Used to defend
94
+ * against ZIP bombs and runaway memory usage.
95
+ */
96
+ export class DocxLimitExceededError extends DocxParseError {
97
+ constructor(limit, maximum, actual, detail) {
98
+ super(`DOCX ${limit} limit exceeded: actual ${actual} > maximum ${maximum}` +
99
+ (detail ? ` (${detail})` : ""));
100
+ this.name = "DocxLimitExceededError";
101
+ this.limit = limit;
102
+ this.maximum = maximum;
103
+ this.actual = actual;
104
+ }
105
+ }
106
+ /**
107
+ * Error thrown when the active `WordSecurityPolicy.rawXmlPolicy` is `"reject"`
108
+ * and the writer encounters opaque/preserved rawXml that would otherwise have
109
+ * been emitted verbatim. Callers can either drop the offending model field
110
+ * before serialisation or relax the policy to `"strip"` / `"preserve"`.
111
+ */
112
+ export class DocxRawXmlPolicyError extends DocxWriteError {
113
+ constructor(site) {
114
+ super(`Raw XML rejected by security policy at "${site}". ` +
115
+ "Either remove the rawXml/opaque field from the model or set " +
116
+ "WordSecurityPolicy.rawXmlPolicy to 'preserve' or 'strip'.");
117
+ this.name = "DocxRawXmlPolicyError";
118
+ this.site = site;
119
+ }
120
+ }
@@ -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,13 @@
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";
@@ -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;