@cj-tech-master/excelts 4.2.1 → 4.2.2-canary.20260115044841.88820eb

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 (331) hide show
  1. package/THIRD_PARTY_NOTICES.md +0 -31
  2. package/dist/browser/index.browser.d.ts +1 -0
  3. package/dist/browser/index.browser.js +12 -0
  4. package/dist/{esm/modules/archive → browser/modules/archive/compression}/compress.base.js +1 -1
  5. package/dist/{types/modules/archive → browser/modules/archive/compression}/compress.browser.d.ts +2 -8
  6. package/dist/browser/modules/archive/{compress.browser.js → compression/compress.browser.js} +3 -11
  7. package/dist/browser/modules/archive/{compress.d.ts → compression/compress.d.ts} +2 -2
  8. package/dist/{esm/modules/archive → browser/modules/archive/compression}/compress.js +1 -1
  9. package/dist/browser/modules/archive/{crc32.browser.d.ts → compression/crc32.browser.d.ts} +1 -1
  10. package/dist/browser/modules/archive/{crc32.d.ts → compression/crc32.d.ts} +1 -1
  11. package/dist/browser/modules/archive/{crc32.js → compression/crc32.js} +1 -1
  12. package/dist/browser/modules/archive/{deflate-fallback.js → compression/deflate-fallback.js} +1 -1
  13. package/dist/browser/modules/archive/{streaming-compress.browser.d.ts → compression/streaming-compress.browser.d.ts} +2 -2
  14. package/dist/browser/modules/archive/{streaming-compress.browser.js → compression/streaming-compress.browser.js} +3 -3
  15. package/dist/browser/modules/archive/{streaming-compress.d.ts → compression/streaming-compress.d.ts} +2 -2
  16. package/dist/browser/modules/archive/{streaming-compress.js → compression/streaming-compress.js} +2 -2
  17. package/dist/browser/modules/archive/defaults.d.ts +1 -0
  18. package/dist/browser/modules/archive/defaults.js +6 -3
  19. package/dist/browser/modules/archive/index.base.d.ts +4 -4
  20. package/dist/browser/modules/archive/index.base.js +3 -6
  21. package/dist/browser/modules/archive/index.browser.d.ts +3 -4
  22. package/dist/browser/modules/archive/index.browser.js +3 -7
  23. package/dist/browser/modules/archive/index.d.ts +3 -4
  24. package/dist/browser/modules/archive/index.js +3 -5
  25. package/dist/browser/modules/archive/internal/byte-queue.d.ts +33 -0
  26. package/dist/browser/modules/archive/internal/byte-queue.js +407 -0
  27. package/dist/browser/modules/archive/io/archive-sink.d.ts +8 -0
  28. package/dist/browser/modules/archive/io/archive-sink.js +45 -0
  29. package/dist/browser/modules/archive/io/archive-source.d.ts +6 -0
  30. package/dist/browser/modules/archive/io/archive-source.js +100 -0
  31. package/dist/browser/modules/archive/{extract.d.ts → unzip/extract.d.ts} +2 -2
  32. package/dist/browser/modules/archive/unzip/index.d.ts +40 -0
  33. package/dist/browser/modules/archive/unzip/index.js +164 -0
  34. package/dist/browser/modules/archive/{parse.base.d.ts → unzip/stream.base.d.ts} +36 -2
  35. package/dist/browser/modules/archive/unzip/stream.base.js +1022 -0
  36. package/dist/browser/modules/archive/{parse.browser.d.ts → unzip/stream.browser.d.ts} +1 -1
  37. package/dist/browser/modules/archive/{parse.browser.js → unzip/stream.browser.js} +371 -110
  38. package/dist/browser/modules/archive/{parse.d.ts → unzip/stream.d.ts} +2 -2
  39. package/dist/{esm/modules/archive/parse.js → browser/modules/archive/unzip/stream.js} +6 -5
  40. package/dist/browser/modules/archive/{zip-parser.d.ts → unzip/zip-parser.d.ts} +1 -1
  41. package/dist/{esm/modules/archive → browser/modules/archive/unzip}/zip-parser.js +38 -24
  42. package/dist/browser/modules/archive/utils/async-queue.d.ts +7 -0
  43. package/dist/browser/modules/archive/utils/async-queue.js +103 -0
  44. package/dist/browser/modules/archive/utils/bytes.js +16 -16
  45. package/dist/browser/modules/archive/utils/compressibility.d.ts +10 -0
  46. package/dist/browser/modules/archive/utils/compressibility.js +57 -0
  47. package/dist/browser/modules/archive/utils/parse-buffer.js +21 -23
  48. package/dist/browser/modules/archive/utils/pattern-scanner.d.ts +21 -0
  49. package/dist/browser/modules/archive/utils/pattern-scanner.js +27 -0
  50. package/dist/browser/modules/archive/utils/timestamps.js +62 -1
  51. package/dist/browser/modules/archive/utils/zip-extra-fields.d.ts +1 -1
  52. package/dist/browser/modules/archive/utils/zip-extra-fields.js +26 -14
  53. package/dist/browser/modules/archive/zip/index.d.ts +42 -0
  54. package/dist/browser/modules/archive/zip/index.js +157 -0
  55. package/dist/browser/modules/archive/{streaming-zip.d.ts → zip/stream.d.ts} +28 -5
  56. package/dist/browser/modules/archive/{streaming-zip.js → zip/stream.js} +192 -48
  57. package/dist/browser/modules/archive/zip/zip-bytes.d.ts +73 -0
  58. package/dist/browser/modules/archive/zip/zip-bytes.js +239 -0
  59. package/dist/{esm/modules/archive → browser/modules/archive/zip}/zip-entry-metadata.js +3 -3
  60. package/dist/browser/modules/archive/{zip-records.d.ts → zip-spec/zip-records.d.ts} +20 -0
  61. package/dist/browser/modules/archive/zip-spec/zip-records.js +126 -0
  62. package/dist/browser/modules/excel/stream/workbook-reader.browser.js +1 -1
  63. package/dist/browser/modules/excel/stream/workbook-writer.browser.d.ts +1 -1
  64. package/dist/browser/modules/excel/stream/workbook-writer.browser.js +1 -1
  65. package/dist/browser/modules/excel/utils/ooxml-validator.d.ts +48 -0
  66. package/dist/browser/modules/excel/utils/ooxml-validator.js +469 -0
  67. package/dist/browser/modules/excel/utils/parse-sax.d.ts +3 -0
  68. package/dist/browser/modules/excel/utils/parse-sax.js +32 -13
  69. package/dist/browser/modules/excel/worksheet.js +5 -2
  70. package/dist/browser/modules/excel/xlsx/xform/core/app-xform.js +3 -3
  71. package/dist/browser/modules/excel/xlsx/xform/core/core-xform.js +56 -68
  72. package/dist/browser/modules/excel/xlsx/xform/drawing/ctrl-prop-xform.d.ts +1 -0
  73. package/dist/browser/modules/excel/xlsx/xform/drawing/ctrl-prop-xform.js +13 -1
  74. package/dist/browser/modules/excel/xlsx/xform/drawing/sp-xform.d.ts +18 -0
  75. package/dist/browser/modules/excel/xlsx/xform/drawing/sp-xform.js +112 -0
  76. package/dist/browser/modules/excel/xlsx/xform/drawing/two-cell-anchor-xform.d.ts +6 -1
  77. package/dist/browser/modules/excel/xlsx/xform/drawing/two-cell-anchor-xform.js +30 -2
  78. package/dist/browser/modules/excel/xlsx/xform/drawing/vml-drawing-xform.js +11 -0
  79. package/dist/browser/modules/excel/xlsx/xform/list-xform.js +8 -10
  80. package/dist/browser/modules/excel/xlsx/xform/sheet/page-setup-xform.d.ts +1 -0
  81. package/dist/browser/modules/excel/xlsx/xform/sheet/page-setup-xform.js +16 -2
  82. package/dist/browser/modules/excel/xlsx/xform/sheet/worksheet-xform.js +110 -12
  83. package/dist/browser/modules/excel/xlsx/xform/strings/shared-string-xform.js +2 -3
  84. package/dist/browser/modules/excel/xlsx/xform/strings/text-xform.js +5 -7
  85. package/dist/browser/modules/excel/xlsx/xlsx.browser.js +11 -10
  86. package/dist/browser/modules/excel/xlsx/xlsx.js +1 -1
  87. package/dist/browser/modules/stream/base-transform.d.ts +3 -0
  88. package/dist/browser/modules/stream/base-transform.js +34 -20
  89. package/dist/browser/modules/stream/buffered-stream.d.ts +2 -12
  90. package/dist/browser/modules/stream/chunked-builder.js +4 -4
  91. package/dist/browser/modules/stream/index.browser.d.ts +13 -19
  92. package/dist/browser/modules/stream/index.browser.js +10 -22
  93. package/dist/browser/modules/stream/index.d.ts +18 -41
  94. package/dist/browser/modules/stream/index.js +15 -44
  95. package/dist/browser/modules/stream/internal/event-utils.d.ts +17 -0
  96. package/dist/browser/modules/stream/internal/event-utils.js +40 -0
  97. package/dist/browser/modules/stream/internal/type-guards.d.ts +9 -0
  98. package/dist/browser/modules/stream/internal/type-guards.js +24 -0
  99. package/dist/browser/modules/stream/pull-stream.d.ts +5 -6
  100. package/dist/browser/modules/stream/pull-stream.js +107 -43
  101. package/dist/browser/modules/stream/shared.d.ts +1 -1
  102. package/dist/browser/modules/stream/shared.js +7 -4
  103. package/dist/browser/modules/stream/streams.browser.d.ts +32 -44
  104. package/dist/browser/modules/stream/streams.browser.js +921 -836
  105. package/dist/browser/modules/stream/streams.d.ts +4 -20
  106. package/dist/browser/modules/stream/streams.js +146 -95
  107. package/dist/browser/modules/stream/utils.js +5 -38
  108. package/dist/cjs/modules/archive/{compress.base.js → compression/compress.base.js} +1 -1
  109. package/dist/cjs/modules/archive/{compress.browser.js → compression/compress.browser.js} +3 -11
  110. package/dist/cjs/modules/archive/{compress.js → compression/compress.js} +1 -1
  111. package/dist/cjs/modules/archive/{crc32.js → compression/crc32.js} +1 -1
  112. package/dist/cjs/modules/archive/{deflate-fallback.js → compression/deflate-fallback.js} +1 -1
  113. package/dist/cjs/modules/archive/{streaming-compress.browser.js → compression/streaming-compress.browser.js} +3 -3
  114. package/dist/cjs/modules/archive/{streaming-compress.js → compression/streaming-compress.js} +2 -2
  115. package/dist/cjs/modules/archive/defaults.js +7 -4
  116. package/dist/cjs/modules/archive/index.base.js +9 -19
  117. package/dist/cjs/modules/archive/index.browser.js +4 -10
  118. package/dist/cjs/modules/archive/index.js +4 -8
  119. package/dist/cjs/modules/archive/internal/byte-queue.js +411 -0
  120. package/dist/cjs/modules/archive/io/archive-sink.js +49 -0
  121. package/dist/cjs/modules/archive/io/archive-source.js +105 -0
  122. package/dist/cjs/modules/archive/unzip/index.js +170 -0
  123. package/dist/cjs/modules/archive/unzip/stream.base.js +1044 -0
  124. package/dist/cjs/modules/archive/{parse.browser.js → unzip/stream.browser.js} +372 -111
  125. package/dist/cjs/modules/archive/{parse.js → unzip/stream.js} +9 -8
  126. package/dist/cjs/modules/archive/{zip-parser.js → unzip/zip-parser.js} +47 -33
  127. package/dist/cjs/modules/archive/utils/async-queue.js +106 -0
  128. package/dist/cjs/modules/archive/utils/bytes.js +16 -16
  129. package/dist/cjs/modules/archive/utils/compressibility.js +60 -0
  130. package/dist/cjs/modules/archive/utils/parse-buffer.js +21 -23
  131. package/dist/cjs/modules/archive/utils/pattern-scanner.js +31 -0
  132. package/dist/cjs/modules/archive/utils/timestamps.js +64 -3
  133. package/dist/cjs/modules/archive/utils/zip-extra-fields.js +26 -14
  134. package/dist/cjs/modules/archive/zip/index.js +162 -0
  135. package/dist/cjs/modules/archive/{streaming-zip.js → zip/stream.js} +194 -50
  136. package/dist/cjs/modules/archive/zip/zip-bytes.js +242 -0
  137. package/dist/cjs/modules/archive/{zip-entry-metadata.js → zip/zip-entry-metadata.js} +5 -5
  138. package/dist/cjs/modules/archive/zip-spec/zip-records.js +136 -0
  139. package/dist/cjs/modules/excel/stream/workbook-reader.browser.js +2 -2
  140. package/dist/cjs/modules/excel/stream/workbook-writer.browser.js +4 -4
  141. package/dist/cjs/modules/excel/utils/ooxml-validator.js +475 -0
  142. package/dist/cjs/modules/excel/utils/parse-sax.js +32 -13
  143. package/dist/cjs/modules/excel/worksheet.js +5 -2
  144. package/dist/cjs/modules/excel/xlsx/xform/core/app-xform.js +3 -3
  145. package/dist/cjs/modules/excel/xlsx/xform/core/core-xform.js +56 -68
  146. package/dist/cjs/modules/excel/xlsx/xform/drawing/ctrl-prop-xform.js +13 -1
  147. package/dist/cjs/modules/excel/xlsx/xform/drawing/sp-xform.js +115 -0
  148. package/dist/cjs/modules/excel/xlsx/xform/drawing/two-cell-anchor-xform.js +30 -2
  149. package/dist/cjs/modules/excel/xlsx/xform/drawing/vml-drawing-xform.js +11 -0
  150. package/dist/cjs/modules/excel/xlsx/xform/list-xform.js +8 -10
  151. package/dist/cjs/modules/excel/xlsx/xform/sheet/page-setup-xform.js +16 -2
  152. package/dist/cjs/modules/excel/xlsx/xform/sheet/worksheet-xform.js +110 -12
  153. package/dist/cjs/modules/excel/xlsx/xform/strings/shared-string-xform.js +2 -3
  154. package/dist/cjs/modules/excel/xlsx/xform/strings/text-xform.js +5 -7
  155. package/dist/cjs/modules/excel/xlsx/xlsx.browser.js +14 -13
  156. package/dist/cjs/modules/excel/xlsx/xlsx.js +2 -2
  157. package/dist/cjs/modules/stream/base-transform.js +34 -20
  158. package/dist/cjs/modules/stream/chunked-builder.js +4 -4
  159. package/dist/cjs/modules/stream/index.browser.js +10 -17
  160. package/dist/cjs/modules/stream/index.js +15 -39
  161. package/dist/cjs/modules/stream/internal/event-utils.js +43 -0
  162. package/dist/cjs/modules/stream/internal/type-guards.js +30 -0
  163. package/dist/cjs/modules/stream/pull-stream.js +107 -43
  164. package/dist/cjs/modules/stream/shared.js +7 -4
  165. package/dist/cjs/modules/stream/streams.browser.js +927 -847
  166. package/dist/cjs/modules/stream/streams.js +156 -107
  167. package/dist/cjs/modules/stream/utils.js +3 -36
  168. package/dist/esm/index.browser.js +12 -0
  169. package/dist/{browser/modules/archive → esm/modules/archive/compression}/compress.base.js +1 -1
  170. package/dist/esm/modules/archive/{compress.browser.js → compression/compress.browser.js} +3 -11
  171. package/dist/{browser/modules/archive → esm/modules/archive/compression}/compress.js +1 -1
  172. package/dist/esm/modules/archive/{crc32.js → compression/crc32.js} +1 -1
  173. package/dist/esm/modules/archive/{deflate-fallback.js → compression/deflate-fallback.js} +1 -1
  174. package/dist/esm/modules/archive/{streaming-compress.browser.js → compression/streaming-compress.browser.js} +3 -3
  175. package/dist/esm/modules/archive/{streaming-compress.js → compression/streaming-compress.js} +2 -2
  176. package/dist/esm/modules/archive/defaults.js +6 -3
  177. package/dist/esm/modules/archive/index.base.js +3 -6
  178. package/dist/esm/modules/archive/index.browser.js +3 -7
  179. package/dist/esm/modules/archive/index.js +3 -5
  180. package/dist/esm/modules/archive/internal/byte-queue.js +407 -0
  181. package/dist/esm/modules/archive/io/archive-sink.js +45 -0
  182. package/dist/esm/modules/archive/io/archive-source.js +100 -0
  183. package/dist/esm/modules/archive/unzip/index.js +164 -0
  184. package/dist/esm/modules/archive/unzip/stream.base.js +1022 -0
  185. package/dist/esm/modules/archive/{parse.browser.js → unzip/stream.browser.js} +371 -110
  186. package/dist/{browser/modules/archive/parse.js → esm/modules/archive/unzip/stream.js} +6 -5
  187. package/dist/{browser/modules/archive → esm/modules/archive/unzip}/zip-parser.js +38 -24
  188. package/dist/esm/modules/archive/utils/async-queue.js +103 -0
  189. package/dist/esm/modules/archive/utils/bytes.js +16 -16
  190. package/dist/esm/modules/archive/utils/compressibility.js +57 -0
  191. package/dist/esm/modules/archive/utils/parse-buffer.js +21 -23
  192. package/dist/esm/modules/archive/utils/pattern-scanner.js +27 -0
  193. package/dist/esm/modules/archive/utils/timestamps.js +62 -1
  194. package/dist/esm/modules/archive/utils/zip-extra-fields.js +26 -14
  195. package/dist/esm/modules/archive/zip/index.js +157 -0
  196. package/dist/esm/modules/archive/{streaming-zip.js → zip/stream.js} +192 -48
  197. package/dist/esm/modules/archive/zip/zip-bytes.js +239 -0
  198. package/dist/{browser/modules/archive → esm/modules/archive/zip}/zip-entry-metadata.js +3 -3
  199. package/dist/esm/modules/archive/zip-spec/zip-records.js +126 -0
  200. package/dist/esm/modules/excel/stream/workbook-reader.browser.js +1 -1
  201. package/dist/esm/modules/excel/stream/workbook-writer.browser.js +1 -1
  202. package/dist/esm/modules/excel/utils/ooxml-validator.js +469 -0
  203. package/dist/esm/modules/excel/utils/parse-sax.js +32 -13
  204. package/dist/esm/modules/excel/worksheet.js +5 -2
  205. package/dist/esm/modules/excel/xlsx/xform/core/app-xform.js +3 -3
  206. package/dist/esm/modules/excel/xlsx/xform/core/core-xform.js +56 -68
  207. package/dist/esm/modules/excel/xlsx/xform/drawing/ctrl-prop-xform.js +13 -1
  208. package/dist/esm/modules/excel/xlsx/xform/drawing/sp-xform.js +112 -0
  209. package/dist/esm/modules/excel/xlsx/xform/drawing/two-cell-anchor-xform.js +30 -2
  210. package/dist/esm/modules/excel/xlsx/xform/drawing/vml-drawing-xform.js +11 -0
  211. package/dist/esm/modules/excel/xlsx/xform/list-xform.js +8 -10
  212. package/dist/esm/modules/excel/xlsx/xform/sheet/page-setup-xform.js +16 -2
  213. package/dist/esm/modules/excel/xlsx/xform/sheet/worksheet-xform.js +110 -12
  214. package/dist/esm/modules/excel/xlsx/xform/strings/shared-string-xform.js +2 -3
  215. package/dist/esm/modules/excel/xlsx/xform/strings/text-xform.js +5 -7
  216. package/dist/esm/modules/excel/xlsx/xlsx.browser.js +11 -10
  217. package/dist/esm/modules/excel/xlsx/xlsx.js +1 -1
  218. package/dist/esm/modules/stream/base-transform.js +34 -20
  219. package/dist/esm/modules/stream/chunked-builder.js +4 -4
  220. package/dist/esm/modules/stream/index.browser.js +10 -22
  221. package/dist/esm/modules/stream/index.js +15 -44
  222. package/dist/esm/modules/stream/internal/event-utils.js +40 -0
  223. package/dist/esm/modules/stream/internal/type-guards.js +24 -0
  224. package/dist/esm/modules/stream/pull-stream.js +107 -43
  225. package/dist/esm/modules/stream/shared.js +7 -4
  226. package/dist/esm/modules/stream/streams.browser.js +921 -836
  227. package/dist/esm/modules/stream/streams.js +146 -95
  228. package/dist/esm/modules/stream/utils.js +5 -38
  229. package/dist/iife/THIRD_PARTY_NOTICES.md +0 -31
  230. package/dist/iife/excelts.iife.js +6592 -4537
  231. package/dist/iife/excelts.iife.js.map +1 -1
  232. package/dist/iife/excelts.iife.min.js +103 -31
  233. package/dist/types/index.browser.d.ts +1 -0
  234. package/dist/{browser/modules/archive → types/modules/archive/compression}/compress.browser.d.ts +2 -8
  235. package/dist/types/modules/archive/{streaming-compress.browser.d.ts → compression/streaming-compress.browser.d.ts} +1 -1
  236. package/dist/types/modules/archive/defaults.d.ts +1 -0
  237. package/dist/types/modules/archive/index.base.d.ts +4 -4
  238. package/dist/types/modules/archive/index.browser.d.ts +3 -4
  239. package/dist/types/modules/archive/index.d.ts +3 -4
  240. package/dist/types/modules/archive/internal/byte-queue.d.ts +33 -0
  241. package/dist/types/modules/archive/io/archive-sink.d.ts +8 -0
  242. package/dist/types/modules/archive/io/archive-source.d.ts +6 -0
  243. package/dist/types/modules/archive/unzip/index.d.ts +40 -0
  244. package/dist/types/modules/archive/{parse.base.d.ts → unzip/stream.base.d.ts} +38 -4
  245. package/dist/types/modules/archive/{parse.browser.d.ts → unzip/stream.browser.d.ts} +2 -2
  246. package/dist/types/modules/archive/{parse.d.ts → unzip/stream.d.ts} +3 -3
  247. package/dist/types/modules/archive/{zip-parser.d.ts → unzip/zip-parser.d.ts} +1 -1
  248. package/dist/types/modules/archive/utils/async-queue.d.ts +7 -0
  249. package/dist/types/modules/archive/utils/compressibility.d.ts +10 -0
  250. package/dist/types/modules/archive/utils/pattern-scanner.d.ts +21 -0
  251. package/dist/types/modules/archive/utils/zip-extra-fields.d.ts +1 -1
  252. package/dist/types/modules/archive/zip/index.d.ts +42 -0
  253. package/dist/types/modules/archive/{streaming-zip.d.ts → zip/stream.d.ts} +29 -6
  254. package/dist/types/modules/archive/zip/zip-bytes.d.ts +73 -0
  255. package/dist/types/modules/archive/{zip-entry-metadata.d.ts → zip/zip-entry-metadata.d.ts} +1 -1
  256. package/dist/types/modules/archive/{zip-records.d.ts → zip-spec/zip-records.d.ts} +20 -0
  257. package/dist/types/modules/excel/stream/workbook-writer.browser.d.ts +1 -1
  258. package/dist/types/modules/excel/utils/ooxml-validator.d.ts +48 -0
  259. package/dist/types/modules/excel/utils/parse-sax.d.ts +3 -0
  260. package/dist/types/modules/excel/xlsx/xform/drawing/ctrl-prop-xform.d.ts +1 -0
  261. package/dist/types/modules/excel/xlsx/xform/drawing/sp-xform.d.ts +18 -0
  262. package/dist/types/modules/excel/xlsx/xform/drawing/two-cell-anchor-xform.d.ts +6 -1
  263. package/dist/types/modules/excel/xlsx/xform/sheet/page-setup-xform.d.ts +1 -0
  264. package/dist/types/modules/stream/base-transform.d.ts +3 -0
  265. package/dist/types/modules/stream/buffered-stream.d.ts +2 -12
  266. package/dist/types/modules/stream/index.browser.d.ts +13 -19
  267. package/dist/types/modules/stream/index.d.ts +18 -41
  268. package/dist/types/modules/stream/internal/event-utils.d.ts +17 -0
  269. package/dist/types/modules/stream/internal/type-guards.d.ts +9 -0
  270. package/dist/types/modules/stream/pull-stream.d.ts +5 -6
  271. package/dist/types/modules/stream/shared.d.ts +1 -1
  272. package/dist/types/modules/stream/streams.browser.d.ts +32 -44
  273. package/dist/types/modules/stream/streams.d.ts +4 -20
  274. package/package.json +14 -10
  275. package/dist/browser/modules/archive/byte-queue.d.ts +0 -18
  276. package/dist/browser/modules/archive/byte-queue.js +0 -125
  277. package/dist/browser/modules/archive/parse.base.js +0 -644
  278. package/dist/browser/modules/archive/utils/zip-extra.d.ts +0 -18
  279. package/dist/browser/modules/archive/utils/zip-extra.js +0 -68
  280. package/dist/browser/modules/archive/zip-builder.d.ts +0 -117
  281. package/dist/browser/modules/archive/zip-builder.js +0 -292
  282. package/dist/browser/modules/archive/zip-constants.d.ts +0 -18
  283. package/dist/browser/modules/archive/zip-constants.js +0 -23
  284. package/dist/browser/modules/archive/zip-records.js +0 -84
  285. package/dist/cjs/modules/archive/byte-queue.js +0 -129
  286. package/dist/cjs/modules/archive/parse.base.js +0 -666
  287. package/dist/cjs/modules/archive/utils/zip-extra.js +0 -74
  288. package/dist/cjs/modules/archive/zip-builder.js +0 -297
  289. package/dist/cjs/modules/archive/zip-constants.js +0 -26
  290. package/dist/cjs/modules/archive/zip-records.js +0 -90
  291. package/dist/esm/modules/archive/byte-queue.js +0 -125
  292. package/dist/esm/modules/archive/parse.base.js +0 -644
  293. package/dist/esm/modules/archive/utils/zip-extra.js +0 -68
  294. package/dist/esm/modules/archive/zip-builder.js +0 -292
  295. package/dist/esm/modules/archive/zip-constants.js +0 -23
  296. package/dist/esm/modules/archive/zip-records.js +0 -84
  297. package/dist/types/modules/archive/byte-queue.d.ts +0 -18
  298. package/dist/types/modules/archive/utils/zip-extra.d.ts +0 -18
  299. package/dist/types/modules/archive/zip-builder.d.ts +0 -117
  300. package/dist/types/modules/archive/zip-constants.d.ts +0 -18
  301. /package/dist/browser/modules/archive/{compress.base.d.ts → compression/compress.base.d.ts} +0 -0
  302. /package/dist/browser/modules/archive/{crc32.base.d.ts → compression/crc32.base.d.ts} +0 -0
  303. /package/dist/browser/modules/archive/{crc32.base.js → compression/crc32.base.js} +0 -0
  304. /package/dist/browser/modules/archive/{crc32.browser.js → compression/crc32.browser.js} +0 -0
  305. /package/dist/browser/modules/archive/{deflate-fallback.d.ts → compression/deflate-fallback.d.ts} +0 -0
  306. /package/dist/browser/modules/archive/{streaming-compress.base.d.ts → compression/streaming-compress.base.d.ts} +0 -0
  307. /package/dist/browser/modules/archive/{streaming-compress.base.js → compression/streaming-compress.base.js} +0 -0
  308. /package/dist/browser/modules/archive/{extract.js → unzip/extract.js} +0 -0
  309. /package/dist/browser/modules/archive/{zip-entry-metadata.d.ts → zip/zip-entry-metadata.d.ts} +0 -0
  310. /package/dist/browser/modules/archive/{zip-entry-info.d.ts → zip-spec/zip-entry-info.d.ts} +0 -0
  311. /package/dist/browser/modules/archive/{zip-entry-info.js → zip-spec/zip-entry-info.js} +0 -0
  312. /package/dist/cjs/modules/archive/{crc32.base.js → compression/crc32.base.js} +0 -0
  313. /package/dist/cjs/modules/archive/{crc32.browser.js → compression/crc32.browser.js} +0 -0
  314. /package/dist/cjs/modules/archive/{streaming-compress.base.js → compression/streaming-compress.base.js} +0 -0
  315. /package/dist/cjs/modules/archive/{extract.js → unzip/extract.js} +0 -0
  316. /package/dist/cjs/modules/archive/{zip-entry-info.js → zip-spec/zip-entry-info.js} +0 -0
  317. /package/dist/esm/modules/archive/{crc32.base.js → compression/crc32.base.js} +0 -0
  318. /package/dist/esm/modules/archive/{crc32.browser.js → compression/crc32.browser.js} +0 -0
  319. /package/dist/esm/modules/archive/{streaming-compress.base.js → compression/streaming-compress.base.js} +0 -0
  320. /package/dist/esm/modules/archive/{extract.js → unzip/extract.js} +0 -0
  321. /package/dist/esm/modules/archive/{zip-entry-info.js → zip-spec/zip-entry-info.js} +0 -0
  322. /package/dist/types/modules/archive/{compress.base.d.ts → compression/compress.base.d.ts} +0 -0
  323. /package/dist/types/modules/archive/{compress.d.ts → compression/compress.d.ts} +0 -0
  324. /package/dist/types/modules/archive/{crc32.base.d.ts → compression/crc32.base.d.ts} +0 -0
  325. /package/dist/types/modules/archive/{crc32.browser.d.ts → compression/crc32.browser.d.ts} +0 -0
  326. /package/dist/types/modules/archive/{crc32.d.ts → compression/crc32.d.ts} +0 -0
  327. /package/dist/types/modules/archive/{deflate-fallback.d.ts → compression/deflate-fallback.d.ts} +0 -0
  328. /package/dist/types/modules/archive/{streaming-compress.base.d.ts → compression/streaming-compress.base.d.ts} +0 -0
  329. /package/dist/types/modules/archive/{streaming-compress.d.ts → compression/streaming-compress.d.ts} +0 -0
  330. /package/dist/types/modules/archive/{extract.d.ts → unzip/extract.d.ts} +0 -0
  331. /package/dist/types/modules/archive/{zip-entry-info.d.ts → zip-spec/zip-entry-info.d.ts} +0 -0
