@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
@@ -234,15 +234,18 @@ export declare class ArchiveFile<F extends ArchiveFormat = "zip"> {
234
234
  * archive.addFile("large-file.bin");
235
235
  * archive.addDirectory("./data");
236
236
  *
237
- * // Stream to a file
237
+ * // Recommended: pipeTo() handles backpressure end-to-end.
238
+ * await archive.pipeTo(createWriteStream("output.zip"));
239
+ *
240
+ * // Or stream manually — REMEMBER to honor backpressure on the sink:
241
+ * import { once } from "node:events";
238
242
  * const writeStream = createWriteStream("output.zip");
239
243
  * for await (const chunk of archive.stream()) {
240
- * writeStream.write(chunk);
244
+ * if (!writeStream.write(chunk)) {
245
+ * await once(writeStream, "drain");
246
+ * }
241
247
  * }
242
248
  * writeStream.end();
243
- *
244
- * // Or use pipeTo() for simpler file output
245
- * await archive.pipeTo(createWriteStream("output.zip"));
246
249
  * ```
247
250
  */
248
251
  stream(options?: ArchiveStreamOptions): AsyncIterable<Uint8Array>;
@@ -89,18 +89,6 @@ export interface ChartExSpace {
89
89
  extLst?: string;
90
90
  }
91
91
  export interface ChartExData {
92
- /**
93
- * @deprecated Moved to {@link ChartExSpace.externalData} to match
94
- * the Chart2014 schema (`cx:externalData` is a child of
95
- * `cx:chartSpace`, not `cx:chartData`). The parser migrates legacy
96
- * on-disk placements into `ChartExSpace.externalData`; this field
97
- * remains on the type only to avoid breaking callers that read it
98
- * directly. Write-side code no longer consults this slot.
99
- */
100
- externalData?: Array<{
101
- id: string;
102
- autoUpdate?: boolean;
103
- }>;
104
92
  /** Chart data (numeric/string arrays referenced by series) */
105
93
  data: ChartExDataEntry[];
106
94
  }
@@ -129,7 +129,7 @@ interface ChartAnchorRange {
129
129
  * `toPNG`, `unknownElements`) work uniformly. ChartTypeGroup-level
130
130
  * APIs (`chartTypes`, `axes`, `plotArea`, `getAxis`, `categoryAxis`,
131
131
  * `valueAxis`, `addSeries`, `removeSeries`, `getSeries`,
132
- * `updateSeries`, `addSeriesFromOptions`, `seriesCount`, `mutate`,
132
+ * `updateSeries`, `addSeriesFromOptions`, `getSeriesCount`, `mutate`,
133
133
  * `setStyle`) are classic-only — ChartEx has its own topology that
134
134
  * doesn't map cleanly onto the classic group/series abstraction;
135
135
  * use {@link Chart.mutateChartEx} for ChartEx mutations.
@@ -393,10 +393,6 @@ declare class Chart {
393
393
  * @param groupIndex - 0-based index of the chart type group (defaults to 0).
394
394
  */
395
395
  getSeriesCount(groupIndex?: number): number;
396
- /**
397
- * @deprecated Use `getSeriesCount()` instead. Returns the count of series in the first chart type group.
398
- */
399
- get seriesCount(): number;
400
396
  /**
401
397
  * Create a deep copy of this chart and add it to a target worksheet.
402
398
  * The new chart receives a fresh chartNumber; the original is untouched.
@@ -1501,12 +1501,6 @@ export interface PivotFormat {
1501
1501
  * label styling without dropping into raw XML.
1502
1502
  */
1503
1503
  dLbl?: DataLabelEntry;
1504
- /**
1505
- * @deprecated Use {@link dLbl} for structured access. Retained so
1506
- * files parsed before the structured slot landed continue to
1507
- * round-trip. Writers prefer `dLbl` when both are present.
1508
- */
1509
- rawDLbl?: string;
1510
1504
  /** Extension list (raw XML for round-trip). */
1511
1505
  extLst?: string;
1512
1506
  }
@@ -67,6 +67,7 @@ interface OutputStreamLike {
67
67
  end(): void;
68
68
  once(eventName: string | symbol, listener: (...args: any[]) => void): this;
69
69
  removeListener(eventName: string | symbol, listener: (...args: any[]) => void): this;
70
+ on?(eventName: string | symbol, listener: (...args: any[]) => void): this;
70
71
  }
71
72
  export interface WorksheetWriterLike {
72
73
  id: number;
@@ -130,11 +131,50 @@ export declare abstract class WorkbookWriterBase<TWorksheetWriter extends Worksh
130
131
  promise: Promise<void[] | void>;
131
132
  protected _trueStreaming: boolean;
132
133
  protected WorksheetWriterClass: WorksheetWriterConstructor<TWorksheetWriter>;
134
+ private _needsDrain;
135
+ private _drainResolvers;
136
+ private _drainListenerAttached;
137
+ private _sinkError;
133
138
  constructor(options: WorkbookWriterOptions, WorksheetWriterClass: WorksheetWriterConstructor<TWorksheetWriter>);
134
139
  /**
135
140
  * Create output stream - can be overridden by Node.js to support filename
136
141
  */
137
142
  protected _createOutputStream(options: WorkbookWriterOptions): OutputStreamLike;
143
+ /**
144
+ * Internal: record whether the sink accepted the last write. The
145
+ * `OutputStreamLike.write` type advertises `boolean | Promise<boolean>`
146
+ * for forward compatibility, but in practice every concrete sink we
147
+ * accept (Node `Writable`, browser `Writable` from `@stream`, internal
148
+ * `StreamBuf`, fs.WriteStream, etc) returns a sync `boolean`. We
149
+ * defensively handle the Promise shape but it's never exercised.
150
+ */
151
+ private _trackBackpressure;
152
+ private _ensureDrainListener;
153
+ /**
154
+ * Attach error/close listeners on the user sink so any parked backpressure
155
+ * waiters are released the moment the sink fails. Without this, a
156
+ * `commit()` parked on `_waitForUserSinkDrain()` would hang forever if
157
+ * the sink errored before emitting 'drain'. Idempotent and a no-op for
158
+ * sinks that don't expose `.on` (e.g. internal `StreamBuf`).
159
+ *
160
+ * Uses a non-consuming listener: if the user has their own 'error' handler
161
+ * it still fires (EventEmitter broadcasts to all listeners). The error is
162
+ * also captured into `_sinkError` so `_finalize()` can replay it — `_finalize`
163
+ * registers its own listener with `once()`, which would miss errors that
164
+ * arrived earlier in the commit pipeline.
165
+ */
166
+ private _lifecycleListenersAttached;
167
+ private _attachSinkLifecycleListeners;
168
+ private _wakeAllBackpressureWaiters;
169
+ /**
170
+ * Park here until any async writes have settled and the user sink has
171
+ * drained below its high-water mark. Resolves immediately when no
172
+ * backpressure is in flight.
173
+ *
174
+ * Called at async boundaries inside `commit()` so a slow sink throttles
175
+ * the producer instead of letting bytes accumulate unboundedly.
176
+ */
177
+ private _waitForUserSinkDrain;
138
178
  get definedNames(): DefinedNames;
139
179
  /**
140
180
  * The default font for the workbook (fontId=0 / "Normal" style).
@@ -1,29 +1,8 @@
1
1
  /**
2
- * StringBuf - Cross-Platform String Buffer
2
+ * Re-export of the shared {@link StringBuf} from `@utils/string-buf`.
3
3
  *
4
- * A way to keep string memory operations to a minimum while building XML strings.
5
- * Uses TextEncoder and Uint8Array for cross-platform compatibility (Node.js + Browser).
4
+ * Kept as a thin alias so existing imports (`@excel/utils/string-buf`)
5
+ * continue to work without churn.
6
6
  */
7
- interface StringBufOptions {
8
- size?: number;
9
- encoding?: string;
10
- }
11
- /**
12
- * StringBuf - efficient string builder using Uint8Array
13
- * Works identically in Node.js and Browser environments.
14
- */
15
- declare class StringBuf {
16
- private _buf;
17
- private _inPos;
18
- private _buffer;
19
- constructor(options?: StringBufOptions);
20
- get length(): number;
21
- get capacity(): number;
22
- get buffer(): Uint8Array;
23
- toBuffer(): Uint8Array;
24
- reset(position?: number): void;
25
- private _grow;
26
- addText(text: string): void;
27
- addStringBuf(inBuf: StringBuf): void;
28
- }
29
- export { StringBuf };
7
+ export { StringBuf } from "../../../utils/string-buf.js";
8
+ export type { StringBufOptions } from "../../../utils/string-buf.js";
@@ -200,9 +200,19 @@ interface ZipEntryLike {
200
200
  /**
201
201
  * XLSX class - handles Excel file operations
202
202
  * Works in both Node.js and Browser environments
203
+ *
204
+ * Generic over the concrete `Workbook` type so a Node subclass that extends
205
+ * `XLSX<NodeWorkbook>` automatically narrows `load()` / `read()` /
206
+ * `loadFromFiles()` / etc. to return the Node `Workbook` (which exposes
207
+ * `xlsx.readFile` / `xlsx.writeFile`). Without this, those methods are
208
+ * inherited unchanged and surface the browser `Workbook` type to Node
209
+ * consumers — see issue #160.
210
+ *
211
+ * The default type parameter keeps the public XLSX surface unchanged for
212
+ * external callers (`new XLSX(workbook)` is still typed as `XLSX<Workbook>`).
203
213
  */
204
- declare class XLSX {
205
- workbook: Workbook;
214
+ declare class XLSX<TWorkbook extends Workbook = Workbook> {
215
+ workbook: TWorkbook;
206
216
  static RelType: {
207
217
  OfficeDocument: string;
208
218
  Worksheet: string;
@@ -239,7 +249,7 @@ declare class XLSX {
239
249
  Timeline: string;
240
250
  TimelineCache: string;
241
251
  };
242
- constructor(workbook: Workbook);
252
+ constructor(workbook: TWorkbook);
243
253
  /**
244
254
  * Create a stream from binary data (for media/themes)
245
255
  */
@@ -285,11 +295,11 @@ declare class XLSX {
285
295
  /**
286
296
  * Read workbook from a stream
287
297
  */
288
- read(stream: IParseStream, options?: XlsxReadOptions): Promise<Workbook>;
298
+ read(stream: IParseStream, options?: XlsxReadOptions): Promise<TWorkbook>;
289
299
  /**
290
300
  * Write workbook to a stream
291
301
  */
292
- write(stream: IWritableStream, options?: XlsxWriteOptions): Promise<XLSX>;
302
+ write(stream: IWritableStream, options?: XlsxWriteOptions): Promise<this>;
293
303
  /**
294
304
  * Load a workbook from binary data.
295
305
  *
@@ -302,11 +312,11 @@ declare class XLSX {
302
312
  * raw binary cannot be round-tripped through a JS string and is rejected
303
313
  * to prevent silent corruption.
304
314
  */
305
- load(data: Uint8Array | ArrayBuffer | ArrayBufferView | string, options?: XlsxReadOptions): Promise<Workbook>;
315
+ load(data: Uint8Array | ArrayBuffer | ArrayBufferView | string, options?: XlsxReadOptions): Promise<TWorkbook>;
306
316
  /**
307
317
  * Internal: Load from Uint8Array buffer
308
318
  */
309
- protected loadBuffer(buffer: Uint8Array, options?: XlsxReadOptions): Promise<Workbook>;
319
+ protected loadBuffer(buffer: Uint8Array, options?: XlsxReadOptions): Promise<TWorkbook>;
310
320
  /**
311
321
  * Internal: Load workbook from an async stream of ZIP entries.
312
322
  *
@@ -328,7 +338,7 @@ declare class XLSX {
328
338
  * Returns true if handled, false if should be passed to _processDefaultEntry
329
339
  */
330
340
  protected _processKnownEntry(stream: IParseStream, model: any, entryName: string, options?: XlsxOptions): Promise<boolean>;
331
- protected loadFromZipEntries(entries: AsyncIterable<ZipEntryLike>, options?: XlsxOptions): Promise<any>;
341
+ protected loadFromZipEntries(entries: AsyncIterable<ZipEntryLike>, options?: XlsxOptions): Promise<TWorkbook>;
332
342
  /**
333
343
  * Write workbook to buffer
334
344
  */
@@ -470,7 +480,7 @@ declare class XLSX {
470
480
  _processChartRelsEntry(stream: IParseStream, model: any, chartNumber: number): Promise<void>;
471
481
  _processChartStyleEntry(stream: IParseStream, model: any, styleNumber: number): Promise<void>;
472
482
  _processChartColorsEntry(stream: IParseStream, model: any, colorsNumber: number): Promise<void>;
473
- loadFromFiles(zipData: Record<string, Uint8Array>, options?: XlsxReadOptions): Promise<Workbook>;
483
+ loadFromFiles(zipData: Record<string, Uint8Array>, options?: XlsxReadOptions): Promise<TWorkbook>;
474
484
  /**
475
485
  * Process default entries (drawings, comments, tables, etc.)
476
486
  * @param rawData Optional raw entry data for passthrough preservation (used by loadFromFiles)
@@ -6,18 +6,26 @@
6
6
  * - writeFile: Write to file path
7
7
  * - Constructor injects readFileAsync for filename-based media loading
8
8
  *
9
- * Inherited from XLSX:
9
+ * Inherited from XLSX (and narrowed to the Node `Workbook` type via the
10
+ * `XLSXBase<Workbook>` generic):
10
11
  * - read: Read from stream
11
12
  * - write: Write to stream
12
13
  * - load: Load from buffer
13
14
  * - writeBuffer: Write to buffer (Uint8Array)
14
15
  * - addMedia: Supports buffer, base64, and filename (via readFileAsync)
16
+ *
17
+ * The `<Workbook>` type argument is what makes `wb.xlsx.load(buf)` /
18
+ * `wb.xlsx.read(stream)` return the *Node* Workbook (which exposes
19
+ * `xlsx.readFile` / `xlsx.writeFile`) instead of the browser base class.
20
+ * Without the generic, the inherited methods would be typed against the
21
+ * browser `Workbook` and Node consumers chaining off the returned value
22
+ * would lose access to the Node-only file APIs — issue #160.
15
23
  */
16
24
  import type { Workbook } from "../workbook.js";
17
25
  import type { XlsxReadOptions, XlsxWriteOptions } from "./xlsx.browser.js";
18
26
  import { XLSX as XLSXBase } from "./xlsx.browser.js";
19
27
  import type { ReadableLike } from "../../stream/types.js";
20
- declare class XLSX extends XLSXBase {
28
+ declare class XLSX extends XLSXBase<Workbook> {
21
29
  constructor(workbook: Workbook);
22
30
  private static iterateZipEntries;
23
31
  read(stream: ReadableLike, options?: XlsxReadOptions): Promise<Workbook>;
@@ -3,6 +3,7 @@
3
3
  *
4
4
  * Converts Excel Workbook data into the PDF module's independent data model.
5
5
  * This is the ONLY file in the PDF module that imports from @excel.
6
+ * It also imports from @word/bridge/excel-bridge for Word chart → ChartModel mapping.
6
7
  *
7
8
  * @example
8
9
  * ```typescript
@@ -15,7 +16,9 @@
15
16
  * ```
16
17
  */
17
18
  import type { Chart, RegionMapDataOptions } from "../excel/chart/index.js";
18
- import type { Workbook } from "../excel/workbook.js";
19
+ import type { Workbook } from "../excel/workbook.browser.js";
20
+ import type { Chart as WordChart } from "../word/types.js";
21
+ import { type PdfPageBuilder } from "./builder/document-builder.js";
19
22
  import { type PdfExportOptions } from "./types.js";
20
23
  /**
21
24
  * Export an Excel Workbook directly to PDF.
@@ -97,3 +100,29 @@ export interface ChartToPdfOptions {
97
100
  * `@cj-tech-master/excelts/pdf` alongside `excelToPdf`.
98
101
  */
99
102
  export declare function chartToPdf(chart: Chart, options?: ChartToPdfOptions): Promise<Uint8Array>;
103
+ /**
104
+ * Create a chart renderer callback for use with `docxToPdf`.
105
+ *
106
+ * This factory returns a function that converts Word Chart definitions
107
+ * into Excel's internal ChartModel and renders them using the full
108
+ * Excel chart rendering engine (8000+ lines of vector drawing logic).
109
+ *
110
+ * Requires `installChartSupport()` to have been called.
111
+ *
112
+ * @example
113
+ * ```typescript
114
+ * import { installChartSupport } from "excelts/chart";
115
+ * import { docxToPdf, createWordChartPdfRenderer } from "excelts/pdf";
116
+ *
117
+ * installChartSupport();
118
+ * const pdfBytes = await docxToPdf(doc, {
119
+ * chartRenderer: createWordChartPdfRenderer()
120
+ * });
121
+ * ```
122
+ */
123
+ export declare function createWordChartPdfRenderer(): (chart: WordChart, page: PdfPageBuilder, rect: {
124
+ x: number;
125
+ y: number;
126
+ width: number;
127
+ height: number;
128
+ }) => void;
@@ -1,59 +1,10 @@
1
1
  /**
2
2
  * Character width metrics for the 14 PDF standard Type 1 fonts.
3
3
  *
4
- * These metrics are specified in 1/1000 of a text unit. To get the actual width
5
- * of a character at a given font size:
6
- * width_in_points = (charWidth / 1000) * fontSize
7
- *
8
- * The 14 standard fonts are guaranteed to be available in every PDF viewer:
9
- * - Helvetica, Helvetica-Bold, Helvetica-Oblique, Helvetica-BoldOblique
10
- * - Times-Roman, Times-Bold, Times-Italic, Times-BoldItalic
11
- * - Courier, Courier-Bold, Courier-Oblique, Courier-BoldOblique
12
- * - Symbol, ZapfDingbats
13
- *
14
- * We provide metrics for the most commonly needed: Helvetica and Times families,
15
- * plus Courier (fixed-width). For other fonts, we fall back to Helvetica metrics.
16
- *
17
- * Character widths are for the Latin-1 (ISO 8859-1) encoding.
4
+ * This module re-exports from the shared @utils/font-metrics to avoid
5
+ * data duplication while maintaining backward compatibility.
18
6
  *
19
7
  * @see PDF Reference 1.7, Appendix D - Standard Type 1 Fonts
20
8
  * @see Adobe Font Metrics files (AFM) for canonical widths
21
9
  */
22
- /**
23
- * Get the width of a character in a given font.
24
- * @param charCode - Unicode code point (or char code)
25
- * @param fontName - PDF standard font name
26
- * @returns Width in thousandths of a unit
27
- */
28
- export declare function getCharWidth(charCode: number, fontName: string): number;
29
- /**
30
- * Measure the width of a text string in the given font and size.
31
- * @param text - The string to measure
32
- * @param fontName - PDF standard font name
33
- * @param fontSize - Font size in points
34
- * @returns Width in points
35
- */
36
- export declare function measureText(text: string, fontName: string, fontSize: number): number;
37
- /**
38
- * Get the font ascent for a given font and size.
39
- * @returns Ascent in points (positive, distance above baseline)
40
- */
41
- export declare function getFontAscent(fontName: string, fontSize: number): number;
42
- /**
43
- * Get the font descent for a given font and size.
44
- * @returns Descent in points (negative, distance below baseline)
45
- */
46
- export declare function getFontDescent(fontName: string, fontSize: number): number;
47
- /**
48
- * Get the total line height (ascent - descent) for a font.
49
- * @returns Line height in points
50
- */
51
- export declare function getLineHeight(fontName: string, fontSize: number): number;
52
- /**
53
- * Check if a font name is a known standard PDF font.
54
- */
55
- export declare function isStandardFont(fontName: string): boolean;
56
- /**
57
- * Get all supported standard font names.
58
- */
59
- export declare function getStandardFontNames(): string[];
10
+ export { measureTextWidth as measureText, getCharWidth, getFontAscent, getFontDescent, getLineHeight, isStandardFont, getStandardFontNames } from "../../../utils/font-metrics.js";
@@ -43,7 +43,7 @@
43
43
  /** Standalone PDF generation — accepts plain arrays, sheet objects, or workbooks. */
44
44
  export { pdf } from "./pdf.js";
45
45
  /** Excel-to-PDF conversion — accepts an Excel Workbook instance. */
46
- export { excelToPdf, chartToPdf, type ChartToPdfOptions } from "./excel-bridge.js";
46
+ export { excelToPdf, chartToPdf, createWordChartPdfRenderer, type ChartToPdfOptions } from "./excel-bridge.js";
47
47
  /** Word-to-PDF conversion — accepts a DocxDocument. */
48
48
  export { docxToPdf } from "./word-bridge.js";
49
49
  export type { DocxToPdfOptions } from "./word-bridge.js";
@@ -0,0 +1,66 @@
1
+ /**
2
+ * LayoutDocument → PDF translation layer.
3
+ *
4
+ * Consumes the fully-positioned `LayoutDocument` produced by
5
+ * `@word/layout/layout-full` and emits PDF operators via
6
+ * `PdfDocumentBuilder`. Coordinate translation is the only logic
7
+ * here — every flow decision (line wrapping, page breaks, table cell
8
+ * sizing, float positioning, footnote placement) has already been
9
+ * resolved by the layout engine.
10
+ *
11
+ * The Word layout coordinate system uses points with origin at the
12
+ * top-left of the **content area** of each page (not the page itself),
13
+ * with Y increasing downwards. The PDF coordinate system uses points
14
+ * with origin at the bottom-left of the page and Y increasing upwards.
15
+ * `pdfY = pageHeight - (geometry.marginTop + layoutY) - lineHeight`,
16
+ * with the per-element `lineHeight` baked into rect.height for non-
17
+ * paragraph variants and per-line for paragraphs.
18
+ */
19
+ import type { LayoutChart, LayoutDocument } from "../word/layout/layout-model.js";
20
+ import { PdfDocumentBuilder, type PdfPageBuilder } from "./builder/document-builder.js";
21
+ /** Options for rendering a LayoutDocument into a PdfDocumentBuilder. */
22
+ export interface RenderLayoutOptions {
23
+ /** Document title (sets PDF metadata). */
24
+ readonly title?: string;
25
+ /** Document author (sets PDF metadata). */
26
+ readonly author?: string;
27
+ /** Document subject. */
28
+ readonly subject?: string;
29
+ /** Document creator (defaults to "excelts"). */
30
+ readonly creator?: string;
31
+ /** Default font family used when a paragraph run has no explicit font. */
32
+ readonly defaultFont?: string;
33
+ /** Default font size in points. */
34
+ readonly defaultFontSize?: number;
35
+ /**
36
+ * Optional pluggable chart renderer. Receives the bounding rect
37
+ * (already translated into PDF coordinates) and the layout chart
38
+ * info; the implementation paints onto `page` directly.
39
+ *
40
+ * Return value semantics:
41
+ * - `true` (or `void`) — the renderer handled this chart; no further
42
+ * fallback drawing happens.
43
+ * - `false` — the renderer declined this chart (e.g. it only knows
44
+ * how to draw a specific chart family); the translator falls back
45
+ * to its built-in path (inline `LayoutChart.svg` if present,
46
+ * otherwise a placeholder box with the chart title).
47
+ *
48
+ * The boolean variant lets a chart-aware host plug in a renderer
49
+ * that handles classic `<c:chart>` while still letting `chartEx`
50
+ * variants fall through to the simple placeholder.
51
+ */
52
+ readonly chartRenderer?: (chart: LayoutChart, page: PdfPageBuilder, rect: {
53
+ x: number;
54
+ y: number;
55
+ width: number;
56
+ height: number;
57
+ }) => boolean | void;
58
+ }
59
+ /**
60
+ * Render a `LayoutDocument` into a freshly-constructed
61
+ * `PdfDocumentBuilder`. Call `.build()` on the returned builder to get
62
+ * the final PDF bytes; alternatively use {@link layoutToPdfBytes}.
63
+ */
64
+ export declare function renderLayoutDocumentToPdf(layout: LayoutDocument, options?: RenderLayoutOptions): PdfDocumentBuilder;
65
+ /** Convenience: render and immediately serialise to PDF bytes. */
66
+ export declare function layoutToPdfBytes(layout: LayoutDocument, options?: RenderLayoutOptions): Promise<Uint8Array>;
@@ -1,9 +1,27 @@
1
1
  /**
2
2
  * Word-to-PDF Bridge
3
3
  *
4
- * Converts a Word document (DocxDocument) to PDF.
5
- * Like excel-bridge.ts, this is the ONLY file in the PDF module that imports
6
- * from @word.
4
+ * Converts a Word document (`DocxDocument`) to PDF.
5
+ *
6
+ * The bridge is a thin translation layer:
7
+ *
8
+ * DocxDocument
9
+ * │
10
+ * │ layoutDocumentFull() ← @word/layout
11
+ * ▼
12
+ * LayoutDocument (positioned PageContent variants)
13
+ * │
14
+ * │ renderLayoutDocumentToPdf() ← ./render-layout-to-pdf
15
+ * ▼
16
+ * PdfDocumentBuilder → bytes
17
+ *
18
+ * Every flow decision (line wrapping, page breaks, table sizing,
19
+ * float positioning) lives in `@word/layout`. This file only handles
20
+ * option mapping, optional chart-renderer auto-detection, and the
21
+ * final `builder.build()` serialization.
22
+ *
23
+ * Like `excel-bridge.ts`, this is the ONLY file in the PDF module that
24
+ * imports from `@word`.
7
25
  *
8
26
  * @example
9
27
  * ```typescript
@@ -13,11 +31,9 @@
13
31
  * const doc = await readDocx(docxBytes);
14
32
  * const pdfBytes = await docxToPdf(doc);
15
33
  * ```
16
- *
17
- * Note: This is a simple flow-based renderer. For high-fidelity output,
18
- * consider using Microsoft Word or LibreOffice.
19
34
  */
20
- import type { DocxDocument } from "../word/types.js";
35
+ import type { Chart, DocxDocument } from "../word/types.js";
36
+ import type { PdfPageBuilder } from "./builder/document-builder.js";
21
37
  /** Options for DOCX → PDF conversion. */
22
38
  export interface DocxToPdfOptions {
23
39
  /** Page width in points (default: from document sectPr or 612 US Letter). */
@@ -32,16 +48,68 @@ export interface DocxToPdfOptions {
32
48
  readonly marginLeft?: number;
33
49
  /** Right margin in points (default: from sectPr or 72). */
34
50
  readonly marginRight?: number;
35
- /** Default font family (default: "Times-Roman"). */
51
+ /** Default font family (default: "Helvetica"). */
36
52
  readonly defaultFont?: string;
37
53
  /** Default font size in points (default: 11). */
38
54
  readonly defaultFontSize?: number;
55
+ /**
56
+ * Header margin from top edge in points (default: 36).
57
+ *
58
+ * @deprecated Currently has no effect on the layout-driven render
59
+ * path: header paragraphs are rendered into the page's `marginTop`
60
+ * strip starting at y=0 without an additional offset. Influence
61
+ * header placement by widening `marginTop` instead.
62
+ */
63
+ readonly headerMargin?: number;
64
+ /**
65
+ * Footer margin from bottom edge in points (default: 36).
66
+ *
67
+ * @deprecated See {@link DocxToPdfOptions.headerMargin}. Footer
68
+ * paragraphs are rendered starting at `pageHeight - marginBottom`.
69
+ */
70
+ readonly footerMargin?: number;
71
+ /**
72
+ * Optional high-quality chart renderer callback.
73
+ *
74
+ * When provided, Word charts are rendered using the injected renderer
75
+ * instead of the built-in simplified renderer. This allows consumers
76
+ * to plug in the Excel chart renderer for publication-quality output:
77
+ *
78
+ * ```typescript
79
+ * import { installChartSupport } from "excelts/chart";
80
+ * import { createWordChartPdfRenderer } from "excelts/pdf";
81
+ * installChartSupport();
82
+ * const pdfBytes = await docxToPdf(doc, {
83
+ * chartRenderer: createWordChartPdfRenderer()
84
+ * });
85
+ * ```
86
+ *
87
+ * The callback receives the original Word `Chart` definition (taken
88
+ * from the source `ChartContent`), a `PdfPageBuilder`, and the
89
+ * destination rectangle in PDF coordinates. The implementation
90
+ * should draw the chart into the rectangle.
91
+ *
92
+ * Return `false` to decline a chart (the translator then falls back
93
+ * to its built-in placeholder rendering: an outlined rectangle with
94
+ * the chart title centred). Return `void` or `true` to indicate the
95
+ * chart was handled.
96
+ *
97
+ * Note: `chartEx` charts never reach this callback because there is
98
+ * no `Chart` instance to pass; they always render through the
99
+ * translator's built-in path.
100
+ */
101
+ readonly chartRenderer?: (chart: Chart, page: PdfPageBuilder, rect: {
102
+ x: number;
103
+ y: number;
104
+ width: number;
105
+ height: number;
106
+ }) => boolean | void;
39
107
  }
40
108
  /**
41
- * Convert a DocxDocument to PDF bytes.
109
+ * Convert a `DocxDocument` to PDF bytes.
42
110
  *
43
- * @param doc - The DOCX document model (from readDocx or DocumentBuilder.build()).
44
- * @param options - PDF rendering options.
45
- * @returns Promise of PDF bytes.
111
+ * @param doc - The DOCX document model (from `readDocx` or `Document.build()`).
112
+ * @param options - Page geometry, fonts, optional chart renderer, …
113
+ * @returns PDF bytes ready to write to disk or stream over HTTP.
46
114
  */
47
115
  export declare function docxToPdf(doc: DocxDocument, options?: DocxToPdfOptions): Promise<Uint8Array>;
@@ -14,4 +14,6 @@ export { StreamStateError, StreamTypeError, UnsupportedStreamTypeError } from ".
14
14
  export { isReadableStream, isWritableStream, isAsyncIterable, isTransformStream } from "./internal/type-guards.js";
15
15
  export { onceEvent } from "./internal/event-utils.js";
16
16
  export { eventedReadableToAsyncIterableNoDestroy, type EventedReadableLike } from "./internal/evented-readable-to-async-iterable.js";
17
+ export { SinkAdapter } from "./internal/sink-adapter.js";
18
+ export type { AnySink, NodeWritableLike, DuckSinkLike } from "./internal/sink-adapter.js";
17
19
  export type { EventEmitterLike } from "./types.js";
@@ -0,0 +1,65 @@
1
+ /**
2
+ * SinkAdapter — unified writable-sink view.
3
+ *
4
+ * Producers (zip writers, docx streamers, etc.) generate `Uint8Array`
5
+ * chunks and want to push them through a user-supplied destination
6
+ * without caring whether that destination is a Web `WritableStream`,
7
+ * a Node `Writable`, or some duck-typed object.
8
+ *
9
+ * `SinkAdapter` collapses all three into one promise-based API:
10
+ * - `write(chunk)` resolves once the chunk has been accepted by the
11
+ * sink (after awaiting `drain` for Node-style sinks under
12
+ * backpressure, or `writer.ready` for Web streams).
13
+ * - `end()` finalises the sink and resolves on close.
14
+ * - The first sink error is captured and re-thrown from the next
15
+ * `write` / `end` so callers can't lose it.
16
+ *
17
+ * Producers are expected to either:
18
+ * - drive `await sink.write(chunk)` directly (preferred — gives
19
+ * true end-to-end backpressure), or
20
+ * - chain writes onto a single shared promise so a synchronous
21
+ * emit callback can still feed the adapter without blocking.
22
+ */
23
+ import type { EventEmitterLike } from "../types.js";
24
+ /**
25
+ * Loose Node `Writable`-like contract. Matches `stream.Writable` but only
26
+ * the subset SinkAdapter touches; intentionally avoids depending on
27
+ * `node:stream` so the adapter compiles in browsers.
28
+ */
29
+ export interface NodeWritableLike extends EventEmitterLike {
30
+ write(chunk: Uint8Array, cb?: (err?: Error | null) => void): boolean;
31
+ end(cb?: () => void): unknown;
32
+ destroyed?: boolean;
33
+ }
34
+ /**
35
+ * Object that implements just enough of a writable to be useful: a
36
+ * `write` returning sync bool / Promise, plus `end`. Used as a fallback
37
+ * for legacy producers that don't fit either Node or Web streams.
38
+ */
39
+ export interface DuckSinkLike extends EventEmitterLike {
40
+ write(chunk: Uint8Array): boolean | Promise<boolean>;
41
+ end(): unknown;
42
+ }
43
+ /** Anything SinkAdapter knows how to drive. */
44
+ export type AnySink = WritableStream<Uint8Array> | NodeWritableLike | DuckSinkLike;
45
+ /** Unified sink view with awaited write + error capture. */
46
+ export declare class SinkAdapter {
47
+ private readonly _kind;
48
+ private readonly _webWriter?;
49
+ private readonly _nodeSink?;
50
+ private readonly _duckSink?;
51
+ private _error;
52
+ private _ended;
53
+ constructor(sink: AnySink);
54
+ /**
55
+ * The first error reported by the sink (or `null`). Producers that
56
+ * cannot await `write()` (synchronous emit callbacks) should poll
57
+ * this between operations.
58
+ */
59
+ get error(): Error | null;
60
+ write(chunk: Uint8Array): Promise<void>;
61
+ end(): Promise<void>;
62
+ private _captureError;
63
+ private _throwIfErrored;
64
+ private _attachErrorListener;
65
+ }