exiftool-vendored 20.0.0 → 21.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +22 -0
- package/dist/DateTime.d.ts +4 -1
- package/dist/DateTime.js +8 -5
- package/dist/DateTime.js.map +1 -1
- package/dist/ExifDateTime.d.ts +9 -2
- package/dist/ExifDateTime.js +75 -43
- package/dist/ExifDateTime.js.map +1 -1
- package/dist/Tags.d.ts +14 -14
- package/dist/WriteTask.js +11 -0
- package/dist/WriteTask.js.map +1 -1
- package/package.json +10 -12
package/CHANGELOG.md
CHANGED
|
@@ -25,6 +25,28 @@ vendored versions of ExifTool match the version that they vendor.
|
|
|
25
25
|
|
|
26
26
|
## Version history
|
|
27
27
|
|
|
28
|
+
### v21.1.0
|
|
29
|
+
|
|
30
|
+
- 🐞 Negative GPSLatitude and GPSLongitude values are now supported for EXIF
|
|
31
|
+
(like `.JPEG`), `.XMP`, and `.MIE` files. Thanks for the [bug
|
|
32
|
+
report](https://github.com/photostructure/exiftool-vendored.js/issues/131),
|
|
33
|
+
[Jason](https://github.com/contd), and the
|
|
34
|
+
[solution](https://exiftool.org/forum/index.php?topic=14488.msg78082#msg78082),
|
|
35
|
+
[Phil](https://exiftool.org/)!
|
|
36
|
+
|
|
37
|
+
- 🌱 ExifTool upgraded to [v12.56](https://exiftool.org/history.html#v12.56)
|
|
38
|
+
|
|
39
|
+
### v21.0.0
|
|
40
|
+
|
|
41
|
+
- 💔 `ExifDateTime.fromDateTime()` now takes an option hash as the second
|
|
42
|
+
argument (instead of the second argument being `rawValue`)
|
|
43
|
+
|
|
44
|
+
- 🐞 `ExifDateTime.milliseconds` will now be `undefined` if the EXIF or ISO
|
|
45
|
+
date string did not specify milliseconds, and will no longer render
|
|
46
|
+
milliseconds if the `rawValue` did not include millisecond precision.
|
|
47
|
+
|
|
48
|
+
- 📦 EXIF and ISO dates without specified seconds or milliseconds are now allowed
|
|
49
|
+
|
|
28
50
|
### v20.0.0
|
|
29
51
|
|
|
30
52
|
- 💔 `ExifTool.write` took a generic that defaulted to `WriteTags`, but the type wasn't used for anything. I removed the generic typing, which may require consumers to change their code.
|
package/dist/DateTime.d.ts
CHANGED
|
@@ -9,5 +9,8 @@ export declare const HourMs: number;
|
|
|
9
9
|
export declare const DayMs: number;
|
|
10
10
|
export type DateOrTime = ExifDateTime | ExifDate | ExifTime | DateTime;
|
|
11
11
|
export declare function isDateOrTime(o: any): o is DateOrTime;
|
|
12
|
-
export declare function dateTimeToExif(d: DateTime
|
|
12
|
+
export declare function dateTimeToExif(d: DateTime, opts?: {
|
|
13
|
+
includeOffset?: boolean;
|
|
14
|
+
includeMilliseconds?: boolean;
|
|
15
|
+
}): string;
|
|
13
16
|
export declare function toExifString(d: DateOrTime): Maybe<string>;
|
package/dist/DateTime.js
CHANGED
|
@@ -16,19 +16,22 @@ function isDateOrTime(o) {
|
|
|
16
16
|
return (o instanceof ExifDateTime_1.ExifDateTime ||
|
|
17
17
|
o instanceof ExifDate_1.ExifDate ||
|
|
18
18
|
o instanceof ExifTime_1.ExifTime ||
|
|
19
|
-
|
|
19
|
+
luxon_1.DateTime.isDateTime(o));
|
|
20
20
|
}
|
|
21
21
|
exports.isDateOrTime = isDateOrTime;
|
|
22
|
-
function dateTimeToExif(d) {
|
|
23
|
-
return d.toFormat("y:MM:dd HH:mm:ss
|
|
22
|
+
function dateTimeToExif(d, opts) {
|
|
23
|
+
return d.toFormat("y:MM:dd HH:mm:ss" +
|
|
24
|
+
((opts === null || opts === void 0 ? void 0 : opts.includeMilliseconds) === true ? ".u" : "") +
|
|
25
|
+
((opts === null || opts === void 0 ? void 0 : opts.includeOffset) === false ? "" : "ZZ"));
|
|
24
26
|
}
|
|
25
27
|
exports.dateTimeToExif = dateTimeToExif;
|
|
26
28
|
function toExifString(d) {
|
|
27
|
-
|
|
29
|
+
var _a;
|
|
30
|
+
if (luxon_1.DateTime.isDateTime(d)) {
|
|
28
31
|
return dateTimeToExif(d);
|
|
29
32
|
}
|
|
30
33
|
else {
|
|
31
|
-
return d.toExifString();
|
|
34
|
+
return (_a = d === null || d === void 0 ? void 0 : d.toExifString) === null || _a === void 0 ? void 0 : _a.call(d);
|
|
32
35
|
}
|
|
33
36
|
}
|
|
34
37
|
exports.toExifString = toExifString;
|
package/dist/DateTime.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DateTime.js","sourceRoot":"","sources":["../src/DateTime.ts"],"names":[],"mappings":";;;AAAA,iCAAgC;AAChC,yCAAqC;AACrC,iDAA6C;AAC7C,yCAAqC;AAGrC,SAAgB,aAAa,CAAC,EAAY;IACxC,OAAO,EAAE,IAAI,IAAI,IAAI,EAAE,CAAC,OAAO,CAAA;AACjC,CAAC;AAFD,sCAEC;AAEY,QAAA,QAAQ,GAAG,EAAE,GAAG,IAAI,CAAA;AACpB,QAAA,MAAM,GAAG,EAAE,GAAG,gBAAQ,CAAA;AACtB,QAAA,KAAK,GAAG,EAAE,GAAG,cAAM,CAAA;AAIhC,SAAgB,YAAY,CAAC,CAAM;IACjC,OAAO,CACL,CAAC,YAAY,2BAAY;QACzB,CAAC,YAAY,mBAAQ;QACrB,CAAC,YAAY,mBAAQ;QACrB,CAAC,
|
|
1
|
+
{"version":3,"file":"DateTime.js","sourceRoot":"","sources":["../src/DateTime.ts"],"names":[],"mappings":";;;AAAA,iCAAgC;AAChC,yCAAqC;AACrC,iDAA6C;AAC7C,yCAAqC;AAGrC,SAAgB,aAAa,CAAC,EAAY;IACxC,OAAO,EAAE,IAAI,IAAI,IAAI,EAAE,CAAC,OAAO,CAAA;AACjC,CAAC;AAFD,sCAEC;AAEY,QAAA,QAAQ,GAAG,EAAE,GAAG,IAAI,CAAA;AACpB,QAAA,MAAM,GAAG,EAAE,GAAG,gBAAQ,CAAA;AACtB,QAAA,KAAK,GAAG,EAAE,GAAG,cAAM,CAAA;AAIhC,SAAgB,YAAY,CAAC,CAAM;IACjC,OAAO,CACL,CAAC,YAAY,2BAAY;QACzB,CAAC,YAAY,mBAAQ;QACrB,CAAC,YAAY,mBAAQ;QACrB,gBAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,CACvB,CAAA;AACH,CAAC;AAPD,oCAOC;AAED,SAAgB,cAAc,CAC5B,CAAW,EACX,IAAiE;IAEjE,OAAO,CAAC,CAAC,QAAQ,CACf,kBAAkB;QAChB,CAAC,CAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,mBAAmB,MAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;QAChD,CAAC,CAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,aAAa,MAAK,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAC9C,CAAA;AACH,CAAC;AATD,wCASC;AAED,SAAgB,YAAY,CAAC,CAAa;;IACxC,IAAI,gBAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE;QAC1B,OAAO,cAAc,CAAC,CAAC,CAAC,CAAA;KACzB;SAAM;QACL,OAAO,MAAA,CAAC,aAAD,CAAC,uBAAD,CAAC,CAAE,YAAY,iDAAI,CAAA;KAC3B;AACH,CAAC;AAND,oCAMC"}
|
package/dist/ExifDateTime.d.ts
CHANGED
|
@@ -15,7 +15,7 @@ export declare class ExifDateTime {
|
|
|
15
15
|
readonly tzoffsetMinutes?: number | undefined;
|
|
16
16
|
readonly rawValue?: string | undefined;
|
|
17
17
|
readonly zoneName?: string | undefined;
|
|
18
|
-
static fromISO(iso: string,
|
|
18
|
+
static fromISO(iso: string, defaultZone?: Maybe<string>): Maybe<ExifDateTime>;
|
|
19
19
|
/**
|
|
20
20
|
* Try to parse a date-time string from EXIF. If there is not both a date
|
|
21
21
|
* and a time component, returns `undefined`.
|
|
@@ -41,7 +41,10 @@ export declare class ExifDateTime {
|
|
|
41
41
|
*/
|
|
42
42
|
static fromExifStrict(text: Maybe<string>, defaultZone?: Maybe<string>): Maybe<ExifDateTime>;
|
|
43
43
|
static fromExifLoose(text: Maybe<string>, defaultZone?: Maybe<string>): Maybe<ExifDateTime>;
|
|
44
|
-
static fromDateTime(dt: DateTime,
|
|
44
|
+
static fromDateTime(dt: DateTime, opts?: {
|
|
45
|
+
rawValue?: Maybe<string>;
|
|
46
|
+
unsetMilliseconds?: boolean;
|
|
47
|
+
}): Maybe<ExifDateTime>;
|
|
45
48
|
/**
|
|
46
49
|
* Create an ExifDateTime from a number of milliseconds since the epoch
|
|
47
50
|
* (meaning since 1 January 1970 00:00:00 UTC). Uses the default zone.
|
|
@@ -65,6 +68,10 @@ export declare class ExifDateTime {
|
|
|
65
68
|
get hasZone(): boolean;
|
|
66
69
|
get zone(): Maybe<string>;
|
|
67
70
|
setZone(zone?: string | Zone, opts?: ZoneOptions): Maybe<ExifDateTime>;
|
|
71
|
+
/**
|
|
72
|
+
* CAUTION: This instance will inherit the system timezone if this instance
|
|
73
|
+
* has an unset zone
|
|
74
|
+
*/
|
|
68
75
|
toDateTime(): DateTime;
|
|
69
76
|
toEpochSeconds(): number;
|
|
70
77
|
toDate(): Date;
|
package/dist/ExifDateTime.js
CHANGED
|
@@ -19,26 +19,37 @@ const Maybe_1 = require("./Maybe");
|
|
|
19
19
|
const Object_1 = require("./Object");
|
|
20
20
|
const String_1 = require("./String");
|
|
21
21
|
const Timezones_1 = require("./Timezones");
|
|
22
|
+
const TimeFmts = [
|
|
23
|
+
{ fmt: "HH:mm:ss.u", unsetMilliseconds: false },
|
|
24
|
+
{ fmt: "HH:mm:ss", unsetMilliseconds: true },
|
|
25
|
+
{ fmt: "HH:mm", unsetMilliseconds: true },
|
|
26
|
+
];
|
|
22
27
|
/**
|
|
23
28
|
* Encodes an ExifDateTime with an optional tz offset in minutes.
|
|
24
29
|
*/
|
|
25
30
|
class ExifDateTime {
|
|
26
|
-
static fromISO(iso,
|
|
31
|
+
static fromISO(iso, defaultZone) {
|
|
27
32
|
if ((0, String_1.blank)(iso) || null != iso.match(/^\d+$/))
|
|
28
33
|
return undefined;
|
|
29
34
|
// Unfortunately, DateTime.fromISO() is happy to parse a date with no time,
|
|
30
35
|
// so we have to do this ourselves:
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
{ fmt: "
|
|
34
|
-
{ fmt: "
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
36
|
+
const patterns = [];
|
|
37
|
+
for (const z of [
|
|
38
|
+
{ fmt: "ZZ", zone: undefined },
|
|
39
|
+
{ fmt: "'Z'", zone: "UTC" },
|
|
40
|
+
{ fmt: "", zone: defaultZone },
|
|
41
|
+
]) {
|
|
42
|
+
for (const sep of ["'T'", " "]) {
|
|
43
|
+
for (const timeFmt of TimeFmts) {
|
|
44
|
+
patterns.push({
|
|
45
|
+
fmt: `y-M-d${sep}${timeFmt.fmt}${z.fmt}`,
|
|
46
|
+
zone: z.zone,
|
|
47
|
+
unsetMilliseconds: timeFmt.unsetMilliseconds,
|
|
48
|
+
});
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
return this.fromPatterns(iso, patterns);
|
|
42
53
|
}
|
|
43
54
|
/**
|
|
44
55
|
* Try to parse a date-time string from EXIF. If there is not both a date
|
|
@@ -66,21 +77,26 @@ class ExifDateTime {
|
|
|
66
77
|
// TZAs are between 2 (AT) and 5 (WEST) characters.
|
|
67
78
|
// Unfortunately, luxon doesn't support regex.
|
|
68
79
|
// We only want to strip off the TZA if it isn't "UTC" or "Z"
|
|
69
|
-
if (null == s.match(/[.\d\s](
|
|
80
|
+
if (null == s.match(/[.\d\s](UTC|Z)$/)) {
|
|
70
81
|
const noTza = s.replace(/ [a-z]{2,5}$/i, "");
|
|
71
82
|
if (noTza !== s)
|
|
72
83
|
inputs.push(noTza);
|
|
73
84
|
}
|
|
74
85
|
// PERF: unroll first() to avoid creating closures
|
|
75
86
|
for (const input of inputs) {
|
|
76
|
-
for (const { fmt, zone } of fmts) {
|
|
87
|
+
for (const { fmt, zone, unsetMilliseconds } of fmts) {
|
|
77
88
|
const dt = luxon_1.DateTime.fromFormat(input, fmt, {
|
|
78
89
|
setZone: true,
|
|
79
90
|
zone: zone !== null && zone !== void 0 ? zone : Timezones_1.UnsetZone,
|
|
80
91
|
});
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
92
|
+
if (dt.isValid) {
|
|
93
|
+
const edt = ExifDateTime.fromDateTime(dt, {
|
|
94
|
+
rawValue: s,
|
|
95
|
+
unsetMilliseconds: unsetMilliseconds !== null && unsetMilliseconds !== void 0 ? unsetMilliseconds : false,
|
|
96
|
+
});
|
|
97
|
+
if (edt != null)
|
|
98
|
+
return edt;
|
|
99
|
+
}
|
|
84
100
|
}
|
|
85
101
|
}
|
|
86
102
|
return;
|
|
@@ -100,41 +116,50 @@ class ExifDateTime {
|
|
|
100
116
|
var _a;
|
|
101
117
|
if ((0, String_1.blank)(text))
|
|
102
118
|
return undefined;
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
{ fmt: "
|
|
106
|
-
{ fmt: "
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
119
|
+
const patterns = [];
|
|
120
|
+
for (const z of [
|
|
121
|
+
{ fmt: "ZZ", zone: undefined },
|
|
122
|
+
{ fmt: "'Z'", zone: "UTC" },
|
|
123
|
+
{ fmt: "", zone: defaultZone },
|
|
124
|
+
]) {
|
|
125
|
+
for (const timeFmt of TimeFmts) {
|
|
126
|
+
patterns.push({
|
|
127
|
+
fmt: `y:M:d ${timeFmt.fmt}${z.fmt}`,
|
|
128
|
+
zone: z.zone,
|
|
129
|
+
unsetMilliseconds: timeFmt.unsetMilliseconds,
|
|
130
|
+
});
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
return ((_a = this.fromPatterns(text, patterns)) !== null && _a !== void 0 ? _a :
|
|
134
|
+
// Not found yet? Maybe it's in ISO format? See
|
|
135
|
+
// https://github.com/photostructure/exiftool-vendored.js/issues/71
|
|
136
|
+
this.fromISO(text, defaultZone));
|
|
116
137
|
}
|
|
117
138
|
static fromExifLoose(text, defaultZone) {
|
|
118
139
|
if ((0, String_1.blank)(text))
|
|
119
140
|
return undefined;
|
|
120
141
|
const zone = (0, String_1.notBlank)(defaultZone) ? defaultZone : Timezones_1.UnsetZone;
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
{ fmt: "MMM d y, H:m:sZZZ" },
|
|
126
|
-
{ fmt: "MMM d y, H:m:s", zone },
|
|
142
|
+
// The following are from actual datestamps seen in the wild:
|
|
143
|
+
const formats = [
|
|
144
|
+
"MMM d y H:m:s",
|
|
145
|
+
"MMM d y, H:m:s",
|
|
127
146
|
// Thu Oct 13 00:12:27 2016:
|
|
128
|
-
|
|
129
|
-
|
|
147
|
+
"ccc MMM d H:m:s y",
|
|
148
|
+
];
|
|
149
|
+
return this.fromPatterns(text, [
|
|
150
|
+
...formats.map((fmt) => ({ fmt: fmt + "ZZ" })),
|
|
151
|
+
// And the same formats, without offsets with default zone:
|
|
152
|
+
...formats.map((fmt) => ({ fmt, zone })),
|
|
130
153
|
]);
|
|
131
154
|
}
|
|
132
|
-
static fromDateTime(dt,
|
|
155
|
+
static fromDateTime(dt, opts) {
|
|
133
156
|
var _a;
|
|
134
157
|
if (dt == null || !dt.isValid || dt.year === 0 || dt.year === 1) {
|
|
135
158
|
return undefined;
|
|
136
159
|
}
|
|
137
|
-
return new ExifDateTime(dt.year, dt.month, dt.day, dt.hour, dt.minute, dt.second, dt.millisecond
|
|
160
|
+
return new ExifDateTime(dt.year, dt.month, dt.day, dt.hour, dt.minute, dt.second, dt.millisecond === 0 && true === (opts === null || opts === void 0 ? void 0 : opts.unsetMilliseconds)
|
|
161
|
+
? undefined
|
|
162
|
+
: dt.millisecond, dt.offset === Timezones_1.UnsetZoneOffsetMinutes ? undefined : dt.offset, opts === null || opts === void 0 ? void 0 : opts.rawValue, ((_a = dt.zone) === null || _a === void 0 ? void 0 : _a.name) === Timezones_1.UnsetZone.name ? undefined : dt.zoneName);
|
|
138
163
|
}
|
|
139
164
|
/**
|
|
140
165
|
* Create an ExifDateTime from a number of milliseconds since the epoch
|
|
@@ -150,7 +175,7 @@ class ExifDateTime {
|
|
|
150
175
|
*/
|
|
151
176
|
static fromMillis(millis, options = {}) {
|
|
152
177
|
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
|
|
153
|
-
return this.fromDateTime(luxon_1.DateTime.fromMillis(millis, (0, Object_1.omit)(options, "rawValue")), options.rawValue);
|
|
178
|
+
return this.fromDateTime(luxon_1.DateTime.fromMillis(millis, (0, Object_1.omit)(options, "rawValue")), { rawValue: options.rawValue });
|
|
154
179
|
}
|
|
155
180
|
static now(opts = {}) {
|
|
156
181
|
return this.fromMillis(Date.now(), opts);
|
|
@@ -184,12 +209,16 @@ class ExifDateTime {
|
|
|
184
209
|
const result = ExifDateTime.fromDateTime(this.toDateTime().setZone(zone, {
|
|
185
210
|
keepLocalTime: !this.hasZone,
|
|
186
211
|
...opts,
|
|
187
|
-
}), this.rawValue);
|
|
212
|
+
}), { rawValue: this.rawValue, unsetMilliseconds: this.millisecond == null });
|
|
188
213
|
// We know this will be defined: this is valid, so changing the zone will
|
|
189
214
|
// also be valid.
|
|
190
215
|
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
|
|
191
216
|
return result;
|
|
192
217
|
}
|
|
218
|
+
/**
|
|
219
|
+
* CAUTION: This instance will inherit the system timezone if this instance
|
|
220
|
+
* has an unset zone
|
|
221
|
+
*/
|
|
193
222
|
toDateTime() {
|
|
194
223
|
var _a;
|
|
195
224
|
return (__classPrivateFieldSet(this, _ExifDateTime_dt, (_a = __classPrivateFieldGet(this, _ExifDateTime_dt, "f")) !== null && _a !== void 0 ? _a : luxon_1.DateTime.fromObject({
|
|
@@ -218,7 +247,10 @@ class ExifDateTime {
|
|
|
218
247
|
}));
|
|
219
248
|
}
|
|
220
249
|
toExifString() {
|
|
221
|
-
return (0, DateTime_1.dateTimeToExif)(this.toDateTime()
|
|
250
|
+
return (0, DateTime_1.dateTimeToExif)(this.toDateTime(), {
|
|
251
|
+
includeOffset: this.hasZone,
|
|
252
|
+
includeMilliseconds: this.millisecond != null,
|
|
253
|
+
});
|
|
222
254
|
}
|
|
223
255
|
toString() {
|
|
224
256
|
return this.toISOString();
|
package/dist/ExifDateTime.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ExifDateTime.js","sourceRoot":"","sources":["../src/ExifDateTime.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,iCAMc;AACd,yCAA2C;AAC3C,mCAAuC;AACvC,qCAA+B;AAC/B,qCAA+C;AAC/C,2CAIoB;AAEpB;;GAEG;AACH,MAAa,YAAY;IAGvB,MAAM,CAAC,OAAO,
|
|
1
|
+
{"version":3,"file":"ExifDateTime.js","sourceRoot":"","sources":["../src/ExifDateTime.ts"],"names":[],"mappings":"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"}
|
package/dist/Tags.d.ts
CHANGED
|
@@ -10,7 +10,7 @@ import { Version } from "./Version";
|
|
|
10
10
|
export interface ExifToolTags {
|
|
11
11
|
/** ☆☆☆☆ ✔ Example: "File is empty" */
|
|
12
12
|
Error?: string;
|
|
13
|
-
/** ★★★★ ✔ Example: 12.
|
|
13
|
+
/** ★★★★ ✔ Example: 12.56 */
|
|
14
14
|
ExifToolVersion?: number;
|
|
15
15
|
/** ☆☆☆☆ ✔ Example: "Unrecognized IPTC record 0 (ignored)" */
|
|
16
16
|
Warning?: string;
|
|
@@ -28,7 +28,7 @@ export interface FileTags {
|
|
|
28
28
|
CurrentIPTCDigest?: string;
|
|
29
29
|
/** ★★★★ ✔ Example: "/home/username/pictures" */
|
|
30
30
|
Directory?: string;
|
|
31
|
-
/** ★★★★ ✔ Example: "2023:02:
|
|
31
|
+
/** ★★★★ ✔ Example: "2023:02:13 10:49:54-08:00" */
|
|
32
32
|
FileAccessDate?: ExifDateTime | string;
|
|
33
33
|
/** ★★★★ ✔ Example: "2023:01:30 11:33:43-08:00" */
|
|
34
34
|
FileInodeChangeDate?: ExifDateTime | string;
|
|
@@ -642,7 +642,7 @@ export interface EXIFTags {
|
|
|
642
642
|
ImageNumber?: number;
|
|
643
643
|
/** ☆☆☆☆ ✔ Example: "fa5fdfee65f3a6e05fe7d4692b9112a7" */
|
|
644
644
|
ImageUniqueID?: string;
|
|
645
|
-
/** ☆☆☆☆ ✔ Example: "(Binary data
|
|
645
|
+
/** ☆☆☆☆ ✔ Example: "(Binary data 772608 bytes, use -b option to extract)" */
|
|
646
646
|
JpgFromRaw?: BinaryField;
|
|
647
647
|
/** ☆☆☆☆ ✔ Example: 845574 */
|
|
648
648
|
JpgFromRawLength?: number;
|
|
@@ -696,7 +696,7 @@ export interface EXIFTags {
|
|
|
696
696
|
OffsetTimeOriginal?: string;
|
|
697
697
|
/** ★★★★ ✔ Example: 8 */
|
|
698
698
|
Orientation?: number;
|
|
699
|
-
/** ☆☆☆☆ ✔ Example: "(Binary data
|
|
699
|
+
/** ☆☆☆☆ ✔ Example: "(Binary data 4798 bytes, use -b option to extract)" */
|
|
700
700
|
OtherImage?: BinaryField | string;
|
|
701
701
|
/** ☆☆☆☆ ✔ Example: 941265 */
|
|
702
702
|
OtherImageLength?: number;
|
|
@@ -906,7 +906,7 @@ export interface FlashPixTags {
|
|
|
906
906
|
ExtensionName?: string;
|
|
907
907
|
/** ☆☆☆☆ ✔ Example: "Invalidated By Modification" */
|
|
908
908
|
ExtensionPersistence?: string;
|
|
909
|
-
/** ☆☆☆☆ ✔ Example: "(Binary data
|
|
909
|
+
/** ☆☆☆☆ ✔ Example: "(Binary data 57881 bytes, use -b option to extract)" */
|
|
910
910
|
ScreenNail?: BinaryField | string;
|
|
911
911
|
/** ☆☆☆☆ ✔ Example: 1 */
|
|
912
912
|
UsedExtensionNumbers?: number;
|
|
@@ -1052,7 +1052,7 @@ export interface PhotoshopTags {
|
|
|
1052
1052
|
PhotoshopFormat?: string;
|
|
1053
1053
|
/** ☆☆☆☆ ✔ Example: 9 */
|
|
1054
1054
|
PhotoshopQuality?: number;
|
|
1055
|
-
/** ☆☆☆☆ ✔ Example: "(Binary data
|
|
1055
|
+
/** ☆☆☆☆ ✔ Example: "(Binary data 4291 bytes, use -b option to extract)" */
|
|
1056
1056
|
PhotoshopThumbnail?: BinaryField | string;
|
|
1057
1057
|
/** ☆☆☆☆ ✔ Example: 1 */
|
|
1058
1058
|
PixelAspectRatio?: number;
|
|
@@ -2263,7 +2263,7 @@ export interface MakerNotesTags {
|
|
|
2263
2263
|
/** ☆☆☆☆ ✔ Example: 0 */
|
|
2264
2264
|
FineTuneOptSpotMetering?: number;
|
|
2265
2265
|
/** ☆☆☆☆ Example: "2015:11:09 08:38" */
|
|
2266
|
-
FirmwareDate?: string;
|
|
2266
|
+
FirmwareDate?: ExifDateTime | string;
|
|
2267
2267
|
/** ☆☆☆☆ ✔ Example: "NX1_000000" */
|
|
2268
2268
|
FirmwareName?: string;
|
|
2269
2269
|
/** ★☆☆☆ ✔ Example: "Rev01500000" */
|
|
@@ -2444,9 +2444,9 @@ export interface MakerNotesTags {
|
|
|
2444
2444
|
FocusPointWrap?: string;
|
|
2445
2445
|
/** ☆☆☆☆ ✔ Example: 999 */
|
|
2446
2446
|
FocusPosition?: number;
|
|
2447
|
-
/** ☆☆☆☆ ✔ Example: "
|
|
2447
|
+
/** ☆☆☆☆ ✔ Example: "n/a" */
|
|
2448
2448
|
FocusPositionHorizontal?: string;
|
|
2449
|
-
/** ☆☆☆☆ ✔ Example: "
|
|
2449
|
+
/** ☆☆☆☆ ✔ Example: "n/a" */
|
|
2450
2450
|
FocusPositionVertical?: string;
|
|
2451
2451
|
/** ☆☆☆☆ ✔ Example: "AF Used; 96" */
|
|
2452
2452
|
FocusProcess?: string;
|
|
@@ -4018,7 +4018,7 @@ export interface XMPTags {
|
|
|
4018
4018
|
CameraProfileDigest?: string;
|
|
4019
4019
|
/** ☆☆☆☆ Example: "Rear" */
|
|
4020
4020
|
CameraUnit?: string;
|
|
4021
|
-
/** ☆☆☆☆ ✔ Example: [{"
|
|
4021
|
+
/** ☆☆☆☆ ✔ Example: [{"DepthMap":{"ConfidenceURI":"android/confidencemap","De…ical"}] */
|
|
4022
4022
|
Cameras?: Struct[];
|
|
4023
4023
|
/** ☆☆☆☆ ✔ Example: "Photo" */
|
|
4024
4024
|
CaptureMode?: string;
|
|
@@ -4054,7 +4054,7 @@ export interface XMPTags {
|
|
|
4054
4054
|
ColorSpace?: string;
|
|
4055
4055
|
/** ☆☆☆☆ ✔ Example: "" */
|
|
4056
4056
|
Colorlabels?: string;
|
|
4057
|
-
/** ☆☆☆☆ ✔ Example: {"Directory":[{"
|
|
4057
|
+
/** ☆☆☆☆ ✔ Example: {"Directory":[{"DataURI":"primary_image","Length":0,"Mime…peg"}]} */
|
|
4058
4058
|
Container?: Struct;
|
|
4059
4059
|
/** ☆☆☆☆ ✔ Example: false */
|
|
4060
4060
|
ConvertToGrayscale?: boolean;
|
|
@@ -4354,7 +4354,7 @@ export interface XMPTags {
|
|
|
4354
4354
|
PreservedFileName?: string;
|
|
4355
4355
|
/** ☆☆☆☆ ✔ Example: 11 */
|
|
4356
4356
|
ProcessVersion?: number;
|
|
4357
|
-
/** ☆☆☆☆ ✔ Example: [{"
|
|
4357
|
+
/** ☆☆☆☆ ✔ Example: [{"CameraIndices":[0],"Type":"DepthPhoto"}] */
|
|
4358
4358
|
Profiles?: Struct[];
|
|
4359
4359
|
/** ☆☆☆☆ ✔ Example: "equirectangular" */
|
|
4360
4360
|
ProjectionType?: string;
|
|
@@ -4495,8 +4495,8 @@ export interface XMPTags {
|
|
|
4495
4495
|
* devices (like iPhones) An example value, JSON stringified, follows the
|
|
4496
4496
|
* popularity ratings.
|
|
4497
4497
|
*
|
|
4498
|
-
* Autogenerated by "yarn mktags" by ExifTool 12.
|
|
4499
|
-
*
|
|
4498
|
+
* Autogenerated by "yarn mktags" by ExifTool 12.56 on Mon Feb 13 2023.
|
|
4499
|
+
* 3030 unique tags were found in 10079 photo and video files.
|
|
4500
4500
|
*/
|
|
4501
4501
|
export interface Tags extends APP12Tags, APP14Tags, APP1Tags, APP4Tags, APP5Tags, APP6Tags, ApplicationRecordTags, CompositeTags, EXIFTags, ExifToolTags, FileTags, FlashPixTags, ICCProfileTags, IPTCTags, JFIFTags, MPFTags, MakerNotesTags, MetaTags, PanasonicRawTags, PhotoshopTags, PrintIMTags, QuickTimeTags, RAFTags, RIFFTags, XMPTags {
|
|
4502
4502
|
errors?: string[];
|
package/dist/WriteTask.js
CHANGED
|
@@ -88,6 +88,7 @@ class WriteTask extends ExifToolTask_1.ExifToolTask {
|
|
|
88
88
|
this.args = args;
|
|
89
89
|
}
|
|
90
90
|
static async for(filename, tags, extraArgs = []) {
|
|
91
|
+
var _a, _b;
|
|
91
92
|
const sourceFile = _path.resolve(filename);
|
|
92
93
|
const args = [
|
|
93
94
|
...FilenameCharsetArgs_1.Utf8FilenameCharsetArgs,
|
|
@@ -104,6 +105,16 @@ class WriteTask extends ExifToolTask_1.ExifToolTask {
|
|
|
104
105
|
// no-op!
|
|
105
106
|
return new VersionTask_1.VersionTask();
|
|
106
107
|
}
|
|
108
|
+
// Special handling for GPSLatitude and GPSLongitude (due to differences
|
|
109
|
+
// in EXIF, XMP, and MIE encodings). See
|
|
110
|
+
// https://exiftool.org/forum/index.php?topic=14488.0 and
|
|
111
|
+
// https://github.com/photostructure/exiftool-vendored.js/issues/131
|
|
112
|
+
if ((0, Number_1.isNumber)(tags.GPSLatitude)) {
|
|
113
|
+
(_a = tags.GPSLatitudeRef) !== null && _a !== void 0 ? _a : (tags.GPSLatitudeRef = tags.GPSLatitude >= 0 ? "N" : "S");
|
|
114
|
+
}
|
|
115
|
+
if ((0, Number_1.isNumber)(tags.GPSLongitude)) {
|
|
116
|
+
(_b = tags.GPSLongitudeRef) !== null && _b !== void 0 ? _b : (tags.GPSLongitudeRef = tags.GPSLongitude >= 0 ? "E" : "W");
|
|
117
|
+
}
|
|
107
118
|
for (const key of (0, Object_1.keys)(tags)) {
|
|
108
119
|
const val = tags[key];
|
|
109
120
|
args.push(`-${key}=${enc(val)}`);
|
package/dist/WriteTask.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WriteTask.js","sourceRoot":"","sources":["../src/WriteTask.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"WriteTask.js","sourceRoot":"","sources":["../src/WriteTask.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,2BAA2B;AAC3B,4CAA6B;AAC7B,mCAAyC;AACzC,yCAAuD;AACvD,2DAAuD;AAEvD,iDAA6C;AAC7C,iCAAoC;AACpC,+DAA+D;AAE/D,qCAAmC;AACnC,qCAA+B;AAC/B,qCAAmC;AACnC,qCAAmC;AACnC,+CAA2C;AAE3C,MAAM,SAAS,GAAG,qCAAqC,CAAA;AACvD,MAAM,GAAG,GAAG,MAAM,CAAC,YAAY,CAAC,EAAE,CAAC,CAAA,CAAC,mBAAmB;AAEvD,+EAA+E;AAC/E,kBAAkB;AAClB,SAAgB,UAAU,CAAC,CAAS;IAClC,OAAO;IACL,wFAAwF;IACxF,IAAA,WAAM,EAAC,CAAC,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,kBAAkB,EAAE,IAAI,EAAE,CAAC;QACpD,qEAAqE;SACpE,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CACtE,CAAA;AACH,CAAC;AAPD,gCAOC;AAED,SAAS,GAAG,CAAC,CAAM,EAAE,WAAW,GAAG,KAAK;IACtC,IAAI,CAAC,IAAI,IAAI,EAAE;QACb,OAAO,EAAE,CAAA;KACV;SAAM,IAAI,IAAA,iBAAQ,EAAC,CAAC,CAAC,EAAE;QACtB,OAAO,MAAM,CAAC,CAAC,CAAC,CAAA;KACjB;SAAM,IAAI,IAAA,iBAAQ,EAAC,CAAC,CAAC,EAAE;QACtB,wCAAwC;QACxC,iDAAiD;QACjD,OAAO,UAAU,CACf,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,YAAY,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAC5D,CAAA;QACD,kCAAkC;KACnC;SAAM,IAAI,IAAA,uBAAY,EAAC,CAAC,CAAC,EAAE;QAC1B,OAAO,IAAA,uBAAY,EAAC,CAAC,CAAC,CAAA;KACvB;SAAM,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;QAC3B,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,IAAA,iBAAQ,EAAC,EAAE,CAAC,IAAI,IAAA,iBAAQ,EAAC,EAAE,CAAC,CAAC,CAAA;QACpE,OAAO,cAAc;YACnB,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;YACvC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAA;KAC5C;SAAM,IAAI,IAAA,iBAAQ,EAAC,CAAC,CAAC,EAAE;QACtB,iDAAiD;QACjD,OAAO,IAAI,IAAA,aAAI,EAAC,CAAC,CAAC;aACf,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;aAChD,IAAI,CAAC,GAAG,CAAC,GAAG,CAAA;KAChB;SAAM;QACL,MAAM,IAAI,KAAK,CAAC,gBAAgB,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAA;KACtD;AACH,CAAC;AAED,MAAa,SAAU,SAAQ,2BAAkB;IAC/C,YACW,UAAkB,EACT,IAAc;QAEhC,KAAK,CAAC,IAAI,CAAC,CAAA;QAHF,eAAU,GAAV,UAAU,CAAQ;QACT,SAAI,GAAJ,IAAI,CAAU;IAGlC,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,GAAG,CACd,QAAgB,EAChB,IAAe,EACf,YAAsB,EAAE;;QAExB,MAAM,UAAU,GAAG,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAA;QAE1C,MAAM,IAAI,GAAa;YACrB,GAAG,6CAAuB;YAC1B,MAAM;YACN,GAAG,GAAG,EAAE;YACR,IAAI,EAAE,oDAAoD;SAC3D,CAAA;QAED,4EAA4E;QAC5E,2BAA2B;QAE3B,IACE,CAAC,SAAS,CAAC,MAAM,KAAK,CAAC;YACrB,IAAA,uBAAe,EAAC,SAAS,EAAE,qCAAiB,CAAC,CAAC;YAChD,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,IAAI,CAAC;YAC7C,CAAC,MAAM,IAAA,kBAAW,EAAC,QAAQ,CAAC,CAAC,EAC7B;YACA,SAAS;YACT,OAAO,IAAI,yBAAW,EAAS,CAAA;SAChC;QAED,wEAAwE;QACxE,wCAAwC;QACxC,yDAAyD;QACzD,oEAAoE;QACpE,IAAI,IAAA,iBAAQ,EAAC,IAAI,CAAC,WAAW,CAAC,EAAE;YAC9B,MAAA,IAAI,CAAC,cAAc,oCAAnB,IAAI,CAAC,cAAc,GAAK,IAAI,CAAC,WAAW,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAA;SAC1D;QACD,IAAI,IAAA,iBAAQ,EAAC,IAAI,CAAC,YAAY,CAAC,EAAE;YAC/B,MAAA,IAAI,CAAC,eAAe,oCAApB,IAAI,CAAC,eAAe,GAAK,IAAI,CAAC,YAAY,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAA;SAC5D;QAED,KAAK,MAAM,GAAG,IAAI,IAAA,aAAI,EAAC,IAAI,CAAC,EAAE;YAC5B,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAA;YACrB,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;SACjC;QAED,IAAI,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC,CAAA;QACvB,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;QACrB,6DAA6D;QAC7D,OAAO,IAAI,SAAS,CAAC,UAAU,EAAE,IAAI,CAAC,CAAA;IACxC,CAAC;IAEQ,QAAQ;QACf,OAAO,YAAY,GAAG,IAAI,CAAC,UAAU,GAAG,GAAG,CAAA;IAC7C,CAAC;IAES,KAAK,CAAC,IAAY,EAAE,KAAY;QACxC,6DAA6D;QAC7D,IAAI,KAAK,IAAI,IAAI;YAAE,MAAM,KAAK,CAAA;QAC9B,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAA;QAClE,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,CAAA;QAClB,IAAI,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,EAAE;YAChC,OAAM;SACP;aAAM;YACL,MAAM,IAAI,KAAK,CAAC,sBAAsB,GAAG,IAAI,CAAC,CAAA;SAC/C;IACH,CAAC;CACF;AAxED,8BAwEC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "exiftool-vendored",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "21.1.0",
|
|
4
4
|
"description": "Efficient, cross-platform access to ExifTool",
|
|
5
5
|
"main": "./dist/ExifTool.js",
|
|
6
6
|
"types": "./dist/ExifTool.d.ts",
|
|
@@ -73,21 +73,19 @@
|
|
|
73
73
|
"@types/chai-subset": "^1.3.3",
|
|
74
74
|
"@types/fs-extra": "^11.0.1",
|
|
75
75
|
"@types/globule": "^1.1.5",
|
|
76
|
-
"@types/he": "^1.
|
|
76
|
+
"@types/he": "^1.2.0",
|
|
77
77
|
"@types/mocha": "^10.0.1",
|
|
78
|
-
"@types/node": "^18.
|
|
78
|
+
"@types/node": "^18.13.0",
|
|
79
79
|
"@types/progress": "^2.0.5",
|
|
80
|
-
"@types/rimraf": "^3.0.2",
|
|
81
|
-
"@types/tar-fs": "^2.0.1",
|
|
82
80
|
"@types/tmp": "^0.2.3",
|
|
83
81
|
"@types/xmldom": "^0.1.31",
|
|
84
|
-
"@typescript-eslint/eslint-plugin": "^5.
|
|
85
|
-
"@typescript-eslint/parser": "^5.
|
|
82
|
+
"@typescript-eslint/eslint-plugin": "^5.52.0",
|
|
83
|
+
"@typescript-eslint/parser": "^5.52.0",
|
|
86
84
|
"@xmldom/xmldom": "^0.8.6",
|
|
87
85
|
"chai": "^4.3.7",
|
|
88
86
|
"chai-as-promised": "^7.1.1",
|
|
89
87
|
"chai-subset": "^1.6.0",
|
|
90
|
-
"eslint": "^8.
|
|
88
|
+
"eslint": "^8.34.0",
|
|
91
89
|
"eslint-plugin-import": "^2.27.5",
|
|
92
90
|
"eslint-plugin-node": "^11.1.0",
|
|
93
91
|
"extract-zip": "^2.0.1",
|
|
@@ -97,13 +95,13 @@
|
|
|
97
95
|
"mocha": "^10.2.0",
|
|
98
96
|
"npm-run-all": "^4.1.5",
|
|
99
97
|
"organize-imports-cli": "^0.10.0",
|
|
100
|
-
"prettier": "^2.8.
|
|
98
|
+
"prettier": "^2.8.4",
|
|
101
99
|
"progress": "^2.0.3",
|
|
102
100
|
"rimraf": "^4.1.2",
|
|
103
101
|
"serve": "^14.2.0",
|
|
104
102
|
"source-map-support": "^0.5.21",
|
|
105
103
|
"tmp": "^0.2.1",
|
|
106
|
-
"typedoc": "^0.23.
|
|
104
|
+
"typedoc": "^0.23.25",
|
|
107
105
|
"typescript": "~4.9.5",
|
|
108
106
|
"xpath": "^0.0.32"
|
|
109
107
|
},
|
|
@@ -116,7 +114,7 @@
|
|
|
116
114
|
"luxon": "^3.2.1"
|
|
117
115
|
},
|
|
118
116
|
"optionalDependencies": {
|
|
119
|
-
"exiftool-vendored.exe": "12.
|
|
120
|
-
"exiftool-vendored.pl": "12.
|
|
117
|
+
"exiftool-vendored.exe": "12.56.0",
|
|
118
|
+
"exiftool-vendored.pl": "12.56.0"
|
|
121
119
|
}
|
|
122
120
|
}
|