exiftool-vendored 28.7.0 → 29.0.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 (63) hide show
  1. package/CHANGELOG.md +30 -0
  2. package/SECURITY.md +1 -2
  3. package/dist/BinaryField.js +2 -0
  4. package/dist/BinaryField.js.map +1 -1
  5. package/dist/BinaryToBufferTask.js +5 -5
  6. package/dist/BinaryToBufferTask.js.map +1 -1
  7. package/dist/CoordinateParser.d.ts +38 -0
  8. package/dist/CoordinateParser.js +185 -0
  9. package/dist/CoordinateParser.js.map +1 -0
  10. package/dist/DateTime.js +4 -5
  11. package/dist/DateTime.js.map +1 -1
  12. package/dist/DefaultExifToolOptions.js +1 -3
  13. package/dist/DefaultExifToolOptions.js.map +1 -1
  14. package/dist/ErrorsAndWarnings.js +2 -2
  15. package/dist/ErrorsAndWarnings.js.map +1 -1
  16. package/dist/ExifDate.js +7 -2
  17. package/dist/ExifDate.js.map +1 -1
  18. package/dist/ExifDateTime.js +61 -64
  19. package/dist/ExifDateTime.js.map +1 -1
  20. package/dist/ExifTime.js +19 -26
  21. package/dist/ExifTime.js.map +1 -1
  22. package/dist/ExifTool.d.ts +1 -3
  23. package/dist/ExifTool.js +56 -57
  24. package/dist/ExifTool.js.map +1 -1
  25. package/dist/ExifToolTask.js +21 -26
  26. package/dist/ExifToolTask.js.map +1 -1
  27. package/dist/ExiftoolPath.js +7 -4
  28. package/dist/ExiftoolPath.js.map +1 -1
  29. package/dist/FirstDateTime.js +1 -1
  30. package/dist/FirstDateTime.js.map +1 -1
  31. package/dist/GPS.d.ts +24 -0
  32. package/dist/GPS.js +152 -0
  33. package/dist/GPS.js.map +1 -0
  34. package/dist/JSON.js +1 -1
  35. package/dist/JSON.js.map +1 -1
  36. package/dist/Number.d.ts +13 -0
  37. package/dist/Number.js +26 -0
  38. package/dist/Number.js.map +1 -1
  39. package/dist/ReadRawTask.js +3 -1
  40. package/dist/ReadRawTask.js.map +1 -1
  41. package/dist/ReadTask.js +189 -254
  42. package/dist/ReadTask.js.map +1 -1
  43. package/dist/RewriteAllTagsTask.js +2 -2
  44. package/dist/RewriteAllTagsTask.js.map +1 -1
  45. package/dist/String.d.ts +6 -2
  46. package/dist/String.js +7 -0
  47. package/dist/String.js.map +1 -1
  48. package/dist/Struct.js +1 -2
  49. package/dist/Struct.js.map +1 -1
  50. package/dist/Tags.d.ts +26 -26
  51. package/dist/TimeParsing.js +6 -8
  52. package/dist/TimeParsing.js.map +1 -1
  53. package/dist/Times.d.ts +6 -0
  54. package/dist/Times.js +7 -3
  55. package/dist/Times.js.map +1 -1
  56. package/dist/Timezones.d.ts +1 -1
  57. package/dist/Timezones.js +19 -24
  58. package/dist/Timezones.js.map +1 -1
  59. package/dist/VersionTask.js +1 -1
  60. package/dist/VersionTask.js.map +1 -1
  61. package/dist/WriteTask.js +38 -13
  62. package/dist/WriteTask.js.map +1 -1
  63. package/package.json +10 -10
@@ -1,16 +1,4 @@
1
1
  "use strict";
2
- var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
3
- if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
4
- 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");
5
- return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
6
- };
7
- var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
8
- if (kind === "m") throw new TypeError("Private method is not writable");
9
- if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
10
- if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
11
- return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
12
- };
13
- var _a, _ExifDateTime_fromPatterns, _ExifDateTime_looseExifFormats, _ExifDateTime_dt;
14
2
  Object.defineProperty(exports, "__esModule", { value: true });
15
3
  exports.ExifDateTime = void 0;
16
4
  const luxon_1 = require("luxon");
@@ -24,20 +12,32 @@ const Timezones_1 = require("./Timezones");
24
12
  * Encodes an ExifDateTime with an optional tz offset in minutes.
25
13
  */
