@cj-tech-master/excelts 9.4.2 → 9.5.0

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 (618) hide show
  1. package/dist/browser/index.browser.d.ts +8 -5
  2. package/dist/browser/index.browser.js +19 -1
  3. package/dist/browser/index.d.ts +4 -2
  4. package/dist/browser/index.js +9 -1
  5. package/dist/browser/modules/excel/chart/cache-populator.d.ts +49 -0
  6. package/dist/browser/modules/excel/chart/cache-populator.js +1171 -0
  7. package/dist/browser/modules/excel/chart/chart-api.d.ts +92 -0
  8. package/dist/browser/modules/excel/chart/chart-api.js +364 -0
  9. package/dist/browser/modules/excel/chart/chart-builder.d.ts +48 -0
  10. package/dist/browser/modules/excel/chart/chart-builder.js +2432 -0
  11. package/dist/browser/modules/excel/chart/chart-ex-builder.d.ts +36 -0
  12. package/dist/browser/modules/excel/chart/chart-ex-builder.js +903 -0
  13. package/dist/browser/modules/excel/chart/chart-ex-parser.d.ts +8 -0
  14. package/dist/browser/modules/excel/chart/chart-ex-parser.js +1205 -0
  15. package/dist/browser/modules/excel/chart/chart-ex-renderer.d.ts +187 -0
  16. package/dist/browser/modules/excel/chart/chart-ex-renderer.js +5352 -0
  17. package/dist/browser/modules/excel/chart/chart-ex-types.d.ts +531 -0
  18. package/dist/browser/modules/excel/chart/chart-ex-types.js +11 -0
  19. package/dist/browser/modules/excel/chart/chart-images.d.ts +78 -0
  20. package/dist/browser/modules/excel/chart/chart-images.js +363 -0
  21. package/dist/browser/modules/excel/chart/chart-presets.d.ts +392 -0
  22. package/dist/browser/modules/excel/chart/chart-presets.js +179 -0
  23. package/dist/browser/modules/excel/chart/chart-renderer.d.ts +550 -0
  24. package/dist/browser/modules/excel/chart/chart-renderer.js +6440 -0
  25. package/dist/browser/modules/excel/chart/chart-sidecar.d.ts +21 -0
  26. package/dist/browser/modules/excel/chart/chart-sidecar.js +427 -0
  27. package/dist/browser/modules/excel/chart/chart-utils.d.ts +306 -0
  28. package/dist/browser/modules/excel/chart/chart-utils.js +821 -0
  29. package/dist/browser/modules/excel/chart/chart.d.ts +504 -0
  30. package/dist/browser/modules/excel/chart/chart.js +1320 -0
  31. package/dist/browser/modules/excel/chart/glyph-rasterizer.d.ts +62 -0
  32. package/dist/browser/modules/excel/chart/glyph-rasterizer.js +658 -0
  33. package/dist/browser/modules/excel/chart/index.d.ts +54 -0
  34. package/dist/browser/modules/excel/chart/index.js +46 -0
  35. package/dist/browser/modules/excel/chart/install.d.ts +44 -0
  36. package/dist/browser/modules/excel/chart/install.js +91 -0
  37. package/dist/browser/modules/excel/chart/shape-properties.d.ts +156 -0
  38. package/dist/browser/modules/excel/chart/shape-properties.js +1557 -0
  39. package/dist/browser/modules/excel/chart/stroke-font.d.ts +36 -0
  40. package/dist/browser/modules/excel/chart/stroke-font.js +1556 -0
  41. package/dist/browser/modules/excel/chart/topojson.d.ts +98 -0
  42. package/dist/browser/modules/excel/chart/topojson.js +236 -0
  43. package/dist/browser/modules/excel/chart/types.d.ts +2559 -0
  44. package/dist/browser/modules/excel/chart/types.js +8 -0
  45. package/dist/browser/modules/excel/chart-host-registry.d.ts +157 -0
  46. package/dist/browser/modules/excel/chart-host-registry.js +90 -0
  47. package/dist/browser/modules/excel/chartsheet.d.ts +102 -0
  48. package/dist/browser/modules/excel/chartsheet.js +196 -0
  49. package/dist/browser/modules/excel/defined-names.d.ts +35 -0
  50. package/dist/browser/modules/excel/defined-names.js +44 -4
  51. package/dist/browser/modules/excel/errors.d.ts +6 -0
  52. package/dist/browser/modules/excel/errors.js +9 -0
  53. package/dist/browser/modules/excel/form-control.d.ts +6 -0
  54. package/dist/browser/modules/excel/form-control.js +17 -0
  55. package/dist/browser/modules/excel/image.js +12 -2
  56. package/dist/browser/modules/excel/pivot-chart.d.ts +7 -0
  57. package/dist/browser/modules/excel/pivot-chart.js +53 -0
  58. package/dist/browser/modules/excel/pivot-table.d.ts +55 -0
  59. package/dist/browser/modules/excel/pivot-table.js +35 -0
  60. package/dist/browser/modules/excel/range.js +5 -1
  61. package/dist/browser/modules/excel/sparkline/index.d.ts +7 -0
  62. package/dist/browser/modules/excel/sparkline/index.js +7 -0
  63. package/dist/browser/modules/excel/sparkline/sparkline.d.ts +206 -0
  64. package/dist/browser/modules/excel/sparkline/sparkline.js +750 -0
  65. package/dist/browser/modules/excel/stream/worksheet-writer.js +3 -2
  66. package/dist/browser/modules/excel/table.js +42 -6
  67. package/dist/browser/modules/excel/types.d.ts +72 -0
  68. package/dist/browser/modules/excel/utils/address.d.ts +18 -0
  69. package/dist/browser/modules/excel/utils/address.js +28 -0
  70. package/dist/browser/modules/excel/utils/drawing-utils.js +11 -6
  71. package/dist/browser/modules/excel/utils/guid.d.ts +15 -0
  72. package/dist/browser/modules/excel/utils/guid.js +35 -0
  73. package/dist/browser/modules/excel/utils/ooxml-paths.d.ts +74 -0
  74. package/dist/browser/modules/excel/utils/ooxml-paths.js +206 -9
  75. package/dist/browser/modules/excel/utils/ooxml-validator/check-chart-sidecar.d.ts +35 -0
  76. package/dist/browser/modules/excel/utils/ooxml-validator/check-chart-sidecar.js +101 -0
  77. package/dist/browser/modules/excel/utils/ooxml-validator/check-chart.d.ts +32 -0
  78. package/dist/browser/modules/excel/utils/ooxml-validator/check-chart.js +2125 -0
  79. package/dist/browser/modules/excel/utils/ooxml-validator/check-chartsheet.d.ts +9 -0
  80. package/dist/browser/modules/excel/utils/ooxml-validator/check-chartsheet.js +26 -0
  81. package/dist/browser/modules/excel/utils/ooxml-validator/check-content-types.d.ts +16 -0
  82. package/dist/browser/modules/excel/utils/ooxml-validator/check-content-types.js +181 -0
  83. package/dist/browser/modules/excel/utils/ooxml-validator/check-drawing.d.ts +34 -0
  84. package/dist/browser/modules/excel/utils/ooxml-validator/check-drawing.js +267 -0
  85. package/dist/browser/modules/excel/utils/ooxml-validator/check-pivot.d.ts +14 -0
  86. package/dist/browser/modules/excel/utils/ooxml-validator/check-pivot.js +104 -0
  87. package/dist/browser/modules/excel/utils/ooxml-validator/check-relationships.d.ts +18 -0
  88. package/dist/browser/modules/excel/utils/ooxml-validator/check-relationships.js +184 -0
  89. package/dist/browser/modules/excel/utils/ooxml-validator/check-structure.d.ts +21 -0
  90. package/dist/browser/modules/excel/utils/ooxml-validator/check-structure.js +56 -0
  91. package/dist/browser/modules/excel/utils/ooxml-validator/check-styles.d.ts +15 -0
  92. package/dist/browser/modules/excel/utils/ooxml-validator/check-styles.js +89 -0
  93. package/dist/browser/modules/excel/utils/ooxml-validator/check-table.d.ts +31 -0
  94. package/dist/browser/modules/excel/utils/ooxml-validator/check-table.js +177 -0
  95. package/dist/browser/modules/excel/utils/ooxml-validator/check-workbook.d.ts +19 -0
  96. package/dist/browser/modules/excel/utils/ooxml-validator/check-workbook.js +163 -0
  97. package/dist/browser/modules/excel/utils/ooxml-validator/check-worksheet.d.ts +25 -0
  98. package/dist/browser/modules/excel/utils/ooxml-validator/check-worksheet.js +569 -0
  99. package/dist/browser/modules/excel/utils/ooxml-validator/context.d.ts +85 -0
  100. package/dist/browser/modules/excel/utils/ooxml-validator/context.js +191 -0
  101. package/dist/browser/modules/excel/utils/ooxml-validator/index.d.ts +31 -0
  102. package/dist/browser/modules/excel/utils/ooxml-validator/index.js +102 -0
  103. package/dist/browser/modules/excel/utils/ooxml-validator/path-utils.d.ts +67 -0
  104. package/dist/browser/modules/excel/utils/ooxml-validator/path-utils.js +156 -0
  105. package/dist/browser/modules/excel/utils/ooxml-validator/reporter.d.ts +41 -0
  106. package/dist/browser/modules/excel/utils/ooxml-validator/reporter.js +61 -0
  107. package/dist/browser/modules/excel/utils/ooxml-validator/types.d.ts +109 -0
  108. package/dist/browser/modules/excel/utils/ooxml-validator/types.js +12 -0
  109. package/dist/browser/modules/excel/utils/ooxml-validator/xml-utils.d.ts +38 -0
  110. package/dist/browser/modules/excel/utils/ooxml-validator/xml-utils.js +100 -0
  111. package/dist/browser/modules/excel/workbook.browser.d.ts +248 -30
  112. package/dist/browser/modules/excel/workbook.browser.js +966 -31
  113. package/dist/browser/modules/excel/workbook.d.ts +43 -0
  114. package/dist/browser/modules/excel/workbook.js +48 -0
  115. package/dist/browser/modules/excel/worksheet.d.ts +157 -3
  116. package/dist/browser/modules/excel/worksheet.js +394 -35
  117. package/dist/browser/modules/excel/xlsx/rel-type.d.ts +40 -0
  118. package/dist/browser/modules/excel/xlsx/rel-type.js +41 -1
  119. package/dist/browser/modules/excel/xlsx/xform/book/defined-name-xform.d.ts +1 -0
  120. package/dist/browser/modules/excel/xlsx/xform/book/defined-name-xform.js +11 -2
  121. package/dist/browser/modules/excel/xlsx/xform/book/external-link-xform.js +12 -10
  122. package/dist/browser/modules/excel/xlsx/xform/book/workbook-xform.js +96 -22
  123. package/dist/browser/modules/excel/xlsx/xform/chart/chart-space-xform.d.ts +353 -0
  124. package/dist/browser/modules/excel/xlsx/xform/chart/chart-space-xform.js +6000 -0
  125. package/dist/browser/modules/excel/xlsx/xform/comment/threaded-comments-xform.d.ts +60 -0
  126. package/dist/browser/modules/excel/xlsx/xform/comment/threaded-comments-xform.js +213 -0
  127. package/dist/browser/modules/excel/xlsx/xform/core/content-types-xform.js +150 -11
  128. package/dist/browser/modules/excel/xlsx/xform/drawing/absolute-anchor-xform.js +20 -1
  129. package/dist/browser/modules/excel/xlsx/xform/drawing/base-cell-anchor-xform.js +1 -1
  130. package/dist/browser/modules/excel/xlsx/xform/drawing/drawing-xform.d.ts +30 -0
  131. package/dist/browser/modules/excel/xlsx/xform/drawing/drawing-xform.js +109 -5
  132. package/dist/browser/modules/excel/xlsx/xform/drawing/graphic-frame-xform.d.ts +54 -0
  133. package/dist/browser/modules/excel/xlsx/xform/drawing/graphic-frame-xform.js +225 -0
  134. package/dist/browser/modules/excel/xlsx/xform/drawing/one-cell-anchor-xform.d.ts +3 -1
  135. package/dist/browser/modules/excel/xlsx/xform/drawing/one-cell-anchor-xform.js +18 -3
  136. package/dist/browser/modules/excel/xlsx/xform/drawing/two-cell-anchor-xform.d.ts +46 -0
  137. package/dist/browser/modules/excel/xlsx/xform/drawing/two-cell-anchor-xform.js +294 -12
  138. package/dist/browser/modules/excel/xlsx/xform/pivot-table/pivot-table-xform.d.ts +13 -2
  139. package/dist/browser/modules/excel/xlsx/xform/pivot-table/pivot-table-xform.js +32 -6
  140. package/dist/browser/modules/excel/xlsx/xform/sheet/chartsheet-xform.d.ts +185 -0
  141. package/dist/browser/modules/excel/xlsx/xform/sheet/chartsheet-xform.js +441 -0
  142. package/dist/browser/modules/excel/xlsx/xform/sheet/ext-lst-xform.d.ts +1 -0
  143. package/dist/browser/modules/excel/xlsx/xform/sheet/ext-lst-xform.js +51 -2
  144. package/dist/browser/modules/excel/xlsx/xform/sheet/worksheet-xform.js +196 -20
  145. package/dist/browser/modules/excel/xlsx/xform/table/auto-filter-xform.js +16 -1
  146. package/dist/browser/modules/excel/xlsx/xform/table/table-column-xform.js +17 -2
  147. package/dist/browser/modules/excel/xlsx/xform/xsd-values.d.ts +63 -0
  148. package/dist/browser/modules/excel/xlsx/xform/xsd-values.js +101 -0
  149. package/dist/browser/modules/excel/xlsx/xlsx.browser.d.ts +115 -21
  150. package/dist/browser/modules/excel/xlsx/xlsx.browser.js +4422 -78
  151. package/dist/browser/modules/pdf/builder/document-builder.d.ts +74 -0
  152. package/dist/browser/modules/pdf/builder/document-builder.js +507 -2
  153. package/dist/browser/modules/pdf/builder/pdf-editor.js +48 -3
  154. package/dist/browser/modules/pdf/excel-bridge.d.ts +69 -0
  155. package/dist/browser/modules/pdf/excel-bridge.js +683 -12
  156. package/dist/browser/modules/pdf/font/font-manager.d.ts +25 -0
  157. package/dist/browser/modules/pdf/font/font-manager.js +39 -0
  158. package/dist/browser/modules/pdf/index.d.ts +5 -2
  159. package/dist/browser/modules/pdf/index.js +3 -1
  160. package/dist/browser/modules/pdf/render/chart-surface.d.ts +33 -0
  161. package/dist/browser/modules/pdf/render/chart-surface.js +200 -0
  162. package/dist/browser/modules/pdf/render/layout-engine.d.ts +22 -1
  163. package/dist/browser/modules/pdf/render/layout-engine.js +436 -56
  164. package/dist/browser/modules/pdf/render/page-renderer.js +169 -28
  165. package/dist/browser/modules/pdf/render/pdf-exporter.js +117 -7
  166. package/dist/browser/modules/pdf/types.d.ts +227 -23
  167. package/dist/browser/modules/pdf/types.js +4 -0
  168. package/dist/browser/modules/pdf/word-bridge.d.ts +47 -0
  169. package/dist/browser/modules/pdf/word-bridge.js +304 -0
  170. package/dist/browser/modules/word/constants.d.ts +179 -0
  171. package/dist/browser/modules/word/constants.js +231 -0
  172. package/dist/browser/modules/word/content-types.d.ts +27 -0
  173. package/dist/browser/modules/word/content-types.js +53 -0
  174. package/dist/browser/modules/word/digital-signatures.d.ts +87 -0
  175. package/dist/browser/modules/word/digital-signatures.js +134 -0
  176. package/dist/browser/modules/word/document.d.ts +728 -0
  177. package/dist/browser/modules/word/document.js +1795 -0
  178. package/dist/browser/modules/word/docx-packager.d.ts +14 -0
  179. package/dist/browser/modules/word/docx-packager.js +822 -0
  180. package/dist/browser/modules/word/docx-reader.d.ts +11 -0
  181. package/dist/browser/modules/word/docx-reader.js +4929 -0
  182. package/dist/browser/modules/word/encryption.d.ts +102 -0
  183. package/dist/browser/modules/word/encryption.js +274 -0
  184. package/dist/browser/modules/word/errors.d.ts +49 -0
  185. package/dist/browser/modules/word/errors.js +68 -0
  186. package/dist/browser/modules/word/font-obfuscation.d.ts +31 -0
  187. package/dist/browser/modules/word/font-obfuscation.js +83 -0
  188. package/dist/browser/modules/word/html-renderer.d.ts +38 -0
  189. package/dist/browser/modules/word/html-renderer.js +782 -0
  190. package/dist/browser/modules/word/index.base.d.ts +19 -0
  191. package/dist/browser/modules/word/index.base.js +51 -0
  192. package/dist/browser/modules/word/index.browser.d.ts +4 -0
  193. package/dist/browser/modules/word/index.browser.js +4 -0
  194. package/dist/browser/modules/word/index.d.ts +4 -0
  195. package/dist/browser/modules/word/index.js +4 -0
  196. package/dist/browser/modules/word/internal-utils.d.ts +23 -0
  197. package/dist/browser/modules/word/internal-utils.js +54 -0
  198. package/dist/browser/modules/word/relationships.d.ts +31 -0
  199. package/dist/browser/modules/word/relationships.js +56 -0
  200. package/dist/browser/modules/word/types.d.ts +2325 -0
  201. package/dist/browser/modules/word/types.js +10 -0
  202. package/dist/browser/modules/word/units.d.ts +49 -0
  203. package/dist/browser/modules/word/units.js +111 -0
  204. package/dist/browser/modules/word/writers/chart-writer.d.ts +10 -0
  205. package/dist/browser/modules/word/writers/chart-writer.js +385 -0
  206. package/dist/browser/modules/word/writers/checkbox-writer.d.ts +9 -0
  207. package/dist/browser/modules/word/writers/checkbox-writer.js +42 -0
  208. package/dist/browser/modules/word/writers/comment-writer.d.ts +15 -0
  209. package/dist/browser/modules/word/writers/comment-writer.js +70 -0
  210. package/dist/browser/modules/word/writers/document-writer.d.ts +16 -0
  211. package/dist/browser/modules/word/writers/document-writer.js +461 -0
  212. package/dist/browser/modules/word/writers/footnote-writer.d.ts +11 -0
  213. package/dist/browser/modules/word/writers/footnote-writer.js +72 -0
  214. package/dist/browser/modules/word/writers/header-footer-writer.d.ts +13 -0
  215. package/dist/browser/modules/word/writers/header-footer-writer.js +129 -0
  216. package/dist/browser/modules/word/writers/image-writer.d.ts +10 -0
  217. package/dist/browser/modules/word/writers/image-writer.js +185 -0
  218. package/dist/browser/modules/word/writers/math-writer.d.ts +9 -0
  219. package/dist/browser/modules/word/writers/math-writer.js +428 -0
  220. package/dist/browser/modules/word/writers/numbering-writer.d.ts +10 -0
  221. package/dist/browser/modules/word/writers/numbering-writer.js +125 -0
  222. package/dist/browser/modules/word/writers/paragraph-writer.d.ts +13 -0
  223. package/dist/browser/modules/word/writers/paragraph-writer.js +516 -0
  224. package/dist/browser/modules/word/writers/parts-writer.d.ts +26 -0
  225. package/dist/browser/modules/word/writers/parts-writer.js +660 -0
  226. package/dist/browser/modules/word/writers/run-writer.d.ts +15 -0
  227. package/dist/browser/modules/word/writers/run-writer.js +649 -0
  228. package/dist/browser/modules/word/writers/section-writer.d.ts +10 -0
  229. package/dist/browser/modules/word/writers/section-writer.js +238 -0
  230. package/dist/browser/modules/word/writers/styles-writer.d.ts +10 -0
  231. package/dist/browser/modules/word/writers/styles-writer.js +242 -0
  232. package/dist/browser/modules/word/writers/table-writer.d.ts +10 -0
  233. package/dist/browser/modules/word/writers/table-writer.js +503 -0
  234. package/dist/browser/modules/word/writers/textbox-writer.d.ts +9 -0
  235. package/dist/browser/modules/word/writers/textbox-writer.js +53 -0
  236. package/dist/browser/modules/word/writers/toc-writer.d.ts +9 -0
  237. package/dist/browser/modules/word/writers/toc-writer.js +79 -0
  238. package/dist/browser/modules/xml/encode.d.ts +56 -7
  239. package/dist/browser/modules/xml/encode.js +157 -11
  240. package/dist/cjs/index.js +13 -2
  241. package/dist/cjs/modules/excel/chart/cache-populator.js +1178 -0
  242. package/dist/cjs/modules/excel/chart/chart-api.js +371 -0
  243. package/dist/cjs/modules/excel/chart/chart-builder.js +2440 -0
  244. package/dist/cjs/modules/excel/chart/chart-ex-builder.js +907 -0
  245. package/dist/cjs/modules/excel/chart/chart-ex-parser.js +1208 -0
  246. package/dist/cjs/modules/excel/chart/chart-ex-renderer.js +5364 -0
  247. package/dist/cjs/modules/excel/chart/chart-ex-types.js +12 -0
  248. package/dist/cjs/modules/excel/chart/chart-images.js +366 -0
  249. package/dist/cjs/modules/excel/chart/chart-presets.js +184 -0
  250. package/dist/cjs/modules/excel/chart/chart-renderer.js +6450 -0
  251. package/dist/cjs/modules/excel/chart/chart-sidecar.js +433 -0
  252. package/dist/cjs/modules/excel/chart/chart-utils.js +845 -0
  253. package/dist/cjs/modules/excel/chart/chart.js +1324 -0
  254. package/dist/cjs/modules/excel/chart/glyph-rasterizer.js +664 -0
  255. package/dist/cjs/modules/excel/chart/index.js +101 -0
  256. package/dist/cjs/modules/excel/chart/install.js +95 -0
  257. package/dist/cjs/modules/excel/chart/shape-properties.js +1577 -0
  258. package/dist/cjs/modules/excel/chart/stroke-font.js +1559 -0
  259. package/dist/cjs/modules/excel/chart/topojson.js +239 -0
  260. package/dist/cjs/modules/excel/chart/types.js +9 -0
  261. package/dist/cjs/modules/excel/chart-host-registry.js +96 -0
  262. package/dist/cjs/modules/excel/chartsheet.js +199 -0
  263. package/dist/cjs/modules/excel/defined-names.js +44 -4
  264. package/dist/cjs/modules/excel/errors.js +11 -1
  265. package/dist/cjs/modules/excel/form-control.js +17 -0
  266. package/dist/cjs/modules/excel/image.js +12 -2
  267. package/dist/cjs/modules/excel/pivot-chart.js +56 -0
  268. package/dist/cjs/modules/excel/pivot-table.js +35 -0
  269. package/dist/cjs/modules/excel/range.js +5 -1
  270. package/dist/cjs/modules/excel/sparkline/index.js +23 -0
  271. package/dist/cjs/modules/excel/sparkline/sparkline.js +756 -0
  272. package/dist/cjs/modules/excel/stream/worksheet-writer.js +3 -2
  273. package/dist/cjs/modules/excel/table.js +42 -6
  274. package/dist/cjs/modules/excel/utils/address.js +29 -0
  275. package/dist/cjs/modules/excel/utils/drawing-utils.js +11 -6
  276. package/dist/cjs/modules/excel/utils/guid.js +38 -0
  277. package/dist/cjs/modules/excel/utils/ooxml-paths.js +246 -9
  278. package/dist/cjs/modules/excel/utils/ooxml-validator/check-chart-sidecar.js +103 -0
  279. package/dist/cjs/modules/excel/utils/ooxml-validator/check-chart.js +2128 -0
  280. package/dist/cjs/modules/excel/utils/ooxml-validator/check-chartsheet.js +29 -0
  281. package/dist/cjs/modules/excel/utils/ooxml-validator/check-content-types.js +184 -0
  282. package/dist/cjs/modules/excel/utils/ooxml-validator/check-drawing.js +270 -0
  283. package/dist/cjs/modules/excel/utils/ooxml-validator/check-pivot.js +107 -0
  284. package/dist/cjs/modules/excel/utils/ooxml-validator/check-relationships.js +188 -0
  285. package/dist/cjs/modules/excel/utils/ooxml-validator/check-structure.js +60 -0
  286. package/dist/cjs/modules/excel/utils/ooxml-validator/check-styles.js +92 -0
  287. package/dist/cjs/modules/excel/utils/ooxml-validator/check-table.js +180 -0
  288. package/dist/cjs/modules/excel/utils/ooxml-validator/check-workbook.js +166 -0
  289. package/dist/cjs/modules/excel/utils/ooxml-validator/check-worksheet.js +572 -0
  290. package/dist/cjs/modules/excel/utils/ooxml-validator/context.js +196 -0
  291. package/dist/cjs/modules/excel/utils/ooxml-validator/index.js +105 -0
  292. package/dist/cjs/modules/excel/utils/ooxml-validator/path-utils.js +168 -0
  293. package/dist/cjs/modules/excel/utils/ooxml-validator/reporter.js +66 -0
  294. package/dist/cjs/modules/excel/utils/ooxml-validator/types.js +13 -0
  295. package/dist/cjs/modules/excel/utils/ooxml-validator/xml-utils.js +110 -0
  296. package/dist/cjs/modules/excel/workbook.browser.js +973 -38
  297. package/dist/cjs/modules/excel/workbook.js +48 -0
  298. package/dist/cjs/modules/excel/worksheet.js +393 -34
  299. package/dist/cjs/modules/excel/xlsx/rel-type.js +41 -1
  300. package/dist/cjs/modules/excel/xlsx/xform/book/defined-name-xform.js +11 -2
  301. package/dist/cjs/modules/excel/xlsx/xform/book/external-link-xform.js +12 -10
  302. package/dist/cjs/modules/excel/xlsx/xform/book/workbook-xform.js +96 -22
  303. package/dist/cjs/modules/excel/xlsx/xform/chart/chart-space-xform.js +6003 -0
  304. package/dist/cjs/modules/excel/xlsx/xform/comment/threaded-comments-xform.js +219 -0
  305. package/dist/cjs/modules/excel/xlsx/xform/core/content-types-xform.js +149 -10
  306. package/dist/cjs/modules/excel/xlsx/xform/drawing/absolute-anchor-xform.js +20 -1
  307. package/dist/cjs/modules/excel/xlsx/xform/drawing/base-cell-anchor-xform.js +1 -1
  308. package/dist/cjs/modules/excel/xlsx/xform/drawing/drawing-xform.js +109 -5
  309. package/dist/cjs/modules/excel/xlsx/xform/drawing/graphic-frame-xform.js +228 -0
  310. package/dist/cjs/modules/excel/xlsx/xform/drawing/one-cell-anchor-xform.js +18 -3
  311. package/dist/cjs/modules/excel/xlsx/xform/drawing/two-cell-anchor-xform.js +294 -12
  312. package/dist/cjs/modules/excel/xlsx/xform/pivot-table/pivot-table-xform.js +32 -6
  313. package/dist/cjs/modules/excel/xlsx/xform/sheet/chartsheet-xform.js +444 -0
  314. package/dist/cjs/modules/excel/xlsx/xform/sheet/ext-lst-xform.js +51 -2
  315. package/dist/cjs/modules/excel/xlsx/xform/sheet/worksheet-xform.js +195 -19
  316. package/dist/cjs/modules/excel/xlsx/xform/table/auto-filter-xform.js +16 -1
  317. package/dist/cjs/modules/excel/xlsx/xform/table/table-column-xform.js +17 -2
  318. package/dist/cjs/modules/excel/xlsx/xform/xsd-values.js +106 -0
  319. package/dist/cjs/modules/excel/xlsx/xlsx.browser.js +4420 -76
  320. package/dist/cjs/modules/pdf/builder/document-builder.js +506 -1
  321. package/dist/cjs/modules/pdf/builder/pdf-editor.js +48 -3
  322. package/dist/cjs/modules/pdf/excel-bridge.js +684 -12
  323. package/dist/cjs/modules/pdf/font/font-manager.js +39 -0
  324. package/dist/cjs/modules/pdf/index.js +5 -1
  325. package/dist/cjs/modules/pdf/render/chart-surface.js +203 -0
  326. package/dist/cjs/modules/pdf/render/layout-engine.js +437 -56
  327. package/dist/cjs/modules/pdf/render/page-renderer.js +169 -28
  328. package/dist/cjs/modules/pdf/render/pdf-exporter.js +115 -5
  329. package/dist/cjs/modules/pdf/types.js +5 -0
  330. package/dist/cjs/modules/pdf/word-bridge.js +307 -0
  331. package/dist/cjs/modules/word/constants.js +234 -0
  332. package/dist/cjs/modules/word/content-types.js +57 -0
  333. package/dist/cjs/modules/word/digital-signatures.js +140 -0
  334. package/dist/cjs/modules/word/document.js +1909 -0
  335. package/dist/cjs/modules/word/docx-packager.js +825 -0
  336. package/dist/cjs/modules/word/docx-reader.js +4932 -0
  337. package/dist/cjs/modules/word/encryption.js +282 -0
  338. package/dist/cjs/modules/word/errors.js +88 -0
  339. package/dist/cjs/modules/word/font-obfuscation.js +88 -0
  340. package/dist/cjs/modules/word/html-renderer.js +785 -0
  341. package/dist/cjs/modules/word/index.base.js +199 -0
  342. package/dist/cjs/modules/word/index.browser.js +20 -0
  343. package/dist/cjs/modules/word/index.js +20 -0
  344. package/dist/cjs/modules/word/internal-utils.js +59 -0
  345. package/dist/cjs/modules/word/relationships.js +60 -0
  346. package/dist/cjs/modules/word/types.js +11 -0
  347. package/dist/cjs/modules/word/units.js +135 -0
  348. package/dist/cjs/modules/word/writers/chart-writer.js +388 -0
  349. package/dist/cjs/modules/word/writers/checkbox-writer.js +45 -0
  350. package/dist/cjs/modules/word/writers/comment-writer.js +74 -0
  351. package/dist/cjs/modules/word/writers/document-writer.js +465 -0
  352. package/dist/cjs/modules/word/writers/footnote-writer.js +76 -0
  353. package/dist/cjs/modules/word/writers/header-footer-writer.js +134 -0
  354. package/dist/cjs/modules/word/writers/image-writer.js +188 -0
  355. package/dist/cjs/modules/word/writers/math-writer.js +431 -0
  356. package/dist/cjs/modules/word/writers/numbering-writer.js +128 -0
  357. package/dist/cjs/modules/word/writers/paragraph-writer.js +521 -0
  358. package/dist/cjs/modules/word/writers/parts-writer.js +671 -0
  359. package/dist/cjs/modules/word/writers/run-writer.js +655 -0
  360. package/dist/cjs/modules/word/writers/section-writer.js +241 -0
  361. package/dist/cjs/modules/word/writers/styles-writer.js +245 -0
  362. package/dist/cjs/modules/word/writers/table-writer.js +506 -0
  363. package/dist/cjs/modules/word/writers/textbox-writer.js +56 -0
  364. package/dist/cjs/modules/word/writers/toc-writer.js +82 -0
  365. package/dist/cjs/modules/xml/encode.js +158 -11
  366. package/dist/esm/index.browser.js +20 -2
  367. package/dist/esm/index.js +9 -1
  368. package/dist/esm/modules/excel/chart/cache-populator.js +1171 -0
  369. package/dist/esm/modules/excel/chart/chart-api.js +364 -0
  370. package/dist/esm/modules/excel/chart/chart-builder.js +2432 -0
  371. package/dist/esm/modules/excel/chart/chart-ex-builder.js +903 -0
  372. package/dist/esm/modules/excel/chart/chart-ex-parser.js +1205 -0
  373. package/dist/esm/modules/excel/chart/chart-ex-renderer.js +5352 -0
  374. package/dist/esm/modules/excel/chart/chart-ex-types.js +11 -0
  375. package/dist/esm/modules/excel/chart/chart-images.js +363 -0
  376. package/dist/esm/modules/excel/chart/chart-presets.js +179 -0
  377. package/dist/esm/modules/excel/chart/chart-renderer.js +6440 -0
  378. package/dist/esm/modules/excel/chart/chart-sidecar.js +427 -0
  379. package/dist/esm/modules/excel/chart/chart-utils.js +821 -0
  380. package/dist/esm/modules/excel/chart/chart.js +1320 -0
  381. package/dist/esm/modules/excel/chart/glyph-rasterizer.js +658 -0
  382. package/dist/esm/modules/excel/chart/index.js +46 -0
  383. package/dist/esm/modules/excel/chart/install.js +91 -0
  384. package/dist/esm/modules/excel/chart/shape-properties.js +1557 -0
  385. package/dist/esm/modules/excel/chart/stroke-font.js +1556 -0
  386. package/dist/esm/modules/excel/chart/topojson.js +236 -0
  387. package/dist/esm/modules/excel/chart/types.js +8 -0
  388. package/dist/esm/modules/excel/chart-host-registry.js +90 -0
  389. package/dist/esm/modules/excel/chartsheet.js +196 -0
  390. package/dist/esm/modules/excel/defined-names.js +44 -4
  391. package/dist/esm/modules/excel/errors.js +9 -0
  392. package/dist/esm/modules/excel/form-control.js +17 -0
  393. package/dist/esm/modules/excel/image.js +12 -2
  394. package/dist/esm/modules/excel/pivot-chart.js +53 -0
  395. package/dist/esm/modules/excel/pivot-table.js +35 -0
  396. package/dist/esm/modules/excel/range.js +5 -1
  397. package/dist/esm/modules/excel/sparkline/index.js +7 -0
  398. package/dist/esm/modules/excel/sparkline/sparkline.js +750 -0
  399. package/dist/esm/modules/excel/stream/worksheet-writer.js +3 -2
  400. package/dist/esm/modules/excel/table.js +42 -6
  401. package/dist/esm/modules/excel/utils/address.js +28 -0
  402. package/dist/esm/modules/excel/utils/drawing-utils.js +11 -6
  403. package/dist/esm/modules/excel/utils/guid.js +35 -0
  404. package/dist/esm/modules/excel/utils/ooxml-paths.js +206 -9
  405. package/dist/esm/modules/excel/utils/ooxml-validator/check-chart-sidecar.js +101 -0
  406. package/dist/esm/modules/excel/utils/ooxml-validator/check-chart.js +2125 -0
  407. package/dist/esm/modules/excel/utils/ooxml-validator/check-chartsheet.js +26 -0
  408. package/dist/esm/modules/excel/utils/ooxml-validator/check-content-types.js +181 -0
  409. package/dist/esm/modules/excel/utils/ooxml-validator/check-drawing.js +267 -0
  410. package/dist/esm/modules/excel/utils/ooxml-validator/check-pivot.js +104 -0
  411. package/dist/esm/modules/excel/utils/ooxml-validator/check-relationships.js +184 -0
  412. package/dist/esm/modules/excel/utils/ooxml-validator/check-structure.js +56 -0
  413. package/dist/esm/modules/excel/utils/ooxml-validator/check-styles.js +89 -0
  414. package/dist/esm/modules/excel/utils/ooxml-validator/check-table.js +177 -0
  415. package/dist/esm/modules/excel/utils/ooxml-validator/check-workbook.js +163 -0
  416. package/dist/esm/modules/excel/utils/ooxml-validator/check-worksheet.js +569 -0
  417. package/dist/esm/modules/excel/utils/ooxml-validator/context.js +191 -0
  418. package/dist/esm/modules/excel/utils/ooxml-validator/index.js +102 -0
  419. package/dist/esm/modules/excel/utils/ooxml-validator/path-utils.js +156 -0
  420. package/dist/esm/modules/excel/utils/ooxml-validator/reporter.js +61 -0
  421. package/dist/esm/modules/excel/utils/ooxml-validator/types.js +12 -0
  422. package/dist/esm/modules/excel/utils/ooxml-validator/xml-utils.js +100 -0
  423. package/dist/esm/modules/excel/workbook.browser.js +969 -34
  424. package/dist/esm/modules/excel/workbook.js +48 -0
  425. package/dist/esm/modules/excel/worksheet.js +394 -35
  426. package/dist/esm/modules/excel/xlsx/rel-type.js +41 -1
  427. package/dist/esm/modules/excel/xlsx/xform/book/defined-name-xform.js +11 -2
  428. package/dist/esm/modules/excel/xlsx/xform/book/external-link-xform.js +12 -10
  429. package/dist/esm/modules/excel/xlsx/xform/book/workbook-xform.js +96 -22
  430. package/dist/esm/modules/excel/xlsx/xform/chart/chart-space-xform.js +6000 -0
  431. package/dist/esm/modules/excel/xlsx/xform/comment/threaded-comments-xform.js +213 -0
  432. package/dist/esm/modules/excel/xlsx/xform/core/content-types-xform.js +150 -11
  433. package/dist/esm/modules/excel/xlsx/xform/drawing/absolute-anchor-xform.js +20 -1
  434. package/dist/esm/modules/excel/xlsx/xform/drawing/base-cell-anchor-xform.js +1 -1
  435. package/dist/esm/modules/excel/xlsx/xform/drawing/drawing-xform.js +109 -5
  436. package/dist/esm/modules/excel/xlsx/xform/drawing/graphic-frame-xform.js +225 -0
  437. package/dist/esm/modules/excel/xlsx/xform/drawing/one-cell-anchor-xform.js +18 -3
  438. package/dist/esm/modules/excel/xlsx/xform/drawing/two-cell-anchor-xform.js +294 -12
  439. package/dist/esm/modules/excel/xlsx/xform/pivot-table/pivot-table-xform.js +32 -6
  440. package/dist/esm/modules/excel/xlsx/xform/sheet/chartsheet-xform.js +441 -0
  441. package/dist/esm/modules/excel/xlsx/xform/sheet/ext-lst-xform.js +51 -2
  442. package/dist/esm/modules/excel/xlsx/xform/sheet/worksheet-xform.js +196 -20
  443. package/dist/esm/modules/excel/xlsx/xform/table/auto-filter-xform.js +16 -1
  444. package/dist/esm/modules/excel/xlsx/xform/table/table-column-xform.js +17 -2
  445. package/dist/esm/modules/excel/xlsx/xform/xsd-values.js +101 -0
  446. package/dist/esm/modules/excel/xlsx/xlsx.browser.js +4422 -78
  447. package/dist/esm/modules/pdf/builder/document-builder.js +507 -2
  448. package/dist/esm/modules/pdf/builder/pdf-editor.js +48 -3
  449. package/dist/esm/modules/pdf/excel-bridge.js +683 -12
  450. package/dist/esm/modules/pdf/font/font-manager.js +39 -0
  451. package/dist/esm/modules/pdf/index.js +3 -1
  452. package/dist/esm/modules/pdf/render/chart-surface.js +200 -0
  453. package/dist/esm/modules/pdf/render/layout-engine.js +436 -56
  454. package/dist/esm/modules/pdf/render/page-renderer.js +169 -28
  455. package/dist/esm/modules/pdf/render/pdf-exporter.js +117 -7
  456. package/dist/esm/modules/pdf/types.js +4 -0
  457. package/dist/esm/modules/pdf/word-bridge.js +304 -0
  458. package/dist/esm/modules/word/constants.js +231 -0
  459. package/dist/esm/modules/word/content-types.js +53 -0
  460. package/dist/esm/modules/word/digital-signatures.js +134 -0
  461. package/dist/esm/modules/word/document.js +1795 -0
  462. package/dist/esm/modules/word/docx-packager.js +822 -0
  463. package/dist/esm/modules/word/docx-reader.js +4929 -0
  464. package/dist/esm/modules/word/encryption.js +274 -0
  465. package/dist/esm/modules/word/errors.js +68 -0
  466. package/dist/esm/modules/word/font-obfuscation.js +83 -0
  467. package/dist/esm/modules/word/html-renderer.js +782 -0
  468. package/dist/esm/modules/word/index.base.js +51 -0
  469. package/dist/esm/modules/word/index.browser.js +4 -0
  470. package/dist/esm/modules/word/index.js +4 -0
  471. package/dist/esm/modules/word/internal-utils.js +54 -0
  472. package/dist/esm/modules/word/relationships.js +56 -0
  473. package/dist/esm/modules/word/types.js +10 -0
  474. package/dist/esm/modules/word/units.js +111 -0
  475. package/dist/esm/modules/word/writers/chart-writer.js +385 -0
  476. package/dist/esm/modules/word/writers/checkbox-writer.js +42 -0
  477. package/dist/esm/modules/word/writers/comment-writer.js +70 -0
  478. package/dist/esm/modules/word/writers/document-writer.js +461 -0
  479. package/dist/esm/modules/word/writers/footnote-writer.js +72 -0
  480. package/dist/esm/modules/word/writers/header-footer-writer.js +129 -0
  481. package/dist/esm/modules/word/writers/image-writer.js +185 -0
  482. package/dist/esm/modules/word/writers/math-writer.js +428 -0
  483. package/dist/esm/modules/word/writers/numbering-writer.js +125 -0
  484. package/dist/esm/modules/word/writers/paragraph-writer.js +516 -0
  485. package/dist/esm/modules/word/writers/parts-writer.js +660 -0
  486. package/dist/esm/modules/word/writers/run-writer.js +649 -0
  487. package/dist/esm/modules/word/writers/section-writer.js +238 -0
  488. package/dist/esm/modules/word/writers/styles-writer.js +242 -0
  489. package/dist/esm/modules/word/writers/table-writer.js +503 -0
  490. package/dist/esm/modules/word/writers/textbox-writer.js +53 -0
  491. package/dist/esm/modules/word/writers/toc-writer.js +79 -0
  492. package/dist/esm/modules/xml/encode.js +157 -11
  493. package/dist/iife/excelts.iife.js +11789 -687
  494. package/dist/iife/excelts.iife.js.map +1 -1
  495. package/dist/iife/excelts.iife.min.js +52 -44
  496. package/dist/types/index.browser.d.ts +8 -5
  497. package/dist/types/index.d.ts +4 -2
  498. package/dist/types/modules/excel/chart/cache-populator.d.ts +49 -0
  499. package/dist/types/modules/excel/chart/chart-api.d.ts +92 -0
  500. package/dist/types/modules/excel/chart/chart-builder.d.ts +48 -0
  501. package/dist/types/modules/excel/chart/chart-ex-builder.d.ts +36 -0
  502. package/dist/types/modules/excel/chart/chart-ex-parser.d.ts +8 -0
  503. package/dist/types/modules/excel/chart/chart-ex-renderer.d.ts +187 -0
  504. package/dist/types/modules/excel/chart/chart-ex-types.d.ts +531 -0
  505. package/dist/types/modules/excel/chart/chart-images.d.ts +78 -0
  506. package/dist/types/modules/excel/chart/chart-presets.d.ts +392 -0
  507. package/dist/types/modules/excel/chart/chart-renderer.d.ts +550 -0
  508. package/dist/types/modules/excel/chart/chart-sidecar.d.ts +21 -0
  509. package/dist/types/modules/excel/chart/chart-utils.d.ts +306 -0
  510. package/dist/types/modules/excel/chart/chart.d.ts +504 -0
  511. package/dist/types/modules/excel/chart/glyph-rasterizer.d.ts +62 -0
  512. package/dist/types/modules/excel/chart/index.d.ts +54 -0
  513. package/dist/types/modules/excel/chart/install.d.ts +44 -0
  514. package/dist/types/modules/excel/chart/shape-properties.d.ts +156 -0
  515. package/dist/types/modules/excel/chart/stroke-font.d.ts +36 -0
  516. package/dist/types/modules/excel/chart/topojson.d.ts +98 -0
  517. package/dist/types/modules/excel/chart/types.d.ts +2559 -0
  518. package/dist/types/modules/excel/chart-host-registry.d.ts +157 -0
  519. package/dist/types/modules/excel/chartsheet.d.ts +102 -0
  520. package/dist/types/modules/excel/defined-names.d.ts +35 -0
  521. package/dist/types/modules/excel/errors.d.ts +6 -0
  522. package/dist/types/modules/excel/form-control.d.ts +6 -0
  523. package/dist/types/modules/excel/pivot-chart.d.ts +7 -0
  524. package/dist/types/modules/excel/pivot-table.d.ts +55 -0
  525. package/dist/types/modules/excel/sparkline/index.d.ts +7 -0
  526. package/dist/types/modules/excel/sparkline/sparkline.d.ts +206 -0
  527. package/dist/types/modules/excel/types.d.ts +72 -0
  528. package/dist/types/modules/excel/utils/address.d.ts +18 -0
  529. package/dist/types/modules/excel/utils/guid.d.ts +15 -0
  530. package/dist/types/modules/excel/utils/ooxml-paths.d.ts +74 -0
  531. package/dist/types/modules/excel/utils/ooxml-validator/check-chart-sidecar.d.ts +35 -0
  532. package/dist/types/modules/excel/utils/ooxml-validator/check-chart.d.ts +32 -0
  533. package/dist/types/modules/excel/utils/ooxml-validator/check-chartsheet.d.ts +9 -0
  534. package/dist/types/modules/excel/utils/ooxml-validator/check-content-types.d.ts +16 -0
  535. package/dist/types/modules/excel/utils/ooxml-validator/check-drawing.d.ts +34 -0
  536. package/dist/types/modules/excel/utils/ooxml-validator/check-pivot.d.ts +14 -0
  537. package/dist/types/modules/excel/utils/ooxml-validator/check-relationships.d.ts +18 -0
  538. package/dist/types/modules/excel/utils/ooxml-validator/check-structure.d.ts +21 -0
  539. package/dist/types/modules/excel/utils/ooxml-validator/check-styles.d.ts +15 -0
  540. package/dist/types/modules/excel/utils/ooxml-validator/check-table.d.ts +31 -0
  541. package/dist/types/modules/excel/utils/ooxml-validator/check-workbook.d.ts +19 -0
  542. package/dist/types/modules/excel/utils/ooxml-validator/check-worksheet.d.ts +25 -0
  543. package/dist/types/modules/excel/utils/ooxml-validator/context.d.ts +85 -0
  544. package/dist/types/modules/excel/utils/ooxml-validator/index.d.ts +31 -0
  545. package/dist/types/modules/excel/utils/ooxml-validator/path-utils.d.ts +67 -0
  546. package/dist/types/modules/excel/utils/ooxml-validator/reporter.d.ts +41 -0
  547. package/dist/types/modules/excel/utils/ooxml-validator/types.d.ts +109 -0
  548. package/dist/types/modules/excel/utils/ooxml-validator/xml-utils.d.ts +38 -0
  549. package/dist/types/modules/excel/workbook.browser.d.ts +248 -30
  550. package/dist/types/modules/excel/workbook.d.ts +43 -0
  551. package/dist/types/modules/excel/worksheet.d.ts +157 -3
  552. package/dist/types/modules/excel/xlsx/rel-type.d.ts +40 -0
  553. package/dist/types/modules/excel/xlsx/xform/book/defined-name-xform.d.ts +1 -0
  554. package/dist/types/modules/excel/xlsx/xform/chart/chart-space-xform.d.ts +353 -0
  555. package/dist/types/modules/excel/xlsx/xform/comment/threaded-comments-xform.d.ts +60 -0
  556. package/dist/types/modules/excel/xlsx/xform/drawing/drawing-xform.d.ts +30 -0
  557. package/dist/types/modules/excel/xlsx/xform/drawing/graphic-frame-xform.d.ts +54 -0
  558. package/dist/types/modules/excel/xlsx/xform/drawing/one-cell-anchor-xform.d.ts +3 -1
  559. package/dist/types/modules/excel/xlsx/xform/drawing/two-cell-anchor-xform.d.ts +46 -0
  560. package/dist/types/modules/excel/xlsx/xform/pivot-table/pivot-table-xform.d.ts +13 -2
  561. package/dist/types/modules/excel/xlsx/xform/sheet/chartsheet-xform.d.ts +185 -0
  562. package/dist/types/modules/excel/xlsx/xform/sheet/ext-lst-xform.d.ts +1 -0
  563. package/dist/types/modules/excel/xlsx/xform/xsd-values.d.ts +63 -0
  564. package/dist/types/modules/excel/xlsx/xlsx.browser.d.ts +115 -21
  565. package/dist/types/modules/pdf/builder/document-builder.d.ts +74 -0
  566. package/dist/types/modules/pdf/excel-bridge.d.ts +69 -0
  567. package/dist/types/modules/pdf/font/font-manager.d.ts +25 -0
  568. package/dist/types/modules/pdf/index.d.ts +5 -2
  569. package/dist/types/modules/pdf/render/chart-surface.d.ts +33 -0
  570. package/dist/types/modules/pdf/render/layout-engine.d.ts +22 -1
  571. package/dist/types/modules/pdf/types.d.ts +227 -23
  572. package/dist/types/modules/pdf/word-bridge.d.ts +47 -0
  573. package/dist/types/modules/word/constants.d.ts +179 -0
  574. package/dist/types/modules/word/content-types.d.ts +27 -0
  575. package/dist/types/modules/word/digital-signatures.d.ts +87 -0
  576. package/dist/types/modules/word/document.d.ts +728 -0
  577. package/dist/types/modules/word/docx-packager.d.ts +14 -0
  578. package/dist/types/modules/word/docx-reader.d.ts +11 -0
  579. package/dist/types/modules/word/encryption.d.ts +102 -0
  580. package/dist/types/modules/word/errors.d.ts +49 -0
  581. package/dist/types/modules/word/font-obfuscation.d.ts +31 -0
  582. package/dist/types/modules/word/html-renderer.d.ts +38 -0
  583. package/dist/types/modules/word/index.base.d.ts +19 -0
  584. package/dist/types/modules/word/index.browser.d.ts +4 -0
  585. package/dist/types/modules/word/index.d.ts +4 -0
  586. package/dist/types/modules/word/internal-utils.d.ts +23 -0
  587. package/dist/types/modules/word/relationships.d.ts +31 -0
  588. package/dist/types/modules/word/types.d.ts +2325 -0
  589. package/dist/types/modules/word/units.d.ts +49 -0
  590. package/dist/types/modules/word/writers/chart-writer.d.ts +10 -0
  591. package/dist/types/modules/word/writers/checkbox-writer.d.ts +9 -0
  592. package/dist/types/modules/word/writers/comment-writer.d.ts +15 -0
  593. package/dist/types/modules/word/writers/document-writer.d.ts +16 -0
  594. package/dist/types/modules/word/writers/footnote-writer.d.ts +11 -0
  595. package/dist/types/modules/word/writers/header-footer-writer.d.ts +13 -0
  596. package/dist/types/modules/word/writers/image-writer.d.ts +10 -0
  597. package/dist/types/modules/word/writers/math-writer.d.ts +9 -0
  598. package/dist/types/modules/word/writers/numbering-writer.d.ts +10 -0
  599. package/dist/types/modules/word/writers/paragraph-writer.d.ts +13 -0
  600. package/dist/types/modules/word/writers/parts-writer.d.ts +26 -0
  601. package/dist/types/modules/word/writers/run-writer.d.ts +15 -0
  602. package/dist/types/modules/word/writers/section-writer.d.ts +10 -0
  603. package/dist/types/modules/word/writers/styles-writer.d.ts +10 -0
  604. package/dist/types/modules/word/writers/table-writer.d.ts +10 -0
  605. package/dist/types/modules/word/writers/textbox-writer.d.ts +9 -0
  606. package/dist/types/modules/word/writers/toc-writer.d.ts +9 -0
  607. package/dist/types/modules/xml/encode.d.ts +56 -7
  608. package/package.json +29 -11
  609. package/dist/browser/modules/excel/utils/ooxml-validator.d.ts +0 -48
  610. package/dist/browser/modules/excel/utils/ooxml-validator.js +0 -493
  611. package/dist/browser/modules/excel/utils/passthrough-manager.d.ts +0 -77
  612. package/dist/browser/modules/excel/utils/passthrough-manager.js +0 -129
  613. package/dist/cjs/modules/excel/utils/ooxml-validator.js +0 -499
  614. package/dist/cjs/modules/excel/utils/passthrough-manager.js +0 -133
  615. package/dist/esm/modules/excel/utils/ooxml-validator.js +0 -493
  616. package/dist/esm/modules/excel/utils/passthrough-manager.js +0 -129
  617. package/dist/types/modules/excel/utils/ooxml-validator.d.ts +0 -48
  618. package/dist/types/modules/excel/utils/passthrough-manager.d.ts +0 -77
