@cj-tech-master/excelts 4.2.1-canary.20260111102127.f808a37 → 4.2.1

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 (232) hide show
  1. package/THIRD_PARTY_NOTICES.md +31 -0
  2. package/dist/browser/index.browser.d.ts +0 -1
  3. package/dist/browser/index.browser.js +0 -12
  4. package/dist/browser/modules/archive/byte-queue.d.ts +18 -0
  5. package/dist/browser/modules/archive/byte-queue.js +125 -0
  6. package/dist/browser/modules/archive/{compression/compress.base.js → compress.base.js} +1 -1
  7. package/dist/browser/modules/archive/{compression/compress.browser.d.ts → compress.browser.d.ts} +8 -2
  8. package/dist/{esm/modules/archive/compression → browser/modules/archive}/compress.browser.js +11 -3
  9. package/dist/browser/modules/archive/{compression/compress.d.ts → compress.d.ts} +2 -2
  10. package/dist/{esm/modules/archive/compression → browser/modules/archive}/compress.js +1 -1
  11. package/dist/browser/modules/archive/{compression/crc32.browser.d.ts → crc32.browser.d.ts} +1 -1
  12. package/dist/browser/modules/archive/{compression/crc32.d.ts → crc32.d.ts} +1 -1
  13. package/dist/browser/modules/archive/{compression/crc32.js → crc32.js} +1 -1
  14. package/dist/browser/modules/archive/defaults.d.ts +0 -1
  15. package/dist/browser/modules/archive/defaults.js +3 -6
  16. package/dist/browser/modules/archive/{compression/deflate-fallback.js → deflate-fallback.js} +1 -1
  17. package/dist/browser/modules/archive/{unzip/extract.d.ts → extract.d.ts} +2 -2
  18. package/dist/browser/modules/archive/index.base.d.ts +4 -4
  19. package/dist/browser/modules/archive/index.base.js +6 -3
  20. package/dist/browser/modules/archive/index.browser.d.ts +4 -3
  21. package/dist/browser/modules/archive/index.browser.js +7 -3
  22. package/dist/browser/modules/archive/index.d.ts +4 -3
  23. package/dist/browser/modules/archive/index.js +5 -3
  24. package/dist/browser/modules/archive/{unzip/stream.base.d.ts → parse.base.d.ts} +2 -36
  25. package/dist/browser/modules/archive/parse.base.js +644 -0
  26. package/dist/browser/modules/archive/{unzip/stream.browser.d.ts → parse.browser.d.ts} +1 -1
  27. package/dist/{esm/modules/archive/unzip/stream.browser.js → browser/modules/archive/parse.browser.js} +110 -371
  28. package/dist/browser/modules/archive/{unzip/stream.d.ts → parse.d.ts} +2 -2
  29. package/dist/{esm/modules/archive/unzip/stream.js → browser/modules/archive/parse.js} +5 -6
  30. package/dist/browser/modules/archive/{compression/streaming-compress.browser.d.ts → streaming-compress.browser.d.ts} +2 -2
  31. package/dist/browser/modules/archive/{compression/streaming-compress.browser.js → streaming-compress.browser.js} +3 -3
  32. package/dist/browser/modules/archive/{compression/streaming-compress.d.ts → streaming-compress.d.ts} +2 -2
  33. package/dist/browser/modules/archive/{compression/streaming-compress.js → streaming-compress.js} +2 -2
  34. package/dist/browser/modules/archive/{zip/stream.d.ts → streaming-zip.d.ts} +5 -28
  35. package/dist/{esm/modules/archive/zip/stream.js → browser/modules/archive/streaming-zip.js} +48 -192
  36. package/dist/browser/modules/archive/utils/bytes.js +16 -16
  37. package/dist/browser/modules/archive/utils/parse-buffer.js +23 -21
  38. package/dist/browser/modules/archive/utils/timestamps.js +1 -62
  39. package/dist/browser/modules/archive/utils/zip-extra-fields.d.ts +1 -1
  40. package/dist/browser/modules/archive/utils/zip-extra-fields.js +14 -26
  41. package/dist/browser/modules/archive/utils/zip-extra.d.ts +18 -0
  42. package/dist/browser/modules/archive/utils/zip-extra.js +68 -0
  43. package/dist/browser/modules/archive/zip-builder.d.ts +117 -0
  44. package/dist/browser/modules/archive/zip-builder.js +292 -0
  45. package/dist/browser/modules/archive/zip-constants.d.ts +18 -0
  46. package/dist/browser/modules/archive/zip-constants.js +23 -0
  47. package/dist/{esm/modules/archive/zip → browser/modules/archive}/zip-entry-metadata.js +3 -3
  48. package/dist/{types/modules/archive/unzip → browser/modules/archive}/zip-parser.d.ts +1 -1
  49. package/dist/{esm/modules/archive/unzip → browser/modules/archive}/zip-parser.js +24 -38
  50. package/dist/browser/modules/archive/{zip-spec/zip-records.d.ts → zip-records.d.ts} +0 -20
  51. package/dist/browser/modules/archive/zip-records.js +84 -0
  52. package/dist/browser/modules/excel/stream/workbook-reader.browser.js +1 -1
  53. package/dist/browser/modules/excel/stream/workbook-writer.browser.d.ts +1 -1
  54. package/dist/browser/modules/excel/stream/workbook-writer.browser.js +1 -1
  55. package/dist/browser/modules/excel/xlsx/xlsx.browser.js +6 -3
  56. package/dist/browser/modules/excel/xlsx/xlsx.js +1 -1
  57. package/dist/browser/modules/stream/streams.browser.d.ts +30 -28
  58. package/dist/browser/modules/stream/streams.browser.js +710 -830
  59. package/dist/browser/modules/stream/streams.js +58 -140
  60. package/dist/cjs/modules/archive/byte-queue.js +129 -0
  61. package/dist/cjs/modules/archive/{compression/compress.base.js → compress.base.js} +1 -1
  62. package/dist/cjs/modules/archive/{compression/compress.browser.js → compress.browser.js} +11 -3
  63. package/dist/cjs/modules/archive/{compression/compress.js → compress.js} +1 -1
  64. package/dist/cjs/modules/archive/{compression/crc32.js → crc32.js} +1 -1
  65. package/dist/cjs/modules/archive/defaults.js +4 -7
  66. package/dist/cjs/modules/archive/{compression/deflate-fallback.js → deflate-fallback.js} +1 -1
  67. package/dist/cjs/modules/archive/index.base.js +19 -9
  68. package/dist/cjs/modules/archive/index.browser.js +10 -4
  69. package/dist/cjs/modules/archive/index.js +8 -4
  70. package/dist/cjs/modules/archive/parse.base.js +666 -0
  71. package/dist/cjs/modules/archive/{unzip/stream.browser.js → parse.browser.js} +111 -372
  72. package/dist/cjs/modules/archive/{unzip/stream.js → parse.js} +8 -9
  73. package/dist/cjs/modules/archive/{compression/streaming-compress.browser.js → streaming-compress.browser.js} +3 -3
  74. package/dist/cjs/modules/archive/{compression/streaming-compress.js → streaming-compress.js} +2 -2
  75. package/dist/cjs/modules/archive/{zip/stream.js → streaming-zip.js} +50 -194
  76. package/dist/cjs/modules/archive/utils/bytes.js +16 -16
  77. package/dist/cjs/modules/archive/utils/parse-buffer.js +23 -21
  78. package/dist/cjs/modules/archive/utils/timestamps.js +3 -64
  79. package/dist/cjs/modules/archive/utils/zip-extra-fields.js +14 -26
  80. package/dist/cjs/modules/archive/utils/zip-extra.js +74 -0
  81. package/dist/cjs/modules/archive/zip-builder.js +297 -0
  82. package/dist/cjs/modules/archive/zip-constants.js +26 -0
  83. package/dist/cjs/modules/archive/{zip/zip-entry-metadata.js → zip-entry-metadata.js} +5 -5
  84. package/dist/cjs/modules/archive/{unzip/zip-parser.js → zip-parser.js} +33 -47
  85. package/dist/cjs/modules/archive/zip-records.js +90 -0
  86. package/dist/cjs/modules/excel/stream/workbook-reader.browser.js +2 -2
  87. package/dist/cjs/modules/excel/stream/workbook-writer.browser.js +4 -4
  88. package/dist/cjs/modules/excel/xlsx/xlsx.browser.js +9 -6
  89. package/dist/cjs/modules/excel/xlsx/xlsx.js +2 -2
  90. package/dist/cjs/modules/stream/streams.browser.js +710 -830
  91. package/dist/cjs/modules/stream/streams.js +58 -140
  92. package/dist/esm/index.browser.js +0 -12
  93. package/dist/esm/modules/archive/byte-queue.js +125 -0
  94. package/dist/esm/modules/archive/{compression/compress.base.js → compress.base.js} +1 -1
  95. package/dist/{browser/modules/archive/compression → esm/modules/archive}/compress.browser.js +11 -3
  96. package/dist/{browser/modules/archive/compression → esm/modules/archive}/compress.js +1 -1
  97. package/dist/esm/modules/archive/{compression/crc32.js → crc32.js} +1 -1
  98. package/dist/esm/modules/archive/defaults.js +3 -6
  99. package/dist/esm/modules/archive/{compression/deflate-fallback.js → deflate-fallback.js} +1 -1
  100. package/dist/esm/modules/archive/index.base.js +6 -3
  101. package/dist/esm/modules/archive/index.browser.js +7 -3
  102. package/dist/esm/modules/archive/index.js +5 -3
  103. package/dist/esm/modules/archive/parse.base.js +644 -0
  104. package/dist/{browser/modules/archive/unzip/stream.browser.js → esm/modules/archive/parse.browser.js} +110 -371
  105. package/dist/{browser/modules/archive/unzip/stream.js → esm/modules/archive/parse.js} +5 -6
  106. package/dist/esm/modules/archive/{compression/streaming-compress.browser.js → streaming-compress.browser.js} +3 -3
  107. package/dist/esm/modules/archive/{compression/streaming-compress.js → streaming-compress.js} +2 -2
  108. package/dist/{browser/modules/archive/zip/stream.js → esm/modules/archive/streaming-zip.js} +48 -192
  109. package/dist/esm/modules/archive/utils/bytes.js +16 -16
  110. package/dist/esm/modules/archive/utils/parse-buffer.js +23 -21
  111. package/dist/esm/modules/archive/utils/timestamps.js +1 -62
  112. package/dist/esm/modules/archive/utils/zip-extra-fields.js +14 -26
  113. package/dist/esm/modules/archive/utils/zip-extra.js +68 -0
  114. package/dist/esm/modules/archive/zip-builder.js +292 -0
  115. package/dist/esm/modules/archive/zip-constants.js +23 -0
  116. package/dist/{browser/modules/archive/zip → esm/modules/archive}/zip-entry-metadata.js +3 -3
  117. package/dist/{browser/modules/archive/unzip → esm/modules/archive}/zip-parser.js +24 -38
  118. package/dist/esm/modules/archive/zip-records.js +84 -0
  119. package/dist/esm/modules/excel/stream/workbook-reader.browser.js +1 -1
  120. package/dist/esm/modules/excel/stream/workbook-writer.browser.js +1 -1
  121. package/dist/esm/modules/excel/xlsx/xlsx.browser.js +6 -3
  122. package/dist/esm/modules/excel/xlsx/xlsx.js +1 -1
  123. package/dist/esm/modules/stream/streams.browser.js +710 -830
  124. package/dist/esm/modules/stream/streams.js +58 -140
  125. package/dist/iife/THIRD_PARTY_NOTICES.md +31 -0
  126. package/dist/iife/excelts.iife.js +4425 -6215
  127. package/dist/iife/excelts.iife.js.map +1 -1
  128. package/dist/iife/excelts.iife.min.js +31 -103
  129. package/dist/types/index.browser.d.ts +0 -1
  130. package/dist/types/modules/archive/byte-queue.d.ts +18 -0
  131. package/dist/types/modules/archive/{compression/compress.browser.d.ts → compress.browser.d.ts} +8 -2
  132. package/dist/types/modules/archive/defaults.d.ts +0 -1
  133. package/dist/types/modules/archive/index.base.d.ts +4 -4
  134. package/dist/types/modules/archive/index.browser.d.ts +4 -3
  135. package/dist/types/modules/archive/index.d.ts +4 -3
  136. package/dist/types/modules/archive/{unzip/stream.base.d.ts → parse.base.d.ts} +4 -38
  137. package/dist/types/modules/archive/{unzip/stream.browser.d.ts → parse.browser.d.ts} +2 -2
  138. package/dist/types/modules/archive/{unzip/stream.d.ts → parse.d.ts} +3 -3
  139. package/dist/types/modules/archive/{compression/streaming-compress.browser.d.ts → streaming-compress.browser.d.ts} +1 -1
  140. package/dist/types/modules/archive/{zip/stream.d.ts → streaming-zip.d.ts} +6 -29
  141. package/dist/types/modules/archive/utils/zip-extra-fields.d.ts +1 -1
  142. package/dist/types/modules/archive/utils/zip-extra.d.ts +18 -0
  143. package/dist/types/modules/archive/zip-builder.d.ts +117 -0
  144. package/dist/types/modules/archive/zip-constants.d.ts +18 -0
  145. package/dist/types/modules/archive/{zip/zip-entry-metadata.d.ts → zip-entry-metadata.d.ts} +1 -1
  146. package/dist/{browser/modules/archive/unzip → types/modules/archive}/zip-parser.d.ts +1 -1
  147. package/dist/types/modules/archive/{zip-spec/zip-records.d.ts → zip-records.d.ts} +0 -20
  148. package/dist/types/modules/excel/stream/workbook-writer.browser.d.ts +1 -1
  149. package/dist/types/modules/stream/streams.browser.d.ts +30 -28
  150. package/package.json +1 -5
  151. package/dist/browser/modules/archive/internal/byte-queue.d.ts +0 -33
  152. package/dist/browser/modules/archive/internal/byte-queue.js +0 -407
  153. package/dist/browser/modules/archive/io/archive-sink.d.ts +0 -9
  154. package/dist/browser/modules/archive/io/archive-sink.js +0 -77
  155. package/dist/browser/modules/archive/io/archive-source.d.ts +0 -8
  156. package/dist/browser/modules/archive/io/archive-source.js +0 -107
  157. package/dist/browser/modules/archive/unzip/index.d.ts +0 -40
  158. package/dist/browser/modules/archive/unzip/index.js +0 -164
  159. package/dist/browser/modules/archive/unzip/stream.base.js +0 -1022
  160. package/dist/browser/modules/archive/utils/async-queue.d.ts +0 -7
  161. package/dist/browser/modules/archive/utils/async-queue.js +0 -103
  162. package/dist/browser/modules/archive/utils/compressibility.d.ts +0 -10
  163. package/dist/browser/modules/archive/utils/compressibility.js +0 -57
  164. package/dist/browser/modules/archive/utils/pattern-scanner.d.ts +0 -21
  165. package/dist/browser/modules/archive/utils/pattern-scanner.js +0 -27
  166. package/dist/browser/modules/archive/zip/index.d.ts +0 -42
  167. package/dist/browser/modules/archive/zip/index.js +0 -157
  168. package/dist/browser/modules/archive/zip/zip-bytes.d.ts +0 -73
  169. package/dist/browser/modules/archive/zip/zip-bytes.js +0 -239
  170. package/dist/browser/modules/archive/zip-spec/zip-records.js +0 -126
  171. package/dist/cjs/modules/archive/internal/byte-queue.js +0 -411
  172. package/dist/cjs/modules/archive/io/archive-sink.js +0 -82
  173. package/dist/cjs/modules/archive/io/archive-source.js +0 -114
  174. package/dist/cjs/modules/archive/unzip/index.js +0 -170
  175. package/dist/cjs/modules/archive/unzip/stream.base.js +0 -1044
  176. package/dist/cjs/modules/archive/utils/async-queue.js +0 -106
  177. package/dist/cjs/modules/archive/utils/compressibility.js +0 -60
  178. package/dist/cjs/modules/archive/utils/pattern-scanner.js +0 -31
  179. package/dist/cjs/modules/archive/zip/index.js +0 -162
  180. package/dist/cjs/modules/archive/zip/zip-bytes.js +0 -242
  181. package/dist/cjs/modules/archive/zip-spec/zip-records.js +0 -136
  182. package/dist/esm/modules/archive/internal/byte-queue.js +0 -407
  183. package/dist/esm/modules/archive/io/archive-sink.js +0 -77
  184. package/dist/esm/modules/archive/io/archive-source.js +0 -107
  185. package/dist/esm/modules/archive/unzip/index.js +0 -164
  186. package/dist/esm/modules/archive/unzip/stream.base.js +0 -1022
  187. package/dist/esm/modules/archive/utils/async-queue.js +0 -103
  188. package/dist/esm/modules/archive/utils/compressibility.js +0 -57
  189. package/dist/esm/modules/archive/utils/pattern-scanner.js +0 -27
  190. package/dist/esm/modules/archive/zip/index.js +0 -157
  191. package/dist/esm/modules/archive/zip/zip-bytes.js +0 -239
  192. package/dist/esm/modules/archive/zip-spec/zip-records.js +0 -126
  193. package/dist/types/modules/archive/internal/byte-queue.d.ts +0 -33
  194. package/dist/types/modules/archive/io/archive-sink.d.ts +0 -9
  195. package/dist/types/modules/archive/io/archive-source.d.ts +0 -8
  196. package/dist/types/modules/archive/unzip/index.d.ts +0 -40
  197. package/dist/types/modules/archive/utils/async-queue.d.ts +0 -7
  198. package/dist/types/modules/archive/utils/compressibility.d.ts +0 -10
  199. package/dist/types/modules/archive/utils/pattern-scanner.d.ts +0 -21
  200. package/dist/types/modules/archive/zip/index.d.ts +0 -42
  201. package/dist/types/modules/archive/zip/zip-bytes.d.ts +0 -73
  202. /package/dist/browser/modules/archive/{compression/compress.base.d.ts → compress.base.d.ts} +0 -0
  203. /package/dist/browser/modules/archive/{compression/crc32.base.d.ts → crc32.base.d.ts} +0 -0
  204. /package/dist/browser/modules/archive/{compression/crc32.base.js → crc32.base.js} +0 -0
  205. /package/dist/browser/modules/archive/{compression/crc32.browser.js → crc32.browser.js} +0 -0
  206. /package/dist/browser/modules/archive/{compression/deflate-fallback.d.ts → deflate-fallback.d.ts} +0 -0
  207. /package/dist/browser/modules/archive/{unzip/extract.js → extract.js} +0 -0
  208. /package/dist/browser/modules/archive/{compression/streaming-compress.base.d.ts → streaming-compress.base.d.ts} +0 -0
  209. /package/dist/browser/modules/archive/{compression/streaming-compress.base.js → streaming-compress.base.js} +0 -0
  210. /package/dist/browser/modules/archive/{zip-spec/zip-entry-info.d.ts → zip-entry-info.d.ts} +0 -0
  211. /package/dist/browser/modules/archive/{zip-spec/zip-entry-info.js → zip-entry-info.js} +0 -0
  212. /package/dist/browser/modules/archive/{zip/zip-entry-metadata.d.ts → zip-entry-metadata.d.ts} +0 -0
  213. /package/dist/cjs/modules/archive/{compression/crc32.base.js → crc32.base.js} +0 -0
  214. /package/dist/cjs/modules/archive/{compression/crc32.browser.js → crc32.browser.js} +0 -0
  215. /package/dist/cjs/modules/archive/{unzip/extract.js → extract.js} +0 -0
  216. /package/dist/cjs/modules/archive/{compression/streaming-compress.base.js → streaming-compress.base.js} +0 -0
  217. /package/dist/cjs/modules/archive/{zip-spec/zip-entry-info.js → zip-entry-info.js} +0 -0
  218. /package/dist/esm/modules/archive/{compression/crc32.base.js → crc32.base.js} +0 -0
  219. /package/dist/esm/modules/archive/{compression/crc32.browser.js → crc32.browser.js} +0 -0
  220. /package/dist/esm/modules/archive/{unzip/extract.js → extract.js} +0 -0
  221. /package/dist/esm/modules/archive/{compression/streaming-compress.base.js → streaming-compress.base.js} +0 -0
  222. /package/dist/esm/modules/archive/{zip-spec/zip-entry-info.js → zip-entry-info.js} +0 -0
  223. /package/dist/types/modules/archive/{compression/compress.base.d.ts → compress.base.d.ts} +0 -0
  224. /package/dist/types/modules/archive/{compression/compress.d.ts → compress.d.ts} +0 -0
  225. /package/dist/types/modules/archive/{compression/crc32.base.d.ts → crc32.base.d.ts} +0 -0
  226. /package/dist/types/modules/archive/{compression/crc32.browser.d.ts → crc32.browser.d.ts} +0 -0
  227. /package/dist/types/modules/archive/{compression/crc32.d.ts → crc32.d.ts} +0 -0
  228. /package/dist/types/modules/archive/{compression/deflate-fallback.d.ts → deflate-fallback.d.ts} +0 -0
  229. /package/dist/types/modules/archive/{unzip/extract.d.ts → extract.d.ts} +0 -0
  230. /package/dist/types/modules/archive/{compression/streaming-compress.base.d.ts → streaming-compress.base.d.ts} +0 -0
  231. /package/dist/types/modules/archive/{compression/streaming-compress.d.ts → streaming-compress.d.ts} +0 -0
  232. /package/dist/types/modules/archive/{zip-spec/zip-entry-info.d.ts → zip-entry-info.d.ts} +0 -0
