@myrialabs/zipkit 0.0.6
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 +329 -0
- package/dist/bench/corpus.d.ts +21 -0
- package/dist/bench/corpus.d.ts.map +1 -0
- package/dist/bench/corpus.js +92 -0
- package/dist/bench/corpus.js.map +1 -0
- package/dist/checksum.d.ts +29 -0
- package/dist/checksum.d.ts.map +1 -0
- package/dist/checksum.js +35 -0
- package/dist/checksum.js.map +1 -0
- package/dist/cli.d.ts +17 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +427 -0
- package/dist/cli.js.map +1 -0
- package/dist/codecs/brotli.d.ts +6 -0
- package/dist/codecs/brotli.d.ts.map +1 -0
- package/dist/codecs/brotli.js +15 -0
- package/dist/codecs/brotli.js.map +1 -0
- package/dist/codecs/bzip2.d.ts +6 -0
- package/dist/codecs/bzip2.d.ts.map +1 -0
- package/dist/codecs/bzip2.js +15 -0
- package/dist/codecs/bzip2.js.map +1 -0
- package/dist/codecs/deflate.d.ts +6 -0
- package/dist/codecs/deflate.d.ts.map +1 -0
- package/dist/codecs/deflate.js +25 -0
- package/dist/codecs/deflate.js.map +1 -0
- package/dist/codecs/gzip.d.ts +6 -0
- package/dist/codecs/gzip.d.ts.map +1 -0
- package/dist/codecs/gzip.js +25 -0
- package/dist/codecs/gzip.js.map +1 -0
- package/dist/codecs/image.d.ts +5 -0
- package/dist/codecs/image.d.ts.map +1 -0
- package/dist/codecs/image.js +16 -0
- package/dist/codecs/image.js.map +1 -0
- package/dist/codecs/index.d.ts +18 -0
- package/dist/codecs/index.d.ts.map +1 -0
- package/dist/codecs/index.js +18 -0
- package/dist/codecs/index.js.map +1 -0
- package/dist/codecs/lz4.d.ts +6 -0
- package/dist/codecs/lz4.d.ts.map +1 -0
- package/dist/codecs/lz4.js +17 -0
- package/dist/codecs/lz4.js.map +1 -0
- package/dist/codecs/lzma.d.ts +6 -0
- package/dist/codecs/lzma.d.ts.map +1 -0
- package/dist/codecs/lzma.js +15 -0
- package/dist/codecs/lzma.js.map +1 -0
- package/dist/codecs/snappy.d.ts +6 -0
- package/dist/codecs/snappy.d.ts.map +1 -0
- package/dist/codecs/snappy.js +14 -0
- package/dist/codecs/snappy.js.map +1 -0
- package/dist/codecs/video.d.ts +13 -0
- package/dist/codecs/video.d.ts.map +1 -0
- package/dist/codecs/video.js +26 -0
- package/dist/codecs/video.js.map +1 -0
- package/dist/codecs/xz.d.ts +6 -0
- package/dist/codecs/xz.d.ts.map +1 -0
- package/dist/codecs/xz.js +30 -0
- package/dist/codecs/xz.js.map +1 -0
- package/dist/codecs/zlib.d.ts +6 -0
- package/dist/codecs/zlib.d.ts.map +1 -0
- package/dist/codecs/zlib.js +15 -0
- package/dist/codecs/zlib.js.map +1 -0
- package/dist/codecs/zstd.d.ts +6 -0
- package/dist/codecs/zstd.d.ts.map +1 -0
- package/dist/codecs/zstd.js +24 -0
- package/dist/codecs/zstd.js.map +1 -0
- package/dist/compress.d.ts +20 -0
- package/dist/compress.d.ts.map +1 -0
- package/dist/compress.js +83 -0
- package/dist/compress.js.map +1 -0
- package/dist/delta.d.ts +30 -0
- package/dist/delta.d.ts.map +1 -0
- package/dist/delta.js +44 -0
- package/dist/delta.js.map +1 -0
- package/dist/detect.d.ts +46 -0
- package/dist/detect.d.ts.map +1 -0
- package/dist/detect.js +86 -0
- package/dist/detect.js.map +1 -0
- package/dist/dictionary.d.ts +37 -0
- package/dist/dictionary.d.ts.map +1 -0
- package/dist/dictionary.js +71 -0
- package/dist/dictionary.js.map +1 -0
- package/dist/engine.d.ts +102 -0
- package/dist/engine.d.ts.map +1 -0
- package/dist/engine.js +204 -0
- package/dist/engine.js.map +1 -0
- package/dist/fsa.d.ts +54 -0
- package/dist/fsa.d.ts.map +1 -0
- package/dist/fsa.js +45 -0
- package/dist/fsa.js.map +1 -0
- package/dist/index.d.ts +35 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +47 -0
- package/dist/index.js.map +1 -0
- package/dist/internal.d.ts +21 -0
- package/dist/internal.d.ts.map +1 -0
- package/dist/internal.js +42 -0
- package/dist/internal.js.map +1 -0
- package/dist/middleware/elysia.d.ts +15 -0
- package/dist/middleware/elysia.d.ts.map +1 -0
- package/dist/middleware/elysia.js +43 -0
- package/dist/middleware/elysia.js.map +1 -0
- package/dist/middleware/express.d.ts +17 -0
- package/dist/middleware/express.d.ts.map +1 -0
- package/dist/middleware/express.js +62 -0
- package/dist/middleware/express.js.map +1 -0
- package/dist/middleware/hono.d.ts +17 -0
- package/dist/middleware/hono.d.ts.map +1 -0
- package/dist/middleware/hono.js +41 -0
- package/dist/middleware/hono.js.map +1 -0
- package/dist/middleware/index.d.ts +14 -0
- package/dist/middleware/index.d.ts.map +1 -0
- package/dist/middleware/index.js +14 -0
- package/dist/middleware/index.js.map +1 -0
- package/dist/middleware/shared.d.ts +29 -0
- package/dist/middleware/shared.d.ts.map +1 -0
- package/dist/middleware/shared.js +47 -0
- package/dist/middleware/shared.js.map +1 -0
- package/dist/pack.d.ts +36 -0
- package/dist/pack.d.ts.map +1 -0
- package/dist/pack.js +75 -0
- package/dist/pack.js.map +1 -0
- package/dist/parallel/index.d.ts +56 -0
- package/dist/parallel/index.d.ts.map +1 -0
- package/dist/parallel/index.js +158 -0
- package/dist/parallel/index.js.map +1 -0
- package/dist/sevenzip/index.d.ts +45 -0
- package/dist/sevenzip/index.d.ts.map +1 -0
- package/dist/sevenzip/index.js +646 -0
- package/dist/sevenzip/index.js.map +1 -0
- package/dist/streams/index.d.ts +32 -0
- package/dist/streams/index.d.ts.map +1 -0
- package/dist/streams/index.js +74 -0
- package/dist/streams/index.js.map +1 -0
- package/dist/string.d.ts +38 -0
- package/dist/string.d.ts.map +1 -0
- package/dist/string.js +64 -0
- package/dist/string.js.map +1 -0
- package/dist/tar/index.d.ts +99 -0
- package/dist/tar/index.d.ts.map +1 -0
- package/dist/tar/index.js +380 -0
- package/dist/tar/index.js.map +1 -0
- package/dist/types.d.ts +59 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +22 -0
- package/dist/types.js.map +1 -0
- package/dist/workers/index.d.ts +58 -0
- package/dist/workers/index.d.ts.map +1 -0
- package/dist/workers/index.js +158 -0
- package/dist/workers/index.js.map +1 -0
- package/dist/workers/worker.d.ts +18 -0
- package/dist/workers/worker.d.ts.map +1 -0
- package/dist/workers/worker.js +45 -0
- package/dist/workers/worker.js.map +1 -0
- package/dist/zip/crypto/aes.d.ts +25 -0
- package/dist/zip/crypto/aes.d.ts.map +1 -0
- package/dist/zip/crypto/aes.js +156 -0
- package/dist/zip/crypto/aes.js.map +1 -0
- package/dist/zip/crypto/winzip.d.ts +28 -0
- package/dist/zip/crypto/winzip.d.ts.map +1 -0
- package/dist/zip/crypto/winzip.js +87 -0
- package/dist/zip/crypto/winzip.js.map +1 -0
- package/dist/zip/crypto/zipcrypto.d.ts +14 -0
- package/dist/zip/crypto/zipcrypto.d.ts.map +1 -0
- package/dist/zip/crypto/zipcrypto.js +65 -0
- package/dist/zip/crypto/zipcrypto.js.map +1 -0
- package/dist/zip/datetime.d.ts +9 -0
- package/dist/zip/datetime.d.ts.map +1 -0
- package/dist/zip/datetime.js +13 -0
- package/dist/zip/datetime.js.map +1 -0
- package/dist/zip/index.d.ts +134 -0
- package/dist/zip/index.d.ts.map +1 -0
- package/dist/zip/index.js +473 -0
- package/dist/zip/index.js.map +1 -0
- package/dist/zip/stream.d.ts +38 -0
- package/dist/zip/stream.d.ts.map +1 -0
- package/dist/zip/stream.js +240 -0
- package/dist/zip/stream.js.map +1 -0
- package/dist/zipkit.d.ts +74 -0
- package/dist/zipkit.d.ts.map +1 -0
- package/dist/zipkit.js +168 -0
- package/dist/zipkit.js.map +1 -0
- package/engine/dist/zipkit-engine.mjs +2 -0
- package/engine/dist/zipkit-engine.wasm +0 -0
- package/package.json +137 -0
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* All codec façades, re-exported. Import individual codecs from the package
|
|
3
|
+
* root (`import { gzip } from '@myrialabs/zipkit'`) for tree-shaking, or grab the whole
|
|
4
|
+
* set here.
|
|
5
|
+
*/
|
|
6
|
+
export { gzip, gunzip } from './gzip.js';
|
|
7
|
+
export { deflate, inflate } from './deflate.js';
|
|
8
|
+
export { zlib, unzlib } from './zlib.js';
|
|
9
|
+
export { zstd, unzstd } from './zstd.js';
|
|
10
|
+
export { lz4, unlz4 } from './lz4.js';
|
|
11
|
+
export { snappy, unsnappy } from './snappy.js';
|
|
12
|
+
export { brotli, unbrotli } from './brotli.js';
|
|
13
|
+
export { lzma, unlzma } from './lzma.js';
|
|
14
|
+
export { xz, unxz } from './xz.js';
|
|
15
|
+
export { bzip2, unbzip2 } from './bzip2.js';
|
|
16
|
+
export { encodeImage, decodeImage } from './image.js';
|
|
17
|
+
export { encodeFrames, decodeFrames, type FrameCodec } from './video.js';
|
|
18
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/codecs/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAChD,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AACtC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AACnC,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAC5C,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AACtD,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,KAAK,UAAU,EAAE,MAAM,YAAY,CAAC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* All codec façades, re-exported. Import individual codecs from the package
|
|
3
|
+
* root (`import { gzip } from '@myrialabs/zipkit'`) for tree-shaking, or grab the whole
|
|
4
|
+
* set here.
|
|
5
|
+
*/
|
|
6
|
+
export { gzip, gunzip } from './gzip.js';
|
|
7
|
+
export { deflate, inflate } from './deflate.js';
|
|
8
|
+
export { zlib, unzlib } from './zlib.js';
|
|
9
|
+
export { zstd, unzstd } from './zstd.js';
|
|
10
|
+
export { lz4, unlz4 } from './lz4.js';
|
|
11
|
+
export { snappy, unsnappy } from './snappy.js';
|
|
12
|
+
export { brotli, unbrotli } from './brotli.js';
|
|
13
|
+
export { lzma, unlzma } from './lzma.js';
|
|
14
|
+
export { xz, unxz } from './xz.js';
|
|
15
|
+
export { bzip2, unbzip2 } from './bzip2.js';
|
|
16
|
+
export { encodeImage, decodeImage } from './image.js';
|
|
17
|
+
export { encodeFrames, decodeFrames } from './video.js';
|
|
18
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/codecs/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAChD,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AACtC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AACnC,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAC5C,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AACtD,OAAO,EAAE,YAAY,EAAE,YAAY,EAAmB,MAAM,YAAY,CAAC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { CompressOptions, DecompressOptions } from '../types.js';
|
|
2
|
+
/** Compress with LZ4 (raw block). */
|
|
3
|
+
export declare function lz4(data: Uint8Array, opts?: CompressOptions): Promise<Uint8Array>;
|
|
4
|
+
/** Decompress an LZ4 raw block produced by {@link lz4}. */
|
|
5
|
+
export declare function unlz4(data: Uint8Array, opts?: DecompressOptions): Promise<Uint8Array>;
|
|
6
|
+
//# sourceMappingURL=lz4.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lz4.d.ts","sourceRoot":"","sources":["../../src/codecs/lz4.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAEtE,qCAAqC;AACrC,wBAAsB,GAAG,CAAC,IAAI,EAAE,UAAU,EAAE,IAAI,CAAC,EAAE,eAAe,GAAG,OAAO,CAAC,UAAU,CAAC,CAGvF;AAED,2DAA2D;AAC3D,wBAAsB,KAAK,CAAC,IAAI,EAAE,UAAU,EAAE,IAAI,CAAC,EAAE,iBAAiB,GAAG,OAAO,CAAC,UAAU,CAAC,CAG3F"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* LZ4 codec — lz4 1.10.0, raw block format (no frame header). The fastest
|
|
3
|
+
* codec in ZipKit; pair with a slower codec only when ratio matters.
|
|
4
|
+
*/
|
|
5
|
+
import { getEngine } from '../engine.js';
|
|
6
|
+
import { runAsync } from '../internal.js';
|
|
7
|
+
/** Compress with LZ4 (raw block). */
|
|
8
|
+
export async function lz4(data, opts) {
|
|
9
|
+
const e = await getEngine();
|
|
10
|
+
return runAsync(() => e.lz4Compress(data), opts, data.length);
|
|
11
|
+
}
|
|
12
|
+
/** Decompress an LZ4 raw block produced by {@link lz4}. */
|
|
13
|
+
export async function unlz4(data, opts) {
|
|
14
|
+
const e = await getEngine();
|
|
15
|
+
return runAsync(() => e.lz4Decompress(data), opts, data.length);
|
|
16
|
+
}
|
|
17
|
+
//# sourceMappingURL=lz4.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lz4.js","sourceRoot":"","sources":["../../src/codecs/lz4.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAG1C,qCAAqC;AACrC,MAAM,CAAC,KAAK,UAAU,GAAG,CAAC,IAAgB,EAAE,IAAsB;IACjE,MAAM,CAAC,GAAG,MAAM,SAAS,EAAE,CAAC;IAC5B,OAAO,QAAQ,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;AAC/D,CAAC;AAED,2DAA2D;AAC3D,MAAM,CAAC,KAAK,UAAU,KAAK,CAAC,IAAgB,EAAE,IAAwB;IACrE,MAAM,CAAC,GAAG,MAAM,SAAS,EAAE,CAAC;IAC5B,OAAO,QAAQ,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;AACjE,CAAC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { CompressOptions, DecompressOptions } from '../types.js';
|
|
2
|
+
/** Compress with LZMA. Level `0`–`9`; mode chooses the default. */
|
|
3
|
+
export declare function lzma(data: Uint8Array, opts?: CompressOptions): Promise<Uint8Array>;
|
|
4
|
+
/** Decompress an LZMA buffer produced by {@link lzma}. */
|
|
5
|
+
export declare function unlzma(data: Uint8Array, opts?: DecompressOptions): Promise<Uint8Array>;
|
|
6
|
+
//# sourceMappingURL=lzma.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lzma.d.ts","sourceRoot":"","sources":["../../src/codecs/lzma.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAEtE,mEAAmE;AACnE,wBAAsB,IAAI,CAAC,IAAI,EAAE,UAAU,EAAE,IAAI,CAAC,EAAE,eAAe,GAAG,OAAO,CAAC,UAAU,CAAC,CAIxF;AAED,0DAA0D;AAC1D,wBAAsB,MAAM,CAAC,IAAI,EAAE,UAAU,EAAE,IAAI,CAAC,EAAE,iBAAiB,GAAG,OAAO,CAAC,UAAU,CAAC,CAG5F"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/** LZMA codec — 7-Zip SDK. Highest general-purpose ratio, slowest. */
|
|
2
|
+
import { getEngine } from '../engine.js';
|
|
3
|
+
import { levelForMode, runAsync } from '../internal.js';
|
|
4
|
+
/** Compress with LZMA. Level `0`–`9`; mode chooses the default. */
|
|
5
|
+
export async function lzma(data, opts) {
|
|
6
|
+
const e = await getEngine();
|
|
7
|
+
const level = levelForMode(opts, 0, 9, { speed: 3, balanced: 6, ratio: 9 });
|
|
8
|
+
return runAsync(() => e.lzmaCompress(data, level), opts, data.length);
|
|
9
|
+
}
|
|
10
|
+
/** Decompress an LZMA buffer produced by {@link lzma}. */
|
|
11
|
+
export async function unlzma(data, opts) {
|
|
12
|
+
const e = await getEngine();
|
|
13
|
+
return runAsync(() => e.lzmaDecompress(data), opts, data.length);
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=lzma.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lzma.js","sourceRoot":"","sources":["../../src/codecs/lzma.ts"],"names":[],"mappings":"AAAA,sEAAsE;AACtE,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAGxD,mEAAmE;AACnE,MAAM,CAAC,KAAK,UAAU,IAAI,CAAC,IAAgB,EAAE,IAAsB;IAClE,MAAM,CAAC,GAAG,MAAM,SAAS,EAAE,CAAC;IAC5B,MAAM,KAAK,GAAG,YAAY,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;IAC5E,OAAO,QAAQ,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,YAAY,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;AACvE,CAAC;AAED,0DAA0D;AAC1D,MAAM,CAAC,KAAK,UAAU,MAAM,CAAC,IAAgB,EAAE,IAAwB;IACtE,MAAM,CAAC,GAAG,MAAM,SAAS,EAAE,CAAC;IAC5B,OAAO,QAAQ,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;AAClE,CAAC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { CompressOptions, DecompressOptions } from '../types.js';
|
|
2
|
+
/** Compress with Snappy. */
|
|
3
|
+
export declare function snappy(data: Uint8Array, opts?: CompressOptions): Promise<Uint8Array>;
|
|
4
|
+
/** Decompress a Snappy buffer. */
|
|
5
|
+
export declare function unsnappy(data: Uint8Array, opts?: DecompressOptions): Promise<Uint8Array>;
|
|
6
|
+
//# sourceMappingURL=snappy.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"snappy.d.ts","sourceRoot":"","sources":["../../src/codecs/snappy.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAEtE,4BAA4B;AAC5B,wBAAsB,MAAM,CAAC,IAAI,EAAE,UAAU,EAAE,IAAI,CAAC,EAAE,eAAe,GAAG,OAAO,CAAC,UAAU,CAAC,CAG1F;AAED,kCAAkC;AAClC,wBAAsB,QAAQ,CAAC,IAAI,EAAE,UAAU,EAAE,IAAI,CAAC,EAAE,iBAAiB,GAAG,OAAO,CAAC,UAAU,CAAC,CAG9F"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/** Snappy codec — snappy 1.2.1. Extremely fast, modest ratio. */
|
|
2
|
+
import { getEngine } from '../engine.js';
|
|
3
|
+
import { runAsync } from '../internal.js';
|
|
4
|
+
/** Compress with Snappy. */
|
|
5
|
+
export async function snappy(data, opts) {
|
|
6
|
+
const e = await getEngine();
|
|
7
|
+
return runAsync(() => e.snappyCompress(data), opts, data.length);
|
|
8
|
+
}
|
|
9
|
+
/** Decompress a Snappy buffer. */
|
|
10
|
+
export async function unsnappy(data, opts) {
|
|
11
|
+
const e = await getEngine();
|
|
12
|
+
return runAsync(() => e.snappyDecompress(data), opts, data.length);
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=snappy.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"snappy.js","sourceRoot":"","sources":["../../src/codecs/snappy.ts"],"names":[],"mappings":"AAAA,iEAAiE;AACjE,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAG1C,4BAA4B;AAC5B,MAAM,CAAC,KAAK,UAAU,MAAM,CAAC,IAAgB,EAAE,IAAsB;IACpE,MAAM,CAAC,GAAG,MAAM,SAAS,EAAE,CAAC;IAC5B,OAAO,QAAQ,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;AAClE,CAAC;AAED,kCAAkC;AAClC,MAAM,CAAC,KAAK,UAAU,QAAQ,CAAC,IAAgB,EAAE,IAAwB;IACxE,MAAM,CAAC,GAAG,MAAM,SAAS,EAAE,CAAC;IAC5B,OAAO,QAAQ,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,gBAAgB,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;AACpE,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/** The fast codec applied to the frame-delta residual. */
|
|
2
|
+
export type FrameCodec = 'zstd' | 'lz4';
|
|
3
|
+
/**
|
|
4
|
+
* Encode a sequence of equally-sized raw frames losslessly.
|
|
5
|
+
*
|
|
6
|
+
* @param frames - All frames concatenated, each exactly `frameSize` bytes.
|
|
7
|
+
* @param frameSize - Bytes per frame (e.g. `width * height * channels`).
|
|
8
|
+
* @param codec - Residual codec: `'zstd'` (denser) or `'lz4'` (faster).
|
|
9
|
+
*/
|
|
10
|
+
export declare function encodeFrames(frames: Uint8Array, frameSize: number, codec?: FrameCodec): Promise<Uint8Array>;
|
|
11
|
+
/** Decode frames produced by {@link encodeFrames} (same `frameSize`/`codec`). */
|
|
12
|
+
export declare function decodeFrames(data: Uint8Array, frameSize: number, codec?: FrameCodec): Promise<Uint8Array>;
|
|
13
|
+
//# sourceMappingURL=video.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"video.d.ts","sourceRoot":"","sources":["../../src/codecs/video.ts"],"names":[],"mappings":"AAQA,0DAA0D;AAC1D,MAAM,MAAM,UAAU,GAAG,MAAM,GAAG,KAAK,CAAC;AAExC;;;;;;GAMG;AACH,wBAAsB,YAAY,CACjC,MAAM,EAAE,UAAU,EAClB,SAAS,EAAE,MAAM,EACjB,KAAK,GAAE,UAAmB,GACxB,OAAO,CAAC,UAAU,CAAC,CAIrB;AAED,iFAAiF;AACjF,wBAAsB,YAAY,CACjC,IAAI,EAAE,UAAU,EAChB,SAAS,EAAE,MAAM,EACjB,KAAK,GAAE,UAAmB,GACxB,OAAO,CAAC,UAAU,CAAC,CAIrB"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Lossless temporal video compression: frame-delta prediction followed by a
|
|
3
|
+
* fast general codec. Subtract each frame from the previous one (the residual
|
|
4
|
+
* is mostly zeros) then compress the residual with zstd or lz4. Ideal for
|
|
5
|
+
* screen recordings, raw frame buffers, and video IPC — not a lossy codec.
|
|
6
|
+
*/
|
|
7
|
+
import { getEngine } from '../engine.js';
|
|
8
|
+
/**
|
|
9
|
+
* Encode a sequence of equally-sized raw frames losslessly.
|
|
10
|
+
*
|
|
11
|
+
* @param frames - All frames concatenated, each exactly `frameSize` bytes.
|
|
12
|
+
* @param frameSize - Bytes per frame (e.g. `width * height * channels`).
|
|
13
|
+
* @param codec - Residual codec: `'zstd'` (denser) or `'lz4'` (faster).
|
|
14
|
+
*/
|
|
15
|
+
export async function encodeFrames(frames, frameSize, codec = 'zstd') {
|
|
16
|
+
const e = await getEngine();
|
|
17
|
+
const residual = e.frameDeltaEncode(frames, frameSize);
|
|
18
|
+
return codec === 'lz4' ? e.lz4Compress(residual) : e.zstdCompress(residual, 19);
|
|
19
|
+
}
|
|
20
|
+
/** Decode frames produced by {@link encodeFrames} (same `frameSize`/`codec`). */
|
|
21
|
+
export async function decodeFrames(data, frameSize, codec = 'zstd') {
|
|
22
|
+
const e = await getEngine();
|
|
23
|
+
const residual = codec === 'lz4' ? e.lz4Decompress(data) : e.zstdDecompress(data);
|
|
24
|
+
return e.frameDeltaDecode(residual, frameSize);
|
|
25
|
+
}
|
|
26
|
+
//# sourceMappingURL=video.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"video.js","sourceRoot":"","sources":["../../src/codecs/video.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAKzC;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY,CACjC,MAAkB,EAClB,SAAiB,EACjB,QAAoB,MAAM;IAE1B,MAAM,CAAC,GAAG,MAAM,SAAS,EAAE,CAAC;IAC5B,MAAM,QAAQ,GAAG,CAAC,CAAC,gBAAgB,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IACvD,OAAO,KAAK,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;AACjF,CAAC;AAED,iFAAiF;AACjF,MAAM,CAAC,KAAK,UAAU,YAAY,CACjC,IAAgB,EAChB,SAAiB,EACjB,QAAoB,MAAM;IAE1B,MAAM,CAAC,GAAG,MAAM,SAAS,EAAE,CAAC;IAC5B,MAAM,QAAQ,GAAG,KAAK,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;IAClF,OAAO,CAAC,CAAC,gBAAgB,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;AAChD,CAAC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { CompressOptions, DecompressOptions } from '../types.js';
|
|
2
|
+
/** Compress to a standard `.xz` stream. Level `0`–`9`; mode chooses the default. */
|
|
3
|
+
export declare function xz(data: Uint8Array, opts?: CompressOptions): Promise<Uint8Array>;
|
|
4
|
+
/** Decompress a standard `.xz` stream produced by ZipKit, the `xz` CLI, or 7-Zip. */
|
|
5
|
+
export declare function unxz(data: Uint8Array, opts?: DecompressOptions): Promise<Uint8Array>;
|
|
6
|
+
//# sourceMappingURL=xz.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"xz.d.ts","sourceRoot":"","sources":["../../src/codecs/xz.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAEtE,oFAAoF;AACpF,wBAAsB,EAAE,CAAC,IAAI,EAAE,UAAU,EAAE,IAAI,CAAC,EAAE,eAAe,GAAG,OAAO,CAAC,UAAU,CAAC,CAItF;AAED,qFAAqF;AACrF,wBAAsB,IAAI,CAAC,IAAI,EAAE,UAAU,EAAE,IAAI,CAAC,EAAE,iBAAiB,GAAG,OAAO,CAAC,UAAU,CAAC,CAG1F"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* xz codec — the standard `.xz` container (LZMA2 + CRC integrity) from the
|
|
3
|
+
* 7-Zip SDK. Unlike a hand-rolled LZMA2 chunker, this is the SDK's full
|
|
4
|
+
* streaming encoder/decoder, so it interoperates with the `xz` CLI and the
|
|
5
|
+
* `.tar.xz` tarballs found in the wild.
|
|
6
|
+
*/
|
|
7
|
+
import { getEngine } from '../engine.js';
|
|
8
|
+
import { levelForMode, runAsync } from '../internal.js';
|
|
9
|
+
import { ZipKitError } from '../types.js';
|
|
10
|
+
/** Compress to a standard `.xz` stream. Level `0`–`9`; mode chooses the default. */
|
|
11
|
+
export async function xz(data, opts) {
|
|
12
|
+
const e = await getEngine();
|
|
13
|
+
const level = levelForMode(opts, 0, 9, { speed: 1, balanced: 6, ratio: 9 });
|
|
14
|
+
return runAsync(() => wrap(() => e.xzCompress(data, level)), opts, data.length);
|
|
15
|
+
}
|
|
16
|
+
/** Decompress a standard `.xz` stream produced by ZipKit, the `xz` CLI, or 7-Zip. */
|
|
17
|
+
export async function unxz(data, opts) {
|
|
18
|
+
const e = await getEngine();
|
|
19
|
+
return runAsync(() => wrap(() => e.xzDecompress(data)), opts, data.length);
|
|
20
|
+
}
|
|
21
|
+
/** Surface engine failures as the library's {@link ZipKitError}. */
|
|
22
|
+
function wrap(fn) {
|
|
23
|
+
try {
|
|
24
|
+
return fn();
|
|
25
|
+
}
|
|
26
|
+
catch (err) {
|
|
27
|
+
throw new ZipKitError(err instanceof Error ? err.message : 'xz operation failed');
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
//# sourceMappingURL=xz.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"xz.js","sourceRoot":"","sources":["../../src/codecs/xz.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AACxD,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAG1C,oFAAoF;AACpF,MAAM,CAAC,KAAK,UAAU,EAAE,CAAC,IAAgB,EAAE,IAAsB;IAChE,MAAM,CAAC,GAAG,MAAM,SAAS,EAAE,CAAC;IAC5B,MAAM,KAAK,GAAG,YAAY,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;IAC5E,OAAO,QAAQ,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;AACjF,CAAC;AAED,qFAAqF;AACrF,MAAM,CAAC,KAAK,UAAU,IAAI,CAAC,IAAgB,EAAE,IAAwB;IACpE,MAAM,CAAC,GAAG,MAAM,SAAS,EAAE,CAAC;IAC5B,OAAO,QAAQ,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;AAC5E,CAAC;AAED,oEAAoE;AACpE,SAAS,IAAI,CAAC,EAAoB;IACjC,IAAI,CAAC;QACJ,OAAO,EAAE,EAAE,CAAC;IACb,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACd,MAAM,IAAI,WAAW,CAAC,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC;IACnF,CAAC;AACF,CAAC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { CompressOptions, DecompressOptions } from '../types.js';
|
|
2
|
+
/** Compress to the zlib format. Level `0`–`9`; mode chooses the default. */
|
|
3
|
+
export declare function zlib(data: Uint8Array, opts?: CompressOptions): Promise<Uint8Array>;
|
|
4
|
+
/** Decompress a zlib buffer. */
|
|
5
|
+
export declare function unzlib(data: Uint8Array, opts?: DecompressOptions): Promise<Uint8Array>;
|
|
6
|
+
//# sourceMappingURL=zlib.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"zlib.d.ts","sourceRoot":"","sources":["../../src/codecs/zlib.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAEtE,4EAA4E;AAC5E,wBAAsB,IAAI,CAAC,IAAI,EAAE,UAAU,EAAE,IAAI,CAAC,EAAE,eAAe,GAAG,OAAO,CAAC,UAAU,CAAC,CAIxF;AAED,gCAAgC;AAChC,wBAAsB,MAAM,CAAC,IAAI,EAAE,UAAU,EAAE,IAAI,CAAC,EAAE,iBAAiB,GAAG,OAAO,CAAC,UAAU,CAAC,CAG5F"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/** zlib codec (RFC 1950) — libdeflate, standard-format compatible. */
|
|
2
|
+
import { getEngine } from '../engine.js';
|
|
3
|
+
import { levelForMode, runAsync } from '../internal.js';
|
|
4
|
+
/** Compress to the zlib format. Level `0`–`9`; mode chooses the default. */
|
|
5
|
+
export async function zlib(data, opts) {
|
|
6
|
+
const e = await getEngine();
|
|
7
|
+
const level = levelForMode(opts, 0, 9, { speed: 1, balanced: 6, ratio: 9 });
|
|
8
|
+
return runAsync(() => e.zlibCompress(data, level), opts, data.length);
|
|
9
|
+
}
|
|
10
|
+
/** Decompress a zlib buffer. */
|
|
11
|
+
export async function unzlib(data, opts) {
|
|
12
|
+
const e = await getEngine();
|
|
13
|
+
return runAsync(() => e.zlibDecompress(data), opts, data.length);
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=zlib.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"zlib.js","sourceRoot":"","sources":["../../src/codecs/zlib.ts"],"names":[],"mappings":"AAAA,sEAAsE;AACtE,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAGxD,4EAA4E;AAC5E,MAAM,CAAC,KAAK,UAAU,IAAI,CAAC,IAAgB,EAAE,IAAsB;IAClE,MAAM,CAAC,GAAG,MAAM,SAAS,EAAE,CAAC;IAC5B,MAAM,KAAK,GAAG,YAAY,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;IAC5E,OAAO,QAAQ,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,YAAY,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;AACvE,CAAC;AAED,gCAAgC;AAChC,MAAM,CAAC,KAAK,UAAU,MAAM,CAAC,IAAgB,EAAE,IAAwB;IACtE,MAAM,CAAC,GAAG,MAAM,SAAS,EAAE,CAAC;IAC5B,OAAO,QAAQ,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;AAClE,CAAC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { CompressOptions, DecompressOptions } from '../types.js';
|
|
2
|
+
/** Compress with Zstandard. Level `1`–`22`; mode chooses the default. */
|
|
3
|
+
export declare function zstd(data: Uint8Array, opts?: CompressOptions): Promise<Uint8Array>;
|
|
4
|
+
/** Decompress a Zstandard frame. */
|
|
5
|
+
export declare function unzstd(data: Uint8Array, opts?: DecompressOptions): Promise<Uint8Array>;
|
|
6
|
+
//# sourceMappingURL=zstd.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"zstd.d.ts","sourceRoot":"","sources":["../../src/codecs/zstd.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAEtE,yEAAyE;AACzE,wBAAsB,IAAI,CAAC,IAAI,EAAE,UAAU,EAAE,IAAI,CAAC,EAAE,eAAe,GAAG,OAAO,CAAC,UAAU,CAAC,CAUxF;AAED,oCAAoC;AACpC,wBAAsB,MAAM,CAAC,IAAI,EAAE,UAAU,EAAE,IAAI,CAAC,EAAE,iBAAiB,GAAG,OAAO,CAAC,UAAU,CAAC,CAK5F"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/** Zstandard codec — libzstd 1.5.6, standard-format compatible. */
|
|
2
|
+
import { getEngine } from '../engine.js';
|
|
3
|
+
import { bunRuntime, levelForMode, runAsync } from '../internal.js';
|
|
4
|
+
/** Compress with Zstandard. Level `1`–`22`; mode chooses the default. */
|
|
5
|
+
export async function zstd(data, opts) {
|
|
6
|
+
const level = levelForMode(opts, 1, 22, { speed: 1, balanced: 3, ratio: 19 });
|
|
7
|
+
const bun = bunRuntime();
|
|
8
|
+
if (bun?.zstdCompressSync) {
|
|
9
|
+
return runAsync(() => bun.zstdCompressSync(data, { level }), opts, data.length);
|
|
10
|
+
}
|
|
11
|
+
const e = await getEngine();
|
|
12
|
+
// Levels above 19 enable zstd's "ultra" mode plus long-distance matching.
|
|
13
|
+
const work = level > 19 ? () => e.zstdMaxCompress(data, level) : () => e.zstdCompress(data, level);
|
|
14
|
+
return runAsync(work, opts, data.length);
|
|
15
|
+
}
|
|
16
|
+
/** Decompress a Zstandard frame. */
|
|
17
|
+
export async function unzstd(data, opts) {
|
|
18
|
+
const bun = bunRuntime();
|
|
19
|
+
if (bun?.zstdDecompressSync)
|
|
20
|
+
return runAsync(() => bun.zstdDecompressSync(data), opts, data.length);
|
|
21
|
+
const e = await getEngine();
|
|
22
|
+
return runAsync(() => e.zstdDecompress(data), opts, data.length);
|
|
23
|
+
}
|
|
24
|
+
//# sourceMappingURL=zstd.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"zstd.js","sourceRoot":"","sources":["../../src/codecs/zstd.ts"],"names":[],"mappings":"AAAA,mEAAmE;AACnE,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAGpE,yEAAyE;AACzE,MAAM,CAAC,KAAK,UAAU,IAAI,CAAC,IAAgB,EAAE,IAAsB;IAClE,MAAM,KAAK,GAAG,YAAY,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC;IAC9E,MAAM,GAAG,GAAG,UAAU,EAAE,CAAC;IACzB,IAAI,GAAG,EAAE,gBAAgB,EAAE,CAAC;QAC3B,OAAO,QAAQ,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,gBAAgB,CAAC,IAAI,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;IACjF,CAAC;IACD,MAAM,CAAC,GAAG,MAAM,SAAS,EAAE,CAAC;IAC5B,0EAA0E;IAC1E,MAAM,IAAI,GAAG,KAAK,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,eAAe,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,YAAY,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IACnG,OAAO,QAAQ,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;AAC1C,CAAC;AAED,oCAAoC;AACpC,MAAM,CAAC,KAAK,UAAU,MAAM,CAAC,IAAgB,EAAE,IAAwB;IACtE,MAAM,GAAG,GAAG,UAAU,EAAE,CAAC;IACzB,IAAI,GAAG,EAAE,kBAAkB;QAAE,OAAO,QAAQ,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,kBAAkB,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;IACpG,MAAM,CAAC,GAAG,MAAM,SAAS,EAAE,CAAC;IAC5B,OAAO,QAAQ,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;AAClE,CAAC"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Generic codec dispatch by name, plus auto-detecting decompression.
|
|
3
|
+
*
|
|
4
|
+
* `compress(data, 'zstd')` picks the codec explicitly; `decompress(data)`
|
|
5
|
+
* sniffs the header (see {@link detectFormat}) and routes accordingly. For
|
|
6
|
+
* headerless formats (brotli, raw lzma, raw lz4 block, snappy) pass the codec
|
|
7
|
+
* explicitly via `decompressWith`.
|
|
8
|
+
*/
|
|
9
|
+
import type { Codec, CompressOptions, DecompressOptions } from './types.js';
|
|
10
|
+
/** Compress with the named codec. */
|
|
11
|
+
export declare function compress(data: Uint8Array, codec: Codec, opts?: CompressOptions): Promise<Uint8Array>;
|
|
12
|
+
/** Decompress with the named codec. */
|
|
13
|
+
export declare function decompressWith(data: Uint8Array, codec: Codec, opts?: DecompressOptions): Promise<Uint8Array>;
|
|
14
|
+
/**
|
|
15
|
+
* Decompress by auto-detecting the format from magic bytes. Throws
|
|
16
|
+
* {@link ZipKitError} if the format has no recognizable signature — use
|
|
17
|
+
* {@link decompressWith} and name the codec in that case.
|
|
18
|
+
*/
|
|
19
|
+
export declare function decompress(data: Uint8Array, opts?: DecompressOptions): Promise<Uint8Array>;
|
|
20
|
+
//# sourceMappingURL=compress.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"compress.d.ts","sourceRoot":"","sources":["../src/compress.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,KAAK,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAsC5E,qCAAqC;AACrC,wBAAgB,QAAQ,CAAC,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,EAAE,eAAe,GAAG,OAAO,CAAC,UAAU,CAAC,CAIpG;AAED,uCAAuC;AACvC,wBAAgB,cAAc,CAAC,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,EAAE,iBAAiB,GAAG,OAAO,CAAC,UAAU,CAAC,CAI5G;AAED;;;;GAIG;AACH,wBAAsB,UAAU,CAAC,IAAI,EAAE,UAAU,EAAE,IAAI,CAAC,EAAE,iBAAiB,GAAG,OAAO,CAAC,UAAU,CAAC,CAahG"}
|
package/dist/compress.js
ADDED
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Generic codec dispatch by name, plus auto-detecting decompression.
|
|
3
|
+
*
|
|
4
|
+
* `compress(data, 'zstd')` picks the codec explicitly; `decompress(data)`
|
|
5
|
+
* sniffs the header (see {@link detectFormat}) and routes accordingly. For
|
|
6
|
+
* headerless formats (brotli, raw lzma, raw lz4 block, snappy) pass the codec
|
|
7
|
+
* explicitly via `decompressWith`.
|
|
8
|
+
*/
|
|
9
|
+
import { ZipKitError } from './types.js';
|
|
10
|
+
import { detectFormat, isDirectlyDecompressible } from './detect.js';
|
|
11
|
+
import { gzip, gunzip } from './codecs/gzip.js';
|
|
12
|
+
import { deflate, inflate } from './codecs/deflate.js';
|
|
13
|
+
import { zlib, unzlib } from './codecs/zlib.js';
|
|
14
|
+
import { zstd, unzstd } from './codecs/zstd.js';
|
|
15
|
+
import { lz4, unlz4 } from './codecs/lz4.js';
|
|
16
|
+
import { snappy, unsnappy } from './codecs/snappy.js';
|
|
17
|
+
import { brotli, unbrotli } from './codecs/brotli.js';
|
|
18
|
+
import { lzma, unlzma } from './codecs/lzma.js';
|
|
19
|
+
import { bzip2, unbzip2 } from './codecs/bzip2.js';
|
|
20
|
+
import { unxz } from './codecs/xz.js';
|
|
21
|
+
const COMPRESSORS = {
|
|
22
|
+
gzip,
|
|
23
|
+
deflate,
|
|
24
|
+
zlib,
|
|
25
|
+
zstd,
|
|
26
|
+
lz4,
|
|
27
|
+
snappy,
|
|
28
|
+
brotli,
|
|
29
|
+
lzma,
|
|
30
|
+
bzip2
|
|
31
|
+
};
|
|
32
|
+
const DECOMPRESSORS = {
|
|
33
|
+
gzip: gunzip,
|
|
34
|
+
deflate: inflate,
|
|
35
|
+
zlib: unzlib,
|
|
36
|
+
zstd: unzstd,
|
|
37
|
+
lz4: unlz4,
|
|
38
|
+
snappy: unsnappy,
|
|
39
|
+
brotli: unbrotli,
|
|
40
|
+
lzma: unlzma,
|
|
41
|
+
bzip2: unbzip2
|
|
42
|
+
};
|
|
43
|
+
/** Compress with the named codec. */
|
|
44
|
+
export function compress(data, codec, opts) {
|
|
45
|
+
const fn = COMPRESSORS[codec];
|
|
46
|
+
if (!fn)
|
|
47
|
+
throw new ZipKitError(`Unknown codec: ${codec}`);
|
|
48
|
+
return fn(data, opts);
|
|
49
|
+
}
|
|
50
|
+
/** Decompress with the named codec. */
|
|
51
|
+
export function decompressWith(data, codec, opts) {
|
|
52
|
+
const fn = DECOMPRESSORS[codec];
|
|
53
|
+
if (!fn)
|
|
54
|
+
throw new ZipKitError(`Unknown codec: ${codec}`);
|
|
55
|
+
return fn(data, opts);
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* Decompress by auto-detecting the format from magic bytes. Throws
|
|
59
|
+
* {@link ZipKitError} if the format has no recognizable signature — use
|
|
60
|
+
* {@link decompressWith} and name the codec in that case.
|
|
61
|
+
*/
|
|
62
|
+
export async function decompress(data, opts) {
|
|
63
|
+
const fmt = detectFormat(data);
|
|
64
|
+
if (!fmt) {
|
|
65
|
+
throw new ZipKitError('Could not auto-detect the compression format. Pass the codec explicitly via decompressWith().');
|
|
66
|
+
}
|
|
67
|
+
// xz is a container, but ZipKit decodes it directly via the engine.
|
|
68
|
+
if (fmt === 'xz')
|
|
69
|
+
return unxz(data, opts);
|
|
70
|
+
if (!isDirectlyDecompressible(fmt)) {
|
|
71
|
+
throw new ZipKitError(CONTAINER_HINT[fmt]);
|
|
72
|
+
}
|
|
73
|
+
return decompressWith(data, fmt, opts);
|
|
74
|
+
}
|
|
75
|
+
/** Guidance for formats {@link decompress} recognizes but can't decode itself. */
|
|
76
|
+
const CONTAINER_HINT = {
|
|
77
|
+
zip: 'Input is a ZIP archive — use unzip() from @myrialabs/zipkit/zip (or the \`zipkit unzip\` CLI command).',
|
|
78
|
+
tar: 'Input is a tar archive — use untar() from @myrialabs/zipkit/tar (or untarGz/untarZstd for compressed tarballs).',
|
|
79
|
+
'7z': 'Input is a 7z archive — use unSevenZip() from @myrialabs/zipkit/sevenzip.',
|
|
80
|
+
bzip2: 'Input is a standard bzip2 (.bz2) stream. ZipKit\'s bzip2 codec uses its own length-prefixed frame, so this external stream needs a standard .bz2 reader.',
|
|
81
|
+
'lz4-frame': 'Input is an LZ4 frame — ZipKit emits and reads the raw LZ4 block; decode frames with a frame-aware LZ4 reader.'
|
|
82
|
+
};
|
|
83
|
+
//# sourceMappingURL=compress.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"compress.js","sourceRoot":"","sources":["../src/compress.ts"],"names":[],"mappings":"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"}
|
package/dist/delta.d.ts
ADDED
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Delta (incremental) compression for text/JSON that changes in small steps —
|
|
3
|
+
* log streams, chat histories, config snapshots, agent conversation state. The
|
|
4
|
+
* analogue of `encodeFrames` (frame-delta + zstd) for video, but for text: given
|
|
5
|
+
* a `base` revision, {@link compressDelta} encodes a new revision against it so
|
|
6
|
+
* only what changed costs bytes.
|
|
7
|
+
*
|
|
8
|
+
* Implemented as zstd with the base loaded as a raw content prefix (the same
|
|
9
|
+
* mechanism as zstd `--patch-from`): the encoder can copy long runs straight
|
|
10
|
+
* from the base, so an append or a small edit compresses to a tiny patch. The
|
|
11
|
+
* exact same `base` must be supplied to {@link applyDelta}.
|
|
12
|
+
*
|
|
13
|
+
* @example
|
|
14
|
+
* ```ts
|
|
15
|
+
* import { compressDelta, applyDelta } from '@myrialabs/zipkit';
|
|
16
|
+
* const v1 = strToU8(JSON.stringify(stateV1));
|
|
17
|
+
* const patch = await compressDelta(v1, strToU8(JSON.stringify(stateV2)));
|
|
18
|
+
* const v2 = await applyDelta(v1, patch); // === bytes of stateV2
|
|
19
|
+
* ```
|
|
20
|
+
*/
|
|
21
|
+
import type { CompressOptions, DecompressOptions } from './types.js';
|
|
22
|
+
/**
|
|
23
|
+
* Compress `target` as a delta against `base`. The closer `target` is to
|
|
24
|
+
* `base`, the smaller the result. Decode with {@link applyDelta} and the same
|
|
25
|
+
* `base`.
|
|
26
|
+
*/
|
|
27
|
+
export declare function compressDelta(base: Uint8Array, target: Uint8Array, opts?: CompressOptions): Promise<Uint8Array>;
|
|
28
|
+
/** Reconstruct the target bytes from `base` and a patch from {@link compressDelta}. */
|
|
29
|
+
export declare function applyDelta(base: Uint8Array, patch: Uint8Array, opts?: DecompressOptions): Promise<Uint8Array>;
|
|
30
|
+
//# sourceMappingURL=delta.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"delta.d.ts","sourceRoot":"","sources":["../src/delta.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAIH,OAAO,KAAK,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAErE;;;;GAIG;AACH,wBAAsB,aAAa,CAClC,IAAI,EAAE,UAAU,EAChB,MAAM,EAAE,UAAU,EAClB,IAAI,CAAC,EAAE,eAAe,GACpB,OAAO,CAAC,UAAU,CAAC,CAOrB;AAED,uFAAuF;AACvF,wBAAsB,UAAU,CAAC,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,UAAU,EAAE,IAAI,CAAC,EAAE,iBAAiB,GAAG,OAAO,CAAC,UAAU,CAAC,CAMnH"}
|
package/dist/delta.js
ADDED
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Delta (incremental) compression for text/JSON that changes in small steps —
|
|
3
|
+
* log streams, chat histories, config snapshots, agent conversation state. The
|
|
4
|
+
* analogue of `encodeFrames` (frame-delta + zstd) for video, but for text: given
|
|
5
|
+
* a `base` revision, {@link compressDelta} encodes a new revision against it so
|
|
6
|
+
* only what changed costs bytes.
|
|
7
|
+
*
|
|
8
|
+
* Implemented as zstd with the base loaded as a raw content prefix (the same
|
|
9
|
+
* mechanism as zstd `--patch-from`): the encoder can copy long runs straight
|
|
10
|
+
* from the base, so an append or a small edit compresses to a tiny patch. The
|
|
11
|
+
* exact same `base` must be supplied to {@link applyDelta}.
|
|
12
|
+
*
|
|
13
|
+
* @example
|
|
14
|
+
* ```ts
|
|
15
|
+
* import { compressDelta, applyDelta } from '@myrialabs/zipkit';
|
|
16
|
+
* const v1 = strToU8(JSON.stringify(stateV1));
|
|
17
|
+
* const patch = await compressDelta(v1, strToU8(JSON.stringify(stateV2)));
|
|
18
|
+
* const v2 = await applyDelta(v1, patch); // === bytes of stateV2
|
|
19
|
+
* ```
|
|
20
|
+
*/
|
|
21
|
+
import { getEngine } from './engine.js';
|
|
22
|
+
import { levelForMode, runAsync } from './internal.js';
|
|
23
|
+
/**
|
|
24
|
+
* Compress `target` as a delta against `base`. The closer `target` is to
|
|
25
|
+
* `base`, the smaller the result. Decode with {@link applyDelta} and the same
|
|
26
|
+
* `base`.
|
|
27
|
+
*/
|
|
28
|
+
export async function compressDelta(base, target, opts) {
|
|
29
|
+
const e = await getEngine();
|
|
30
|
+
const level = levelForMode(opts, 1, 22, { speed: 3, balanced: 19, ratio: 22 });
|
|
31
|
+
return runAsync(() => {
|
|
32
|
+
e.setAux(base);
|
|
33
|
+
return e.zstdCompressDict(target, level);
|
|
34
|
+
}, opts, target.length);
|
|
35
|
+
}
|
|
36
|
+
/** Reconstruct the target bytes from `base` and a patch from {@link compressDelta}. */
|
|
37
|
+
export async function applyDelta(base, patch, opts) {
|
|
38
|
+
const e = await getEngine();
|
|
39
|
+
return runAsync(() => {
|
|
40
|
+
e.setAux(base);
|
|
41
|
+
return e.zstdDecompressDict(patch);
|
|
42
|
+
}, opts, patch.length);
|
|
43
|
+
}
|
|
44
|
+
//# sourceMappingURL=delta.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"delta.js","sourceRoot":"","sources":["../src/delta.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAGvD;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CAClC,IAAgB,EAChB,MAAkB,EAClB,IAAsB;IAEtB,MAAM,CAAC,GAAG,MAAM,SAAS,EAAE,CAAC;IAC5B,MAAM,KAAK,GAAG,YAAY,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC;IAC/E,OAAO,QAAQ,CAAC,GAAG,EAAE;QACpB,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QACf,OAAO,CAAC,CAAC,gBAAgB,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IAC1C,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;AACzB,CAAC;AAED,uFAAuF;AACvF,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,IAAgB,EAAE,KAAiB,EAAE,IAAwB;IAC7F,MAAM,CAAC,GAAG,MAAM,SAAS,EAAE,CAAC;IAC5B,OAAO,QAAQ,CAAC,GAAG,EAAE;QACpB,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QACf,OAAO,CAAC,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC;IACpC,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;AACxB,CAAC"}
|
package/dist/detect.d.ts
ADDED
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Format auto-detection from magic bytes.
|
|
3
|
+
*
|
|
4
|
+
* Recognizes the container/codec of a buffer by inspecting its header. Two
|
|
5
|
+
* groups are reported:
|
|
6
|
+
*
|
|
7
|
+
* - **Directly decompressible** by {@link import('./compress.js').decompress}:
|
|
8
|
+
* gzip, zlib, zstd.
|
|
9
|
+
* - **Recognized but not auto-decoded here** — ZIP and the standard external
|
|
10
|
+
* framings (tar, xz, 7z, standard bzip2, the LZ4 *frame*). These need a
|
|
11
|
+
* dedicated reader (\`@myrialabs/zipkit/zip\`, \`@myrialabs/zipkit/tar\`, …) or an explicit codec, so
|
|
12
|
+
* {@link import('./compress.js').decompress} points you at the right API
|
|
13
|
+
* rather than guessing.
|
|
14
|
+
*
|
|
15
|
+
* ZipKit's own brotli, snappy, raw LZ4 *block*, and length-prefixed lzma/bzip2
|
|
16
|
+
* streams have no leading magic and return `undefined`; decode them with an
|
|
17
|
+
* explicit codec via `decompressWith`.
|
|
18
|
+
*/
|
|
19
|
+
/**
|
|
20
|
+
* A format ZipKit can recognize from its header bytes. Only formats with a
|
|
21
|
+
* reliable leading signature are detectable; everything else needs an explicit
|
|
22
|
+
* codec via `decompressWith`.
|
|
23
|
+
*/
|
|
24
|
+
export type DetectedFormat = 'gzip' | 'zlib' | 'zstd' | 'zip' | 'tar' | 'xz' | '7z' | 'bzip2' | 'lz4-frame';
|
|
25
|
+
/** Whether {@link decompress} can reverse a detected format without extra API. */
|
|
26
|
+
export declare function isDirectlyDecompressible(fmt: DetectedFormat): boolean;
|
|
27
|
+
/**
|
|
28
|
+
* Identify the format of a buffer, or `undefined` if it has no recognizable
|
|
29
|
+
* signature.
|
|
30
|
+
*
|
|
31
|
+
* Detectable: **gzip, zlib, zstd, ZIP, tar, xz, 7z, standard bzip2, and the LZ4
|
|
32
|
+
* frame**. Headerless or ZipKit-framed codecs — brotli, snappy, the raw LZ4
|
|
33
|
+
* *block* written by {@link import('./codecs/lz4.js').lz4}, and the
|
|
34
|
+
* length-prefixed lzma/bzip2 streams ZipKit emits — have no leading magic and
|
|
35
|
+
* return `undefined`; decode them with an explicit codec via `decompressWith`.
|
|
36
|
+
*
|
|
37
|
+
* @example
|
|
38
|
+
* ```ts
|
|
39
|
+
* detectFormat(gzipBytes); // 'gzip'
|
|
40
|
+
* detectFormat(zipBytes); // 'zip'
|
|
41
|
+
* detectFormat(tarBytes); // 'tar'
|
|
42
|
+
* detectFormat(brotliBytes); // undefined
|
|
43
|
+
* ```
|
|
44
|
+
*/
|
|
45
|
+
export declare function detectFormat(data: Uint8Array): DetectedFormat | undefined;
|
|
46
|
+
//# sourceMappingURL=detect.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"detect.d.ts","sourceRoot":"","sources":["../src/detect.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH;;;;GAIG;AACH,MAAM,MAAM,cAAc,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,KAAK,GAAG,KAAK,GAAG,IAAI,GAAG,IAAI,GAAG,OAAO,GAAG,WAAW,CAAC;AAK5G,kFAAkF;AAClF,wBAAgB,wBAAwB,CAAC,GAAG,EAAE,cAAc,GAAG,OAAO,CAErE;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,UAAU,GAAG,cAAc,GAAG,SAAS,CAgDzE"}
|