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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (400) hide show
  1. package/README.md +139 -24
  2. package/README_zh.md +140 -26
  3. package/dist/browser/excelts.esm.js +18468 -0
  4. package/dist/browser/excelts.esm.js.map +1 -0
  5. package/dist/browser/excelts.esm.min.js +125 -0
  6. package/dist/browser/excelts.iife.js +13107 -47146
  7. package/dist/browser/excelts.iife.js.map +1 -1
  8. package/dist/browser/excelts.iife.min.js +24 -106
  9. package/dist/cjs/csv/csv-core.js +701 -0
  10. package/dist/cjs/csv/csv-stream.js +646 -0
  11. package/dist/cjs/csv/csv.base.js +137 -0
  12. package/dist/cjs/csv/csv.browser.js +68 -0
  13. package/dist/cjs/csv/csv.js +218 -162
  14. package/dist/cjs/doc/anchor.js +2 -2
  15. package/dist/cjs/doc/cell.js +22 -22
  16. package/dist/cjs/doc/column.js +28 -7
  17. package/dist/cjs/doc/data-validations.js +3 -3
  18. package/dist/cjs/doc/defined-names.js +13 -13
  19. package/dist/cjs/doc/image.js +7 -7
  20. package/dist/cjs/doc/modelcontainer.js +2 -2
  21. package/dist/cjs/doc/note.js +2 -2
  22. package/dist/cjs/doc/pivot-table.js +5 -5
  23. package/dist/cjs/doc/range.js +11 -11
  24. package/dist/cjs/doc/row.js +16 -16
  25. package/dist/cjs/doc/table.js +5 -5
  26. package/dist/cjs/doc/workbook.base.js +211 -0
  27. package/dist/cjs/doc/workbook.browser.js +62 -0
  28. package/dist/cjs/doc/workbook.js +68 -179
  29. package/dist/cjs/doc/worksheet.js +45 -41
  30. package/dist/cjs/index.js +49 -32
  31. package/dist/cjs/stream/xlsx/hyperlink-reader.js +6 -6
  32. package/dist/cjs/stream/xlsx/sheet-comments-writer.js +12 -12
  33. package/dist/cjs/stream/xlsx/sheet-rels-writer.js +4 -4
  34. package/dist/cjs/stream/xlsx/workbook-reader.js +22 -22
  35. package/dist/cjs/stream/xlsx/workbook-writer.js +38 -38
  36. package/dist/cjs/stream/xlsx/worksheet-reader.js +17 -17
  37. package/dist/cjs/stream/xlsx/worksheet-writer.js +67 -60
  38. package/dist/cjs/utils/browser-buffer.js +75 -0
  39. package/dist/cjs/utils/cell-format.js +2 -2
  40. package/dist/cjs/utils/cell-matrix.js +5 -5
  41. package/dist/cjs/utils/datetime.js +499 -0
  42. package/dist/cjs/utils/encryptor.browser.js +240 -0
  43. package/dist/cjs/utils/parse-sax.js +1191 -13
  44. package/dist/cjs/utils/shared-formula.js +5 -5
  45. package/dist/cjs/utils/sheet-utils.js +13 -13
  46. package/dist/cjs/utils/stream-buf.browser.js +355 -0
  47. package/dist/cjs/utils/stream-buf.js +5 -5
  48. package/dist/cjs/utils/unzip/extract.js +11 -11
  49. package/dist/cjs/utils/unzip/index.js +21 -21
  50. package/dist/cjs/utils/unzip/parse-extra-field.js +3 -3
  51. package/dist/cjs/utils/unzip/parse.js +16 -16
  52. package/dist/cjs/utils/unzip/zip-parser.js +14 -3
  53. package/dist/cjs/utils/utils.base.js +161 -0
  54. package/dist/cjs/utils/utils.browser.js +89 -0
  55. package/dist/cjs/utils/utils.js +46 -154
  56. package/dist/cjs/utils/xml-stream.js +3 -3
  57. package/dist/cjs/utils/zip/compress.base.js +88 -0
  58. package/dist/cjs/utils/zip/compress.browser.js +127 -0
  59. package/dist/cjs/utils/zip/compress.js +18 -198
  60. package/dist/cjs/utils/zip/crc32.browser.js +88 -0
  61. package/dist/cjs/utils/zip/deflate-fallback.js +575 -0
  62. package/dist/cjs/utils/zip/index.js +17 -17
  63. package/dist/cjs/utils/zip/streaming-zip.js +264 -0
  64. package/dist/cjs/utils/zip/zip-builder.js +10 -10
  65. package/dist/cjs/utils/zip-stream.browser.js +135 -0
  66. package/dist/cjs/utils/zip-stream.js +4 -4
  67. package/dist/cjs/xlsx/xform/base-xform.js +4 -4
  68. package/dist/cjs/xlsx/xform/book/defined-name-xform.js +4 -4
  69. package/dist/cjs/xlsx/xform/book/sheet-xform.js +4 -4
  70. package/dist/cjs/xlsx/xform/book/workbook-calc-properties-xform.js +2 -2
  71. package/dist/cjs/xlsx/xform/book/workbook-pivot-cache-xform.js +2 -2
  72. package/dist/cjs/xlsx/xform/book/workbook-properties-xform.js +2 -2
  73. package/dist/cjs/xlsx/xform/book/workbook-view-xform.js +2 -2
  74. package/dist/cjs/xlsx/xform/book/workbook-xform.js +24 -24
  75. package/dist/cjs/xlsx/xform/comment/comment-xform.js +4 -4
  76. package/dist/cjs/xlsx/xform/comment/comments-xform.js +6 -6
  77. package/dist/cjs/xlsx/xform/comment/style/vml-position-xform.js +2 -2
  78. package/dist/cjs/xlsx/xform/comment/style/vml-protection-xform.js +2 -2
  79. package/dist/cjs/xlsx/xform/comment/vml-anchor-xform.js +2 -2
  80. package/dist/cjs/xlsx/xform/comment/vml-client-data-xform.js +10 -10
  81. package/dist/cjs/xlsx/xform/comment/vml-notes-xform.js +6 -6
  82. package/dist/cjs/xlsx/xform/comment/vml-shape-xform.js +6 -6
  83. package/dist/cjs/xlsx/xform/comment/vml-textbox-xform.js +2 -2
  84. package/dist/cjs/xlsx/xform/composite-xform.js +2 -2
  85. package/dist/cjs/xlsx/xform/core/app-heading-pairs-xform.js +2 -2
  86. package/dist/cjs/xlsx/xform/core/app-titles-of-parts-xform.js +2 -2
  87. package/dist/cjs/xlsx/xform/core/app-xform.js +11 -11
  88. package/dist/cjs/xlsx/xform/core/content-types-xform.js +4 -4
  89. package/dist/cjs/xlsx/xform/core/core-xform.js +23 -23
  90. package/dist/cjs/xlsx/xform/core/relationship-xform.js +2 -2
  91. package/dist/cjs/xlsx/xform/core/relationships-xform.js +6 -6
  92. package/dist/cjs/xlsx/xform/drawing/base-cell-anchor-xform.js +2 -2
  93. package/dist/cjs/xlsx/xform/drawing/blip-fill-xform.js +4 -4
  94. package/dist/cjs/xlsx/xform/drawing/blip-xform.js +2 -2
  95. package/dist/cjs/xlsx/xform/drawing/c-nv-pic-pr-xform.js +2 -2
  96. package/dist/cjs/xlsx/xform/drawing/c-nv-pr-xform.js +6 -6
  97. package/dist/cjs/xlsx/xform/drawing/cell-position-xform.js +7 -7
  98. package/dist/cjs/xlsx/xform/drawing/drawing-xform.js +10 -10
  99. package/dist/cjs/xlsx/xform/drawing/ext-lst-xform.js +2 -2
  100. package/dist/cjs/xlsx/xform/drawing/ext-xform.js +2 -2
  101. package/dist/cjs/xlsx/xform/drawing/hlink-click-xform.js +2 -2
  102. package/dist/cjs/xlsx/xform/drawing/nv-pic-pr-xform.js +6 -6
  103. package/dist/cjs/xlsx/xform/drawing/one-cell-anchor-xform.js +10 -10
  104. package/dist/cjs/xlsx/xform/drawing/pic-xform.js +9 -9
  105. package/dist/cjs/xlsx/xform/drawing/two-cell-anchor-xform.js +9 -9
  106. package/dist/cjs/xlsx/xform/list-xform.js +2 -2
  107. package/dist/cjs/xlsx/xform/pivot-table/cache-field-xform.js +5 -5
  108. package/dist/cjs/xlsx/xform/pivot-table/cache-field.js +3 -3
  109. package/dist/cjs/xlsx/xform/pivot-table/pivot-cache-definition-xform.js +10 -10
  110. package/dist/cjs/xlsx/xform/pivot-table/pivot-cache-records-xform.js +9 -9
  111. package/dist/cjs/xlsx/xform/pivot-table/pivot-table-xform.js +10 -11
  112. package/dist/cjs/xlsx/xform/sheet/auto-filter-xform.js +4 -4
  113. package/dist/cjs/xlsx/xform/sheet/cell-xform.js +65 -65
  114. package/dist/cjs/xlsx/xform/sheet/cf/cf-rule-xform.js +27 -27
  115. package/dist/cjs/xlsx/xform/sheet/cf/cfvo-xform.js +3 -3
  116. package/dist/cjs/xlsx/xform/sheet/cf/color-scale-xform.js +6 -6
  117. package/dist/cjs/xlsx/xform/sheet/cf/conditional-formatting-xform.js +6 -6
  118. package/dist/cjs/xlsx/xform/sheet/cf/conditional-formattings-xform.js +4 -4
  119. package/dist/cjs/xlsx/xform/sheet/cf/databar-xform.js +6 -6
  120. package/dist/cjs/xlsx/xform/sheet/cf/ext-lst-ref-xform.js +5 -5
  121. package/dist/cjs/xlsx/xform/sheet/cf/formula-xform.js +2 -2
  122. package/dist/cjs/xlsx/xform/sheet/cf/icon-set-xform.js +11 -11
  123. package/dist/cjs/xlsx/xform/sheet/cf-ext/cf-icon-ext-xform.js +3 -3
  124. package/dist/cjs/xlsx/xform/sheet/cf-ext/cf-rule-ext-xform.js +11 -12
  125. package/dist/cjs/xlsx/xform/sheet/cf-ext/cfvo-ext-xform.js +4 -4
  126. package/dist/cjs/xlsx/xform/sheet/cf-ext/conditional-formatting-ext-xform.js +8 -8
  127. package/dist/cjs/xlsx/xform/sheet/cf-ext/conditional-formattings-ext-xform.js +6 -6
  128. package/dist/cjs/xlsx/xform/sheet/cf-ext/databar-ext-xform.js +26 -26
  129. package/dist/cjs/xlsx/xform/sheet/cf-ext/f-ext-xform.js +2 -2
  130. package/dist/cjs/xlsx/xform/sheet/cf-ext/icon-set-ext-xform.js +14 -14
  131. package/dist/cjs/xlsx/xform/sheet/cf-ext/sqref-ext-xform.js +2 -2
  132. package/dist/cjs/xlsx/xform/sheet/col-breaks-xform.js +38 -0
  133. package/dist/cjs/xlsx/xform/sheet/col-xform.js +6 -6
  134. package/dist/cjs/xlsx/xform/sheet/data-validations-xform.js +18 -18
  135. package/dist/cjs/xlsx/xform/sheet/dimension-xform.js +2 -2
  136. package/dist/cjs/xlsx/xform/sheet/drawing-xform.js +2 -2
  137. package/dist/cjs/xlsx/xform/sheet/ext-lst-xform.js +5 -5
  138. package/dist/cjs/xlsx/xform/sheet/header-footer-xform.js +2 -2
  139. package/dist/cjs/xlsx/xform/sheet/hyperlink-xform.js +2 -2
  140. package/dist/cjs/xlsx/xform/sheet/merge-cell-xform.js +2 -2
  141. package/dist/cjs/xlsx/xform/sheet/merges.js +8 -8
  142. package/dist/cjs/xlsx/xform/sheet/outline-properties-xform.js +2 -2
  143. package/dist/cjs/xlsx/xform/sheet/page-breaks-xform.js +15 -3
  144. package/dist/cjs/xlsx/xform/sheet/page-margins-xform.js +2 -2
  145. package/dist/cjs/xlsx/xform/sheet/page-setup-properties-xform.js +2 -2
  146. package/dist/cjs/xlsx/xform/sheet/page-setup-xform.js +2 -2
  147. package/dist/cjs/xlsx/xform/sheet/picture-xform.js +2 -2
  148. package/dist/cjs/xlsx/xform/sheet/print-options-xform.js +2 -2
  149. package/dist/cjs/xlsx/xform/sheet/row-breaks-xform.js +15 -17
  150. package/dist/cjs/xlsx/xform/sheet/row-xform.js +11 -11
  151. package/dist/cjs/xlsx/xform/sheet/sheet-format-properties-xform.js +2 -2
  152. package/dist/cjs/xlsx/xform/sheet/sheet-properties-xform.js +8 -8
  153. package/dist/cjs/xlsx/xform/sheet/sheet-protection-xform.js +2 -2
  154. package/dist/cjs/xlsx/xform/sheet/sheet-view-xform.js +4 -4
  155. package/dist/cjs/xlsx/xform/sheet/table-part-xform.js +2 -2
  156. package/dist/cjs/xlsx/xform/sheet/worksheet-xform.js +75 -70
  157. package/dist/cjs/xlsx/xform/simple/boolean-xform.js +2 -2
  158. package/dist/cjs/xlsx/xform/simple/date-xform.js +2 -2
  159. package/dist/cjs/xlsx/xform/simple/float-xform.js +2 -2
  160. package/dist/cjs/xlsx/xform/simple/integer-xform.js +2 -2
  161. package/dist/cjs/xlsx/xform/simple/string-xform.js +2 -2
  162. package/dist/cjs/xlsx/xform/static-xform.js +4 -4
  163. package/dist/cjs/xlsx/xform/strings/phonetic-text-xform.js +6 -6
  164. package/dist/cjs/xlsx/xform/strings/rich-text-xform.js +6 -6
  165. package/dist/cjs/xlsx/xform/strings/shared-string-xform.js +8 -8
  166. package/dist/cjs/xlsx/xform/strings/shared-strings-xform.js +6 -6
  167. package/dist/cjs/xlsx/xform/strings/text-xform.js +2 -2
  168. package/dist/cjs/xlsx/xform/style/alignment-xform.js +8 -8
  169. package/dist/cjs/xlsx/xform/style/border-xform.js +8 -8
  170. package/dist/cjs/xlsx/xform/style/color-xform.js +2 -2
  171. package/dist/cjs/xlsx/xform/style/dxf-xform.js +14 -14
  172. package/dist/cjs/xlsx/xform/style/fill-xform.js +9 -9
  173. package/dist/cjs/xlsx/xform/style/font-xform.js +22 -22
  174. package/dist/cjs/xlsx/xform/style/numfmt-xform.js +5 -5
  175. package/dist/cjs/xlsx/xform/style/protection-xform.js +2 -2
  176. package/dist/cjs/xlsx/xform/style/style-xform.js +6 -6
  177. package/dist/cjs/xlsx/xform/style/styles-xform.js +39 -39
  178. package/dist/cjs/xlsx/xform/style/underline-xform.js +2 -2
  179. package/dist/cjs/xlsx/xform/table/auto-filter-xform.js +4 -4
  180. package/dist/cjs/xlsx/xform/table/custom-filter-xform.js +2 -2
  181. package/dist/cjs/xlsx/xform/table/filter-column-xform.js +9 -9
  182. package/dist/cjs/xlsx/xform/table/filter-xform.js +2 -2
  183. package/dist/cjs/xlsx/xform/table/table-column-xform.js +2 -2
  184. package/dist/cjs/xlsx/xform/table/table-style-info-xform.js +2 -2
  185. package/dist/cjs/xlsx/xform/table/table-xform.js +12 -12
  186. package/dist/cjs/xlsx/xlsx.base.js +742 -0
  187. package/dist/cjs/xlsx/xlsx.browser.js +162 -0
  188. package/dist/cjs/xlsx/xlsx.js +118 -892
  189. package/dist/esm/csv/csv-core.js +694 -0
  190. package/dist/esm/csv/csv-stream.js +638 -0
  191. package/dist/esm/csv/csv.base.js +127 -0
  192. package/dist/esm/csv/csv.browser.js +65 -0
  193. package/dist/esm/csv/csv.js +181 -159
  194. package/dist/esm/doc/column.js +21 -0
  195. package/dist/esm/doc/workbook.base.js +207 -0
  196. package/dist/esm/doc/workbook.browser.js +59 -0
  197. package/dist/esm/doc/workbook.js +64 -175
  198. package/dist/esm/doc/worksheet.js +4 -0
  199. package/dist/esm/index.browser.js +33 -1
  200. package/dist/esm/index.js +23 -8
  201. package/dist/esm/local.js +0 -1
  202. package/dist/esm/stream/xlsx/workbook-writer.js +1 -1
  203. package/dist/esm/stream/xlsx/worksheet-writer.js +8 -1
  204. package/dist/esm/utils/browser-buffer.js +67 -0
  205. package/dist/esm/utils/datetime.js +493 -0
  206. package/dist/esm/utils/encryptor.browser.js +237 -0
  207. package/dist/esm/utils/parse-sax.js +1188 -12
  208. package/dist/esm/utils/stream-buf.browser.js +352 -0
  209. package/dist/esm/utils/unzip/zip-parser.js +11 -0
  210. package/dist/esm/utils/utils.base.js +142 -0
  211. package/dist/esm/utils/utils.browser.js +68 -0
  212. package/dist/esm/utils/utils.js +15 -123
  213. package/dist/esm/utils/zip/compress.base.js +83 -0
  214. package/dist/esm/utils/zip/compress.browser.js +121 -0
  215. package/dist/esm/utils/zip/compress.js +16 -164
  216. package/dist/esm/utils/zip/crc32.browser.js +82 -0
  217. package/dist/esm/utils/zip/deflate-fallback.js +570 -0
  218. package/dist/esm/utils/zip/streaming-zip.js +259 -0
  219. package/dist/esm/utils/zip-stream.browser.js +132 -0
  220. package/dist/esm/xlsx/xform/pivot-table/pivot-table-xform.js +2 -3
  221. package/dist/esm/xlsx/xform/sheet/cf-ext/cf-rule-ext-xform.js +2 -3
  222. package/dist/esm/xlsx/xform/sheet/col-breaks-xform.js +35 -0
  223. package/dist/esm/xlsx/xform/sheet/page-breaks-xform.js +13 -1
  224. package/dist/esm/xlsx/xform/sheet/row-breaks-xform.js +11 -13
  225. package/dist/esm/xlsx/xform/sheet/worksheet-xform.js +7 -2
  226. package/dist/esm/xlsx/xlsx.base.js +739 -0
  227. package/dist/esm/xlsx/xlsx.browser.js +159 -0
  228. package/dist/esm/xlsx/xlsx.js +114 -888
  229. package/dist/types/csv/csv-core.d.ts +207 -0
  230. package/dist/types/csv/csv-stream.d.ts +114 -0
  231. package/dist/types/csv/csv.base.d.ts +62 -0
  232. package/dist/types/csv/csv.browser.d.ts +33 -0
  233. package/dist/types/csv/csv.d.ts +97 -71
  234. package/dist/types/doc/anchor.d.ts +1 -1
  235. package/dist/types/doc/cell.d.ts +7 -7
  236. package/dist/types/doc/column.d.ts +9 -3
  237. package/dist/types/doc/defined-names.d.ts +4 -4
  238. package/dist/types/doc/image.d.ts +2 -2
  239. package/dist/types/doc/modelcontainer.d.ts +1 -1
  240. package/dist/types/doc/pivot-table.d.ts +1 -1
  241. package/dist/types/doc/range.d.ts +1 -1
  242. package/dist/types/doc/row.d.ts +3 -3
  243. package/dist/types/doc/table.d.ts +2 -2
  244. package/dist/types/doc/workbook.base.d.ts +111 -0
  245. package/dist/types/doc/workbook.browser.d.ts +38 -0
  246. package/dist/types/doc/workbook.d.ts +62 -92
  247. package/dist/types/doc/worksheet.d.ts +12 -10
  248. package/dist/types/index.browser.d.ts +19 -5
  249. package/dist/types/index.d.ts +24 -23
  250. package/dist/types/local.d.ts +0 -1
  251. package/dist/types/stream/xlsx/hyperlink-reader.d.ts +1 -1
  252. package/dist/types/stream/xlsx/workbook-reader.d.ts +4 -4
  253. package/dist/types/stream/xlsx/workbook-writer.d.ts +7 -7
  254. package/dist/types/stream/xlsx/worksheet-reader.d.ts +5 -5
  255. package/dist/types/stream/xlsx/worksheet-writer.d.ts +11 -9
  256. package/dist/types/types.d.ts +6 -0
  257. package/dist/types/utils/browser-buffer.d.ts +28 -0
  258. package/dist/types/utils/col-cache.d.ts +1 -1
  259. package/dist/types/utils/datetime.d.ts +56 -0
  260. package/dist/types/utils/encryptor.browser.d.ts +28 -0
  261. package/dist/types/utils/parse-sax.d.ts +108 -1
  262. package/dist/types/utils/sheet-utils.d.ts +3 -3
  263. package/dist/types/utils/stream-buf.browser.d.ts +41 -0
  264. package/dist/types/utils/unzip/extract.d.ts +6 -6
  265. package/dist/types/utils/unzip/index.d.ts +8 -8
  266. package/dist/types/utils/unzip/parse.d.ts +3 -3
  267. package/dist/types/utils/unzip/zip-parser.d.ts +5 -0
  268. package/dist/types/utils/utils.base.d.ts +29 -0
  269. package/dist/types/utils/utils.browser.d.ts +29 -0
  270. package/dist/types/utils/utils.d.ts +6 -25
  271. package/dist/types/utils/zip/compress.base.d.ts +45 -0
  272. package/dist/types/utils/zip/compress.browser.d.ts +63 -0
  273. package/dist/types/utils/zip/compress.d.ts +13 -45
  274. package/dist/types/utils/zip/crc32.browser.d.ts +52 -0
  275. package/dist/types/utils/zip/deflate-fallback.d.ts +39 -0
  276. package/dist/types/utils/zip/index.d.ts +5 -5
  277. package/dist/types/utils/zip/streaming-zip.d.ts +96 -0
  278. package/dist/types/utils/zip/zip-builder.d.ts +1 -1
  279. package/dist/types/utils/zip-stream.browser.d.ts +39 -0
  280. package/dist/types/xlsx/xform/base-xform.d.ts +1 -1
  281. package/dist/types/xlsx/xform/book/defined-name-xform.d.ts +1 -1
  282. package/dist/types/xlsx/xform/book/sheet-xform.d.ts +1 -1
  283. package/dist/types/xlsx/xform/book/workbook-calc-properties-xform.d.ts +1 -1
  284. package/dist/types/xlsx/xform/book/workbook-pivot-cache-xform.d.ts +1 -1
  285. package/dist/types/xlsx/xform/book/workbook-properties-xform.d.ts +1 -1
  286. package/dist/types/xlsx/xform/book/workbook-view-xform.d.ts +1 -1
  287. package/dist/types/xlsx/xform/book/workbook-xform.d.ts +2 -2
  288. package/dist/types/xlsx/xform/comment/comment-xform.d.ts +2 -2
  289. package/dist/types/xlsx/xform/comment/comments-xform.d.ts +2 -2
  290. package/dist/types/xlsx/xform/comment/style/vml-position-xform.d.ts +1 -1
  291. package/dist/types/xlsx/xform/comment/style/vml-protection-xform.d.ts +1 -1
  292. package/dist/types/xlsx/xform/comment/vml-anchor-xform.d.ts +1 -1
  293. package/dist/types/xlsx/xform/comment/vml-client-data-xform.d.ts +1 -1
  294. package/dist/types/xlsx/xform/comment/vml-notes-xform.d.ts +1 -1
  295. package/dist/types/xlsx/xform/comment/vml-shape-xform.d.ts +1 -1
  296. package/dist/types/xlsx/xform/comment/vml-textbox-xform.d.ts +1 -1
  297. package/dist/types/xlsx/xform/composite-xform.d.ts +1 -1
  298. package/dist/types/xlsx/xform/core/app-heading-pairs-xform.d.ts +1 -1
  299. package/dist/types/xlsx/xform/core/app-titles-of-parts-xform.d.ts +1 -1
  300. package/dist/types/xlsx/xform/core/app-xform.d.ts +1 -1
  301. package/dist/types/xlsx/xform/core/content-types-xform.d.ts +1 -1
  302. package/dist/types/xlsx/xform/core/core-xform.d.ts +1 -1
  303. package/dist/types/xlsx/xform/core/relationship-xform.d.ts +1 -1
  304. package/dist/types/xlsx/xform/core/relationships-xform.d.ts +1 -1
  305. package/dist/types/xlsx/xform/drawing/base-cell-anchor-xform.d.ts +1 -1
  306. package/dist/types/xlsx/xform/drawing/blip-fill-xform.d.ts +2 -2
  307. package/dist/types/xlsx/xform/drawing/blip-xform.d.ts +1 -1
  308. package/dist/types/xlsx/xform/drawing/c-nv-pic-pr-xform.d.ts +1 -1
  309. package/dist/types/xlsx/xform/drawing/c-nv-pr-xform.d.ts +1 -1
  310. package/dist/types/xlsx/xform/drawing/cell-position-xform.d.ts +2 -2
  311. package/dist/types/xlsx/xform/drawing/drawing-xform.d.ts +1 -1
  312. package/dist/types/xlsx/xform/drawing/ext-lst-xform.d.ts +1 -1
  313. package/dist/types/xlsx/xform/drawing/ext-xform.d.ts +1 -1
  314. package/dist/types/xlsx/xform/drawing/hlink-click-xform.d.ts +1 -1
  315. package/dist/types/xlsx/xform/drawing/nv-pic-pr-xform.d.ts +1 -1
  316. package/dist/types/xlsx/xform/drawing/one-cell-anchor-xform.d.ts +1 -1
  317. package/dist/types/xlsx/xform/drawing/pic-xform.d.ts +1 -1
  318. package/dist/types/xlsx/xform/drawing/two-cell-anchor-xform.d.ts +1 -1
  319. package/dist/types/xlsx/xform/list-xform.d.ts +1 -1
  320. package/dist/types/xlsx/xform/pivot-table/cache-field-xform.d.ts +1 -1
  321. package/dist/types/xlsx/xform/pivot-table/pivot-cache-definition-xform.d.ts +3 -3
  322. package/dist/types/xlsx/xform/pivot-table/pivot-cache-records-xform.d.ts +2 -2
  323. package/dist/types/xlsx/xform/pivot-table/pivot-table-xform.d.ts +1 -1
  324. package/dist/types/xlsx/xform/sheet/auto-filter-xform.d.ts +1 -1
  325. package/dist/types/xlsx/xform/sheet/cell-xform.d.ts +1 -1
  326. package/dist/types/xlsx/xform/sheet/cf/cf-rule-xform.d.ts +6 -6
  327. package/dist/types/xlsx/xform/sheet/cf/cfvo-xform.d.ts +1 -1
  328. package/dist/types/xlsx/xform/sheet/cf/color-scale-xform.d.ts +3 -3
  329. package/dist/types/xlsx/xform/sheet/cf/conditional-formatting-xform.d.ts +1 -1
  330. package/dist/types/xlsx/xform/sheet/cf/conditional-formattings-xform.d.ts +2 -2
  331. package/dist/types/xlsx/xform/sheet/cf/databar-xform.d.ts +3 -3
  332. package/dist/types/xlsx/xform/sheet/cf/ext-lst-ref-xform.d.ts +1 -1
  333. package/dist/types/xlsx/xform/sheet/cf/formula-xform.d.ts +1 -1
  334. package/dist/types/xlsx/xform/sheet/cf/icon-set-xform.d.ts +2 -2
  335. package/dist/types/xlsx/xform/sheet/cf-ext/cf-icon-ext-xform.d.ts +1 -1
  336. package/dist/types/xlsx/xform/sheet/cf-ext/cf-rule-ext-xform.d.ts +3 -3
  337. package/dist/types/xlsx/xform/sheet/cf-ext/cfvo-ext-xform.d.ts +2 -2
  338. package/dist/types/xlsx/xform/sheet/cf-ext/conditional-formatting-ext-xform.d.ts +3 -3
  339. package/dist/types/xlsx/xform/sheet/cf-ext/conditional-formattings-ext-xform.d.ts +2 -2
  340. package/dist/types/xlsx/xform/sheet/cf-ext/databar-ext-xform.d.ts +3 -3
  341. package/dist/types/xlsx/xform/sheet/cf-ext/f-ext-xform.d.ts +1 -1
  342. package/dist/types/xlsx/xform/sheet/cf-ext/icon-set-ext-xform.d.ts +3 -3
  343. package/dist/types/xlsx/xform/sheet/cf-ext/sqref-ext-xform.d.ts +1 -1
  344. package/dist/types/xlsx/xform/sheet/col-breaks-xform.d.ts +16 -0
  345. package/dist/types/xlsx/xform/sheet/col-xform.d.ts +1 -1
  346. package/dist/types/xlsx/xform/sheet/data-validations-xform.d.ts +1 -1
  347. package/dist/types/xlsx/xform/sheet/dimension-xform.d.ts +1 -1
  348. package/dist/types/xlsx/xform/sheet/drawing-xform.d.ts +1 -1
  349. package/dist/types/xlsx/xform/sheet/ext-lst-xform.d.ts +1 -1
  350. package/dist/types/xlsx/xform/sheet/header-footer-xform.d.ts +1 -1
  351. package/dist/types/xlsx/xform/sheet/hyperlink-xform.d.ts +1 -1
  352. package/dist/types/xlsx/xform/sheet/merge-cell-xform.d.ts +1 -1
  353. package/dist/types/xlsx/xform/sheet/outline-properties-xform.d.ts +1 -1
  354. package/dist/types/xlsx/xform/sheet/page-breaks-xform.d.ts +5 -1
  355. package/dist/types/xlsx/xform/sheet/page-margins-xform.d.ts +1 -1
  356. package/dist/types/xlsx/xform/sheet/page-setup-properties-xform.d.ts +1 -1
  357. package/dist/types/xlsx/xform/sheet/page-setup-xform.d.ts +1 -1
  358. package/dist/types/xlsx/xform/sheet/picture-xform.d.ts +1 -1
  359. package/dist/types/xlsx/xform/sheet/print-options-xform.d.ts +1 -1
  360. package/dist/types/xlsx/xform/sheet/row-breaks-xform.d.ts +5 -1
  361. package/dist/types/xlsx/xform/sheet/row-xform.d.ts +1 -1
  362. package/dist/types/xlsx/xform/sheet/sheet-format-properties-xform.d.ts +1 -1
  363. package/dist/types/xlsx/xform/sheet/sheet-properties-xform.d.ts +1 -1
  364. package/dist/types/xlsx/xform/sheet/sheet-protection-xform.d.ts +1 -1
  365. package/dist/types/xlsx/xform/sheet/sheet-view-xform.d.ts +1 -1
  366. package/dist/types/xlsx/xform/sheet/table-part-xform.d.ts +1 -1
  367. package/dist/types/xlsx/xform/sheet/worksheet-xform.d.ts +1 -1
  368. package/dist/types/xlsx/xform/simple/boolean-xform.d.ts +1 -1
  369. package/dist/types/xlsx/xform/simple/date-xform.d.ts +1 -1
  370. package/dist/types/xlsx/xform/simple/float-xform.d.ts +1 -1
  371. package/dist/types/xlsx/xform/simple/integer-xform.d.ts +1 -1
  372. package/dist/types/xlsx/xform/simple/string-xform.d.ts +1 -1
  373. package/dist/types/xlsx/xform/static-xform.d.ts +1 -1
  374. package/dist/types/xlsx/xform/strings/phonetic-text-xform.d.ts +1 -1
  375. package/dist/types/xlsx/xform/strings/rich-text-xform.d.ts +3 -3
  376. package/dist/types/xlsx/xform/strings/shared-string-xform.d.ts +1 -1
  377. package/dist/types/xlsx/xform/strings/shared-strings-xform.d.ts +2 -2
  378. package/dist/types/xlsx/xform/strings/text-xform.d.ts +1 -1
  379. package/dist/types/xlsx/xform/style/alignment-xform.d.ts +1 -1
  380. package/dist/types/xlsx/xform/style/border-xform.d.ts +2 -2
  381. package/dist/types/xlsx/xform/style/color-xform.d.ts +1 -1
  382. package/dist/types/xlsx/xform/style/dxf-xform.d.ts +1 -1
  383. package/dist/types/xlsx/xform/style/fill-xform.d.ts +2 -2
  384. package/dist/types/xlsx/xform/style/font-xform.d.ts +1 -1
  385. package/dist/types/xlsx/xform/style/numfmt-xform.d.ts +1 -1
  386. package/dist/types/xlsx/xform/style/protection-xform.d.ts +1 -1
  387. package/dist/types/xlsx/xform/style/style-xform.d.ts +3 -3
  388. package/dist/types/xlsx/xform/style/styles-xform.d.ts +2 -2
  389. package/dist/types/xlsx/xform/style/underline-xform.d.ts +1 -1
  390. package/dist/types/xlsx/xform/table/auto-filter-xform.d.ts +2 -2
  391. package/dist/types/xlsx/xform/table/custom-filter-xform.d.ts +1 -1
  392. package/dist/types/xlsx/xform/table/filter-column-xform.d.ts +2 -2
  393. package/dist/types/xlsx/xform/table/filter-xform.d.ts +1 -1
  394. package/dist/types/xlsx/xform/table/table-column-xform.d.ts +1 -1
  395. package/dist/types/xlsx/xform/table/table-style-info-xform.d.ts +1 -1
  396. package/dist/types/xlsx/xform/table/table-xform.d.ts +1 -1
  397. package/dist/types/xlsx/xlsx.base.d.ts +134 -0
  398. package/dist/types/xlsx/xlsx.browser.d.ts +31 -0
  399. package/dist/types/xlsx/xlsx.d.ts +20 -80
  400. package/package.json +16 -39
