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.
- package/CHANGELOG.md +36 -0
- package/README.md +36 -4
- package/dist/Array.d.ts +1 -0
- package/dist/Array.js +9 -1
- package/dist/Array.js.map +1 -1
- package/dist/DeleteAllTagsArgs.d.ts +1 -0
- package/dist/DeleteAllTagsArgs.js +5 -0
- package/dist/DeleteAllTagsArgs.js.map +1 -0
- package/dist/ExifDate.d.ts +8 -0
- package/dist/ExifDate.js +12 -0
- package/dist/ExifDate.js.map +1 -1
- package/dist/ExifDateTime.d.ts +14 -0
- package/dist/ExifDateTime.js +23 -3
- package/dist/ExifDateTime.js.map +1 -1
- package/dist/ExifTime.d.ts +8 -0
- package/dist/ExifTime.js +12 -0
- package/dist/ExifTime.js.map +1 -1
- package/dist/ExifTool.d.ts +7 -2
- package/dist/ExifTool.js +16 -9
- package/dist/ExifTool.js.map +1 -1
- package/dist/ExifToolTask.js +2 -3
- package/dist/ExifToolTask.js.map +1 -1
- package/dist/File.d.ts +1 -0
- package/dist/File.js +30 -0
- package/dist/File.js.map +1 -0
- package/dist/JSON.d.ts +1 -0
- package/dist/JSON.js +16 -0
- package/dist/JSON.js.map +1 -0
- package/dist/Maybe.d.ts +0 -1
- package/dist/Maybe.js +1 -10
- package/dist/Maybe.js.map +1 -1
- package/dist/ReadRawTask.js +1 -2
- package/dist/ReadRawTask.js.map +1 -1
- package/dist/ReadTask.d.ts +2 -2
- package/dist/ReadTask.js +37 -32
- package/dist/ReadTask.js.map +1 -1
- package/dist/RewriteAllTagsTask.js +9 -5
- package/dist/RewriteAllTagsTask.js.map +1 -1
- package/dist/Sidecars.d.ts +2 -0
- package/dist/Sidecars.js +11 -0
- package/dist/Sidecars.js.map +1 -0
- package/dist/Tags.d.ts +30 -12
- package/dist/Timezones.js +6 -3
- package/dist/Timezones.js.map +1 -1
- package/dist/WriteTask.d.ts +2 -2
- package/dist/WriteTask.js +18 -4
- package/dist/WriteTask.js.map +1 -1
- 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/
|
|
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 @@
|
|
|
1
|
+
{"version":3,"file":"DeleteAllTagsArgs.js","sourceRoot":"","sources":["../src/DeleteAllTagsArgs.ts"],"names":[],"mappings":";;;AAAa,QAAA,iBAAiB,GAAG,CAAC,OAAO,CAAC,CAAA"}
|
package/dist/ExifDate.d.ts
CHANGED
|
@@ -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
|
package/dist/ExifDate.js.map
CHANGED
|
@@ -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;
|
|
1
|
+
{"version":3,"file":"ExifDate.js","sourceRoot":"","sources":["../src/ExifDate.ts"],"names":[],"mappings":"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"}
|
package/dist/ExifDateTime.d.ts
CHANGED
|
@@ -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
|
}
|
package/dist/ExifDateTime.js
CHANGED
|
@@ -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
|
-
}),
|
|
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: (
|
|
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
|
package/dist/ExifDateTime.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ExifDateTime.js","sourceRoot":"","sources":["../src/ExifDateTime.ts"],"names":[],"mappings":";;;AAAA,iCAAwD;AACxD,yCAA2C;AAC3C,
|
|
1
|
+
{"version":3,"file":"ExifDateTime.js","sourceRoot":"","sources":["../src/ExifDateTime.ts"],"names":[],"mappings":"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"}
|
package/dist/ExifTime.d.ts
CHANGED
|
@@ -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
|
package/dist/ExifTime.js.map
CHANGED
|
@@ -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;
|
|
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"}
|
package/dist/ExifTool.d.ts
CHANGED
|
@@ -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
|
-
|
|
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: [
|
|
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 = (
|
|
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, {},
|
|
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,
|
package/dist/ExifTool.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ExifTool.js","sourceRoot":"","sources":["../src/ExifTool.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAAA,kDAAmC;AACnC,mDAAoC;AACpC,wCAAyB;AACzB,wCAAyB;AACzB,4CAA6B;AAC7B,4CAA6B;AAC7B,6CAA4C;AAC5C,iEAA6D;AAC7D,6DAAyD;
|
|
1
|
+
{"version":3,"file":"ExifTool.js","sourceRoot":"","sources":["../src/ExifTool.ts"],"names":[],"mappings":"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"}
|
package/dist/ExifToolTask.js
CHANGED
|
@@ -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(
|
|
32
|
-
err = new Error((0, String_1.stripPrefix)((0
|
|
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
|
});
|
package/dist/ExifToolTask.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ExifToolTask.js","sourceRoot":"","sources":["../src/ExifToolTask.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAAA,kDAAmC;
|
|
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
|
package/dist/File.js.map
ADDED
|
@@ -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
|
package/dist/JSON.js.map
ADDED
|
@@ -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
|
/**
|