text-compress 2.0.3 → 2.0.5
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 +9 -0
- package/dist/cli/analytics.d.ts +14 -3
- package/dist/cli/analytics.d.ts.map +1 -1
- package/dist/cli/analytics.js +46 -8
- package/dist/cli/analytics.js.map +1 -1
- package/dist/cli/commands/compress.d.ts.map +1 -1
- package/dist/cli/commands/compress.js +31 -26
- package/dist/cli/commands/compress.js.map +1 -1
- package/dist/cli/commands/decompress.d.ts.map +1 -1
- package/dist/cli/commands/decompress.js +24 -18
- package/dist/cli/commands/decompress.js.map +1 -1
- package/dist/cli/main.d.ts.map +1 -1
- package/dist/cli/main.js +8 -0
- package/dist/cli/main.js.map +1 -1
- package/dist/cli/usage.d.ts.map +1 -1
- package/dist/cli/usage.js +1 -0
- package/dist/cli/usage.js.map +1 -1
- package/dist/cli/version.d.ts +8 -0
- package/dist/cli/version.d.ts.map +1 -0
- package/dist/cli/version.js +19 -0
- package/dist/cli/version.js.map +1 -0
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -67,6 +67,9 @@ text-compress ./large-file.txt -s 4000
|
|
|
67
67
|
# Inline text
|
|
68
68
|
text-compress -t "hello world" -o output.txt
|
|
69
69
|
|
|
70
|
+
# Show version
|
|
71
|
+
text-compress --version
|
|
72
|
+
|
|
70
73
|
# Force mode when auto-detect is wrong
|
|
71
74
|
text-compress --compress ./looks-compressed.txt
|
|
72
75
|
text-compress --decompress ./plain.md # errors if not valid payload
|
|
@@ -184,6 +187,12 @@ See [docs/ARCHITECTURE.md](docs/ARCHITECTURE.md) and [docs/LEARNING.md](docs/LEA
|
|
|
184
187
|
|
|
185
188
|
## Changelog
|
|
186
189
|
|
|
190
|
+
### v2.0.4 — `text-compress` (2026-07-09)
|
|
191
|
+
|
|
192
|
+
- Show package version on every run (`text-compress v2.0.4`)
|
|
193
|
+
- Add `-V` / `--version` flag
|
|
194
|
+
- Improve CLI summary: aligned stats, human-readable sizes, clearer split output
|
|
195
|
+
|
|
187
196
|
### v2.0.3 — `text-compress` (2026-07-09)
|
|
188
197
|
|
|
189
198
|
- Use printable ASCII `;TCP2;` split headers so part files stay copyable in text editors (legacy binary `TCP\x02` headers still accepted on read)
|
package/dist/cli/analytics.d.ts
CHANGED
|
@@ -1,10 +1,21 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @module cli/analytics
|
|
3
3
|
*
|
|
4
|
-
* Post-run
|
|
4
|
+
* Post-run summary printed to stdout after each CLI command.
|
|
5
5
|
*/
|
|
6
|
-
/** Print
|
|
7
|
-
export declare function
|
|
6
|
+
/** Print package version and exit (for `-V` / `--version`). */
|
|
7
|
+
export declare function printVersion(): void;
|
|
8
|
+
/** Format a byte count for human-readable CLI output. */
|
|
9
|
+
export declare function formatBytes(bytes: number): string;
|
|
10
|
+
/** Format integers with thousands separators. */
|
|
11
|
+
export declare function formatCount(value: number): string;
|
|
12
|
+
export interface RunSummary {
|
|
13
|
+
title: string;
|
|
14
|
+
outputPaths: string[];
|
|
15
|
+
stats: Record<string, string | number>;
|
|
16
|
+
}
|
|
17
|
+
/** Print a versioned, aligned summary block after a successful run. */
|
|
18
|
+
export declare function printRunSummary(summary: RunSummary): void;
|
|
8
19
|
/** Build split-related analytics fields when output was split. */
|
|
9
20
|
export declare function splitAnalytics(splitChunkSize: number | undefined, outputParts: number): Record<string, string | number>;
|
|
10
21
|
//# sourceMappingURL=analytics.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"analytics.d.ts","sourceRoot":"","sources":["../../src/cli/analytics.ts"],"names":[],"mappings":"AAAA;;;;GAIG;
|
|
1
|
+
{"version":3,"file":"analytics.d.ts","sourceRoot":"","sources":["../../src/cli/analytics.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,+DAA+D;AAC/D,wBAAgB,YAAY,IAAI,IAAI,CAEnC;AAED,yDAAyD;AACzD,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAYjD;AAED,iDAAiD;AACjD,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAEjD;AAED,MAAM,WAAW,UAAU;IACzB,KAAK,EAAE,MAAM,CAAA;IACb,WAAW,EAAE,MAAM,EAAE,CAAA;IACrB,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,CAAA;CACvC;AAED,uEAAuE;AACvE,wBAAgB,eAAe,CAAC,OAAO,EAAE,UAAU,GAAG,IAAI,CAoBzD;AAED,kEAAkE;AAClE,wBAAgB,cAAc,CAC5B,cAAc,EAAE,MAAM,GAAG,SAAS,EAClC,WAAW,EAAE,MAAM,GAClB,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,CAMjC"}
|
package/dist/cli/analytics.js
CHANGED
|
@@ -1,13 +1,51 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @module cli/analytics
|
|
3
3
|
*
|
|
4
|
-
* Post-run
|
|
4
|
+
* Post-run summary printed to stdout after each CLI command.
|
|
5
5
|
*/
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
6
|
+
import { getVersion } from "./version.js";
|
|
7
|
+
/** Print package version and exit (for `-V` / `--version`). */
|
|
8
|
+
export function printVersion() {
|
|
9
|
+
console.log(`text-compress v${getVersion()}`);
|
|
10
|
+
}
|
|
11
|
+
/** Format a byte count for human-readable CLI output. */
|
|
12
|
+
export function formatBytes(bytes) {
|
|
13
|
+
if (bytes < 1024)
|
|
14
|
+
return `${bytes} B`;
|
|
15
|
+
const units = ["KB", "MB", "GB", "TB"];
|
|
16
|
+
let value = bytes / 1024;
|
|
17
|
+
for (const unit of units) {
|
|
18
|
+
if (value < 1024) {
|
|
19
|
+
const digits = value < 10 ? 1 : 0;
|
|
20
|
+
return `${value.toFixed(digits)} ${unit}`;
|
|
21
|
+
}
|
|
22
|
+
value /= 1024;
|
|
23
|
+
}
|
|
24
|
+
return `${value.toFixed(1)} TB`;
|
|
25
|
+
}
|
|
26
|
+
/** Format integers with thousands separators. */
|
|
27
|
+
export function formatCount(value) {
|
|
28
|
+
return value.toLocaleString("en-US");
|
|
29
|
+
}
|
|
30
|
+
/** Print a versioned, aligned summary block after a successful run. */
|
|
31
|
+
export function printRunSummary(summary) {
|
|
32
|
+
console.log(`text-compress v${getVersion()}`);
|
|
33
|
+
console.log();
|
|
34
|
+
console.log(summary.title);
|
|
35
|
+
if (summary.outputPaths.length > 1) {
|
|
36
|
+
for (const path of summary.outputPaths) {
|
|
37
|
+
console.log(` ${path}`);
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
else if (summary.outputPaths.length === 1) {
|
|
41
|
+
console.log(` ${summary.outputPaths[0]}`);
|
|
42
|
+
}
|
|
43
|
+
if (Object.keys(summary.stats).length === 0)
|
|
44
|
+
return;
|
|
45
|
+
console.log();
|
|
46
|
+
const width = Math.max(...Object.keys(summary.stats).map((key) => key.length));
|
|
47
|
+
for (const [key, value] of Object.entries(summary.stats)) {
|
|
48
|
+
console.log(` ${key.padEnd(width)} ${value}`);
|
|
11
49
|
}
|
|
12
50
|
}
|
|
13
51
|
/** Build split-related analytics fields when output was split. */
|
|
@@ -15,8 +53,8 @@ export function splitAnalytics(splitChunkSize, outputParts) {
|
|
|
15
53
|
if (splitChunkSize === undefined)
|
|
16
54
|
return {};
|
|
17
55
|
return {
|
|
18
|
-
"Split
|
|
19
|
-
|
|
56
|
+
"Split limit": `${formatCount(splitChunkSize)} chars / part`,
|
|
57
|
+
Parts: outputParts,
|
|
20
58
|
};
|
|
21
59
|
}
|
|
22
60
|
//# sourceMappingURL=analytics.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"analytics.js","sourceRoot":"","sources":["../../src/cli/analytics.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,
|
|
1
|
+
{"version":3,"file":"analytics.js","sourceRoot":"","sources":["../../src/cli/analytics.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AAEzC,+DAA+D;AAC/D,MAAM,UAAU,YAAY;IAC1B,OAAO,CAAC,GAAG,CAAC,kBAAkB,UAAU,EAAE,EAAE,CAAC,CAAA;AAC/C,CAAC;AAED,yDAAyD;AACzD,MAAM,UAAU,WAAW,CAAC,KAAa;IACvC,IAAI,KAAK,GAAG,IAAI;QAAE,OAAO,GAAG,KAAK,IAAI,CAAA;IACrC,MAAM,KAAK,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAU,CAAA;IAC/C,IAAI,KAAK,GAAG,KAAK,GAAG,IAAI,CAAA;IACxB,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,IAAI,KAAK,GAAG,IAAI,EAAE,CAAC;YACjB,MAAM,MAAM,GAAG,KAAK,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;YACjC,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,IAAI,EAAE,CAAA;QAC3C,CAAC;QACD,KAAK,IAAI,IAAI,CAAA;IACf,CAAC;IACD,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAA;AACjC,CAAC;AAED,iDAAiD;AACjD,MAAM,UAAU,WAAW,CAAC,KAAa;IACvC,OAAO,KAAK,CAAC,cAAc,CAAC,OAAO,CAAC,CAAA;AACtC,CAAC;AAQD,uEAAuE;AACvE,MAAM,UAAU,eAAe,CAAC,OAAmB;IACjD,OAAO,CAAC,GAAG,CAAC,kBAAkB,UAAU,EAAE,EAAE,CAAC,CAAA;IAC7C,OAAO,CAAC,GAAG,EAAE,CAAA;IACb,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;IAE1B,IAAI,OAAO,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACnC,KAAK,MAAM,IAAI,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC;YACvC,OAAO,CAAC,GAAG,CAAC,KAAK,IAAI,EAAE,CAAC,CAAA;QAC1B,CAAC;IACH,CAAC;SAAM,IAAI,OAAO,CAAC,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC5C,OAAO,CAAC,GAAG,CAAC,KAAK,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC,CAAA;IAC5C,CAAC;IAED,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,MAAM,KAAK,CAAC;QAAE,OAAM;IAEnD,OAAO,CAAC,GAAG,EAAE,CAAA;IACb,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAA;IAC9E,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACzD,OAAO,CAAC,GAAG,CAAC,KAAK,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,KAAK,EAAE,CAAC,CAAA;IACjD,CAAC;AACH,CAAC;AAED,kEAAkE;AAClE,MAAM,UAAU,cAAc,CAC5B,cAAkC,EAClC,WAAmB;IAEnB,IAAI,cAAc,KAAK,SAAS;QAAE,OAAO,EAAE,CAAA;IAC3C,OAAO;QACL,aAAa,EAAE,GAAG,WAAW,CAAC,cAAc,CAAC,eAAe;QAC5D,KAAK,EAAE,WAAW;KACnB,CAAA;AACH,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"compress.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/compress.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAMH,OAAO,EAAE,KAAK,IAAI,EAA8B,MAAM,YAAY,CAAA;AAIlE,uCAAuC;AACvC,wBAAsB,WAAW,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"compress.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/compress.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAMH,OAAO,EAAE,KAAK,IAAI,EAA8B,MAAM,YAAY,CAAA;AAIlE,uCAAuC;AACvC,wBAAsB,WAAW,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAwE3D"}
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
import { compress } from "../../api/text.js";
|
|
7
7
|
import { assertDirectory } from "../../fs/paths.js";
|
|
8
8
|
import { compressFolderToPath } from "../../streaming/folder.js";
|
|
9
|
-
import {
|
|
9
|
+
import { formatBytes, formatCount, printRunSummary, splitAnalytics } from "../analytics.js";
|
|
10
10
|
import { readInput, resolveEncoding } from "../args.js";
|
|
11
11
|
import { writeCompressedOutput } from "../output.js";
|
|
12
12
|
import { resolveOutputPath } from "../paths.js";
|
|
@@ -20,20 +20,22 @@ export async function runCompress(args) {
|
|
|
20
20
|
const { fileCount, dirCount, originalBytes, archiveBytes, compressedBytes, outputPaths, splitChunkSize, } = await compressFolderToPath(args.dir, outputPath, encoding, args.split, args.password);
|
|
21
21
|
const elapsedMs = Number(process.hrtime.bigint() - start) / 1e6;
|
|
22
22
|
const ratio = originalBytes === 0 ? 0 : compressedBytes / originalBytes;
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
23
|
+
printRunSummary({
|
|
24
|
+
title: outputPaths.length === 1
|
|
25
|
+
? "Compressed folder"
|
|
26
|
+
: `Compressed folder → ${outputPaths.length} files`,
|
|
27
|
+
outputPaths,
|
|
28
|
+
stats: {
|
|
29
|
+
Encoding: `base${encoding}`,
|
|
30
|
+
Files: formatCount(fileCount),
|
|
31
|
+
Directories: formatCount(dirCount),
|
|
32
|
+
"Original size": formatBytes(originalBytes),
|
|
33
|
+
"Archive (pre-Brotli)": formatBytes(archiveBytes),
|
|
34
|
+
[`Compressed (base${encoding})`]: formatBytes(compressedBytes),
|
|
35
|
+
...splitAnalytics(splitChunkSize, outputPaths.length),
|
|
36
|
+
"Space saved": `${((1 - ratio) * 100).toFixed(1)}%`,
|
|
37
|
+
Time: `${elapsedMs.toFixed(0)} ms`,
|
|
38
|
+
},
|
|
37
39
|
});
|
|
38
40
|
return;
|
|
39
41
|
}
|
|
@@ -46,17 +48,20 @@ export async function runCompress(args) {
|
|
|
46
48
|
const { paths: outputPaths, splitChunkSize } = writeCompressedOutput(result, outputPath, args.split);
|
|
47
49
|
const outputBytes = Buffer.byteLength(result, "utf-8");
|
|
48
50
|
const ratio = inputBytes === 0 ? 0 : outputBytes / inputBytes;
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
51
|
+
printRunSummary({
|
|
52
|
+
title: outputPaths.length === 1
|
|
53
|
+
? "Compressed text"
|
|
54
|
+
: `Compressed text → ${outputPaths.length} files`,
|
|
55
|
+
outputPaths,
|
|
56
|
+
stats: {
|
|
57
|
+
Encoding: `base${encoding}`,
|
|
58
|
+
"Original size": formatBytes(inputBytes),
|
|
59
|
+
[`Compressed (base${encoding})`]: formatBytes(outputBytes),
|
|
60
|
+
...splitAnalytics(splitChunkSize, outputPaths.length),
|
|
61
|
+
"Size ratio": ratio.toFixed(3),
|
|
62
|
+
"Space saved": `${((1 - ratio) * 100).toFixed(1)}%`,
|
|
63
|
+
Time: `${elapsedMs.toFixed(0)} ms`,
|
|
64
|
+
},
|
|
60
65
|
});
|
|
61
66
|
}
|
|
62
67
|
//# sourceMappingURL=compress.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"compress.js","sourceRoot":"","sources":["../../../src/cli/commands/compress.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAA;AAC5C,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AACnD,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAA;AAChE,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"compress.js","sourceRoot":"","sources":["../../../src/cli/commands/compress.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"decompress.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/decompress.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAOH,OAAO,EAAE,KAAK,IAAI,EAAuD,MAAM,YAAY,CAAA;AAuB3F,yCAAyC;AACzC,wBAAgB,aAAa,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI,
|
|
1
|
+
{"version":3,"file":"decompress.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/decompress.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAOH,OAAO,EAAE,KAAK,IAAI,EAAuD,MAAM,YAAY,CAAA;AAuB3F,yCAAyC;AACzC,wBAAgB,aAAa,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI,CAoD9C"}
|
|
@@ -7,7 +7,7 @@ import { writeFileSync } from "node:fs";
|
|
|
7
7
|
import { unpackDirectory } from "../../archive/unpack.js";
|
|
8
8
|
import { decompressPayload, TAG_FOLDER, TAG_TEXT } from "../../payload/tags.js";
|
|
9
9
|
import { readSplitInput } from "../../split/parts.js";
|
|
10
|
-
import {
|
|
10
|
+
import { formatBytes, formatCount, printRunSummary } from "../analytics.js";
|
|
11
11
|
import { readInput, resolveEncoding, resolveEncodingOptional } from "../args.js";
|
|
12
12
|
import { resolveDetectedEncoding } from "../detect.js";
|
|
13
13
|
import { resolveOutputPath } from "../paths.js";
|
|
@@ -36,15 +36,18 @@ export function runDecompress(args) {
|
|
|
36
36
|
if (tag === TAG_FOLDER) {
|
|
37
37
|
const outputPath = resolveOutputPath(args, "decompressed.de", ".de");
|
|
38
38
|
const { files, dirs, bytes } = unpackDirectory(data, outputPath);
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
39
|
+
printRunSummary({
|
|
40
|
+
title: "Decompressed folder",
|
|
41
|
+
outputPaths: [outputPath],
|
|
42
|
+
stats: {
|
|
43
|
+
Encoding: `base${encoding}`,
|
|
44
|
+
[`Compressed (base${encoding})`]: formatBytes(inputBytes),
|
|
45
|
+
...(partPaths ? { "Input parts": partPaths.length } : {}),
|
|
46
|
+
"Files restored": formatCount(files),
|
|
47
|
+
"Directories restored": formatCount(dirs),
|
|
48
|
+
"Restored size": formatBytes(bytes),
|
|
49
|
+
Time: `${elapsedMs.toFixed(0)} ms`,
|
|
50
|
+
},
|
|
48
51
|
});
|
|
49
52
|
return;
|
|
50
53
|
}
|
|
@@ -56,14 +59,17 @@ export function runDecompress(args) {
|
|
|
56
59
|
writeFileSync(outputPath, result, "utf-8");
|
|
57
60
|
const outputBytes = Buffer.byteLength(result, "utf-8");
|
|
58
61
|
const ratio = inputBytes === 0 ? 0 : outputBytes / inputBytes;
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
62
|
+
printRunSummary({
|
|
63
|
+
title: "Decompressed text",
|
|
64
|
+
outputPaths: [outputPath],
|
|
65
|
+
stats: {
|
|
66
|
+
Encoding: `base${encoding}`,
|
|
67
|
+
[`Compressed (base${encoding})`]: formatBytes(inputBytes),
|
|
68
|
+
...(partPaths ? { "Input parts": partPaths.length } : {}),
|
|
69
|
+
"Restored size": formatBytes(outputBytes),
|
|
70
|
+
"Expansion ratio": ratio.toFixed(3),
|
|
71
|
+
Time: `${elapsedMs.toFixed(0)} ms`,
|
|
72
|
+
},
|
|
67
73
|
});
|
|
68
74
|
}
|
|
69
75
|
//# sourceMappingURL=decompress.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"decompress.js","sourceRoot":"","sources":["../../../src/cli/commands/decompress.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,SAAS,CAAA;AACvC,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAA;AACzD,OAAO,EAAE,iBAAiB,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAA;AAC/E,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AACrD,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"decompress.js","sourceRoot":"","sources":["../../../src/cli/commands/decompress.ts"],"names":[],"mappings":"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"}
|
package/dist/cli/main.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"main.d.ts","sourceRoot":"","sources":["../../src/cli/main.ts"],"names":[],"mappings":"AAAA;;;;GAIG;
|
|
1
|
+
{"version":3,"file":"main.d.ts","sourceRoot":"","sources":["../../src/cli/main.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AA8CH,2BAA2B;AAC3B,wBAAgB,IAAI,SAqCnB"}
|
package/dist/cli/main.js
CHANGED
|
@@ -4,6 +4,7 @@
|
|
|
4
4
|
* CLI entry logic — parses argv and auto-routes to compress or decompress.
|
|
5
5
|
*/
|
|
6
6
|
import { readSplitInput } from "../split/parts.js";
|
|
7
|
+
import { printVersion } from "./analytics.js";
|
|
7
8
|
import { parseArgs, resolveEncodingOptional, resolveInputArgs } from "./args.js";
|
|
8
9
|
import { runCompress } from "./commands/compress.js";
|
|
9
10
|
import { runDecompress } from "./commands/decompress.js";
|
|
@@ -12,6 +13,9 @@ import { printUsage } from "./usage.js";
|
|
|
12
13
|
function wantsHelp(argv) {
|
|
13
14
|
return argv.length === 0 || argv.includes("-h") || argv.includes("--help");
|
|
14
15
|
}
|
|
16
|
+
function wantsVersion(argv) {
|
|
17
|
+
return argv.includes("-V") || argv.includes("--version");
|
|
18
|
+
}
|
|
15
19
|
/** Strip an optional legacy leading compress/decompress command. */
|
|
16
20
|
function normalizeArgv(argv) {
|
|
17
21
|
const [first, ...rest] = argv;
|
|
@@ -51,6 +55,10 @@ export function main() {
|
|
|
51
55
|
printUsage();
|
|
52
56
|
process.exit(argv.length === 0 ? 1 : 0);
|
|
53
57
|
}
|
|
58
|
+
if (wantsVersion(argv)) {
|
|
59
|
+
printVersion();
|
|
60
|
+
process.exit(0);
|
|
61
|
+
}
|
|
54
62
|
const legacy = normalizeArgv(argv);
|
|
55
63
|
argv = legacy.argv;
|
|
56
64
|
const args = parseArgs(argv);
|
package/dist/cli/main.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"main.js","sourceRoot":"","sources":["../../src/cli/main.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"main.js","sourceRoot":"","sources":["../../src/cli/main.ts"],"names":[],"mappings":"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"}
|
package/dist/cli/usage.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"usage.d.ts","sourceRoot":"","sources":["../../src/cli/usage.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,mCAAmC;AACnC,wBAAgB,UAAU,
|
|
1
|
+
{"version":3,"file":"usage.d.ts","sourceRoot":"","sources":["../../src/cli/usage.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,mCAAmC;AACnC,wBAAgB,UAAU,SAmEzB"}
|
package/dist/cli/usage.js
CHANGED
|
@@ -39,6 +39,7 @@ Options:
|
|
|
39
39
|
preserves text verbatim (e.g. a code block)
|
|
40
40
|
-p, --password <string> Password-protect on compress, or unlock on decompress
|
|
41
41
|
-h, --help Show this usage guide
|
|
42
|
+
-V, --version Show package version
|
|
42
43
|
|
|
43
44
|
Split output (decompress):
|
|
44
45
|
Pass any one sibling file. All files sharing the same basename prefix
|
package/dist/cli/usage.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"usage.js","sourceRoot":"","sources":["../../src/cli/usage.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,mCAAmC;AACnC,MAAM,UAAU,UAAU;IACxB,OAAO,CAAC,GAAG,CAAC
|
|
1
|
+
{"version":3,"file":"usage.js","sourceRoot":"","sources":["../../src/cli/usage.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,mCAAmC;AACnC,MAAM,UAAU,UAAU;IACxB,OAAO,CAAC,GAAG,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAiEb,CAAC,CAAA;AACF,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"version.d.ts","sourceRoot":"","sources":["../../src/cli/version.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAQH,2DAA2D;AAC3D,wBAAgB,UAAU,IAAI,MAAM,CAMnC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @module cli/version
|
|
3
|
+
*
|
|
4
|
+
* Package version read from package.json at runtime.
|
|
5
|
+
*/
|
|
6
|
+
import { readFileSync } from "node:fs";
|
|
7
|
+
import { dirname, join } from "node:path";
|
|
8
|
+
import { fileURLToPath } from "node:url";
|
|
9
|
+
let cachedVersion;
|
|
10
|
+
/** Return the published `text-compress` version string. */
|
|
11
|
+
export function getVersion() {
|
|
12
|
+
if (cachedVersion)
|
|
13
|
+
return cachedVersion;
|
|
14
|
+
const root = join(dirname(fileURLToPath(import.meta.url)), "..", "..");
|
|
15
|
+
const pkg = JSON.parse(readFileSync(join(root, "package.json"), "utf-8"));
|
|
16
|
+
cachedVersion = pkg.version;
|
|
17
|
+
return cachedVersion;
|
|
18
|
+
}
|
|
19
|
+
//# sourceMappingURL=version.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"version.js","sourceRoot":"","sources":["../../src/cli/version.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAA;AACtC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AACzC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAA;AAExC,IAAI,aAAiC,CAAA;AAErC,2DAA2D;AAC3D,MAAM,UAAU,UAAU;IACxB,IAAI,aAAa;QAAE,OAAO,aAAa,CAAA;IACvC,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,CAAA;IACtE,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,EAAE,cAAc,CAAC,EAAE,OAAO,CAAC,CAAwB,CAAA;IAChG,aAAa,GAAG,GAAG,CAAC,OAAO,CAAA;IAC3B,OAAO,aAAa,CAAA;AACtB,CAAC"}
|