@@ -0,0 +1,264 @@
1
+ "use strict";
2
+ /**
3
+ * Streaming ZIP creator - fflate-compatible API
4
+ *
5
+ * This module provides a streaming ZIP API compatible with fflate's Zip/ZipDeflate,
6
+ * but uses native zlib compression for better performance.
7
+ *
8
+ * Usage:
9
+ * ```ts
10
+ * const zip = new StreamingZip((err, data, final) => {
11
+ * if (err) handleError(err);
12
+ * else {
13
+ * stream.write(data);
14
+ * if (final) stream.end();
15
+ * }
16
+ * });
17
+ *
18
+ * const file = new ZipDeflateFile("path/file.txt", { level: 6 });
19
+ * zip.add(file);
20
+ * file.push(data1);
21
+ * file.push(data2, true); // true = final chunk
22
+ *
23
+ * zip.end();
24
+ * ```
25
+ */
26
+ Object.defineProperty(exports, "__esModule", { value: true });
27
+ exports.ZipDeflate = exports.Zip = exports.StreamingZip = exports.ZipDeflateFile = void 0;
28
+ const crc32_1 = require("./crc32");
29
+ const compress_1 = require("./compress");
30
+ // ZIP signature constants
31
+ const LOCAL_FILE_HEADER_SIG = 0x04034b50;
32
+ const CENTRAL_DIR_HEADER_SIG = 0x02014b50;
33
+ const END_OF_CENTRAL_DIR_SIG = 0x06054b50;
34
+ // ZIP version constants
35
+ const VERSION_NEEDED = 20; // 2.0 - supports DEFLATE
36
+ const VERSION_MADE_BY = 20; // 2.0
37
+ // Compression methods
38
+ const COMPRESSION_STORE = 0;
39
+ const COMPRESSION_DEFLATE = 8;
40
+ const encoder = new TextEncoder();
41
+ /**
42
+ * Convert Date to DOS time format
43
+ */
44
+ function dateToDos(date) {
45
+ const dosTime = ((date.getHours() & 0x1f) << 11) |
46
+ ((date.getMinutes() & 0x3f) << 5) |
47
+ ((date.getSeconds() >> 1) & 0x1f);
48
+ const dosDate = (((date.getFullYear() - 1980) & 0x7f) << 9) |
49
+ (((date.getMonth() + 1) & 0x0f) << 5) |
50
+ (date.getDate() & 0x1f);
51
+ return [dosTime, dosDate];
52
+ }
53
+ /**
54
+ * ZipDeflate-compatible file stream
55
+ * Collects data chunks, compresses on finalization
56
+ */
57
+ class ZipDeflateFile {
58
+ constructor(name, options) {
59
+ this.chunks = [];
60
+ this.totalSize = 0;
61
+ this.finalized = false;
62
+ this._ondata = null;
63
+ this.name = name;
64
+ this.level = options?.level ?? 6;
65
+ }
66
+ /**
67
+ * Set data callback (called by StreamingZip)
68
+ */
69
+ set ondata(cb) {
70
+ this._ondata = cb;
71
+ }
72
+ /**
73
+ * Push data to the file
74
+ * @param data - Data chunk
75
+ * @param final - Whether this is the final chunk
76
+ */
77
+ push(data, final = false) {
78
+ if (this.finalized) {
79
+ throw new Error("Cannot push to finalized ZipDeflateFile");
80
+ }
81
+ if (data.length > 0) {
82
+ this.chunks.push(data);
83
+ this.totalSize += data.length;
84
+ }
85
+ if (final) {
86
+ this.finalized = true;
87
+ this._flush();
88
+ }
89
+ }
90
+ /**
91
+ * Flush collected data through compression and emit
92
+ */
93
+ _flush() {
94
+ if (!this._ondata) {
95
+ return;
96
+ }
97
+ // Combine chunks
98
+ let uncompressed;
99
+ if (this.chunks.length === 0) {
100
+ uncompressed = new Uint8Array(0);
101
+ }
102
+ else if (this.chunks.length === 1) {
103
+ uncompressed = this.chunks[0];
104
+ }
105
+ else {
106
+ uncompressed = new Uint8Array(this.totalSize);
107
+ let offset = 0;
108
+ for (const chunk of this.chunks) {
109
+ uncompressed.set(chunk, offset);
110
+ offset += chunk.length;
111
+ }
112
+ }
113
+ // Compress if level > 0 and data is not empty
114
+ const shouldCompress = this.level > 0 && uncompressed.length > 0;
115
+ const compressed = shouldCompress
116
+ ? (0, compress_1.compressSync)(uncompressed, { level: this.level })
117
+ : uncompressed;
118
+ // Build local file header + data
119
+ const nameBytes = encoder.encode(this.name);
120
+ const crcValue = (0, crc32_1.crc32)(uncompressed);
121
+ const [dosTime, dosDate] = dateToDos(new Date());
122
+ // Local file header (30 bytes + filename)
123
+ const header = new Uint8Array(30 + nameBytes.length);
124
+ const view = new DataView(header.buffer);
125
+ view.setUint32(0, LOCAL_FILE_HEADER_SIG, true);
126
+ view.setUint16(4, VERSION_NEEDED, true);
127
+ view.setUint16(6, 0x0800, true); // UTF-8 flag
128
+ view.setUint16(8, shouldCompress ? COMPRESSION_DEFLATE : COMPRESSION_STORE, true);
129
+ view.setUint16(10, dosTime, true);
130
+ view.setUint16(12, dosDate, true);
131
+ view.setUint32(14, crcValue, true);
132
+ view.setUint32(18, compressed.length, true);
133
+ view.setUint32(22, uncompressed.length, true);
134
+ view.setUint16(26, nameBytes.length, true);
135
+ view.setUint16(28, 0, true); // Extra field length
136
+ header.set(nameBytes, 30);
137
+ // Store info for central directory BEFORE emitting data
138
+ // (StreamingZip reads this in the final callback)
139
+ this._entryInfo = {
140
+ name: nameBytes,
141
+ crc: crcValue,
142
+ compressedSize: compressed.length,
143
+ uncompressedSize: uncompressed.length,
144
+ compressionMethod: shouldCompress ? COMPRESSION_DEFLATE : COMPRESSION_STORE,
145
+ dosTime,
146
+ dosDate,
147
+ offset: -1 // Will be set by StreamingZip
148
+ };
149
+ // Emit header
150
+ this._ondata(header, false);
151
+ // Emit compressed data (final chunk)
152
+ this._ondata(compressed, true);
153
+ // Clear chunks for GC
154
+ this.chunks.length = 0;
155
+ }
156
+ /**
157
+ * Get entry info (called by StreamingZip after finalization)
158
+ */
159
+ getEntryInfo() {
160
+ return this._entryInfo || null;
161
+ }
162
+ }
163
+ exports.ZipDeflateFile = ZipDeflateFile;
164
+ exports.ZipDeflate = ZipDeflateFile;
165
+ /**
166
+ * Streaming ZIP - fflate Zip-compatible API
167
+ * Creates ZIP files in a streaming manner
168
+ */
169
+ class StreamingZip {
170
+ /**
171
+ * Create a streaming ZIP
172
+ * @param callback - Called with (err, data, final) as data becomes available
173
+ */
174
+ constructor(callback) {
175
+ this.entries = [];
176
+ this.currentOffset = 0;
177
+ this.ended = false;
178
+ this.callback = callback;
179
+ }
180
+ /**
181
+ * Add a file to the ZIP
182
+ * @param file - ZipDeflateFile instance
183
+ */
184
+ add(file) {
185
+ if (this.ended) {
186
+ throw new Error("Cannot add files after calling end()");
187
+ }
188
+ // Capture offset when first data is written, not when add() is called
189
+ // This is important because streaming files may have data pushed later
190
+ let startOffset = -1;
191
+ file.ondata = (data, final) => {
192
+ // Capture offset on first data chunk
193
+ if (startOffset === -1) {
194
+ startOffset = this.currentOffset;
195
+ }
196
+ this.currentOffset += data.length;
197
+ this.callback(null, data, false);
198
+ if (final) {
199
+ // Get entry info and set offset
200
+ const entryInfo = file.getEntryInfo();
201
+ if (entryInfo) {
202
+ entryInfo.offset = startOffset;
203
+ this.entries.push(entryInfo);
204
+ }
205
+ }
206
+ };
207
+ }
208
+ /**
209
+ * Finalize the ZIP
210
+ * Writes central directory and end-of-central-directory record
211
+ */
212
+ end() {
213
+ if (this.ended) {
214
+ return;
215
+ }
216
+ this.ended = true;
217
+ const centralDirOffset = this.currentOffset;
218
+ const centralDirChunks = [];
219
+ // Build central directory headers
220
+ for (const entry of this.entries) {
221
+ const header = new Uint8Array(46 + entry.name.length);
222
+ const view = new DataView(header.buffer);
223
+ view.setUint32(0, CENTRAL_DIR_HEADER_SIG, true);
224
+ view.setUint16(4, VERSION_MADE_BY, true);
225
+ view.setUint16(6, VERSION_NEEDED, true);
226
+ view.setUint16(8, 0x0800, true); // UTF-8 flag
227
+ view.setUint16(10, entry.compressionMethod, true);
228
+ view.setUint16(12, entry.dosTime, true);
229
+ view.setUint16(14, entry.dosDate, true);
230
+ view.setUint32(16, entry.crc, true);
231
+ view.setUint32(20, entry.compressedSize, true);
232
+ view.setUint32(24, entry.uncompressedSize, true);
233
+ view.setUint16(28, entry.name.length, true);
234
+ view.setUint16(30, 0, true); // Extra field length
235
+ view.setUint16(32, 0, true); // Comment length
236
+ view.setUint16(34, 0, true); // Disk number start
237
+ view.setUint16(36, 0, true); // Internal file attributes
238
+ view.setUint32(38, 0, true); // External file attributes
239
+ view.setUint32(42, entry.offset, true);
240
+ header.set(entry.name, 46);
241
+ centralDirChunks.push(header);
242
+ }
243
+ // Emit central directory
244
+ for (const chunk of centralDirChunks) {
245
+ this.callback(null, chunk, false);
246
+ }
247
+ const centralDirSize = centralDirChunks.reduce((sum, c) => sum + c.length, 0);
248
+ // Build end of central directory
249
+ const eocd = new Uint8Array(22);
250
+ const eocdView = new DataView(eocd.buffer);
251
+ eocdView.setUint32(0, END_OF_CENTRAL_DIR_SIG, true);
252
+ eocdView.setUint16(4, 0, true); // Disk number
253
+ eocdView.setUint16(6, 0, true); // Disk with central dir
254
+ eocdView.setUint16(8, this.entries.length, true);
255
+ eocdView.setUint16(10, this.entries.length, true);
256
+ eocdView.setUint32(12, centralDirSize, true);
257
+ eocdView.setUint32(16, centralDirOffset, true);
258
+ eocdView.setUint16(20, 0, true); // Comment length
259
+ // Emit end of central directory (final chunk)
260
+ this.callback(null, eocd, true);
261
+ }
262
+ }
263
+ exports.StreamingZip = StreamingZip;
264
+ exports.Zip = StreamingZip;
@@ -26,8 +26,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
26
26
  exports.ZipBuilder = void 0;