@@ -62,6 +62,37 @@ SOFTWARE.
62
62
 
63
63
  ## Third-party component
64
64
 
65
+ unzipper is licensed under the MIT License:
66
+
67
+ The MIT License (MIT)
68
+
69
+ Copyright (c) 2012 - 2013 Near Infinity Corporation
70
+
71
+ Permission is hereby granted, free of charge, to any person obtaining a copy
72
+ of this software and associated documentation files (the "Software"), to deal
73
+ in the Software without restriction, including without limitation the rights
74
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
75
+ copies of the Software, and to permit persons to whom the Software is
76
+ furnished to do so, subject to the following conditions:
77
+
78
+ The above copyright notice and this permission notice shall be included in all
79
+ copies or substantial portions of the Software.
80
+
81
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
82
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
83
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
84
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
85
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
86
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
87
+ SOFTWARE.
88
+
89
+ Commits in this fork are (c) Ziggy Jonsson (ziggy.jonsson.nyc@gmail.com) and
90
+ fall under same licence structure as the original repo (MIT).
91
+
92
+ ---
93
+
94
+ ## Third-party component
95
+
65
96
  saxes is licensed under the ISC License:
66
97
 
67
98
  The ISC License
@@ -25,4 +25,3 @@ export { WorkbookWriter, WorkbookReader, WorksheetWriter, WorksheetReader };
25
25
  export type { CsvReadOptions, CsvWriteOptions, CsvStreamReadOptions, CsvStreamWriteOptions } from "@csv/csv.browser";