26
14
  class ExifDateTime {
15
+ year;
16
+ month;
17
+ day;
18
+ hour;
19
+ minute;
20
+ second;
21
+ millisecond;
22
+ tzoffsetMinutes;
23
+ rawValue;
24
+ zoneName;
25
+ inferredZone;
27
26
  static from(exifOrIso, defaultZone) {
28
- var _b, _c;
29
- return exifOrIso instanceof _a
27
+ return exifOrIso instanceof ExifDateTime
30
28
  ? exifOrIso // already an ExifDateTime
31
29
  : (0, String_1.blank)(exifOrIso)
32
30
  ? undefined // in order of strictness:
33
- : ((_c = (_b = this.fromExifStrict(exifOrIso, defaultZone)) !== null && _b !== void 0 ? _b : this.fromISO(exifOrIso, defaultZone)) !== null && _c !== void 0 ? _c : this.fromExifLoose(exifOrIso, defaultZone));
31
+ : this.fromExifStrict(exifOrIso, defaultZone) ??
32
+ this.fromISO(exifOrIso, defaultZone) ??
33
+ this.fromExifLoose(exifOrIso, defaultZone);
34
34
  }
35
35
  static fromISO(iso, defaultZone) {
36
36
  if ((0, String_1.blank)(iso) || null != iso.match(/^\d+$/))
37
37
  return undefined;
38
38
  // Unfortunately, DateTime.fromISO() is happy to parse a date with no time,
39
39
  // so we have to do this ourselves:
40
- return __classPrivateFieldGet(this, _a, "m", _ExifDateTime_fromPatterns).call(this, iso, (0, TimeParsing_1.timeFormats)({
40
+ return this.#fromPatterns(iso, (0, TimeParsing_1.timeFormats)({
41
41
  formatPrefixes: ["y-MM-dd'T'", "y-MM-dd ", "y-M-d "],
42
42
  defaultZone,
43
43
  }));
@@ -53,12 +53,22 @@ class ExifDateTime {
53
53
  * `offsetMinutesToZoneName`.
54
54
  */
55
55
  static fromEXIF(text, defaultZone) {
56
- var _b;
57
56
  if ((0, String_1.blank)(text))
58
57
  return undefined;
59
58
  return (
60
59
  // .fromExifStrict() uses .fromISO() as a backstop
61
- (_b = this.fromExifStrict(text, defaultZone)) !== null && _b !== void 0 ? _b : this.fromExifLoose(text, defaultZone));
60
+ this.fromExifStrict(text, defaultZone) ??
61
+ this.fromExifLoose(text, defaultZone));
62
+ }
63
+ static #fromPatterns(text, fmts) {
64
+ const result = (0, TimeParsing_1.parseDateTime)(text, fmts);
65
+ return result == null
66
+ ? undefined
67
+ : ExifDateTime.fromDateTime(result.dt, {
68
+ rawValue: text,
69
+ unsetMilliseconds: result.unsetMilliseconds,
70
+ inferredZone: result.inferredZone,
71
+ });
62
72
  }
63
73
  /**
64
74
  * Parse the given date-time string, EXIF-formatted.
@@ -72,29 +82,40 @@ class ExifDateTime {
72
82
  * `offsetMinutesToZoneName`.
73
83
  */
74
84
  static fromExifStrict(text, defaultZone) {
75
- var _b;
76
85
  if ((0, String_1.blank)(text))
77
86
  return undefined;
78
- return ((_b = __classPrivateFieldGet(this, _a, "m", _ExifDateTime_fromPatterns).call(this, text, (0, TimeParsing_1.timeFormats)({ formatPrefixes: ["y:MM:dd ", "y:M:d "], defaultZone }))) !== null && _b !== void 0 ? _b :
79
- // Not found yet? Maybe it's in ISO format? See
80
- // https://github.com/photostructure/exiftool-vendored.js/issues/71
81
- this.fromISO(text, defaultZone));
87
+ return (this.#fromPatterns(text, (0, TimeParsing_1.timeFormats)({ formatPrefixes: ["y:MM:dd ", "y:M:d "], defaultZone })) ??
88
+ // Not found yet? Maybe it's in ISO format? See
89
+ // https://github.com/photostructure/exiftool-vendored.js/issues/71
90
+ this.fromISO(text, defaultZone));
91
+ }
92
+ static *#looseExifFormats(defaultZone) {
93
+ // The following are from actual datestamps seen in the wild (!!)
94
+ const formats = [
95
+ "MMM d y HH:mm:ss",
96
+ "MMM d y, HH:mm:ss",
97
+ // Thu Oct 13 00:12:27 2016:
98
+ "ccc MMM d HH:mm:ss y",
99
+ ];
100
+ const zone = (0, String_1.notBlank)(defaultZone) ? defaultZone : Timezones_1.UnsetZone;
101
+ for (const fmt of formats) {
102
+ yield { fmt: fmt, zone, inferredZone: true };
103
+ }
82
104
  }
83
105
  static fromExifLoose(text, defaultZone) {
84
106
  return (0, String_1.blank)(text)
85
107
  ? undefined
86
- : __classPrivateFieldGet(this, _a, "m", _ExifDateTime_fromPatterns).call(this, text, __classPrivateFieldGet(this, _a, "m", _ExifDateTime_looseExifFormats).call(this, defaultZone));
108
+ : this.#fromPatterns(text, this.#looseExifFormats(defaultZone));
87
109
  }
88
110
  static fromDateTime(dt, opts) {
89
- var _b;
90
111
  if (dt == null || !dt.isValid || dt.year === 0 || dt.year === 1) {
91
112
  return undefined;
92
113
  }
93
- return new _a(dt.year, dt.month, dt.day, dt.hour, dt.minute, dt.second, dt.millisecond === 0 && true === (opts === null || opts === void 0 ? void 0 : opts.unsetMilliseconds)
114
+ return new ExifDateTime(dt.year, dt.month, dt.day, dt.hour, dt.minute, dt.second, dt.millisecond === 0 && true === opts?.unsetMilliseconds
94
115
  ? undefined
95
- : dt.millisecond, dt.offset === Timezones_1.UnsetZoneOffsetMinutes ? undefined : dt.offset, opts === null || opts === void 0 ? void 0 : opts.rawValue, dt.zoneName == null || ((_b = dt.zone) === null || _b === void 0 ? void 0 : _b.name) === Timezones_1.UnsetZone.name
116
+ : dt.millisecond, dt.offset === Timezones_1.UnsetZoneOffsetMinutes ? undefined : dt.offset, opts?.rawValue, dt.zoneName == null || dt.zone?.name === Timezones_1.UnsetZone.name
96
117
  ? undefined
97
- : dt.zoneName, opts === null || opts === void 0 ? void 0 : opts.inferredZone);
118
+ : dt.zoneName, opts?.inferredZone);
98
119
  }
