@cj-tech-master/excelts 1.6.2 → 1.6.3-canary.20251224124621.73c5d94

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 (382) hide show
  1. package/README.md +36 -4
  2. package/README_zh.md +37 -6
  3. package/dist/browser/excelts.esm.js +19115 -0
  4. package/dist/browser/excelts.esm.js.map +1 -0
  5. package/dist/browser/excelts.esm.min.js +127 -0
  6. package/dist/browser/excelts.iife.js +13576 -46968
  7. package/dist/browser/excelts.iife.js.map +1 -1
  8. package/dist/browser/excelts.iife.min.js +25 -105
  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 +154 -0
  12. package/dist/cjs/csv/csv.browser.js +68 -0
  13. package/dist/cjs/csv/csv.js +226 -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 +7 -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 +41 -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 +29 -26
  35. package/dist/cjs/stream/xlsx/workbook-writer.js +71 -57
  36. package/dist/cjs/stream/xlsx/worksheet-reader.js +27 -23
  37. package/dist/cjs/stream/xlsx/worksheet-writer.js +72 -66
  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/encryptor.browser.js +240 -0
  42. package/dist/cjs/utils/parse-sax.js +2 -2
  43. package/dist/cjs/utils/shared-formula.js +5 -5
  44. package/dist/cjs/utils/sheet-utils.js +13 -13
  45. package/dist/cjs/utils/stream-buf.browser.js +355 -0
  46. package/dist/cjs/utils/stream-buf.js +5 -5
  47. package/dist/cjs/utils/unzip/extract.js +11 -11
  48. package/dist/cjs/utils/unzip/index.js +21 -21
  49. package/dist/cjs/utils/unzip/parse-extra-field.js +3 -3
  50. package/dist/cjs/utils/unzip/parse.js +16 -16
  51. package/dist/cjs/utils/unzip/zip-parser.js +3 -3
  52. package/dist/cjs/utils/utils.base.js +161 -0
  53. package/dist/cjs/utils/utils.browser.js +89 -0
  54. package/dist/cjs/utils/utils.js +46 -154
  55. package/dist/cjs/utils/xml-stream.js +3 -3
  56. package/dist/cjs/utils/zip/compress.base.js +85 -0
  57. package/dist/cjs/utils/zip/compress.browser.js +83 -0
  58. package/dist/cjs/utils/zip/compress.js +18 -198
  59. package/dist/cjs/utils/zip/crc32.browser.js +88 -0
  60. package/dist/cjs/utils/zip/index.js +17 -17
  61. package/dist/cjs/utils/zip/zip-builder.js +10 -10
  62. package/dist/cjs/utils/zip-stream.browser.js +135 -0
  63. package/dist/cjs/utils/zip-stream.js +4 -4
  64. package/dist/cjs/xlsx/xform/base-xform.js +4 -4
  65. package/dist/cjs/xlsx/xform/book/defined-name-xform.js +4 -4
  66. package/dist/cjs/xlsx/xform/book/sheet-xform.js +4 -4
  67. package/dist/cjs/xlsx/xform/book/workbook-calc-properties-xform.js +2 -2
  68. package/dist/cjs/xlsx/xform/book/workbook-pivot-cache-xform.js +2 -2
  69. package/dist/cjs/xlsx/xform/book/workbook-properties-xform.js +2 -2
  70. package/dist/cjs/xlsx/xform/book/workbook-view-xform.js +2 -2
  71. package/dist/cjs/xlsx/xform/book/workbook-xform.js +24 -24
  72. package/dist/cjs/xlsx/xform/comment/comment-xform.js +4 -4
  73. package/dist/cjs/xlsx/xform/comment/comments-xform.js +6 -6
  74. package/dist/cjs/xlsx/xform/comment/style/vml-position-xform.js +2 -2
  75. package/dist/cjs/xlsx/xform/comment/style/vml-protection-xform.js +2 -2
  76. package/dist/cjs/xlsx/xform/comment/vml-anchor-xform.js +2 -2
  77. package/dist/cjs/xlsx/xform/comment/vml-client-data-xform.js +10 -10
  78. package/dist/cjs/xlsx/xform/comment/vml-notes-xform.js +6 -6
  79. package/dist/cjs/xlsx/xform/comment/vml-shape-xform.js +6 -6
  80. package/dist/cjs/xlsx/xform/comment/vml-textbox-xform.js +2 -2
  81. package/dist/cjs/xlsx/xform/composite-xform.js +2 -2
  82. package/dist/cjs/xlsx/xform/core/app-heading-pairs-xform.js +2 -2
  83. package/dist/cjs/xlsx/xform/core/app-titles-of-parts-xform.js +2 -2
  84. package/dist/cjs/xlsx/xform/core/app-xform.js +11 -11
  85. package/dist/cjs/xlsx/xform/core/content-types-xform.js +4 -4
  86. package/dist/cjs/xlsx/xform/core/core-xform.js +23 -23
  87. package/dist/cjs/xlsx/xform/core/relationship-xform.js +2 -2
  88. package/dist/cjs/xlsx/xform/core/relationships-xform.js +6 -6
  89. package/dist/cjs/xlsx/xform/drawing/base-cell-anchor-xform.js +2 -2
  90. package/dist/cjs/xlsx/xform/drawing/blip-fill-xform.js +4 -4
  91. package/dist/cjs/xlsx/xform/drawing/blip-xform.js +2 -2
  92. package/dist/cjs/xlsx/xform/drawing/c-nv-pic-pr-xform.js +2 -2
  93. package/dist/cjs/xlsx/xform/drawing/c-nv-pr-xform.js +6 -6
  94. package/dist/cjs/xlsx/xform/drawing/cell-position-xform.js +7 -7
  95. package/dist/cjs/xlsx/xform/drawing/drawing-xform.js +10 -10
  96. package/dist/cjs/xlsx/xform/drawing/ext-lst-xform.js +2 -2
  97. package/dist/cjs/xlsx/xform/drawing/ext-xform.js +2 -2
  98. package/dist/cjs/xlsx/xform/drawing/hlink-click-xform.js +2 -2
  99. package/dist/cjs/xlsx/xform/drawing/nv-pic-pr-xform.js +6 -6
  100. package/dist/cjs/xlsx/xform/drawing/one-cell-anchor-xform.js +10 -10
  101. package/dist/cjs/xlsx/xform/drawing/pic-xform.js +9 -9
  102. package/dist/cjs/xlsx/xform/drawing/two-cell-anchor-xform.js +9 -9
  103. package/dist/cjs/xlsx/xform/list-xform.js +2 -2
  104. package/dist/cjs/xlsx/xform/pivot-table/cache-field-xform.js +5 -5
  105. package/dist/cjs/xlsx/xform/pivot-table/cache-field.js +3 -3
  106. package/dist/cjs/xlsx/xform/pivot-table/pivot-cache-definition-xform.js +10 -10
  107. package/dist/cjs/xlsx/xform/pivot-table/pivot-cache-records-xform.js +9 -9
  108. package/dist/cjs/xlsx/xform/pivot-table/pivot-table-xform.js +10 -11
  109. package/dist/cjs/xlsx/xform/sheet/auto-filter-xform.js +4 -4
  110. package/dist/cjs/xlsx/xform/sheet/cell-xform.js +65 -65
  111. package/dist/cjs/xlsx/xform/sheet/cf/cf-rule-xform.js +27 -27
  112. package/dist/cjs/xlsx/xform/sheet/cf/cfvo-xform.js +3 -3
  113. package/dist/cjs/xlsx/xform/sheet/cf/color-scale-xform.js +6 -6
  114. package/dist/cjs/xlsx/xform/sheet/cf/conditional-formatting-xform.js +6 -6
  115. package/dist/cjs/xlsx/xform/sheet/cf/conditional-formattings-xform.js +4 -4
  116. package/dist/cjs/xlsx/xform/sheet/cf/databar-xform.js +6 -6
  117. package/dist/cjs/xlsx/xform/sheet/cf/ext-lst-ref-xform.js +5 -5
  118. package/dist/cjs/xlsx/xform/sheet/cf/formula-xform.js +2 -2
  119. package/dist/cjs/xlsx/xform/sheet/cf/icon-set-xform.js +11 -11
  120. package/dist/cjs/xlsx/xform/sheet/cf-ext/cf-icon-ext-xform.js +3 -3
  121. package/dist/cjs/xlsx/xform/sheet/cf-ext/cf-rule-ext-xform.js +11 -12
  122. package/dist/cjs/xlsx/xform/sheet/cf-ext/cfvo-ext-xform.js +4 -4
  123. package/dist/cjs/xlsx/xform/sheet/cf-ext/conditional-formatting-ext-xform.js +8 -8
  124. package/dist/cjs/xlsx/xform/sheet/cf-ext/conditional-formattings-ext-xform.js +6 -6
  125. package/dist/cjs/xlsx/xform/sheet/cf-ext/databar-ext-xform.js +26 -26
  126. package/dist/cjs/xlsx/xform/sheet/cf-ext/f-ext-xform.js +2 -2
  127. package/dist/cjs/xlsx/xform/sheet/cf-ext/icon-set-ext-xform.js +14 -14
  128. package/dist/cjs/xlsx/xform/sheet/cf-ext/sqref-ext-xform.js +2 -2
  129. package/dist/cjs/xlsx/xform/sheet/col-xform.js +6 -6
  130. package/dist/cjs/xlsx/xform/sheet/data-validations-xform.js +18 -18
  131. package/dist/cjs/xlsx/xform/sheet/dimension-xform.js +2 -2
  132. package/dist/cjs/xlsx/xform/sheet/drawing-xform.js +2 -2
  133. package/dist/cjs/xlsx/xform/sheet/ext-lst-xform.js +5 -5
  134. package/dist/cjs/xlsx/xform/sheet/header-footer-xform.js +2 -2
  135. package/dist/cjs/xlsx/xform/sheet/hyperlink-xform.js +2 -2
  136. package/dist/cjs/xlsx/xform/sheet/merge-cell-xform.js +2 -2
  137. package/dist/cjs/xlsx/xform/sheet/merges.js +8 -8
  138. package/dist/cjs/xlsx/xform/sheet/outline-properties-xform.js +2 -2
  139. package/dist/cjs/xlsx/xform/sheet/page-breaks-xform.js +2 -2
  140. package/dist/cjs/xlsx/xform/sheet/page-margins-xform.js +2 -2
  141. package/dist/cjs/xlsx/xform/sheet/page-setup-properties-xform.js +2 -2
  142. package/dist/cjs/xlsx/xform/sheet/page-setup-xform.js +2 -2
  143. package/dist/cjs/xlsx/xform/sheet/picture-xform.js +2 -2
  144. package/dist/cjs/xlsx/xform/sheet/print-options-xform.js +2 -2
  145. package/dist/cjs/xlsx/xform/sheet/row-breaks-xform.js +4 -4
  146. package/dist/cjs/xlsx/xform/sheet/row-xform.js +11 -11
  147. package/dist/cjs/xlsx/xform/sheet/sheet-format-properties-xform.js +2 -2
  148. package/dist/cjs/xlsx/xform/sheet/sheet-properties-xform.js +8 -8
  149. package/dist/cjs/xlsx/xform/sheet/sheet-protection-xform.js +2 -2
  150. package/dist/cjs/xlsx/xform/sheet/sheet-view-xform.js +4 -4
  151. package/dist/cjs/xlsx/xform/sheet/table-part-xform.js +2 -2
  152. package/dist/cjs/xlsx/xform/sheet/worksheet-xform.js +68 -68
  153. package/dist/cjs/xlsx/xform/simple/boolean-xform.js +2 -2
  154. package/dist/cjs/xlsx/xform/simple/date-xform.js +2 -2
  155. package/dist/cjs/xlsx/xform/simple/float-xform.js +2 -2
  156. package/dist/cjs/xlsx/xform/simple/integer-xform.js +2 -2
  157. package/dist/cjs/xlsx/xform/simple/string-xform.js +2 -2
  158. package/dist/cjs/xlsx/xform/static-xform.js +4 -4
  159. package/dist/cjs/xlsx/xform/strings/phonetic-text-xform.js +6 -6
  160. package/dist/cjs/xlsx/xform/strings/rich-text-xform.js +6 -6
  161. package/dist/cjs/xlsx/xform/strings/shared-string-xform.js +8 -8
  162. package/dist/cjs/xlsx/xform/strings/shared-strings-xform.js +6 -6
  163. package/dist/cjs/xlsx/xform/strings/text-xform.js +2 -2
  164. package/dist/cjs/xlsx/xform/style/alignment-xform.js +8 -8
  165. package/dist/cjs/xlsx/xform/style/border-xform.js +8 -8
  166. package/dist/cjs/xlsx/xform/style/color-xform.js +2 -2
  167. package/dist/cjs/xlsx/xform/style/dxf-xform.js +14 -14
  168. package/dist/cjs/xlsx/xform/style/fill-xform.js +9 -9
  169. package/dist/cjs/xlsx/xform/style/font-xform.js +22 -22
  170. package/dist/cjs/xlsx/xform/style/numfmt-xform.js +5 -5
  171. package/dist/cjs/xlsx/xform/style/protection-xform.js +2 -2
  172. package/dist/cjs/xlsx/xform/style/style-xform.js +6 -6
  173. package/dist/cjs/xlsx/xform/style/styles-xform.js +39 -39
  174. package/dist/cjs/xlsx/xform/style/underline-xform.js +2 -2
  175. package/dist/cjs/xlsx/xform/table/auto-filter-xform.js +4 -4
  176. package/dist/cjs/xlsx/xform/table/custom-filter-xform.js +2 -2
  177. package/dist/cjs/xlsx/xform/table/filter-column-xform.js +9 -9
  178. package/dist/cjs/xlsx/xform/table/filter-xform.js +2 -2
  179. package/dist/cjs/xlsx/xform/table/table-column-xform.js +2 -2
  180. package/dist/cjs/xlsx/xform/table/table-style-info-xform.js +2 -2
  181. package/dist/cjs/xlsx/xform/table/table-xform.js +12 -12
  182. package/dist/cjs/xlsx/xlsx.base.js +742 -0
  183. package/dist/cjs/xlsx/xlsx.browser.js +205 -0
  184. package/dist/cjs/xlsx/xlsx.js +91 -833
  185. package/dist/esm/csv/csv-core.js +694 -0
  186. package/dist/esm/csv/csv-stream.js +638 -0
  187. package/dist/esm/csv/csv.base.js +141 -0
  188. package/dist/esm/csv/csv.browser.js +65 -0
  189. package/dist/esm/csv/csv.js +189 -159
  190. package/dist/esm/doc/workbook.base.js +207 -0
  191. package/dist/esm/doc/workbook.browser.js +59 -0
  192. package/dist/esm/doc/workbook.js +64 -175
  193. package/dist/esm/index.browser.js +33 -1
  194. package/dist/esm/index.js +23 -8
  195. package/dist/esm/local.js +0 -1
  196. package/dist/esm/stream/xlsx/hyperlink-reader.js +1 -1
  197. package/dist/esm/stream/xlsx/workbook-reader.js +7 -4
  198. package/dist/esm/stream/xlsx/workbook-writer.js +37 -23
  199. package/dist/esm/stream/xlsx/worksheet-reader.js +12 -8
  200. package/dist/esm/stream/xlsx/worksheet-writer.js +12 -6
  201. package/dist/esm/utils/browser-buffer.js +67 -0
  202. package/dist/esm/utils/encryptor.browser.js +237 -0
  203. package/dist/esm/utils/stream-buf.browser.js +352 -0
  204. package/dist/esm/utils/utils.base.js +142 -0
  205. package/dist/esm/utils/utils.browser.js +68 -0
  206. package/dist/esm/utils/utils.js +15 -123
  207. package/dist/esm/utils/zip/compress.base.js +80 -0
  208. package/dist/esm/utils/zip/compress.browser.js +76 -0
  209. package/dist/esm/utils/zip/compress.js +16 -164
  210. package/dist/esm/utils/zip/crc32.browser.js +82 -0
  211. package/dist/esm/utils/zip-stream.browser.js +132 -0
  212. package/dist/esm/xlsx/xform/pivot-table/pivot-table-xform.js +2 -3
  213. package/dist/esm/xlsx/xform/sheet/cf-ext/cf-rule-ext-xform.js +2 -3
  214. package/dist/esm/xlsx/xlsx.base.js +739 -0
  215. package/dist/esm/xlsx/xlsx.browser.js +202 -0
  216. package/dist/esm/xlsx/xlsx.js +87 -829
  217. package/dist/types/csv/csv-core.d.ts +207 -0
  218. package/dist/types/csv/csv-stream.d.ts +114 -0
  219. package/dist/types/csv/csv.base.d.ts +61 -0
  220. package/dist/types/csv/csv.browser.d.ts +33 -0
  221. package/dist/types/csv/csv.d.ts +97 -71
  222. package/dist/types/doc/anchor.d.ts +1 -1
  223. package/dist/types/doc/cell.d.ts +7 -7
  224. package/dist/types/doc/column.d.ts +3 -3
  225. package/dist/types/doc/defined-names.d.ts +4 -4
  226. package/dist/types/doc/image.d.ts +2 -2
  227. package/dist/types/doc/modelcontainer.d.ts +1 -1
  228. package/dist/types/doc/pivot-table.d.ts +1 -1
  229. package/dist/types/doc/range.d.ts +1 -1
  230. package/dist/types/doc/row.d.ts +3 -3
  231. package/dist/types/doc/table.d.ts +4 -4
  232. package/dist/types/doc/workbook.base.d.ts +111 -0
  233. package/dist/types/doc/workbook.browser.d.ts +38 -0
  234. package/dist/types/doc/workbook.d.ts +62 -92
  235. package/dist/types/doc/worksheet.d.ts +10 -10
  236. package/dist/types/index.browser.d.ts +19 -5
  237. package/dist/types/index.d.ts +24 -20
  238. package/dist/types/local.d.ts +0 -1
  239. package/dist/types/stream/xlsx/hyperlink-reader.d.ts +11 -11
  240. package/dist/types/stream/xlsx/workbook-reader.d.ts +125 -36
  241. package/dist/types/stream/xlsx/workbook-writer.d.ts +105 -22
  242. package/dist/types/stream/xlsx/worksheet-reader.d.ts +40 -22
  243. package/dist/types/stream/xlsx/worksheet-writer.d.ts +83 -49
  244. package/dist/types/types.d.ts +4 -16
  245. package/dist/types/utils/browser-buffer.d.ts +28 -0
  246. package/dist/types/utils/col-cache.d.ts +1 -1
  247. package/dist/types/utils/encryptor.browser.d.ts +28 -0
  248. package/dist/types/utils/sheet-utils.d.ts +3 -3
  249. package/dist/types/utils/stream-buf.browser.d.ts +41 -0
  250. package/dist/types/utils/unzip/extract.d.ts +6 -6
  251. package/dist/types/utils/unzip/index.d.ts +8 -8
  252. package/dist/types/utils/unzip/parse.d.ts +3 -3
  253. package/dist/types/utils/utils.base.d.ts +29 -0
  254. package/dist/types/utils/utils.browser.d.ts +29 -0
  255. package/dist/types/utils/utils.d.ts +6 -25
  256. package/dist/types/utils/zip/compress.base.d.ts +42 -0
  257. package/dist/types/utils/zip/compress.browser.d.ts +54 -0
  258. package/dist/types/utils/zip/compress.d.ts +13 -45
  259. package/dist/types/utils/zip/crc32.browser.d.ts +52 -0
  260. package/dist/types/utils/zip/index.d.ts +5 -5
  261. package/dist/types/utils/zip/zip-builder.d.ts +1 -1
  262. package/dist/types/utils/zip-stream.browser.d.ts +39 -0
  263. package/dist/types/xlsx/xform/base-xform.d.ts +1 -1
  264. package/dist/types/xlsx/xform/book/defined-name-xform.d.ts +1 -1
  265. package/dist/types/xlsx/xform/book/sheet-xform.d.ts +1 -1
  266. package/dist/types/xlsx/xform/book/workbook-calc-properties-xform.d.ts +1 -1
  267. package/dist/types/xlsx/xform/book/workbook-pivot-cache-xform.d.ts +1 -1
  268. package/dist/types/xlsx/xform/book/workbook-properties-xform.d.ts +1 -1
  269. package/dist/types/xlsx/xform/book/workbook-view-xform.d.ts +1 -1
  270. package/dist/types/xlsx/xform/book/workbook-xform.d.ts +2 -2
  271. package/dist/types/xlsx/xform/comment/comment-xform.d.ts +2 -2
  272. package/dist/types/xlsx/xform/comment/comments-xform.d.ts +2 -2
  273. package/dist/types/xlsx/xform/comment/style/vml-position-xform.d.ts +1 -1
  274. package/dist/types/xlsx/xform/comment/style/vml-protection-xform.d.ts +1 -1
  275. package/dist/types/xlsx/xform/comment/vml-anchor-xform.d.ts +1 -1
  276. package/dist/types/xlsx/xform/comment/vml-client-data-xform.d.ts +1 -1
  277. package/dist/types/xlsx/xform/comment/vml-notes-xform.d.ts +1 -1
  278. package/dist/types/xlsx/xform/comment/vml-shape-xform.d.ts +1 -1
  279. package/dist/types/xlsx/xform/comment/vml-textbox-xform.d.ts +1 -1
  280. package/dist/types/xlsx/xform/composite-xform.d.ts +1 -1
  281. package/dist/types/xlsx/xform/core/app-heading-pairs-xform.d.ts +1 -1
  282. package/dist/types/xlsx/xform/core/app-titles-of-parts-xform.d.ts +1 -1
  283. package/dist/types/xlsx/xform/core/app-xform.d.ts +1 -1
  284. package/dist/types/xlsx/xform/core/content-types-xform.d.ts +1 -1
  285. package/dist/types/xlsx/xform/core/core-xform.d.ts +1 -1
  286. package/dist/types/xlsx/xform/core/relationship-xform.d.ts +1 -1
  287. package/dist/types/xlsx/xform/core/relationships-xform.d.ts +1 -1
  288. package/dist/types/xlsx/xform/drawing/base-cell-anchor-xform.d.ts +1 -1
  289. package/dist/types/xlsx/xform/drawing/blip-fill-xform.d.ts +2 -2
  290. package/dist/types/xlsx/xform/drawing/blip-xform.d.ts +1 -1
  291. package/dist/types/xlsx/xform/drawing/c-nv-pic-pr-xform.d.ts +1 -1
  292. package/dist/types/xlsx/xform/drawing/c-nv-pr-xform.d.ts +1 -1
  293. package/dist/types/xlsx/xform/drawing/cell-position-xform.d.ts +2 -2
  294. package/dist/types/xlsx/xform/drawing/drawing-xform.d.ts +1 -1
  295. package/dist/types/xlsx/xform/drawing/ext-lst-xform.d.ts +1 -1
  296. package/dist/types/xlsx/xform/drawing/ext-xform.d.ts +1 -1
  297. package/dist/types/xlsx/xform/drawing/hlink-click-xform.d.ts +1 -1
  298. package/dist/types/xlsx/xform/drawing/nv-pic-pr-xform.d.ts +1 -1
  299. package/dist/types/xlsx/xform/drawing/one-cell-anchor-xform.d.ts +1 -1
  300. package/dist/types/xlsx/xform/drawing/pic-xform.d.ts +1 -1
  301. package/dist/types/xlsx/xform/drawing/two-cell-anchor-xform.d.ts +1 -1
  302. package/dist/types/xlsx/xform/list-xform.d.ts +1 -1
  303. package/dist/types/xlsx/xform/pivot-table/cache-field-xform.d.ts +1 -1
  304. package/dist/types/xlsx/xform/pivot-table/pivot-cache-definition-xform.d.ts +3 -3
  305. package/dist/types/xlsx/xform/pivot-table/pivot-cache-records-xform.d.ts +2 -2
  306. package/dist/types/xlsx/xform/pivot-table/pivot-table-xform.d.ts +1 -1
  307. package/dist/types/xlsx/xform/sheet/auto-filter-xform.d.ts +1 -1
  308. package/dist/types/xlsx/xform/sheet/cell-xform.d.ts +1 -1
  309. package/dist/types/xlsx/xform/sheet/cf/cf-rule-xform.d.ts +6 -6
  310. package/dist/types/xlsx/xform/sheet/cf/cfvo-xform.d.ts +1 -1
  311. package/dist/types/xlsx/xform/sheet/cf/color-scale-xform.d.ts +3 -3
  312. package/dist/types/xlsx/xform/sheet/cf/conditional-formatting-xform.d.ts +1 -1
  313. package/dist/types/xlsx/xform/sheet/cf/conditional-formattings-xform.d.ts +2 -2
  314. package/dist/types/xlsx/xform/sheet/cf/databar-xform.d.ts +3 -3
  315. package/dist/types/xlsx/xform/sheet/cf/ext-lst-ref-xform.d.ts +1 -1
  316. package/dist/types/xlsx/xform/sheet/cf/formula-xform.d.ts +1 -1
  317. package/dist/types/xlsx/xform/sheet/cf/icon-set-xform.d.ts +2 -2
  318. package/dist/types/xlsx/xform/sheet/cf-ext/cf-icon-ext-xform.d.ts +1 -1
  319. package/dist/types/xlsx/xform/sheet/cf-ext/cf-rule-ext-xform.d.ts +3 -3
  320. package/dist/types/xlsx/xform/sheet/cf-ext/cfvo-ext-xform.d.ts +2 -2
  321. package/dist/types/xlsx/xform/sheet/cf-ext/conditional-formatting-ext-xform.d.ts +3 -3
  322. package/dist/types/xlsx/xform/sheet/cf-ext/conditional-formattings-ext-xform.d.ts +2 -2
  323. package/dist/types/xlsx/xform/sheet/cf-ext/databar-ext-xform.d.ts +3 -3
  324. package/dist/types/xlsx/xform/sheet/cf-ext/f-ext-xform.d.ts +1 -1
  325. package/dist/types/xlsx/xform/sheet/cf-ext/icon-set-ext-xform.d.ts +3 -3
  326. package/dist/types/xlsx/xform/sheet/cf-ext/sqref-ext-xform.d.ts +1 -1
  327. package/dist/types/xlsx/xform/sheet/col-xform.d.ts +1 -1
  328. package/dist/types/xlsx/xform/sheet/data-validations-xform.d.ts +1 -1
  329. package/dist/types/xlsx/xform/sheet/dimension-xform.d.ts +1 -1
  330. package/dist/types/xlsx/xform/sheet/drawing-xform.d.ts +1 -1
  331. package/dist/types/xlsx/xform/sheet/ext-lst-xform.d.ts +1 -1
  332. package/dist/types/xlsx/xform/sheet/header-footer-xform.d.ts +1 -1
  333. package/dist/types/xlsx/xform/sheet/hyperlink-xform.d.ts +1 -1
  334. package/dist/types/xlsx/xform/sheet/merge-cell-xform.d.ts +1 -1
  335. package/dist/types/xlsx/xform/sheet/outline-properties-xform.d.ts +1 -1
  336. package/dist/types/xlsx/xform/sheet/page-breaks-xform.d.ts +1 -1
  337. package/dist/types/xlsx/xform/sheet/page-margins-xform.d.ts +1 -1
  338. package/dist/types/xlsx/xform/sheet/page-setup-properties-xform.d.ts +1 -1
  339. package/dist/types/xlsx/xform/sheet/page-setup-xform.d.ts +1 -1
  340. package/dist/types/xlsx/xform/sheet/picture-xform.d.ts +1 -1
  341. package/dist/types/xlsx/xform/sheet/print-options-xform.d.ts +1 -1
  342. package/dist/types/xlsx/xform/sheet/row-breaks-xform.d.ts +1 -1
  343. package/dist/types/xlsx/xform/sheet/row-xform.d.ts +1 -1
  344. package/dist/types/xlsx/xform/sheet/sheet-format-properties-xform.d.ts +1 -1
  345. package/dist/types/xlsx/xform/sheet/sheet-properties-xform.d.ts +1 -1
  346. package/dist/types/xlsx/xform/sheet/sheet-protection-xform.d.ts +1 -1
  347. package/dist/types/xlsx/xform/sheet/sheet-view-xform.d.ts +1 -1
  348. package/dist/types/xlsx/xform/sheet/table-part-xform.d.ts +1 -1
  349. package/dist/types/xlsx/xform/sheet/worksheet-xform.d.ts +1 -1
  350. package/dist/types/xlsx/xform/simple/boolean-xform.d.ts +1 -1
  351. package/dist/types/xlsx/xform/simple/date-xform.d.ts +1 -1
  352. package/dist/types/xlsx/xform/simple/float-xform.d.ts +1 -1
  353. package/dist/types/xlsx/xform/simple/integer-xform.d.ts +1 -1
  354. package/dist/types/xlsx/xform/simple/string-xform.d.ts +1 -1
  355. package/dist/types/xlsx/xform/static-xform.d.ts +1 -1
  356. package/dist/types/xlsx/xform/strings/phonetic-text-xform.d.ts +1 -1
  357. package/dist/types/xlsx/xform/strings/rich-text-xform.d.ts +3 -3
  358. package/dist/types/xlsx/xform/strings/shared-string-xform.d.ts +1 -1
  359. package/dist/types/xlsx/xform/strings/shared-strings-xform.d.ts +2 -2
  360. package/dist/types/xlsx/xform/strings/text-xform.d.ts +1 -1
  361. package/dist/types/xlsx/xform/style/alignment-xform.d.ts +1 -1
  362. package/dist/types/xlsx/xform/style/border-xform.d.ts +2 -2
  363. package/dist/types/xlsx/xform/style/color-xform.d.ts +1 -1
  364. package/dist/types/xlsx/xform/style/dxf-xform.d.ts +1 -1
  365. package/dist/types/xlsx/xform/style/fill-xform.d.ts +2 -2
  366. package/dist/types/xlsx/xform/style/font-xform.d.ts +1 -1
  367. package/dist/types/xlsx/xform/style/numfmt-xform.d.ts +1 -1
  368. package/dist/types/xlsx/xform/style/protection-xform.d.ts +1 -1
  369. package/dist/types/xlsx/xform/style/style-xform.d.ts +3 -3
  370. package/dist/types/xlsx/xform/style/styles-xform.d.ts +2 -2
  371. package/dist/types/xlsx/xform/style/underline-xform.d.ts +1 -1
  372. package/dist/types/xlsx/xform/table/auto-filter-xform.d.ts +2 -2
  373. package/dist/types/xlsx/xform/table/custom-filter-xform.d.ts +1 -1
  374. package/dist/types/xlsx/xform/table/filter-column-xform.d.ts +2 -2
  375. package/dist/types/xlsx/xform/table/filter-xform.d.ts +1 -1
  376. package/dist/types/xlsx/xform/table/table-column-xform.d.ts +1 -1
  377. package/dist/types/xlsx/xform/table/table-style-info-xform.d.ts +1 -1
  378. package/dist/types/xlsx/xform/table/table-xform.d.ts +1 -1
  379. package/dist/types/xlsx/xlsx.base.d.ts +134 -0
  380. package/dist/types/xlsx/xlsx.browser.d.ts +31 -0
  381. package/dist/types/xlsx/xlsx.d.ts +20 -80
  382. package/package.json +13 -15
