exiftool-vendored 23.0.0 → 23.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/ExifTime.js CHANGED
@@ -1,51 +1,78 @@
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;
2
14
  Object.defineProperty(exports, "__esModule", { value: true });
3
15
  exports.ExifTime = void 0;
4
16
  const luxon_1 = require("luxon");
5
17
  const DateTime_1 = require("./DateTime");
6
18
  const String_1 = require("./String");
19
+ const TimeParsing_1 = require("./TimeParsing");
20
+ const Timezones_1 = require("./Timezones");
7
21
  /**
8
22
  * Encodes an ExifTime (which may not have a timezone offset)
9
23
  */
10
24
  class ExifTime {
11
- static fromEXIF(text) {
12
- text = (0, String_1.toS)(text).trim();
13
- if ((0, String_1.blank)(text))
25
+ static fromEXIF(text, defaultZone) {
26
+ const s = (0, String_1.toS)(text).trim();
27
+ if (s.length === 0)
14
28
  return;
15
- for (const fmt of [
16
- "HH:mm:ss.uZZ",
17
- "HH:mm:ssZZ",
18
- "HH:mm:ss.u",
19
- "HH:mm:ss",
20
- ]) {
21
- const result = this.fromDateTime(luxon_1.DateTime.fromFormat(text, fmt), text);
22
- if (result != null)
23
- return result;
29
+ const result = (0, TimeParsing_1.parseDateTime)(text, (0, TimeParsing_1.timeFormats)({ defaultZone }));
30
+ if (result != null) {
31
+ return this.fromDateTime(result.dt, text, result.unsetZone ? undefined : (0, Timezones_1.getZoneName)({ zone: result.dt.zone }), result.inferredZone, result.unsetMilliseconds);
24
32
  }
25
33
  return;
26
34
  }
27
- static fromDateTime(dt, rawValue) {
28
- return (0, DateTime_1.validDateTime)(dt)
29
- ? new ExifTime(dt.hour, dt.minute, dt.second, dt.millisecond, rawValue)
30
- : undefined;
35
+ static fromDateTime(dt, rawValue, zone, inferredZone, unsetMilliseconds) {
36
+ return !(0, DateTime_1.validDateTime)(dt)
37
+ ? undefined
38
+ : new ExifTime(dt.hour, dt.minute, dt.second, unsetMilliseconds ? undefined : dt.millisecond, rawValue, zone, inferredZone);
31
39
  }
32
- constructor(hour, minute, second, millisecond, rawValue) {
40
+ constructor(hour, minute, second, millisecond, rawValue, zoneName, inferredZone) {
41
+ _ExifTime_instances.add(this);
33
42
  this.hour = hour;
34
43
  this.minute = minute;
35
44
  this.second = second;
36
45
  this.millisecond = millisecond;
37
46
  this.rawValue = rawValue;
47
+ this.inferredZone = inferredZone;
48
+ _ExifTime_dt.set(this, void 0);
49
+ _ExifTime_z.set(this, void 0);
50
+ this.zone = (0, Timezones_1.getZoneName)({ zoneName });
38
51
  }
52
+ 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({
55
+ hour: this.hour,
56
+ minute: this.minute,
57
+ second: this.second,
58
+ millisecond: this.millisecond,
59
+ }, {
60
+ zone: this.zone,
61
+ }), "f"));
62
+ }
63
+ /**
64
+ * Alias for `.millisecond`
65
+ */
39
66
  get millis() {
40
67
  return this.millisecond;
41
68
  }
42
- subsec() {
43
- return this.millisecond == null || this.millisecond === 0
44
- ? ""
45
- : "." + (0, String_1.pad3)(this.millisecond);
69
+ get hasZone() {
70
+ return this.zone != null;
46
71
  }
47
72
  toString() {
48
- return (0, String_1.pad2)(this.hour, this.minute, this.second).join(":") + this.subsec();
73
+ 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));
49
76
  }
50
77
  toISOString() {
51
78
  return this.toString();
@@ -53,6 +80,15 @@ class ExifTime {
53
80
  toExifString() {
54
81
  return this.toString();
55
82
  }
83
+ setZone(zone, opts) {
84
+ const dt = (0, TimeParsing_1.setZone)({
85
+ zone,
86
+ src: this.toDateTime(),
87
+ srcHasZone: this.hasZone,
88
+ opts,
89
+ });
90
+ return ExifTime.fromDateTime(dt, this.rawValue, this.zone, this.inferredZone, this.millisecond == null);
91
+ }
56
92
  toJSON() {
57
93
  return {
58
94
  _ctor: "ExifTime",
@@ -61,11 +97,19 @@ class ExifTime {
61
97
  second: this.second,
62
98
  millisecond: this.millisecond,
63
99
  rawValue: this.rawValue,
100
+ zone: this.zone,
101
+ inferredZone: this.inferredZone,
64
102
  };
65
103
  }
66
104
  static fromJSON(json) {
67
- return new ExifTime(json.hour, json.minute, json.second, json.millisecond, json.rawValue);
105
+ return new ExifTime(json.hour, json.minute, json.second, json.millisecond, json.rawValue, json.zone, json.inferredZone);
68
106
  }
69
107
  }
70
108
  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, _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"));
114
+ };
71
115
  //# sourceMappingURL=ExifTime.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ExifTime.js","sourceRoot":"","sources":["../src/ExifTime.ts"],"names":[],"mappings":";;;AAAA,iCAAgC;AAChC,yCAA0C;AAE1C,qCAAiD;AAEjD;;GAEG;AACH,MAAa,QAAQ;IACnB,MAAM,CAAC,QAAQ,CAAC,IAAY;QAC1B,IAAI,GAAG,IAAA,YAAG,EAAC,IAAI,CAAC,CAAC,IAAI,EAAE,CAAA;QACvB,IAAI,IAAA,cAAK,EAAC,IAAI,CAAC;YAAE,OAAM;QACvB,KAAK,MAAM,GAAG,IAAI;YAChB,cAAc;YACd,YAAY;YACZ,YAAY;YACZ,UAAU;SACX,EAAE;YACD,MAAM,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC,gBAAQ,CAAC,UAAU,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,IAAI,CAAC,CAAA;YACtE,IAAI,MAAM,IAAI,IAAI;gBAAE,OAAO,MAAM,CAAA;SAClC;QACD,OAAM;IACR,CAAC;IAED,MAAM,CAAC,YAAY,CAAC,EAAY,EAAE,QAAiB;QACjD,OAAO,IAAA,wBAAa,EAAC,EAAE,CAAC;YACtB,CAAC,CAAC,IAAI,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,WAAW,EAAE,QAAQ,CAAC;YACvE,CAAC,CAAC,SAAS,CAAA;IACf,CAAC;IAED,YACW,IAAY,EACZ,MAAc,EACd,MAAc,EACd,WAAoB,EACpB,QAAiB;QAJjB,SAAI,GAAJ,IAAI,CAAQ;QACZ,WAAM,GAAN,MAAM,CAAQ;QACd,WAAM,GAAN,MAAM,CAAQ;QACd,gBAAW,GAAX,WAAW,CAAS;QACpB,aAAQ,GAAR,QAAQ,CAAS;IACzB,CAAC;IAEJ,IAAI,MAAM;QACR,OAAO,IAAI,CAAC,WAAW,CAAA;IACzB,CAAC;IAEO,MAAM;QACZ,OAAO,IAAI,CAAC,WAAW,IAAI,IAAI,IAAI,IAAI,CAAC,WAAW,KAAK,CAAC;YACvD,CAAC,CAAC,EAAE;YACJ,CAAC,CAAC,GAAG,GAAG,IAAA,aAAI,EAAC,IAAI,CAAC,WAAW,CAAC,CAAA;IAClC,CAAC;IAED,QAAQ;QACN,OAAO,IAAA,aAAI,EAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAA;IAC5E,CAAC;IAED,WAAW;QACT,OAAO,IAAI,CAAC,QAAQ,EAAE,CAAA;IACxB,CAAC;IAED,YAAY;QACV,OAAO,IAAI,CAAC,QAAQ,EAAE,CAAA;IACxB,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;SACxB,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,CACd,CAAA;IACH,CAAC;CACF;AAxED,4BAwEC"}
1
+ {"version":3,"file":"ExifTime.js","sourceRoot":"","sources":["../src/ExifTime.ts"],"names":[],"mappings":"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"}
package/dist/ReadTask.js CHANGED
@@ -69,7 +69,6 @@ exports.DefaultReadTaskOptions = {
69
69
  ...(0, Pick_1.pick)(DefaultExifToolOptions_1.DefaultExifToolOptions, "numericTags", "useMWG", "includeImageDataMD5", "imageHashType", "defaultVideosToUTC", "backfillTimezones", "inferTimezoneFromDatestamps", "geoTz"),
70
70
  };
71
71
  const MaybeDateOrTimeRe = /when|date|time|subsec|creat|modif/i;
72
- const TimeRe = /time/i;
73
72
  class ReadTask extends ExifToolTask_1.ExifToolTask {
74
73
  constructor(sourceFile, args, options) {
75
74
  super(args);
@@ -138,6 +137,7 @@ class ReadTask extends ExifToolTask_1.ExifToolTask {
138
137
  toString() {
139
138
  return "ReadTask" + this.sourceFile + ")";
140
139
  }
140
+ // only exposed for tests
141
141
  parse(data, err) {
142
142
  try {
143
143
  this._raw = JSON.parse(data)[0];
@@ -206,25 +206,33 @@ _ReadTask_extractLatLon = new WeakMap(), _ReadTask_geoTz = new WeakMap(), _ReadT
206
206
  const k = __classPrivateFieldGet(this, _ReadTask_instances, "m", _ReadTask_tagName).call(this, key);
207
207
  const v = __classPrivateFieldGet(this, _ReadTask_instances, "m", _ReadTask_parseTag).call(this, k, value);
208
208
  if (v instanceof ExifDateTime_1.ExifDateTime &&
209
+ // Don't backfill from `stat()` dates, as they may include the system
210
+ // zone:
211
+ !key.startsWith("File") &&
209
212
  v.hasZone &&
213
+ // Don't backfill from inferred zones:
210
214
  v.inferredZone !== true &&
211
- !isUtcTagName(key) &&
212
- // We don't want to use current system offset (from `File*` tags):
213
- !key.startsWith("File")) {
214
- // don't incorrectly infer UTC dates if this is a UTC tag.
215
+ // Don't backfill from UTC tags:
216
+ !isUtcTagName(key)) {
215
217
  datesWithTz.push(v);
216
218
  }
217
219
  // Note that we set `key` (which may include a group prefix):
218
220
  tags[key] = v;
219
221
  }
220
222
  if (this.options.backfillTimezones === true) {
221
- // prefer non-UTC offsets (which may be incorrect):
223
+ // prefer non-UTC offsets (UTC may be incorrect):
222
224
  const candidates = (0, Array_1.sortBy)(datesWithTz, (ea) => { var _a; return -Math.abs((_a = ea.tzoffsetMinutes) !== null && _a !== void 0 ? _a : 0); });
223
225
  for (const [key, value] of Object.entries(tags)) {
224
- // We don't want to backfill dates from `stat`, so skip `File*` tags:
225
- if (value instanceof ExifDateTime_1.ExifDateTime &&
226
- !isUtcTagName(key) &&
227
- !key.startsWith("File")) {
226
+ if (
227
+ // we don't backfill ExifTime zones, as we don't know for sure what
228
+ // day they are for, and if the zone isn't fixed, that would be an
229
+ // issue. (We _could_ set ExifTime zones if we knew the zone was
230
+ // fixed, but that's a later, low-priority TODO).
231
+ value instanceof ExifDateTime_1.ExifDateTime &&
232
+ // Don't backfill dates from `stat`:
233
+ !key.startsWith("File") &&
234
+ // Don't backfill UTC tags:
235
+ !isUtcTagName(key)) {
228
236
  tags[key] = (_a = __classPrivateFieldGet(this, _ReadTask_instances, "m", _ReadTask_maybeSetZone).call(this, value, candidates)) !== null && _a !== void 0 ? _a : value;
229
237
  }
230
238
  }
@@ -312,6 +320,12 @@ _ReadTask_extractLatLon = new WeakMap(), _ReadTask_geoTz = new WeakMap(), _ReadT
312
320
  if (PassthroughTags.indexOf(tagName) >= 0) {
313
321
  return value;
314
322
  }
323
+ if (tagName === "GPSLatitude") {
324
+ return this.lat;
325
+ }
326
+ if (tagName === "GPSLongitude") {
327
+ return this.lon;
328
+ }
315
329
  if (Array.isArray(value)) {
316
330
  return value.map((ea) => __classPrivateFieldGet(this, _ReadTask_instances, "m", _ReadTask_parseTag).call(this, tagName, ea));
317
331
  }
@@ -322,12 +336,6 @@ _ReadTask_extractLatLon = new WeakMap(), _ReadTask_geoTz = new WeakMap(), _ReadT
322
336
  }
323
337
  return result;
324
338
  }
325
- if (tagName === "GPSLatitude") {
326
- return this.lat;
327
- }
328
- if (tagName === "GPSLongitude") {
329
- return this.lon;
330
- }
331
339
  if (typeof value === "string") {
332
340
  const b = BinaryField_1.BinaryField.fromRawValue(value);
333
341
  if (b != null)
@@ -338,13 +346,18 @@ _ReadTask_extractLatLon = new WeakMap(), _ReadTask_geoTz = new WeakMap(), _ReadT
338
346
  !OnlyZerosRE_1.OnlyZerosRE.test(value)) {
339
347
  // if #defaultToUTC() is true, _we actually think zoneless
340
348
  // datestamps are all in UTC_, rather than being in `this.tz` (which
341
- // may be from GPS or other heuristics). See #153.
349
+ // may be from GPS or other heuristics). See issue #153.
342
350
  const tz = isUtcTagName(tagName) || __classPrivateFieldGet(this, _ReadTask_instances, "m", _ReadTask_defaultToUTC).call(this)
343
351
  ? "UTC"
344
352
  : this.options.backfillTimezones
345
353
  ? this.tz
346
354
  : undefined;
347
- 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);
355
+ // Time-only tags have "time" but not "date" in their name:
356
+ const keyIncludesTime = /time/i.test(tagName);
357
+ const keyIncludesDate = /date/i.test(tagName);
358
+ return ((_c = (_b = (_a = (keyIncludesTime || keyIncludesDate
359
+ ? ExifDateTime_1.ExifDateTime.from(value, tz)
360
+ : undefined)) !== null && _a !== void 0 ? _a : (keyIncludesTime ? ExifTime_1.ExifTime.fromEXIF(value) : undefined)) !== null && _b !== void 0 ? _b : (keyIncludesDate ? ExifDate_1.ExifDate.from(value) : undefined)) !== null && _c !== void 0 ? _c : value);
348
361
  }
349
362
  }
350
363
  // 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.d.ts CHANGED
@@ -3,7 +3,7 @@ export declare function isString(o: any): o is string;
3
3
  export declare function blank(s: Maybe<string>): s is undefined;
4
4
  export declare function notBlank(s: Maybe<string>): s is string;
5
5
  export declare function toS(s: Maybe<any>): string;
6
- export declare function leftPad(i: Maybe<any>, minLen: number, padChar: "0" | " "): string;
6
+ export declare function leftPad(i: Maybe<number | string>, minLen: number, padChar: "0" | " "): string;
7
7
  export declare function pad2(...numbers: number[]): string[];
8
8
  export declare function pad3(...numbers: number[]): string[];
9
9
  /**
package/dist/String.js CHANGED
@@ -1,6 +1,7 @@
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 Number_1 = require("./Number");
4
5
  const Times_1 = require("./Times");
5
6
  function isString(o) {
6
7
  return typeof o === "string";
@@ -29,13 +30,14 @@ function toS(s) {
29
30
  exports.toS = toS;
30
31
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
31
32
  function leftPad(i, minLen, padChar) {
32
- if (i == null || isNaN(i))
33
+ if (i == null || ((0, Number_1.isNumber)(i) && isNaN(i)))
33
34
  i = 0;
34
- if (i < 0) {
35
- return "-" + leftPad(-i, minLen - 1, padChar);
35
+ const s = String(i);
36
+ if ((0, Number_1.isNumber)(i) && i < 0 && padChar === "0") {
37
+ // avoid "000-1":
38
+ return "-" + padding(padChar, minLen - s.length) + Math.abs(i);
36
39
  }
37
40
  else {
38
- const s = String(i);
39
41
  return padding(padChar, minLen - s.length) + s;
40
42
  }
41
43
  }
@@ -1 +1 @@
1
- {"version":3,"file":"String.js","sourceRoot":"","sources":["../src/String.ts"],"names":[],"mappings":";;;AACA,mCAA+B;AAE/B,SAAgB,QAAQ,CAAC,CAAM;IAC7B,OAAO,OAAO,CAAC,KAAK,QAAQ,CAAA;AAC9B,CAAC;AAFD,4BAEC;AAED,MAAM,MAAM,GAAG,IAAA,aAAK,EAAC,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,IAAA,aAAK,EAAC,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAA;AAC7D,MAAM,MAAM,GAAG,IAAA,aAAK,EAAC,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,IAAA,aAAK,EAAC,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAA;AAE7D,SAAgB,KAAK,CAAC,CAAgB;IACpC,OAAO,CAAC,IAAI,IAAI,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,CAAA;AACnD,CAAC;AAFD,sBAEC;AAED,SAAgB,QAAQ,CAAC,CAAgB;IACvC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;AAClB,CAAC;AAFD,4BAEC;AAED,SAAS,OAAO,CAAC,OAAkB,EAAE,KAAa;IAChD,IAAI,KAAK,IAAI,CAAC;QAAE,OAAO,EAAE,CAAA;IACzB,oEAAoE;IACpE,OAAO,CAAC,OAAO,KAAK,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAE,CAAA;AAChE,CAAC;AAED,8DAA8D;AAC9D,SAAgB,GAAG,CAAC,CAAa;IAC/B,OAAO,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAA;AACnC,CAAC;AAFD,kBAEC;AAED,8DAA8D;AAC9D,SAAgB,OAAO,CACrB,CAAa,EACb,MAAc,EACd,OAAkB;IAElB,IAAI,CAAC,IAAI,IAAI,IAAI,KAAK,CAAC,CAAC,CAAC;QAAE,CAAC,GAAG,CAAC,CAAA;IAChC,IAAI,CAAC,GAAG,CAAC,EAAE;QACT,OAAO,GAAG,GAAG,OAAO,CAAC,CAAC,CAAC,EAAE,MAAM,GAAG,CAAC,EAAE,OAAO,CAAC,CAAA;KAC9C;SAAM;QACL,MAAM,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAA;QACnB,OAAO,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;KAC/C;AACH,CAAC;AAZD,0BAYC;AAED,SAAgB,IAAI,CAAC,GAAG,OAAiB;IACvC,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC,CAAA;AAC/C,CAAC;AAFD,oBAEC;AAED,SAAgB,IAAI,CAAC,GAAG,OAAiB;IACvC,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC,CAAA;AAC/C,CAAC;AAFD,oBAEC;AAED;;GAEG;AACH,SAAgB,WAAW,CAAC,CAAS,EAAE,MAAc;IACnD,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC;QAC1D,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC;QACxB,CAAC,CAAC,CAAC,CAAA;AACP,CAAC;AAJD,kCAIC;AAED,SAAgB,WAAW,CAAC,CAAS,EAAE,MAAc;IACnD,MAAM,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC,CAAA;IAClB,OAAO,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,CAAA;AAClE,CAAC;AAHD,kCAGC"}
1
+ {"version":3,"file":"String.js","sourceRoot":"","sources":["../src/String.ts"],"names":[],"mappings":"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"}
package/dist/Tags.d.ts CHANGED
@@ -11,7 +11,7 @@ import { Version } from "./Version";
11
11
  export interface ExifToolTags {
12
12
  /** ☆☆☆☆ ✔ Example: "File is empty" */
13
13
  Error?: string;
14
- /** ★★★★ ✔ Example: 12.65 */
14
+ /** ★★★★ ✔ Example: 12.67 */
15
15
  ExifToolVersion?: number;
16
16
  /** ☆☆☆☆ ✔ Example: "Unrecognized IPTC record 0 (ignored)" */
17
17
  Warning?: string;
@@ -35,7 +35,7 @@ export interface FileTags {
35
35
  Directory?: string;
36
36
  /** ★★★★ ✔ Example: "Progressive DCT, Huffman coding" */
37
37
  EncodingProcess?: string;
38
- /** ★★★★ ✔ Example: "2023:09:03 21:51:50-07:00" */
38
+ /** ★★★★ ✔ Example: "2023:09:30 12:42:54-07:00" */
39
39
  FileAccessDate?: ExifDateTime | string;
40
40
  /** ★★★★ ✔ Example: "2023:07:19 21:21:02-07:00" */
41
41
  FileInodeChangeDate?: ExifDateTime | string;
@@ -97,7 +97,7 @@ export interface CompositeTags {
97
97
  DOF?: string;
98
98
  /** ☆☆☆☆ Example: "2006:12:19" */
99
99
  DateCreated?: ExifDateTime | string;
100
- /** ☆☆☆☆ ✔ Example: "2020:03:30 12:03:59-12:03" */
100
+ /** ☆☆☆☆ ✔ Example: "2022:10:25 11:21:56-07:00" */
101
101
  DateTimeCreated?: ExifDateTime | string;
102
102
  /** ☆☆☆☆ ✔ Example: "2017:02:20 18:06:40+00:00" */
103
103
  DateTimeOriginal?: ExifDateTime | string;
@@ -639,7 +639,7 @@ export interface EXIFTags {
639
639
  ImageNumber?: number;
640
640
  /** ☆☆☆☆ ✔ Example: "fa5fdfee65f3a6e05fe7d4692b9112a7" */
641
641
  ImageUniqueID?: string;
642
- /** ☆☆☆☆ ✔ Example: "(Binary data 453632 bytes, use -b option to extract)" */
642
+ /** ☆☆☆☆ ✔ Example: "(Binary data 772608 bytes, use -b option to extract)" */
643
643
  JpgFromRaw?: BinaryField;
644
644
  /** ☆☆☆☆ ✔ Example: 845574 */
645
645
  JpgFromRawLength?: number;
@@ -957,7 +957,7 @@ export interface IPTCTags {
957
957
  SpecialInstructions?: string;
958
958
  /** ☆☆☆☆ ✔ Example: "" */
959
959
  SupplementalCategories?: string;
960
- /** ☆☆☆☆ ✔ Example: "15:46:26+09:00" */
960
+ /** ☆☆☆☆ ✔ Example: "23:47:07+01:00" */
961
961
  TimeCreated?: ExifTime | string;
962
962
  /** ☆☆☆☆ ✔ Example: "" */
963
963
  TimeSent?: string;
@@ -1271,8 +1271,6 @@ export interface MakerNotesTags {
1271
1271
  AEBBracketValue?: number;
1272
1272
  /** ☆☆☆☆ ✔ Example: "0,-,+/Enabled" */
1273
1273
  AEBSequenceAutoCancel?: string;
1274
- /** ☆☆☆☆ ✔ Example: "7 shots" */
1275
- AEBShotCount?: string;
1276
1274
  /** ☆☆☆☆ ✔ Example: 0.5 */
1277
1275
  AEBXv?: number;
1278
1276
  /** ☆☆☆☆ ✔ Example: "AE Bracketing Disabled" */
@@ -1565,8 +1563,6 @@ export interface MakerNotesTags {
1565
1563
  AutoBracketingSet?: string;
1566
1564
  /** ☆☆☆☆ ✔ Example: "On" */
1567
1565
  AutoDistortionControl?: string;
1568
- /** ☆☆☆☆ ✔ Example: "400%" */
1569
- AutoDynamicRange?: string;
1570
1566
  /** ★★☆☆ ✔ Example: "On" */
1571
1567
  AutoExposureBracketing?: string;
1572
1568
  /** ☆☆☆☆ ✔ Example: "Off" */
@@ -2625,6 +2621,8 @@ export interface MakerNotesTags {
2625
2621
  ImageAuthentication?: string;
2626
2622
  /** ☆☆☆☆ ✔ Example: "0 0 8256 5504" */
2627
2623
  ImageBoundary?: string;
2624
+ /** ☆☆☆☆ ✔ Example: "Unknown (5)" */
2625
+ ImageCaptureType?: string;
2628
2626
  /** ☆☆☆☆ ✔ Example: 9927271 */
2629
2627
  ImageDataSize?: number;
2630
2628
  /** ☆☆☆☆ ✔ Example: 1 */
@@ -2715,7 +2713,7 @@ export interface MakerNotesTags {
2715
2713
  Intervals?: number;
2716
2714
  /** ☆☆☆☆ ✔ Example: "n/a (Movie)" */
2717
2715
  JPEGQuality?: string;
2718
- /** ☆☆☆☆ ✔ Example: "Optimal Quality" */
2716
+ /** ☆☆☆☆ ✔ Example: "Size Priority" */
2719
2717
  JPGCompression?: string;
2720
2718
  /** ☆☆☆☆ ✔ Example: "10 MP" */
2721
2719
  JpgRecordedPixels?: string;
@@ -3037,8 +3035,8 @@ export interface MakerNotesTags {
3037
3035
  MonochromeToning?: string;
3038
3036
  /** ☆☆☆☆ ✔ Example: 0 */
3039
3037
  MonochromeVignetting?: number;
3040
- /** ☆☆☆☆ Example: "03:15" */
3041
- MonthDayCreated?: ExifDate | string;
3038
+ /** ☆☆☆☆ Example: "12:19" */
3039
+ MonthDayCreated?: string;
3042
3040
  /** ☆☆☆☆ Example: "Old Crescent" */
3043
3041
  MoonPhase?: string;
3044
3042
  /** ☆☆☆☆ Example: 100 */
@@ -3117,7 +3115,7 @@ export interface MakerNotesTags {
3117
3115
  NDFilter?: string;
3118
3116
  /** ☆☆☆☆ ✔ Example: "Uncompressed (reduced to 12 bit)" */
3119
3117
  NEFCompression?: string;
3120
- /** ☆☆☆☆ ✔ Example: "(Binary data 46 bytes, use -b option to extract)" */
3118
+ /** ☆☆☆☆ ✔ Example: "(Binary data 624 bytes, use -b option to extract)" */
3121
3119
  NEFLinearizationTable?: BinaryField | string;
3122
3120
  /** ☆☆☆☆ Example: "Off (0 2)" */
3123
3121
  NeutralDensityFilter?: string;
@@ -3349,6 +3347,8 @@ export interface MakerNotesTags {
3349
3347
  RawDataByteOrder?: string;
3350
3348
  /** ☆☆☆☆ ✔ Example: "Unchanged" */
3351
3349
  RawDataCFAPattern?: string;
3350
+ /** ☆☆☆☆ ✔ Example: 0 */
3351
+ RawDataLength?: number;
3352
3352
  /** ☆☆☆☆ ✔ Example: "Off; 0; 0; 0" */
3353
3353
  RawDevArtFilter?: string;
3354
3354
  /** ☆☆☆☆ ✔ Example: "Off" */
@@ -4031,7 +4031,7 @@ export interface XMPTags {
4031
4031
  CameraProfileDigest?: string;
4032
4032
  /** ☆☆☆☆ Example: "Rear" */
4033
4033
  CameraUnit?: string;
4034
- /** ☆☆☆☆ ✔ Example: [{"DepthMap":{"ConfidenceURI":"android/confidencemap","Deical"}] */
4034
+ /** ☆☆☆☆ ✔ Example: [{"Camera":{"DepthMap":{"ConfidenceURI":"android/confidencal"}}] */
4035
4035
  Cameras?: Struct[];
4036
4036
  /** ☆☆☆☆ ✔ Example: "Photo" */
4037
4037
  CaptureMode?: string;
@@ -4067,7 +4067,7 @@ export interface XMPTags {
4067
4067
  ColorSpace?: string;
4068
4068
  /** ☆☆☆☆ ✔ Example: "" */
4069
4069
  Colorlabels?: string;
4070
- /** ☆☆☆☆ ✔ Example: {"Directory":[{"DataURI":"primary_image","Length":0,"Mimepeg"}]} */
4070
+ /** ☆☆☆☆ ✔ Example: {"Directory":[{"Item":{"DataURI":"primary_image","Length"…eg"}}]} */
4071
4071
  Container?: Struct;
4072
4072
  /** ☆☆☆☆ ✔ Example: false */
4073
4073
  ConvertToGrayscale?: boolean;
@@ -4193,7 +4193,7 @@ export interface XMPTags {
4193
4193
  HasSettings?: boolean;
4194
4194
  /** ☆☆☆☆ ✔ Example: ["点像F11"] */
4195
4195
  HierarchicalSubject?: string[];
4196
- /** ☆☆☆☆ ✔ Example: [{"Action":"converted","Parameters":"from image/x-canon-c…C+2"}}] */
4196
+ /** ☆☆☆☆ ✔ Example: [{"Action":"converted","Parameters":"from image/x-canon-c…2:00"}] */
4197
4197
  History?: ResourceEvent[] | ResourceEvent | string;
4198
4198
  /** ☆☆☆☆ ✔ Example: 0 */
4199
4199
  HueAdjustmentAqua?: number;
@@ -4365,7 +4365,7 @@ export interface XMPTags {
4365
4365
  PreservedFileName?: string;
4366
4366
  /** ☆☆☆☆ ✔ Example: 11 */
4367
4367
  ProcessVersion?: number;
4368
- /** ☆☆☆☆ ✔ Example: [{"CameraIndices":[0],"Type":"DepthPhoto"}] */
4368
+ /** ☆☆☆☆ ✔ Example: [{"Profile":{"CameraIndices":[0],"Type":"DepthPhoto"}}] */
4369
4369
  Profiles?: Struct[];
4370
4370
  /** ☆☆☆☆ ✔ Example: "equirectangular" */
4371
4371
  ProjectionType?: string;
@@ -4506,8 +4506,8 @@ export interface XMPTags {
4506
4506
  * devices (like iPhones) An example value, JSON stringified, follows the
4507
4507
  * popularity ratings.
4508
4508
  *
4509
- * Autogenerated by "yarn mktags" by ExifTool 12.65 on Sun Sep 03 2023.
4510
- * 3079 unique tags were found in 10090 photo and video files.
4509
+ * Autogenerated by "yarn mktags" by ExifTool 12.67 on Sat Sep 30 2023.
4510
+ * 3081 unique tags were found in 10090 photo and video files.
4511
4511
  */
4512
4512
  export interface Tags extends APP12Tags, APP14Tags, APP1Tags, APP4Tags, APP5Tags, APP6Tags, ApplicationRecordTags, CompositeTags, EXIFTags, ExifToolTags, FileTags, FlashPixTags, ICCProfileTags, IPTCTags, ImageDataHashTag, JFIFTags, MPFTags, MakerNotesTags, MetaTags, PanasonicRawTags, PhotoshopTags, PrintIMTags, QuickTimeTags, RAFTags, RIFFTags, XMPTags {
4513
4513
  errors?: string[];
@@ -0,0 +1,29 @@
1
+ import { DateTime, Zone, ZoneOptions } from "luxon";
2
+ import { Maybe } from "./Maybe";
3
+ import { TzSrc } from "./Timezones";
4
+ export interface TimeFormatMeta {
5
+ fmt: string;
6
+ zone?: Maybe<string | Zone>;
7
+ unsetMilliseconds?: boolean;
8
+ inferredZone?: boolean;
9
+ extractedZone?: Maybe<TzSrc>;
10
+ }
11
+ export declare function timeFormats(args: {
12
+ formatPrefixes?: Maybe<string[]>;
13
+ defaultZone: Maybe<string>;
14
+ }): Iterable<TimeFormatMeta>;
15
+ export interface TimeParseResult {
16
+ dt: DateTime;
17
+ fmt: string;
18
+ unsetZone: boolean;
19
+ inferredZone: boolean;
20
+ input: string;
21
+ unsetMilliseconds: boolean;
22
+ }
23
+ export declare function parseDateTime(text: string, fmts: Iterable<TimeFormatMeta>): Maybe<TimeParseResult>;
24
+ export declare function setZone(args: {
25
+ zone: string | Zone;
26
+ src: DateTime;
27
+ srcHasZone: boolean;
28
+ opts?: Maybe<ZoneOptions>;
29
+ }): DateTime;
@@ -0,0 +1,74 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.setZone = exports.parseDateTime = exports.timeFormats = void 0;
4
+ const luxon_1 = require("luxon");
5
+ const String_1 = require("./String");
6
+ const Timezones_1 = require("./Timezones");
7
+ const TimeFmts = [
8
+ // I haven't seen times without padded hours, minutes, or seconds in the
9
+ // wild (yet), so those aren't handled here:
10
+ { fmt: "HH:mm:ss.u", unsetMilliseconds: false },
11
+ { fmt: "HH:mm:ss", unsetMilliseconds: true },
12
+ { fmt: "HH:mm", unsetMilliseconds: true },
13
+ ];
14
+ function* timeFormats(args) {
15
+ var _a;
16
+ for (const prefix of (_a = args.formatPrefixes) !== null && _a !== void 0 ? _a : [""]) {
17
+ for (const timeFmt of TimeFmts) {
18
+ yield {
19
+ fmt: prefix + timeFmt.fmt,
20
+ zone: args.defaultZone,
21
+ unsetMilliseconds: timeFmt.unsetMilliseconds,
22
+ inferredZone: true,
23
+ };
24
+ }
25
+ }
26
+ }
27
+ exports.timeFormats = timeFormats;
28
+ function parseDateTime(text, fmts) {
29
+ var _a, _b, _c, _d;
30
+ const s = (0, String_1.toS)(text).trim();
31
+ if (s.length === 0)
32
+ return;
33
+ const extractedZone = (0, Timezones_1.extractZone)(s);
34
+ const input = (_a = extractedZone === null || extractedZone === void 0 ? void 0 : extractedZone.leftovers) !== null && _a !== void 0 ? _a : s;
35
+ for (const ea of fmts) {
36
+ const dt = luxon_1.DateTime.fromFormat(input, ea.fmt, {
37
+ setZone: true,
38
+ zone: (_c = (_b = extractedZone === null || extractedZone === void 0 ? void 0 : extractedZone.tz) !== null && _b !== void 0 ? _b : ea.zone) !== null && _c !== void 0 ? _c : Timezones_1.UnsetZone,
39
+ });
40
+ if (dt == null || !dt.isValid)
41
+ continue;
42
+ const unsetZone = (extractedZone === null || extractedZone === void 0 ? void 0 : extractedZone.tz) == null && (dt.zone == null || dt.zone === Timezones_1.UnsetZone);
43
+ let inferredZone = (extractedZone === null || extractedZone === void 0 ? void 0 : extractedZone.tz) != null || unsetZone ? false : ea.inferredZone;
44
+ if (inferredZone == null) {
45
+ // this is pretty miserable, but luxon doesn't expose _how_ it got
46
+ // the zone, so we have to resort to this hack to see if the zone
47
+ // is inferred:
48
+ const dt2 = luxon_1.DateTime.fromFormat(input, ea.fmt, { setZone: true });
49
+ inferredZone = dt.zone !== dt2.zone;
50
+ }
51
+ return {
52
+ dt,
53
+ fmt: ea.fmt,
54
+ unsetZone,
55
+ inferredZone,
56
+ input,
57
+ unsetMilliseconds: (_d = ea.unsetMilliseconds) !== null && _d !== void 0 ? _d : false,
58
+ };
59
+ }
60
+ return;
61
+ }
62
+ exports.parseDateTime = parseDateTime;
63
+ function setZone(args) {
64
+ // This is a bit tricky... We want to keep the local time and just _say_ it
65
+ // was in the zone of the image **if we don't already have a zone.**
66
+ // If we _do_ have a zone, assume it was already converted by ExifTool into
67
+ // (probably the system) timezone, which means _don't_ `keepLocalTime`.
68
+ return args.src.setZone(args.zone, {
69
+ keepLocalTime: !args.srcHasZone,
70
+ ...args.opts,
71
+ });
72
+ }
73
+ exports.setZone = setZone;
74
+ //# sourceMappingURL=TimeParsing.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TimeParsing.js","sourceRoot":"","sources":["../src/TimeParsing.ts"],"names":[],"mappings":"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"}