exiftool-vendored 22.0.0 → 22.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.
Files changed (50) hide show
  1. package/CHANGELOG.md +8 -0
  2. package/dist/Array.d.ts +13 -2
  3. package/dist/Array.js +58 -7
  4. package/dist/Array.js.map +1 -1
  5. package/dist/BinaryField.js.map +1 -1
  6. package/dist/BinaryToBufferTask.js.map +1 -1
  7. package/dist/DateTime.d.ts +3 -0
  8. package/dist/DateTime.js +5 -1
  9. package/dist/DateTime.js.map +1 -1
  10. package/dist/DefaultExifToolOptions.js +6 -1
  11. package/dist/DefaultExifToolOptions.js.map +1 -1
  12. package/dist/DefaultExiftoolArgs.js +1 -0
  13. package/dist/DefaultExiftoolArgs.js.map +1 -1
  14. package/dist/ExifDate.d.ts +1 -0
  15. package/dist/ExifDate.js +6 -0
  16. package/dist/ExifDate.js.map +1 -1
  17. package/dist/ExifDateTime.d.ts +3 -0
  18. package/dist/ExifDateTime.js +17 -0
  19. package/dist/ExifDateTime.js.map +1 -1
  20. package/dist/ExifTool.d.ts +12 -10
  21. package/dist/ExifTool.js +39 -13
  22. package/dist/ExifTool.js.map +1 -1
  23. package/dist/ExifToolOptions.d.ts +38 -8
  24. package/dist/ExifToolOptions.js +8 -0
  25. package/dist/ExifToolOptions.js.map +1 -1
  26. package/dist/ImageDataHashTag.d.ts +11 -0
  27. package/dist/ImageDataHashTag.js +3 -0
  28. package/dist/ImageDataHashTag.js.map +1 -0
  29. package/dist/Lazy.js +6 -2
  30. package/dist/Lazy.js.map +1 -1
  31. package/dist/Object.js +1 -1
  32. package/dist/Object.js.map +1 -1
  33. package/dist/ReadTask.d.ts +6 -5
  34. package/dist/ReadTask.js +90 -64
  35. package/dist/ReadTask.js.map +1 -1
  36. package/dist/String.js +3 -3
  37. package/dist/String.js.map +1 -1
  38. package/dist/Tags.d.ts +55 -54
  39. package/dist/Times.d.ts +1 -0
  40. package/dist/Times.js +10 -0
  41. package/dist/Times.js.map +1 -0
  42. package/dist/Timezones.d.ts +6 -14
  43. package/dist/Timezones.js +71 -25
  44. package/dist/Timezones.js.map +1 -1
  45. package/dist/VersionTask.js +1 -1
  46. package/dist/VersionTask.js.map +1 -1
  47. package/dist/Which.d.ts +2 -0
  48. package/dist/Which.js +23 -0
  49. package/dist/Which.js.map +1 -0
  50. package/package.json +22 -26
@@ -85,23 +85,46 @@ export interface ExifToolOptions extends bc.BatchClusterOptions, bc.BatchProcess
85
85
  */
86
86
  numericTags: string[];
87
87
  /**
88
- * If set to true, ExifTool will attempt to calculate an "ImageDataMD5" tag
89
- * value with the MD5 checksum of image data.
88
+ * If defined, ExifTool will attempt to calculate an "ImageDataHash" tag
89
+ * value with a checksum of image data.
90
90
  *
91
- * Note that as of 2022-04-12, ExifTool supports JPEG, PNG, and many raw
92
- * image formats, like CR2 and NEF. It doesn't yet support HEIC/HEIF, ORF,
93
- * GIF, and many video formats, like MP4 and MTS.
91
+ * Note that as of 2022-04-12, ExifTool supports JPEG, TIFF, PNG, CRW, CR3,
92
+ * MRW, RAF, X3F, IIQ, JP2, JXL, HEIC and AVIF images, MOV/MP4 videos, and
93
+ * some RIFF-based files such as AVI, WAV and WEBP.
94
94
  *
95
- * This defaults to false, as it adds ~20ms of overhead to every read
95
+ * This defaults to undefined, as it adds ~20ms of overhead to every read
96
96
  */
97
- includeImageDataMD5: boolean;
97
+ imageHashType: false | "MD5" | "SHA256" | "SHA512";
98
+ /**
99
+ * @deprecated Use `imageHashType` instead.
100
+ */
101
+ includeImageDataMD5: boolean | undefined;
98
102
  /**
99
103
  * Video file dates are assumed to be in UTC, rather than using timezone
100
104
  * inference used in images. To disable this default, set this to false.
101
105
  *
102
- * @see <https://github.com/photostructure/exiftool-vendored.js/issues/113>
106
+ * @see https://github.com/photostructure/exiftool-vendored.js/issues/113
103
107
  */
