zip-writer 1.0.1 → 1.1.0

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.
package/README.md ADDED
@@ -0,0 +1,427 @@
1
+ # zip-writable
2
+
3
+ A modern streaming ZIP archive writer for JavaScript that uses the
4
+ [Web Streams API](https://developer.mozilla.org/en-US/docs/Web/API/Streams_API)
5
+ and
6
+ [Compression Streams API](https://developer.mozilla.org/en-US/docs/Web/API/Compression_Streams_API).
7
+
8
+ ## Features
9
+
10
+ - **Streaming API** - Write ZIP archives using Web Streams
11
+ - **Memory efficient** - Process large files without loading them entirely into
12
+ memory
13
+ - **ZIP64 support** - Automatic handling of large files and archives
14
+ - **Modern JavaScript** - Built with TypeScript, uses native Web Streams API
15
+ - **Flexible** - Reorder, rename, or remove entries before finalizing
16
+
17
+ ## Installation
18
+
19
+ ```bash
20
+ npm install zip-writable
21
+ ```
22
+
23
+ ## Basic Usage
24
+
25
+ ```ts
26
+ import { ZipWriter } from "zip-writable";
27
+
28
+ const zipWriter = new ZipWriter();
29
+
30
+ // Pipe the ZIP output somewhere
31
+ zipWriter.readable.pipeTo(writableStream);
32
+
33
+ // Add entries to the ZIP
34
+ const entryWriter = zipWriter.createEntryStream({ name: "hello.txt" });
35
+ const writer = entryWriter.writable.getWriter();
36
+ await writer.write(new TextEncoder().encode("Hello, World!"));
37
+ await writer.close();
38
+
39
+ // Get entry info after writing
40
+ const info = await entryWriter.getEntryInfo();
41
+ console.log(info);
42
+
43
+ // Finalize the ZIP archive
44
+ await zipWriter.finalize();
45
+ ```
46
+
47
+ ## API Reference
48
+
49
+ ### `ZipWriter`
50
+
51
+ The main class for creating ZIP archives.
52
+
53
+ #### Constructor
54
+
55
+ ##### `new ZipWriter(options?)`
56
+
57
+ **Parameters:**
58
+
59
+ - `options.crc32?: (data: Uint8Array, value?: number) => number` - Optional
60
+ CRC32 function to use. Defaults to `zlib.crc32` on Node.js and a pure
61
+ JavaScript implementation in browsers.
62
+
63
+ #### Properties
64
+
65
+ ##### `readable: ReadableStream<Uint8Array>`
66
+
67
+ The readable stream containing the ZIP archive data. Pipe this to a file, HTTP
68
+ response, or any other writable destination.
69
+
70
+ ```ts
71
+ // Save to file (Node.js with fs/promises)
72
+ import { createWriteStream } from "fs";
73
+ import { Writable } from "stream";
74
+
75
+ zipWriter.readable.pipeTo(Writable.toWeb(createWriteStream("archive.zip")));
76
+
77
+ // Send as HTTP response (in a web server)
78
+ return new Response(zipWriter.readable, {
79
+ headers: {
80
+ "Content-Type": "application/zip",
81
+ "Content-Disposition": 'attachment; filename="archive.zip"',
82
+ },
83
+ });
84
+ ```
85
+
86
+ ##### `entries: ReadonlyArray<Readonly<EntryInfo>>`
87
+
88
+ Array of all entries that have been written to the archive. Each entry contains
89
+ metadata like size, CRC32, compression info, etc.
90
+
91
+ #### Methods
92
+
93
+ ##### `createEntry(data: Uint8Array, options: EntryOptions): Promise<EntryInfo>`
94
+
95
+ Convenience method to add a buffer as an entry to the zip archive. Returns a
96
+ promise that resolves to the entry info once written. For more efficient
97
+ streaming writes, use `createEntryStream()`.
98
+
99
+ **Parameters:**
100
+
101
+ - `data: Uint8Array` - Entry data to write
102
+ - `options.name: string` - Entry name including internal path (required)
103
+ - `options.comment?: string` - Entry comment
104
+ - `options.date?: Date` - Entry date (defaults to current date)
105
+ - `options.mode?: number` - Entry permissions (Unix-style mode)
106
+ - `options.store?: boolean` - Set to `true` to disable compression (defaults to
107
+ `false`, using DEFLATE compression)
108
+
109
+ **Example:**
110
+
111
+ ```ts
112
+ const data = new TextEncoder().encode("Hello, World!");
113
+ const entryInfo = await zipWriter.createEntry(data, { name: "hello.txt" });
114
+ console.log(entryInfo);
115
+ ```
116
+
117
+ ##### `createEntryStream(options: EntryOptions): EntryWriter`
118
+
119
+ Create a new entry in the ZIP archive. Returns an `EntryWriter` that you can
120
+ write data to via streams.
121
+
122
+ **Parameters:**
123
+
124
+ - `options.name: string` - Entry name including internal path (required)
125
+ - `options.comment?: string` - Entry comment
126
+ - `options.date?: Date` - Entry date (defaults to current date)
127
+ - `options.mode?: number` - Entry permissions (Unix-style mode)
128
+ - `options.store?: boolean` - Set to `true` to disable compression (defaults to
129
+ `false`, using DEFLATE compression)
130
+
131
+ **Examples:**
132
+
133
+ ```ts
134
+ // Simple text file
135
+ const entry = zipWriter.createEntryStream({ name: "readme.txt" });
136
+ const writer = entry.writable.getWriter();
137
+ await writer.write(new TextEncoder().encode("Hello!"));
138
+ await writer.close();
139
+
140
+ // Stream a fetch response
141
+ const response = await fetch(imageUrl);
142
+ response.body.pipeTo(
143
+ zipWriter.createEntryStream({ name: "images/photo.jpg" }).writable,
144
+ );
145
+
146
+ // With custom date and permissions
147
+ zipWriter.createEntryStream({
148
+ name: "script.sh",
149
+ date: new Date("2024-01-01"),
150
+ mode: 0o755, // executable
151
+ }).writable;
152
+
153
+ // Disable compression for already-compressed files
154
+ zipWriter.createEntryStream({
155
+ name: "video.mp4",
156
+ store: true, // no compression
157
+ }).writable;
158
+ ```
159
+
160
+ ##### `onceQueueEmpty(): Promise<void>`
161
+
162
+ Wait until all currently queued entries have been written. Useful when you need
163
+ to ensure entries are complete before continuing.
164
+
165
+ ```ts
166
+ // Add multiple entries
167
+ zipWriter.createEntryStream({ name: "file1.txt" }).writable;
168
+ zipWriter.createEntryStream({ name: "file2.txt" }).writable;
169
+
170
+ // Wait for all to complete
171
+ await zipWriter.onceQueueEmpty();
172
+ console.log(`Wrote ${zipWriter.entries.length} entries`);
173
+ ```
174
+
175
+ ##### `finalize(options?): Promise<{ zip64: boolean, uncompressedEntriesSize: bigint, compressedEntriesSize: bigint, fileSize: bigint }>`
176
+
177
+ Finalize the ZIP archive by writing the central directory and end of central
178
+ directory records. This must be called after all entries have been added. This
179
+ will await any pending entries to finish writing before finalizing.
180
+
181
+ **Parameters:**
182
+
183
+ - `options.entries?: ReadonlyArray<Readonly<EntryInfo>>` - (Advanced) Override
184
+ the entries to write in the central directory. This can be used to reorder,
185
+ remove, or rename entries before finalizing the archive. You cannot change the
186
+ offset, CRC32, compressed size, or uncompressed size of entries - only the
187
+ name, comment, date, and order.
188
+
189
+ **Returns:**
190
+
191
+ - `zip64: boolean` - Whether the archive uses ZIP64 format
192
+ - `uncompressedEntriesSize: bigint` - Total uncompressed size of all entries
193
+ - `compressedEntriesSize: bigint` - Total compressed size of all entries
194
+ - `fileSize: bigint` - Total size of the ZIP file
195
+
196
+ ```ts
197
+ const result = await zipWriter.finalize();
198
+ console.log(`Created ${result.zip64 ? "ZIP64" : "standard"} archive`);
199
+ console.log(`File size: ${result.fileSize} bytes`);
200
+ console.log(
201
+ `Compression ratio: ${Number(result.compressedEntriesSize) / Number(result.uncompressedEntriesSize)}`,
202
+ );
203
+ ```
204
+
205
+ **Example with entries option:**
206
+
207
+ ```ts
208
+ // Wait for all entries to be written
209
+ await zipWriter.onceQueueEmpty();
210
+
211
+ // Get current entries and modify them
212
+ const entries = [...zipWriter.entries];
213
+
214
+ // Remove an entry
215
+ const filtered = entries.filter((e) => e.name !== "temp.txt");
216
+
217
+ // Rename entries
218
+ const renamed = entries.map((e) => ({
219
+ ...e,
220
+ name: e.name.replace(/^old\//, "new/"),
221
+ }));
222
+
223
+ // Sort entries alphabetically
224
+ const sorted = [...entries].sort((a, b) => a.name.localeCompare(b.name));
225
+
226
+ // Finalize with modified entries
227
+ await zipWriter.finalize({ entries: sorted });
228
+ ```
229
+
230
+ ### `EntryWriter`
231
+
232
+ Returned by `ZipWriter.createEntryStream()`. Provides a writable stream to write
233
+ entry data.
234
+
235
+ #### Properties
236
+
237
+ ##### `writable: WritableStream<Uint8Array>`
238
+
239
+ The writable stream to write entry data to. Close this stream when done writing.
240
+
241
+ ```ts
242
+ const entryWriter = zipWriter.createEntryStream({ name: "data.txt" });
243
+
244
+ // Using a writer
245
+ const writer = entryWriter.writable.getWriter();
246
+ await writer.write(new TextEncoder().encode("chunk 1"));
247
+ await writer.write(new TextEncoder().encode("chunk 2"));
248
+ await writer.close();
249
+
250
+ // Using pipeTo
251
+ someReadableStream.pipeTo(entryWriter.writable);
252
+ ```
253
+
254
+ #### Methods
255
+
256
+ ##### `getEntryInfo(): Promise<EntryInfo>`
257
+
258
+ Get entry info. Resolves once all data has been written to the ZIP stream.
259
+
260
+ **Returns `EntryInfo`:**
261
+
262
+ - `name: string` - Entry name
263
+ - `comment?: string` - Entry comment
264
+ - `date?: Date` - Entry date
265
+ - `mode?: number` - Entry permissions
266
+ - `store?: boolean` - Whether compression was disabled
267
+ - `startOffset: bigint | number` - Byte offset in the archive
268
+ - `crc32: number` - CRC32 checksum
269
+ - `uncompressedSize: bigint | number` - Uncompressed size in bytes
270
+ - `compressedSize: bigint | number` - Compressed size in bytes
271
+ - `zip64: boolean` - Whether this entry uses ZIP64 format
272
+
273
+ ```ts
274
+ const entryWriter = zipWriter.createEntryStream({ name: "test.txt" });
275
+ await someStream.pipeTo(entryWriter.writable);
276
+
277
+ const info = await entryWriter.getEntryInfo();
278
+ console.log(
279
+ `Wrote ${info.name}: ${info.uncompressedSize} bytes (compressed to ${info.compressedSize})`,
280
+ );
281
+ ```
282
+
283
+ ## Complete Example
284
+
285
+ ```ts
286
+ import { ZipWriter } from "zip-writable";
287
+ import { createWriteStream } from "fs";
288
+ import { Writable } from "stream";
289
+
290
+ async function createZip() {
291
+ const zipWriter = new ZipWriter();
292
+
293
+ // Pipe output to file
294
+ const fileStream = Writable.toWeb(createWriteStream("output.zip"));
295
+ zipWriter.readable.pipeTo(fileStream);
296
+
297
+ // Add a text file using createEntry
298
+ const data1 = new TextEncoder().encode("This is a readme");
299
+ await zipWriter.createEntry(data1, { name: "readme.txt" });
300
+
301
+ // Add files from URLs using createEntryStream
302
+ const imageResponse = await fetch("https://example.com/image.png");
303
+ await imageResponse.body.pipeTo(
304
+ zipWriter.createEntryStream({ name: "images/photo.png" }).writable,
305
+ );
306
+
307
+ // Add a JSON file using createEntry
308
+ const data = { hello: "world" };
309
+ const jsonData = new TextEncoder().encode(JSON.stringify(data, null, 2));
310
+ await zipWriter.createEntry(jsonData, { name: "data.json" });
311
+
312
+ // Wait for all entries and check results
313
+ await zipWriter.onceQueueEmpty();
314
+ console.log(`Added ${zipWriter.entries.length} entries`);
315
+
316
+ // Finalize the archive
317
+ const result = await zipWriter.finalize();
318
+ console.log(`Created archive: ${result.fileSize} bytes`);
319
+ }
320
+
321
+ createZip().catch(console.error);
322
+ ```
323
+
324
+ ## Browser Usage
325
+
326
+ ```ts
327
+ // Create a ZIP and trigger download
328
+ const zipWriter = new ZipWriter();
329
+
330
+ // Add entries...
331
+ const data = new TextEncoder().encode("Hello");
332
+ zipWriter
333
+ .createEntry(data, { name: "file.txt" })
334
+ .then(() => zipWriter.finalize());
335
+
336
+ // Create download link
337
+ const blob = await new Response(zipWriter.readable).blob();
338
+ const url = URL.createObjectURL(blob);
339
+ const a = document.createElement("a");
340
+ a.href = url;
341
+ a.download = "archive.zip";
342
+ a.click();
343
+ URL.revokeObjectURL(url);
344
+ ```
345
+
346
+ ## Benchmarks
347
+
348
+ Run using `npm run bench`. On a MacBook Pro (M2 Pro, 2023), Node.js 20.19.0:
349
+
350
+ ### Small files (10 × 10KB)
351
+
352
+ | Library | ops/sec | Relative Speed |
353
+ | ----------------------------- | ------- | -------------- |
354
+ | zip-writable (@node-rs/crc32) | 721.94 | **fastest** |
355
+ | zip-writable | 674.57 | 1.07x slower |
356
+ | zip-writable (js crc32) | 659.90 | 1.09x slower |
357
+ | fflate | 553.00 | 1.31x slower |
358
+ | archiver | 338.14 | 2.14x slower |
359
+ | @zip.js/zip.js | 279.19 | 2.59x slower |
360
+
361
+ ### Medium files (100 × 100KB)
362
+
363
+ | Library | ops/sec | Relative Speed |
364
+ | ----------------------------- | ------- | -------------- |
365
+ | zip-writable | 23.91 | **fastest** |
366
+ | zip-writable (@node-rs/crc32) | 22.91 | 1.04x slower |
367
+ | zip-writable (js crc32) | 18.93 | 1.26x slower |
368
+ | archiver | 18.10 | 1.32x slower |
369
+ | @zip.js/zip.js | 11.65 | 2.05x slower |
370
+ | fflate | 10.27 | 2.33x slower |
371
+
372
+ ### Large files (5 × 10MB)
373
+
374
+ | Library | ops/sec | Relative Speed |
375
+ | ----------------------------- | ------- | -------------- |
376
+ | zip-writable | 7.22 | **fastest** |
377
+ | zip-writable (@node-rs/crc32) | 6.78 | 1.06x slower |
378
+ | archiver | 5.65 | 1.28x slower |
379
+ | zip-writable (js crc32) | 4.82 | 1.50x slower |
380
+ | fflate | 4.20 | 1.72x slower |
381
+ | @zip.js/zip.js | 4.00 | 1.81x slower |
382
+
383
+ ### Many files (1000 × 1KB)
384
+
385
+ | Library | ops/sec | Relative Speed |
386
+ | ----------------------------- | ------- | -------------- |
387
+ | fflate | 10.08 | **fastest** |
388
+ | zip-writable | 6.89 | 1.46x slower |
389
+ | zip-writable (@node-rs/crc32) | 5.94 | 1.70x slower |
390
+ | zip-writable (js crc32) | 5.63 | 1.79x slower |
391
+ | archiver | 4.98 | 2.02x slower |
392
+ | @zip.js/zip.js | 2.93 | 3.44x slower |
393
+
394
+ Note: These benchmarks vary quite a bit, and they aren't an indication that any
395
+ library is "better" than any other. For ZipWriter, these exist as a check to
396
+ ensure that performance isn't significantly worse than other libraries.
397
+
398
+ ## ZIP64 Support
399
+
400
+ The library automatically uses ZIP64 format when needed:
401
+
402
+ - Archives with more than 65,535 entries
403
+ - Files larger than 4GB
404
+ - Central directory larger than 4GB
405
+ - Central directory offset greater than 4GB
406
+
407
+ No special configuration is needed - it's handled automatically.
408
+
409
+ ## Error Handling
410
+
411
+ ```ts
412
+ try {
413
+ const entryWriter = zipWriter.entry({ name: "test.txt" });
414
+ await someStream.pipeTo(entryWriter.writable);
415
+ await entryWriter.getEntryInfo();
416
+ } catch (error) {
417
+ console.error("Failed to write entry:", error);
418
+ // The ZIP stream is aborted on error - cannot add more entries
419
+ }
420
+ ```
421
+
422
+ Once an error occurs during entry writing, the ZIP stream is corrupted and
423
+ cannot be recovered. You must create a new `ZipWriter` instance.
424
+
425
+ ## License
426
+
427
+ MIT
@@ -30,4 +30,4 @@
30
30
  * @returns The computed CRC32 checksum.
31
31
  */
32
32
  export declare function crc32(data: Uint8Array<ArrayBuffer>, value?: number): number;
33
- //# sourceMappingURL=crc.d.ts.map
33
+ //# sourceMappingURL=crc-browser.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"crc-browser.d.ts","sourceRoot":"","sources":["../src/crc-browser.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AA8BH;;;;;;;;GAQG;AACH,wBAAgB,KAAK,CACnB,IAAI,EAAE,UAAU,CAAC,WAAW,CAAC,EAC7B,KAAK,GAAE,MAAU,GAChB,MAAM,CAgCR"}
@@ -20,7 +20,27 @@
20
20
  * misrepresented as being the original software.
21
21
  * 3. This notice may not be removed or altered from any source distribution.
22
22
  */
23
- import { lookup } from "./crc-lookup.js";
23
+ /**
24
+ * From https://github.com/holepunchto/crc-universal/blob/main/lookup.js
25
+ * Licensed under Apache-2.0
26
+ */
27
+ const lookup = new Array(16);
28
+ for (let i = 0; i < 16; i++) {
29
+ lookup[i] = new Uint32Array(0x100);
30
+ }
31
+ for (let i = 0; i <= 0xff; i++) {
32
+ let crc = i;
33
+ for (let j = 0; j < 8; j++) {
34
+ crc = (crc >>> 1) ^ ((crc & 1) * 0xedb88320);
35
+ }
36
+ lookup[0][i] = crc;
37
+ }
38
+ for (let i = 0; i <= 0xff; i++) {
39
+ for (let j = 1; j < 16; j++) {
40
+ lookup[j][i] =
41
+ (lookup[j - 1][i] >>> 8) ^ lookup[0][lookup[j - 1][i] & 0xff];
42
+ }
43
+ }
24
44
  /**
25
45
  * Computes a 32-bit Cyclic Redundancy Check checksum of data. If value is
26
46
  * specified, it is used as the starting value of the checksum, otherwise, 0 is
@@ -59,4 +79,4 @@ export function crc32(data, value = 0) {
59
79
  }
60
80
  return ~crc >>> 0;
61
81
  }
62
- //# sourceMappingURL=crc.js.map
82
+ //# sourceMappingURL=crc-browser.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"crc-browser.js","sourceRoot":"","sources":["../src/crc-browser.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export { crc32 } from "node:zlib";
2
+ //# sourceMappingURL=crc-node.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"crc-node.d.ts","sourceRoot":"","sources":["../src/crc-node.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,MAAM,WAAW,CAAC"}
@@ -0,0 +1,3 @@
1
+ // @ts-nocheck
2
+ export { crc32 } from "node:zlib";
3
+ //# sourceMappingURL=crc-node.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"crc-node.js","sourceRoot":"","sources":["../src/crc-node.ts"],"names":[],"mappings":"AAAA,cAAc;AACd,OAAO,EAAE,KAAK,EAAE,MAAM,WAAW,CAAC"}
package/dist/index.d.ts CHANGED
@@ -28,16 +28,40 @@ export type EntryInfoStandard = {
28
28
  export type EntryInfo = EntryInfoZip64 | EntryInfoStandard;
29
29
  export declare class ZipWriter<TIsZip64 extends boolean = false> {
30
30
  #private;
31
+ /**
32
+ * @param crc Optional CRC32 function to use. Defaults to zlib.crc32 on Node and a pure JS implementation in browsers.
33
+ */
34
+ constructor({ crc32, }?: {
35
+ crc32?: (data: Uint8Array<ArrayBuffer>, value?: number) => number;
36
+ });
31
37
  get readable(): ReadableStream<ArrayBufferView<ArrayBufferLike>>;
32
38
  get entries(): ReadonlyArray<Readonly<EntryInfo>>;
33
39
  /**
34
40
  * Wait until all currently queued entries have been written.
35
41
  */
36
42
  onceQueueEmpty(): Promise<void>;
43
+ /**
44
+ * Convenience wrapper around `createEntryStream` to write all data at once.
45
+ * Use `createEntryStream` for more efficient streaming writes. Calls to
46
+ * createEntry() will be queued internally and each will resolve once it's
47
+ * written to the archive.
48
+ *
49
+ * @example
50
+ * ```ts
51
+ * const data = new TextEncoder().encode("Hello, World!");
52
+ * const entryInfo = await zipWriter.createEntry(data, { name: "hello.txt" });
53
+ * console.log(entryInfo);
54
+ * ```
55
+ *
56
+ * @param data Entry data
57
+ * @param options Entry filename, comment, compression method, etc.
58
+ * @returns Entry information once the entry has been written.
59
+ */
60
+ createEntry(data: Uint8Array<ArrayBuffer>, options: EntryOptions): Promise<EntryInfo>;
37
61
  /**
38
62
  * Create a new entry in the Zip archive. Use the returned
39
63
  * entryWriter.writable to write data to the entry. You can await
40
- * entryWriter.entry() to get the entry info once all data has been written.
64
+ * entryWriter.getEntryInfo() to get the entry info once all data has been written.
41
65
  *
42
66
  * @example
43
67
  * ```ts
@@ -55,20 +79,30 @@ export declare class ZipWriter<TIsZip64 extends boolean = false> {
55
79
  * new TextEncoder().encode("Hello, World!")
56
80
  * );
57
81
  * await writer.close();
58
- * console.log(await entryWriter.entry()); // Entry info
82
+ * console.log(await entryWriter.getEntryInfo()); // Entry info
59
83
  * ```
60
84
  *
61
85
  * @param options Entry options
62
86
  */
63
- entry(options: EntryOptions): EntryWriter;
87
+ createEntryStream(options: EntryOptions): EntryWriter;
64
88
  /**
65
- * Set the entries of the Zip archive. This can be used to reorder,
66
- * remove, or rename entries before finalizing the archive.
89
+ * Finalize the ZIP archive by writing the central directory and end of
90
+ * central directory records. You may not add any more entries after calling
91
+ * this method. This will await any pending entries to finish writing before
92
+ * finalizing.
93
+ *
94
+ * @param options.entries (Advanced) Optionally override the entries to write
95
+ * in the central directory. This can be used to reorder, remove, or rename
96
+ * entries before finalizing the archive, however you cannot add invalid
97
+ * entries, add additional entries, or modify their crc32, offsets or sizes.
98
+ * Use zipWriter.entries or entryWriter.getEntryInfo() to get the current
99
+ * entries for sorting or filtering.
67
100
  *
68
- * @param entries New entries array
101
+ * @returns Information about the finalized archive.
69
102
  */
70
- setEntries(entries: ReadonlyArray<Readonly<EntryInfo>>): void;
71
- finalize(): Promise<{
103
+ finalize({ entries, }?: {
104
+ entries?: ReadonlyArray<Readonly<EntryInfo>>;
105
+ }): Promise<{
72
106
  /** Does the archive use ZIP64 format? */
73
107
  zip64: boolean;
74
108
  /** Total uncompressed size of all entries */
@@ -94,11 +128,11 @@ declare class EntryWriter {
94
128
  * .pipeTo(entryWriter.writable);
95
129
  * ```
96
130
  */
97
- get writable(): WritableStream<any>;
131
+ get writable(): WritableStream<Uint8Array<ArrayBuffer>>;
98
132
  /**
99
133
  * Get entry info. Resolves once all data has been written to the Zip stream.
100
134
  */
101
- entry(): Promise<EntryInfo>;
135
+ getEntryInfo(): Promise<EntryInfo>;
102
136
  }
103
137
  export {};
104
138
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAeA,MAAM,WAAW,YAAY;IAC3B,yCAAyC;IACzC,IAAI,EAAE,MAAM,CAAC;IACb,oBAAoB;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,iBAAiB;IACjB,IAAI,CAAC,EAAE,IAAI,CAAC;IACZ,wBAAwB;IACxB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,4DAA4D;IAC5D,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,MAAM,WAAW,cAAe,SAAQ,YAAY;IAClD,kEAAkE;IAClE,WAAW,EAAE,MAAM,CAAC;IACpB,8CAA8C;IAC9C,KAAK,EAAE,MAAM,CAAC;IACd,iCAAiC;IACjC,gBAAgB,EAAE,MAAM,CAAC;IACzB,+BAA+B;IAC/B,cAAc,EAAE,MAAM,CAAC;IACvB,2CAA2C;IAC3C,KAAK,EAAE,IAAI,CAAC;CACb;AAED,MAAM,MAAM,iBAAiB,GAAG;KAC7B,CAAC,IAAI,MAAM,cAAc,GAAG,cAAc,CAAC,CAAC,CAAC,SAAS,MAAM,GACzD,MAAM,GACN,CAAC,SAAS,OAAO,GACf,KAAK,GACL,cAAc,CAAC,CAAC,CAAC;CACxB,CAAC;AAEF,MAAM,MAAM,SAAS,GAAG,cAAc,GAAG,iBAAiB,CAAC;AAE3D,qBAAa,SAAS,CAAC,QAAQ,SAAS,OAAO,GAAG,KAAK;;IAoBrD,IAAI,QAAQ,qDAEX;IAED,IAAI,OAAO,IAAI,aAAa,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAEhD;IAED;;OAEG;IACG,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC;IAMrC;;;;;;;;;;;;;;;;;;;;;;;;;OAyBG;IACH,KAAK,CAAC,OAAO,EAAE,YAAY;IAqD3B;;;;;OAKG;IACH,UAAU,CAAC,OAAO,EAAE,aAAa,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;IAoChD,QAAQ,IAAI,OAAO,CAAC;QACxB,yCAAyC;QACzC,KAAK,EAAE,OAAO,CAAC;QACf,6CAA6C;QAC7C,uBAAuB,EAAE,MAAM,CAAC;QAChC,2CAA2C;QAC3C,qBAAqB,EAAE,MAAM,CAAC;QAC9B,iCAAiC;QACjC,QAAQ,EAAE,MAAM,CAAC;KAClB,CAAC;CA0EH;AAED,cAAM,WAAW;;IASf;;OAEG;gBAED,cAAc,EAAE,CACd,QAAQ,EAAE,cAAc,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC,KAC9C,OAAO,CAAC,SAAS,CAAC;IAazB;;;;;;;;OAQG;IACH,IAAI,QAAQ,wBAEX;IAED;;OAEG;IACG,KAAK,IAAI,OAAO,CAAC,SAAS,CAAC;CAGlC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAeA,MAAM,WAAW,YAAY;IAC3B,yCAAyC;IACzC,IAAI,EAAE,MAAM,CAAC;IACb,oBAAoB;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,iBAAiB;IACjB,IAAI,CAAC,EAAE,IAAI,CAAC;IACZ,wBAAwB;IACxB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,4DAA4D;IAC5D,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,MAAM,WAAW,cAAe,SAAQ,YAAY;IAClD,kEAAkE;IAClE,WAAW,EAAE,MAAM,CAAC;IACpB,8CAA8C;IAC9C,KAAK,EAAE,MAAM,CAAC;IACd,iCAAiC;IACjC,gBAAgB,EAAE,MAAM,CAAC;IACzB,+BAA+B;IAC/B,cAAc,EAAE,MAAM,CAAC;IACvB,2CAA2C;IAC3C,KAAK,EAAE,IAAI,CAAC;CACb;AAED,MAAM,MAAM,iBAAiB,GAAG;KAC7B,CAAC,IAAI,MAAM,cAAc,GAAG,cAAc,CAAC,CAAC,CAAC,SAAS,MAAM,GACzD,MAAM,GACN,CAAC,SAAS,OAAO,GACf,KAAK,GACL,cAAc,CAAC,CAAC,CAAC;CACxB,CAAC;AAEF,MAAM,MAAM,SAAS,GAAG,cAAc,GAAG,iBAAiB,CAAC;AAE3D,qBAAa,SAAS,CAAC,QAAQ,SAAS,OAAO,GAAG,KAAK;;IAqBrD;;OAEG;gBACS,EACV,KAAoB,GACrB,GAAE;QACD,KAAK,CAAC,EAAE,CAAC,IAAI,EAAE,UAAU,CAAC,WAAW,CAAC,EAAE,KAAK,CAAC,EAAE,MAAM,KAAK,MAAM,CAAC;KAC9D;IAIN,IAAI,QAAQ,qDAEX;IAED,IAAI,OAAO,IAAI,aAAa,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAEhD;IAED;;OAEG;IACG,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC;IAMrC;;;;;;;;;;;;;;;;OAgBG;IACG,WAAW,CAAC,IAAI,EAAE,UAAU,CAAC,WAAW,CAAC,EAAE,OAAO,EAAE,YAAY;IAWtE;;;;;;;;;;;;;;;;;;;;;;;;;OAyBG;IACH,iBAAiB,CAAC,OAAO,EAAE,YAAY;IAgGvC;;;;;;;;;;;;;;OAcG;IACG,QAAQ,CAAC,EACb,OAAO,GACR,GAAE;QAAE,OAAO,CAAC,EAAE,aAAa,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAA;KAAO,GAAG,OAAO,CAAC;QACjE,yCAAyC;QACzC,KAAK,EAAE,OAAO,CAAC;QACf,6CAA6C;QAC7C,uBAAuB,EAAE,MAAM,CAAC;QAChC,2CAA2C;QAC3C,qBAAqB,EAAE,MAAM,CAAC;QAC9B,iCAAiC;QACjC,QAAQ,EAAE,MAAM,CAAC;KAClB,CAAC;CA6EH;AAED,cAAM,WAAW;;IAQf;;OAEG;gBAED,cAAc,EAAE,CACd,QAAQ,EAAE,cAAc,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC,KAC9C,OAAO,CAAC,SAAS,CAAC;IAazB;;;;;;;;OAQG;IACH,IAAI,QAAQ,4CAEX;IAED;;OAEG;IACG,YAAY,IAAI,OAAO,CAAC,SAAS,CAAC;CAGzC"}
package/dist/index.js CHANGED
@@ -2,11 +2,11 @@ import { writeZipEntry } from "./write-entry.js";
2
2
  import { getCDFH, getEOCDZip64, getEOCDStandard, } from "./write-central-directory.js";
3
3
  import { ZIP64_LIMIT } from "./constants.js";
4
4
  import { noop } from "./utils.js";
5
+ import { crc32 as crc32Default } from "#crc32";
5
6
  const BUFFER_SIZE = 16 * 1024; // 16 KB
6
7
  const bufferedQueue = new ByteLengthQueuingStrategy({
7
8
  highWaterMark: BUFFER_SIZE,
8
9
  });
9
- const unbufferedQueue = { highWaterMark: 0 };
10
10
  export class ZipWriter {
11
11
  #offset = BigInt(0);
12
12
  #zipStream = new TransformStream({
@@ -15,8 +15,8 @@ export class ZipWriter {
15
15
  this.#offset += BigInt(chunk.byteLength);
16
16
  },
17
17
  },
18
- // Unbuffered on the writable side, we already queue entries
19
- unbufferedQueue,
18
+ // default buffer on the writable side, we already queue entries
19
+ bufferedQueue,
20
20
  // Readable buffer, so that temporary delays on writable consumers don't
21
21
  // block the zip writing.
22
22
  bufferedQueue);
@@ -24,6 +24,13 @@ export class ZipWriter {
24
24
  #queued = Promise.resolve();
25
25
  #entryCount = 0;
26
26
  #finalized = false;
27
+ #crc32;
28
+ /**
29
+ * @param crc Optional CRC32 function to use. Defaults to zlib.crc32 on Node and a pure JS implementation in browsers.
30
+ */
31
+ constructor({ crc32 = crc32Default, } = {}) {
32
+ this.#crc32 = crc32;
33
+ }
27
34
  get readable() {
28
35
  return this.#zipStream.readable;
29
36
  }
@@ -38,10 +45,38 @@ export class ZipWriter {
38
45
  await this.#queued;
39
46
  }
40
47
  }
48
+ /**
49
+ * Convenience wrapper around `createEntryStream` to write all data at once.
50
+ * Use `createEntryStream` for more efficient streaming writes. Calls to
51
+ * createEntry() will be queued internally and each will resolve once it's
52
+ * written to the archive.
53
+ *
54
+ * @example
55
+ * ```ts
56
+ * const data = new TextEncoder().encode("Hello, World!");
57
+ * const entryInfo = await zipWriter.createEntry(data, { name: "hello.txt" });
58
+ * console.log(entryInfo);
59
+ * ```
60
+ *
61
+ * @param data Entry data
62
+ * @param options Entry filename, comment, compression method, etc.
63
+ * @returns Entry information once the entry has been written.
64
+ */
65
+ async createEntry(data, options) {
66
+ const entryWriter = this.createEntryStream(options);
67
+ const writer = entryWriter.writable.getWriter();
68
+ try {
69
+ await writer.write(data);
70
+ }
71
+ finally {
72
+ await writer.close();
73
+ }
74
+ return entryWriter.getEntryInfo();
75
+ }
41
76
  /**
42
77
  * Create a new entry in the Zip archive. Use the returned
43
78
  * entryWriter.writable to write data to the entry. You can await
44
- * entryWriter.entry() to get the entry info once all data has been written.
79
+ * entryWriter.getEntryInfo() to get the entry info once all data has been written.
45
80
  *
46
81
  * @example
47
82
  * ```ts
@@ -59,12 +94,12 @@ export class ZipWriter {
59
94
  * new TextEncoder().encode("Hello, World!")
60
95
  * );
61
96
  * await writer.close();
62
- * console.log(await entryWriter.entry()); // Entry info
97
+ * console.log(await entryWriter.getEntryInfo()); // Entry info
63
98
  * ```
64
99
  *
65
100
  * @param options Entry options
66
101
  */
67
- entry(options) {
102
+ createEntryStream(options) {
68
103
  if (this.#finalized) {
69
104
  throw new TypeError("Cannot add entry after finalize() has been called");
70
105
  }
@@ -88,6 +123,7 @@ export class ZipWriter {
88
123
  const reader = readable.getReader();
89
124
  try {
90
125
  const entryInfo = await writeZipEntry({
126
+ crc32: this.#crc32,
91
127
  writer,
92
128
  reader,
93
129
  entryOptions: options,
@@ -120,7 +156,7 @@ export class ZipWriter {
120
156
  *
121
157
  * @param entries New entries array
122
158
  */
123
- setEntries(entries) {
159
+ #setEntries(entries) {
124
160
  const currentEntriesByOffset = new Map();
125
161
  for (const entry of this.#entries) {
126
162
  currentEntriesByOffset.set(BigInt(entry.startOffset), entry);
@@ -145,11 +181,29 @@ export class ZipWriter {
145
181
  }
146
182
  this.#entries = entries.map((entry) => ({ ...entry }));
147
183
  }
148
- async finalize() {
184
+ /**
185
+ * Finalize the ZIP archive by writing the central directory and end of
186
+ * central directory records. You may not add any more entries after calling
187
+ * this method. This will await any pending entries to finish writing before
188
+ * finalizing.
189
+ *
190
+ * @param options.entries (Advanced) Optionally override the entries to write
191
+ * in the central directory. This can be used to reorder, remove, or rename
192
+ * entries before finalizing the archive, however you cannot add invalid
193
+ * entries, add additional entries, or modify their crc32, offsets or sizes.
194
+ * Use zipWriter.entries or entryWriter.getEntryInfo() to get the current
195
+ * entries for sorting or filtering.
196
+ *
197
+ * @returns Information about the finalized archive.
198
+ */
199
+ async finalize({ entries, } = {}) {
149
200
  if (this.#finalized) {
150
201
  throw new TypeError("finalize() has already been called");
151
202
  }
152
203
  this.#finalized = true;
204
+ if (entries) {
205
+ this.#setEntries(entries);
206
+ }
153
207
  // We do this as an IIFE to avoid an unhandled error, so that a user can
154
208
  // call finalize() without needing to await and catch an error. Any error
155
209
  // will be propagated to the stream output, but the user can optionally
@@ -206,8 +260,7 @@ export class ZipWriter {
206
260
  }
207
261
  }
208
262
  class EntryWriter {
209
- // Unbuffered stream to directly pipe to the zip writer
210
- #entryStream = new TransformStream(undefined, unbufferedQueue, unbufferedQueue);
263
+ #entryStream = new TransformStream(undefined, bufferedQueue, bufferedQueue);
211
264
  #written;
212
265
  /**
213
266
  * @param enqueueAndPipe Function that enqueues the entry data readable, pipes it to the Zip stream, and returns a promise that resolves to the entry info once done.
@@ -238,7 +291,7 @@ class EntryWriter {
238
291
  /**
239
292
  * Get entry info. Resolves once all data has been written to the Zip stream.
240
293
  */
241
- async entry() {
294
+ async getEntryInfo() {
242
295
  return this.#written;
243
296
  }
244
297
  }
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -255,10 +255,10 @@ export function getEOCDZip64(entriesCount, centralDirectoryOffset, centralDirect
255
255
  view.setUint32(offset, END_OF_CENTRAL_DIR_SIGNATURE);
256
256
  offset += 4;
257
257
  // Number of this disk
258
- view.setUint16(offset, 0xffff, true);
258
+ view.setUint16(offset, 0, true);
259
259
  offset += 2;
260
260
  // Disk where central directory starts
261
- view.setUint16(offset, 0xffff, true);
261
+ view.setUint16(offset, 0, true);
262
262
  offset += 2;
263
263
  // Number of central directory records on this disk
264
264
  view.setUint16(offset, 0xffff, true);
@@ -1 +1 @@
1
- {"version":3,"file":"write-central-directory.js","sourceRoot":"","sources":["../src/write-central-directory.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"write-central-directory.js","sourceRoot":"","sources":["../src/write-central-directory.ts"],"names":[],"mappings":"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"}
@@ -2,7 +2,7 @@ import type { EntryInfoStandard, EntryInfoZip64, EntryOptions } from "./index.js
2
2
  /**
3
3
  * Write a zip entry to the given writer from the given reader.
4
4
  */
5
- export declare function writeZipEntry({ writer, reader, entryOptions, startOffset, }: {
5
+ export declare function writeZipEntry({ writer, reader, entryOptions, startOffset, crc32, }: {
6
6
  /** Writer for the zip archive */
7
7
  writer: WritableStreamDefaultWriter<Uint8Array<ArrayBuffer>>;
8
8
  /** Reader for the entry data */
@@ -11,6 +11,8 @@ export declare function writeZipEntry({ writer, reader, entryOptions, startOffse
11
11
  entryOptions: EntryOptions;
12
12
  /** Offset in the zip archive where this entry starts */
13
13
  startOffset: bigint;
14
+ /** CRC32 function to use */
15
+ crc32: (data: Uint8Array<ArrayBuffer>, value?: number) => number;
14
16
  }): Promise<EntryInfoZip64 | EntryInfoStandard>;
15
17
  export declare function getLocalFileHeader(options: EntryOptions): Uint8Array<ArrayBuffer>;
16
18
  export declare function getDataDescriptorStandard(entryInfo: {
@@ -1 +1 @@
1
- {"version":3,"file":"write-entry.d.ts","sourceRoot":"","sources":["../src/write-entry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,iBAAiB,EACjB,cAAc,EACd,YAAY,EACb,MAAM,YAAY,CAAC;AAkBpB;;GAEG;AACH,wBAAsB,aAAa,CAAC,EAClC,MAAM,EACN,MAAM,EACN,YAAY,EACZ,WAAW,GACZ,EAAE;IACD,iCAAiC;IACjC,MAAM,EAAE,2BAA2B,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC,CAAC;IAC7D,gCAAgC;IAChC,MAAM,EAAE,2BAA2B,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC,CAAC;IAC7D,gCAAgC;IAChC,YAAY,EAAE,YAAY,CAAC;IAC3B,wDAAwD;IACxD,WAAW,EAAE,MAAM,CAAC;CACrB,+CAsFA;AAED,wBAAgB,kBAAkB,CAChC,OAAO,EAAE,YAAY,GACpB,UAAU,CAAC,WAAW,CAAC,CA4DzB;AAED,wBAAgB,yBAAyB,CAAC,SAAS,EAAE;IACnD,gBAAgB,EAAE,MAAM,CAAC;IACzB,cAAc,EAAE,MAAM,CAAC;CACxB,GAAG,UAAU,CAAC,WAAW,CAAC,CAuB1B;AAED,wBAAgB,sBAAsB,CAAC,SAAS,EAAE;IAChD,gBAAgB,EAAE,MAAM,CAAC;IACzB,cAAc,EAAE,MAAM,CAAC;CACxB,GAAG,UAAU,CAAC,WAAW,CAAC,CAuB1B"}
1
+ {"version":3,"file":"write-entry.d.ts","sourceRoot":"","sources":["../src/write-entry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,iBAAiB,EACjB,cAAc,EACd,YAAY,EACb,MAAM,YAAY,CAAC;AAiBpB;;GAEG;AACH,wBAAsB,aAAa,CAAC,EAClC,MAAM,EACN,MAAM,EACN,YAAY,EACZ,WAAW,EACX,KAAK,GACN,EAAE;IACD,iCAAiC;IACjC,MAAM,EAAE,2BAA2B,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC,CAAC;IAC7D,gCAAgC;IAChC,MAAM,EAAE,2BAA2B,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC,CAAC;IAC7D,gCAAgC;IAChC,YAAY,EAAE,YAAY,CAAC;IAC3B,wDAAwD;IACxD,WAAW,EAAE,MAAM,CAAC;IACpB,4BAA4B;IAC5B,KAAK,EAAE,CAAC,IAAI,EAAE,UAAU,CAAC,WAAW,CAAC,EAAE,KAAK,CAAC,EAAE,MAAM,KAAK,MAAM,CAAC;CAClE,+CAsFA;AAED,wBAAgB,kBAAkB,CAChC,OAAO,EAAE,YAAY,GACpB,UAAU,CAAC,WAAW,CAAC,CA4DzB;AAED,wBAAgB,yBAAyB,CAAC,SAAS,EAAE;IACnD,gBAAgB,EAAE,MAAM,CAAC;IACzB,cAAc,EAAE,MAAM,CAAC;CACxB,GAAG,UAAU,CAAC,WAAW,CAAC,CAuB1B;AAED,wBAAgB,sBAAsB,CAAC,SAAS,EAAE;IAChD,gBAAgB,EAAE,MAAM,CAAC;IACzB,cAAc,EAAE,MAAM,CAAC;CACxB,GAAG,UAAU,CAAC,WAAW,CAAC,CAuB1B"}
@@ -1,11 +1,10 @@
1
1
  import { LOCAL_FILE_HEADER_SIGNATURE, DATA_DESCRIPTOR_SIGNATURE, VERSION_NEEDED_STANDARD, GENERAL_PURPOSE_FLAGS, COMPRESSION_METHOD_STORE, COMPRESSION_METHOD_DEFLATE, LOCAL_FILE_HEADER_SIZE, ZIP64_LIMIT, DATA_DESCRIPTOR_SIZE, DATA_DESCRIPTOR_SIZE_ZIP64, } from "./constants.js";
2
2
  import { getDosTime, getDosDate } from "./utils.js";
3
- import { crc32 } from "./crc.js";
4
3
  const textEncoder = new TextEncoder();
5
4
  /**
6
5
  * Write a zip entry to the given writer from the given reader.
7
6
  */
8
- export async function writeZipEntry({ writer, reader, entryOptions, startOffset, }) {
7
+ export async function writeZipEntry({ writer, reader, entryOptions, startOffset, crc32, }) {
9
8
  let uncompressedSize = BigInt(0);
10
9
  let compressedSize = BigInt(0);
11
10
  let crc = 0;
@@ -1 +1 @@
1
- {"version":3,"file":"write-entry.js","sourceRoot":"","sources":["../src/write-entry.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"write-entry.js","sourceRoot":"","sources":["../src/write-entry.ts"],"names":[],"mappings":"AAKA,OAAO,EACL,2BAA2B,EAC3B,yBAAyB,EACzB,uBAAuB,EACvB,qBAAqB,EACrB,wBAAwB,EACxB,0BAA0B,EAC1B,sBAAsB,EACtB,WAAW,EACX,oBAAoB,EACpB,0BAA0B,GAC3B,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAEpD,MAAM,WAAW,GAAG,IAAI,WAAW,EAAE,CAAC;AAEtC;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,EAClC,MAAM,EACN,MAAM,EACN,YAAY,EACZ,WAAW,EACX,KAAK,GAYN;IACC,IAAI,gBAAgB,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;IACjC,IAAI,cAAc,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;IAC/B,IAAI,GAAG,GAAG,CAAC,CAAC;IAEZ,MAAM,MAAM,CAAC,KAAK,CAAC,kBAAkB,CAAC,YAAY,CAAC,CAAC,CAAC;IAErD,IAAI,YAAY,CAAC,KAAK,EAAE,CAAC;QACvB,0CAA0C;QAC1C,OAAO,IAAI,EAAE,CAAC;YACZ,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC;YAC5C,IAAI,IAAI;gBAAE,MAAM;YAChB,MAAM,UAAU,GAAG,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;YAC5C,gBAAgB,IAAI,UAAU,CAAC;YAC/B,cAAc,IAAI,UAAU,CAAC;YAC7B,GAAG,GAAG,KAAK,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;YACxB,MAAM,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAC5B,CAAC;IACH,CAAC;SAAM,CAAC;QACN,gEAAgE;QAChE,MAAM,iBAAiB,GAAG,IAAI,iBAAiB,CAAC,aAAa,CAAC,CAAC;QAC/D,MAAM,iBAAiB,GAAG,iBAAiB,CAAC,QAAQ,CAAC,SAAS,EAAE,CAAC;QACjE,MAAM,iBAAiB,GAAG,iBAAiB,CAAC,QAAQ,CAAC,SAAS,EAAE,CAAC;QAEjE,MAAM,YAAY,GAAG,CAAC,KAAK,IAAI,EAAE;YAC/B,IAAI,CAAC;gBACH,OAAO,IAAI,EAAE,CAAC;oBACZ,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC;oBAC5C,IAAI,IAAI;wBAAE,MAAM;oBAChB,gBAAgB,IAAI,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;oBAC7C,GAAG,GAAG,KAAK,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;oBACxB,MAAM,iBAAiB,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;gBACvC,CAAC;gBACD,MAAM,iBAAiB,CAAC,KAAK,EAAE,CAAC;YAClC,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,MAAM,iBAAiB,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;gBACnC,MAAM,GAAG,CAAC;YACZ,CAAC;QACH,CAAC,CAAC,EAAE,CAAC;QAEL,MAAM,WAAW,GAAG,CAAC,KAAK,IAAI,EAAE;YAC9B,IAAI,CAAC;gBACH,OAAO,IAAI,EAAE,CAAC;oBACZ,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,MAAM,iBAAiB,CAAC,IAAI,EAAE,CAAC;oBACvD,IAAI,IAAI;wBAAE,MAAM;oBAChB,cAAc,IAAI,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;oBAC3C,MAAM,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;gBAC5B,CAAC;gBACD,iBAAiB,CAAC,WAAW,EAAE,CAAC;YAClC,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,MAAM,iBAAiB,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;gBACpC,MAAM,GAAG,CAAC;YACZ,CAAC;QACH,CAAC,CAAC,EAAE,CAAC;QAEL,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC,YAAY,EAAE,WAAW,CAAC,CAAC,CAAC;IACjD,CAAC;IAED,MAAM,UAAU,GACd,gBAAgB,GAAG,WAAW;QAC9B,cAAc,GAAG,WAAW;QAC5B,WAAW,GAAG,WAAW,CAAC;IAE5B,IAAI,UAAU,EAAE,CAAC;QACf,MAAM,SAAS,GAAmB;YAChC,GAAG,YAAY;YACf,WAAW;YACX,KAAK,EAAE,GAAG;YACV,gBAAgB;YAChB,cAAc;YACd,KAAK,EAAE,IAAI;SACZ,CAAC;QACF,MAAM,MAAM,CAAC,KAAK,CAAC,sBAAsB,CAAC,SAAS,CAAC,CAAC,CAAC;QACtD,OAAO,SAAS,CAAC;IACnB,CAAC;SAAM,CAAC;QACN,MAAM,SAAS,GAAsB;YACnC,GAAG,YAAY;YACf,WAAW,EAAE,MAAM,CAAC,WAAW,CAAC;YAChC,KAAK,EAAE,GAAG;YACV,gBAAgB,EAAE,MAAM,CAAC,gBAAgB,CAAC;YAC1C,cAAc,EAAE,MAAM,CAAC,cAAc,CAAC;YACtC,KAAK,EAAE,KAAK;SACb,CAAC;QACF,MAAM,MAAM,CAAC,KAAK,CAAC,yBAAyB,CAAC,SAAS,CAAC,CAAC,CAAC;QACzD,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC;AAED,MAAM,UAAU,kBAAkB,CAChC,OAAqB;IAErB,MAAM,SAAS,GAAG,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAEnD,MAAM,UAAU,GAAG,sBAAsB,GAAG,SAAS,CAAC,MAAM,CAAC;IAC7D,MAAM,MAAM,GAAG,IAAI,UAAU,CAAC,UAAU,CAAC,CAAC;IAC1C,MAAM,IAAI,GAAG,IAAI,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAEzC,IAAI,MAAM,GAAG,CAAC,CAAC;IAEf,8BAA8B;IAC9B,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,2BAA2B,CAAC,CAAC;IACpD,MAAM,IAAI,CAAC,CAAC;IAEZ,4BAA4B;IAC5B,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,uBAAuB,CAAC,CAAC;IAChD,MAAM,IAAI,CAAC,CAAC;IAEZ,2BAA2B;IAC3B,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,qBAAqB,CAAC,CAAC;IAC9C,MAAM,IAAI,CAAC,CAAC;IAEZ,qBAAqB;IACrB,IAAI,CAAC,SAAS,CACZ,MAAM,EACN,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,wBAAwB,CAAC,CAAC,CAAC,0BAA0B,EACrE,IAAI,CACL,CAAC;IACF,MAAM,IAAI,CAAC,CAAC;IAEZ,4CAA4C;IAC5C,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,IAAI,IAAI,IAAI,EAAE,CAAC;IACxC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,UAAU,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC;IAC/C,MAAM,IAAI,CAAC,CAAC;IACZ,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,UAAU,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC;IAC/C,MAAM,IAAI,CAAC,CAAC;IAEZ,wCAAwC;IACxC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC;IAChC,MAAM,IAAI,CAAC,CAAC;IAEZ,iDAAiD;IACjD,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC;IAChC,MAAM,IAAI,CAAC,CAAC;IAEZ,mDAAmD;IACnD,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC;IAChC,MAAM,IAAI,CAAC,CAAC;IAEZ,mBAAmB;IACnB,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,SAAS,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IAC/C,MAAM,IAAI,CAAC,CAAC;IAEZ,qBAAqB;IACrB,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC;IAChC,MAAM,IAAI,CAAC,CAAC;IAEZ,YAAY;IACZ,MAAM,CAAC,GAAG,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;IAE9B,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,MAAM,UAAU,yBAAyB,CAAC,SAGzC;IACC,MAAM,UAAU,GAAG,IAAI,UAAU,CAAC,oBAAoB,CAAC,CAAC;IACxD,MAAM,IAAI,GAAG,IAAI,QAAQ,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;IAE7C,IAAI,MAAM,GAAG,CAAC,CAAC;IAEf,4BAA4B;IAC5B,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,yBAAyB,CAAC,CAAC;IAClD,MAAM,IAAI,CAAC,CAAC;IAEZ,2CAA2C;IAC3C,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC;IAChC,MAAM,IAAI,CAAC,CAAC;IAEZ,4BAA4B;IAC5B,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,SAAS,CAAC,cAAc,EAAE,IAAI,CAAC,CAAC;IACvD,MAAM,IAAI,CAAC,CAAC;IAEZ,8BAA8B;IAC9B,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,SAAS,CAAC,gBAAgB,EAAE,IAAI,CAAC,CAAC;IACzD,MAAM,IAAI,CAAC,CAAC;IAEZ,OAAO,UAAU,CAAC;AACpB,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAC,SAGtC;IACC,MAAM,UAAU,GAAG,IAAI,UAAU,CAAC,0BAA0B,CAAC,CAAC;IAC9D,MAAM,IAAI,GAAG,IAAI,QAAQ,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;IAE7C,IAAI,MAAM,GAAG,CAAC,CAAC;IAEf,4BAA4B;IAC5B,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,yBAAyB,CAAC,CAAC;IAClD,MAAM,IAAI,CAAC,CAAC;IAEZ,2CAA2C;IAC3C,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC;IAChC,MAAM,IAAI,CAAC,CAAC;IAEZ,sCAAsC;IACtC,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,SAAS,CAAC,cAAc,EAAE,IAAI,CAAC,CAAC;IAC1D,MAAM,IAAI,CAAC,CAAC;IAEZ,wCAAwC;IACxC,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,SAAS,CAAC,gBAAgB,EAAE,IAAI,CAAC,CAAC;IAC5D,MAAM,IAAI,CAAC,CAAC;IAEZ,OAAO,UAAU,CAAC;AACpB,CAAC"}
package/package.json CHANGED
@@ -1,19 +1,27 @@
1
1
  {
2
2
  "name": "zip-writer",
3
- "version": "1.0.1",
3
+ "version": "1.1.0",
4
4
  "exports": {
5
5
  ".": {
6
6
  "types": "./dist/index.d.ts",
7
7
  "import": "./dist/index.js"
8
8
  }
9
9
  },
10
+ "imports": {
11
+ "#crc32": {
12
+ "browser": "./src/crc-browser.ts",
13
+ "default": "./src/crc-node.ts"
14
+ }
15
+ },
10
16
  "type": "module",
11
17
  "scripts": {
12
- "test": "run-s test:types test:lint test:e2e",
18
+ "test": "run-s test:types test:lint test:vitest",
13
19
  "prepare": "husky",
14
20
  "test:types": "tsc --noEmit",
15
21
  "test:lint": "eslint .",
16
- "test:e2e": "vitest",
22
+ "test:vitest": "vitest",
23
+ "bench": "vitest bench",
24
+ "format": "prettier --write .",
17
25
  "prepack": "rimraf dist && tsc"
18
26
  },
19
27
  "files": [
@@ -24,11 +32,17 @@
24
32
  "license": "ISC",
25
33
  "description": "",
26
34
  "devDependencies": {
35
+ "@node-rs/crc32": "^1.10.6",
36
+ "@types/archiver": "^7.0.0",
27
37
  "@types/node": "^24.10.0",
28
38
  "@types/yauzl-promise": "^4.0.1",
29
39
  "@vitest/browser": "^4.0.7",
30
40
  "@vitest/browser-playwright": "^4.0.7",
41
+ "@zip.js/zip.js": "^2.8.8",
42
+ "archiver": "^7.0.1",
31
43
  "eslint": "^9.39.1",
44
+ "execa": "^9.6.0",
45
+ "fflate": "^0.8.2",
32
46
  "globals": "^16.5.0",
33
47
  "husky": "^9.1.7",
34
48
  "lint-staged": "^16.2.6",
@@ -39,5 +53,9 @@
39
53
  "typescript": "^5.9.3",
40
54
  "vitest": "^4.0.7",
41
55
  "yauzl-promise": "^4.0.0"
56
+ },
57
+ "lint-staged": {
58
+ "*.js": "eslint --cache --fix",
59
+ "*.{js,css,md}": "prettier --write"
42
60
  }
43
61
  }
@@ -1,6 +0,0 @@
1
- /**
2
- * From https://github.com/holepunchto/crc-universal/blob/main/lookup.js
3
- * Licensed under Apache-2.0
4
- */
5
- export declare const lookup: Uint32Array<ArrayBuffer>[];
6
- //# sourceMappingURL=crc-lookup.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"crc-lookup.d.ts","sourceRoot":"","sources":["../src/crc-lookup.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,eAAO,MAAM,MAAM,EAAoB,WAAW,CAAC,WAAW,CAAC,EAAE,CAAC"}
@@ -1,22 +0,0 @@
1
- /**
2
- * From https://github.com/holepunchto/crc-universal/blob/main/lookup.js
3
- * Licensed under Apache-2.0
4
- */
5
- export const lookup = new Array(16);
6
- for (let i = 0; i < 16; i++) {
7
- lookup[i] = new Uint32Array(0x100);
8
- }
9
- for (let i = 0; i <= 0xff; i++) {
10
- let crc = i;
11
- for (let j = 0; j < 8; j++) {
12
- crc = (crc >>> 1) ^ ((crc & 1) * 0xedb88320);
13
- }
14
- lookup[0][i] = crc;
15
- }
16
- for (let i = 0; i <= 0xff; i++) {
17
- for (let j = 1; j < 16; j++) {
18
- lookup[j][i] =
19
- (lookup[j - 1][i] >>> 8) ^ lookup[0][lookup[j - 1][i] & 0xff];
20
- }
21
- }
22
- //# sourceMappingURL=crc-lookup.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"crc-lookup.js","sourceRoot":"","sources":["../src/crc-lookup.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,CAAC,MAAM,MAAM,GAAG,IAAI,KAAK,CAAC,EAAE,CAA+B,CAAC;AAElE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC;IAC5B,MAAM,CAAC,CAAC,CAAC,GAAG,IAAI,WAAW,CAAC,KAAK,CAAC,CAAC;AACrC,CAAC;AAED,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC;IAC/B,IAAI,GAAG,GAAG,CAAC,CAAC;IAEZ,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QAC3B,GAAG,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,UAAU,CAAC,CAAC;IAC/C,CAAC;IAED,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;AACrB,CAAC;AAED,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC;IAC/B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC;QAC5B,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACV,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;IAClE,CAAC;AACH,CAAC"}
package/dist/crc.d.ts.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"crc.d.ts","sourceRoot":"","sources":["../src/crc.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAIH;;;;;;;;GAQG;AACH,wBAAgB,KAAK,CACnB,IAAI,EAAE,UAAU,CAAC,WAAW,CAAC,EAC7B,KAAK,GAAE,MAAU,GAChB,MAAM,CAgCR"}
package/dist/crc.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"crc.js","sourceRoot":"","sources":["../src/crc.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAEzC;;;;;;;;GAQG;AACH,MAAM,UAAU,KAAK,CACnB,IAA6B,EAC7B,QAAgB,CAAC;IAEjB,IAAI,GAAG,GAAG,CAAC,KAAK,CAAC;IACjB,IAAI,CAAC,GAAG,CAAC,CAAC;IACV,IAAI,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC;IAE7B,OAAO,MAAM,IAAI,EAAE,EAAE,CAAC;QACpB,GAAG;YACD,MAAM,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,CAAC;gBACpC,MAAM,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;gBAC5C,MAAM,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC;gBAC7C,MAAM,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,EAAE,CAAC,CAAC;gBACpC,MAAM,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC;gBACrB,MAAM,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC;gBACrB,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC;gBACpB,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC;gBACpB,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC;gBACpB,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC;gBACpB,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC;gBACpB,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC;gBACpB,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC;gBACpB,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC;gBACpB,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC;gBACpB,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QAEvB,MAAM,IAAI,EAAE,CAAC;IACf,CAAC;IAED,OAAO,MAAM,EAAE,GAAG,CAAC,EAAE,CAAC;QACpB,GAAG,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAC1D,CAAC;IAED,OAAO,CAAC,GAAG,KAAK,CAAC,CAAC;AACpB,CAAC"}