neozipkit 1.0.5 → 1.5.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/NEOZIP_APPNOTE.md +116 -18
- package/README.md +38 -8
- package/WHATS_NEW.md +115 -0
- package/dist/browser/zstd-browser-shim.d.ts +17 -9
- package/dist/browser/zstd-browser-shim.d.ts.map +1 -1
- package/dist/browser/zstd-browser-shim.js +99 -21
- package/dist/browser/zstd-browser-shim.js.map +1 -1
- package/dist/browser-esm/index.js +6178 -1261
- package/dist/browser-esm/index.js.map +4 -4
- package/dist/browser-umd/index.js +6178 -1261
- package/dist/browser-umd/index.js.map +4 -4
- package/dist/browser-umd/index.min.js +6 -3
- package/dist/core/ZipCompress.d.ts +6 -0
- package/dist/core/ZipCompress.d.ts.map +1 -1
- package/dist/core/ZipCompress.js.map +1 -1
- package/dist/core/ZipCopy.d.ts.map +1 -1
- package/dist/core/ZipCopy.js +33 -25
- package/dist/core/ZipCopy.js.map +1 -1
- package/dist/core/ZipEntry.d.ts +18 -0
- package/dist/core/ZipEntry.d.ts.map +1 -1
- package/dist/core/ZipEntry.js +139 -13
- package/dist/core/ZipEntry.js.map +1 -1
- package/dist/core/Zipkit.d.ts.map +1 -1
- package/dist/core/Zipkit.js +26 -19
- package/dist/core/Zipkit.js.map +1 -1
- package/dist/core/constants/Headers.d.ts +1 -0
- package/dist/core/constants/Headers.d.ts.map +1 -1
- package/dist/core/constants/Headers.js +1 -0
- package/dist/core/constants/Headers.js.map +1 -1
- package/dist/core/index.d.ts +3 -0
- package/dist/core/index.d.ts.map +1 -1
- package/dist/core/index.js +5 -1
- package/dist/core/index.js.map +1 -1
- package/dist/core/inflateZipPayload.d.ts +6 -0
- package/dist/core/inflateZipPayload.d.ts.map +1 -0
- package/dist/core/inflateZipPayload.js +28 -0
- package/dist/core/inflateZipPayload.js.map +1 -0
- package/dist/core/origin/OriginExtra.d.ts +43 -0
- package/dist/core/origin/OriginExtra.d.ts.map +1 -0
- package/dist/core/origin/OriginExtra.js +187 -0
- package/dist/core/origin/OriginExtra.js.map +1 -0
- package/dist/core/version.js +1 -1
- package/dist/core/zip64/Zip64.d.ts +138 -0
- package/dist/core/zip64/Zip64.d.ts.map +1 -0
- package/dist/core/zip64/Zip64.js +353 -0
- package/dist/core/zip64/Zip64.js.map +1 -0
- package/dist/node/ZipCopyNode.d.ts.map +1 -1
- package/dist/node/ZipCopyNode.js +26 -26
- package/dist/node/ZipCopyNode.js.map +1 -1
- package/dist/node/ZipDecompressNode.d.ts.map +1 -1
- package/dist/node/ZipDecompressNode.js +8 -6
- package/dist/node/ZipDecompressNode.js.map +1 -1
- package/dist/node/ZipkitNode.d.ts +14 -1
- package/dist/node/ZipkitNode.d.ts.map +1 -1
- package/dist/node/ZipkitNode.js +91 -53
- package/dist/node/ZipkitNode.js.map +1 -1
- package/dist/node/ZstdNode.d.ts +14 -4
- package/dist/node/ZstdNode.d.ts.map +1 -1
- package/dist/node/ZstdNode.js +28 -4
- package/dist/node/ZstdNode.js.map +1 -1
- package/dist/node/buildZipBuffer.d.ts +49 -0
- package/dist/node/buildZipBuffer.d.ts.map +1 -0
- package/dist/node/buildZipBuffer.js +146 -0
- package/dist/node/buildZipBuffer.js.map +1 -0
- package/dist/node/index.d.ts +3 -0
- package/dist/node/index.d.ts.map +1 -1
- package/dist/node/index.js +6 -1
- package/dist/node/index.js.map +1 -1
- package/dist/node/inflateZipPayload.d.ts +5 -0
- package/dist/node/inflateZipPayload.d.ts.map +1 -0
- package/dist/node/inflateZipPayload.js +21 -0
- package/dist/node/inflateZipPayload.js.map +1 -0
- package/dist/types/index.js +2 -2
- package/node-esm.mjs +32 -0
- package/package.json +11 -5
- package/src/browser/zstd-browser-shim.ts +110 -28
- package/src/core/ZipCompress.ts +6 -0
- package/src/core/ZipCopy.ts +56 -27
- package/src/core/ZipEntry.ts +192 -13
- package/src/core/Zipkit.ts +40 -22
- package/src/core/constants/Headers.ts +1 -0
- package/src/core/index.ts +3 -0
- package/src/core/inflateZipPayload.ts +27 -0
- package/src/core/origin/OriginExtra.ts +209 -0
- package/src/core/version.ts +1 -1
- package/src/core/zip64/Zip64.ts +473 -0
- package/src/node/ZipCopyNode.ts +31 -29
- package/src/node/ZipDecompressNode.ts +6 -5
- package/src/node/ZipkitNode.ts +121 -68
- package/src/node/ZstdNode.ts +33 -8
- package/src/node/buildZipBuffer.ts +221 -0
- package/src/node/index.ts +7 -0
- package/src/node/inflateZipPayload.ts +19 -0
- package/src/types/index.ts +2 -2
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
/**
|
|
3
|
-
* Browser
|
|
4
|
-
*
|
|
3
|
+
* Browser zstd codec for in-memory buffers.
|
|
4
|
+
* Uses CompressionStream / DecompressionStream ('zstd') so the old WASM codec stays out.
|
|
5
|
+
* Node builds use src/node/ZstdNode.ts (native zlib) instead of this file.
|
|
5
6
|
*/
|
|
6
7
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
8
|
exports.ZstdNode = void 0;
|
|
@@ -12,43 +13,118 @@ exports.createDecompressTransform = createDecompressTransform;
|
|
|
12
13
|
exports.compress = compress;
|
|
13
14
|
exports.decompress = decompress;
|
|
14
15
|
exports.compressSync = compressSync;
|
|
16
|
+
exports.compressSyncAtLevel = compressSyncAtLevel;
|
|
15
17
|
exports.decompressSync = decompressSync;
|
|
18
|
+
exports.asZstdBuffer = asZstdBuffer;
|
|
16
19
|
exports.compressChunks = compressChunks;
|
|
17
20
|
exports.decompressStream = decompressStream;
|
|
18
|
-
const
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
21
|
+
const buffer_1 = require("buffer");
|
|
22
|
+
const ZSTD_UNAVAILABLE = 'This browser does not expose CompressionStream zstd. ' +
|
|
23
|
+
'Use a current Chromium or Safari, or inflate the archive in Node.';
|
|
24
|
+
function asBytes(data) {
|
|
25
|
+
if (data instanceof ArrayBuffer)
|
|
26
|
+
return new Uint8Array(data);
|
|
27
|
+
return new Uint8Array(data.buffer, data.byteOffset, data.byteLength);
|
|
28
|
+
}
|
|
29
|
+
function toBuffer(bytes) {
|
|
30
|
+
return buffer_1.Buffer.from(bytes);
|
|
22
31
|
}
|
|
23
32
|
function isNativeZstdAvailable() {
|
|
24
|
-
|
|
33
|
+
try {
|
|
34
|
+
if (typeof CompressionStream === 'undefined' || typeof DecompressionStream === 'undefined') {
|
|
35
|
+
return false;
|
|
36
|
+
}
|
|
37
|
+
// 'zstd' is not in the older CompressionFormat union.
|
|
38
|
+
new CompressionStream('zstd');
|
|
39
|
+
new DecompressionStream('zstd');
|
|
40
|
+
return true;
|
|
41
|
+
}
|
|
42
|
+
catch {
|
|
43
|
+
return false;
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
function mapCompressionLevel(level) {
|
|
47
|
+
return Math.min(Math.max(1, Math.floor(level * 2.1)), 19);
|
|
48
|
+
}
|
|
49
|
+
function assertZstd() {
|
|
50
|
+
if (!isNativeZstdAvailable()) {
|
|
51
|
+
throw new Error(ZSTD_UNAVAILABLE);
|
|
52
|
+
}
|
|
25
53
|
}
|
|
26
|
-
function
|
|
27
|
-
|
|
54
|
+
async function transformZstd(data, mode) {
|
|
55
|
+
assertZstd();
|
|
56
|
+
const Stream = mode === 'compress' ? CompressionStream : DecompressionStream;
|
|
57
|
+
const stream = new Stream('zstd');
|
|
58
|
+
const copy = new Uint8Array(data.byteLength);
|
|
59
|
+
copy.set(data);
|
|
60
|
+
const writer = stream.writable.getWriter();
|
|
61
|
+
await writer.write(copy);
|
|
62
|
+
await writer.close();
|
|
63
|
+
const reader = stream.readable.getReader();
|
|
64
|
+
const chunks = [];
|
|
65
|
+
let total = 0;
|
|
66
|
+
for (;;) {
|
|
67
|
+
const { done, value } = await reader.read();
|
|
68
|
+
if (done)
|
|
69
|
+
break;
|
|
70
|
+
if (value) {
|
|
71
|
+
chunks.push(value);
|
|
72
|
+
total += value.byteLength;
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
const out = new Uint8Array(total);
|
|
76
|
+
let offset = 0;
|
|
77
|
+
for (const chunk of chunks) {
|
|
78
|
+
out.set(chunk, offset);
|
|
79
|
+
offset += chunk.byteLength;
|
|
80
|
+
}
|
|
81
|
+
return out;
|
|
28
82
|
}
|
|
29
83
|
function createCompressTransform(_level) {
|
|
30
|
-
|
|
84
|
+
throw new Error('Browser zstd uses buffer compress(); Node zlib transforms are not available.');
|
|
31
85
|
}
|
|
32
86
|
function createDecompressTransform() {
|
|
33
|
-
|
|
87
|
+
throw new Error('Browser zstd uses buffer decompress(); Node zlib transforms are not available.');
|
|
34
88
|
}
|
|
35
|
-
async function compress(
|
|
36
|
-
return
|
|
89
|
+
async function compress(data, _level) {
|
|
90
|
+
return toBuffer(await transformZstd(asBytes(data), 'compress'));
|
|
37
91
|
}
|
|
38
|
-
async function decompress(
|
|
39
|
-
return
|
|
92
|
+
async function decompress(data) {
|
|
93
|
+
return toBuffer(await transformZstd(asBytes(data), 'decompress'));
|
|
40
94
|
}
|
|
41
95
|
function compressSync(_data, _level) {
|
|
42
|
-
|
|
96
|
+
throw new Error('Browser zstd compress is async. Use compress().');
|
|
97
|
+
}
|
|
98
|
+
function compressSyncAtLevel(data, _zstdLevel) {
|
|
99
|
+
return compressSync(data);
|
|
43
100
|
}
|
|
44
101
|
function decompressSync(_data) {
|
|
45
|
-
|
|
102
|
+
throw new Error('Browser zstd decompress is async. Use decompress().');
|
|
103
|
+
}
|
|
104
|
+
function asZstdBuffer(data) {
|
|
105
|
+
return toBuffer(asBytes(data));
|
|
46
106
|
}
|
|
47
|
-
async function compressChunks(
|
|
48
|
-
|
|
107
|
+
async function compressChunks(readChunk, totalSize, chunkSize, level, _onPlainChunk, onCompressedChunk) {
|
|
108
|
+
const parts = [];
|
|
109
|
+
let position = 0;
|
|
110
|
+
while (position < totalSize) {
|
|
111
|
+
const size = Math.min(chunkSize, totalSize - position);
|
|
112
|
+
const chunk = readChunk(position, size);
|
|
113
|
+
parts.push(buffer_1.Buffer.from(chunk));
|
|
114
|
+
position += chunk.length;
|
|
115
|
+
}
|
|
116
|
+
const compressed = await compress(buffer_1.Buffer.concat(parts), level);
|
|
117
|
+
if (onCompressedChunk) {
|
|
118
|
+
await onCompressedChunk(compressed);
|
|
119
|
+
}
|
|
120
|
+
return compressed.length;
|
|
49
121
|
}
|
|
50
|
-
async function* decompressStream(
|
|
51
|
-
|
|
122
|
+
async function* decompressStream(compressedStream) {
|
|
123
|
+
const parts = [];
|
|
124
|
+
for await (const chunk of compressedStream) {
|
|
125
|
+
parts.push(buffer_1.Buffer.from(chunk));
|
|
126
|
+
}
|
|
127
|
+
yield await decompress(buffer_1.Buffer.concat(parts));
|
|
52
128
|
}
|
|
53
129
|
exports.ZstdNode = {
|
|
54
130
|
isNativeZstdAvailable,
|
|
@@ -58,7 +134,9 @@ exports.ZstdNode = {
|
|
|
58
134
|
compress,
|
|
59
135
|
decompress,
|
|
60
136
|
compressSync,
|
|
137
|
+
compressSyncAtLevel,
|
|
61
138
|
decompressSync,
|
|
139
|
+
asZstdBuffer,
|
|
62
140
|
compressChunks,
|
|
63
141
|
decompressStream,
|
|
64
142
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"zstd-browser-shim.js","sourceRoot":"","sources":["../../src/browser/zstd-browser-shim.ts"],"names":[],"mappings":";AAAA;;;
|
|
1
|
+
{"version":3,"file":"zstd-browser-shim.js","sourceRoot":"","sources":["../../src/browser/zstd-browser-shim.ts"],"names":[],"mappings":"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"}
|