exiftool-vendored 15.4.0 → 15.8.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 (48) hide show
  1. package/CHANGELOG.md +36 -0
  2. package/README.md +36 -4
  3. package/dist/Array.d.ts +1 -0
  4. package/dist/Array.js +9 -1
  5. package/dist/Array.js.map +1 -1
  6. package/dist/DeleteAllTagsArgs.d.ts +1 -0
  7. package/dist/DeleteAllTagsArgs.js +5 -0
  8. package/dist/DeleteAllTagsArgs.js.map +1 -0
  9. package/dist/ExifDate.d.ts +8 -0
  10. package/dist/ExifDate.js +12 -0
  11. package/dist/ExifDate.js.map +1 -1
  12. package/dist/ExifDateTime.d.ts +14 -0
  13. package/dist/ExifDateTime.js +23 -3
  14. package/dist/ExifDateTime.js.map +1 -1
  15. package/dist/ExifTime.d.ts +8 -0
  16. package/dist/ExifTime.js +12 -0
  17. package/dist/ExifTime.js.map +1 -1
  18. package/dist/ExifTool.d.ts +7 -2
  19. package/dist/ExifTool.js +16 -9
  20. package/dist/ExifTool.js.map +1 -1
  21. package/dist/ExifToolTask.js +2 -3
  22. package/dist/ExifToolTask.js.map +1 -1
  23. package/dist/File.d.ts +1 -0
  24. package/dist/File.js +30 -0
  25. package/dist/File.js.map +1 -0
  26. package/dist/JSON.d.ts +1 -0
  27. package/dist/JSON.js +16 -0
  28. package/dist/JSON.js.map +1 -0
  29. package/dist/Maybe.d.ts +0 -1
  30. package/dist/Maybe.js +1 -10
  31. package/dist/Maybe.js.map +1 -1
  32. package/dist/ReadRawTask.js +1 -2
  33. package/dist/ReadRawTask.js.map +1 -1
  34. package/dist/ReadTask.d.ts +2 -2
  35. package/dist/ReadTask.js +37 -32
  36. package/dist/ReadTask.js.map +1 -1
  37. package/dist/RewriteAllTagsTask.js +9 -5
  38. package/dist/RewriteAllTagsTask.js.map +1 -1
  39. package/dist/Sidecars.d.ts +2 -0
  40. package/dist/Sidecars.js +11 -0
  41. package/dist/Sidecars.js.map +1 -0
  42. package/dist/Tags.d.ts +30 -12
  43. package/dist/Timezones.js +6 -3
  44. package/dist/Timezones.js.map +1 -1
  45. package/dist/WriteTask.d.ts +2 -2
  46. package/dist/WriteTask.js +18 -4
  47. package/dist/WriteTask.js.map +1 -1
  48. package/package.json +20 -20
package/CHANGELOG.md CHANGED
@@ -25,6 +25,42 @@ vendored versions of ExifTool match the version they vendor.
25
25
 
26
26
  ## Version history
27
27
 