@@ -0,0 +1,85 @@
1
+ "use strict";
2
+ /**
3
+ * Base compression utilities using Web Streams API
4
+ * Shared between Node.js and Browser implementations
5
+ *
6
+ * Uses CompressionStream/DecompressionStream API with "deflate-raw" format
7
+ * (raw DEFLATE without zlib header/trailer, required for ZIP files)
8
+ */
9
+ Object.defineProperty(exports, "__esModule", { value: true });
10
+ exports.hasCompressionStream = hasCompressionStream;
11
+ exports.compressWithStream = compressWithStream;
12
+ exports.decompressWithStream = decompressWithStream;
13
+ /**
14
+ * Check if CompressionStream is available
15
+ */
16
+ function hasCompressionStream() {
17
+ return typeof CompressionStream !== "undefined";
18
+ }
19
+ /**
20
+ * Compress using CompressionStream API
21
+ * Uses "deflate-raw" format (required for ZIP files)
22
+ *
23
+ * @param data - Data to compress
24
+ * @returns Compressed data
25
+ */
26
+ async function compressWithStream(data) {
27
+ const cs = new CompressionStream("deflate-raw");
28
+ const writer = cs.writable.getWriter();
29
+ const reader = cs.readable.getReader();
30
+ // Write data and close
31
+ writer.write(new Uint8Array(data.buffer, data.byteOffset, data.byteLength));
32
+ writer.close();
33
+ // Read all compressed chunks
34
+ const chunks = [];
35
+ let totalLength = 0;
36
+ while (true) {
37
+ const { done, value } = await reader.read();
38
+ if (done) {
39
+ break;
40
+ }
41
+ chunks.push(value);
42
+ totalLength += value.length;
43
+ }
44
+ // Combine chunks into single array
45
+ const result = new Uint8Array(totalLength);
46
+ let offset = 0;
47
+ for (const chunk of chunks) {
48
+ result.set(chunk, offset);
49
+ offset += chunk.length;
50
+ }
51
+ return result;
52
+ }
53
+ /**
54
+ * Decompress using DecompressionStream API
55
+ *
56
+ * @param data - Compressed data (deflate-raw format)
57
+ * @returns Decompressed data
58
+ */
59
+ async function decompressWithStream(data) {
60
+ const ds = new DecompressionStream("deflate-raw");
61
+ const writer = ds.writable.getWriter();
62
+ const reader = ds.readable.getReader();
63
+ // Write data and close
64
+ writer.write(new Uint8Array(data.buffer, data.byteOffset, data.byteLength));
65
+ writer.close();
66
+ // Read all decompressed chunks
67
+ const chunks = [];
68
+ let totalLength = 0;
69
+ while (true) {
70
+ const { done, value } = await reader.read();
71
+ if (done) {
72
+ break;
73
+ }
74
+ chunks.push(value);
75
+ totalLength += value.length;
76
+ }
77
+ // Combine chunks into single array
78
+ const result = new Uint8Array(totalLength);
79
+ let offset = 0;
80
+ for (const chunk of chunks) {
81
+ result.set(chunk, offset);
82
+ offset += chunk.length;
83
+ }
84
+ return result;
85
+ }
@@ -0,0 +1,83 @@
1
+ "use strict";
2
+ /**
3
+ * Browser compression utilities using Web Streams API
4
+ *
5
+ * Uses CompressionStream API (Chrome 80+, Firefox 113+, Safari 16.4+)
6
+ * with "deflate-raw" format (required for ZIP files)
7
+ */
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.hasCompressionStream = void 0;
10
+ exports.hasNativeZlib = hasNativeZlib;
11
+ exports.compress = compress;
12
+ exports.compressSync = compressSync;
13
+ exports.decompress = decompress;
14
+ exports.decompressSync = decompressSync;
15
+ const compress_base_1 = require("./compress.base");
16
+ Object.defineProperty(exports, "hasCompressionStream", { enumerable: true, get: function () { return compress_base_1.hasCompressionStream; } });
17
+ /**
18
+ * Check if native zlib is available (always false in browser)
19
+ */
20
+ function hasNativeZlib() {
21
+ return false;
22
+ }
23
+ /**
24
+ * Compress data using browser's native CompressionStream
25
+ *
26
+ * @param data - Data to compress
27
+ * @param options - Compression options
28
+ * @returns Compressed data
29
+ *
30
+ * @example
31
+ * ```ts
32
+ * const data = new TextEncoder().encode("Hello, World!");
33
+ * const compressed = await compress(data, { level: 6 });
34
+ * ```
35
+ */
36
+ async function compress(data, options = {}) {
37
+ const level = options.level ?? 6;
38
+ // Level 0 means no compression
39
+ if (level === 0) {
40
+ return data;
41
+ }
42
+ // Use CompressionStream
43
+ if (typeof CompressionStream !== "undefined") {
44
+ return (0, compress_base_1.compressWithStream)(data);
45
+ }
46
+ // No compression available - return original data
47
+ console.warn("No native compression available, returning uncompressed data");
48
+ return data;
49
+ }
50
+ /**
51
+ * Compress data synchronously
52
+ * Not available in browser - throws error
53
+ *
54
+ * @param _data - Data to compress
55
+ * @param _options - Compression options
56
+ * @throws Error always - sync compression not available in browser
57
+ */
58
+ function compressSync(_data, _options = {}) {
59
+ throw new Error("Synchronous compression is not available in browser environment");
60
+ }
61
+ /**
62
+ * Decompress data using browser's native DecompressionStream
63
+ *
64
+ * @param data - Compressed data (deflate-raw format)
65
+ * @returns Decompressed data
66
+ */
67
+ async function decompress(data) {
68
+ // Use DecompressionStream
69
+ if (typeof DecompressionStream !== "undefined") {
70
+ return (0, compress_base_1.decompressWithStream)(data);
71
+ }
72
+ throw new Error("No native decompression available in browser");
73
+ }
74
+ /**
75
+ * Decompress data synchronously
76
+ * Not available in browser - throws error
77
+ *
78
+ * @param _data - Compressed data
79
+ * @throws Error always - sync decompression not available in browser
80
+ */
81
+ function decompressSync(_data) {
82
+ throw new Error("Synchronous decompression is not available in browser environment");
83
+ }
@@ -1,107 +1,29 @@
1
1
  "use strict";
