@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
@@ -1,13 +1,13 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.slideFormula = slideFormula;
4
- const col_cache_js_1 = require("./col-cache");
4
+ const col_cache_1 = require("./col-cache");
5
5
  // const cellRefRegex = /(([a-z_\-0-9]*)!)?[$]?([a-z]+)[$]?([1-9][0-9]*)/i;
6
6
  const replacementCandidateRx = /(([a-z_\-0-9]*)!)?([a-z0-9_$]{2,})([(])?/gi;
7
7
  const CRrx = /^([$])?([a-z]+)([$])?([1-9][0-9]*)$/i;
8
8
  function slideFormula(formula, fromCell, toCell) {
9
- const offset = col_cache_js_1.colCache.decode(fromCell);
10
- const to = col_cache_js_1.colCache.decode(toCell);
9
+ const offset = col_cache_1.colCache.decode(fromCell);
10
+ const to = col_cache_1.colCache.decode(toCell);
11
11
  return formula.replace(replacementCandidateRx, (refMatch, sheet, sheetMaybe, addrPart, trailingParen) => {
12
12
  if (trailingParen) {
13
13
  return refMatch;
@@ -22,7 +22,7 @@ function slideFormula(formula, fromCell, toCell) {
22
22
  // > XFD is the highest col number in excel 2007 and beyond, so this is a named range
23
23
  return refMatch;
24
24
  }
25
- let col = col_cache_js_1.colCache.l2n(colStr);
25
+ let col = col_cache_1.colCache.l2n(colStr);
26
26
  let row = parseInt(rowStr, 10);
27
27
  if (!colDollar) {
28
28
  col += to.col - offset.col;
@@ -30,7 +30,7 @@ function slideFormula(formula, fromCell, toCell) {
30
30
  if (!rowDollar) {
31
31
  row += to.row - offset.row;
32
32
  }
33
- const res = (sheet || "") + (colDollar || "") + col_cache_js_1.colCache.n2l(col) + (rowDollar || "") + row;
33
+ const res = (sheet || "") + (colDollar || "") + col_cache_1.colCache.n2l(col) + (rowDollar || "") + row;
34
34
  return res;
35
35
  }
36
36
  return refMatch;
@@ -22,9 +22,9 @@ exports.bookAppendSheet = bookAppendSheet;
22
22
  exports.aoaToSheet = aoaToSheet;
23
23
  exports.sheetAddAoa = sheetAddAoa;
24
24
  exports.sheetToAoa = sheetToAoa;
25
- const workbook_js_1 = require("../doc/workbook");
26
- const col_cache_js_1 = require("./col-cache");
27
- const cell_format_js_1 = require("./cell-format");
25
+ const workbook_1 = require("../doc/workbook");
26
+ const col_cache_1 = require("./col-cache");
27
+ const cell_format_1 = require("./cell-format");
28
28
  /**
29
29
  * Convert a Date object back to Excel serial number without timezone issues.
30
30
  * This reverses the excelToDate conversion exactly.
@@ -113,15 +113,15 @@ function formatValue(value, fmt, dateFormat) {
113
113
  if (serial < 0) {
114
114
  serial += 1;
115
115
  }
116
- return (0, cell_format_js_1.format)(fmt, serial);
116
+ return (0, cell_format_1.format)(fmt, serial);
117
117
  }
118
118
  // Only apply dateFormat override to actual date formats
119
119
  // (not elapsed time formats like [h]:mm:ss)
120
120
  const actualFmt = dateFormat && isDateFormat(fmt) ? dateFormat : fmt;
121
- return (0, cell_format_js_1.format)(actualFmt, serial);
121
+ return (0, cell_format_1.format)(actualFmt, serial);
122
122
  }
123
123
  // Number/Boolean/String - let cellFormat handle it
124
- return (0, cell_format_js_1.format)(fmt, value);
124
+ return (0, cell_format_1.format)(fmt, value);
125
125
  }
126
126
  /**
127
127
  * Get formatted display text for a cell value
@@ -170,14 +170,14 @@ function getCellDisplayText(cell, dateFormat) {
170
170
  * @example decodeCol("A") => 0, decodeCol("Z") => 25, decodeCol("AA") => 26
171
171
  */
172
172
  function decodeCol(colstr) {
173
- return col_cache_js_1.colCache.l2n(colstr.toUpperCase()) - 1;
173
+ return col_cache_1.colCache.l2n(colstr.toUpperCase()) - 1;
174
174
  }
175
175
  /**
176
176
  * Encode 0-indexed column number to string
177
177
  * @example encodeCol(0) => "A", encodeCol(25) => "Z", encodeCol(26) => "AA"
178
178
  */
179
179
  function encodeCol(col) {
180
- return col_cache_js_1.colCache.n2l(col + 1);
180
+ return col_cache_1.colCache.n2l(col + 1);
181
181
  }
182
182
  /**
183
183
  * Decode row string to 0-indexed number
@@ -198,7 +198,7 @@ function encodeRow(row) {
198
198
  * @example decodeCell("A1") => {c: 0, r: 0}, decodeCell("B2") => {c: 1, r: 1}
199
199
  */
200
200
  function decodeCell(cstr) {
201
- const addr = col_cache_js_1.colCache.decodeAddress(cstr.toUpperCase());
201
+ const addr = col_cache_1.colCache.decodeAddress(cstr.toUpperCase());
202
202
  return { c: addr.col - 1, r: addr.row - 1 };
203
203
  }
204
204
  /**
@@ -206,7 +206,7 @@ function decodeCell(cstr) {
206
206
  * @example encodeCell({c: 0, r: 0}) => "A1", encodeCell({c: 1, r: 1}) => "B2"
207
207
  */
208
208
  function encodeCell(cell) {
209
- return col_cache_js_1.colCache.encodeAddress(cell.r + 1, cell.c + 1);
209
+ return col_cache_1.colCache.encodeAddress(cell.r + 1, cell.c + 1);
210
210
  }
211
211
  /**
212
212
  * Decode range string to Range object
@@ -241,7 +241,7 @@ function encodeRange(startOrRange, end) {
241
241
  function jsonToSheet(data, opts) {
242
242
  const o = opts || {};
243
243
  // Create a temporary workbook to get a worksheet
244
- const tempWb = new workbook_js_1.Workbook();
244
+ const tempWb = new workbook_1.Workbook();
245
245
  const worksheet = tempWb.addWorksheet("Sheet1");
246
246
  if (data.length === 0) {
247
247
  return worksheet;
@@ -573,7 +573,7 @@ function sheetToCsv(worksheet, opts) {
573
573
  * Create a new workbook
574
574
  */
575
575
  function bookNew() {
576
- return new workbook_js_1.Workbook();
576
+ return new workbook_1.Workbook();
577
577
  }
578
578
  /**
579
579
  * Append worksheet to workbook (xlsx compatible)
@@ -610,7 +610,7 @@ function bookAppendSheet(workbook, worksheet, name) {
610
610
  * const ws = aoaToSheet([["Name", "Age"], ["Alice", 30], ["Bob", 25]])
611
611
  */
612
612
  function aoaToSheet(data, opts) {
613
- const tempWb = new workbook_js_1.Workbook();
613
+ const tempWb = new workbook_1.Workbook();
614
614
  const worksheet = tempWb.addWorksheet("Sheet1");
615
615
  if (data.length === 0) {
616
616
  return worksheet;
@@ -0,0 +1,355 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.StreamBuf = void 0;
4
+ const string_buf_1 = require("./string-buf");
5
+ // =============================================================================
6
+ // Data chunks - encapsulating incoming data
7
+ class StringChunk {
8
+ constructor(data, encoding) {
9
+ this._data = data;
10
+ this._encoding = encoding;
11
+ }
12
+ get length() {
13
+ return this.toBuffer().length;
14
+ }
15
+ copy(target, targetOffset, offset, length) {
16
+ const buf = this.toBuffer();
17
+ const bytesToCopy = Math.min(length, buf.length - offset);
18
+ target.set(buf.subarray(offset, offset + bytesToCopy), targetOffset);
19
+ return bytesToCopy;
20
+ }
21
+ toBuffer() {
22
+ if (!this._buffer) {
23
+ this._buffer = new TextEncoder().encode(this._data);
24
+ }
25
+ return this._buffer;
26
+ }
27
+ }
28
+ class StringBufChunk {
29
+ constructor(data) {
30
+ this._data = data;
31
+ }
32
+ get length() {
33
+ return this._data.length;
34
+ }
35
+ copy(target, targetOffset, offset, length) {
36
+ const buf = this.toBuffer();
37
+ const bytesToCopy = Math.min(length, buf.length - offset);
38
+ target.set(buf.subarray(offset, offset + bytesToCopy), targetOffset);
39
+ return bytesToCopy;
40
+ }
41
+ toBuffer() {
42
+ return this._data.toBuffer();
43
+ }
44
+ }
45
+ class BufferChunk {
46
+ constructor(data) {
47
+ this._data = data;
48
+ }
49
+ get length() {
50
+ return this._data.length;
51
+ }
52
+ copy(target, targetOffset, offset, length) {
53
+ const bytesToCopy = Math.min(length, this._data.length - offset);
54
+ target.set(this._data.subarray(offset, offset + bytesToCopy), targetOffset);
55
+ }
56
+ toBuffer() {
57
+ return this._data;
58
+ }
59
+ }
60
+ // =============================================================================
61
+ // ReadWriteBuf - a single buffer supporting simple read-write
62
+ class ReadWriteBuf {
63
+ constructor(size) {
64
+ this.size = size;
65
+ this.buffer = new Uint8Array(size);
66
+ this.iRead = 0;
67
+ this.iWrite = 0;
68
+ }
69
+ toBuffer() {
70
+ if (this.iRead === 0 && this.iWrite === this.size) {
71
+ return this.buffer;
72
+ }
73
+ return this.buffer.slice(this.iRead, this.iWrite);
74
+ }
75
+ get length() {
76
+ return this.iWrite - this.iRead;
77
+ }
78
+ get eod() {
79
+ return this.iRead === this.iWrite;
80
+ }
81
+ get full() {
82
+ return this.iWrite === this.size;
83
+ }
84
+ read(size) {
85
+ if (size === 0) {
86
+ return null;
87
+ }
88
+ if (size === undefined || size >= this.length) {
89
+ const buf = this.toBuffer();
90
+ this.iRead = this.iWrite;
91
+ return buf;
92
+ }
93
+ const buf = this.buffer.slice(this.iRead, this.iRead + size);
94
+ this.iRead += size;
95
+ return buf;
96
+ }
97
+ write(chunk, offset, length) {
98
+ const size = Math.min(length, this.size - this.iWrite);
99
+ chunk.copy(this.buffer, this.iWrite, offset, offset + size);
100
+ this.iWrite += size;
101
+ return size;
102
+ }
103
+ }
104
+ // =============================================================================
105
+ // StreamBuf - Browser version without Node.js stream dependency
106
+ // A simple buffer manager that mimics stream behavior for xlsx writing
107
+ class StreamBuf {
108
+ constructor(options) {
109
+ options = options || {};
110
+ this.bufSize = options.bufSize || 1024 * 1024;
111
+ this.buffers = [];
112
+ this.batch = options.batch || false;
113
+ this.corked = false;
114
+ this.paused = false;
115
+ this.encoding = null;
116
+ this.pipes = [];
117
+ this.events = new Map();
118
+ }
119
+ // Event emitter methods
120
+ on(event, callback) {
121
+ const callbacks = this.events.get(event) || [];
122
+ callbacks.push(callback);
123
+ this.events.set(event, callbacks);
124
+ return this;
125
+ }
126
+ once(event, callback) {
127
+ const onceCallback = (...args) => {
128
+ this.off(event, onceCallback);
129
+ callback(...args);
130
+ };
131
+ return this.on(event, onceCallback);
132
+ }
133
+ off(event, callback) {
134
+ const callbacks = this.events.get(event) || [];
135
+ const index = callbacks.indexOf(callback);
136
+ if (index !== -1) {
137
+ callbacks.splice(index, 1);
138
+ }
139
+ return this;
140
+ }
141
+ emit(event, ...args) {
142
+ const callbacks = this.events.get(event) || [];
143
+ callbacks.forEach(cb => cb(...args));
144
+ return callbacks.length > 0;
145
+ }
146
+ removeListener(event, callback) {
147
+ return this.off(event, callback);
148
+ }
149
+ toBuffer() {
150
+ switch (this.buffers.length) {
151
+ case 0:
152
+ return null;
153
+ case 1:
154
+ return this.buffers[0].toBuffer();
155
+ default: {
156
+ const totalLength = this.buffers.reduce((acc, buf) => acc + buf.length, 0);
157
+ const result = new Uint8Array(totalLength);
158
+ let offset = 0;
159
+ for (const rwBuf of this.buffers) {
160
+ const buf = rwBuf.toBuffer();
161
+ result.set(buf, offset);
162
+ offset += buf.length;
163
+ }
164
+ return result;
165
+ }
166
+ }
167
+ }
168
+ _getWritableBuffer() {
169
+ if (this.buffers.length) {
170
+ const last = this.buffers[this.buffers.length - 1];
171
+ if (!last.full) {
172
+ return last;
173
+ }
174
+ }
175
+ const buf = new ReadWriteBuf(this.bufSize);
176
+ this.buffers.push(buf);
177
+ return buf;
178
+ }
179
+ async _pipe(chunk) {
180
+ const write = (pipe) => {
181
+ return new Promise(resolve => {
182
+ pipe.write(chunk.toBuffer(), () => {
183
+ resolve();
184
+ });
185
+ });
186
+ };
187
+ await Promise.all(this.pipes.map(write));
188
+ }
189
+ _writeToBuffers(chunk) {
190
+ let inPos = 0;
191
+ const inLen = chunk.length;
192
+ while (inPos < inLen) {
193
+ const buffer = this._getWritableBuffer();
194
+ inPos += buffer.write(chunk, inPos, inLen - inPos);
195
+ }
196
+ }
197
+ async write(data, encoding, callback) {
198
+ const nop = () => { };
199
+ if (encoding instanceof Function) {
200
+ callback = encoding;
201
+ encoding = "utf8";
202
+ }
203
+ callback = callback || nop;
204
+ let chunk;
205
+ if (data instanceof string_buf_1.StringBuf || (data && data.constructor?.name === "StringBuf")) {
206
+ chunk = new StringBufChunk(data);
207
+ }
208
+ else if (data instanceof Uint8Array) {
209
+ chunk = new BufferChunk(data);
210
+ }
211
+ else if (ArrayBuffer.isView(data)) {
212
+ chunk = new BufferChunk(new Uint8Array(data.buffer, data.byteOffset, data.byteLength));
213
+ }
214
+ else if (data instanceof ArrayBuffer) {
215
+ chunk = new BufferChunk(new Uint8Array(data));
216
+ }
217
+ else if (typeof data === "string" || data instanceof String) {
218
+ chunk = new StringChunk(String(data), encoding);
219
+ }
220
+ else {
221
+ throw new Error("Chunk must be one of type String, Uint8Array, ArrayBuffer or StringBuf.");
222
+ }
223
+ if (this.pipes.length) {
224
+ if (this.batch) {
225
+ this._writeToBuffers(chunk);
226
+ while (!this.corked && this.buffers.length > 1) {
227
+ await this._pipe(new BufferChunk(this.buffers.shift().toBuffer()));
228
+ }
229
+ }
230
+ else if (!this.corked) {
231
+ await this._pipe(chunk);
232
+ callback();
233
+ }
234
+ else {
235
+ this._writeToBuffers(chunk);
236
+ queueMicrotask(() => callback());
237
+ }
238
+ }
239
+ else {
240
+ if (!this.paused) {
241
+ this.emit("data", chunk.toBuffer());
242
+ }
243
+ this._writeToBuffers(chunk);
244
+ this.emit("readable");
245
+ }
246
+ return true;
247
+ }
248
+ cork() {
249
+ this.corked = true;
250
+ }
251
+ _flush() {
252
+ if (this.pipes.length) {
253
+ while (this.buffers.length) {
254
+ this._pipe(new BufferChunk(this.buffers.shift().toBuffer()));
255
+ }
256
+ }
257
+ }
258
+ uncork() {
259
+ this.corked = false;
260
+ this._flush();
261
+ }
262
+ end(chunk, encoding, callback) {
263
+ const writeComplete = (error) => {
264
+ if (error) {
265
+ callback?.(error);
266
+ }
267
+ else {
268
+ this._flush();
269
+ this.pipes.forEach((pipe) => {
270
+ pipe.end();
271
+ });
272
+ this.emit("finish");
273
+ }
274
+ };
275
+ if (chunk) {
276
+ this.write(chunk, encoding, writeComplete);
277
+ }
278
+ else {
279
+ writeComplete();
280
+ }
281
+ }
282
+ read(size) {
283
+ let buffers;
284
+ if (size) {
285
+ buffers = [];
286
+ while (size && this.buffers.length && !this.buffers[0].eod) {
287
+ const first = this.buffers[0];
288
+ const buffer = first.read(size);
289
+ if (buffer) {
290
+ size -= buffer.length;
291
+ buffers.push(buffer);
292
+ }
293
+ if (first.eod && first.full) {
294
+ this.buffers.shift();
295
+ }
296
+ }
297
+ return concatUint8Arrays(buffers);
298
+ }
299
+ buffers = this.buffers.map(buf => buf.toBuffer()).filter(Boolean);
300
+ this.buffers = [];
301
+ return concatUint8Arrays(buffers);
302
+ }
303
+ setEncoding(encoding) {
304
+ this.encoding = encoding;
305
+ }
306
+ pause() {
307
+ this.paused = true;
308
+ }
309
+ resume() {
310
+ this.paused = false;
311
+ }
312
+ isPaused() {
313
+ return this.paused;
314
+ }
315
+ pipe(destination) {
316
+ this.pipes.push(destination);
317
+ if (!this.paused && this.buffers.length) {
318
+ this.end();
319
+ }
320
+ return destination;
321
+ }
322
+ unpipe(destination) {
323
+ this.pipes = this.pipes.filter((pipe) => pipe !== destination);
324
+ }
325
+ unshift() {
326
+ throw new Error("Not Implemented");
327
+ }
328
+ wrap() {
329
+ throw new Error("Not Implemented");
330
+ }
331
+ push(chunk) {
332
+ if (chunk !== null) {
333
+ this.write(chunk);
334
+ }
335
+ return true;
336
+ }
337
+ }
338
+ exports.StreamBuf = StreamBuf;
339
+ // Helper function to concatenate Uint8Arrays
340
+ function concatUint8Arrays(arrays) {
341
+ if (arrays.length === 0) {
342
+ return new Uint8Array(0);
343
+ }
344
+ if (arrays.length === 1) {
345
+ return arrays[0];
346
+ }
347
+ const totalLength = arrays.reduce((acc, arr) => acc + arr.length, 0);
348
+ const result = new Uint8Array(totalLength);
349
+ let offset = 0;
350
+ for (const arr of arrays) {
351
+ result.set(arr, offset);
352
+ offset += arr.length;
353
+ }
354
+ return result;
355
+ }
@@ -2,8 +2,8 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.StreamBuf = void 0;
4
4
  const stream_1 = require("stream");
5
- const utils_js_1 = require("./utils");
6
- const string_buf_js_1 = require("./string-buf");
5
+ const utils_1 = require("./utils");
6
+ const string_buf_1 = require("./string-buf");
7
7
  // =============================================================================
8
8
  // data chunks - encapsulating incoming data
9
9
  class StringChunk {
@@ -142,7 +142,7 @@ const StreamBuf = function (options) {
142
142
  this.encoding = null;
143
143
  };
144
144
  exports.StreamBuf = StreamBuf;
145
- (0, utils_js_1.inherits)(StreamBuf, stream_1.Duplex, {
145
+ (0, utils_1.inherits)(StreamBuf, stream_1.Duplex, {
146
146
  toBuffer() {
147
147
  switch (this.buffers.length) {
148
148
  case 0:
@@ -195,11 +195,11 @@ exports.StreamBuf = StreamBuf;
195
195
  callback = encoding;
196
196
  encoding = "utf8";
197
197
  }
198
- callback = callback || utils_js_1.nop;
198
+ callback = callback || utils_1.nop;
199
199
  // encapsulate data into a chunk
200
200
  let chunk;
201
201
  // Use constructor name check for better ES6 module compatibility
202
- if (data instanceof string_buf_js_1.StringBuf || (data && data.constructor?.name === "StringBuf")) {
202
+ if (data instanceof string_buf_1.StringBuf || (data && data.constructor?.name === "StringBuf")) {
203
203
  chunk = new StringBufChunk(data);
204
204
  }
205
205
  else if (Buffer.isBuffer(data)) {
@@ -10,7 +10,7 @@ exports.extractAll = extractAll;
10
10
  exports.extractFile = extractFile;
11
11
  exports.listFiles = listFiles;
12
12
  exports.forEachEntry = forEachEntry;
13
- const zip_parser_js_1 = require("./zip-parser");
13
+ const zip_parser_1 = require("./zip-parser");
14
14
  /**
15
15
  * Extract all files from a ZIP buffer
16
16
  *
@@ -19,7 +19,7 @@ const zip_parser_js_1 = require("./zip-parser");
19
19
  *
20
20
  * @example
21
21
  * ```ts
22
- * import { extractAll } from "./utils/unzip/extract.js";
22
+ * import { extractAll } from "./utils/unzip/extract";
23
23
  *
24
24
  * const zipData = fs.readFileSync("archive.zip");
25
25
  * const files = await extractAll(zipData);
@@ -31,7 +31,7 @@ const zip_parser_js_1 = require("./zip-parser");
31
31
  */
32
32
  async function extractAll(zipData) {
33
33
  const files = new Map();
34
- const parser = new zip_parser_js_1.ZipParser(zipData);
34
+ const parser = new zip_parser_1.ZipParser(zipData);
35
35
  for (const entry of parser.getEntries()) {
36
36
  const data = await parser.extract(entry.path);
37
37
  files.set(entry.path, {
@@ -52,7 +52,7 @@ async function extractAll(zipData) {
52
52
  *
53
53
  * @example
54
54
  * ```ts
55
- * import { extractFile } from "./utils/unzip/extract.js";
55
+ * import { extractFile } from "./utils/unzip/extract";
56
56
  *
57
57
  * const zipData = fs.readFileSync("archive.zip");
58
58
  * const content = await extractFile(zipData, "readme.txt");
@@ -62,7 +62,7 @@ async function extractAll(zipData) {
62
62
  * ```
63
63
  */
64
64
  async function extractFile(zipData, filePath) {
65
- const parser = new zip_parser_js_1.ZipParser(zipData);
65
+ const parser = new zip_parser_1.ZipParser(zipData);
66
66
  return parser.extract(filePath);
67
67
  }
68
68
  /**
@@ -73,7 +73,7 @@ async function extractFile(zipData, filePath) {
73
73
  *
74
74
  * @example
75
75
  * ```ts
76
- * import { listFiles } from "./utils/unzip/extract.js";
76
+ * import { listFiles } from "./utils/unzip/extract";
77
77
  *
78
78
  * const zipData = fs.readFileSync("archive.zip");
79
79
  * const paths = await listFiles(zipData);
@@ -81,7 +81,7 @@ async function extractFile(zipData, filePath) {
81
81
  * ```
82
82
  */
83
83
  async function listFiles(zipData) {
84
- const parser = new zip_parser_js_1.ZipParser(zipData);
84
+ const parser = new zip_parser_1.ZipParser(zipData);
85
85
  return parser.listFiles();
86
86
  }
87
87
  /**
@@ -92,7 +92,7 @@ async function listFiles(zipData) {
92
92
  *
93
93
  * @example
94
94
  * ```ts
95
- * import { forEachEntry } from "./utils/unzip/extract.js";
95
+ * import { forEachEntry } from "./utils/unzip/extract";
96
96
  *
97
97
  * await forEachEntry(zipData, async (path, getData) => {
98
98
  * if (path.endsWith(".xml")) {
@@ -104,11 +104,11 @@ async function listFiles(zipData) {
104
104
  * ```
105
105
  */
106
106
  async function forEachEntry(zipData, callback) {
107
- const parser = new zip_parser_js_1.ZipParser(zipData);
107
+ const parser = new zip_parser_1.ZipParser(zipData);
108
108
  await parser.forEach(async (entry, getData) => {
109
109
  return callback(entry.path, getData, entry);
110
110
  });
111
111
  }
112
112
  // Re-export ZipParser for advanced usage
113
- var zip_parser_js_2 = require("./zip-parser");
114
- Object.defineProperty(exports, "ZipParser", { enumerable: true, get: function () { return zip_parser_js_2.ZipParser; } });
113
+ var zip_parser_2 = require("./zip-parser");
114
+ Object.defineProperty(exports, "ZipParser", { enumerable: true, get: function () { return zip_parser_2.ZipParser; } });
@@ -21,25 +21,25 @@
21
21
  Object.defineProperty(exports, "__esModule", { value: true });
22
22
  exports.ZipParser = exports.forEachEntry = exports.listFiles = exports.extractFile = exports.extractAll = exports.parseExtraField = exports.parseDateTime = exports.parseBuffer = exports.bufferStream = exports.NoopStream = exports.PullStream = exports.createParse = exports.Parse = void 0;
23
23
  // Stream-based API (Node.js only - requires stream module)
24
- var parse_js_1 = require("./parse");
25
- Object.defineProperty(exports, "Parse", { enumerable: true, get: function () { return parse_js_1.Parse; } });
26
- Object.defineProperty(exports, "createParse", { enumerable: true, get: function () { return parse_js_1.createParse; } });
27
- var pull_stream_js_1 = require("./pull-stream");
28
- Object.defineProperty(exports, "PullStream", { enumerable: true, get: function () { return pull_stream_js_1.PullStream; } });
29
- var noop_stream_js_1 = require("./noop-stream");
30
- Object.defineProperty(exports, "NoopStream", { enumerable: true, get: function () { return noop_stream_js_1.NoopStream; } });
31
- var buffer_stream_js_1 = require("./buffer-stream");
32
- Object.defineProperty(exports, "bufferStream", { enumerable: true, get: function () { return buffer_stream_js_1.bufferStream; } });
33
- var parse_buffer_js_1 = require("./parse-buffer");
34
- Object.defineProperty(exports, "parseBuffer", { enumerable: true, get: function () { return parse_buffer_js_1.parse; } });
35
- var parse_datetime_js_1 = require("./parse-datetime");
36
- Object.defineProperty(exports, "parseDateTime", { enumerable: true, get: function () { return parse_datetime_js_1.parseDateTime; } });
37
- var parse_extra_field_js_1 = require("./parse-extra-field");
38
- Object.defineProperty(exports, "parseExtraField", { enumerable: true, get: function () { return parse_extra_field_js_1.parseExtraField; } });
24
+ var parse_1 = require("./parse");
25
+ Object.defineProperty(exports, "Parse", { enumerable: true, get: function () { return parse_1.Parse; } });
26
+ Object.defineProperty(exports, "createParse", { enumerable: true, get: function () { return parse_1.createParse; } });
27
+ var pull_stream_1 = require("./pull-stream");
28
+ Object.defineProperty(exports, "PullStream", { enumerable: true, get: function () { return pull_stream_1.PullStream; } });
29
+ var noop_stream_1 = require("./noop-stream");
30
+ Object.defineProperty(exports, "NoopStream", { enumerable: true, get: function () { return noop_stream_1.NoopStream; } });
31
+ var buffer_stream_1 = require("./buffer-stream");
32
+ Object.defineProperty(exports, "bufferStream", { enumerable: true, get: function () { return buffer_stream_1.bufferStream; } });
33
+ var parse_buffer_1 = require("./parse-buffer");
34
+ Object.defineProperty(exports, "parseBuffer", { enumerable: true, get: function () { return parse_buffer_1.parse; } });
35
+ var parse_datetime_1 = require("./parse-datetime");
36
+ Object.defineProperty(exports, "parseDateTime", { enumerable: true, get: function () { return parse_datetime_1.parseDateTime; } });
37
+ var parse_extra_field_1 = require("./parse-extra-field");
38
+ Object.defineProperty(exports, "parseExtraField", { enumerable: true, get: function () { return parse_extra_field_1.parseExtraField; } });
39
39
  // Buffer-based API (Browser + Node.js - cross-platform)
40
- var extract_js_1 = require("./extract");
41
- Object.defineProperty(exports, "extractAll", { enumerable: true, get: function () { return extract_js_1.extractAll; } });
42
- Object.defineProperty(exports, "extractFile", { enumerable: true, get: function () { return extract_js_1.extractFile; } });
43
- Object.defineProperty(exports, "listFiles", { enumerable: true, get: function () { return extract_js_1.listFiles; } });
44
- Object.defineProperty(exports, "forEachEntry", { enumerable: true, get: function () { return extract_js_1.forEachEntry; } });
45
- Object.defineProperty(exports, "ZipParser", { enumerable: true, get: function () { return extract_js_1.ZipParser; } });
40
+ var extract_1 = require("./extract");
41
+ Object.defineProperty(exports, "extractAll", { enumerable: true, get: function () { return extract_1.extractAll; } });
42
+ Object.defineProperty(exports, "extractFile", { enumerable: true, get: function () { return extract_1.extractFile; } });
43
+ Object.defineProperty(exports, "listFiles", { enumerable: true, get: function () { return extract_1.listFiles; } });
44
+ Object.defineProperty(exports, "forEachEntry", { enumerable: true, get: function () { return extract_1.forEachEntry; } });
45
+ Object.defineProperty(exports, "ZipParser", { enumerable: true, get: function () { return extract_1.ZipParser; } });
@@ -8,12 +8,12 @@
8
8
  */
9
9
  Object.defineProperty(exports, "__esModule", { value: true });
10
10
  exports.parseExtraField = parseExtraField;
11
- const parse_buffer_js_1 = require("./parse-buffer");
11
+ const parse_buffer_1 = require("./parse-buffer");
12
12
  function parseExtraField(extraField, vars) {
13
13
  let extra;
14
14
  // Find the ZIP64 header, if present.
15
15
  while (!extra && extraField && extraField.length) {
16
- const candidateExtra = (0, parse_buffer_js_1.parse)(extraField, [
16
+ const candidateExtra = (0, parse_buffer_1.parse)(extraField, [
17
17
  ["signature", 2],
18
18
  ["partSize", 2]
19
19
  ]);
@@ -30,7 +30,7 @@ function parseExtraField(extraField, vars) {
30
30
  fieldsToExpect.push(["offsetToLocalFileHeader", 8]);
31
31
  }
32
32
  // slice off the 4 bytes for signature and partSize
33
- extra = (0, parse_buffer_js_1.parse)(extraField.slice(4), fieldsToExpect);
33
+ extra = (0, parse_buffer_1.parse)(extraField.slice(4), fieldsToExpect);
34
34
  }
35
35
  else {
36
36
  // Advance the buffer to the next part.