compress-utils 0.11.2 → 0.12.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.
Files changed (37) hide show
  1. package/README.md +43 -113
  2. package/THIRD_PARTY_NOTICES.md +42 -8
  3. package/dist/algorithms/brotli/brotli.wasm +0 -0
  4. package/dist/algorithms/brotli/compress/brotli.wasm +0 -0
  5. package/dist/algorithms/brotli/decompress/brotli.wasm +0 -0
  6. package/dist/algorithms/bz2/bz2.wasm +0 -0
  7. package/dist/algorithms/bz2/compress/bz2.wasm +0 -0
  8. package/dist/algorithms/bz2/decompress/bz2.wasm +0 -0
  9. package/dist/algorithms/gzip/compress/gzip.wasm +0 -0
  10. package/dist/algorithms/gzip/decompress/gzip.wasm +0 -0
  11. package/dist/algorithms/gzip/gzip.wasm +0 -0
  12. package/dist/algorithms/lz4/compress/lz4.wasm +0 -0
  13. package/dist/algorithms/lz4/decompress/lz4.wasm +0 -0
  14. package/dist/algorithms/lz4/lz4.wasm +0 -0
  15. package/dist/algorithms/lzo/decompress/lzo.wasm +0 -0
  16. package/dist/algorithms/snappy/compress/snappy.wasm +0 -0
  17. package/dist/algorithms/snappy/decompress/snappy.wasm +0 -0
  18. package/dist/algorithms/snappy/snappy.wasm +0 -0
  19. package/dist/algorithms/xz/compress/xz.wasm +0 -0
  20. package/dist/algorithms/xz/decompress/xz.wasm +0 -0
  21. package/dist/algorithms/xz/xz.wasm +0 -0
  22. package/dist/algorithms/zlib/compress/zlib.wasm +0 -0
  23. package/dist/algorithms/zlib/decompress/zlib.wasm +0 -0
  24. package/dist/algorithms/zlib/zlib.wasm +0 -0
  25. package/dist/algorithms/zstd/compress/zstd.wasm +0 -0
  26. package/dist/algorithms/zstd/decompress/zstd.wasm +0 -0
  27. package/dist/algorithms/zstd/zstd.wasm +0 -0
  28. package/dist/core/dispatch.d.ts +2 -2
  29. package/dist/core/dispatch.d.ts.map +1 -1
  30. package/dist/core/dispatch.js +12 -17
  31. package/dist/core/dispatch.js.map +1 -1
  32. package/dist/core/loader.d.ts +3 -1
  33. package/dist/core/loader.d.ts.map +1 -1
  34. package/dist/core/loader.js +4 -1
  35. package/dist/core/loader.js.map +1 -1
  36. package/dist/wasm-source/resolve-node-source.mjs +2 -0
  37. package/package.json +6 -3