99
120
  /**
100
121
  * Create an ExifDateTime from a number of milliseconds since the epoch
@@ -126,6 +147,8 @@ class ExifDateTime {
126
147
  static now(opts = {}) {
127
148
  return this.fromMillis(Date.now(), opts);
128
149
  }
150
+ #dt;
151
+ zone;
129
152
  constructor(year, month, day, hour, minute, second, millisecond, tzoffsetMinutes, rawValue, zoneName, inferredZone) {
130
153
  this.year = year;
131
154
  this.month = month;
@@ -138,7 +161,6 @@ class ExifDateTime {
138
161
  this.rawValue = rawValue;
139
162
  this.zoneName = zoneName;
140
163
  this.inferredZone = inferredZone;
141
- _ExifDateTime_dt.set(this, void 0);
142
164
  this.zone = (0, Timezones_1.getZoneName)({ zoneName, tzoffsetMinutes });
143
165
  }
144
166
  get millis() {
@@ -151,17 +173,16 @@ class ExifDateTime {
151
173
  return this.millisecond == null;
152
174
  }
153
175
  setZone(zone, opts) {
154
- var _b;
155
176
  const dt = (0, TimeParsing_1.setZone)({
156
177
  zone,
157
178
  src: this.toDateTime(),
158
179
  srcHasZone: this.hasZone,
159
180
  opts,
160
181
  });
161
- return _a.fromDateTime(dt, {
182
+ return ExifDateTime.fromDateTime(dt, {
162
183
  rawValue: this.rawValue,
163
184
  unsetMilliseconds: this.millisecond == null,
164
- inferredZone: (_b = opts === null || opts === void 0 ? void 0 : opts.inferredZone) !== null && _b !== void 0 ? _b : true,
185
+ inferredZone: opts?.inferredZone ?? true,
165
186
  });
166
187
  }
167
188
  /**
@@ -169,8 +190,7 @@ class ExifDateTime {
169
190
  * has an unset zone (as Luxon doesn't support "unset" timezones)
170
191
  */
171
192
  toDateTime(overrideZone) {
172
- var _b;
173
- return (__classPrivateFieldSet(this, _ExifDateTime_dt, (_b = __classPrivateFieldGet(this, _ExifDateTime_dt, "f")) !== null && _b !== void 0 ? _b : luxon_1.DateTime.fromObject({
193
+ return (this.#dt ??= luxon_1.DateTime.fromObject({
174
194
  year: this.year,
175
195
  month: this.month,
176
196
  day: this.day,
@@ -179,8 +199,8 @@ class ExifDateTime {
179
199
  second: this.second,
180
200
  millisecond: this.millisecond,
181
201
  }, {
182
- zone: overrideZone !== null && overrideZone !== void 0 ? overrideZone : this.zone,
183
- }), "f"));
202
+ zone: overrideZone ?? this.zone,
203
+ }));
184
204
  }