@@ -0,0 +1,242 @@
1
+ "use strict";
2
+ /**
3
+ * ZIP file format encoder (single-buffer output)
4
+ *
5
+ * Implements ZIP file structure according to PKWARE's APPNOTE.TXT specification
6
+ * https://pkware.cachefly.net/webdocs/casestudies/APPNOTE.TXT
7
+ *
8
+ * This module focuses on producing a complete ZIP as a single Uint8Array.
9
+ * For true streaming (push chunks while reading sources), use `zip()` / `ZipArchive.stream()`.
10
+ */
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.createZip = createZip;
13
+ exports.createZipSync = createZipSync;
14
+ const compress_1 = require("../compression/compress.js");
15
+ const crc32_1 = require("../compression/crc32.js");
16
+ const defaults_1 = require("../defaults.js");
17
+ const compressibility_1 = require("../utils/compressibility.js");
18
+ const text_1 = require("../utils/text.js");
19
+ const zip_entry_metadata_1 = require("./zip-entry-metadata.js");
20
+ const zip_records_1 = require("../zip-spec/zip-records.js");
21
+ const REPRODUCIBLE_ZIP_MOD_TIME = new Date(1980, 0, 1, 0, 0, 0);
22
+ function encodeZipComment(comment) {
23
+ // Keep empty comment as empty bytes (no encoding surprises).
24
+ return comment ? (0, text_1.encodeUtf8)(comment) : new Uint8Array(0);
25
+ }
26
+ function shouldDeflate(level, data) {
27
+ return level > 0 && data.length > 0;
28
+ }
29
+ async function compressEntryMaybe(entry, level, compressOptions, smartStore) {
30
+ if (!shouldDeflate(level, entry.data)) {
31
+ return { compressedData: entry.data, deflate: false };
32
+ }
33
+ if (!smartStore) {
34
+ const compressed = await (0, compress_1.compress)(entry.data, compressOptions);
35
+ return { compressedData: compressed, deflate: true };
36
+ }
37
+ // Heuristic: skip deflate for high-entropy inputs.
38
+ if ((0, compressibility_1.isProbablyIncompressible)(entry.data)) {
39
+ return { compressedData: entry.data, deflate: false };
40
+ }
41
+ const compressed = await (0, compress_1.compress)(entry.data, compressOptions);
42
+ if (compressed.length >= entry.data.length) {
43
+ return { compressedData: entry.data, deflate: false };
44
+ }
45
+ return { compressedData: compressed, deflate: true };
46
+ }
47
+ function compressEntryMaybeSync(entry, level, compressOptions, smartStore) {
48
+ if (!shouldDeflate(level, entry.data)) {
49
+ return { compressedData: entry.data, deflate: false };
50
+ }
51
+ if (!smartStore) {
52
+ const compressed = (0, compress_1.compressSync)(entry.data, compressOptions);
53
+ return { compressedData: compressed, deflate: true };
54
+ }
55
+ if ((0, compressibility_1.isProbablyIncompressible)(entry.data)) {
56
+ return { compressedData: entry.data, deflate: false };
57
+ }
58
+ const compressed = (0, compress_1.compressSync)(entry.data, compressOptions);
59
+ if (compressed.length >= entry.data.length) {
60
+ return { compressedData: entry.data, deflate: false };
61
+ }
62
+ return { compressedData: compressed, deflate: true };
63
+ }
64
+ function computeLocalRecordSize(entry) {
65
+ return (zip_records_1.ZIP_LOCAL_FILE_HEADER_FIXED_SIZE +
66
+ entry.name.length +
67
+ entry.extraField.length +
68
+ entry.compressedData.length);
69
+ }
70
+ function computeCentralDirHeaderSize(entry) {
71
+ return (zip_records_1.ZIP_CENTRAL_DIR_HEADER_FIXED_SIZE +
72
+ entry.name.length +
73
+ entry.extraField.length +
74
+ entry.comment.length);
75
+ }
76
+ function buildProcessedEntry(entry, offset, settings, compressedData, deflate) {
77
+ const modDate = entry.modTime ?? settings.defaultModTime;
78
+ const metadata = (0, zip_entry_metadata_1.buildZipEntryMetadata)({
79
+ name: entry.name,
80
+ comment: entry.comment,
81
+ modTime: modDate,
82
+ timestamps: settings.timestamps,
83
+ useDataDescriptor: false,
84
+ deflate
85
+ });
86
+ return {
87
+ name: metadata.nameBytes,
88
+ uncompressedSize: entry.data.length,
89
+ compressedData,
90
+ crc: (0, crc32_1.crc32)(entry.data),
91
+ compressionMethod: (0, zip_entry_metadata_1.resolveZipCompressionMethod)(deflate),
92
+ modTime: metadata.dosTime,
93
+ modDate: metadata.dosDate,
94
+ extraField: metadata.extraField,
95
+ comment: metadata.commentBytes,
96
+ offset
97
+ };
98
+ }
99
+ function appendProcessedEntry(processedEntries, entry, compressedData, deflate, currentOffset, settings) {
100
+ const processedEntry = buildProcessedEntry(entry, currentOffset, settings, compressedData, deflate);
101
+ processedEntries.push(processedEntry);
102
+ return {
103
+ processedEntry,
104
+ nextOffset: currentOffset + computeLocalRecordSize(processedEntry)
105
+ };
106
+ }
107
+ function finalizeZip(processedEntries, zipComment) {
108
+ // Assemble ZIP into a single buffer to reduce allocations and copying.
109
+ let localSectionSize = 0;
110
+ let centralDirSize = 0;
111
+ for (const entry of processedEntries) {
112
+ localSectionSize += computeLocalRecordSize(entry);
113
+ centralDirSize += computeCentralDirHeaderSize(entry);
114
+ }
115
+ // The central directory should start immediately after local section.
116
+ const centralDirOffset = localSectionSize;
117
+ const totalSize = localSectionSize + centralDirSize + zip_records_1.ZIP_END_OF_CENTRAL_DIR_FIXED_SIZE + zipComment.length;
118
+ const out = new Uint8Array(totalSize);
119
+ const view = new DataView(out.buffer, out.byteOffset, out.byteLength);
120
+ let offset = 0;
121
+ // Local file headers and data
122
+ for (const entry of processedEntries) {
123
+ offset += (0, zip_records_1.writeLocalFileHeaderInto)(out, view, offset, {
124
+ fileName: entry.name,
125
+ extraField: entry.extraField,
126
+ flags: zip_records_1.FLAG_UTF8,
127
+ compressionMethod: entry.compressionMethod,
128
+ dosTime: entry.modTime,
129
+ dosDate: entry.modDate,
130
+ crc32: entry.crc,
131
+ compressedSize: entry.compressedData.length,
132
+ uncompressedSize: entry.uncompressedSize
133
+ });
134
+ out.set(entry.compressedData, offset);
135
+ offset += entry.compressedData.length;
136
+ }
137
+ // Central directory headers
138
+ for (const entry of processedEntries) {
139
+ offset += (0, zip_records_1.writeCentralDirectoryHeaderInto)(out, view, offset, {
140
+ fileName: entry.name,
141
+ extraField: entry.extraField,
142
+ comment: entry.comment,
143
+ flags: zip_records_1.FLAG_UTF8,
144
+ compressionMethod: entry.compressionMethod,
145
+ dosTime: entry.modTime,
146
+ dosDate: entry.modDate,
147
+ crc32: entry.crc,
148
+ compressedSize: entry.compressedData.length,
149
+ uncompressedSize: entry.uncompressedSize,
150
+ localHeaderOffset: entry.offset
151
+ });
152
+ }
153
+ // End of central directory
154
+ (0, zip_records_1.writeEndOfCentralDirectoryInto)(out, view, offset, {
155
+ entryCount: processedEntries.length,
156
+ centralDirSize,
157
+ centralDirOffset,
158
+ comment: zipComment
159
+ });
160
+ return out;
161
+ }
162
+ /**
163
+ * Create a ZIP file from entries (async)
164
+ */
165
+ async function createZip(entries, options = {}) {
166
+ const reproducible = options.reproducible ?? false;
167
+ const level = options.level ?? defaults_1.DEFAULT_ZIP_LEVEL;
168
+ const smartStore = options.smartStore ?? true;
169
+ const concurrency = options.concurrency ?? 4;
170
+ const timestamps = options.timestamps ?? (reproducible ? "dos" : defaults_1.DEFAULT_ZIP_TIMESTAMPS);
171
+ const zipComment = encodeZipComment(options.comment);
172
+ const defaultModTime = options.modTime ?? (reproducible ? REPRODUCIBLE_ZIP_MOD_TIME : new Date());
173
+ const settings = {
174
+ level,
175
+ timestamps,
176
+ defaultModTime
177
+ };
178
+ const thresholdBytes = options.thresholdBytes;
179
+ const limit = Math.max(1, Math.floor(concurrency));
180
+ const processedEntries = new Array(entries.length);
181
+ if (entries.length > 0) {
182
+ let nextIndex = 0;
183
+ const workerCount = Math.min(limit, entries.length);
184
+ const workers = Array.from({ length: workerCount }, async () => {
185
+ while (true) {
186
+ const idx = nextIndex++;
187
+ if (idx >= entries.length) {
188
+ return;
189
+ }
190
+ const entry = entries[idx];
191
+ const entryLevel = entry.level ?? level;
192
+ const compressOptions = {
193
+ level: entryLevel,
194
+ thresholdBytes
195
+ };
196
+ const { compressedData, deflate } = await compressEntryMaybe(entry, entryLevel, compressOptions, smartStore);
197
+ processedEntries[idx] = buildProcessedEntry(entry, 0, settings, compressedData, deflate);
198
+ }
199
+ });
200
+ await Promise.all(workers);
201
+ }
202
+ // Compute offsets in original order.
203
+ let currentOffset = 0;
204
+ for (let i = 0; i < processedEntries.length; i++) {
205
+ const processedEntry = processedEntries[i];
206
+ processedEntry.offset = currentOffset;
207
+ currentOffset += computeLocalRecordSize(processedEntry);
208
+ }
209
+ return finalizeZip(processedEntries, zipComment);
210
+ }
211
+ /**
212
+ * Create a ZIP file from entries (sync)
213
+ *
214
+ * This is supported in both Node.js and browser builds.
215
+ */
216
+ function createZipSync(entries, options = {}) {
217
+ const reproducible = options.reproducible ?? false;
218
+ const level = options.level ?? defaults_1.DEFAULT_ZIP_LEVEL;
219
+ const smartStore = options.smartStore ?? true;
220
+ const timestamps = options.timestamps ?? (reproducible ? "dos" : defaults_1.DEFAULT_ZIP_TIMESTAMPS);
221
+ const zipComment = encodeZipComment(options.comment);
222
+ const defaultModTime = options.modTime ?? (reproducible ? REPRODUCIBLE_ZIP_MOD_TIME : new Date());
223
+ const settings = {
224
+ level,
225
+ timestamps,
226
+ defaultModTime
227
+ };
228
+ const thresholdBytes = options.thresholdBytes;
229
+ const processedEntries = [];
230
+ let currentOffset = 0;
231
+ for (const entry of entries) {
232
+ const entryLevel = entry.level ?? level;
233
+ const compressOptions = {
234
+ level: entryLevel,
235
+ thresholdBytes
236
+ };
237
+ const { compressedData, deflate } = compressEntryMaybeSync(entry, entryLevel, compressOptions, smartStore);
238
+ const result = appendProcessedEntry(processedEntries, entry, compressedData, deflate, currentOffset, settings);
239
+ currentOffset = result.nextOffset;
240
+ }
241
+ return finalizeZip(processedEntries, zipComment);
242
+ }
@@ -3,14 +3,14 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.resolveZipCompressionMethod = resolveZipCompressionMethod;
4
4
  exports.resolveZipFlags = resolveZipFlags;
