node-liblzma 2.1.0 → 2.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +107 -4
- package/index.d.ts +34 -0
- package/lib/cli/nxz.d.ts +7 -0
- package/lib/cli/nxz.d.ts.map +1 -0
- package/lib/cli/nxz.js +486 -0
- package/lib/cli/nxz.js.map +1 -0
- package/lib/lzma.d.ts +83 -0
- package/lib/lzma.d.ts.map +1 -1
- package/lib/lzma.js +78 -0
- package/lib/lzma.js.map +1 -1
- package/package.json +4 -1
- package/src/bindings/module.cpp +196 -0
package/README.md
CHANGED
|
@@ -3,8 +3,12 @@ Node-liblzma
|
|
|
3
3
|
|
|
4
4
|
[](https://npmjs.org/package/node-liblzma)
|
|
5
5
|
[](https://npmjs.org/package/node-liblzma)
|
|
6
|
-
[](https://github.com/oorabona/node-liblzma/actions/workflows/ci.yml)
|
|
7
7
|
[](https://oorabona.github.io/node-liblzma/)
|
|
8
|
+
[](https://github.com/oorabona/node-liblzma/blob/master/LICENSE)
|
|
9
|
+
[](https://nodejs.org)
|
|
10
|
+
[](https://www.typescriptlang.org/)
|
|
11
|
+
[](https://docs.npmjs.com/generating-provenance-statements)
|
|
8
12
|
|
|
9
13
|
# What is liblzma/XZ ?
|
|
10
14
|
|
|
@@ -91,10 +95,109 @@ xz(Buffer.from('Hello, World!'), (err, compressed) => {
|
|
|
91
95
|
|
|
92
96
|
📖 **Full API documentation**: [oorabona.github.io/node-liblzma](https://oorabona.github.io/node-liblzma/)
|
|
93
97
|
|
|
98
|
+
# Command Line Interface (nxz)
|
|
99
|
+
|
|
100
|
+
This package includes `nxz`, a portable xz-like CLI tool that works on any platform with Node.js.
|
|
101
|
+
|
|
102
|
+
## Installation
|
|
103
|
+
|
|
104
|
+
```bash
|
|
105
|
+
# Global installation (recommended for CLI usage)
|
|
106
|
+
npm install -g node-liblzma
|
|
107
|
+
# or
|
|
108
|
+
pnpm add -g node-liblzma
|
|
109
|
+
|
|
110
|
+
# Then use directly
|
|
111
|
+
nxz --help
|
|
112
|
+
```
|
|
113
|
+
|
|
114
|
+
## Quick Examples
|
|
115
|
+
|
|
116
|
+
```bash
|
|
117
|
+
# Compress a file (creates file.txt.xz, deletes original)
|
|
118
|
+
nxz file.txt
|
|
119
|
+
|
|
120
|
+
# Decompress (auto-detected from .xz extension)
|
|
121
|
+
nxz file.txt.xz
|
|
122
|
+
|
|
123
|
+
# Keep original file (-k)
|
|
124
|
+
nxz -k file.txt
|
|
125
|
+
|
|
126
|
+
# Decompress explicitly (-d)
|
|
127
|
+
nxz -d archive.xz
|
|
128
|
+
|
|
129
|
+
# Maximum compression (-9) with extreme mode (-e)
|
|
130
|
+
nxz -9e large-file.bin
|
|
131
|
+
|
|
132
|
+
# Compress to stdout (-c) for piping
|
|
133
|
+
nxz -c file.txt > file.txt.xz
|
|
134
|
+
|
|
135
|
+
# Decompress to stdout
|
|
136
|
+
nxz -dc file.txt.xz | grep "pattern"
|
|
137
|
+
|
|
138
|
+
# Custom output file (-o)
|
|
139
|
+
nxz -d archive.xz -o /tmp/output.bin
|
|
140
|
+
|
|
141
|
+
# List archive info (-l)
|
|
142
|
+
nxz -l file.txt.xz
|
|
143
|
+
|
|
144
|
+
# Verbose info (-lv)
|
|
145
|
+
nxz -lv file.txt.xz
|
|
146
|
+
|
|
147
|
+
# Compress from stdin
|
|
148
|
+
cat file.txt | nxz -c > file.txt.xz
|
|
149
|
+
|
|
150
|
+
# Quiet mode - suppress warnings (-q)
|
|
151
|
+
nxz -q file.txt
|
|
152
|
+
```
|
|
153
|
+
|
|
154
|
+
## All Options
|
|
155
|
+
|
|
156
|
+
| Option | Long | Description |
|
|
157
|
+
|--------|------|-------------|
|
|
158
|
+
| `-z` | `--compress` | Force compression mode |
|
|
159
|
+
| `-d` | `--decompress` | Force decompression mode |
|
|
160
|
+
| `-l` | `--list` | List archive information |
|
|
161
|
+
| `-k` | `--keep` | Keep original file (don't delete) |
|
|
162
|
+
| `-f` | `--force` | Overwrite existing output file |
|
|
163
|
+
| `-c` | `--stdout` | Write to stdout, keep original file |
|
|
164
|
+
| `-o` | `--output=FILE` | Write output to specified file |
|
|
165
|
+
| `-v` | `--verbose` | Show progress for large files |
|
|
166
|
+
| `-q` | `--quiet` | Suppress warning messages |
|
|
167
|
+
| `-0`..`-9` | | Compression level (default: 6) |
|
|
168
|
+
| `-e` | `--extreme` | Extreme compression (slower) |
|
|
169
|
+
| `-h` | `--help` | Show help |
|
|
170
|
+
| `-V` | `--version` | Show version |
|
|
171
|
+
|
|
172
|
+
## One-shot Usage (without global install)
|
|
173
|
+
|
|
174
|
+
```bash
|
|
175
|
+
# npm/npx
|
|
176
|
+
npx --package node-liblzma nxz --help
|
|
177
|
+
npx -p node-liblzma nxz file.txt
|
|
178
|
+
|
|
179
|
+
# pnpm
|
|
180
|
+
pnpm dlx --package node-liblzma nxz --help
|
|
181
|
+
```
|
|
182
|
+
|
|
183
|
+
## Exit Codes
|
|
184
|
+
|
|
185
|
+
| Code | Meaning |
|
|
186
|
+
|------|---------|
|
|
187
|
+
| 0 | Success |
|
|
188
|
+
| 1 | Error (file not found, format error, etc.) |
|
|
189
|
+
| 130 | Interrupted (SIGINT/Ctrl+C) |
|
|
190
|
+
|
|
94
191
|
# What's new ?
|
|
95
192
|
|
|
96
193
|
## Latest Updates (2026)
|
|
97
194
|
|
|
195
|
+
* **CLI Tool (nxz)**: Portable xz-like command line tool included in the package
|
|
196
|
+
- Full xz compatibility: `-z`, `-d`, `-l`, `-k`, `-f`, `-c`, `-o`, `-v`, `-q`
|
|
197
|
+
- Compression presets 0-9 with extreme mode (`-e`)
|
|
198
|
+
- Progress display for large files, stdin/stdout piping
|
|
199
|
+
- Works on any platform with Node.js
|
|
200
|
+
- See [Command Line Interface](#command-line-interface-nxz) section
|
|
98
201
|
* **Progress Events**: Monitor compression/decompression progress with real-time events
|
|
99
202
|
```typescript
|
|
100
203
|
const compressor = createXz();
|
|
@@ -930,9 +1033,9 @@ We follow [Conventional Commits](https://www.conventionalcommits.org/):
|
|
|
930
1033
|
|
|
931
1034
|
**Examples**:
|
|
932
1035
|
```bash
|
|
933
|
-
git commit -m "feat
|
|
934
|
-
git commit -m "fix
|
|
935
|
-
git commit -m "docs
|
|
1036
|
+
git commit -m "feat: add LZMAPool for concurrency control"
|
|
1037
|
+
git commit -m "fix: resolve memory leak in FunctionReference"
|
|
1038
|
+
git commit -m "docs: add migration guide for v2.0"
|
|
936
1039
|
```
|
|
937
1040
|
|
|
938
1041
|
## Pull Request Process
|
package/index.d.ts
CHANGED
|
@@ -116,6 +116,40 @@ export declare class Unxz extends XzStream {
|
|
|
116
116
|
/** Check if threading support is available */
|
|
117
117
|
export declare function hasThreads(): boolean;
|
|
118
118
|
|
|
119
|
+
/** Check if a buffer starts with XZ magic bytes */
|
|
120
|
+
export declare function isXZ(buffer: Buffer): boolean;
|
|
121
|
+
|
|
122
|
+
/** Get the runtime liblzma version string (e.g., "5.4.1") */
|
|
123
|
+
export declare function versionString(): string;
|
|
124
|
+
|
|
125
|
+
/** Get the runtime liblzma version number (e.g., 50040010 for 5.4.1) */
|
|
126
|
+
export declare function versionNumber(): number;
|
|
127
|
+
|
|
128
|
+
/** Get memory usage estimate for encoding with given preset */
|
|
129
|
+
export declare function easyEncoderMemusage(presetLevel: number): number;
|
|
130
|
+
|
|
131
|
+
/** Get memory usage estimate for decoding */
|
|
132
|
+
export declare function easyDecoderMemusage(): number;
|
|
133
|
+
|
|
134
|
+
/** Metadata extracted from an XZ file index */
|
|
135
|
+
export interface XZFileIndex {
|
|
136
|
+
/** Uncompressed size in bytes */
|
|
137
|
+
uncompressedSize: number;
|
|
138
|
+
/** Compressed size in bytes (excluding headers) */
|
|
139
|
+
compressedSize: number;
|
|
140
|
+
/** Number of streams in the file */
|
|
141
|
+
streamCount: number;
|
|
142
|
+
/** Number of blocks in the file */
|
|
143
|
+
blockCount: number;
|
|
144
|
+
/** Integrity check type */
|
|
145
|
+
check: number;
|
|
146
|
+
/** Memory usage of the index structure */
|
|
147
|
+
memoryUsage: number;
|
|
148
|
+
}
|
|
149
|
+
|
|
150
|
+
/** Parse the index from a complete XZ file to get metadata */
|
|
151
|
+
export declare function parseFileIndex(buffer: Buffer): XZFileIndex;
|
|
152
|
+
|
|
119
153
|
/** Create a compression stream */
|
|
120
154
|
export declare function createXz(lzmaOptions?: LZMAOptions, options?: TransformOptions): Xz;
|
|
121
155
|
|
package/lib/cli/nxz.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"nxz.d.ts","sourceRoot":"","sources":["../../src/cli/nxz.ts"],"names":[],"mappings":";AACA;;;GAGG"}
|
package/lib/cli/nxz.js
ADDED
|
@@ -0,0 +1,486 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
/**
|
|
3
|
+
* nxz - Node.js XZ compression CLI
|
|
4
|
+
* A portable xz-like command line tool using node-liblzma
|
|
5
|
+
*/
|
|
6
|
+
import { createReadStream, createWriteStream, existsSync, readFileSync, statSync, unlinkSync, writeFileSync, } from 'node:fs';
|
|
7
|
+
import { pipeline } from 'node:stream/promises';
|
|
8
|
+
import { parseArgs } from 'node:util';
|
|
9
|
+
import { check, createUnxz, createXz, hasThreads, isXZ, parseFileIndex, preset, unxzSync, versionString, xzSync, } from '../lzma.js';
|
|
10
|
+
/** Size threshold for using streams vs sync (1 MB) */
|
|
11
|
+
const STREAM_THRESHOLD_BYTES = 1024 * 1024;
|
|
12
|
+
/** Exit codes matching xz conventions */
|
|
13
|
+
const EXIT_SUCCESS = 0;
|
|
14
|
+
const EXIT_ERROR = 1;
|
|
15
|
+
const EXIT_SIGNAL = 128;
|
|
16
|
+
/** Track current output file for SIGINT cleanup */
|
|
17
|
+
let currentOutputFile = null;
|
|
18
|
+
/** Global quiet flag for warn() function */
|
|
19
|
+
let quietMode = false;
|
|
20
|
+
/**
|
|
21
|
+
* Print warning message (respects -q flag)
|
|
22
|
+
*/
|
|
23
|
+
function warn(message) {
|
|
24
|
+
if (!quietMode) {
|
|
25
|
+
console.error(message);
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Setup SIGINT handler for graceful cleanup
|
|
30
|
+
*/
|
|
31
|
+
function setupSignalHandlers() {
|
|
32
|
+
process.on('SIGINT', () => {
|
|
33
|
+
// Cleanup partial output file if exists
|
|
34
|
+
if (currentOutputFile && existsSync(currentOutputFile)) {
|
|
35
|
+
try {
|
|
36
|
+
unlinkSync(currentOutputFile);
|
|
37
|
+
}
|
|
38
|
+
catch {
|
|
39
|
+
// Ignore cleanup errors
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
// Exit with 128 + signal number (SIGINT = 2)
|
|
43
|
+
process.exit(EXIT_SIGNAL + 2);
|
|
44
|
+
});
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Parse command line arguments
|
|
48
|
+
*/
|
|
49
|
+
function parseCliArgs(args) {
|
|
50
|
+
// Extract preset from args (e.g., -0 through -9)
|
|
51
|
+
let presetLevel = 6; // default
|
|
52
|
+
const filteredArgs = [];
|
|
53
|
+
for (const arg of args) {
|
|
54
|
+
const presetMatch = arg.match(/^-(\d)$/);
|
|
55
|
+
if (presetMatch) {
|
|
56
|
+
presetLevel = Number.parseInt(presetMatch[1], 10);
|
|
57
|
+
}
|
|
58
|
+
else {
|
|
59
|
+
filteredArgs.push(arg);
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
const { values, positionals } = parseArgs({
|
|
63
|
+
args: filteredArgs,
|
|
64
|
+
options: {
|
|
65
|
+
compress: { type: 'boolean', short: 'z', default: false },
|
|
66
|
+
decompress: { type: 'boolean', short: 'd', default: false },
|
|
67
|
+
list: { type: 'boolean', short: 'l', default: false },
|
|
68
|
+
keep: { type: 'boolean', short: 'k', default: false },
|
|
69
|
+
force: { type: 'boolean', short: 'f', default: false },
|
|
70
|
+
stdout: { type: 'boolean', short: 'c', default: false },
|
|
71
|
+
output: { type: 'string', short: 'o' },
|
|
72
|
+
verbose: { type: 'boolean', short: 'v', default: false },
|
|
73
|
+
quiet: { type: 'boolean', short: 'q', default: false },
|
|
74
|
+
help: { type: 'boolean', short: 'h', default: false },
|
|
75
|
+
version: { type: 'boolean', short: 'V', default: false },
|
|
76
|
+
extreme: { type: 'boolean', short: 'e', default: false },
|
|
77
|
+
},
|
|
78
|
+
allowPositionals: true,
|
|
79
|
+
strict: false,
|
|
80
|
+
});
|
|
81
|
+
return {
|
|
82
|
+
compress: values.compress === true,
|
|
83
|
+
decompress: values.decompress === true,
|
|
84
|
+
list: values.list === true,
|
|
85
|
+
keep: values.keep === true,
|
|
86
|
+
force: values.force === true,
|
|
87
|
+
stdout: values.stdout === true,
|
|
88
|
+
output: typeof values.output === 'string' ? values.output : null,
|
|
89
|
+
verbose: values.verbose === true,
|
|
90
|
+
quiet: values.quiet === true,
|
|
91
|
+
help: values.help === true,
|
|
92
|
+
version: values.version === true,
|
|
93
|
+
preset: presetLevel,
|
|
94
|
+
extreme: values.extreme === true,
|
|
95
|
+
files: positionals,
|
|
96
|
+
};
|
|
97
|
+
}
|
|
98
|
+
/**
|
|
99
|
+
* Print help message
|
|
100
|
+
*/
|
|
101
|
+
function printHelp() {
|
|
102
|
+
console.log(`nxz - Node.js XZ compression CLI (using node-liblzma)
|
|
103
|
+
|
|
104
|
+
Usage: nxz [OPTION]... [FILE]...
|
|
105
|
+
|
|
106
|
+
Compress or decompress FILEs in the .xz format.
|
|
107
|
+
|
|
108
|
+
Operation mode:
|
|
109
|
+
-z, --compress force compression
|
|
110
|
+
-d, --decompress force decompression
|
|
111
|
+
-l, --list list information about .xz files
|
|
112
|
+
|
|
113
|
+
Operation modifiers:
|
|
114
|
+
-k, --keep keep (don't delete) input files
|
|
115
|
+
-f, --force force overwrite of output file
|
|
116
|
+
-c, --stdout write to standard output and don't delete input files
|
|
117
|
+
-o, --output=FILE write output to FILE
|
|
118
|
+
|
|
119
|
+
Compression presets:
|
|
120
|
+
-0 ... -9 compression preset level (default: 6)
|
|
121
|
+
-e, --extreme use extreme compression (slower)
|
|
122
|
+
|
|
123
|
+
Other options:
|
|
124
|
+
-v, --verbose be verbose (show progress)
|
|
125
|
+
-q, --quiet suppress warnings
|
|
126
|
+
-h, --help display this help and exit
|
|
127
|
+
-V, --version display version information and exit
|
|
128
|
+
|
|
129
|
+
With no FILE, or when FILE is -, read standard input.
|
|
130
|
+
|
|
131
|
+
Report bugs at: https://github.com/oorabona/node-liblzma/issues`);
|
|
132
|
+
}
|
|
133
|
+
/**
|
|
134
|
+
* Print version information
|
|
135
|
+
*/
|
|
136
|
+
function printVersion() {
|
|
137
|
+
// Read package.json for nxz version
|
|
138
|
+
const packageJsonPath = new URL('../../package.json', import.meta.url);
|
|
139
|
+
let nxzVersion = 'unknown';
|
|
140
|
+
try {
|
|
141
|
+
const pkg = JSON.parse(readFileSync(packageJsonPath, 'utf-8'));
|
|
142
|
+
nxzVersion = pkg.version;
|
|
143
|
+
}
|
|
144
|
+
catch {
|
|
145
|
+
// Ignore error, use 'unknown'
|
|
146
|
+
}
|
|
147
|
+
const threadSupport = hasThreads() ? 'yes' : 'no';
|
|
148
|
+
const year = new Date().getFullYear();
|
|
149
|
+
console.log(`nxz ${nxzVersion}
|
|
150
|
+
node-liblzma using liblzma ${versionString()}
|
|
151
|
+
Thread support: ${threadSupport}
|
|
152
|
+
|
|
153
|
+
Copyright (C) ${year} Olivier ORABONA
|
|
154
|
+
License: LGPL-3.0`);
|
|
155
|
+
}
|
|
156
|
+
/**
|
|
157
|
+
* Determine operation mode based on options and file extension
|
|
158
|
+
*/
|
|
159
|
+
function determineMode(options, filename) {
|
|
160
|
+
if (options.list)
|
|
161
|
+
return 'list';
|
|
162
|
+
if (options.decompress)
|
|
163
|
+
return 'decompress';
|
|
164
|
+
if (options.compress)
|
|
165
|
+
return 'compress';
|
|
166
|
+
// Auto-detect from extension
|
|
167
|
+
if (filename.endsWith('.xz') || filename.endsWith('.lzma')) {
|
|
168
|
+
return 'decompress';
|
|
169
|
+
}
|
|
170
|
+
return 'compress';
|
|
171
|
+
}
|
|
172
|
+
/**
|
|
173
|
+
* Get output filename based on operation mode
|
|
174
|
+
*/
|
|
175
|
+
function getOutputFilename(inputFile, mode) {
|
|
176
|
+
if (mode === 'compress') {
|
|
177
|
+
return `${inputFile}.xz`;
|
|
178
|
+
}
|
|
179
|
+
// Decompress: remove .xz or .lzma extension
|
|
180
|
+
if (inputFile.endsWith('.xz')) {
|
|
181
|
+
return inputFile.slice(0, -3);
|
|
182
|
+
}
|
|
183
|
+
if (inputFile.endsWith('.lzma')) {
|
|
184
|
+
return inputFile.slice(0, -5);
|
|
185
|
+
}
|
|
186
|
+
return `${inputFile}.out`;
|
|
187
|
+
}
|
|
188
|
+
/**
|
|
189
|
+
* Format bytes to human-readable string
|
|
190
|
+
*/
|
|
191
|
+
function formatBytes(bytes) {
|
|
192
|
+
if (bytes < 1024)
|
|
193
|
+
return `${bytes} B`;
|
|
194
|
+
if (bytes < 1024 * 1024)
|
|
195
|
+
return `${(bytes / 1024).toFixed(1)} KiB`;
|
|
196
|
+
if (bytes < 1024 * 1024 * 1024)
|
|
197
|
+
return `${(bytes / (1024 * 1024)).toFixed(1)} MiB`;
|
|
198
|
+
return `${(bytes / (1024 * 1024 * 1024)).toFixed(1)} GiB`;
|
|
199
|
+
}
|
|
200
|
+
/**
|
|
201
|
+
* List information about an XZ file
|
|
202
|
+
*/
|
|
203
|
+
function listFile(filename, options) {
|
|
204
|
+
try {
|
|
205
|
+
const data = readFileSync(filename);
|
|
206
|
+
const info = parseFileIndex(data);
|
|
207
|
+
const ratio = info.compressedSize > 0
|
|
208
|
+
? ((1 - info.uncompressedSize / info.compressedSize) * -100).toFixed(1)
|
|
209
|
+
: '0.0';
|
|
210
|
+
const checkNames = {
|
|
211
|
+
[check.NONE]: 'None',
|
|
212
|
+
[check.CRC32]: 'CRC32',
|
|
213
|
+
[check.CRC64]: 'CRC64',
|
|
214
|
+
[check.SHA256]: 'SHA-256',
|
|
215
|
+
};
|
|
216
|
+
const checkName = checkNames[info.check] ?? `Unknown(${info.check})`;
|
|
217
|
+
if (options.verbose) {
|
|
218
|
+
console.log(`File: ${filename}`);
|
|
219
|
+
console.log(` Streams: ${info.streamCount}`);
|
|
220
|
+
console.log(` Blocks: ${info.blockCount}`);
|
|
221
|
+
console.log(` Compressed: ${formatBytes(info.compressedSize)}`);
|
|
222
|
+
console.log(` Uncompressed: ${formatBytes(info.uncompressedSize)}`);
|
|
223
|
+
console.log(` Ratio: ${ratio}%`);
|
|
224
|
+
console.log(` Check: ${checkName}`);
|
|
225
|
+
console.log(` Memory needed: ${formatBytes(info.memoryUsage)}`);
|
|
226
|
+
}
|
|
227
|
+
else {
|
|
228
|
+
// Compact format similar to xz -l
|
|
229
|
+
console.log('Strms Blocks Compressed Uncompressed Ratio Check Filename');
|
|
230
|
+
console.log(` ${info.streamCount} ${info.blockCount} ${formatBytes(info.compressedSize).padStart(12)} ${formatBytes(info.uncompressedSize).padStart(12)} ${ratio.padStart(5)}% ${checkName.padEnd(6)} ${filename}`);
|
|
231
|
+
}
|
|
232
|
+
return EXIT_SUCCESS;
|
|
233
|
+
}
|
|
234
|
+
catch (err) {
|
|
235
|
+
const message = err instanceof Error ? err.message : String(err);
|
|
236
|
+
warn(`nxz: ${filename}: ${message}`);
|
|
237
|
+
return EXIT_ERROR;
|
|
238
|
+
}
|
|
239
|
+
}
|
|
240
|
+
/**
|
|
241
|
+
* Compress a file
|
|
242
|
+
*/
|
|
243
|
+
async function compressFile(inputFile, options) {
|
|
244
|
+
const outputFile = options.stdout
|
|
245
|
+
? null
|
|
246
|
+
: (options.output ?? getOutputFilename(inputFile, 'compress'));
|
|
247
|
+
// Check if output exists
|
|
248
|
+
if (outputFile && existsSync(outputFile) && !options.force) {
|
|
249
|
+
warn(`nxz: ${outputFile}: File already exists; use -f to overwrite`);
|
|
250
|
+
return EXIT_ERROR;
|
|
251
|
+
}
|
|
252
|
+
// Track output file for SIGINT cleanup
|
|
253
|
+
currentOutputFile = outputFile;
|
|
254
|
+
try {
|
|
255
|
+
const stat = statSync(inputFile);
|
|
256
|
+
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);
|
|
268
|
+
}
|
|
269
|
+
else {
|
|
270
|
+
// Large file: use streams
|
|
271
|
+
const compressor = createXz({ preset: presetValue });
|
|
272
|
+
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
|
+
});
|
|
281
|
+
}
|
|
282
|
+
await pipeline(createReadStream(inputFile), compressor, createWriteStream(outputFile));
|
|
283
|
+
if (options.verbose) {
|
|
284
|
+
process.stderr.write('\n');
|
|
285
|
+
}
|
|
286
|
+
}
|
|
287
|
+
// Delete original unless -k or -c
|
|
288
|
+
if (!options.keep && !options.stdout) {
|
|
289
|
+
unlinkSync(inputFile);
|
|
290
|
+
}
|
|
291
|
+
// Clear tracking after successful completion
|
|
292
|
+
currentOutputFile = null;
|
|
293
|
+
return EXIT_SUCCESS;
|
|
294
|
+
}
|
|
295
|
+
catch (err) {
|
|
296
|
+
const message = err instanceof Error ? err.message : String(err);
|
|
297
|
+
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;
|
|
308
|
+
return EXIT_ERROR;
|
|
309
|
+
}
|
|
310
|
+
}
|
|
311
|
+
/**
|
|
312
|
+
* Decompress a file
|
|
313
|
+
*/
|
|
314
|
+
async function decompressFile(inputFile, options) {
|
|
315
|
+
const outputFile = options.stdout
|
|
316
|
+
? null
|
|
317
|
+
: (options.output ?? getOutputFilename(inputFile, 'decompress'));
|
|
318
|
+
// Check if output exists
|
|
319
|
+
if (outputFile && existsSync(outputFile) && !options.force) {
|
|
320
|
+
warn(`nxz: ${outputFile}: File already exists; use -f to overwrite`);
|
|
321
|
+
return EXIT_ERROR;
|
|
322
|
+
}
|
|
323
|
+
// Track output file for SIGINT cleanup
|
|
324
|
+
currentOutputFile = outputFile;
|
|
325
|
+
try {
|
|
326
|
+
// Validate XZ format
|
|
327
|
+
const fd = readFileSync(inputFile);
|
|
328
|
+
if (!isXZ(fd)) {
|
|
329
|
+
warn(`nxz: ${inputFile}: File format not recognized`);
|
|
330
|
+
currentOutputFile = null;
|
|
331
|
+
return EXIT_ERROR;
|
|
332
|
+
}
|
|
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);
|
|
343
|
+
}
|
|
344
|
+
else {
|
|
345
|
+
// Large file: use streams with progress
|
|
346
|
+
const decompressor = createUnxz();
|
|
347
|
+
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
|
+
});
|
|
356
|
+
}
|
|
357
|
+
await pipeline(createReadStream(inputFile), decompressor, createWriteStream(outputFile));
|
|
358
|
+
if (options.verbose) {
|
|
359
|
+
process.stderr.write('\n');
|
|
360
|
+
}
|
|
361
|
+
}
|
|
362
|
+
// Delete original unless -k or -c
|
|
363
|
+
if (!options.keep && !options.stdout) {
|
|
364
|
+
unlinkSync(inputFile);
|
|
365
|
+
}
|
|
366
|
+
// Clear tracking after successful completion
|
|
367
|
+
currentOutputFile = null;
|
|
368
|
+
return EXIT_SUCCESS;
|
|
369
|
+
}
|
|
370
|
+
catch (err) {
|
|
371
|
+
const message = err instanceof Error ? err.message : String(err);
|
|
372
|
+
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;
|
|
383
|
+
return EXIT_ERROR;
|
|
384
|
+
}
|
|
385
|
+
}
|
|
386
|
+
/**
|
|
387
|
+
* Process a single file
|
|
388
|
+
*/
|
|
389
|
+
async function processFile(filename, options) {
|
|
390
|
+
// Check file exists
|
|
391
|
+
if (!existsSync(filename)) {
|
|
392
|
+
warn(`nxz: ${filename}: No such file or directory`);
|
|
393
|
+
return EXIT_ERROR;
|
|
394
|
+
}
|
|
395
|
+
// Check if it's a directory
|
|
396
|
+
if (statSync(filename).isDirectory()) {
|
|
397
|
+
warn(`nxz: ${filename}: Is a directory, skipping`);
|
|
398
|
+
return EXIT_ERROR;
|
|
399
|
+
}
|
|
400
|
+
const mode = determineMode(options, filename);
|
|
401
|
+
switch (mode) {
|
|
402
|
+
case 'list':
|
|
403
|
+
return listFile(filename, options);
|
|
404
|
+
case 'compress':
|
|
405
|
+
return compressFile(filename, options);
|
|
406
|
+
case 'decompress':
|
|
407
|
+
return decompressFile(filename, options);
|
|
408
|
+
}
|
|
409
|
+
}
|
|
410
|
+
/**
|
|
411
|
+
* Read from stdin and process
|
|
412
|
+
*/
|
|
413
|
+
async function processStdin(options) {
|
|
414
|
+
const chunks = [];
|
|
415
|
+
for await (const chunk of process.stdin) {
|
|
416
|
+
chunks.push(chunk);
|
|
417
|
+
}
|
|
418
|
+
const input = Buffer.concat(chunks);
|
|
419
|
+
const mode = options.decompress ? 'decompress' : 'compress';
|
|
420
|
+
try {
|
|
421
|
+
if (mode === 'compress') {
|
|
422
|
+
const presetValue = options.extreme ? options.preset | preset.EXTREME : options.preset;
|
|
423
|
+
const compressed = xzSync(input, { preset: presetValue });
|
|
424
|
+
process.stdout.write(compressed);
|
|
425
|
+
}
|
|
426
|
+
else {
|
|
427
|
+
if (!isXZ(input)) {
|
|
428
|
+
warn('nxz: (stdin): File format not recognized');
|
|
429
|
+
return EXIT_ERROR;
|
|
430
|
+
}
|
|
431
|
+
const decompressed = unxzSync(input);
|
|
432
|
+
process.stdout.write(decompressed);
|
|
433
|
+
}
|
|
434
|
+
return EXIT_SUCCESS;
|
|
435
|
+
}
|
|
436
|
+
catch (err) {
|
|
437
|
+
const message = err instanceof Error ? err.message : String(err);
|
|
438
|
+
warn(`nxz: (stdin): ${message}`);
|
|
439
|
+
return EXIT_ERROR;
|
|
440
|
+
}
|
|
441
|
+
}
|
|
442
|
+
/**
|
|
443
|
+
* Main entry point
|
|
444
|
+
*/
|
|
445
|
+
async function main() {
|
|
446
|
+
// Setup signal handlers for graceful cleanup
|
|
447
|
+
setupSignalHandlers();
|
|
448
|
+
const options = parseCliArgs(process.argv.slice(2));
|
|
449
|
+
// Set global quiet mode
|
|
450
|
+
quietMode = options.quiet;
|
|
451
|
+
// Handle help and version first
|
|
452
|
+
if (options.help) {
|
|
453
|
+
printHelp();
|
|
454
|
+
process.exit(EXIT_SUCCESS);
|
|
455
|
+
}
|
|
456
|
+
if (options.version) {
|
|
457
|
+
printVersion();
|
|
458
|
+
process.exit(EXIT_SUCCESS);
|
|
459
|
+
}
|
|
460
|
+
// No files: read from stdin
|
|
461
|
+
if (options.files.length === 0 || (options.files.length === 1 && options.files[0] === '-')) {
|
|
462
|
+
const exitCode = await processStdin(options);
|
|
463
|
+
process.exit(exitCode);
|
|
464
|
+
}
|
|
465
|
+
// Process each file
|
|
466
|
+
let exitCode = EXIT_SUCCESS;
|
|
467
|
+
for (const file of options.files) {
|
|
468
|
+
if (file === '-') {
|
|
469
|
+
const code = await processStdin(options);
|
|
470
|
+
if (code !== EXIT_SUCCESS)
|
|
471
|
+
exitCode = code;
|
|
472
|
+
}
|
|
473
|
+
else {
|
|
474
|
+
const code = await processFile(file, options);
|
|
475
|
+
if (code !== EXIT_SUCCESS)
|
|
476
|
+
exitCode = code;
|
|
477
|
+
}
|
|
478
|
+
}
|
|
479
|
+
process.exit(exitCode);
|
|
480
|
+
}
|
|
481
|
+
// Run main
|
|
482
|
+
main().catch((err) => {
|
|
483
|
+
console.error(`nxz: ${err.message}`);
|
|
484
|
+
process.exit(EXIT_ERROR);
|
|
485
|
+
});
|
|
486
|
+
//# sourceMappingURL=nxz.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"nxz.js","sourceRoot":"","sources":["../../src/cli/nxz.ts"],"names":[],"mappings":"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"}
|
package/lib/lzma.d.ts
CHANGED
|
@@ -277,6 +277,89 @@ export declare function createUnxz(lzmaOptions?: LZMAOptions, options?: Transfor
|
|
|
277
277
|
* @returns true if multi-threaded compression is available
|
|
278
278
|
*/
|
|
279
279
|
export declare function hasThreads(): boolean;
|
|
280
|
+
/**
|
|
281
|
+
* Check if a buffer contains XZ compressed data by examining magic bytes.
|
|
282
|
+
* @param buffer - Buffer to check (needs at least 6 bytes)
|
|
283
|
+
* @returns true if the buffer starts with XZ magic bytes
|
|
284
|
+
* @example
|
|
285
|
+
* ```ts
|
|
286
|
+
* const compressed = await xzAsync(Buffer.from('Hello'));
|
|
287
|
+
* console.log(isXZ(compressed)); // true
|
|
288
|
+
* console.log(isXZ(Buffer.from('Hello'))); // false
|
|
289
|
+
* ```
|
|
290
|
+
*/
|
|
291
|
+
export declare function isXZ(buffer: Buffer): boolean;
|
|
292
|
+
/**
|
|
293
|
+
* Get the runtime version of liblzma as a string.
|
|
294
|
+
* @returns Version string like "5.4.1"
|
|
295
|
+
* @example
|
|
296
|
+
* ```ts
|
|
297
|
+
* console.log(versionString()); // "5.4.1"
|
|
298
|
+
* ```
|
|
299
|
+
*/
|
|
300
|
+
export declare function versionString(): string;
|
|
301
|
+
/**
|
|
302
|
+
* Get the runtime version of liblzma as a number.
|
|
303
|
+
* Format: MAJOR * 10000000 + MINOR * 10000 + PATCH * 10
|
|
304
|
+
* @returns Version number (e.g., 50040010 for 5.4.1)
|
|
305
|
+
* @example
|
|
306
|
+
* ```ts
|
|
307
|
+
* console.log(versionNumber()); // 50040010
|
|
308
|
+
* ```
|
|
309
|
+
*/
|
|
310
|
+
export declare function versionNumber(): number;
|
|
311
|
+
/**
|
|
312
|
+
* Get the memory usage estimate for encoding with a given preset.
|
|
313
|
+
* @param presetLevel - Compression preset (0-9, optionally OR'd with preset.EXTREME)
|
|
314
|
+
* @returns Memory usage in bytes, or 0 if preset is invalid
|
|
315
|
+
* @example
|
|
316
|
+
* ```ts
|
|
317
|
+
* console.log(easyEncoderMemusage(6)); // ~104857600 (100 MB)
|
|
318
|
+
* console.log(easyEncoderMemusage(9 | preset.EXTREME)); // ~712507392 (680 MB)
|
|
319
|
+
* ```
|
|
320
|
+
*/
|
|
321
|
+
export declare function easyEncoderMemusage(presetLevel: number): number;
|
|
322
|
+
/**
|
|
323
|
+
* Get the memory usage estimate for decoding.
|
|
324
|
+
* @returns Memory usage in bytes for decoder initialization
|
|
325
|
+
* @example
|
|
326
|
+
* ```ts
|
|
327
|
+
* console.log(easyDecoderMemusage()); // ~18874368 (18 MB)
|
|
328
|
+
* ```
|
|
329
|
+
*/
|
|
330
|
+
export declare function easyDecoderMemusage(): number;
|
|
331
|
+
/**
|
|
332
|
+
* Metadata extracted from an XZ file index.
|
|
333
|
+
*/
|
|
334
|
+
export interface XZFileIndex {
|
|
335
|
+
/** Uncompressed size in bytes */
|
|
336
|
+
uncompressedSize: number;
|
|
337
|
+
/** Compressed size in bytes (excluding headers) */
|
|
338
|
+
compressedSize: number;
|
|
339
|
+
/** Number of streams in the file */
|
|
340
|
+
streamCount: number;
|
|
341
|
+
/** Number of blocks in the file */
|
|
342
|
+
blockCount: number;
|
|
343
|
+
/** Integrity check type (see check.CRC32, check.CRC64, etc.) */
|
|
344
|
+
check: number;
|
|
345
|
+
/** Memory usage of the index structure */
|
|
346
|
+
memoryUsage: number;
|
|
347
|
+
}
|
|
348
|
+
/**
|
|
349
|
+
* Parse the index from a complete XZ file buffer to get metadata.
|
|
350
|
+
* This allows you to know the uncompressed size before decompressing.
|
|
351
|
+
* @param buffer - Complete XZ file buffer
|
|
352
|
+
* @returns Object with file metadata
|
|
353
|
+
* @throws Error if buffer is not a valid XZ stream
|
|
354
|
+
* @example
|
|
355
|
+
* ```ts
|
|
356
|
+
* const compressed = await xzAsync(largeBuffer);
|
|
357
|
+
* const info = parseFileIndex(compressed);
|
|
358
|
+
* console.log(`Uncompressed: ${info.uncompressedSize}, Compressed: ${info.compressedSize}`);
|
|
359
|
+
* console.log(`Ratio: ${(info.compressedSize / info.uncompressedSize * 100).toFixed(1)}%`);
|
|
360
|
+
* ```
|
|
361
|
+
*/
|
|
362
|
+
export declare function parseFileIndex(buffer: Buffer): XZFileIndex;
|
|
280
363
|
/**
|
|
281
364
|
* Human-readable error messages for LZMA status codes.
|
|
282
365
|
*/
|
package/lib/lzma.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lzma.d.ts","sourceRoot":"","sources":["../src/lzma.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"lzma.d.ts","sourceRoot":"","sources":["../src/lzma.ts"],"names":[],"mappings":"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"}
|
package/lib/lzma.js
CHANGED
|
@@ -586,6 +586,84 @@ export function createUnxz(lzmaOptions, options) {
|
|
|
586
586
|
export function hasThreads() {
|
|
587
587
|
return liblzma.HAS_THREADS_SUPPORT;
|
|
588
588
|
}
|
|
589
|
+
/**
|
|
590
|
+
* Check if a buffer contains XZ compressed data by examining magic bytes.
|
|
591
|
+
* @param buffer - Buffer to check (needs at least 6 bytes)
|
|
592
|
+
* @returns true if the buffer starts with XZ magic bytes
|
|
593
|
+
* @example
|
|
594
|
+
* ```ts
|
|
595
|
+
* const compressed = await xzAsync(Buffer.from('Hello'));
|
|
596
|
+
* console.log(isXZ(compressed)); // true
|
|
597
|
+
* console.log(isXZ(Buffer.from('Hello'))); // false
|
|
598
|
+
* ```
|
|
599
|
+
*/
|
|
600
|
+
export function isXZ(buffer) {
|
|
601
|
+
return liblzma.isXZ(buffer);
|
|
602
|
+
}
|
|
603
|
+
/**
|
|
604
|
+
* Get the runtime version of liblzma as a string.
|
|
605
|
+
* @returns Version string like "5.4.1"
|
|
606
|
+
* @example
|
|
607
|
+
* ```ts
|
|
608
|
+
* console.log(versionString()); // "5.4.1"
|
|
609
|
+
* ```
|
|
610
|
+
*/
|
|
611
|
+
export function versionString() {
|
|
612
|
+
return liblzma.versionString();
|
|
613
|
+
}
|
|
614
|
+
/**
|
|
615
|
+
* Get the runtime version of liblzma as a number.
|
|
616
|
+
* Format: MAJOR * 10000000 + MINOR * 10000 + PATCH * 10
|
|
617
|
+
* @returns Version number (e.g., 50040010 for 5.4.1)
|
|
618
|
+
* @example
|
|
619
|
+
* ```ts
|
|
620
|
+
* console.log(versionNumber()); // 50040010
|
|
621
|
+
* ```
|
|
622
|
+
*/
|
|
623
|
+
export function versionNumber() {
|
|
624
|
+
return liblzma.versionNumber();
|
|
625
|
+
}
|
|
626
|
+
/**
|
|
627
|
+
* Get the memory usage estimate for encoding with a given preset.
|
|
628
|
+
* @param presetLevel - Compression preset (0-9, optionally OR'd with preset.EXTREME)
|
|
629
|
+
* @returns Memory usage in bytes, or 0 if preset is invalid
|
|
630
|
+
* @example
|
|
631
|
+
* ```ts
|
|
632
|
+
* console.log(easyEncoderMemusage(6)); // ~104857600 (100 MB)
|
|
633
|
+
* console.log(easyEncoderMemusage(9 | preset.EXTREME)); // ~712507392 (680 MB)
|
|
634
|
+
* ```
|
|
635
|
+
*/
|
|
636
|
+
export function easyEncoderMemusage(presetLevel) {
|
|
637
|
+
return liblzma.easyEncoderMemusage(presetLevel);
|
|
638
|
+
}
|
|
639
|
+
/**
|
|
640
|
+
* Get the memory usage estimate for decoding.
|
|
641
|
+
* @returns Memory usage in bytes for decoder initialization
|
|
642
|
+
* @example
|
|
643
|
+
* ```ts
|
|
644
|
+
* console.log(easyDecoderMemusage()); // ~18874368 (18 MB)
|
|
645
|
+
* ```
|
|
646
|
+
*/
|
|
647
|
+
export function easyDecoderMemusage() {
|
|
648
|
+
return liblzma.easyDecoderMemusage();
|
|
649
|
+
}
|
|
650
|
+
/**
|
|
651
|
+
* Parse the index from a complete XZ file buffer to get metadata.
|
|
652
|
+
* This allows you to know the uncompressed size before decompressing.
|
|
653
|
+
* @param buffer - Complete XZ file buffer
|
|
654
|
+
* @returns Object with file metadata
|
|
655
|
+
* @throws Error if buffer is not a valid XZ stream
|
|
656
|
+
* @example
|
|
657
|
+
* ```ts
|
|
658
|
+
* const compressed = await xzAsync(largeBuffer);
|
|
659
|
+
* const info = parseFileIndex(compressed);
|
|
660
|
+
* console.log(`Uncompressed: ${info.uncompressedSize}, Compressed: ${info.compressedSize}`);
|
|
661
|
+
* console.log(`Ratio: ${(info.compressedSize / info.uncompressedSize * 100).toFixed(1)}%`);
|
|
662
|
+
* ```
|
|
663
|
+
*/
|
|
664
|
+
export function parseFileIndex(buffer) {
|
|
665
|
+
return liblzma.parseFileIndex(buffer);
|
|
666
|
+
}
|
|
589
667
|
/* v8 ignore next */
|
|
590
668
|
/**
|
|
591
669
|
* Human-readable error messages for LZMA status codes.
|
package/lib/lzma.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lzma.js","sourceRoot":"","sources":["../src/lzma.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"lzma.js","sourceRoot":"","sources":["../src/lzma.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,9 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "node-liblzma",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.2.0",
|
|
4
4
|
"description": "NodeJS wrapper for liblzma",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./lib/lzma.js",
|
|
7
|
+
"bin": {
|
|
8
|
+
"nxz": "./lib/cli/nxz.js"
|
|
9
|
+
},
|
|
7
10
|
"exports": {
|
|
8
11
|
".": {
|
|
9
12
|
"import": "./lib/lzma.js",
|
package/src/bindings/module.cpp
CHANGED
|
@@ -17,6 +17,193 @@
|
|
|
17
17
|
**/
|
|
18
18
|
|
|
19
19
|
#include "node-liblzma.hpp"
|
|
20
|
+
#include <cstring>
|
|
21
|
+
|
|
22
|
+
// XZ magic bytes: 0xFD + "7zXZ" + 0x00
|
|
23
|
+
static const uint8_t XZ_MAGIC[6] = {0xFD, 0x37, 0x7A, 0x58, 0x5A, 0x00};
|
|
24
|
+
|
|
25
|
+
/**
|
|
26
|
+
* Check if a buffer starts with the XZ magic bytes.
|
|
27
|
+
* @param info[0] Buffer to check
|
|
28
|
+
* @returns true if the buffer is an XZ stream, false otherwise
|
|
29
|
+
*/
|
|
30
|
+
Napi::Value IsXZ(const Napi::CallbackInfo &info)
|
|
31
|
+
{
|
|
32
|
+
Napi::Env env = info.Env();
|
|
33
|
+
|
|
34
|
+
if (info.Length() < 1 || !info[0].IsBuffer())
|
|
35
|
+
{
|
|
36
|
+
Napi::TypeError::New(env, "Expected a Buffer argument").ThrowAsJavaScriptException();
|
|
37
|
+
return env.Null();
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
Napi::Buffer<uint8_t> buf = info[0].As<Napi::Buffer<uint8_t>>();
|
|
41
|
+
|
|
42
|
+
// Need at least 6 bytes for XZ magic
|
|
43
|
+
if (buf.Length() < 6)
|
|
44
|
+
{
|
|
45
|
+
return Napi::Boolean::New(env, false);
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
bool isXz = std::memcmp(buf.Data(), XZ_MAGIC, 6) == 0;
|
|
49
|
+
return Napi::Boolean::New(env, isXz);
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
/**
|
|
53
|
+
* Get liblzma version string (runtime).
|
|
54
|
+
* @returns Version string like "5.4.1"
|
|
55
|
+
*/
|
|
56
|
+
Napi::Value VersionString(const Napi::CallbackInfo &info)
|
|
57
|
+
{
|
|
58
|
+
Napi::Env env = info.Env();
|
|
59
|
+
return Napi::String::New(env, lzma_version_string());
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
/**
|
|
63
|
+
* Get liblzma version number (runtime).
|
|
64
|
+
* @returns Version as integer (e.g., 50040010 for 5.4.1)
|
|
65
|
+
*/
|
|
66
|
+
Napi::Value VersionNumber(const Napi::CallbackInfo &info)
|
|
67
|
+
{
|
|
68
|
+
Napi::Env env = info.Env();
|
|
69
|
+
return Napi::Number::New(env, static_cast<double>(lzma_version_number()));
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
/**
|
|
73
|
+
* Get memory usage for easy encoder with given preset.
|
|
74
|
+
* @param info[0] Preset level (0-9, optionally OR'd with LZMA_PRESET_EXTREME)
|
|
75
|
+
* @returns Memory usage in bytes, or 0 if preset is invalid
|
|
76
|
+
*/
|
|
77
|
+
Napi::Value EasyEncoderMemusage(const Napi::CallbackInfo &info)
|
|
78
|
+
{
|
|
79
|
+
Napi::Env env = info.Env();
|
|
80
|
+
|
|
81
|
+
if (info.Length() < 1 || !info[0].IsNumber())
|
|
82
|
+
{
|
|
83
|
+
Napi::TypeError::New(env, "Expected a preset number argument").ThrowAsJavaScriptException();
|
|
84
|
+
return env.Null();
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
uint32_t preset = info[0].As<Napi::Number>().Uint32Value();
|
|
88
|
+
uint64_t memusage = lzma_easy_encoder_memusage(preset);
|
|
89
|
+
|
|
90
|
+
return Napi::Number::New(env, static_cast<double>(memusage));
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
/**
|
|
94
|
+
* Get memory usage for easy decoder.
|
|
95
|
+
* @returns Memory usage in bytes
|
|
96
|
+
*/
|
|
97
|
+
Napi::Value EasyDecoderMemusage(const Napi::CallbackInfo &info)
|
|
98
|
+
{
|
|
99
|
+
Napi::Env env = info.Env();
|
|
100
|
+
|
|
101
|
+
// lzma_easy_decoder_memusage takes a preset for memlimit estimation
|
|
102
|
+
// but the actual decoder doesn't need a preset. Use default preset.
|
|
103
|
+
uint64_t memusage = lzma_easy_decoder_memusage(LZMA_PRESET_DEFAULT);
|
|
104
|
+
|
|
105
|
+
return Napi::Number::New(env, static_cast<double>(memusage));
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
/**
|
|
109
|
+
* Parse the Stream Footer and Index from an XZ file to get metadata.
|
|
110
|
+
* @param info[0] Buffer containing the XZ file (must be complete)
|
|
111
|
+
* @returns Object with uncompressed_size, compressed_size, stream_count, block_count, check
|
|
112
|
+
*/
|
|
113
|
+
Napi::Value ParseFileIndex(const Napi::CallbackInfo &info)
|
|
114
|
+
{
|
|
115
|
+
Napi::Env env = info.Env();
|
|
116
|
+
|
|
117
|
+
if (info.Length() < 1 || !info[0].IsBuffer())
|
|
118
|
+
{
|
|
119
|
+
Napi::TypeError::New(env, "Expected a Buffer argument").ThrowAsJavaScriptException();
|
|
120
|
+
return env.Null();
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
Napi::Buffer<uint8_t> buf = info[0].As<Napi::Buffer<uint8_t>>();
|
|
124
|
+
const uint8_t *data = buf.Data();
|
|
125
|
+
size_t size = buf.Length();
|
|
126
|
+
|
|
127
|
+
// Minimum XZ file: header (12) + block (varies) + index (varies) + footer (12)
|
|
128
|
+
// Stream header is 12 bytes, footer is 12 bytes
|
|
129
|
+
if (size < LZMA_STREAM_HEADER_SIZE * 2)
|
|
130
|
+
{
|
|
131
|
+
Napi::Error::New(env, "Buffer too small for XZ stream").ThrowAsJavaScriptException();
|
|
132
|
+
return env.Null();
|
|
133
|
+
}
|
|
134
|
+
|
|
135
|
+
// Verify XZ magic
|
|
136
|
+
if (std::memcmp(data, XZ_MAGIC, 6) != 0)
|
|
137
|
+
{
|
|
138
|
+
Napi::Error::New(env, "Not an XZ stream (invalid magic)").ThrowAsJavaScriptException();
|
|
139
|
+
return env.Null();
|
|
140
|
+
}
|
|
141
|
+
|
|
142
|
+
// Parse stream header
|
|
143
|
+
lzma_stream_flags header_flags;
|
|
144
|
+
lzma_ret ret = lzma_stream_header_decode(&header_flags, data);
|
|
145
|
+
if (ret != LZMA_OK)
|
|
146
|
+
{
|
|
147
|
+
Napi::Error::New(env, "Failed to decode stream header").ThrowAsJavaScriptException();
|
|
148
|
+
return env.Null();
|
|
149
|
+
}
|
|
150
|
+
|
|
151
|
+
// Parse stream footer (last 12 bytes)
|
|
152
|
+
lzma_stream_flags footer_flags;
|
|
153
|
+
ret = lzma_stream_footer_decode(&footer_flags, data + size - LZMA_STREAM_HEADER_SIZE);
|
|
154
|
+
if (ret != LZMA_OK)
|
|
155
|
+
{
|
|
156
|
+
Napi::Error::New(env, "Failed to decode stream footer").ThrowAsJavaScriptException();
|
|
157
|
+
return env.Null();
|
|
158
|
+
}
|
|
159
|
+
|
|
160
|
+
// Verify header and footer match
|
|
161
|
+
ret = lzma_stream_flags_compare(&header_flags, &footer_flags);
|
|
162
|
+
if (ret != LZMA_OK)
|
|
163
|
+
{
|
|
164
|
+
Napi::Error::New(env, "Stream header and footer do not match").ThrowAsJavaScriptException();
|
|
165
|
+
return env.Null();
|
|
166
|
+
}
|
|
167
|
+
|
|
168
|
+
// Calculate index position: footer starts at (size - 12), index is backward_size bytes before that
|
|
169
|
+
size_t footer_pos = size - LZMA_STREAM_HEADER_SIZE;
|
|
170
|
+
size_t index_size = footer_flags.backward_size;
|
|
171
|
+
|
|
172
|
+
if (index_size > footer_pos - LZMA_STREAM_HEADER_SIZE)
|
|
173
|
+
{
|
|
174
|
+
Napi::Error::New(env, "Invalid index size in footer").ThrowAsJavaScriptException();
|
|
175
|
+
return env.Null();
|
|
176
|
+
}
|
|
177
|
+
|
|
178
|
+
size_t index_pos = footer_pos - index_size;
|
|
179
|
+
|
|
180
|
+
// Decode the index
|
|
181
|
+
lzma_index *index = nullptr;
|
|
182
|
+
uint64_t memlimit = UINT64_MAX;
|
|
183
|
+
size_t in_pos = 0;
|
|
184
|
+
|
|
185
|
+
ret = lzma_index_buffer_decode(&index, &memlimit, nullptr,
|
|
186
|
+
data + index_pos, &in_pos, index_size);
|
|
187
|
+
if (ret != LZMA_OK || index == nullptr)
|
|
188
|
+
{
|
|
189
|
+
Napi::Error::New(env, "Failed to decode index").ThrowAsJavaScriptException();
|
|
190
|
+
return env.Null();
|
|
191
|
+
}
|
|
192
|
+
|
|
193
|
+
// Extract metadata from index
|
|
194
|
+
Napi::Object result = Napi::Object::New(env);
|
|
195
|
+
result.Set("uncompressedSize", Napi::Number::New(env, static_cast<double>(lzma_index_uncompressed_size(index))));
|
|
196
|
+
result.Set("compressedSize", Napi::Number::New(env, static_cast<double>(lzma_index_total_size(index))));
|
|
197
|
+
result.Set("streamCount", Napi::Number::New(env, static_cast<double>(lzma_index_stream_count(index))));
|
|
198
|
+
result.Set("blockCount", Napi::Number::New(env, static_cast<double>(lzma_index_block_count(index))));
|
|
199
|
+
result.Set("check", Napi::Number::New(env, static_cast<double>(footer_flags.check)));
|
|
200
|
+
result.Set("memoryUsage", Napi::Number::New(env, static_cast<double>(lzma_index_memused(index))));
|
|
201
|
+
|
|
202
|
+
// Clean up
|
|
203
|
+
lzma_index_end(index, nullptr);
|
|
204
|
+
|
|
205
|
+
return result;
|
|
206
|
+
}
|
|
20
207
|
|
|
21
208
|
Napi::Object Init(Napi::Env env, Napi::Object exports)
|
|
22
209
|
{
|
|
@@ -101,6 +288,15 @@ Napi::Object Init(Napi::Env env, Napi::Object exports)
|
|
|
101
288
|
|
|
102
289
|
// Tell companion script if we are thread-able or not
|
|
103
290
|
exports.Set(Napi::String::New(env, "HAS_THREADS_SUPPORT"), Napi::Boolean::New(env, HAS_THREADS_SUPPORT));
|
|
291
|
+
|
|
292
|
+
// Utility functions
|
|
293
|
+
exports.Set(Napi::String::New(env, "isXZ"), Napi::Function::New(env, IsXZ));
|
|
294
|
+
exports.Set(Napi::String::New(env, "versionString"), Napi::Function::New(env, VersionString));
|
|
295
|
+
exports.Set(Napi::String::New(env, "versionNumber"), Napi::Function::New(env, VersionNumber));
|
|
296
|
+
exports.Set(Napi::String::New(env, "easyEncoderMemusage"), Napi::Function::New(env, EasyEncoderMemusage));
|
|
297
|
+
exports.Set(Napi::String::New(env, "easyDecoderMemusage"), Napi::Function::New(env, EasyDecoderMemusage));
|
|
298
|
+
exports.Set(Napi::String::New(env, "parseFileIndex"), Napi::Function::New(env, ParseFileIndex));
|
|
299
|
+
|
|
104
300
|
return exports;
|
|
105
301
|
}
|
|
106
302
|
|