exiftool-vendored 23.1.0 → 23.3.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 CHANGED
@@ -26,13 +26,30 @@ vendored versions of ExifTool match the version that they vendor.
26
26
 
27
27
  ## Version history
28
28
 
29
+ ### v23.3.0
30
+
31
+ - 🐞 Restored datestamp parsing of `ResourceEvent.When`
32
+
33
+ ### v23.2.0
34
+
35
+ - ✨ Timezone parsing improvements:
36
+
37
+ - Added [`ExifToolOptions.inferTimezoneFromDatestampTags`](https://photostructure.github.io/exiftool-vendored.js/interfaces/ExifToolOptions.html#inferTimezoneFromDatestampTags).
38
+ - Timezone inference from datestamps now skips over UTC values, as Google
39
+ Takeout (and several other applications) may spuriously set "+00:00" to
40
+ datestamps.
41
+ - ReadTask.parse in prior versions had to scan all tags twice to set the
42
+ timezone. Code was refactored to do this in a single pass.
43
+ - Timezone extraction and normalization was improved.
44
+
45
+ - 📦 Add `creationDate` to [CapturedAtTagNames](https://photostructure.github.io/exiftool-vendored.js/variables/CapturedAtTagNames.html). [See PR#159](https://github.com/photostructure/exiftool-vendored.js/pull/159).
46
+
29
47
  ### v23.1.0
30
48
 
31
49
  - 🌱 ExifTool upgraded to [v12.67](https://exiftool.org/history.html#v12.67)
32
50
 
33
51
  - ✨ `ExifTime` now parses and stores timezone offsets if available. This resolves [issue
34
52
  #157](https://github.com/photostructure/exiftool-vendored.js/issues/157).
35
-
36
53
  - 📦 `ExifDateTime`, `ExifTime`, and `ExifDate` are now [only allowed to try
37
54
  to parse keys that includes `date` or
38
55
  `time`](https://github.com/photostructure/exiftool-vendored.js/blob/ed7bf9eaea9b1d8ad234fb907953568219fc5bdb/src/ReadTask.ts#L389),
@@ -1 +1 @@
1
- export declare const CapturedAtTagNames: readonly ["SubSecDateTimeOriginal", "DateTimeOriginal", "SubSecCreateDate", "CreateDate", "SubSecMediaCreateDate", "MediaCreateDate", "DateTimeCreated"];
1
+ export declare const CapturedAtTagNames: readonly ["SubSecDateTimeOriginal", "SubSecCreateDate", "SubSecMediaCreateDate", "DateTimeOriginal", "CreateDate", "MediaCreateDate", "CreationDate", "DateTimeCreated", "TimeCreated"];
@@ -3,11 +3,13 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.CapturedAtTagNames = void 0;
4
4
  exports.CapturedAtTagNames = [
5
5
  "SubSecDateTimeOriginal",
6
- "DateTimeOriginal",
7
6
  "SubSecCreateDate",
8
- "CreateDate",
9
7
  "SubSecMediaCreateDate",
8
+ "DateTimeOriginal",
9
+ "CreateDate",
10
10
  "MediaCreateDate",
11
+ "CreationDate",
11
12
  "DateTimeCreated",
13
+ "TimeCreated", // < may not have the date
12
14
  ];
13
15
  //# sourceMappingURL=CapturedAtTagNames.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"CapturedAtTagNames.js","sourceRoot":"","sources":["../src/CapturedAtTagNames.ts"],"names":[],"mappings":";;;AAAa,QAAA,kBAAkB,GAAG;IAChC,wBAAwB;IACxB,kBAAkB;IAClB,kBAAkB;IAClB,YAAY;IACZ,uBAAuB;IACvB,iBAAiB;IACjB,iBAAiB;CACT,CAAA"}
1
+ {"version":3,"file":"CapturedAtTagNames.js","sourceRoot":"","sources":["../src/CapturedAtTagNames.ts"],"names":[],"mappings":";;;AAEa,QAAA,kBAAkB,GAAG;IAChC,wBAAwB;IACxB,kBAAkB;IAClB,uBAAuB;IACvB,kBAAkB;IAClB,YAAY;IACZ,iBAAiB;IACjB,cAAc;IACd,iBAAiB;IACjB,aAAa,EAAE,0BAA0B;CACC,CAAA"}
@@ -0,0 +1,4 @@
1
+ /**
2
+ * @deprecated use {@link CapturedAtTagNames} instead.
3
+ */
4
+ export declare const DefaultCreateDateTagNames: readonly ["SubSecDateTimeOriginal", "SubSecCreateDate", "SubSecMediaCreateDate", "DateTimeOriginal", "CreateDate", "MediaCreateDate", "CreationDate", "DateTimeCreated", "TimeCreated"];
@@ -0,0 +1,9 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DefaultCreateDateTagNames = void 0;
4
+ const CapturedAtTagNames_1 = require("./CapturedAtTagNames");
5
+ /**
6
+ * @deprecated use {@link CapturedAtTagNames} instead.
7
+ */
8
+ exports.DefaultCreateDateTagNames = CapturedAtTagNames_1.CapturedAtTagNames;
9
+ //# sourceMappingURL=DefaultCreateDateTagNames.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DefaultCreateDateTagNames.js","sourceRoot":"","sources":["../src/DefaultCreateDateTagNames.ts"],"names":[],"mappings":";;;AAAA,6DAAyD;AAEzD;;GAEG;AACU,QAAA,yBAAyB,GAAG,uCAAkB,CAAA"}
@@ -25,6 +25,7 @@ var __importStar = (this && this.__importStar) || function (mod) {
25
25
  Object.defineProperty(exports, "__esModule", { value: true });
26
26
  exports.DefaultExifToolOptions = void 0;
27
27
  const bc = __importStar(require("batch-cluster"));
28
+ const CapturedAtTagNames_1 = require("./CapturedAtTagNames");
28
29
  const DefaultExiftoolArgs_1 = require("./DefaultExiftoolArgs");
29
30
  const DefaultMaxProcs_1 = require("./DefaultMaxProcs");
30
31
  const FindExiftool_1 = require("./FindExiftool");
@@ -69,6 +70,7 @@ exports.DefaultExifToolOptions = Object.freeze({
69
70
  defaultVideosToUTC: true,
70
71
  backfillTimezones: true,
71
72
  inferTimezoneFromDatestamps: false,
73
+ inferTimezoneFromDatestampTags: [...CapturedAtTagNames_1.CapturedAtTagNames],
72
74
  geoTz: GeoTz_1.geoTz,
73
75
  isIgnorableError: IgnorableError_1.isIgnorableWarning,
74
76
  });
@@ -1 +1 @@
1
- {"version":3,"file":"DefaultExifToolOptions.js","sourceRoot":"","sources":["../src/DefaultExifToolOptions.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,kDAAmC;AACnC,+DAA2D;AAC3D,uDAAmD;AAEnD,iDAAoD;AACpD,mCAA+B;AAC/B,qDAAqD;AACrD,uCAAmC;AAEnC,+CAA2C;AAE3C;;;GAGG;AAEU,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,EAAE,kCAAmB;IACjC,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;IACtC,MAAM,EAAE,KAAK;IACb,WAAW,EAAE;QACX,YAAY;QACZ,aAAa;QACb,aAAa;QACb,cAAc;QACd,aAAa;QACb,aAAa;KACd;IACD,mBAAmB,EAAE,SAAS;IAC9B,aAAa,EAAE,KAAK;IACpB,kBAAkB,EAAE,IAAI;IACxB,iBAAiB,EAAE,IAAI;IACvB,2BAA2B,EAAE,KAAK;IAClC,KAAK,EAAE,aAAK;IACZ,gBAAgB,EAAE,mCAAkB;CACrC,CAAC,CAAA"}
1
+ {"version":3,"file":"DefaultExifToolOptions.js","sourceRoot":"","sources":["../src/DefaultExifToolOptions.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,kDAAmC;AACnC,6DAAyD;AACzD,+DAA2D;AAC3D,uDAAmD;AAEnD,iDAAoD;AACpD,mCAA+B;AAC/B,qDAAqD;AACrD,uCAAmC;AAEnC,+CAA2C;AAE3C;;;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,EAAE,kCAAmB;IACjC,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;IACtC,MAAM,EAAE,KAAK;IACb,WAAW,EAAE;QACX,YAAY;QACZ,aAAa;QACb,aAAa;QACb,cAAc;QACd,aAAa;QACb,aAAa;KACd;IACD,mBAAmB,EAAE,SAAS;IAC9B,aAAa,EAAE,KAAK;IACpB,kBAAkB,EAAE,IAAI;IACxB,iBAAiB,EAAE,IAAI;IACvB,2BAA2B,EAAE,KAAK;IAClC,8BAA8B,EAAE,CAAC,GAAG,uCAAkB,CAAC;IACvD,KAAK,EAAE,aAAK;IACZ,gBAAgB,EAAE,mCAAkB;CACrC,CAAC,CAAA"}
package/dist/ExifTime.js CHANGED
@@ -109,7 +109,7 @@ exports.ExifTime = ExifTime;
109
109
  _ExifTime_dt = new WeakMap(), _ExifTime_z = new WeakMap(), _ExifTime_instances = new WeakSet(), _ExifTime_subsec = function _ExifTime_subsec() {
110
110
  return this.millisecond == null ? "" : "." + (0, String_1.pad3)(this.millisecond);
111
111
  }, _ExifTime_shortZone = function _ExifTime_shortZone() {
112
- var _a, _b, _c;
113
- return (__classPrivateFieldSet(this, _ExifTime_z, (_a = __classPrivateFieldGet(this, _ExifTime_z, "f")) !== null && _a !== void 0 ? _a : ((_c = (_b = (0, Timezones_1.normalizeZone)(this.zone)) === null || _b === void 0 ? void 0 : _b.formatOffset(Date.now(), "short")) !== null && _c !== void 0 ? _c : ""), "f"));
112
+ var _a;
113
+ return (__classPrivateFieldSet(this, _ExifTime_z, (_a = __classPrivateFieldGet(this, _ExifTime_z, "f")) !== null && _a !== void 0 ? _a : (0, Timezones_1.zoneToShortOffset)(this.zone), "f"));
114
114
  };
115
115
  //# sourceMappingURL=ExifTime.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ExifTime.js","sourceRoot":"","sources":["../src/ExifTime.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ExifTime.js","sourceRoot":"","sources":["../src/ExifTime.ts"],"names":[],"mappings":"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"}
@@ -19,6 +19,7 @@ import { Version } from "./Version";
19
19
  import { WriteTags } from "./WriteTags";
20
20
  import { WriteTaskOptions } from "./WriteTask";
21
21
  export { BinaryField } from "./BinaryField";
22
+ export { CapturedAtTagNames } from "./CapturedAtTagNames";
22
23
  export { DefaultExifToolOptions } from "./DefaultExifToolOptions";
23
24
  export { DefaultExiftoolArgs } from "./DefaultExiftoolArgs";
24
25
  export { DefaultMaxProcs } from "./DefaultMaxProcs";
@@ -65,10 +66,10 @@ export interface StructAppendTags {
65
66
  "Versions+"?: Version | Version[];
66
67
  }
67
68
  /**
68
- * Manages delegating calls to a vendored running instance of ExifTool.
69
+ * Manages delegating calls to a cluster of ExifTool child processes.
69
70
  *
70
- * Instances should be shared: consider using the exported singleton
71
- * instance of this class, `exiftool`.
71
+ * Instances should be shared: consider using the exported singleton instance
72
+ * of this class, {@link exiftool}.
72
73
  */
73
74
  export declare class ExifTool {
74
75
  #private;
@@ -286,14 +287,20 @@ export declare class ExifTool {
286
287
  closeChildProcesses(gracefully?: boolean): Promise<void>;
287
288
  }
288
289
  /**
289
- * Use this singleton rather than instantiating new ExifTool instances in order
290
- * to leverage a single running ExifTool process. As of v3.0, its `maxProcs` is
291
- * set to the number of CPUs on the current system; no more than `maxProcs`
292
- * instances of `exiftool` will be spawned. You may want to experiment with
293
- * smaller or larger values for `maxProcs`, depending on CPU and disk speed of
294
- * your system and performance tradeoffs.
290
+ * Use this singleton rather than instantiating new {@link ExifTool} instances
291
+ * in order to leverage a single running ExifTool process.
292
+ *
293
+ * As of v3.0, its {@link ExifToolOptions.maxProcs} is set to the number of
294
+ * CPUs on the current system; no more than `maxProcs` instances of `exiftool`
295
+ * will be spawned. You may want to experiment with smaller or larger values
296
+ * for `maxProcs`, depending on CPU and disk speed of your system and
297
+ * performance tradeoffs.
295
298
  *
296
299
  * Note that each child process consumes between 10 and 50 MB of RAM. If you
297
- * have limited system resources you may want to use a smaller `maxProcs` value.
300
+ * have limited system resources you may want to use a smaller `maxProcs`
301
+ * value.
302
+ *
303
+ * See the source of {@link DefaultExifToolOptions} for more details about how
304
+ * this instance is configured.
298
305
  */
299
306
  export declare const exiftool: ExifTool;
package/dist/ExifTool.js CHANGED
@@ -32,7 +32,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
32
32
  };
33
33
  var _ExifTool_checkForPerl;
34
34
  Object.defineProperty(exports, "__esModule", { value: true });
35
- exports.exiftool = exports.ExifTool = exports.DefaultWriteTaskOptions = exports.offsetMinutesToZoneName = exports.defaultVideosToUTC = exports.UnsetZoneOffsetMinutes = exports.UnsetZoneName = exports.UnsetZone = exports.DefaultReadTaskOptions = exports.parseJSON = exports.isIgnorableWarning = exports.ExifToolTask = exports.ExifTime = exports.ExifDateTime = exports.ExifDate = exports.DefaultMaxProcs = exports.DefaultExiftoolArgs = exports.DefaultExifToolOptions = exports.BinaryField = void 0;
35
+ exports.exiftool = exports.ExifTool = exports.DefaultWriteTaskOptions = exports.offsetMinutesToZoneName = exports.defaultVideosToUTC = exports.UnsetZoneOffsetMinutes = exports.UnsetZoneName = exports.UnsetZone = exports.DefaultReadTaskOptions = exports.parseJSON = exports.isIgnorableWarning = 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"));
37
37
  const _cp = __importStar(require("child_process"));
38
38
  const _fs = __importStar(require("fs"));
@@ -55,6 +55,8 @@ const Which_1 = require("./Which");
55
55
  const WriteTask_1 = require("./WriteTask");
56
56
  var BinaryField_1 = require("./BinaryField");
57
57
  Object.defineProperty(exports, "BinaryField", { enumerable: true, get: function () { return BinaryField_1.BinaryField; } });
58
+ var CapturedAtTagNames_1 = require("./CapturedAtTagNames");
59
+ Object.defineProperty(exports, "CapturedAtTagNames", { enumerable: true, get: function () { return CapturedAtTagNames_1.CapturedAtTagNames; } });
58
60
  var DefaultExifToolOptions_2 = require("./DefaultExifToolOptions");
59
61
  Object.defineProperty(exports, "DefaultExifToolOptions", { enumerable: true, get: function () { return DefaultExifToolOptions_2.DefaultExifToolOptions; } });
60
62
  var DefaultExiftoolArgs_1 = require("./DefaultExiftoolArgs");
@@ -85,10 +87,10 @@ var WriteTask_2 = require("./WriteTask");
85
87
  Object.defineProperty(exports, "DefaultWriteTaskOptions", { enumerable: true, get: function () { return WriteTask_2.DefaultWriteTaskOptions; } });
86
88
  const _ignoreShebang = (0, Lazy_1.lazy)(() => !(0, IsWin32_1.isWin32)() && !_fs.existsSync("/usr/bin/perl"));
87
89
  /**
88
- * Manages delegating calls to a vendored running instance of ExifTool.
90
+ * Manages delegating calls to a cluster of ExifTool child processes.
89
91
  *
90
- * Instances should be shared: consider using the exported singleton
91
- * instance of this class, `exiftool`.
92
+ * Instances should be shared: consider using the exported singleton instance
93
+ * of this class, {@link exiftool}.
92
94
  */
93
95
  class ExifTool {
94
96
  constructor(options = {}) {
@@ -403,15 +405,21 @@ class ExifTool {
403
405
  exports.ExifTool = ExifTool;
404
406
  _ExifTool_checkForPerl = new WeakMap();
405
407
  /**
406
- * Use this singleton rather than instantiating new ExifTool instances in order
407
- * to leverage a single running ExifTool process. As of v3.0, its `maxProcs` is
408
- * set to the number of CPUs on the current system; no more than `maxProcs`
409
- * instances of `exiftool` will be spawned. You may want to experiment with
410
- * smaller or larger values for `maxProcs`, depending on CPU and disk speed of
411
- * your system and performance tradeoffs.
408
+ * Use this singleton rather than instantiating new {@link ExifTool} instances
409
+ * in order to leverage a single running ExifTool process.
410
+ *
411
+ * As of v3.0, its {@link ExifToolOptions.maxProcs} is set to the number of
412
+ * CPUs on the current system; no more than `maxProcs` instances of `exiftool`
413
+ * will be spawned. You may want to experiment with smaller or larger values
414
+ * for `maxProcs`, depending on CPU and disk speed of your system and
415
+ * performance tradeoffs.
412
416
  *
413
417
  * Note that each child process consumes between 10 and 50 MB of RAM. If you
414
- * have limited system resources you may want to use a smaller `maxProcs` value.
418
+ * have limited system resources you may want to use a smaller `maxProcs`
419
+ * value.
420
+ *
421
+ * See the source of {@link DefaultExifToolOptions} for more details about how
422
+ * this instance is configured.
415
423
  */
416
424
  exports.exiftool = new ExifTool();
417
425
  //# sourceMappingURL=ExifTool.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ExifTool.js","sourceRoot":"","sources":["../src/ExifTool.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ExifTool.js","sourceRoot":"","sources":["../src/ExifTool.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,kDAAmC;AACnC,mDAAoC;AACpC,wCAAyB;AACzB,sDAA6B;AAE7B,6CAA4C;AAC5C,iEAA6D;AAC7D,6DAAyD;AACzD,qEAAiE;AACjE,2DAAuD;AAGvD,uDAA4E;AAI5E,uCAAmC;AACnC,iCAA6B;AAG7B,iCAA6B;AAG7B,+CAA2C;AAC3C,yCAAsD;AAEtD,6DAAyD;AACzD,qCAA0C;AA6B1C,+CAA2C;AAC3C,mCAA+B;AAE/B,2CAAyD;AAEzD,6CAA2C;AAAlC,0GAAA,WAAW,OAAA;AACpB,2DAAyD;AAAhD,wHAAA,kBAAkB,OAAA;AAC3B,mEAAiE;AAAxD,gIAAA,sBAAsB,OAAA;AAC/B,6DAA2D;AAAlD,0HAAA,mBAAmB,OAAA;AAC5B,qDAAmD;AAA1C,kHAAA,eAAe,OAAA;AACxB,uCAAqC;AAA5B,oGAAA,QAAQ,OAAA;AACjB,+CAA6C;AAApC,4GAAA,YAAY,OAAA;AACrB,uCAAqC;AAA5B,oGAAA,QAAQ,OAAA;AACjB,+CAA6C;AAApC,4GAAA,YAAY,OAAA;AACrB,mDAAqD;AAA5C,oHAAA,kBAAkB,OAAA;AAC3B,+BAAkC;AAAzB,iGAAA,SAAS,OAAA;AAClB,uCAAmD;AAA1C,kHAAA,sBAAsB,OAAA;AAC/B,yCAMoB;AALlB,sGAAA,SAAS,OAAA;AACT,0GAAA,aAAa,OAAA;AACb,mHAAA,sBAAsB,OAAA;AACtB,+GAAA,kBAAkB,OAAA;AAClB,oHAAA,uBAAuB,OAAA;AAEzB,yCAAqD;AAA5C,oHAAA,uBAAuB,OAAA;AA6ChC,MAAM,cAAc,GAAG,IAAA,WAAI,EACzB,GAAG,EAAE,CAAC,CAAC,IAAA,iBAAO,GAAE,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,eAAe,CAAC,CACrD,CAAA;AA+CD;;;;;GAKG;AACH,MAAa,QAAQ;IAInB,YAAY,UAAoC,EAAE;;QAuClD;;WAEG;QACH,8DAA8D;QACrD,OAAE,GAA0B,CAAC,KAAU,EAAE,QAAa,EAAE,EAAE,CACjE,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAA;QA2P9B,iCAAgB,IAAA,WAAI,EAAC,KAAK,IAAI,EAAE;YACvC,IAAI,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE;gBAC1B,MAAM,IAAI,GAAG,MAAM,IAAA,aAAK,EAAC,MAAM,CAAC,CAAA;gBAChC,IAAI,IAAI,IAAI,IAAI,EAAE;oBAChB,MAAM,IAAI,KAAK,CACb,4DAA4D,CAC7D,CAAA;iBACF;aACF;QACH,CAAC,CAAC;QAEF;;;;;WAKG;UAPD;QA/SA,IAAI,OAAO,IAAI,IAAI,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE;YAClD,MAAM,IAAI,KAAK,CACb,0DAA0D,CAC3D,CAAA;SACF;QACD,MAAM,CAAC,GAAG,IAAA,yCAAuB,EAAC;YAChC,GAAG,+CAAsB;YACzB,GAAG,OAAO;SACX,CAAC,CAAA;QAEF,MAAM,aAAa,GAAG,MAAA,CAAC,CAAC,aAAa,mCAAI,cAAc,EAAE,CAAA;QAEzD,MAAM,GAAG,GAAsB,EAAE,GAAG,CAAC,CAAC,WAAW,EAAE,IAAI,EAAE,GAAG,EAAE,CAAA;QAC9D,IAAI,IAAA,iBAAQ,EAAC,iBAAO,CAAC,GAAG,CAAC,aAAa,CAAC,IAAI,IAAA,cAAK,EAAC,GAAG,CAAC,aAAa,CAAC,EAAE;YACnE,GAAG,CAAC,aAAa,GAAG,iBAAO,CAAC,GAAG,CAAC,aAAa,CAAA;SAC9C;QACD,MAAM,SAAS,GAAqB;YAClC,KAAK,EAAE,MAAM;YACb,KAAK,EAAE,aAAa;YACpB,QAAQ,EAAE,KAAK;YACf,GAAG;SACJ,CAAA;QACD,MAAM,cAAc,GAAG,GAAG,EAAE,CAC1B,aAAa;YACX,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,YAAY,EAAE,GAAG,CAAC,CAAC,YAAY,CAAC,EAAE,SAAS,CAAC;YACnE,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,YAAY,EAAE,CAAC,CAAC,YAAY,EAAE,SAAS,CAAC,CAAA;QAC1D,IAAI,CAAC,OAAO,GAAG;YACb,GAAG,CAAC;YACJ,aAAa;YACb,cAAc;YACd,WAAW,EAAE,CAAC,CAAC,WAAW;YAC1B,cAAc,EAAE,CAAC,CAAC,cAAc;YAChC,oBAAoB;YACpB,GAAG,OAAO;SACX,CAAA;QACD,IAAI,CAAC,YAAY,GAAG,IAAI,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;IACvD,CAAC;IASD;;OAEG;IACH,OAAO;QACL,OAAO,IAAI,CAAC,WAAW,CAAC,GAAG,EAAE,CAAC,IAAI,yBAAW,EAAE,CAAC,CAAA;IAClD,CAAC;IAED;;;;;;;;;;;;;;OAcG;IACH,IAAI,CACF,IAAY,EACZ,eAAyB,CAAC,OAAO,CAAC,EAClC,OAAkC;QAElC,OAAO,IAAI,CAAC,WAAW,CAAC,GAAG,EAAE,CAC3B,mBAAQ,CAAC,GAAG,CAAC,IAAI,EAAE;YACjB,YAAY;YACZ,GAAG,IAAA,WAAI,EACL,IAAI,CAAC,OAAO,EACZ,aAAa,EACb,QAAQ,EACR,eAAe,EACf,oBAAoB,EACpB,OAAO,CACR;YACD,GAAG,OAAO;SACX,CAAC,CACI,CAAA,CAAC,mEAAmE;IAC9E,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;;;OAyBG;IACH,OAAO,CAAC,IAAY,EAAE,OAAiB,EAAE;QACvC,OAAO,IAAI,CAAC,WAAW,CAAC,GAAG,EAAE,CAAC,yBAAW,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAA;IAC5D,CAAC;IAED;;;;;;;;;;;;OAYG;IACH,KAAK,CACH,IAAY,EACZ,IAAe,EACf,IAAe,EACf,OAA0B;QAE1B,MAAM,SAAS,GAAG,KAAK,CAAA;QACvB,OAAO,IAAI,CAAC,WAAW,CACrB,GAAG,EAAE,CACH,qBAAS,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE;YAC9B,GAAG,IAAA,WAAI,EAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC;YAC/B,GAAG,OAAO;SACX,CAAC,EACJ,SAAS,CACV,CAAA;IACH,CAAC;IAED;;;;;OAKG;IACH,aAAa,CAAC,IAAY;QACxB,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE,EAAE,qCAAiB,CAAC,CAAA;IAChD,CAAC;IAED;;;;;;;;OAQG;IACH,gBAAgB,CAAC,SAAiB,EAAE,aAAqB;QACvD,OAAO,IAAI,CAAC,gBAAgB,CAAC,gBAAgB,EAAE,SAAS,EAAE,aAAa,CAAC,CAAA;IAC1E,CAAC;IAED;;;;;;;;;OASG;IACH,cAAc,CAAC,SAAiB,EAAE,WAAmB;QACnD,OAAO,IAAI,CAAC,gBAAgB,CAAC,cAAc,EAAE,SAAS,EAAE,WAAW,CAAC,CAAA;IACtE,CAAC;IAED;;;;;;;;;OASG;IACH,iBAAiB,CAAC,SAAiB,EAAE,UAAkB;QACrD,OAAO,IAAI,CAAC,gBAAgB,CAAC,YAAY,EAAE,SAAS,EAAE,UAAU,CAAC,CAAA;IACnE,CAAC;IAED;;;;;;;OAOG;IACH,KAAK,CAAC,gBAAgB,CACpB,OAAe,EACf,GAAW,EACX,IAAY;QAEZ,2EAA2E;QAC3E,kCAAkC;QAClC,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,GAAG,EAAE,CAC7C,2CAAoB,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,EAAE,IAAI,CAAC,CAC7C,CAAA;QACD,IAAI,UAAU,IAAI,IAAI,EAAE;YACtB,MAAM,IAAI,KAAK,CAAC,UAAU,CAAC,CAAA;SAC5B;IACH,CAAC;IAED;;;;;;;;OAQG;IACH,KAAK,CAAC,wBAAwB,CAC5B,OAAmB,EACnB,SAAiB;QAEjB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,GAAG,EAAE,CACzC,uCAAkB,CAAC,GAAG,CAAC,OAAO,EAAE,SAAS,CAAC,CAC3C,CAAA;QACD,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE;YAC3B,OAAO,MAAM,CAAA;SACd;aAAM,IAAI,MAAM,YAAY,KAAK,EAAE;YAClC,MAAM,MAAM,CAAA;SACb;aAAM;YACL,MAAM,IAAI,KAAK,CACb,6CAA6C,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CACvE,CAAA;SACF;IACH,CAAC;IACD;;;;;;;;;;;;;;;;;OAiBG;IACH,cAAc,CACZ,SAAiB,EACjB,UAAkB,EAClB,oBAAoB,GAAG,KAAK;QAE5B,OAAO,IAAI,CAAC,WAAW,CAAC,GAAG,EAAE,CAC3B,uCAAkB,CAAC,GAAG,CAAC,SAAS,EAAE,UAAU,EAAE,oBAAoB,CAAC,CACpE,CAAA;IACH,CAAC;IAED;;;;;;OAMG;IACH,GAAG,CAAC,UAAU,GAAG,IAAI;QACnB,OAAO,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,OAAO,CAAA;IAClD,CAAC;IAED;;OAEG;IACH,IAAI,KAAK;QACP,OAAO,IAAI,CAAC,YAAY,CAAC,KAAK,CAAA;IAChC,CAAC;IAaD;;;;;OAKG;IACH,WAAW,CACT,IAAsD,EACtD,SAAS,GAAG,IAAI;QAEhB,MAAM,CAAC,GAAG,KAAK,IAAI,EAAE;YACnB,MAAM,uBAAA,IAAI,8BAAc,MAAlB,IAAI,CAAgB,CAAA;YAC1B,MAAM,CAAC,GAAG,MAAM,IAAI,EAAE,CAAA;YACtB,wEAAwE;YACxE,CAAC,CAAC,gBAAgB,GAAG,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAA;YAClD,OAAO,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC,CAAC,CAAA;QACzC,CAAC,CAAA;QACD,OAAO,SAAS,CAAC,CAAC,CAAC,IAAA,0BAAa,EAAC,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA;IACrE,CAAC;IAED;;;;;OAKG;IACH,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,CAAA;IACjC,CAAC;IAED;;OAEG;IACH,IAAI,YAAY;QACd,OAAO,IAAI,CAAC,YAAY,CAAC,gBAAgB,CAAA;IAC3C,CAAC;IAED;;OAEG;IACH,IAAI,YAAY;QACd,OAAO,IAAI,CAAC,YAAY,CAAC,gBAAgB,CAAA;IAC3C,CAAC;IAED;;OAEG;IACH,IAAI,SAAS;QACX,OAAO,IAAI,CAAC,YAAY,CAAC,aAAa,CAAA;IACxC,CAAC;IAED;;OAEG;IACH,cAAc;QACZ,OAAO,IAAI,CAAC,YAAY,CAAC,cAAc,CAAA;IACzC,CAAC;IAED;;;OAGG;IACH,mBAAmB,CAAC,UAAU,GAAG,IAAI;QACnC,OAAO,IAAI,CAAC,YAAY,CAAC,mBAAmB,CAAC,UAAU,CAAC,CAAA;IAC1D,CAAC;CACF;AAvXD,4BAuXC;;AAED;;;;;;;;;;;;;;;;GAgBG;AACU,QAAA,QAAQ,GAAG,IAAI,QAAQ,EAAE,CAAA"}
@@ -2,6 +2,12 @@
2
2
  import * as bc from "batch-cluster";
3
3
  import { geoTz } from "./GeoTz";
4
4
  import { IgnorableError } from "./IgnorableError";
5
+ import { Tags } from "./Tags";
6
+ /**
7
+ * Options for the {@link ExifTool} constructor.
8
+ *
9
+ * Defaults are defined in {@link DefaultExifToolOptions}.
10
+ */
5
11
  export interface ExifToolOptions extends bc.BatchClusterOptions, bc.BatchProcessOptions, bc.ChildProcessFactory {
6
12
  /**
7
13
  * The maximum number of ExifTool child processes to spawn when load merits.
@@ -10,28 +16,28 @@ export interface ExifToolOptions extends bc.BatchClusterOptions, bc.BatchProcess
10
16
  */
11
17
  maxProcs: number;
12
18
  /**
13
- * The maximum number of requests a given ExifTool process will service before
14
- * being retired.
19
+ * The maximum number of requests a given ExifTool process will service
20
+ * before being retired.
15
21
  *
16
22
  * Defaults to 500, to balance performance with memory usage.
17
23
  */
18
24
  maxTasksPerProcess: number;
19
25
  /**
20
26
  * Spawning new ExifTool processes must not take longer than
21
- * `spawnTimeoutMillis` millis before it times out and a new attempt is made.
22
- * Be pessimistic here--windows can regularly take several seconds to spin up
23
- * a process, thanks to antivirus shenanigans. This can't be set to a value
24
- * less than 100ms.
27
+ * {@link spawnTimeoutMillis} milliseconds before the child process is timed
28
+ * out and a new attempt is made. Be pessimistic here--windows can regularly
29
+ * take several seconds to spin up a process, thanks to antivirus
30
+ * shenanigans. This can't be set to a value less than 100ms.
25
31
  *
26
32
  * Defaults to 30 seconds, to accommodate slow Windows machines.
27
33
  */
28
34
  spawnTimeoutMillis: number;
29
35
  /**
30
- * If requests to ExifTool take longer than this,
31
- * presume the underlying process is dead and we should restart the task. This
32
- * can't be set to a value less than 10ms, and really should be set to at more
33
- * than a second unless `taskRetries` is sufficiently large or all writes will
34
- * be to a fast local disk. Defaults to 10 seconds.
36
+ * If requests to ExifTool take longer than this, presume the underlying
37
+ * process is dead and we should restart the task. This can't be set to a
38
+ * value less than 10ms, and really should be set to at more than a second
39
+ * unless `taskRetries` is sufficiently large or all writes will be to a
40
+ * fast local disk. Defaults to 10 seconds.
35
41
  */
36
42
  taskTimeoutMillis: number;
37
43
  /**
@@ -48,8 +54,9 @@ export interface ExifToolOptions extends bc.BatchClusterOptions, bc.BatchProcess
48
54
  */
49
55
  taskRetries: number;
50
56
  /**
51
- * Allows for non-standard paths to ExifTool. Defaults to the perl or windows
52
- * binaries provided by `exiftool-vendored.pl` or `exiftool-vendored.exe`.
57
+ * Allows for non-standard paths to ExifTool. Defaults to the perl or
58
+ * windows binaries provided by `exiftool-vendored.pl` or
59
+ * `exiftool-vendored.exe`.
53
60
  */
54
61
  exiftoolPath: string;
55
62
  /**
@@ -64,7 +71,8 @@ export interface ExifToolOptions extends bc.BatchClusterOptions, bc.BatchProcess
64
71
  * Should ExifTool use MWG (Metadata Working Group) composite tags for
65
72
  * reading and writing tags?
66
73
  *
67
- * ExifTool recommends this to be set to true.
74
+ * ExifTool recommends this to be set to true. This defaults to `false` to
75
+ * maintain consistency with prior versions.
68
76
  *
69
77
  * Note that this can result in many tag value differences from
70
78
  * `ExifTool.read`, and makes `ExifTool.write` write to "synonymous" MWG
@@ -80,8 +88,9 @@ export interface ExifToolOptions extends bc.BatchClusterOptions, bc.BatchProcess
80
88
  * If you're using tag values only for human consumption, you may want to
81
89
  * leave this blank.
82
90
  *
83
- * The default includes "*Duration*", "GPSAltitude", "GPSLatitude",
84
- * "GPSLongitude", "GPSPosition", and "Orientation".
91
+ * The default includes "*Duration*", {@link Tags.GPSAltitude},
92
+ * {@link Tags.GPSLatitude}, {@link Tags.GPSLongitude},
93
+ * {@link Tags.GPSPosition}, and {@link Tags.Orientation}.
85
94
  */
86
95
  numericTags: string[];
87
96
  /**
@@ -108,30 +117,44 @@ export interface ExifToolOptions extends bc.BatchClusterOptions, bc.BatchProcess
108
117
  defaultVideosToUTC: boolean;
109
118
  /**
110
119
  * Should we try to backfill timezones for date-times that don't have them?
111
- * If set to `true`, and `defaultVideosToUTC` is also `true`, we'll try
112
- * backfilling timezones for date-times that are UTC, as well.
120
+ * If set to `true`, and {@link defaultVideosToUTC} is also `true`, we'll
121
+ * try backfilling timezones for date-times that are UTC, as well.
113
122
  *
114
123
  * Setting this to `false` removes **all** timezone inference--only those
115
- * date-times with an explicit offset will have a defined timezone. Prior
116
- * versions of exiftool-vendored would use the file's `.tz` as a backstop
117
- * even if this was set to `false`.
124
+ * date-times with an explicit offset will have a defined timezone.
125
+ *
126
+ * Prior versions of exiftool-vendored would use the file's `.tz` as a
127
+ * backstop even if this was set to `false`.
118
128
  *
119
129
  * As of version 23, this now defaults to `true`, as it's more likely to be
120
130
  * what people expect.
121
131
  */
122
132
  backfillTimezones: boolean;
123
133
  /**
124
- * We always look at TimeZone, OffsetTime, TimeZoneOffset, and GPS metadata
125
- * to infer the timezone.
134
+ * We always look at {@link Tags.TimeZone}, {@link Tags.OffsetTime},
135
+ * {@link Tags.TimeZoneOffset}, {@link Tags.OffsetTimeOriginal},
136
+ * {@link Tags.OffsetTimeDigitized}, and GPS metadata to infer the timezone.
126
137
  *
127
- * If these strategies fail, can we infer a timezone from any non-UTC
128
- * datestamp whose tag starts with "Creat" and includes an offset? (This
129
- * means CreateDateSubSec, CreateDate, and CreationDate will be considered).
138
+ * If these strategies fail, and this is enabled, we'll try to infer the
139
+ * timezone from non-UTC datestamps included in the
140
+ * {@link inferTimezoneFromDatestampTags} value.
130
141
  *
131
142
  * This defaults to false as it both retains prior behavior and means fewer
132
143
  * "fuzzy" heuristics are enabled by default.
133
144
  */
134
145
  inferTimezoneFromDatestamps: boolean;
146
+ /**
147
+ * This is the list of tag names that will be used to infer the timezone as
148
+ * a backstop, if no explicit timezone is found in metadata. Note that
149
+ * datestamps with UTC offsets are ignored, as they are frequently
150
+ * incorrectly set.
151
+ *
152
+ * This setting is only in play if {@link inferTimezoneFromDatestamps} has
153
+ * been overridden to be `true`.
154
+ *
155
+ * This defaults to {@link CapturedAtTagNames}
156
+ */
157
+ inferTimezoneFromDatestampTags: (keyof Tags)[];
135
158
  /**
136
159
  * `ExifTool` has a shebang line that assumes a valid `perl` is installed at
137
160
  * `/usr/bin/perl`.
@@ -1 +1 @@
1
- {"version":3,"file":"ExifToolOptions.js","sourceRoot":"","sources":["../src/ExifToolOptions.ts"],"names":[],"mappings":";;;AA4MA,SAAgB,uBAAuB,CAErC,OAAU;IACV,IAAI,OAAO,CAAC,aAAa,IAAI,IAAI,IAAI,OAAO,CAAC,mBAAmB,IAAI,IAAI,EAAE;QACxE,OAAO,CAAC,aAAa,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAA;KACpE;IACD,OAAO,OAAO,CAAA;AAChB,CAAC;AAPD,0DAOC"}
1
+ {"version":3,"file":"ExifToolOptions.js","sourceRoot":"","sources":["../src/ExifToolOptions.ts"],"names":[],"mappings":";;;AAoOA,SAAgB,uBAAuB,CAErC,OAAU;IACV,IAAI,OAAO,CAAC,aAAa,IAAI,IAAI,IAAI,OAAO,CAAC,mBAAmB,IAAI,IAAI,EAAE;QACxE,OAAO,CAAC,aAAa,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAA;KACpE;IACD,OAAO,OAAO,CAAA;AAChB,CAAC;AAPD,0DAOC"}
package/dist/Maybe.d.ts CHANGED
@@ -1,6 +1,7 @@
1
1
  export type Maybe<T> = T | undefined;
2
2
  export type MaybeNull<T> = Maybe<T> | null;
3
3
  export declare function map<T, U>(maybeT: MaybeNull<T>, f: (t: T) => U): Maybe<U>;
4
+ export declare function map2<A, B, U>(a: MaybeNull<A>, b: MaybeNull<B>, f: (a: A, b: B) => U): Maybe<U>;
4
5
  export declare function first<T, U>(iter: Iterable<Maybe<T>>, f: (t: T) => Maybe<U>): Maybe<U>;
5
6
  export declare function firstDefinedThunk<T>(iter: Iterable<() => Maybe<T>>): Maybe<T>;
6
7
  /**
package/dist/Maybe.js CHANGED
@@ -1,10 +1,14 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.denull = exports.firstDefinedThunk = exports.first = exports.map = void 0;
3
+ exports.denull = exports.firstDefinedThunk = exports.first = exports.map2 = exports.map = void 0;
4
4
  function map(maybeT, f) {
5
5
  return maybeT == null ? undefined : f(maybeT);
6
6
  }
7
7
  exports.map = map;
8
+ function map2(a, b, f) {
9
+ return a == null || b == null ? undefined : f(a, b);
10
+ }
11
+ exports.map2 = map2;
8
12
  function first(iter, f) {
9
13
  for (const t of iter) {
10
14
  if (t != null) {
package/dist/Maybe.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"Maybe.js","sourceRoot":"","sources":["../src/Maybe.ts"],"names":[],"mappings":";;;AAGA,SAAgB,GAAG,CAAO,MAAoB,EAAE,CAAc;IAC5D,OAAO,MAAM,IAAI,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAA;AAC/C,CAAC;AAFD,kBAEC;AAED,SAAgB,KAAK,CACnB,IAAwB,EACxB,CAAqB;IAErB,KAAK,MAAM,CAAC,IAAI,IAAI,EAAE;QACpB,IAAI,CAAC,IAAI,IAAI,EAAE;YACb,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAA;YACd,IAAI,CAAC,IAAI,IAAI;gBAAE,OAAO,CAAC,CAAA;SACxB;KACF;IACD,OAAM;AACR,CAAC;AAXD,sBAWC;AAED,SAAgB,iBAAiB,CAAI,IAA8B;IACjE,KAAK,MAAM,CAAC,IAAI,IAAI,EAAE;QACpB,MAAM,MAAM,GAAG,CAAC,EAAE,CAAA;QAClB,IAAI,MAAM,IAAI,IAAI;YAAE,OAAO,MAAM,CAAA;KAClC;IACD,OAAM;AACR,CAAC;AAND,8CAMC;AAED;;GAEG;AACH,SAAgB,MAAM,CAAI,CAAW;IACnC,OAAO,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAA;AAClC,CAAC;AAFD,wBAEC"}
1
+ {"version":3,"file":"Maybe.js","sourceRoot":"","sources":["../src/Maybe.ts"],"names":[],"mappings":";;;AAGA,SAAgB,GAAG,CAAO,MAAoB,EAAE,CAAc;IAC5D,OAAO,MAAM,IAAI,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAA;AAC/C,CAAC;AAFD,kBAEC;AAED,SAAgB,IAAI,CAClB,CAAe,EACf,CAAe,EACf,CAAoB;IAEpB,OAAO,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;AACrD,CAAC;AAND,oBAMC;AAED,SAAgB,KAAK,CACnB,IAAwB,EACxB,CAAqB;IAErB,KAAK,MAAM,CAAC,IAAI,IAAI,EAAE;QACpB,IAAI,CAAC,IAAI,IAAI,EAAE;YACb,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAA;YACd,IAAI,CAAC,IAAI,IAAI;gBAAE,OAAO,CAAC,CAAA;SACxB;KACF;IACD,OAAM;AACR,CAAC;AAXD,sBAWC;AAED,SAAgB,iBAAiB,CAAI,IAA8B;IACjE,KAAK,MAAM,CAAC,IAAI,IAAI,EAAE;QACpB,MAAM,MAAM,GAAG,CAAC,EAAE,CAAA;QAClB,IAAI,MAAM,IAAI,IAAI;YAAE,OAAO,MAAM,CAAA;KAClC;IACD,OAAM;AACR,CAAC;AAND,8CAMC;AAED;;GAEG;AACH,SAAgB,MAAM,CAAI,CAAW;IACnC,OAAO,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAA;AAClC,CAAC;AAFD,wBAEC"}
@@ -2,13 +2,14 @@ import { ExifToolTask } from "./ExifToolTask";
2
2
  import { Tags } from "./Tags";
3
3
  export declare function nullish(s: string | undefined): s is undefined;
4
4
  export declare const DefaultReadTaskOptions: {
5
- readonly includeImageDataMD5: boolean | undefined;
6
- readonly imageHashType: false | "MD5" | "SHA256" | "SHA512";
7
5
  readonly useMWG: boolean;
8
6
  readonly numericTags: string[];
7
+ readonly imageHashType: false | "MD5" | "SHA256" | "SHA512";
8
+ readonly includeImageDataMD5: boolean | undefined;
9
9
  readonly defaultVideosToUTC: boolean;
10
10
  readonly backfillTimezones: boolean;
11
11
  readonly inferTimezoneFromDatestamps: boolean;
12
+ readonly inferTimezoneFromDatestampTags: (keyof Tags)[];
12
13
  readonly geoTz: typeof import("./GeoTz").geoTz;
13
14
  readonly optionalArgs: string[];
14
15
  };