28
+ ### v15.8.0
29
+
30
+ - 🐞 `GPSDateTime` in prior versions could be incorrectly parsed, resulting in an incorrectly inferred current-date and encoded-time.
31
+
32
+ - 🐞 GPS latitude and longitude parsing could result in the incorrect hemisphere, depending on the version of ExifTool.
33
+
34
+ - 📦 The prior default of making all `GPS*` tags numeric has been reduced to only `GPSLatitude` and `GPSLongitude`, which means tags like `GPSImgDirectionRef` will now be something like "Magnetic North" instead of the more cryptic "M", and `GPSAltitudeRef` will now be "Below Sea Level" instead of "1".
35
+
36
+ ### v15.7.0
37
+
38
+ - 🌱 ExifTool upgraded to [v12.38](https://exiftool.org/history.html#v12.38).
39
+
40
+ - ✨ Add specific support for [deleting values associated to existing tags](https://github.com/photostructure/exiftool-vendored.js/issues/104)
41
+
42
+ - 🐞 No-op `.write()` calls to sidecars are now gracefully no-op'ed.
43
+
44
+ - 📦 Added tests with and without retries (to validate stdout/stderr bugfixes in v8.0 of `batch-cluster`)
45
+
46
+ - 📦 Replace `orElse` calls with `??`
47
+
48
+ - 📦 Updated dependencies
49
+
50
+ ### v15.6.0
51
+
52
+ - ✨ Added [serialization support](https://github.com/photostructure/exiftool-vendored.js/issues/102)
53
+
54
+ - 🌱 ExifTool upgraded to [v12.34](https://exiftool.org/history.html#v12.34).
55
+
56
+ ### v15.5.0
57
+
58
+ - 🌱 ExifTool upgraded to [v12.33](https://exiftool.org/history.html#v12.33).
59
+
60
+ - 📦 Updated dependencies
61
+
62
+ - 📦 Now ignoring `yarn.lock`
63
+
28
64
  ### v15.4.0
29
65
 
30
66
  - 🌱 ExifTool upgraded to [v12.31](https://exiftool.org/history.html#v12.31).
package/README.md CHANGED
@@ -262,6 +262,14 @@ exiftool.write("path/to/file.jpg", {
262
262
  })
263
263
  ```
264
264
 
265
+ To delete a tag, use `null` as the value.
266
+
267
+ ```js
268
+ exiftool.write("path/to/file.jpg", { UserComment: null })
269
+ ```
270
+
271
+ The above example removes any value associated to the `UserComment` tag.
272
+
265
273
  ### Always Beware: Timezones
266
274
 
267
275
  If you edit a timestamp tag, realize that the difference between the
@@ -303,6 +311,15 @@ ExifTool has an [extensive user configuration system](http://owl.phy.queensu.ca/
303
311
  new ExifTool({ exiftoolEnv: { EXIFTOOL_HOME: resolve("path", "to", "config", "dir") }
304
312
  ```
305
313
 
314
+ ## This package requires `procps`.
315
+
316
+ The default `BatchClusterOptions.cleanupChildProcs` value of `true` means that BatchCluster, which is used to manage child `exiftool` processes, will try to use `ps` to ensure Node's view of process state are correct, and that errant
317
+ processes are cleaned up.
318
+
319
+ If you run this in a docker image based off Alpine or Debian Slim, **this won't work properly unless you install the `procps` package.**
320
+
321
+ [See `batch-cluster` for details.](https://github.com/photostructure/batch-cluster.js/issues/13)
322
+
306
323
  ## Resource hygiene
307
324
 
308
325
  **Always remember to call `.end()`.**
@@ -379,15 +396,12 @@ are [PascalCased](https://en.wikipedia.org/wiki/PascalCase), like
379
396
  `AFPointSelected` and `ISO`. ("Fixing" the field names to be camelCase, would
380
397
  result in ungainly `aFPointSelected` and `iSO` atrocities).
381
398
 
382
- The [Tags](https://photostructure.github.io/exiftool-vendored.js/interfaces/tags.html) interface is
399
+ The [Tags](https://photostructure.github.io/exiftool-vendored.js/interfaces/Tags.html) interface is
383
400
  auto-generated by the `mktags` script, which parses through over 6,000 unique
384
401
  camera make and model images, in large part sourced from the ExifTool site.
385
402
  `mktags` groups tags, extracts their type, popularity, and example values such
386
403
  that your IDE can autocomplete.
387
404
 
388
- For an example of a group of tags, see the [EXIFTags
389
- interface](interfaces/exiftags.html).
390
-
391
405
  Tags marked with "★★★★", like
392
406
  [MIMEType](https://photostructure.github.io/exiftool-vendored.js/interfaces/tags.html#mimetype),
393
407
  should be found in most files. Of the several thousand metadata tags, realize
@@ -398,6 +412,24 @@ Note that if parsing fails (for, example, a datetime string), the raw string
398
412
  will be returned. Consuming code should verify both existence and type as
399
413
  reasonable for safety.
400
414
 
415
+ ## Serialization
416
+
417
+ The `Tags` object returned by `.readTags()` can be serialized to JSON with `JSON.stringify`.
418
+
419
+ To reconstitute, use the `parseJSON()` method.
420
+
421
+ ```ts
422
+ import { exiftool, parseJSON } from "exiftool-vendored"
423
+
424
+ const tags: Tags = await exiftool.readTags("/path/to/file.jpg")
425
+ const str: string = JSON.stringify(tags)
426
+
427
+ // parseJSON doesn't validate the input, so we don't assert that it's a Tags
428
+ // instance, but you can cast it (unsafely...)
429
+
430
+ const tags2: Tags = parseJSON(str) as Tags
431
+ ```
432
+
401
433
  ## Performance
402
434
 
403
435
  The `npm run mktags` target reads all tags found in a batch of sample images and
package/dist/Array.d.ts CHANGED
@@ -7,3 +7,4 @@ export declare function times<T>(n: number, f: (idx: number) => T): T[];
7
7
  */
8
8
  export declare function filterInPlace<T>(arr: T[], filter: (t: T) => boolean): T[];
9
9
  export declare function uniq<T>(arr: T[]): T[];
10
+ export declare function shallowArrayEql(a: any[], b: any[]): boolean;
package/dist/Array.js CHANGED
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.uniq = exports.filterInPlace = exports.times = exports.compact = void 0;
3
+ exports.shallowArrayEql = exports.uniq = exports.filterInPlace = exports.times = exports.compact = void 0;
4
4
  function compact(array) {
5
5
  return array.filter((elem) => elem != null);
6
6
  }
@@ -36,4 +36,12 @@ function uniq(arr) {
36
36
  }, []);
37
37
  }
38
38
  exports.uniq = uniq;
39
+ // terrible implementation only for internal use
40
+ function shallowArrayEql(a, b) {
41
+ return (a != null &&
42
+ b != null &&
43
+ a.length === b.length &&
44
+ a.every((ea, idx) => ea === b[idx]));
45
+ }
46
+ exports.shallowArrayEql = shallowArrayEql;
39
47
  //# sourceMappingURL=Array.js.map
package/dist/Array.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"Array.js","sourceRoot":"","sources":["../src/Array.ts"],"names":[],"mappings":";;;AAEA,SAAgB,OAAO,CAAI,KAAqB;IAC9C,OAAO,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,IAAI,IAAI,CAAQ,CAAA;AACpD,CAAC;AAFD,0BAEC;AAED,SAAgB,KAAK,CAAI,CAAS,EAAE,CAAqB;IACvD,OAAO,KAAK,CAAC,CAAC,CAAC;SACZ,IAAI,CAAC,SAAS,CAAC;SACf,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;AACxB,CAAC;AAJD,sBAIC;AAED;;;GAGG;AACH,SAAgB,aAAa,CAAI,GAAQ,EAAE,MAAyB;IAClE,IAAI,CAAC,GAAG,CAAC,CAAA;IACT,GAAG,CAAC,OAAO,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE;QACpB,IAAI,MAAM,CAAC,EAAE,CAAC,EAAE;YACd,IAAI,CAAC,KAAK,CAAC;gBAAE,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,CAAA;YACxB,CAAC,EAAE,CAAA;SACJ;IACH,CAAC,CAAC,CAAA;IACF,GAAG,CAAC,MAAM,GAAG,CAAC,CAAA;IACd,OAAO,GAAG,CAAA;AACZ,CAAC;AAVD,sCAUC;AAED,SAAgB,IAAI,CAAI,GAAQ;IAC9B,OAAO,GAAG,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE;QAC5B,IAAI,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC;YAAE,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;QACxC,OAAO,GAAG,CAAA;IACZ,CAAC,EAAE,EAAS,CAAC,CAAA;AACf,CAAC;AALD,oBAKC"}
1
+ {"version":3,"file":"Array.js","sourceRoot":"","sources":["../src/Array.ts"],"names":[],"mappings":";;;AAEA,SAAgB,OAAO,CAAI,KAAqB;IAC9C,OAAO,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,IAAI,IAAI,CAAQ,CAAA;AACpD,CAAC;AAFD,0BAEC;AAED,SAAgB,KAAK,CAAI,CAAS,EAAE,CAAqB;IACvD,OAAO,KAAK,CAAC,CAAC,CAAC;SACZ,IAAI,CAAC,SAAS,CAAC;SACf,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;AACxB,CAAC;AAJD,sBAIC;AAED;;;GAGG;AACH,SAAgB,aAAa,CAAI,GAAQ,EAAE,MAAyB;IAClE,IAAI,CAAC,GAAG,CAAC,CAAA;IACT,GAAG,CAAC,OAAO,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE;QACpB,IAAI,MAAM,CAAC,EAAE,CAAC,EAAE;YACd,IAAI,CAAC,KAAK,CAAC;gBAAE,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,CAAA;YACxB,CAAC,EAAE,CAAA;SACJ;IACH,CAAC,CAAC,CAAA;IACF,GAAG,CAAC,MAAM,GAAG,CAAC,CAAA;IACd,OAAO,GAAG,CAAA;AACZ,CAAC;AAVD,sCAUC;AAED,SAAgB,IAAI,CAAI,GAAQ;IAC9B,OAAO,GAAG,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE;QAC5B,IAAI,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC;YAAE,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;QACxC,OAAO,GAAG,CAAA;IACZ,CAAC,EAAE,EAAS,CAAC,CAAA;AACf,CAAC;AALD,oBAKC;AAED,gDAAgD;AAChD,SAAgB,eAAe,CAAC,CAAQ,EAAE,CAAQ;IAChD,OAAO,CACL,CAAC,IAAI,IAAI;QACT,CAAC,IAAI,IAAI;QACT,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,MAAM;QACrB,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,GAAG,EAAE,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CACpC,CAAA;AACH,CAAC;AAPD,0CAOC"}
@@ -0,0 +1 @@
1
+ export declare const DeleteAllTagsArgs: string[];
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DeleteAllTagsArgs = void 0;
4
+ exports.DeleteAllTagsArgs = ["-all="];
5
+ //# sourceMappingURL=DeleteAllTagsArgs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DeleteAllTagsArgs.js","sourceRoot":"","sources":["../src/DeleteAllTagsArgs.ts"],"names":[],"mappings":";;;AAAa,QAAA,iBAAiB,GAAG,CAAC,OAAO,CAAC,CAAA"}
@@ -22,4 +22,12 @@ export declare class ExifDate {
22
22
  toISOString(): string;
23
23
  toExifString(): string;
24
24
  toString(sep?: string): string;
25
+ toJSON(): {
26
+ _ctor: string;
27
+ year: number;
28
+ month: number;
29
+ day: number;
30
+ rawValue: string | undefined;
31
+ };
32
+ static fromJSON(json: ReturnType<ExifDate["toJSON"]>): ExifDate;
25
33
  }
package/dist/ExifDate.js CHANGED
@@ -60,6 +60,18 @@ class ExifDate {
60
60
  toString(sep = "-") {
61
61
  return `${this.year}${sep}${(0, String_1.pad2)(this.month, this.day).join(sep)}`;
62
62
  }
63
+ toJSON() {
64
+ return {
65
+ _ctor: "ExifDate",
66
+ year: this.year,
67
+ month: this.month,
68
+ day: this.day,
69
+ rawValue: this.rawValue,
70
+ };
71
+ }
72
+ static fromJSON(json) {
73
+ return new ExifDate(json.year, json.month, json.day, json.rawValue);
74
+ }
63
75
  }
64
76
  exports.ExifDate = ExifDate;
65
77
  //# sourceMappingURL=ExifDate.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ExifDate.js","sourceRoot":"","sources":["../src/ExifDate.ts"],"names":[],"mappings":";;;AAAA,iCAAgC;AAEhC,yCAA0C;AAC1C,mCAA8D;AAC9D,qCAA2C;AAE3C;;GAEG;AACH,MAAa,QAAQ;IAwCnB,YACW,IAAY,EAAE,qJAAqJ;IACnK,KAAa,EAAE,4CAA4C;IAC3D,GAAW,EAAE,OAAO;IACpB,QAAiB;QAHjB,SAAI,GAAJ,IAAI,CAAQ;QACZ,UAAK,GAAL,KAAK,CAAQ;QACb,QAAG,GAAH,GAAG,CAAQ;QACX,aAAQ,GAAR,QAAQ,CAAS;IACzB,CAAC;IA5CJ,MAAM,CAAC,OAAO,CAAC,IAAY;QACzB,OAAO,IAAI,CAAC,YAAY,CAAC,gBAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,CAAA;IACxD,CAAC;IAEO,MAAM,CAAC,YAAY,CAAC,IAAY,EAAE,IAAc;QACtD,IAAI,IAAA,cAAK,EAAC,IAAI,CAAC;YAAE,OAAM;QACvB,IAAI,GAAG,IAAA,YAAG,EAAC,IAAI,CAAC,CAAC,IAAI,EAAE,CAAA;QACvB,OAAO,IAAA,aAAK,EAAC,IAAI,EAAE,CAAC,GAAG,EAAE,EAAE,CACzB,IAAA,WAAG,EAAC,gBAAQ,CAAC,UAAU,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC,CACzE,CAAA;IACH,CAAC;IAED,sEAAsE;IAEtE,yEAAyE;IACzE,uEAAuE;IACvE,2CAA2C;IAE3C,MAAM,CAAC,cAAc,CAAC,IAAY;QAChC,OAAO,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC,SAAS,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC,CAAA;IACjE,CAAC;IAED,MAAM,CAAC,aAAa,CAAC,IAAY;QAC/B,OAAO,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC,CAAA;IACzD,CAAC;IAED,MAAM,CAAC,QAAQ,CAAC,IAAY;QAC1B,OAAO,IAAA,yBAAiB,EAAC;YACvB,GAAG,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC;YAC/B,GAAG,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC;SAC/B,CAAC,CAAA;IACJ,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,KAAK,EAAE,EAAE,CAAC,GAAG,EAAE,QAAQ,CAAC;YACnD,CAAC,CAAC,SAAS,CAAA;IACf,CAAC;IASD,MAAM;QACJ,OAAO,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,GAAG,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAA;IACtD,CAAC;IAED,WAAW;QACT,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAA;IAC3B,CAAC;IAED,YAAY;QACV,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAA;IAC3B,CAAC;IAED,QAAQ,CAAC,GAAG,GAAG,GAAG;QAChB,OAAO,GAAG,IAAI,CAAC,IAAI,GAAG,GAAG,GAAG,IAAA,aAAI,EAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAA;IACpE,CAAC;CACF;AA9DD,4BA8DC"}
1
+ {"version":3,"file":"ExifDate.js","sourceRoot":"","sources":["../src/ExifDate.ts"],"names":[],"mappings":"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"}
@@ -39,4 +39,18 @@ export declare class ExifDateTime {
39
39
  toExifString(): string;
40
40
  toString(): Maybe<string>;
41
41
  get isValid(): boolean;
42
+ toJSON(): {
43
+ _ctor: string;
44
+ year: number;
45
+ month: number;
46
+ day: number;
47
+ hour: number;
48
+ minute: number;
49
+ second: number;
50
+ millisecond: number | undefined;
51
+ tzoffsetMinutes: number | undefined;
52
+ rawValue: string | undefined;
53
+ zoneName: string | undefined;
54
+ };
55
+ static fromJSON(json: ReturnType<ExifDateTime["toJSON"]>): ExifDateTime;
42
56
  }
@@ -28,7 +28,7 @@ class ExifDateTime {
28
28
  return this.fromDateTime(luxon_1.DateTime.fromISO(iso, {
29
29
  setZone: true,
30
30
  zone: zone !== null && zone !== void 0 ? zone : Timezones_1.UnsetZone,
31
- }), (0, Maybe_1.orElse)(rawValue, iso));
31
+ }), rawValue !== null && rawValue !== void 0 ? rawValue : iso);
32
32
  }
33
33
  /**
34
34
  * Try to parse a date-time string from EXIF. If there is not both a date and
@@ -107,6 +107,7 @@ class ExifDateTime {
107
107
  ]);
108
108
  }
109
109
  static fromDateTime(dt, rawValue) {
110
+ var _a;
110
111
  if (dt == null ||
111
112
  !dt.isValid ||
112
113
  dt.toMillis() === 0 ||
@@ -114,7 +115,7 @@ class ExifDateTime {
114
115
  dt.year === 1) {
115
116
  return undefined;
116
117
  }
117
- return new ExifDateTime(dt.year, dt.month, dt.day, dt.hour, dt.minute, dt.second, dt.millisecond, dt.offset === Timezones_1.UnsetZoneOffsetMinutes ? undefined : dt.offset, rawValue, dt.zone.name === Timezones_1.UnsetZone.name ? undefined : dt.zoneName);
118
+ return new ExifDateTime(dt.year, dt.month, dt.day, dt.hour, dt.minute, dt.second, dt.millisecond, dt.offset === Timezones_1.UnsetZoneOffsetMinutes ? undefined : dt.offset, rawValue, ((_a = dt.zone) === null || _a === void 0 ? void 0 : _a.name) === Timezones_1.UnsetZone.name ? undefined : dt.zoneName);
118
119
  }
119
120
  get millis() {
120
121
  return this.millisecond;
@@ -143,8 +144,9 @@ class ExifDateTime {
143
144
  return this.toDateTime().toJSDate();
144
145
  }
145
146
  toISOString(options = {}) {
147
+ var _a;
146
148
  return (0, Maybe_1.denull)(this.toDateTime().toISO({
147
- suppressMilliseconds: (0, Maybe_1.orElse)(options.suppressMilliseconds, () => this.millisecond == null),
149
+ suppressMilliseconds: (_a = options.suppressMilliseconds) !== null && _a !== void 0 ? _a : this.millisecond == null,
148
150
  includeOffset: this.hasZone && options.includeOffset !== false,
149
151
  }));
150
152
  }
@@ -157,6 +159,24 @@ class ExifDateTime {
157
159
  get isValid() {
158
160
  return this.toDateTime().isValid;
159
161
  }
162
+ toJSON() {
163
+ return {
164
+ _ctor: "ExifDateTime",
165
+ year: this.year,
166
+ month: this.month,
167
+ day: this.day,
168
+ hour: this.hour,
169
+ minute: this.minute,
170
+ second: this.second,
171
+ millisecond: this.millisecond,
172
+ tzoffsetMinutes: this.tzoffsetMinutes,
173
+ rawValue: this.rawValue,
174
+ zoneName: this.zoneName,
175
+ };
176
+ }
177
+ static fromJSON(json) {
178
+ return new ExifDateTime(json.year, json.month, json.day, json.hour, json.minute, json.second, json.millisecond, json.tzoffsetMinutes, json.rawValue, json.zoneName);
179
+ }
160
180
  }
161
181
  exports.ExifDateTime = ExifDateTime;
162
182
  //# 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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"}
@@ -16,4 +16,12 @@ export declare class ExifTime {
16
16
  toString(): string;
17
17
  toISOString(): string;
18
18
  toExifString(): string;
19
+ toJSON(): {
20
+ _ctor: string;
21
+ hour: number;
22
+ minute: number;
23
+ second: number;
24
+ millisecond: number | undefined;
25
+ };
26
+ static fromJSON(json: ReturnType<ExifTime["toJSON"]>): ExifTime;
19
27
  }
package/dist/ExifTime.js CHANGED
@@ -42,6 +42,18 @@ class ExifTime {
42
42
  toExifString() {
43
43
  return this.toString();
44
44
  }
45
+ toJSON() {
46
+ return {
47
+ _ctor: "ExifTime",
48
+ hour: this.hour,
49
+ minute: this.minute,
50
+ second: this.second,
51
+ millisecond: this.millisecond,
52
+ };
53
+ }
54
+ static fromJSON(json) {
55
+ return new ExifTime(json.hour, json.minute, json.second, json.millisecond);
56
+ }
45
57
  }
46
58
  exports.ExifTime = ExifTime;
47
59
  //# sourceMappingURL=ExifTime.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ExifTime.js","sourceRoot":"","sources":["../src/ExifTime.ts"],"names":[],"mappings":";;;AAAA,iCAAgC;AAChC,mCAA2C;AAC3C,qCAAiD;AAEjD;;GAEG;AACH,MAAa,QAAQ;IAiBnB,YACW,IAAY,EACZ,MAAc,EACd,MAAc,EACd,WAAoB;QAHpB,SAAI,GAAJ,IAAI,CAAQ;QACZ,WAAM,GAAN,MAAM,CAAQ;QACd,WAAM,GAAN,MAAM,CAAQ;QACd,gBAAW,GAAX,WAAW,CAAS;IAC5B,CAAC;IArBJ,MAAM,CAAC,QAAQ,CAAC,IAAY;QAC1B,IAAI,IAAA,cAAK,EAAC,IAAI,CAAC;YAAE,OAAM;QACvB,IAAI,GAAG,IAAA,YAAG,EAAC,IAAI,CAAC,CAAC,IAAI,EAAE,CAAA;QACvB,OAAO,IAAA,aAAK,EACV,CAAC,cAAc,EAAE,YAAY,EAAE,YAAY,EAAE,UAAU,CAAC,EACxD,CAAC,GAAG,EAAE,EAAE,CACN,IAAA,WAAG,EAAC,gBAAQ,CAAC,UAAU,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC,CACrE,CAAA;IACH,CAAC;IAED,MAAM,CAAC,YAAY,CAAC,EAAY;QAC9B,OAAO,EAAE,IAAI,IAAI,IAAI,CAAC,EAAE,CAAC,OAAO;YAC9B,CAAC,CAAC,SAAS;YACX,CAAC,CAAC,IAAI,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,WAAW,CAAC,CAAA;IACjE,CAAC;IASD,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;CACF;AA7CD,4BA6CC"}
1
+ {"version":3,"file":"ExifTime.js","sourceRoot":"","sources":["../src/ExifTime.ts"],"names":[],"mappings":";;;AAAA,iCAAgC;AAChC,mCAA2C;AAC3C,qCAAiD;AAEjD;;GAEG;AACH,MAAa,QAAQ;IAiBnB,YACW,IAAY,EACZ,MAAc,EACd,MAAc,EACd,WAAoB;QAHpB,SAAI,GAAJ,IAAI,CAAQ;QACZ,WAAM,GAAN,MAAM,CAAQ;QACd,WAAM,GAAN,MAAM,CAAQ;QACd,gBAAW,GAAX,WAAW,CAAS;IAC5B,CAAC;IArBJ,MAAM,CAAC,QAAQ,CAAC,IAAY;QAC1B,IAAI,IAAA,cAAK,EAAC,IAAI,CAAC;YAAE,OAAM;QACvB,IAAI,GAAG,IAAA,YAAG,EAAC,IAAI,CAAC,CAAC,IAAI,EAAE,CAAA;QACvB,OAAO,IAAA,aAAK,EACV,CAAC,cAAc,EAAE,YAAY,EAAE,YAAY,EAAE,UAAU,CAAC,EACxD,CAAC,GAAG,EAAE,EAAE,CACN,IAAA,WAAG,EAAC,gBAAQ,CAAC,UAAU,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC,CACrE,CAAA;IACH,CAAC;IAED,MAAM,CAAC,YAAY,CAAC,EAAY;QAC9B,OAAO,EAAE,IAAI,IAAI,IAAI,CAAC,EAAE,CAAC,OAAO;YAC9B,CAAC,CAAC,SAAS;YACX,CAAC,CAAC,IAAI,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,WAAW,CAAC,CAAA;IACjE,CAAC;IASD,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;SAC9B,CAAA;IACH,CAAC;IAED,MAAM,CAAC,QAAQ,CAAC,IAAoC;QAClD,OAAO,IAAI,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,WAAW,CAAC,CAAA;IAC5E,CAAC;CACF;AA3DD,4BA2DC"}
@@ -9,6 +9,7 @@ export { ExifDate } from "./ExifDate";
9
9
  export { ExifDateTime } from "./ExifDateTime";
10
10
  export { ExifTime } from "./ExifTime";
11
11
  export { ExifToolTask } from "./ExifToolTask";
12
+ export { parseJSON } from "./JSON";
12
13
  export { offsetMinutesToZoneName } from "./Timezones";
13
14
  export type { Tags };
14
15
  export declare const DefaultExifToolPath: string;
@@ -35,7 +36,11 @@ declare type AdditionalWriteTags = {
35
36
  declare type ExpandedDateTags = {
36
37
  [K in keyof Tags]: (Tags[K] extends number ? number : Tags[K] extends ExifDateTime ? ExifDate | ExifDateTime : Tags[K]) | string;
37
38
  };
38
- export declare type WriteTags = ShortcutTags & AdditionalWriteTags & ExpandedDateTags;
39
+ declare type NotUndefined<T> = T extends undefined ? never : T;
40
+ export declare type DefinedOrNullValued<T> = {
41
+ [P in keyof T]: NotUndefined<T[P]> | null;
42
+ };
43
+ export declare type WriteTags = DefinedOrNullValued<ShortcutTags & AdditionalWriteTags & ExpandedDateTags>;
39
44
  export declare const DefaultMaxProcs: number;
40
45
  export interface ExifToolOptions extends bc.BatchClusterOptions, bc.BatchProcessOptions, bc.ChildProcessFactory {
41
46
  /**
@@ -291,7 +296,7 @@ export declare class ExifTool {
291
296
  *
292
297
  * @see BinaryExtractionTask for an example task implementation
293
298
  */
294
- enqueueTask<T>(task: () => ExifToolTask<T>): Promise<T>;
299
+ enqueueTask<T>(task: () => ExifToolTask<T> | Promise<ExifToolTask<T>>): Promise<T>;
295
300
  /**
296
301
  * @return the currently running ExifTool processes. Note that on Windows,
297
302
  * these are only the process IDs of the directly-spawned ExifTool wrapper,
package/dist/ExifTool.js CHANGED
@@ -19,7 +19,7 @@ var __importStar = (this && this.__importStar) || function (mod) {
19
19
  return result;
20
20
  };
21
21
  Object.defineProperty(exports, "__esModule", { value: true });
22
- exports.exiftool = exports.ExifTool = exports.DefaultExifToolOptions = exports.DefaultMaxProcs = exports.DefaultExiftoolArgs = exports.DefaultExifToolPath = exports.offsetMinutesToZoneName = exports.ExifToolTask = exports.ExifTime = exports.ExifDateTime = exports.ExifDate = void 0;
22
+ exports.exiftool = exports.ExifTool = exports.DefaultExifToolOptions = exports.DefaultMaxProcs = exports.DefaultExiftoolArgs = exports.DefaultExifToolPath = exports.offsetMinutesToZoneName = exports.parseJSON = exports.ExifToolTask = exports.ExifTime = exports.ExifDateTime = exports.ExifDate = void 0;
23
23
  const bc = __importStar(require("batch-cluster"));
24
24
  const _cp = __importStar(require("child_process"));
25
25
  const _fs = __importStar(require("fs"));
@@ -29,8 +29,8 @@ const _p = __importStar(require("process"));
29
29
  const AsyncRetry_1 = require("./AsyncRetry");
30
30
  const BinaryExtractionTask_1 = require("./BinaryExtractionTask");
31
31
  const BinaryToBufferTask_1 = require("./BinaryToBufferTask");
32
+ const DeleteAllTagsArgs_1 = require("./DeleteAllTagsArgs");
32
33
  const Lazy_1 = require("./Lazy");
33
- const Maybe_1 = require("./Maybe");
34
34
  const ReadRawTask_1 = require("./ReadRawTask");
35
35
  const ReadTask_1 = require("./ReadTask");
36
36
  const RewriteAllTagsTask_1 = require("./RewriteAllTagsTask");
@@ -45,6 +45,8 @@ var ExifTime_1 = require("./ExifTime");
45
45
  Object.defineProperty(exports, "ExifTime", { enumerable: true, get: function () { return ExifTime_1.ExifTime; } });
46
46
  var ExifToolTask_1 = require("./ExifToolTask");
47
47
  Object.defineProperty(exports, "ExifToolTask", { enumerable: true, get: function () { return ExifToolTask_1.ExifToolTask; } });
48
+ var JSON_1 = require("./JSON");
49
+ Object.defineProperty(exports, "parseJSON", { enumerable: true, get: function () { return JSON_1.parseJSON; } });
48
50
  var Timezones_1 = require("./Timezones");
49
51
  Object.defineProperty(exports, "offsetMinutesToZoneName", { enumerable: true, get: function () { return Timezones_1.offsetMinutesToZoneName; } });
50
52
  const isWin32 = (0, Lazy_1.lazy)(() => _os.platform() === "win32");
@@ -87,9 +89,6 @@ exports.DefaultExifToolOptions = Object.freeze({
87
89
  // see https://github.com/photostructure/exiftool-vendored.js/issues/34 :
88
90
  taskTimeoutMillis: 20000,
89
91
  onIdleIntervalMillis: 2000,
90
- // 1 ms seems to work on linux, but stderr and stdout may be buffered
91
- // differently on different OSes:
92
- streamFlushMillis: 7,
93
92
  taskRetries: 1,
94
93
  exiftoolPath: exports.DefaultExifToolPath,
95
94
  exiftoolArgs: exports.DefaultExiftoolArgs,
@@ -98,7 +97,14 @@ exports.DefaultExifToolOptions = Object.freeze({
98
97
  fail: "{ready}",
99
98
  exitCommand: "-stay_open\nFalse\n",
100
99
  versionCommand: new VersionTask_1.VersionTask().command,
101
- numericTags: ["*Duration*", "GPS*", "Orientation"],
100
+ numericTags: [
101
+ "*Duration*",
102
+ "GPSAltitude",
103
+ "GPSLatitude",
104
+ "GPSLongitude",
105
+ "GPSPosition",
106
+ "Orientation",
107
+ ],
102
108
  });
103
109
  /**
104
110
  * Manages delegating calls to a vendored running instance of ExifTool.
@@ -108,6 +114,7 @@ exports.DefaultExifToolOptions = Object.freeze({
108
114
  */
109
115
  class ExifTool {
110
116
  constructor(options = {}) {
117
+ var _a;
111
118
  /**
112
119
  * Register life cycle event listeners. Delegates to BatchProcess.
113
120
  */
@@ -120,7 +127,7 @@ class ExifTool {
120
127
  ...exports.DefaultExifToolOptions,
121
128
  ...options,
122
129
  };
123
- const ignoreShebang = (0, Maybe_1.orElse)(o.ignoreShebang, () => _ignoreShebang());
130
+ const ignoreShebang = (_a = o.ignoreShebang) !== null && _a !== void 0 ? _a : _ignoreShebang();
124
131
  const env = { ...o.exiftoolEnv, LANG: "C" };
125
132
  if ((0, String_1.notBlank)(_p.env.EXIFTOOL_HOME) && (0, String_1.blank)(env.EXIFTOOL_HOME)) {
126
133
  env.EXIFTOOL_HOME = _p.env.EXIFTOOL_HOME;
@@ -219,7 +226,7 @@ class ExifTool {
219
226
  * continue to exist if you re-`read` the file.
220
227
  */
221
228
  deleteAllTags(file) {
222
- return this.write(file, {}, ["-all="]);
229
+ return this.write(file, {}, DeleteAllTagsArgs_1.DeleteAllTagsArgs);
223
230
  }
224
231
  /**
225
232
  * Extract the low-resolution thumbnail in `path/to/image.jpg`
@@ -340,7 +347,7 @@ class ExifTool {
340
347
  * @see BinaryExtractionTask for an example task implementation
341
348
  */
342
349
  enqueueTask(task) {
343
- return (0, AsyncRetry_1.retryOnReject)(() => this.batchCluster.enqueueTask(task()), this.options.taskRetries);
350
+ return (0, AsyncRetry_1.retryOnReject)(async () => this.batchCluster.enqueueTask(await task()), this.options.taskRetries);
344
351
  }
345
352
  /**
346
353
  * @return the currently running ExifTool processes. Note that on Windows,
@@ -1 +1 @@
1
- {"version":3,"file":"ExifTool.js","sourceRoot":"","sources":["../src/ExifTool.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ExifTool.js","sourceRoot":"","sources":["../src/ExifTool.ts"],"names":[],"mappings":"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"}
@@ -21,15 +21,14 @@ var __importStar = (this && this.__importStar) || function (mod) {
21
21
  Object.defineProperty(exports, "__esModule", { value: true });
22
22
  exports.ExifToolTask = void 0;
23
23
  const bc = __importStar(require("batch-cluster"));
24
- const Maybe_1 = require("./Maybe");
25
24
  const String_1 = require("./String");
26
25
  class ExifToolTask extends bc.Task {
27
26
  constructor(args) {
28
27
  super(ExifToolTask.renderCommand(args), (stdout, stderr, passed) => {
29
28
  let err;
30
29
  if ((0, String_1.notBlank)(stderr) || !passed) {
31
- this.errors.push((0, Maybe_1.orElse)(stderr, "failed"));
32
- err = new Error((0, String_1.stripPrefix)((0, Maybe_1.orElse)(stderr, stdout).trim(), "error: "));
30
+ this.errors.push(stderr !== null && stderr !== void 0 ? stderr : "failed");
31
+ err = new Error((0, String_1.stripPrefix)((stderr !== null && stderr !== void 0 ? stderr : stdout).trim(), "error: "));
33
32
  }
34
33
  return this.parse(stdout, err);
35
34
  });
@@ -1 +1 @@
1
- {"version":3,"file":"ExifToolTask.js","sourceRoot":"","sources":["../src/ExifToolTask.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAAA,kDAAmC;AAEnC,mCAAgC;AAChC,qCAAgD;AAEhD,MAAsB,YAAgB,SAAQ,EAAE,CAAC,IAAO;IAOtD,YAAqB,IAAc;QACjC,KAAK,CAAC,YAAY,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE;YACjE,IAAI,GAAG,CAAA;YACP,IAAI,IAAA,iBAAQ,EAAC,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE;gBAC/B,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAA,cAAM,EAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAA;gBAC1C,GAAG,GAAG,IAAI,KAAK,CAAC,IAAA,oBAAW,EAAC,IAAA,cAAM,EAAC,MAAM,EAAE,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,SAAS,CAAC,CAAC,CAAA;aACvE;YACD,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;QAChC,CAAC,CAAC,CAAA;QARiB,SAAI,GAAJ,IAAI,CAAU;QAF1B,WAAM,GAAa,EAAE,CAAA;IAW9B,CAAC;IAfD,MAAM,CAAC,aAAa,CAAC,IAAc;QACjC,OAAO,CAAC,GAAG,IAAI,EAAE,oBAAoB,EAAE,UAAU,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IACnE,CAAC;IAiBD,QAAQ,CAAC,GAAW;QAClB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;IACvB,CAAC;CACF;AAvBD,oCAuBC"}
1
+ {"version":3,"file":"ExifToolTask.js","sourceRoot":"","sources":["../src/ExifToolTask.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAAA,kDAAmC;AACnC,qCAAgD;AAEhD,MAAsB,YAAgB,SAAQ,EAAE,CAAC,IAAO;IAOtD,YAAqB,IAAc;QACjC,KAAK,CAAC,YAAY,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE;YACjE,IAAI,GAAG,CAAA;YACP,IAAI,IAAA,iBAAQ,EAAC,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE;gBAC/B,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,aAAN,MAAM,cAAN,MAAM,GAAI,QAAQ,CAAC,CAAA;gBACpC,GAAG,GAAG,IAAI,KAAK,CAAC,IAAA,oBAAW,EAAC,CAAC,MAAM,aAAN,MAAM,cAAN,MAAM,GAAI,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,SAAS,CAAC,CAAC,CAAA;aACnE;YACD,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;QAChC,CAAC,CAAC,CAAA;QARiB,SAAI,GAAJ,IAAI,CAAU;QAF1B,WAAM,GAAa,EAAE,CAAA;IAW9B,CAAC;IAfD,MAAM,CAAC,aAAa,CAAC,IAAc;QACjC,OAAO,CAAC,GAAG,IAAI,EAAE,oBAAoB,EAAE,UAAU,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IACnE,CAAC;IAiBD,QAAQ,CAAC,GAAW;QAClB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;IACvB,CAAC;CACF;AAvBD,oCAuBC"}
package/dist/File.d.ts ADDED
@@ -0,0 +1 @@
1
+ export declare function isFileEmpty(path: string): Promise<boolean>;
package/dist/File.js ADDED
@@ -0,0 +1,30 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.isFileEmpty = void 0;
4
+ const fs_1 = require("fs");
5
+ const String_1 = require("./String");
6
+ async function isFileEmpty(path) {
7
+ if ((0, String_1.blank)(path)) {
8
+ throw new Error("isFileEmpty(): blank path");
9
+ }
10
+ // TODO: convert this to using fs/promises once node 12 is EOL (2022-04-30)
11
+ try {
12
+ const s = await new Promise((res, rej) => {
13
+ try {
14
+ (0, fs_1.stat)(path, (err, val) => (err == null ? res(val) : rej(err)));
15
+ }
16
+ catch (err) {
17
+ rej(err);
18
+ }
19
+ });
20
+ return s == null || s.size === 0;
21
+ }
22
+ catch (err) {
23
+ if (err.code === "ENOENT")
24
+ return true;
25
+ else
26
+ throw err;
27
+ }
28
+ }
29
+ exports.isFileEmpty = isFileEmpty;
30
+ //# sourceMappingURL=File.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"File.js","sourceRoot":"","sources":["../src/File.ts"],"names":[],"mappings":";;;AAAA,2BAAgC;AAChC,qCAAgC;AAEzB,KAAK,UAAU,WAAW,CAAC,IAAY;IAC5C,IAAI,IAAA,cAAK,EAAC,IAAI,CAAC,EAAE;QACf,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAA;KAC7C;IAED,2EAA2E;IAC3E,IAAI;QACF,MAAM,CAAC,GAAG,MAAM,IAAI,OAAO,CAAQ,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;YAC9C,IAAI;gBACF,IAAA,SAAI,EAAC,IAAI,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;aAC9D;YAAC,OAAO,GAAG,EAAE;gBACZ,GAAG,CAAC,GAAG,CAAC,CAAA;aACT;QACH,CAAC,CAAC,CAAA;QACF,OAAO,CAAC,IAAI,IAAI,IAAI,CAAC,CAAC,IAAI,KAAK,CAAC,CAAA;KACjC;IAAC,OAAO,GAAQ,EAAE;QACjB,IAAI,GAAG,CAAC,IAAI,KAAK,QAAQ;YAAE,OAAO,IAAI,CAAA;;YACjC,MAAM,GAAG,CAAA;KACf;AACH,CAAC;AAnBD,kCAmBC"}
package/dist/JSON.d.ts ADDED
@@ -0,0 +1 @@
1
+ export declare function parseJSON(s: string): any;
package/dist/JSON.js ADDED
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.parseJSON = void 0;
4
+ const ExifDate_1 = require("./ExifDate");
5
+ const ExifDateTime_1 = require("./ExifDateTime");
6
+ const ExifTime_1 = require("./ExifTime");
7
+ const Revivers = {
8
+ ExifDateTime: (ea) => ExifDateTime_1.ExifDateTime.fromJSON(ea),
9
+ ExifDate: (ea) => ExifDate_1.ExifDate.fromJSON(ea),
10
+ ExifTime: (ea) => ExifTime_1.ExifTime.fromJSON(ea),
11
+ };
12
+ function parseJSON(s) {
13
+ return JSON.parse(s, (_key, value) => { var _a, _b; return (_b = (_a = Revivers[value === null || value === void 0 ? void 0 : value._ctor]) === null || _a === void 0 ? void 0 : _a.call(Revivers, value)) !== null && _b !== void 0 ? _b : value; });
14
+ }
15
+ exports.parseJSON = parseJSON;
16
+ //# sourceMappingURL=JSON.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"JSON.js","sourceRoot":"","sources":["../src/JSON.ts"],"names":[],"mappings":";;;AAAA,yCAAqC;AACrC,iDAA6C;AAC7C,yCAAqC;AAErC,MAAM,QAAQ,GAAQ;IACpB,YAAY,EAAE,CAAC,EAAO,EAAE,EAAE,CAAC,2BAAY,CAAC,QAAQ,CAAC,EAAE,CAAC;IACpD,QAAQ,EAAE,CAAC,EAAO,EAAE,EAAE,CAAC,mBAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;IAC5C,QAAQ,EAAE,CAAC,EAAO,EAAE,EAAE,CAAC,mBAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;CAC7C,CAAA;AAED,SAAgB,SAAS,CAAC,CAAS;IACjC,OAAO,IAAI,CAAC,KAAK,CACf,CAAC,EACD,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,eAAC,OAAA,MAAA,MAAA,QAAQ,CAAC,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,KAAK,CAAC,+CAAtB,QAAQ,EAAiB,KAAK,CAAC,mCAAI,KAAK,CAAA,EAAA,CAC1D,CAAA;AACH,CAAC;AALD,8BAKC"}
package/dist/Maybe.d.ts CHANGED
@@ -1,7 +1,6 @@
1
1
  export declare type Maybe<T> = T | undefined;
2
2
  export declare type MaybeNull<T> = Maybe<T> | null;
3
3
  export declare function map<T, U>(maybeT: MaybeNull<T>, f: (t: T) => U): Maybe<U>;
4
- export declare function orElse<T>(obj: MaybeNull<T>, defaultValue: T | (() => T)): T;
5
4
  export declare function first<T, U>(iter: Iterable<Maybe<T>>, f: (t: T) => Maybe<U>): Maybe<U>;
6
5
  export declare function firstDefinedThunk<T>(iter: Iterable<() => Maybe<T>>): Maybe<T>;
7
6
  /**