26
26
  export { CsvParserStream, CsvFormatterStream } from "@csv/csv.browser";
27
27
  export * from "@excel/utils/sheet-utils";
28
- export { zip, unzip, ZipArchive, ZipReader, UnzipEntry, type ZipOptions, type ZipEntryOptions, type UnzipOptions, type ArchiveSource, type ArchiveSink, crc32, crc32Update, crc32Finalize, compress, compressSync, decompress, decompressSync, hasCompressionStream, type CompressOptions, createDeflateStream, createInflateStream, hasDeflateRaw, type StreamCompressOptions } from "@archive/index.browser";
@@ -39,15 +39,3 @@ export { CsvParserStream, CsvFormatterStream } from "./modules/csv/csv.browser.j
39
39
  // Utilities
40
40
  // =============================================================================
41
41
  export * from "./modules/excel/utils/sheet-utils.js";
42
- // =============================================================================
43
- // Archive (ZIP) support (Browser-compatible)
44
- // =============================================================================
45
- export {
46
- // High-level archive API
47
- zip, unzip, ZipArchive, ZipReader, UnzipEntry,
48
- // CRC32
49
- crc32, crc32Update, crc32Finalize,
50
- // Compression utilities
51
- compress, compressSync, decompress, decompressSync, hasCompressionStream,
52
- // Streaming compression
53
- createDeflateStream, createInflateStream, hasDeflateRaw } from "./modules/archive/index.browser.js";
@@ -0,0 +1,18 @@
1
+ export declare class ByteQueue {
2
+ private static readonly EMPTY;
3
+ private _buf;
4
+ private _start;
5
+ private _end;
6
+ private _cachedView;
7
+ private _cachedBuf;
8
+ private _cachedStart;
9
+ private _cachedEnd;
10
+ constructor(initial?: Uint8Array);
11
+ get length(): number;
12
+ isEmpty(): boolean;
13
+ view(): Uint8Array;
14
+ reset(data?: Uint8Array): void;
15
+ append(chunk: Uint8Array): void;
16
+ read(length: number): Uint8Array;
17
+ discard(length: number): void;
18
+ }
@@ -0,0 +1,125 @@
1
+ export class ByteQueue {
2
+ constructor(initial) {
3
+ this._start = 0;
4
+ this._end = 0;
5
+ this._cachedView = null;
6
+ this._cachedBuf = null;
7
+ this._cachedStart = 0;
8
+ this._cachedEnd = 0;
9
+ this._buf = new Uint8Array(0);
10
+ if (initial && initial.length > 0) {
11
+ this.reset(initial);
12
+ }
13
+ }
14
+ get length() {
15
+ return this._end - this._start;
16
+ }
17
+ isEmpty() {
18
+ return this.length === 0;
19
+ }
20
+ view() {
21
+ if (this._start === this._end) {
22
+ return ByteQueue.EMPTY;
23
+ }
24
+ if (this._cachedView &&
25
+ this._cachedBuf === this._buf &&
26
+ this._cachedStart === this._start &&
27
+ this._cachedEnd === this._end) {
28
+ return this._cachedView;
29
+ }
30
+ const view = this._buf.subarray(this._start, this._end);
31
+ this._cachedView = view;
32
+ this._cachedBuf = this._buf;
33
+ this._cachedStart = this._start;
34
+ this._cachedEnd = this._end;
35
+ return view;
36
+ }
37
+ reset(data) {
38
+ this._cachedView = null;
39
+ this._cachedBuf = null;
40
+ if (!data || data.length === 0) {
41
+ this._buf = ByteQueue.EMPTY;
42
+ this._start = 0;
43
+ this._end = 0;
44
+ return;
45
+ }
46
+ // Keep a private copy to ensure future writes cannot mutate the source.
47
+ const copy = new Uint8Array(data.length);
48
+ copy.set(data);
49
+ this._buf = copy;
50
+ this._start = 0;
51
+ this._end = copy.length;
52
+ }
53
+ append(chunk) {
54
+ if (chunk.length === 0) {
55
+ return;
56
+ }
57
+ this._cachedView = null;
58
+ this._cachedBuf = null;
59
+ const unread = this.length;
60
+ // Fast path: enough tail room.
61
+ if (this._end + chunk.length <= this._buf.length) {
62
+ this._buf.set(chunk, this._end);
63
+ this._end += chunk.length;
64
+ return;
65
+ }
66
+ // Allocate a new buffer and copy unread bytes (never compacts in-place).
67
+ const required = unread + chunk.length;
68
+ const nextSize = this._buf.length === 0 ? required : Math.max(this._buf.length * 2, required);
69
+ const next = new Uint8Array(nextSize);
70
+ if (unread > 0) {
71
+ next.set(this._buf.subarray(this._start, this._end), 0);
72
+ }
73
+ next.set(chunk, unread);
74
+ this._buf = next;
75
+ this._start = 0;
76
+ this._end = required;
77
+ }
78
+ read(length) {
79
+ if (length <= 0) {
80
+ return new Uint8Array(0);
81
+ }
82
+ if (length > this.length) {
83
+ throw new RangeError("ByteQueue: read beyond available data");
84
+ }
85
+ // Return a view for performance.
86
+ // To keep this safe for async consumers, we must ensure we never write into
87
+ // the same backing buffer again after it becomes fully consumed.
88
+ const out = this._buf.subarray(this._start, this._start + length);
89
+ this._start += length;
90
+ this._cachedView = null;
91
+ this._cachedBuf = null;
92
+ if (this._start === this._end) {
93
+ // Release backing storage to avoid reusing memory that might still be
94
+ // referenced by previously returned views.
95
+ this._buf = ByteQueue.EMPTY;
96
+ this._start = 0;
97
+ this._end = 0;
98
+ }
99
+ return out;
100
+ }
101
+ discard(length) {
102
+ if (length <= 0) {
103
+ return;
104
+ }
105
+ if (length >= this.length) {
106
+ // Release backing storage for the same reason as read(): previously
107
+ // returned views may still be referenced by consumers.
108
+ this._buf = ByteQueue.EMPTY;
109
+ this._start = 0;
110
+ this._end = 0;
111
+ this._cachedView = null;
112
+ this._cachedBuf = null;
113
+ return;
114
+ }
115
+ this._start += length;
116
+ this._cachedView = null;
117
+ this._cachedBuf = null;
118
+ if (this._start === this._end) {
119
+ this._buf = ByteQueue.EMPTY;
120
+ this._start = 0;
121
+ this._end = 0;
122
+ }
123
+ }
124
+ }
125
+ ByteQueue.EMPTY = new Uint8Array(0);
@@ -8,7 +8,7 @@
8
8
  * Browser fallback: For browsers without deflate-raw support (Firefox < 113, Safari < 16.4),