@@ -379,6 +379,78 @@ export interface Comment {
379
379
  margins?: Partial<CommentMargins>;
380
380
  protection?: Partial<CommentProtection>;
381
381
  editAs?: CommentEditAs;
382
+ /**
383
+ * Office 365 threaded-comment conversation anchored at the same
384
+ * cell. When present, Excel surfaces the modern reply UI; the
385
+ * classic VML note still renders as a fallback for older viewers.
386
+ *
387
+ * The first entry in the list is the top-level comment; subsequent
388
+ * entries with `parentId === first.id` are replies to it. Nested
389
+ * threads beyond two levels are not supported by Excel itself.
390
+ */
391
+ threadedComments?: ThreadedComment[];
392
+ }
393
+ /**
394
+ * A single entry in a threaded-comment conversation
395
+ * (`xl/threadedComments/threadedComment{N}.xml` →
396
+ * `<threadedComment ref="…" personId="…" id="…" parentId="…">`).
397
+ *
398
+ * `id` is a GUID-braced string Excel expects to uniquely identify the
399
+ * comment within the sheet; callers may omit it and let the writer
400
+ * synthesise one. `personId` must reference an entry in the
401
+ * workbook-level {@link ThreadedCommentPerson} list — the writer
402
+ * enforces this by adding any dangling `personId` to the list with a
403
+ * placeholder displayName.
404
+ */
405
+ export interface ThreadedComment {
406
+ /** `{GUID}`-style id; auto-generated if absent. */
407
+ id?: string;
408
+ /**
409
+ * Id of the parent comment when this entry is a reply. Absent for
410
+ * top-level comments.
411
+ */
412
+ parentId?: string;
413
+ /** Reference to the author in the workbook persons list. */
414
+ personId: string;
415
+ /** Creation timestamp as an ISO-8601 string. */
416
+ date?: string;
417
+ /** Plain-text body. @mentions are expressed separately via {@link mentions}. */
418
+ text: string;
419
+ /**
420
+ * Structured `@mention` markers inside `text`. `startIndex`/`length`
421
+ * point at the substring Excel shows as a clickable mention.
422
+ */
423
+ mentions?: ThreadedCommentMention[];
424
+ /**
425
+ * Whether Excel marks this comment as "resolved". Corresponds to
426
+ * `done="1"` on the commentExt element. When undefined, Excel treats
427
+ * the thread as open.
428
+ */
429
+ done?: boolean;
430
+ }
431
+ export interface ThreadedCommentMention {
432
+ mentionId?: string;
433
+ mentionPersonId: string;
434
+ startIndex: number;
435
+ length: number;
436
+ }
437
+ /**
438
+ * Workbook-level person directory referenced by threaded comments.
439
+ * Written as `xl/persons/person.xml`; one `<person>` element per
440
+ * unique commenter.
441
+ */
442
+ export interface ThreadedCommentPerson {
443
+ /** `{GUID}`-style id referenced by `threadedComment/@personId`. */
444
+ id: string;
445
+ /** Display name shown in the UI (e.g. "Jane Doe"). */
446
+ displayName: string;
447
+ /** Provider user id (e.g. "jane@example.com", "S-1-5-…"). */
448
+ userId?: string;
449
+ /**
450
+ * Identity provider — "AD" (Active Directory), "PeoplePicker",
451
+ * "None". Excel preserves unknown values verbatim.
452
+ */
453
+ providerId?: string;
382
454
  }
