@cj-tech-master/excelts 9.5.4 → 9.5.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (767) hide show
  1. package/dist/browser/modules/archive/compression/streaming-compress.browser.js +29 -0
  2. package/dist/browser/modules/archive/compression/streaming-compress.js +9 -0
  3. package/dist/browser/modules/archive/compression/worker-pool/pool.browser.js +26 -1
  4. package/dist/browser/modules/archive/fs/archive-file.d.ts +8 -5
  5. package/dist/browser/modules/archive/fs/archive-file.js +78 -16
  6. package/dist/browser/modules/archive/unzip/stream.browser.js +43 -2
  7. package/dist/browser/modules/excel/chart/chart-ex-builder.js +7 -2
  8. package/dist/browser/modules/excel/chart/chart-ex-renderer.js +4 -9
  9. package/dist/browser/modules/excel/chart/chart-ex-types.d.ts +0 -12
  10. package/dist/browser/modules/excel/chart/chart.d.ts +1 -5
  11. package/dist/browser/modules/excel/chart/chart.js +1 -7
  12. package/dist/browser/modules/excel/chart/types.d.ts +0 -6
  13. package/dist/browser/modules/excel/stream/workbook-reader.browser.js +25 -1
  14. package/dist/browser/modules/excel/stream/workbook-reader.js +9 -0
  15. package/dist/browser/modules/excel/stream/workbook-writer.browser.d.ts +40 -0
  16. package/dist/browser/modules/excel/stream/workbook-writer.browser.js +228 -13
  17. package/dist/browser/modules/excel/utils/string-buf.d.ts +5 -26
  18. package/dist/browser/modules/excel/utils/string-buf.js +4 -81
  19. package/dist/browser/modules/excel/workbook.browser.js +135 -25
  20. package/dist/browser/modules/excel/xlsx/xform/chart/chart-space-xform.js +6 -20
  21. package/dist/browser/modules/excel/xlsx/xlsx.browser.d.ts +19 -9
  22. package/dist/browser/modules/excel/xlsx/xlsx.browser.js +32 -8
  23. package/dist/browser/modules/excel/xlsx/xlsx.d.ts +10 -2
  24. package/dist/browser/modules/excel/xlsx/xlsx.js +9 -1
  25. package/dist/browser/modules/pdf/excel-bridge.d.ts +30 -1
  26. package/dist/browser/modules/pdf/excel-bridge.js +32 -0
  27. package/dist/browser/modules/pdf/font/metrics.d.ts +3 -52
  28. package/dist/browser/modules/pdf/font/metrics.js +3 -237
  29. package/dist/browser/modules/pdf/index.d.ts +1 -1
  30. package/dist/browser/modules/pdf/index.js +1 -1
  31. package/dist/browser/modules/pdf/render-layout-to-pdf.d.ts +66 -0
  32. package/dist/browser/modules/pdf/render-layout-to-pdf.js +647 -0
  33. package/dist/browser/modules/pdf/word-bridge.d.ts +80 -12
  34. package/dist/browser/modules/pdf/word-bridge.js +122 -274
  35. package/dist/browser/modules/stream/index.base.d.ts +2 -0
  36. package/dist/browser/modules/stream/index.base.js +2 -1
  37. package/dist/browser/modules/stream/internal/sink-adapter.d.ts +65 -0
  38. package/dist/browser/modules/stream/internal/sink-adapter.js +198 -0
  39. package/dist/browser/modules/stream/pull-stream.d.ts +19 -2
  40. package/dist/browser/modules/stream/pull-stream.js +51 -5
  41. package/dist/browser/modules/stream/types.d.ts +13 -1
  42. package/dist/browser/modules/word/advanced/diff.d.ts +61 -0
  43. package/dist/browser/modules/word/advanced/diff.js +167 -0
  44. package/dist/browser/modules/word/advanced/drawing-shapes.d.ts +269 -0
  45. package/dist/browser/modules/word/advanced/drawing-shapes.js +268 -0
  46. package/dist/browser/modules/word/advanced/field-engine.d.ts +43 -0
  47. package/dist/browser/modules/word/advanced/field-engine.js +1225 -0
  48. package/dist/browser/modules/word/advanced/glossary.d.ts +86 -0
  49. package/dist/browser/modules/word/advanced/glossary.js +79 -0
  50. package/dist/browser/modules/word/advanced/math-convert.d.ts +30 -0
  51. package/dist/browser/modules/word/advanced/math-convert.js +595 -0
  52. package/dist/browser/modules/word/advanced/ole-objects.d.ts +115 -0
  53. package/dist/browser/modules/word/advanced/ole-objects.js +271 -0
  54. package/dist/browser/modules/word/advanced/style-map.d.ts +105 -0
  55. package/dist/browser/modules/word/advanced/style-map.js +322 -0
  56. package/dist/browser/modules/word/advanced/validation.d.ts +56 -0
  57. package/dist/browser/modules/word/advanced/validation.js +1065 -0
  58. package/dist/browser/modules/word/advanced/vba-project.d.ts +91 -0
  59. package/dist/browser/modules/word/advanced/vba-project.js +265 -0
  60. package/dist/browser/modules/word/bridge/excel-bridge.d.ts +127 -0
  61. package/dist/browser/modules/word/bridge/excel-bridge.js +980 -0
  62. package/dist/browser/modules/word/builder/document-handle.d.ts +151 -0
  63. package/dist/browser/modules/word/builder/document-handle.js +664 -0
  64. package/dist/browser/modules/word/builder/paragraph-builders.d.ts +61 -0
  65. package/dist/browser/modules/word/builder/paragraph-builders.js +90 -0
  66. package/dist/browser/modules/word/builder/run-builders.d.ts +374 -0
  67. package/dist/browser/modules/word/builder/run-builders.js +600 -0
  68. package/dist/browser/modules/word/builder/table-builders.d.ts +23 -0
  69. package/dist/browser/modules/word/builder/table-builders.js +45 -0
  70. package/dist/browser/modules/word/constants.d.ts +39 -1
  71. package/dist/browser/modules/word/constants.js +109 -1
  72. package/dist/browser/modules/word/convert/conversion-ir.d.ts +210 -0
  73. package/dist/browser/modules/word/convert/conversion-ir.js +31 -0
  74. package/dist/browser/modules/word/convert/docx-to-semantic.d.ts +39 -0
  75. package/dist/browser/modules/word/convert/docx-to-semantic.js +499 -0
  76. package/dist/browser/modules/word/convert/flat-opc.d.ts +44 -0
  77. package/dist/browser/modules/word/convert/flat-opc.js +385 -0
  78. package/dist/browser/modules/word/convert/html/html-import.d.ts +50 -0
  79. package/dist/browser/modules/word/convert/html/html-import.js +1907 -0
  80. package/dist/{types/modules/word → browser/modules/word/convert/html}/html-renderer.d.ts +14 -1
  81. package/dist/{esm/modules/word → browser/modules/word/convert/html}/html-renderer.js +420 -69
  82. package/dist/browser/modules/word/convert/html/html.d.ts +15 -0
  83. package/dist/browser/modules/word/convert/html/html.js +15 -0
  84. package/dist/browser/modules/word/convert/markdown/markdown-import.d.ts +68 -0
  85. package/dist/browser/modules/word/convert/markdown/markdown-import.js +1325 -0
  86. package/dist/browser/modules/word/convert/markdown/markdown-renderer.d.ts +25 -0
  87. package/dist/browser/modules/word/convert/markdown/markdown-renderer.js +634 -0
  88. package/dist/browser/modules/word/convert/markdown/markdown.d.ts +15 -0
  89. package/dist/browser/modules/word/convert/markdown/markdown.js +15 -0
  90. package/dist/browser/modules/word/convert/odt/odt.d.ts +41 -0
  91. package/dist/browser/modules/word/convert/odt/odt.js +1932 -0
  92. package/dist/browser/modules/word/{color-utils.d.ts → core/color-utils.d.ts} +8 -1
  93. package/dist/browser/modules/word/core/color-utils.js +43 -0
  94. package/dist/browser/modules/word/core/internal-utils.d.ts +90 -0
  95. package/dist/browser/modules/word/core/internal-utils.js +209 -0
  96. package/dist/browser/modules/word/core/mapper.d.ts +44 -0
  97. package/dist/browser/modules/word/core/mapper.js +427 -0
  98. package/dist/browser/modules/word/core/opc-paths.d.ts +33 -0
  99. package/dist/browser/modules/word/core/opc-paths.js +48 -0
  100. package/dist/browser/modules/word/core/text-utils.d.ts +38 -0
  101. package/dist/browser/modules/word/core/text-utils.js +202 -0
  102. package/dist/browser/modules/word/core/walker.d.ts +119 -0
  103. package/dist/browser/modules/word/core/walker.js +570 -0
  104. package/dist/browser/modules/word/crypto.d.ts +14 -9
  105. package/dist/browser/modules/word/crypto.js +13 -7
  106. package/dist/browser/modules/word/document-io.d.ts +59 -27
  107. package/dist/browser/modules/word/document-io.js +80 -197
  108. package/dist/browser/modules/word/errors.d.ts +44 -1
  109. package/dist/browser/modules/word/errors.js +54 -2
  110. package/dist/browser/modules/word/excel.d.ts +14 -0
  111. package/dist/browser/modules/word/excel.js +13 -0
  112. package/dist/browser/modules/word/font/font-embed.d.ts +112 -0
  113. package/dist/browser/modules/word/font/font-embed.js +646 -0
  114. package/dist/{esm/modules/word → browser/modules/word/font}/font-obfuscation.js +4 -9
  115. package/dist/browser/modules/word/font/hyphenation.d.ts +65 -0
  116. package/dist/browser/modules/word/font/hyphenation.js +4210 -0
  117. package/dist/browser/modules/word/font/text-shaping.d.ts +58 -0
  118. package/dist/browser/modules/word/font/text-shaping.js +635 -0
  119. package/dist/browser/modules/word/html.d.ts +7 -6
  120. package/dist/browser/modules/word/html.js +6 -5
  121. package/dist/browser/modules/word/incremental-edit.d.ts +123 -0
  122. package/dist/browser/modules/word/incremental-edit.js +361 -0
  123. package/dist/browser/modules/word/index.base.d.ts +194 -10
  124. package/dist/browser/modules/word/index.base.js +138 -29
  125. package/dist/browser/modules/word/layout/layout-constants.d.ts +17 -0
  126. package/dist/browser/modules/word/layout/layout-constants.js +17 -0
  127. package/dist/browser/modules/word/layout/layout-full.d.ts +53 -0
  128. package/dist/browser/modules/word/layout/layout-full.js +1696 -0
  129. package/dist/browser/modules/word/layout/layout-model.d.ts +344 -0
  130. package/dist/browser/modules/word/layout/layout-model.js +16 -0
  131. package/dist/browser/modules/word/layout/layout.d.ts +63 -0
  132. package/dist/browser/modules/word/layout/layout.js +1167 -0
  133. package/dist/browser/modules/word/layout/render-page.d.ts +57 -0
  134. package/dist/browser/modules/word/layout/render-page.js +1238 -0
  135. package/dist/browser/modules/word/markdown.d.ts +14 -0
  136. package/dist/browser/modules/word/markdown.js +13 -0
  137. package/dist/browser/modules/word/patcher.d.ts +62 -0
  138. package/dist/browser/modules/word/patcher.js +537 -0
  139. package/dist/browser/modules/word/query/compat.d.ts +25 -0
  140. package/dist/browser/modules/word/query/compat.js +58 -0
  141. package/dist/browser/modules/word/query/data-binding.d.ts +22 -0
  142. package/dist/browser/modules/word/query/data-binding.js +392 -0
  143. package/dist/browser/modules/word/query/form-fields.d.ts +41 -0
  144. package/dist/browser/modules/word/query/form-fields.js +268 -0
  145. package/dist/browser/modules/word/query/format-search.d.ts +99 -0
  146. package/dist/browser/modules/word/query/format-search.js +329 -0
  147. package/dist/browser/modules/word/query/mail-merge.d.ts +25 -0
  148. package/dist/browser/modules/word/query/mail-merge.js +111 -0
  149. package/dist/browser/modules/word/query/merge.d.ts +50 -0
  150. package/dist/browser/modules/word/query/merge.js +617 -0
  151. package/dist/browser/modules/word/query/replace.d.ts +47 -0
  152. package/dist/browser/modules/word/query/replace.js +301 -0
  153. package/dist/browser/modules/word/query/revisions.d.ts +67 -0
  154. package/dist/browser/modules/word/query/revisions.js +879 -0
  155. package/dist/browser/modules/word/query/search.d.ts +129 -0
  156. package/dist/browser/modules/word/query/search.js +346 -0
  157. package/dist/browser/modules/word/query/split.d.ts +44 -0
  158. package/dist/browser/modules/word/query/split.js +135 -0
  159. package/dist/browser/modules/word/query/style-resolve.d.ts +104 -0
  160. package/dist/browser/modules/word/query/style-resolve.js +368 -0
  161. package/dist/browser/modules/word/reader/chart-parser.d.ts +20 -0
  162. package/dist/browser/modules/word/reader/chart-parser.js +810 -0
  163. package/dist/browser/modules/word/reader/comments-parser.d.ts +26 -0
  164. package/dist/browser/modules/word/reader/comments-parser.js +92 -0
  165. package/dist/browser/modules/word/reader/doc-props-parsers.d.ts +15 -0
  166. package/dist/browser/modules/word/reader/doc-props-parsers.js +190 -0
  167. package/dist/browser/modules/word/reader/docx-reader.d.ts +27 -0
  168. package/dist/browser/modules/word/reader/docx-reader.js +2557 -0
  169. package/dist/browser/modules/word/reader/drawing-helpers.d.ts +27 -0
  170. package/dist/browser/modules/word/reader/drawing-helpers.js +84 -0
  171. package/dist/browser/modules/word/reader/form-field-parser.d.ts +21 -0
  172. package/dist/browser/modules/word/reader/form-field-parser.js +82 -0
  173. package/dist/browser/modules/word/reader/image-parsers.d.ts +11 -0
  174. package/dist/browser/modules/word/reader/image-parsers.js +291 -0
  175. package/dist/browser/modules/word/reader/math-parser.d.ts +12 -0
  176. package/dist/browser/modules/word/reader/math-parser.js +422 -0
  177. package/dist/browser/modules/word/reader/metadata-parsers.d.ts +17 -0
  178. package/dist/browser/modules/word/reader/metadata-parsers.js +87 -0
  179. package/dist/browser/modules/word/reader/numbering-parser.d.ts +13 -0
  180. package/dist/browser/modules/word/reader/numbering-parser.js +166 -0
  181. package/dist/browser/modules/word/reader/paragraph-section-parsers.d.ts +12 -0
  182. package/dist/browser/modules/word/reader/paragraph-section-parsers.js +503 -0
  183. package/dist/browser/modules/word/reader/parse-utils.d.ts +91 -0
  184. package/dist/browser/modules/word/reader/parse-utils.js +249 -0
  185. package/dist/browser/modules/word/reader/properties-parsers.d.ts +21 -0
  186. package/dist/browser/modules/word/reader/properties-parsers.js +332 -0
  187. package/dist/browser/modules/word/reader/reader-context.d.ts +69 -0
  188. package/dist/browser/modules/word/reader/reader-context.js +61 -0
  189. package/dist/browser/modules/word/reader/sdt-helpers.d.ts +29 -0
  190. package/dist/browser/modules/word/reader/sdt-helpers.js +111 -0
  191. package/dist/browser/modules/word/reader/settings-parser.d.ts +8 -0
  192. package/dist/browser/modules/word/reader/settings-parser.js +263 -0
  193. package/dist/browser/modules/word/reader/styles-parser.d.ts +12 -0
  194. package/dist/browser/modules/word/reader/styles-parser.js +147 -0
  195. package/dist/browser/modules/word/reader/table-properties-parsers.d.ts +12 -0
  196. package/dist/browser/modules/word/reader/table-properties-parsers.js +234 -0
  197. package/dist/browser/modules/word/reader/theme-parser.d.ts +8 -0
  198. package/dist/browser/modules/word/reader/theme-parser.js +167 -0
  199. package/dist/browser/modules/word/reader/watermark-parser.d.ts +15 -0
  200. package/dist/browser/modules/word/reader/watermark-parser.js +110 -0
  201. package/dist/browser/modules/word/security/cfb-reader.d.ts +37 -0
  202. package/dist/browser/modules/word/security/cfb-reader.js +410 -0
  203. package/dist/browser/modules/word/{digital-signatures.d.ts → security/digital-signatures.d.ts} +19 -11
  204. package/dist/browser/modules/word/{digital-signatures.js → security/digital-signatures.js} +34 -34
  205. package/dist/browser/modules/word/security/document-protection.d.ts +93 -0
  206. package/dist/browser/modules/word/security/document-protection.js +201 -0
  207. package/dist/{types/modules/word → browser/modules/word/security}/encryption.d.ts +51 -4
  208. package/dist/browser/modules/word/security/encryption.js +602 -0
  209. package/dist/browser/modules/word/security/policy.d.ts +80 -0
  210. package/dist/browser/modules/word/security/policy.js +102 -0
  211. package/dist/browser/modules/word/template/template-chart.d.ts +56 -0
  212. package/dist/browser/modules/word/template/template-chart.js +167 -0
  213. package/dist/browser/modules/word/template/template-datasource.d.ts +154 -0
  214. package/dist/browser/modules/word/template/template-datasource.js +541 -0
  215. package/dist/browser/modules/word/template/template-engine.d.ts +121 -0
  216. package/dist/browser/modules/word/template/template-engine.js +1435 -0
  217. package/dist/browser/modules/word/types.d.ts +224 -25
  218. package/dist/browser/modules/word/units.d.ts +26 -0
  219. package/dist/browser/modules/word/units.js +43 -14
  220. package/dist/browser/modules/word/{writers → writer}/chart-writer.js +164 -23
  221. package/dist/browser/modules/word/writer/checkbox-writer.d.ts +17 -0
  222. package/dist/browser/modules/word/writer/checkbox-writer.js +79 -0
  223. package/dist/{types/modules/word/writers → browser/modules/word/writer}/comment-writer.d.ts +2 -1
  224. package/dist/browser/modules/word/{writers → writer}/comment-writer.js +8 -6
  225. package/dist/browser/modules/word/writer/common-parts.d.ts +57 -0
  226. package/dist/browser/modules/word/writer/common-parts.js +101 -0
  227. package/dist/{types/modules/word → browser/modules/word/writer}/content-types.d.ts +2 -2
  228. package/dist/{esm/modules/word → browser/modules/word/writer}/content-types.js +14 -6
  229. package/dist/browser/modules/word/writer/document-writer.d.ts +24 -0
  230. package/dist/browser/modules/word/writer/document-writer.js +473 -0
  231. package/dist/browser/modules/word/writer/docx-packager.d.ts +35 -0
  232. package/dist/browser/modules/word/writer/docx-packager.js +1515 -0
  233. package/dist/{types/modules/word/writers → browser/modules/word/writer}/footnote-writer.d.ts +3 -2
  234. package/dist/{esm/modules/word/writers → browser/modules/word/writer}/footnote-writer.js +13 -10
  235. package/dist/{types/modules/word/writers → browser/modules/word/writer}/header-footer-writer.d.ts +3 -2
  236. package/dist/{esm/modules/word/writers → browser/modules/word/writer}/header-footer-writer.js +39 -21
  237. package/dist/{types/modules/word/writers → browser/modules/word/writer}/image-writer.d.ts +1 -1
  238. package/dist/browser/modules/word/{writers → writer}/image-writer.js +11 -7
  239. package/dist/browser/modules/word/writer/math-writer.d.ts +20 -0
  240. package/dist/{esm/modules/word/writers → browser/modules/word/writer}/math-writer.js +21 -1
  241. package/dist/browser/modules/word/{writers → writer}/numbering-writer.d.ts +1 -1
  242. package/dist/{esm/modules/word/writers → browser/modules/word/writer}/numbering-writer.js +11 -4
  243. package/dist/browser/modules/word/{writers → writer}/paragraph-writer.d.ts +2 -1
  244. package/dist/browser/modules/word/{writers → writer}/paragraph-writer.js +73 -38
  245. package/dist/browser/modules/word/{writers → writer}/parts-writer.d.ts +3 -3
  246. package/dist/{esm/modules/word/writers → browser/modules/word/writer}/parts-writer.js +91 -12
  247. package/dist/browser/modules/word/writer/reference-scanners.d.ts +42 -0
  248. package/dist/browser/modules/word/writer/reference-scanners.js +111 -0
  249. package/dist/browser/modules/word/writer/relationships.d.ts +52 -0
  250. package/dist/browser/modules/word/writer/relationships.js +117 -0
  251. package/dist/browser/modules/word/writer/render-context.d.ts +124 -0
  252. package/dist/browser/modules/word/writer/render-context.js +46 -0
  253. package/dist/browser/modules/word/{writers → writer}/run-writer.d.ts +10 -1
  254. package/dist/{esm/modules/word/writers → browser/modules/word/writer}/run-writer.js +126 -24
  255. package/dist/browser/modules/word/writer/sdt-writer.d.ts +25 -0
  256. package/dist/browser/modules/word/writer/sdt-writer.js +189 -0
  257. package/dist/browser/modules/word/writer/stream-buf.d.ts +37 -0
  258. package/dist/browser/modules/word/writer/stream-buf.js +73 -0
  259. package/dist/browser/modules/word/writer/streaming-writer.d.ts +344 -0
  260. package/dist/browser/modules/word/writer/streaming-writer.js +1382 -0
  261. package/dist/browser/modules/word/writer/string-buf.d.ts +8 -0
  262. package/dist/browser/modules/word/writer/string-buf.js +7 -0
  263. package/dist/browser/modules/word/{writers → writer}/styles-writer.js +32 -1
  264. package/dist/browser/modules/word/{writers → writer}/table-writer.d.ts +2 -1
  265. package/dist/browser/modules/word/{writers → writer}/table-writer.js +94 -11
  266. package/dist/browser/modules/xml/types.d.ts +22 -0
  267. package/dist/browser/utils/crypto.browser.d.ts +3 -1
  268. package/dist/browser/utils/crypto.browser.js +3 -1
  269. package/dist/browser/utils/crypto.d.ts +4 -1
  270. package/dist/browser/utils/crypto.js +4 -1
  271. package/dist/browser/utils/font-metrics.d.ts +63 -0
  272. package/dist/browser/utils/font-metrics.js +293 -0
  273. package/dist/browser/utils/string-buf.d.ts +42 -0
  274. package/dist/browser/utils/string-buf.js +89 -0
  275. package/dist/browser/utils/theme-colors.d.ts +55 -0
  276. package/dist/browser/utils/theme-colors.js +120 -0
  277. package/dist/cjs/modules/archive/compression/streaming-compress.browser.js +29 -0
  278. package/dist/cjs/modules/archive/compression/streaming-compress.js +9 -0
  279. package/dist/cjs/modules/archive/compression/worker-pool/pool.browser.js +26 -1
  280. package/dist/cjs/modules/archive/fs/archive-file.js +78 -16
  281. package/dist/cjs/modules/archive/unzip/stream.browser.js +43 -2
  282. package/dist/cjs/modules/excel/chart/chart-ex-builder.js +7 -2
  283. package/dist/cjs/modules/excel/chart/chart-ex-renderer.js +4 -9
  284. package/dist/cjs/modules/excel/chart/chart.js +1 -7
  285. package/dist/cjs/modules/excel/stream/workbook-reader.browser.js +25 -1
  286. package/dist/cjs/modules/excel/stream/workbook-reader.js +9 -0
  287. package/dist/cjs/modules/excel/stream/workbook-writer.browser.js +228 -13
  288. package/dist/cjs/modules/excel/utils/string-buf.js +5 -81
  289. package/dist/cjs/modules/excel/workbook.browser.js +135 -25
  290. package/dist/cjs/modules/excel/xlsx/xform/chart/chart-space-xform.js +6 -20
  291. package/dist/cjs/modules/excel/xlsx/xlsx.browser.js +32 -8
  292. package/dist/cjs/modules/excel/xlsx/xlsx.js +9 -1
  293. package/dist/cjs/modules/pdf/excel-bridge.js +33 -0
  294. package/dist/cjs/modules/pdf/font/metrics.js +11 -244
  295. package/dist/cjs/modules/pdf/index.js +2 -1
  296. package/dist/cjs/modules/pdf/render-layout-to-pdf.js +651 -0
  297. package/dist/cjs/modules/pdf/word-bridge.js +155 -274
  298. package/dist/cjs/modules/stream/index.base.js +4 -2
  299. package/dist/cjs/modules/stream/internal/sink-adapter.js +202 -0
  300. package/dist/cjs/modules/stream/pull-stream.js +51 -5
  301. package/dist/cjs/modules/word/advanced/diff.js +170 -0
  302. package/dist/cjs/modules/word/advanced/drawing-shapes.js +279 -0
  303. package/dist/cjs/modules/word/advanced/field-engine.js +1229 -0
  304. package/dist/cjs/modules/word/advanced/glossary.js +87 -0
  305. package/dist/cjs/modules/word/advanced/math-convert.js +599 -0
  306. package/dist/cjs/modules/word/advanced/ole-objects.js +277 -0
  307. package/dist/cjs/modules/word/advanced/style-map.js +329 -0
  308. package/dist/cjs/modules/word/advanced/validation.js +1068 -0
  309. package/dist/cjs/modules/word/advanced/vba-project.js +274 -0
  310. package/dist/cjs/modules/word/bridge/excel-bridge.js +1020 -0
  311. package/dist/cjs/modules/word/builder/document-handle.js +667 -0
  312. package/dist/cjs/modules/word/builder/paragraph-builders.js +109 -0
  313. package/dist/cjs/modules/word/builder/run-builders.js +676 -0
  314. package/dist/cjs/modules/word/builder/table-builders.js +53 -0
  315. package/dist/cjs/modules/word/constants.js +111 -2
  316. package/dist/cjs/modules/word/convert/conversion-ir.js +34 -0
  317. package/dist/cjs/modules/word/convert/docx-to-semantic.js +502 -0
  318. package/dist/cjs/modules/word/convert/flat-opc.js +390 -0
  319. package/dist/cjs/modules/word/convert/html/html-import.js +1910 -0
  320. package/dist/cjs/modules/word/{html-renderer.js → convert/html/html-renderer.js} +420 -69
  321. package/dist/cjs/modules/word/convert/html/html.js +20 -0
  322. package/dist/cjs/modules/word/convert/markdown/markdown-import.js +1329 -0
  323. package/dist/cjs/modules/word/convert/markdown/markdown-renderer.js +637 -0
  324. package/dist/cjs/modules/word/convert/markdown/markdown.js +21 -0
  325. package/dist/cjs/modules/word/convert/odt/odt.js +1936 -0
  326. package/dist/cjs/modules/word/core/color-utils.js +47 -0
  327. package/dist/cjs/modules/word/core/internal-utils.js +219 -0
  328. package/dist/cjs/modules/word/core/mapper.js +430 -0
  329. package/dist/cjs/modules/word/core/opc-paths.js +53 -0
  330. package/dist/cjs/modules/word/core/text-utils.js +210 -0
  331. package/dist/cjs/modules/word/core/walker.js +577 -0
  332. package/dist/cjs/modules/word/crypto.js +19 -8
  333. package/dist/cjs/modules/word/document-io.js +117 -197
  334. package/dist/cjs/modules/word/errors.js +59 -13
  335. package/dist/cjs/modules/word/excel.js +22 -0
  336. package/dist/cjs/modules/word/font/font-embed.js +652 -0
  337. package/dist/cjs/modules/word/{font-obfuscation.js → font/font-obfuscation.js} +4 -9
  338. package/dist/cjs/modules/word/font/hyphenation.js +4216 -0
  339. package/dist/cjs/modules/word/font/text-shaping.js +640 -0
  340. package/dist/cjs/modules/word/html.js +9 -7
  341. package/dist/cjs/modules/word/incremental-edit.js +366 -0
  342. package/dist/cjs/modules/word/index.base.js +370 -137
  343. package/dist/cjs/modules/word/layout/layout-constants.js +20 -0
  344. package/dist/cjs/modules/word/layout/layout-full.js +1699 -0
  345. package/dist/cjs/modules/word/layout/layout-model.js +17 -0
  346. package/dist/cjs/modules/word/layout/layout.js +1170 -0
  347. package/dist/cjs/modules/word/layout/render-page.js +1243 -0
  348. package/dist/cjs/modules/word/markdown.js +19 -0
  349. package/dist/cjs/modules/word/patcher.js +539 -0
  350. package/dist/cjs/modules/word/query/compat.js +61 -0
  351. package/dist/cjs/modules/word/query/data-binding.js +395 -0
  352. package/dist/cjs/modules/word/query/form-fields.js +272 -0
  353. package/dist/cjs/modules/word/query/format-search.js +334 -0
  354. package/dist/cjs/modules/word/query/mail-merge.js +114 -0
  355. package/dist/cjs/modules/word/query/merge.js +620 -0
  356. package/dist/cjs/modules/word/query/replace.js +304 -0
  357. package/dist/cjs/modules/word/query/revisions.js +885 -0
  358. package/dist/cjs/modules/word/query/search.js +361 -0
  359. package/dist/cjs/modules/word/query/split.js +138 -0
  360. package/dist/cjs/modules/word/query/style-resolve.js +374 -0
  361. package/dist/cjs/modules/word/reader/chart-parser.js +814 -0
  362. package/dist/cjs/modules/word/reader/comments-parser.js +96 -0
  363. package/dist/cjs/modules/word/reader/doc-props-parsers.js +194 -0
  364. package/dist/cjs/modules/word/reader/docx-reader.js +2560 -0
  365. package/dist/cjs/modules/word/reader/drawing-helpers.js +90 -0
  366. package/dist/cjs/modules/word/reader/form-field-parser.js +85 -0
  367. package/dist/cjs/modules/word/reader/image-parsers.js +293 -0
  368. package/dist/cjs/modules/word/reader/math-parser.js +424 -0
  369. package/dist/cjs/modules/word/reader/metadata-parsers.js +93 -0
  370. package/dist/cjs/modules/word/reader/numbering-parser.js +168 -0
  371. package/dist/cjs/modules/word/reader/paragraph-section-parsers.js +505 -0
  372. package/dist/cjs/modules/word/reader/parse-utils.js +271 -0
  373. package/dist/cjs/modules/word/reader/properties-parsers.js +338 -0
  374. package/dist/cjs/modules/word/reader/reader-context.js +66 -0
  375. package/dist/cjs/modules/word/reader/sdt-helpers.js +114 -0
  376. package/dist/cjs/modules/word/reader/settings-parser.js +265 -0
  377. package/dist/cjs/modules/word/reader/styles-parser.js +149 -0
  378. package/dist/cjs/modules/word/reader/table-properties-parsers.js +237 -0
  379. package/dist/cjs/modules/word/reader/theme-parser.js +169 -0
  380. package/dist/cjs/modules/word/reader/watermark-parser.js +113 -0
  381. package/dist/cjs/modules/word/security/cfb-reader.js +414 -0
  382. package/dist/cjs/modules/word/{digital-signatures.js → security/digital-signatures.js} +34 -34
  383. package/dist/cjs/modules/word/security/document-protection.js +208 -0
  384. package/dist/cjs/modules/word/security/encryption.js +612 -0
  385. package/dist/cjs/modules/word/security/policy.js +106 -0
  386. package/dist/cjs/modules/word/template/template-chart.js +170 -0
  387. package/dist/cjs/modules/word/template/template-datasource.js +549 -0
  388. package/dist/cjs/modules/word/template/template-engine.js +1430 -0
  389. package/dist/cjs/modules/word/units.js +44 -14
  390. package/dist/cjs/modules/word/{writers → writer}/chart-writer.js +163 -22
  391. package/dist/cjs/modules/word/writer/checkbox-writer.js +82 -0
  392. package/dist/cjs/modules/word/{writers → writer}/comment-writer.js +8 -6
  393. package/dist/cjs/modules/word/writer/common-parts.js +104 -0
  394. package/dist/cjs/modules/word/{content-types.js → writer/content-types.js} +14 -6
  395. package/dist/cjs/modules/word/writer/document-writer.js +478 -0
  396. package/dist/cjs/modules/word/writer/docx-packager.js +1551 -0
  397. package/dist/cjs/modules/word/{writers → writer}/footnote-writer.js +13 -10
  398. package/dist/cjs/modules/word/{writers → writer}/header-footer-writer.js +38 -20
  399. package/dist/cjs/modules/word/{writers → writer}/image-writer.js +11 -7
  400. package/dist/cjs/modules/word/{writers → writer}/math-writer.js +21 -1
  401. package/dist/cjs/modules/word/{writers → writer}/numbering-writer.js +11 -4
  402. package/dist/cjs/modules/word/{writers → writer}/paragraph-writer.js +72 -37
  403. package/dist/cjs/modules/word/{writers → writer}/parts-writer.js +91 -12
  404. package/dist/cjs/modules/word/writer/reference-scanners.js +120 -0
  405. package/dist/cjs/modules/word/writer/relationships.js +124 -0
  406. package/dist/cjs/modules/word/writer/render-context.js +51 -0
  407. package/dist/cjs/modules/word/{writers → writer}/run-writer.js +127 -24
  408. package/dist/cjs/modules/word/writer/sdt-writer.js +192 -0
  409. package/dist/cjs/modules/word/writer/stream-buf.js +76 -0
  410. package/dist/cjs/modules/word/writer/streaming-writer.js +1387 -0
  411. package/dist/cjs/modules/word/writer/string-buf.js +11 -0
  412. package/dist/cjs/modules/word/{writers → writer}/styles-writer.js +32 -1
  413. package/dist/cjs/modules/word/{writers → writer}/table-writer.js +94 -11
  414. package/dist/cjs/utils/crypto.browser.js +3 -1
  415. package/dist/cjs/utils/crypto.js +4 -1
  416. package/dist/cjs/utils/font-metrics.js +303 -0
  417. package/dist/cjs/utils/string-buf.js +92 -0
  418. package/dist/cjs/utils/theme-colors.js +126 -0
  419. package/dist/esm/modules/archive/compression/streaming-compress.browser.js +29 -0
  420. package/dist/esm/modules/archive/compression/streaming-compress.js +9 -0
  421. package/dist/esm/modules/archive/compression/worker-pool/pool.browser.js +26 -1
  422. package/dist/esm/modules/archive/fs/archive-file.js +78 -16
  423. package/dist/esm/modules/archive/unzip/stream.browser.js +43 -2
  424. package/dist/esm/modules/excel/chart/chart-ex-builder.js +7 -2
  425. package/dist/esm/modules/excel/chart/chart-ex-renderer.js +4 -9
  426. package/dist/esm/modules/excel/chart/chart.js +1 -7
  427. package/dist/esm/modules/excel/stream/workbook-reader.browser.js +25 -1
  428. package/dist/esm/modules/excel/stream/workbook-reader.js +9 -0
  429. package/dist/esm/modules/excel/stream/workbook-writer.browser.js +228 -13
  430. package/dist/esm/modules/excel/utils/string-buf.js +4 -81
  431. package/dist/esm/modules/excel/workbook.browser.js +135 -25
  432. package/dist/esm/modules/excel/xlsx/xform/chart/chart-space-xform.js +6 -20
  433. package/dist/esm/modules/excel/xlsx/xlsx.browser.js +32 -8
  434. package/dist/esm/modules/excel/xlsx/xlsx.js +9 -1
  435. package/dist/esm/modules/pdf/excel-bridge.js +32 -0
  436. package/dist/esm/modules/pdf/font/metrics.js +3 -237
  437. package/dist/esm/modules/pdf/index.js +1 -1
  438. package/dist/esm/modules/pdf/render-layout-to-pdf.js +647 -0
  439. package/dist/esm/modules/pdf/word-bridge.js +122 -274
  440. package/dist/esm/modules/stream/index.base.js +2 -1
  441. package/dist/esm/modules/stream/internal/sink-adapter.js +198 -0
  442. package/dist/esm/modules/stream/pull-stream.js +51 -5
  443. package/dist/esm/modules/word/advanced/diff.js +167 -0
  444. package/dist/esm/modules/word/advanced/drawing-shapes.js +268 -0
  445. package/dist/esm/modules/word/advanced/field-engine.js +1225 -0
  446. package/dist/esm/modules/word/advanced/glossary.js +79 -0
  447. package/dist/esm/modules/word/advanced/math-convert.js +595 -0
  448. package/dist/esm/modules/word/advanced/ole-objects.js +271 -0
  449. package/dist/esm/modules/word/advanced/style-map.js +322 -0
  450. package/dist/esm/modules/word/advanced/validation.js +1065 -0
  451. package/dist/esm/modules/word/advanced/vba-project.js +265 -0
  452. package/dist/esm/modules/word/bridge/excel-bridge.js +980 -0
  453. package/dist/esm/modules/word/builder/document-handle.js +664 -0
  454. package/dist/esm/modules/word/builder/paragraph-builders.js +90 -0
  455. package/dist/esm/modules/word/builder/run-builders.js +600 -0
  456. package/dist/esm/modules/word/builder/table-builders.js +45 -0
  457. package/dist/esm/modules/word/constants.js +109 -1
  458. package/dist/esm/modules/word/convert/conversion-ir.js +31 -0
  459. package/dist/esm/modules/word/convert/docx-to-semantic.js +499 -0
  460. package/dist/esm/modules/word/convert/flat-opc.js +385 -0
  461. package/dist/esm/modules/word/convert/html/html-import.js +1907 -0
  462. package/dist/{browser/modules/word → esm/modules/word/convert/html}/html-renderer.js +420 -69
  463. package/dist/esm/modules/word/convert/html/html.js +15 -0
  464. package/dist/esm/modules/word/convert/markdown/markdown-import.js +1325 -0
  465. package/dist/esm/modules/word/convert/markdown/markdown-renderer.js +634 -0
  466. package/dist/esm/modules/word/convert/markdown/markdown.js +15 -0
  467. package/dist/esm/modules/word/convert/odt/odt.js +1932 -0
  468. package/dist/esm/modules/word/core/color-utils.js +43 -0
  469. package/dist/esm/modules/word/core/internal-utils.js +209 -0
  470. package/dist/esm/modules/word/core/mapper.js +427 -0
  471. package/dist/esm/modules/word/core/opc-paths.js +48 -0
  472. package/dist/esm/modules/word/core/text-utils.js +202 -0
  473. package/dist/esm/modules/word/core/walker.js +570 -0
  474. package/dist/esm/modules/word/crypto.js +13 -7
  475. package/dist/esm/modules/word/document-io.js +80 -197
  476. package/dist/esm/modules/word/errors.js +54 -2
  477. package/dist/esm/modules/word/excel.js +13 -0
  478. package/dist/esm/modules/word/font/font-embed.js +646 -0
  479. package/dist/{browser/modules/word → esm/modules/word/font}/font-obfuscation.js +4 -9
  480. package/dist/esm/modules/word/font/hyphenation.js +4210 -0
  481. package/dist/esm/modules/word/font/text-shaping.js +635 -0
  482. package/dist/esm/modules/word/html.js +6 -5
  483. package/dist/esm/modules/word/incremental-edit.js +361 -0
  484. package/dist/esm/modules/word/index.base.js +138 -29
  485. package/dist/esm/modules/word/layout/layout-constants.js +17 -0
  486. package/dist/esm/modules/word/layout/layout-full.js +1696 -0
  487. package/dist/esm/modules/word/layout/layout-model.js +16 -0
  488. package/dist/esm/modules/word/layout/layout.js +1167 -0
  489. package/dist/esm/modules/word/layout/render-page.js +1238 -0
  490. package/dist/esm/modules/word/markdown.js +13 -0
  491. package/dist/esm/modules/word/patcher.js +537 -0
  492. package/dist/esm/modules/word/query/compat.js +58 -0
  493. package/dist/esm/modules/word/query/data-binding.js +392 -0
  494. package/dist/esm/modules/word/query/form-fields.js +268 -0
  495. package/dist/esm/modules/word/query/format-search.js +329 -0
  496. package/dist/esm/modules/word/query/mail-merge.js +111 -0
  497. package/dist/esm/modules/word/query/merge.js +617 -0
  498. package/dist/esm/modules/word/query/replace.js +301 -0
  499. package/dist/esm/modules/word/query/revisions.js +879 -0
  500. package/dist/esm/modules/word/query/search.js +346 -0
  501. package/dist/esm/modules/word/query/split.js +135 -0
  502. package/dist/esm/modules/word/query/style-resolve.js +368 -0
  503. package/dist/esm/modules/word/reader/chart-parser.js +810 -0
  504. package/dist/esm/modules/word/reader/comments-parser.js +92 -0
  505. package/dist/esm/modules/word/reader/doc-props-parsers.js +190 -0
  506. package/dist/esm/modules/word/reader/docx-reader.js +2557 -0
  507. package/dist/esm/modules/word/reader/drawing-helpers.js +84 -0
  508. package/dist/esm/modules/word/reader/form-field-parser.js +82 -0
  509. package/dist/esm/modules/word/reader/image-parsers.js +291 -0
  510. package/dist/esm/modules/word/reader/math-parser.js +422 -0
  511. package/dist/esm/modules/word/reader/metadata-parsers.js +87 -0
  512. package/dist/esm/modules/word/reader/numbering-parser.js +166 -0
  513. package/dist/esm/modules/word/reader/paragraph-section-parsers.js +503 -0
  514. package/dist/esm/modules/word/reader/parse-utils.js +249 -0
  515. package/dist/esm/modules/word/reader/properties-parsers.js +332 -0
  516. package/dist/esm/modules/word/reader/reader-context.js +61 -0
  517. package/dist/esm/modules/word/reader/sdt-helpers.js +111 -0
  518. package/dist/esm/modules/word/reader/settings-parser.js +263 -0
  519. package/dist/esm/modules/word/reader/styles-parser.js +147 -0
  520. package/dist/esm/modules/word/reader/table-properties-parsers.js +234 -0
  521. package/dist/esm/modules/word/reader/theme-parser.js +167 -0
  522. package/dist/esm/modules/word/reader/watermark-parser.js +110 -0
  523. package/dist/esm/modules/word/security/cfb-reader.js +410 -0
  524. package/dist/esm/modules/word/{digital-signatures.js → security/digital-signatures.js} +34 -34
  525. package/dist/esm/modules/word/security/document-protection.js +201 -0
  526. package/dist/esm/modules/word/security/encryption.js +602 -0
  527. package/dist/esm/modules/word/security/policy.js +102 -0
  528. package/dist/esm/modules/word/template/template-chart.js +167 -0
  529. package/dist/esm/modules/word/template/template-datasource.js +541 -0
  530. package/dist/esm/modules/word/template/template-engine.js +1435 -0
  531. package/dist/esm/modules/word/units.js +43 -14
  532. package/dist/esm/modules/word/{writers → writer}/chart-writer.js +164 -23
  533. package/dist/esm/modules/word/writer/checkbox-writer.js +79 -0
  534. package/dist/esm/modules/word/{writers → writer}/comment-writer.js +8 -6
  535. package/dist/esm/modules/word/writer/common-parts.js +101 -0
  536. package/dist/{browser/modules/word → esm/modules/word/writer}/content-types.js +14 -6
  537. package/dist/esm/modules/word/writer/document-writer.js +473 -0
  538. package/dist/esm/modules/word/writer/docx-packager.js +1515 -0
  539. package/dist/{browser/modules/word/writers → esm/modules/word/writer}/footnote-writer.js +13 -10
  540. package/dist/{browser/modules/word/writers → esm/modules/word/writer}/header-footer-writer.js +39 -21
  541. package/dist/esm/modules/word/{writers → writer}/image-writer.js +11 -7
  542. package/dist/{browser/modules/word/writers → esm/modules/word/writer}/math-writer.js +21 -1
  543. package/dist/{browser/modules/word/writers → esm/modules/word/writer}/numbering-writer.js +11 -4
  544. package/dist/esm/modules/word/{writers → writer}/paragraph-writer.js +73 -38
  545. package/dist/{browser/modules/word/writers → esm/modules/word/writer}/parts-writer.js +91 -12
  546. package/dist/esm/modules/word/writer/reference-scanners.js +111 -0
  547. package/dist/esm/modules/word/writer/relationships.js +117 -0
  548. package/dist/esm/modules/word/writer/render-context.js +46 -0
  549. package/dist/{browser/modules/word/writers → esm/modules/word/writer}/run-writer.js +126 -24
  550. package/dist/esm/modules/word/writer/sdt-writer.js +189 -0
  551. package/dist/esm/modules/word/writer/stream-buf.js +73 -0
  552. package/dist/esm/modules/word/writer/streaming-writer.js +1382 -0
  553. package/dist/esm/modules/word/writer/string-buf.js +7 -0
  554. package/dist/esm/modules/word/{writers → writer}/styles-writer.js +32 -1
  555. package/dist/esm/modules/word/{writers → writer}/table-writer.js +94 -11
  556. package/dist/esm/utils/crypto.browser.js +3 -1
  557. package/dist/esm/utils/crypto.js +4 -1
  558. package/dist/esm/utils/font-metrics.js +293 -0
  559. package/dist/esm/utils/string-buf.js +89 -0
  560. package/dist/esm/utils/theme-colors.js +120 -0
  561. package/dist/iife/excelts.iife.js +70692 -70337
  562. package/dist/iife/excelts.iife.js.map +1 -1
  563. package/dist/iife/excelts.iife.min.js +57 -57
  564. package/dist/types/modules/archive/fs/archive-file.d.ts +8 -5
  565. package/dist/types/modules/excel/chart/chart-ex-types.d.ts +0 -12
  566. package/dist/types/modules/excel/chart/chart.d.ts +1 -5
  567. package/dist/types/modules/excel/chart/types.d.ts +0 -6
  568. package/dist/types/modules/excel/stream/workbook-writer.browser.d.ts +40 -0
  569. package/dist/types/modules/excel/utils/string-buf.d.ts +5 -26
  570. package/dist/types/modules/excel/xlsx/xlsx.browser.d.ts +19 -9
  571. package/dist/types/modules/excel/xlsx/xlsx.d.ts +10 -2
  572. package/dist/types/modules/pdf/excel-bridge.d.ts +30 -1
  573. package/dist/types/modules/pdf/font/metrics.d.ts +3 -52
  574. package/dist/types/modules/pdf/index.d.ts +1 -1
  575. package/dist/types/modules/pdf/render-layout-to-pdf.d.ts +66 -0
  576. package/dist/types/modules/pdf/word-bridge.d.ts +80 -12
  577. package/dist/types/modules/stream/index.base.d.ts +2 -0
  578. package/dist/types/modules/stream/internal/sink-adapter.d.ts +65 -0
  579. package/dist/types/modules/stream/pull-stream.d.ts +19 -2
  580. package/dist/types/modules/stream/types.d.ts +13 -1
  581. package/dist/types/modules/word/advanced/diff.d.ts +61 -0
  582. package/dist/types/modules/word/advanced/drawing-shapes.d.ts +269 -0
  583. package/dist/types/modules/word/advanced/field-engine.d.ts +43 -0
  584. package/dist/types/modules/word/advanced/glossary.d.ts +86 -0
  585. package/dist/types/modules/word/advanced/math-convert.d.ts +30 -0
  586. package/dist/types/modules/word/advanced/ole-objects.d.ts +115 -0
  587. package/dist/types/modules/word/advanced/style-map.d.ts +105 -0
  588. package/dist/types/modules/word/advanced/validation.d.ts +56 -0
  589. package/dist/types/modules/word/advanced/vba-project.d.ts +91 -0
  590. package/dist/types/modules/word/bridge/excel-bridge.d.ts +127 -0
  591. package/dist/types/modules/word/builder/document-handle.d.ts +151 -0
  592. package/dist/types/modules/word/builder/paragraph-builders.d.ts +61 -0
  593. package/dist/types/modules/word/builder/run-builders.d.ts +374 -0
  594. package/dist/types/modules/word/builder/table-builders.d.ts +23 -0
  595. package/dist/types/modules/word/constants.d.ts +39 -1
  596. package/dist/types/modules/word/convert/conversion-ir.d.ts +210 -0
  597. package/dist/types/modules/word/convert/docx-to-semantic.d.ts +39 -0
  598. package/dist/types/modules/word/convert/flat-opc.d.ts +44 -0
  599. package/dist/types/modules/word/convert/html/html-import.d.ts +50 -0
  600. package/dist/{browser/modules/word → types/modules/word/convert/html}/html-renderer.d.ts +14 -1
  601. package/dist/types/modules/word/convert/html/html.d.ts +15 -0
  602. package/dist/types/modules/word/convert/markdown/markdown-import.d.ts +68 -0
  603. package/dist/types/modules/word/convert/markdown/markdown-renderer.d.ts +25 -0
  604. package/dist/types/modules/word/convert/markdown/markdown.d.ts +15 -0
  605. package/dist/types/modules/word/convert/odt/odt.d.ts +41 -0
  606. package/dist/types/modules/word/{color-utils.d.ts → core/color-utils.d.ts} +8 -1
  607. package/dist/types/modules/word/core/internal-utils.d.ts +90 -0
  608. package/dist/types/modules/word/core/mapper.d.ts +44 -0
  609. package/dist/types/modules/word/core/opc-paths.d.ts +33 -0
  610. package/dist/types/modules/word/core/text-utils.d.ts +38 -0
  611. package/dist/types/modules/word/core/walker.d.ts +119 -0
  612. package/dist/types/modules/word/crypto.d.ts +14 -9
  613. package/dist/types/modules/word/document-io.d.ts +59 -27
  614. package/dist/types/modules/word/errors.d.ts +44 -1
  615. package/dist/types/modules/word/excel.d.ts +14 -0
  616. package/dist/types/modules/word/font/font-embed.d.ts +112 -0
  617. package/dist/types/modules/word/font/hyphenation.d.ts +65 -0
  618. package/dist/types/modules/word/font/text-shaping.d.ts +58 -0
  619. package/dist/types/modules/word/html.d.ts +7 -6
  620. package/dist/types/modules/word/incremental-edit.d.ts +123 -0
  621. package/dist/types/modules/word/index.base.d.ts +194 -10
  622. package/dist/types/modules/word/layout/layout-constants.d.ts +17 -0
  623. package/dist/types/modules/word/layout/layout-full.d.ts +53 -0
  624. package/dist/types/modules/word/layout/layout-model.d.ts +344 -0
  625. package/dist/types/modules/word/layout/layout.d.ts +63 -0
  626. package/dist/types/modules/word/layout/render-page.d.ts +57 -0
  627. package/dist/types/modules/word/markdown.d.ts +14 -0
  628. package/dist/types/modules/word/patcher.d.ts +62 -0
  629. package/dist/types/modules/word/query/compat.d.ts +25 -0
  630. package/dist/types/modules/word/query/data-binding.d.ts +22 -0
  631. package/dist/types/modules/word/query/form-fields.d.ts +41 -0
  632. package/dist/types/modules/word/query/format-search.d.ts +99 -0
  633. package/dist/types/modules/word/query/mail-merge.d.ts +25 -0
  634. package/dist/types/modules/word/query/merge.d.ts +50 -0
  635. package/dist/types/modules/word/query/replace.d.ts +47 -0
  636. package/dist/types/modules/word/query/revisions.d.ts +67 -0
  637. package/dist/types/modules/word/query/search.d.ts +129 -0
  638. package/dist/types/modules/word/query/split.d.ts +44 -0
  639. package/dist/types/modules/word/query/style-resolve.d.ts +104 -0
  640. package/dist/types/modules/word/reader/chart-parser.d.ts +20 -0
  641. package/dist/types/modules/word/reader/comments-parser.d.ts +26 -0
  642. package/dist/types/modules/word/reader/doc-props-parsers.d.ts +15 -0
  643. package/dist/types/modules/word/reader/docx-reader.d.ts +27 -0
  644. package/dist/types/modules/word/reader/drawing-helpers.d.ts +27 -0
  645. package/dist/types/modules/word/reader/form-field-parser.d.ts +21 -0
  646. package/dist/types/modules/word/reader/image-parsers.d.ts +11 -0
  647. package/dist/types/modules/word/reader/math-parser.d.ts +12 -0
  648. package/dist/types/modules/word/reader/metadata-parsers.d.ts +17 -0
  649. package/dist/types/modules/word/reader/numbering-parser.d.ts +13 -0
  650. package/dist/types/modules/word/reader/paragraph-section-parsers.d.ts +12 -0
  651. package/dist/types/modules/word/reader/parse-utils.d.ts +91 -0
  652. package/dist/types/modules/word/reader/properties-parsers.d.ts +21 -0
  653. package/dist/types/modules/word/reader/reader-context.d.ts +69 -0
  654. package/dist/types/modules/word/reader/sdt-helpers.d.ts +29 -0
  655. package/dist/types/modules/word/reader/settings-parser.d.ts +8 -0
  656. package/dist/types/modules/word/reader/styles-parser.d.ts +12 -0
  657. package/dist/types/modules/word/reader/table-properties-parsers.d.ts +12 -0
  658. package/dist/types/modules/word/reader/theme-parser.d.ts +8 -0
  659. package/dist/types/modules/word/reader/watermark-parser.d.ts +15 -0
  660. package/dist/types/modules/word/security/cfb-reader.d.ts +37 -0
  661. package/dist/types/modules/word/{digital-signatures.d.ts → security/digital-signatures.d.ts} +19 -11
  662. package/dist/types/modules/word/security/document-protection.d.ts +93 -0
  663. package/dist/{browser/modules/word → types/modules/word/security}/encryption.d.ts +51 -4
  664. package/dist/types/modules/word/security/policy.d.ts +80 -0
  665. package/dist/types/modules/word/template/template-chart.d.ts +56 -0
  666. package/dist/types/modules/word/template/template-datasource.d.ts +154 -0
  667. package/dist/types/modules/word/template/template-engine.d.ts +121 -0
  668. package/dist/types/modules/word/types.d.ts +224 -25
  669. package/dist/types/modules/word/units.d.ts +26 -0
  670. package/dist/types/modules/word/writer/checkbox-writer.d.ts +17 -0
  671. package/dist/{browser/modules/word/writers → types/modules/word/writer}/comment-writer.d.ts +2 -1
  672. package/dist/types/modules/word/writer/common-parts.d.ts +57 -0
  673. package/dist/{browser/modules/word → types/modules/word/writer}/content-types.d.ts +2 -2
  674. package/dist/types/modules/word/writer/document-writer.d.ts +24 -0
  675. package/dist/types/modules/word/writer/docx-packager.d.ts +35 -0
  676. package/dist/{browser/modules/word/writers → types/modules/word/writer}/footnote-writer.d.ts +3 -2
  677. package/dist/{browser/modules/word/writers → types/modules/word/writer}/header-footer-writer.d.ts +3 -2
  678. package/dist/{browser/modules/word/writers → types/modules/word/writer}/image-writer.d.ts +1 -1
  679. package/dist/types/modules/word/writer/math-writer.d.ts +20 -0
  680. package/dist/types/modules/word/{writers → writer}/numbering-writer.d.ts +1 -1
  681. package/dist/types/modules/word/{writers → writer}/paragraph-writer.d.ts +2 -1
  682. package/dist/types/modules/word/{writers → writer}/parts-writer.d.ts +3 -3
  683. package/dist/types/modules/word/writer/reference-scanners.d.ts +42 -0
  684. package/dist/types/modules/word/writer/relationships.d.ts +52 -0
  685. package/dist/types/modules/word/writer/render-context.d.ts +124 -0
  686. package/dist/types/modules/word/{writers → writer}/run-writer.d.ts +10 -1
  687. package/dist/types/modules/word/writer/sdt-writer.d.ts +25 -0
  688. package/dist/types/modules/word/writer/stream-buf.d.ts +37 -0
  689. package/dist/types/modules/word/writer/streaming-writer.d.ts +344 -0
  690. package/dist/types/modules/word/writer/string-buf.d.ts +8 -0
  691. package/dist/types/modules/word/{writers → writer}/table-writer.d.ts +2 -1
  692. package/dist/types/modules/xml/types.d.ts +22 -0
  693. package/dist/types/utils/crypto.browser.d.ts +3 -1
  694. package/dist/types/utils/crypto.d.ts +4 -1
  695. package/dist/types/utils/font-metrics.d.ts +63 -0
  696. package/dist/types/utils/string-buf.d.ts +42 -0
  697. package/dist/types/utils/theme-colors.d.ts +55 -0
  698. package/package.json +121 -39
  699. package/dist/browser/modules/word/color-utils.js +0 -94
  700. package/dist/browser/modules/word/document.d.ts +0 -657
  701. package/dist/browser/modules/word/document.js +0 -1533
  702. package/dist/browser/modules/word/docx-packager.d.ts +0 -14
  703. package/dist/browser/modules/word/docx-packager.js +0 -822
  704. package/dist/browser/modules/word/docx-reader.d.ts +0 -11
  705. package/dist/browser/modules/word/docx-reader.js +0 -4929
  706. package/dist/browser/modules/word/encryption.js +0 -274
  707. package/dist/browser/modules/word/internal-utils.d.ts +0 -23
  708. package/dist/browser/modules/word/internal-utils.js +0 -54
  709. package/dist/browser/modules/word/namespaces.d.ts +0 -159
  710. package/dist/browser/modules/word/namespaces.js +0 -189
  711. package/dist/browser/modules/word/relationships.d.ts +0 -30
  712. package/dist/browser/modules/word/relationships.js +0 -48
  713. package/dist/browser/modules/word/writers/checkbox-writer.d.ts +0 -9
  714. package/dist/browser/modules/word/writers/checkbox-writer.js +0 -42
  715. package/dist/browser/modules/word/writers/document-writer.d.ts +0 -16
  716. package/dist/browser/modules/word/writers/document-writer.js +0 -461
  717. package/dist/browser/modules/word/writers/math-writer.d.ts +0 -9
  718. package/dist/cjs/modules/word/color-utils.js +0 -97
  719. package/dist/cjs/modules/word/document.js +0 -1645
  720. package/dist/cjs/modules/word/docx-packager.js +0 -825
  721. package/dist/cjs/modules/word/docx-reader.js +0 -4932
  722. package/dist/cjs/modules/word/encryption.js +0 -282
  723. package/dist/cjs/modules/word/internal-utils.js +0 -59
  724. package/dist/cjs/modules/word/namespaces.js +0 -192
  725. package/dist/cjs/modules/word/relationships.js +0 -55
  726. package/dist/cjs/modules/word/writers/checkbox-writer.js +0 -45
  727. package/dist/cjs/modules/word/writers/document-writer.js +0 -465
  728. package/dist/esm/modules/word/color-utils.js +0 -94
  729. package/dist/esm/modules/word/document.js +0 -1533
  730. package/dist/esm/modules/word/docx-packager.js +0 -822
  731. package/dist/esm/modules/word/docx-reader.js +0 -4929
  732. package/dist/esm/modules/word/encryption.js +0 -274
  733. package/dist/esm/modules/word/internal-utils.js +0 -54
  734. package/dist/esm/modules/word/namespaces.js +0 -189
  735. package/dist/esm/modules/word/relationships.js +0 -48
  736. package/dist/esm/modules/word/writers/checkbox-writer.js +0 -42
  737. package/dist/esm/modules/word/writers/document-writer.js +0 -461
  738. package/dist/types/modules/word/document.d.ts +0 -657
  739. package/dist/types/modules/word/docx-packager.d.ts +0 -14
  740. package/dist/types/modules/word/docx-reader.d.ts +0 -11
  741. package/dist/types/modules/word/internal-utils.d.ts +0 -23
  742. package/dist/types/modules/word/namespaces.d.ts +0 -159
  743. package/dist/types/modules/word/relationships.d.ts +0 -30
  744. package/dist/types/modules/word/writers/checkbox-writer.d.ts +0 -9
  745. package/dist/types/modules/word/writers/document-writer.d.ts +0 -16
  746. package/dist/types/modules/word/writers/math-writer.d.ts +0 -9
  747. /package/dist/browser/modules/word/{font-obfuscation.d.ts → font/font-obfuscation.d.ts} +0 -0
  748. /package/dist/browser/modules/word/{writers → writer}/chart-writer.d.ts +0 -0
  749. /package/dist/browser/modules/word/{writers → writer}/section-writer.d.ts +0 -0
  750. /package/dist/browser/modules/word/{writers → writer}/section-writer.js +0 -0
  751. /package/dist/browser/modules/word/{writers → writer}/styles-writer.d.ts +0 -0
  752. /package/dist/browser/modules/word/{writers → writer}/textbox-writer.d.ts +0 -0
  753. /package/dist/browser/modules/word/{writers → writer}/textbox-writer.js +0 -0
  754. /package/dist/browser/modules/word/{writers → writer}/toc-writer.d.ts +0 -0
  755. /package/dist/browser/modules/word/{writers → writer}/toc-writer.js +0 -0
  756. /package/dist/cjs/modules/word/{writers → writer}/section-writer.js +0 -0
  757. /package/dist/cjs/modules/word/{writers → writer}/textbox-writer.js +0 -0
  758. /package/dist/cjs/modules/word/{writers → writer}/toc-writer.js +0 -0
  759. /package/dist/esm/modules/word/{writers → writer}/section-writer.js +0 -0
  760. /package/dist/esm/modules/word/{writers → writer}/textbox-writer.js +0 -0
  761. /package/dist/esm/modules/word/{writers → writer}/toc-writer.js +0 -0
  762. /package/dist/types/modules/word/{font-obfuscation.d.ts → font/font-obfuscation.d.ts} +0 -0
  763. /package/dist/types/modules/word/{writers → writer}/chart-writer.d.ts +0 -0
  764. /package/dist/types/modules/word/{writers → writer}/section-writer.d.ts +0 -0
  765. /package/dist/types/modules/word/{writers → writer}/styles-writer.d.ts +0 -0
  766. /package/dist/types/modules/word/{writers → writer}/textbox-writer.d.ts +0 -0
  767. /package/dist/types/modules/word/{writers → writer}/toc-writer.d.ts +0 -0
