@cj-tech-master/excelts 1.6.3 → 2.0.0-canary.20251228013952.4f2c3c6

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 (400) hide show
  1. package/README.md +139 -24
  2. package/README_zh.md +140 -26
  3. package/dist/browser/excelts.esm.js +18468 -0
  4. package/dist/browser/excelts.esm.js.map +1 -0
  5. package/dist/browser/excelts.esm.min.js +125 -0
  6. package/dist/browser/excelts.iife.js +13107 -47146
  7. package/dist/browser/excelts.iife.js.map +1 -1
  8. package/dist/browser/excelts.iife.min.js +24 -106
  9. package/dist/cjs/csv/csv-core.js +701 -0
  10. package/dist/cjs/csv/csv-stream.js +646 -0
  11. package/dist/cjs/csv/csv.base.js +137 -0
  12. package/dist/cjs/csv/csv.browser.js +68 -0
  13. package/dist/cjs/csv/csv.js +218 -162
  14. package/dist/cjs/doc/anchor.js +2 -2
  15. package/dist/cjs/doc/cell.js +22 -22
  16. package/dist/cjs/doc/column.js +28 -7
  17. package/dist/cjs/doc/data-validations.js +3 -3
  18. package/dist/cjs/doc/defined-names.js +13 -13
  19. package/dist/cjs/doc/image.js +7 -7
  20. package/dist/cjs/doc/modelcontainer.js +2 -2
  21. package/dist/cjs/doc/note.js +2 -2
  22. package/dist/cjs/doc/pivot-table.js +5 -5
  23. package/dist/cjs/doc/range.js +11 -11
  24. package/dist/cjs/doc/row.js +16 -16
  25. package/dist/cjs/doc/table.js +5 -5
  26. package/dist/cjs/doc/workbook.base.js +211 -0
  27. package/dist/cjs/doc/workbook.browser.js +62 -0
  28. package/dist/cjs/doc/workbook.js +68 -179
  29. package/dist/cjs/doc/worksheet.js +45 -41
  30. package/dist/cjs/index.js +49 -32
  31. package/dist/cjs/stream/xlsx/hyperlink-reader.js +6 -6
  32. package/dist/cjs/stream/xlsx/sheet-comments-writer.js +12 -12
  33. package/dist/cjs/stream/xlsx/sheet-rels-writer.js +4 -4
  34. package/dist/cjs/stream/xlsx/workbook-reader.js +22 -22
  35. package/dist/cjs/stream/xlsx/workbook-writer.js +38 -38
  36. package/dist/cjs/stream/xlsx/worksheet-reader.js +17 -17
  37. package/dist/cjs/stream/xlsx/worksheet-writer.js +67 -60
  38. package/dist/cjs/utils/browser-buffer.js +75 -0
  39. package/dist/cjs/utils/cell-format.js +2 -2
  40. package/dist/cjs/utils/cell-matrix.js +5 -5
  41. package/dist/cjs/utils/datetime.js +499 -0
  42. package/dist/cjs/utils/encryptor.browser.js +240 -0
  43. package/dist/cjs/utils/parse-sax.js +1191 -13
  44. package/dist/cjs/utils/shared-formula.js +5 -5
  45. package/dist/cjs/utils/sheet-utils.js +13 -13
  46. package/dist/cjs/utils/stream-buf.browser.js +355 -0
  47. package/dist/cjs/utils/stream-buf.js +5 -5
  48. package/dist/cjs/utils/unzip/extract.js +11 -11
  49. package/dist/cjs/utils/unzip/index.js +21 -21
  50. package/dist/cjs/utils/unzip/parse-extra-field.js +3 -3
  51. package/dist/cjs/utils/unzip/parse.js +16 -16
  52. package/dist/cjs/utils/unzip/zip-parser.js +14 -3
  53. package/dist/cjs/utils/utils.base.js +161 -0
  54. package/dist/cjs/utils/utils.browser.js +89 -0
  55. package/dist/cjs/utils/utils.js +46 -154
  56. package/dist/cjs/utils/xml-stream.js +3 -3
  57. package/dist/cjs/utils/zip/compress.base.js +88 -0
  58. package/dist/cjs/utils/zip/compress.browser.js +127 -0
  59. package/dist/cjs/utils/zip/compress.js +18 -198
  60. package/dist/cjs/utils/zip/crc32.browser.js +88 -0
  61. package/dist/cjs/utils/zip/deflate-fallback.js +575 -0
  62. package/dist/cjs/utils/zip/index.js +17 -17
  63. package/dist/cjs/utils/zip/streaming-zip.js +264 -0
  64. package/dist/cjs/utils/zip/zip-builder.js +10 -10
  65. package/dist/cjs/utils/zip-stream.browser.js +135 -0
  66. package/dist/cjs/utils/zip-stream.js +4 -4
  67. package/dist/cjs/xlsx/xform/base-xform.js +4 -4
  68. package/dist/cjs/xlsx/xform/book/defined-name-xform.js +4 -4
  69. package/dist/cjs/xlsx/xform/book/sheet-xform.js +4 -4
  70. package/dist/cjs/xlsx/xform/book/workbook-calc-properties-xform.js +2 -2
  71. package/dist/cjs/xlsx/xform/book/workbook-pivot-cache-xform.js +2 -2
  72. package/dist/cjs/xlsx/xform/book/workbook-properties-xform.js +2 -2
  73. package/dist/cjs/xlsx/xform/book/workbook-view-xform.js +2 -2
  74. package/dist/cjs/xlsx/xform/book/workbook-xform.js +24 -24
  75. package/dist/cjs/xlsx/xform/comment/comment-xform.js +4 -4
  76. package/dist/cjs/xlsx/xform/comment/comments-xform.js +6 -6
  77. package/dist/cjs/xlsx/xform/comment/style/vml-position-xform.js +2 -2
  78. package/dist/cjs/xlsx/xform/comment/style/vml-protection-xform.js +2 -2
  79. package/dist/cjs/xlsx/xform/comment/vml-anchor-xform.js +2 -2
  80. package/dist/cjs/xlsx/xform/comment/vml-client-data-xform.js +10 -10
  81. package/dist/cjs/xlsx/xform/comment/vml-notes-xform.js +6 -6
  82. package/dist/cjs/xlsx/xform/comment/vml-shape-xform.js +6 -6
  83. package/dist/cjs/xlsx/xform/comment/vml-textbox-xform.js +2 -2
  84. package/dist/cjs/xlsx/xform/composite-xform.js +2 -2
  85. package/dist/cjs/xlsx/xform/core/app-heading-pairs-xform.js +2 -2
  86. package/dist/cjs/xlsx/xform/core/app-titles-of-parts-xform.js +2 -2
  87. package/dist/cjs/xlsx/xform/core/app-xform.js +11 -11
  88. package/dist/cjs/xlsx/xform/core/content-types-xform.js +4 -4
  89. package/dist/cjs/xlsx/xform/core/core-xform.js +23 -23
  90. package/dist/cjs/xlsx/xform/core/relationship-xform.js +2 -2
  91. package/dist/cjs/xlsx/xform/core/relationships-xform.js +6 -6
  92. package/dist/cjs/xlsx/xform/drawing/base-cell-anchor-xform.js +2 -2
  93. package/dist/cjs/xlsx/xform/drawing/blip-fill-xform.js +4 -4
  94. package/dist/cjs/xlsx/xform/drawing/blip-xform.js +2 -2
  95. package/dist/cjs/xlsx/xform/drawing/c-nv-pic-pr-xform.js +2 -2
  96. package/dist/cjs/xlsx/xform/drawing/c-nv-pr-xform.js +6 -6
  97. package/dist/cjs/xlsx/xform/drawing/cell-position-xform.js +7 -7
  98. package/dist/cjs/xlsx/xform/drawing/drawing-xform.js +10 -10
  99. package/dist/cjs/xlsx/xform/drawing/ext-lst-xform.js +2 -2
  100. package/dist/cjs/xlsx/xform/drawing/ext-xform.js +2 -2
  101. package/dist/cjs/xlsx/xform/drawing/hlink-click-xform.js +2 -2
  102. package/dist/cjs/xlsx/xform/drawing/nv-pic-pr-xform.js +6 -6
  103. package/dist/cjs/xlsx/xform/drawing/one-cell-anchor-xform.js +10 -10
  104. package/dist/cjs/xlsx/xform/drawing/pic-xform.js +9 -9
  105. package/dist/cjs/xlsx/xform/drawing/two-cell-anchor-xform.js +9 -9
  106. package/dist/cjs/xlsx/xform/list-xform.js +2 -2
  107. package/dist/cjs/xlsx/xform/pivot-table/cache-field-xform.js +5 -5
  108. package/dist/cjs/xlsx/xform/pivot-table/cache-field.js +3 -3
  109. package/dist/cjs/xlsx/xform/pivot-table/pivot-cache-definition-xform.js +10 -10
  110. package/dist/cjs/xlsx/xform/pivot-table/pivot-cache-records-xform.js +9 -9
  111. package/dist/cjs/xlsx/xform/pivot-table/pivot-table-xform.js +10 -11
  112. package/dist/cjs/xlsx/xform/sheet/auto-filter-xform.js +4 -4
  113. package/dist/cjs/xlsx/xform/sheet/cell-xform.js +65 -65
  114. package/dist/cjs/xlsx/xform/sheet/cf/cf-rule-xform.js +27 -27
  115. package/dist/cjs/xlsx/xform/sheet/cf/cfvo-xform.js +3 -3
  116. package/dist/cjs/xlsx/xform/sheet/cf/color-scale-xform.js +6 -6
  117. package/dist/cjs/xlsx/xform/sheet/cf/conditional-formatting-xform.js +6 -6
  118. package/dist/cjs/xlsx/xform/sheet/cf/conditional-formattings-xform.js +4 -4
  119. package/dist/cjs/xlsx/xform/sheet/cf/databar-xform.js +6 -6
  120. package/dist/cjs/xlsx/xform/sheet/cf/ext-lst-ref-xform.js +5 -5
  121. package/dist/cjs/xlsx/xform/sheet/cf/formula-xform.js +2 -2
  122. package/dist/cjs/xlsx/xform/sheet/cf/icon-set-xform.js +11 -11
  123. package/dist/cjs/xlsx/xform/sheet/cf-ext/cf-icon-ext-xform.js +3 -3
  124. package/dist/cjs/xlsx/xform/sheet/cf-ext/cf-rule-ext-xform.js +11 -12
  125. package/dist/cjs/xlsx/xform/sheet/cf-ext/cfvo-ext-xform.js +4 -4
  126. package/dist/cjs/xlsx/xform/sheet/cf-ext/conditional-formatting-ext-xform.js +8 -8
  127. package/dist/cjs/xlsx/xform/sheet/cf-ext/conditional-formattings-ext-xform.js +6 -6
  128. package/dist/cjs/xlsx/xform/sheet/cf-ext/databar-ext-xform.js +26 -26
  129. package/dist/cjs/xlsx/xform/sheet/cf-ext/f-ext-xform.js +2 -2
  130. package/dist/cjs/xlsx/xform/sheet/cf-ext/icon-set-ext-xform.js +14 -14
  131. package/dist/cjs/xlsx/xform/sheet/cf-ext/sqref-ext-xform.js +2 -2
  132. package/dist/cjs/xlsx/xform/sheet/col-breaks-xform.js +38 -0
  133. package/dist/cjs/xlsx/xform/sheet/col-xform.js +6 -6
  134. package/dist/cjs/xlsx/xform/sheet/data-validations-xform.js +18 -18
  135. package/dist/cjs/xlsx/xform/sheet/dimension-xform.js +2 -2
  136. package/dist/cjs/xlsx/xform/sheet/drawing-xform.js +2 -2
  137. package/dist/cjs/xlsx/xform/sheet/ext-lst-xform.js +5 -5
  138. package/dist/cjs/xlsx/xform/sheet/header-footer-xform.js +2 -2
  139. package/dist/cjs/xlsx/xform/sheet/hyperlink-xform.js +2 -2
  140. package/dist/cjs/xlsx/xform/sheet/merge-cell-xform.js +2 -2
  141. package/dist/cjs/xlsx/xform/sheet/merges.js +8 -8
  142. package/dist/cjs/xlsx/xform/sheet/outline-properties-xform.js +2 -2
  143. package/dist/cjs/xlsx/xform/sheet/page-breaks-xform.js +15 -3
  144. package/dist/cjs/xlsx/xform/sheet/page-margins-xform.js +2 -2
  145. package/dist/cjs/xlsx/xform/sheet/page-setup-properties-xform.js +2 -2
  146. package/dist/cjs/xlsx/xform/sheet/page-setup-xform.js +2 -2
  147. package/dist/cjs/xlsx/xform/sheet/picture-xform.js +2 -2
  148. package/dist/cjs/xlsx/xform/sheet/print-options-xform.js +2 -2
  149. package/dist/cjs/xlsx/xform/sheet/row-breaks-xform.js +15 -17
  150. package/dist/cjs/xlsx/xform/sheet/row-xform.js +11 -11
  151. package/dist/cjs/xlsx/xform/sheet/sheet-format-properties-xform.js +2 -2
  152. package/dist/cjs/xlsx/xform/sheet/sheet-properties-xform.js +8 -8
  153. package/dist/cjs/xlsx/xform/sheet/sheet-protection-xform.js +2 -2
  154. package/dist/cjs/xlsx/xform/sheet/sheet-view-xform.js +4 -4
  155. package/dist/cjs/xlsx/xform/sheet/table-part-xform.js +2 -2
  156. package/dist/cjs/xlsx/xform/sheet/worksheet-xform.js +75 -70
  157. package/dist/cjs/xlsx/xform/simple/boolean-xform.js +2 -2
  158. package/dist/cjs/xlsx/xform/simple/date-xform.js +2 -2
  159. package/dist/cjs/xlsx/xform/simple/float-xform.js +2 -2
  160. package/dist/cjs/xlsx/xform/simple/integer-xform.js +2 -2
  161. package/dist/cjs/xlsx/xform/simple/string-xform.js +2 -2
  162. package/dist/cjs/xlsx/xform/static-xform.js +4 -4
  163. package/dist/cjs/xlsx/xform/strings/phonetic-text-xform.js +6 -6
  164. package/dist/cjs/xlsx/xform/strings/rich-text-xform.js +6 -6
  165. package/dist/cjs/xlsx/xform/strings/shared-string-xform.js +8 -8
  166. package/dist/cjs/xlsx/xform/strings/shared-strings-xform.js +6 -6
  167. package/dist/cjs/xlsx/xform/strings/text-xform.js +2 -2
  168. package/dist/cjs/xlsx/xform/style/alignment-xform.js +8 -8
  169. package/dist/cjs/xlsx/xform/style/border-xform.js +8 -8
  170. package/dist/cjs/xlsx/xform/style/color-xform.js +2 -2
  171. package/dist/cjs/xlsx/xform/style/dxf-xform.js +14 -14
  172. package/dist/cjs/xlsx/xform/style/fill-xform.js +9 -9
  173. package/dist/cjs/xlsx/xform/style/font-xform.js +22 -22
  174. package/dist/cjs/xlsx/xform/style/numfmt-xform.js +5 -5
  175. package/dist/cjs/xlsx/xform/style/protection-xform.js +2 -2
  176. package/dist/cjs/xlsx/xform/style/style-xform.js +6 -6
  177. package/dist/cjs/xlsx/xform/style/styles-xform.js +39 -39
  178. package/dist/cjs/xlsx/xform/style/underline-xform.js +2 -2
  179. package/dist/cjs/xlsx/xform/table/auto-filter-xform.js +4 -4
  180. package/dist/cjs/xlsx/xform/table/custom-filter-xform.js +2 -2
  181. package/dist/cjs/xlsx/xform/table/filter-column-xform.js +9 -9
  182. package/dist/cjs/xlsx/xform/table/filter-xform.js +2 -2
  183. package/dist/cjs/xlsx/xform/table/table-column-xform.js +2 -2
  184. package/dist/cjs/xlsx/xform/table/table-style-info-xform.js +2 -2
  185. package/dist/cjs/xlsx/xform/table/table-xform.js +12 -12
  186. package/dist/cjs/xlsx/xlsx.base.js +742 -0
  187. package/dist/cjs/xlsx/xlsx.browser.js +162 -0
  188. package/dist/cjs/xlsx/xlsx.js +118 -892
  189. package/dist/esm/csv/csv-core.js +694 -0
  190. package/dist/esm/csv/csv-stream.js +638 -0
  191. package/dist/esm/csv/csv.base.js +127 -0
  192. package/dist/esm/csv/csv.browser.js +65 -0
  193. package/dist/esm/csv/csv.js +181 -159
  194. package/dist/esm/doc/column.js +21 -0
  195. package/dist/esm/doc/workbook.base.js +207 -0
  196. package/dist/esm/doc/workbook.browser.js +59 -0
  197. package/dist/esm/doc/workbook.js +64 -175
  198. package/dist/esm/doc/worksheet.js +4 -0
  199. package/dist/esm/index.browser.js +33 -1
  200. package/dist/esm/index.js +23 -8
  201. package/dist/esm/local.js +0 -1
  202. package/dist/esm/stream/xlsx/workbook-writer.js +1 -1
  203. package/dist/esm/stream/xlsx/worksheet-writer.js +8 -1
  204. package/dist/esm/utils/browser-buffer.js +67 -0
  205. package/dist/esm/utils/datetime.js +493 -0
  206. package/dist/esm/utils/encryptor.browser.js +237 -0
  207. package/dist/esm/utils/parse-sax.js +1188 -12
  208. package/dist/esm/utils/stream-buf.browser.js +352 -0
  209. package/dist/esm/utils/unzip/zip-parser.js +11 -0
  210. package/dist/esm/utils/utils.base.js +142 -0
  211. package/dist/esm/utils/utils.browser.js +68 -0
  212. package/dist/esm/utils/utils.js +15 -123
  213. package/dist/esm/utils/zip/compress.base.js +83 -0
  214. package/dist/esm/utils/zip/compress.browser.js +121 -0
  215. package/dist/esm/utils/zip/compress.js +16 -164
  216. package/dist/esm/utils/zip/crc32.browser.js +82 -0
  217. package/dist/esm/utils/zip/deflate-fallback.js +570 -0
  218. package/dist/esm/utils/zip/streaming-zip.js +259 -0
  219. package/dist/esm/utils/zip-stream.browser.js +132 -0
  220. package/dist/esm/xlsx/xform/pivot-table/pivot-table-xform.js +2 -3
  221. package/dist/esm/xlsx/xform/sheet/cf-ext/cf-rule-ext-xform.js +2 -3
  222. package/dist/esm/xlsx/xform/sheet/col-breaks-xform.js +35 -0
  223. package/dist/esm/xlsx/xform/sheet/page-breaks-xform.js +13 -1
  224. package/dist/esm/xlsx/xform/sheet/row-breaks-xform.js +11 -13
  225. package/dist/esm/xlsx/xform/sheet/worksheet-xform.js +7 -2
  226. package/dist/esm/xlsx/xlsx.base.js +739 -0
  227. package/dist/esm/xlsx/xlsx.browser.js +159 -0
  228. package/dist/esm/xlsx/xlsx.js +114 -888
  229. package/dist/types/csv/csv-core.d.ts +207 -0
  230. package/dist/types/csv/csv-stream.d.ts +114 -0
  231. package/dist/types/csv/csv.base.d.ts +62 -0
  232. package/dist/types/csv/csv.browser.d.ts +33 -0
  233. package/dist/types/csv/csv.d.ts +97 -71
  234. package/dist/types/doc/anchor.d.ts +1 -1
  235. package/dist/types/doc/cell.d.ts +7 -7
  236. package/dist/types/doc/column.d.ts +9 -3
  237. package/dist/types/doc/defined-names.d.ts +4 -4
  238. package/dist/types/doc/image.d.ts +2 -2
  239. package/dist/types/doc/modelcontainer.d.ts +1 -1
  240. package/dist/types/doc/pivot-table.d.ts +1 -1
  241. package/dist/types/doc/range.d.ts +1 -1
  242. package/dist/types/doc/row.d.ts +3 -3
  243. package/dist/types/doc/table.d.ts +2 -2
  244. package/dist/types/doc/workbook.base.d.ts +111 -0
  245. package/dist/types/doc/workbook.browser.d.ts +38 -0
  246. package/dist/types/doc/workbook.d.ts +62 -92
  247. package/dist/types/doc/worksheet.d.ts +12 -10
  248. package/dist/types/index.browser.d.ts +19 -5
  249. package/dist/types/index.d.ts +24 -23
  250. package/dist/types/local.d.ts +0 -1
  251. package/dist/types/stream/xlsx/hyperlink-reader.d.ts +1 -1
  252. package/dist/types/stream/xlsx/workbook-reader.d.ts +4 -4
  253. package/dist/types/stream/xlsx/workbook-writer.d.ts +7 -7
  254. package/dist/types/stream/xlsx/worksheet-reader.d.ts +5 -5
  255. package/dist/types/stream/xlsx/worksheet-writer.d.ts +11 -9
  256. package/dist/types/types.d.ts +6 -0
  257. package/dist/types/utils/browser-buffer.d.ts +28 -0
  258. package/dist/types/utils/col-cache.d.ts +1 -1
  259. package/dist/types/utils/datetime.d.ts +56 -0
  260. package/dist/types/utils/encryptor.browser.d.ts +28 -0
  261. package/dist/types/utils/parse-sax.d.ts +108 -1
  262. package/dist/types/utils/sheet-utils.d.ts +3 -3
  263. package/dist/types/utils/stream-buf.browser.d.ts +41 -0
  264. package/dist/types/utils/unzip/extract.d.ts +6 -6
  265. package/dist/types/utils/unzip/index.d.ts +8 -8
  266. package/dist/types/utils/unzip/parse.d.ts +3 -3
  267. package/dist/types/utils/unzip/zip-parser.d.ts +5 -0
  268. package/dist/types/utils/utils.base.d.ts +29 -0
  269. package/dist/types/utils/utils.browser.d.ts +29 -0
  270. package/dist/types/utils/utils.d.ts +6 -25
  271. package/dist/types/utils/zip/compress.base.d.ts +45 -0
  272. package/dist/types/utils/zip/compress.browser.d.ts +63 -0
  273. package/dist/types/utils/zip/compress.d.ts +13 -45
  274. package/dist/types/utils/zip/crc32.browser.d.ts +52 -0
  275. package/dist/types/utils/zip/deflate-fallback.d.ts +39 -0
  276. package/dist/types/utils/zip/index.d.ts +5 -5
  277. package/dist/types/utils/zip/streaming-zip.d.ts +96 -0
  278. package/dist/types/utils/zip/zip-builder.d.ts +1 -1
  279. package/dist/types/utils/zip-stream.browser.d.ts +39 -0
  280. package/dist/types/xlsx/xform/base-xform.d.ts +1 -1
  281. package/dist/types/xlsx/xform/book/defined-name-xform.d.ts +1 -1
  282. package/dist/types/xlsx/xform/book/sheet-xform.d.ts +1 -1
  283. package/dist/types/xlsx/xform/book/workbook-calc-properties-xform.d.ts +1 -1
  284. package/dist/types/xlsx/xform/book/workbook-pivot-cache-xform.d.ts +1 -1
  285. package/dist/types/xlsx/xform/book/workbook-properties-xform.d.ts +1 -1
  286. package/dist/types/xlsx/xform/book/workbook-view-xform.d.ts +1 -1
  287. package/dist/types/xlsx/xform/book/workbook-xform.d.ts +2 -2
  288. package/dist/types/xlsx/xform/comment/comment-xform.d.ts +2 -2
  289. package/dist/types/xlsx/xform/comment/comments-xform.d.ts +2 -2
  290. package/dist/types/xlsx/xform/comment/style/vml-position-xform.d.ts +1 -1
  291. package/dist/types/xlsx/xform/comment/style/vml-protection-xform.d.ts +1 -1
  292. package/dist/types/xlsx/xform/comment/vml-anchor-xform.d.ts +1 -1
  293. package/dist/types/xlsx/xform/comment/vml-client-data-xform.d.ts +1 -1
  294. package/dist/types/xlsx/xform/comment/vml-notes-xform.d.ts +1 -1
  295. package/dist/types/xlsx/xform/comment/vml-shape-xform.d.ts +1 -1
  296. package/dist/types/xlsx/xform/comment/vml-textbox-xform.d.ts +1 -1
  297. package/dist/types/xlsx/xform/composite-xform.d.ts +1 -1
  298. package/dist/types/xlsx/xform/core/app-heading-pairs-xform.d.ts +1 -1
  299. package/dist/types/xlsx/xform/core/app-titles-of-parts-xform.d.ts +1 -1
  300. package/dist/types/xlsx/xform/core/app-xform.d.ts +1 -1
  301. package/dist/types/xlsx/xform/core/content-types-xform.d.ts +1 -1
  302. package/dist/types/xlsx/xform/core/core-xform.d.ts +1 -1
  303. package/dist/types/xlsx/xform/core/relationship-xform.d.ts +1 -1
  304. package/dist/types/xlsx/xform/core/relationships-xform.d.ts +1 -1
  305. package/dist/types/xlsx/xform/drawing/base-cell-anchor-xform.d.ts +1 -1
  306. package/dist/types/xlsx/xform/drawing/blip-fill-xform.d.ts +2 -2
  307. package/dist/types/xlsx/xform/drawing/blip-xform.d.ts +1 -1
  308. package/dist/types/xlsx/xform/drawing/c-nv-pic-pr-xform.d.ts +1 -1
  309. package/dist/types/xlsx/xform/drawing/c-nv-pr-xform.d.ts +1 -1
  310. package/dist/types/xlsx/xform/drawing/cell-position-xform.d.ts +2 -2
  311. package/dist/types/xlsx/xform/drawing/drawing-xform.d.ts +1 -1
  312. package/dist/types/xlsx/xform/drawing/ext-lst-xform.d.ts +1 -1
  313. package/dist/types/xlsx/xform/drawing/ext-xform.d.ts +1 -1
  314. package/dist/types/xlsx/xform/drawing/hlink-click-xform.d.ts +1 -1
  315. package/dist/types/xlsx/xform/drawing/nv-pic-pr-xform.d.ts +1 -1
  316. package/dist/types/xlsx/xform/drawing/one-cell-anchor-xform.d.ts +1 -1
  317. package/dist/types/xlsx/xform/drawing/pic-xform.d.ts +1 -1
  318. package/dist/types/xlsx/xform/drawing/two-cell-anchor-xform.d.ts +1 -1
  319. package/dist/types/xlsx/xform/list-xform.d.ts +1 -1
  320. package/dist/types/xlsx/xform/pivot-table/cache-field-xform.d.ts +1 -1
  321. package/dist/types/xlsx/xform/pivot-table/pivot-cache-definition-xform.d.ts +3 -3
  322. package/dist/types/xlsx/xform/pivot-table/pivot-cache-records-xform.d.ts +2 -2
  323. package/dist/types/xlsx/xform/pivot-table/pivot-table-xform.d.ts +1 -1
  324. package/dist/types/xlsx/xform/sheet/auto-filter-xform.d.ts +1 -1
  325. package/dist/types/xlsx/xform/sheet/cell-xform.d.ts +1 -1
  326. package/dist/types/xlsx/xform/sheet/cf/cf-rule-xform.d.ts +6 -6
  327. package/dist/types/xlsx/xform/sheet/cf/cfvo-xform.d.ts +1 -1
  328. package/dist/types/xlsx/xform/sheet/cf/color-scale-xform.d.ts +3 -3
  329. package/dist/types/xlsx/xform/sheet/cf/conditional-formatting-xform.d.ts +1 -1
  330. package/dist/types/xlsx/xform/sheet/cf/conditional-formattings-xform.d.ts +2 -2
  331. package/dist/types/xlsx/xform/sheet/cf/databar-xform.d.ts +3 -3
  332. package/dist/types/xlsx/xform/sheet/cf/ext-lst-ref-xform.d.ts +1 -1
  333. package/dist/types/xlsx/xform/sheet/cf/formula-xform.d.ts +1 -1
  334. package/dist/types/xlsx/xform/sheet/cf/icon-set-xform.d.ts +2 -2
  335. package/dist/types/xlsx/xform/sheet/cf-ext/cf-icon-ext-xform.d.ts +1 -1
  336. package/dist/types/xlsx/xform/sheet/cf-ext/cf-rule-ext-xform.d.ts +3 -3
  337. package/dist/types/xlsx/xform/sheet/cf-ext/cfvo-ext-xform.d.ts +2 -2
  338. package/dist/types/xlsx/xform/sheet/cf-ext/conditional-formatting-ext-xform.d.ts +3 -3
  339. package/dist/types/xlsx/xform/sheet/cf-ext/conditional-formattings-ext-xform.d.ts +2 -2
  340. package/dist/types/xlsx/xform/sheet/cf-ext/databar-ext-xform.d.ts +3 -3
  341. package/dist/types/xlsx/xform/sheet/cf-ext/f-ext-xform.d.ts +1 -1
  342. package/dist/types/xlsx/xform/sheet/cf-ext/icon-set-ext-xform.d.ts +3 -3
  343. package/dist/types/xlsx/xform/sheet/cf-ext/sqref-ext-xform.d.ts +1 -1
  344. package/dist/types/xlsx/xform/sheet/col-breaks-xform.d.ts +16 -0
  345. package/dist/types/xlsx/xform/sheet/col-xform.d.ts +1 -1
  346. package/dist/types/xlsx/xform/sheet/data-validations-xform.d.ts +1 -1
  347. package/dist/types/xlsx/xform/sheet/dimension-xform.d.ts +1 -1
  348. package/dist/types/xlsx/xform/sheet/drawing-xform.d.ts +1 -1
  349. package/dist/types/xlsx/xform/sheet/ext-lst-xform.d.ts +1 -1
  350. package/dist/types/xlsx/xform/sheet/header-footer-xform.d.ts +1 -1
  351. package/dist/types/xlsx/xform/sheet/hyperlink-xform.d.ts +1 -1
  352. package/dist/types/xlsx/xform/sheet/merge-cell-xform.d.ts +1 -1
  353. package/dist/types/xlsx/xform/sheet/outline-properties-xform.d.ts +1 -1
  354. package/dist/types/xlsx/xform/sheet/page-breaks-xform.d.ts +5 -1
  355. package/dist/types/xlsx/xform/sheet/page-margins-xform.d.ts +1 -1
  356. package/dist/types/xlsx/xform/sheet/page-setup-properties-xform.d.ts +1 -1
  357. package/dist/types/xlsx/xform/sheet/page-setup-xform.d.ts +1 -1
  358. package/dist/types/xlsx/xform/sheet/picture-xform.d.ts +1 -1
  359. package/dist/types/xlsx/xform/sheet/print-options-xform.d.ts +1 -1
  360. package/dist/types/xlsx/xform/sheet/row-breaks-xform.d.ts +5 -1
  361. package/dist/types/xlsx/xform/sheet/row-xform.d.ts +1 -1
  362. package/dist/types/xlsx/xform/sheet/sheet-format-properties-xform.d.ts +1 -1
  363. package/dist/types/xlsx/xform/sheet/sheet-properties-xform.d.ts +1 -1
  364. package/dist/types/xlsx/xform/sheet/sheet-protection-xform.d.ts +1 -1
  365. package/dist/types/xlsx/xform/sheet/sheet-view-xform.d.ts +1 -1
  366. package/dist/types/xlsx/xform/sheet/table-part-xform.d.ts +1 -1
  367. package/dist/types/xlsx/xform/sheet/worksheet-xform.d.ts +1 -1
  368. package/dist/types/xlsx/xform/simple/boolean-xform.d.ts +1 -1
  369. package/dist/types/xlsx/xform/simple/date-xform.d.ts +1 -1
  370. package/dist/types/xlsx/xform/simple/float-xform.d.ts +1 -1
  371. package/dist/types/xlsx/xform/simple/integer-xform.d.ts +1 -1
  372. package/dist/types/xlsx/xform/simple/string-xform.d.ts +1 -1
  373. package/dist/types/xlsx/xform/static-xform.d.ts +1 -1
  374. package/dist/types/xlsx/xform/strings/phonetic-text-xform.d.ts +1 -1
  375. package/dist/types/xlsx/xform/strings/rich-text-xform.d.ts +3 -3
  376. package/dist/types/xlsx/xform/strings/shared-string-xform.d.ts +1 -1
  377. package/dist/types/xlsx/xform/strings/shared-strings-xform.d.ts +2 -2
  378. package/dist/types/xlsx/xform/strings/text-xform.d.ts +1 -1
  379. package/dist/types/xlsx/xform/style/alignment-xform.d.ts +1 -1
  380. package/dist/types/xlsx/xform/style/border-xform.d.ts +2 -2
  381. package/dist/types/xlsx/xform/style/color-xform.d.ts +1 -1
  382. package/dist/types/xlsx/xform/style/dxf-xform.d.ts +1 -1
  383. package/dist/types/xlsx/xform/style/fill-xform.d.ts +2 -2
  384. package/dist/types/xlsx/xform/style/font-xform.d.ts +1 -1
  385. package/dist/types/xlsx/xform/style/numfmt-xform.d.ts +1 -1
  386. package/dist/types/xlsx/xform/style/protection-xform.d.ts +1 -1
  387. package/dist/types/xlsx/xform/style/style-xform.d.ts +3 -3
  388. package/dist/types/xlsx/xform/style/styles-xform.d.ts +2 -2
  389. package/dist/types/xlsx/xform/style/underline-xform.d.ts +1 -1
  390. package/dist/types/xlsx/xform/table/auto-filter-xform.d.ts +2 -2
  391. package/dist/types/xlsx/xform/table/custom-filter-xform.d.ts +1 -1
  392. package/dist/types/xlsx/xform/table/filter-column-xform.d.ts +2 -2
  393. package/dist/types/xlsx/xform/table/filter-xform.d.ts +1 -1
  394. package/dist/types/xlsx/xform/table/table-column-xform.d.ts +1 -1
  395. package/dist/types/xlsx/xform/table/table-style-info-xform.d.ts +1 -1
  396. package/dist/types/xlsx/xform/table/table-xform.d.ts +1 -1
  397. package/dist/types/xlsx/xlsx.base.d.ts +134 -0
  398. package/dist/types/xlsx/xlsx.browser.d.ts +31 -0
  399. package/dist/types/xlsx/xlsx.d.ts +20 -80
  400. package/package.json +16 -39