2
2
  /**
3
- * Native compression utilities using platform APIs
3
+ * Node.js compression utilities using native zlib
4
4
  *
5
- * - Node.js: Uses native zlib module (C++ implementation, fastest)
6
- * - Browser: Uses CompressionStream API (Chrome 80+, Firefox 113+, Safari 16.4+)
7
- *
8
- * Both use "deflate-raw" format which is required for ZIP files
9
- * (raw DEFLATE without zlib header/trailer)
5
+ * Uses zlib module (C++ implementation, fastest) with "deflate-raw" format
6
+ * (raw DEFLATE without zlib header/trailer, required for ZIP files)
10
7
  */
11
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
12
- if (k2 === undefined) k2 = k;
13
- var desc = Object.getOwnPropertyDescriptor(m, k);
14
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
15
- desc = { enumerable: true, get: function() { return m[k]; } };
16
- }
17
- Object.defineProperty(o, k2, desc);
18
- }) : (function(o, m, k, k2) {
19
- if (k2 === undefined) k2 = k;
20
- o[k2] = m[k];
21
- }));
22
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
23
- Object.defineProperty(o, "default", { enumerable: true, value: v });
24
- }) : function(o, v) {
25
- o["default"] = v;
26
- });
27
- var __importStar = (this && this.__importStar) || (function () {
28
- var ownKeys = function(o) {
29
- ownKeys = Object.getOwnPropertyNames || function (o) {
30
- var ar = [];
31
- for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
32
- return ar;
33
- };
34
- return ownKeys(o);
35
- };
36
- return function (mod) {
37
- if (mod && mod.__esModule) return mod;
38
- var result = {};
39
- if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
40
- __setModuleDefault(result, mod);
41
- return result;
42
- };
43
- })();
44
8
  Object.defineProperty(exports, "__esModule", { value: true });