185
205
  toEpochSeconds(overrideZone) {
186
206
  return this.toDateTime(overrideZone).toUnixInteger();
@@ -189,9 +209,8 @@ class ExifDateTime {
189
209
  return this.toDateTime().toJSDate();
190
210
  }
191
211
  toISOString(options = {}) {
192
- var _b;
193
212
  return (0, Maybe_1.denull)(this.toDateTime().toISO({
194
- suppressMilliseconds: (_b = options.suppressMilliseconds) !== null && _b !== void 0 ? _b : this.millisecond == null,
213
+ suppressMilliseconds: options.suppressMilliseconds ?? this.millisecond == null,
195
214
  includeOffset: this.hasZone && options.includeOffset !== false,
196
215
  }));
197
216
  }
@@ -233,14 +252,14 @@ class ExifDateTime {
233
252
  * @return a new ExifDateTime from the given JSON. Note that this instance **may not be valid**.
234
253
  */
235
254
  static fromJSON(json) {
236
- return new _a(json.year, json.month, json.day, json.hour, json.minute, json.second, json.millisecond, json.tzoffsetMinutes, json.rawValue, json.zoneName, json.inferredZone);
255
+ return new ExifDateTime(json.year, json.month, json.day, json.hour, json.minute, json.second, json.millisecond, json.tzoffsetMinutes, json.rawValue, json.zoneName, json.inferredZone);
237
256
  }
238
257
  maybeMatchZone(target, maxDeltaMs = 14 * DateTime_1.MinuteMs) {
239
- var _b, _c, _d;
240
258
  const targetZone = target.zone;
241
259
  if (targetZone == null || !target.hasZone)
242
260
  return;
243
- return ((_c = (_b = this.setZone(targetZone, { keepLocalTime: false })) === null || _b === void 0 ? void 0 : _b.ifClose(target, maxDeltaMs)) !== null && _c !== void 0 ? _c : (_d = this.setZone(targetZone, { keepLocalTime: true })) === null || _d === void 0 ? void 0 : _d.ifClose(target, maxDeltaMs));
261
+ return (this.setZone(targetZone, { keepLocalTime: false })?.ifClose(target, maxDeltaMs) ??
262
+ this.setZone(targetZone, { keepLocalTime: true })?.ifClose(target, maxDeltaMs));
244
263
  }
245
264
  ifClose(target, maxDeltaMs = 14 * DateTime_1.MinuteMs) {
246
265
  const ts = this.toMillis();
@@ -252,30 +271,8 @@ class ExifDateTime {
252
271
  if (!this.hasZone) {
253
272
  dt = dt.setZone(Timezones_1.UnsetZone, { keepLocalTime: true });
254
273
  }
255
- return _a.fromDateTime(dt, this);
274
+ return ExifDateTime.fromDateTime(dt, this);
256
275
  }
257
276
  }
258
277
  exports.ExifDateTime = ExifDateTime;
259
- _a = ExifDateTime, _ExifDateTime_dt = new WeakMap(), _ExifDateTime_fromPatterns = function _ExifDateTime_fromPatterns(text, fmts) {
260
- const result = (0, TimeParsing_1.parseDateTime)(text, fmts);
261
- return result == null
262
- ? undefined
263
- : _a.fromDateTime(result.dt, {
264
- rawValue: text,
265
- unsetMilliseconds: result.unsetMilliseconds,
266
- inferredZone: result.inferredZone,
267
- });
268
- }, _ExifDateTime_looseExifFormats = function* _ExifDateTime_looseExifFormats(defaultZone) {
269
- // The following are from actual datestamps seen in the wild (!!)
270
- const formats = [
271
- "MMM d y HH:mm:ss",
272
- "MMM d y, HH:mm:ss",
273
- // Thu Oct 13 00:12:27 2016:
274
- "ccc MMM d HH:mm:ss y",
275
- ];
276
- const zone = (0, String_1.notBlank)(defaultZone) ? defaultZone : Timezones_1.UnsetZone;
277
- for (const fmt of formats) {
278
- yield { fmt: fmt, zone, inferredZone: true };
279
- }
280
- };
281
278
  //# sourceMappingURL=ExifDateTime.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ExifDateTime.js","sourceRoot":"","sources":["../src/ExifDateTime.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ExifDateTime.js","sourceRoot":"","sources":["../src/ExifDateTime.ts"],"names":[],"mappings":"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"}
package/dist/ExifTime.js CHANGED
@@ -1,16 +1,4 @@
1
1
  "use strict";
2
- var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
3
- if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
4
- 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");
5
- return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
6
- };
7
- var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
8
- if (kind === "m") throw new TypeError("Private method is not writable");
9
- if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
10
- if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
11
- return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
12
- };
13
- var _ExifTime_instances, _ExifTime_dt, _ExifTime_z, _ExifTime_subsec, _ExifTime_shortZone;
14
2
  Object.defineProperty(exports, "__esModule", { value: true });
15
3
  exports.ExifTime = void 0;
16
4
  const luxon_1 = require("luxon");
@@ -22,6 +10,12 @@ const Timezones_1 = require("./Timezones");
22
10
  * Encodes an ExifTime (which may not have a timezone offset)
23
11
  */
24
12
  class ExifTime {
13
+ hour;
14
+ minute;
15
+ second;
16
+ millisecond;
17
+ rawValue;
18
+ inferredZone;
25
19
  static fromEXIF(text, defaultZone) {
26
20
  const s = (0, String_1.toS)(text).trim();
27
21
  if (s.length === 0)
@@ -37,28 +31,27 @@ class ExifTime {
37
31
  ? undefined
38
32
  : new ExifTime(dt.hour, dt.minute, dt.second, unsetMilliseconds ? undefined : dt.millisecond, rawValue, zone, inferredZone);
39
33
  }
34
+ #dt;
35
+ #z;
36
+ zone;
40
37
  constructor(hour, minute, second, millisecond, rawValue, zoneName, inferredZone) {
41
- _ExifTime_instances.add(this);
42
38
  this.hour = hour;
43
39
  this.minute = minute;
44
40
  this.second = second;
45
41
  this.millisecond = millisecond;
46
42
  this.rawValue = rawValue;
47
43
  this.inferredZone = inferredZone;
48
- _ExifTime_dt.set(this, void 0);
49
- _ExifTime_z.set(this, void 0);
50
44
  this.zone = (0, Timezones_1.getZoneName)({ zoneName });
51
45
  }
52
46
  toDateTime() {
53
- var _a;
54
- return (__classPrivateFieldSet(this, _ExifTime_dt, (_a = __classPrivateFieldGet(this, _ExifTime_dt, "f")) !== null && _a !== void 0 ? _a : luxon_1.DateTime.fromObject({
47
+ return (this.#dt ??= luxon_1.DateTime.fromObject({
55
48
  hour: this.hour,
56
49
  minute: this.minute,
57
50
  second: this.second,
58
51
  millisecond: this.millisecond,
59
52
  }, {
60
53
  zone: this.zone,
61
- }), "f"));
54
+ }));
62
55
  }
