@cj-tech-master/excelts 1.6.3 → 2.0.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 (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 +648 -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 +639 -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 +85 -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,85 @@
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
+ * Quick pre-filter to reject non-date strings
11
+ */
12
+ export declare function mightBeDate(s: string): boolean;
13
+ /**
14
+ * Parse a date string
15
+ *
16
+ * @param value - String to parse
17
+ * @param formats - Specific formats to try (optional, auto-detects ISO if omitted)
18
+ * @returns Date object or null
19
+ *
20
+ * @example
21
+ * parseDate("2024-12-26") // auto-detect ISO
22
+ * parseDate("12-26-2024", ["MM-DD-YYYY"]) // explicit US format
23
+ */
24
+ export declare function parseDate(value: string, formats?: DateFormat[]): Date | null;
25
+ /**
26
+ * Format a Date to string
27
+ *
28
+ * @param date - Date to format
29
+ * @param format - Format template (optional, defaults to ISO)
30
+ * @param utc - Use UTC time (default: false)
31
+ * @returns Formatted string or empty string if invalid
32
+ *
33
+ * @example
34
+ * formatDate(date) // "2024-12-26T10:30:00.000+08:00"
35
+ * formatDate(date, "YYYY-MM-DD", true) // "2024-12-26"
36
+ */
37
+ export declare function formatDate(date: Date, format?: string, utc?: boolean): string;
38
+ /**
39
+ * Optimized date parser for batch processing
40
+ *
41
+ * @example
42
+ * const parser = DateParser.create(["YYYY-MM-DD"]);
43
+ * const dates = parser.parseAll(csvStrings);
44
+ */
45
+ export declare class DateParser {
46
+ private readonly fns;
47
+ private readonly single;
48
+ private readonly fn0;
49
+ private constructor();
50
+ /** Create parser for specific formats */
51
+ static create(formats: readonly DateFormat[]): DateParser;
52
+ /** Create parser for auto-detecting ISO formats */
53
+ static iso(): DateParser;
54
+ /** Parse single value */
55
+ parse: (value: string) => Date | null;
56
+ /** Parse array of values */
57
+ parseAll(values: string[]): (Date | null)[];
58
+ /** Parse and filter valid dates */
59
+ parseValid(values: string[]): Date[];
60
+ }
61
+ /**
62
+ * Optimized date formatter for batch processing
63
+ *
64
+ * @example
65
+ * const formatter = DateFormatter.create("YYYY-MM-DD", { utc: true });
66
+ * const strings = formatter.formatAll(dates);
67
+ */
68
+ export declare class DateFormatter {
69
+ private readonly fn;
70
+ private constructor();
71
+ /** Create ISO formatter (fastest) */
72
+ static iso(utc?: boolean): DateFormatter;
73
+ /** Create custom format formatter */
74
+ static create(format: string, options?: {
75
+ utc?: boolean;
76
+ }): DateFormatter;
77
+ /** Generic formatter for arbitrary formats */
78
+ private static createGeneric;
79
+ /** Format single date */
80
+ format: (date: Date) => string;
81
+ /** Format array of dates */
82
+ formatAll(dates: Date[]): string[];
83
+ }
84
+ /** Get supported format strings */
85
+ 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;