exiftool-vendored 28.7.0 → 29.0.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 +30 -0
- package/SECURITY.md +1 -2
- 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/CoordinateParser.d.ts +38 -0
- package/dist/CoordinateParser.js +185 -0
- package/dist/CoordinateParser.js.map +1 -0
- package/dist/DateTime.js +4 -5
- package/dist/DateTime.js.map +1 -1
- package/dist/DefaultExifToolOptions.js +1 -3
- package/dist/DefaultExifToolOptions.js.map +1 -1
- package/dist/ErrorsAndWarnings.js +2 -2
- package/dist/ErrorsAndWarnings.js.map +1 -1
- package/dist/ExifDate.js +7 -2
- package/dist/ExifDate.js.map +1 -1
- package/dist/ExifDateTime.js +61 -64
- 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 +1 -3
- package/dist/ExifTool.js +56 -57
- package/dist/ExifTool.js.map +1 -1
- package/dist/ExifToolTask.js +21 -26
- package/dist/ExifToolTask.js.map +1 -1
- package/dist/ExiftoolPath.js +7 -4
- package/dist/ExiftoolPath.js.map +1 -1
- package/dist/FirstDateTime.js +1 -1
- package/dist/FirstDateTime.js.map +1 -1
- package/dist/GPS.d.ts +24 -0
- package/dist/GPS.js +152 -0
- package/dist/GPS.js.map +1 -0
- package/dist/JSON.js +1 -1
- package/dist/JSON.js.map +1 -1
- package/dist/Number.d.ts +13 -0
- package/dist/Number.js +26 -0
- package/dist/Number.js.map +1 -1
- package/dist/ReadRawTask.js +3 -1
- package/dist/ReadRawTask.js.map +1 -1
- package/dist/ReadTask.js +189 -254
- package/dist/ReadTask.js.map +1 -1
- package/dist/RewriteAllTagsTask.js +2 -2
- package/dist/RewriteAllTagsTask.js.map +1 -1
- package/dist/String.d.ts +6 -2
- package/dist/String.js +7 -0
- package/dist/String.js.map +1 -1
- package/dist/Struct.js +1 -2
- package/dist/Struct.js.map +1 -1
- package/dist/Tags.d.ts +26 -26
- 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 +1 -1
- package/dist/Timezones.js +19 -24
- package/dist/Timezones.js.map +1 -1
- package/dist/VersionTask.js +1 -1
- package/dist/VersionTask.js.map +1 -1
- package/dist/WriteTask.js +38 -13
- package/dist/WriteTask.js.map +1 -1
- package/package.json +10 -10
package/dist/ReadTask.js
CHANGED
|
@@ -22,18 +22,6 @@ var __importStar = (this && this.__importStar) || function (mod) {
|
|
|
22
22
|
__setModuleDefault(result, mod);
|
|
23
23
|
return result;
|
|
24
24
|
};
|
|
25
|
-
var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
|
|
26
|
-
if (kind === "m") throw new TypeError("Private method is not writable");
|
|
27
|
-
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
|
|
28
|
-
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");
|
|
29
|
-
return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
|
|
30
|
-
};
|
|
31
|
-
var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
|
|
32
|
-
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
|
|
33
|
-
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");
|
|
34
|
-
return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
|
|
35
|
-
};
|
|
36
|
-
var _ReadTask_instances, _ReadTask_raw, _ReadTask_rawDegrouped, _ReadTask_tags, _ReadTask_isVideo, _ReadTask_defaultToUTC, _ReadTask_tagName, _ReadTask_parseTags, _ReadTask_lat, _ReadTask_lon, _ReadTask_extractTzOffsetFromGps, _ReadTask_extractGpsMetadata, _ReadTask_parseLocation, _ReadTask_tz, _ReadTask_extractTzOffset, _ReadTask_parseTag;
|
|
37
25
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
38
26
|
exports.ReadTask = exports.DefaultReadTaskOptions = exports.ReadTaskOptionFields = void 0;
|
|
39
27
|
exports.nullish = nullish;
|
|
@@ -41,6 +29,7 @@ const batch_cluster_1 = require("batch-cluster");
|
|
|
41
29
|
const _path = __importStar(require("node:path"));
|
|
42
30
|
const Array_1 = require("./Array");
|
|
43
31
|
const BinaryField_1 = require("./BinaryField");
|
|
32
|
+
const Boolean_1 = require("./Boolean");
|
|
44
33
|
const DefaultExifToolOptions_1 = require("./DefaultExifToolOptions");
|
|
45
34
|
const ErrorsAndWarnings_1 = require("./ErrorsAndWarnings");
|
|
46
35
|
const ExifDate_1 = require("./ExifDate");
|
|
@@ -49,7 +38,7 @@ const ExifTime_1 = require("./ExifTime");
|
|
|
49
38
|
const ExifToolOptions_1 = require("./ExifToolOptions");
|
|
50
39
|
const ExifToolTask_1 = require("./ExifToolTask");
|
|
51
40
|
const FilenameCharsetArgs_1 = require("./FilenameCharsetArgs");
|
|
52
|
-
const
|
|
41
|
+
const GPS_1 = require("./GPS");
|
|
53
42
|
const Lazy_1 = require("./Lazy");
|
|
54
43
|
const Number_1 = require("./Number");
|
|
55
44
|
const OnlyZerosRE_1 = require("./OnlyZerosRE");
|
|
@@ -95,6 +84,13 @@ exports.DefaultReadTaskOptions = {
|
|
|
95
84
|
};
|
|
96
85
|
const MaybeDateOrTimeRe = /when|date|time|subsec|creat|modif/i;
|
|
97
86
|
class ReadTask extends ExifToolTask_1.ExifToolTask {
|
|
87
|
+
sourceFile;
|
|
88
|
+
args;
|
|
89
|
+
options;
|
|
90
|
+
degroup;
|
|
91
|
+
#raw = {};
|
|
92
|
+
#rawDegrouped = {};
|
|
93
|
+
#tags = {};
|
|
98
94
|
/**
|
|
99
95
|
* @param sourceFile the file to read
|
|
100
96
|
* @param args the full arguments to pass to exiftool that take into account
|
|
@@ -102,121 +98,13 @@ class ReadTask extends ExifToolTask_1.ExifToolTask {
|
|
|
102
98
|
*/
|
|
103
99
|
constructor(sourceFile, args, options) {
|
|
104
100
|
super(args, options);
|
|
105
|
-
_ReadTask_instances.add(this);
|
|
106
101
|
this.sourceFile = sourceFile;
|
|
107
102
|
this.args = args;
|
|
108
103
|
this.options = options;
|
|
109
|
-
_ReadTask_raw.set(this, {});
|
|
110
|
-
_ReadTask_rawDegrouped.set(this, {});
|
|
111
|
-
_ReadTask_tags.set(this, {}
|
|
112
|
-
/**
|
|
113
|
-
* @param sourceFile the file to read
|
|
114
|
-
* @param args the full arguments to pass to exiftool that take into account
|
|
115
|
-
* the flags in `options`
|
|
116
|
-
*/
|
|
117
|
-
);
|
|
118
|
-
_ReadTask_lat.set(this, (0, Lazy_1.lazy)(() => { var _a; return (_a = __classPrivateFieldGet(this, _ReadTask_extractGpsMetadata, "f").call(this)) === null || _a === void 0 ? void 0 : _a.lat; }));
|
|
119
|
-
_ReadTask_lon.set(this, (0, Lazy_1.lazy)(() => { var _a; return (_a = __classPrivateFieldGet(this, _ReadTask_extractGpsMetadata, "f").call(this)) === null || _a === void 0 ? void 0 : _a.lon; }));
|
|
120
|
-
_ReadTask_extractTzOffsetFromGps.set(this, (0, Lazy_1.lazy)(() => { var _a; return (_a = __classPrivateFieldGet(this, _ReadTask_extractGpsMetadata, "f").call(this)) === null || _a === void 0 ? void 0 : _a.tz; }));
|
|
121
|
-
_ReadTask_extractGpsMetadata.set(this, (0, Lazy_1.lazy)(() => {
|
|
122
|
-
let lat = __classPrivateFieldGet(this, _ReadTask_instances, "m", _ReadTask_parseLocation).call(this, {
|
|
123
|
-
tagName: "GPSLatitude",
|
|
124
|
-
positiveRef: "N",
|
|
125
|
-
negativeRef: "S",
|
|
126
|
-
maxValid: 90,
|
|
127
|
-
});
|
|
128
|
-
let lon = __classPrivateFieldGet(this, _ReadTask_instances, "m", _ReadTask_parseLocation).call(this, {
|
|
129
|
-
tagName: "GPSLongitude",
|
|
130
|
-
positiveRef: "E",
|
|
131
|
-
negativeRef: "W",
|
|
132
|
-
maxValid: 180,
|
|
133
|
-
});
|
|
134
|
-
let invalid = false;
|
|
135
|
-
if (this.options.ignoreZeroZeroLatLon && lat === 0 && lon === 0) {
|
|
136
|
-
lat = undefined;
|
|
137
|
-
lon = undefined;
|
|
138
|
-
invalid = true;
|
|
139
|
-
}
|
|
140
|
-
let tz;
|
|
141
|
-
if (!invalid && !(0, String_1.blank)(__classPrivateFieldGet(this, _ReadTask_rawDegrouped, "f").GeolocationTimeZone)) {
|
|
142
|
-
const geolocTz = (0, Timezones_1.normalizeZone)(__classPrivateFieldGet(this, _ReadTask_rawDegrouped, "f").GeolocationTimeZone);
|
|
143
|
-
if (geolocTz != null) {
|
|
144
|
-
tz = {
|
|
145
|
-
tz: geolocTz.name,
|
|
146
|
-
src: "GeolocationTimeZone",
|
|
147
|
-
};
|
|
148
|
-
}
|
|
149
|
-
else {
|
|
150
|
-
this.warnings.push("Failed to determine timezone from GeolocationTimeZone value: " +
|
|
151
|
-
__classPrivateFieldGet(this, _ReadTask_rawDegrouped, "f").GeolocationTimeZone);
|
|
152
|
-
}
|
|
153
|
-
}
|
|
154
|
-
if (tz == null && !invalid && lat != null && lon != null) {
|
|
155
|
-
try {
|
|
156
|
-
const geoTz = this.options.geoTz(lat, lon);
|
|
157
|
-
const zone = (0, Timezones_1.normalizeZone)(geoTz);
|
|
158
|
-
if (zone != null) {
|
|
159
|
-
tz = {
|
|
160
|
-
tz: zone.name,
|
|
161
|
-
src: "GPSLatitude/GPSLongitude",
|
|
162
|
-
};
|
|
163
|
-
}
|
|
164
|
-
}
|
|
165
|
-
catch (error) {
|
|
166
|
-
this.warnings.push("Failed to determine timezone from GPS coordinates: " + error);
|
|
167
|
-
invalid = true;
|
|
168
|
-
lat = undefined;
|
|
169
|
-
lon = undefined;
|
|
170
|
-
}
|
|
171
|
-
}
|
|
172
|
-
if (this.options.geolocation && invalid) {
|
|
173
|
-
if (__classPrivateFieldGet(this, _ReadTask_tags, "f").GPSLatitude != null || __classPrivateFieldGet(this, _ReadTask_tags, "f").GPSLongitude != null) {
|
|
174
|
-
// don't complain unless there was a GPS value:
|
|
175
|
-
this.warnings.push("Invalid GPSLatitude or GPSLongitude. Deleting geolocation tags.");
|
|
176
|
-
}
|
|
177
|
-
for (const key of GeolocationTags_1.GeolocationTagNames) {
|
|
178
|
-
delete __classPrivateFieldGet(this, _ReadTask_tags, "f")[key];
|
|
179
|
-
delete __classPrivateFieldGet(this, _ReadTask_raw, "f")[key];
|
|
180
|
-
delete __classPrivateFieldGet(this, _ReadTask_rawDegrouped, "f")[key];
|
|
181
|
-
}
|
|
182
|
-
}
|
|
183
|
-
return {
|
|
184
|
-
lat,
|
|
185
|
-
lon,
|
|
186
|
-
invalid,
|
|
187
|
-
tz,
|
|
188
|
-
};
|
|
189
|
-
}));
|
|
190
|
-
_ReadTask_tz.set(this, (0, Lazy_1.lazy)(() => { var _a; return (_a = __classPrivateFieldGet(this, _ReadTask_extractTzOffset, "f").call(this)) === null || _a === void 0 ? void 0 : _a.tz; }));
|
|
191
|
-
_ReadTask_extractTzOffset.set(this, (0, Lazy_1.lazy)(() => {
|
|
192
|
-
var _a, _b, _c, _d, _e;
|
|
193
|
-
if (true === this.options.preferTimezoneInferenceFromGps) {
|
|
194
|
-
const fromGps = __classPrivateFieldGet(this, _ReadTask_extractTzOffsetFromGps, "f").call(this);
|
|
195
|
-
if (fromGps != null) {
|
|
196
|
-
return fromGps;
|
|
197
|
-
}
|
|
198
|
-
}
|
|
199
|
-
return ((_e = (_d = (_c = (_b = (_a = (0, Timezones_1.extractTzOffsetFromTags)(__classPrivateFieldGet(this, _ReadTask_rawDegrouped, "f"), this.options)) !== null && _a !== void 0 ? _a : __classPrivateFieldGet(this, _ReadTask_extractTzOffsetFromGps, "f").call(this)) !== null && _b !== void 0 ? _b : (0, Timezones_1.extractTzOffsetFromDatestamps)(__classPrivateFieldGet(this, _ReadTask_rawDegrouped, "f"), this.options)) !== null && _c !== void 0 ? _c :
|
|
200
|
-
// See https://github.com/photostructure/exiftool-vendored.js/issues/113
|
|
201
|
-
// and https://github.com/photostructure/exiftool-vendored.js/issues/156
|
|
202
|
-
// Videos are frequently encoded in UTC, but don't include the
|
|
203
|
-
// timezone offset in their datetime stamps.
|
|
204
|
-
(__classPrivateFieldGet(this, _ReadTask_instances, "m", _ReadTask_defaultToUTC).call(this)
|
|
205
|
-
? {
|
|
206
|
-
tz: "UTC",
|
|
207
|
-
src: "defaultVideosToUTC",
|
|
208
|
-
}
|
|
209
|
-
: // not applicable:
|
|
210
|
-
undefined)) !== null && _d !== void 0 ? _d :
|
|
211
|
-
// This is a last-ditch estimation heuristic:
|
|
212
|
-
(0, Timezones_1.extractTzOffsetFromUTCOffset)(__classPrivateFieldGet(this, _ReadTask_rawDegrouped, "f"))) !== null && _e !== void 0 ? _e :
|
|
213
|
-
// No, really, this is the even worse than UTC offset heuristics:
|
|
214
|
-
(0, Timezones_1.extractTzOffsetFromTimeStamp)(__classPrivateFieldGet(this, _ReadTask_rawDegrouped, "f"), this.options));
|
|
215
|
-
}));
|
|
216
104
|
// See https://github.com/photostructure/exiftool-vendored.js/issues/147#issuecomment-1642580118
|
|
217
105
|
this.degroup = this.args.includes("-G");
|
|
218
|
-
|
|
219
|
-
|
|
106
|
+
this.#tags = { SourceFile: sourceFile };
|
|
107
|
+
this.#tags.errors = this.errors;
|
|
220
108
|
}
|
|
221
109
|
static for(filename, options) {
|
|
222
110
|
const opts = (0, ExifToolOptions_1.handleDeprecatedOptions)({
|
|
@@ -252,7 +140,7 @@ class ReadTask extends ExifToolTask_1.ExifToolTask {
|
|
|
252
140
|
// only exposed for tests
|
|
253
141
|
parse(data, err) {
|
|
254
142
|
try {
|
|
255
|
-
|
|
143
|
+
this.#raw = JSON.parse(data)[0];
|
|
256
144
|
}
|
|
257
145
|
catch (jsonError) {
|
|
258
146
|
// TODO: should restart exiftool?
|
|
@@ -261,159 +149,206 @@ class ReadTask extends ExifToolTask_1.ExifToolTask {
|
|
|
261
149
|
err,
|
|
262
150
|
jsonError,
|
|
263
151
|
});
|
|
264
|
-
throw err
|
|
152
|
+
throw err ?? jsonError;
|
|
265
153
|
}
|
|
266
154
|
// ExifTool does "humorous" things to paths, like flip path separators. resolve() undoes that.
|
|
267
|
-
const SourceFile = _path.resolve(
|
|
155
|
+
const SourceFile = _path.resolve(this.#raw.SourceFile);
|
|
268
156
|
// Sanity check that the result is for the file we want:
|
|
269
157
|
if (SourceFile !== this.sourceFile) {
|
|
270
158
|
// Throw an error rather than add an errors string because this is *really* bad:
|
|
271
|
-
throw new Error(`Internal error: unexpected SourceFile of ${
|
|
159
|
+
throw new Error(`Internal error: unexpected SourceFile of ${this.#raw.SourceFile} for file ${this.sourceFile}`);
|
|
272
160
|
}
|
|
273
|
-
return
|
|
274
|
-
}
|
|
275
|
-
}
|
|
276
|
-
exports.ReadTask = ReadTask;
|
|
277
|
-
_ReadTask_raw = new WeakMap(), _ReadTask_rawDegrouped = new WeakMap(), _ReadTask_tags = new WeakMap(), _ReadTask_lat = new WeakMap(), _ReadTask_lon = new WeakMap(), _ReadTask_extractTzOffsetFromGps = new WeakMap(), _ReadTask_extractGpsMetadata = new WeakMap(), _ReadTask_tz = new WeakMap(), _ReadTask_extractTzOffset = new WeakMap(), _ReadTask_instances = new WeakSet(), _ReadTask_isVideo = function _ReadTask_isVideo() {
|
|
278
|
-
var _a;
|
|
279
|
-
return String((_a = __classPrivateFieldGet(this, _ReadTask_rawDegrouped, "f")) === null || _a === void 0 ? void 0 : _a.MIMEType).startsWith("video/");
|
|
280
|
-
}, _ReadTask_defaultToUTC = function _ReadTask_defaultToUTC() {
|
|
281
|
-
return __classPrivateFieldGet(this, _ReadTask_instances, "m", _ReadTask_isVideo).call(this) && this.options.defaultVideosToUTC;
|
|
282
|
-
}, _ReadTask_tagName = function _ReadTask_tagName(k) {
|
|
283
|
-
var _a;
|
|
284
|
-
return this.degroup ? ((_a = k.split(":")[1]) !== null && _a !== void 0 ? _a : k) : k;
|
|
285
|
-
}, _ReadTask_parseTags = function _ReadTask_parseTags() {
|
|
286
|
-
if (this.degroup) {
|
|
287
|
-
__classPrivateFieldSet(this, _ReadTask_rawDegrouped, {}, "f");
|
|
288
|
-
for (const [key, value] of Object.entries(__classPrivateFieldGet(this, _ReadTask_raw, "f"))) {
|
|
289
|
-
const k = __classPrivateFieldGet(this, _ReadTask_instances, "m", _ReadTask_tagName).call(this, key);
|
|
290
|
-
__classPrivateFieldGet(this, _ReadTask_rawDegrouped, "f")[k] = value;
|
|
291
|
-
}
|
|
292
|
-
}
|
|
293
|
-
else {
|
|
294
|
-
__classPrivateFieldSet(this, _ReadTask_rawDegrouped, __classPrivateFieldGet(this, _ReadTask_raw, "f"), "f");
|
|
295
|
-
}
|
|
296
|
-
// avoid casting `this.tags as any` for the rest of the function:
|
|
297
|
-
const tags = __classPrivateFieldGet(this, _ReadTask_tags, "f");
|
|
298
|
-
const tzSrc = __classPrivateFieldGet(this, _ReadTask_extractTzOffset, "f").call(this);
|
|
299
|
-
if (tzSrc) {
|
|
300
|
-
tags.tz = tzSrc.tz;
|
|
301
|
-
tags.tzSource = tzSrc.src;
|
|
161
|
+
return this.#parseTags();
|
|
302
162
|
}
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
const v = __classPrivateFieldGet(this, _ReadTask_instances, "m", _ReadTask_parseTag).call(this, k, value);
|
|
306
|
-
// Note that we set `key` (which may include a group prefix):
|
|
307
|
-
tags[key] = v;
|
|
163
|
+
#isVideo() {
|
|
164
|
+
return String(this.#rawDegrouped?.MIMEType).startsWith("video/");
|
|
308
165
|
}
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
// garbage collector.
|
|
312
|
-
const { errors, warnings } = (0, ErrorsAndWarnings_1.errorsAndWarnings)(this, tags);
|
|
313
|
-
tags.errors = errors;
|
|
314
|
-
tags.warnings = warnings;
|
|
315
|
-
return tags;
|
|
316
|
-
}, _ReadTask_parseLocation = function _ReadTask_parseLocation({ tagName, positiveRef, negativeRef, maxValid, }) {
|
|
317
|
-
const tagValue = __classPrivateFieldGet(this, _ReadTask_rawDegrouped, "f")[tagName];
|
|
318
|
-
const refKey = tagName + "Ref";
|
|
319
|
-
const ref = __classPrivateFieldGet(this, _ReadTask_rawDegrouped, "f")[refKey];
|
|
320
|
-
const result = (0, Number_1.toFloat)(tagValue);
|
|
321
|
-
if (result == null) {
|
|
322
|
-
return undefined;
|
|
166
|
+
#defaultToUTC() {
|
|
167
|
+
return this.#isVideo() && this.options.defaultVideosToUTC;
|
|
323
168
|
}
|
|
324
|
-
|
|
325
|
-
this.
|
|
326
|
-
return undefined;
|
|
169
|
+
#tagName(k) {
|
|
170
|
+
return this.degroup ? k.split(":")[1] ?? k : k;
|
|
327
171
|
}
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
const expectedPositive = ref.toUpperCase().startsWith(positiveRef) || ((0, Number_1.isNumber)(ref) && ref >= 0);
|
|
336
|
-
const expectedNegative = ref.toUpperCase().startsWith(negativeRef) || ((0, Number_1.isNumber)(ref) && ref < 0);
|
|
337
|
-
if (expectedPositive && result < 0) {
|
|
338
|
-
this.warnings.push(`Invalid ${tagName} or ${refKey}: expected ${ref} ${tagName} > 0 but got ${result}`);
|
|
172
|
+
#parseTags() {
|
|
173
|
+
if (this.degroup) {
|
|
174
|
+
this.#rawDegrouped = {};
|
|
175
|
+
for (const [key, value] of Object.entries(this.#raw)) {
|
|
176
|
+
const k = this.#tagName(key);
|
|
177
|
+
this.#rawDegrouped[k] = value;
|
|
178
|
+
}
|
|
339
179
|
}
|
|
340
|
-
else
|
|
341
|
-
this
|
|
180
|
+
else {
|
|
181
|
+
this.#rawDegrouped = this.#raw;
|
|
342
182
|
}
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
183
|
+
// avoid casting `this.tags as any` for the rest of the function:
|
|
184
|
+
const tags = this.#tags;
|
|
185
|
+
// Must be run before extracting tz offset, to clear out invalid GPS
|
|
186
|
+
// GeolocationTimeZone
|
|
187
|
+
this.#extractGpsMetadata();
|
|
188
|
+
const tzSrc = this.#extractTzOffset();
|
|
189
|
+
if (tzSrc) {
|
|
190
|
+
tags.tz = tzSrc.tz;
|
|
191
|
+
tags.tzSource = tzSrc.src;
|
|
352
192
|
}
|
|
353
|
-
|
|
354
|
-
|
|
193
|
+
for (const [key, value] of Object.entries(this.#raw)) {
|
|
194
|
+
const k = this.#tagName(key);
|
|
195
|
+
const v = this.#parseTag(k, value);
|
|
196
|
+
// Note that we set `key` (which may include a group prefix):
|
|
197
|
+
if (v != null)
|
|
198
|
+
tags[key] = v;
|
|
355
199
|
}
|
|
356
|
-
|
|
357
|
-
|
|
200
|
+
// we could `return {...tags, ...errorsAndWarnings(this, tags)}` but tags is
|
|
201
|
+
// a chonky monster, and we don't want to double the work for the poor
|
|
202
|
+
// garbage collector.
|
|
203
|
+
const { errors, warnings } = (0, ErrorsAndWarnings_1.errorsAndWarnings)(this, tags);
|
|
204
|
+
tags.errors = errors;
|
|
205
|
+
tags.warnings = warnings;
|
|
206
|
+
return tags;
|
|
207
|
+
}
|
|
208
|
+
#extractGpsMetadata = (0, Lazy_1.lazy)(() => (0, GPS_1.parseGPSLocation)(this.#rawDegrouped, this.options));
|
|
209
|
+
#gpsIsInvalid = (0, Lazy_1.lazy)(() => this.#extractGpsMetadata()?.invalid ?? false);
|
|
210
|
+
#gpsResults = (0, Lazy_1.lazy)(() => this.#gpsIsInvalid() ? {} : this.#extractGpsMetadata()?.result ?? {});
|
|
211
|
+
#extractTzOffsetFromGps = (0, Lazy_1.lazy)(() => {
|
|
212
|
+
const gps = this.#extractGpsMetadata();
|
|
213
|
+
const lat = gps?.result?.GPSLatitude;
|
|
214
|
+
const lon = gps?.result?.GPSLongitude;
|
|
215
|
+
if (gps == null || gps.invalid === true || lat == null || lon == null)
|
|
216
|
+
return;
|
|
217
|
+
// First try GeolocationTimeZone:
|
|
218
|
+
const tz = (0, Timezones_1.normalizeZone)(this.#rawDegrouped.GeolocationTimeZone);
|
|
219
|
+
if (tz != null) {
|
|
220
|
+
return {
|
|
221
|
+
tz: tz.name,
|
|
222
|
+
src: "GeolocationTimeZone",
|
|
223
|
+
};
|
|
224
|
+
}
|
|
225
|
+
try {
|
|
226
|
+
const geoTz = this.options.geoTz(lat, lon);
|
|
227
|
+
const zone = (0, Timezones_1.normalizeZone)(geoTz);
|
|
228
|
+
if (zone != null) {
|
|
229
|
+
return {
|
|
230
|
+
tz: zone.name,
|
|
231
|
+
src: "GPSLatitude/GPSLongitude",
|
|
232
|
+
};
|
|
233
|
+
}
|
|
358
234
|
}
|
|
359
|
-
|
|
360
|
-
|
|
235
|
+
catch (error) {
|
|
236
|
+
this.warnings.push("Failed to determine timezone from GPS coordinates: " + error);
|
|
361
237
|
}
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
238
|
+
return;
|
|
239
|
+
});
|
|
240
|
+
#tz = (0, Lazy_1.lazy)(() => this.#extractTzOffset()?.tz);
|
|
241
|
+
#extractTzOffset = (0, Lazy_1.lazy)(() => {
|
|
242
|
+
if (true === this.options.preferTimezoneInferenceFromGps) {
|
|
243
|
+
const fromGps = this.#extractTzOffsetFromGps();
|
|
244
|
+
if (fromGps != null) {
|
|
245
|
+
return fromGps;
|
|
366
246
|
}
|
|
367
|
-
return result;
|
|
368
247
|
}
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
if (this
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
|
|
248
|
+
return ((0, Timezones_1.extractTzOffsetFromTags)(this.#rawDegrouped, this.options) ??
|
|
249
|
+
this.#extractTzOffsetFromGps() ??
|
|
250
|
+
(0, Timezones_1.extractTzOffsetFromDatestamps)(this.#rawDegrouped, this.options) ??
|
|
251
|
+
// See https://github.com/photostructure/exiftool-vendored.js/issues/113
|
|
252
|
+
// and https://github.com/photostructure/exiftool-vendored.js/issues/156
|
|
253
|
+
// Videos are frequently encoded in UTC, but don't include the
|
|
254
|
+
// timezone offset in their datetime stamps.
|
|
255
|
+
(this.#defaultToUTC()
|
|
256
|
+
? {
|
|
257
|
+
tz: "UTC",
|
|
258
|
+
src: "defaultVideosToUTC",
|
|
259
|
+
}
|
|
260
|
+
: // not applicable:
|
|
261
|
+
undefined) ??
|
|
262
|
+
// This is a last-ditch estimation heuristic:
|
|
263
|
+
(0, Timezones_1.extractTzOffsetFromUTCOffset)(this.#rawDegrouped) ??
|
|
264
|
+
// No, really, this is the even worse than UTC offset heuristics:
|
|
265
|
+
(0, Timezones_1.extractTzOffsetFromTimeStamp)(this.#rawDegrouped, this.options));
|
|
266
|
+
});
|
|
267
|
+
#parseTag(tagName, value) {
|
|
268
|
+
if (nullish(value))
|
|
269
|
+
return undefined;
|
|
270
|
+
try {
|
|
271
|
+
if (PassthroughTags.indexOf(tagName) >= 0) {
|
|
272
|
+
return value;
|
|
273
|
+
}
|
|
274
|
+
if (tagName.startsWith("GPS") || tagName.startsWith("Geolocation")) {
|
|
275
|
+
// If it's bad, strip off everything:
|
|
276
|
+
if (this.#gpsIsInvalid())
|
|
277
|
+
return undefined;
|
|
278
|
+
// If we parsed out a better value, use that:
|
|
279
|
+
const parsed = this.#gpsResults()[tagName];
|
|
280
|
+
if (parsed != null)
|
|
281
|
+
return parsed;
|
|
282
|
+
// Otherwise, parse the raw value like any other tag:
|
|
283
|
+
}
|
|
284
|
+
if (Array.isArray(value)) {
|
|
285
|
+
return value.map((ea) => this.#parseTag(tagName, ea));
|
|
286
|
+
}
|
|
287
|
+
if (typeof value === "object") {
|
|
288
|
+
const result = {};
|
|
289
|
+
for (const [k, v] of Object.entries(value)) {
|
|
290
|
+
result[k] = this.#parseTag(tagName + "." + k, v);
|
|
405
291
|
}
|
|
406
292
|
return result;
|
|
407
293
|
}
|
|
294
|
+
if (typeof value === "string") {
|
|
295
|
+
const b = BinaryField_1.BinaryField.fromRawValue(value);
|
|
296
|
+
if (b != null)
|
|
297
|
+
return b;
|
|
298
|
+
if (/Valid$/.test(tagName)) {
|
|
299
|
+
const b = (0, Boolean_1.toBoolean)(value);
|
|
300
|
+
if (b != null)
|
|
301
|
+
return b;
|
|
302
|
+
}
|
|
303
|
+
if (MaybeDateOrTimeRe.test(tagName) &&
|
|
304
|
+
// Reject date/time keys that are "0" or "00" (found in Canon
|
|
305
|
+
// SubSecTime values)
|
|
306
|
+
!OnlyZerosRE_1.OnlyZerosRE.test(value)) {
|
|
307
|
+
// if #defaultToUTC() is true, _we actually think zoneless
|
|
308
|
+
// datestamps are all in UTC_, rather than being in `this.tz` (which
|
|
309
|
+
// may be from GPS or other heuristics). See issue #153.
|
|
310
|
+
const tz = isUtcTagName(tagName) || this.#defaultToUTC()
|
|
311
|
+
? "UTC"
|
|
312
|
+
: this.options.backfillTimezones
|
|
313
|
+
? this.#tz()
|
|
314
|
+
: undefined;
|
|
315
|
+
// Time-only tags have "time" but not "date" in their name:
|
|
316
|
+
const keyIncludesTime = /subsec|time/i.test(tagName);
|
|
317
|
+
const keyIncludesDate = /date/i.test(tagName);
|
|
318
|
+
const keyIncludesWhen = /when/i.test(tagName); // < ResourceEvent.When
|
|
319
|
+
const result = (keyIncludesTime || keyIncludesDate || keyIncludesWhen
|
|
320
|
+
? ExifDateTime_1.ExifDateTime.from(value, tz)
|
|
321
|
+
: undefined) ??
|
|
322
|
+
(keyIncludesTime || keyIncludesWhen
|
|
323
|
+
? ExifTime_1.ExifTime.fromEXIF(value, tz)
|
|
324
|
+
: undefined) ??
|
|
325
|
+
(keyIncludesDate || keyIncludesWhen
|
|
326
|
+
? ExifDate_1.ExifDate.from(value)
|
|
327
|
+
: undefined) ??
|
|
328
|
+
value;
|
|
329
|
+
const defaultTz = this.#tz();
|
|
330
|
+
if (this.options.backfillTimezones &&
|
|
331
|
+
result != null &&
|
|
332
|
+
defaultTz != null &&
|
|
333
|
+
result instanceof ExifDateTime_1.ExifDateTime &&
|
|
334
|
+
this.#defaultToUTC() &&
|
|
335
|
+
!isUtcTagName(tagName) &&
|
|
336
|
+
true === result.inferredZone) {
|
|
337
|
+
return result.setZone(defaultTz);
|
|
338
|
+
}
|
|
339
|
+
return result;
|
|
340
|
+
}
|
|
341
|
+
}
|
|
342
|
+
// Trust that ExifTool rendered the value with the correct type in JSON:
|
|
343
|
+
return value;
|
|
344
|
+
}
|
|
345
|
+
catch (e) {
|
|
346
|
+
this.warnings.push(`Failed to parse ${tagName} with value ${JSON.stringify(value)}: ${e}`);
|
|
347
|
+
return value;
|
|
408
348
|
}
|
|
409
|
-
// Trust that ExifTool rendered the value with the correct type in JSON:
|
|
410
|
-
return value;
|
|
411
|
-
}
|
|
412
|
-
catch (e) {
|
|
413
|
-
this.warnings.push(`Failed to parse ${tagName} with value ${JSON.stringify(value)}: ${e}`);
|
|
414
|
-
return value;
|
|
415
349
|
}
|
|
416
|
-
}
|
|
350
|
+
}
|
|
351
|
+
exports.ReadTask = ReadTask;
|
|
417
352
|
function isUtcTagName(tagName) {
|
|
418
353
|
return tagName.includes("UTC") || tagName.startsWith("GPS");
|
|
419
354
|
}
|
package/dist/ReadTask.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ReadTask.js","sourceRoot":"","sources":["../src/ReadTask.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ReadTask.js","sourceRoot":"","sources":["../src/ReadTask.ts"],"names":[],"mappings":"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"}
|
|
@@ -50,7 +50,6 @@ class RewriteAllTagsTask extends ExifToolTask_1.ExifToolTask {
|
|
|
50
50
|
return new RewriteAllTagsTask(args, opts);
|
|
51
51
|
}
|
|
52
52
|
parse(data, error) {
|
|
53
|
-
var _a;
|
|
54
53
|
if (error != null) {
|
|
55
54
|
const str = String(error);
|
|
56
55
|
// Ignore warnings:
|
|
@@ -59,7 +58,8 @@ class RewriteAllTagsTask extends ExifToolTask_1.ExifToolTask {
|
|
|
59
58
|
}
|
|
60
59
|
}
|
|
61
60
|
if (null == data.match(/^\s*1 image files creat/i)) {
|
|
62
|
-
throw (error
|
|
61
|
+
throw (error ??
|
|
62
|
+
new Error(data.trim().split("\n")[0] ?? "Missing expected status message"));
|
|
63
63
|
}
|
|
64
64
|
}
|
|
65
65
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RewriteAllTagsTask.js","sourceRoot":"","sources":["../src/RewriteAllTagsTask.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,iDAAkC;AAClC,mCAAiC;AACjC,iDAAkE;AAClE,+DAA+D;AAE/D,MAAa,kBAAmB,SAAQ,2BAAkB;IACxD,YAAoB,IAAc,EAAE,OAA4B;QAC9D,KAAK,CAAC,IAAI,EAAE,OAAO,CAAC,CAAA;IACtB,CAAC;IAED,MAAM,CAAC,GAAG,CACR,MAAc,EACd,OAAe,EACf,IAA8D;QAE9D,8DAA8D;QAE9D,MAAM,IAAI,GAAG,IAAA,eAAO,EAAC;YACnB,GAAG,6CAAuB;YAC1B,OAAO;YACP,eAAe;YACf,GAAG;YACH,UAAU;YACV,SAAS;YACT,cAAc;YACd,IAAI,CAAC,oBAAoB,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS;YAC5C,MAAM;YACN,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC;YACtB,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC;SACtB,CAAC,CAAA;QACF,OAAO,IAAI,kBAAkB,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA;IAC3C,CAAC;IAED,KAAK,CAAC,IAAY,EAAE,KAAa
|
|
1
|
+
{"version":3,"file":"RewriteAllTagsTask.js","sourceRoot":"","sources":["../src/RewriteAllTagsTask.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,iDAAkC;AAClC,mCAAiC;AACjC,iDAAkE;AAClE,+DAA+D;AAE/D,MAAa,kBAAmB,SAAQ,2BAAkB;IACxD,YAAoB,IAAc,EAAE,OAA4B;QAC9D,KAAK,CAAC,IAAI,EAAE,OAAO,CAAC,CAAA;IACtB,CAAC;IAED,MAAM,CAAC,GAAG,CACR,MAAc,EACd,OAAe,EACf,IAA8D;QAE9D,8DAA8D;QAE9D,MAAM,IAAI,GAAG,IAAA,eAAO,EAAC;YACnB,GAAG,6CAAuB;YAC1B,OAAO;YACP,eAAe;YACf,GAAG;YACH,UAAU;YACV,SAAS;YACT,cAAc;YACd,IAAI,CAAC,oBAAoB,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS;YAC5C,MAAM;YACN,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC;YACtB,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC;SACtB,CAAC,CAAA;QACF,OAAO,IAAI,kBAAkB,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA;IAC3C,CAAC;IAED,KAAK,CAAC,IAAY,EAAE,KAAa;QAC/B,IAAI,KAAK,IAAI,IAAI,EAAE,CAAC;YAClB,MAAM,GAAG,GAAG,MAAM,CAAC,KAAK,CAAC,CAAA;YACzB,mBAAmB;YACnB,IAAI,GAAG,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,IAAI,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,cAAc,CAAC,EAAE,CAAC;gBAClE,MAAM,KAAK,CAAA;YACb,CAAC;QACH,CAAC;QACD,IAAI,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,0BAA0B,CAAC,EAAE,CAAC;YACnD,MAAM,CACJ,KAAK;gBACL,IAAI,KAAK,CACP,IAAI,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,iCAAiC,CAChE,CACF,CAAA;QACH,CAAC;IACH,CAAC;CACF;AA7CD,gDA6CC"}
|
package/dist/String.d.ts
CHANGED
|
@@ -1,7 +1,11 @@
|
|
|
1
1
|
import { Maybe } from "./Maybe";
|
|
2
2
|
export declare function isString(o: any): o is string;
|
|
3
|
-
export declare function blank(s:
|
|
4
|
-
export declare function notBlank(s:
|
|
3
|
+
export declare function blank(s: unknown): s is undefined;
|
|
4
|
+
export declare function notBlank(s: unknown): s is string;
|
|
5
|
+
/**
|
|
6
|
+
* @return true iff `s` is a string with at least one non-whitespace character.
|
|
7
|
+
*/
|
|
8
|
+
export declare function notBlankString(s: unknown): s is string;
|
|
5
9
|
export declare function toNotBlank(s: Maybe<string>): Maybe<string>;
|
|
6
10
|
export declare function compactBlanks(arr: Maybe<string>[]): string[];
|
|
7
11
|
export declare function toS(s: Maybe<any>): string;
|
package/dist/String.js
CHANGED
|
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.isString = isString;
|
|
4
4
|
exports.blank = blank;
|
|
5
5
|
exports.notBlank = notBlank;
|
|
6
|
+
exports.notBlankString = notBlankString;
|
|
6
7
|
exports.toNotBlank = toNotBlank;
|
|
7
8
|
exports.compactBlanks = compactBlanks;
|
|
8
9
|
exports.toS = toS;
|
|
@@ -25,6 +26,12 @@ function blank(s) {
|
|
|
25
26
|
function notBlank(s) {
|
|
26
27
|
return !blank(s);
|
|
27
28
|
}
|
|
29
|
+
/**
|
|
30
|
+
* @return true iff `s` is a string with at least one non-whitespace character.
|
|
31
|
+
*/
|
|
32
|
+
function notBlankString(s) {
|
|
33
|
+
return isString(s) && s.trim().length > 0;
|
|
34
|
+
}
|
|
28
35
|
function toNotBlank(s) {
|
|
29
36
|
if (s == null)
|
|
30
37
|
return;
|