package/README.md CHANGED
@@ -5,7 +5,7 @@
5
5
  [![WASM build](https://img.shields.io/github/actions/workflow/status/dupontcyborg/compress-utils/build_and_test_wasm.yml?label=wasm)](https://github.com/dupontcyborg/compress-utils/actions/workflows/build_and_test_wasm.yml)
6
6
  [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
7
7
 
8
- Unified WebAssembly bindings for eight compression algorithms — Zstandard, Brotli, zlib, gzip, bzip2, LZ4, XZ/LZMA, and Snappy — over a single high-performance C core. Same API for every algorithm, in every JavaScript runtime, with tree-shakeable imports so bundlers ship only what you use.
8
+ One portable API for Zstandard, Brotli, zlib, gzip, bzip2, LZ4, XZ/LZMA and Snappy, plus raw DEFLATE, LZ4 blocks and LZO decoding, in every JavaScript runtime, with decompression ahead of or on par with every other JavaScript and WASM library we tested. Tree-shakeable per-algorithm imports with TypeScript types included, all backed by one C core compiled to WebAssembly.
9
9
 
10
10
  ## Installation
11
11
 
@@ -14,23 +14,7 @@ npm install compress-utils
14
14
  # or: pnpm add / yarn add / bun add / deno add npm:compress-utils
15
15
  ```
16
16
 
17
- ### CDN (no bundler)
18
-
19
- The package is published as ESM. You can pull it straight from a CDN, with no install step and no build step.
20
-
21
- ```html
22
- <script type="module">
23
- import { compress, decompress } from "https://esm.sh/compress-utils/zstd";
24
-
25
- const out = await compress(new TextEncoder().encode("hello"));
26
- </script>
27
- ```
28
-
29
- | CDN | Per-algo URL |
30
- |----------|-------------------------------------------------------------------------------|
31
- | esm.sh | `https://esm.sh/compress-utils/<algo>` |
32
- | jsDelivr | `https://cdn.jsdelivr.net/npm/compress-utils/dist/algorithms/<algo>/index.js` |
33
- | unpkg | `https://unpkg.com/compress-utils/dist/algorithms/<algo>/index.js` |
17
+ ESM only, with TypeScript types for every subpath and no system dependencies. Tested in CI on Node 20, 22 and 24, Bun, Deno 2.x and Chromium, Firefox and WebKit; it also loads from a CDN such as esm.sh ([CDN usage](https://github.com/dupontcyborg/compress-utils/blob/main/docs/bindings/wasm-advanced.md#cdn-no-bundler)).
34
18
 
35
19
  ## Quick start
36
20
 
@@ -45,7 +29,41 @@ const compressed = await compress(input, { level: 9 });
45
29
  const restored = await decompress(compressed);
46
30
  ```
47
31
 
48
- Available subpaths: `compress-utils/zstd`, `/brotli`, `/zlib`, `/bz2`, `/lz4`, `/xz`, `/snappy`, `/gzip`, plus the raw block formats `/deflate`, `/lz4_raw` and `/lzo/decompress`. The surface is identical across all of them. Each also has `/<algo>/decompress` and `/<algo>/compress` variants that ship only one direction for a much smaller `.wasm`; see [Bundle size](#bundle-size).
32
+ Available subpaths: `compress-utils/zstd`, `/brotli`, `/zlib`, `/bz2`, `/lz4`, `/xz`, `/snappy`, `/gzip`, plus the raw block formats `/deflate`, `/lz4_raw` and `/lzo/decompress`. The surface is identical across all of them. Each also has `/<algo>/decompress` and `/<algo>/compress` variants that ship only one direction for a much smaller `.wasm`; see [bundle size](https://github.com/dupontcyborg/compress-utils/blob/main/docs/bindings/wasm-advanced.md#bundle-size).
33
+
34
+ ## Performance
35
+
36
+ <!-- bench:start -->
37
+ <picture>
38
+ <source media="(prefers-color-scheme: dark)" srcset="https://raw.githubusercontent.com/dupontcyborg/compress-utils/main/docs/benchmarks/img/readme-wasm-dark.png">
39
+ <img src="https://raw.githubusercontent.com/dupontcyborg/compress-utils/main/docs/benchmarks/img/readme-wasm-light.png" alt="Compression ratio against throughput in MB/s on a log axis for compress-utils for JavaScript and brotli-wasm, fflate, fzstd, lz4js, pako, snappyjs and zstd-wasm, one row per algorithm (zstd, brotli, zlib, xz, lz4, snappy, bz2) with compress on the left and decompress on the right, dickens one-shot on AWS c8g.xlarge (Graviton4, arm64), 2026-10-29" width="830">
40
+ </picture>
41
+
42
+ compress-utils for JavaScript against other JavaScript compression libraries: speed against compression ratio.
43
+
44
+ Measured on AWS c8g.xlarge (Graviton4), dickens (10.2 MB of text), one-shot, 2026-10-29.
45
+
46
+ Full results [here](https://github.com/dupontcyborg/compress-utils/blob/main/docs/benchmarks/wasm.md).
47
+ <!-- bench:end -->
48
+
49
+ <!-- size:start -->
50
+ ### Bundle size
51
+
52
+ Gzipped size in KiB of each algorithm's `.wasm` module (`gzip -9`, measured on the build of 2026-10-29): the default import ships both directions, while the `/compress` and `/decompress` subpaths ship only one.
53
+
54
+ | Algorithm | Compress only | Decompress only | Both |
55
+ | :--- | ---: | ---: | ---: |
56
+ | zstd | 100.2 | 38.3 | 124.3 |
57
+ | brotli | 152.1 | 85.0 | 168.8 |
58
+ | zlib | 35.5 | 31.5 | 45.1 |
59
+ | gzip | 35.2 | 31.4 | 44.9 |
60
+ | xz | 52.2 | 47.0 | 64.8 |
61
+ | lz4 | 34.2 | 20.3 | 43.4 |
62
+ | bz2 | 25.5 | 23.1 | 35.7 |
63
+ | snappy | 12.2 | 15.1 | 17.2 |
64
+
65
+ Each algorithm is a separate module and unused code is tree-shaken, so a page pays only for the algorithms and directions it imports. How the modules were made smaller: [wasm-size.md](https://github.com/dupontcyborg/compress-utils/blob/main/docs/wasm-size.md).
66
+ <!-- size:end -->
49
67
 
50
68
  ## Supported algorithms
51
69
 
@@ -67,11 +85,11 @@ Available subpaths: `compress-utils/zstd`, `/brotli`, `/zlib`, `/bz2`, `/lz4`, `
67
85
  | LZO1X | `compress-utils/lzo/decompress` | Raw LZO1X block (decompression only) |
68
86
  <!-- END:algorithms -->
69
87
 
70
- Imports are independent: `import "compress-utils/zstd"` and `import "compress-utils/brotli"` pull in two separate `.wasm` modules, not a combined bundle. Files are marked `"sideEffects": false` so unused exports are tree-shaken aggressively. For per-module `.wasm` sizes, and the smaller decode-only and encode-only builds, see [Bundle size](#bundle-size).
88
+ Imports are independent: `import "compress-utils/zstd"` and `import "compress-utils/brotli"` pull in two separate `.wasm` modules, not a combined bundle. Files are marked `"sideEffects": false` so unused exports are tree-shaken aggressively. For per-module `.wasm` sizes, and the smaller decode-only and encode-only builds, see [bundle size](https://github.com/dupontcyborg/compress-utils/blob/main/docs/bindings/wasm-advanced.md#bundle-size).
71
89
 
72
90
  ### Raw blocks and output capacity
73
91
 
74
- Raw block formats such as those inside Parquet and ORC pages don't record their decompressed size. Pass `expectedSize`, an upper bound on the output, and the result holds only the bytes actually decoded:
92
+ Raw block formats such as those inside Parquet and ORC pages don't record their decompressed size, so pass `expectedSize`, an upper bound on the output; the result holds only the bytes actually decoded. More in the [advanced guide](https://github.com/dupontcyborg/compress-utils/blob/main/docs/bindings/wasm-advanced.md#raw-blocks-and-output-capacity).
75
93
 
76
94
  ```ts
77
95
  import { decompress } from "compress-utils/lz4_raw";
@@ -79,8 +97,6 @@ import { decompress } from "compress-utils/lz4_raw";
79
97
  const page = await decompress(block, { expectedSize: uncompressedPageSize });
80
98
  ```
81
99
 
82
- Without `expectedSize`, `lz4_raw` blocks are decoded with the incremental stream decoder, which is much slower, so pass it when you know the size. Every other algorithm accepts it too, which skips a sizing pass and decodes straight into a buffer of that size.
83
-
84
100
  ## Streaming
85
101
 
86
102
  ### Web Streams
@@ -105,23 +121,7 @@ chunks.push(cs.finish());
105
121
  // cs is destroyed automatically on scope exit (TS 5.2+ / Node 22+).
106
122
  ```
107
123
 
108
- If `using` isn't available in your toolchain, call `cs.destroy()` explicitly, or rely on the GC backstop: a `FinalizationRegistry` frees the C-side handle eventually.
109
-
110
- ### Stopping at the end of a stream
111
-
112
- By default a decoder decodes concatenated frames (zstd, LZ4, gzip, xz) as one stream. To read one compressed stream followed by other data, such as the next message on a socket or a container's own bytes, create the decoder with `{ singleStream: true }`. It stops at the end of the first frame, sets `eof`, and returns the input bytes written after the end in `unusedData`:
113
-
114
- ```ts
115
- import { createDecompressStream } from "compress-utils/zstd";
116
-
117
- using ds = await createDecompressStream({ singleStream: true });
118
- const message = ds.write(received); // decodes up to the end of the frame
119
- if (ds.eof) {
120
- const rest = ds.unusedData; // bytes after the frame, e.g. the next message
121
- }
122
- ```
123
-
124
- Once `eof` is true, writing more data throws `CompressError` with code `10` (stream finished) and leaves `unusedData` unchanged; empty writes and `finish()` return empty output. Leading zstd/LZ4 skippable frames are skipped. Snappy emits nothing until its block is complete. Raw LZ4 (which has no end marker) and LZO don't support it and throw `CompressError` with code `5`. `decompressionStream()` doesn't take the option: a `TransformStream` has no way to hand back the bytes after the end, so use `createDecompressStream` for this.
124
+ Without `using`, call `cs.destroy()` explicitly. To stop at the end of one frame and get the bytes after it, create the decoder with `{ singleStream: true }`; see [stopping at the end of a stream](https://github.com/dupontcyborg/compress-utils/blob/main/docs/bindings/wasm-advanced.md#stopping-at-the-end-of-a-stream).
125
125
 
126
126
  ## Compression levels
127
127
 
@@ -134,7 +134,7 @@ await compress(input, { level: 10 }); // smallest
134
134
 
135
135
  ## Errors and limits
136
136
 
137
- Decompressing data you don't control? See [Untrusted input](https://github.com/dupontcyborg/compress-utils#untrusted-input) for what the library guards against and which limits to set.
137
+ Decompression is bounded by default: output is capped at 1 GiB, so a hostile or corrupt input cannot exhaust memory. Change the cap with `setMaxDecompressedSize`, and see the [untrusted input guidance](https://github.com/dupontcyborg/compress-utils#untrusted-input) in the project README for what else to set when you decompress data you don't control.
138
138
 
139
139
  Every failure throws a `CompressError`, which carries the underlying C status code and the algorithm name:
140
140
 
@@ -148,81 +148,11 @@ try {
148
148
  }
149
149
  ```
150
150
 
151
- `await version()` returns the library version (for example `"0.11.2"`), and `await setMaxDecompressedSize(bytes)` caps `decompress` for every algorithm (default 1 GiB; `0` = unbounded). Both are exported from every subpath that includes decompression. Streams have no limit unless you pass one: `createDecompressStream({ maxOutput })` and `decompressionStream({ maxOutput })` throw a `CompressError` with code `SizeLimit` once the output passes it.
152
-
153
- ## Preloading and synchronous calls
154
-
155
- Each algorithm and direction-specific subpath exports `preload()`. It loads and initializes that subpath's WASM module once, and concurrent calls share initialization. A failed initialization can be retried. No codec work is performed by preload.
156
-
157
- ```ts
158
- import { preload, compressSync, decompressSync } from "compress-utils/zlib";
159
- await preload();
160
- const compressed = compressSync(new TextEncoder().encode("hello"));
161
- const restored = decompressSync(compressed);
162
- ```
163
-
164
- `compressSync`, `decompressSync`, `createCompressStreamSync`, and `createDecompressStreamSync` are available for the directions exposed by the subpath. They throw with a `preload()` instruction before initialization completes. Existing asynchronous APIs initialize automatically and also enable subsequent synchronous calls. Initializing one subpath does not initialize another, because encoder and decoder subpaths use different WASM modules.
151
+ `await version()` returns the library version (for example `"0.12.1"`), and `await setMaxDecompressedSize(bytes)` caps `decompress` for every algorithm (default 1 GiB; `0` = unbounded). Streams have no limit unless you pass one: `createDecompressStream({ maxOutput })` and `decompressionStream({ maxOutput })` throw a `CompressError` once the output passes it.
165
152
 
166
153
  ## Concurrency
167
154
 
168
- Each WASM module instance runs on the thread that loaded it, so nothing is shared between workers: every Worker initializes its own instance and keeps its own streams. Synchronous calls block the calling thread, so run expensive ones in a Worker. A stream handle holds state inside its module instance, so feed each stream from one logical flow rather than from interleaved callers.
169
-
170
- ## Bundle size
171
-
172
- Importing `compress-utils/<algo>` gives you the **full** codec, compress *and* decompress. If you only need one direction (a browser that just *decompresses* fetched assets is the common case), import a directional subpath and the other half is dead-stripped from the `.wasm` entirely:
173
-
174
- ```ts
175
- // decoder only, 36 KB gzipped for zstd
176
- import { decompress } from "compress-utils/zstd/decompress";
177
-
178
- // or, encoder only:
179
- import { compress } from "compress-utils/zstd/compress";
180
- ```
181
-
182
- - **`/decompress`** exposes `decompress`, `createDecompressStream`, `decompressionStream`, `setMaxDecompressedSize` and `version`.
183
- - **`/compress`** exposes `compress`, `createCompressStream`, `compressionStream` and `version`.
184
- - The default subpath keeps **both**.
185
-
186
- Gzipped `.wasm` sizes:
187
-
188
- | algo | full | decompress-only | compress-only |
189
- |--------|-----:|----------------:|--------------:|
190
- | zstd | 128K | 36K | 106K |
191
- | brotli | 169K | 84K | 154K |
192
- | lz4 | 39K | 15K | 35K |
193
- | bz2 | 33K | 22K | 25K |
194
- | xz | 62K | 43K | 51K |
195
- | zlib | 33K | 25K | 26K |
196
- | snappy | 36K | 32K | 28K |
197
- | gzip | 80K | 52K | 60K |
198
-
199
- The `.wasm` is the bulk of what ships. The JS glue is a few KB, shared, and tree-shaken to the methods you import.
200
-
201
- ## Runtime support
202
-
203
- Tested in CI on every release:
204
-
205
- | Runtime | Status |
206
- |------------------------------------------|--------|
207
- | Node 20, 22, 24 | ✅ |
208
- | Bun | ✅ |
209
- | Deno 2.x | ✅ |
210
- | Chromium / Firefox / WebKit (Playwright) | ✅ |
211
-
212
- ## TypeScript
213
-
214
- The package is TypeScript-first. `.d.ts` files ship alongside the JS for every subpath, so no `@types/` package is needed.
215
-
216
- ```ts
217
- import { compress, type CompressOptions, type CompressError } from "compress-utils/zstd";
218
-
219
- const opts: CompressOptions = { level: 7 };
220
- const compressed: Uint8Array = await compress(input, opts);
221
- ```
222
-
223
- ## Performance
224
-
225
- Overhead versus native C is **0.60–0.84× on compress and 0.50–1.00× on decompress**. WASM is the slowest binding across the board: zstd and brotli decode are the worst cases because they lean on native SIMD, while lz4 decode is memory-bound and costs nothing extra in the sandbox. The reasons to choose this binding are portability, one API in every runtime, and the small per-codec bundles above, rather than beating native `node:zlib`. Compression ratio is byte-identical to every other binding. See the [language comparison](https://github.com/dupontcyborg/compress-utils/blob/main/benchmarks/README.md#language-comparison) for methodology and the full chart.
155
+ Each WASM module instance runs on the thread that loaded it, so nothing is shared between workers: every Worker initializes its own instance and keeps its own streams. Synchronous calls block the calling thread, so run expensive ones in a Worker; see [preloading and synchronous calls](https://github.com/dupontcyborg/compress-utils/blob/main/docs/bindings/wasm-advanced.md#preloading-and-synchronous-calls).
226
156
 
227
157
  ## License
228
158
 
@@ -70,15 +70,15 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
70
70
  THE SOFTWARE.
71
71
  ```
72
72
 
73
- ## zlib
73
+ ## zlib-ng
74
74
 
75
- - **Source**: https://github.com/madler/zlib at `v1.3.2` (`third_party/zlib/`)
76
- - **License**: Zlib
75
+ - **Source**: https://github.com/zlib-ng/zlib-ng at `2.3.3` (`third_party/zlib/`), built in zlib-compatible mode. Provides zlib, gzip and raw DEFLATE.
76
+ - **License**: Zlib. Contributors named in individual file headers (Intel, Cloudflare and others) license their changes under the same terms.
77
77
 
78
78
  ```text
79
79
  Copyright notice:
80
80
 
81
- (C) 1995-2026 Jean-loup Gailly and Mark Adler
81
+ (C) 1995-2024 Jean-loup Gailly and Mark Adler
82
82
 
83
83
  This software is provided 'as-is', without any express or implied
84
84
  warranty. In no event will the authors be held liable for any damages
@@ -151,7 +151,7 @@ bzip2/libbzip2 version 1.0.8 of 13 July 2019
151
151
 
152
152
  ## LZ4
153
153
 
154
- - **Source**: https://github.com/lz4/lz4 at `v1.10.0` (`third_party/lz4/`)
154
+ - **Source**: https://github.com/lz4/lz4 at `v1.11.0` (`third_party/lz4/`)
155
155
  - **License**: BSD-2-Clause
156
156
  - **Note**: Only the LZ4 library (`lib/`) is included; this is its license.
157
157
 
@@ -202,10 +202,44 @@ NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
202
202
  CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
203
203
  ```
204
204
 
205
- ## snappy-c
205
+ ## snappy (first-party core)
206
206
 
207
- - **Source**: https://github.com/andikleen/snappy-c at `fef67ac6effb40c83fb5e37eaf243381fa056f9b` (`third_party/snappy/`)
208
- - **License**: BSD-3-Clause
207
+ - **Source**: `src/algorithms/snappy/core/` — original code that implements the Snappy raw block format; its design follows Google's snappy (https://github.com/google/snappy) and Andi Kleen's C port of it (https://github.com/andikleen/snappy-c at `fef67ac6effb40c83fb5e37eaf243381fa056f9b`, the codec it replaced). See `src/algorithms/snappy/core/PROVENANCE.md`.
208
+ - **License**: BSD-3-Clause (Google, Intel); the original parts are under this project's MIT license
209
+
210
+ Google snappy:
211
+
212
+ ```text
213
+ Copyright 2005 Google Inc. All Rights Reserved.
214
+
215
+ Redistribution and use in source and binary forms, with or without
216
+ modification, are permitted provided that the following conditions are
217
+ met:
218
+
219
+ * Redistributions of source code must retain the above copyright
220
+ notice, this list of conditions and the following disclaimer.
221
+ * Redistributions in binary form must reproduce the above
222
+ copyright notice, this list of conditions and the following disclaimer
223
+ in the documentation and/or other materials provided with the
224
+ distribution.
225
+ * Neither the name of Google Inc. nor the names of its
226
+ contributors may be used to endorse or promote products derived from
227
+ this software without specific prior written permission.
228
+
229
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
230
+ "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
231
+ LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
232
+ A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
233
+ OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
234
+ SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
235
+ LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
236
+ DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
237
+ THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
238
+ (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
239
+ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
240
+ ```
241
+
242
+ snappy-c:
209
243
 
210
244
  ```text
211
245
  The snappy-c code is under the same license as the original snappy source
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
@@ -27,7 +27,7 @@ export declare class Dispatcher {
27
27
  setMaxDecompressedSize(bytes: number): void;
28
28
  compress(input: Uint8Array, opts?: CompressOptions): Uint8Array;
29
29
  decompress(input: Uint8Array, opts?: DecompressOptions): Uint8Array;
30
- private decompressStreaming;
30
+ private decompressAlloc;
31
31
  private tryProbeSize;
32
32
  createCompressStream(opts?: CompressOptions): CompressStream;
33
33
  createDecompressStream(opts?: DecompressStreamOptions): DecompressStream;
@@ -126,7 +126,7 @@ export interface AlgorithmBindings {
126
126
  */
127
127
  setMaxDecompressedSize(bytes: number): Promise<void>;
128
128
  }
129
- export type WasmResolver = (url: URL) => Promise<BufferSource | Response | PromiseLike<Response>>;
129
+ export type WasmResolver = (url: URL) => Promise<BufferSource | Response | PromiseLike<Response> | WebAssembly.Module>;
130
130
  export declare function createBindings(algorithm: Algorithm, name: AlgorithmName, wasmUrl: URL, resolveWasm: WasmResolver): AlgorithmBindings;
131
131
  export {};
132
132
  //# sourceMappingURL=dispatch.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"dispatch.d.ts","sourceRoot":"","sources":["../../src/core/dispatch.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"dispatch.d.ts","sourceRoot":"","sources":["../../src/core/dispatch.ts"],"names":[],"mappings":"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"}
@@ -94,9 +94,8 @@ export class Dispatcher {
94
94
  const outSize = opts.expectedSize ?? this.tryProbeSize(arena, inPtr, inLen);
95
95
  if (outSize === undefined) {
96
96
  // Wire format doesn't carry size (bz2, brotli, raw deflate,
97
- // current xz size_hint impl). Fall through to a
98
- // streaming decode so the one-shot API still works.
99
- return this.decompressStreaming(input);
97
+ // an xz input that isn't exactly one Stream). The core grows its own buffer, so the one-shot API still works.
98
+ return this.decompressAlloc(arena, inPtr, inLen);
100
99
  }
101
100
  const outPtr = arena.alloc(outSize, this.algorithmName);
102
101
  const outLenPtr = arena.alloc(4, this.algorithmName);
@@ -109,23 +108,19 @@ export class Dispatcher {
109
108
  arena.freeAll();
110
109
  }
111
110
  }
112
- /* Bounded by the same cap as the one-shot path. */
113
- decompressStreaming(input) {
114
- const stream = this.createDecompressStream({
115
- maxOutput: this.exports.cu_get_max_decompressed_size(),
116
- });
111
+ /* Decodes the input already staged at `inPtr` into a buffer the core grows (bounded by the same cap as the one-shot path), then copies the result out of the heap once. */
112
+ decompressAlloc(arena, inPtr, inLen) {
113
+ const outPP = arena.alloc(8, this.algorithmName);
114
+ this.writeU32(outPP, 0);
115
+ this.writeU32(outPP + 4, 0);
116
+ const status = this.exports.cu_decompress_alloc(this.algorithm, inPtr, inLen, outPP, outPP + 4);
117
+ checkStatus(this.exports, status, this.algorithmName);
118
+ const outPtr = this.readU32(outPP);
117
119
  try {
118
- const body = stream.write(input);
119
- const tail = stream.finish();
120
- if (tail.byteLength === 0)
121
- return body;
122
- const out = new Uint8Array(body.byteLength + tail.byteLength);
123
- out.set(body, 0);
124
- out.set(tail, body.byteLength);
125
- return out;
120
+ return this.readBytes(outPtr, this.readU32(outPP + 4));
126
121
  }
127
122
  finally {
128
- stream.destroy();
123
+ this.exports.cu_buffer_free(outPtr);
129
124
  }
130
125
  }
131
126
  tryProbeSize(arena, inPtr, inLen) {
@@ -1 +1 @@
1
- {"version":3,"file":"dispatch.js","sourceRoot":"","sources":["../../src/core/dispatch.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"dispatch.js","sourceRoot":"","sources":["../../src/core/dispatch.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,UAAU,EAAoB,MAAM,aAAa,CAAC;AACvF,OAAO,EAEH,aAAa,EACb,MAAM,GAMT,MAAM,YAAY,CAAC;AAEpB,MAAM,aAAa,GAAG,CAAC,CAAC;AACxB,MAAM,kBAAkB,GAAG,EAAE,GAAG,IAAI,CAAC;AACrC;;;yDAGyD;AACzD,MAAM,oBAAoB,GAAG,CAAC,IAAI,EAAE,CAAC;AACrC,2CAA2C;AAC3C,MAAM,cAAc,GAAG,GAAG,CAAC;AAE3B,oEAAoE;AACpE,MAAM,KAAK;IACU,OAAO,CAAc;IACrB,IAAI,GAAa,EAAE,CAAC;IAErC,YAAY,OAAoB;QAC5B,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IAC3B,CAAC;IAED,KAAK,CAAC,KAAa,EAAE,QAAuB;QACxC,+DAA+D;QAC/D,gEAAgE;QAChE,6DAA6D;QAC7D,gEAAgE;QAChE,uDAAuD;QACvD,IAAI,KAAK,KAAK,CAAC;YAAE,KAAK,GAAG,CAAC,CAAC;QAC3B,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QACzC,IAAI,GAAG,KAAK,CAAC,EAAE,CAAC;YACZ,MAAM,IAAI,aAAa,CAAC,MAAM,CAAC,GAAG,EAAE,QAAQ,EAAE,YAAY,KAAK,iBAAiB,CAAC,CAAC;QACtF,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACpB,OAAO,GAAG,CAAC;IACf,CAAC;IAED,OAAO;QACH,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,IAAI;YAAE,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QACnD,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;IACzB,CAAC;CACJ;AAED,MAAM,OAAO,UAAU;IACV,SAAS,CAAY;IACrB,aAAa,CAAgB;IACtC,gBAAgB,CAAU,OAAO,CAAc;IAE/C,YAAY,OAAoB,EAAE,SAAoB,EAAE,aAA4B;QAChF,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;QACnC,IAAI,OAAO,CAAC,sBAAsB,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC;YAClD,MAAM,IAAI,aAAa,CACnB,MAAM,CAAC,eAAe,EACtB,aAAa,EACb,cAAc,aAAa,uCAAuC,CACrE,CAAC;QACN,CAAC;IACL,CAAC;IAED,OAAO;QACH,OAAO,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC;IACzE,CAAC;IAED,sBAAsB,CAAC,KAAa;QAChC,IAAI,CAAC,OAAO,CAAC,4BAA4B,EAAE,CAAC,KAAK,CAAC,CAAC;IACvD,CAAC;IAED,oCAAoC;IAEpC,QAAQ,CAAC,KAAiB,EAAE,IAAI,GAAoB,EAAE;QAClD,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,IAAI,aAAa,CAAC;QAC1C,MAAM,KAAK,GAAG,KAAK,CAAC,UAAU,CAAC;QAC/B,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;QAEpE,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACtC,IAAI,CAAC;YACD,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;YACrD,MAAM,MAAM,GAAG,KAAK,CAAC,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;YACtD,MAAM,SAAS,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;YAErD,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;YAC9B,IAAI,CAAC,QAAQ,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;YAChC,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,CACnC,IAAI,CAAC,SAAS,EACd,KAAK,EACL,KAAK,EACL,MAAM,EACN,SAAS,EACT,KAAK,CACR,CAAC;YACF,WAAW,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;YACtD,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC;QAC3D,CAAC;gBAAS,CAAC;YACP,KAAK,CAAC,OAAO,EAAE,CAAC;QACpB,CAAC;IACL,CAAC;IAED,UAAU,CAAC,KAAiB,EAAE,IAAI,GAAsB,EAAE;QACtD,MAAM,KAAK,GAAG,KAAK,CAAC,UAAU,CAAC;QAC/B,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACtC,IAAI,CAAC;YACD,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;YACrD,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;YAE9B,MAAM,OAAO,GAAG,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;YAC5E,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;gBACxB,4DAA4D;gBAC5D,8GAA8G;gBAC9G,OAAO,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;YACrD,CAAC;YAED,MAAM,MAAM,GAAG,KAAK,CAAC,KAAK,CAAC,OAAO,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;YACxD,MAAM,SAAS,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;YACrD,IAAI,CAAC,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;YAClC,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CACrC,IAAI,CAAC,SAAS,EACd,KAAK,EACL,KAAK,EACL,MAAM,EACN,SAAS,CACZ,CAAC;YACF,WAAW,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;YACtD,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC;QAC3D,CAAC;gBAAS,CAAC;YACP,KAAK,CAAC,OAAO,EAAE,CAAC;QACpB,CAAC;IACL,CAAC;IAED,2KAA2K;IACnK,eAAe,CAAC,KAAY,EAAE,KAAa,EAAE,KAAa;QAC9D,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;QACjD,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;QACxB,IAAI,CAAC,QAAQ,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;QAC5B,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,mBAAmB,CAC3C,IAAI,CAAC,SAAS,EACd,KAAK,EACL,KAAK,EACL,KAAK,EACL,KAAK,GAAG,CAAC,CACZ,CAAC;QACF,WAAW,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;QACtD,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QACnC,IAAI,CAAC;YACD,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC;QAC3D,CAAC;gBAAS,CAAC;YACP,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;QACxC,CAAC;IACL,CAAC;IAEO,YAAY,CAAC,KAAY,EAAE,KAAa,EAAE,KAAa;QAC3D,MAAM,OAAO,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;QACnD,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;QAC1B,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,uBAAuB,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;QAC3F,IAAI,MAAM,KAAK,MAAM,CAAC,EAAE;YAAE,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QACvD,IAAI,MAAM,KAAK,MAAM,CAAC,WAAW;YAAE,OAAO,SAAS,CAAC;QACpD,WAAW,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;QACtD,OAAO,SAAS,CAAC;IACrB,CAAC;IAED,qCAAqC;IAErC,oBAAoB,CAAC,IAAI,GAAoB,EAAE;QAC3C,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,IAAI,aAAa,CAAC;QAC1C,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACtC,IAAI,CAAC;YACD,MAAM,QAAQ,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;YACpD,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;YAC3B,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,yBAAyB,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;YACvF,WAAW,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;YACtD,OAAO,IAAI,cAAc,CAAC,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC;QAC5D,CAAC;gBAAS,CAAC;YACP,KAAK,CAAC,OAAO,EAAE,CAAC;QACpB,CAAC;IACL,CAAC;IAED,sBAAsB,CAAC,IAAI,GAA4B,EAAE;QACrD,MAAM,MAAM,GAAG,IAAI,CAAC,YAAY,KAAK,IAAI,CAAC;QAC1C,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACtC,IAAI,CAAC;YACD,MAAM,QAAQ,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;YACpD,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;YAC3B,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,8BAA8B,CACtD,IAAI,CAAC,SAAS,EACd,MAAM,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,EAC3B,QAAQ,CACX,CAAC;YACF,WAAW,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;YACtD,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;YACtC,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;gBACjB,4DAA4D;gBAC5D,4CAA4C;gBAC5C,IAAI,CAAC,OAAO,CAAC,mCAAmC,CAC5C,MAAM,EACN,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,EAAE,UAAU,CAAC,CACvC,CAAC;YACN,CAAC;YACD,OAAO,IAAI,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;QACtD,CAAC;gBAAS,CAAC;YACP,KAAK,CAAC,OAAO,EAAE,CAAC;QACpB,CAAC;IACL,CAAC;IAED,qEAAqE;IAErE,gBAAgB,CAAC,UAAU,CAAC,GAAW,EAAE,GAAe;QACpD,IAAI,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,EAAE,GAAG,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC7E,CAAC;IACD,gBAAgB,CAAC,SAAS,CAAC,GAAW,EAAE,GAAW;QAC/C,OAAO,IAAI,UAAU,CAAC,IAAI,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;IAChF,CAAC;IACD,gBAAgB,CAAC,QAAQ,CAAC,GAAW,EAAE,KAAa;QAChD,IAAI,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,GAAG,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;IACzE,CAAC;IACD,gBAAgB,CAAC,OAAO,CAAC,GAAW;QAChC,OAAO,IAAI,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;IACzE,CAAC;IACD,gBAAgB,CAAC,QAAQ;QACrB,OAAO,IAAI,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACnC,CAAC;CACJ;AAuBD,MAAM,eAAe,GAAG,IAAI,oBAAoB,CAAgB,CAAC,CAAC,EAAE,EAAE;IAClE,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC;QAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;AAC5C,CAAC,CAAC,CAAC;AAEH,MAAe,UAAU;IACF,UAAU,CAAa;IAChC,MAAM,CAAS;IACf,QAAQ,GAAG,KAAK,CAAC;IACV,OAAO,CAAgB;IAExC,YAAY,UAAsB,EAAE,MAAc,EAAE,SAAmC;QACnF,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,OAAO,GAAG,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC;QAC9C,eAAe,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IACvD,CAAC;IAES,UAAU;QAChB,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACpB,MAAM,IAAI,aAAa,CACnB,MAAM,CAAC,WAAW,EAClB,IAAI,CAAC,UAAU,CAAC,aAAa,EAC7B,2BAA2B,CAC9B,CAAC;QACN,CAAC;IACL,CAAC;IAED,OAAO;QACH,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACpB,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAClC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;YAChB,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC;YACxB,eAAe,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QACrC,CAAC;IACL,CAAC;IAED,iEAAiE;IACjE,CAAC,MAAM,CAAC,OAAO,CAAC;QACZ,IAAI,CAAC,OAAO,EAAE,CAAC;IACnB,CAAC;CACJ;AAED,MAAM,OAAO,cAAe,SAAQ,UAAU;IAC1C,YAAY,UAAsB,EAAE,MAAc;QAC9C,KAAK,CAAC,UAAU,EAAE,MAAM,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,0BAA0B,CAAC,CAAC,CAAC,CAAC,CAAC;IACvF,CAAC;IAED,KAAK,CAAC,KAAiB;QACnB,IAAI,CAAC,UAAU,EAAE,CAAC;QAClB,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAChB,MAAM,IAAI,aAAa,CACnB,MAAM,CAAC,cAAc,EACrB,IAAI,CAAC,UAAU,CAAC,aAAa,EAC7B,oBAAoB,CACvB,CAAC;QACN,CAAC;QACD,OAAO,KAAK,CAAC,IAAI,CAAC,UAAU,EAAE,KAAK,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,EAAE,CACrE,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,wBAAwB,CAC5C,IAAI,CAAC,MAAM,EACX,KAAK,EACL,KAAK,EACL,MAAM,EACN,SAAS,CACZ,CACJ,CAAC;IACN,CAAC;IAED;;;;;OAKG;IACH,KAAK;QACD,IAAI,CAAC,UAAU,EAAE,CAAC;QAClB,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAChB,MAAM,IAAI,aAAa,CACnB,MAAM,CAAC,cAAc,EACrB,IAAI,CAAC,UAAU,CAAC,aAAa,EAC7B,oBAAoB,CACvB,CAAC;QACN,CAAC;QACD,OAAO,KAAK,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,EAAE,CAAC,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,EAAE,CACjE,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,wBAAwB,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,CAAC,CACnF,CAAC;IACN,CAAC;IAED,MAAM;QACF,IAAI,CAAC,UAAU,EAAE,CAAC;QAClB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QACrB,OAAO,KAAK,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,EAAE,CAAC,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,EAAE,CACjE,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,yBAAyB,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,CAAC,CACpF,CAAC;IACN,CAAC;CACJ;AAED,MAAM,OAAO,gBAAiB,SAAQ,UAAU;IAC3B,MAAM,CAAU;IACzB,KAAK,GAAG,KAAK,CAAC;IACd,MAAM,GAAe,IAAI,UAAU,CAAC,CAAC,CAAC,CAAC;IAE/C,YAAY,UAAsB,EAAE,MAAc,EAAE,MAAM,GAAG,KAAK;QAC9D,KAAK,CAAC,UAAU,EAAE,MAAM,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,4BAA4B,CAAC,CAAC,CAAC,CAAC,CAAC;QACrF,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACzB,CAAC;IAED;;;;OAIG;IACH,IAAI,GAAG;QACH,OAAO,IAAI,CAAC,KAAK,CAAC;IACtB,CAAC;IAED;;;OAGG;IACH,IAAI,UAAU;QACV,4DAA4D;QAC5D,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;IAC/B,CAAC;IAED,KAAK,CAAC,KAAiB;QACnB,IAAI,CAAC,UAAU,EAAE,CAAC;QAClB,MAAM,GAAG,GAAG,KAAK,CAAC,IAAI,CAAC,UAAU,EAAE,KAAK,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,EAAE,CAC1E,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,0BAA0B,CAC9C,IAAI,CAAC,MAAM,EACX,KAAK,EACL,KAAK,EACL,MAAM,EACN,SAAS,CACZ,CACJ,CAAC;QACF,+CAA+C;QAC/C,IAAI,CAAC,QAAQ,EAAE,CAAC;QAChB,OAAO,GAAG,CAAC;IACf,CAAC;IAED,MAAM;QACF,IAAI,CAAC,UAAU,EAAE,CAAC;QAClB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QACrB,MAAM,GAAG,GAAG,KAAK,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,EAAE,CAAC,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,EAAE,CACtE,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,2BAA2B,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,CAAC,CACtF,CAAC;QACF,IAAI,CAAC,QAAQ,EAAE,CAAC;QAChB,OAAO,GAAG,CAAC;IACf,CAAC;IAED;uDACmD;IAC3C,QAAQ;QACZ,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO;QAC5D,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC;QACxC,IAAI,OAAO,CAAC,wBAAwB,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC;YAAE,OAAO;QAChE,MAAM,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC;QACzC,IAAI,CAAC;YACD,MAAM,MAAM,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;YAC7D,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;YAC3D,MAAM,MAAM,GAAG,OAAO,CAAC,2BAA2B,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;YAC9E,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;YAC5D,MAAM,GAAG,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YAC1C,IAAI,CAAC,MAAM;gBACP,GAAG,GAAG,CAAC;oBACH,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,GAAG,CAAC;oBACjE,CAAC,CAAC,IAAI,UAAU,CAAC,CAAC,CAAC,CAAC;YAC5B,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;QACtB,CAAC;gBAAS,CAAC;YACP,KAAK,CAAC,OAAO,EAAE,CAAC;QACpB,CAAC;IACL,CAAC;CACJ;AAED;;;;GAIG;AACH,SAAS,KAAK,CACV,UAAsB,EACtB,KAAwB,EACxB,IAAiF;IAEjF,MAAM,KAAK,GAAG,UAAU,CAAC,QAAQ,EAAE,CAAC;IACpC,MAAM,MAAM,GAAiB,EAAE,CAAC;IAChC,IAAI,KAAK,GAAG,CAAC,CAAC;IAEd,IAAI,CAAC;QACD,MAAM,KAAK,GAAG,KAAK,EAAE,UAAU,IAAI,CAAC,CAAC;QACrC,MAAM,MAAM,GAAG,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,EAAE,UAAU,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC5E,IAAI,MAAM,KAAK,CAAC,IAAI,KAAK;YAAE,UAAU,CAAC,UAAU,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;QAEhE,MAAM,MAAM,GAAG,KAAK,CAAC,KAAK,CAAC,kBAAkB,EAAE,UAAU,CAAC,aAAa,CAAC,CAAC;QACzE,MAAM,SAAS,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,UAAU,CAAC,aAAa,CAAC,CAAC;QAE3D,IAAI,KAAK,GAAG,MAAM,CAAC;QACnB,IAAI,WAAW,GAAG,KAAK,CAAC;QACxB,KAAK,IAAI,CAAC,GAAG,CAAC,GAAI,CAAC,EAAE,EAAE,CAAC;YACpB,IAAI,CAAC,IAAI,oBAAoB,EAAE,CAAC;gBAC5B,MAAM,IAAI,aAAa,CACnB,MAAM,CAAC,WAAW,EAClB,UAAU,CAAC,aAAa,EACxB,kBAAkB,oBAAoB,gCAAgC,CACzE,CAAC;YACN,CAAC;YACD,UAAU,CAAC,QAAQ,CAAC,SAAS,EAAE,kBAAkB,CAAC,CAAC;YACnD,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,EAAE,WAAW,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC;YAC3D,MAAM,QAAQ,GAAG,UAAU,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;YAC/C,IAAI,QAAQ,GAAG,CAAC,EAAE,CAAC;gBACf,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC;gBACpD,KAAK,IAAI,QAAQ,CAAC;YACtB,CAAC;YACD,IAAI,MAAM,KAAK,MAAM,CAAC,EAAE;gBAAE,MAAM;YAChC,IAAI,MAAM,KAAK,MAAM,CAAC,WAAW,EAAE,CAAC;gBAChC,WAAW,CAAC,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,CAAC,aAAa,CAAC,CAAC;YACtE,CAAC;YACD,KAAK,GAAG,CAAC,CAAC;YACV,WAAW,GAAG,CAAC,CAAC;QACpB,CAAC;IACL,CAAC;YAAS,CAAC;QACP,KAAK,CAAC,OAAO,EAAE,CAAC;IACpB,CAAC;IAED,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,MAAM,CAAC,CAAC,CAAE,CAAC;IAC3C,MAAM,MAAM,GAAG,IAAI,UAAU,CAAC,KAAK,CAAC,CAAC;IACrC,IAAI,GAAG,GAAG,CAAC,CAAC;IACZ,KAAK,MAAM,CAAC,IAAI,MAAM,EAAE,CAAC;QACrB,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;QACnB,GAAG,IAAI,CAAC,CAAC,UAAU,CAAC;IACxB,CAAC;IACD,OAAO,MAAM,CAAC;AAClB,CAAC;AA+DD,+EAA+E;AAC/E,MAAM,kBAAkB,GAAG,IAAI,OAAO,EAAmD,CAAC;AAE1F,0EAA0E;AAC1E,SAAS,gBAAgB,CAAC,OAAY,EAAE,WAAyB;IAC7D,IAAI,OAAO,GAAG,kBAAkB,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;IAClD,IAAI,CAAC,OAAO,EAAE,CAAC;QACX,OAAO,GAAG,IAAI,GAAG,EAAE,CAAC;QACpB,kBAAkB,CAAC,GAAG,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;IACjD,CAAC;IACD,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IACzC,IAAI,MAAM;QAAE,OAAO,MAAM,CAAC;IAC1B,MAAM,cAAc,GAAG,OAAO,CAAC;IAC/B,MAAM,OAAO,GAAG,CAAC,KAAK,IAAI,EAAE,CAAC,UAAU,CAAC,MAAM,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CACxE,CAAC,KAAc,EAAE,EAAE;QACf,cAAc,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACpC,MAAM,KAAK,CAAC;IAChB,CAAC,CACJ,CAAC;IACF,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IACnC,OAAO,OAAO,CAAC;AACnB,CAAC;AAED,MAAM,UAAU,cAAc,CAC1B,SAAoB,EACpB,IAAmB,EACnB,OAAY,EACZ,WAAyB;IAEzB,IAAI,iBAAiB,GAA+B,IAAI,CAAC;IACzD,IAAI,UAAU,GAAsB,IAAI,CAAC;IACzC,MAAM,aAAa,GAAG,GAAwB,EAAE;QAC5C,IAAI,CAAC,iBAAiB,EAAE,CAAC;YACrB,iBAAiB,GAAG,CAAC,KAAK,IAAI,EAAE;gBAC5B,MAAM,OAAO,GAAG,MAAM,gBAAgB,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;gBAC7D,UAAU,GAAG,IAAI,UAAU,CAAC,OAAO,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC;gBACtD,OAAO,UAAU,CAAC;YACtB,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,KAAc,EAAE,EAAE;gBAC1B,iBAAiB,GAAG,IAAI,CAAC;gBACzB,MAAM,KAAK,CAAC;YAChB,CAAC,CAAC,CAAC;QACP,CAAC;QACD,OAAO,iBAAiB,CAAC;IAC7B,CAAC,CAAC;IAEF,4EAA4E;IAC5E,MAAM,wBAAwB,GAAG,GAAe,EAAE;QAC9C,IAAI,CAAC,UAAU,EAAE,CAAC;YACd,MAAM,IAAI,KAAK,CAAC,GAAG,IAAI,6DAA6D,CAAC,CAAC;QAC1F,CAAC;QACD,OAAO,UAAU,CAAC;IACtB,CAAC,CAAC;IAEF,OAAO;QACH,KAAK,CAAC,OAAO;YACT,MAAM,aAAa,EAAE,CAAC;QAC1B,CAAC;QACD,YAAY,CAAC,KAAK,EAAE,IAAI;YACpB,OAAO,wBAAwB,EAAE,CAAC,QAAQ,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QAC5D,CAAC;QACD,cAAc,CAAC,KAAK,EAAE,IAAI;YACtB,OAAO,wBAAwB,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QAC9D,CAAC;QACD,wBAAwB,CAAC,IAAI;YACzB,OAAO,wBAAwB,EAAE,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC;QACjE,CAAC;QACD,0BAA0B,CAAC,IAAI;YAC3B,OAAO,wBAAwB,EAAE,CAAC,sBAAsB,CAAC,IAAI,CAAC,CAAC;QACnE,CAAC;QACD,KAAK,CAAC,QAAQ,CAAC,KAAK,EAAE,IAAI;YACtB,OAAO,CAAC,MAAM,aAAa,EAAE,CAAC,CAAC,QAAQ,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QACzD,CAAC;QACD,KAAK,CAAC,UAAU,CAAC,KAAK,EAAE,IAAI;YACxB,OAAO,CAAC,MAAM,aAAa,EAAE,CAAC,CAAC,UAAU,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QAC3D,CAAC;QACD,KAAK,CAAC,oBAAoB,CAAC,IAAI;YAC3B,OAAO,CAAC,MAAM,aAAa,EAAE,CAAC,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC;QAC9D,CAAC;QACD,KAAK,CAAC,sBAAsB,CAAC,IAAI;YAC7B,OAAO,CAAC,MAAM,aAAa,EAAE,CAAC,CAAC,sBAAsB,CAAC,IAAI,CAAC,CAAC;QAChE,CAAC;QACD,iBAAiB,CAAC,IAAI;YAClB,IAAI,MAAkC,CAAC;YACvC,OAAO,IAAI,eAAe,CAAyB;gBAC/C,KAAK,CAAC,KAAK;oBACP,MAAM,GAAG,CAAC,MAAM,aAAa,EAAE,CAAC,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC;gBAChE,CAAC;gBACD,SAAS,CAAC,KAAK,EAAE,UAAU;oBACvB,IAAI,GAAG,GAAG,MAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;oBAC/B,IAAI,IAAI,EAAE,cAAc,EAAE,CAAC;wBACvB,0DAA0D;wBAC1D,MAAM,OAAO,GAAG,MAAO,CAAC,KAAK,EAAE,CAAC;wBAChC,MAAM,MAAM,GAAG,IAAI,UAAU,CAAC,GAAG,CAAC,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;wBACnE,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;wBACnB,MAAM,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC,UAAU,CAAC,CAAC;wBACpC,GAAG,GAAG,MAAM,CAAC;oBACjB,CAAC;oBACD,IAAI,GAAG,CAAC,UAAU,GAAG,CAAC;wBAAE,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;gBACpD,CAAC;gBACD,KAAK,CAAC,UAAU;oBACZ,IAAI,CAAC;wBACD,MAAM,IAAI,GAAG,MAAO,CAAC,MAAM,EAAE,CAAC;wBAC9B,IAAI,IAAI,CAAC,UAAU,GAAG,CAAC;4BAAE,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;oBACtD,CAAC;4BAAS,CAAC;wBACP,MAAO,CAAC,OAAO,EAAE,CAAC;oBACtB,CAAC;gBACL,CAAC;aACJ,CAAC,CAAC;QACP,CAAC;QACD,mBAAmB,CAAC,IAAI;YACpB,IAAI,MAAoC,CAAC;YACzC,OAAO,IAAI,eAAe,CAAyB;gBAC/C,KAAK,CAAC,KAAK;oBACP,MAAM,GAAG,CAAC,MAAM,aAAa,EAAE,CAAC,CAAC,sBAAsB,CAAC,IAAI,CAAC,CAAC;gBAClE,CAAC;gBACD,SAAS,CAAC,KAAK,EAAE,UAAU;oBACvB,MAAM,GAAG,GAAG,MAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;oBACjC,IAAI,GAAG,CAAC,UAAU,GAAG,CAAC;wBAAE,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;gBACpD,CAAC;gBACD,KAAK,CAAC,UAAU;oBACZ,IAAI,CAAC;wBACD,MAAM,IAAI,GAAG,MAAO,CAAC,MAAM,EAAE,CAAC;wBAC9B,IAAI,IAAI,CAAC,UAAU,GAAG,CAAC;4BAAE,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;oBACtD,CAAC;4BAAS,CAAC;wBACP,MAAO,CAAC,OAAO,EAAE,CAAC;oBACtB,CAAC;gBACL,CAAC;aACJ,CAAC,CAAC;QACP,CAAC;QACD,KAAK,CAAC,OAAO;YACT,OAAO,CAAC,MAAM,aAAa,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC;QAC7C,CAAC;QACD,KAAK,CAAC,sBAAsB,CAAC,KAAK;YAC9B,CAAC,MAAM,aAAa,EAAE,CAAC,CAAC,sBAAsB,CAAC,KAAK,CAAC,CAAC;QAC1D,CAAC;KACJ,CAAC;AACN,CAAC"}
@@ -30,6 +30,8 @@ export interface WasmExports {
30
30
  readonly cu_compress: (algo: number, in_ptr: number, in_len: number, out_ptr: number, out_len_ptr: number, level: number) => number;
31
31
  readonly cu_decompress: (algo: number, in_ptr: number, in_len: number, out_ptr: number, out_len_ptr: number) => number;
32
32
  readonly cu_decompress_size_hint: (algo: number, in_ptr: number, in_len: number, out_size_ptr: number) => number;
33
+ readonly cu_decompress_alloc: (algo: number, in_ptr: number, in_len: number, out_pp: number, out_len_ptr: number) => number;
34
+ readonly cu_buffer_free: (ptr: number) => void;
33
35
  readonly cu_compress_stream_create: (algo: number, level: number, out_stream_pp: number) => number;
34
36
  readonly cu_compress_stream_write: (stream: number, in_ptr: number, in_len: number, out_ptr: number, out_len_ptr: number) => number;
35
37
  readonly cu_compress_stream_flush: (stream: number, out_ptr: number, out_len_ptr: number) => number;
@@ -46,7 +48,7 @@ export interface WasmExports {
46
48
  readonly cu_decompress_stream_unused: (stream: number, data_pp: number, len_ptr: number) => number;
47
49
  readonly cu_set_max_decompressed_size?: (bytes: number) => void;
48
50
  }
49
- export declare function loadModule(source: BufferSource | Response | PromiseLike<Response>): Promise<WasmExports>;
51
+ export declare function loadModule(source: BufferSource | Response | PromiseLike<Response> | WebAssembly.Module): Promise<WasmExports>;
50
52
  export declare function decodeCString(memory: WebAssembly.Memory, ptr: number, maxLen?: number): string;
51
53
  /** Convert a non-Ok status into a thrown CompressError using the C side's message. */
52
54
  export declare function checkStatus(exports: WasmExports, status: number, algorithm: AlgorithmName): void;
@@ -1 +1 @@
1
- {"version":3,"file":"loader.d.ts","sourceRoot":"","sources":["../../src/core/loader.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"loader.d.ts","sourceRoot":"","sources":["../../src/core/loader.ts"],"names":[],"mappings":"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"}
@@ -117,7 +117,10 @@ export async function loadModule(source) {
117
117
  const imports = {
118
118
  wasi_snapshot_preview1: wasiImports(() => instance.exports.memory),
119
119
  };
120
- if (source instanceof ArrayBuffer || ArrayBuffer.isView(source)) {
120
+ if (source instanceof WebAssembly.Module) {
121
+ instance = await WebAssembly.instantiate(source, imports);
122
+ }
123
+ else if (source instanceof ArrayBuffer || ArrayBuffer.isView(source)) {
121
124
  const { instance: inst } = await WebAssembly.instantiate(source, imports);
122
125
  instance = inst;
123
126
  }
@@ -1 +1 @@
1
- {"version":3,"file":"loader.js","sourceRoot":"","sources":["../../src/core/loader.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"loader.js","sourceRoot":"","sources":["../../src/core/loader.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ /** Resolve a local WebAssembly module using Node's source-phase ESM loader. */
2
+ export const resolveWasm = (url) => import.source(url.href);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "compress-utils",
3
- "version": "0.11.2",
3
+ "version": "0.12.1",
4
4
  "description": "WASM compression bindings for zstd, brotli, zlib, bz2, lz4, xz, snappy, gzip - all tree-shakeable.",
5
5
  "type": "module",
6
6
  "sideEffects": false,
@@ -73,7 +73,10 @@
73
73
  "browser": "./dist/core/resolve-browser.js",
74
74
  "deno": "./dist/core/resolve-browser.js",
75
75
  "bun": "./dist/core/resolve-browser.js",
76
- "node": "./dist/core/resolve-node.js",
76
+ "node": {
77
+ "compress-utils-wasm-source": "./dist/wasm-source/resolve-node-source.mjs",
78
+ "default": "./dist/core/resolve-node.js"
79
+ },
77
80
  "default": "./dist/core/resolve-default.js"
78
81
  }
79
82
  },
@@ -85,7 +88,7 @@
85
88
  ],
86
89
  "scripts": {
87
90
  "build:wasm": "cmake -S ../.. -B ../../build-wasm -DBUILD_WASM_BINDINGS=ON -DBUILD_PYTHON_BINDINGS=OFF -DBUILD_CPP_BINDINGS=OFF -DENABLE_TESTS=OFF -DCMAKE_BUILD_TYPE=Release && cmake --build ../../build-wasm --target compress_utils_wasm -j",
88
- "build:ts": "tsc -p tsconfig.json",
91
+ "build:ts": "tsc -p tsconfig.json && node scripts/copy-wasm-source.mjs",
89
92
  "prepack": "node -e \"require('node:fs').copyFileSync('../../THIRD_PARTY_NOTICES.md', 'THIRD_PARTY_NOTICES.md')\"",
90
93
  "build": "npm run build:wasm && npm run build:ts",
91
94
  "test": "vitest run",