45
- exports.ensureZlib = ensureZlib;
9
+ exports.hasCompressionStream = void 0;
46
10
  exports.hasNativeZlib = hasNativeZlib;
47
- exports.hasCompressionStream = hasCompressionStream;
48
11
  exports.compress = compress;
49
12
  exports.compressSync = compressSync;
50
13
  exports.decompress = decompress;
51
14
  exports.decompressSync = decompressSync;
52
- // Detect environment
53
- const isNode = typeof process !== "undefined" && process.versions?.node;
54
- // Lazy-loaded zlib module for Node.js
55
- let _zlib = null;
56
- let _zlibLoading = null;
57
- // Auto-initialize zlib in Node.js environment
58
- if (isNode) {
59
- _zlibLoading = Promise.resolve().then(() => __importStar(require("zlib"))).then(module => {
60
- _zlib = module.default ?? module;
61
- return _zlib;
62
- })
63
- .catch(() => {
64
- _zlib = null;
65
- return null;
66
- });
67
- }
68
- /**
69
- * Get zlib module (Node.js only)
70
- * Returns null if not yet loaded or not in Node.js
71
- */
72
- function getZlib() {
73
- return _zlib;
74
- }
75
- /**
76
- * Ensure zlib is loaded (Node.js only)
77
- * Call this before using sync methods if you need to guarantee availability
78
- */
79
- async function ensureZlib() {
80
- if (_zlibLoading) {
81
- return _zlibLoading;
82
- }
83
- return _zlib;
84
- }
15
+ const zlib_1 = require("zlib");
16
+ // Re-export shared types and utilities
17
+ var compress_base_1 = require("./compress.base");
18
+ Object.defineProperty(exports, "hasCompressionStream", { enumerable: true, get: function () { return compress_base_1.hasCompressionStream; } });
85
19
  /**
86
- * Check if native zlib is available (Node.js)
20
+ * Check if native zlib is available (always true in Node.js)
87
21
  */