9
9
  * see deflate-fallback.ts for pure JS implementation
10
10
  */
11
- import { ByteQueue } from "../internal/byte-queue.js";
11
+ import { ByteQueue } from "./byte-queue.js";
12
12
  /**
13
13
  * Default threshold (in bytes) to choose the lower-overhead path.
14
14
  *
@@ -10,9 +10,15 @@
10
10
  * - Safari >= 14.1
11
11
  * - Edge >= 89
12
12
  */
13
- import { type CompressOptions, hasCompressionStream } from "@archive/compression/compress.base";
13
+ import { type CompressOptions } from "@archive/compress.base";
14
14
  export { type CompressOptions };
15
- export { hasCompressionStream };
15
+ /**
16
+ * Check if CompressionStream is available in this environment.
17
+ *
18
+ * Note: Some environments may expose CompressionStream but not support
19
+ * the "deflate-raw" format that ZIP requires.
20
+ */
21
+ export declare function hasCompressionStream(): boolean;
16
22
  /**
17
23
  * Compress data using browser's native CompressionStream or JS fallback
18
24
  *
@@ -10,12 +10,20 @@
10
10
  * - Safari >= 14.1
11
11
  * - Edge >= 89
12
12
  */
13
- import { compressWithStream, decompressWithStream, hasCompressionStream, hasDeflateRawCompressionStream, hasDeflateRawDecompressionStream } from "./compress.base.js";
13
+ import { compressWithStream, decompressWithStream, hasDeflateRawCompressionStream, hasDeflateRawDecompressionStream } from "./compress.base.js";
14
14
  import { inflateRaw, deflateRawCompressed } from "./deflate-fallback.js";
