exiftool-vendored 23.0.0 → 23.2.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 (52) hide show
  1. package/CHANGELOG.md +31 -2
  2. package/dist/AsyncRetry.js +0 -1
  3. package/dist/AsyncRetry.js.map +1 -1
  4. package/dist/CapturedAtTagNames.d.ts +1 -1
  5. package/dist/CapturedAtTagNames.js +4 -2
  6. package/dist/CapturedAtTagNames.js.map +1 -1
  7. package/dist/DateTime.d.ts +2 -1
  8. package/dist/DateTime.js +3 -2
  9. package/dist/DateTime.js.map +1 -1
  10. package/dist/DefaultCreateDateTagNames.d.ts +4 -0
  11. package/dist/DefaultCreateDateTagNames.js +9 -0
  12. package/dist/DefaultCreateDateTagNames.js.map +1 -0
  13. package/dist/DefaultExifToolOptions.js +2 -0
  14. package/dist/DefaultExifToolOptions.js.map +1 -1
  15. package/dist/ExifDateTime.d.ts +6 -4
  16. package/dist/ExifDateTime.js +63 -130
  17. package/dist/ExifDateTime.js.map +1 -1
  18. package/dist/ExifTime.d.ts +15 -5
  19. package/dist/ExifTime.js +67 -23
  20. package/dist/ExifTime.js.map +1 -1
  21. package/dist/ExifTool.d.ts +17 -10
  22. package/dist/ExifTool.js +19 -11
  23. package/dist/ExifTool.js.map +1 -1
  24. package/dist/ExifToolOptions.d.ts +49 -26
  25. package/dist/ExifToolOptions.js.map +1 -1
  26. package/dist/Maybe.d.ts +1 -0
  27. package/dist/Maybe.js +5 -1
  28. package/dist/Maybe.js.map +1 -1
  29. package/dist/ReadTask.d.ts +1 -0
  30. package/dist/ReadTask.js +28 -74
  31. package/dist/ReadTask.js.map +1 -1
  32. package/dist/ResourceEvent.d.ts +1 -0
  33. package/dist/ResourceEvent.js +13 -0
  34. package/dist/ResourceEvent.js.map +1 -1
  35. package/dist/String.d.ts +1 -1
  36. package/dist/String.js +6 -4
  37. package/dist/String.js.map +1 -1
  38. package/dist/Struct.js +2 -1
  39. package/dist/Struct.js.map +1 -1
  40. package/dist/Tags.d.ts +19 -19
  41. package/dist/TimeParsing.d.ts +29 -0
  42. package/dist/TimeParsing.js +75 -0
  43. package/dist/TimeParsing.js.map +1 -0
  44. package/dist/Timezones.d.ts +33 -23
  45. package/dist/Timezones.js +271 -86
  46. package/dist/Timezones.js.map +1 -1
  47. package/dist/Version.d.ts +1 -0
  48. package/dist/Version.js +6 -0
  49. package/dist/Version.js.map +1 -1
  50. package/dist/WriteTask.js +0 -2
  51. package/dist/WriteTask.js.map +1 -1
  52. package/package.json +14 -12
package/dist/ReadTask.js CHANGED
@@ -27,7 +27,7 @@ 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_isVideo, _ReadTask_defaultToUTC, _ReadTask_tagName, _ReadTask_maybeSetZone, _ReadTask_parseTags, _ReadTask_extractLatLon, _ReadTask_latlon, _ReadTask_geoTz, _ReadTask_extractTzOffset, _ReadTask_parseTag;
30
+ var _ReadTask_instances, _ReadTask_isVideo, _ReadTask_defaultToUTC, _ReadTask_tagName, _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");
@@ -41,7 +41,6 @@ const ExifTime_1 = require("./ExifTime");
41
41
  const ExifToolOptions_1 = require("./ExifToolOptions");
42
42
  const ExifToolTask_1 = require("./ExifToolTask");
43
43
  const FilenameCharsetArgs_1 = require("./FilenameCharsetArgs");
44
- const FirstDateTime_1 = require("./FirstDateTime");
45
44
  const Lazy_1 = require("./Lazy");
46
45
  const Maybe_1 = require("./Maybe");
47
46
  const Number_1 = require("./Number");