88
22
  function hasNativeZlib() {
89
- const zlib = getZlib();
90
- return zlib !== null && typeof zlib.deflateRawSync === "function";
23
+ return true;
91
24
  }
92
25
  /**
93
- * Check if CompressionStream is available (Browser/Node.js 17+)
94
- */
95
- function hasCompressionStream() {
96
- return typeof CompressionStream !== "undefined";
97
- }
98
- /**
99
- * Compress data using the best available native method
100
- *
101
- * Priority:
102
- * 1. Node.js zlib (if available) - fastest, supports compression levels
103
- * 2. CompressionStream (browser/Node.js 17+) - no level support
104
- * 3. Return uncompressed data (fallback)
26
+ * Compress data using Node.js native zlib
105
27
  *
106
28
  * @param data - Data to compress
107
29
  * @param options - Compression options
@@ -119,143 +41,41 @@ async function compress(data, options = {}) {
119
41
  if (level === 0) {
120
42
  return data;
121
43
  }
122
- // Ensure zlib is loaded first
123
- const zlib = await ensureZlib();
124
- // Try Node.js zlib first (fastest, supports levels)
125
- if (zlib && typeof zlib.deflateRawSync === "function") {
126
- const result = zlib.deflateRawSync(Buffer.from(data), { level });
127
- return new Uint8Array(result.buffer, result.byteOffset, result.byteLength);
128
- }
129
- // Fall back to CompressionStream (browser/Node.js 17+)
130
- if (typeof CompressionStream !== "undefined") {
131
- return compressWithCompressionStream(data);
132
- }
133
- // No compression available - return original data
134
- console.warn("No native compression available, returning uncompressed data");
135
- return data;
44
+ const result = (0, zlib_1.deflateRawSync)(Buffer.from(data), { level });
45
+ return new Uint8Array(result.buffer, result.byteOffset, result.byteLength);
136
46
  }
137
47
  /**
138
48
  * Compress data synchronously using Node.js zlib
139
- * Only available in Node.js environment
140
49
  *
141
50
  * @param data - Data to compress
142
51
  * @param options - Compression options
143
52
  * @returns Compressed data
144
- * @throws Error if not in Node.js environment
145
53
  */