15
- import { DEFAULT_COMPRESS_LEVEL } from "../defaults.js";
15
+ import { DEFAULT_COMPRESS_LEVEL } from "./defaults.js";
16
16
  // Re-export shared types
17
17
  export {};
18
- export { hasCompressionStream };
18
+ /**
19
+ * Check if CompressionStream is available in this environment.
20
+ *
21
+ * Note: Some environments may expose CompressionStream but not support
22
+ * the "deflate-raw" format that ZIP requires.
23
+ */
24
+ export function hasCompressionStream() {
25
+ return typeof CompressionStream !== "undefined";
26
+ }
19
27
  /**
20
28
  * Compress data using browser's native CompressionStream or JS fallback
21
29
  *
@@ -4,8 +4,8 @@
4
4
  * Uses zlib module (C++ implementation, fastest) with "deflate-raw" format
5
5
  * (raw DEFLATE without zlib header/trailer, required for ZIP files)
6
6
  */
7
- export { type CompressOptions, hasCompressionStream } from "@archive/compression/compress.base";
8
- import type { CompressOptions } from "@archive/compression/compress.base";
7
+ export { type CompressOptions, hasCompressionStream } from "@archive/compress.base";
8
+ import type { CompressOptions } from "@archive/compress.base";
9
9
  /**
10
10
  * Compress data using Node.js native zlib
11
11
  *
@@ -6,7 +6,7 @@
6
6
  */