383
455
  export type DataValidationOperator = "between" | "notBetween" | "equal" | "notEqual" | "greaterThan" | "lessThan" | "greaterThanOrEqual" | "lessThanOrEqual";
384
456
  /** Base properties shared by all data validation types */
@@ -74,3 +74,21 @@ export declare function decodeRange(range: string): SheetRange;
74
74
  */
75
75
  export declare function encodeRange(range: SheetRange): string;
76
76
  export declare function encodeRange(start: CellAddress, end: CellAddress): string;
77
+ /**
78
+ * Excel allows unquoted sheet names only when they consist entirely of
79
+ * ASCII letters, digits, and underscores *and* do not start with a digit.
80
+ * Any sheet name with a space, dot, comma, bracket, `&`, CJK character,
81
+ * or any other non-trivial symbol must be wrapped in single quotes, with
82
+ * existing single quotes doubled.
83
+ *
84
+ * Shared helper so chart-api, pivot-chart, cache-populator, and the XForm
85
+ * layer all agree on the rule — before this was unified, three callers
86
+ * in the chart module used three different regexes, producing divergent
87
+ * formula strings for sheet names with punctuation.
88
+ *
89
+ * @example quoteSheetName("Sheet1") // "Sheet1"
90
+ * @example quoteSheetName("My Sheet") // "'My Sheet'"
91
+ * @example quoteSheetName("It's Fine") // "'It''s Fine'"
92
+ * @example quoteSheetName("2023 Data") // "'2023 Data'" (leading digit → quoted)
93
+ */
94
+ export declare function quoteSheetName(sheetName: string): string;
@@ -0,0 +1,15 @@
1
+ /**
2
+ * GUID helpers for OOXML.
3
+ *
4
+ * Office parts that need stable cross-reference ids (threaded comments,
5
+ * chart uniqueIds, slicer caches, …) use the canonical Microsoft
6
+ * `{XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX}` format — 32 uppercase hex
7
+ * characters split into 8-4-4-4-12 groups, surrounded by braces.
8
+ *
9
+ * `synthGuid()` returns an RFC-4122 version-4-compatible value suitable
10
+ * for those callers. We don't use `crypto.randomUUID()` directly because
11
+ * it isn't available in every supported runtime (older Node without
12
+ * `node:crypto` globals); `Math.random` is good enough for uniqueness
13
+ * within a single workbook, which is the only thing Office cares about.
14
+ */
15
+ export declare function synthGuid(): string;
@@ -21,6 +21,14 @@ export declare function getThemeNameFromPath(path: string): string | undefined;
21
21
  export declare function isBinaryEntryPath(path: string): boolean;