146
54
  function compressSync(data, options = {}) {
147
55
  const level = options.level ?? 6;
148
56
  if (level === 0) {
149
57
  return data;
150
58
  }
151
- const zlib = getZlib();
152
- if (!zlib || typeof zlib.deflateRawSync !== "function") {
153
- throw new Error("Synchronous compression is only available in Node.js environment");
154
- }
155
- const result = zlib.deflateRawSync(Buffer.from(data), { level });
59
+ const result = (0, zlib_1.deflateRawSync)(Buffer.from(data), { level });
156
60
  return new Uint8Array(result.buffer, result.byteOffset, result.byteLength);
157
61
  }
158
62
  /**
159
- * Compress using browser's native CompressionStream
160
- * Uses "deflate-raw" format (required for ZIP files)
161
- *
162
- * Note: CompressionStream does not support compression level configuration
163
- *
164
- * @param data - Data to compress
165
- * @returns Compressed data
166
- */
167
- async function compressWithCompressionStream(data) {
168
- const cs = new CompressionStream("deflate-raw");
169
- const writer = cs.writable.getWriter();
170
- const reader = cs.readable.getReader();
171
- // Write data and close
172
- writer.write(new Uint8Array(data.buffer, data.byteOffset, data.byteLength));
173
- writer.close();
174
- // Read all compressed chunks
175
- const chunks = [];
176
- let totalLength = 0;
177
- while (true) {
178
- const { done, value } = await reader.read();
179
- if (done) {
180
- break;
181
- }
182
- chunks.push(value);
183
- totalLength += value.length;
184
- }
185
- // Combine chunks into single array
186
- const result = new Uint8Array(totalLength);
187
- let offset = 0;
188
- for (const chunk of chunks) {
189
- result.set(chunk, offset);
190
- offset += chunk.length;
191
- }
192
- return result;
193
- }
194
- /**
195
- * Decompress data using the best available native method
63
+ * Decompress data using Node.js native zlib
196
64
  *
197
65
  * @param data - Compressed data (deflate-raw format)
198
66
  * @returns Decompressed data
199
67
  */
