zip-writer 2.1.0 → 2.2.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/LICENSE +21 -0
- package/README.md +40 -39
- package/dist/crc-node.d.ts +1 -1
- package/dist/crc-node.d.ts.map +1 -1
- package/dist/crc-node.js +11 -1
- package/dist/crc-node.js.map +1 -1
- package/dist/deflate-raw-browser.d.ts +2 -0
- package/dist/deflate-raw-browser.d.ts.map +1 -0
- package/dist/deflate-raw-browser.js +4 -0
- package/dist/deflate-raw-browser.js.map +1 -0
- package/dist/deflate-raw-node.d.ts +2 -0
- package/dist/deflate-raw-node.d.ts.map +1 -0
- package/dist/deflate-raw-node.js +19 -0
- package/dist/deflate-raw-node.js.map +1 -0
- package/dist/index.d.ts +2 -51
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +19 -7
- package/dist/index.js.map +1 -1
- package/dist/types.d.ts +58 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +2 -0
- package/dist/types.js.map +1 -0
- package/dist/utils.d.ts +1 -1
- package/dist/write-central-directory.d.ts +1 -5
- package/dist/write-central-directory.d.ts.map +1 -1
- package/dist/write-central-directory.js +0 -26
- package/dist/write-central-directory.js.map +1 -1
- package/dist/write-entry.d.ts +1 -1
- package/package.json +8 -5
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2025 Gregor MacLennan
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.md
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
|
-
# zip-
|
|
1
|
+
# zip-writer
|
|
2
2
|
|
|
3
3
|
[](https://www.npmjs.com/package/zip-writer)
|
|
4
4
|
[](https://github.com/gmaclennan/zip-writer/actions/workflows/test.yml)
|
|
5
|
+
[](https://codecov.io/github/gmaclennan/zip-writer)
|
|
5
6
|
[](https://bundlejs.com/?q=zip-writer&treeshake=%5B*%5D)
|
|
6
7
|
|
|
7
8
|
A modern streaming ZIP archive writer for JavaScript that uses the
|
|
@@ -26,13 +27,13 @@ and
|
|
|
26
27
|
## Installation
|
|
27
28
|
|
|
28
29
|
```bash
|
|
29
|
-
npm install zip-
|
|
30
|
+
npm install zip-writer
|
|
30
31
|
```
|
|
31
32
|
|
|
32
33
|
## Basic Usage
|
|
33
34
|
|
|
34
35
|
```ts
|
|
35
|
-
import { ZipWriter } from "zip-
|
|
36
|
+
import { ZipWriter } from "zip-writer";
|
|
36
37
|
|
|
37
38
|
const zipWriter = new ZipWriter();
|
|
38
39
|
|
|
@@ -71,7 +72,7 @@ This is not included in the main bundle to keep the size small.
|
|
|
71
72
|
**Import:**
|
|
72
73
|
|
|
73
74
|
```ts
|
|
74
|
-
import { readableFromBytes } from "zip-
|
|
75
|
+
import { readableFromBytes } from "zip-writer/readable-from-bytes";
|
|
75
76
|
```
|
|
76
77
|
|
|
77
78
|
**Parameters:**
|
|
@@ -84,8 +85,8 @@ data with proper backpressure
|
|
|
84
85
|
**Example:**
|
|
85
86
|
|
|
86
87
|
```ts
|
|
87
|
-
import { ZipWriter } from "zip-
|
|
88
|
-
import { readableFromBytes } from "zip-
|
|
88
|
+
import { ZipWriter } from "zip-writer";
|
|
89
|
+
import { readableFromBytes } from "zip-writer/readable-from-bytes";
|
|
89
90
|
|
|
90
91
|
const zipWriter = new ZipWriter();
|
|
91
92
|
|
|
@@ -283,7 +284,7 @@ console.log(
|
|
|
283
284
|
## Complete Example
|
|
284
285
|
|
|
285
286
|
```ts
|
|
286
|
-
import { ZipWriter } from "zip-
|
|
287
|
+
import { ZipWriter } from "zip-writer";
|
|
287
288
|
import { createWriteStream } from "fs";
|
|
288
289
|
import { Writable } from "stream";
|
|
289
290
|
|
|
@@ -373,47 +374,47 @@ Run using `npm run bench`. On a MacBook Pro (M2 Pro, 2023), Node.js 20.19.0:
|
|
|
373
374
|
|
|
374
375
|
### Small files (10 × 10KB)
|
|
375
376
|
|
|
376
|
-
| Library
|
|
377
|
-
|
|
|
378
|
-
| zip-
|
|
379
|
-
| zip-
|
|
380
|
-
| zip-
|
|
381
|
-
| fflate
|
|
382
|
-
| archiver
|
|
383
|
-
| @zip.js/zip.js
|
|
377
|
+
| Library | ops/sec | Relative Speed |
|
|
378
|
+
| --------------------------- | ------- | -------------- |
|
|
379
|
+
| zip-writer (@node-rs/crc32) | 721.94 | **fastest** |
|
|
380
|
+
| zip-writer | 674.57 | 1.07x slower |
|
|
381
|
+
| zip-writer (js crc32) | 659.90 | 1.09x slower |
|
|
382
|
+
| fflate | 553.00 | 1.31x slower |
|
|
383
|
+
| archiver | 338.14 | 2.14x slower |
|
|
384
|
+
| @zip.js/zip.js | 279.19 | 2.59x slower |
|
|
384
385
|
|
|
385
386
|
### Medium files (100 × 100KB)
|
|
386
387
|
|
|
387
|
-
| Library
|
|
388
|
-
|
|
|
389
|
-
| zip-
|
|
390
|
-
| zip-
|
|
391
|
-
| zip-
|
|
392
|
-
| archiver
|
|
393
|
-
| @zip.js/zip.js
|
|
394
|
-
| fflate
|
|
388
|
+
| Library | ops/sec | Relative Speed |
|
|
389
|
+
| --------------------------- | ------- | -------------- |
|
|
390
|
+
| zip-writer | 23.91 | **fastest** |
|
|
391
|
+
| zip-writer (@node-rs/crc32) | 22.91 | 1.04x slower |
|
|
392
|
+
| zip-writer (js crc32) | 18.93 | 1.26x slower |
|
|
393
|
+
| archiver | 18.10 | 1.32x slower |
|
|
394
|
+
| @zip.js/zip.js | 11.65 | 2.05x slower |
|
|
395
|
+
| fflate | 10.27 | 2.33x slower |
|
|
395
396
|
|
|
396
397
|
### Large files (5 × 10MB)
|
|
397
398
|
|
|
398
|
-
| Library
|
|
399
|
-
|
|
|
400
|
-
| zip-
|
|
401
|
-
| zip-
|
|
402
|
-
| archiver
|
|
403
|
-
| zip-
|
|
404
|
-
| fflate
|
|
405
|
-
| @zip.js/zip.js
|
|
399
|
+
| Library | ops/sec | Relative Speed |
|
|
400
|
+
| --------------------------- | ------- | -------------- |
|
|
401
|
+
| zip-writer | 7.22 | **fastest** |
|
|
402
|
+
| zip-writer (@node-rs/crc32) | 6.78 | 1.06x slower |
|
|
403
|
+
| archiver | 5.65 | 1.28x slower |
|
|
404
|
+
| zip-writer (js crc32) | 4.82 | 1.50x slower |
|
|
405
|
+
| fflate | 4.20 | 1.72x slower |
|
|
406
|
+
| @zip.js/zip.js | 4.00 | 1.81x slower |
|
|
406
407
|
|
|
407
408
|
### Many files (1000 × 1KB)
|
|
408
409
|
|
|
409
|
-
| Library
|
|
410
|
-
|
|
|
411
|
-
| fflate
|
|
412
|
-
| zip-
|
|
413
|
-
| zip-
|
|
414
|
-
| zip-
|
|
415
|
-
| archiver
|
|
416
|
-
| @zip.js/zip.js
|
|
410
|
+
| Library | ops/sec | Relative Speed |
|
|
411
|
+
| --------------------------- | ------- | -------------- |
|
|
412
|
+
| fflate | 10.08 | **fastest** |
|
|
413
|
+
| zip-writer | 6.89 | 1.46x slower |
|
|
414
|
+
| zip-writer (@node-rs/crc32) | 5.94 | 1.70x slower |
|
|
415
|
+
| zip-writer (js crc32) | 5.63 | 1.79x slower |
|
|
416
|
+
| archiver | 4.98 | 2.02x slower |
|
|
417
|
+
| @zip.js/zip.js | 2.93 | 3.44x slower |
|
|
417
418
|
|
|
418
419
|
Note: These benchmarks vary quite a bit, and they aren't an indication that any
|
|
419
420
|
library is "better" than any other. For ZipWriter, these exist as a check to
|
package/dist/crc-node.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export
|
|
1
|
+
export declare function crc32(data: Uint8Array, previous?: number): number;
|
|
2
2
|
//# sourceMappingURL=crc-node.d.ts.map
|
package/dist/crc-node.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"crc-node.d.ts","sourceRoot":"","sources":["../src/crc-node.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"crc-node.d.ts","sourceRoot":"","sources":["../src/crc-node.ts"],"names":[],"mappings":"AAIA,wBAAgB,KAAK,CAAC,IAAI,EAAE,UAAU,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,CAOjE"}
|
package/dist/crc-node.js
CHANGED
|
@@ -1,3 +1,13 @@
|
|
|
1
1
|
// @ts-nocheck
|
|
2
|
-
|
|
2
|
+
import zlib from "node:zlib";
|
|
3
|
+
import { crc32 as crc32Js } from "./crc-browser.js";
|
|
4
|
+
export function crc32(data, previous) {
|
|
5
|
+
// Node 18 doesn't have a built-in crc32, so fallback to the JS implementation
|
|
6
|
+
if ("crc32" in zlib) {
|
|
7
|
+
return zlib.crc32(data, previous);
|
|
8
|
+
}
|
|
9
|
+
else {
|
|
10
|
+
return crc32Js(data, previous);
|
|
11
|
+
}
|
|
12
|
+
}
|
|
3
13
|
//# sourceMappingURL=crc-node.js.map
|
package/dist/crc-node.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"crc-node.js","sourceRoot":"","sources":["../src/crc-node.ts"],"names":[],"mappings":"AAAA,cAAc;AACd,OAAO,EAAE,KAAK,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"crc-node.js","sourceRoot":"","sources":["../src/crc-node.ts"],"names":[],"mappings":"AAAA,cAAc;AACd,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,KAAK,IAAI,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAEpD,MAAM,UAAU,KAAK,CAAC,IAAgB,EAAE,QAAiB;IACvD,8EAA8E;IAC9E,IAAI,OAAO,IAAI,IAAI,EAAE,CAAC;QACpB,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;IACpC,CAAC;SAAM,CAAC;QACN,OAAO,OAAO,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;IACjC,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"deflate-raw-browser.d.ts","sourceRoot":"","sources":["../src/deflate-raw-browser.ts"],"names":[],"mappings":"AAAA,wBAAgB,sBAAsB,IAAI,iBAAiB,CAE1D"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"deflate-raw-browser.js","sourceRoot":"","sources":["../src/deflate-raw-browser.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,sBAAsB;IACpC,OAAO,IAAI,iBAAiB,CAAC,aAAa,CAAC,CAAC;AAC9C,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"deflate-raw-node.d.ts","sourceRoot":"","sources":["../src/deflate-raw-node.ts"],"names":[],"mappings":"AAaA,wBAAgB,sBAAsB,IAAI,iBAAiB,CAK1D"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
// @ts-expect-error - TS is configured to target DOM, not node
|
|
2
|
+
import { createDeflateRaw } from "node:zlib";
|
|
3
|
+
// @ts-expect-error - TS is configured to target DOM, not node
|
|
4
|
+
import { Duplex } from "node:stream";
|
|
5
|
+
let nativeSupported;
|
|
6
|
+
try {
|
|
7
|
+
new CompressionStream("deflate-raw");
|
|
8
|
+
nativeSupported = true;
|
|
9
|
+
}
|
|
10
|
+
catch {
|
|
11
|
+
nativeSupported = false;
|
|
12
|
+
}
|
|
13
|
+
export function createDeflateRawStream() {
|
|
14
|
+
if (nativeSupported) {
|
|
15
|
+
return new CompressionStream("deflate-raw");
|
|
16
|
+
}
|
|
17
|
+
return Duplex.toWeb(createDeflateRaw());
|
|
18
|
+
}
|
|
19
|
+
//# sourceMappingURL=deflate-raw-node.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"deflate-raw-node.js","sourceRoot":"","sources":["../src/deflate-raw-node.ts"],"names":[],"mappings":"AAAA,8DAA8D;AAC9D,OAAO,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAC7C,8DAA8D;AAC9D,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAErC,IAAI,eAAwB,CAAC;AAC7B,IAAI,CAAC;IACH,IAAI,iBAAiB,CAAC,aAAa,CAAC,CAAC;IACrC,eAAe,GAAG,IAAI,CAAC;AACzB,CAAC;AAAC,MAAM,CAAC;IACP,eAAe,GAAG,KAAK,CAAC;AAC1B,CAAC;AAED,MAAM,UAAU,sBAAsB;IACpC,IAAI,eAAe,EAAE,CAAC;QACpB,OAAO,IAAI,iBAAiB,CAAC,aAAa,CAAC,CAAC;IAC9C,CAAC;IACD,OAAO,MAAM,CAAC,KAAK,CAAC,gBAAgB,EAAE,CAAiC,CAAC;AAC1E,CAAC"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,54 +1,5 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
name: string;
|
|
4
|
-
/** Entry comment */
|
|
5
|
-
comment?: string;
|
|
6
|
-
/** Entry date */
|
|
7
|
-
date?: Date;
|
|
8
|
-
/** Entry permissions */
|
|
9
|
-
mode?: number;
|
|
10
|
-
/** Compression method to `STORE` (defaults to `DEFLATE`) */
|
|
11
|
-
store?: boolean;
|
|
12
|
-
}
|
|
13
|
-
export interface EntryOptionsInternal extends EntryOptions {
|
|
14
|
-
/** Encoded entry name */
|
|
15
|
-
nameBytes: Uint8Array;
|
|
16
|
-
/** Encoded entry comment */
|
|
17
|
-
commentBytes: Uint8Array;
|
|
18
|
-
}
|
|
19
|
-
export interface Entry extends EntryOptions {
|
|
20
|
-
/** Readable stream of entry data */
|
|
21
|
-
readable: ReadableStream<ArrayBufferView<ArrayBufferLike>>;
|
|
22
|
-
}
|
|
23
|
-
export interface EntryInfoInternal extends EntryOptionsInternal {
|
|
24
|
-
/** Byte offset of the local file header within the ZIP archive */
|
|
25
|
-
startOffset: bigint;
|
|
26
|
-
/** CRC32 checksum of the uncompressed data */
|
|
27
|
-
crc32: number;
|
|
28
|
-
/** Uncompressed size in bytes */
|
|
29
|
-
uncompressedSize: bigint;
|
|
30
|
-
/** Compressed size in bytes */
|
|
31
|
-
compressedSize: bigint;
|
|
32
|
-
/** Entry information is in ZIP64 format */
|
|
33
|
-
zip64: boolean;
|
|
34
|
-
}
|
|
35
|
-
export interface ZipInfo {
|
|
36
|
-
/** Does the archive use ZIP64 format? */
|
|
37
|
-
zip64: boolean;
|
|
38
|
-
/** Total uncompressed size of all entries */
|
|
39
|
-
uncompressedEntriesSize: bigint;
|
|
40
|
-
/** Total compressed size of all entries */
|
|
41
|
-
compressedEntriesSize: bigint;
|
|
42
|
-
/** Total size of the ZIP file */
|
|
43
|
-
fileSize: bigint;
|
|
44
|
-
}
|
|
45
|
-
export type EntryInfoZip64 = Omit<EntryInfoInternal, "nameBytes" | "commentBytes" | "zip64"> & {
|
|
46
|
-
zip64: true;
|
|
47
|
-
};
|
|
48
|
-
export type EntryInfoStandard = {
|
|
49
|
-
[K in keyof EntryInfoZip64]: EntryInfoZip64[K] extends bigint ? number : K extends "zip64" ? false : EntryInfoZip64[K];
|
|
50
|
-
};
|
|
51
|
-
export type EntryInfo = EntryInfoZip64 | EntryInfoStandard;
|
|
1
|
+
import type { Entry, EntryInfo, ZipInfo } from "./types.js";
|
|
2
|
+
export type { Entry, EntryInfo, ZipInfo };
|
|
52
3
|
export declare class ZipWriter {
|
|
53
4
|
#private;
|
|
54
5
|
/**
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,EACV,KAAK,EACL,SAAS,EAGT,OAAO,EACR,MAAM,YAAY,CAAC;AAEpB,YAAY,EAAE,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC;AAS1C,qBAAa,SAAS;;IAoBpB;;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;;OAEG;IACH,OAAO,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;IAM/B;;;;;;;;;;;;;;;;;;;;;;;;;OAyBG;IACH,QAAQ,CAAC,EAAE,QAAQ,EAAE,GAAG,YAAY,EAAE,EAAE,KAAK,GAAG,OAAO,CAAC,SAAS,CAAC;IA4JlE;;;;;;;;;;;;;;OAcG;IACH,QAAQ,CAAC,EAAE,OAAO,EAAE,GAAE;QAAE,OAAO,CAAC,EAAE,SAAS,EAAE,CAAA;KAAO,GAAG,OAAO,CAAC,OAAO,CAAC;CA4ExE"}
|
package/dist/index.js
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { createDeflateRawStream } from "#deflate-raw";
|
|
1
2
|
import { getDataDescriptor, getLocalFileHeader } from "./write-entry.js";
|
|
2
3
|
import { getCDFH, getEOCD } from "./write-central-directory.js";
|
|
3
4
|
import { entryNeedsZip64, eocdNeedsZip64, getPublicEntryInfo, noop, validateEntryOptions, } from "./utils.js";
|
|
@@ -119,7 +120,7 @@ export class ZipWriter {
|
|
|
119
120
|
});
|
|
120
121
|
const compressionStream = entryOptions.store
|
|
121
122
|
? new TransformStream()
|
|
122
|
-
:
|
|
123
|
+
: createDeflateRawStream();
|
|
123
124
|
await readable
|
|
124
125
|
.pipeThrough(crcAndSizeStream)
|
|
125
126
|
.pipeThrough(compressionStream)
|
|
@@ -265,12 +266,23 @@ export class ZipWriter {
|
|
|
265
266
|
const eocd = getEOCD(eocdOptions);
|
|
266
267
|
await writer.write(eocd);
|
|
267
268
|
await writer.close();
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
269
|
+
const zip64 = eocdNeedsZip64(eocdOptions) || entryUsesZip64;
|
|
270
|
+
if (zip64) {
|
|
271
|
+
return {
|
|
272
|
+
zip64: true,
|
|
273
|
+
uncompressedEntriesSize,
|
|
274
|
+
compressedEntriesSize,
|
|
275
|
+
fileSize: this.#offset,
|
|
276
|
+
};
|
|
277
|
+
}
|
|
278
|
+
else {
|
|
279
|
+
return {
|
|
280
|
+
zip64: false,
|
|
281
|
+
uncompressedEntriesSize: Number(uncompressedEntriesSize),
|
|
282
|
+
compressedEntriesSize: Number(compressedEntriesSize),
|
|
283
|
+
fileSize: Number(this.#offset),
|
|
284
|
+
};
|
|
285
|
+
}
|
|
274
286
|
}
|
|
275
287
|
catch (err) {
|
|
276
288
|
await writer.abort(err);
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACzE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,8BAA8B,CAAC;AAChE,OAAO,EACL,eAAe,EACf,cAAc,EACd,kBAAkB,EAClB,IAAI,EACJ,oBAAoB,GACrB,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,KAAK,IAAI,YAAY,EAAE,MAAM,QAAQ,CAAC;AAC/C,OAAO,KAAK,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/types.d.ts
ADDED
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
export interface EntryOptions {
|
|
2
|
+
/** Entry name including internal path */
|
|
3
|
+
name: string;
|
|
4
|
+
/** Entry comment */
|
|
5
|
+
comment?: string;
|
|
6
|
+
/** Entry date */
|
|
7
|
+
date?: Date;
|
|
8
|
+
/** Entry permissions */
|
|
9
|
+
mode?: number;
|
|
10
|
+
/** Compression method to `STORE` (defaults to `DEFLATE`) */
|
|
11
|
+
store?: boolean;
|
|
12
|
+
}
|
|
13
|
+
/** @private */
|
|
14
|
+
export interface EntryOptionsInternal extends EntryOptions {
|
|
15
|
+
/** Encoded entry name */
|
|
16
|
+
nameBytes: Uint8Array;
|
|
17
|
+
/** Encoded entry comment */
|
|
18
|
+
commentBytes: Uint8Array;
|
|
19
|
+
}
|
|
20
|
+
export interface Entry extends EntryOptions {
|
|
21
|
+
/** Readable stream of entry data */
|
|
22
|
+
readable: ReadableStream<ArrayBufferView<ArrayBufferLike>>;
|
|
23
|
+
}
|
|
24
|
+
/** @private */
|
|
25
|
+
export interface EntryInfoInternal extends EntryOptionsInternal {
|
|
26
|
+
/** Byte offset of the local file header within the ZIP archive */
|
|
27
|
+
startOffset: bigint;
|
|
28
|
+
/** CRC32 checksum of the uncompressed data */
|
|
29
|
+
crc32: number;
|
|
30
|
+
/** Uncompressed size in bytes */
|
|
31
|
+
uncompressedSize: bigint;
|
|
32
|
+
/** Compressed size in bytes */
|
|
33
|
+
compressedSize: bigint;
|
|
34
|
+
/** Entry information is in ZIP64 format */
|
|
35
|
+
zip64: boolean;
|
|
36
|
+
}
|
|
37
|
+
type BigIntToNumber<T> = {
|
|
38
|
+
[K in keyof T]: T[K] extends bigint ? number : K extends "zip64" ? false : T[K];
|
|
39
|
+
};
|
|
40
|
+
interface ZipInfoZip64 {
|
|
41
|
+
/** Does the archive use ZIP64 format? */
|
|
42
|
+
zip64: true;
|
|
43
|
+
/** Total uncompressed size of all entries */
|
|
44
|
+
uncompressedEntriesSize: bigint;
|
|
45
|
+
/** Total compressed size of all entries */
|
|
46
|
+
compressedEntriesSize: bigint;
|
|
47
|
+
/** Total size of the ZIP file */
|
|
48
|
+
fileSize: bigint;
|
|
49
|
+
}
|
|
50
|
+
export type ZipInfoStandard = BigIntToNumber<ZipInfoZip64>;
|
|
51
|
+
export type ZipInfo = ZipInfoZip64 | ZipInfoStandard;
|
|
52
|
+
export type EntryInfoZip64 = Omit<EntryInfoInternal, "nameBytes" | "commentBytes" | "zip64"> & {
|
|
53
|
+
zip64: true;
|
|
54
|
+
};
|
|
55
|
+
export type EntryInfoStandard = BigIntToNumber<EntryInfoZip64>;
|
|
56
|
+
export type EntryInfo = EntryInfoZip64 | EntryInfoStandard;
|
|
57
|
+
export {};
|
|
58
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,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,eAAe;AACf,MAAM,WAAW,oBAAqB,SAAQ,YAAY;IACxD,yBAAyB;IACzB,SAAS,EAAE,UAAU,CAAC;IACtB,4BAA4B;IAC5B,YAAY,EAAE,UAAU,CAAC;CAC1B;AAED,MAAM,WAAW,KAAM,SAAQ,YAAY;IACzC,oCAAoC;IACpC,QAAQ,EAAE,cAAc,CAAC,eAAe,CAAC,eAAe,CAAC,CAAC,CAAC;CAC5D;AAED,eAAe;AACf,MAAM,WAAW,iBAAkB,SAAQ,oBAAoB;IAC7D,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,OAAO,CAAC;CAChB;AAED,KAAK,cAAc,CAAC,CAAC,IAAI;KACtB,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,MAAM,GAC/B,MAAM,GACN,CAAC,SAAS,OAAO,GACf,KAAK,GACL,CAAC,CAAC,CAAC,CAAC;CACX,CAAC;AAEF,UAAU,YAAY;IACpB,yCAAyC;IACzC,KAAK,EAAE,IAAI,CAAC;IACZ,6CAA6C;IAC7C,uBAAuB,EAAE,MAAM,CAAC;IAChC,2CAA2C;IAC3C,qBAAqB,EAAE,MAAM,CAAC;IAC9B,iCAAiC;IACjC,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,MAAM,eAAe,GAAG,cAAc,CAAC,YAAY,CAAC,CAAC;AAE3D,MAAM,MAAM,OAAO,GAAG,YAAY,GAAG,eAAe,CAAC;AAErD,MAAM,MAAM,cAAc,GAAG,IAAI,CAC/B,iBAAiB,EACjB,WAAW,GAAG,cAAc,GAAG,OAAO,CACvC,GAAG;IACF,KAAK,EAAE,IAAI,CAAC;CACb,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG,cAAc,CAAC,cAAc,CAAC,CAAC;AAE/D,MAAM,MAAM,SAAS,GAAG,cAAc,GAAG,iBAAiB,CAAC"}
|
package/dist/types.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":""}
|
package/dist/utils.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { EntryInfo, EntryInfoInternal } from "./
|
|
1
|
+
import type { EntryInfo, EntryInfoInternal } from "./types.js";
|
|
2
2
|
export declare function getDosTime(date: Date): number;
|
|
3
3
|
export declare function getDosDate(date: Date): number;
|
|
4
4
|
export declare function noop(): void;
|
|
@@ -1,12 +1,8 @@
|
|
|
1
|
-
import type { EntryInfoInternal } from "./
|
|
1
|
+
import type { EntryInfoInternal } from "./types.js";
|
|
2
2
|
/**
|
|
3
3
|
* Generate the Central Directory File Header for the given entry info.
|
|
4
4
|
*/
|
|
5
5
|
export declare function getCDFH(entryInfo: EntryInfoInternal): Uint8Array<ArrayBuffer>;
|
|
6
|
-
/**
|
|
7
|
-
* Generate the End of Central Directory record with zip64 support.
|
|
8
|
-
*/
|
|
9
|
-
export declare function getEOCDStandard(entriesCount: number, centralDirectoryOffset: number, centralDirectorySize: number): Uint8Array<ArrayBuffer>;
|
|
10
6
|
/**
|
|
11
7
|
* Generate the ZIP64 End of Central Directory record.
|
|
12
8
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"write-central-directory.d.ts","sourceRoot":"","sources":["../src/write-central-directory.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"write-central-directory.d.ts","sourceRoot":"","sources":["../src/write-central-directory.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAiCpD;;GAEG;AACH,wBAAgB,OAAO,CAAC,SAAS,EAAE,iBAAiB,GAAG,UAAU,CAAC,WAAW,CAAC,CAoG7E;AAED;;GAEG;AACH,wBAAgB,OAAO,CAAC,OAAO,EAAE;IAC/B,YAAY,EAAE,MAAM,CAAC;IACrB,qBAAqB,EAAE,MAAM,CAAC;IAC9B,oBAAoB,EAAE,MAAM,CAAC;CAC9B,GAAG,UAAU,CAAC,WAAW,CAAC,CAkF1B"}
|
|
@@ -96,32 +96,6 @@ export function getCDFH(entryInfo) {
|
|
|
96
96
|
}
|
|
97
97
|
return header;
|
|
98
98
|
}
|
|
99
|
-
/**
|
|
100
|
-
* Generate the End of Central Directory record with zip64 support.
|
|
101
|
-
*/
|
|
102
|
-
export function getEOCDStandard(entriesCount, centralDirectoryOffset, centralDirectorySize) {
|
|
103
|
-
const eocd = new Uint8Array(EOCD_SIZE);
|
|
104
|
-
const view = new DataView(eocd.buffer);
|
|
105
|
-
writeDataView(view, [
|
|
106
|
-
// End of central dir signature
|
|
107
|
-
[UINT32, END_OF_CENTRAL_DIR_SIGNATURE, BIG_ENDIAN],
|
|
108
|
-
// Number of this disk
|
|
109
|
-
[UINT16, 0, LITTLE_ENDIAN],
|
|
110
|
-
// Disk where central directory starts
|
|
111
|
-
[UINT16, 0, LITTLE_ENDIAN],
|
|
112
|
-
// Number of central directory records on this disk
|
|
113
|
-
[UINT16, entriesCount, LITTLE_ENDIAN],
|
|
114
|
-
// Total number of central directory records
|
|
115
|
-
[UINT16, entriesCount, LITTLE_ENDIAN],
|
|
116
|
-
// Size of central directory
|
|
117
|
-
[UINT32, centralDirectorySize, LITTLE_ENDIAN],
|
|
118
|
-
// Offset of start of central directory
|
|
119
|
-
[UINT32, centralDirectoryOffset, LITTLE_ENDIAN],
|
|
120
|
-
// ZIP file comment length
|
|
121
|
-
[UINT16, 0, LITTLE_ENDIAN],
|
|
122
|
-
]);
|
|
123
|
-
return eocd;
|
|
124
|
-
}
|
|
125
99
|
/**
|
|
126
100
|
* Generate the ZIP64 End of Central Directory record.
|
|
127
101
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"write-central-directory.js","sourceRoot":"","sources":["../src/write-central-directory.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"write-central-directory.js","sourceRoot":"","sources":["../src/write-central-directory.ts"],"names":[],"mappings":"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"}
|
package/dist/write-entry.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { EntryOptionsInternal } from "./
|
|
1
|
+
import type { EntryOptionsInternal } from "./types.js";
|
|
2
2
|
export declare function getLocalFileHeader(options: EntryOptionsInternal): Uint8Array<ArrayBuffer>;
|
|
3
3
|
export declare function getDataDescriptor(entryInfo: {
|
|
4
4
|
uncompressedSize: bigint;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "zip-writer",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.2.0",
|
|
4
4
|
"exports": {
|
|
5
5
|
".": {
|
|
6
6
|
"types": "./dist/index.d.ts",
|
|
@@ -15,6 +15,10 @@
|
|
|
15
15
|
"#crc32": {
|
|
16
16
|
"browser": "./dist/crc-browser.js",
|
|
17
17
|
"default": "./dist/crc-node.js"
|
|
18
|
+
},
|
|
19
|
+
"#deflate-raw": {
|
|
20
|
+
"browser": "./dist/deflate-raw-browser.js",
|
|
21
|
+
"default": "./dist/deflate-raw-node.js"
|
|
18
22
|
}
|
|
19
23
|
},
|
|
20
24
|
"type": "module",
|
|
@@ -49,9 +53,8 @@
|
|
|
49
53
|
"@types/archiver": "^7.0.0",
|
|
50
54
|
"@types/node": "^24.10.0",
|
|
51
55
|
"@types/yauzl-promise": "^4.0.1",
|
|
52
|
-
"@vitest/browser": "^
|
|
53
|
-
"@vitest/
|
|
54
|
-
"@vitest/coverage-istanbul": "^4.0.7",
|
|
56
|
+
"@vitest/browser": "^3.2.4",
|
|
57
|
+
"@vitest/coverage-istanbul": "^3.2.4",
|
|
55
58
|
"@zip.js/zip.js": "^2.8.8",
|
|
56
59
|
"archiver": "^7.0.1",
|
|
57
60
|
"eslint": "^9.39.1",
|
|
@@ -65,7 +68,7 @@
|
|
|
65
68
|
"prettier": "^3.6.2",
|
|
66
69
|
"rimraf": "^6.1.0",
|
|
67
70
|
"typescript": "^5.9.3",
|
|
68
|
-
"vitest": "^
|
|
71
|
+
"vitest": "^3.2.4",
|
|
69
72
|
"yauzl-promise": "^4.0.0"
|
|
70
73
|
},
|
|
71
74
|
"lint-staged": {
|