@@ -0,0 +1,56 @@
1
+ /**
2
+ * High-performance native date parsing and formatting utilities
3
+ *
4
+ * Zero external dependencies. Optimized for CSV batch processing.
5
+ * Uses character code operations and lookup tables for maximum speed.
6
+ */
7
+ /** Supported date format strings */
8
+ export type DateFormat = "YYYY-MM-DD[T]HH:mm:ssZ" | "YYYY-MM-DD[T]HH:mm:ss" | "YYYY-MM-DD[T]HH:mm:ss.SSSZ" | "YYYY-MM-DD" | "YYYY-MM-DD HH:mm:ss" | "MM-DD-YYYY" | "MM-DD-YYYY HH:mm:ss" | "MM/DD/YYYY HH:mm:ss" | "DD-MM-YYYY" | "DD-MM-YYYY HH:mm:ss" | "DD/MM/YYYY HH:mm:ss";
9
+ /**
10
+ * Optimized date parser for batch processing
11
+ *
12
+ * @example
13
+ * const parser = DateParser.create(["YYYY-MM-DD"]);
14
+ * const dates = parser.parseAll(csvStrings);
15
+ */
16
+ export declare class DateParser {
17
+ private readonly fns;
18
+ private readonly single;
19
+ private readonly fn0;
20
+ private constructor();
21
+ /** Create parser for specific formats */
22
+ static create(formats: readonly DateFormat[]): DateParser;
23
+ /** Create parser for auto-detecting ISO formats */
24
+ static iso(): DateParser;
25
+ /** Parse single value */
26
+ parse: (value: string) => Date | null;
27
+ /** Parse array of values */
28
+ parseAll(values: string[]): (Date | null)[];
29
+ /** Parse and filter valid dates */
30
+ parseValid(values: string[]): Date[];
31
+ }
32
+ /**
33
+ * Optimized date formatter for batch processing
34
+ *
35
+ * @example
36
+ * const formatter = DateFormatter.create("YYYY-MM-DD", { utc: true });
37
+ * const strings = formatter.formatAll(dates);
38
+ */
39
+ export declare class DateFormatter {
40
+ private readonly fn;
41
+ private constructor();
42
+ /** Create ISO formatter (fastest) */
43
+ static iso(utc?: boolean): DateFormatter;
44
+ /** Create custom format formatter */
45
+ static create(format: string, options?: {
46
+ utc?: boolean;
47
+ }): DateFormatter;
48
+ /** Generic formatter for arbitrary formats */
49
+ private static createGeneric;
50
+ /** Format single date */
51
+ format: (date: Date) => string;
52
+ /** Format array of dates */
53
+ formatAll(dates: Date[]): string[];
54
+ }
55
+ /** Get supported format strings */
56
+ export declare function getSupportedFormats(): DateFormat[];
@@ -0,0 +1,28 @@
1
+ /**
2
+ * Browser-compatible Encryptor with pure JS SHA implementations
3
+ * This provides synchronous hash functions for browser compatibility
4
+ */
5
+ import { BrowserBuffer } from "./browser-buffer";
6
+ declare const Encryptor: {
7
+ /**
8
+ * Calculate a hash of the concatenated buffers with the given algorithm.
9
+ * @param algorithm - The hash algorithm.
10
+ * @returns The hash as Uint8Array
11
+ */
12
+ hash(algorithm: string, ...buffers: Uint8Array[]): Uint8Array;
13
+ /**
14
+ * Convert a password into an encryption key
15
+ * @param password - The password
16
+ * @param hashAlgorithm - The hash algorithm
17
+ * @param saltValue - The salt value (base64 encoded)
18
+ * @param spinCount - The spin count
19
+ * @returns The encryption key (base64 encoded)
20
+ */
21
+ convertPasswordToHash(password: string, hashAlgorithm: string, saltValue: string, spinCount: number): string;
22
+ /**
23
+ * Generates cryptographically strong pseudo-random data.
24
+ * @param size The size argument is a number indicating the number of bytes to generate.
25
+ */
26
+ randomBytes(size: number): BrowserBuffer;
27
+ };
28
+ export { Encryptor };
@@ -1,6 +1,113 @@
1
- interface SaxEvent {
1
+ /**
2
+ * High-performance SAX XML parser
3
+ *
4
+ * Minimal implementation optimized for Excel XML parsing.
5
+ * Supports: opentag, text, closetag, error events.
6
+ * Zero external dependencies.
7
+ *
8
+ * Based on XML 1.0 specification with optimizations for common Excel XML patterns.
9
+ */
10
+ export interface SaxEvent {
2
11
  eventType: "opentag" | "text" | "closetag";
3
12
  value: any;
4
13
  }
14
+ export interface SaxesTagPlain {
15
+ name: string;
16
+ attributes: Record<string, string>;
17
+ isSelfClosing: boolean;
18
+ }
19
+ export interface SaxesOptions {
20
+ xmlns?: boolean;
21
+ position?: boolean;
22
+ fileName?: string;
23
+ fragment?: boolean;
24
+ }
25
+ type TextHandler = (text: string) => void;
26
+ type OpenTagHandler = (tag: SaxesTagPlain) => void;
27
+ type CloseTagHandler = (tag: SaxesTagPlain) => void;
28
+ type ErrorHandler = (err: Error) => void;
29
+ export declare class SaxesParser {
30
+ private trackPosition;
31
+ private fileName?;
32
+ private fragment;
33
+ private state;
34
+ private chunk;
35
+ private i;
36
+ private prevI;
37
+ private text;
38
+ private name;
39
+ private q;
40
+ private tags;
41
+ private tag;
42
+ private attribList;
43
+ private entity;
44
+ private entityReturnState;
45
+ private openWakaBang;
46
+ private sawRoot;
47
+ private closedRoot;
48
+ private carriedFromPrevious?;
49
+ private _closed;
50
+ private reportedTextBeforeRoot;
51
+ private reportedTextAfterRoot;
52
+ line: number;
53
+ column: number;
54
+ private positionAtNewLine;
55
+ private chunkPosition;
56
+ ENTITIES: Record<string, string>;
57
+ private textHandler?;
58
+ private openTagHandler?;
59
+ private closeTagHandler?;
60
+ private errorHandler?;
61
+ constructor(opt?: SaxesOptions);
62
+ get closed(): boolean;
63
+ get position(): number;
64
+ private _init;
65
+ on(name: "text", handler: TextHandler): void;
66
+ on(name: "opentag", handler: OpenTagHandler): void;
67
+ on(name: "closetag", handler: CloseTagHandler): void;
68
+ on(name: "error", handler: ErrorHandler): void;
69
+ off(name: string): void;
70
+ private makeError;
71
+ fail(message: string): this;
72
+ write(chunk: string | null): this;
73
+ close(): this;
74
+ private getCode;
75
+ private unget;
76
+ private processState;
77
+ private sText;
78
+ private handleTextInRoot;
79
+ private handleTextOutsideRoot;
80
+ private sOpenWaka;
81
+ private sOpenWakaBang;
82
+ private sOpenTag;
83
+ private sOpenTagSlash;
84
+ private sAttrib;
85
+ private sAttribName;
86
+ private sAttribNameSawWhite;
87
+ private sAttribValue;
88
+ private sAttribValueQuoted;
89
+ private sAttribValueClosed;
90
+ private sCloseTag;
91
+ private sCloseTagSawWhite;
92
+ private sComment;
93
+ private sCommentEnding;
94
+ private sCommentEnded;
95
+ private sCData;
96
+ private sCDataEnding;
97
+ private sCDataEnding2;
98
+ private sPI;
99
+ private sPIEnding;
100
+ private sDoctype;
101
+ private sDoctypeQuote;
102
+ private sDoctypeDTD;
103
+ private sDoctypeDTDQuoted;
104
+ private sEntity;
105
+ private parseEntity;
106
+ private skipSpaces;
107
+ private openTag;
108
+ private openSelfClosingTag;
109
+ private closeTag;
110
+ private end;
111
+ }
5
112
  declare function parseSax(iterable: any): AsyncGenerator<SaxEvent[]>;
6
113
  export { parseSax };
@@ -2,9 +2,9 @@
2
2
  * Utility functions for ExcelTS
3
3
  * Provides convenient helper functions for common spreadsheet operations
4
4
  */
5
- import { Workbook } from "../doc/workbook.js";
6
- import type { Worksheet } from "../doc/worksheet.js";
7
- import type { CellValue } from "../types.js";
5
+ import { Workbook } from "../doc/workbook";
6
+ import type { Worksheet } from "../doc/worksheet";
7
+ import type { CellValue } from "../types";
8
8
  /**
9
9
  * Cell address object (0-indexed)
10
10
  */
@@ -0,0 +1,41 @@
1
+ interface StreamBufOptions {
2
+ bufSize?: number;
3
+ batch?: boolean;
4
+ }
5
+ type EventCallback = (...args: any[]) => void;
6
+ declare class StreamBuf {
7
+ private bufSize;
8
+ private buffers;
9
+ private batch;
10
+ private corked;
11
+ private paused;
12
+ private encoding;
13
+ private pipes;
14
+ private events;
15
+ constructor(options?: StreamBufOptions);
16
+ on(event: string, callback: EventCallback): this;
17
+ once(event: string, callback: EventCallback): this;
18
+ off(event: string, callback: EventCallback): this;
19
+ emit(event: string, ...args: any[]): boolean;
20
+ removeListener(event: string, callback: EventCallback): this;
21
+ toBuffer(): Uint8Array | null;
22
+ private _getWritableBuffer;
23
+ private _pipe;
24
+ private _writeToBuffers;
25
+ write(data: any, encoding?: BufferEncoding | Function, callback?: Function): Promise<boolean>;
26
+ cork(): void;
27
+ private _flush;
28
+ uncork(): void;
29
+ end(chunk?: any, encoding?: BufferEncoding, callback?: Function): void;
30
+ read(size?: number): Uint8Array;
31
+ setEncoding(encoding: string): void;
32
+ pause(): void;
33
+ resume(): void;
34
+ isPaused(): boolean;
35
+ pipe(destination: any): any;
36
+ unpipe(destination: any): void;
37
+ unshift(): void;
38
+ wrap(): void;
39
+ push(chunk: any): boolean;
40
+ }
41
+ export { StreamBuf };
@@ -3,7 +3,7 @@
3
3
  * Provides easy-to-use Promise-based API for extracting ZIP files
4
4
  * Works in both Node.js and browser environments
5
5
  */
6
- import { type ZipEntryInfo } from "./zip-parser.js";
6
+ import { type ZipEntryInfo } from "./zip-parser";
7
7
  /**
8
8
  * Extracted file entry
9
9
  */
@@ -25,7 +25,7 @@ export interface ExtractedFile {
25
25
  *
26
26
  * @example
27
27
  * ```ts
28
- * import { extractAll } from "./utils/unzip/extract.js";
28
+ * import { extractAll } from "./utils/unzip/extract";
29
29
  *
30
30
  * const zipData = fs.readFileSync("archive.zip");
31
31
  * const files = await extractAll(zipData);
@@ -45,7 +45,7 @@ export declare function extractAll(zipData: Uint8Array | ArrayBuffer): Promise<M
45
45
  *
46
46
  * @example
47
47
  * ```ts
48
- * import { extractFile } from "./utils/unzip/extract.js";
48
+ * import { extractFile } from "./utils/unzip/extract";
49
49
  *
50
50
  * const zipData = fs.readFileSync("archive.zip");
51
51
  * const content = await extractFile(zipData, "readme.txt");
@@ -63,7 +63,7 @@ export declare function extractFile(zipData: Uint8Array | ArrayBuffer, filePath:
63
63
  *
64
64
  * @example
65
65
  * ```ts
66
- * import { listFiles } from "./utils/unzip/extract.js";
66
+ * import { listFiles } from "./utils/unzip/extract";
67
67
  *
68
68
  * const zipData = fs.readFileSync("archive.zip");
69
69
  * const paths = await listFiles(zipData);
@@ -79,7 +79,7 @@ export declare function listFiles(zipData: Uint8Array | ArrayBuffer): Promise<st
79
79
  *
80
80
  * @example
81
81
  * ```ts
82
- * import { forEachEntry } from "./utils/unzip/extract.js";
82
+ * import { forEachEntry } from "./utils/unzip/extract";
83
83
  *
84
84
  * await forEachEntry(zipData, async (path, getData) => {
85
85
  * if (path.endsWith(".xml")) {
@@ -91,4 +91,4 @@ export declare function listFiles(zipData: Uint8Array | ArrayBuffer): Promise<st
91
91
  * ```
92
92
  */
93
93
  export declare function forEachEntry(zipData: Uint8Array | ArrayBuffer, callback: (path: string, getData: () => Promise<Uint8Array>, entry: ZipEntryInfo) => Promise<boolean | void>): Promise<void>;
94
- export { ZipParser, type ZipEntryInfo, type ZipParseOptions } from "./zip-parser.js";
94
+ export { ZipParser, type ZipEntryInfo, type ZipParseOptions } from "./zip-parser";
@@ -17,11 +17,11 @@
17
17
  * Original source: https://github.com/ZJONSSON/node-unzipper
18
18
  * License: MIT
19
19
  */
20
- export { Parse, createParse, type ParseOptions, type ZipEntry } from "./parse.js";
21
- export { PullStream } from "./pull-stream.js";
22
- export { NoopStream } from "./noop-stream.js";
23
- export { bufferStream } from "./buffer-stream.js";
24
- export { parse as parseBuffer } from "./parse-buffer.js";
25
- export { parseDateTime } from "./parse-datetime.js";
26
- export { parseExtraField, type ExtraField, type ZipVars } from "./parse-extra-field.js";
27
- export { extractAll, extractFile, listFiles, forEachEntry, ZipParser, type ExtractedFile, type ZipEntryInfo, type ZipParseOptions } from "./extract.js";
20
+ export { Parse, createParse, type ParseOptions, type ZipEntry } from "./parse";
21
+ export { PullStream } from "./pull-stream";
22
+ export { NoopStream } from "./noop-stream";
23
+ export { bufferStream } from "./buffer-stream";
24
+ export { parse as parseBuffer } from "./parse-buffer";
25
+ export { parseDateTime } from "./parse-datetime";
26
+ export { parseExtraField, type ExtraField, type ZipVars } from "./parse-extra-field";
27
+ export { extractAll, extractFile, listFiles, forEachEntry, ZipParser, type ExtractedFile, type ZipEntryInfo, type ZipParseOptions } from "./extract";
@@ -6,9 +6,9 @@
6
6
  * Commits in this fork are (c) Ziggy Jonsson (ziggy.jonsson.nyc@gmail.com)
7
7
  */
8
8
  import { PassThrough } from "stream";
9
- import { PullStream } from "./pull-stream.js";
10
- import { NoopStream } from "./noop-stream.js";
11
- import { type ExtraField } from "./parse-extra-field.js";
9
+ import { PullStream } from "./pull-stream";
10
+ import { NoopStream } from "./noop-stream";
11
+ import { type ExtraField } from "./parse-extra-field";
12
12
  export interface ParseOptions {
13
13
  verbose?: boolean;
14
14
  forceStream?: boolean;
@@ -85,6 +85,11 @@ export declare class ZipParser {
85
85
  * Extract all files (async)
86
86
  */
87
87
  extractAll(): Promise<Map<string, Uint8Array>>;
88
+ /**
89
+ * Extract all files (sync, Node.js only)
90
+ * Returns object with file paths as keys and Uint8Array content as values
91
+ */
92
+ extractAllSync(): Record<string, Uint8Array>;
88
93
  /**
89
94
  * Iterate over entries with async callback
90
95
  */
@@ -0,0 +1,29 @@
1
+ /**
2
+ * Base utility functions shared between Node.js and Browser
3
+ * Platform-independent implementations only
4
+ */
5
+ export declare function delay(ms: number): Promise<void>;
6
+ export declare function nop(): void;
7
+ export declare const inherits: <T extends new (...args: any[]) => any, S extends new (...args: any[]) => any>(cls: T, superCtor: S, statics?: any, prototype?: any) => void;
8
+ export declare function dateToExcel(d: Date, date1904?: boolean): number;
9
+ export declare function excelToDate(v: number, date1904?: boolean): Date;
10
+ export declare function toIsoDateString(dt: Date): string;
11
+ interface PathInfo {
12
+ path: string;
13
+ name: string;
14
+ }
15
+ export declare function parsePath(filepath: string): PathInfo;
16
+ export declare function getRelsPath(filepath: string): string;
17
+ export declare function xmlDecode(text: string): string;
18
+ export declare function validInt(value: string | number): number;
19
+ export declare function isDateFmt(fmt: string | null | undefined): boolean;
20
+ export declare function parseBoolean(value: any): boolean;
21
+ export declare function range(start: number, stop: number, step?: number): Generator<number>;
22
+ export declare function toSortedArray(values: Iterable<any>): any[];
23
+ export declare function objectFromProps<T = any>(props: string[], value?: T | null): Record<string, T | null>;
24
+ /**
25
+ * Convert a Buffer, ArrayBuffer, or Uint8Array to a UTF-8 string
26
+ * Works in both Node.js and browser environments
27
+ */
28
+ export declare function bufferToString(chunk: ArrayBuffer | Uint8Array | string): string;
29
+ export {};
@@ -0,0 +1,29 @@
1
+ /**
2
+ * Browser utility functions
3
+ * Re-exports shared utilities and adds browser-specific implementations
4
+ */
5
+ export { delay, nop, inherits, dateToExcel, excelToDate, toIsoDateString, parsePath, getRelsPath, xmlDecode, validInt, isDateFmt, parseBoolean, range, toSortedArray, objectFromProps, bufferToString } from "./utils.base";
6
+ export declare function xmlEncode(text: string): string;
7
+ export declare function fileExists(_path: string): Promise<boolean>;
8
+ import { nop, dateToExcel, excelToDate, parsePath, getRelsPath, xmlDecode, validInt, isDateFmt, toIsoDateString, parseBoolean, range, toSortedArray, objectFromProps } from "./utils.base";
9
+ /** @deprecated Import functions directly instead of using the utils object */
10
+ export declare const utils: {
11
+ nop: typeof nop;
12
+ inherits: <T extends new (...args: any[]) => any, S extends new (...args: any[]) => any>(cls: T, superCtor: S, statics?: any, prototype?: any) => void;
13
+ dateToExcel: typeof dateToExcel;
14
+ excelToDate: typeof excelToDate;
15
+ parsePath: typeof parsePath;
16
+ getRelsPath: typeof getRelsPath;
17
+ xmlEncode: typeof xmlEncode;
18
+ xmlDecode: typeof xmlDecode;
19
+ validInt: typeof validInt;
20
+ isDateFmt: typeof isDateFmt;
21
+ fs: {
22
+ exists: typeof fileExists;
23
+ };
24
+ toIsoDateString: typeof toIsoDateString;
25
+ parseBoolean: typeof parseBoolean;
26
+ range: typeof range;
27
+ toSortedArray: typeof toSortedArray;
28
+ objectFromProps: typeof objectFromProps;
29
+ };
@@ -1,24 +1,11 @@
1
- export declare function delay(ms: number): Promise<void>;
2
- export declare function nop(): void;
3
- export declare const inherits: <T extends new (...args: any[]) => any, S extends new (...args: any[]) => any>(cls: T, superCtor: S, statics?: any, prototype?: any) => void;
4
- interface PathInfo {
5
- path: string;
6
- name: string;
7
- }
8
- export declare function dateToExcel(d: Date, date1904?: boolean): number;
9
- export declare function excelToDate(v: number, date1904?: boolean): Date;
10
- export declare function parsePath(filepath: string): PathInfo;
11
- export declare function getRelsPath(filepath: string): string;
1
+ /**
2
+ * Node.js utility functions
3
+ * Re-exports shared utilities and adds Node.js-specific implementations
4
+ */
5
+ export { delay, nop, inherits, dateToExcel, excelToDate, toIsoDateString, parsePath, getRelsPath, xmlDecode, validInt, isDateFmt, parseBoolean, range, toSortedArray, objectFromProps, bufferToString } from "./utils.base";
12
6
  export declare function xmlEncode(text: string): string;
13
- export declare function xmlDecode(text: string): string;
14
- export declare function validInt(value: string | number): number;
15
- export declare function isDateFmt(fmt: string | null | undefined): boolean;
16
7
  export declare function fileExists(path: string): Promise<boolean>;
17
- export declare function toIsoDateString(dt: Date): string;
18
- export declare function parseBoolean(value: any): boolean;
19
- export declare function range(start: number, stop: number, step?: number): Generator<number>;
20
- export declare function toSortedArray(values: Iterable<any>): any[];
21
- export declare function objectFromProps<T = any>(props: string[], value?: T | null): Record<string, T | null>;
8
+ import { nop, dateToExcel, excelToDate, parsePath, getRelsPath, xmlDecode, validInt, isDateFmt, toIsoDateString, parseBoolean, range, toSortedArray, objectFromProps } from "./utils.base";
22
9
  /** @deprecated Import functions directly instead of using the utils object */
23
10
  export declare const utils: {
24
11
  nop: typeof nop;
@@ -40,9 +27,3 @@ export declare const utils: {
40
27
  toSortedArray: typeof toSortedArray;
41
28
  objectFromProps: typeof objectFromProps;
42
29
  };
43
- /**
44
- * Convert a Buffer or ArrayBuffer to a UTF-8 string
45
- * Works in both Node.js and browser environments
46
- */
47
- export declare function bufferToString(chunk: Buffer | ArrayBuffer | string): string;
48
- export {};
@@ -0,0 +1,45 @@
1
+ /**
2
+ * Base compression utilities using Web Streams API
3
+ * Shared between Node.js and Browser implementations
4
+ *
5
+ * Uses CompressionStream/DecompressionStream API with "deflate-raw" format
6
+ * (raw DEFLATE without zlib header/trailer, required for ZIP files)
7
+ *
8
+ * Browser fallback: For browsers without deflate-raw support (Firefox < 113, Safari < 16.4),
9
+ * see deflate-fallback.ts for pure JS implementation
10
+ */
11
+ /**
12
+ * Compression options
13
+ */
14
+ export interface CompressOptions {
15
+ /**
16
+ * Compression level (0-9)
17
+ * - 0: No compression (STORE)
18
+ * - 1: Fastest compression
19
+ * - 6: Default compression (good balance)
20
+ * - 9: Best compression (slowest)
21
+ *
22
+ * Note: CompressionStream does not support level configuration,
23
+ * it uses a fixed level (~6)
24
+ */
25
+ level?: number;
26
+ }
27
+ /**
28
+ * Check if CompressionStream is available
29
+ */
30
+ export declare function hasCompressionStream(): boolean;
31
+ /**
32
+ * Compress using CompressionStream API
33
+ * Uses "deflate-raw" format (required for ZIP files)
34
+ *
35
+ * @param data - Data to compress
36
+ * @returns Compressed data
37
+ */
38
+ export declare function compressWithStream(data: Uint8Array): Promise<Uint8Array>;
39
+ /**
40
+ * Decompress using DecompressionStream API
41
+ *
42
+ * @param data - Compressed data (deflate-raw format)
43
+ * @returns Decompressed data
44
+ */
45
+ export declare function decompressWithStream(data: Uint8Array): Promise<Uint8Array>;
@@ -0,0 +1,63 @@
1
+ /**
2
+ * Browser compression utilities
3
+ *
4
+ * Primary: CompressionStream API (Chrome 103+, Firefox 113+, Safari 16.4+)
5
+ * Fallback: Pure JS DEFLATE implementation for older browsers
6
+ *
7
+ * Supported browsers with fallback:
8
+ * - Chrome >= 85
9
+ * - Firefox >= 79
10
+ * - Safari >= 14
11
+ * - Edge >= 85
12
+ */
13
+ import { type CompressOptions } from "./compress.base";
14
+ export { type CompressOptions };
15
+ /**
16
+ * Check if CompressionStream with "deflate-raw" is available
17
+ * Note: Chrome 80-102 has CompressionStream but not deflate-raw support
18
+ */
19
+ export declare function hasCompressionStream(): boolean;
20
+ /**
21
+ * Check if native zlib is available (always false in browser)
22
+ */
23
+ export declare function hasNativeZlib(): boolean;
24
+ /**
25
+ * Compress data using browser's native CompressionStream or JS fallback
26
+ *
27
+ * @param data - Data to compress
28
+ * @param options - Compression options
29
+ * @returns Compressed data
30
+ *
31
+ * @example
32
+ * ```ts
33
+ * const data = new TextEncoder().encode("Hello, World!");
34
+ * const compressed = await compress(data, { level: 6 });
35
+ * ```
36
+ */
37
+ export declare function compress(data: Uint8Array, options?: {
38
+ level?: number;
39
+ }): Promise<Uint8Array>;
40
+ /**
41
+ * Compress data synchronously using pure JS implementation
42
+ *
43
+ * @param data - Data to compress
44
+ * @param options - Compression options
45
+ * @returns Compressed data
46
+ */
47
+ export declare function compressSync(data: Uint8Array, options?: {
48
+ level?: number;
49
+ }): Uint8Array;
50
+ /**
51
+ * Decompress data using browser's native DecompressionStream or JS fallback
52
+ *
53
+ * @param data - Compressed data (deflate-raw format)
54
+ * @returns Decompressed data
55
+ */
56
+ export declare function decompress(data: Uint8Array): Promise<Uint8Array>;
57
+ /**
58
+ * Decompress data synchronously using pure JS implementation
59
+ *
60
+ * @param data - Compressed data (deflate-raw format)
61
+ * @returns Decompressed data
62
+ */
63
+ export declare function decompressSync(data: Uint8Array): Uint8Array;
@@ -1,49 +1,16 @@
1
1
  /**
2
- * Native compression utilities using platform APIs
2
+ * Node.js compression utilities using native zlib
3
3
  *
4
- * - Node.js: Uses native zlib module (C++ implementation, fastest)
5
- * - Browser: Uses CompressionStream API (Chrome 80+, Firefox 113+, Safari 16.4+)
6
- *
7
- * Both use "deflate-raw" format which is required for ZIP files
8
- * (raw DEFLATE without zlib header/trailer)
9
- */
10
- import type * as zlibType from "zlib";
11
- /**
12
- * Compression options
13
- */
14
- export interface CompressOptions {
15
- /**
16
- * Compression level (0-9)
17
- * - 0: No compression (STORE)
18
- * - 1: Fastest compression
19
- * - 6: Default compression (good balance)
20
- * - 9: Best compression (slowest)
21
- *
22
- * Note: CompressionStream does not support level configuration,
23
- * it uses a fixed level (~6)
24
- */
25
- level?: number;
26
- }
27
- /**
28
- * Ensure zlib is loaded (Node.js only)
29
- * Call this before using sync methods if you need to guarantee availability
4
+ * Uses zlib module (C++ implementation, fastest) with "deflate-raw" format
5
+ * (raw DEFLATE without zlib header/trailer, required for ZIP files)
30
6
  */
31
- export declare function ensureZlib(): Promise<typeof zlibType | null>;
7
+ export { type CompressOptions, hasCompressionStream } from "./compress.base";
32
8
  /**
33
- * Check if native zlib is available (Node.js)
9
+ * Check if native zlib is available (always true in Node.js)
34
10
  */
35
11
  export declare function hasNativeZlib(): boolean;
36
12
  /**
37
- * Check if CompressionStream is available (Browser/Node.js 17+)
38
- */
39
- export declare function hasCompressionStream(): boolean;
40
- /**
41
- * Compress data using the best available native method
42
- *
43
- * Priority:
44
- * 1. Node.js zlib (if available) - fastest, supports compression levels
45
- * 2. CompressionStream (browser/Node.js 17+) - no level support
46
- * 3. Return uncompressed data (fallback)
13
+ * Compress data using Node.js native zlib
47
14
  *
48
15
  * @param data - Data to compress
49
16
  * @param options - Compression options
@@ -55,19 +22,21 @@ export declare function hasCompressionStream(): boolean;
55
22
  * const compressed = await compress(data, { level: 6 });
56
23
  * ```
57
24
  */
58
- export declare function compress(data: Uint8Array, options?: CompressOptions): Promise<Uint8Array>;
25
+ export declare function compress(data: Uint8Array, options?: {
26
+ level?: number;
27
+ }): Promise<Uint8Array>;
59
28
  /**
60
29
  * Compress data synchronously using Node.js zlib
61
- * Only available in Node.js environment
62
30
  *
63
31
  * @param data - Data to compress
64
32
  * @param options - Compression options
65
33
  * @returns Compressed data
66
- * @throws Error if not in Node.js environment
67
34
  */
68
- export declare function compressSync(data: Uint8Array, options?: CompressOptions): Uint8Array;
35
+ export declare function compressSync(data: Uint8Array, options?: {
36
+ level?: number;
37
+ }): Uint8Array;
69
38
  /**
70
- * Decompress data using the best available native method
39
+ * Decompress data using Node.js native zlib
71
40
  *
72
41
  * @param data - Compressed data (deflate-raw format)
73
42
  * @returns Decompressed data
@@ -78,6 +47,5 @@ export declare function decompress(data: Uint8Array): Promise<Uint8Array>;
78
47
  *
79
48
  * @param data - Compressed data (deflate-raw format)
80
49
  * @returns Decompressed data
81
- * @throws Error if not in Node.js environment
82
50
  */
83
51
  export declare function decompressSync(data: Uint8Array): Uint8Array;