200
68
  async function decompress(data) {
201
- // Ensure zlib is loaded first
202
- const zlib = await ensureZlib();
203
- // Try Node.js zlib first
204
- if (zlib && typeof zlib.inflateRawSync === "function") {
205
- const result = zlib.inflateRawSync(Buffer.from(data));
206
- return new Uint8Array(result.buffer, result.byteOffset, result.byteLength);
207
- }
208
- // Fall back to DecompressionStream
209
- if (typeof DecompressionStream !== "undefined") {
210
- return decompressWithDecompressionStream(data);
211
- }
212
- throw new Error("No native decompression available");
69
+ const result = (0, zlib_1.inflateRawSync)(Buffer.from(data));
70
+ return new Uint8Array(result.buffer, result.byteOffset, result.byteLength);
213
71
  }
214
72
  /**
215
73
  * Decompress data synchronously using Node.js zlib
216
74
  *
217
75
  * @param data - Compressed data (deflate-raw format)
218
76
  * @returns Decompressed data
219
- * @throws Error if not in Node.js environment
220
77
  */
221
78
  function decompressSync(data) {
222
- const zlib = getZlib();
223
- if (!zlib || typeof zlib.inflateRawSync !== "function") {
224
- throw new Error("Synchronous decompression is only available in Node.js environment");
225
- }
226
- const result = zlib.inflateRawSync(Buffer.from(data));
79
+ const result = (0, zlib_1.inflateRawSync)(Buffer.from(data));
227
80
  return new Uint8Array(result.buffer, result.byteOffset, result.byteLength);
228
81
  }
