exiftool-vendored 28.8.0 → 29.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 +40 -4
- package/README.md +22 -22
- package/SECURITY.md +1 -2
- package/dist/Array.d.ts +4 -4
- package/dist/Array.js +8 -10
- package/dist/Array.js.map +1 -1
- package/dist/AsyncRetry.js.map +1 -1
- package/dist/BinaryExtractionTask.d.ts +4 -2
- package/dist/BinaryExtractionTask.js +8 -5
- package/dist/BinaryExtractionTask.js.map +1 -1
- package/dist/BinaryField.js +2 -0
- package/dist/BinaryField.js.map +1 -1
- package/dist/BinaryToBufferTask.js +5 -5
- package/dist/BinaryToBufferTask.js.map +1 -1
- package/dist/Boolean.d.ts +1 -1
- package/dist/Boolean.js.map +1 -1
- package/dist/CapturedAtTagNames.js.map +1 -1
- package/dist/CoordinateParser.d.ts +59 -0
- package/dist/CoordinateParser.js +286 -0
- package/dist/CoordinateParser.js.map +1 -0
- package/dist/DateTime.d.ts +1 -1
- package/dist/DateTime.js +4 -5
- package/dist/DateTime.js.map +1 -1
- package/dist/DefaultCreateDateTagNames.js.map +1 -1
- package/dist/DefaultExifToolOptions.js +20 -7
- package/dist/DefaultExifToolOptions.js.map +1 -1
- package/dist/DefaultExiftoolArgs.js.map +1 -1
- package/dist/DefaultMaxProcs.js +17 -7
- package/dist/DefaultMaxProcs.js.map +1 -1
- package/dist/DeleteAllTagsArgs.js.map +1 -1
- package/dist/ErrorsAndWarnings.d.ts +5 -1
- package/dist/ErrorsAndWarnings.js +11 -2
- package/dist/ErrorsAndWarnings.js.map +1 -1
- package/dist/ExifDate.js +7 -2
- package/dist/ExifDate.js.map +1 -1
- package/dist/ExifDateTime.d.ts +2 -2
- package/dist/ExifDateTime.js +63 -67
- package/dist/ExifDateTime.js.map +1 -1
- package/dist/ExifTime.js +19 -26
- package/dist/ExifTime.js.map +1 -1
- package/dist/ExifTool.d.ts +28 -24
- package/dist/ExifTool.js +97 -81
- package/dist/ExifTool.js.map +1 -1
- package/dist/ExifToolOptions.d.ts +8 -0
- package/dist/ExifToolOptions.js.map +1 -1
- package/dist/ExifToolTags.js +0 -1
- package/dist/ExifToolTags.js.map +1 -1
- package/dist/ExifToolTask.js +38 -33
- package/dist/ExifToolTask.js.map +1 -1
- package/dist/ExifToolVendoredTags.js.map +1 -1
- package/dist/ExiftoolPath.js +27 -12
- package/dist/ExiftoolPath.js.map +1 -1
- package/dist/File.d.ts +2 -0
- package/dist/File.js +16 -1
- package/dist/File.js.map +1 -1
- package/dist/FileTags.d.ts +3 -2
- package/dist/FileTags.js +3 -2
- package/dist/FileTags.js.map +1 -1
- package/dist/FilenameCharsetArgs.js.map +1 -1
- package/dist/FirstDateTime.js +1 -1
- package/dist/FirstDateTime.js.map +1 -1
- package/dist/GPS.d.ts +18 -0
- package/dist/GPS.js +116 -0
- package/dist/GPS.js.map +1 -0
- package/dist/GeoTz.js.map +1 -1
- package/dist/GeolocationTags.d.ts +1 -1
- package/dist/GeolocationTags.js +16 -14
- package/dist/GeolocationTags.js.map +1 -1
- package/dist/IsWarning.js.map +1 -1
- package/dist/IsWin32.js +17 -7
- package/dist/IsWin32.js.map +1 -1
- package/dist/JSON.js +4 -1
- package/dist/JSON.js.map +1 -1
- package/dist/Lazy.js +2 -1
- package/dist/Lazy.js.map +1 -1
- package/dist/Maybe.js.map +1 -1
- package/dist/Number.d.ts +18 -3
- package/dist/Number.js +36 -1
- package/dist/Number.js.map +1 -1
- package/dist/Object.d.ts +4 -4
- package/dist/Object.js +8 -8
- package/dist/Object.js.map +1 -1
- package/dist/OnlyZerosRE.js.map +1 -1
- package/dist/Pick.js.map +1 -1
- package/dist/ReadRawTask.js +20 -8
- package/dist/ReadRawTask.js.map +1 -1
- package/dist/ReadTask.d.ts +1 -1
- package/dist/ReadTask.js +233 -264
- package/dist/ReadTask.js.map +1 -1
- package/dist/ResourceEvent.d.ts +1 -1
- package/dist/ResourceEvent.js +1 -1
- package/dist/ResourceEvent.js.map +1 -1
- package/dist/RewriteAllTagsTask.js +19 -9
- package/dist/RewriteAllTagsTask.js.map +1 -1
- package/dist/Sidecars.js.map +1 -1
- package/dist/String.d.ts +8 -4
- package/dist/String.js +7 -3
- package/dist/String.js.map +1 -1
- package/dist/Struct.d.ts +1 -1
- package/dist/Struct.js +1 -2
- package/dist/Struct.js.map +1 -1
- package/dist/Tags.d.ts +154 -152
- package/dist/TimeParsing.js +6 -8
- package/dist/TimeParsing.js.map +1 -1
- package/dist/Times.d.ts +6 -0
- package/dist/Times.js +7 -3
- package/dist/Times.js.map +1 -1
- package/dist/Timezones.d.ts +5 -4
- package/dist/Timezones.js +71 -41
- package/dist/Timezones.js.map +1 -1
- package/dist/Version.d.ts +1 -1
- package/dist/Version.js +1 -1
- package/dist/Version.js.map +1 -1
- package/dist/VersionTask.js +1 -1
- package/dist/VersionTask.js.map +1 -1
- package/dist/Which.js.map +1 -1
- package/dist/WriteTags.d.ts +6 -1
- package/dist/WriteTask.js +71 -25
- package/dist/WriteTask.js.map +1 -1
- package/eslint.config.mjs +34 -0
- package/package.json +21 -19
package/dist/ExifDateTime.js
CHANGED
|
@@ -1,16 +1,4 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
|
|
3
|
-
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
|
|
4
|
-
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");
|
|
5
|
-
return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
|
|
6
|
-
};
|
|
7
|
-
var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
|
|
8
|
-
if (kind === "m") throw new TypeError("Private method is not writable");
|
|
9
|
-
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
|
|
10
|
-
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
|
|
11
|
-
return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
|
|
12
|
-
};
|
|
13
|
-
var _a, _ExifDateTime_fromPatterns, _ExifDateTime_looseExifFormats, _ExifDateTime_dt;
|
|
14
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
3
|
exports.ExifDateTime = void 0;
|
|
16
4
|
const luxon_1 = require("luxon");
|
|
@@ -24,20 +12,32 @@ const Timezones_1 = require("./Timezones");
|
|
|
24
12
|
* Encodes an ExifDateTime with an optional tz offset in minutes.
|
|
25
13
|
*/
|
|
26
14
|
class ExifDateTime {
|
|
15
|
+
year;
|
|
16
|
+
month;
|
|
17
|
+
day;
|
|
18
|
+
hour;
|
|
19
|
+
minute;
|
|
20
|
+
second;
|
|
21
|
+
millisecond;
|
|
22
|
+
tzoffsetMinutes;
|
|
23
|
+
rawValue;
|
|
24
|
+
zoneName;
|
|
25
|
+
inferredZone;
|
|
27
26
|
static from(exifOrIso, defaultZone) {
|
|
28
|
-
|
|
29
|
-
return exifOrIso instanceof _a
|
|
27
|
+
return exifOrIso instanceof ExifDateTime
|
|
30
28
|
? exifOrIso // already an ExifDateTime
|
|
31
29
|
: (0, String_1.blank)(exifOrIso)
|
|
32
30
|
? undefined // in order of strictness:
|
|
33
|
-
: (
|
|
31
|
+
: (this.fromExifStrict(exifOrIso, defaultZone) ??
|
|
32
|
+
this.fromISO(exifOrIso, defaultZone) ??
|
|
33
|
+
this.fromExifLoose(exifOrIso, defaultZone));
|
|
34
34
|
}
|
|
35
35
|
static fromISO(iso, defaultZone) {
|
|
36
36
|
if ((0, String_1.blank)(iso) || null != iso.match(/^\d+$/))
|
|
37
37
|
return undefined;
|
|
38
38
|
// Unfortunately, DateTime.fromISO() is happy to parse a date with no time,
|
|
39
39
|
// so we have to do this ourselves:
|
|
40
|
-
return
|
|
40
|
+
return this.#fromPatterns(iso, (0, TimeParsing_1.timeFormats)({
|
|
41
41
|
formatPrefixes: ["y-MM-dd'T'", "y-MM-dd ", "y-M-d "],
|
|
42
42
|
defaultZone,
|
|
43
43
|
}));
|
|
@@ -53,12 +53,22 @@ class ExifDateTime {
|
|
|
53
53
|
* `offsetMinutesToZoneName`.
|
|
54
54
|
*/
|
|
55
55
|
static fromEXIF(text, defaultZone) {
|
|
56
|
-
var _b;
|
|
57
56
|
if ((0, String_1.blank)(text))
|
|
58
57
|
return undefined;
|
|
59
58
|
return (
|
|
60
59
|
// .fromExifStrict() uses .fromISO() as a backstop
|
|
61
|
-
|
|
60
|
+
this.fromExifStrict(text, defaultZone) ??
|
|
61
|
+
this.fromExifLoose(text, defaultZone));
|
|
62
|
+
}
|
|
63
|
+
static #fromPatterns(text, fmts) {
|
|
64
|
+
const result = (0, TimeParsing_1.parseDateTime)(text, fmts);
|
|
65
|
+
return result == null
|
|
66
|
+
? undefined
|
|
67
|
+
: ExifDateTime.fromDateTime(result.dt, {
|
|
68
|
+
rawValue: text,
|
|
69
|
+
unsetMilliseconds: result.unsetMilliseconds,
|
|
70
|
+
inferredZone: result.inferredZone,
|
|
71
|
+
});
|
|
62
72
|
}
|
|
63
73
|
/**
|
|
64
74
|
* Parse the given date-time string, EXIF-formatted.
|
|
@@ -72,29 +82,40 @@ class ExifDateTime {
|
|
|
72
82
|
* `offsetMinutesToZoneName`.
|
|
73
83
|
*/
|
|
74
84
|
static fromExifStrict(text, defaultZone) {
|
|
75
|
-
|
|
76
|
-
if ((0, String_1.blank)(text))
|
|
85
|
+
if ((0, String_1.blank)(text) || !(0, String_1.isString)(text))
|
|
77
86
|
return undefined;
|
|
78
|
-
return (
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
87
|
+
return (this.#fromPatterns(text, (0, TimeParsing_1.timeFormats)({ formatPrefixes: ["y:MM:dd ", "y:M:d "], defaultZone })) ??
|
|
88
|
+
// Not found yet? Maybe it's in ISO format? See
|
|
89
|
+
// https://github.com/photostructure/exiftool-vendored.js/issues/71
|
|
90
|
+
this.fromISO(text, defaultZone));
|
|
91
|
+
}
|
|
92
|
+
static *#looseExifFormats(defaultZone) {
|
|
93
|
+
// The following are from actual datestamps seen in the wild (!!)
|
|
94
|
+
const formats = [
|
|
95
|
+
"MMM d y HH:mm:ss",
|
|
96
|
+
"MMM d y, HH:mm:ss",
|
|
97
|
+
// Thu Oct 13 00:12:27 2016:
|
|
98
|
+
"ccc MMM d HH:mm:ss y",
|
|
99
|
+
];
|
|
100
|
+
const zone = (0, String_1.notBlank)(defaultZone) ? defaultZone : Timezones_1.UnsetZone;
|
|
101
|
+
for (const fmt of formats) {
|
|
102
|
+
yield { fmt: fmt, zone, inferredZone: true };
|
|
103
|
+
}
|
|
82
104
|
}
|
|
83
105
|
static fromExifLoose(text, defaultZone) {
|
|
84
|
-
return (0, String_1.blank)(text)
|
|
106
|
+
return (0, String_1.blank)(text) || !(0, String_1.isString)(text)
|
|
85
107
|
? undefined
|
|
86
|
-
:
|
|
108
|
+
: this.#fromPatterns(text, this.#looseExifFormats(defaultZone));
|
|
87
109
|
}
|
|
88
110
|
static fromDateTime(dt, opts) {
|
|
89
|
-
var _b;
|
|
90
111
|
if (dt == null || !dt.isValid || dt.year === 0 || dt.year === 1) {
|
|
91
112
|
return undefined;
|
|
92
113
|
}
|
|
93
|
-
return new
|
|
114
|
+
return new ExifDateTime(dt.year, dt.month, dt.day, dt.hour, dt.minute, dt.second, dt.millisecond === 0 && true === opts?.unsetMilliseconds
|
|
94
115
|
? undefined
|
|
95
|
-
: dt.millisecond, dt.offset === Timezones_1.UnsetZoneOffsetMinutes ? undefined : dt.offset, opts
|
|
116
|
+
: dt.millisecond, dt.offset === Timezones_1.UnsetZoneOffsetMinutes ? undefined : dt.offset, opts?.rawValue, dt.zoneName == null || dt.zone?.name === Timezones_1.UnsetZone.name
|
|
96
117
|
? undefined
|
|
97
|
-
: dt.zoneName, opts
|
|
118
|
+
: dt.zoneName, opts?.inferredZone);
|
|
98
119
|
}
|
|
99
120
|
/**
|
|
100
121
|
* Create an ExifDateTime from a number of milliseconds since the epoch
|
|
@@ -120,12 +141,13 @@ class ExifDateTime {
|
|
|
120
141
|
dt = dt.setZone(Timezones_1.UnsetZone, { keepLocalTime: true });
|
|
121
142
|
}
|
|
122
143
|
// TODO: is there a way to provide an invalid millisecond value?
|
|
123
|
-
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
|
|
124
144
|
return this.fromDateTime(dt, { rawValue: options.rawValue });
|
|
125
145
|
}
|
|
126
146
|
static now(opts = {}) {
|
|
127
147
|
return this.fromMillis(Date.now(), opts);
|
|
128
148
|
}
|
|
149
|
+
#dt;
|
|
150
|
+
zone;
|
|
129
151
|
constructor(year, month, day, hour, minute, second, millisecond, tzoffsetMinutes, rawValue, zoneName, inferredZone) {
|
|
130
152
|
this.year = year;
|
|
131
153
|
this.month = month;
|
|
@@ -138,7 +160,6 @@ class ExifDateTime {
|
|
|
138
160
|
this.rawValue = rawValue;
|
|
139
161
|
this.zoneName = zoneName;
|
|
140
162
|
this.inferredZone = inferredZone;
|
|
141
|
-
_ExifDateTime_dt.set(this, void 0);
|
|
142
163
|
this.zone = (0, Timezones_1.getZoneName)({ zoneName, tzoffsetMinutes });
|
|
143
164
|
}
|
|
144
165
|
get millis() {
|
|
@@ -151,17 +172,16 @@ class ExifDateTime {
|
|
|
151
172
|
return this.millisecond == null;
|
|
152
173
|
}
|
|
153
174
|
setZone(zone, opts) {
|
|
154
|
-
var _b;
|
|
155
175
|
const dt = (0, TimeParsing_1.setZone)({
|
|
156
176
|
zone,
|
|
157
177
|
src: this.toDateTime(),
|
|
158
178
|
srcHasZone: this.hasZone,
|
|
159
179
|
opts,
|
|
160
180
|
});
|
|
161
|
-
return
|
|
181
|
+
return ExifDateTime.fromDateTime(dt, {
|
|
162
182
|
rawValue: this.rawValue,
|
|
163
183
|
unsetMilliseconds: this.millisecond == null,
|
|
164
|
-
inferredZone:
|
|
184
|
+
inferredZone: opts?.inferredZone ?? true,
|
|
165
185
|
});
|
|
166
186
|
}
|
|
167
187
|
/**
|
|
@@ -169,8 +189,7 @@ class ExifDateTime {
|
|
|
169
189
|
* has an unset zone (as Luxon doesn't support "unset" timezones)
|
|
170
190
|
*/
|
|
171
191
|
toDateTime(overrideZone) {
|
|
172
|
-
|
|
173
|
-
return (__classPrivateFieldSet(this, _ExifDateTime_dt, (_b = __classPrivateFieldGet(this, _ExifDateTime_dt, "f")) !== null && _b !== void 0 ? _b : luxon_1.DateTime.fromObject({
|
|
192
|
+
return (this.#dt ??= luxon_1.DateTime.fromObject({
|
|
174
193
|
year: this.year,
|
|
175
194
|
month: this.month,
|
|
176
195
|
day: this.day,
|
|
@@ -179,8 +198,8 @@ class ExifDateTime {
|
|
|
179
198
|
second: this.second,
|
|
180
199
|
millisecond: this.millisecond,
|
|
181
200
|
}, {
|
|
182
|
-
zone: overrideZone
|
|
183
|
-
})
|
|
201
|
+
zone: overrideZone ?? this.zone,
|
|
202
|
+
}));
|
|
184
203
|
}
|
|
185
204
|
toEpochSeconds(overrideZone) {
|
|
186
205
|
return this.toDateTime(overrideZone).toUnixInteger();
|
|
@@ -189,9 +208,8 @@ class ExifDateTime {
|
|
|
189
208
|
return this.toDateTime().toJSDate();
|
|
190
209
|
}
|
|
191
210
|
toISOString(options = {}) {
|
|
192
|
-
var _b;
|
|
193
211
|
return (0, Maybe_1.denull)(this.toDateTime().toISO({
|
|
194
|
-
suppressMilliseconds:
|
|
212
|
+
suppressMilliseconds: options.suppressMilliseconds ?? this.millisecond == null,
|
|
195
213
|
includeOffset: this.hasZone && options.includeOffset !== false,
|
|
196
214
|
}));
|
|
197
215
|
}
|
|
@@ -233,14 +251,14 @@ class ExifDateTime {
|
|
|
233
251
|
* @return a new ExifDateTime from the given JSON. Note that this instance **may not be valid**.
|
|
234
252
|
*/
|
|
235
253
|
static fromJSON(json) {
|
|
236
|
-
return new
|
|
254
|
+
return new ExifDateTime(json.year, json.month, json.day, json.hour, json.minute, json.second, json.millisecond, json.tzoffsetMinutes, json.rawValue, json.zoneName, json.inferredZone);
|
|
237
255
|
}
|
|
238
256
|
maybeMatchZone(target, maxDeltaMs = 14 * DateTime_1.MinuteMs) {
|
|
239
|
-
var _b, _c, _d;
|
|
240
257
|
const targetZone = target.zone;
|
|
241
258
|
if (targetZone == null || !target.hasZone)
|
|
242
259
|
return;
|
|
243
|
-
return (
|
|
260
|
+
return (this.setZone(targetZone, { keepLocalTime: false })?.ifClose(target, maxDeltaMs) ??
|
|
261
|
+
this.setZone(targetZone, { keepLocalTime: true })?.ifClose(target, maxDeltaMs));
|
|
244
262
|
}
|
|
245
263
|
ifClose(target, maxDeltaMs = 14 * DateTime_1.MinuteMs) {
|
|
246
264
|
const ts = this.toMillis();
|
|
@@ -252,30 +270,8 @@ class ExifDateTime {
|
|
|
252
270
|
if (!this.hasZone) {
|
|
253
271
|
dt = dt.setZone(Timezones_1.UnsetZone, { keepLocalTime: true });
|
|
254
272
|
}
|
|
255
|
-
return
|
|
273
|
+
return ExifDateTime.fromDateTime(dt, this);
|
|
256
274
|
}
|
|
257
275
|
}
|
|
258
276
|
exports.ExifDateTime = ExifDateTime;
|
|
259
|
-
_a = ExifDateTime, _ExifDateTime_dt = new WeakMap(), _ExifDateTime_fromPatterns = function _ExifDateTime_fromPatterns(text, fmts) {
|
|
260
|
-
const result = (0, TimeParsing_1.parseDateTime)(text, fmts);
|
|
261
|
-
return result == null
|
|
262
|
-
? undefined
|
|
263
|
-
: _a.fromDateTime(result.dt, {
|
|
264
|
-
rawValue: text,
|
|
265
|
-
unsetMilliseconds: result.unsetMilliseconds,
|
|
266
|
-
inferredZone: result.inferredZone,
|
|
267
|
-
});
|
|
268
|
-
}, _ExifDateTime_looseExifFormats = function* _ExifDateTime_looseExifFormats(defaultZone) {
|
|
269
|
-
// The following are from actual datestamps seen in the wild (!!)
|
|
270
|
-
const formats = [
|
|
271
|
-
"MMM d y HH:mm:ss",
|
|
272
|
-
"MMM d y, HH:mm:ss",
|
|
273
|
-
// Thu Oct 13 00:12:27 2016:
|
|
274
|
-
"ccc MMM d HH:mm:ss y",
|
|
275
|
-
];
|
|
276
|
-
const zone = (0, String_1.notBlank)(defaultZone) ? defaultZone : Timezones_1.UnsetZone;
|
|
277
|
-
for (const fmt of formats) {
|
|
278
|
-
yield { fmt: fmt, zone, inferredZone: true };
|
|
279
|
-
}
|
|
280
|
-
};
|
|
281
277
|
//# 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":"
|
|
1
|
+
{"version":3,"file":"ExifDateTime.js","sourceRoot":"","sources":["../src/ExifDateTime.ts"],"names":[],"mappings":"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"}
|
package/dist/ExifTime.js
CHANGED
|
@@ -1,16 +1,4 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
|
|
3
|
-
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
|
|
4
|
-
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");
|
|
5
|
-
return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
|
|
6
|
-
};
|
|
7
|
-
var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
|
|
8
|
-
if (kind === "m") throw new TypeError("Private method is not writable");
|
|
9
|
-
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
|
|
10
|
-
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
|
|
11
|
-
return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
|
|
12
|
-
};
|
|
13
|
-
var _ExifTime_instances, _ExifTime_dt, _ExifTime_z, _ExifTime_subsec, _ExifTime_shortZone;
|
|
14
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
3
|
exports.ExifTime = void 0;
|
|
16
4
|
const luxon_1 = require("luxon");
|
|
@@ -22,6 +10,12 @@ const Timezones_1 = require("./Timezones");
|
|
|
22
10
|
* Encodes an ExifTime (which may not have a timezone offset)
|
|
23
11
|
*/
|
|
24
12
|
class ExifTime {
|
|
13
|
+
hour;
|
|
14
|
+
minute;
|
|
15
|
+
second;
|
|
16
|
+
millisecond;
|
|
17
|
+
rawValue;
|
|
18
|
+
inferredZone;
|
|
25
19
|
static fromEXIF(text, defaultZone) {
|
|
26
20
|
const s = (0, String_1.toS)(text).trim();
|
|
27
21
|
if (s.length === 0)
|
|
@@ -37,28 +31,27 @@ class ExifTime {
|
|
|
37
31
|
? undefined
|
|
38
32
|
: new ExifTime(dt.hour, dt.minute, dt.second, unsetMilliseconds ? undefined : dt.millisecond, rawValue, zone, inferredZone);
|
|
39
33
|
}
|
|
34
|
+
#dt;
|
|
35
|
+
#z;
|
|
36
|
+
zone;
|
|
40
37
|
constructor(hour, minute, second, millisecond, rawValue, zoneName, inferredZone) {
|
|
41
|
-
_ExifTime_instances.add(this);
|
|
42
38
|
this.hour = hour;
|
|
43
39
|
this.minute = minute;
|
|
44
40
|
this.second = second;
|
|
45
41
|
this.millisecond = millisecond;
|
|
46
42
|
this.rawValue = rawValue;
|
|
47
43
|
this.inferredZone = inferredZone;
|
|
48
|
-
_ExifTime_dt.set(this, void 0);
|
|
49
|
-
_ExifTime_z.set(this, void 0);
|
|
50
44
|
this.zone = (0, Timezones_1.getZoneName)({ zoneName });
|
|
51
45
|
}
|
|
52
46
|
toDateTime() {
|
|
53
|
-
|
|
54
|
-
return (__classPrivateFieldSet(this, _ExifTime_dt, (_a = __classPrivateFieldGet(this, _ExifTime_dt, "f")) !== null && _a !== void 0 ? _a : luxon_1.DateTime.fromObject({
|
|
47
|
+
return (this.#dt ??= luxon_1.DateTime.fromObject({
|
|
55
48
|
hour: this.hour,
|
|
56
49
|
minute: this.minute,
|
|
57
50
|
second: this.second,
|
|
58
51
|
millisecond: this.millisecond,
|
|
59
52
|
}, {
|
|
60
53
|
zone: this.zone,
|
|
61
|
-
})
|
|
54
|
+
}));
|
|
62
55
|
}
|
|
63
56
|
/**
|
|
64
57
|
* Alias for `.millisecond`
|
|
@@ -69,10 +62,16 @@ class ExifTime {
|
|
|
69
62
|
get hasZone() {
|
|
70
63
|
return this.zone != null;
|
|
71
64
|
}
|
|
65
|
+
#subsec() {
|
|
66
|
+
return this.millisecond == null ? "" : "." + (0, String_1.pad3)(this.millisecond);
|
|
67
|
+
}
|
|
68
|
+
#shortZone() {
|
|
69
|
+
return (this.#z ??= (0, Timezones_1.zoneToShortOffset)(this.zone));
|
|
70
|
+
}
|
|
72
71
|
toString() {
|
|
73
72
|
return ((0, String_1.pad2)(this.hour, this.minute, this.second).join(":") +
|
|
74
|
-
|
|
75
|
-
|
|
73
|
+
this.#subsec() +
|
|
74
|
+
this.#shortZone());
|
|
76
75
|
}
|
|
77
76
|
toISOString() {
|
|
78
77
|
return this.toString();
|
|
@@ -106,10 +105,4 @@ class ExifTime {
|
|
|
106
105
|
}
|
|
107
106
|
}
|
|
108
107
|
exports.ExifTime = ExifTime;
|
|
109
|
-
_ExifTime_dt = new WeakMap(), _ExifTime_z = new WeakMap(), _ExifTime_instances = new WeakSet(), _ExifTime_subsec = function _ExifTime_subsec() {
|
|
110
|
-
return this.millisecond == null ? "" : "." + (0, String_1.pad3)(this.millisecond);
|
|
111
|
-
}, _ExifTime_shortZone = function _ExifTime_shortZone() {
|
|
112
|
-
var _a;
|
|
113
|
-
return (__classPrivateFieldSet(this, _ExifTime_z, (_a = __classPrivateFieldGet(this, _ExifTime_z, "f")) !== null && _a !== void 0 ? _a : (0, Timezones_1.zoneToShortOffset)(this.zone), "f"));
|
|
114
|
-
};
|
|
115
108
|
//# 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":"
|
|
1
|
+
{"version":3,"file":"ExifTime.js","sourceRoot":"","sources":["../src/ExifTime.ts"],"names":[],"mappings":"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"}
|
package/dist/ExifTool.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import * as bc from "batch-cluster";
|
|
2
|
+
import { BinaryExtractionTaskOptions } from "./BinaryExtractionTask";
|
|
2
3
|
import { ContainerDirectoryItem } from "./ContainerDirectoryItem";
|
|
3
4
|
import { Defined, DefinedOrNullValued } from "./Defined";
|
|
4
5
|
import { ErrorsAndWarnings } from "./ErrorsAndWarnings";
|
|
@@ -20,7 +21,7 @@ import { ShortcutTags } from "./ShortcutTags";
|
|
|
20
21
|
import { Struct } from "./Struct";
|
|
21
22
|
import { APPTags, CompositeTags, EXIFTags, ExifToolTags, FileTags, FlashPixTags, IPTCTags, JFIFTags, MPFTags, MakerNotesTags, MetaTags, PanasonicRawTags, PhotoshopTags, PrintIMTags, QuickTimeTags, RAFTags, RIFFTags, Tags, XMPTags } from "./Tags";
|
|
22
23
|
import { Version } from "./Version";
|
|
23
|
-
import { AdditionalWriteTags, ExpandedDateTags, MutableTags, StructAppendTags, WriteTags } from "./WriteTags";
|
|
24
|
+
import { AdditionalWriteTags, ExpandedDateTags, MutableTags, StructAppendTags, WritableGPSRefs, WriteTags } from "./WriteTags";
|
|
24
25
|
import { WriteTaskOptions, WriteTaskResult } from "./WriteTask";
|
|
25
26
|
export { BinaryField } from "./BinaryField";
|
|
26
27
|
export { CapturedAtTagNames } from "./CapturedAtTagNames";
|
|
@@ -37,7 +38,7 @@ export { parseJSON } from "./JSON";
|
|
|
37
38
|
export { DefaultReadTaskOptions } from "./ReadTask";
|
|
38
39
|
export { TimezoneOffsetTagnames, UnsetZone, UnsetZoneName, UnsetZoneOffsetMinutes, defaultVideosToUTC, offsetMinutesToZoneName, } from "./Timezones";
|
|
39
40
|
export { DefaultWriteTaskOptions } from "./WriteTask";
|
|
40
|
-
export type { APPTags, AdditionalWriteTags, IPTCApplicationRecordTags as ApplicationRecordTags, CollectionInfo, CompositeTags, ContainerDirectoryItem, Defined, DefinedOrNullValued, EXIFTags, ErrorsAndWarnings, ExifToolOptions, ExifToolTags, ExifToolTaskOptions, ExifToolVendoredTags, ExpandedDateTags, FileTags, FlashPixTags, GeolocationTags, ICCProfileTags, IPTCApplicationRecordTags, IPTCTags, ImageDataHashTag, JFIFTags, Json, KeywordInfoStruct, KeywordStruct, Literal, MPFTags, MWGCollectionsTags, MWGKeywordTags, MakerNotesTags, Maybe, MetaTags, MutableTags, Omit, PanasonicRawTags, PhotoshopTags, PrintIMTags, QuickTimeTags, RAFTags, RIFFTags, RawTags, ReadTaskOptions, ResourceEvent, ShortcutTags, Struct, StructAppendTags, Tags, Version, WriteTags, WriteTaskOptions, WriteTaskResult, XMPTags, };
|
|
41
|
+
export type { APPTags, AdditionalWriteTags, IPTCApplicationRecordTags as ApplicationRecordTags, CollectionInfo, CompositeTags, ContainerDirectoryItem, Defined, DefinedOrNullValued, EXIFTags, ErrorsAndWarnings, ExifToolOptions, ExifToolTags, ExifToolTaskOptions, ExifToolVendoredTags, ExpandedDateTags, FileTags, FlashPixTags, GeolocationTags, ICCProfileTags, IPTCApplicationRecordTags, IPTCTags, ImageDataHashTag, JFIFTags, Json, KeywordInfoStruct, KeywordStruct, Literal, MPFTags, MWGCollectionsTags, MWGKeywordTags, MakerNotesTags, Maybe, MetaTags, MutableTags, Omit, PanasonicRawTags, PhotoshopTags, PrintIMTags, QuickTimeTags, RAFTags, RIFFTags, RawTags, ReadTaskOptions, ResourceEvent, ShortcutTags, Struct, StructAppendTags, Tags, Version, WritableGPSRefs, WriteTags, WriteTaskOptions, WriteTaskResult, XMPTags, };
|
|
41
42
|
/**
|
|
42
43
|
* Manages delegating calls to a cluster of ExifTool child processes.
|
|
43
44
|
*
|
|
@@ -153,8 +154,6 @@ export declare class ExifTool {
|
|
|
153
154
|
*/
|
|
154
155
|
write(file: string, tags: WriteTags, options?: WriteTaskOptions): Promise<WriteTaskResult>;
|
|
155
156
|
/**
|
|
156
|
-
* Write the given `tags` to `file`.
|
|
157
|
-
*
|
|
158
157
|
* @param file an existing file to write `tags` to
|
|
159
158
|
*
|
|
160
159
|
* @param tags the tags to write to `file`.
|
|
@@ -173,7 +172,7 @@ export declare class ExifTool {
|
|
|
173
172
|
*
|
|
174
173
|
* @deprecated use
|
|
175
174
|
* {@link ExifTool.write(file: string, tags: WriteTags, options?: WriteTaskOptions)}
|
|
176
|
-
* instead
|
|
175
|
+
* instead: move `writeArgs` into your `options` hash.
|
|
177
176
|
*/
|
|
178
177
|
write(file: string, tags: WriteTags, writeArgs?: string[], options?: WriteTaskOptions): Promise<WriteTaskResult>;
|
|
179
178
|
/**
|
|
@@ -191,26 +190,28 @@ export declare class ExifTool {
|
|
|
191
190
|
retain?: (keyof Tags | string)[];
|
|
192
191
|
} & Partial<ExifToolTaskOptions>): Promise<WriteTaskResult>;
|
|
193
192
|
/**
|
|
194
|
-
* Extract the low-resolution thumbnail in `path/to/image.jpg`
|
|
195
|
-
*
|
|
193
|
+
* Extract the low-resolution thumbnail in `path/to/image.jpg` and write it to
|
|
194
|
+
* `path/to/thumbnail.jpg`.
|
|
196
195
|
*
|
|
197
196
|
* Note that these images can be less than .1 megapixels in size.
|
|
198
197
|
*
|
|
199
|
-
* @return a `Promise<void
|
|
200
|
-
*
|
|
198
|
+
* @return a `Promise<void>`
|
|
199
|
+
*
|
|
200
|
+
* @throws if the file could not be read or the output not written
|
|
201
201
|
*/
|
|
202
|
-
extractThumbnail(imageFile: string, thumbnailFile: string, opts?:
|
|
202
|
+
extractThumbnail(imageFile: string, thumbnailFile: string, opts?: BinaryExtractionTaskOptions): Promise<void>;
|
|
203
203
|
/**
|
|
204
|
-
* Extract the "preview" image in `path/to/image.jpg`
|
|
205
|
-
*
|
|
204
|
+
* Extract the "preview" image in `path/to/image.jpg` and write it to
|
|
205
|
+
* `path/to/preview.jpg`.
|
|
206
206
|
*
|
|
207
207
|
* The size of these images varies widely, and is present in dSLR images.
|
|
208
208
|
* Canon, Fuji, Olympus, and Sony use this tag.
|
|
209
209
|
*
|
|
210
|
-
* @return a `Promise<void
|
|
211
|
-
*
|
|
210
|
+
* @return a `Promise<void>`
|
|
211
|
+
*
|
|
212
|
+
* @throws if the file could not be read or the output not written
|
|
212
213
|
*/
|
|
213
|
-
extractPreview(imageFile: string, previewFile: string, opts?:
|
|
214
|
+
extractPreview(imageFile: string, previewFile: string, opts?: BinaryExtractionTaskOptions): Promise<void>;
|
|
214
215
|
/**
|
|
215
216
|
* Extract the "JpgFromRaw" image in `path/to/image.jpg` and write it to
|
|
216
217
|
* `path/to/fromRaw.jpg`.
|
|
@@ -218,27 +219,30 @@ export declare class ExifTool {
|
|
|
218
219
|
* This size of these images varies widely, and is not present in all RAW
|
|
219
220
|
* images. Nikon and Panasonic use this tag.
|
|
220
221
|
*
|
|
221
|
-
* @return a `Promise<void
|
|
222
|
-
*
|
|
222
|
+
* @return a `Promise<void>`
|
|
223
|
+
*
|
|
224
|
+
* @throws if the file could not be read or the output not written.
|
|
223
225
|
*/
|
|
224
|
-
extractJpgFromRaw(imageFile: string, outputFile: string, opts?:
|
|
226
|
+
extractJpgFromRaw(imageFile: string, outputFile: string, opts?: BinaryExtractionTaskOptions): Promise<void>;
|
|
225
227
|
/**
|
|
226
228
|
* Extract a given binary value from "tagname" tag associated to
|
|
227
229
|
* `path/to/image.jpg` and write it to `dest` (which cannot exist and whose
|
|
228
230
|
* directory must already exist).
|
|
229
231
|
*
|
|
230
|
-
* @return a `Promise<void
|
|
231
|
-
*
|
|
232
|
+
* @return a `Promise<void>`
|
|
233
|
+
*
|
|
234
|
+
* @throws if the binary output not be written to `dest`.
|
|
232
235
|
*/
|
|
233
|
-
extractBinaryTag(tagname: string, src: string, dest: string, opts?:
|
|
236
|
+
extractBinaryTag(tagname: string, src: string, dest: string, opts?: BinaryExtractionTaskOptions): Promise<void>;
|
|
234
237
|
/**
|
|
235
238
|
* Extract a given binary value from "tagname" tag associated to
|
|
236
239
|
* `path/to/image.jpg` as a `Buffer`. This has the advantage of not writing to
|
|
237
240
|
* a file, but if the payload associated to `tagname` is large, this can cause
|
|
238
241
|
* out-of-memory errors.
|
|
239
242
|
*
|
|
240
|
-
* @return a `Promise<Buffer
|
|
241
|
-
*
|
|
243
|
+
* @return a `Promise<Buffer>`
|
|
244
|
+
*
|
|
245
|
+
* @throws if the file or tag is missing.
|
|
242
246
|
*/
|
|
243
247
|
extractBinaryTagToBuffer(tagname: PreviewTag, imageFile: string, opts?: ExifToolTaskOptions): Promise<Buffer>;
|
|
244
248
|
/**
|
|
@@ -257,7 +261,7 @@ export declare class ExifTool {
|
|
|
257
261
|
* @param {boolean} opts.allowMakerNoteRepair if there are problems with MakerNote
|
|
258
262
|
* tags, allow ExifTool to apply heuristics to recover corrupt tags. See
|
|
259
263
|
* exiftool's `-F` flag.
|
|
260
|
-
* @return {Promise<void>} resolved
|
|
264
|
+
* @return {Promise<void>} resolved after the outputFile has been written.
|
|
261
265
|
*/
|
|
262
266
|
rewriteAllTags(inputFile: string, outputFile: string, opts?: {
|
|
263
267
|
allowMakerNoteRepair?: boolean;
|