22
22
  export declare function getDrawingNameFromPath(path: string): string | undefined;
23
23
  export declare function getDrawingNameFromRelsPath(path: string): string | undefined;
24
+ /**
25
+ * Canonical filename stem for a chart-overlay drawing part — used by
26
+ * the reader to recognise `xl/drawings/chartUserShapeN.xml` entries
27
+ * and stash their bytes for post-load reconciliation onto the owning
28
+ * chart. Returns `undefined` for any other path, including regular
29
+ * worksheet drawings (those go through {@link getDrawingNameFromPath}).
30
+ */
31
+ export declare function getChartUserShapesNameFromPath(path: string): string | undefined;
24
32
  export declare function getVmlDrawingNameFromPath(path: string): string | undefined;
25
33
  export declare function getVmlDrawingHFNameFromPath(path: string): string | undefined;
26
34
  /**
@@ -52,6 +60,22 @@ export declare function worksheetRelsPath(sheetId: number | string): string;
52
60
  export declare function worksheetRelTarget(sheetId: number | string): string;
53
61
  export declare function commentsPath(sheetId: number | string): string;
54
62
  export declare function commentsPathFromName(commentName: string): string;
63
+ /**
64
+ * Modern Office 365 "threaded comments" — separate from classic VML
65
+ * comments. Each worksheet that uses threaded comments has its own
66
+ * `xl/threadedComments/threadedComment{N}.xml` part alongside the
67
+ * legacy `xl/comments{N}.xml` (classic comments carry a fallback text
68
+ * representation, threaded comments carry the conversation tree).
69
+ */
70
+ export declare function threadedCommentsPath(sheetId: number | string): string;
71
+ export declare function threadedCommentsPathFromName(name: string): string;
72
+ /**
73
+ * Modern Office 365 "persons" list — the directory of commenters
74
+ * referenced by `threadedComment/@personId`. Workbook-level single
75
+ * part (`xl/persons/person.xml` is the conventional filename for the
76
+ * primary, rarely-duplicated list).
77
+ */
78
+ export declare function personsPath(): string;
55
79
  export declare function vmlDrawingPath(sheetId: number | string): string;