229
- /**
230
- * Decompress using browser's native DecompressionStream
231
- *
232
- * @param data - Compressed data (deflate-raw format)
233
- * @returns Decompressed data
234
- */
235
- async function decompressWithDecompressionStream(data) {
236
- const ds = new DecompressionStream("deflate-raw");
237
- const writer = ds.writable.getWriter();
238
- const reader = ds.readable.getReader();
239
- // Write data and close
240
- writer.write(new Uint8Array(data.buffer, data.byteOffset, data.byteLength));
241
- writer.close();
242
- // Read all decompressed chunks
243
- const chunks = [];
244
- let totalLength = 0;
245
- while (true) {
246
- const { done, value } = await reader.read();
247
- if (done) {
248
- break;
249
- }
250
- chunks.push(value);
251
- totalLength += value.length;
252
- }
253
- // Combine chunks into single array
254
- const result = new Uint8Array(totalLength);
255
- let offset = 0;
256
- for (const chunk of chunks) {
257
- result.set(chunk, offset);
258
- offset += chunk.length;
259
- }
260
- return result;
261
- }
@@ -0,0 +1,88 @@
1
+ "use strict";
2
+ /**
3
+ * CRC32 calculation utility for ZIP files (Browser version)
4
+ *
5
+ * Uses lookup table optimization - no Node.js dependencies
6
+ *
7
+ * The polynomial used is the standard CRC-32 IEEE 802.3:
8
+ * x^32 + x^26 + x^23 + x^22 + x^16 + x^12 + x^11 + x^10 + x^8 + x^7 + x^5 + x^4 + x^2 + x + 1
9
+ * Represented as 0xEDB88320 in reversed (LSB-first) form
10
+ */
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.crc32 = crc32;
13
+ exports.ensureCrc32 = ensureCrc32;
14
+ exports.crc32Update = crc32Update;
15
+ exports.crc32Finalize = crc32Finalize;
16
+ /**
17
+ * Pre-computed CRC32 lookup table (256 entries)
18
+ * Generated using the standard polynomial 0xEDB88320
19
+ */
20
+ const CRC32_TABLE = /* @__PURE__ */ (() => {
21
+ const table = new Uint32Array(256);
22
+ for (let i = 0; i < 256; i++) {
23
+ let crc = i;
24
+ for (let j = 0; j < 8; j++) {
25
+ crc = crc & 1 ? 0xedb88320 ^ (crc >>> 1) : crc >>> 1;
26
+ }
27
+ table[i] = crc;
28
+ }
29
+ return table;
30
+ })();
31
+ /**
32
+ * Calculate CRC32 checksum for the given data
33
+ *
34
+ * @param data - Input data as Uint8Array
35
+ * @returns CRC32 checksum as unsigned 32-bit integer
36
+ *
37
+ * @example
38
+ * ```ts
39
+ * const data = new TextEncoder().encode("Hello, World!");
40
+ * const checksum = crc32(data);
41
+ * console.log(checksum.toString(16)); // "ec4ac3d0"
42
+ * ```
43
+ */
44
+ function crc32(data) {
45
+ let crc = 0xffffffff;
46
+ for (let i = 0; i < data.length; i++) {
47
+ crc = CRC32_TABLE[(crc ^ data[i]) & 0xff] ^ (crc >>> 8);
48
+ }
49
+ return (crc ^ 0xffffffff) >>> 0;
50
+ }
51
+ /**
52
+ * Ensure CRC32 is ready (no-op in browser, for API compatibility)
53
+ */
54
+ async function ensureCrc32() {
55
+ // No-op in browser
56
+ }
57
+ /**
58
+ * Calculate CRC32 incrementally (useful for streaming)
59
+ * Call with initial crc of 0xffffffff, then finalize with crc32Finalize
60
+ *
61
+ * @param crc - Current CRC value (start with 0xffffffff)
62
+ * @param data - Input data chunk
63
+ * @returns Updated CRC value (not finalized)
64
+ *
65
+ * @example
66
+ * ```ts
67
+ * let crc = 0xffffffff;
68
+ * crc = crc32Update(crc, chunk1);
69
+ * crc = crc32Update(crc, chunk2);
70
+ * const checksum = crc32Finalize(crc);
71
+ * ```
72
+ */
73
+ function crc32Update(crc, data) {
74
+ for (let i = 0; i < data.length; i++) {
75
+ crc = CRC32_TABLE[(crc ^ data[i]) & 0xff] ^ (crc >>> 8);
76
+ }
77
+ return crc;
78
+ }
79
+ /**
80
+ * Finalize CRC32 calculation
81
+ * XOR with 0xffffffff and convert to unsigned 32-bit
82
+ *
83
+ * @param crc - CRC value from crc32Update
84
+ * @returns Final CRC32 checksum
85
+ */
86
+ function crc32Finalize(crc) {
87
+ return (crc ^ 0xffffffff) >>> 0;
88
+ }
@@ -17,7 +17,7 @@
17
17
  *
18
18
  * @example Basic usage
19
19
  * ```ts
20
- * import { createZip } from "./utils/zip/index.js";
20
+ * import { createZip } from "./utils/zip/index";
21
21
  *
22
22
  * const zipData = await createZip([
23
23
  * { name: "hello.txt", data: new TextEncoder().encode("Hello!") },
@@ -30,7 +30,7 @@
30
30
  *
31
31
  * @example Streaming usage
32
32
  * ```ts
33
- * import { ZipBuilder } from "./utils/zip/index.js";
33
+ * import { ZipBuilder } from "./utils/zip/index";
34
34
  *
35
35
  * const builder = new ZipBuilder({ level: 1 });
36
36
  *
@@ -51,20 +51,20 @@
51
51
  Object.defineProperty(exports, "__esModule", { value: true });
52
52
  exports.ZipBuilder = exports.createZipSync = exports.createZip = exports.hasCompressionStream = exports.hasNativeZlib = exports.decompressSync = exports.decompress = exports.compressSync = exports.compress = exports.crc32Finalize = exports.crc32Update = exports.crc32 = void 0;
53
53
  // CRC32 utilities
54
- var crc32_js_1 = require("./crc32");
55
- Object.defineProperty(exports, "crc32", { enumerable: true, get: function () { return crc32_js_1.crc32; } });
56
- Object.defineProperty(exports, "crc32Update", { enumerable: true, get: function () { return crc32_js_1.crc32Update; } });
57
- Object.defineProperty(exports, "crc32Finalize", { enumerable: true, get: function () { return crc32_js_1.crc32Finalize; } });
54
+ var crc32_1 = require("./crc32");
55
+ Object.defineProperty(exports, "crc32", { enumerable: true, get: function () { return crc32_1.crc32; } });
56
+ Object.defineProperty(exports, "crc32Update", { enumerable: true, get: function () { return crc32_1.crc32Update; } });
57
+ Object.defineProperty(exports, "crc32Finalize", { enumerable: true, get: function () { return crc32_1.crc32Finalize; } });
58
58
  // Compression utilities
59
- var compress_js_1 = require("./compress");
60
- Object.defineProperty(exports, "compress", { enumerable: true, get: function () { return compress_js_1.compress; } });
61
- Object.defineProperty(exports, "compressSync", { enumerable: true, get: function () { return compress_js_1.compressSync; } });
62
- Object.defineProperty(exports, "decompress", { enumerable: true, get: function () { return compress_js_1.decompress; } });
63
- Object.defineProperty(exports, "decompressSync", { enumerable: true, get: function () { return compress_js_1.decompressSync; } });
64
- Object.defineProperty(exports, "hasNativeZlib", { enumerable: true, get: function () { return compress_js_1.hasNativeZlib; } });
65
- Object.defineProperty(exports, "hasCompressionStream", { enumerable: true, get: function () { return compress_js_1.hasCompressionStream; } });
59
+ var compress_1 = require("./compress");
60
+ Object.defineProperty(exports, "compress", { enumerable: true, get: function () { return compress_1.compress; } });
61
+ Object.defineProperty(exports, "compressSync", { enumerable: true, get: function () { return compress_1.compressSync; } });
62
+ Object.defineProperty(exports, "decompress", { enumerable: true, get: function () { return compress_1.decompress; } });
63
+ Object.defineProperty(exports, "decompressSync", { enumerable: true, get: function () { return compress_1.decompressSync; } });
64
+ Object.defineProperty(exports, "hasNativeZlib", { enumerable: true, get: function () { return compress_1.hasNativeZlib; } });
65
+ Object.defineProperty(exports, "hasCompressionStream", { enumerable: true, get: function () { return compress_1.hasCompressionStream; } });
66
66
  // ZIP builder
67
- var zip_builder_js_1 = require("./zip-builder");
68
- Object.defineProperty(exports, "createZip", { enumerable: true, get: function () { return zip_builder_js_1.createZip; } });
69
- Object.defineProperty(exports, "createZipSync", { enumerable: true, get: function () { return zip_builder_js_1.createZipSync; } });
70
- Object.defineProperty(exports, "ZipBuilder", { enumerable: true, get: function () { return zip_builder_js_1.ZipBuilder; } });
67
+ var zip_builder_1 = require("./zip-builder");
68
+ Object.defineProperty(exports, "createZip", { enumerable: true, get: function () { return zip_builder_1.createZip; } });
69
+ Object.defineProperty(exports, "createZipSync", { enumerable: true, get: function () { return zip_builder_1.createZipSync; } });
70
+ Object.defineProperty(exports, "ZipBuilder", { enumerable: true, get: function () { return zip_builder_1.ZipBuilder; } });
@@ -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,