exiftool-vendored 16.1.0 → 16.4.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 +38 -1
- package/README.md +1 -3
- package/dist/ExifDateTime.d.ts +19 -1
- package/dist/ExifDateTime.js +20 -0
- package/dist/ExifDateTime.js.map +1 -1
- package/dist/ExifTool.d.ts +14 -2
- package/dist/ExifTool.js +6 -3
- package/dist/ExifTool.js.map +1 -1
- package/dist/Object.d.ts +4 -0
- package/dist/Object.js +11 -1
- package/dist/Object.js.map +1 -1
- package/dist/ReadTask.d.ts +1 -7
- package/dist/ReadTask.js +127 -116
- package/dist/ReadTask.js.map +1 -1
- package/dist/ResourceEvent.d.ts +13 -0
- package/dist/ResourceEvent.js +3 -0
- package/dist/ResourceEvent.js.map +1 -0
- package/dist/String.d.ts +0 -1
- package/dist/String.js +1 -9
- package/dist/String.js.map +1 -1
- package/dist/Struct.js +4 -4
- package/dist/Struct.js.map +1 -1
- package/dist/Tags.d.ts +386 -1032
- package/dist/Version.d.ts +13 -0
- package/dist/Version.js +3 -0
- package/dist/Version.js.map +1 -0
- package/dist/WriteTask.d.ts +1 -0
- package/dist/WriteTask.js +21 -6
- package/dist/WriteTask.js.map +1 -1
- package/package.json +15 -15
package/CHANGELOG.md
CHANGED
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
Providing the flexibility to reversion the API or UPDATE version slots as
|
|
6
6
|
features or bugfixes arise and using ExifTool's version number is at odds with
|
|
7
7
|
each other, so this library follows [Semver](https://semver.org/), and the
|
|
8
|
-
vendored versions of ExifTool match the version they vendor.
|
|
8
|
+
vendored versions of ExifTool match the version that they vendor.
|
|
9
9
|
|
|
10
10
|
### The `MAJOR` or `API` version is incremented for
|
|
11
11
|
|
|
@@ -25,6 +25,43 @@ vendored versions of ExifTool match the version they vendor.
|
|
|
25
25
|
|
|
26
26
|
## Version history
|
|
27
27
|
|
|
28
|
+
### v16.4.0
|
|
29
|
+
|
|
30
|
+
- 🐞 Struct values are now properly encoded when writing. Specifically, prior
|
|
31
|
+
versions didn't support JSON string values (and now WriteTask knows how to
|
|
32
|
+
serialize those characters to make ExifTool happy)
|
|
33
|
+
|
|
34
|
+
- 📦/💔 `String.htmlEncode` was made private: it was a special-purpose function
|
|
35
|
+
just for `WriteTask`.
|
|
36
|
+
|
|
37
|
+
- 📦 Added Node 18 to test matrix. Node 12 will be dropped from support in the
|
|
38
|
+
next version.
|
|
39
|
+
|
|
40
|
+
- 📦 Updated dependencies
|
|
41
|
+
|
|
42
|
+
### v16.3.0
|
|
43
|
+
|
|
44
|
+
- ✨ Added `ExifDateTime.fromMillis()`
|
|
45
|
+
|
|
46
|
+
- 📦 Fixed hanging sentence in README. Rebuild docs.
|
|
47
|
+
|
|
48
|
+
- 📦 Migrated `omit()` to `Object`.
|
|
49
|
+
|
|
50
|
+
### v16.2.0
|
|
51
|
+
|
|
52
|
+
- ✨ Added read/write support for
|
|
53
|
+
[History](https://exiftool.org/TagNames/XMP.html#ResourceEvent) and
|
|
54
|
+
[Versions](https://exiftool.org/TagNames/XMP.html#Version) structs.
|
|
55
|
+
|
|
56
|
+
- These two tags return typed optional struct arrays.
|
|
57
|
+
|
|
58
|
+
- Via the new `StructAppendTags` interface, `ExifTool.write()` now accepts
|
|
59
|
+
plus-suffixed variants of these tags to append to existing records.
|
|
60
|
+
|
|
61
|
+
- 🌱 ExifTool upgraded to [v12.41](https://exiftool.org/history.html#v12.41).
|
|
62
|
+
|
|
63
|
+
- 📦 Updated dependencies
|
|
64
|
+
|
|
28
65
|
### v16.1.0
|
|
29
66
|
|
|
30
67
|
- ✨ Updated dependencies, including batch-cluster
|
package/README.md
CHANGED
|
@@ -439,11 +439,9 @@ The `yarn mktags ../path/to/examples` target reads all tags found in a directory
|
|
|
439
439
|
hierarchy of sample images and videos, and parses the results.
|
|
440
440
|
|
|
441
441
|
`exiftool-vendored` v16.0.0 on a 2019 AMD Ryzen 3900X running Ubuntu 20.04 on an
|
|
442
|
-
SSD can process 20+ files per second
|
|
442
|
+
SSD can process 20+ files per second per thread, or 500+ files per second when
|
|
443
443
|
utilizing all CPU threads.
|
|
444
444
|
|
|
445
|
-
It can read, parse,
|
|
446
|
-
|
|
447
445
|
### Batch mode
|
|
448
446
|
|
|
449
447
|
Using ExifTool's `-stay_open` batch mode means we can reuse a single
|
package/dist/ExifDateTime.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { DateTime, ToISOTimeOptions, Zone, ZoneOptions } from "luxon";
|
|
1
|
+
import { DateTime, DateTimeJSOptions, ToISOTimeOptions, Zone, ZoneOptions } from "luxon";
|
|
2
2
|
import { Maybe } from "./Maybe";
|
|
3
3
|
/**
|
|
4
4
|
* Encodes an ExifDateTime with an optional tz offset in minutes.
|
|
@@ -30,6 +30,24 @@ export declare class ExifDateTime {
|
|
|
30
30
|
static fromExifStrict(text: Maybe<string>, zone?: Maybe<string>): Maybe<ExifDateTime>;
|
|
31
31
|
static fromExifLoose(text: Maybe<string>, defaultZone?: Maybe<string>): Maybe<ExifDateTime>;
|
|
32
32
|
static fromDateTime(dt: DateTime, rawValue?: string): Maybe<ExifDateTime>;
|
|
33
|
+
/**
|
|
34
|
+
* Create an ExifDateTime from a number of milliseconds since the epoch
|
|
35
|
+
* (meaning since 1 January 1970 00:00:00 UTC). Uses the default zone.
|
|
36
|
+
*
|
|
37
|
+
* @param millis - a number of milliseconds since 1970 UTC
|
|
38
|
+
*
|
|
39
|
+
* @param options.rawValue - the original parsed string input
|
|
40
|
+
* @param options.zone - the zone to place the DateTime into. Defaults to 'local'.
|
|
41
|
+
* @param options.locale - a locale to set on the resulting DateTime instance
|
|
42
|
+
* @param options.outputCalendar - the output calendar to set on the resulting DateTime instance
|
|
43
|
+
* @param options.numberingSystem - the numbering system to set on the resulting DateTime instance
|
|
44
|
+
*/
|
|
45
|
+
static fromMillis(millis: number, options?: DateTimeJSOptions & {
|
|
46
|
+
rawValue?: string;
|
|
47
|
+
}): ExifDateTime;
|
|
48
|
+
static now(opts?: DateTimeJSOptions & {
|
|
49
|
+
rawValue?: string;
|
|
50
|
+
}): ExifDateTime;
|
|
33
51
|
constructor(year: number, month: number, day: number, hour: number, minute: number, second: number, millisecond?: number | undefined, tzoffsetMinutes?: number | undefined, rawValue?: string | undefined, zoneName?: string | undefined);
|
|
34
52
|
get millis(): number | undefined;
|
|
35
53
|
get hasZone(): boolean;
|
package/dist/ExifDateTime.js
CHANGED
|
@@ -16,6 +16,7 @@ exports.ExifDateTime = void 0;
|
|
|
16
16
|
const luxon_1 = require("luxon");
|
|
17
17
|
const DateTime_1 = require("./DateTime");
|
|
18
18
|
const Maybe_1 = require("./Maybe");
|
|
19
|
+
const Object_1 = require("./Object");
|
|
19
20
|
const String_1 = require("./String");
|
|
20
21
|
const Timezones_1 = require("./Timezones");
|
|
21
22
|
/**
|
|
@@ -131,6 +132,25 @@ class ExifDateTime {
|
|
|
131
132
|
}
|
|
132
133
|
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);
|
|
133
134
|
}
|
|
135
|
+
/**
|
|
136
|
+
* Create an ExifDateTime from a number of milliseconds since the epoch
|
|
137
|
+
* (meaning since 1 January 1970 00:00:00 UTC). Uses the default zone.
|
|
138
|
+
*
|
|
139
|
+
* @param millis - a number of milliseconds since 1970 UTC
|
|
140
|
+
*
|
|
141
|
+
* @param options.rawValue - the original parsed string input
|
|
142
|
+
* @param options.zone - the zone to place the DateTime into. Defaults to 'local'.
|
|
143
|
+
* @param options.locale - a locale to set on the resulting DateTime instance
|
|
144
|
+
* @param options.outputCalendar - the output calendar to set on the resulting DateTime instance
|
|
145
|
+
* @param options.numberingSystem - the numbering system to set on the resulting DateTime instance
|
|
146
|
+
*/
|
|
147
|
+
static fromMillis(millis, options = {}) {
|
|
148
|
+
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
|
|
149
|
+
return this.fromDateTime(luxon_1.DateTime.fromMillis(millis, (0, Object_1.omit)(options, "rawValue")), options.rawValue);
|
|
150
|
+
}
|
|
151
|
+
static now(opts = {}) {
|
|
152
|
+
return this.fromMillis(Date.now(), opts);
|
|
153
|
+
}
|
|
134
154
|
get millis() {
|
|
135
155
|
return this.millisecond;
|
|
136
156
|
}
|
package/dist/ExifDateTime.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ExifDateTime.js","sourceRoot":"","sources":["../src/ExifDateTime.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,
|
|
1
|
+
{"version":3,"file":"ExifDateTime.js","sourceRoot":"","sources":["../src/ExifDateTime.ts"],"names":[],"mappings":"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"}
|
package/dist/ExifTool.d.ts
CHANGED
|
@@ -7,15 +7,17 @@ import { ExifToolTask } from "./ExifToolTask";
|
|
|
7
7
|
import { ICCProfileTags } from "./ICCProfileTags";
|
|
8
8
|
import { Maybe } from "./Maybe";
|
|
9
9
|
import { PreviewTag } from "./PreviewTag";
|
|
10
|
+
import { ResourceEvent } from "./ResourceEvent";
|
|
10
11
|
import { Struct } from "./Struct";
|
|
11
12
|
import { APP12Tags, APP14Tags, APP1Tags, APP4Tags, APP5Tags, APP6Tags, CompositeTags, EXIFTags, ExifToolTags, FileTags, FlashPixTags, IPTCTags, JFIFTags, MakerNotesTags, MetaTags, MPFTags, PanasonicRawTags, PhotoshopTags, PrintIMTags, QuickTimeTags, RAFTags, RIFFTags, Tags, XMPTags } from "./Tags";
|
|
13
|
+
import { Version } from "./Version";
|
|
12
14
|
export { ExifDate } from "./ExifDate";
|
|
13
15
|
export { ExifDateTime } from "./ExifDateTime";
|
|
14
16
|
export { ExifTime } from "./ExifTime";
|
|
15
17
|
export { ExifToolTask } from "./ExifToolTask";
|
|
16
18
|
export { parseJSON } from "./JSON";
|
|
17
19
|
export { offsetMinutesToZoneName, UnsetZone, UnsetZoneName, UnsetZoneOffsetMinutes, } from "./Timezones";
|
|
18
|
-
export type { AdditionalWriteTags, APP12Tags, APP14Tags, APP1Tags, APP4Tags, APP5Tags, APP6Tags, ApplicationRecordTags, CompositeTags, EXIFTags, ExifToolTags, ExpandedDateTags, FileTags, FlashPixTags, ICCProfileTags, IPTCTags, JFIFTags, MakerNotesTags, Maybe, MetaTags, MPFTags, Omit, PanasonicRawTags, PhotoshopTags, PrintIMTags, QuickTimeTags, RAFTags, RIFFTags, Struct, Tags, XMPTags, };
|
|
20
|
+
export type { AdditionalWriteTags, APP12Tags, APP14Tags, APP1Tags, APP4Tags, APP5Tags, APP6Tags, ApplicationRecordTags, CompositeTags, EXIFTags, ExifToolTags, ExpandedDateTags, FileTags, FlashPixTags, ICCProfileTags, IPTCTags, JFIFTags, MakerNotesTags, Maybe, MetaTags, MPFTags, Omit, PanasonicRawTags, PhotoshopTags, PrintIMTags, QuickTimeTags, RAFTags, ResourceEvent, RIFFTags, Struct, Tags, Version, XMPTags, };
|
|
19
21
|
export declare const DefaultExifToolPath: string;
|
|
20
22
|
export declare const DefaultExiftoolArgs: string[];
|
|
21
23
|
/**
|
|
@@ -40,7 +42,17 @@ export declare type Defined<T> = T extends undefined ? never : T;
|
|
|
40
42
|
export declare type DefinedOrNullValued<T> = {
|
|
41
43
|
[P in keyof T]: Defined<T[P]> | null;
|
|
42
44
|
};
|
|
43
|
-
export
|
|
45
|
+
export interface StructAppendTags {
|
|
46
|
+
/**
|
|
47
|
+
* Use this to **append** to existing History records.
|
|
48
|
+
*/
|
|
49
|
+
"History+"?: ResourceEvent | ResourceEvent[];
|
|
50
|
+
/**
|
|
51
|
+
* Use this to **append** to existing Version records.
|
|
52
|
+
*/
|
|
53
|
+
"Versions+"?: Version | Version[];
|
|
54
|
+
}
|
|
55
|
+
export declare type WriteTags = DefinedOrNullValued<ShortcutTags & AdditionalWriteTags & ExpandedDateTags & StructAppendTags>;
|
|
44
56
|
export declare const DefaultMaxProcs: number;
|
|
45
57
|
export interface ExifToolOptions extends bc.BatchClusterOptions, bc.BatchProcessOptions, bc.ChildProcessFactory {
|
|
46
58
|
/**
|
package/dist/ExifTool.js
CHANGED
|
@@ -22,6 +22,9 @@ var __importStar = (this && this.__importStar) || function (mod) {
|
|
|
22
22
|
__setModuleDefault(result, mod);
|
|
23
23
|
return result;
|
|
24
24
|
};
|
|
25
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
26
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
27
|
+
};
|
|
25
28
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
29
|
exports.exiftool = exports.ExifTool = exports.DefaultExifToolOptions = exports.DefaultMaxProcs = exports.DefaultExiftoolArgs = exports.DefaultExifToolPath = exports.UnsetZoneOffsetMinutes = exports.UnsetZoneName = exports.UnsetZone = exports.offsetMinutesToZoneName = exports.parseJSON = exports.ExifToolTask = exports.ExifTime = exports.ExifDateTime = exports.ExifDate = void 0;
|
|
27
30
|
const bc = __importStar(require("batch-cluster"));
|
|
@@ -29,7 +32,7 @@ const _cp = __importStar(require("child_process"));
|
|
|
29
32
|
const _fs = __importStar(require("fs"));
|
|
30
33
|
const _os = __importStar(require("os"));
|
|
31
34
|
const _path = __importStar(require("path"));
|
|
32
|
-
const
|
|
35
|
+
const process_1 = __importDefault(require("process"));
|
|
33
36
|
const AsyncRetry_1 = require("./AsyncRetry");
|
|
34
37
|
const BinaryExtractionTask_1 = require("./BinaryExtractionTask");
|
|
35
38
|
const BinaryToBufferTask_1 = require("./BinaryToBufferTask");
|
|
@@ -138,8 +141,8 @@ class ExifTool {
|
|
|
138
141
|
};
|
|
139
142
|
const ignoreShebang = (_a = o.ignoreShebang) !== null && _a !== void 0 ? _a : _ignoreShebang();
|
|
140
143
|
const env = { ...o.exiftoolEnv, LANG: "C" };
|
|
141
|
-
if ((0, String_1.notBlank)(
|
|
142
|
-
env.EXIFTOOL_HOME =
|
|
144
|
+
if ((0, String_1.notBlank)(process_1.default.env.EXIFTOOL_HOME) && (0, String_1.blank)(env.EXIFTOOL_HOME)) {
|
|
145
|
+
env.EXIFTOOL_HOME = process_1.default.env.EXIFTOOL_HOME;
|
|
143
146
|
}
|
|
144
147
|
const spawnOpts = {
|
|
145
148
|
stdio: "pipe",
|
package/dist/ExifTool.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ExifTool.js","sourceRoot":"","sources":["../src/ExifTool.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"ExifTool.js","sourceRoot":"","sources":["../src/ExifTool.ts"],"names":[],"mappings":"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"}
|
package/dist/Object.d.ts
CHANGED
|
@@ -2,3 +2,7 @@ import { Maybe } from "./Maybe";
|
|
|
2
2
|
export declare function keys<T extends object, K extends string & keyof T>(o: T): K[];
|
|
3
3
|
export declare function isFunction(obj: any): obj is () => any;
|
|
4
4
|
export declare function fromEntries(arr: Maybe<[Maybe<string>, any]>[], obj?: any): any;
|
|
5
|
+
export declare type Unpick<T, U> = {
|
|
6
|
+
[P in keyof T]: P extends U ? never : T[P];
|
|
7
|
+
};
|
|
8
|
+
export declare function omit<T extends Record<string, any>, S extends string>(t: T, ...keysToOmit: S[]): Unpick<T, S>;
|
package/dist/Object.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.fromEntries = exports.isFunction = exports.keys = void 0;
|
|
3
|
+
exports.omit = exports.fromEntries = exports.isFunction = exports.keys = void 0;
|
|
4
4
|
// eslint-disable-next-line @typescript-eslint/ban-types
|
|
5
5
|
function keys(o) {
|
|
6
6
|
return o == null
|
|
@@ -30,4 +30,14 @@ function fromEntries(arr, obj) {
|
|
|
30
30
|
return obj;
|
|
31
31
|
}
|
|
32
32
|
exports.fromEntries = fromEntries;
|
|
33
|
+
function omit(t, ...keysToOmit) {
|
|
34
|
+
if (t == null)
|
|
35
|
+
return {};
|
|
36
|
+
const result = { ...t };
|
|
37
|
+
for (const ea of keysToOmit) {
|
|
38
|
+
delete result[ea];
|
|
39
|
+
}
|
|
40
|
+
return result;
|
|
41
|
+
}
|
|
42
|
+
exports.omit = omit;
|
|
33
43
|
//# sourceMappingURL=Object.js.map
|
package/dist/Object.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Object.js","sourceRoot":"","sources":["../src/Object.ts"],"names":[],"mappings":";;;AAEA,wDAAwD;AACxD,SAAgB,IAAI,CAA+C,CAAI;IACrE,OAAO,CAAC,IAAI,IAAI;QACd,CAAC,CAAC,EAAE;QACJ,CAAC,CAAE,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAC5B,CAAC,EAAE,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAC9B,CAAA;AACf,CAAC;AAND,oBAMC;AAED,SAAgB,UAAU,CAAC,GAAQ;IACjC,OAAO,OAAO,GAAG,KAAK,UAAU,CAAA;AAClC,CAAC;AAFD,gCAEC;AAED,SAAgB,WAAW,CACzB,GAAkC,EAClC,GAAS;IAET,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,GAAG,CAAA;IAC/C,4DAA4D;IAC5D,KAAK,MAAM,EAAE,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,IAAI,CAAC,EAAE;QAC/C,IAAI,EAAE,IAAI,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE;YACnC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,CAAA;YACjB,qBAAqB;YACrB,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,KAAK,SAAS,EAAE;gBAChC,IAAI,OAAO,GAAG,KAAK,QAAQ;oBAAE,GAAG,GAAG,EAAE,CAAA;gBACrC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAA;aACX;SACF;KACF;IACD,OAAO,GAAG,CAAA;AACZ,CAAC;AAjBD,kCAiBC"}
|
|
1
|
+
{"version":3,"file":"Object.js","sourceRoot":"","sources":["../src/Object.ts"],"names":[],"mappings":";;;AAEA,wDAAwD;AACxD,SAAgB,IAAI,CAA+C,CAAI;IACrE,OAAO,CAAC,IAAI,IAAI;QACd,CAAC,CAAC,EAAE;QACJ,CAAC,CAAE,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAC5B,CAAC,EAAE,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAC9B,CAAA;AACf,CAAC;AAND,oBAMC;AAED,SAAgB,UAAU,CAAC,GAAQ;IACjC,OAAO,OAAO,GAAG,KAAK,UAAU,CAAA;AAClC,CAAC;AAFD,gCAEC;AAED,SAAgB,WAAW,CACzB,GAAkC,EAClC,GAAS;IAET,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,GAAG,CAAA;IAC/C,4DAA4D;IAC5D,KAAK,MAAM,EAAE,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,IAAI,CAAC,EAAE;QAC/C,IAAI,EAAE,IAAI,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE;YACnC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,CAAA;YACjB,qBAAqB;YACrB,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,KAAK,SAAS,EAAE;gBAChC,IAAI,OAAO,GAAG,KAAK,QAAQ;oBAAE,GAAG,GAAG,EAAE,CAAA;gBACrC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAA;aACX;SACF;KACF;IACD,OAAO,GAAG,CAAA;AACZ,CAAC;AAjBD,kCAiBC;AAID,SAAgB,IAAI,CAClB,CAAI,EACJ,GAAG,UAAe;IAElB,IAAI,CAAC,IAAI,IAAI;QAAE,OAAO,EAAS,CAAA;IAC/B,MAAM,MAAM,GAAG,EAAE,GAAG,CAAC,EAAE,CAAA;IACvB,KAAK,MAAM,EAAE,IAAI,UAAU,EAAE;QAC3B,OAAO,MAAM,CAAC,EAAE,CAAC,CAAA;KAClB;IACD,OAAO,MAAM,CAAA;AACf,CAAC;AAVD,oBAUC"}
|
package/dist/ReadTask.d.ts
CHANGED
|
@@ -2,6 +2,7 @@ import { ExifToolTask } from "./ExifToolTask";
|
|
|
2
2
|
import { Tags } from "./Tags";
|
|
3
3
|
export declare function nullish(s: string | undefined): s is undefined;
|
|
4
4
|
export declare class ReadTask extends ExifToolTask<Tags> {
|
|
5
|
+
#private;
|
|
5
6
|
readonly sourceFile: string;
|
|
6
7
|
readonly args: string[];
|
|
7
8
|
private readonly degroup;
|
|
@@ -19,11 +20,4 @@ export declare class ReadTask extends ExifToolTask<Tags> {
|
|
|
19
20
|
static for(filename: string, numericTags: string[], optionalArgs?: string[]): ReadTask;
|
|
20
21
|
toString(): string;
|
|
21
22
|
parse(data: string, err?: Error): Tags;
|
|
22
|
-
private tagName;
|
|
23
|
-
private parseTags;
|
|
24
|
-
private extractLatLon;
|
|
25
|
-
private latlon;
|
|
26
|
-
private extractTzOffset;
|
|
27
|
-
private normalizeDateTime;
|
|
28
|
-
private parseTag;
|
|
29
23
|
}
|
package/dist/ReadTask.js
CHANGED
|
@@ -22,6 +22,12 @@ var __importStar = (this && this.__importStar) || function (mod) {
|
|
|
22
22
|
__setModuleDefault(result, mod);
|
|
23
23
|
return result;
|
|
24
24
|
};
|
|
25
|
+
var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
|
|
26
|
+
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
|
|
27
|
+
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
|
|
28
|
+
return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
|
|
29
|
+
};
|
|
30
|
+
var _ReadTask_instances, _ReadTask_tagName, _ReadTask_parseTags, _ReadTask_extractLatLon, _ReadTask_latlon, _ReadTask_extractTzOffset, _ReadTask_normalizeDateTime, _ReadTask_parseTag;
|
|
25
31
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
32
|
exports.ReadTask = exports.nullish = void 0;
|
|
27
33
|
const batch_cluster_1 = require("batch-cluster");
|
|
@@ -55,6 +61,7 @@ class ReadTask extends ExifToolTask_1.ExifToolTask {
|
|
|
55
61
|
super(args);
|
|
56
62
|
this.sourceFile = sourceFile;
|
|
57
63
|
this.args = args;
|
|
64
|
+
_ReadTask_instances.add(this);
|
|
58
65
|
/** May have keys that are group-prefixed */
|
|
59
66
|
this._raw = {};
|
|
60
67
|
/** Always has non-group-prefixed keys */
|
|
@@ -76,6 +83,7 @@ class ReadTask extends ExifToolTask_1.ExifToolTask {
|
|
|
76
83
|
args.push(...numericTags.map((ea) => "-" + ea + "#"));
|
|
77
84
|
// TODO: Do you need -xmp:all, -all, or -all:all?
|
|
78
85
|
args.push("-all", "-charset", "filename=utf8", sourceFile);
|
|
86
|
+
// console.log("new ReadTask()", { sourceFile, args })
|
|
79
87
|
return new ReadTask(sourceFile, args);
|
|
80
88
|
}
|
|
81
89
|
toString() {
|
|
@@ -103,143 +111,146 @@ class ReadTask extends ExifToolTask_1.ExifToolTask {
|
|
|
103
111
|
}
|
|
104
112
|
if (this.degroup) {
|
|
105
113
|
Object.keys(this._raw).forEach((keyWithGroup) => {
|
|
106
|
-
this._tags[this.
|
|
114
|
+
this._tags[__classPrivateFieldGet(this, _ReadTask_instances, "m", _ReadTask_tagName).call(this, keyWithGroup)] = this._raw[keyWithGroup];
|
|
107
115
|
});
|
|
108
116
|
}
|
|
109
117
|
else {
|
|
110
118
|
this._tags = this._raw;
|
|
111
119
|
}
|
|
112
|
-
return this.
|
|
120
|
+
return __classPrivateFieldGet(this, _ReadTask_instances, "m", _ReadTask_parseTags).call(this);
|
|
113
121
|
}
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
122
|
+
}
|
|
123
|
+
exports.ReadTask = ReadTask;
|
|
124
|
+
_ReadTask_instances = new WeakSet(), _ReadTask_tagName = function _ReadTask_tagName(k) {
|
|
125
|
+
var _a;
|
|
126
|
+
return this.degroup ? (_a = k.split(":")[1]) !== null && _a !== void 0 ? _a : k : k;
|
|
127
|
+
}, _ReadTask_parseTags = function _ReadTask_parseTags() {
|
|
128
|
+
__classPrivateFieldGet(this, _ReadTask_instances, "m", _ReadTask_extractLatLon).call(this);
|
|
129
|
+
__classPrivateFieldGet(this, _ReadTask_instances, "m", _ReadTask_extractTzOffset).call(this);
|
|
130
|
+
(0, Maybe_1.map)(this.tz, (ea) => (this.tags.tz = ea));
|
|
131
|
+
(0, Maybe_1.map)(this.tzSource, (ea) => (this.tags.tzSource = ea));
|
|
132
|
+
const t = this.tags; // tsc hack :(
|
|
133
|
+
for (const key of Object.keys(this._raw)) {
|
|
134
|
+
t[key] = __classPrivateFieldGet(this, _ReadTask_instances, "m", _ReadTask_parseTag).call(this, __classPrivateFieldGet(this, _ReadTask_instances, "m", _ReadTask_tagName).call(this, key), this._raw[key]);
|
|
117
135
|
}
|
|
118
|
-
|
|
119
|
-
this.
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
if (this.errors.length > 0)
|
|
128
|
-
this.tags.errors = this.errors;
|
|
129
|
-
return this.tags;
|
|
136
|
+
if (this.errors.length > 0)
|
|
137
|
+
this.tags.errors = this.errors;
|
|
138
|
+
return this.tags;
|
|
139
|
+
}, _ReadTask_extractLatLon = function _ReadTask_extractLatLon() {
|
|
140
|
+
var _a, _b;
|
|
141
|
+
(_a = this.lat) !== null && _a !== void 0 ? _a : (this.lat = __classPrivateFieldGet(this, _ReadTask_instances, "m", _ReadTask_latlon).call(this, "GPSLatitude", "S", 90));
|
|
142
|
+
(_b = this.lon) !== null && _b !== void 0 ? _b : (this.lon = __classPrivateFieldGet(this, _ReadTask_instances, "m", _ReadTask_latlon).call(this, "GPSLongitude", "W", 180));
|
|
143
|
+
if (this.invalidLatLon) {
|
|
144
|
+
this.lat = this.lon = undefined;
|
|
130
145
|
}
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
146
|
+
}, _ReadTask_latlon = function _ReadTask_latlon(tagName, negateRef, maxValid) {
|
|
147
|
+
const tagValue = this._tags[tagName];
|
|
148
|
+
const ref = this._tags[tagName + "Ref"];
|
|
149
|
+
const result = (0, Number_1.toF)(tagValue);
|
|
150
|
+
if (result == null) {
|
|
151
|
+
return;
|
|
152
|
+
}
|
|
153
|
+
else if (Math.abs(result) > maxValid) {
|
|
154
|
+
this.errors.push(`Invalid ${tagName}: ${JSON.stringify(tagValue)}`);
|
|
155
|
+
this.invalidLatLon = true;
|
|
156
|
+
return;
|
|
157
|
+
}
|
|
158
|
+
else if ((0, String_1.blank)(ref)) {
|
|
159
|
+
// Videos may not have a GPSLatitudeRef or GPSLongitudeRef: if this is the case, assume the given sign is correct.
|
|
160
|
+
return result;
|
|
161
|
+
}
|
|
162
|
+
else {
|
|
163
|
+
// Versions of ExifTool pre-12 returned properly-negated lat/lon. ExifTool
|
|
164
|
+
// 12+ always returns positive values (!!). Also: if '-GPS*#' is set,
|
|
165
|
+
// we'll see "S" instead of "South", hence the .startsWith() instead of
|
|
166
|
+
// ===:
|
|
167
|
+
const negative = (0, String_1.toS)(ref).toUpperCase().startsWith(negateRef);
|
|
168
|
+
return (negative ? -1 : 1) * Math.abs(result);
|
|
138
169
|
}
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
170
|
+
}, _ReadTask_extractTzOffset = function _ReadTask_extractTzOffset() {
|
|
171
|
+
// tzlookup will be the "best" tz, as it will be a proper Zone name (like
|
|
172
|
+
// "America/New_York"), rather than just an hour offset.
|
|
173
|
+
(0, Maybe_1.map)((0, Maybe_1.firstDefinedThunk)([
|
|
174
|
+
() => {
|
|
175
|
+
if (!this.invalidLatLon && this.lat != null && this.lon != null) {
|
|
176
|
+
try {
|
|
177
|
+
return (0, Maybe_1.map)(tzlookup(this.lat, this.lon), (tz) => ({
|
|
178
|
+
tz,
|
|
179
|
+
src: "from Lat/Lon",
|
|
180
|
+
}));
|
|
181
|
+
}
|
|
182
|
+
catch (err) {
|
|
183
|
+
/* */
|
|
184
|
+
}
|
|
185
|
+
}
|
|
144
186
|
return;
|
|
187
|
+
},
|
|
188
|
+
() => (0, Timezones_1.extractTzOffsetFromTags)(this._tags),
|
|
189
|
+
() => (0, Timezones_1.extractTzOffsetFromUTCOffset)(this._tags),
|
|
190
|
+
]), (ea) => ({ tz: this.tz, src: this.tzSource } = ea));
|
|
191
|
+
}, _ReadTask_normalizeDateTime = function _ReadTask_normalizeDateTime(tagName, value) {
|
|
192
|
+
if (tagName.startsWith("File") ||
|
|
193
|
+
!(value instanceof ExifDateTime_1.ExifDateTime) ||
|
|
194
|
+
utcTagName(tagName) ||
|
|
195
|
+
this.tz == null) {
|
|
196
|
+
return value;
|
|
197
|
+
}
|
|
198
|
+
// ExifTool may have put this in the current system time, instead of the timezone of the file.
|
|
199
|
+
return value.zone !== this.tz ? value.setZone(this.tz) : value;
|
|
200
|
+
}, _ReadTask_parseTag = function _ReadTask_parseTag(tagName, value) {
|
|
201
|
+
var _a, _b, _c, _d, _e, _f;
|
|
202
|
+
if (nullish(value))
|
|
203
|
+
return undefined;
|
|
204
|
+
try {
|
|
205
|
+
if (PassthroughTags.indexOf(tagName) >= 0) {
|
|
206
|
+
return value;
|
|
145
207
|
}
|
|
146
|
-
|
|
147
|
-
this.
|
|
148
|
-
this.invalidLatLon = true;
|
|
149
|
-
return;
|
|
208
|
+
if (Array.isArray(value)) {
|
|
209
|
+
return value.map((ea) => __classPrivateFieldGet(this, _ReadTask_instances, "m", _ReadTask_parseTag).call(this, tagName, ea));
|
|
150
210
|
}
|
|
151
|
-
|
|
152
|
-
|
|
211
|
+
if (typeof value === "object") {
|
|
212
|
+
const result = {};
|
|
213
|
+
for (const [k, v] of Object.entries(value)) {
|
|
214
|
+
result[k] = __classPrivateFieldGet(this, _ReadTask_instances, "m", _ReadTask_parseTag).call(this, k, v);
|
|
215
|
+
}
|
|
153
216
|
return result;
|
|
154
217
|
}
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
// 12+ always returns positive values (!!). Also: if '-GPS*#' is set,
|
|
158
|
-
// we'll see "S" instead of "South", hence the .startsWith() instead of
|
|
159
|
-
// ===:
|
|
160
|
-
const negative = (0, String_1.toS)(ref).toUpperCase().startsWith(negateRef);
|
|
161
|
-
return (negative ? -1 : 1) * Math.abs(result);
|
|
218
|
+
if (tagName === "GPSLatitude") {
|
|
219
|
+
return this.lat;
|
|
162
220
|
}
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
// tzlookup will be the "best" tz, as it will be a proper Zone name (like
|
|
166
|
-
// "America/New_York"), rather than just an hour offset.
|
|
167
|
-
(0, Maybe_1.map)((0, Maybe_1.firstDefinedThunk)([
|
|
168
|
-
() => {
|
|
169
|
-
if (!this.invalidLatLon && this.lat != null && this.lon != null) {
|
|
170
|
-
try {
|
|
171
|
-
return (0, Maybe_1.map)(tzlookup(this.lat, this.lon), (tz) => ({
|
|
172
|
-
tz,
|
|
173
|
-
src: "from Lat/Lon",
|
|
174
|
-
}));
|
|
175
|
-
}
|
|
176
|
-
catch (err) {
|
|
177
|
-
/* */
|
|
178
|
-
}
|
|
179
|
-
}
|
|
180
|
-
return;
|
|
181
|
-
},
|
|
182
|
-
() => (0, Timezones_1.extractTzOffsetFromTags)(this._tags),
|
|
183
|
-
() => (0, Timezones_1.extractTzOffsetFromUTCOffset)(this._tags),
|
|
184
|
-
]), (ea) => ({ tz: this.tz, src: this.tzSource } = ea));
|
|
185
|
-
}
|
|
186
|
-
normalizeDateTime(tagName, value) {
|
|
187
|
-
if (tagName.startsWith("File") ||
|
|
188
|
-
!(value instanceof ExifDateTime_1.ExifDateTime) ||
|
|
189
|
-
tagIsInUTC(tagName) ||
|
|
190
|
-
this.tz == null) {
|
|
191
|
-
return value;
|
|
221
|
+
if (tagName === "GPSLongitude") {
|
|
222
|
+
return this.lon;
|
|
192
223
|
}
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
try {
|
|
202
|
-
if (PassthroughTags.indexOf(tagName) >= 0) {
|
|
203
|
-
return value;
|
|
224
|
+
if (typeof value === "string") {
|
|
225
|
+
const tz = utcTagName(tagName) ? "UTC" : undefined;
|
|
226
|
+
if (tagName === "When" ||
|
|
227
|
+
tagName.includes("DateTime") ||
|
|
228
|
+
tagName.toLowerCase().includes("timestamp")) {
|
|
229
|
+
const d = (_a = ExifDateTime_1.ExifDateTime.fromExifStrict(value, tz)) !== null && _a !== void 0 ? _a : ExifDateTime_1.ExifDateTime.fromISO(value, tz);
|
|
230
|
+
if (d != null)
|
|
231
|
+
return __classPrivateFieldGet(this, _ReadTask_instances, "m", _ReadTask_normalizeDateTime).call(this, tagName, d);
|
|
204
232
|
}
|
|
205
|
-
if (tagName === "
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
return this.lon;
|
|
210
|
-
}
|
|
211
|
-
if (typeof value === "string") {
|
|
212
|
-
const tz = tagIsInUTC(tagName) ? "UTC" : undefined;
|
|
213
|
-
if (tagName.includes("DateTime") ||
|
|
214
|
-
tagName.toLowerCase().includes("timestamp")) {
|
|
215
|
-
const d = (_a = ExifDateTime_1.ExifDateTime.fromExifStrict(value, tz)) !== null && _a !== void 0 ? _a : ExifDateTime_1.ExifDateTime.fromISO(value, tz);
|
|
216
|
-
if (d != null) {
|
|
217
|
-
return this.normalizeDateTime(tagName, d);
|
|
218
|
-
}
|
|
219
|
-
}
|
|
220
|
-
if (tagName.includes("Date")) {
|
|
221
|
-
const d = (_f = (_e = (_d = (_c = (_b = ExifDateTime_1.ExifDateTime.fromExifStrict(value, tz)) !== null && _b !== void 0 ? _b : ExifDateTime_1.ExifDateTime.fromISO(value, tz)) !== null && _c !== void 0 ? _c : ExifDateTime_1.ExifDateTime.fromExifLoose(value, tz)) !== null && _d !== void 0 ? _d : ExifDate_1.ExifDate.fromExifStrict(value)) !== null && _e !== void 0 ? _e : ExifDate_1.ExifDate.fromISO(value)) !== null && _f !== void 0 ? _f : ExifDate_1.ExifDate.fromExifLoose(value);
|
|
222
|
-
if (d != null) {
|
|
223
|
-
return this.normalizeDateTime(tagName, d);
|
|
224
|
-
}
|
|
225
|
-
}
|
|
226
|
-
if (tagName.includes("Time")) {
|
|
227
|
-
const t = ExifTime_1.ExifTime.fromEXIF(value);
|
|
228
|
-
if (t != null)
|
|
229
|
-
return t;
|
|
233
|
+
if (tagName === "When" || tagName.includes("Date")) {
|
|
234
|
+
const d = (_f = (_e = (_d = (_c = (_b = ExifDateTime_1.ExifDateTime.fromExifStrict(value, tz)) !== null && _b !== void 0 ? _b : ExifDateTime_1.ExifDateTime.fromISO(value, tz)) !== null && _c !== void 0 ? _c : ExifDateTime_1.ExifDateTime.fromExifLoose(value, tz)) !== null && _d !== void 0 ? _d : ExifDate_1.ExifDate.fromExifStrict(value)) !== null && _e !== void 0 ? _e : ExifDate_1.ExifDate.fromISO(value)) !== null && _f !== void 0 ? _f : ExifDate_1.ExifDate.fromExifLoose(value);
|
|
235
|
+
if (d != null) {
|
|
236
|
+
return __classPrivateFieldGet(this, _ReadTask_instances, "m", _ReadTask_normalizeDateTime).call(this, tagName, d);
|
|
230
237
|
}
|
|
231
238
|
}
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
return value;
|
|
239
|
+
if (tagName.includes("Time")) {
|
|
240
|
+
const t = ExifTime_1.ExifTime.fromEXIF(value);
|
|
241
|
+
if (t != null)
|
|
242
|
+
return t;
|
|
243
|
+
}
|
|
238
244
|
}
|
|
245
|
+
// Trust that ExifTool rendered the value with the correct type in JSON:
|
|
246
|
+
return value;
|
|
239
247
|
}
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
248
|
+
catch (e) {
|
|
249
|
+
this.addError(`Failed to parse ${tagName} with value ${JSON.stringify(value)}: ${e}`);
|
|
250
|
+
return value;
|
|
251
|
+
}
|
|
252
|
+
};
|
|
253
|
+
function utcTagName(tagName) {
|
|
243
254
|
return tagName.includes("UTC") || tagName.startsWith("GPS");
|
|
244
255
|
}
|
|
245
256
|
//# sourceMappingURL=ReadTask.js.map
|