63
56
  /**
64
57
  * Alias for `.millisecond`
@@ -69,10 +62,16 @@ class ExifTime {
69
62
  get hasZone() {
70
63
  return this.zone != null;
71
64
  }
65
+ #subsec() {
66
+ return this.millisecond == null ? "" : "." + (0, String_1.pad3)(this.millisecond);
67
+ }
68
+ #shortZone() {
69
+ return (this.#z ??= (0, Timezones_1.zoneToShortOffset)(this.zone));
70
+ }
72
71
  toString() {
73
72
  return ((0, String_1.pad2)(this.hour, this.minute, this.second).join(":") +
74
- __classPrivateFieldGet(this, _ExifTime_instances, "m", _ExifTime_subsec).call(this) +
75
- __classPrivateFieldGet(this, _ExifTime_instances, "m", _ExifTime_shortZone).call(this));
73
+ this.#subsec() +
74
+ this.#shortZone());
76
75
  }
77
76
  toISOString() {
78
77
  return this.toString();
@@ -106,10 +105,4 @@ class ExifTime {
106
105
  }
107
106
  }
108
107
  exports.ExifTime = ExifTime;
109
- _ExifTime_dt = new WeakMap(), _ExifTime_z = new WeakMap(), _ExifTime_instances = new WeakSet(), _ExifTime_subsec = function _ExifTime_subsec() {
110
- return this.millisecond == null ? "" : "." + (0, String_1.pad3)(this.millisecond);
111
- }, _ExifTime_shortZone = function _ExifTime_shortZone() {
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
- };
115
108
  //# sourceMappingURL=ExifTime.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ExifTime.js","sourceRoot":"","sources":["../src/ExifTime.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,iCAAmD;AACnD,yCAA0C;AAE1C,qCAA0C;AAC1C,+CAAmE;AACnE,2CAA4D;AAE5D;;GAEG;AACH,MAAa,QAAQ;IACnB,MAAM,CAAC,QAAQ,CAAC,IAAY,EAAE,WAA2B;QACvD,MAAM,CAAC,GAAG,IAAA,YAAG,EAAC,IAAI,CAAC,CAAC,IAAI,EAAE,CAAA;QAC1B,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC;YAAE,OAAM;QAC1B,MAAM,MAAM,GAAG,IAAA,2BAAa,EAAC,IAAI,EAAE,IAAA,yBAAW,EAAC,EAAE,WAAW,EAAE,CAAC,CAAC,CAAA;QAChE,IAAI,MAAM,IAAI,IAAI,EAAE,CAAC;YACnB,OAAO,IAAI,CAAC,YAAY,CACtB,MAAM,CAAC,EAAE,EACT,IAAI,EACJ,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAA,uBAAW,EAAC,EAAE,IAAI,EAAE,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,EACpE,MAAM,CAAC,YAAY,EACnB,MAAM,CAAC,iBAAiB,CACzB,CAAA;QACH,CAAC;QACD,OAAM;IACR,CAAC;IAED,MAAM,CAAC,YAAY,CACjB,EAAmB,EACnB,QAAiB,EACjB,IAAa,EACb,YAAsB,EACtB,iBAA2B;QAE3B,OAAO,CAAC,IAAA,wBAAa,EAAC,EAAE,CAAC;YACvB,CAAC,CAAC,SAAS;YACX,CAAC,CAAC,IAAI,QAAQ,CACV,EAAE,CAAC,IAAI,EACP,EAAE,CAAC,MAAM,EACT,EAAE,CAAC,MAAM,EACT,iBAAiB,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,WAAW,EAC9C,QAAQ,EACR,IAAI,EACJ,YAAY,CACb,CAAA;IACP,CAAC;IAMD,YACW,IAAY,EACZ,MAAc,EACd,MAAc,EACd,WAAoB,EACpB,QAAiB,EAC1B,QAAwB,EACf,YAAsB;;QANtB,SAAI,GAAJ,IAAI,CAAQ;QACZ,WAAM,GAAN,MAAM,CAAQ;QACd,WAAM,GAAN,MAAM,CAAQ;QACd,gBAAW,GAAX,WAAW,CAAS;QACpB,aAAQ,GAAR,QAAQ,CAAS;QAEjB,iBAAY,GAAZ,YAAY,CAAU;QAXjC,+BAAc;QACd,8BAAkB;QAYhB,IAAI,CAAC,IAAI,GAAG,IAAA,uBAAW,EAAC,EAAE,QAAQ,EAAE,CAAC,CAAA;IACvC,CAAC;IAED,UAAU;;QACR,OAAO,CAAC,mIAAa,gBAAQ,CAAC,UAAU,CACtC;YACE,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,WAAW,EAAE,IAAI,CAAC,WAAW;SAC9B,EACD;YACE,IAAI,EAAE,IAAI,CAAC,IAAI;SAChB,CACF,MAAA,CAAC,CAAA;IACJ,CAAC;IAED;;OAEG;IACH,IAAI,MAAM;QACR,OAAO,IAAI,CAAC,WAAW,CAAA;IACzB,CAAC;IAED,IAAI,OAAO;QACT,OAAO,IAAI,CAAC,IAAI,IAAI,IAAI,CAAA;IAC1B,CAAC;IAUD,QAAQ;QACN,OAAO,CACL,IAAA,aAAI,EAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;YACnD,uBAAA,IAAI,6CAAQ,MAAZ,IAAI,CAAU;YACd,uBAAA,IAAI,gDAAW,MAAf,IAAI,CAAa,CAClB,CAAA;IACH,CAAC;IAED,WAAW;QACT,OAAO,IAAI,CAAC,QAAQ,EAAE,CAAA;IACxB,CAAC;IAED,YAAY;QACV,OAAO,IAAI,CAAC,QAAQ,EAAE,CAAA;IACxB,CAAC;IAED,OAAO,CAAC,IAAmB,EAAE,IAAkB;QAC7C,MAAM,EAAE,GAAG,IAAA,qBAAO,EAAC;YACjB,IAAI;YACJ,GAAG,EAAE,IAAI,CAAC,UAAU,EAAE;YACtB,UAAU,EAAE,IAAI,CAAC,OAAO;YACxB,IAAI;SACL,CAAC,CAAA;QACF,OAAO,QAAQ,CAAC,YAAY,CAC1B,EAAE,EACF,IAAI,CAAC,QAAQ,EACb,IAAI,CAAC,IAAI,EACT,IAAI,CAAC,YAAY,EACjB,IAAI,CAAC,WAAW,IAAI,IAAI,CACzB,CAAA;IACH,CAAC;IAED,MAAM;QACJ,OAAO;YACL,KAAK,EAAE,UAAU;YACjB,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,YAAY,EAAE,IAAI,CAAC,YAAY;SAChC,CAAA;IACH,CAAC;IAED,MAAM,CAAC,QAAQ,CAAC,IAAoC;QAClD,OAAO,IAAI,QAAQ,CACjB,IAAI,CAAC,IAAI,EACT,IAAI,CAAC,MAAM,EACX,IAAI,CAAC,MAAM,EACX,IAAI,CAAC,WAAW,EAChB,IAAI,CAAC,QAAQ,EACb,IAAI,CAAC,IAAI,EACT,IAAI,CAAC,YAAY,CAClB,CAAA;IACH,CAAC;CACF;AA9ID,4BA8IC;;IA/DG,OAAO,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,GAAG,IAAA,aAAI,EAAC,IAAI,CAAC,WAAW,CAAC,CAAA;AACrE,CAAC;;IAGC,OAAO,CAAC,iIAAY,IAAA,6BAAiB,EAAC,IAAI,CAAC,IAAI,CAAC,MAAA,CAAC,CAAA;AACnD,CAAC"}
1
+ {"version":3,"file":"ExifTime.js","sourceRoot":"","sources":["../src/ExifTime.ts"],"names":[],"mappings":"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"}
@@ -153,8 +153,6 @@ export declare class ExifTool {
153
153
  */