5
5
  exports.buildZipEntryMetadata = buildZipEntryMetadata;
6
- const text_1 = require("./utils/text.js");
7
- const timestamps_1 = require("./utils/timestamps.js");
8
- const zip_constants_1 = require("./zip-constants.js");
6
+ const text_1 = require("../utils/text.js");
7
+ const timestamps_1 = require("../utils/timestamps.js");
8
+ const zip_records_1 = require("../zip-spec/zip-records.js");
9
9
  function resolveZipCompressionMethod(deflate) {
10
- return deflate ? zip_constants_1.COMPRESSION_DEFLATE : zip_constants_1.COMPRESSION_STORE;
10
+ return deflate ? zip_records_1.COMPRESSION_DEFLATE : zip_records_1.COMPRESSION_STORE;
11
11
  }
12
12
  function resolveZipFlags(useDataDescriptor) {
13
- return useDataDescriptor ? zip_constants_1.FLAG_UTF8 | zip_constants_1.FLAG_DATA_DESCRIPTOR : zip_constants_1.FLAG_UTF8;
13
+ return useDataDescriptor ? zip_records_1.FLAG_UTF8 | zip_records_1.FLAG_DATA_DESCRIPTOR : zip_records_1.FLAG_UTF8;
14
14
  }
15
15
  function buildZipEntryMetadata(input) {
16
16
  const nameBytes = (0, text_1.encodeUtf8)(input.name);
@@ -0,0 +1,136 @@
1
+ "use strict";
2
+ /**
3
+ * ZIP record builders (PKWARE APPNOTE)
4
+ *
5
+ * Shared by streaming zip writer and buffer zip builder.
6
+ */
7
+ Object.defineProperty(exports, "__esModule", { value: true });
8
+ exports.ZIP_END_OF_CENTRAL_DIR_FIXED_SIZE = exports.ZIP_CENTRAL_DIR_HEADER_FIXED_SIZE = exports.ZIP_LOCAL_FILE_HEADER_FIXED_SIZE = exports.UINT32_MAX = exports.UINT16_MAX = exports.FLAG_DATA_DESCRIPTOR = exports.FLAG_UTF8 = exports.COMPRESSION_DEFLATE = exports.COMPRESSION_STORE = exports.VERSION_MADE_BY = exports.VERSION_NEEDED = exports.ZIP64_END_OF_CENTRAL_DIR_LOCATOR_SIG = exports.ZIP64_END_OF_CENTRAL_DIR_SIG = exports.DATA_DESCRIPTOR_SIG = exports.END_OF_CENTRAL_DIR_SIG = exports.CENTRAL_DIR_HEADER_SIG = exports.LOCAL_FILE_HEADER_SIG = void 0;
9
+ exports.writeLocalFileHeaderInto = writeLocalFileHeaderInto;
10
+ exports.buildLocalFileHeader = buildLocalFileHeader;
11
+ exports.writeCentralDirectoryHeaderInto = writeCentralDirectoryHeaderInto;
12
+ exports.buildCentralDirectoryHeader = buildCentralDirectoryHeader;
13
+ exports.writeEndOfCentralDirectoryInto = writeEndOfCentralDirectoryInto;
14
+ exports.buildEndOfCentralDirectory = buildEndOfCentralDirectory;
15
+ exports.buildDataDescriptor = buildDataDescriptor;
16
+ // =============================================================================
17
+ // ZIP format constants (PKWARE APPNOTE)
18
+ // =============================================================================
19
+ // Signatures
20
+ exports.LOCAL_FILE_HEADER_SIG = 0x04034b50;
21
+ exports.CENTRAL_DIR_HEADER_SIG = 0x02014b50;
22
+ exports.END_OF_CENTRAL_DIR_SIG = 0x06054b50;
23
+ exports.DATA_DESCRIPTOR_SIG = 0x08074b50;
24
+ exports.ZIP64_END_OF_CENTRAL_DIR_SIG = 0x06064b50;
25
+ exports.ZIP64_END_OF_CENTRAL_DIR_LOCATOR_SIG = 0x07064b50;
26
+ // Versions
27
+ exports.VERSION_NEEDED = 20; // 2.0 - supports DEFLATE
28
+ exports.VERSION_MADE_BY = 20; // 2.0
29
+ // Compression methods
30
+ exports.COMPRESSION_STORE = 0;
31
+ exports.COMPRESSION_DEFLATE = 8;
32
+ // General purpose bit flags
33
+ exports.FLAG_UTF8 = 0x0800;
34
+ exports.FLAG_DATA_DESCRIPTOR = 0x0008;
35
+ // ZIP64 / sentinel sizes
36
+ exports.UINT16_MAX = 0xffff;
37
+ exports.UINT32_MAX = 0xffffffff;
38
+ exports.ZIP_LOCAL_FILE_HEADER_FIXED_SIZE = 30;
39
+ exports.ZIP_CENTRAL_DIR_HEADER_FIXED_SIZE = 46;
40
+ exports.ZIP_END_OF_CENTRAL_DIR_FIXED_SIZE = 22;
41
+ function writeLocalFileHeaderInto(out, view, offset, input) {
42
+ const versionNeeded = input.versionNeeded ?? exports.VERSION_NEEDED;
43
+ view.setUint32(offset + 0, exports.LOCAL_FILE_HEADER_SIG, true);
44
+ view.setUint16(offset + 4, versionNeeded, true);
45
+ view.setUint16(offset + 6, input.flags, true);
46
+ view.setUint16(offset + 8, input.compressionMethod, true);
47
+ view.setUint16(offset + 10, input.dosTime, true);
48
+ view.setUint16(offset + 12, input.dosDate, true);
49
+ view.setUint32(offset + 14, input.crc32, true);
50
+ view.setUint32(offset + 18, input.compressedSize, true);
51
+ view.setUint32(offset + 22, input.uncompressedSize, true);
52
+ view.setUint16(offset + 26, input.fileName.length, true);
53
+ view.setUint16(offset + 28, input.extraField.length, true);
54
+ out.set(input.fileName, offset + exports.ZIP_LOCAL_FILE_HEADER_FIXED_SIZE);
55
+ if (input.extraField.length > 0) {
56
+ out.set(input.extraField, offset + exports.ZIP_LOCAL_FILE_HEADER_FIXED_SIZE + input.fileName.length);
57
+ }
58
+ return exports.ZIP_LOCAL_FILE_HEADER_FIXED_SIZE + input.fileName.length + input.extraField.length;
59
+ }
60
+ function buildLocalFileHeader(input) {
61
+ const header = new Uint8Array(exports.ZIP_LOCAL_FILE_HEADER_FIXED_SIZE + input.fileName.length + input.extraField.length);
62
+ const view = new DataView(header.buffer, header.byteOffset, header.byteLength);
63
+ writeLocalFileHeaderInto(header, view, 0, input);
64
+ return header;
65
+ }
66
+ function writeCentralDirectoryHeaderInto(out, view, offset, input) {
67
+ const versionMadeBy = input.versionMadeBy ?? exports.VERSION_MADE_BY;
68
+ const versionNeeded = input.versionNeeded ?? exports.VERSION_NEEDED;
69
+ const externalAttributes = input.externalAttributes ?? 0;
70
+ view.setUint32(offset + 0, exports.CENTRAL_DIR_HEADER_SIG, true);
71
+ view.setUint16(offset + 4, versionMadeBy, true);
72
+ view.setUint16(offset + 6, versionNeeded, true);
73
+ view.setUint16(offset + 8, input.flags, true);
74
+ view.setUint16(offset + 10, input.compressionMethod, true);
75
+ view.setUint16(offset + 12, input.dosTime, true);
76
+ view.setUint16(offset + 14, input.dosDate, true);
77
+ view.setUint32(offset + 16, input.crc32, true);
78
+ view.setUint32(offset + 20, input.compressedSize, true);
79
+ view.setUint32(offset + 24, input.uncompressedSize, true);
80
+ view.setUint16(offset + 28, input.fileName.length, true);
81
+ view.setUint16(offset + 30, input.extraField.length, true);
82
+ view.setUint16(offset + 32, input.comment.length, true);
83
+ view.setUint16(offset + 34, 0, true); // disk number start
84
+ view.setUint16(offset + 36, 0, true); // internal file attributes
85
+ view.setUint32(offset + 38, externalAttributes, true);
86
+ view.setUint32(offset + 42, input.localHeaderOffset, true);
87
+ out.set(input.fileName, offset + exports.ZIP_CENTRAL_DIR_HEADER_FIXED_SIZE);
88
+ if (input.extraField.length > 0) {
89
+ out.set(input.extraField, offset + exports.ZIP_CENTRAL_DIR_HEADER_FIXED_SIZE + input.fileName.length);
90
+ }
91
+ if (input.comment.length > 0) {
92
+ out.set(input.comment, offset + exports.ZIP_CENTRAL_DIR_HEADER_FIXED_SIZE + input.fileName.length + input.extraField.length);
93
+ }
94
+ return (exports.ZIP_CENTRAL_DIR_HEADER_FIXED_SIZE +
95
+ input.fileName.length +
96
+ input.extraField.length +
97
+ input.comment.length);
98
+ }
99
+ function buildCentralDirectoryHeader(input) {
100
+ const header = new Uint8Array(exports.ZIP_CENTRAL_DIR_HEADER_FIXED_SIZE +
101
+ input.fileName.length +
102
+ input.extraField.length +
103
+ input.comment.length);
104
+ const view = new DataView(header.buffer, header.byteOffset, header.byteLength);
105
+ writeCentralDirectoryHeaderInto(header, view, 0, input);
106
+ return header;
107
+ }
108
+ function writeEndOfCentralDirectoryInto(out, view, offset, input) {
109
+ view.setUint32(offset + 0, exports.END_OF_CENTRAL_DIR_SIG, true);
110
+ view.setUint16(offset + 4, 0, true);
111
+ view.setUint16(offset + 6, 0, true);
112
+ view.setUint16(offset + 8, input.entryCount, true);
113
+ view.setUint16(offset + 10, input.entryCount, true);
114
+ view.setUint32(offset + 12, input.centralDirSize, true);
115
+ view.setUint32(offset + 16, input.centralDirOffset, true);
116
+ view.setUint16(offset + 20, input.comment.length, true);
117
+ if (input.comment.length > 0) {
118
+ out.set(input.comment, offset + exports.ZIP_END_OF_CENTRAL_DIR_FIXED_SIZE);
119
+ }
120
+ return exports.ZIP_END_OF_CENTRAL_DIR_FIXED_SIZE + input.comment.length;
121
+ }
122
+ function buildEndOfCentralDirectory(input) {
123
+ const record = new Uint8Array(exports.ZIP_END_OF_CENTRAL_DIR_FIXED_SIZE + input.comment.length);
124
+ const view = new DataView(record.buffer, record.byteOffset, record.byteLength);
125
+ writeEndOfCentralDirectoryInto(record, view, 0, input);
126
+ return record;
127
+ }
128
+ function buildDataDescriptor(crc32, compressedSize, uncompressedSize) {
129
+ const descriptor = new Uint8Array(16);
130
+ const view = new DataView(descriptor.buffer);
131
+ view.setUint32(0, exports.DATA_DESCRIPTOR_SIG, true);
132
+ view.setUint32(4, crc32, true);
133
+ view.setUint32(8, compressedSize, true);
134
+ view.setUint32(12, uncompressedSize, true);
135
+ return descriptor;
136
+ }
@@ -12,7 +12,7 @@
12
12
  Object.defineProperty(exports, "__esModule", { value: true });
13
13
  exports.WorkbookReader = exports.WorkbookReaderOptionsSchema = exports.WorkbookReaderBase = void 0;
14
14
  const _stream_1 = require("../../stream/index.js");
15
- const parse_1 = require("../../archive/parse.js");
15
+ const stream_1 = require("../../archive/unzip/stream.js");
16
16
  const iterate_stream_1 = require("../utils/iterate-stream.js");
17
17
  const ooxml_paths_1 = require("../utils/ooxml-paths.js");
18
18
  const parse_sax_1 = require("../utils/parse-sax.js");
@@ -359,7 +359,7 @@ class WorkbookReaderBase extends _stream_1.EventEmitter {
359
359
  }
360
360
  }
