node-liblzma 2.2.0 → 3.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (48) hide show
  1. package/README.md +379 -778
  2. package/lib/cli/nxz.js +176 -84
  3. package/lib/cli/nxz.js.map +1 -1
  4. package/lib/lzma.browser.d.ts +24 -0
  5. package/lib/lzma.browser.d.ts.map +1 -0
  6. package/lib/lzma.browser.js +30 -0
  7. package/lib/lzma.browser.js.map +1 -0
  8. package/lib/lzma.inline.d.ts +30 -0
  9. package/lib/lzma.inline.d.ts.map +1 -0
  10. package/lib/lzma.inline.js +68 -0
  11. package/lib/lzma.inline.js.map +1 -0
  12. package/lib/wasm/bindings.d.ts +109 -0
  13. package/lib/wasm/bindings.d.ts.map +1 -0
  14. package/lib/wasm/bindings.js +307 -0
  15. package/lib/wasm/bindings.js.map +1 -0
  16. package/lib/wasm/compress.d.ts +32 -0
  17. package/lib/wasm/compress.d.ts.map +1 -0
  18. package/lib/wasm/compress.js +47 -0
  19. package/lib/wasm/compress.js.map +1 -0
  20. package/lib/wasm/decompress.d.ts +32 -0
  21. package/lib/wasm/decompress.d.ts.map +1 -0
  22. package/lib/wasm/decompress.js +45 -0
  23. package/lib/wasm/decompress.js.map +1 -0
  24. package/lib/wasm/index.d.ts +14 -0
  25. package/lib/wasm/index.d.ts.map +1 -0
  26. package/lib/wasm/index.js +18 -0
  27. package/lib/wasm/index.js.map +1 -0
  28. package/lib/wasm/liblzma.inline.d.ts +10 -0
  29. package/lib/wasm/liblzma.inline.d.ts.map +1 -0
  30. package/lib/wasm/liblzma.inline.js +10 -0
  31. package/lib/wasm/liblzma.inline.js.map +1 -0
  32. package/lib/wasm/memory.d.ts +57 -0
  33. package/lib/wasm/memory.d.ts.map +1 -0
  34. package/lib/wasm/memory.js +108 -0
  35. package/lib/wasm/memory.js.map +1 -0
  36. package/lib/wasm/stream.d.ts +35 -0
  37. package/lib/wasm/stream.d.ts.map +1 -0
  38. package/lib/wasm/stream.js +164 -0
  39. package/lib/wasm/stream.js.map +1 -0
  40. package/lib/wasm/types.d.ts +77 -0
  41. package/lib/wasm/types.d.ts.map +1 -0
  42. package/lib/wasm/types.js +55 -0
  43. package/lib/wasm/types.js.map +1 -0
  44. package/lib/wasm/utils.d.ts +62 -0
  45. package/lib/wasm/utils.d.ts.map +1 -0
  46. package/lib/wasm/utils.js +162 -0
  47. package/lib/wasm/utils.js.map +1 -0
  48. package/package.json +24 -3
package/lib/cli/nxz.js CHANGED
@@ -3,7 +3,8 @@
3
3
  * nxz - Node.js XZ compression CLI
4
4
  * A portable xz-like command line tool using node-liblzma
5
5
  */
6
- import { createReadStream, createWriteStream, existsSync, readFileSync, statSync, unlinkSync, writeFileSync, } from 'node:fs';
6
+ import { closeSync, createReadStream, createWriteStream, existsSync, fstatSync, openSync, readFileSync, statSync, unlinkSync, writeFileSync, } from 'node:fs';
7
+ import { performance } from 'node:perf_hooks';
7
8
  import { pipeline } from 'node:stream/promises';
8
9
  import { parseArgs } from 'node:util';
9
10
  import { check, createUnxz, createXz, hasThreads, isXZ, parseFileIndex, preset, unxzSync, versionString, xzSync, } from '../lzma.js';
