zip-writer 1.1.2 → 2.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.
@@ -1,94 +1,29 @@
1
- import { CENTRAL_DIRECTORY_SIGNATURE, END_OF_CENTRAL_DIR_SIGNATURE, ZIP64_END_OF_CENTRAL_DIR_SIGNATURE, ZIP64_END_OF_CENTRAL_DIR_LOCATOR_SIGNATURE, VERSION_MADE_BY, VERSION_NEEDED_STANDARD, VERSION_NEEDED_ZIP64, GENERAL_PURPOSE_FLAGS, COMPRESSION_METHOD_STORE, COMPRESSION_METHOD_DEFLATE, ZIP64_LIMIT, CENTRAL_DIRECTORY_HEADER_SIZE, EOCD_SIZE, EOCD64_SIZE, EOCD64_LOCATOR_SIZE, BIG_ENDIAN, LITTLE_ENDIAN, } from "./constants.js";
2
- import { getDosTime, getDosDate, writeDataView, UINT16, UINT32, UINT64, } from "./utils.js";
3
- const textEncoder = new TextEncoder();
1
+ import { CENTRAL_DIRECTORY_SIGNATURE, END_OF_CENTRAL_DIR_SIGNATURE, ZIP64_END_OF_CENTRAL_DIR_SIGNATURE, ZIP64_END_OF_CENTRAL_DIR_LOCATOR_SIGNATURE, VERSION_MADE_BY, VERSION_NEEDED_STANDARD, VERSION_NEEDED_ZIP64, GENERAL_PURPOSE_FLAGS, COMPRESSION_METHOD_STORE, COMPRESSION_METHOD_DEFLATE, ZIP64_LIMIT, CENTRAL_DIRECTORY_HEADER_SIZE, EOCD_SIZE, EOCD64_SIZE, EOCD64_LOCATOR_SIZE, BIG_ENDIAN, LITTLE_ENDIAN, MAX_2_BYTE, MAX_4_BYTE, } from "./constants.js";
2
+ import { getDosTime, getDosDate, writeDataView, UINT16, UINT32, UINT64, validateEntryOptions, eocdNeedsZip64, } from "./utils.js";
4
3
  /**
5
4
  * Generate the Central Directory File Header for the given entry info.
6
5
  */