@@ -66,10 +65,9 @@ function nullish(s) {
66
65
  exports.nullish = nullish;
67
66
  exports.DefaultReadTaskOptions = {
68
67
  optionalArgs: [],
69
- ...(0, Pick_1.pick)(DefaultExifToolOptions_1.DefaultExifToolOptions, "numericTags", "useMWG", "includeImageDataMD5", "imageHashType", "defaultVideosToUTC", "backfillTimezones", "inferTimezoneFromDatestamps", "geoTz"),
68
+ ...(0, Pick_1.pick)(DefaultExifToolOptions_1.DefaultExifToolOptions, "numericTags", "useMWG", "includeImageDataMD5", "imageHashType", "defaultVideosToUTC", "backfillTimezones", "inferTimezoneFromDatestamps", "inferTimezoneFromDatestampTags", "geoTz"),
70
69
  };
71
70
  const MaybeDateOrTimeRe = /when|date|time|subsec|creat|modif/i;
72
- const TimeRe = /time/i;
73
71
  class ReadTask extends ExifToolTask_1.ExifToolTask {
74
72
  constructor(sourceFile, args, options) {
75
73
  super(args);
@@ -138,6 +136,7 @@ class ReadTask extends ExifToolTask_1.ExifToolTask {
138
136
  toString() {
139
137
  return "ReadTask" + this.sourceFile + ")";
140
138
  }
139
+ // only exposed for tests
141
140
  parse(data, err) {
142
141
  try {
143
142
  this._raw = JSON.parse(data)[0];
@@ -180,55 +179,19 @@ _ReadTask_extractLatLon = new WeakMap(), _ReadTask_geoTz = new WeakMap(), _ReadT
180
179
  }, _ReadTask_tagName = function _ReadTask_tagName(k) {
181
180
  var _a;
182
181
  return this.degroup ? (_a = k.split(":")[1]) !== null && _a !== void 0 ? _a : k : k;
183
- }, _ReadTask_maybeSetZone = function _ReadTask_maybeSetZone(edt, candidates) {
184
- if (!edt.inferredZone && edt.hasZone)
185
- return edt;
186
- if (this.tz != null)
187
- return edt.setZone(this.tz);
188
- for (const src of candidates) {
189
- const result = edt.maybeMatchZone(src);
190
- if (result != null) {
191
- return result;
192
- }
193
- }
194
- return;
195
182
  }, _ReadTask_parseTags = function _ReadTask_parseTags() {
196
- var _a;
197
183
  __classPrivateFieldGet(this, _ReadTask_extractLatLon, "f").call(this);
198
184
  __classPrivateFieldGet(this, _ReadTask_instances, "m", _ReadTask_extractTzOffset).call(this);
199
185
  (0, Maybe_1.map)(this.tz, (ea) => (this.tags.tz = ea));
200
186
  (0, Maybe_1.map)(this.tzSource, (ea) => (this.tags.tzSource = ea));
201
187
  // avoid casting `this.tags as any` everywhere:
202
188
  const tags = this.tags;
203
- const datesWithTz = [];
204
- // two passes: one to parse dates, and the next to possibly set timezones.
205
189
  for (const [key, value] of Object.entries(this._raw)) {
206
190
  const k = __classPrivateFieldGet(this, _ReadTask_instances, "m", _ReadTask_tagName).call(this, key);
207
191
  const v = __classPrivateFieldGet(this, _ReadTask_instances, "m", _ReadTask_parseTag).call(this, k, value);
208
- if (v instanceof ExifDateTime_1.ExifDateTime &&
209
- v.hasZone &&
210
- 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
- datesWithTz.push(v);
216
- }
217
192
  // Note that we set `key` (which may include a group prefix):
218
193
  tags[key] = v;
219
194
  }
220
- if (this.options.backfillTimezones === true) {
221
- // prefer non-UTC offsets (which may be incorrect):
222
- const candidates = (0, Array_1.sortBy)(datesWithTz, (ea) => { var _a; return -Math.abs((_a = ea.tzoffsetMinutes) !== null && _a !== void 0 ? _a : 0); });
223
- 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")) {
228
- tags[key] = (_a = __classPrivateFieldGet(this, _ReadTask_instances, "m", _ReadTask_maybeSetZone).call(this, value, candidates)) !== null && _a !== void 0 ? _a : value;
229
- }
230
- }
231
- }
232
195
  if (this.errors.length > 0)
233
196
  this.tags.errors = this.errors;
234
197
  return tags;
@@ -260,36 +223,12 @@ _ReadTask_extractLatLon = new WeakMap(), _ReadTask_geoTz = new WeakMap(), _ReadT
260
223
  (0, Maybe_1.map)((0, Maybe_1.firstDefinedThunk)([
261
224
  // If there is an explicit TimeZone tag (which is rare), defer to that
262
225
  // before defaulting to UTC for videos:
263
- () => {
264
- const tz = (0, Timezones_1.extractTzOffsetFromTags)(this._rawDegrouped, this.options);
265
- // If this tz offset matches the GPS zone, use the GPS zone name (like "America/Los_Angeles") instead of the offset.
266
- const z = (0, Timezones_1.normalizeZone)(tz === null || tz === void 0 ? void 0 : tz.tz);
267
- if (tz != null && z != null) {
268
- const geoTz = __classPrivateFieldGet(this, _ReadTask_geoTz, "f").call(this);
269
- if (geoTz != null) {
270
- const edt = (0, FirstDateTime_1.firstDateTime)(this._rawDegrouped);
271
- if (edt != null) {
272
- const ts = edt.toMillis();
273
- const zOffset = z.offset(ts);
274
- const geoTzOffset = geoTz.offset(ts);
275
- if (zOffset === geoTzOffset) {
276
- return {
277
- tz: geoTz.name,
278
- src: tz.src + " & GPSLatitude/GPSLongitude",
279
- };
280
- }
281
- }
282
- }
283
- }
284
- // nope, no GPS, just use the minutes-offset zone format:
285
- return tz;
286
- },
287
- // If lat/lon is valid, use the tzlookup library, as it will be a proper
288
- // Zone name (like "America/New_York"), rather than just an hour offset.
226
+ () => (0, Timezones_1.extractTzOffsetFromTags)(this._rawDegrouped),
289
227
  () => (0, Maybe_1.map)(__classPrivateFieldGet(this, _ReadTask_geoTz, "f").call(this), (ea) => ({
290
228
  tz: ea.name,
291
229
  src: "GPSLatitude/GPSLongitude",
292
230
  })),
231
+ () => (0, Timezones_1.extractTzOffsetFromDatestamps)(this._rawDegrouped, this.options),
293
232
  // See https://github.com/photostructure/exiftool-vendored.js/issues/113
294
233
  // and https://github.com/photostructure/exiftool-vendored.js/issues/156
295
234
  // Videos are frequently encoded in UTC, but don't include the
@@ -312,6 +251,12 @@ _ReadTask_extractLatLon = new WeakMap(), _ReadTask_geoTz = new WeakMap(), _ReadT
312
251
  if (PassthroughTags.indexOf(tagName) >= 0) {
313
252
  return value;
314
253
  }
254
+ if (tagName === "GPSLatitude") {
255
+ return this.lat;
256
+ }
257
+ if (tagName === "GPSLongitude") {
258
+ return this.lon;
259
+ }
315
260
  if (Array.isArray(value)) {
316
261
  return value.map((ea) => __classPrivateFieldGet(this, _ReadTask_instances, "m", _ReadTask_parseTag).call(this, tagName, ea));
317
262
  }
@@ -322,12 +267,6 @@ _ReadTask_extractLatLon = new WeakMap(), _ReadTask_geoTz = new WeakMap(), _ReadT
322
267
  }
323
268
  return result;
324
269
  }
325
- if (tagName === "GPSLatitude") {
326
- return this.lat;
327
- }
328
- if (tagName === "GPSLongitude") {
329
- return this.lon;
330
- }
331
270
  if (typeof value === "string") {
332
271
  const b = BinaryField_1.BinaryField.fromRawValue(value);
333
272
  if (b != null)
@@ -338,13 +277,28 @@ _ReadTask_extractLatLon = new WeakMap(), _ReadTask_geoTz = new WeakMap(), _ReadT
338
277
  !OnlyZerosRE_1.OnlyZerosRE.test(value)) {
339
278
  // if #defaultToUTC() is true, _we actually think zoneless
340
279
  // datestamps are all in UTC_, rather than being in `this.tz` (which
341
- // may be from GPS or other heuristics). See #153.
280
+ // may be from GPS or other heuristics). See issue #153.
342
281
  const tz = isUtcTagName(tagName) || __classPrivateFieldGet(this, _ReadTask_instances, "m", _ReadTask_defaultToUTC).call(this)
343
282
  ? "UTC"
344
283
  : this.options.backfillTimezones
345
284
  ? this.tz
346
285
  : 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);
286
+ // Time-only tags have "time" but not "date" in their name:
287
+ const keyIncludesTime = /time/i.test(tagName);
288
+ const keyIncludesDate = /date/i.test(tagName);
289
+ const result = (_c = (_b = (_a = (keyIncludesTime || keyIncludesDate
290
+ ? ExifDateTime_1.ExifDateTime.from(value, tz)
291
+ : 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;
292
+ if (this.options.backfillTimezones &&
293
+ result != null &&
294
+ this.tz != null &&
295
+ result instanceof ExifDateTime_1.ExifDateTime &&
296
+ __classPrivateFieldGet(this, _ReadTask_instances, "m", _ReadTask_defaultToUTC).call(this) &&
297
+ !isUtcTagName(tagName) &&
298
+ true === result.inferredZone) {
299
+ return result.setZone(this.tz);
300
+ }
301
+ return result;
348
302
  }
349
303
  }
350
304
  // 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":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,iDAAsC;AACtC,4CAA6B;AAC7B,mCAAqC;AACrC,+CAA2C;AAC3C,qEAAiE;AACjE,yCAAqC;AACrC,iDAA6C;AAC7C,yCAAqC;AACrC,uDAA2D;AAC3D,iDAA6C;AAC7C,+DAA+D;AAC/D,mDAA+C;AAC/C,iCAA6B;AAC7B,mCAAuD;AACvD,qCAAkC;AAClC,+CAA2C;AAC3C,iCAA6B;AAC7B,qCAA+C;AAE/C,2CAIoB;AAEpB;;GAEG;AACH,MAAM,eAAe,GAAG;IACtB,iBAAiB;IACjB,eAAe;IACf,WAAW;IACX,UAAU;IACV,mBAAmB;CACpB,CAAA;AAED,MAAM,OAAO,GAAG,CAAC,OAAO,EAAE,MAAM,EAAE,WAAW,CAAC,CAAA;AAE9C,SAAgB,OAAO,CAAC,CAAqB;IAC3C,OAAO,CAAC,IAAI,IAAI,IAAI,CAAC,IAAA,iBAAQ,EAAC,CAAC,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAA;AACjE,CAAC;AAFD,0BAEC;AAEY,QAAA,sBAAsB,GAAG;IACpC,YAAY,EAAE,EAAc;IAC5B,GAAG,IAAA,WAAI,EACL,+CAAsB,EACtB,aAAa,EACb,QAAQ,EACR,qBAAqB,EACrB,eAAe,EACf,oBAAoB,EACpB,mBAAmB,EACnB,6BAA6B,EAC7B,OAAO,CACR;CACO,CAAA;AAIV,MAAM,iBAAiB,GAAG,oCAAoC,CAAA;AAC9D,MAAM,MAAM,GAAG,OAAO,CAAA;AAEtB,MAAa,QAAS,SAAQ,2BAAkB;IAW9C,YACW,UAAkB,EACT,IAAc,EACvB,OAAwB;QAEjC,KAAK,CAAC,IAAI,CAAC,CAAA;;QAJF,eAAU,GAAV,UAAU,CAAQ;QACT,SAAI,GAAJ,IAAI,CAAU;QACvB,YAAO,GAAP,OAAO,CAAiB;QAZ3B,SAAI,GAAQ,EAAE,CAAA;QACd,kBAAa,GAAQ,EAAE,CAAA;QACd,SAAI,GAAS,EAAE,CAAA;QAGxB,kBAAa,GAAG,KAAK,CAAA;QAgK7B,kCAAiB,IAAA,WAAI,EAAC,GAAG,EAAE;;YACzB,MAAA,IAAI,CAAC,GAAG,oCAAR,IAAI,CAAC,GAAG,GAAK,uBAAA,IAAI,6CAAQ,MAAZ,IAAI,EAAS,aAAa,EAAE,GAAG,EAAE,EAAE,CAAC,EAAA;YACjD,MAAA,IAAI,CAAC,GAAG,oCAAR,IAAI,CAAC,GAAG,GAAK,uBAAA,IAAI,6CAAQ,MAAZ,IAAI,EAAS,cAAc,EAAE,GAAG,EAAE,GAAG,CAAC,EAAA;YACnD,IAAI,IAAI,CAAC,aAAa,EAAE;gBACtB,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG,SAAS,CAAA;aAChC;QACH,CAAC,CAAC,EAAA;QA6BF,0BAAS,IAAA,WAAI,EAAC,GAAG,EAAE;YACjB,uBAAA,IAAI,+BAAe,MAAnB,IAAI,CAAiB,CAAA;YACrB,IAAI,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,GAAG,IAAI,IAAI,IAAI,IAAI,CAAC,GAAG,IAAI,IAAI;gBAAE,OAAM;YACtE,IAAI;gBACF,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,CAAA;gBACpD,OAAO,IAAA,yBAAa,EAAC,KAAK,CAAC,CAAA;aAC5B;YAAC,MAAM;gBACN,IAAI,CAAC,aAAa,GAAG,IAAI,CAAA;gBACzB,OAAM;aACP;QACH,CAAC,CAAC,EAAA;QAnMA,gGAAgG;QAChG,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAA;QACvC,IAAI,CAAC,IAAI,GAAG,EAAE,UAAU,EAAE,UAAU,EAAU,CAAA;QAC9C,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAA;IAChC,CAAC;IAED,MAAM,CAAC,GAAG,CAAC,QAAgB,EAAE,OAAiC;QAC5D,MAAM,IAAI,GAAoB,IAAA,yCAAuB,EAAC;YACpD,GAAG,8BAAsB;YACzB,GAAG,OAAO;SACX,CAAC,CAAA;QACF,MAAM,UAAU,GAAG,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAA;QAC1C,MAAM,IAAI,GAAG;YACX,GAAG,6CAAuB;YAC1B,OAAO;YACP,SAAS;YACT,GAAG,IAAA,WAAG,EAAC,IAAI,CAAC,YAAY,CAAC;SAC1B,CAAA;QACD,IAAI,IAAI,CAAC,MAAM,EAAE;YACf,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,CAAA;SACzB;QACD,IAAI,IAAI,CAAC,aAAa,IAAI,IAAI,IAAI,IAAI,CAAC,aAAa,KAAK,KAAK,EAAE;YAC9D,yEAAyE;YACzE,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,2BAA2B,CAAC,CAAA;YAC9C,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,gBAAgB,GAAG,IAAI,CAAC,aAAa,CAAC,CAAA;SACzD;QACD,uEAAuE;QACvE,oBAAoB;QACpB,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,GAAG,GAAG,EAAE,GAAG,GAAG,CAAC,CAAC,CAAA;QAC1D,qEAAqE;QAErE,+DAA+D;QAC/D,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,UAAU,CAAC,CAAA;QAE7B,OAAO,IAAI,QAAQ,CAAC,UAAU,EAAE,IAAI,EAAE,IAAI,CAAC,CAAA;IAC7C,CAAC;IAEQ,QAAQ;QACf,OAAO,UAAU,GAAG,IAAI,CAAC,UAAU,GAAG,GAAG,CAAA;IAC3C,CAAC;IAED,KAAK,CAAC,IAAY,EAAE,GAAW;QAC7B,IAAI;YACF,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAA;SAChC;QAAC,OAAO,SAAS,EAAE;YAClB,iCAAiC;YACjC,IAAA,sBAAM,GAAE,CAAC,IAAI,CAAC,mCAAmC,EAAE;gBACjD,IAAI;gBACJ,GAAG;gBACH,SAAS;aACV,CAAC,CAAA;YACF,MAAM,GAAG,aAAH,GAAG,cAAH,GAAG,GAAI,SAAS,CAAA;SACvB;QACD,8FAA8F;QAC9F,MAAM,UAAU,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;QACtD,wDAAwD;QACxD,IAAI,UAAU,KAAK,IAAI,CAAC,UAAU,EAAE;YAClC,gFAAgF;YAChF,MAAM,IAAI,KAAK,CACb,4CAA4C,IAAI,CAAC,IAAI,CAAC,UAAU,aAAa,IAAI,CAAC,UAAU,EAAE,CAC/F,CAAA;SACF;QACD,IAAI,IAAI,CAAC,OAAO,EAAE;YAChB,IAAI,CAAC,aAAa,GAAG,EAAE,CAAA;YACvB,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;gBACpD,MAAM,CAAC,GAAG,uBAAA,IAAI,8CAAS,MAAb,IAAI,EAAU,GAAG,CAAC,CAAA;gBAC5B,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,GAAG,KAAK,CAAA;aAC9B;SACF;aAAM;YACL,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,IAAI,CAAA;SAC/B;QACD,OAAO,uBAAA,IAAI,gDAAW,MAAf,IAAI,CAAa,CAAA;IAC1B,CAAC;CAqPF;AA9UD,4BA8UC;;;IAlPG,OAAO,MAAM,CAAC,MAAA,IAAI,CAAC,aAAa,0CAAE,QAAQ,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAA;AAClE,CAAC;IAGC,OAAO,uBAAA,IAAI,8CAAS,MAAb,IAAI,CAAW,IAAI,IAAI,CAAC,OAAO,CAAC,kBAAkB,CAAA;AAC3D,CAAC,iDAEQ,CAAS;;IAChB,OAAO,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,MAAA,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,mCAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;AAChD,CAAC,2DAGC,GAAiB,EACjB,UAA0B;IAE1B,IAAI,CAAC,GAAG,CAAC,YAAY,IAAI,GAAG,CAAC,OAAO;QAAE,OAAO,GAAG,CAAA;IAChD,IAAI,IAAI,CAAC,EAAE,IAAI,IAAI;QAAE,OAAO,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;IAChD,KAAK,MAAM,GAAG,IAAI,UAAU,EAAE;QAC5B,MAAM,MAAM,GAAG,GAAG,CAAC,cAAc,CAAC,GAAG,CAAC,CAAA;QACtC,IAAI,MAAM,IAAI,IAAI,EAAE;YAClB,OAAO,MAAM,CAAA;SACd;KACF;IACD,OAAM;AACR,CAAC;;IAGC,uBAAA,IAAI,+BAAe,MAAnB,IAAI,CAAiB,CAAA;IACrB,uBAAA,IAAI,sDAAiB,MAArB,IAAI,CAAmB,CAAA;IACvB,IAAA,WAAG,EAAC,IAAI,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,CAAA;IACzC,IAAA,WAAG,EAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC,CAAC,CAAA;IACrD,+CAA+C;IAC/C,MAAM,IAAI,GAAG,IAAI,CAAC,IAAW,CAAA;IAC7B,MAAM,WAAW,GAAmB,EAAE,CAAA;IAEtC,0EAA0E;IAC1E,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;QACpD,MAAM,CAAC,GAAG,uBAAA,IAAI,8CAAS,MAAb,IAAI,EAAU,GAAG,CAAC,CAAA;QAC5B,MAAM,CAAC,GAAG,uBAAA,IAAI,+CAAU,MAAd,IAAI,EAAW,CAAC,EAAE,KAAK,CAAC,CAAA;QAClC,IACE,CAAC,YAAY,2BAAY;YACzB,CAAC,CAAC,OAAO;YACT,CAAC,CAAC,YAAY,KAAK,IAAI;YACvB,CAAC,YAAY,CAAC,GAAG,CAAC;YAClB,kEAAkE;YAClE,CAAC,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,EACvB;YACA,0DAA0D;YAC1D,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;SACpB;QACD,6DAA6D;QAC7D,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;KACd;IAED,IAAI,IAAI,CAAC,OAAO,CAAC,iBAAiB,KAAK,IAAI,EAAE;QAC3C,mDAAmD;QACnD,MAAM,UAAU,GAAG,IAAA,cAAM,EACvB,WAAW,EACX,CAAC,EAAE,EAAE,EAAE,WAAC,OAAA,CAAC,IAAI,CAAC,GAAG,CAAC,MAAA,EAAE,CAAC,eAAe,mCAAI,CAAC,CAAC,CAAA,EAAA,CAC3C,CAAA;QACD,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;YAC/C,qEAAqE;YACrE,IACE,KAAK,YAAY,2BAAY;gBAC7B,CAAC,YAAY,CAAC,GAAG,CAAC;gBAClB,CAAC,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,EACvB;gBACA,IAAI,CAAC,GAAG,CAAC,GAAG,MAAA,uBAAA,IAAI,mDAAc,MAAlB,IAAI,EAAe,KAAK,EAAE,UAAU,CAAC,mCAAI,KAAK,CAAA;aAC3D;SACF;KACF;IACD,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC;QAAE,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAA;IAC1D,OAAO,IAAI,CAAA;AACb,CAAC,+CAWC,OAAuC,EACvC,SAAoB,EACpB,QAAkB;IAElB,MAAM,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAA;IAC5C,MAAM,GAAG,GAAG,IAAI,CAAC,aAAa,CAAC,OAAO,GAAG,KAAK,CAAC,CAAA;IAC/C,MAAM,MAAM,GAAG,IAAA,gBAAO,EAAC,QAAQ,CAAC,CAAA;IAChC,IAAI,MAAM,IAAI,IAAI,EAAE;QAClB,OAAM;KACP;SAAM,IAAI,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,QAAQ,EAAE;QACtC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,OAAO,KAAK,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAA;QACnE,IAAI,CAAC,aAAa,GAAG,IAAI,CAAA;QACzB,OAAM;KACP;SAAM,IAAI,IAAA,cAAK,EAAC,GAAG,CAAC,EAAE;QACrB,kHAAkH;QAClH,OAAO,MAAM,CAAA;KACd;SAAM;QACL,0EAA0E;QAC1E,qEAAqE;QACrE,uEAAuE;QACvE,OAAO;QACP,MAAM,QAAQ,GAAG,IAAA,YAAG,EAAC,GAAG,CAAC,CAAC,WAAW,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,CAAA;QAC7D,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;KAC9C;AACH,CAAC;IAeC,IAAA,WAAG,EACD,IAAA,yBAAiB,EAAC;QAChB,sEAAsE;QACtE,uCAAuC;QACvC,GAAG,EAAE;YACH,MAAM,EAAE,GAAG,IAAA,mCAAuB,EAAC,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,OAAO,CAAC,CAAA;YACpE,oHAAoH;YACpH,MAAM,CAAC,GAAG,IAAA,yBAAa,EAAC,EAAE,aAAF,EAAE,uBAAF,EAAE,CAAE,EAAE,CAAC,CAAA;YAC/B,IAAI,EAAE,IAAI,IAAI,IAAI,CAAC,IAAI,IAAI,EAAE;gBAC3B,MAAM,KAAK,GAAG,uBAAA,IAAI,uBAAO,MAAX,IAAI,CAAS,CAAA;gBAC3B,IAAI,KAAK,IAAI,IAAI,EAAE;oBACjB,MAAM,GAAG,GAAG,IAAA,6BAAa,EAAC,IAAI,CAAC,aAAa,CAAC,CAAA;oBAC7C,IAAI,GAAG,IAAI,IAAI,EAAE;wBACf,MAAM,EAAE,GAAG,GAAG,CAAC,QAAQ,EAAE,CAAA;wBACzB,MAAM,OAAO,GAAG,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAA;wBAC5B,MAAM,WAAW,GAAG,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,CAAA;wBACpC,IAAI,OAAO,KAAK,WAAW,EAAE;4BAC3B,OAAO;gCACL,EAAE,EAAE,KAAK,CAAC,IAAI;gCACd,GAAG,EAAE,EAAE,CAAC,GAAG,GAAG,6BAA6B;6BAC5C,CAAA;yBACF;qBACF;iBACF;aACF;YACD,yDAAyD;YACzD,OAAO,EAAE,CAAA;QACX,CAAC;QAED,wEAAwE;QACxE,wEAAwE;QACxE,GAAG,EAAE,CACH,IAAA,WAAG,EAAC,uBAAA,IAAI,uBAAO,MAAX,IAAI,CAAS,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;YAC1B,EAAE,EAAE,EAAE,CAAC,IAAI;YACX,GAAG,EAAE,0BAA0B;SAChC,CAAC,CAAC;QAEL,wEAAwE;QACxE,wEAAwE;QAExE,8DAA8D;QAC9D,4CAA4C;QAC5C,GAAG,EAAE,CACH,uBAAA,IAAI,mDAAc,MAAlB,IAAI,CAAgB;YAClB,CAAC,CAAC;gBACE,EAAE,EAAE,KAAK;gBACT,GAAG,EAAE,oBAAoB;aAC1B;YACH,CAAC,CAAC,kBAAkB;gBAClB,SAAS;QAEf,6CAA6C;QAC7C,GAAG,EAAE,CAAC,IAAA,wCAA4B,EAAC,IAAI,CAAC,aAAa,CAAC;KACvD,CAAC,EACF,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,GAAG,EAAE,IAAI,CAAC,QAAQ,EAAE,GAAG,EAAE,CAAC,CACnD,CAAA;AACH,CAAC,mDAES,OAAe,EAAE,KAAU;;IACnC,IAAI,OAAO,CAAC,KAAK,CAAC;QAAE,OAAO,SAAS,CAAA;IAEpC,IAAI;QACF,IAAI,eAAe,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;YACzC,OAAO,KAAK,CAAA;SACb;QACD,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;YACxB,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,uBAAA,IAAI,+CAAU,MAAd,IAAI,EAAW,OAAO,EAAE,EAAE,CAAC,CAAC,CAAA;SACtD;QACD,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;YAC7B,MAAM,MAAM,GAAQ,EAAE,CAAA;YACtB,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;gBAC1C,MAAM,CAAC,CAAC,CAAC,GAAG,uBAAA,IAAI,+CAAU,MAAd,IAAI,EAAW,CAAC,EAAE,CAAC,CAAC,CAAA;aACjC;YACD,OAAO,MAAM,CAAA;SACd;QACD,IAAI,OAAO,KAAK,aAAa,EAAE;YAC7B,OAAO,IAAI,CAAC,GAAG,CAAA;SAChB;QACD,IAAI,OAAO,KAAK,cAAc,EAAE;YAC9B,OAAO,IAAI,CAAC,GAAG,CAAA;SAChB;QAED,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;YAC7B,MAAM,CAAC,GAAG,yBAAW,CAAC,YAAY,CAAC,KAAK,CAAC,CAAA;YACzC,IAAI,CAAC,IAAI,IAAI;gBAAE,OAAO,CAAC,CAAA;YAEvB,IACE,iBAAiB,CAAC,IAAI,CAAC,OAAO,CAAC;gBAC/B,6DAA6D;gBAC7D,qBAAqB;gBACrB,CAAC,yBAAW,CAAC,IAAI,CAAC,KAAK,CAAC,EACxB;gBACA,0DAA0D;gBAC1D,oEAAoE;gBACpE,kDAAkD;gBAClD,MAAM,EAAE,GACN,YAAY,CAAC,OAAO,CAAC,IAAI,uBAAA,IAAI,mDAAc,MAAlB,IAAI,CAAgB;oBAC3C,CAAC,CAAC,KAAK;oBACP,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,iBAAiB;wBAChC,CAAC,CAAC,IAAI,CAAC,EAAE;wBACT,CAAC,CAAC,SAAS,CAAA;gBAEf,OAAO,CACL,MAAA,MAAA,MAAA,2BAAY,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,CAAC,mCAC5B,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,mBAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,mCAC7D,mBAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,mCACpB,KAAK,CACN,CAAA;aACF;SACF;QACD,wEAAwE;QACxE,OAAO,KAAK,CAAA;KACb;IAAC,OAAO,CAAC,EAAE;QACV,IAAI,CAAC,QAAQ,CACX,mBAAmB,OAAO,eAAe,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CACvE,CAAA;QACD,OAAO,KAAK,CAAA;KACb;AACH,CAAC;AAGH,SAAS,YAAY,CAAC,OAAe;IACnC,OAAO,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,CAAA;AAC7D,CAAC"}
1
+ {"version":3,"file":"ReadTask.js","sourceRoot":"","sources":["../src/ReadTask.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,iDAAsC;AACtC,4CAA6B;AAC7B,mCAA6B;AAC7B,+CAA2C;AAC3C,qEAAiE;AACjE,yCAAqC;AACrC,iDAA6C;AAC7C,yCAAqC;AACrC,uDAA2D;AAC3D,iDAA6C;AAC7C,+DAA+D;AAC/D,iCAA6B;AAC7B,mCAAgD;AAChD,qCAAkC;AAClC,+CAA2C;AAC3C,iCAA6B;AAC7B,qCAA+C;AAE/C,2CAKoB;AAEpB;;GAEG;AACH,MAAM,eAAe,GAAG;IACtB,iBAAiB;IACjB,eAAe;IACf,WAAW;IACX,UAAU;IACV,mBAAmB;CACpB,CAAA;AAED,MAAM,OAAO,GAAG,CAAC,OAAO,EAAE,MAAM,EAAE,WAAW,CAAC,CAAA;AAE9C,SAAgB,OAAO,CAAC,CAAqB;IAC3C,OAAO,CAAC,IAAI,IAAI,IAAI,CAAC,IAAA,iBAAQ,EAAC,CAAC,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAA;AACjE,CAAC;AAFD,0BAEC;AAEY,QAAA,sBAAsB,GAAG;IACpC,YAAY,EAAE,EAAc;IAC5B,GAAG,IAAA,WAAI,EACL,+CAAsB,EACtB,aAAa,EACb,QAAQ,EACR,qBAAqB,EACrB,eAAe,EACf,oBAAoB,EACpB,mBAAmB,EACnB,6BAA6B,EAC7B,gCAAgC,EAChC,OAAO,CACR;CACO,CAAA;AAIV,MAAM,iBAAiB,GAAG,oCAAoC,CAAA;AAE9D,MAAa,QAAS,SAAQ,2BAAkB;IAW9C,YACW,UAAkB,EACT,IAAc,EACvB,OAAwB;QAEjC,KAAK,CAAC,IAAI,CAAC,CAAA;;QAJF,eAAU,GAAV,UAAU,CAAQ;QACT,SAAI,GAAJ,IAAI,CAAU;QACvB,YAAO,GAAP,OAAO,CAAiB;QAZ3B,SAAI,GAAQ,EAAE,CAAA;QACd,kBAAa,GAAQ,EAAE,CAAA;QACd,SAAI,GAAS,EAAE,CAAA;QAGxB,kBAAa,GAAG,KAAK,CAAA;QAoH7B,kCAAiB,IAAA,WAAI,EAAC,GAAG,EAAE;;YACzB,MAAA,IAAI,CAAC,GAAG,oCAAR,IAAI,CAAC,GAAG,GAAK,uBAAA,IAAI,6CAAQ,MAAZ,IAAI,EAAS,aAAa,EAAE,GAAG,EAAE,EAAE,CAAC,EAAA;YACjD,MAAA,IAAI,CAAC,GAAG,oCAAR,IAAI,CAAC,GAAG,GAAK,uBAAA,IAAI,6CAAQ,MAAZ,IAAI,EAAS,cAAc,EAAE,GAAG,EAAE,GAAG,CAAC,EAAA;YACnD,IAAI,IAAI,CAAC,aAAa,EAAE;gBACtB,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG,SAAS,CAAA;aAChC;QACH,CAAC,CAAC,EAAA;QA6BF,0BAAS,IAAA,WAAI,EAAC,GAAG,EAAE;YACjB,uBAAA,IAAI,+BAAe,MAAnB,IAAI,CAAiB,CAAA;YACrB,IAAI,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,GAAG,IAAI,IAAI,IAAI,IAAI,CAAC,GAAG,IAAI,IAAI;gBAAE,OAAM;YACtE,IAAI;gBACF,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,CAAA;gBACpD,OAAO,IAAA,yBAAa,EAAC,KAAK,CAAC,CAAA;aAC5B;YAAC,MAAM;gBACN,IAAI,CAAC,aAAa,GAAG,IAAI,CAAA;gBACzB,OAAM;aACP;QACH,CAAC,CAAC,EAAA;QAvJA,gGAAgG;QAChG,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAA;QACvC,IAAI,CAAC,IAAI,GAAG,EAAE,UAAU,EAAE,UAAU,EAAU,CAAA;QAC9C,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAA;IAChC,CAAC;IAED,MAAM,CAAC,GAAG,CAAC,QAAgB,EAAE,OAAiC;QAC5D,MAAM,IAAI,GAAoB,IAAA,yCAAuB,EAAC;YACpD,GAAG,8BAAsB;YACzB,GAAG,OAAO;SACX,CAAC,CAAA;QACF,MAAM,UAAU,GAAG,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAA;QAC1C,MAAM,IAAI,GAAG;YACX,GAAG,6CAAuB;YAC1B,OAAO;YACP,SAAS;YACT,GAAG,IAAA,WAAG,EAAC,IAAI,CAAC,YAAY,CAAC;SAC1B,CAAA;QACD,IAAI,IAAI,CAAC,MAAM,EAAE;YACf,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,CAAA;SACzB;QACD,IAAI,IAAI,CAAC,aAAa,IAAI,IAAI,IAAI,IAAI,CAAC,aAAa,KAAK,KAAK,EAAE;YAC9D,yEAAyE;YACzE,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,2BAA2B,CAAC,CAAA;YAC9C,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,gBAAgB,GAAG,IAAI,CAAC,aAAa,CAAC,CAAA;SACzD;QACD,uEAAuE;QACvE,oBAAoB;QACpB,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,GAAG,GAAG,EAAE,GAAG,GAAG,CAAC,CAAC,CAAA;QAC1D,qEAAqE;QAErE,+DAA+D;QAC/D,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,UAAU,CAAC,CAAA;QAE7B,OAAO,IAAI,QAAQ,CAAC,UAAU,EAAE,IAAI,EAAE,IAAI,CAAC,CAAA;IAC7C,CAAC;IAEQ,QAAQ;QACf,OAAO,UAAU,GAAG,IAAI,CAAC,UAAU,GAAG,GAAG,CAAA;IAC3C,CAAC;IAED,yBAAyB;IACzB,KAAK,CAAC,IAAY,EAAE,GAAW;QAC7B,IAAI;YACF,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAA;SAChC;QAAC,OAAO,SAAS,EAAE;YAClB,iCAAiC;YACjC,IAAA,sBAAM,GAAE,CAAC,IAAI,CAAC,mCAAmC,EAAE;gBACjD,IAAI;gBACJ,GAAG;gBACH,SAAS;aACV,CAAC,CAAA;YACF,MAAM,GAAG,aAAH,GAAG,cAAH,GAAG,GAAI,SAAS,CAAA;SACvB;QACD,8FAA8F;QAC9F,MAAM,UAAU,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;QACtD,wDAAwD;QACxD,IAAI,UAAU,KAAK,IAAI,CAAC,UAAU,EAAE;YAClC,gFAAgF;YAChF,MAAM,IAAI,KAAK,CACb,4CAA4C,IAAI,CAAC,IAAI,CAAC,UAAU,aAAa,IAAI,CAAC,UAAU,EAAE,CAC/F,CAAA;SACF;QACD,IAAI,IAAI,CAAC,OAAO,EAAE;YAChB,IAAI,CAAC,aAAa,GAAG,EAAE,CAAA;YACvB,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;gBACpD,MAAM,CAAC,GAAG,uBAAA,IAAI,8CAAS,MAAb,IAAI,EAAU,GAAG,CAAC,CAAA;gBAC5B,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,GAAG,KAAK,CAAA;aAC9B;SACF;aAAM;YACL,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,IAAI,CAAA;SAC/B;QACD,OAAO,uBAAA,IAAI,gDAAW,MAAf,IAAI,CAAa,CAAA;IAC1B,CAAC;CAgMF;AA1RD,4BA0RC;;;IA7LG,OAAO,MAAM,CAAC,MAAA,IAAI,CAAC,aAAa,0CAAE,QAAQ,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAA;AAClE,CAAC;IAGC,OAAO,uBAAA,IAAI,8CAAS,MAAb,IAAI,CAAW,IAAI,IAAI,CAAC,OAAO,CAAC,kBAAkB,CAAA;AAC3D,CAAC,iDAEQ,CAAS;;IAChB,OAAO,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,MAAA,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,mCAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;AAChD,CAAC;IAGC,uBAAA,IAAI,+BAAe,MAAnB,IAAI,CAAiB,CAAA;IACrB,uBAAA,IAAI,sDAAiB,MAArB,IAAI,CAAmB,CAAA;IACvB,IAAA,WAAG,EAAC,IAAI,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,CAAA;IACzC,IAAA,WAAG,EAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC,CAAC,CAAA;IACrD,+CAA+C;IAC/C,MAAM,IAAI,GAAG,IAAI,CAAC,IAAW,CAAA;IAE7B,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;QACpD,MAAM,CAAC,GAAG,uBAAA,IAAI,8CAAS,MAAb,IAAI,EAAU,GAAG,CAAC,CAAA;QAC5B,MAAM,CAAC,GAAG,uBAAA,IAAI,+CAAU,MAAd,IAAI,EAAW,CAAC,EAAE,KAAK,CAAC,CAAA;QAClC,6DAA6D;QAC7D,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;KACd;IAED,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC;QAAE,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAA;IAC1D,OAAO,IAAI,CAAA;AACb,CAAC,+CAWC,OAAuC,EACvC,SAAoB,EACpB,QAAkB;IAElB,MAAM,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAA;IAC5C,MAAM,GAAG,GAAG,IAAI,CAAC,aAAa,CAAC,OAAO,GAAG,KAAK,CAAC,CAAA;IAC/C,MAAM,MAAM,GAAG,IAAA,gBAAO,EAAC,QAAQ,CAAC,CAAA;IAChC,IAAI,MAAM,IAAI,IAAI,EAAE;QAClB,OAAM;KACP;SAAM,IAAI,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,QAAQ,EAAE;QACtC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,OAAO,KAAK,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAA;QACnE,IAAI,CAAC,aAAa,GAAG,IAAI,CAAA;QACzB,OAAM;KACP;SAAM,IAAI,IAAA,cAAK,EAAC,GAAG,CAAC,EAAE;QACrB,kHAAkH;QAClH,OAAO,MAAM,CAAA;KACd;SAAM;QACL,0EAA0E;QAC1E,qEAAqE;QACrE,uEAAuE;QACvE,OAAO;QACP,MAAM,QAAQ,GAAG,IAAA,YAAG,EAAC,GAAG,CAAC,CAAC,WAAW,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,CAAA;QAC7D,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;KAC9C;AACH,CAAC;IAeC,IAAA,WAAG,EACD,IAAA,yBAAiB,EAAC;QAChB,sEAAsE;QACtE,uCAAuC;QACvC,GAAG,EAAE,CAAC,IAAA,mCAAuB,EAAC,IAAI,CAAC,aAAa,CAAC;QAEjD,GAAG,EAAE,CACH,IAAA,WAAG,EAAC,uBAAA,IAAI,uBAAO,MAAX,IAAI,CAAS,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;YAC1B,EAAE,EAAE,EAAE,CAAC,IAAI;YACX,GAAG,EAAE,0BAA0B;SAChC,CAAC,CAAC;QAEL,GAAG,EAAE,CAAC,IAAA,yCAA6B,EAAC,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,OAAO,CAAC;QAErE,wEAAwE;QACxE,wEAAwE;QAExE,8DAA8D;QAC9D,4CAA4C;QAC5C,GAAG,EAAE,CACH,uBAAA,IAAI,mDAAc,MAAlB,IAAI,CAAgB;YAClB,CAAC,CAAC;gBACE,EAAE,EAAE,KAAK;gBACT,GAAG,EAAE,oBAAoB;aAC1B;YACH,CAAC,CAAC,kBAAkB;gBAClB,SAAS;QAEf,6CAA6C;QAC7C,GAAG,EAAE,CAAC,IAAA,wCAA4B,EAAC,IAAI,CAAC,aAAa,CAAC;KACvD,CAAC,EACF,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,GAAG,EAAE,IAAI,CAAC,QAAQ,EAAE,GAAG,EAAE,CAAC,CACnD,CAAA;AACH,CAAC,mDAES,OAAe,EAAE,KAAU;;IACnC,IAAI,OAAO,CAAC,KAAK,CAAC;QAAE,OAAO,SAAS,CAAA;IAEpC,IAAI;QACF,IAAI,eAAe,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;YACzC,OAAO,KAAK,CAAA;SACb;QACD,IAAI,OAAO,KAAK,aAAa,EAAE;YAC7B,OAAO,IAAI,CAAC,GAAG,CAAA;SAChB;QACD,IAAI,OAAO,KAAK,cAAc,EAAE;YAC9B,OAAO,IAAI,CAAC,GAAG,CAAA;SAChB;QACD,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;YACxB,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,uBAAA,IAAI,+CAAU,MAAd,IAAI,EAAW,OAAO,EAAE,EAAE,CAAC,CAAC,CAAA;SACtD;QACD,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;YAC7B,MAAM,MAAM,GAAQ,EAAE,CAAA;YACtB,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;gBAC1C,MAAM,CAAC,CAAC,CAAC,GAAG,uBAAA,IAAI,+CAAU,MAAd,IAAI,EAAW,CAAC,EAAE,CAAC,CAAC,CAAA;aACjC;YACD,OAAO,MAAM,CAAA;SACd;QACD,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;YAC7B,MAAM,CAAC,GAAG,yBAAW,CAAC,YAAY,CAAC,KAAK,CAAC,CAAA;YACzC,IAAI,CAAC,IAAI,IAAI;gBAAE,OAAO,CAAC,CAAA;YAEvB,IACE,iBAAiB,CAAC,IAAI,CAAC,OAAO,CAAC;gBAC/B,6DAA6D;gBAC7D,qBAAqB;gBACrB,CAAC,yBAAW,CAAC,IAAI,CAAC,KAAK,CAAC,EACxB;gBACA,0DAA0D;gBAC1D,oEAAoE;gBACpE,wDAAwD;gBACxD,MAAM,EAAE,GACN,YAAY,CAAC,OAAO,CAAC,IAAI,uBAAA,IAAI,mDAAc,MAAlB,IAAI,CAAgB;oBAC3C,CAAC,CAAC,KAAK;oBACP,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,iBAAiB;wBAChC,CAAC,CAAC,IAAI,CAAC,EAAE;wBACT,CAAC,CAAC,SAAS,CAAA;gBAEf,2DAA2D;gBAC3D,MAAM,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;gBAC7C,MAAM,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;gBAC7C,MAAM,MAAM,GACV,MAAA,MAAA,MAAA,CAAC,eAAe,IAAI,eAAe;oBACjC,CAAC,CAAC,2BAAY,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,CAAC;oBAC9B,CAAC,CAAC,SAAS,CAAC,mCACd,CAAC,eAAe,CAAC,CAAC,CAAC,mBAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,mCACxD,CAAC,eAAe,CAAC,CAAC,CAAC,mBAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,mCACpD,KAAK,CAAA;gBACP,IACE,IAAI,CAAC,OAAO,CAAC,iBAAiB;oBAC9B,MAAM,IAAI,IAAI;oBACd,IAAI,CAAC,EAAE,IAAI,IAAI;oBACf,MAAM,YAAY,2BAAY;oBAC9B,uBAAA,IAAI,mDAAc,MAAlB,IAAI,CAAgB;oBACpB,CAAC,YAAY,CAAC,OAAO,CAAC;oBACtB,IAAI,KAAK,MAAM,CAAC,YAAY,EAC5B;oBACA,OAAO,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;iBAC/B;gBACD,OAAO,MAAM,CAAA;aACd;SACF;QACD,wEAAwE;QACxE,OAAO,KAAK,CAAA;KACb;IAAC,OAAO,CAAC,EAAE;QACV,IAAI,CAAC,QAAQ,CACX,mBAAmB,OAAO,eAAe,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CACvE,CAAA;QACD,OAAO,KAAK,CAAA;KACb;AACH,CAAC;AAGH,SAAS,YAAY,CAAC,OAAe;IACnC,OAAO,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,CAAA;AAC7D,CAAC"}
@@ -11,3 +11,4 @@ export interface ResourceEvent {
11
11
  SoftwareAgent?: string;
12
12
  When?: ExifDateTime | ExifDate | string;
13
13
  }
14
+ export declare function isResourceEvent(obj: any): obj is ResourceEvent;
@@ -1,3 +1,16 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.isResourceEvent = void 0;
4
+ const fields = [
5
+ "Action",
6
+ "Changed",
7
+ "InstanceID",
8
+ "Parameters",
9
+ "SoftwareAgent",
10
+ "When",
11
+ ];
12
+ function isResourceEvent(obj) {
13
+ return obj != null && typeof obj === "object" && fields.every((f) => f in obj);
14
+ }
15
+ exports.isResourceEvent = isResourceEvent;
3
16
  //# sourceMappingURL=ResourceEvent.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ResourceEvent.js","sourceRoot":"","sources":["../src/ResourceEvent.ts"],"names":[],"mappings":""}
1
+ {"version":3,"file":"ResourceEvent.js","sourceRoot":"","sources":["../src/ResourceEvent.ts"],"names":[],"mappings":";;;AAeA,MAAM,MAAM,GAAG;IACb,QAAQ;IACR,SAAS;IACT,YAAY;IACZ,YAAY;IACZ,eAAe;IACf,MAAM;CACP,CAAA;AAED,SAAgB,eAAe,CAAC,GAAQ;IACtC,OAAO,GAAG,IAAI,IAAI,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,GAAG,CAAC,CAAA;AAChF,CAAC;AAFD,0CAEC"}
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":"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"}
1
+ {"version":3,"file":"String.js","sourceRoot":"","sources":["../src/String.ts"],"names":[],"mappings":"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"}
package/dist/Struct.js CHANGED
@@ -3,8 +3,9 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.isStruct = void 0;
4
4
  const DateTime_1 = require("./DateTime");
5
5
  function isStruct(o) {
6
+ var _a;
6
7
  return (o != null &&
7
- !Array.isArray(o) &&
8
+ ((_a = o.constructor) === null || _a === void 0 ? void 0 : _a.name) === "Object" &&
8
9
  Object.values(o).every((v) => {
9
10
  const t = typeof v;
10
11
  return t === "string" || t === "number" || (0, DateTime_1.isDateOrTime)(v) || isStruct(v);
@@ -1 +1 @@
1
- {"version":3,"file":"Struct.js","sourceRoot":"","sources":["../src/Struct.ts"],"names":[],"mappings":";;;AAAA,yCAAyC;AAMzC,SAAgB,QAAQ,CAAC,CAAM;IAC7B,OAAO,CACL,CAAC,IAAI,IAAI;QACT,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;QACjB,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE;YAC3B,MAAM,CAAC,GAAG,OAAO,CAAC,CAAA;YAClB,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,KAAK,QAAQ,IAAI,IAAA,uBAAY,EAAC,CAAC,CAAC,IAAI,QAAQ,CAAC,CAAC,CAAC,CAAA;QAC3E,CAAC,CAAC,CACH,CAAA;AACH,CAAC;AATD,4BASC"}
1
+ {"version":3,"file":"Struct.js","sourceRoot":"","sources":["../src/Struct.ts"],"names":[],"mappings":";;;AAAA,yCAAyC;AAMzC,SAAgB,QAAQ,CAAC,CAAM;;IAC7B,OAAO,CACL,CAAC,IAAI,IAAI;QACT,CAAA,MAAA,CAAC,CAAC,WAAW,0CAAE,IAAI,MAAK,QAAQ;QAChC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE;YAC3B,MAAM,CAAC,GAAG,OAAO,CAAC,CAAA;YAClB,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,KAAK,QAAQ,IAAI,IAAA,uBAAY,EAAC,CAAC,CAAC,IAAI,QAAQ,CAAC,CAAC,CAAC,CAAA;QAC3E,CAAC,CAAC,CACH,CAAA;AACH,CAAC;AATD,4BASC"}
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:10:02 15:36:12-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;
@@ -299,7 +299,7 @@ export interface APP1Tags {
299
299
  PaletteStretch?: number;
300
300
  /** ☆☆☆☆ Example: ".basicImgData.objectParams.emissivity" */
301
301
  Param0?: string;
302
- /** ☆☆☆☆ Example: "(Binary data 614604 bytes, use -b option to extract)" */
302
+ /** ☆☆☆☆ Example: "(Binary data 153804 bytes, use -b option to extract)" */
303
303
  RawThermalImage?: BinaryField | string;
304
304
  /** ☆☆☆☆ Example: 90 */
305
305
  RawThermalImageHeight?: number;
@@ -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;
@@ -815,7 +815,7 @@ export interface EXIFTags {
815
815
  TileByteCounts?: BinaryField | string;
816
816
  /** ☆☆☆☆ ✔ Example: 512 */
817
817
  TileLength?: number;
818
- /** ☆☆☆☆ ✔ Example: "(Binary data 508 bytes, use -b option to extract)" */
818
+ /** ☆☆☆☆ ✔ Example: "(Binary data 507 bytes, use -b option to extract)" */
819
819
  TileOffsets?: BinaryField | string;
820
820
  /** ☆☆☆☆ ✔ Example: 512 */
821
821
  TileWidth?: number;
@@ -883,7 +883,7 @@ export interface APP6Tags {
883
883
  WhiteBalance?: string;
884
884
  }
885
885
  export interface FlashPixTags {
886
- /** ☆☆☆☆ Example: "(Binary data 18 bytes, use -b option to extract)" */
886
+ /** ☆☆☆☆ Example: "(Binary data 20796 bytes, use -b option to extract)" */
887
887
  AudioStream?: BinaryField | string;
888
888
  /** ☆☆☆☆ ✔ Example: "Unicode UTF-16, little endian" */
889
889
  CodePage?: string;
@@ -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" */
@@ -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;
@@ -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 Mon Oct 02 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,75 @@
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
+ const inferredZone = (0, String_1.notBlank)(args.defaultZone);
17
+ for (const prefix of (_a = args.formatPrefixes) !== null && _a !== void 0 ? _a : [""]) {
18
+ for (const timeFmt of TimeFmts) {
19
+ yield {
20
+ fmt: prefix + timeFmt.fmt,
21
+ zone: args.defaultZone,
22
+ unsetMilliseconds: timeFmt.unsetMilliseconds,
23
+ inferredZone,
24
+ };
25
+ }
26
+ }
27
+ }
28
+ exports.timeFormats = timeFormats;
29
+ function parseDateTime(text, fmts) {
30
+ var _a, _b, _c, _d;
31
+ const s = (0, String_1.toS)(text).trim();
32
+ if (s.length === 0)
33
+ return;
34
+ const extractedZone = (0, Timezones_1.extractZone)(s);
35
+ const input = (_a = extractedZone === null || extractedZone === void 0 ? void 0 : extractedZone.leftovers) !== null && _a !== void 0 ? _a : s;
36
+ for (const ea of fmts) {
37
+ const dt = luxon_1.DateTime.fromFormat(input, ea.fmt, {
38
+ setZone: true,
39
+ 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,
40
+ });
41
+ if (dt == null || !dt.isValid)
42
+ continue;
43
+ const unsetZone = (extractedZone === null || extractedZone === void 0 ? void 0 : extractedZone.tz) == null && (dt.zone == null || dt.zone === Timezones_1.UnsetZone);
44
+ let inferredZone = (extractedZone === null || extractedZone === void 0 ? void 0 : extractedZone.tz) != null || unsetZone ? false : ea.inferredZone;
45
+ if (inferredZone == null) {
46
+ // this is pretty miserable, but luxon doesn't expose _how_ it got
47
+ // the zone, so we have to resort to this hack to see if the zone
48
+ // is inferred:
49
+ const dt2 = luxon_1.DateTime.fromFormat(input, ea.fmt, { setZone: true });
50
+ inferredZone = dt.zone !== dt2.zone;
51
+ }
52
+ return {
53
+ dt,
54
+ fmt: ea.fmt,
55
+ unsetZone,
56
+ inferredZone,
57
+ input,
58
+ unsetMilliseconds: (_d = ea.unsetMilliseconds) !== null && _d !== void 0 ? _d : false,
59
+ };
60
+ }
61
+ return;
62
+ }
63
+ exports.parseDateTime = parseDateTime;
64
+ function setZone(args) {
65
+ // This is a bit tricky... We want to keep the local time and just _say_ it
66
+ // was in the zone of the image **if we don't already have a zone.**
67
+ // If we _do_ have a zone, assume it was already converted by ExifTool into
68
+ // (probably the system) timezone, which means _don't_ `keepLocalTime`.
69
+ return args.src.setZone(args.zone, {
70
+ keepLocalTime: !args.srcHasZone,
71
+ ...args.opts,
72
+ });
73
+ }
74
+ exports.setZone = setZone;
75
+ //# sourceMappingURL=TimeParsing.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TimeParsing.js","sourceRoot":"","sources":["../src/TimeParsing.ts"],"names":[],"mappings":"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"}