104
108
  defaultVideosToUTC: boolean;
109
+ /**
110
+ * 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.
113
+ *
114
+ * This defaults to false to retain prior versions' behavior.
115
+ */
116
+ backfillTimezones: boolean;
117
+ /**
118
+ * We always look at TimeZone, OffsetTime, TimeZoneOffset, and GPS metadata
119
+ * to infer the timezone.
120
+ *
121
+ * If these strategies fail, can we infer a timezone from any non-UTC
122
+ * datestamp whose tag starts with "Creat" and includes an offset? (This
123
+ * means CreateDateSubSec, CreateDate, and CreationDate will be considered).
124
+ *
125
+ * This defaults to false to retain prior versions' behavior.
126
+ */
127
+ inferTimezoneFromDatestamps: boolean;
105
128
  /**
106
129
  * `ExifTool` has a shebang line that assumes a valid `perl` is installed at
107
130
  * `/usr/bin/perl`.
@@ -114,6 +137,12 @@ export interface ExifToolOptions extends bc.BatchClusterOptions, bc.BatchProcess
114
137
  * situations. Note also that `perl` will be spawned in a sub-shell.
115
138
  */
116
139
  ignoreShebang: boolean;
140
+ /**
141
+ * Should we check for a readable and executable `perl` file in $PATH? This
142
+ * defaults to false on Windows, and true everywhere else. Set this to false
143
+ * if you know perl is installed.
144
+ */
145
+ checkPerl: boolean;
117
146
  /**
118
147
  * Override the default geo-to-timezone lookup service.
119
148
  *
@@ -143,3 +172,4 @@ export interface ExifToolOptions extends bc.BatchClusterOptions, bc.BatchProcess
143
172
  */
144
173
  isIgnorableError: IgnorableError;
145
174
  }
175
+ export declare function handleDeprecatedOptions<T extends Pick<ExifToolOptions, "includeImageDataMD5" | "imageHashType">>(options: T): T;
@@ -1,3 +1,11 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.handleDeprecatedOptions = void 0;
4
+ function handleDeprecatedOptions(options) {
5
+ if (options.imageHashType == null && options.includeImageDataMD5 != null) {
6
+ options.imageHashType = options.includeImageDataMD5 ? "MD5" : false;
7
+ }
8
+ return options;
9
+ }
10
+ exports.handleDeprecatedOptions = handleDeprecatedOptions;
3
11
  //# sourceMappingURL=ExifToolOptions.js.map
