maxcso 0.1130.7 → 0.1130.9
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 +73 -0
- package/dist/index.d.ts +1 -1
- package/dist/src/bin.js +5 -2
- package/dist/src/bin.js.map +1 -1
- package/dist/src/maxcso/maxcsoBin.d.ts +8 -2
- package/dist/src/maxcso/maxcsoBin.js +31 -25
- package/dist/src/maxcso/maxcsoBin.js.map +1 -1
- package/dist/src/maxcso/maxcsoCompress.d.ts +2 -1
- package/dist/src/maxcso/maxcsoCompress.js +1 -1
- package/dist/src/maxcso/maxcsoCompress.js.map +1 -1
- package/dist/src/maxcso/maxcsoDecompress.d.ts +2 -1
- package/dist/src/maxcso/maxcsoDecompress.js +1 -1
- package/dist/src/maxcso/maxcsoDecompress.js.map +1 -1
- package/dist/src/maxcso/maxcsoInfo.d.ts +5 -1
- package/dist/src/maxcso/maxcsoInfo.js +4 -4
- package/dist/src/maxcso/maxcsoInfo.js.map +1 -1
- package/package.json +11 -8
package/README.md
ADDED
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
<h1 align="center">💿️ maxcso</h1>
|
|
2
|
+
|
|
3
|
+
<p align="center"><b>Pre-compiled binaries and Node.js wrapper for unknownbrackets' <a href="https://github.com/unknownbrackets/maxcso">maxcso</a> tool.</b></p>
|
|
4
|
+
|
|
5
|
+
<p align="center">
|
|
6
|
+
<a href="https://www.npmjs.com/package/maxcso"><img alt="npm: version" src="https://img.shields.io/npm/v/maxcso?color=%23cc3534&label=version&logo=npm&logoColor=white"></a>
|
|
7
|
+
<a href="https://www.npmjs.com/package/maxcso"><img alt="npm: downloads" src="https://img.shields.io/npm/dt/maxcso?color=%23cc3534&logo=npm&logoColor=white"></a>
|
|
8
|
+
<a href="https://github.com/emmercm/maxcso-js"><img alt="GitHub: stars" src="https://img.shields.io/github/stars/emmercm/maxcso-js?style=flat&logo=github&logoColor=white&color=%236e5494"></a>
|
|
9
|
+
<a href="https://github.com/emmercm/maxcso-js/blob/main/LICENSE"><img alt="license" src="https://img.shields.io/github/license/emmercm/maxcso-js?color=blue"></a>
|
|
10
|
+
</p>
|
|
11
|
+
|
|
12
|
+
## Supported platforms
|
|
13
|
+
|
|
14
|
+
| OS | Architectures | Additional Instructions |
|
|
15
|
+
|---------|-------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
|
|
16
|
+
| Windows | <ul><li>x64</li><li>x86</li></ul> | |
|
|
17
|
+
| macOS | <ul><li>arm64 (Apple Silicon)</li><li>x64 (Intel)</li></ul> | [lz4](https://lz4.org/), [libuv](https://libuv.org/), and [libdeflate](https://github.com/ebiggers/libdeflate) are required to be installed separately:<pre>brew install lz4 libuv libdeflate</pre> |
|
|
18
|
+
| Linux | <ul><li>x64</li><li>x86</li><li>arm64 v8</li></ul> | |
|
|
19
|
+
|
|
20
|
+
## Running
|
|
21
|
+
|
|
22
|
+
You can easily run the `maxcso` binary for your OS from the command line like this:
|
|
23
|
+
|
|
24
|
+
```shell
|
|
25
|
+
npx maxcso [options..]
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
Examples:
|
|
29
|
+
|
|
30
|
+
```shell
|
|
31
|
+
npx maxcso --crc Disc.cso
|
|
32
|
+
npx maxcso --decompress Disc.cso -o Disc.iso
|
|
33
|
+
npx maxcso --format=cso1 Disc.iso -o Disc.cso
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
## Installation
|
|
37
|
+
|
|
38
|
+
```shell
|
|
39
|
+
npm install --save maxcso
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
## Usage
|
|
43
|
+
|
|
44
|
+
```javascript
|
|
45
|
+
import maxcso from 'maxcso';
|
|
46
|
+
|
|
47
|
+
/**
|
|
48
|
+
* Compress an ISO.
|
|
49
|
+
*/
|
|
50
|
+
await maxcso.compress({
|
|
51
|
+
inputFilename: 'Disc.iso',
|
|
52
|
+
outputFilename: 'Disc.cso',
|
|
53
|
+
});
|
|
54
|
+
|
|
55
|
+
/**
|
|
56
|
+
* Given a compressed file, get the decompressed file's CRC32.
|
|
57
|
+
*/
|
|
58
|
+
const crc32 = await maxcso.uncompressedCrc32('Disc.cso');
|
|
59
|
+
console.log(crc32);
|
|
60
|
+
// "abcd01234"
|
|
61
|
+
|
|
62
|
+
/**
|
|
63
|
+
* Decompress a CSO.
|
|
64
|
+
*/
|
|
65
|
+
await maxcso.decompress({
|
|
66
|
+
inputFilename: 'Disc.cso',
|
|
67
|
+
outputFilename: 'Disc.iso',
|
|
68
|
+
});
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
## License
|
|
72
|
+
|
|
73
|
+
unknownbrackets' [maxcso](https://github.com/unknownbrackets/maxcso) tool is licensed under the ISC license.
|
package/dist/index.d.ts
CHANGED
|
@@ -5,7 +5,7 @@ export * from './src/maxcso/maxcsoDecompress.js';
|
|
|
5
5
|
export * from './src/maxcso/maxcsoInfo.js';
|
|
6
6
|
declare const _default: {
|
|
7
7
|
run: typeof MaxcsoBin.run;
|
|
8
|
-
uncompressedCrc32: (
|
|
8
|
+
uncompressedCrc32: (options: import("./src/maxcso/maxcsoInfo.js").UncompressedCrc32Options, attempt?: number) => Promise<string>;
|
|
9
9
|
header: (inputFilename: string) => Promise<import("./src/maxcso/maxcsoInfo.js").CsoInfo>;
|
|
10
10
|
compress: (options: import("./src/maxcso/maxcsoCompress.js").CompressOptions) => Promise<void>;
|
|
11
11
|
decompress: (options: import("./src/maxcso/maxcsoDecompress.js").DecompressOptions) => Promise<void>;
|
package/dist/src/bin.js
CHANGED
|
@@ -8,12 +8,15 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
8
8
|
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
9
|
});
|
|
10
10
|
};
|
|
11
|
-
import MaxcsoBin from './maxcso/maxcsoBin.js';
|
|
11
|
+
import MaxcsoBin, { MaxcsoBinaryPreference } from './maxcso/maxcsoBin.js';
|
|
12
12
|
// eslint-disable-next-line unicorn/prefer-top-level-await
|
|
13
13
|
(() => __awaiter(void 0, void 0, void 0, function* () {
|
|
14
14
|
const argv = process.argv.slice(2);
|
|
15
15
|
try {
|
|
16
|
-
yield MaxcsoBin.run(argv, {
|
|
16
|
+
yield MaxcsoBin.run(argv, {
|
|
17
|
+
logStd: true,
|
|
18
|
+
binaryPreference: MaxcsoBinaryPreference.PREFER_BUNDLED_BINARY,
|
|
19
|
+
});
|
|
17
20
|
}
|
|
18
21
|
catch (_a) {
|
|
19
22
|
// eslint-disable-next-line unicorn/no-process-exit
|
package/dist/src/bin.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bin.js","sourceRoot":"","sources":["../../src/bin.ts"],"names":[],"mappings":";;;;;;;;;;AAEA,OAAO,SAAS,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"bin.js","sourceRoot":"","sources":["../../src/bin.ts"],"names":[],"mappings":";;;;;;;;;;AAEA,OAAO,SAAS,EAAE,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAE1E,0DAA0D;AAC1D,CAAC,GAAwB,EAAE;IACzB,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAEnC,IAAI,CAAC;QACH,MAAM,SAAS,CAAC,GAAG,CAAC,IAAI,EAAE;YACxB,MAAM,EAAE,IAAI;YACZ,gBAAgB,EAAE,sBAAsB,CAAC,qBAAqB;SAC/D,CAAC,CAAC;IACL,CAAC;IAAC,WAAM,CAAC;QACP,mDAAmD;QACnD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC,CAAA,CAAC,EAAE,CAAC"}
|
|
@@ -1,13 +1,19 @@
|
|
|
1
1
|
export interface MaxcsoBinOptions {
|
|
2
|
+
binaryPreference?: MaxcsoBinaryPreference;
|
|
2
3
|
logStd?: boolean;
|
|
3
4
|
}
|
|
5
|
+
export declare enum MaxcsoBinaryPreference {
|
|
6
|
+
PREFER_BUNDLED_BINARY = 1,
|
|
7
|
+
PREFER_PATH_BINARY = 2
|
|
8
|
+
}
|
|
4
9
|
/**
|
|
5
10
|
* Code to find and interact with the `maxcso` binary.
|
|
6
11
|
*/
|
|
7
12
|
export default class MaxcsoBin {
|
|
8
13
|
private static MAXCSO_BIN;
|
|
9
|
-
private static
|
|
10
|
-
static
|
|
14
|
+
private static getBinPath;
|
|
15
|
+
private static getBinPathBundled;
|
|
16
|
+
private static getBinPathExisting;
|
|
11
17
|
/**
|
|
12
18
|
* Run maxcso with some arguments.
|
|
13
19
|
*/
|
|
@@ -7,46 +7,52 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
7
7
|
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
8
8
|
});
|
|
9
9
|
};
|
|
10
|
-
import url from 'node:url';
|
|
11
|
-
import path from 'node:path';
|
|
12
10
|
import { promisify } from 'node:util';
|
|
13
11
|
import fs from 'node:fs';
|
|
14
12
|
import which from 'which';
|
|
15
13
|
import * as child_process from 'node:child_process';
|
|
14
|
+
export var MaxcsoBinaryPreference;
|
|
15
|
+
(function (MaxcsoBinaryPreference) {
|
|
16
|
+
MaxcsoBinaryPreference[MaxcsoBinaryPreference["PREFER_BUNDLED_BINARY"] = 1] = "PREFER_BUNDLED_BINARY";
|
|
17
|
+
MaxcsoBinaryPreference[MaxcsoBinaryPreference["PREFER_PATH_BINARY"] = 2] = "PREFER_PATH_BINARY";
|
|
18
|
+
})(MaxcsoBinaryPreference || (MaxcsoBinaryPreference = {}));
|
|
16
19
|
/**
|
|
17
20
|
* Code to find and interact with the `maxcso` binary.
|
|
18
21
|
*/
|
|
19
22
|
export default class MaxcsoBin {
|
|
20
|
-
static
|
|
21
|
-
return __awaiter(this,
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
return filePath;
|
|
23
|
+
static getBinPath(binaryPreference) {
|
|
24
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
25
|
+
if (this.MAXCSO_BIN) {
|
|
26
|
+
return this.MAXCSO_BIN;
|
|
25
27
|
}
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
28
|
+
if ((binaryPreference !== null && binaryPreference !== void 0 ? binaryPreference : MaxcsoBinaryPreference.PREFER_BUNDLED_BINARY)
|
|
29
|
+
=== MaxcsoBinaryPreference.PREFER_BUNDLED_BINARY) {
|
|
30
|
+
const pathBundled = yield this.getBinPathBundled();
|
|
31
|
+
this.MAXCSO_BIN = pathBundled !== null && pathBundled !== void 0 ? pathBundled : (yield this.getBinPathExisting());
|
|
29
32
|
}
|
|
30
|
-
|
|
33
|
+
else {
|
|
34
|
+
const pathExisting = yield this.getBinPathExisting();
|
|
35
|
+
this.MAXCSO_BIN = pathExisting !== null && pathExisting !== void 0 ? pathExisting : (yield this.getBinPathBundled());
|
|
36
|
+
}
|
|
37
|
+
return this.MAXCSO_BIN;
|
|
31
38
|
});
|
|
32
39
|
}
|
|
33
|
-
static
|
|
40
|
+
static getBinPathBundled() {
|
|
34
41
|
return __awaiter(this, void 0, void 0, function* () {
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
const prebuilt = maxcso.default;
|
|
41
|
-
if (yield promisify(fs.exists)(prebuilt)) {
|
|
42
|
-
MaxcsoBin.MAXCSO_BIN = prebuilt;
|
|
43
|
-
return prebuilt;
|
|
44
|
-
}
|
|
42
|
+
// try {
|
|
43
|
+
const maxcso = yield import(`@emmercm/maxcso-${process.platform}-${process.arch}`);
|
|
44
|
+
const prebuilt = maxcso.default;
|
|
45
|
+
if (yield promisify(fs.exists)(prebuilt)) {
|
|
46
|
+
return prebuilt;
|
|
45
47
|
}
|
|
46
|
-
|
|
48
|
+
// } catch { /* ignored */ }
|
|
49
|
+
return undefined;
|
|
50
|
+
});
|
|
51
|
+
}
|
|
52
|
+
static getBinPathExisting() {
|
|
53
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
47
54
|
const resolved = yield which('maxcso', { nothrow: true });
|
|
48
55
|
if (resolved) {
|
|
49
|
-
MaxcsoBin.MAXCSO_BIN = resolved;
|
|
50
56
|
return resolved;
|
|
51
57
|
}
|
|
52
58
|
return undefined;
|
|
@@ -57,7 +63,7 @@ export default class MaxcsoBin {
|
|
|
57
63
|
*/
|
|
58
64
|
static run(arguments_, options) {
|
|
59
65
|
return __awaiter(this, void 0, void 0, function* () {
|
|
60
|
-
const maxcsoBin = yield this.getBinPath();
|
|
66
|
+
const maxcsoBin = yield this.getBinPath(options === null || options === void 0 ? void 0 : options.binaryPreference);
|
|
61
67
|
if (!maxcsoBin) {
|
|
62
68
|
throw new Error('maxcso not found');
|
|
63
69
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"maxcsoBin.js","sourceRoot":"","sources":["../../../src/maxcso/maxcsoBin.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"maxcsoBin.js","sourceRoot":"","sources":["../../../src/maxcso/maxcsoBin.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACtC,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,KAAK,aAAa,MAAM,oBAAoB,CAAC;AAOpD,MAAM,CAAN,IAAY,sBAGX;AAHD,WAAY,sBAAsB;IAChC,qGAAyB,CAAA;IACzB,+FAAkB,CAAA;AACpB,CAAC,EAHW,sBAAsB,KAAtB,sBAAsB,QAGjC;AAED;;GAEG;AACH,MAAM,CAAC,OAAO,OAAO,SAAS;IAGpB,MAAM,CAAO,UAAU,CAC7B,gBAAyC;;YAEzC,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;gBACpB,OAAO,IAAI,CAAC,UAAU,CAAC;YACzB,CAAC;YAED,IAAI,CAAC,gBAAgB,aAAhB,gBAAgB,cAAhB,gBAAgB,GAAI,sBAAsB,CAAC,qBAAqB,CAAC;oBAChE,sBAAsB,CAAC,qBAAqB,EAChD,CAAC;gBACD,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,iBAAiB,EAAE,CAAC;gBACnD,IAAI,CAAC,UAAU,GAAG,WAAW,aAAX,WAAW,cAAX,WAAW,GAAI,CAAC,MAAM,IAAI,CAAC,kBAAkB,EAAE,CAAC,CAAC;YACrE,CAAC;iBAAM,CAAC;gBACN,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,kBAAkB,EAAE,CAAC;gBACrD,IAAI,CAAC,UAAU,GAAG,YAAY,aAAZ,YAAY,cAAZ,YAAY,GAAI,CAAC,MAAM,IAAI,CAAC,iBAAiB,EAAE,CAAC,CAAC;YACrE,CAAC;YAED,OAAO,IAAI,CAAC,UAAU,CAAC;QACzB,CAAC;KAAA;IAEO,MAAM,CAAO,iBAAiB;;YACpC,QAAQ;YACR,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,mBAAmB,OAAO,CAAC,QAAQ,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;YACnF,MAAM,QAAQ,GAAG,MAAM,CAAC,OAAO,CAAC;YAChC,IAAI,MAAM,SAAS,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC;gBACzC,OAAO,QAAQ,CAAC;YAClB,CAAC;YACD,4BAA4B;YAE5B,OAAO,SAAS,CAAC;QACnB,CAAC;KAAA;IAEO,MAAM,CAAO,kBAAkB;;YACrC,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,QAAQ,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;YAC1D,IAAI,QAAQ,EAAE,CAAC;gBACb,OAAO,QAAQ,CAAC;YAClB,CAAC;YACD,OAAO,SAAS,CAAC;QACnB,CAAC;KAAA;IAED;;OAEG;IACH,MAAM,CAAO,GAAG,CAAC,UAAoB,EAAE,OAA0B;;YAC/D,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,gBAAgB,CAAC,CAAC;YACnE,IAAI,CAAC,SAAS,EAAE,CAAC;gBACf,MAAM,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAC;YACtC,CAAC;YAED,OAAO,IAAI,OAAO,CAAS,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;gBAC7C,MAAM,IAAI,GAAG,aAAa,CAAC,KAAK,CAAC,SAAS,EAAE,UAAU,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC;gBAE/E,MAAM,MAAM,GAAa,EAAE,CAAC;gBAE5B,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE;oBAC/B,IAAI,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,MAAM,EAAE,CAAC;wBACpB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC;oBAChC,CAAC;oBAED,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBACrB,CAAC,CAAC,CAAC;gBAEH,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE;oBAC/B,IAAI,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,MAAM,EAAE,CAAC;wBACpB,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC;oBAClC,CAAC;oBAED,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBACrB,CAAC,CAAC,CAAC;gBAEH,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,EAAE;oBACxB,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,CAAC;oBACvD,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,CAAC,EAAE,CAAC;wBAChC,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC;oBACxB,CAAC;oBACD,OAAO,OAAO,CAAC,MAAM,CAAC,CAAC;gBACzB,CAAC,CAAC,CAAC;gBACH,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE;oBACpB,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,CAAC;oBACvD,MAAM,CAAC,MAAM,CAAC,CAAC;gBACjB,CAAC,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;QACL,CAAC;KAAA;CACF"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { MaxcsoBinOptions } from './maxcsoBin.js';
|
|
1
2
|
export declare enum CompressFormat {
|
|
2
3
|
CSO_V1 = "cso1",
|
|
3
4
|
CSO_V2 = "cso2",
|
|
@@ -12,7 +13,7 @@ export declare enum CompressMethod {
|
|
|
12
13
|
LZ4_BRUTE = "lz4brute",
|
|
13
14
|
LIBDEFLATE = "libdeflate"
|
|
14
15
|
}
|
|
15
|
-
export interface CompressOptions {
|
|
16
|
+
export interface CompressOptions extends MaxcsoBinOptions {
|
|
16
17
|
inputFilename: string;
|
|
17
18
|
outputFilename: string;
|
|
18
19
|
threads?: number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"maxcsoCompress.js","sourceRoot":"","sources":["../../../src/maxcso/maxcsoCompress.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"maxcsoCompress.js","sourceRoot":"","sources":["../../../src/maxcso/maxcsoCompress.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,SAA+B,MAAM,gBAAgB,CAAC;AAC7D,OAAO,UAAU,MAAM,iBAAiB,CAAC;AAEzC,MAAM,CAAN,IAAY,cAKX;AALD,WAAY,cAAc;IACxB,iCAAe,CAAA;IACf,iCAAe,CAAA;IACf,6BAAW,CAAA;IACX,6BAAW,CAAA;AACb,CAAC,EALW,cAAc,KAAd,cAAc,QAKzB;AAED,MAAM,CAAN,IAAY,cAOX;AAPD,WAAY,cAAc;IACxB,+BAAa,CAAA;IACb,mCAAiB,CAAA;IACjB,yCAAyB,CAAA;IACzB,6BAAW,CAAA;IACX,wCAAsB,CAAA;IACtB,2CAAyB,CAAA;AAC3B,CAAC,EAPW,cAAc,KAAd,cAAc,QAOzB;AAgBD,eAAe;IACP,QAAQ,CAAC,OAAwB;;;YACrC,MAAM,SAAS,CAAC,GAAG,CAAC;gBAClB,GAAG,CAAC,OAAO,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,aAAa,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;gBAC1E,GAAG,CAAC,OAAO,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC5C,GAAG,CAAC,OAAO,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,WAAW,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC;gBAC5E,GAAG,CAAC,OAAO,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,YAAY,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;gBACvE,GAAG,CAAC,MAAA,OAAO,CAAC,UAAU,mCAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC;gBACtD,GAAG,CAAC,OAAO,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,UAAU,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;gBACrE,GAAG,CAAC,MAAA,OAAO,CAAC,cAAc,mCAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC;gBACzD,GAAG,CAAC,OAAO,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,cAAc,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;gBAC3E,GAAG,CAAC,OAAO,CAAC,YAAY,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,eAAe,OAAO,CAAC,YAAY,EAAE,CAAC,CAAC;gBACtF,OAAO,CAAC,aAAa;gBACrB,IAAI,EAAE,OAAO,CAAC,cAAc;aAC7B,EAAE,OAAO,CAAC,CAAC;YAEZ,IAAI,CAAC;gBACH,MAAM,UAAU,CAAC,MAAM,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;YAClD,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,MAAM,IAAI,KAAK,CAAC,2BAA2B,KAAK,EAAE,CAAC,CAAC;YACtD,CAAC;QACH,CAAC;KAAA;CACF,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"maxcsoDecompress.js","sourceRoot":"","sources":["../../../src/maxcso/maxcsoDecompress.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"maxcsoDecompress.js","sourceRoot":"","sources":["../../../src/maxcso/maxcsoDecompress.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,SAA+B,MAAM,gBAAgB,CAAC;AAO7D,eAAe;IACP,UAAU,CAAC,OAA0B;;YACzC,MAAM,SAAS,CAAC,GAAG,CAAC;gBAClB,cAAc;gBACd,OAAO,CAAC,aAAa;gBACrB,IAAI,EAAE,OAAO,CAAC,cAAc;aAC7B,EAAE,OAAO,CAAC,CAAC;QACd,CAAC;KAAA;CACF,CAAC"}
|
|
@@ -1,3 +1,7 @@
|
|
|
1
|
+
import { MaxcsoBinOptions } from './maxcsoBin.js';
|
|
2
|
+
export interface UncompressedCrc32Options extends MaxcsoBinOptions {
|
|
3
|
+
inputFilename: string;
|
|
4
|
+
}
|
|
1
5
|
export declare enum CsoFileType {
|
|
2
6
|
CSO = "CISO",
|
|
3
7
|
DAX = "DAX",
|
|
@@ -15,7 +19,7 @@ declare const _default: {
|
|
|
15
19
|
* Given a compressed CSO/ZSO/DAX file, get its uncompressed ISO's CRC32. This is fast/cheap to
|
|
16
20
|
* calculate.
|
|
17
21
|
*/
|
|
18
|
-
uncompressedCrc32(
|
|
22
|
+
uncompressedCrc32(options: UncompressedCrc32Options, attempt?: number): Promise<string>;
|
|
19
23
|
/**
|
|
20
24
|
* Given a compressed CSO/ZSO/DAX file, get the information stored in its file header.
|
|
21
25
|
*/
|
|
@@ -27,15 +27,15 @@ export default {
|
|
|
27
27
|
* Given a compressed CSO/ZSO/DAX file, get its uncompressed ISO's CRC32. This is fast/cheap to
|
|
28
28
|
* calculate.
|
|
29
29
|
*/
|
|
30
|
-
uncompressedCrc32(
|
|
31
|
-
return __awaiter(this, arguments, void 0, function* (
|
|
32
|
-
const output = yield MaxcsoBin.run(['--crc', inputFilename]);
|
|
30
|
+
uncompressedCrc32(options_1) {
|
|
31
|
+
return __awaiter(this, arguments, void 0, function* (options, attempt = 1) {
|
|
32
|
+
const output = yield MaxcsoBin.run(['--crc', options.inputFilename], options);
|
|
33
33
|
// Try to detect failures, and then retry them automatically
|
|
34
34
|
if (!output.trim() && attempt <= 3) {
|
|
35
35
|
yield new Promise((resolve) => {
|
|
36
36
|
setTimeout(resolve, Math.random() * (Math.pow(2, (attempt - 1)) * 20));
|
|
37
37
|
});
|
|
38
|
-
return this.uncompressedCrc32(
|
|
38
|
+
return this.uncompressedCrc32(options, attempt + 1);
|
|
39
39
|
}
|
|
40
40
|
const crcMatch = output.replace(/[\n\r]/g, '').match(/ ([\da-f]{8})$/);
|
|
41
41
|
if (crcMatch === null) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"maxcsoInfo.js","sourceRoot":"","sources":["../../../src/maxcso/maxcsoInfo.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,
|
|
1
|
+
{"version":3,"file":"maxcsoInfo.js","sourceRoot":"","sources":["../../../src/maxcso/maxcsoInfo.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "maxcso",
|
|
3
|
-
"version": "0.1130.
|
|
3
|
+
"version": "0.1130.9",
|
|
4
4
|
"description": "💿 maxcso binaries and wrapper for Node.js.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"cso",
|
|
@@ -46,17 +46,20 @@
|
|
|
46
46
|
"bump:major": "npm version major --no-git-tag-version",
|
|
47
47
|
"bump:minor": "npm version minor --no-git-tag-version",
|
|
48
48
|
"bump:patch": "npm version patch --no-git-tag-version",
|
|
49
|
-
"prepack": "npm run build"
|
|
49
|
+
"prepack": "npm run build && cp -f ../../LICENSE ../../README.md ./",
|
|
50
|
+
"postpack": "rm ./LICENSE ./README.md"
|
|
50
51
|
},
|
|
51
52
|
"dependencies": {
|
|
52
53
|
"which": "^4.0.0"
|
|
53
54
|
},
|
|
54
55
|
"optionalDependencies": {
|
|
55
|
-
"@emmercm/maxcso-darwin-arm64": "^0.1130.
|
|
56
|
-
"@emmercm/maxcso-darwin-x64": "^0.1130.
|
|
57
|
-
"@emmercm/maxcso-linux-
|
|
58
|
-
"@emmercm/maxcso-
|
|
59
|
-
"@emmercm/maxcso-
|
|
56
|
+
"@emmercm/maxcso-darwin-arm64": "^0.1130.9",
|
|
57
|
+
"@emmercm/maxcso-darwin-x64": "^0.1130.9",
|
|
58
|
+
"@emmercm/maxcso-linux-arm64": "^0.1130.9",
|
|
59
|
+
"@emmercm/maxcso-linux-ia32": "^0.1130.9",
|
|
60
|
+
"@emmercm/maxcso-linux-x64": "^0.1130.9",
|
|
61
|
+
"@emmercm/maxcso-win32-ia32": "^0.1130.9",
|
|
62
|
+
"@emmercm/maxcso-win32-x64": "^0.1130.9"
|
|
60
63
|
},
|
|
61
64
|
"devDependencies": {
|
|
62
65
|
"@types/jest": "^29.5.12",
|
|
@@ -89,5 +92,5 @@
|
|
|
89
92
|
"volta": {
|
|
90
93
|
"node": "20.11.1"
|
|
91
94
|
},
|
|
92
|
-
"gitHead": "
|
|
95
|
+
"gitHead": "4b34bf6625666e1cf296242356f991136f71fe9c"
|
|
93
96
|
}
|