27
27
  exports.createZip = createZip;
28
28
  exports.createZipSync = createZipSync;
29
- const crc32_js_1 = require("./crc32");
30
- const compress_js_1 = require("./compress");
29
+ const crc32_1 = require("./crc32");
30
+ const compress_1 = require("./compress");
31
31
  // ZIP signature constants
32
32
  const LOCAL_FILE_HEADER_SIG = 0x04034b50;
33
33
  const CENTRAL_DIR_HEADER_SIG = 0x02014b50;
@@ -156,12 +156,12 @@ async function createZip(entries, options = {}) {
156
156
  const [dosTime, dosDate] = dateToDos(modDate);
157
157
  // Compress data
158
158
  const isCompressed = level > 0 && entry.data.length > 0;
159
- const compressedData = isCompressed ? await (0, compress_js_1.compress)(entry.data, { level }) : entry.data;
159
+ const compressedData = isCompressed ? await (0, compress_1.compress)(entry.data, { level }) : entry.data;
160
160
  const processedEntry = {
161
161
  name: nameBytes,
162
162
  data: entry.data,
163
163
  compressedData,
164
- crc: (0, crc32_js_1.crc32)(entry.data),
164
+ crc: (0, crc32_1.crc32)(entry.data),
165
165
  compressionMethod: isCompressed ? COMPRESSION_DEFLATE : COMPRESSION_STORE,
166
166
  modTime: dosTime,
167
167
  modDate: dosDate,
@@ -221,12 +221,12 @@ function createZipSync(entries, options = {}) {
221
221
  const [dosTime, dosDate] = dateToDos(modDate);
222
222
  // Compress data
223
223
  const isCompressed = level > 0 && entry.data.length > 0;
224
- const compressedData = isCompressed ? (0, compress_js_1.compressSync)(entry.data, { level }) : entry.data;
224
+ const compressedData = isCompressed ? (0, compress_1.compressSync)(entry.data, { level }) : entry.data;
225
225
  const processedEntry = {
226
226
  name: nameBytes,
227
227
  data: entry.data,
228
228
  compressedData,
229
- crc: (0, crc32_js_1.crc32)(entry.data),
229
+ crc: (0, crc32_1.crc32)(entry.data),
230
230
  compressionMethod: isCompressed ? COMPRESSION_DEFLATE : COMPRESSION_STORE,
231
231
  modTime: dosTime,
232
232
  modDate: dosDate,
@@ -294,13 +294,13 @@ class ZipBuilder {
294
294
  // Compress data
295
295
  const isCompressed = this.level > 0 && entry.data.length > 0;
296
296
  const compressedData = isCompressed
297
- ? await (0, compress_js_1.compress)(entry.data, { level: this.level })
297
+ ? await (0, compress_1.compress)(entry.data, { level: this.level })
298
298
  : entry.data;
299
299
  const processedEntry = {
300
300
  name: nameBytes,
301
301
  data: entry.data,
302
302
  compressedData,
303
- crc: (0, crc32_js_1.crc32)(entry.data),
303
+ crc: (0, crc32_1.crc32)(entry.data),
304
304
  compressionMethod: isCompressed ? COMPRESSION_DEFLATE : COMPRESSION_STORE,
305
305
  modTime: dosTime,
306
306
  modDate: dosDate,
@@ -326,13 +326,13 @@ class ZipBuilder {
326
326
  // Compress data
327
327
  const isCompressed = this.level > 0 && entry.data.length > 0;
328
328
  const compressedData = isCompressed
329
- ? (0, compress_js_1.compressSync)(entry.data, { level: this.level })
329
+ ? (0, compress_1.compressSync)(entry.data, { level: this.level })
330
330
  : entry.data;
331
331
  const processedEntry = {
332
332
  name: nameBytes,
333
333
  data: entry.data,
334
334
  compressedData,
335
- crc: (0, crc32_js_1.crc32)(entry.data),
335
+ crc: (0, crc32_1.crc32)(entry.data),
336
336
  compressionMethod: isCompressed ? COMPRESSION_DEFLATE : COMPRESSION_STORE,
337
337
  modTime: dosTime,
338
338
  modDate: dosDate,
@@ -0,0 +1,135 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ZipWriter = void 0;
4
+ const zip_builder_1 = require("./zip/zip-builder");
5
+ const stream_buf_browser_1 = require("./stream-buf.browser");
6
+ // Helper function for base64 decoding in browser
7
+ function base64ToUint8Array(base64) {
8
+ const binaryString = atob(base64);
9
+ const bytes = new Uint8Array(binaryString.length);
10
+ for (let i = 0; i < binaryString.length; i++) {
11
+ bytes[i] = binaryString.charCodeAt(i);
12
+ }
13
+ return bytes;
14
+ }
15
+ // =============================================================================
16
+ // The ZipWriter class - Browser version without Node.js events dependency
17
+ // Packs streamed data into an output zip stream
18
+ class ZipWriter {
19
+ constructor(options) {
20
+ this.finalized = false;
21
+ this.pendingWrites = [];
22
+ this.events = new Map();
23
+ const level = options?.compression === "STORE"
24
+ ? 0
25
+ : Math.max(0, Math.min(9, options?.compressionOptions?.level ?? 1));
26
+ this.stream = new stream_buf_browser_1.StreamBuf();
27
+ this.zipBuilder = new zip_builder_1.ZipBuilder({ level });
28
+ }
29
+ // Event emitter methods
30
+ on(event, callback) {
31
+ const callbacks = this.events.get(event) || [];
32
+ callbacks.push(callback);
33
+ this.events.set(event, callbacks);
34
+ return this;
35
+ }
36
+ once(event, callback) {
37
+ const onceCallback = (...args) => {
38
+ this.off(event, onceCallback);
39
+ callback(...args);
40
+ };
41
+ return this.on(event, onceCallback);
42
+ }
43
+ off(event, callback) {
44
+ const callbacks = this.events.get(event) || [];
45
+ const index = callbacks.indexOf(callback);
46
+ if (index !== -1) {
47
+ callbacks.splice(index, 1);
48
+ }
49
+ return this;
50
+ }
51
+ emit(event, ...args) {
52
+ const callbacks = this.events.get(event) || [];
53
+ callbacks.forEach(cb => cb(...args));
54
+ return callbacks.length > 0;
55
+ }
56
+ removeListener(event, callback) {
57
+ return this.off(event, callback);
58
+ }
59
+ append(data, options) {
60
+ let buffer;
61
+ if (Object.prototype.hasOwnProperty.call(options, "base64") && options.base64) {
62
+ const base64Data = typeof data === "string" ? data : String(data);
63
+ buffer = base64ToUint8Array(base64Data);
64
+ }
65
+ else if (typeof data === "string") {
66
+ buffer = new TextEncoder().encode(data);
67
+ }
68
+ else if (data instanceof Uint8Array) {
69
+ buffer = data;
70
+ }
71
+ else if (ArrayBuffer.isView(data)) {
72
+ buffer = new Uint8Array(data.buffer, data.byteOffset, data.byteLength);
73
+ }
74
+ else if (data instanceof ArrayBuffer) {
75
+ buffer = new Uint8Array(data);
76
+ }
77
+ else {
78
+ buffer = data;
79
+ }
80
+ const writePromise = this.zipBuilder
81
+ .addFile({ name: options.name, data: buffer })
82
+ .then(chunks => {
83
+ for (const chunk of chunks) {
84
+ this.stream.write(new Uint8Array(chunk));
85
+ }
86
+ });
87
+ this.pendingWrites.push(writePromise);
88
+ }
89
+ push(chunk) {
90
+ return this.stream.push(chunk);
91
+ }
92
+ async finalize() {
93
+ if (this.finalized) {
94
+ return;
95
+ }
96
+ this.finalized = true;
97
+ await Promise.all(this.pendingWrites);
98
+ const finalChunks = this.zipBuilder.finalize();
99
+ for (const chunk of finalChunks) {
100
+ this.stream.write(new Uint8Array(chunk));
101
+ }
102
+ this.stream.end();
103
+ this.emit("finish");
104
+ }
105
+ // ==========================================================================
106
+ // Stream.Readable interface
107
+ read(size) {
108
+ return this.stream.read(size);
109
+ }
110
+ setEncoding(encoding) {
111
+ return this.stream.setEncoding(encoding);
112
+ }
113
+ pause() {
114
+ return this.stream.pause();
115
+ }
116
+ resume() {
117
+ return this.stream.resume();
118
+ }
119
+ isPaused() {
120
+ return this.stream.isPaused();
121
+ }
122
+ pipe(destination) {
123
+ return this.stream.pipe(destination);
124
+ }
125
+ unpipe(destination) {
126
+ return this.stream.unpipe(destination);
127
+ }
128
+ unshift() {
129
+ return this.stream.unshift();
130
+ }
131
+ wrap() {
132
+ return this.stream.wrap();
133
+ }
134
+ }
135
+ exports.ZipWriter = ZipWriter;
@@ -5,8 +5,8 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.ZipWriter = void 0;
7
7
  const events_1 = __importDefault(require("events"));
8
- const index_js_1 = require("./zip/index");
9
- const stream_buf_js_1 = require("./stream-buf");
8
+ const index_1 = require("./zip/index");
9
+ const stream_buf_1 = require("./stream-buf");
10
10
  // =============================================================================
11
11
  // The ZipWriter class
12
12
  // Packs streamed data into an output zip stream
@@ -22,8 +22,8 @@ class ZipWriter extends events_1.default.EventEmitter {
22
22
  const level = options?.compression === "STORE"
23
23
  ? 0
24
24
  : Math.max(0, Math.min(9, options?.compressionOptions?.level ?? 1));
25
- this.stream = new stream_buf_js_1.StreamBuf();
26
- this.zipBuilder = new index_js_1.ZipBuilder({ level });
25
+ this.stream = new stream_buf_1.StreamBuf();
26
+ this.zipBuilder = new index_1.ZipBuilder({ level });
27
27
  }
28
28
  append(data, options) {
29
29
  let buffer;
@@ -1,8 +1,8 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.BaseXform = void 0;
4
- const parse_sax_js_1 = require("../../utils/parse-sax");
5
- const xml_stream_js_1 = require("../../utils/xml-stream");
4
+ const parse_sax_1 = require("../../utils/parse-sax");
5
+ const xml_stream_1 = require("../../utils/xml-stream");
6
6
  // Base class for Xforms
7
7
  class BaseXform {
8
8
  // ============================================================
@@ -65,7 +65,7 @@ class BaseXform {
65
65
  return this.model;
66
66
  }
67
67
  async parseStream(stream) {
68
- return this.parse((0, parse_sax_js_1.parseSax)(stream));
68
+ return this.parse((0, parse_sax_1.parseSax)(stream));
69
69
  }
70
70
  get xml() {
71
71
  // convenience function to get the xml of this.model
@@ -73,7 +73,7 @@ class BaseXform {
73
73
  return this.toXml(this.model);
74
74
  }
75
75
  toXml(model) {
76
- const xmlStream = new xml_stream_js_1.XmlStream();
76
+ const xmlStream = new xml_stream_1.XmlStream();
77
77
  this.render(xmlStream, model);
78
78
  return xmlStream.xml;
79
79
  }
@@ -1,9 +1,9 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.DefinedNamesXform = void 0;
4
- const base_xform_js_1 = require("../base-xform");
5
- const col_cache_js_1 = require("../../../utils/col-cache");
6
- class DefinedNamesXform extends base_xform_js_1.BaseXform {
4
+ const base_xform_1 = require("../base-xform");
5
+ const col_cache_1 = require("../../../utils/col-cache");
6
+ class DefinedNamesXform extends base_xform_1.BaseXform {
7
7
  constructor() {
8
8
  super();
9
9
  this._parsedText = [];
@@ -69,7 +69,7 @@ function isValidRange(range) {
69
69
  return false;
70
70
  }
71
71
  try {
72
- const decoded = col_cache_js_1.colCache.decodeEx(range);
72
+ const decoded = col_cache_1.colCache.decodeEx(range);
73
73
  // For cell ranges: row/col or top/bottom/left/right should be valid numbers
74
74
  // For row ranges ($1:$2): top/bottom are numbers, left/right are null
75
75
  // For column ranges ($A:$B): left/right are numbers, top/bottom are null
@@ -1,9 +1,9 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.WorksheetXform = void 0;
4
- const utils_js_1 = require("../../../utils/utils");
5
- const base_xform_js_1 = require("../base-xform");
6
- class WorksheetXform extends base_xform_js_1.BaseXform {
4
+ const utils_1 = require("../../../utils/utils");
5
+ const base_xform_1 = require("../base-xform");
6
+ class WorksheetXform extends base_xform_1.BaseXform {
7
7
  render(xmlStream, model) {
8
8
  xmlStream.leafNode("sheet", {
9
9
  sheetId: model.id,
@@ -15,7 +15,7 @@ class WorksheetXform extends base_xform_js_1.BaseXform {
15
15
  parseOpen(node) {
16
16
  if (node.name === "sheet") {
17
17
  this.model = {
18
- name: (0, utils_js_1.xmlDecode)(node.attributes.name),
18
+ name: (0, utils_1.xmlDecode)(node.attributes.name),
19
19
  id: parseInt(node.attributes.sheetId, 10),
20
20
  state: node.attributes.state,
21
21
  rId: node.attributes["r:id"]
@@ -1,8 +1,8 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.WorkbookCalcPropertiesXform = void 0;
4
- const base_xform_js_1 = require("../base-xform");
5
- class WorkbookCalcPropertiesXform extends base_xform_js_1.BaseXform {
4
+ const base_xform_1 = require("../base-xform");
5
+ class WorkbookCalcPropertiesXform extends base_xform_1.BaseXform {
6
6
  render(xmlStream, model) {
7
7
  xmlStream.leafNode("calcPr", {
8
8
  calcId: 171027,
@@ -1,8 +1,8 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.WorkbookPivotCacheXform = void 0;
4
- const base_xform_js_1 = require("../base-xform");
5
- class WorkbookPivotCacheXform extends base_xform_js_1.BaseXform {
4
+ const base_xform_1 = require("../base-xform");
5
+ class WorkbookPivotCacheXform extends base_xform_1.BaseXform {
6
6
  render(xmlStream, model) {
7
7
  xmlStream.leafNode("pivotCache", {
8
8
  cacheId: model.cacheId,
@@ -1,8 +1,8 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.WorkbookPropertiesXform = void 0;
4
- const base_xform_js_1 = require("../base-xform");
5
- class WorkbookPropertiesXform extends base_xform_js_1.BaseXform {
4
+ const base_xform_1 = require("../base-xform");
5
+ class WorkbookPropertiesXform extends base_xform_1.BaseXform {
6
6
  render(xmlStream, model) {
7
7
  xmlStream.leafNode("workbookPr", {
8
8
  date1904: model.date1904 ? 1 : undefined,
@@ -1,8 +1,8 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.WorkbookViewXform = void 0;
4
- const base_xform_js_1 = require("../base-xform");
5
- class WorkbookViewXform extends base_xform_js_1.BaseXform {
4
+ const base_xform_1 = require("../base-xform");
5
+ class WorkbookViewXform extends base_xform_1.BaseXform {
6
6
  render(xmlStream, model) {
7
7
  const attributes = {
8
8
  xWindow: model.x || 0,