@@ -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":";;;AAqMA,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"}
@@ -0,0 +1,11 @@
1
+ export interface ImageDataHashTag {
2
+ /**
3
+ * This is calculated by ExifTool to be the SHA256 hash of the image data
4
+ * (ignoring metadata). This tag is only included if the default
5
+ * `ExifToolOptions.imageHashType` value is overridden with a valid string
6
+ * value.
7
+ *
8
+ * @see ExifToolOptions.imageHashType
9
+ */
10
+ ImageDataHash?: string;
11
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=ImageDataHashTag.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ImageDataHashTag.js","sourceRoot":"","sources":["../src/ImageDataHashTag.ts"],"names":[],"mappings":""}
package/dist/Lazy.js CHANGED
@@ -4,16 +4,20 @@ exports.lazy = void 0;
4
4
  function lazy(thunk) {
5
5
  let invoked = false;
6
6
  let result;
7
+ let error;
7
8
  return () => {
8
9
  if (!invoked) {
9
10
  try {
10
11
  invoked = true;
11
12
  result = thunk();
12
13
  }
13
- catch (_) {
14
- //
14
+ catch (e) {
15
+ error = e;
16
+ throw e;
15
17
  }
16
18
  }
19
+ if (error != null)
20
+ throw error;
17
21
  return result;
18
22
  };
19
23
  }
package/dist/Lazy.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"Lazy.js","sourceRoot":"","sources":["../src/Lazy.ts"],"names":[],"mappings":";;;AAAA,SAAgB,IAAI,CAAI,KAAc;IACpC,IAAI,OAAO,GAAG,KAAK,CAAA;IACnB,IAAI,MAAS,CAAA;IACb,OAAO,GAAG,EAAE;QACV,IAAI,CAAC,OAAO,EAAE;YACZ,IAAI;gBACF,OAAO,GAAG,IAAI,CAAA;gBACd,MAAM,GAAG,KAAK,EAAE,CAAA;aACjB;YAAC,OAAO,CAAC,EAAE;gBACV,EAAE;aACH;SACF;QACD,OAAO,MAAM,CAAA;IACf,CAAC,CAAA;AACH,CAAC;AAdD,oBAcC"}
1
+ {"version":3,"file":"Lazy.js","sourceRoot":"","sources":["../src/Lazy.ts"],"names":[],"mappings":";;;AAAA,SAAgB,IAAI,CAAI,KAAc;IACpC,IAAI,OAAO,GAAG,KAAK,CAAA;IACnB,IAAI,MAAS,CAAA;IACb,IAAI,KAAY,CAAA;IAChB,OAAO,GAAG,EAAE;QACV,IAAI,CAAC,OAAO,EAAE;YACZ,IAAI;gBACF,OAAO,GAAG,IAAI,CAAA;gBACd,MAAM,GAAG,KAAK,EAAE,CAAA;aACjB;YAAC,OAAO,CAAM,EAAE;gBACf,KAAK,GAAG,CAAC,CAAA;gBACT,MAAM,CAAC,CAAA;aACR;SACF;QACD,IAAI,KAAK,IAAI,IAAI;YAAE,MAAM,KAAK,CAAA;QAC9B,OAAO,MAAM,CAAA;IACf,CAAC,CAAA;AACH,CAAC;AAjBD,oBAiBC"}
package/dist/Object.js CHANGED
@@ -5,7 +5,7 @@ exports.omit = exports.fromEntries = exports.isFunction = exports.keys = void 0;
5
5
  function keys(o) {
6
6
  return o == null
7
7
  ? []
8
- : Object.keys(o).filter((ea) => ({}.propertyIsEnumerable.call(o, ea)));
8
+ : Object.keys(o).filter((ea) => ({}).propertyIsEnumerable.call(o, ea));
9
9
  }
10
10
  exports.keys = keys;
11
11
  function isFunction(obj) {
@@ -1 +1 @@
1
- {"version":3,"file":"Object.js","sourceRoot":"","sources":["../src/Object.ts"],"names":[],"mappings":";;;AAEA,wDAAwD;AACxD,SAAgB,IAAI,CAA+C,CAAI;IACrE,OAAO,CAAC,IAAI,IAAI;QACd,CAAC,CAAC,EAAE;QACJ,CAAC,CAAE,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAC5B,CAAC,EAAE,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAC9B,CAAA;AACf,CAAC;AAND,oBAMC;AAED,SAAgB,UAAU,CAAC,GAAQ;IACjC,OAAO,OAAO,GAAG,KAAK,UAAU,CAAA;AAClC,CAAC;AAFD,gCAEC;AAED,SAAgB,WAAW,CACzB,GAAkC,EAClC,GAAS;IAET,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,GAAG,CAAA;IAC/C,4DAA4D;IAC5D,KAAK,MAAM,EAAE,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,IAAI,CAAC,EAAE;QAC/C,IAAI,EAAE,IAAI,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE;YACnC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,CAAA;YACjB,qBAAqB;YACrB,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,KAAK,SAAS,EAAE;gBAChC,IAAI,OAAO,GAAG,KAAK,QAAQ;oBAAE,GAAG,GAAG,EAAE,CAAA;gBACrC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAA;aACX;SACF;KACF;IACD,OAAO,GAAG,CAAA;AACZ,CAAC;AAjBD,kCAiBC;AAID,SAAgB,IAAI,CAClB,CAAI,EACJ,GAAG,UAAe;IAElB,IAAI,CAAC,IAAI,IAAI;QAAE,OAAO,EAAS,CAAA;IAC/B,MAAM,MAAM,GAAG,EAAE,GAAG,CAAC,EAAE,CAAA;IACvB,KAAK,MAAM,EAAE,IAAI,UAAU,EAAE;QAC3B,OAAO,MAAM,CAAC,EAAE,CAAC,CAAA;KAClB;IACD,OAAO,MAAM,CAAA;AACf,CAAC;AAVD,oBAUC"}
1
+ {"version":3,"file":"Object.js","sourceRoot":"","sources":["../src/Object.ts"],"names":[],"mappings":";;;AAEA,wDAAwD;AACxD,SAAgB,IAAI,CAA+C,CAAI;IACrE,OAAO,CAAC,IAAI,IAAI;QACd,CAAC,CAAC,EAAE;QACJ,CAAC,CAAE,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAC5B,CAAC,EAAE,CAAC,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,CAAC,CAC9B,CAAA;AACf,CAAC;AAND,oBAMC;AAED,SAAgB,UAAU,CAAC,GAAQ;IACjC,OAAO,OAAO,GAAG,KAAK,UAAU,CAAA;AAClC,CAAC;AAFD,gCAEC;AAED,SAAgB,WAAW,CACzB,GAAkC,EAClC,GAAS;IAET,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,GAAG,CAAA;IAC/C,4DAA4D;IAC5D,KAAK,MAAM,EAAE,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,IAAI,CAAC,EAAE;QAC/C,IAAI,EAAE,IAAI,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE;YACnC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,CAAA;YACjB,qBAAqB;YACrB,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,KAAK,SAAS,EAAE;gBAChC,IAAI,OAAO,GAAG,KAAK,QAAQ;oBAAE,GAAG,GAAG,EAAE,CAAA;gBACrC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAA;aACX;SACF;KACF;IACD,OAAO,GAAG,CAAA;AACZ,CAAC;AAjBD,kCAiBC;AAID,SAAgB,IAAI,CAClB,CAAI,EACJ,GAAG,UAAe;IAElB,IAAI,CAAC,IAAI,IAAI;QAAE,OAAO,EAAS,CAAA;IAC/B,MAAM,MAAM,GAAG,EAAE,GAAG,CAAC,EAAE,CAAA;IACvB,KAAK,MAAM,EAAE,IAAI,UAAU,EAAE;QAC3B,OAAO,MAAM,CAAC,EAAE,CAAC,CAAA;KAClB;IACD,OAAO,MAAM,CAAA;AACf,CAAC;AAVD,oBAUC"}
@@ -2,10 +2,13 @@ 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 defaultVideosToUTC: boolean;
6
5
  readonly useMWG: boolean;
7
6
  readonly numericTags: string[];
8
- readonly includeImageDataMD5: boolean;
7
+ readonly imageHashType: false | "MD5" | "SHA256" | "SHA512";
8
+ readonly includeImageDataMD5: boolean | undefined;
9
+ readonly defaultVideosToUTC: boolean;
10
+ readonly backfillTimezones: boolean;
11
+ readonly inferTimezoneFromDatestamps: boolean;
9
12
  readonly geoTz: typeof import("./GeoTz").geoTz;
10
13
  readonly optionalArgs: string[];
11
14
  };
@@ -16,10 +19,8 @@ export declare class ReadTask extends ExifToolTask<Tags> {
16
19
  readonly args: string[];
17
20
  readonly options: ReadTaskOptions;
18
21
  private readonly degroup;
19
- /** May have keys that are group-prefixed */
20
22
  private _raw;
21
- /** Always has non-group-prefixed keys */
22
- private _tags;
23
+ private _rawDegrouped;
23
24
  private readonly tags;
24
25
  private lat;
25
26
  private lon;
package/dist/ReadTask.js CHANGED
@@ -27,16 +27,18 @@ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (
27
27
  if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
28
28
  return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
29
29
  };
30
- var _ReadTask_instances, _ReadTask_tagName, _ReadTask_parseTags, _ReadTask_extractLatLon, _ReadTask_latlon, _ReadTask_geoTz, _ReadTask_extractTzOffset, _ReadTask_parseTag;
30
+ var _ReadTask_instances, _ReadTask_isVideo, _ReadTask_defaultToUTC, _ReadTask_tagName, _ReadTask_maybeSetZone, _ReadTask_parseTags, _ReadTask_extractLatLon, _ReadTask_latlon, _ReadTask_geoTz, _ReadTask_extractTzOffset, _ReadTask_parseTag;
31
31
  Object.defineProperty(exports, "__esModule", { value: true });
32
32
  exports.ReadTask = exports.DefaultReadTaskOptions = exports.nullish = void 0;
33
33
  const batch_cluster_1 = require("batch-cluster");
34
34
  const _path = __importStar(require("path"));
35
+ const Array_1 = require("./Array");
35
36
  const BinaryField_1 = require("./BinaryField");
36
37
  const DefaultExifToolOptions_1 = require("./DefaultExifToolOptions");
37
38
  const ExifDate_1 = require("./ExifDate");
38
39
  const ExifDateTime_1 = require("./ExifDateTime");
39
40
  const ExifTime_1 = require("./ExifTime");
41
+ const ExifToolOptions_1 = require("./ExifToolOptions");
40
42
  const ExifToolTask_1 = require("./ExifToolTask");
41
43
  const FilenameCharsetArgs_1 = require("./FilenameCharsetArgs");
42
44
  const FirstDateTime_1 = require("./FirstDateTime");
@@ -63,8 +65,10 @@ function nullish(s) {
63
65
  exports.nullish = nullish;
64
66
  exports.DefaultReadTaskOptions = {
65
67
  optionalArgs: [],
66
- ...(0, Pick_1.pick)(DefaultExifToolOptions_1.DefaultExifToolOptions, "numericTags", "useMWG", "includeImageDataMD5", "defaultVideosToUTC", "geoTz"),
68
+ ...(0, Pick_1.pick)(DefaultExifToolOptions_1.DefaultExifToolOptions, "numericTags", "useMWG", "includeImageDataMD5", "imageHashType", "defaultVideosToUTC", "backfillTimezones", "inferTimezoneFromDatestamps", "geoTz"),
67
69
  };
70
+ const MaybeDateOrTimeRe = /when|date|time|subsec|creat|modif/i;
71
+ const TimeRe = /time/i;
68
72
  class ReadTask extends ExifToolTask_1.ExifToolTask {
69
73
  constructor(sourceFile, args, options) {
70
74
  super(args);
@@ -72,10 +76,9 @@ class ReadTask extends ExifToolTask_1.ExifToolTask {
72
76
  this.sourceFile = sourceFile;
73
77
  this.args = args;
74
78
  this.options = options;
75
- /** May have keys that are group-prefixed */
76
79
  this._raw = {};
77
- /** Always has non-group-prefixed keys */
78
- this._tags = {};
80
+ this._rawDegrouped = {};
81
+ this.tags = {};
79
82
  this.invalidLatLon = false;
80
83
  _ReadTask_extractLatLon.set(this, (0, Lazy_1.lazy)(() => {
81
84
  var _a, _b;
@@ -98,29 +101,35 @@ class ReadTask extends ExifToolTask_1.ExifToolTask {
98
101
  return;
99
102
  }
100
103
  }));
101
- this.degroup = this.args.indexOf("-G") !== -1;
104
+ // See https://github.com/photostructure/exiftool-vendored.js/issues/147#issuecomment-1642580118
105
+ this.degroup = this.args.includes("-G");
102
106
  this.tags = { SourceFile: sourceFile };
103
107
  this.tags.errors = this.errors;
104
108
  }
105
109
  static for(filename, options) {
106
- const opts = { ...exports.DefaultReadTaskOptions, ...options };
110
+ const opts = (0, ExifToolOptions_1.handleDeprecatedOptions)({
111
+ ...exports.DefaultReadTaskOptions,
112
+ ...options,
113
+ });
107
114
  const sourceFile = _path.resolve(filename);
108
115
  const args = [
109
116
  ...FilenameCharsetArgs_1.Utf8FilenameCharsetArgs,
110
117
  "-json",
111
118
  "-struct",
112
- ...opts.optionalArgs,
119
+ ...(0, Array_1.toA)(opts.optionalArgs),
113
120
  ];
114
121
  if (opts.useMWG) {
115
122
  args.push("-use", "MWG");
116
123
  }
117
- if (opts.includeImageDataMD5) {
124
+ if (opts.imageHashType != null && opts.imageHashType !== false) {
118
125
  // See https://exiftool.org/forum/index.php?topic=14706.msg79218#msg79218
119
- args.push("-api", "requesttags=imagedatamd5");
126
+ args.push("-api", "requesttags=imagedatahash");
127
+ args.push("-api", "imagehashtype=" + opts.imageHashType);
120
128
  }
121
- // IMPORTANT: "-all" must be after numeric tag references (first reference
122
- // in wins)
129
+ // IMPORTANT: "-all" must be after numeric tag references, as the first
130
+ // reference in wins
123
131
  args.push(...opts.numericTags.map((ea) => "-" + ea + "#"));
132
+ // We have to add a -all or else we'll only get the numericTags. sad.
124
133
  // TODO: Do you need -xmp:all, -all, or -all:all? Is -* better?
125
134
  args.push("-all", sourceFile);
126
135
  return new ReadTask(sourceFile, args, opts);
@@ -149,35 +158,72 @@ class ReadTask extends ExifToolTask_1.ExifToolTask {
149
158
  throw new Error(`Internal error: unexpected SourceFile of ${this._raw.SourceFile} for file ${this.sourceFile}`);
150
159
  }
151
160
  if (this.degroup) {
152
- Object.keys(this._raw).forEach((keyWithGroup) => {
153
- this._tags[__classPrivateFieldGet(this, _ReadTask_instances, "m", _ReadTask_tagName).call(this, keyWithGroup)] = this._raw[keyWithGroup];
154
- });
161
+ this._rawDegrouped = {};
162
+ for (const [key, value] of Object.entries(this._raw)) {
163
+ const k = __classPrivateFieldGet(this, _ReadTask_instances, "m", _ReadTask_tagName).call(this, key);
164
+ this._rawDegrouped[k] = value;
165
+ }
155
166
  }
156
167
  else {
157
- this._tags = this._raw;
168
+ this._rawDegrouped = this._raw;
158
169
  }
159
170
  return __classPrivateFieldGet(this, _ReadTask_instances, "m", _ReadTask_parseTags).call(this);
160
171
  }
161
172
  }
162
173
  exports.ReadTask = ReadTask;
163
- _ReadTask_extractLatLon = new WeakMap(), _ReadTask_geoTz = new WeakMap(), _ReadTask_instances = new WeakSet(), _ReadTask_tagName = function _ReadTask_tagName(k) {
174
+ _ReadTask_extractLatLon = new WeakMap(), _ReadTask_geoTz = new WeakMap(), _ReadTask_instances = new WeakSet(), _ReadTask_isVideo = function _ReadTask_isVideo() {
175
+ var _a;
176
+ return String((_a = this._rawDegrouped) === null || _a === void 0 ? void 0 : _a.MIMEType).startsWith("video/");
177
+ }, _ReadTask_defaultToUTC = function _ReadTask_defaultToUTC() {
178
+ return __classPrivateFieldGet(this, _ReadTask_instances, "m", _ReadTask_isVideo).call(this) && this.options.defaultVideosToUTC;
179
+ }, _ReadTask_tagName = function _ReadTask_tagName(k) {
164
180
  var _a;
165
181
  return this.degroup ? (_a = k.split(":")[1]) !== null && _a !== void 0 ? _a : k : k;
182
+ }, _ReadTask_maybeSetZone = function _ReadTask_maybeSetZone(edt, candidates) {
183
+ if (edt.hasZone && edt.zone === this.tz)
184
+ return edt;
185
+ for (const src of candidates) {
186
+ const result = edt.maybeMatchZone(src);
187
+ if (result != null) {
188
+ return result;
189
+ }
190
+ }
191
+ return;
166
192
  }, _ReadTask_parseTags = function _ReadTask_parseTags() {
193
+ var _a;
167
194
  __classPrivateFieldGet(this, _ReadTask_extractLatLon, "f").call(this);
168
195
  __classPrivateFieldGet(this, _ReadTask_instances, "m", _ReadTask_extractTzOffset).call(this);
169
196
  (0, Maybe_1.map)(this.tz, (ea) => (this.tags.tz = ea));
170
197
  (0, Maybe_1.map)(this.tzSource, (ea) => (this.tags.tzSource = ea));
171
- for (const key of Object.keys(this._raw)) {
172
- const val = __classPrivateFieldGet(this, _ReadTask_instances, "m", _ReadTask_parseTag).call(this, __classPrivateFieldGet(this, _ReadTask_instances, "m", _ReadTask_tagName).call(this, key), this._raw[key]);
173
- this.tags[key] = val;
198
+ // avoid casting `this.tags as any` everywhere:
199
+ const tags = this.tags;
200
+ const datesWithTz = [];
201
+ // two passes: one to parse dates, and the next to possibly set timezones.
202
+ for (const [key, value] of Object.entries(this._raw)) {
203
+ const k = __classPrivateFieldGet(this, _ReadTask_instances, "m", _ReadTask_tagName).call(this, key);
204
+ const v = __classPrivateFieldGet(this, _ReadTask_instances, "m", _ReadTask_parseTag).call(this, k, value);
205
+ if (v instanceof ExifDateTime_1.ExifDateTime && v.hasZone && !isUtcTagName(key)) {
206
+ // don't incorrectly infer UTC dates if this is a UTC tag.
207
+ datesWithTz.push(v);
208
+ }
209
+ // Note that we set `key` (which may include a group prefix):
210
+ tags[key] = v;
211
+ }
212
+ if (this.options.backfillTimezones === true) {
213
+ // prefer non-UTC offsets (which may be incorrect):
214
+ const candidates = (0, Array_1.sortBy)(datesWithTz, (ea) => { var _a; return -Math.abs((_a = ea.tzoffsetMinutes) !== null && _a !== void 0 ? _a : 0); });
215
+ for (const [key, value] of Object.entries(tags)) {
216
+ if (value instanceof ExifDateTime_1.ExifDateTime && !isUtcTagName(key)) {
217
+ tags[key] = (_a = __classPrivateFieldGet(this, _ReadTask_instances, "m", _ReadTask_maybeSetZone).call(this, value, candidates)) !== null && _a !== void 0 ? _a : value;
218
+ }
219
+ }
174
220
  }
175
221
  if (this.errors.length > 0)
176
222
  this.tags.errors = this.errors;
177
- return this.tags;
223
+ return tags;
178
224
  }, _ReadTask_latlon = function _ReadTask_latlon(tagName, negateRef, maxValid) {
179
- const tagValue = this._tags[tagName];
180
- const ref = this._tags[tagName + "Ref"];
225
+ const tagValue = this._rawDegrouped[tagName];
226
+ const ref = this._rawDegrouped[tagName + "Ref"];
181
227
  const result = (0, Number_1.toFloat)(tagValue);
182
228
  if (result == null) {
183
229
  return;
@@ -204,13 +250,13 @@ _ReadTask_extractLatLon = new WeakMap(), _ReadTask_geoTz = new WeakMap(), _ReadT
204
250
  // If there is an explicit TimeZone tag (which is rare), defer to that
205
251
  // before defaulting to UTC for videos:
206
252
  () => {
207
- const tz = (0, Timezones_1.extractTzOffsetFromTags)(this._tags);
253
+ const tz = (0, Timezones_1.extractTzOffsetFromTags)(this._rawDegrouped, this.options);
208
254
  // If this tz offset matches the GPS zone, use the GPS zone name (like "America/Los_Angeles") instead of the offset.
209
255
  const z = (0, Timezones_1.normalizeZone)(tz === null || tz === void 0 ? void 0 : tz.tz);
210
256
  if (tz != null && z != null) {
211
257
  const geoTz = __classPrivateFieldGet(this, _ReadTask_geoTz, "f").call(this);
212
258
  if (geoTz != null) {
213
- const edt = (0, FirstDateTime_1.firstDateTime)(this._raw);
259
+ const edt = (0, FirstDateTime_1.firstDateTime)(this._rawDegrouped);
214
260
  if (edt != null) {
215
261
  const ts = edt.toMillis();
216
262
  const zOffset = z.offset(ts);
@@ -224,25 +270,22 @@ _ReadTask_extractLatLon = new WeakMap(), _ReadTask_geoTz = new WeakMap(), _ReadT
224
270
  }
225
271
  }
226
272
  }
273
+ // nope, no GPS, just use the minutes-offset zone format:
227
274
  return tz;
228
275
  },
229
276
  // See https://github.com/photostructure/exiftool-vendored.js/issues/113
230
- // Videos are frequently encoded in UTC, but don't include the timezone offset in their datetime stamps.
231
- // This must be before the tz_lookup/geoTz strategy, as smartphone videos
232
- // will contain GPS, but still encode timestamps in UTC without an
233
- // explicit offset. HURRAY
234
- () => {
235
- var _a, _b, _c;
236
- return ((_b = (_a = this._tags) === null || _a === void 0 ? void 0 : _a.MIMEType) === null || _b === void 0 ? void 0 : _b.startsWith("video/")) &&
237
- this.options.defaultVideosToUTC === true
238
- ? // If there is a TimeZone tag, defer to that before defaulting to UTC:
239
- (_c = (0, Timezones_1.extractTzOffsetFromTags)(this._tags)) !== null && _c !== void 0 ? _c : {
240
- tz: "UTC",
241
- src: "defaultVideosToUTC",
242
- }
243
- : // not applicable:
244
- undefined;
245
- },
277
+ // Videos are frequently encoded in UTC, but don't include the
278
+ // timezone offset in their datetime stamps.
279
+ // This must be BEFORE the tz_lookup/geoTz strategy, as smartphone
280
+ // videos will contain GPS, but still encode timestamps in UTC without
281
+ // an explicit offset. HURRAY
282
+ () => __classPrivateFieldGet(this, _ReadTask_instances, "m", _ReadTask_defaultToUTC).call(this)
283
+ ? {
284
+ tz: "UTC",
285
+ src: "defaultVideosToUTC",
286
+ }
287
+ : // not applicable:
288
+ undefined,
246
289
  // If lat/lon is valid, use the tzlookup library, as it will be a proper
247
290
  // Zone name (like "America/New_York"), rather than just an hour offset.
248
291
  () => (0, Maybe_1.map)(__classPrivateFieldGet(this, _ReadTask_geoTz, "f").call(this), (ea) => ({
@@ -250,10 +293,10 @@ _ReadTask_extractLatLon = new WeakMap(), _ReadTask_geoTz = new WeakMap(), _ReadT
250
293
  src: "GPSLatitude/GPSLongitude",
251
294
  })),
252
295
  // This is a last-ditch estimation heuristic:
253
- () => (0, Timezones_1.extractTzOffsetFromUTCOffset)(this._tags),
296
+ () => (0, Timezones_1.extractTzOffsetFromUTCOffset)(this._rawDegrouped),
254
297
  ]), (ea) => ({ tz: this.tz, src: this.tzSource } = ea));
255
298
  }, _ReadTask_parseTag = function _ReadTask_parseTag(tagName, value) {
256
- var _a, _b, _c, _d, _e, _f;
299
+ var _a, _b, _c;
257
300
  if (nullish(value))
258
301
  return undefined;
259
302
  try {
@@ -280,27 +323,10 @@ _ReadTask_extractLatLon = new WeakMap(), _ReadTask_geoTz = new WeakMap(), _ReadT
280
323
  const b = BinaryField_1.BinaryField.fromRawValue(value);
281
324
  if (b != null)
282
325
  return b;
283
- const tz = isUtcTagName(tagName) ? "UTC" : this.tz;
284
- if (tagName === "When" ||
285
- tagName.includes("DateTime") ||
286
- tagName.includes("SubSec") ||
287
- tagName.toLowerCase().includes("timestamp")) {
288
- const d = (_a = ExifDateTime_1.ExifDateTime.fromExifStrict(value, tz)) !== null && _a !== void 0 ? _a : ExifDateTime_1.ExifDateTime.fromISO(value, tz);
289
- if (d != null)
290
- return d;
291
- }
292
- if (tagName === "When" || tagName.includes("Date")) {
293
- const d =
294
- // Some tags, like CreationDate, actually include time resolution.
295
- (_f = (_e = (_d = (_c = (_b = ExifDateTime_1.ExifDateTime.fromExifStrict(value, tz)) !== null && _b !== void 0 ? _b : ExifDateTime_1.ExifDateTime.fromISO(value, tz)) !== null && _c !== void 0 ? _c : ExifDateTime_1.ExifDateTime.fromExifLoose(value, tz)) !== null && _d !== void 0 ? _d : ExifDate_1.ExifDate.fromExifStrict(value)) !== null && _e !== void 0 ? _e : ExifDate_1.ExifDate.fromISO(value)) !== null && _f !== void 0 ? _f : ExifDate_1.ExifDate.fromExifLoose(value);
296
- if (d != null) {
297
- return d;
298
- }
299
- }
300
- if (tagName.includes("Time")) {
301
- const t = ExifTime_1.ExifTime.fromEXIF(value);
302
- if (t != null)
303
- return t;
326
+ if (MaybeDateOrTimeRe.test(tagName)) {
327
+ const utc_tz_override = isUtcTagName(tagName) || __classPrivateFieldGet(this, _ReadTask_instances, "m", _ReadTask_defaultToUTC).call(this);
328
+ const tz = utc_tz_override ? "UTC" : this.tz;
329
+ return ((_c = (_b = (_a = ExifDateTime_1.ExifDateTime.from(value, tz)) !== null && _a !== void 0 ? _a : (TimeRe.test(tagName) ? ExifTime_1.ExifTime.fromEXIF(value) : undefined)) !== null && _b !== void 0 ? _b : ExifDate_1.ExifDate.from(value)) !== null && _c !== void 0 ? _c : value);
304
330
  }
305
331
  }
306
332
  // Trust that ExifTool rendered the value with the correct type in JSON:
@@ -1 +1 @@
1
- {"version":3,"file":"ReadTask.js","sourceRoot":"","sources":["../src/ReadTask.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ReadTask.js","sourceRoot":"","sources":["../src/ReadTask.ts"],"names":[],"mappings":"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"}
package/dist/String.js CHANGED
@@ -1,13 +1,13 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.stripSuffix = exports.stripPrefix = exports.pad3 = exports.pad2 = exports.leftPad = exports.toS = exports.notBlank = exports.blank = exports.isString = void 0;
4
- const Array_1 = require("./Array");
4
+ const Times_1 = require("./Times");
5
5
  function isString(o) {
6
6
  return typeof o === "string";
7
7
  }
8
8
  exports.isString = isString;
9
- const spaces = (0, Array_1.times)(10, (i) => (0, Array_1.times)(i, () => " ").join(""));
10
- const zeroes = (0, Array_1.times)(10, (i) => (0, Array_1.times)(i, () => "0").join(""));
9
+ const spaces = (0, Times_1.times)(10, (i) => (0, Times_1.times)(i, () => " ").join(""));
10
+ const zeroes = (0, Times_1.times)(10, (i) => (0, Times_1.times)(i, () => "0").join(""));
11
11
  function blank(s) {
12
12
  return s == null || String(s).trim().length === 0;
13
13
  }
@@ -1 +1 @@
1
- {"version":3,"file":"String.js","sourceRoot":"","sources":["../src/String.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"String.js","sourceRoot":"","sources":["../src/String.ts"],"names":[],"mappings":"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"}