361
361
  async *_parseEntries(stream) {
362
- const zip = (0, parse_1.createParse)({ forceStream: true });
362
+ const zip = (0, stream_1.createParse)({ forceStream: true });
363
363
  stream.on("error", (err) => zip.emit("error", err));
364
364
  stream.pipe(zip);
365
365
  for await (const entry of (0, iterate_stream_1.iterateStream)(zip)) {
@@ -10,7 +10,7 @@
10
10
  */
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
12
  exports.WorkbookWriter = exports.WorkbookWriterOptionsSchema = exports.WorkbookWriterBase = void 0;
13
- const streaming_zip_1 = require("../../archive/streaming-zip.js");
13
+ const stream_1 = require("../../archive/zip/stream.js");
14
14
  const stream_buf_1 = require("../utils/stream-buf.js");
15
15
  const utils_1 = require("../../../utils/utils.js");
16
16
  const rel_type_1 = require("../xlsx/rel-type.js");
@@ -54,7 +54,7 @@ class WorkbookWriterBase {
54
54
  this.commentRefs = [];
55
55
  this._trueStreaming = options.trueStreaming ?? false;
56
56
  // Create Zip instance
57
- this.zip = new streaming_zip_1.Zip((err, data, final) => {
57
+ this.zip = new stream_1.Zip((err, data, final) => {
58
58
  if (err) {
59
59
  this.stream.emit("error", err);
60
60
  }
@@ -88,7 +88,7 @@ class WorkbookWriterBase {
88
88
  bufSize: this._trueStreaming ? 4096 : 65536,
89
89
  batch: !this._trueStreaming
90
90
  });
91
- const zipFile = new streaming_zip_1.ZipDeflate(path, { level: this.compressionLevel });
91
+ const zipFile = new stream_1.ZipDeflate(path, { level: this.compressionLevel });
92
92
  this.zip.add(zipFile);
93
93
  const onData = (chunk) => zipFile.push(chunk);
94
94
  stream.on("data", onData);
@@ -100,7 +100,7 @@ class WorkbookWriterBase {
100
100
  return stream;
101
101
  }
102
102
  _addFile(data, name, base64) {
103
- const zipFile = new streaming_zip_1.ZipDeflate(name, { level: this.compressionLevel });
103
+ const zipFile = new stream_1.ZipDeflate(name, { level: this.compressionLevel });
104
104
  this.zip.add(zipFile);
105
105
  let buffer;
106
106
  if (base64) {