7
6
  export function getCDFH(entryInfo) {
8
- if (entryInfo.zip64) {
9
- return getCDFHZip64(entryInfo);
7
+ const { nameBytes, commentBytes, zip64 } = entryInfo;
8
+ validateEntryOptions(entryInfo);
9
+ let extraField = new Uint8Array(0);
10
+ if (zip64) {
11
+ // Extra field for ZIP64
12
+ extraField = new Uint8Array(28); // ZIP64 extra field
13
+ const extraView = new DataView(extraField.buffer);
14
+ writeDataView(extraView, [
15
+ // ZIP64 extra field tag
16
+ [UINT16, 0x0001, LITTLE_ENDIAN],
17
+ // Size of extra field data (3x 8-byte fields)
18
+ [UINT16, 24, LITTLE_ENDIAN],
19
+ // Original size
20
+ [UINT64, entryInfo.uncompressedSize, LITTLE_ENDIAN],
21
+ // Compressed size
22
+ [UINT64, entryInfo.compressedSize, LITTLE_ENDIAN],
23
+ // Relative header offset
24
+ [UINT64, entryInfo.startOffset, LITTLE_ENDIAN],
25
+ ]);
10
26
  }
11
- else {
12
- return getCDFHStandard(entryInfo);
13
- }
14
- }
15
- function getCDFHStandard(entryInfo) {
16
- const nameBytes = textEncoder.encode(entryInfo.name);
17
- const commentBytes = entryInfo.comment
18
- ? textEncoder.encode(entryInfo.comment)
19
- : new Uint8Array(0);
20
- const headerSize = CENTRAL_DIRECTORY_HEADER_SIZE + nameBytes.length + commentBytes.length;
21
- const header = new Uint8Array(headerSize);
22
- const view = new DataView(header.buffer);
23
- const date = entryInfo.date || new Date();
24
- const externalAttrs = entryInfo.mode ? entryInfo.mode << 16 : 0;
25
- const compressionMethod = entryInfo.store
26
- ? COMPRESSION_METHOD_STORE
27
- : COMPRESSION_METHOD_DEFLATE;
28
- let offset = writeDataView(view, [
29
- // Central directory file header signature
30
- [UINT32, CENTRAL_DIRECTORY_SIGNATURE, BIG_ENDIAN],
31
- // Version made by
32
- [UINT16, VERSION_MADE_BY, LITTLE_ENDIAN],
33
- // Version needed to extract
34
- [UINT16, VERSION_NEEDED_STANDARD, LITTLE_ENDIAN],
35
- // General purpose bit flag
36
- [UINT16, GENERAL_PURPOSE_FLAGS, LITTLE_ENDIAN],
37
- // Compression method
38
- [UINT16, compressionMethod, LITTLE_ENDIAN],
39
- // Last mod file time & date
40
- [UINT16, getDosTime(date), LITTLE_ENDIAN],
41
- [UINT16, getDosDate(date), LITTLE_ENDIAN],
42
- // CRC-32
43
- [UINT32, entryInfo.crc32, LITTLE_ENDIAN],
44
- // Compressed size
45
- [UINT32, entryInfo.compressedSize, LITTLE_ENDIAN],
46
- // Uncompressed size
47
- [UINT32, entryInfo.uncompressedSize, LITTLE_ENDIAN],
48
- // File name length
49
- [UINT16, nameBytes.length, LITTLE_ENDIAN],
50
- // Extra field length
51
- [UINT16, 0, LITTLE_ENDIAN],
52
- // File comment length
53
- [UINT16, commentBytes.length, LITTLE_ENDIAN],
54
- // Disk number start
55
- [UINT16, 0, LITTLE_ENDIAN],
56
- // Internal file attributes
57
- [UINT16, 0, LITTLE_ENDIAN],
58
- // External file attributes (Unix permissions if provided)
59
- [UINT32, externalAttrs, LITTLE_ENDIAN],
60
- // Relative offset of local header
61
- [UINT32, entryInfo.startOffset, LITTLE_ENDIAN],
62
- ]);
63
- // File name
64
- header.set(nameBytes, offset);
65
- offset += nameBytes.length;
66
- // File comment
67
- if (commentBytes.length > 0) {
68
- header.set(commentBytes, offset);
69
- }
70
- return header;
71
- }
72
- function getCDFHZip64(entryInfo) {
73
- const nameBytes = textEncoder.encode(entryInfo.name);
74
- const commentBytes = entryInfo.comment
75
- ? textEncoder.encode(entryInfo.comment)
76
- : new Uint8Array(0);
77
- // Extra field for ZIP64
78
- const extraField = new Uint8Array(28); // ZIP64 extra field
79
- const extraView = new DataView(extraField.buffer);
80
- writeDataView(extraView, [
81
- // ZIP64 extra field tag
82
- [UINT16, 0x0001, LITTLE_ENDIAN],
83
- // Size of extra field data (3x 8-byte fields)
84
- [UINT16, 24, LITTLE_ENDIAN],
85
- // Original size
86
- [UINT64, entryInfo.uncompressedSize, LITTLE_ENDIAN],
87
- // Compressed size
88
- [UINT64, entryInfo.compressedSize, LITTLE_ENDIAN],
89
- // Relative header offset
90
- [UINT64, entryInfo.startOffset, LITTLE_ENDIAN],
91
- ]);
92
27
  const headerSize = CENTRAL_DIRECTORY_HEADER_SIZE +
93
28
  nameBytes.length +
94
29
  extraField.length +
@@ -106,7 +41,11 @@ function getCDFHZip64(entryInfo) {
106
41
  // Version made by
107
42
  [UINT16, VERSION_MADE_BY, LITTLE_ENDIAN],
108
43
  // Version needed to extract
109
- [UINT16, VERSION_NEEDED_ZIP64, LITTLE_ENDIAN],
44
+ [
45
+ UINT16,
46
+ zip64 ? VERSION_NEEDED_ZIP64 : VERSION_NEEDED_STANDARD,
47
+ LITTLE_ENDIAN,
48
+ ],
110
49
  // General purpose bit flag
111
50
  [UINT16, GENERAL_PURPOSE_FLAGS, LITTLE_ENDIAN],
112
51
  // Compression method
@@ -117,9 +56,17 @@ function getCDFHZip64(entryInfo) {
117
56
  // CRC-32
118
57
  [UINT32, entryInfo.crc32, LITTLE_ENDIAN],
119
58
  // Compressed size (0xFFFFFFFF for ZIP64)
120
- [UINT32, 0xffffffff, LITTLE_ENDIAN],
59
+ [
60
+ UINT32,
61
+ zip64 ? MAX_4_BYTE : Number(entryInfo.compressedSize),
62
+ LITTLE_ENDIAN,
63
+ ],
121
64
  // Uncompressed size (0xFFFFFFFF for ZIP64)
122
- [UINT32, 0xffffffff, LITTLE_ENDIAN],
65
+ [
66
+ UINT32,
67
+ zip64 ? MAX_4_BYTE : Number(entryInfo.uncompressedSize),
68
+ LITTLE_ENDIAN,
69
+ ],
123
70
  // File name length
124
71
  [UINT16, nameBytes.length, LITTLE_ENDIAN],
125
72
  // Extra field length
@@ -133,14 +80,16 @@ function getCDFHZip64(entryInfo) {
133
80
  // External file attributes (Unix permissions if provided)
134
81
  [UINT32, externalAttrs, LITTLE_ENDIAN],
135
82
  // Relative offset of local header (0xFFFFFFFF for ZIP64)
136
- [UINT32, 0xffffffff, LITTLE_ENDIAN],
83
+ [UINT32, zip64 ? 0xffffffff : Number(entryInfo.startOffset), LITTLE_ENDIAN],
137
84
  ]);
138
85
  // File name
139
86
  header.set(nameBytes, offset);
140
87
  offset += nameBytes.length;
141
88
  // Extra field
142
- header.set(extraField, offset);
143
- offset += extraField.length;
89
+ if (extraField.length > 0) {
90
+ header.set(extraField, offset);
91
+ offset += extraField.length;
92
+ }
144
93
  // File comment
145
94
  if (commentBytes.length > 0) {
146
95
  header.set(commentBytes, offset);
@@ -176,42 +125,51 @@ export function getEOCDStandard(entriesCount, centralDirectoryOffset, centralDir
176
125
  /**
177
126
  * Generate the ZIP64 End of Central Directory record.
178
127
  */
179
- export function getEOCDZip64(entriesCount, centralDirectoryOffset, centralDirectorySize) {
180
- const totalSize = EOCD64_SIZE + EOCD64_LOCATOR_SIZE + EOCD_SIZE;
128
+ export function getEOCD(options) {
129
+ const zip64 = eocdNeedsZip64(options);
130
+ const { entriesCount, centralDirectoryStart, centralDirectorySize } = options;
131
+ const totalSize = zip64
132
+ ? EOCD64_SIZE + EOCD64_LOCATOR_SIZE + EOCD_SIZE
133
+ : EOCD_SIZE;
181
134
  const buffer = new Uint8Array(totalSize);
182
135
  const view = new DataView(buffer.buffer);
183
- let offset = writeDataView(view, [
184
- // === ZIP64 End of Central Directory Record ===
185
- // End of central dir signature
186
- [UINT32, ZIP64_END_OF_CENTRAL_DIR_SIGNATURE, BIG_ENDIAN],
187
- // Size of zip64 end of central directory record excluding the leading 12 bytes
188
- [UINT64, BigInt(EOCD64_SIZE - 12), LITTLE_ENDIAN],
189
- // Version made by
190
- [UINT16, VERSION_MADE_BY, LITTLE_ENDIAN],
191
- // Version needed to extract
192
- [UINT16, VERSION_NEEDED_ZIP64, LITTLE_ENDIAN],
193
- // Number of this disk
194
- [UINT32, 0, LITTLE_ENDIAN],
195
- // Disk where central directory starts
196
- [UINT32, 0, LITTLE_ENDIAN],
197
- // Number of central directory records on this disk
198
- [UINT64, entriesCount, LITTLE_ENDIAN],
199
- // Total number of central directory records
200
- [UINT64, entriesCount, LITTLE_ENDIAN],
201
- // Size of central directory
202
- [UINT64, centralDirectorySize, LITTLE_ENDIAN],
203
- // Offset of start of central directory
204
- [UINT64, centralDirectoryOffset, LITTLE_ENDIAN],
205
- // === ZIP64 End of Central Directory Locator ===
206
- // Zip64 end of central dir locator signature
207
- [UINT32, ZIP64_END_OF_CENTRAL_DIR_LOCATOR_SIGNATURE, BIG_ENDIAN],
208
- // Number of the disk with the start of the zip64 end of central directory
209
- [UINT32, 0, LITTLE_ENDIAN],
210
- // Relative offset of the zip64 end of central directory record
211
- [UINT64, centralDirectoryOffset + centralDirectorySize, LITTLE_ENDIAN],
212
- // Total number of disks
213
- [UINT32, 1, LITTLE_ENDIAN],
214
- // === Standard End of Central Directory Record ===
136
+ let offset = 0;
137
+ if (zip64) {
138
+ offset = writeDataView(view, [
139
+ // === ZIP64 End of Central Directory Record ===
140
+ // End of central dir signature
141
+ [UINT32, ZIP64_END_OF_CENTRAL_DIR_SIGNATURE, BIG_ENDIAN],
142
+ // Size of zip64 end of central directory record excluding the leading 12 bytes
143
+ [UINT64, BigInt(EOCD64_SIZE - 12), LITTLE_ENDIAN],
144
+ // Version made by
145
+ [UINT16, VERSION_MADE_BY, LITTLE_ENDIAN],
146
+ // Version needed to extract
147
+ [UINT16, VERSION_NEEDED_ZIP64, LITTLE_ENDIAN],
148
+ // Number of this disk
149
+ [UINT32, 0, LITTLE_ENDIAN],
150
+ // Disk where central directory starts
151
+ [UINT32, 0, LITTLE_ENDIAN],
152
+ // Number of central directory records on this disk
153
+ [UINT64, BigInt(entriesCount), LITTLE_ENDIAN],
154
+ // Total number of central directory records
155
+ [UINT64, BigInt(entriesCount), LITTLE_ENDIAN],
156
+ // Size of central directory
157
+ [UINT64, centralDirectorySize, LITTLE_ENDIAN],
158
+ // Offset of start of central directory
159
+ [UINT64, centralDirectoryStart, LITTLE_ENDIAN],
160
+ // === ZIP64 End of Central Directory Locator ===
161
+ // Zip64 end of central dir locator signature
162
+ [UINT32, ZIP64_END_OF_CENTRAL_DIR_LOCATOR_SIGNATURE, BIG_ENDIAN],
163
+ // Number of the disk with the start of the zip64 end of central directory
164
+ [UINT32, 0, LITTLE_ENDIAN],
165
+ // Relative offset of the zip64 end of central directory record
166
+ [UINT64, centralDirectoryStart + centralDirectorySize, LITTLE_ENDIAN],
167
+ // Total number of disks
168
+ [UINT32, 1, LITTLE_ENDIAN],
169
+ ]);
170
+ }
171
+ // === Standard End of Central Directory Record ===
172
+ writeDataView(view, [
215
173
  // End of central dir signature
216
174
  [UINT32, END_OF_CENTRAL_DIR_SIGNATURE, BIG_ENDIAN],
217
175
  // Number of this disk
@@ -219,16 +177,24 @@ export function getEOCDZip64(entriesCount, centralDirectoryOffset, centralDirect
219
177
  // Disk where central directory starts
220
178
  [UINT16, 0, LITTLE_ENDIAN],
221
179
  // Number of central directory records on this disk
222
- [UINT16, 0xffff, LITTLE_ENDIAN],
180
+ [UINT16, zip64 ? MAX_2_BYTE : entriesCount, LITTLE_ENDIAN],
223
181
  // Total number of central directory records
224
- [UINT16, 0xffff, LITTLE_ENDIAN],
182
+ [UINT16, zip64 ? MAX_2_BYTE : entriesCount, LITTLE_ENDIAN],
225
183
  // Size of central directory
226
- [UINT32, 0xffffffff, LITTLE_ENDIAN],
184
+ [
185
+ UINT32,
186
+ zip64 ? MAX_4_BYTE : Number(centralDirectorySize),
187
+ LITTLE_ENDIAN,
188
+ ],
227
189
  // Offset of start of central directory
228
- [UINT32, 0xffffffff, LITTLE_ENDIAN],
190
+ [
191
+ UINT32,
192
+ zip64 ? MAX_4_BYTE : Number(centralDirectoryStart),
193
+ LITTLE_ENDIAN,
194
+ ],
229
195
  // ZIP file comment length
230
196
  [UINT16, 0, LITTLE_ENDIAN],
231
- ]);
197
+ ], offset);
232
198
  return buffer;
233
199
  }
234
200
  //# sourceMappingURL=write-central-directory.js.map
@@ -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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"}
@@ -1,28 +1,9 @@
1
- import type { EntryInfoStandard, EntryInfoZip64, EntryOptions } from "./index.js";
2
- /**
3
- * Write a zip entry to the given writer from the given reader.
4
- */
5
- export declare function writeZipEntry({ writer, reader, entryOptions, startOffset, crc32, }: {
6
- /** Writer for the zip archive */
7
- writer: WritableStreamDefaultWriter<Uint8Array<ArrayBuffer>>;
8
- /** Reader for the entry data */
9
- reader: ReadableStreamDefaultReader<Uint8Array<ArrayBuffer>>;
10
- /** Options for the zip entry */
11
- entryOptions: EntryOptions;
12
- /** Offset in the zip archive where this entry starts */
13
- startOffset: bigint;
14
- /** CRC32 function to use */
15
- crc32: (data: Uint8Array<ArrayBuffer>, value?: number) => number;
16
- }): Promise<EntryInfoZip64 | EntryInfoStandard>;
17
- export declare function getLocalFileHeader(options: EntryOptions): Uint8Array<ArrayBuffer>;
18
- export declare function getDataDescriptorStandard(entryInfo: {
19
- uncompressedSize: number;
20
- compressedSize: number;
21
- crc32: number;
22
- }): Uint8Array<ArrayBuffer>;
23
- export declare function getDataDescriptorZip64(entryInfo: {
1
+ import type { EntryOptionsInternal } from "./index.js";
2
+ export declare function getLocalFileHeader(options: EntryOptionsInternal): Uint8Array<ArrayBuffer>;
3
+ export declare function getDataDescriptor(entryInfo: {
24
4
  uncompressedSize: bigint;
25
5
  compressedSize: bigint;
6
+ startOffset: bigint;
26
7
  crc32: number;
27
8
  }): Uint8Array<ArrayBuffer>;
28
9
  //# sourceMappingURL=write-entry.d.ts.map
@@ -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;AA0BpB;;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,CAsCzB;AAED,wBAAgB,yBAAyB,CAAC,SAAS,EAAE;IACnD,gBAAgB,EAAE,MAAM,CAAC;IACzB,cAAc,EAAE,MAAM,CAAC;IACvB,KAAK,EAAE,MAAM,CAAC;CACf,GAAG,UAAU,CAAC,WAAW,CAAC,CAgB1B;AAED,wBAAgB,sBAAsB,CAAC,SAAS,EAAE;IAChD,gBAAgB,EAAE,MAAM,CAAC;IACzB,cAAc,EAAE,MAAM,CAAC;IACvB,KAAK,EAAE,MAAM,CAAC;CACf,GAAG,UAAU,CAAC,WAAW,CAAC,CAgB1B"}
1
+ {"version":3,"file":"write-entry.d.ts","sourceRoot":"","sources":["../src/write-entry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAwBvD,wBAAgB,kBAAkB,CAChC,OAAO,EAAE,oBAAoB,GAC5B,UAAU,CAAC,WAAW,CAAC,CAoCzB;AAED,wBAAgB,iBAAiB,CAAC,SAAS,EAAE;IAC3C,gBAAgB,EAAE,MAAM,CAAC;IACzB,cAAc,EAAE,MAAM,CAAC;IACvB,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;CACf,GAAG,UAAU,CAAC,WAAW,CAAC,CAsB1B"}
@@ -1,98 +1,7 @@
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, LITTLE_ENDIAN, BIG_ENDIAN, } from "./constants.js";
2
- import { getDosTime, getDosDate, writeDataView, UINT16, UINT32, UINT64, } from "./utils.js";
3
- const textEncoder = new TextEncoder();
4
- /**
5
- * Write a zip entry to the given writer from the given reader.
6
- */
7
- export async function writeZipEntry({ writer, reader, entryOptions, startOffset, crc32, }) {
8
- let uncompressedSize = BigInt(0);
9
- let compressedSize = BigInt(0);
10
- let checksum = 0;
11
- await writer.write(getLocalFileHeader(entryOptions));
12
- if (entryOptions.store) {
13
- // Store mode: no compression, direct copy
14
- while (true) {
15
- const { value, done } = await reader.read();
16
- if (done)
17
- break;
18
- const byteLength = BigInt(value.byteLength);
19
- uncompressedSize += byteLength;
20
- compressedSize += byteLength;
21
- checksum = crc32(value, checksum);
22
- await writer.write(value);
23
- }
24
- }
25
- else {
26
- // Deflate mode: manual reader/writer loops to minimize overhead
27
- const compressionStream = new CompressionStream("deflate-raw");
28
- const compressionWriter = compressionStream.writable.getWriter();
29
- const compressionReader = compressionStream.readable.getReader();
30
- const writePromise = (async () => {
31
- try {
32
- while (true) {
33
- const { value, done } = await reader.read();
34
- if (done)
35
- break;
36
- uncompressedSize += BigInt(value.byteLength);
37
- checksum = crc32(value, checksum);
38
- await compressionWriter.write(value);
39
- }
40
- await compressionWriter.close();
41
- }
42
- catch (err) {
43
- await compressionWriter.abort(err);
44
- throw err;
45
- }
46
- })();
47
- const readPromise = (async () => {
48
- try {
49
- while (true) {
50
- const { value, done } = await compressionReader.read();
51
- if (done)
52
- break;
53
- compressedSize += BigInt(value.byteLength);
54
- await writer.write(value);
55
- }
56
- compressionReader.releaseLock();
57
- }
58
- catch (err) {
59
- await compressionReader.cancel(err);
60
- throw err;
61
- }
62
- })();
63
- await Promise.all([writePromise, readPromise]);
64
- }
65
- const needsZip64 = uncompressedSize > ZIP64_LIMIT ||
66
- compressedSize > ZIP64_LIMIT ||
67
- startOffset > ZIP64_LIMIT;
68
- if (needsZip64) {
69
- const entryInfo = {
70
- ...entryOptions,
71
- startOffset,
72
- crc32: checksum,
73
- uncompressedSize,
74
- compressedSize,
75
- zip64: true,
76
- };
77
- await writer.write(getDataDescriptorZip64(entryInfo));
78
- return entryInfo;
79
- }
80
- else {
81
- const entryInfo = {
82
- ...entryOptions,
83
- startOffset: Number(startOffset),
84
- crc32: checksum,
85
- uncompressedSize: Number(uncompressedSize),
86
- compressedSize: Number(compressedSize),
87
- zip64: false,
88
- };
89
- await writer.write(getDataDescriptorStandard(entryInfo));
90
- return entryInfo;
91
- }
92
- }
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, DATA_DESCRIPTOR_SIZE, DATA_DESCRIPTOR_SIZE_ZIP64, LITTLE_ENDIAN, BIG_ENDIAN, } from "./constants.js";
2
+ import { getDosTime, getDosDate, writeDataView, UINT16, UINT32, UINT64, entryNeedsZip64, } from "./utils.js";
93
3
  export function getLocalFileHeader(options) {
94
- const nameBytes = textEncoder.encode(options.name);
95
- const headerSize = LOCAL_FILE_HEADER_SIZE + nameBytes.length;
4
+ const headerSize = LOCAL_FILE_HEADER_SIZE + options.nameBytes.length;
96
5
  const header = new Uint8Array(headerSize);
97
6
  const view = new DataView(header.buffer);
98
7
  const date = options.date || new Date();
@@ -118,41 +27,31 @@ export function getLocalFileHeader(options) {
118
27
  // Uncompressed size (0 when using data descriptor)
119
28
  [UINT32, 0, LITTLE_ENDIAN],
120
29
  // File name length
121
- [UINT16, nameBytes.length, LITTLE_ENDIAN],
30
+ [UINT16, options.nameBytes.length, LITTLE_ENDIAN],
122
31
  // Extra field length
123
32
  [UINT16, 0, LITTLE_ENDIAN],
124
33
  ]);
125
34
  // File name
126
- header.set(nameBytes, offset);
35
+ header.set(options.nameBytes, offset);
127
36
  return header;
128
37
  }
129
- export function getDataDescriptorStandard(entryInfo) {
130
- const descriptor = new Uint8Array(DATA_DESCRIPTOR_SIZE);
131
- const view = new DataView(descriptor.buffer);
132
- writeDataView(view, [
133
- // Data descriptor signature
134
- [UINT32, DATA_DESCRIPTOR_SIGNATURE, BIG_ENDIAN],
135
- // CRC-32 (4 bytes)
136
- [UINT32, entryInfo.crc32, LITTLE_ENDIAN],
137
- // Compressed size (4 bytes)
138
- [UINT32, entryInfo.compressedSize, LITTLE_ENDIAN],
139
- // Uncompressed size (4 bytes)
140
- [UINT32, entryInfo.uncompressedSize, LITTLE_ENDIAN],
141
- ]);
142
- return descriptor;
143
- }
144
- export function getDataDescriptorZip64(entryInfo) {
38
+ export function getDataDescriptor(entryInfo) {
145
39
  const descriptor = new Uint8Array(DATA_DESCRIPTOR_SIZE_ZIP64);
146
40
  const view = new DataView(descriptor.buffer);
41
+ const needsZip64 = entryNeedsZip64(entryInfo);
147
42
  writeDataView(view, [
148
43
  // Data descriptor signature
149
44
  [UINT32, DATA_DESCRIPTOR_SIGNATURE, BIG_ENDIAN],
150
45
  // CRC-32 (4 bytes)
151
46
  [UINT32, entryInfo.crc32, LITTLE_ENDIAN],
152
47
  // Compressed size (8 bytes)
153
- [UINT64, entryInfo.compressedSize, LITTLE_ENDIAN],
48
+ needsZip64
49
+ ? [UINT64, entryInfo.compressedSize, LITTLE_ENDIAN]
50
+ : [UINT32, Number(entryInfo.compressedSize), LITTLE_ENDIAN],
154
51
  // Uncompressed size (8 bytes)
155
- [UINT64, entryInfo.uncompressedSize, LITTLE_ENDIAN],
52
+ needsZip64
53
+ ? [UINT64, entryInfo.uncompressedSize, LITTLE_ENDIAN]
54
+ : [UINT32, Number(entryInfo.uncompressedSize), LITTLE_ENDIAN],
156
55
  ]);
157
56
  return descriptor;
158
57
  }
@@ -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":"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"}
package/package.json CHANGED
@@ -1,10 +1,14 @@
1
1
  {
2
2
  "name": "zip-writer",
3
- "version": "1.1.2",
3
+ "version": "2.1.0",
4
4
  "exports": {
5
5
  ".": {
6
6
  "types": "./dist/index.d.ts",
7
7
  "import": "./dist/index.js"
8
+ },
9
+ "./readable-from-bytes.js": {
10
+ "types": "./dist/readable-from-bytes.d.ts",
11
+ "import": "./dist/readable-from-bytes.js"
8
12
  }
9
13
  },
10
14
  "imports": {
@@ -18,19 +22,28 @@
18
22
  "test": "run-s test:types test:lint test:vitest",
19
23
  "prepare": "husky",
20
24
  "test:types": "tsc --noEmit",
21
- "test:lint": "eslint .",
25
+ "test:lint": "eslint",
22
26
  "test:vitest": "vitest",
23
27
  "bench": "vitest bench",
28
+ "coverage": "vitest run --coverage",
24
29
  "format": "prettier --write .",
25
30
  "prepack": "rimraf dist && tsc"
26
31
  },
27
32
  "files": [
28
33
  "dist"
29
34
  ],
30
- "keywords": [],
31
- "author": "",
32
- "license": "ISC",
33
- "description": "",
35
+ "keywords": [
36
+ "zip",
37
+ "archive",
38
+ "streaming",
39
+ "web streams",
40
+ "compression streams",
41
+ "javascript",
42
+ "typescript"
43
+ ],
44
+ "author": "Gregor MacLennan <gmaclennan@gmail.com>",
45
+ "license": "MIT",
46
+ "description": "A modern streaming ZIP archive writer for JavaScript that uses the Web Streams API and Compression Streams API.",
34
47
  "devDependencies": {
35
48
  "@node-rs/crc32": "^1.10.6",
36
49
  "@types/archiver": "^7.0.0",
@@ -38,6 +51,7 @@
38
51
  "@types/yauzl-promise": "^4.0.1",
39
52
  "@vitest/browser": "^4.0.7",
40
53
  "@vitest/browser-playwright": "^4.0.7",
54
+ "@vitest/coverage-istanbul": "^4.0.7",
41
55
  "@zip.js/zip.js": "^2.8.8",
42
56
  "archiver": "^7.0.1",
43
57
  "eslint": "^9.39.1",
@@ -57,5 +71,16 @@
57
71
  "lint-staged": {
58
72
  "*.js": "eslint --cache --fix",
59
73
  "*.{js,css,md}": "prettier --write"
74
+ },
75
+ "repository": {
76
+ "type": "git",
77
+ "url": "git+https://github.com/gmaclennan/zip-writer.git"
78
+ },
79
+ "bugs": {
80
+ "url": "https://github.com/gmaclennan/zip-writer/issues"
81
+ },
82
+ "homepage": "https://github.com/gmaclennan/zip-writer#readme",
83
+ "dependencies": {
84
+ "p-mutex": "^1.0.0"
60
85
  }
61
86
  }