56
80
  export declare function vmlDrawingHFPath(sheetId: number | string): string;
57
81
  export declare function vmlDrawingHFRelsPath(sheetId: number | string): string;
@@ -89,6 +113,50 @@ export declare function pivotTableRelTargetFromWorksheet(n: number | string): st
89
113
  export declare function tableRelTargetFromWorksheet(target: string): string;
90
114
  export declare function mediaRelTargetFromRels(filename: string): string;
91
115
  export declare function ctrlPropPath(id: number | string): string;
116
+ export declare function getChartNumberFromPath(path: string): number | undefined;
117
+ export declare function getChartNumberFromRelsPath(path: string): number | undefined;
118
+ export declare function getChartStyleNumberFromPath(path: string): number | undefined;
119
+ export declare function getChartColorsNumberFromPath(path: string): number | undefined;
120
+ export declare function getChartExStyleNumberFromPath(path: string): number | undefined;
121
+ export declare function getChartExColorsNumberFromPath(path: string): number | undefined;
122
+ export declare function chartPath(n: number | string): string;
123
+ export declare function chartRelsPath(n: number | string): string;
124
+ export declare function chartStylePath(n: number | string): string;
125
+ export declare function chartColorsPath(n: number | string): string;
126
+ export declare function chartExStylePath(n: number | string): string;
127
+ export declare function chartExColorsPath(n: number | string): string;
128
+ export declare function chartRelTargetFromDrawing(n: number | string): string;
129
+ /**
130
+ * Path of the DrawingML overlay part backing a chart's `c:userShapes`
131
+ * reference. Placed under `xl/drawings/` with a `chartUserShape` prefix
132
+ * (rather than sharing the regular `drawingN` pool) so the writer can
133
+ * allocate it by chart number without colliding with worksheet
134
+ * drawings. Excel itself is indifferent to the part path — only the
135
+ * rel target matters — so files loaded with a different original
136
+ * path are renamed on write.
137
+ */
138
+ export declare function chartUserShapesPath(n: number | string): string;
139
+ /**
140
+ * Target path emitted inside `xl/charts/_rels/chartN.xml.rels` for the
141
+ * user-shapes drawing part. Resolved relative to the rels file's
142
+ * base directory (`xl/charts/`).
143
+ */
144
+ export declare function chartUserShapesRelTarget(n: number | string): string;
145
+ export declare function chartStyleRelTarget(n: number | string): string;
146
+ export declare function chartColorsRelTarget(n: number | string): string;
147
+ export declare function chartExStyleRelTarget(n: number | string): string;
148
+ export declare function chartExColorsRelTarget(n: number | string): string;
149
+ export declare function isChartPath(path: string): boolean;
150
+ export declare function isChartStylePath(path: string): boolean;
151
+ export declare function isChartColorsPath(path: string): boolean;
152
+ export declare function isChartRelsPath(path: string): boolean;
153
+ export declare function getChartExNumberFromPath(path: string): number | undefined;
154
+ export declare function getChartExNumberFromRelsPath(path: string): number | undefined;
155
+ export declare function chartExPath(n: number | string): string;
156
+ export declare function chartExRelsPath(n: number | string): string;
157
+ export declare function chartExRelTargetFromDrawing(n: number | string): string;
158
+ export declare function isChartExPath(path: string): boolean;
159
+ export declare function isChartExRelsPath(path: string): boolean;
92
160
  export declare function ctrlPropRelTargetFromWorksheet(id: number | string): string;