7
7
  import { promisify } from "util";
8
8
  import * as zlib from "zlib";
9
- import { DEFAULT_COMPRESS_LEVEL } from "../defaults.js";
9
+ import { DEFAULT_COMPRESS_LEVEL } from "./defaults.js";
10
10
  // Re-export shared types and utilities
11
11
  export { hasCompressionStream } from "./compress.base.js";
12
12
  function uint8ArrayToBufferView(data) {
@@ -7,7 +7,7 @@
7
7
  * 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
8
8
  * Represented as 0xEDB88320 in reversed (LSB-first) form
9
9
  */
10
- export { crc32JS as crc32, crc32UpdateJS as crc32Update, crc32Finalize } from "@archive/compression/crc32.base";
10
+ export { crc32JS as crc32, crc32UpdateJS as crc32Update, crc32Finalize } from "@archive/crc32.base";
11
11
  /**
12
12
  * Ensure CRC32 is ready (no-op in browser, for API compatibility)
13
13
  */
@@ -8,7 +8,7 @@
8
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
9
  * Represented as 0xEDB88320 in reversed (LSB-first) form
10
10
  */
11
- import { crc32Finalize } from "@archive/compression/crc32.base";
11
+ import { crc32Finalize } from "@archive/crc32.base";
12
12
  /**
13
13
  * Calculate CRC32 checksum for the given data
14
14
  * Uses native zlib.crc32 in Node.js for ~100x better performance
@@ -8,7 +8,7 @@
8
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
9
  * Represented as 0xEDB88320 in reversed (LSB-first) form
10
10
  */
11
- import { isNode } from "../../../utils/env.js";
11
+ import { isNode } from "../../utils/env.js";
12
12
  import { crc32JS, crc32UpdateJS, crc32Finalize } from "./crc32.base.js";
13
13
  // Lazy-loaded zlib module for Node.js
14
14
  let _zlib = null;
@@ -1,5 +1,4 @@
1
1
  import type { ZipTimestampMode } from "@archive/utils/timestamps";
2
- export declare const DEFAULT_DEFLATE_LEVEL = 6;
3
2
  export declare const DEFAULT_COMPRESS_LEVEL = 6;
4
3
  export declare const DEFAULT_ZIP_LEVEL = 6;
5
4
  export declare const DEFAULT_ZIP_TIMESTAMPS: ZipTimestampMode;
@@ -1,6 +1,3 @@
1
- export const DEFAULT_DEFLATE_LEVEL = 6;
2
- // Backward-compatible aliases (avoid default drift across modules).
3
- export const DEFAULT_COMPRESS_LEVEL = DEFAULT_DEFLATE_LEVEL;
4
- export const DEFAULT_ZIP_LEVEL = DEFAULT_DEFLATE_LEVEL;
5
- // Prefer reproducible output by default: omit the Info-ZIP UTC mtime extra field.
6
- export const DEFAULT_ZIP_TIMESTAMPS = "dos";
1
+ export const DEFAULT_COMPRESS_LEVEL = 6;
2
+ export const DEFAULT_ZIP_LEVEL = 6;
3
+ export const DEFAULT_ZIP_TIMESTAMPS = "dos+utc";
@@ -10,7 +10,7 @@
10
10
  * - Safari < 16.4
11
11
  * - Chrome < 103
12
12
  */
13
- import { concatUint8Arrays } from "../utils/bytes.js";
13
+ import { concatUint8Arrays } from "./utils/bytes.js";
14
14
  // ============================================================================
15
15
  // DEFLATE Decompression (Full implementation)
16
16
  // ============================================================================
@@ -3,7 +3,7 @@
3
3
  * Provides easy-to-use Promise-based API for extracting ZIP files
4
4
  * Works in both Node.js and browser environments
5
5
  */
6
- import { type ZipEntryInfo } from "@archive/unzip/zip-parser";
6
+ import { type ZipEntryInfo } from "@archive/zip-parser";
7
7
  /**
8
8
  * Extracted file entry
9
9
  */
@@ -91,4 +91,4 @@ export declare function listFiles(zipData: Uint8Array | ArrayBuffer): Promise<st
91
91
  * ```
92
92
  */
93
93
  export declare function forEachEntry(zipData: Uint8Array | ArrayBuffer, callback: (path: string, getData: () => Promise<Uint8Array>, entry: ZipEntryInfo) => Promise<boolean | void>): Promise<void>;
94
- export { ZipParser, type ZipEntryInfo, type ZipParseOptions } from "@archive/unzip/zip-parser";
94
+ export { ZipParser, type ZipEntryInfo, type ZipParseOptions } from "@archive/zip-parser";
@@ -5,7 +5,7 @@
5
5
  * Platform-specific entrypoints (index.ts / index.browser.ts) should re-export
6
6
  * from this file and then layer their platform-specific bindings.
7
7
  */
8
- export type { ArchiveSource } from "@archive/io/archive-source";
9
- export type { ArchiveSink } from "@archive/io/archive-sink";
10
- export { zip, ZipArchive, type ZipOptions, type ZipEntryOptions } from "@archive/zip";
11
- export { unzip, ZipReader, UnzipEntry, type UnzipOptions } from "@archive/unzip";
8
+ export { createZip, createZipSync, ZipBuilder, type ZipEntry, type ZipOptions } from "@archive/zip-builder";
9
+ export { StreamingZip, ZipDeflateFile, Zip, ZipDeflate } from "@archive/streaming-zip";
10
+ export { extractAll, extractFile, listFiles, forEachEntry, ZipParser, type ExtractedFile, type ZipParseOptions } from "@archive/extract";
11
+ export type { ZipEntryInfo } from "@archive/zip-entry-info";
@@ -5,6 +5,9 @@
5
5
  * Platform-specific entrypoints (index.ts / index.browser.ts) should re-export
6
6
  * from this file and then layer their platform-specific bindings.
7
7
  */
8
- // High-level APIs
9
- export { zip, ZipArchive } from "./zip/index.js";
10
- export { unzip, ZipReader, UnzipEntry } from "./unzip/index.js";
8
+ // ZIP builders
9
+ export { createZip, createZipSync, ZipBuilder } from "./zip-builder.js";
10
+ // Streaming ZIP (fflate-like API)
11
+ export { StreamingZip, ZipDeflateFile, Zip, ZipDeflate } from "./streaming-zip.js";
12
+ // Buffer-based unzip API (cross-platform)
13
+ export { extractAll, extractFile, listFiles, forEachEntry, ZipParser } from "./extract.js";
@@ -5,6 +5,7 @@
5
5
  * browser-specific implementations so we can enforce export-surface parity.
6
6
  */
7
7
  export * from "@archive/index.base";
8
- export { crc32, crc32Update, crc32Finalize } from "@archive/compression/crc32.browser";
9
- export { compress, compressSync, decompress, decompressSync, hasCompressionStream, type CompressOptions } from "@archive/compression/compress.browser";
10
- export { createDeflateStream, createInflateStream, hasDeflateRaw, type StreamCompressOptions } from "@archive/compression/streaming-compress.browser";
8
+ export { crc32, crc32Update, crc32Finalize } from "@archive/crc32.browser";
9
+ export { compress, compressSync, decompress, decompressSync, hasCompressionStream, type CompressOptions } from "@archive/compress.browser";
10
+ export { createDeflateStream, createInflateStream, hasDeflateRaw, type StreamCompressOptions } from "@archive/streaming-compress.browser";
11
+ export { Parse, createParse, type ParseOptions, type ZipEntry as StreamZipEntry } from "@archive/parse.browser";
@@ -6,8 +6,12 @@
6
6
  */
7
7
  export * from "./index.base.js";
8
8
  // CRC32
9
- export { crc32, crc32Update, crc32Finalize } from "./compression/crc32.browser.js";
9
+ export { crc32, crc32Update, crc32Finalize } from "./crc32.browser.js";
10
10
  // Compression
11
- export { compress, compressSync, decompress, decompressSync, hasCompressionStream } from "./compression/compress.browser.js";
11
+ export { compress, compressSync, decompress, decompressSync, hasCompressionStream } from "./compress.browser.js";
12
12
  // Streaming compression
13
- export { createDeflateStream, createInflateStream, hasDeflateRaw } from "./compression/streaming-compress.browser.js";
13
+ export { createDeflateStream, createInflateStream, hasDeflateRaw } from "./streaming-compress.browser.js";
14
+ // Stream-based unzip API (browser implementation)
15
+ export { Parse, createParse } from "./parse.browser.js";
16
+ // Buffer-based unzip API (cross-platform)
17
+ // (re-exported from ./index.base)
@@ -5,6 +5,7 @@
5
5
  * It groups all ZIP creation and extraction utilities in one place.
6
6
  */
7
7
  export * from "@archive/index.base";
8
- export { crc32, crc32Update, crc32Finalize } from "@archive/compression/crc32";
9
- export { compress, compressSync, decompress, decompressSync, hasCompressionStream, type CompressOptions } from "@archive/compression/compress";
10
- export { createDeflateStream, createInflateStream, hasDeflateRaw, type StreamCompressOptions } from "@archive/compression/streaming-compress";
8
+ export { crc32, crc32Update, crc32Finalize } from "@archive/crc32";
9
+ export { compress, compressSync, decompress, decompressSync, hasCompressionStream, type CompressOptions } from "@archive/compress";
10
+ export { createDeflateStream, createInflateStream, hasDeflateRaw, type StreamCompressOptions } from "@archive/streaming-compress";
11
+ export { Parse, createParse, type ParseOptions, type ZipEntry as StreamZipEntry } from "@archive/parse";
@@ -6,8 +6,10 @@
6
6
  */
7
7
  export * from "./index.base.js";
8
8
  // CRC32
9
- export { crc32, crc32Update, crc32Finalize } from "./compression/crc32.browser.js";
9
+ export { crc32, crc32Update, crc32Finalize } from "./crc32.browser.js";
10
10
  // Compression
11
- export { compress, compressSync, decompress, decompressSync, hasCompressionStream } from "./compression/compress.browser.js";
11
+ export { compress, compressSync, decompress, decompressSync, hasCompressionStream } from "./compress.browser.js";
12
12
  // Streaming compression
13
- export { createDeflateStream, createInflateStream, hasDeflateRaw } from "./compression/streaming-compress.browser.js";
13
+ export { createDeflateStream, createInflateStream, hasDeflateRaw } from "./streaming-compress.browser.js";
14
+ // Stream-based unzip API (Node.js; browser build aliases to ./parse.browser.ts)
15
+ export { Parse, createParse } from "./parse.browser.js";
@@ -1,7 +1,6 @@
1
1
  import { Duplex, PassThrough, Transform, type Readable } from "@stream";
2
- import { ByteQueue } from "@archive/internal/byte-queue";
2
+ import { ByteQueue } from "@archive/byte-queue";
3
3
  import { parseZipExtraFields, type ZipExtraFields, type ZipVars } from "@archive/utils/zip-extra-fields";
4
- export declare const DATA_DESCRIPTOR_SIGNATURE_BYTES: Uint8Array<ArrayBufferLike>;
5
4
  export declare const CRX_HEADER_FORMAT: [string, number][];
6
5
  export declare const LOCAL_FILE_HEADER_FORMAT: [string, number][];
7
6
  export declare const DATA_DESCRIPTOR_FORMAT: [string, number][];
@@ -120,14 +119,9 @@ export interface ValidatedDataDescriptorScanResult {
120
119
  */
121
120
  export declare function scanValidatedDataDescriptor(view: Uint8Array, dataDescriptorSignature: Uint8Array, bytesEmitted: number, startIndex?: number, out?: ValidatedDataDescriptorScanResult): ValidatedDataDescriptorScanResult;
122
121
  export interface StreamUntilValidatedDataDescriptorSource {
122
+ getView(): Uint8Array;
123
123
  getLength(): number;
124
124
  read(length: number): Uint8Array;
125
- /** Optional: zero-copy chunk views for streaming writes. */
126
- peekChunks?(length: number): Uint8Array[];
127
- /** Optional: consume bytes previously written from peekChunks(). */
128
- discard?(length: number): void;
129
- indexOfPattern(pattern: Uint8Array, startIndex: number): number;
130
- peekUint32LE(offset: number): number | null;
131
125
  isFinished(): boolean;
132
126
  onDataAvailable(cb: () => void): () => void;
133
127
  maybeReleaseWriteCallback?: () => void;
@@ -148,34 +142,6 @@ export declare function streamUntilValidatedDataDescriptor(options: StreamUntilV
148
142
  export interface ParseOptions {
149
143
  verbose?: boolean;
150
144
  forceStream?: boolean;
151
- /**
152
- * Browser-only: use a Web Worker to run inflate off the main thread.
153
- * Defaults to false.
154
- */
155
- useWorkerInflate?: boolean;
156
- /**
157
- * Browser-only: provide an explicit Worker script URL.
158
- *
159
- * Useful under strict CSP that blocks `blob:` workers. When set, the browser
160
- * parser will try to construct `new Worker(workerInflateUrl)`.
161
- */
162
- workerInflateUrl?: string;
163
- /**
164
- * Input backpressure high-water mark (bytes).
165
- *
166
- * When provided, implementations may delay the writable callback until the
167
- * internal input buffer drops below `inputLowWaterMarkBytes`.
168
- *
169
- * This is primarily used by the browser parser, because its writable side
170
- * otherwise tends to accept unlimited data and can cause large memory spikes.
171
- */
172
- inputHighWaterMarkBytes?: number;
173
- /**
174
- * Input backpressure low-water mark (bytes).
175
- * When the internal buffer drops to (or below) this value, a delayed writable
176
- * callback may be released.
177
- */
178
- inputLowWaterMarkBytes?: number;
179
145
  /**
180
146
  * Threshold (in bytes) for small file optimization.
181
147
  * Files smaller than this will use sync decompression (no stream overhead).