exiftool-vendored 25.2.0 → 26.1.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/CHANGELOG.md +16 -3
- package/RELEASE.md +5 -6
- package/dist/BinaryExtractionTask.d.ts +2 -2
- package/dist/BinaryExtractionTask.js +4 -4
- package/dist/BinaryExtractionTask.js.map +1 -1
- package/dist/BinaryToBufferTask.d.ts +2 -2
- package/dist/BinaryToBufferTask.js +6 -11
- package/dist/BinaryToBufferTask.js.map +1 -1
- package/dist/DefaultExifToolOptions.js +1 -0
- package/dist/DefaultExifToolOptions.js.map +1 -1
- package/dist/ExifTool.d.ts +14 -10
- package/dist/ExifTool.js +43 -20
- package/dist/ExifTool.js.map +1 -1
- package/dist/ExifToolOptions.d.ts +6 -0
- package/dist/ExifToolOptions.js.map +1 -1
- package/dist/ExifToolTask.d.ts +5 -2
- package/dist/ExifToolTask.js +10 -4
- package/dist/ExifToolTask.js.map +1 -1
- package/dist/ReadRawTask.d.ts +2 -2
- package/dist/ReadRawTask.js +4 -4
- package/dist/ReadRawTask.js.map +1 -1
- package/dist/ReadTask.d.ts +5 -4
- package/dist/ReadTask.js +3 -2
- package/dist/ReadTask.js.map +1 -1
- package/dist/RewriteAllTagsTask.d.ts +4 -2
- package/dist/RewriteAllTagsTask.js +5 -5
- package/dist/RewriteAllTagsTask.js.map +1 -1
- package/dist/Tags.d.ts +77 -67
- package/dist/VersionTask.d.ts +2 -2
- package/dist/VersionTask.js +2 -2
- package/dist/VersionTask.js.map +1 -1
- package/dist/Which.d.ts +1 -1
- package/dist/Which.js +19 -7
- package/dist/Which.js.map +1 -1
- package/dist/WriteTask.d.ts +5 -3
- package/dist/WriteTask.js +5 -4
- package/dist/WriteTask.js.map +1 -1
- package/package.json +11 -11
- package/snyk-linux +0 -0
package/CHANGELOG.md
CHANGED
|
@@ -10,12 +10,11 @@ vendored versions of ExifTool match the version that they vendor.
|
|
|
10
10
|
### The `MAJOR` or `API` version is incremented for
|
|
11
11
|
|
|
12
12
|
- 💔 Non-backward-compatible API changes
|
|
13
|
-
-
|
|
14
|
-
- 🏚️ [EOL](https://github.com/nodejs/release#release-schedule) versions of Node.js are dropped from support
|
|
13
|
+
- 🏚️ [End of life](https://github.com/nodejs/release#release-schedule) versions of Node.js are dropped from the build matrix
|
|
15
14
|
|
|
16
15
|
### The `MINOR` or `UPDATE` version is incremented for
|
|
17
16
|
|
|
18
|
-
- 🌱 New releases of ExifTool
|
|
17
|
+
- 🌱 New releases of ExifTool
|
|
19
18
|
- 🔥 Security updates
|
|
20
19
|
- ✨ Backwards-compatible features
|
|
21
20
|
|
|
@@ -26,6 +25,20 @@ vendored versions of ExifTool match the version that they vendor.
|
|
|
26
25
|
|
|
27
26
|
## Version history
|
|
28
27
|
|
|
28
|
+
### v26.1.0
|
|
29
|
+
|
|
30
|
+
- 🌱/✨/🐞 ExifTool upgraded to [v12.85](https://exiftool.org/history.html#12.85). Notably, this addresses [reversed HEIC orientation](https://exiftool.org/forum/index.php?topic=15240.msg86229#msg86229).
|
|
31
|
+
|
|
32
|
+
- 🐞 Perhaps address [Perl not installed error](https://github.com/photostructure/exiftool-vendored.js/issues/182).
|
|
33
|
+
|
|
34
|
+
### v26.0.0
|
|
35
|
+
|
|
36
|
+
- 🌱/✨ ExifTool upgraded to [v12.84](https://exiftool.org/history.html#12.84)
|
|
37
|
+
|
|
38
|
+
- 📦 Support **disabling** `-ignoreMinorErrors` to work around shenanigans like [#181](https://github.com/photostructure/exiftool-vendored.js/issues/181). This is an optional field that defaults to prior behavior (enabled, which ignores minor errors, which is normally desired, _but has some side effects like fully reading tags that may be extremely long_). See [ExifToolOptions.ignoreMinorErrors](https://photostructure.github.io/exiftool-vendored.js/interfaces/ExifToolOptions.html#ignoreMinorErrors) for details.
|
|
39
|
+
|
|
40
|
+
- 📦 ExifTool on Windows was upgraded to Strawberry Perl 5.32.1
|
|
41
|
+
|
|
29
42
|
### v25.2.0
|
|
30
43
|
|
|
31
44
|
- 🌱/✨ ExifTool upgraded to [v12.82](https://exiftool.org/history.html#v12.82)
|
package/RELEASE.md
CHANGED
|
@@ -13,22 +13,21 @@
|
|
|
13
13
|
|
|
14
14
|
1. `git stash -u && git fetch && git checkout main && yarn install && yarn update && yarn test`
|
|
15
15
|
1. Verify diffs are in order, and commit
|
|
16
|
-
1. `npx release-it`
|
|
16
|
+
1. `npx release-it --only-version`
|
|
17
17
|
|
|
18
18
|
5. On Windows, in `...\exiftool-vendored.exe\`:
|
|
19
|
-
|
|
20
|
-
(The terminal built into vscode plays with `ncu` and `release-it` a bit nicer than CMD or Windows for Git's terminal)
|
|
19
|
+
(The terminal built into vscode plays with `ncu` and `release-it` a bit nicer than CMD or Windows for Git's terminal)
|
|
21
20
|
|
|
22
21
|
1. `git stash -u && git fetch && git checkout main && yarn install && yarn update && yarn test`
|
|
23
22
|
1. Verify diffs are in order, and commit
|
|
24
|
-
1. `npx release-it`
|
|
23
|
+
1. `npx release-it --only-version`
|
|
25
24
|
|
|
26
25
|
6. Finally, back on the POSIX box, release `exiftool-vendored`:
|
|
27
26
|
|
|
28
27
|
1. `cd ../exiftool-vendored.js`
|
|
29
28
|
1. `yarn u`
|
|
30
29
|
1. `yarn install`
|
|
31
|
-
1. `yarn mktags ../test-images` # < assumes
|
|
30
|
+
1. `yarn mktags ../test-images` # < assumes `../test-images` has the full ExifTool sample image suite
|
|
32
31
|
1. `yarn prettier`
|
|
33
32
|
1. `yarn lint`
|
|
34
33
|
1. `yarn docs`
|
|
@@ -37,4 +36,4 @@
|
|
|
37
36
|
1. Verify diffs are reasonable, `git commit` and `git push`
|
|
38
37
|
1. Verify [](https://github.com/photostructure/exiftool-vendored.js/actions/workflows/node.js.yml)
|
|
39
38
|
1. Update the [CHANGELOG.md](https://github.com/photostructure/exiftool-vendored.js/blob/main/CHANGELOG.md)
|
|
40
|
-
1. `npx release-it`
|
|
39
|
+
1. `npx release-it --only-version`
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { ExifToolTask } from "./ExifToolTask";
|
|
1
|
+
import { ExifToolTask, ExifToolTaskOptions } from "./ExifToolTask";
|
|
2
2
|
import { Maybe } from "./Maybe";
|
|
3
3
|
/**
|
|
4
4
|
* Task that returns an error string (to prevent retries), or undefined if
|
|
@@ -6,6 +6,6 @@ import { Maybe } from "./Maybe";
|
|
|
6
6
|
*/
|
|
7
7
|
export declare class BinaryExtractionTask extends ExifToolTask<Maybe<string>> {
|
|
8
8
|
private constructor();
|
|
9
|
-
static for(tagname: string, imgSrc: string, imgDest: string): BinaryExtractionTask;
|
|
9
|
+
static for(tagname: string, imgSrc: string, imgDest: string, options?: ExifToolTaskOptions): BinaryExtractionTask;
|
|
10
10
|
parse(stdout: string, err?: Error): Maybe<string>;
|
|
11
11
|
}
|
|
@@ -14,10 +14,10 @@ const StdoutRe = /\b(\d+) output files? created/i;
|
|
|
14
14
|
* everything seems to have worked.
|
|
15
15
|
*/
|
|
16
16
|
class BinaryExtractionTask extends ExifToolTask_1.ExifToolTask {
|
|
17
|
-
constructor(args) {
|
|
18
|
-
super(args);
|
|
17
|
+
constructor(args, options) {
|
|
18
|
+
super(args, options);
|
|
19
19
|
}
|
|
20
|
-
static for(tagname, imgSrc, imgDest) {
|
|
20
|
+
static for(tagname, imgSrc, imgDest, options) {
|
|
21
21
|
const args = [
|
|
22
22
|
...FilenameCharsetArgs_1.Utf8FilenameCharsetArgs,
|
|
23
23
|
"-b",
|
|
@@ -28,7 +28,7 @@ class BinaryExtractionTask extends ExifToolTask_1.ExifToolTask {
|
|
|
28
28
|
"%0f" + node_path_1.default.resolve(imgDest),
|
|
29
29
|
node_path_1.default.resolve(imgSrc),
|
|
30
30
|
];
|
|
31
|
-
return new BinaryExtractionTask(args);
|
|
31
|
+
return new BinaryExtractionTask(args, options);
|
|
32
32
|
}
|
|
33
33
|
parse(stdout, err) {
|
|
34
34
|
const s = (0, String_1.toS)(stdout).trim();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BinaryExtractionTask.js","sourceRoot":"","sources":["../src/BinaryExtractionTask.ts"],"names":[],"mappings":";;;;;;AAAA,0DAA4B;AAC5B,
|
|
1
|
+
{"version":3,"file":"BinaryExtractionTask.js","sourceRoot":"","sources":["../src/BinaryExtractionTask.ts"],"names":[],"mappings":";;;;;;AAAA,0DAA4B;AAC5B,iDAAkE;AAClE,+DAA+D;AAE/D,qCAA8B;AAE9B,MAAM,QAAQ,GAAG,gCAAgC,CAAA;AAEjD;;;GAGG;AACH,MAAa,oBAAqB,SAAQ,2BAA2B;IACnE,YAAoB,IAAc,EAAE,OAA6B;QAC/D,KAAK,CAAC,IAAI,EAAE,OAAO,CAAC,CAAA;IACtB,CAAC;IAED,MAAM,CAAC,GAAG,CACR,OAAe,EACf,MAAc,EACd,OAAe,EACf,OAA6B;QAE7B,MAAM,IAAI,GAAG;YACX,GAAG,6CAAuB;YAC1B,IAAI;YACJ,GAAG,GAAG,OAAO;YACb,IAAI;YACJ,uCAAuC;YACvC,+DAA+D;YAC/D,KAAK,GAAG,mBAAI,CAAC,OAAO,CAAC,OAAO,CAAC;YAC7B,mBAAI,CAAC,OAAO,CAAC,MAAM,CAAC;SACrB,CAAA;QACD,OAAO,IAAI,oBAAoB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAA;IAChD,CAAC;IAED,KAAK,CAAC,MAAc,EAAE,GAAW;QAC/B,MAAM,CAAC,GAAG,IAAA,YAAG,EAAC,MAAM,CAAC,CAAC,IAAI,EAAE,CAAA;QAC5B,MAAM,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QAC1B,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC;YAChB,MAAM,GAAG,CAAA;QACX,CAAC;aAAM,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC;YACrB,MAAM,IAAI,KAAK,CAAC,uCAAuC,GAAG,MAAM,GAAG,GAAG,CAAC,CAAA;QACzE,CAAC;aAAM,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC;YACxB,OAAM;QACR,CAAC;aAAM,CAAC;YACN,2EAA2E;YAC3E,OAAO,CAAC,CAAA;QACV,CAAC;IACH,CAAC;CACF;AAtCD,oDAsCC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/// <reference types="node" />
|
|
2
|
-
import { ExifToolTask } from "./ExifToolTask";
|
|
2
|
+
import { ExifToolTask, ExifToolTaskOptions } from "./ExifToolTask";
|
|
3
3
|
/**
|
|
4
4
|
* Task that returns an error string (to prevent retries), or undefined if
|
|
5
5
|
* everything seems to have worked.
|
|
@@ -7,6 +7,6 @@ import { ExifToolTask } from "./ExifToolTask";
|
|
|
7
7
|
export declare class BinaryToBufferTask extends ExifToolTask<Buffer | Error> {
|
|
8
8
|
readonly tagname: string;
|
|
9
9
|
private constructor();
|
|
10
|
-
static for(tagname: string, imgSrc: string): BinaryToBufferTask;
|
|
10
|
+
static for(tagname: string, imgSrc: string, options?: ExifToolTaskOptions): BinaryToBufferTask;
|
|
11
11
|
parse(data: string, err?: Error): Buffer | Error;
|
|
12
12
|
}
|
|
@@ -13,21 +13,16 @@ const String_1 = require("./String");
|
|
|
13
13
|
* everything seems to have worked.
|
|
14
14
|
*/
|
|
15
15
|
class BinaryToBufferTask extends ExifToolTask_1.ExifToolTask {
|
|
16
|
-
constructor(tagname, args) {
|
|
17
|
-
super(args);
|
|
16
|
+
constructor(tagname, args, options) {
|
|
17
|
+
super(args, options);
|
|
18
18
|
this.tagname = tagname;
|
|
19
19
|
}
|
|
20
|
-
static for(tagname, imgSrc) {
|
|
20
|
+
static for(tagname, imgSrc, options) {
|
|
21
21
|
// NOTE TO FUTURE ME: we don't need to escape these arguments, because
|
|
22
22
|
// ExifTool separates them via newlines.
|
|
23
|
-
const args = [
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
"-b",
|
|
27
|
-
"-" + tagname,
|
|
28
|
-
node_path_1.default.resolve(imgSrc),
|
|
29
|
-
];
|
|
30
|
-
return new BinaryToBufferTask(tagname, args);
|
|
23
|
+
const args = [...FilenameCharsetArgs_1.Utf8FilenameCharsetArgs, "-json", "-b", "-" + tagname];
|
|
24
|
+
args.push(node_path_1.default.resolve(imgSrc));
|
|
25
|
+
return new BinaryToBufferTask(tagname, args, options);
|
|
31
26
|
}
|
|
32
27
|
parse(data, err) {
|
|
33
28
|
var _a;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BinaryToBufferTask.js","sourceRoot":"","sources":["../src/BinaryToBufferTask.ts"],"names":[],"mappings":";;;;;;AAAA,0DAA4B;AAC5B,
|
|
1
|
+
{"version":3,"file":"BinaryToBufferTask.js","sourceRoot":"","sources":["../src/BinaryToBufferTask.ts"],"names":[],"mappings":";;;;;;AAAA,0DAA4B;AAC5B,iDAAkE;AAClE,+DAA+D;AAE/D,qCAAmC;AAEnC;;;GAGG;AACH,MAAa,kBAAmB,SAAQ,2BAA4B;IAClE,YACW,OAAe,EACxB,IAAc,EACd,OAA6B;QAE7B,KAAK,CAAC,IAAI,EAAE,OAAO,CAAC,CAAA;QAJX,YAAO,GAAP,OAAO,CAAQ;IAK1B,CAAC;IAED,MAAM,CAAC,GAAG,CACR,OAAe,EACf,MAAc,EACd,OAA6B;QAE7B,sEAAsE;QACtE,wCAAwC;QACxC,MAAM,IAAI,GAAG,CAAC,GAAG,6CAAuB,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,GAAG,OAAO,CAAC,CAAA;QACvE,IAAI,CAAC,IAAI,CAAC,mBAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAA;QAC/B,OAAO,IAAI,kBAAkB,CAAC,OAAO,EAAE,IAAI,EAAE,OAAO,CAAC,CAAA;IACvD,CAAC;IAED,KAAK,CAAC,IAAY,EAAE,GAAW;;QAC7B,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,MAAA,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,0CAAG,CAAC,CAAC,CAAA;YACjC,iCAAiC;YACjC,CAAC;gBACC,MAAM,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAA;gBACxC,IAAI,MAAM,IAAI,IAAI;oBAAE,OAAO,MAAM,CAAA;YACnC,CAAC,CAAC,+CAA+C;YACjD,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;gBACjC,IAAI,CAAC,CAAC,WAAW,EAAE,KAAK,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC;oBACnD,MAAM,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAA;oBAC7B,IAAI,MAAM,IAAI,IAAI;wBAAE,OAAO,MAAM,CAAA;gBACnC,CAAC;YACH,CAAC;QACH,CAAC;QAAC,OAAO,MAAM,EAAE,CAAC;YAChB,GAAG,aAAH,GAAG,cAAH,GAAG,IAAH,GAAG,GAAK,IAAA,iBAAQ,EAAC,IAAI,CAAC;gBACpB,CAAC,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC;gBACjB,CAAC,CAAC,MAAM,YAAY,KAAK;oBACvB,CAAC,CAAC,MAAM;oBACR,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,EAAA;QACjC,CAAC;QACD,OAAO,GAAG,aAAH,GAAG,cAAH,GAAG,GAAI,IAAI,KAAK,CAAC,IAAI,CAAC,OAAO,GAAG,YAAY,CAAC,CAAA;IACtD,CAAC;CACF;AA5CD,gDA4CC;AAED,MAAM,SAAS,GAAG,SAAS,CAAA;AAE3B,SAAS,MAAM,CAAC,IAAmB;IACjC,OAAO,IAAI,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC;QAChD,CAAC,CAAC,SAAS;QACX,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,QAAQ,CAAC,CAAA;AAC7D,CAAC"}
|
|
@@ -73,6 +73,7 @@ exports.DefaultExifToolOptions = Object.freeze({
|
|
|
73
73
|
geoTz: GeoTz_1.geoTz,
|
|
74
74
|
geolocation: false,
|
|
75
75
|
ignoreZeroZeroLatLon: true,
|
|
76
|
+
ignoreMinorErrors: true,
|
|
76
77
|
imageHashType: false,
|
|
77
78
|
includeImageDataMD5: undefined,
|
|
78
79
|
inferTimezoneFromDatestamps: false, // to retain prior behavior
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DefaultExifToolOptions.js","sourceRoot":"","sources":["../src/DefaultExifToolOptions.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,kDAAmC;AACnC,yCAAoC;AACpC,6DAAyD;AACzD,+DAA2D;AAC3D,uDAAmD;AAEnD,iDAA6C;AAC7C,mCAA+B;AAC/B,uCAAmC;AAEnC,+CAA2C;AAE3C,MAAM,SAAS,GAAG,IAAA,oBAAQ,EAAC,mBAAmB,CAAC,CAAA;AAC/C,SAAS,IAAI,KAAI,CAAC;AAEL,QAAA,aAAa,GAAc;IACtC,KAAK,EAAE,IAAI;IACX,KAAK,EAAE,SAAS;IAChB,IAAI,EAAE,SAAS;IACf,IAAI,EAAE,OAAO,CAAC,IAAI;IAClB,KAAK,EAAE,OAAO,CAAC,KAAK;CACrB,CAAA;AAED,SAAS,MAAM;IACb,OAAO,IAAA,oBAAQ,EAAC,mBAAmB,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,qBAAa,CAAC,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAA;AAC5E,CAAC;AAED;;;GAGG;AACU,QAAA,sBAAsB,GAG/B,MAAM,CAAC,MAAM,CAAC;IAChB,GAAG,IAAI,EAAE,CAAC,mBAAmB,EAAE;IAC/B,QAAQ,EAAE,iCAAe;IACzB,kBAAkB,EAAE,GAAG;IACvB,kBAAkB,EAAE,KAAK;IACzB,yEAAyE;IACzE,iBAAiB,EAAE,KAAK;IACxB,oBAAoB,EAAE,IAAI;IAC1B,WAAW,EAAE,CAAC;IACd,YAAY,EAAZ,2BAAY;IACZ,YAAY,EAAE,yCAAmB;IACjC,WAAW,EAAE,EAAE;IACf,SAAS,EAAE,CAAC,IAAA,iBAAO,GAAE;IACrB,IAAI,EAAE,SAAS;IACf,IAAI,EAAE,SAAS;IACf,WAAW,EAAE,qBAAqB;IAClC,cAAc,EAAE,IAAI,yBAAW,EAAE,CAAC,OAAO;IACzC,yBAAyB,EAAE,KAAK;IAChC,kBAAkB,EAAE,kBAAkB;IAEtC,iBAAiB,EAAE,IAAI;IACvB,kBAAkB,EAAE,IAAI;IACxB,KAAK,EAAE,aAAK;IACZ,WAAW,EAAE,KAAK;IAClB,oBAAoB,EAAE,IAAI;IAC1B,aAAa,EAAE,KAAK;IACpB,mBAAmB,EAAE,SAAS;IAC9B,2BAA2B,EAAE,KAAK,EAAE,2BAA2B;IAC/D,8BAA8B,EAAE,CAAC,GAAG,uCAAkB,CAAC;IACvD,MAAM;IACN,WAAW,EAAE;QACX,YAAY;QACZ,aAAa;QACb,aAAa;QACb,cAAc;QACd,aAAa;QACb,aAAa;KACd;IACD,MAAM,EAAE,KAAK;CACd,CAAC,CAAA"}
|
|
1
|
+
{"version":3,"file":"DefaultExifToolOptions.js","sourceRoot":"","sources":["../src/DefaultExifToolOptions.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,kDAAmC;AACnC,yCAAoC;AACpC,6DAAyD;AACzD,+DAA2D;AAC3D,uDAAmD;AAEnD,iDAA6C;AAC7C,mCAA+B;AAC/B,uCAAmC;AAEnC,+CAA2C;AAE3C,MAAM,SAAS,GAAG,IAAA,oBAAQ,EAAC,mBAAmB,CAAC,CAAA;AAC/C,SAAS,IAAI,KAAI,CAAC;AAEL,QAAA,aAAa,GAAc;IACtC,KAAK,EAAE,IAAI;IACX,KAAK,EAAE,SAAS;IAChB,IAAI,EAAE,SAAS;IACf,IAAI,EAAE,OAAO,CAAC,IAAI;IAClB,KAAK,EAAE,OAAO,CAAC,KAAK;CACrB,CAAA;AAED,SAAS,MAAM;IACb,OAAO,IAAA,oBAAQ,EAAC,mBAAmB,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,qBAAa,CAAC,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAA;AAC5E,CAAC;AAED;;;GAGG;AACU,QAAA,sBAAsB,GAG/B,MAAM,CAAC,MAAM,CAAC;IAChB,GAAG,IAAI,EAAE,CAAC,mBAAmB,EAAE;IAC/B,QAAQ,EAAE,iCAAe;IACzB,kBAAkB,EAAE,GAAG;IACvB,kBAAkB,EAAE,KAAK;IACzB,yEAAyE;IACzE,iBAAiB,EAAE,KAAK;IACxB,oBAAoB,EAAE,IAAI;IAC1B,WAAW,EAAE,CAAC;IACd,YAAY,EAAZ,2BAAY;IACZ,YAAY,EAAE,yCAAmB;IACjC,WAAW,EAAE,EAAE;IACf,SAAS,EAAE,CAAC,IAAA,iBAAO,GAAE;IACrB,IAAI,EAAE,SAAS;IACf,IAAI,EAAE,SAAS;IACf,WAAW,EAAE,qBAAqB;IAClC,cAAc,EAAE,IAAI,yBAAW,EAAE,CAAC,OAAO;IACzC,yBAAyB,EAAE,KAAK;IAChC,kBAAkB,EAAE,kBAAkB;IAEtC,iBAAiB,EAAE,IAAI;IACvB,kBAAkB,EAAE,IAAI;IACxB,KAAK,EAAE,aAAK;IACZ,WAAW,EAAE,KAAK;IAClB,oBAAoB,EAAE,IAAI;IAC1B,iBAAiB,EAAE,IAAI;IACvB,aAAa,EAAE,KAAK;IACpB,mBAAmB,EAAE,SAAS;IAC9B,2BAA2B,EAAE,KAAK,EAAE,2BAA2B;IAC/D,8BAA8B,EAAE,CAAC,GAAG,uCAAkB,CAAC;IACvD,MAAM;IACN,WAAW,EAAE;QACX,YAAY;QACZ,aAAa;QACb,aAAa;QACb,cAAc;QACd,aAAa;QACb,aAAa;KACd;IACD,MAAM,EAAE,KAAK;CACd,CAAC,CAAA"}
|
package/dist/ExifTool.d.ts
CHANGED
|
@@ -4,7 +4,7 @@ import { ApplicationRecordTags } from "./ApplicationRecordTags";
|
|
|
4
4
|
import { Defined, DefinedOrNullValued } from "./Defined";
|
|
5
5
|
import { ErrorsAndWarnings } from "./ErrorsAndWarnings";
|
|
6
6
|
import { ExifToolOptions } from "./ExifToolOptions";
|
|
7
|
-
import { ExifToolTask } from "./ExifToolTask";
|
|
7
|
+
import { ExifToolTask, ExifToolTaskOptions } from "./ExifToolTask";
|
|
8
8
|
import { ExifToolVendoredTags } from "./ExifToolVendoredTags";
|
|
9
9
|
import { ICCProfileTags } from "./ICCProfileTags";
|
|
10
10
|
import { CollectionInfo, KeywordInfoStruct, KeywordStruct, MWGCollectionsTags, MWGKeywordTags } from "./MWGTags";
|
|
@@ -35,7 +35,7 @@ export { parseJSON } from "./JSON";
|
|
|
35
35
|
export { DefaultReadTaskOptions } from "./ReadTask";
|
|
36
36
|
export { UnsetZone, UnsetZoneName, UnsetZoneOffsetMinutes, defaultVideosToUTC, offsetMinutesToZoneName, } from "./Timezones";
|
|
37
37
|
export { DefaultWriteTaskOptions } from "./WriteTask";
|
|
38
|
-
export type { APP12Tags, APP14Tags, APP1Tags, APP4Tags, APP5Tags, APP6Tags, AdditionalWriteTags, ApplicationRecordTags, CollectionInfo, CompositeTags, Defined, DefinedOrNullValued, EXIFTags, ErrorsAndWarnings, ExifToolOptions, ExifToolTags, ExifToolVendoredTags, ExpandedDateTags, FileTags, FlashPixTags, GeolocationTags, ICCProfileTags, IPTCTags, JFIFTags, Json, KeywordInfoStruct, KeywordStruct, Literal, MPFTags, MWGCollectionsTags, MWGKeywordTags, MakerNotesTags, Maybe, MetaTags, MutableTags, Omit, PanasonicRawTags, PhotoshopTags, PrintIMTags, QuickTimeTags, RAFTags, RIFFTags, RawTags, ReadTaskOptions, ResourceEvent, ShortcutTags, Struct, StructAppendTags, Tags, Version, WriteTags, WriteTaskOptions, WriteTaskResult, XMPTags, };
|
|
38
|
+
export type { APP12Tags, APP14Tags, APP1Tags, APP4Tags, APP5Tags, APP6Tags, AdditionalWriteTags, ApplicationRecordTags, CollectionInfo, CompositeTags, Defined, DefinedOrNullValued, EXIFTags, ErrorsAndWarnings, ExifToolOptions, ExifToolTags, ExifToolTaskOptions, ExifToolVendoredTags, ExpandedDateTags, FileTags, FlashPixTags, GeolocationTags, ICCProfileTags, IPTCTags, JFIFTags, Json, KeywordInfoStruct, KeywordStruct, Literal, MPFTags, MWGCollectionsTags, MWGKeywordTags, MakerNotesTags, Maybe, MetaTags, MutableTags, Omit, PanasonicRawTags, PhotoshopTags, PrintIMTags, QuickTimeTags, RAFTags, RIFFTags, RawTags, ReadTaskOptions, ResourceEvent, ShortcutTags, Struct, StructAppendTags, Tags, Version, WriteTags, WriteTaskOptions, WriteTaskResult, XMPTags, };
|
|
39
39
|
/**
|
|
40
40
|
* Manages delegating calls to a cluster of ExifTool child processes.
|
|
41
41
|
*
|
|
@@ -85,7 +85,7 @@ export declare class ExifTool {
|
|
|
85
85
|
* @returns {Promise<Tags>} A resolved Tags promise. If there are errors
|
|
86
86
|
* during reading, the `.errors` field will be present.
|
|
87
87
|
*/
|
|
88
|
-
read<T extends Tags = Tags>(file: string, optionalArgs?: string[], options?:
|
|
88
|
+
read<T extends Tags = Tags>(file: string, optionalArgs?: string[], options?: ReadTaskOptions): Promise<T>;
|
|
89
89
|
/**
|
|
90
90
|
* Read the tags from `file`, without any post-processing of ExifTool
|
|
91
91
|
* values.
|
|
@@ -140,7 +140,7 @@ export declare class ExifTool {
|
|
|
140
140
|
*/
|
|
141
141
|
deleteAllTags(file: string, opts?: {
|
|
142
142
|
retain?: (keyof Tags | string)[];
|
|
143
|
-
}): Promise<WriteTaskResult>;
|
|
143
|
+
} & Partial<ExifToolTaskOptions>): Promise<WriteTaskResult>;
|
|
144
144
|
/**
|
|
145
145
|
* Extract the low-resolution thumbnail in `path/to/image.jpg`
|
|
146
146
|
* and write it to `path/to/thumbnail.jpg`.
|
|
@@ -150,7 +150,7 @@ export declare class ExifTool {
|
|
|
150
150
|
* @return a `Promise<void>`. An `Error` is raised if
|
|
151
151
|
* the file could not be read or the output not written.
|
|
152
152
|
*/
|
|
153
|
-
extractThumbnail(imageFile: string, thumbnailFile: string): Promise<void>;
|
|
153
|
+
extractThumbnail(imageFile: string, thumbnailFile: string, opts?: ExifToolOptions): Promise<void>;
|
|
154
154
|
/**
|
|
155
155
|
* Extract the "preview" image in `path/to/image.jpg`
|
|
156
156
|
* and write it to `path/to/preview.jpg`.
|
|
@@ -161,7 +161,7 @@ export declare class ExifTool {
|
|
|
161
161
|
* @return a `Promise<void>`. An `Error` is raised if
|
|
162
162
|
* the file could not be read or the output not written.
|
|
163
163
|
*/
|
|
164
|
-
extractPreview(imageFile: string, previewFile: string): Promise<void>;
|
|
164
|
+
extractPreview(imageFile: string, previewFile: string, opts?: ExifToolOptions): Promise<void>;
|
|
165
165
|
/**
|
|
166
166
|
* Extract the "JpgFromRaw" image in `path/to/image.jpg` and write it to
|
|
167
167
|
* `path/to/fromRaw.jpg`.
|
|
@@ -172,7 +172,7 @@ export declare class ExifTool {
|
|
|
172
172
|
* @return a `Promise<void>`. The promise will be rejected if the file could
|
|
173
173
|
* not be read or the output not written.
|
|
174
174
|
*/
|
|
175
|
-
extractJpgFromRaw(imageFile: string, outputFile: string): Promise<void>;
|
|
175
|
+
extractJpgFromRaw(imageFile: string, outputFile: string, opts?: ExifToolOptions): Promise<void>;
|
|
176
176
|
/**
|
|
177
177
|
* Extract a given binary value from "tagname" tag associated to
|
|
178
178
|
* `path/to/image.jpg` and write it to `dest` (which cannot exist and whose
|
|
@@ -181,7 +181,7 @@ export declare class ExifTool {
|
|
|
181
181
|
* @return a `Promise<void>`. The promise will be rejected if the binary
|
|
182
182
|
* output not be written to `dest`.
|
|
183
183
|
*/
|
|
184
|
-
extractBinaryTag(tagname: string, src: string, dest: string): Promise<void>;
|
|
184
|
+
extractBinaryTag(tagname: string, src: string, dest: string, opts?: ExifToolTaskOptions): Promise<void>;
|
|
185
185
|
/**
|
|
186
186
|
* Extract a given binary value from "tagname" tag associated to
|
|
187
187
|
* `path/to/image.jpg` as a `Buffer`. This has the advantage of not writing to
|
|
@@ -191,7 +191,7 @@ export declare class ExifTool {
|
|
|
191
191
|
* @return a `Promise<Buffer>`. The promise will be rejected if the file or
|
|
192
192
|
* tag is missing.
|
|
193
193
|
*/
|
|
194
|
-
extractBinaryTagToBuffer(tagname: PreviewTag, imageFile: string): Promise<Buffer>;
|
|
194
|
+
extractBinaryTagToBuffer(tagname: PreviewTag, imageFile: string, opts?: ExifToolTaskOptions): Promise<Buffer>;
|
|
195
195
|
/**
|
|
196
196
|
* Attempt to fix metadata problems in JPEG images by deleting all metadata
|
|
197
197
|
* and rebuilding from scratch. After repairing an image you should be able to
|
|
@@ -210,7 +210,9 @@ export declare class ExifTool {
|
|
|
210
210
|
* exiftool's `-F` flag.
|
|
211
211
|
* @return {Promise<void>} resolved when outputFile has been written.
|
|
212
212
|
*/
|
|
213
|
-
rewriteAllTags(inputFile: string, outputFile: string,
|
|
213
|
+
rewriteAllTags(inputFile: string, outputFile: string, opts?: {
|
|
214
|
+
allowMakerNoteRepair?: boolean;
|
|
215
|
+
} & ExifToolTaskOptions): Promise<void>;
|
|
214
216
|
/**
|
|
215
217
|
* Shut down running ExifTool child processes. No subsequent requests will be
|
|
216
218
|
* accepted.
|
|
@@ -227,6 +229,8 @@ export declare class ExifTool {
|
|
|
227
229
|
* Most users will not need to use `enqueueTask` directly. This method
|
|
228
230
|
* supports submitting custom `BatchCluster` tasks.
|
|
229
231
|
*
|
|
232
|
+
* @param task is a thunk to support retries by providing new instances on retries.
|
|
233
|
+
*
|
|
230
234
|
* @see BinaryExtractionTask for an example task implementation
|
|
231
235
|
*/
|
|
232
236
|
enqueueTask<T>(task: () => ExifToolTask<T>, retriable?: boolean): Promise<T>;
|
package/dist/ExifTool.js
CHANGED
|
@@ -30,7 +30,7 @@ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (
|
|
|
30
30
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
31
31
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
32
32
|
};
|
|
33
|
-
var _ExifTool_checkForPerl;
|
|
33
|
+
var _ExifTool_taskOptions, _ExifTool_checkForPerl;
|
|
34
34
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
35
35
|
exports.exiftool = exports.ExifTool = exports.DefaultWriteTaskOptions = exports.offsetMinutesToZoneName = exports.defaultVideosToUTC = exports.UnsetZoneOffsetMinutes = exports.UnsetZoneName = exports.UnsetZone = exports.DefaultReadTaskOptions = exports.parseJSON = exports.isGeolocationTag = exports.exiftoolPath = exports.ExifToolTask = exports.ExifTime = exports.ExifDateTime = exports.ExifDate = exports.DefaultMaxProcs = exports.DefaultExiftoolArgs = exports.DefaultExifToolOptions = exports.CapturedAtTagNames = exports.BinaryField = void 0;
|
|
36
36
|
const bc = __importStar(require("batch-cluster"));
|
|
@@ -89,13 +89,17 @@ Object.defineProperty(exports, "defaultVideosToUTC", { enumerable: true, get: fu
|
|
|
89
89
|
Object.defineProperty(exports, "offsetMinutesToZoneName", { enumerable: true, get: function () { return Timezones_1.offsetMinutesToZoneName; } });
|
|
90
90
|
var WriteTask_2 = require("./WriteTask");
|
|
91
91
|
Object.defineProperty(exports, "DefaultWriteTaskOptions", { enumerable: true, get: function () { return WriteTask_2.DefaultWriteTaskOptions; } });
|
|
92
|
+
/**
|
|
93
|
+
* This is the hardcoded path in the exiftool shebang line
|
|
94
|
+
*/
|
|
95
|
+
const PERL = "/usr/bin/perl";
|
|
92
96
|
/**
|
|
93
97
|
* Is the #!/usr/bin/perl shebang line in exiftool-vendored.pl going to fail? If
|
|
94
98
|
* so, we need to find `perl` ourselves, and ignore the shebang line.
|
|
95
99
|
*/
|
|
96
|
-
const _ignoreShebang = (0, Lazy_1.lazy)(() => !(0, IsWin32_1.isWin32)() && !_fs.existsSync(
|
|
100
|
+
const _ignoreShebang = (0, Lazy_1.lazy)(() => !(0, IsWin32_1.isWin32)() && !_fs.existsSync(PERL));
|
|
97
101
|
const whichPerl = (0, Lazy_1.lazy)(async () => {
|
|
98
|
-
const result = await (0, Which_1.which)(
|
|
102
|
+
const result = await (0, Which_1.which)(PERL);
|
|
99
103
|
if (result == null) {
|
|
100
104
|
throw new Error("Perl must be installed. Please add perl to your $PATH and try again.");
|
|
101
105
|
}
|
|
@@ -127,6 +131,11 @@ class ExifTool {
|
|
|
127
131
|
? o.exiftoolPath(this.options.logger())
|
|
128
132
|
: o.exiftoolPath))) !== null && _a !== void 0 ? _a : (0, ExiftoolPath_1.exiftoolPath)(this.options.logger()));
|
|
129
133
|
});
|
|
134
|
+
_ExifTool_taskOptions.set(this, (0, Lazy_1.lazy)(() => (0, Pick_1.pick)(this.options, "ignoreMinorErrors"))
|
|
135
|
+
/**
|
|
136
|
+
* Register life cycle event listeners. Delegates to BatchProcess.
|
|
137
|
+
*/
|
|
138
|
+
);
|
|
130
139
|
/**
|
|
131
140
|
* Register life cycle event listeners. Delegates to BatchProcess.
|
|
132
141
|
*/
|
|
@@ -146,6 +155,8 @@ class ExifTool {
|
|
|
146
155
|
* Most users will not need to use `enqueueTask` directly. This method
|
|
147
156
|
* supports submitting custom `BatchCluster` tasks.
|
|
148
157
|
*
|
|
158
|
+
* @param task is a thunk to support retries by providing new instances on retries.
|
|
159
|
+
*
|
|
149
160
|
* @see BinaryExtractionTask for an example task implementation
|
|
150
161
|
*/
|
|
151
162
|
);
|
|
@@ -181,7 +192,7 @@ class ExifTool {
|
|
|
181
192
|
* @return a promise holding the version number of the vendored ExifTool
|
|
182
193
|
*/
|
|
183
194
|
version() {
|
|
184
|
-
return this.enqueueTask(() => new VersionTask_1.VersionTask());
|
|
195
|
+
return this.enqueueTask(() => new VersionTask_1.VersionTask(this.options));
|
|
185
196
|
}
|
|
186
197
|
/**
|
|
187
198
|
* Read the tags in `file`.
|
|
@@ -232,7 +243,7 @@ class ExifTool {
|
|
|
232
243
|
* typing details.
|
|
233
244
|
*/
|
|
234
245
|
readRaw(file, args = []) {
|
|
235
|
-
return this.enqueueTask(() => ReadRawTask_1.ReadRawTask.for(file, args));
|
|
246
|
+
return this.enqueueTask(() => ReadRawTask_1.ReadRawTask.for(file, args, __classPrivateFieldGet(this, _ExifTool_taskOptions, "f").call(this)));
|
|
236
247
|
}
|
|
237
248
|
/**
|
|
238
249
|
* Write the given `tags` to `file`.
|
|
@@ -252,7 +263,7 @@ class ExifTool {
|
|
|
252
263
|
// timestamps by an hour)
|
|
253
264
|
const retriable = false;
|
|
254
265
|
return this.enqueueTask(() => WriteTask_1.WriteTask.for(file, tags, args, {
|
|
255
|
-
...(0, Pick_1.pick)(this.options, "useMWG"),
|
|
266
|
+
...(0, Pick_1.pick)(this.options, "useMWG", "ignoreMinorErrors"),
|
|
256
267
|
...options,
|
|
257
268
|
}), retriable);
|
|
258
269
|
}
|
|
@@ -273,7 +284,7 @@ class ExifTool {
|
|
|
273
284
|
for (const ea of (_a = opts === null || opts === void 0 ? void 0 : opts.retain) !== null && _a !== void 0 ? _a : []) {
|
|
274
285
|
args.push(`-${ea}<${ea}`);
|
|
275
286
|
}
|
|
276
|
-
return this.write(file, {}, args);
|
|
287
|
+
return this.write(file, {}, args, (0, Object_1.omit)(opts !== null && opts !== void 0 ? opts : {}, "retain"));
|
|
277
288
|
}
|
|
278
289
|
/**
|
|
279
290
|
* Extract the low-resolution thumbnail in `path/to/image.jpg`
|
|
@@ -284,8 +295,8 @@ class ExifTool {
|
|
|
284
295
|
* @return a `Promise<void>`. An `Error` is raised if
|
|
285
296
|
* the file could not be read or the output not written.
|
|
286
297
|
*/
|
|
287
|
-
extractThumbnail(imageFile, thumbnailFile) {
|
|
288
|
-
return this.extractBinaryTag("ThumbnailImage", imageFile, thumbnailFile);
|
|
298
|
+
extractThumbnail(imageFile, thumbnailFile, opts) {
|
|
299
|
+
return this.extractBinaryTag("ThumbnailImage", imageFile, thumbnailFile, opts);
|
|
289
300
|
}
|
|
290
301
|
/**
|
|
291
302
|
* Extract the "preview" image in `path/to/image.jpg`
|
|
@@ -297,8 +308,8 @@ class ExifTool {
|
|
|
297
308
|
* @return a `Promise<void>`. An `Error` is raised if
|
|
298
309
|
* the file could not be read or the output not written.
|
|
299
310
|
*/
|
|
300
|
-
extractPreview(imageFile, previewFile) {
|
|
301
|
-
return this.extractBinaryTag("PreviewImage", imageFile, previewFile);
|
|
311
|
+
extractPreview(imageFile, previewFile, opts) {
|
|
312
|
+
return this.extractBinaryTag("PreviewImage", imageFile, previewFile, opts);
|
|
302
313
|
}
|
|
303
314
|
/**
|
|
304
315
|
* Extract the "JpgFromRaw" image in `path/to/image.jpg` and write it to
|
|
@@ -310,8 +321,8 @@ class ExifTool {
|
|
|
310
321
|
* @return a `Promise<void>`. The promise will be rejected if the file could
|
|
311
322
|
* not be read or the output not written.
|
|
312
323
|
*/
|
|
313
|
-
extractJpgFromRaw(imageFile, outputFile) {
|
|
314
|
-
return this.extractBinaryTag("JpgFromRaw", imageFile, outputFile);
|
|
324
|
+
extractJpgFromRaw(imageFile, outputFile, opts) {
|
|
325
|
+
return this.extractBinaryTag("JpgFromRaw", imageFile, outputFile, opts);
|
|
315
326
|
}
|
|
316
327
|
/**
|
|
317
328
|
* Extract a given binary value from "tagname" tag associated to
|
|
@@ -321,10 +332,13 @@ class ExifTool {
|
|
|
321
332
|
* @return a `Promise<void>`. The promise will be rejected if the binary
|
|
322
333
|
* output not be written to `dest`.
|
|
323
334
|
*/
|
|
324
|
-
async extractBinaryTag(tagname, src, dest) {
|
|
335
|
+
async extractBinaryTag(tagname, src, dest, opts) {
|
|
325
336
|
// BinaryExtractionTask returns a stringified error if the output indicates
|
|
326
337
|
// the task should not be retried.
|
|
327
|
-
const maybeError = await this.enqueueTask(() => BinaryExtractionTask_1.BinaryExtractionTask.for(tagname, src, dest
|
|
338
|
+
const maybeError = await this.enqueueTask(() => BinaryExtractionTask_1.BinaryExtractionTask.for(tagname, src, dest, {
|
|
339
|
+
...__classPrivateFieldGet(this, _ExifTool_taskOptions, "f").call(this),
|
|
340
|
+
...opts,
|
|
341
|
+
}));
|
|
328
342
|
if (maybeError != null) {
|
|
329
343
|
throw new Error(maybeError);
|
|
330
344
|
}
|
|
@@ -338,8 +352,11 @@ class ExifTool {
|
|
|
338
352
|
* @return a `Promise<Buffer>`. The promise will be rejected if the file or
|
|
339
353
|
* tag is missing.
|
|
340
354
|
*/
|
|
341
|
-
async extractBinaryTagToBuffer(tagname, imageFile) {
|
|
342
|
-
const result = await this.enqueueTask(() => BinaryToBufferTask_1.BinaryToBufferTask.for(tagname, imageFile
|
|
355
|
+
async extractBinaryTagToBuffer(tagname, imageFile, opts) {
|
|
356
|
+
const result = await this.enqueueTask(() => BinaryToBufferTask_1.BinaryToBufferTask.for(tagname, imageFile, {
|
|
357
|
+
...__classPrivateFieldGet(this, _ExifTool_taskOptions, "f").call(this),
|
|
358
|
+
...opts,
|
|
359
|
+
}));
|
|
343
360
|
if (Buffer.isBuffer(result)) {
|
|
344
361
|
return result;
|
|
345
362
|
}
|
|
@@ -368,8 +385,12 @@ class ExifTool {
|
|
|
368
385
|
* exiftool's `-F` flag.
|
|
369
386
|
* @return {Promise<void>} resolved when outputFile has been written.
|
|
370
387
|
*/
|
|
371
|
-
rewriteAllTags(inputFile, outputFile,
|
|
372
|
-
return this.enqueueTask(() => RewriteAllTagsTask_1.RewriteAllTagsTask.for(inputFile, outputFile,
|
|
388
|
+
rewriteAllTags(inputFile, outputFile, opts) {
|
|
389
|
+
return this.enqueueTask(() => RewriteAllTagsTask_1.RewriteAllTagsTask.for(inputFile, outputFile, {
|
|
390
|
+
allowMakerNoteRepair: false,
|
|
391
|
+
...__classPrivateFieldGet(this, _ExifTool_taskOptions, "f").call(this),
|
|
392
|
+
...opts,
|
|
393
|
+
}));
|
|
373
394
|
}
|
|
374
395
|
/**
|
|
375
396
|
* Shut down running ExifTool child processes. No subsequent requests will be
|
|
@@ -391,6 +412,8 @@ class ExifTool {
|
|
|
391
412
|
* Most users will not need to use `enqueueTask` directly. This method
|
|
392
413
|
* supports submitting custom `BatchCluster` tasks.
|
|
393
414
|
*
|
|
415
|
+
* @param task is a thunk to support retries by providing new instances on retries.
|
|
416
|
+
*
|
|
394
417
|
* @see BinaryExtractionTask for an example task implementation
|
|
395
418
|
*/
|
|
396
419
|
enqueueTask(task, retriable = true) {
|
|
@@ -442,7 +465,7 @@ class ExifTool {
|
|
|
442
465
|
}
|
|
443
466
|
}
|
|
444
467
|
exports.ExifTool = ExifTool;
|
|
445
|
-
_ExifTool_checkForPerl = new WeakMap();
|
|
468
|
+
_ExifTool_taskOptions = new WeakMap(), _ExifTool_checkForPerl = new WeakMap();
|
|
446
469
|
/**
|
|
447
470
|
* Use this singleton rather than instantiating new {@link ExifTool} instances
|
|
448
471
|
* in order to leverage a single running ExifTool process.
|
package/dist/ExifTool.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ExifTool.js","sourceRoot":"","sources":["../src/ExifTool.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,kDAAmC;AACnC,wDAAyC;AACzC,6CAA8B;AAC9B,gEAAkC;AAElC,6CAA4C;AAC5C,iEAA6D;AAC7D,6DAAyD;AACzD,qEAAiE;AAEjE,2DAAuD;AAEvD,uDAA4E;AAG5E,iDAA6C;AAE7C,uCAAmC;AACnC,iCAA6B;AAS7B,
|
|
1
|
+
{"version":3,"file":"ExifTool.js","sourceRoot":"","sources":["../src/ExifTool.ts"],"names":[],"mappings":"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"}
|
|
@@ -198,6 +198,12 @@ export interface ExifToolOptions extends bc.BatchClusterOptions, bc.BatchProcess
|
|
|
198
198
|
* @see https://exiftool.org/geolocation.html
|
|
199
199
|
*/
|
|
200
200
|
geolocation: boolean;
|
|
201
|
+
/**
|
|
202
|
+
* Should we ignore minor errors when reading metadata?
|
|
203
|
+
*
|
|
204
|
+
* This defaults to `true`, as ExifTool can be quite chatty.
|
|
205
|
+
*/
|
|
206
|
+
ignoreMinorErrors: boolean;
|
|
201
207
|
/**
|
|
202
208
|
* `ExifTool` has a shebang line that assumes a valid `perl` is installed at
|
|
203
209
|
* `/usr/bin/perl`.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ExifToolOptions.js","sourceRoot":"","sources":["../src/ExifToolOptions.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"ExifToolOptions.js","sourceRoot":"","sources":["../src/ExifToolOptions.ts"],"names":[],"mappings":";;;AA8PA,SAAgB,uBAAuB,CAErC,OAAU;IACV,IAAI,OAAO,CAAC,aAAa,IAAI,IAAI,IAAI,OAAO,CAAC,mBAAmB,IAAI,IAAI,EAAE,CAAC;QACzE,OAAO,CAAC,aAAa,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAA;IACrE,CAAC;IACD,OAAO,OAAO,CAAA;AAChB,CAAC;AAPD,0DAOC"}
|
package/dist/ExifToolTask.d.ts
CHANGED
|
@@ -1,12 +1,15 @@
|
|
|
1
1
|
/// <reference types="node" />
|
|
2
2
|
import * as bc from "batch-cluster";
|
|
3
|
+
import { ExifToolOptions } from "./ExifToolOptions";
|
|
4
|
+
export type ExifToolTaskOptions = Pick<ExifToolOptions, "ignoreMinorErrors">;
|
|
3
5
|
export declare abstract class ExifToolTask<T> extends bc.Task<T> {
|
|
4
6
|
#private;
|
|
5
7
|
readonly args: string[];
|
|
6
|
-
|
|
8
|
+
readonly options?: ExifToolTaskOptions | undefined;
|
|
9
|
+
static renderCommand(args: string[], options?: ExifToolTaskOptions): string;
|
|
7
10
|
readonly errors: string[];
|
|
8
11
|
readonly warnings: string[];
|
|
9
|
-
constructor(args: string[]);
|
|
12
|
+
constructor(args: string[], options?: ExifToolTaskOptions | undefined);
|
|
10
13
|
onStderr(buf: string | Buffer): void;
|
|
11
14
|
protected abstract parse(input: string, error?: Error): T;
|
|
12
15
|
}
|
package/dist/ExifToolTask.js
CHANGED
|
@@ -35,13 +35,19 @@ const IsWarning_1 = require("./IsWarning");
|
|
|
35
35
|
const String_1 = require("./String");
|
|
36
36
|
const BadPerlInstallationRE = /Can't locate \S+ in @INC/i;
|
|
37
37
|
class ExifToolTask extends bc.Task {
|
|
38
|
-
static renderCommand(args) {
|
|
39
|
-
|
|
38
|
+
static renderCommand(args, options) {
|
|
39
|
+
const result = args.filter((ea) => !(0, String_1.blank)(ea));
|
|
40
|
+
if ((options === null || options === void 0 ? void 0 : options.ignoreMinorErrors) === true) {
|
|
41
|
+
result.push("-ignoreMinorErrors");
|
|
42
|
+
}
|
|
43
|
+
result.push("-execute");
|
|
44
|
+
return result.join("\n") + "\n";
|
|
40
45
|
}
|
|
41
|
-
constructor(args) {
|
|
42
|
-
super(ExifToolTask.renderCommand(args), (stdout, stderr, passed) => __classPrivateFieldGet(this, _ExifToolTask_instances, "m", _ExifToolTask_parser).call(this, stdout, stderr, passed));
|
|
46
|
+
constructor(args, options) {
|
|
47
|
+
super(ExifToolTask.renderCommand(args, options), (stdout, stderr, passed) => __classPrivateFieldGet(this, _ExifToolTask_instances, "m", _ExifToolTask_parser).call(this, stdout, stderr, passed));
|
|
43
48
|
_ExifToolTask_instances.add(this);
|
|
44
49
|
this.args = args;
|
|
50
|
+
this.options = options;
|
|
45
51
|
this.errors = [];
|
|
46
52
|
this.warnings = [];
|
|
47
53
|
}
|
package/dist/ExifToolTask.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ExifToolTask.js","sourceRoot":"","sources":["../src/ExifToolTask.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,kDAAmC;
|
|
1
|
+
{"version":3,"file":"ExifToolTask.js","sourceRoot":"","sources":["../src/ExifToolTask.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,kDAAmC;AAEnC,2CAAuC;AAEvC,qCAAsD;AAEtD,MAAM,qBAAqB,GAAG,2BAA2B,CAAA;AAIzD,MAAsB,YAAgB,SAAQ,EAAE,CAAC,IAAO;IACtD,MAAM,CAAC,aAAa,CAAC,IAAc,EAAE,OAA6B;QAChE,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,IAAA,cAAK,EAAC,EAAE,CAAC,CAAC,CAAA;QAC9C,IAAI,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,iBAAiB,MAAK,IAAI,EAAE,CAAC;YACxC,MAAM,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAA;QACnC,CAAC;QACD,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;QACvB,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAA;IACjC,CAAC;IAKD,YACW,IAAc,EACd,OAA6B;QAEtC,KAAK,CAAC,YAAY,CAAC,aAAa,CAAC,IAAI,EAAE,OAAO,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,CAC1E,uBAAA,IAAI,qDAAQ,MAAZ,IAAI,EAAS,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CACrC,CAAA;;QALQ,SAAI,GAAJ,IAAI,CAAU;QACd,YAAO,GAAP,OAAO,CAAsB;QAL/B,WAAM,GAAa,EAAE,CAAA;QACrB,aAAQ,GAAa,EAAE,CAAA;IAShC,CAAC;IAEQ,QAAQ,CAAC,GAAoB;QACpC,IAAI,qBAAqB,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,EAAE,CAAC;YAC/C,sEAAsE;YACtE,6BAA6B;YAC7B,wEAAwE;YACxE,WAAW;YACX,MAAM,IAAI,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAA;QACjC,CAAC;QACD,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAA;IACrB,CAAC;CAmBF;AAlDD,oCAkDC;8FAjBS,MAAc,EAAE,MAA0B,EAAE,MAAe;IACjE,IAAI,KAAmB,CAAA;IACvB,IAAI,IAAA,iBAAQ,EAAC,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;QAChC,KAAK,MAAM,IAAI,IAAI,IAAA,mBAAU,EAAC,MAAM,aAAN,MAAM,cAAN,MAAM,GAAI,EAAE,CAAC,EAAE,CAAC;YAC5C,IAAI,IAAA,qBAAS,EAAC,IAAI,CAAC,EAAE,CAAC;gBACpB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;YAC1B,CAAC;iBAAM,IAAI,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;gBACvC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;gBACtB,2CAA2C;gBAC3C,KAAK,aAAL,KAAK,cAAL,KAAK,IAAL,KAAK,GAAK,IAAI,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC,EAAA;YACpD,CAAC;QACH,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,CAAA;AAClC,CAAC"}
|
package/dist/ReadRawTask.d.ts
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import { ExifToolTask } from "./ExifToolTask";
|
|
1
|
+
import { ExifToolTask, ExifToolTaskOptions } from "./ExifToolTask";
|
|
2
2
|
import { RawTags } from "./RawTags";
|
|
3
3
|
export declare class ReadRawTask extends ExifToolTask<RawTags> {
|
|
4
4
|
readonly sourceFile: string;
|
|
5
5
|
readonly args: string[];
|
|
6
|
-
static for(filename: string, exiftoolArgs?: string[]): ReadRawTask;
|
|
6
|
+
static for(filename: string, exiftoolArgs?: string[], options?: ExifToolTaskOptions): ReadRawTask;
|
|
7
7
|
private constructor();
|
|
8
8
|
toString(): string;
|
|
9
9
|
protected parse(data: string, err?: Error): RawTags;
|
package/dist/ReadRawTask.js
CHANGED
|
@@ -30,16 +30,16 @@ const ErrorsAndWarnings_1 = require("./ErrorsAndWarnings");
|
|
|
30
30
|
const ExifToolTask_1 = require("./ExifToolTask");
|
|
31
31
|
const FilenameCharsetArgs_1 = require("./FilenameCharsetArgs");
|
|
32
32
|
class ReadRawTask extends ExifToolTask_1.ExifToolTask {
|
|
33
|
-
static for(filename, exiftoolArgs = []) {
|
|
33
|
+
static for(filename, exiftoolArgs = [], options) {
|
|
34
34
|
const args = [...FilenameCharsetArgs_1.Utf8FilenameCharsetArgs, ...exiftoolArgs];
|
|
35
35
|
if (!args.includes("-json"))
|
|
36
36
|
args.push("-json");
|
|
37
37
|
const sourceFile = _path.resolve(filename);
|
|
38
38
|
args.push(sourceFile);
|
|
39
|
-
return new ReadRawTask(sourceFile, args);
|
|
39
|
+
return new ReadRawTask(sourceFile, args, options);
|
|
40
40
|
}
|
|
41
|
-
constructor(sourceFile, args) {
|
|
42
|
-
super(args);
|
|
41
|
+
constructor(sourceFile, args, options) {
|
|
42
|
+
super(args, options);
|
|
43
43
|
this.sourceFile = sourceFile;
|
|
44
44
|
this.args = args;
|
|
45
45
|
}
|