154
154
  write(file: string, tags: WriteTags, options?: WriteTaskOptions): Promise<WriteTaskResult>;
155
155
  /**
156
- * Write the given `tags` to `file`.
157
- *
158
156
  * @param file an existing file to write `tags` to
159
157
  *
160
158
  * @param tags the tags to write to `file`.
@@ -173,7 +171,7 @@ export declare class ExifTool {
173
171
  *
174
172
  * @deprecated use
175
173
  * {@link ExifTool.write(file: string, tags: WriteTags, options?: WriteTaskOptions)}
176
- * instead (move `writeArgs` into your `options` hash)
174
+ * instead: move `writeArgs` into your `options` hash.
177
175
  */
178
176
  write(file: string, tags: WriteTags, writeArgs?: string[], options?: WriteTaskOptions): Promise<WriteTaskResult>;
179
177
  /**
package/dist/ExifTool.js CHANGED
@@ -22,15 +22,9 @@ var __importStar = (this && this.__importStar) || function (mod) {
22
22
  __setModuleDefault(result, mod);
23
23
  return result;
24
24
  };
25
- var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
26
- if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
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
- return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
29
- };
30
25
  var __importDefault = (this && this.__importDefault) || function (mod) {
31
26
  return (mod && mod.__esModule) ? mod : { "default": mod };
32
27
  };
33
- var _ExifTool_taskOptions, _ExifTool_checkForPerl;
34
28
  Object.defineProperty(exports, "__esModule", { value: true });
35
29
  exports.exiftool = exports.ExifTool = exports.DefaultWriteTaskOptions = exports.offsetMinutesToZoneName = exports.defaultVideosToUTC = exports.UnsetZoneOffsetMinutes = exports.UnsetZoneName = exports.UnsetZone = exports.TimezoneOffsetTagnames = 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
30
  const bc = __importStar(require("batch-cluster"));
@@ -124,44 +118,9 @@ const whichPerl = (0, Lazy_1.lazy)(async () => {
124
118
  * @see https://photostructure.github.io/exiftool-vendored.js/ for more documentation.
125
119
  */