@@ -0,0 +1,42 @@
1
+ /**
2
+ * StringBuf - Cross-Platform String Buffer
3
+ *
4
+ * Efficient string builder that accumulates UTF-8 encoded bytes into a single
5
+ * `Uint8Array`. Designed for hot paths that build large XML / text payloads
6
+ * (XLSX worksheet writers, streaming DOCX writer) where naïve `string +=`
7
+ * concatenation triggers O(n²) re-allocations.
8
+ *
9
+ * Works identically in Node.js and Browser environments — uses only
10
+ * `TextEncoder` and `Uint8Array`.
11
+ */
12
+ interface StringBufOptions {
13
+ /** Initial capacity in bytes (default: 16384). */
14
+ size?: number;
15
+ /**
16
+ * Encoding label, accepted for API symmetry. Only UTF-8 is supported by
17
+ * `TextEncoder`, so this option is ignored.
18
+ */
19
+ encoding?: string;
20
+ }
21
+ /**
22
+ * Efficient string builder backed by a growable `Uint8Array`.
23
+ */
24
+ declare class StringBuf {
25
+ private _buf;
26
+ private _inPos;
27
+ private _buffer;
28
+ constructor(options?: StringBufOptions);
29
+ get length(): number;
30
+ get capacity(): number;
31
+ get buffer(): Uint8Array;
32
+ /** Return a snapshot of the bytes written so far. Cached until next mutation. */
33
+ toBuffer(): Uint8Array;
34
+ reset(position?: number): void;
35
+ private _grow;
36
+ /** Append a string, encoded as UTF-8. */
37
+ addText(text: string): void;
38
+ /** Append the contents of another StringBuf without re-encoding. */
39
+ addStringBuf(inBuf: StringBuf): void;
40
+ }
41
+ export { StringBuf };
42
+ export type { StringBufOptions };
@@ -0,0 +1,89 @@
1
+ /**
2
+ * StringBuf - Cross-Platform String Buffer
3
+ *
4
+ * Efficient string builder that accumulates UTF-8 encoded bytes into a single
5
+ * `Uint8Array`. Designed for hot paths that build large XML / text payloads
6
+ * (XLSX worksheet writers, streaming DOCX writer) where naïve `string +=`
7
+ * concatenation triggers O(n²) re-allocations.
8
+ *
9
+ * Works identically in Node.js and Browser environments — uses only
10
+ * `TextEncoder` and `Uint8Array`.
11
+ */
12
+ const encoder = new TextEncoder();
13
+ /**
14
+ * Efficient string builder backed by a growable `Uint8Array`.
15
+ */
16
+ class StringBuf {
17
+ constructor(options) {
18
+ this._buf = new Uint8Array((options && options.size) || 16384);
19
+ this._inPos = 0;
20
+ this._buffer = undefined;
21
+ }
22
+ get length() {
23
+ return this._inPos;
24
+ }
25
+ get capacity() {
26
+ return this._buf.length;
27
+ }
28
+ get buffer() {
29
+ return this._buf;
30
+ }
31
+ /** Return a snapshot of the bytes written so far. Cached until next mutation. */
32
+ toBuffer() {
33
+ if (!this._buffer) {
34
+ this._buffer = this._buf.slice(0, this._inPos);
35
+ }
36
+ return this._buffer;
37
+ }
38
+ reset(position) {
39
+ position = position ?? 0;
40
+ this._buffer = undefined;
41
+ this._inPos = position;
42
+ }
43
+ _grow(min) {
44
+ let size = this._buf.length * 2;
45
+ while (size < min) {
46
+ size *= 2;
47
+ }
48
+ const buf = new Uint8Array(size);
49
+ buf.set(this._buf);
50
+ this._buf = buf;
51
+ }
52
+ /** Append a string, encoded as UTF-8. */
53
+ addText(text) {
54
+ this._buffer = undefined;
55
+ // Optimistically reserve 1 byte per char (true for ASCII; multi-byte
56
+ // chars trigger the slow path below).
57
+ const optimistic = this._inPos + text.length;
58
+ if (optimistic > this._buf.length - 4) {
59
+ this._grow(optimistic);
60
+ }
61
+ // `encodeInto` writes directly into the buffer, avoiding the intermediate
62
+ // Uint8Array allocation that `encoder.encode()` creates.
63
+ const target = this._buf.subarray(this._inPos);
64
+ const result = encoder.encodeInto(text, target);
65
+ if (result.read < text.length) {
66
+ // Multi-byte chars exceeded the optimistic estimate.
67
+ // Worst case: 3 bytes per remaining char.
68
+ const remaining = text.length - result.read;
69
+ this._grow(this._inPos + result.written + remaining * 3);
70
+ const result2 = encoder.encodeInto(text.substring(result.read), this._buf.subarray(this._inPos + result.written));
71
+ this._inPos += result.written + result2.written;
72
+ }
73
+ else {
74
+ this._inPos += result.written;
75
+ }
76
+ }
77
+ /** Append the contents of another StringBuf without re-encoding. */
78
+ addStringBuf(inBuf) {
79
+ if (inBuf.length) {
80
+ this._buffer = undefined;
81
+ if (this.length + inBuf.length > this.capacity) {
82
+ this._grow(this.length + inBuf.length);
83
+ }
84
+ this._buf.set(inBuf._buf.subarray(0, inBuf.length), this._inPos);
85
+ this._inPos += inBuf.length;
86
+ }
87
+ }
88
+ }
89
+ export { StringBuf };
@@ -0,0 +1,55 @@
1
+ /**
2
+ * OOXML Theme Color Resolution — shared between Excel and Word modules.
3
+ *
4
+ * Provides utilities for resolving theme color references with tint/shade
5
+ * transformations per the ECMA-376 color model.
6
+ */
7
+ /** Standard OOXML theme color names (scheme keys in theme1.xml). */
8
+ export type OoxmlThemeColorName = "dk1" | "lt1" | "dk2" | "lt2" | "accent1" | "accent2" | "accent3" | "accent4" | "accent5" | "accent6" | "hlink" | "folHlink";
9
+ /**
10
+ * Map from OOXML property attribute values to theme scheme keys.
11
+ *
12
+ * Word/Excel run/paragraph/cell properties use long-form names ("dark1",
13
+ * "light1", "hyperlink") while the theme XML stores short-form keys
14
+ * ("dk1", "lt1", "hlink"). This map normalises both forms.
15
+ */
16
+ export declare const THEME_COLOR_ATTRIBUTE_MAP: Record<string, OoxmlThemeColorName>;
17
+ /**
18
+ * Apply a tint (lighten toward white) to a hex color.
19
+ *
20
+ * OOXML tint formula: `newComponent = component + (255 - component) * tint`
21
+ * where tint ∈ [0, 1]. tint=0 → original, tint=1 → white.
22
+ *
23
+ * @param hex - 6-character hex color string (no "#" prefix).
24
+ * @param tint - Tint value in range [0, 1].
25
+ * @returns Tinted 6-character hex color string.
26
+ */
27
+ export declare function applyTint(hex: string, tint: number): string;
28
+ /**
29
+ * Apply a shade (darken toward black) to a hex color.
30
+ *
31
+ * OOXML shade formula: `newComponent = component * shade`
32
+ * where shade ∈ [0, 1]. shade=1 → original, shade=0 → black.
33
+ *
34
+ * @param hex - 6-character hex color string (no "#" prefix).
35
+ * @param shade - Shade value in range [0, 1].
36
+ * @returns Shaded 6-character hex color string.
37
+ */
38
+ export declare function applyShade(hex: string, shade: number): string;
39
+ /**
40
+ * Resolve a theme color reference to a hex color string.
41
+ *
42
+ * Looks up the theme color by attribute name (normalising long-form names
43
+ * like "dark1" to scheme keys like "dk1"), then applies optional tint or
44
+ * shade transformation.
45
+ *
46
+ * @param themeColorName - The theme color attribute value (e.g. "accent1", "dark1", "dk1").
47
+ * @param colors - The theme color scheme (scheme key → 6-char hex mapping).
48
+ * @param tint - Optional tint value in [0, 1]. Values > 1 are treated as
49
+ * raw bytes (0-255) and normalised by dividing by 255.
50
+ * @param shade - Optional shade value in [0, 1]. Values > 1 are treated as
51
+ * raw bytes (0-255) and normalised by dividing by 255.
52
+ * @returns Resolved 6-character hex color string, or undefined if the theme
53
+ * color name cannot be found in the provided scheme.
54
+ */
55
+ export declare function resolveOoxmlThemeColor(themeColorName: string, colors: Readonly<Record<string, string>>, tint?: number, shade?: number): string | undefined;
@@ -0,0 +1,120 @@
1
+ /**
2
+ * OOXML Theme Color Resolution — shared between Excel and Word modules.
3
+ *
4
+ * Provides utilities for resolving theme color references with tint/shade
5
+ * transformations per the ECMA-376 color model.
6
+ */
7
+ // =============================================================================
8
+ // Constants
9
+ // =============================================================================
10
+ /**
11
+ * Map from OOXML property attribute values to theme scheme keys.
12
+ *
13
+ * Word/Excel run/paragraph/cell properties use long-form names ("dark1",
14
+ * "light1", "hyperlink") while the theme XML stores short-form keys
15
+ * ("dk1", "lt1", "hlink"). This map normalises both forms.
16
+ */
17
+ export const THEME_COLOR_ATTRIBUTE_MAP = {
18
+ dark1: "dk1",
19
+ light1: "lt1",
20
+ dark2: "dk2",
21
+ light2: "lt2",
22
+ accent1: "accent1",
23
+ accent2: "accent2",
24
+ accent3: "accent3",
25
+ accent4: "accent4",
26
+ accent5: "accent5",
27
+ accent6: "accent6",
28
+ hyperlink: "hlink",
29
+ followedHyperlink: "folHlink",
30
+ // Also accept direct scheme keys
31
+ dk1: "dk1",
32
+ lt1: "lt1",
33
+ dk2: "dk2",
34
+ lt2: "lt2",
35
+ hlink: "hlink",
36
+ folHlink: "folHlink"
37
+ };
38
+ // =============================================================================
39
+ // Tint / Shade transformations
40
+ // =============================================================================
41
+ /**
42
+ * Apply a tint (lighten toward white) to a hex color.
43
+ *
44
+ * OOXML tint formula: `newComponent = component + (255 - component) * tint`
45
+ * where tint ∈ [0, 1]. tint=0 → original, tint=1 → white.
46
+ *
47
+ * @param hex - 6-character hex color string (no "#" prefix).
48
+ * @param tint - Tint value in range [0, 1].
49
+ * @returns Tinted 6-character hex color string.
50
+ */
51
+ export function applyTint(hex, tint) {
52
+ const r = parseInt(hex.slice(0, 2), 16);
53
+ const g = parseInt(hex.slice(2, 4), 16);
54
+ const b = parseInt(hex.slice(4, 6), 16);
55
+ const nr = Math.round(r + (255 - r) * tint);
56
+ const ng = Math.round(g + (255 - g) * tint);
57
+ const nb = Math.round(b + (255 - b) * tint);
58
+ return toHex2(nr) + toHex2(ng) + toHex2(nb);
59
+ }
60
+ /**
61
+ * Apply a shade (darken toward black) to a hex color.
62
+ *
63
+ * OOXML shade formula: `newComponent = component * shade`
64
+ * where shade ∈ [0, 1]. shade=1 → original, shade=0 → black.
65
+ *
66
+ * @param hex - 6-character hex color string (no "#" prefix).
67
+ * @param shade - Shade value in range [0, 1].
68
+ * @returns Shaded 6-character hex color string.
69
+ */
70
+ export function applyShade(hex, shade) {
71
+ const r = parseInt(hex.slice(0, 2), 16);
72
+ const g = parseInt(hex.slice(2, 4), 16);
73
+ const b = parseInt(hex.slice(4, 6), 16);
74
+ const nr = Math.round(r * shade);
75
+ const ng = Math.round(g * shade);
76
+ const nb = Math.round(b * shade);
77
+ return toHex2(nr) + toHex2(ng) + toHex2(nb);
78
+ }
79
+ // =============================================================================
80
+ // Theme Color Resolution
81
+ // =============================================================================
82
+ /**
83
+ * Resolve a theme color reference to a hex color string.
84
+ *
85
+ * Looks up the theme color by attribute name (normalising long-form names
86
+ * like "dark1" to scheme keys like "dk1"), then applies optional tint or
87
+ * shade transformation.
88
+ *
89
+ * @param themeColorName - The theme color attribute value (e.g. "accent1", "dark1", "dk1").
90
+ * @param colors - The theme color scheme (scheme key → 6-char hex mapping).
91
+ * @param tint - Optional tint value in [0, 1]. Values > 1 are treated as
92
+ * raw bytes (0-255) and normalised by dividing by 255.
93
+ * @param shade - Optional shade value in [0, 1]. Values > 1 are treated as
94
+ * raw bytes (0-255) and normalised by dividing by 255.
95
+ * @returns Resolved 6-character hex color string, or undefined if the theme
96
+ * color name cannot be found in the provided scheme.
97
+ */
98
+ export function resolveOoxmlThemeColor(themeColorName, colors, tint, shade) {
99
+ const key = THEME_COLOR_ATTRIBUTE_MAP[themeColorName] ?? themeColorName;
100
+ const base = colors[key];
101
+ if (!base) {
102
+ return undefined;
103
+ }
104
+ if (tint !== undefined && tint !== 0) {
105
+ const normalizedTint = tint > 1 ? tint / 255 : tint;
106
+ return applyTint(base, normalizedTint);
107
+ }
108
+ if (shade !== undefined && shade !== 0) {
109
+ const normalizedShade = shade > 1 ? shade / 255 : shade;
110
+ return applyShade(base, normalizedShade);
111
+ }
112
+ return base;
113
+ }
114
+ // =============================================================================
115
+ // Helpers
116
+ // =============================================================================
117
+ function toHex2(n) {
118
+ const h = Math.max(0, Math.min(255, n)).toString(16);
119
+ return h.length < 2 ? "0" + h : h;
120
+ }
@@ -52,6 +52,15 @@ function hasDeflateRaw() {
52
52
  /**
53
53
  * Base streaming codec with unified lifecycle management.
54
54
  * Backend can emit events via the returned codec reference.
55
+ *
56
+ * Backpressure: each `write()` chains a deflate task onto `writeChain`.
57
+ * Without throttling, a fast producer could enqueue thousands of tasks
58
+ * (each retaining its input chunk) before the backend catches up. To
59
+ * surface backpressure to the caller, we count pending writes; once the
60
+ * count reaches `HIGH_WATER_MARK`, `write()` returns `false`. When the
61
+ * count drops back below the mark, we emit `'drain'` so callers using
62
+ * the standard Node Writable contract (`pipe()` / `pipeline()`) can
63
+ * resume. This keeps memory bounded on slow backends or slow consumers.
55
64
  */
56
65
  class AsyncStreamCodec extends event_emitter_1.EventEmitter {
57
66
  constructor() {
@@ -60,6 +69,8 @@ class AsyncStreamCodec extends event_emitter_1.EventEmitter {
60
69
  this.destroyed = false;
61
70
  this.writeChain = Promise.resolve();
62
71
  this._backend = null;
72
+ this._pendingWrites = 0;
73
+ this._needsDrain = false;
63
74
  }
64
75
  setBackend(backend) {
65
76
  this._backend = backend;
@@ -79,6 +90,7 @@ class AsyncStreamCodec extends event_emitter_1.EventEmitter {
79
90
  if (!backend) {
80
91
  throw new Error("Backend not initialized");
81
92
  }
93
+ this._pendingWrites++;
82
94
  const promise = this.writeChain.then(() => backend.write(chunk));
83
95
  this.writeChain = promise;
84
96
  promise
@@ -91,7 +103,20 @@ class AsyncStreamCodec extends event_emitter_1.EventEmitter {
91
103
  if (!this.destroyed) {
92
104
  handleError(this, err, callback);
93
105
  }
106
+ })
107
+ .finally(() => {
108
+ this._pendingWrites--;
109
+ if (this._needsDrain &&
110
+ this._pendingWrites < AsyncStreamCodec.HIGH_WATER_MARK &&
111
+ !this.destroyed) {
112
+ this._needsDrain = false;
113
+ this.emit("drain");
114
+ }
94
115
  });
116
+ if (this._pendingWrites >= AsyncStreamCodec.HIGH_WATER_MARK) {
117
+ this._needsDrain = true;
118
+ return false;
119
+ }
95
120
  return true;
96
121
  }
97
122
  end(callback) {
@@ -118,6 +143,10 @@ class AsyncStreamCodec extends event_emitter_1.EventEmitter {
118
143
  }
119
144
  }
120
145
  }
146
+ // Allow up to this many in-flight chunks before signalling backpressure.
147
+ // 16 chunks × typical 64 KiB ≈ 1 MiB of in-flight retention, enough to
148
+ // saturate the deflate backend without unbounded growth.
149
+ AsyncStreamCodec.HIGH_WATER_MARK = 16;
121
150
  function createNativeWebStreamCodec(format, isCompress) {
122
151
  const stream = isCompress
123
152
  ? new CompressionStream(format)
@@ -21,6 +21,15 @@ const _stream_1 = require("../../stream/index.js");
21
21
  /**
22
22
  * Generic wrapper around zlib streams that flushes after every write.
23
23
  * This ensures true streaming behavior - data is emitted immediately, not buffered.
24
+ *
25
+ * Backpressure note: the inner `zstream` (Node's `zlib.createDeflate*` etc)
26
+ * is itself a Transform, so its own `_transform` honours backpressure on
27
+ * the writer side. The `'data'` listener pushes into our own Transform's
28
+ * readable side; if a consumer is slow, our `push()` returns false but
29
+ * the inner zlib stream keeps emitting 'data' until its OWN HWM stops it.
30
+ * In the worst case, the zlib internal queue + our readable queue both
31
+ * fill to HWM (≈64 KiB total). For excelts's actual use (one zlib stream
32
+ * per ZIP entry, consumer is the zip framer which keeps up), this is fine.
24
33
  */
25
34
  class TrueStreamingZlib extends _stream_1.Transform {
26
35
  constructor(zstream) {
@@ -507,9 +507,10 @@ class WorkerPool {
507
507
  */
508
508
  _handleWorkerError(poolWorker, event) {
509
509
  const taskId = poolWorker.currentTaskId;
510
+ const session = poolWorker.streamSession;
510
511
  // Terminate the failed worker
511
512
  this._terminateWorker(poolWorker);
512
- // Fail the current task if any
513
+ // Fail the current batch task if any
513
514
  if (taskId !== null) {
514
515
  const task = this._pendingTasks.get(taskId);
515
516
  if (task) {
@@ -519,6 +520,30 @@ class WorkerPool {
519
520
  task.reject(new Error(event.message || "Worker error"));
520
521
  }
521
522
  }
523
+ // CRITICAL: a worker hosting a streaming session can die from an
524
+ // uncaught error in the worker script, OOM, CSP violation, page
525
+ // unload, etc. The session is NOT in `_pendingTasks` (those are
526
+ // batch-only) — without this, the session's `resolveStart` /
527
+ // slot waiter / drain waiter / `onError` are never called and the
528
+ // caller (AsyncStreamCodec.write/end) hangs forever. Wake every
529
+ // promise we own and report the error to the codec.
530
+ if (session) {
531
+ const error = new Error(event.message || "Worker terminated unexpectedly");
532
+ session.ended = true;
533
+ session.rejectStart?.(error);
534
+ session.rejectStart = null;
535
+ session.resolveStart = null;
536
+ this._resolveSlotWaiter(session);
537
+ this._resolveDrainWaiter(session);
538
+ try {
539
+ session.onError(error);
540
+ }
541
+ catch {
542
+ // The onError callback is user-supplied; if it throws we still
543
+ // want to keep cleaning up the pool.
544
+ }
545
+ poolWorker.streamSession = null;
546
+ }
522
547
  // Try to process remaining tasks
523
548
  this._processQueue();
524
549
  }
@@ -1232,15 +1232,18 @@ class ArchiveFile {
1232
1232
  * archive.addFile("large-file.bin");
1233
1233
  * archive.addDirectory("./data");
1234
1234
  *
1235
- * // Stream to a file
1235
+ * // Recommended: pipeTo() handles backpressure end-to-end.
1236
+ * await archive.pipeTo(createWriteStream("output.zip"));
1237
+ *
1238
+ * // Or stream manually — REMEMBER to honor backpressure on the sink:
1239
+ * import { once } from "node:events";
1236
1240
  * const writeStream = createWriteStream("output.zip");
1237
1241
  * for await (const chunk of archive.stream()) {
1238
- * writeStream.write(chunk);
1242
+ * if (!writeStream.write(chunk)) {
1243
+ * await once(writeStream, "drain");
1244
+ * }
1239
1245
  * }
1240
1246
  * writeStream.end();
1241
- *
1242
- * // Or use pipeTo() for simpler file output
1243
- * await archive.pipeTo(createWriteStream("output.zip"));
1244
1247
  * ```
1245
1248
  */
1246
1249
  stream(options = {}) {
@@ -2618,23 +2621,82 @@ class ArchiveFile {
2618
2621
  }
2619
2622
  clearConsumedChunks();
2620
2623
  }
2624
+ // Eagerly attach an error listener so a mid-stream gzip failure is
2625
+ // captured and surfaced (instead of becoming an uncaught exception
2626
+ // when the listener-less Transform emits 'error' during our drain
2627
+ // await below). Stored in a closure variable so the drain await can
2628
+ // race against it.
2629
+ let gzipError = null;
2630
+ const onGzipError = (err) => {
2631
+ if (!gzipError) {
2632
+ gzipError = err;
2633
+ }
2634
+ };
2635
+ gzipStream.on("error", onGzipError);
2621
2636
  // Collect gzip output
2622
2637
  gzipStream.on("data", (chunk) => {
2623
2638
  chunks.push(chunk);
2624
2639
  });
2625
- // Pipe tar chunks through gzip
2626
- for await (const tarChunk of tarIterable) {
2627
- gzipStream.write(tarChunk);
2628
- // Yield any available gzip output
2629
- for (const chunk of drainChunks()) {
2630
- yield chunk;
2640
+ try {
2641
+ // Pipe tar chunks through gzip. Honor `gzipStream.write()`'s
2642
+ // backpressure signal so the gzip Transform's internal buffer
2643
+ // can't grow unbounded if tar produces faster than gzip deflates.
2644
+ for await (const tarChunk of tarIterable) {
2645
+ if (gzipError) {
2646
+ // gzipError is captured as an Error (the closure annotation
2647
+ // says `Error | null`); rethrow rather than wrap to preserve
2648
+ // the original stack and message.
2649
+ // oxlint-disable-next-line no-throw-literal
2650
+ throw gzipError;
2651
+ }
2652
+ if (!gzipStream.write(tarChunk)) {
2653
+ // Race drain vs error so a mid-stream gzip failure rejects
2654
+ // promptly instead of leaving us parked on a 'drain' that
2655
+ // will never fire.
2656
+ await new Promise((resolve, reject) => {
2657
+ const cleanup = () => {
2658
+ gzipStream.off("drain", onDrain);
2659
+ gzipStream.off("error", onError);
2660
+ };
2661
+ const onDrain = () => {
2662
+ cleanup();
2663
+ resolve();
2664
+ };
2665
+ const onError = (err) => {
2666
+ cleanup();
2667
+ reject(err);
2668
+ };
2669
+ gzipStream.once("drain", onDrain);
2670
+ gzipStream.once("error", onError);
2671
+ });
2672
+ }
2673
+ // Yield any available gzip output
2674
+ for (const chunk of drainChunks()) {
2675
+ yield chunk;
2676
+ }
2631
2677
  }
2678
+ // Finalize gzip stream — re-use the existing onGzipError listener
2679
+ // for the end() callback path, but wrap it as a Promise that
2680
+ // rejects on either error or accepts on end.
2681
+ await new Promise((resolve, reject) => {
2682
+ if (gzipError) {
2683
+ reject(gzipError);
2684
+ return;
2685
+ }
2686
+ const onEndError = (err) => {
2687
+ gzipStream.off("error", onEndError);
2688
+ reject(err);
2689
+ };
2690
+ gzipStream.once("error", onEndError);
2691
+ gzipStream.end(() => {
2692
+ gzipStream.off("error", onEndError);
2693
+ resolve();
2694
+ });
2695
+ });
2696
+ }
2697
+ finally {
2698
+ gzipStream.off("error", onGzipError);
2632
2699
  }
2633
- // Finalize gzip stream
2634
- await new Promise((resolve, reject) => {
2635
- gzipStream.on("error", reject);
2636
- gzipStream.end(() => resolve());
2637
- });
2638
2700
  // Yield remaining chunks
2639
2701
  for (const chunk of drainChunks()) {
2640
2702
  yield chunk;
@@ -54,6 +54,11 @@ class BrowserInflateRaw extends _stream_1.Duplex {
54
54
  this._bytesIn = 0;
55
55
  this._bytesOut = 0;
56
56
  this._readingDone = false;
57
+ // Backpressure: when `push()` returns false, the reader loop parks on this
58
+ // resolver. `_read()` (called by Node when the consumer wants more bytes)
59
+ // resolves it so the loop continues. Without this, a slow consumer would
60
+ // cause unbounded growth of the Duplex's internal readable buffer.
61
+ this._readPullResolver = null;
57
62
  // Track pending write count for proper ordering
58
63
  this._pendingWrites = 0;
59
64
  this._writeFinishedPromise = null;
@@ -111,6 +116,29 @@ class BrowserInflateRaw extends _stream_1.Duplex {
111
116
  }
112
117
  });
113
118
  }
119
+ /**
120
+ * Park the reader loop until the consumer pulls more data. Resolved by
121
+ * the next `_read()` invocation from Node, which signals that the
122
+ * Duplex's readable buffer has room again.
123
+ */
124
+ _waitForReadablePull() {
125
+ if (this._readPullResolver) {
126
+ // Should not happen — only one push site at a time.
127
+ return Promise.resolve();
128
+ }
129
+ return new Promise(resolve => {
130
+ this._readPullResolver = resolve;
131
+ });
132
+ }
133
+ _read(_size) {
134
+ // Consumer wants more bytes. Wake the reader loop if it parked on
135
+ // backpressure.
136
+ const resolver = this._readPullResolver;
137
+ if (resolver) {
138
+ this._readPullResolver = null;
139
+ resolver();
140
+ }
141
+ }
114
142
  async _startReading() {
115
143
  if (this.reading) {
116
144
  return;
@@ -123,8 +151,14 @@ class BrowserInflateRaw extends _stream_1.Duplex {
123
151
  break;
124
152
  }
125
153
  this._bytesOut += value.length;
126
- // Directly push to the readable side of Duplex
127
- this.push(value);
154
+ // Push to the Duplex's readable side. If the consumer is slow,
155
+ // `push()` returns false; pause our reader-loop until the consumer
156
+ // pulls. Without this, a fast WebStream decompressor could overrun
157
+ // the Duplex's readable buffer and accumulate megabytes of
158
+ // decompressed data with no consumer.
159
+ if (!this.push(value)) {
160
+ await this._waitForReadablePull();
161
+ }
128
162
  }
129
163
  }
130
164
  catch (e) {
@@ -182,6 +216,13 @@ class BrowserInflateRaw extends _stream_1.Duplex {
182
216
  this.writer.abort(error ?? undefined).catch(() => { });
183
217
  }
184
218
  this.reader.cancel(error ?? undefined).catch(() => { });
219
+ // Wake the reader-loop's backpressure waiter if any so `_startReading()`
220
+ // can unwind cleanly instead of hanging on a never-resolved promise.
221
+ const resolver = this._readPullResolver;
222
+ if (resolver) {
223
+ this._readPullResolver = null;
224
+ resolver();
225
+ }
185
226
  return super.destroy(error ?? undefined);
186
227
  }
187
228
  }
@@ -783,8 +783,13 @@ function validateChartExOptions(opts) {
783
783
  validateBinning(binning);
784
784
  }
785
785
  opts.series.forEach((series, i) => {
786
- if (!series.values) {
787
- throw new errors_1.ChartOptionsError(`chartEx.series[${i}].values is required.`);
786
+ // A series must reference its data either via a worksheet formula
787
+ // (`values`) or via cached literal values (`literalValues`). Headless
788
+ // chart pipelines (e.g. the Word `buildWordChartExXml` bridge) ship
789
+ // only `literalValues` because there is no underlying worksheet to
790
+ // reference.
791
+ if (!series.values && !series.literalValues?.length) {
792
+ throw new errors_1.ChartOptionsError(`chartEx.series[${i}].values or literalValues is required.`);
788
793
  }
789
794
  if (series.literalValues?.some(value => !Number.isFinite(value))) {
790
795
  throw new errors_1.ChartOptionsError(`chartEx.series[${i}].literalValues must contain only finite numbers.`);
@@ -3561,11 +3561,8 @@ function consolidateDataForRender(space) {
3561
3561
  function renderChartData(data) {
3562
3562
  const parts = [];
3563
3563
  parts.push(" <cx:chartData>");
3564
- // NOTE: `cx:externalData` used to be emitted here, but it is a
3565
- // child of `cx:chartSpace` (not `cx:chartData`) per the Chart2014
3566
- // schema. The writer now emits it at the chartSpace level; the
3567
- // deprecated `data.externalData` slot is ignored here so a
3568
- // legacy round-trip cannot double-emit it.
3564
+ // `cx:externalData` is a child of `cx:chartSpace`, not `cx:chartData`,
3565
+ // per the Chart2014 schema emitted by the chartSpace renderer.
3569
3566
  for (const entry of data.data) {
3570
3567
  parts.push(renderDataEntry(entry));
3571
3568
  }
@@ -3781,10 +3778,8 @@ function renderChart(chart) {
3781
3778
  if (chart.legend) {
3782
3779
  parts.push(renderLegend(chart.legend));
3783
3780
  }
3784
- // CT_Chart does NOT carry `spPr` in the ECMA-376 / Chart2014 schema
3785
- // — chart-frame styling lives on `CT_ChartSpace`. `chart.spPr` is a
3786
- // legacy type field kept for backward compat (see the @deprecated
3787
- // note on `ChartExChart.spPr`); do not emit it to avoid invalid XML.
3781
+ // `CT_Chart` carries no `spPr` per the Chart2014 schema chart-frame
3782
+ // styling lives on `CT_ChartSpace`, emitted by the chartSpace renderer.
3788
3783
  if (chart.extLst) {
3789
3784
  parts.push(` ${chart.extLst}`);
3790
3785
  }