@@ -65,6 +66,7 @@ function parseCliArgs(args) {
65
66
  compress: { type: 'boolean', short: 'z', default: false },
66
67
  decompress: { type: 'boolean', short: 'd', default: false },
67
68
  list: { type: 'boolean', short: 'l', default: false },
69
+ benchmark: { type: 'boolean', short: 'B', default: false },
68
70
  keep: { type: 'boolean', short: 'k', default: false },
69
71
  force: { type: 'boolean', short: 'f', default: false },
70
72
  stdout: { type: 'boolean', short: 'c', default: false },
@@ -82,6 +84,7 @@ function parseCliArgs(args) {
82
84
  compress: values.compress === true,
83
85
  decompress: values.decompress === true,
84
86
  list: values.list === true,
87
+ benchmark: values.benchmark === true,
85
88
  keep: values.keep === true,
86
89
  force: values.force === true,
87
90
  stdout: values.stdout === true,
@@ -109,6 +112,7 @@ Operation mode:
109
112
  -z, --compress force compression
110
113
  -d, --decompress force decompression
111
114
  -l, --list list information about .xz files
115
+ -B, --benchmark benchmark native vs WASM compression
112
116
 
113
117
  Operation modifiers:
114
118
  -k, --keep keep (don't delete) input files
@@ -157,6 +161,8 @@ License: LGPL-3.0`);
157
161
  * Determine operation mode based on options and file extension
158
162
  */
159
163
  function determineMode(options, filename) {
164
+ if (options.benchmark)
165
+ return 'benchmark';
160
166
  if (options.list)
161
167
  return 'list';
162
168
  if (options.decompress)
@@ -240,71 +246,96 @@ function listFile(filename, options) {
240
246
  /**
241
247
  * Compress a file
242
248
  */
249
+ /** Resolve output file and check for overwrites. Returns null for stdout mode. */
250
+ function resolveOutputFile(inputFile, mode, options) {
251
+ if (options.stdout)
252
+ return null;
253
+ return options.output ?? getOutputFilename(inputFile, mode);
254
+ }
255
+ /** Attach verbose progress tracking to a stream. */
256
+ function attachProgress(stream, inputFile, totalSize) {
257
+ let lastPercent = -1;
258
+ stream.on('progress', ({ bytesRead, bytesWritten }) => {
259
+ const percent = Math.floor((bytesRead / totalSize) * 100);
260
+ if (percent !== lastPercent) {
261
+ lastPercent = percent;
262
+ process.stderr.write(`\r${inputFile}: ${percent}% (${formatBytes(bytesRead)} -> ${formatBytes(bytesWritten)})`);
263
+ }
264
+ });
265
+ }
266
+ /** Clean up a partial output file and reset tracking state. */
267
+ function cleanupPartialOutput(outputFile) {
268
+ if (outputFile && existsSync(outputFile)) {
269
+ try {
270
+ unlinkSync(outputFile);
271
+ }
272
+ catch {
273
+ // Ignore cleanup errors
274
+ }
275
+ }
276
+ currentOutputFile = null;
277
+ }
278
+ /** Read file content using fd-based operations (avoids TOCTOU race). Returns [data, fileSize]. */
279
+ function readFileSafe(inputFile) {
280
+ const fd = openSync(inputFile, 'r');
281
+ try {
282
+ const size = fstatSync(fd).size;
283
+ const data = readFileSync(fd);
284
+ return { data, size };
285
+ }
286
+ finally {
287
+ closeSync(fd);
288
+ }
289
+ }
290
+ /** Write compressed/decompressed output to stdout or file. */
291
+ function writeOutput(output, outputFile) {
292
+ if (outputFile) {
293
+ writeFileSync(outputFile, output);
294
+ }
295
+ else {
296
+ process.stdout.write(output);
297
+ }
298
+ }
299
+ /** Delete the original file after successful compression/decompression. */
300
+ function removeOriginalIfNeeded(inputFile, options) {
301
+ if (!options.keep && !options.stdout) {
302
+ unlinkSync(inputFile);
303
+ }
304
+ }
243
305
  async function compressFile(inputFile, options) {
244
- const outputFile = options.stdout
245
- ? null
246
- : (options.output ?? getOutputFilename(inputFile, 'compress'));
247
- // Check if output exists
306
+ const outputFile = resolveOutputFile(inputFile, 'compress', options);
248
307
  if (outputFile && existsSync(outputFile) && !options.force) {
249
308
  warn(`nxz: ${outputFile}: File already exists; use -f to overwrite`);
250
309
  return EXIT_ERROR;
251
310
  }
252
- // Track output file for SIGINT cleanup
253
311
  currentOutputFile = outputFile;
254
312
  try {
255
- const stat = statSync(inputFile);
313
+ const { data, size } = readFileSafe(inputFile);
256
314
  const presetValue = options.extreme ? options.preset | preset.EXTREME : options.preset;
257
- if (options.stdout) {
258
- // Write to stdout
259
- const input = readFileSync(inputFile);
260
- const compressed = xzSync(input, { preset: presetValue });
261
- process.stdout.write(compressed);
262
- }
263
- else if (stat.size <= STREAM_THRESHOLD_BYTES) {
264
- // Small file: use sync
265
- const input = readFileSync(inputFile);
266
- const compressed = xzSync(input, { preset: presetValue });
267
- writeFileSync(outputFile, compressed);
315
+ if (!outputFile || size <= STREAM_THRESHOLD_BYTES) {
316
+ // Stdout or small file: sync compression
317
+ const compressed = xzSync(data, { preset: presetValue });
318
+ writeOutput(compressed, outputFile);
268
319
  }
269
320
  else {
270
- // Large file: use streams
321
+ // Large file: stream compression with optional progress
271
322
  const compressor = createXz({ preset: presetValue });
272
323
  if (options.verbose) {
273
- let lastPercent = -1;
274
- compressor.on('progress', ({ bytesRead, bytesWritten }) => {
275
- const percent = Math.floor((bytesRead / stat.size) * 100);
276
- if (percent !== lastPercent) {
277
- lastPercent = percent;
278
- process.stderr.write(`\r${inputFile}: ${percent}% (${formatBytes(bytesRead)} -> ${formatBytes(bytesWritten)})`);
279
- }
280
- });
324
+ attachProgress(compressor, inputFile, size);
281
325
  }
282
326
  await pipeline(createReadStream(inputFile), compressor, createWriteStream(outputFile));
283
327
  if (options.verbose) {
284
328
  process.stderr.write('\n');
285
329
  }
286
330
  }
287
- // Delete original unless -k or -c
288
- if (!options.keep && !options.stdout) {
289
- unlinkSync(inputFile);
290
- }
291
- // Clear tracking after successful completion
331
+ removeOriginalIfNeeded(inputFile, options);
292
332
  currentOutputFile = null;
293
333
  return EXIT_SUCCESS;
294
334
  }
295
335
  catch (err) {
296
336
  const message = err instanceof Error ? err.message : String(err);
297
337
  warn(`nxz: ${inputFile}: ${message}`);
298
- // Cleanup partial output
299
- if (outputFile && existsSync(outputFile)) {
300
- try {
301
- unlinkSync(outputFile);
302
- }
303
- catch {
304
- // Ignore cleanup errors
305
- }
306
- }
307
- currentOutputFile = null;
338
+ cleanupPartialOutput(outputFile);
308
339
  return EXIT_ERROR;
309
340
  }
310
341
  }
@@ -312,80 +343,139 @@ async function compressFile(inputFile, options) {
312
343
  * Decompress a file
313
344
  */
314
345
  async function decompressFile(inputFile, options) {
315
- const outputFile = options.stdout
316
- ? null
317
- : (options.output ?? getOutputFilename(inputFile, 'decompress'));
318
- // Check if output exists
346
+ const outputFile = resolveOutputFile(inputFile, 'decompress', options);
319
347
  if (outputFile && existsSync(outputFile) && !options.force) {
320
348
  warn(`nxz: ${outputFile}: File already exists; use -f to overwrite`);
321
349
  return EXIT_ERROR;
322
350
  }
323
- // Track output file for SIGINT cleanup
324
351
  currentOutputFile = outputFile;
325
352
  try {
326
- // Validate XZ format
327
- const fd = readFileSync(inputFile);
328
- if (!isXZ(fd)) {
353
+ const { data, size } = readFileSafe(inputFile);
354
+ if (!isXZ(data)) {
329
355
  warn(`nxz: ${inputFile}: File format not recognized`);
330
356
  currentOutputFile = null;
331
357
  return EXIT_ERROR;
332
358
  }
333
- const stat = statSync(inputFile);
334
- if (options.stdout) {
335
- // Write to stdout
336
- const decompressed = unxzSync(fd);
337
- process.stdout.write(decompressed);
338
- }
339
- else if (stat.size <= STREAM_THRESHOLD_BYTES) {
340
- // Small file: use sync
341
- const decompressed = unxzSync(fd);
342
- writeFileSync(outputFile, decompressed);
359
+ if (!outputFile || size <= STREAM_THRESHOLD_BYTES) {
360
+ // Stdout or small file: sync decompression
361
+ const decompressed = unxzSync(data);
362
+ writeOutput(decompressed, outputFile);
343
363
  }
344
364
  else {
345
- // Large file: use streams with progress
365
+ // Large file: stream decompression with optional progress
346
366
  const decompressor = createUnxz();
347
367
  if (options.verbose) {
348
- let lastPercent = -1;
349
- decompressor.on('progress', ({ bytesRead, bytesWritten }) => {
350
- const percent = Math.floor((bytesRead / stat.size) * 100);
351
- if (percent !== lastPercent) {
352
- lastPercent = percent;
353
- process.stderr.write(`\r${inputFile}: ${percent}% (${formatBytes(bytesRead)} -> ${formatBytes(bytesWritten)})`);
354
- }
355
- });
368
+ attachProgress(decompressor, inputFile, size);
356
369
  }
357
370
  await pipeline(createReadStream(inputFile), decompressor, createWriteStream(outputFile));
358
371
  if (options.verbose) {
359
372
  process.stderr.write('\n');
360
373
  }
361
374
  }
362
- // Delete original unless -k or -c
363
- if (!options.keep && !options.stdout) {
364
- unlinkSync(inputFile);
365
- }
366
- // Clear tracking after successful completion
375
+ removeOriginalIfNeeded(inputFile, options);
367
376
  currentOutputFile = null;
368
377
  return EXIT_SUCCESS;
369
378
  }
370
379
  catch (err) {
371
380
  const message = err instanceof Error ? err.message : String(err);
372
381
  warn(`nxz: ${inputFile}: ${message}`);
373
- // Cleanup partial output
374
- if (outputFile && existsSync(outputFile)) {
375
- try {
376
- unlinkSync(outputFile);
377
- }
378
- catch {
379
- // Ignore cleanup errors
380
- }
381
- }
382
- currentOutputFile = null;
382
+ cleanupPartialOutput(outputFile);
383
383
  return EXIT_ERROR;
384
384
  }
385
385
  }
386
386
  /**
387
387
  * Process a single file
388
388
  */
389
+ /** Measure execution time of an async function in milliseconds. */
390
+ async function measureAsync(fn) {
391
+ const start = performance.now();
392
+ const result = await fn();
393
+ return { result, ms: performance.now() - start };
394
+ }
395
+ /** Measure execution time of a sync function in milliseconds. */
396
+ function measureSync(fn) {
397
+ const start = performance.now();
398
+ const result = fn();
399
+ return { result, ms: performance.now() - start };
400
+ }
401
+ /** Format milliseconds for display. */
402
+ function formatMs(ms) {
403
+ if (ms < 1)
404
+ return `${(ms * 1000).toFixed(0)} µs`;
405
+ if (ms < 1000)
406
+ return `${ms.toFixed(1)} ms`;
407
+ return `${(ms / 1000).toFixed(2)} s`;
408
+ }
409
+ /** Format a ratio as "Nx faster" or "Nx slower". */
410
+ function formatSpeedup(baseline, candidate) {
411
+ if (candidate === 0 || baseline === 0)
412
+ return 'N/A';
413
+ const ratio = baseline / candidate;
414
+ if (ratio >= 1)
415
+ return `${ratio.toFixed(1)}x faster`;
416
+ return `${(1 / ratio).toFixed(1)}x slower`;
417
+ }
418
+ /**
419
+ * Benchmark native vs WASM compression/decompression on a file.
420
+ */
421
+ async function benchmarkFile(inputFile, options) {
422
+ // Initialize WASM module with Node.js file-based loader
423
+ const { initModule, resetModule } = await import('../wasm/bindings.js');
424
+ const { xzAsync: wasmXzAsync, unxzAsync: wasmUnxzAsync } = await import('../wasm/index.js');
425
+ const { readFileSync: fsReadFileSync } = await import('node:fs');
426
+ const { fileURLToPath } = await import('node:url');
427
+ const { dirname, join } = await import('node:path');
428
+ const wasmDir = dirname(fileURLToPath(import.meta.url));
429
+ const wasmPath = join(wasmDir, '..', 'wasm', 'liblzma.wasm');
430
+ resetModule();
431
+ await initModule(async () => {
432
+ const { default: createLZMA } = await import('../wasm/liblzma.js');
433
+ const wasmBinary = fsReadFileSync(wasmPath);
434
+ return (await createLZMA({ wasmBinary }));
435
+ });
436
+ const { data, size } = readFileSafe(inputFile);
437
+ const presetValue = options.extreme ? options.preset | preset.EXTREME : options.preset;
438
+ console.error(`\nBenchmark: ${inputFile} (${formatBytes(size)}, preset ${options.preset}${options.extreme ? 'e' : ''})\n`);
439
+ // --- Compression ---
440
+ const nativeCompress = measureSync(() => xzSync(data, { preset: presetValue }));
441
+ const wasmCompress = await measureAsync(() => wasmXzAsync(data, { preset: presetValue }));
442
+ // --- Decompression ---
443
+ const nativeDecompress = measureSync(() => unxzSync(nativeCompress.result));
444
+ const wasmDecompress = await measureAsync(() => wasmUnxzAsync(wasmCompress.result));
445
+ // --- Verify correctness ---
446
+ const nativeOk = Buffer.compare(nativeDecompress.result, data) === 0;
447
+ const wasmOk = Buffer.compare(Buffer.from(wasmDecompress.result), data) === 0;
448
+ // --- Cross-decompression ---
449
+ const crossNativeToWasm = await measureAsync(() => wasmUnxzAsync(nativeCompress.result));
450
+ const crossWasmToNative = measureSync(() => unxzSync(Buffer.from(wasmCompress.result)));
451
+ const crossOk1 = Buffer.compare(Buffer.from(crossNativeToWasm.result), data) === 0;
452
+ const crossOk2 = Buffer.compare(crossWasmToNative.result, data) === 0;
453
+ // --- Output table ---
454
+ const col1 = 22;
455
+ const col2 = 16;
456
+ const col3 = 16;
457
+ const col4 = 18;
458
+ const sep = '-'.repeat(col1 + col2 + col3 + col4 + 7);
459
+ const row = (label, native, wasm, diff) => ` ${label.padEnd(col1)} ${native.padStart(col2)} ${wasm.padStart(col3)} ${diff.padStart(col4)}`;
460
+ console.error(sep);
461
+ console.error(row('', 'Native', 'WASM', 'Comparison'));
462
+ console.error(sep);
463
+ console.error(row('Compress time', formatMs(nativeCompress.ms), formatMs(wasmCompress.ms), formatSpeedup(wasmCompress.ms, nativeCompress.ms)));
464
+ console.error(row('Compressed size', formatBytes(nativeCompress.result.length), formatBytes(wasmCompress.result.length), nativeCompress.result.length === wasmCompress.result.length
465
+ ? 'identical'
466
+ : `${((wasmCompress.result.length / nativeCompress.result.length - 1) * 100).toFixed(1)}%`));
467
+ console.error(row('Decompress time', formatMs(nativeDecompress.ms), formatMs(wasmDecompress.ms), formatSpeedup(wasmDecompress.ms, nativeDecompress.ms)));
468
+ console.error(row('Roundtrip OK', nativeOk ? 'YES' : 'FAIL', wasmOk ? 'YES' : 'FAIL', ''));
469
+ console.error(sep);
470
+ console.error(row('Cross: Native→WASM', '', formatMs(crossNativeToWasm.ms), crossOk1 ? 'OK' : 'FAIL'));
471
+ console.error(row('Cross: WASM→Native', formatMs(crossWasmToNative.ms), '', crossOk2 ? 'OK' : 'FAIL'));
472
+ console.error(sep);
473
+ const allOk = nativeOk && wasmOk && crossOk1 && crossOk2;
474
+ console.error(`\n Verdict: ${allOk ? 'ALL PASS — Both backends produce valid output' : 'FAIL — Data mismatch detected'}\n`);
475
+ // Reset WASM module to not interfere with other operations
476
+ resetModule();
477
+ return allOk ? EXIT_SUCCESS : EXIT_ERROR;
478
+ }
389
479
  async function processFile(filename, options) {
390
480
  // Check file exists
391
481
  if (!existsSync(filename)) {
@@ -401,6 +491,8 @@ async function processFile(filename, options) {
401
491
  switch (mode) {
402
492
  case 'list':
403
493
  return listFile(filename, options);
494
+ case 'benchmark':
495
+ return benchmarkFile(filename, options);
404
496
  case 'compress':
405
497
  return compressFile(filename, options);
406
498
  case 'decompress':
@@ -1 +1 @@
1
- {"version":3,"file":"nxz.js","sourceRoot":"","sources":["../../src/cli/nxz.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"nxz.js","sourceRoot":"","sources":["../../src/cli/nxz.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,24 @@
1
+ /**
2
+ * Browser entry point for node-liblzma.
3
+ *
4
+ * This module is automatically resolved by bundlers (Vite, Webpack, esbuild)
5
+ * via the "browser" condition in package.json exports.
6
+ *
7
+ * It exposes the same high-level API as the Node.js entry point, backed by
8
+ * the Emscripten-compiled WASM binary instead of the native C++ addon.
9
+ *
10
+ * Differences from Node.js entry:
11
+ * - xzSync/unxzSync throw LZMAError (sync not supported in browser)
12
+ * - createXz/createUnxz return Web TransformStream (not Node Transform)
13
+ * - No Xz/Unxz/XzStream classes (Node Transform stream wrappers)
14
+ * - No xzFile/unxzFile (filesystem operations)
15
+ * - No xzBuffer/xzBufferSync (Node Buffer-specific)
16
+ */
17
+ export { LZMAError } from './errors.js';
18
+ export { getModule, initModule, resetModule } from './wasm/bindings.js';
19
+ export { xz, xzAsync, xzSync } from './wasm/compress.js';
20
+ export { unxz, unxzAsync, unxzSync } from './wasm/decompress.js';
21
+ export { createUnxz, createXz } from './wasm/stream.js';
22
+ export { LZMA_BUF_ERROR, LZMA_CHECK_CRC32, LZMA_CHECK_CRC64, LZMA_CHECK_NONE, LZMA_CHECK_SHA256, LZMA_DATA_ERROR, LZMA_FINISH, LZMA_FORMAT_ERROR, LZMA_FULL_FLUSH, LZMA_GET_CHECK, LZMA_MEM_ERROR, LZMA_MEMLIMIT_ERROR, LZMA_NO_CHECK, LZMA_OK, LZMA_OPTIONS_ERROR, LZMA_PROG_ERROR, LZMA_RUN, LZMA_STREAM_END, LZMA_SYNC_FLUSH, LZMA_UNSUPPORTED_CHECK, type LZMAModule, } from './wasm/types.js';
23
+ export { easyDecoderMemusage, easyEncoderMemusage, isXZ, parseFileIndex, versionNumber, versionString, type XZFileIndex, } from './wasm/utils.js';
24
+ //# sourceMappingURL=lzma.browser.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lzma.browser.d.ts","sourceRoot":"","sources":["../src/lzma.browser.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAGH,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAExC,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAExE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAEjE,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAGxD,OAAO,EACL,cAAc,EACd,gBAAgB,EAChB,gBAAgB,EAChB,eAAe,EACf,iBAAiB,EACjB,eAAe,EACf,WAAW,EACX,iBAAiB,EACjB,eAAe,EACf,cAAc,EACd,cAAc,EACd,mBAAmB,EACnB,aAAa,EACb,OAAO,EACP,kBAAkB,EAClB,eAAe,EACf,QAAQ,EACR,eAAe,EACf,eAAe,EACf,sBAAsB,EACtB,KAAK,UAAU,GAChB,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EACL,mBAAmB,EACnB,mBAAmB,EACnB,IAAI,EACJ,cAAc,EACd,aAAa,EACb,aAAa,EACb,KAAK,WAAW,GACjB,MAAM,iBAAiB,CAAC"}
@@ -0,0 +1,30 @@
1
+ /**
2
+ * Browser entry point for node-liblzma.
3
+ *
4
+ * This module is automatically resolved by bundlers (Vite, Webpack, esbuild)
5
+ * via the "browser" condition in package.json exports.
6
+ *
7
+ * It exposes the same high-level API as the Node.js entry point, backed by
8
+ * the Emscripten-compiled WASM binary instead of the native C++ addon.
9
+ *
10
+ * Differences from Node.js entry:
11
+ * - xzSync/unxzSync throw LZMAError (sync not supported in browser)
12
+ * - createXz/createUnxz return Web TransformStream (not Node Transform)
13
+ * - No Xz/Unxz/XzStream classes (Node Transform stream wrappers)
14
+ * - No xzFile/unxzFile (filesystem operations)
15
+ * - No xzBuffer/xzBufferSync (Node Buffer-specific)
16
+ */
17
+ // --- Error types (shared with Node) ---
18
+ export { LZMAError } from './errors.js';
19
+ // --- Module initialization ---
20
+ export { getModule, initModule, resetModule } from './wasm/bindings.js';
21
+ // --- High-level buffer API ---
22
+ export { xz, xzAsync, xzSync } from './wasm/compress.js';
23
+ export { unxz, unxzAsync, unxzSync } from './wasm/decompress.js';
24
+ // --- Streaming API (Web TransformStream) ---
25
+ export { createUnxz, createXz } from './wasm/stream.js';
26
+ // --- Constants & types ---
27
+ export { LZMA_BUF_ERROR, LZMA_CHECK_CRC32, LZMA_CHECK_CRC64, LZMA_CHECK_NONE, LZMA_CHECK_SHA256, LZMA_DATA_ERROR, LZMA_FINISH, LZMA_FORMAT_ERROR, LZMA_FULL_FLUSH, LZMA_GET_CHECK, LZMA_MEM_ERROR, LZMA_MEMLIMIT_ERROR, LZMA_NO_CHECK, LZMA_OK, LZMA_OPTIONS_ERROR, LZMA_PROG_ERROR, LZMA_RUN, LZMA_STREAM_END, LZMA_SYNC_FLUSH, LZMA_UNSUPPORTED_CHECK, } from './wasm/types.js';
28
+ // --- Utility functions ---
29
+ export { easyDecoderMemusage, easyEncoderMemusage, isXZ, parseFileIndex, versionNumber, versionString, } from './wasm/utils.js';
30
+ //# sourceMappingURL=lzma.browser.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lzma.browser.js","sourceRoot":"","sources":["../src/lzma.browser.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,yCAAyC;AACzC,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,gCAAgC;AAChC,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACxE,gCAAgC;AAChC,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AACjE,8CAA8C;AAC9C,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAExD,4BAA4B;AAC5B,OAAO,EACL,cAAc,EACd,gBAAgB,EAChB,gBAAgB,EAChB,eAAe,EACf,iBAAiB,EACjB,eAAe,EACf,WAAW,EACX,iBAAiB,EACjB,eAAe,EACf,cAAc,EACd,cAAc,EACd,mBAAmB,EACnB,aAAa,EACb,OAAO,EACP,kBAAkB,EAClB,eAAe,EACf,QAAQ,EACR,eAAe,EACf,eAAe,EACf,sBAAsB,GAEvB,MAAM,iBAAiB,CAAC;AACzB,4BAA4B;AAC5B,OAAO,EACL,mBAAmB,EACnB,mBAAmB,EACnB,IAAI,EACJ,cAAc,EACd,aAAa,EACb,aAAa,GAEd,MAAM,iBAAiB,CAAC"}
@@ -0,0 +1,30 @@
1
+ /**
2
+ * Inline WASM entry point for node-liblzma.
3
+ *
4
+ * This module embeds the WASM binary as a base64 string, enabling
5
+ * zero-config usage without needing to configure bundler WASM loading.
6
+ *
7
+ * Usage:
8
+ * import { xzAsync, unxzAsync } from 'node-liblzma/inline';
9
+ *
10
+ * Unlike the standard WASM entry point, initialization is NOT automatic.
11
+ * Call `ensureInlineInit()` once before using any exported function.
12
+ *
13
+ * Trade-off: Larger JS bundle (~70KB base64 vs ~52KB binary fetch)
14
+ * but no external file to serve and no fetch() required.
15
+ */
16
+ import type { LZMAModule } from './wasm/types.js';
17
+ /**
18
+ * Ensures the WASM module is initialized with the inline binary.
19
+ * Must be called once before using any other exported function.
20
+ */
21
+ declare function ensureInlineInit(): Promise<LZMAModule>;
22
+ export { ensureInlineInit };
23
+ export { LZMAError } from './errors.js';
24
+ export { getModule, initModule, resetModule } from './wasm/bindings.js';
25
+ export { xz, xzAsync, xzSync } from './wasm/compress.js';
26
+ export { unxz, unxzAsync, unxzSync } from './wasm/decompress.js';
27
+ export { createUnxz, createXz } from './wasm/stream.js';
28
+ export { LZMA_BUF_ERROR, LZMA_CHECK_CRC32, LZMA_CHECK_CRC64, LZMA_CHECK_NONE, LZMA_CHECK_SHA256, LZMA_DATA_ERROR, LZMA_FINISH, LZMA_FORMAT_ERROR, LZMA_FULL_FLUSH, LZMA_GET_CHECK, LZMA_MEM_ERROR, LZMA_MEMLIMIT_ERROR, LZMA_NO_CHECK, LZMA_OK, LZMA_OPTIONS_ERROR, LZMA_PROG_ERROR, LZMA_RUN, LZMA_STREAM_END, LZMA_SYNC_FLUSH, LZMA_UNSUPPORTED_CHECK, type LZMAModule, } from './wasm/types.js';
29
+ export { easyDecoderMemusage, easyEncoderMemusage, isXZ, parseFileIndex, versionNumber, versionString, type XZFileIndex, } from './wasm/utils.js';
30
+ //# sourceMappingURL=lzma.inline.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lzma.inline.d.ts","sourceRoot":"","sources":["../src/lzma.inline.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAMH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAIlD;;;GAGG;AACH,iBAAe,gBAAgB,IAAI,OAAO,CAAC,UAAU,CAAC,CA0BrD;AAID,OAAO,EAAE,gBAAgB,EAAE,CAAC;AAG5B,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAExC,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAExE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAEjE,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAGxD,OAAO,EACL,cAAc,EACd,gBAAgB,EAChB,gBAAgB,EAChB,eAAe,EACf,iBAAiB,EACjB,eAAe,EACf,WAAW,EACX,iBAAiB,EACjB,eAAe,EACf,cAAc,EACd,cAAc,EACd,mBAAmB,EACnB,aAAa,EACb,OAAO,EACP,kBAAkB,EAClB,eAAe,EACf,QAAQ,EACR,eAAe,EACf,eAAe,EACf,sBAAsB,EACtB,KAAK,UAAU,GAChB,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EACL,mBAAmB,EACnB,mBAAmB,EACnB,IAAI,EACJ,cAAc,EACd,aAAa,EACb,aAAa,EACb,KAAK,WAAW,GACjB,MAAM,iBAAiB,CAAC"}
@@ -0,0 +1,68 @@
1
+ /**
2
+ * Inline WASM entry point for node-liblzma.
3
+ *
4
+ * This module embeds the WASM binary as a base64 string, enabling
5
+ * zero-config usage without needing to configure bundler WASM loading.
6
+ *
7
+ * Usage:
8
+ * import { xzAsync, unxzAsync } from 'node-liblzma/inline';
9
+ *
10
+ * Unlike the standard WASM entry point, initialization is NOT automatic.
11
+ * Call `ensureInlineInit()` once before using any exported function.
12
+ *
13
+ * Trade-off: Larger JS bundle (~70KB base64 vs ~52KB binary fetch)
14
+ * but no external file to serve and no fetch() required.
15
+ */
16
+ import { initModule } from './wasm/bindings.js';
17
+ // The base64-encoded WASM binary is injected at build time.
18
+ // This import resolves to a generated file containing the base64 string.
19
+ import { WASM_BASE64 } from './wasm/liblzma.inline.js';
20
+ let initialized = false;
21
+ /**
22
+ * Ensures the WASM module is initialized with the inline binary.
23
+ * Must be called once before using any other exported function.
24
+ */
25
+ async function ensureInlineInit() {
26
+ if (!initialized) {
27
+ try {
28
+ const module = await initModule(async () => {
29
+ // Decode base64 to binary
30
+ const binaryString = atob(WASM_BASE64);
31
+ const bytes = new Uint8Array(binaryString.length);
32
+ for (let i = 0; i < binaryString.length; i++) {
33
+ bytes[i] = binaryString.charCodeAt(i);
34
+ }
35
+ const wasmBinary = bytes.buffer;
36
+ // Dynamically import the Emscripten glue
37
+ const { default: createLZMA } = await import('./wasm/liblzma.js');
38
+ return (await createLZMA({ wasmBinary }));
39
+ });
40
+ initialized = true;
41
+ return module;
42
+ }
43
+ catch (err) {
44
+ initialized = false;
45
+ throw err;
46
+ }
47
+ }
48
+ // Already initialized — return current module
49
+ const { getModule } = await import('./wasm/bindings.js');
50
+ return getModule();
51
+ }
52
+ // Re-export the full browser API — the inline init is triggered
53
+ // by calling ensureInlineInit() before first use.
54
+ export { ensureInlineInit };
55
+ // --- Error types (shared with Node) ---
56
+ export { LZMAError } from './errors.js';
57
+ // --- Module initialization ---
58
+ export { getModule, initModule, resetModule } from './wasm/bindings.js';
59
+ // --- High-level buffer API ---
60
+ export { xz, xzAsync, xzSync } from './wasm/compress.js';
61
+ export { unxz, unxzAsync, unxzSync } from './wasm/decompress.js';
62
+ // --- Streaming API (Web TransformStream) ---
63
+ export { createUnxz, createXz } from './wasm/stream.js';
64
+ // --- Constants & types ---
65
+ export { LZMA_BUF_ERROR, LZMA_CHECK_CRC32, LZMA_CHECK_CRC64, LZMA_CHECK_NONE, LZMA_CHECK_SHA256, LZMA_DATA_ERROR, LZMA_FINISH, LZMA_FORMAT_ERROR, LZMA_FULL_FLUSH, LZMA_GET_CHECK, LZMA_MEM_ERROR, LZMA_MEMLIMIT_ERROR, LZMA_NO_CHECK, LZMA_OK, LZMA_OPTIONS_ERROR, LZMA_PROG_ERROR, LZMA_RUN, LZMA_STREAM_END, LZMA_SYNC_FLUSH, LZMA_UNSUPPORTED_CHECK, } from './wasm/types.js';
66
+ // --- Utility functions ---
67
+ export { easyDecoderMemusage, easyEncoderMemusage, isXZ, parseFileIndex, versionNumber, versionString, } from './wasm/utils.js';
68
+ //# sourceMappingURL=lzma.inline.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lzma.inline.js","sourceRoot":"","sources":["../src/lzma.inline.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAChD,4DAA4D;AAC5D,yEAAyE;AACzE,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAGvD,IAAI,WAAW,GAAG,KAAK,CAAC;AAExB;;;GAGG;AACH,KAAK,UAAU,gBAAgB;IAC7B,IAAI,CAAC,WAAW,EAAE,CAAC;QACjB,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,KAAK,IAAI,EAAE;gBACzC,0BAA0B;gBAC1B,MAAM,YAAY,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC;gBACvC,MAAM,KAAK,GAAG,IAAI,UAAU,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;gBAClD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,YAAY,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;oBAC7C,KAAK,CAAC,CAAC,CAAC,GAAG,YAAY,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;gBACxC,CAAC;gBACD,MAAM,UAAU,GAAG,KAAK,CAAC,MAAM,CAAC;gBAEhC,yCAAyC;gBACzC,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,GAAG,MAAM,MAAM,CAAC,mBAAmB,CAAC,CAAC;gBAClE,OAAO,CAAC,MAAM,UAAU,CAAC,EAAE,UAAU,EAAE,CAAC,CAAe,CAAC;YAC1D,CAAC,CAAC,CAAC;YACH,WAAW,GAAG,IAAI,CAAC;YACnB,OAAO,MAAM,CAAC;QAChB,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,WAAW,GAAG,KAAK,CAAC;YACpB,MAAM,GAAG,CAAC;QACZ,CAAC;IACH,CAAC;IACD,8CAA8C;IAC9C,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,MAAM,CAAC,oBAAoB,CAAC,CAAC;IACzD,OAAO,SAAS,EAAE,CAAC;AACrB,CAAC;AAED,gEAAgE;AAChE,kDAAkD;AAClD,OAAO,EAAE,gBAAgB,EAAE,CAAC;AAE5B,yCAAyC;AACzC,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,gCAAgC;AAChC,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACxE,gCAAgC;AAChC,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AACjE,8CAA8C;AAC9C,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAExD,4BAA4B;AAC5B,OAAO,EACL,cAAc,EACd,gBAAgB,EAChB,gBAAgB,EAChB,eAAe,EACf,iBAAiB,EACjB,eAAe,EACf,WAAW,EACX,iBAAiB,EACjB,eAAe,EACf,cAAc,EACd,cAAc,EACd,mBAAmB,EACnB,aAAa,EACb,OAAO,EACP,kBAAkB,EAClB,eAAe,EACf,QAAQ,EACR,eAAe,EACf,eAAe,EACf,sBAAsB,GAEvB,MAAM,iBAAiB,CAAC;AACzB,4BAA4B;AAC5B,OAAO,EACL,mBAAmB,EACnB,mBAAmB,EACnB,IAAI,EACJ,cAAc,EACd,aAAa,EACb,aAAa,GAEd,MAAM,iBAAiB,CAAC"}