126
120
  class ExifTool {
121
+ options;
122
+ batchCluster;
127
123
  constructor(options = {}) {
128
- var _a;
129
- this.exiftoolPath = (0, Lazy_1.lazy)(async () => {
130
- var _a;
131
- const o = this.options;
132
- return ((_a = (await ((0, Object_1.isFunction)(o.exiftoolPath)
133
- ? o.exiftoolPath(this.options.logger())
134
- : o.exiftoolPath))) !== null && _a !== void 0 ? _a : (0, ExiftoolPath_1.exiftoolPath)(this.options.logger()));
135
- });
136
- _ExifTool_taskOptions.set(this, (0, Lazy_1.lazy)(() => (0, Pick_1.pick)(this.options, "ignoreMinorErrors"))
137
- /**
138
- * Register life cycle event listeners. Delegates to BatchProcess.
139
- */
140
- );
141
- /**
142
- * Register life cycle event listeners. Delegates to BatchProcess.
143
- */
144
- this.on = (event, listener) => this.batchCluster.on(event, listener);
145
- /**
146
- * Unregister life cycle event listeners. Delegates to BatchProcess.
147
- */
148
- this.off = (event, listener) => this.batchCluster.off(event, listener);
149
- // calling whichPerl through this lazy() means we only do that task once per
150
- // instance.
151
- _ExifTool_checkForPerl.set(this, (0, Lazy_1.lazy)(async () => {
152
- if (this.options.checkPerl) {
153
- await whichPerl(); // < throws if perl is missing
154
- }
155
- })
156
- /**
157
- * Most users will not need to use `enqueueTask` directly. This method
158
- * supports submitting custom `BatchCluster` tasks.
159
- *
160
- * @param task is a thunk to support retries by providing new instances on retries.
161
- *
162
- * @see BinaryExtractionTask for an example task implementation
163
- */
164
- );
165
124
  if (options != null && typeof options !== "object") {
166
125
  throw new Error("Please update caller to the new ExifTool constructor API");
167
126
  }
@@ -169,7 +128,7 @@ class ExifTool {
169
128
  ...DefaultExifToolOptions_1.DefaultExifToolOptions,
170
129
  ...options,
171
130
  });
172
- const ignoreShebang = (_a = o.ignoreShebang) !== null && _a !== void 0 ? _a : _ignoreShebang();
131
+ const ignoreShebang = o.ignoreShebang ?? _ignoreShebang();
173
132
  const env = { ...o.exiftoolEnv, LANG: "C" };
174
133
  if ((0, String_1.notBlank)(node_process_1.default.env.EXIFTOOL_HOME) && (0, String_1.blank)(env.EXIFTOOL_HOME)) {
175
134
  env.EXIFTOOL_HOME = node_process_1.default.env.EXIFTOOL_HOME;
@@ -190,6 +149,21 @@ class ExifTool {
190
149
  };
191
150
  this.batchCluster = new bc.BatchCluster(this.options);
192
151
  }
152
+ exiftoolPath = (0, Lazy_1.lazy)(async () => {
153
+ const o = this.options;
154
+ return ((await ((0, Object_1.isFunction)(o.exiftoolPath)
155
+ ? o.exiftoolPath(this.options.logger())
156
+ : o.exiftoolPath)) ?? (0, ExiftoolPath_1.exiftoolPath)(this.options.logger()));
157
+ });
158
+ #taskOptions = (0, Lazy_1.lazy)(() => (0, Pick_1.pick)(this.options, "ignoreMinorErrors"));
159
+ /**
160
+ * Register life cycle event listeners. Delegates to BatchProcess.
161
+ */
162
+ on = (event, listener) => this.batchCluster.on(event, listener);
163
+ /**
164
+ * Unregister life cycle event listeners. Delegates to BatchProcess.
165
+ */
166
+ off = (event, listener) => this.batchCluster.off(event, listener);
193
167
  /**
194
168
  * @return a promise holding the version number of the vendored ExifTool
195
169
  */
@@ -197,13 +171,12 @@ class ExifTool {
197
171
  return this.enqueueTask(() => new VersionTask_1.VersionTask(this.options));
198
172
  }
199
173
  read(file, argsOrOptions, options) {
200
- var _a, _b;
201
174
  const opts = {
202
175
  ...(0, Pick_1.pick)(this.options, ...ReadTask_1.ReadTaskOptionFields),
203
176
  ...((0, Object_1.isObject)(argsOrOptions) ? argsOrOptions : options),
204
177
  };
205
178
  opts.readArgs =
206
- (_b = (_a = (0, Array_1.ifArr)(argsOrOptions)) !== null && _a !== void 0 ? _a : (0, Array_1.ifArr)(opts.readArgs)) !== null && _b !== void 0 ? _b : this.options.readArgs;
179
+ (0, Array_1.ifArr)(argsOrOptions) ?? (0, Array_1.ifArr)(opts.readArgs) ?? this.options.readArgs;
207
180
  return this.enqueueTask(() => ReadTask_1.ReadTask.for(file, opts)); // < no way to know at compile time if we're going to get back a T!
208
181
  }
209
182
  /**
@@ -232,16 +205,37 @@ class ExifTool {
232
205
  * typing details.
233
206
  */
234
207
  readRaw(file, args = []) {
235
- return this.enqueueTask(() => ReadRawTask_1.ReadRawTask.for(file, args, __classPrivateFieldGet(this, _ExifTool_taskOptions, "f").call(this)));
208
+ return this.enqueueTask(() => ReadRawTask_1.ReadRawTask.for(file, args, this.#taskOptions()));
236
209
  }
210
+ /**
211
+ * Write the given `tags` to `file`.
212
+ *
213
+ * **NOTE: no input validation is done by this library.** ExifTool, however,
214
+ * is strict about tag names and values in the context of the format of file
215
+ * being written to.
216
+ *
217
+ * @param file an existing file to write `tags` to
218
+ *
219
+ * @param tags the tags to write to `file`.
220
+ *
221
+ * @param options overrides to the default ExifTool options provided to the
222
+ * ExifTool constructor.
223
+ *
224
+ * @returns Either the promise will be resolved if the tags are written to
225
+ * successfully, or the promise will be rejected if there are errors or
226
+ * warnings.
227
+ *
228
+ * @see https://exiftool.org/exiftool_pod.html#overwrite_original
229
+ */
237
230
  write(file, tags, writeArgsOrOptions, options) {
238
- var _a, _b;
239
231
  const opts = {
240
232
  ...(0, Pick_1.pick)(this.options, ...WriteTask_1.WriteTaskOptionFields),
241
233
  ...((0, Object_1.isObject)(writeArgsOrOptions) ? writeArgsOrOptions : options),
242
234
  };
243
235
  opts.writeArgs =
244
- (_b = (_a = (0, Array_1.ifArr)(writeArgsOrOptions)) !== null && _a !== void 0 ? _a : (0, Array_1.ifArr)(opts.writeArgs)) !== null && _b !== void 0 ? _b : this.options.writeArgs;
236
+ (0, Array_1.ifArr)(writeArgsOrOptions) ??
237
+ (0, Array_1.ifArr)(opts.writeArgs) ??
238
+ this.options.writeArgs;
245
239
  // don't retry because writes might not be idempotent (e.g. incrementing
246
240
  // timestamps by an hour)
247
241
  const retriable = false;
@@ -259,12 +253,11 @@ class ExifTool {
259
253
  * a list of metadata keys to **not** delete.
260
254
  */
261
255
  deleteAllTags(file, opts) {
262
- var _a;
263
256
  const args = [...DeleteAllTagsArgs_1.DeleteAllTagsArgs];
264
- for (const ea of (_a = opts === null || opts === void 0 ? void 0 : opts.retain) !== null && _a !== void 0 ? _a : []) {
257
+ for (const ea of opts?.retain ?? []) {
265
258
  args.push(`-${ea}<${ea}`);
266
259
  }
267
- return this.write(file, {}, args, (0, Object_1.omit)(opts !== null && opts !== void 0 ? opts : {}, "retain"));
260
+ return this.write(file, {}, args, (0, Object_1.omit)(opts ?? {}, "retain"));
268
261
  }
269
262
  /**
270
263
  * Extract the low-resolution thumbnail in `path/to/image.jpg`
@@ -316,7 +309,7 @@ class ExifTool {
316
309
  // BinaryExtractionTask returns a stringified error if the output indicates
317
310
  // the task should not be retried.
318
311
  const maybeError = await this.enqueueTask(() => BinaryExtractionTask_1.BinaryExtractionTask.for(tagname, src, dest, {
319
- ...__classPrivateFieldGet(this, _ExifTool_taskOptions, "f").call(this),
312
+ ...this.#taskOptions(),
320
313
  ...opts,
321
314
  }));
322
315
  if (maybeError != null) {
@@ -334,7 +327,7 @@ class ExifTool {
334
327
  */
335
328
  async extractBinaryTagToBuffer(tagname, imageFile, opts) {
336
329
  const result = await this.enqueueTask(() => BinaryToBufferTask_1.BinaryToBufferTask.for(tagname, imageFile, {
337
- ...__classPrivateFieldGet(this, _ExifTool_taskOptions, "f").call(this),
330
+ ...this.#taskOptions(),
338
331
  ...opts,
339
332
  }));
340
333
  if (Buffer.isBuffer(result)) {
@@ -368,7 +361,7 @@ class ExifTool {
368
361
  rewriteAllTags(inputFile, outputFile, opts) {
369
362
  return this.enqueueTask(() => RewriteAllTagsTask_1.RewriteAllTagsTask.for(inputFile, outputFile, {
370
363
  allowMakerNoteRepair: false,
371
- ...__classPrivateFieldGet(this, _ExifTool_taskOptions, "f").call(this),
364
+ ...this.#taskOptions(),
372
365
  ...opts,
373
366
  }));
374
367
  }
@@ -388,6 +381,13 @@ class ExifTool {
388
381
  get ended() {
389
382
  return this.batchCluster.ended;
390
383
  }
384
+ // calling whichPerl through this lazy() means we only do that task once per
385
+ // instance.
386
+ #checkForPerl = (0, Lazy_1.lazy)(async () => {
387
+ if (this.options.checkPerl) {
388
+ await whichPerl(); // < throws if perl is missing
389
+ }
390
+ });
391
391
  /**
392
392
  * Most users will not need to use `enqueueTask` directly. This method
393
393
  * supports submitting custom `BatchCluster` tasks.
@@ -398,7 +398,7 @@ class ExifTool {
398
398
  */
399
399
  enqueueTask(task, retriable = true) {
400
400
  const f = async () => {
401
- await __classPrivateFieldGet(this, _ExifTool_checkForPerl, "f").call(this);
401
+ await this.#checkForPerl();
402
402
  return this.batchCluster.enqueueTask(task());
403
403
  };
404
404
  return retriable ? (0, AsyncRetry_1.retryOnReject)(f, this.options.taskRetries) : f();
@@ -445,7 +445,6 @@ class ExifTool {
445
445
  }
446
446
  }
447
447
  exports.ExifTool = ExifTool;
448
- _ExifTool_taskOptions = new WeakMap(), _ExifTool_checkForPerl = new WeakMap();
449
448
  /**
450
449
  * Use this singleton rather than instantiating new {@link ExifTool} instances
451
450
  * in order to leverage a single running ExifTool process.