93
161
  /**
94
162
  * Resolve a relationship Target (relative or absolute) to a normalized zip path.
@@ -101,3 +169,9 @@ export declare function ctrlPropRelTargetFromWorksheet(id: number | string): str
101
169
  * @param target The raw Target value from the .rels file
102
170
  */
103
171
  export declare function resolveRelTarget(baseDir: string, target: string): string;
172
+ export declare function getChartsheetNoFromPath(path: string): number | undefined;
173
+ export declare function getChartsheetNoFromRelsPath(path: string): number | undefined;
174
+ export declare function chartsheetPath(n: number | string): string;
175
+ export declare function chartsheetRelsPath(n: number | string): string;
176
+ export declare function isChartsheetPath(path: string): boolean;
177
+ export declare function isChartsheetRelsPath(path: string): boolean;
@@ -0,0 +1,35 @@
1
+ /**
2
+ * ChartEx sidecar completeness check.
3
+ *
4
+ * Every ChartEx `xl/charts/chartExN.xml` MUST ship with a chartStyle
5
+ * sidecar (`xl/charts/styleN.xml` or `xl/charts/styleExN.xml`) and a
6
+ * chartColorStyle sidecar (`xl/charts/colorsN.xml` or
7
+ * `xl/charts/colorsExN.xml`), linked from `chartExN.xml.rels`. Without
8
+ * them Excel 2016+ discards the chartEx on load ("Removed Part:
9
+ * /xl/drawings/drawingN.xml (Drawing shape)").
10
+ *
11
+ * Both sidecars are STUB-REJECTED **for chartEx** — an id-only
12
+ * skeleton such as `<cs:chartStyle id="395"/>` (no child elements)
13
+ * makes Excel treat the sidecar as malformed and drop the parent
14
+ * chartEx + drawing. Excel authoring tools emit the FULL content: ~40
15
+ * child elements for chartStyle (axisTitle, dataPoint, dataLabel, …)
16
+ * and 6 `schemeClr` entries each with 9 `variation` siblings for
17
+ * chartColorStyle.
18
+ *
19
+ * CLASSIC charts (`xl/charts/chartN.xml`) can share the chartStyle
20
+ * namespace but Excel is lenient there — classic chart style stubs
21
+ * are accepted. We therefore only enforce the no-stub rule on
22
+ * sidecars **referenced by a `chartExN.xml` part** via its rels.
23
+ *
24
+ * The precise content is too intricate to validate without baking
25
+ * ~1500 lines of template XML into this module. Instead we detect the
26
+ * two high-signal stub patterns:
27
+ *
28
+ * - chartStyle root element has zero element children (pure stub).
29
+ * - chartColorStyle root element has zero element children (pure stub).
30
+ *
31
+ * A rich sidecar trivially has dozens of children so the zero-child
32
+ * case is a strong writer-bug signature.
33
+ */
34
+ import { type ValidationContext } from "./context.js";
35
+ export declare function checkChartSidecars(ctx: ValidationContext): void;
@@ -0,0 +1,32 @@
1
+ /**
2
+ * Chart / chartEx internal structure check.
3
+ *
4
+ * Classic charts (`xl/charts/chartN.xml`) must contain both `c:chart` and
5
+ * `c:plotArea`. ChartEx charts must contain `cx:chart`, `cx:plotArea`
6
+ * and at least one `cx:series`; series must carry `layoutId` and their
7
+ * `dataId`/`axisId` back-references must resolve inside the chart.
8
+ * `cx:externalData` nodes must refer to a declared relationship.
9
+ *
10
+ * In addition we catch five chartEx schema-violation patterns that
11
+ * cause Excel 2016+ to drop the whole chartEx part with "Removed Part:
12
+ * /xl/drawings/drawingN.xml (Drawing shape)":
13
+ *
14
+ * - `<cx:series>` with more than one `<cx:dataId>` child
15
+ * (`CT_Series/dataId` has `maxOccurs="1"`; multi-dim series must
16
+ * use a single `<cx:data>` wrapper with multiple strDim/numDim).
17
+ * - `<cx:axisId>N</cx:axisId>`, `<cx:dataId>N</cx:dataId>`,
18
+ * `<cx:binCount>N</cx:binCount>`, `<cx:binSize>N</cx:binSize>`
19
+ * emitted as text content instead of `val="N"` attribute. The
20
+ * underlying types are `CT_UnsignedInteger`/`CT_Double`, which
21
+ * Excel's strict loader only accepts via the attribute form.
22
+ * - `<cx:auto/>` element anywhere in the chartEx. Auto binning is
23
+ * expressed by the ABSENCE of `binSize`/`binCount`, not a
24
+ * dedicated `<cx:auto/>` tag. The tag is schema-invalid.
25
+ * - `<cx:paretoLine>` child of `<cx:layoutPr>`. Not in the
26
+ * CT_SeriesLayoutProperties schema. A real pareto chart adds a
27
+ * second series with `layoutId="paretoLine"`.
28
+ * - `<cx:title>` with a direct `<cx:layout>` child. Title layout
29
+ * belongs in `extLst`-based extensions.
30
+ */
31
+ import type { ValidationContext } from "./context.js";
32
+ export declare function checkChart(ctx: ValidationContext): void;
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Chartsheet structure check.
3
+ *
4
+ * A chartsheet (`xl/chartsheets/sheetN.xml`) must contain a `<drawing>`
5
+ * reference — the chart itself is always in the linked drawing part.
6
+ * Without it, Excel shows an empty chart sheet.
7
+ */
8
+ import type { ValidationContext } from "./context.js";
9
+ export declare function checkChartsheet(ctx: ValidationContext): void;
@@ -0,0 +1,16 @@
1
+ /**
2
+ * Content-types check.
3
+ *
4
+ * OPC requires every part in the package to be resolvable to a
5
+ * content-type via either a `<Default Extension=...>` entry or a
6
+ * `<Override PartName=...>` entry. Excel rejects packages where this
7
+ * mapping has gaps — the classic "repairable content" error.
8
+ *
9
+ * Beyond the OPC-mandatory rules, we also enforce Microsoft's
10
+ * well-known part→type expectations for the common OOXML part layouts
11
+ * (chart, pivot, chartsheet, drawing, etc.). A wrong content-type on
12
+ * these parts is one of the top causes of "Excel cannot open" errors
13
+ * because Excel uses the type string to route parsing.
14
+ */
15
+ import type { ValidationContext } from "./context.js";
16
+ export declare function checkContentTypes(ctx: ValidationContext): void;
@@ -0,0 +1,34 @@
1
+ /**
2
+ * Drawing part structure check.
3
+ *
4
+ * When a drawing file contains `<xdr:graphicFrame>` nodes but neither a
5
+ * classic `<c:chart>` nor a chartEx `<cx:chart>` reference inside them,
6
+ * the graphic frame is dangling — Excel shows a placeholder or drops the
7
+ * frame on load.
8
+ *
9
+ * We also scan anchor coordinates: every anchor must have `from` and
10
+ * `to` child elements, and EMU values (`x`, `y`, `cx`, `cy`,
11
+ * `colOff`, `rowOff`) when present must parse as finite non-negative
12
+ * numbers. Excel rejects anchors with NaN coordinates outright.
13
+ *
14
+ * Finally we enforce the ChartEx drawing-wrapper invariants that
15
+ * trigger "Removed Part: /xl/drawings/drawingN.xml (Drawing shape)"
16
+ * in production Excel logs:
17
+ *
18
+ * - Any `<cx:chart>` reference MUST live inside an
19
+ * `<mc:AlternateContent>` block. The Microsoft ChartEx schema was
20
+ * never part of the base OOXML spec, so Excel's strict loader
21
+ * requires MC substitution so legacy readers see a fallback shape.
22
+ * - The `<mc:Fallback>` MUST be non-empty. An empty Fallback
23
+ * collapses the anchor to nothing on clients that take that
24
+ * branch, and Excel's strict loader has been observed to reject
25
+ * the drawing even on the Choice branch when it sees the
26
+ * degenerate Fallback.
27
+ * - `<mc:AlternateContent>` lives INSIDE the `<xdr:twoCellAnchor>`
28
+ * shape slot (between `<xdr:to>` and `<xdr:clientData>`), NOT
29
+ * around the whole anchor. Wrapping the entire anchor duplicates
30
+ * `<xdr:from>`/`<xdr:to>` across Choice and Fallback, which Excel
31
+ * rejects even though MC substitution permits it in theory.
32
+ */
33
+ import type { ValidationContext } from "./context.js";
34
+ export declare function checkDrawing(ctx: ValidationContext): void;
@@ -0,0 +1,14 @@
1
+ /**
2
+ * Pivot table & pivot cache check.
3
+ *
4
+ * Each `xl/pivotTables/pivotTableN.xml` declares a `cacheId` that must be
5
+ * registered in the workbook's `<pivotCaches>` list; the cache in turn
6
+ * must back a live pivotCacheDefinition/pivotCacheRecords pair.
7
+ *
8
+ * We do a lightweight cross-reference check: (a) every pivot table
9
+ * advertises a cacheId that resolves to a `<pivotCache>` entry in
10
+ * workbook.xml, and (b) each referenced pivotCacheDefinition's rels point
11
+ * at a pivotCacheRecords file that actually exists.
12
+ */
13
+ import type { ValidationContext } from "./context.js";
14
+ export declare function checkPivot(ctx: ValidationContext): void;
@@ -0,0 +1,18 @@
1
+ /**
2
+ * Relationships check.
3
+ *
4
+ * For every `.rels` file in the package we verify:
5
+ * - The root element is `<Relationships>` and children are `<Relationship>`.
6
+ * - Each rel has `Id`, `Type`, and `Target` attributes.
7
+ * - Relationship `Id` values are unique within the same rels file.
8
+ * - Non-external targets resolve to files that exist inside the package.
9
+ * - Resolved targets stay inside the package root (no `..` escape).
10
+ * - For well-known rel types, the resolved target matches the expected
11
+ * part-name pattern (e.g. a `Type=...relationships/chart` rel must
12
+ * point at `xl/charts/chartN.xml`).
13
+ * - Every non-root rels file has a corresponding source part in the zip.
14
+ * - The package root rels include an officeDocument rel to `xl/workbook.xml`.
15
+ */
16
+ import type { ValidationContext } from "./context.js";
17
+ export declare function checkRootRelationships(ctx: ValidationContext): void;
18
+ export declare function checkRelationships(ctx: ValidationContext): void;
@@ -0,0 +1,21 @@
1
+ /**
2
+ * Package structure check.
3
+ *
4
+ * Verifies the package contains the four OPC-mandatory parts (every xlsx
5
+ * must have these to be considered an Open Packaging Convention file) and
6
+ * that every XML-like part is syntactically well-formed.
7
+ *
8
+ * XML well-formedness is the broadest reachable check — it catches
9
+ * unclosed tags, bad escapes, and invalid entities that would cause Excel
10
+ * to repair-or-reject the whole package. We parse via DOM (which
11
+ * internally delegates to SAX) so that subsequent DOM-based checkers hit
12
+ * the same cached result.
13
+ */
14
+ import type { ValidationContext } from "./context.js";
15
+ export declare function checkStructure(ctx: ValidationContext): void;
16
+ /**
17
+ * Walk every XML-like entry and parse it to surface malformed-XML
18
+ * problems. Leverages the context cache so DOM-based checkers that run
19
+ * afterwards do not re-parse.
20
+ */
21
+ export declare function checkXmlWellFormed(ctx: ValidationContext): void;
@@ -0,0 +1,15 @@
1
+ /**
2
+ * Styles table integrity.
3
+ *
4
+ * Every xf in `cellXfs` references indices into `numFmts`, `fonts`,
5
+ * `fills`, `borders`. Out-of-bounds references produce style corruption
6
+ * on load (Excel falls back to the default style silently, so this is a
7
+ * warning-severity check — it's a strong signal of a broken writer but
8
+ * not a hard "Excel cannot open" issue).
9
+ *
10
+ * `numFmts` uses numeric IDs, including ~100 built-in IDs < 164 that are
11
+ * never declared. We only flag ids >= 164 that have no matching numFmt
12
+ * entry.
13
+ */
14
+ import type { ValidationContext } from "./context.js";
15
+ export declare function checkStyles(ctx: ValidationContext): void;
@@ -0,0 +1,31 @@
1
+ /**
2
+ * Table part check.
3
+ *
4
+ * Three real-world "Removed Records: Table from /xl/tables/tableN.xml"
5
+ * patterns that cause Excel to drop the entire table on open:
6
+ *
7
+ * 1. **Redundant per-column `<filterColumn>`.** The writer used to
8
+ * emit a bare `<filterColumn colId="N" hiddenButton="1"/>` for
9
+ * every column in the table. The schema accepts it, but Excel's
10
+ * loader interprets a fully-hidden autoFilter on a live table as
11
+ * inconsistent and drops the table to recover.
12
+ *
13
+ * 2. **`<totalsRowFormula>` paired with a built-in
14
+ * `totalsRowFunction`.** The schema allows the child only when
15
+ * the function is `"custom"` (or absent). For any of `sum`,
16
+ * `average`, `count`, `countNums`, `max`, `min`, `stdDev`,
17
+ * `var` Excel generates the SUBTOTAL formula itself and rejects
18
+ * the table if we pre-emit one.
19
+ *
20
+ * 3. **autoFilter range covering the totals row.** When
21
+ * `totalsRowCount="1"` is set on the `<table>`, the autoFilter
22
+ * range must stop one row above the totals row. Filtering the
23
+ * totals row itself is semantically invalid and Excel rejects
24
+ * the table.
25
+ *
26
+ * These are some of the most common "Excel cannot open" symptoms in
27
+ * production xlsx from other tooling too — catching them up front is a
28
+ * high-value check.
29
+ */
30
+ import type { ValidationContext } from "./context.js";
31
+ export declare function checkTables(ctx: ValidationContext): void;
@@ -0,0 +1,19 @@
1
+ /**
2
+ * Workbook-level check.
3
+ *
4
+ * Reads `xl/workbook.xml` as DOM (replacing the previous regex-based
5
+ * approach, which missed namespaced elements like `<x:sheet>`) and walks
6
+ * every `<sheet>` declaration to verify:
7
+ *
8
+ * - `sheetId` uniqueness (OOXML requires globally unique sheet IDs).
9
+ * - `r:id` uniqueness and pointing to a worksheet-type relationship.
10
+ * - `name` attribute presence and Excel's name constraints:
11
+ * · 1–31 characters
12
+ * · No characters in `\ / ? * [ ] :`
13
+ * · Not repeated case-insensitively
14
+ * - CT_Workbook child element ordering (ECMA-376 Part 1 §18.2.27).
15
+ * Excel rejects files whose direct children of `<workbook>` violate
16
+ * the XSD sequence order.
17
+ */
18
+ import type { ValidationContext } from "./context.js";
19
+ export declare function checkWorkbook(ctx: ValidationContext): void;
@@ -0,0 +1,25 @@
1
+ /**
2
+ * Worksheet check — the largest and most important part of the validator.
3
+ *
4
+ * Covers four new structural checks beyond the original wiring check:
5
+ * 1. **Child element ordering** — `<worksheet>` children must appear in
6
+ * the ECMA-376 canonical order. Excel is known to reject files with
7
+ * out-of-order children; this is a top cause of "Excel needs to
8
+ * repair" prompts.
9
+ * 2. **Cell `r="A1"` consistency** — every `<c r="…"/>` inside a
10
+ * `<row r="N"/>` must decode to row `N` and to a column in
11
+ * `[1, 16384]` (Excel's max column limit, XFD).
12
+ * 3. **Merge region overlap** — every `<mergeCell ref="A1:B2"/>` must
13
+ * parse and no two merged ranges may overlap.
14
+ * 4. **Style / SST index bounds** — every `<c s="N"/>` must reference a
15
+ * valid `cellXfs` index, and every `<c t="s"><v>N</v></c>` must
16
+ * reference an existing `sharedStrings` index.
17
+ *
18
+ * Plus the legacy r:id wiring checks (controls, drawing, comments,
19
+ * hyperlink, tablePart, legacyDrawing) and the "controls without
20
+ * drawing" repair signal. The old "legacyDrawing-after-controls" kind is
21
+ * kept for backward compatibility — it is emitted in parallel with the
22
+ * generic `sheet-child-out-of-order` kind.
23
+ */
24
+ import type { ValidationContext } from "./context.js";
25
+ export declare function checkWorksheets(ctx: ValidationContext): void;
@@ -0,0 +1,85 @@
1
+ /**
2
+ * Shared validation context.
3
+ *
4
+ * Checkers share XML parsing work through this context. Relationships,
5
+ * content types, and parsed XML DOMs are parsed at most once and cached.
6
+ * Every checker consumes from the same cache so they all see identical
7
+ * parse results (this matters for "rels malformed" propagation — the
8
+ * malformed entry is reported once, and every downstream checker simply
9
+ * sees the empty parse result).
10
+ */
11
+ import type { ExtractedFile } from "../../../archive/unzip/extract.js";
12
+ import type { XmlDocument, XmlElement } from "../../../xml/types.js";
13
+ import type { Reporter } from "./reporter.js";
14
+ export interface ContentTypesData {
15
+ defaults: Map<string, string>;
16
+ overrides: Map<string, string>;
17
+ /**
18
+ * `true` if the file was parsed as a `<Types>` root successfully.
19
+ * `false` if the file is missing, malformed or has an unexpected root.
20
+ */
21
+ parseOk: boolean;
22
+ /**
23
+ * Duplicate override part names encountered during parse. Emitted as
24
+ * problems by the content-types checker.
25
+ */
26
+ duplicateOverrides: string[];
27
+ }
28
+ export interface Relationship {
29
+ id: string;
30
+ type: string;
31
+ target: string;
32
+ targetMode?: string;
33
+ }
34
+ export interface RelsData {
35
+ rels: Relationship[];
36
+ byId: Map<string, Relationship>;
37
+ parseOk: boolean;
38
+ /**
39
+ * Raw rel entries that lacked Id/Type/Target attributes. Emitted
40
+ * separately so the rels checker can flag them without us dropping
41
+ * them from the data entirely.
42
+ */
43
+ malformedEntries: Array<{
44
+ missingId: boolean;
45
+ missingType: boolean;
46
+ missingTarget: boolean;
47
+ id?: string;
48
+ type?: string;
49
+ }>;
50
+ }
51
+ export declare class ValidationContext {
52
+ readonly entries: Map<string, ExtractedFile>;
53
+ readonly reporter: Reporter;
54
+ private readonly textCache;
55
+ private readonly domCache;
56
+ private readonly relsCache;
57
+ private contentTypes?;
58
+ constructor(entries: Map<string, ExtractedFile>, reporter: Reporter);
59
+ /** `true` if `path` points to a file (not a directory) in the package. */
60
+ has(path: string): boolean;
61
+ /** Iterate every file (skip directories). */
62
+ files(): IterableIterator<readonly [string, ExtractedFile]>;
63
+ /** Decode a part as UTF-8 text. Cached. */
64
+ readText(path: string): string | undefined;
65
+ /**
66
+ * Parse a part as XML DOM. Cached. Returns `undefined` if the part is
67
+ * missing or malformed. Callers that need to distinguish those cases
68
+ * should check `has(path)` first.
69
+ */
70
+ readDom(path: string, onMalformed?: (err: Error) => void): XmlDocument | undefined;
71
+ /**
72
+ * Read and cache the content-types table. On first call, parse
73
+ * `[Content_Types].xml`; subsequent calls return the cache.
74
+ * Reports malformed-XML problems via the reporter but never throws.
75
+ */
76
+ readContentTypes(): ContentTypesData;
77
+ /**
78
+ * Read and cache a relationships file. Every .rels in the package is
79
+ * parsed lazily on first request. Malformed files are reported once
80
+ * and return an empty relationships array.
81
+ */
82
+ readRels(relsPath: string): RelsData;
83
+ }
84
+ /** Get the root element of a DOM; returns undefined for missing DOM. */
85
+ export declare function domRoot(dom: XmlDocument | undefined): XmlElement | undefined;
@@ -0,0 +1,31 @@
1
+ /**
2
+ * Public entry point for the OOXML validator.
3
+ *
4
+ * Validates an xlsx package buffer against the OPC spec and Excel's
5
+ * known opening invariants. See `types.ts` for the full catalog of
6
+ * problem kinds.
7
+ *
8
+ * ```ts
9
+ * const report = await validateXlsxBuffer(await wb.xlsx.writeBuffer());
10
+ * if (!report.ok) {
11
+ * console.error(report.problems);
12
+ * }
13
+ * ```
14
+ *
15
+ * The implementation is composed of independent checkers under
16
+ * `check-*.ts` — each can be unit-tested in isolation. The entry point
17
+ * orchestrates them with a shared `ValidationContext` that caches XML
18
+ * parsing across checks.
19
+ */
20
+ import type { OoxmlOrderingProblemKind, OoxmlOrderingValidationProblem, OoxmlProblemKind, OoxmlProblemSeverity, OoxmlValidateOptions, OoxmlValidationProblem, OoxmlValidationReport, OoxmlValidationStats } from "./types.js";
21
+ export type { OoxmlOrderingProblemKind, OoxmlOrderingValidationProblem, OoxmlProblemKind, OoxmlProblemSeverity, OoxmlValidateOptions, OoxmlValidationProblem, OoxmlValidationReport, OoxmlValidationStats };
22
+ /**
23
+ * Validate an xlsx package. Returns a report with every detected
24
+ * problem; `ok === true` when no error-severity problems were found.
25
+ *
26
+ * This function never throws — malformed input is surfaced as a
27
+ * `xml-malformed` or similar problem kind. The only exception is if
28
+ * `extractAll` fails to unzip the buffer (not a valid ZIP at all), in
29
+ * which case the underlying archive error propagates.
30
+ */
31
+ export declare function validateXlsxBuffer(xlsxBuffer: Uint8Array, options?: OoxmlValidateOptions): Promise<OoxmlValidationReport>;