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/ReadTask.js
CHANGED
|
@@ -15,25 +15,23 @@ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (
|
|
|
15
15
|
}) : function(o, v) {
|
|
16
16
|
o["default"] = v;
|
|
17
17
|
});
|
|
18
|
-
var __importStar = (this && this.__importStar) || function (
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
};
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
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;
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
37
35
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
38
36
|
exports.ReadTask = exports.DefaultReadTaskOptions = exports.ReadTaskOptionFields = void 0;
|
|
39
37
|
exports.nullish = nullish;
|
|
@@ -41,6 +39,7 @@ const batch_cluster_1 = require("batch-cluster");
|
|
|
41
39
|
const _path = __importStar(require("node:path"));
|
|
42
40
|
const Array_1 = require("./Array");
|
|
43
41
|
const BinaryField_1 = require("./BinaryField");
|
|
42
|
+
const Boolean_1 = require("./Boolean");
|
|
44
43
|
const DefaultExifToolOptions_1 = require("./DefaultExifToolOptions");
|
|
45
44
|
const ErrorsAndWarnings_1 = require("./ErrorsAndWarnings");
|
|
46
45
|
const ExifDate_1 = require("./ExifDate");
|
|
@@ -48,10 +47,12 @@ const ExifDateTime_1 = require("./ExifDateTime");
|
|
|
48
47
|
const ExifTime_1 = require("./ExifTime");
|
|
49
48
|
const ExifToolOptions_1 = require("./ExifToolOptions");
|
|
50
49
|
const ExifToolTask_1 = require("./ExifToolTask");
|
|
50
|
+
const File_1 = require("./File");
|
|
51
51
|
const FilenameCharsetArgs_1 = require("./FilenameCharsetArgs");
|
|
52
|
-
const
|
|
52
|
+
const GPS_1 = require("./GPS");
|
|
53
53
|
const Lazy_1 = require("./Lazy");
|
|
54
54
|
const Number_1 = require("./Number");
|
|
55
|
+
const Object_1 = require("./Object");
|
|
55
56
|
const OnlyZerosRE_1 = require("./OnlyZerosRE");
|
|
56
57
|
const Pick_1 = require("./Pick");
|
|
57
58
|
const String_1 = require("./String");
|
|
@@ -95,6 +96,13 @@ exports.DefaultReadTaskOptions = {
|
|
|
95
96
|
};
|
|
96
97
|
const MaybeDateOrTimeRe = /when|date|time|subsec|creat|modif/i;
|
|
97
98
|
class ReadTask extends ExifToolTask_1.ExifToolTask {
|
|
99
|
+
sourceFile;
|
|
100
|
+
args;
|
|
101
|
+
options;
|
|
102
|
+
degroup;
|
|
103
|
+
#raw = {};
|
|
104
|
+
#rawDegrouped = {};
|
|
105
|
+
#tags = {};
|
|
98
106
|
/**
|
|
99
107
|
* @param sourceFile the file to read
|
|
100
108
|
* @param args the full arguments to pass to exiftool that take into account
|
|
@@ -102,121 +110,13 @@ class ReadTask extends ExifToolTask_1.ExifToolTask {
|
|
|
102
110
|
*/
|
|
103
111
|
constructor(sourceFile, args, options) {
|
|
104
112
|
super(args, options);
|
|
105
|
-
_ReadTask_instances.add(this);
|
|
106
113
|
this.sourceFile = sourceFile;
|
|
107
114
|
this.args = args;
|
|
108
115
|
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
116
|
// See https://github.com/photostructure/exiftool-vendored.js/issues/147#issuecomment-1642580118
|
|
217
117
|
this.degroup = this.args.includes("-G");
|
|
218
|
-
|
|
219
|
-
|
|
118
|
+
this.#tags = { SourceFile: sourceFile };
|
|
119
|
+
this.#tags.errors = this.errors;
|
|
220
120
|
}
|
|
221
121
|
static for(filename, options) {
|
|
222
122
|
const opts = (0, ExifToolOptions_1.handleDeprecatedOptions)({
|
|
@@ -224,7 +124,11 @@ class ReadTask extends ExifToolTask_1.ExifToolTask {
|
|
|
224
124
|
...options,
|
|
225
125
|
});
|
|
226
126
|
const sourceFile = _path.resolve(filename);
|
|
227
|
-
const args = [
|
|
127
|
+
const args = [
|
|
128
|
+
...FilenameCharsetArgs_1.Utf8FilenameCharsetArgs,
|
|
129
|
+
"-json",
|
|
130
|
+
...(0, Array_1.toArray)(opts.readArgs),
|
|
131
|
+
];
|
|
228
132
|
// "-api struct=undef" doesn't work: but it's the same as struct=0:
|
|
229
133
|
args.push("-api", "struct=" + ((0, Number_1.isNumber)(opts.struct) ? opts.struct : "0"));
|
|
230
134
|
if (opts.useMWG) {
|
|
@@ -252,7 +156,7 @@ class ReadTask extends ExifToolTask_1.ExifToolTask {
|
|
|
252
156
|
// only exposed for tests
|
|
253
157
|
parse(data, err) {
|
|
254
158
|
try {
|
|
255
|
-
|
|
159
|
+
this.#raw = JSON.parse(data)[0];
|
|
256
160
|
}
|
|
257
161
|
catch (jsonError) {
|
|
258
162
|
// TODO: should restart exiftool?
|
|
@@ -261,159 +165,224 @@ class ReadTask extends ExifToolTask_1.ExifToolTask {
|
|
|
261
165
|
err,
|
|
262
166
|
jsonError,
|
|
263
167
|
});
|
|
264
|
-
throw err
|
|
168
|
+
throw err ?? jsonError;
|
|
265
169
|
}
|
|
266
170
|
// ExifTool does "humorous" things to paths, like flip path separators. resolve() undoes that.
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
}
|
|
273
|
-
return __classPrivateFieldGet(this, _ReadTask_instances, "m", _ReadTask_parseTags).call(this);
|
|
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;
|
|
171
|
+
if ((0, String_1.notBlank)(this.#raw.SourceFile)) {
|
|
172
|
+
if (!(0, File_1.compareFilePaths)(this.#raw.SourceFile, this.sourceFile)) {
|
|
173
|
+
// this would indicate a bug in batch-cluster:
|
|
174
|
+
throw new Error(`Internal error: unexpected SourceFile of ${this.#raw.SourceFile} for file ${this.sourceFile}`);
|
|
175
|
+
}
|
|
291
176
|
}
|
|
177
|
+
return this.#parseTags();
|
|
292
178
|
}
|
|
293
|
-
|
|
294
|
-
|
|
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;
|
|
302
|
-
}
|
|
303
|
-
for (const [key, value] of Object.entries(__classPrivateFieldGet(this, _ReadTask_raw, "f"))) {
|
|
304
|
-
const k = __classPrivateFieldGet(this, _ReadTask_instances, "m", _ReadTask_tagName).call(this, key);
|
|
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;
|
|
179
|
+
#isVideo() {
|
|
180
|
+
return String(this.#rawDegrouped?.MIMEType).startsWith("video/");
|
|
308
181
|
}
|
|
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;
|
|
182
|
+
#defaultToUTC() {
|
|
183
|
+
return this.#isVideo() && this.options.defaultVideosToUTC;
|
|
323
184
|
}
|
|
324
|
-
|
|
325
|
-
this.
|
|
326
|
-
return undefined;
|
|
327
|
-
}
|
|
328
|
-
else if ((0, String_1.blank)(ref)) {
|
|
329
|
-
// Videos may not have a GPSLatitudeRef or GPSLongitudeRef: if this is the case, assume the given sign is correct.
|
|
330
|
-
return result;
|
|
185
|
+
#tagName(k) {
|
|
186
|
+
return this.degroup ? (k.split(":")[1] ?? k) : k;
|
|
331
187
|
}
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
188
|
+
#parseTags() {
|
|
189
|
+
if (this.degroup) {
|
|
190
|
+
this.#rawDegrouped = {};
|
|
191
|
+
for (const [key, value] of Object.entries(this.#raw)) {
|
|
192
|
+
const k = this.#tagName(key);
|
|
193
|
+
this.#rawDegrouped[k] = value;
|
|
194
|
+
}
|
|
339
195
|
}
|
|
340
|
-
else
|
|
341
|
-
this
|
|
196
|
+
else {
|
|
197
|
+
this.#rawDegrouped = this.#raw;
|
|
342
198
|
}
|
|
343
|
-
|
|
199
|
+
// avoid casting `this.tags as any` for the rest of the function:
|
|
200
|
+
const tags = this.#tags;
|
|
201
|
+
// Must be run before extracting tz offset, to repair possibly-invalid
|
|
202
|
+
// GeolocationTimeZone
|
|
203
|
+
this.#extractGpsMetadata();
|
|
204
|
+
const tzSrc = this.#extractTzOffset();
|
|
205
|
+
if (tzSrc) {
|
|
206
|
+
tags.tz = tzSrc.tz;
|
|
207
|
+
tags.tzSource = tzSrc.src;
|
|
208
|
+
}
|
|
209
|
+
for (const [key, value] of Object.entries(this.#raw)) {
|
|
210
|
+
const k = this.#tagName(key);
|
|
211
|
+
// Did something already set this? (like GPS tags)
|
|
212
|
+
if (key in tags)
|
|
213
|
+
continue;
|
|
214
|
+
const v = this.#parseTag(k, value);
|
|
215
|
+
// Note that we set `key` (which may include a group prefix):
|
|
216
|
+
if (v == null) {
|
|
217
|
+
delete tags[key];
|
|
218
|
+
}
|
|
219
|
+
else {
|
|
220
|
+
tags[key] = v;
|
|
221
|
+
}
|
|
222
|
+
}
|
|
223
|
+
// we could `return {...tags, ...errorsAndWarnings(this, tags)}` but tags is
|
|
224
|
+
// a chonky monster, and we don't want to double the work for the poor
|
|
225
|
+
// garbage collector.
|
|
226
|
+
const { errors, warnings } = (0, ErrorsAndWarnings_1.errorsAndWarnings)(this, tags);
|
|
227
|
+
tags.errors = errors;
|
|
228
|
+
tags.warnings = warnings;
|
|
229
|
+
return tags;
|
|
344
230
|
}
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
try {
|
|
350
|
-
if (PassthroughTags.indexOf(tagName) >= 0) {
|
|
351
|
-
return value;
|
|
231
|
+
#extractGpsMetadata = (0, Lazy_1.lazy)(() => {
|
|
232
|
+
const result = (0, GPS_1.parseGPSLocation)(this.#rawDegrouped, this.options);
|
|
233
|
+
if (result?.warnings != null && (result.warnings.length ?? 0) > 0) {
|
|
234
|
+
this.warnings.push(...result.warnings);
|
|
352
235
|
}
|
|
353
|
-
if (
|
|
354
|
-
|
|
236
|
+
if (result?.invalid !== true) {
|
|
237
|
+
for (const [k, v] of Object.entries(result?.result ?? {})) {
|
|
238
|
+
this.#tags[k] = v;
|
|
239
|
+
}
|
|
240
|
+
}
|
|
241
|
+
return result;
|
|
242
|
+
});
|
|
243
|
+
#gpsIsInvalid = (0, Lazy_1.lazy)(() => this.#extractGpsMetadata()?.invalid ?? false);
|
|
244
|
+
#gpsResults = (0, Lazy_1.lazy)(() => this.#gpsIsInvalid() ? {} : (this.#extractGpsMetadata()?.result ?? {}));
|
|
245
|
+
#extractTzOffsetFromGps = (0, Lazy_1.lazy)(() => {
|
|
246
|
+
const gps = this.#extractGpsMetadata();
|
|
247
|
+
const lat = gps?.result?.GPSLatitude;
|
|
248
|
+
const lon = gps?.result?.GPSLongitude;
|
|
249
|
+
if (gps == null || gps.invalid === true || lat == null || lon == null)
|
|
250
|
+
return;
|
|
251
|
+
// First try GeolocationTimeZone:
|
|
252
|
+
const tz = (0, Timezones_1.normalizeZone)(this.#rawDegrouped.GeolocationTimeZone);
|
|
253
|
+
if (tz != null) {
|
|
254
|
+
return {
|
|
255
|
+
tz: tz.name,
|
|
256
|
+
src: "GeolocationTimeZone",
|
|
257
|
+
};
|
|
355
258
|
}
|
|
356
|
-
|
|
357
|
-
|
|
259
|
+
try {
|
|
260
|
+
const geoTz = this.options.geoTz(lat, lon);
|
|
261
|
+
const zone = (0, Timezones_1.normalizeZone)(geoTz);
|
|
262
|
+
if (zone != null) {
|
|
263
|
+
return {
|
|
264
|
+
tz: zone.name,
|
|
265
|
+
src: "GPSLatitude/GPSLongitude",
|
|
266
|
+
};
|
|
267
|
+
}
|
|
358
268
|
}
|
|
359
|
-
|
|
360
|
-
|
|
269
|
+
catch (error) {
|
|
270
|
+
this.warnings.push("Failed to determine timezone from GPS coordinates: " + error);
|
|
361
271
|
}
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
272
|
+
return;
|
|
273
|
+
});
|
|
274
|
+
#tz = (0, Lazy_1.lazy)(() => this.#extractTzOffset()?.tz);
|
|
275
|
+
#extractTzOffset = (0, Lazy_1.lazy)(() => {
|
|
276
|
+
if (true === this.options.preferTimezoneInferenceFromGps) {
|
|
277
|
+
const fromGps = this.#extractTzOffsetFromGps();
|
|
278
|
+
if (fromGps != null) {
|
|
279
|
+
return fromGps;
|
|
366
280
|
}
|
|
367
|
-
return result;
|
|
368
281
|
}
|
|
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
|
-
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
|
|
282
|
+
return ((0, Timezones_1.extractTzOffsetFromTags)(this.#rawDegrouped, this.options) ??
|
|
283
|
+
this.#extractTzOffsetFromGps() ??
|
|
284
|
+
(0, Timezones_1.extractTzOffsetFromDatestamps)(this.#rawDegrouped, this.options) ??
|
|
285
|
+
// See https://github.com/photostructure/exiftool-vendored.js/issues/113
|
|
286
|
+
// and https://github.com/photostructure/exiftool-vendored.js/issues/156
|
|
287
|
+
// Videos are frequently encoded in UTC, but don't include the
|
|
288
|
+
// timezone offset in their datetime stamps.
|
|
289
|
+
(this.#defaultToUTC()
|
|
290
|
+
? {
|
|
291
|
+
tz: "UTC",
|
|
292
|
+
src: "defaultVideosToUTC",
|
|
293
|
+
}
|
|
294
|
+
: // not applicable:
|
|
295
|
+
undefined) ??
|
|
296
|
+
// This is a last-ditch estimation heuristic:
|
|
297
|
+
(0, Timezones_1.extractTzOffsetFromUTCOffset)(this.#rawDegrouped) ??
|
|
298
|
+
// No, really, this is the even worse than UTC offset heuristics:
|
|
299
|
+
(0, Timezones_1.extractTzOffsetFromTimeStamp)(this.#rawDegrouped, this.options));
|
|
300
|
+
});
|
|
301
|
+
#parseTag(tagName, value) {
|
|
302
|
+
if (nullish(value))
|
|
303
|
+
return undefined;
|
|
304
|
+
try {
|
|
305
|
+
if (PassthroughTags.indexOf(tagName) >= 0) {
|
|
306
|
+
return value;
|
|
307
|
+
}
|
|
308
|
+
if (tagName.startsWith("GPS") || tagName.startsWith("Geolocation")) {
|
|
309
|
+
if (this.#gpsIsInvalid())
|
|
310
|
+
return undefined;
|
|
311
|
+
// If we parsed out a better value, use that:
|
|
312
|
+
const parsed = this.#gpsResults()[tagName];
|
|
313
|
+
if (parsed != null)
|
|
314
|
+
return parsed;
|
|
315
|
+
// Otherwise, parse the raw value like any other tag: (It might be
|
|
316
|
+
// something like "GPSTimeStamp"):
|
|
317
|
+
}
|
|
318
|
+
if (Array.isArray(value)) {
|
|
319
|
+
return value.map((ea) => this.#parseTag(tagName, ea));
|
|
320
|
+
}
|
|
321
|
+
if ((0, Object_1.isObject)(value)) {
|
|
322
|
+
const result = {};
|
|
323
|
+
for (const [k, v] of Object.entries(value)) {
|
|
324
|
+
result[k] = this.#parseTag(tagName + "." + k, v);
|
|
405
325
|
}
|
|
406
326
|
return result;
|
|
407
327
|
}
|
|
328
|
+
if (typeof value === "string") {
|
|
329
|
+
const b = BinaryField_1.BinaryField.fromRawValue(value);
|
|
330
|
+
if (b != null)
|
|
331
|
+
return b;
|
|
332
|
+
if (/Valid$/.test(tagName)) {
|
|
333
|
+
const b = (0, Boolean_1.toBoolean)(value);
|
|
334
|
+
if (b != null)
|
|
335
|
+
return b;
|
|
336
|
+
}
|
|
337
|
+
if (MaybeDateOrTimeRe.test(tagName) &&
|
|
338
|
+
// Reject date/time keys that are "0" or "00" (found in Canon
|
|
339
|
+
// SubSecTime values)
|
|
340
|
+
!OnlyZerosRE_1.OnlyZerosRE.test(value)) {
|
|
341
|
+
// if #defaultToUTC() is true, _we actually think zoneless
|
|
342
|
+
// datestamps are all in UTC_, rather than being in `this.tz` (which
|
|
343
|
+
// may be from GPS or other heuristics). See issue #153.
|
|
344
|
+
const tz = isUtcTagName(tagName) || this.#defaultToUTC()
|
|
345
|
+
? "UTC"
|
|
346
|
+
: this.options.backfillTimezones
|
|
347
|
+
? this.#tz()
|
|
348
|
+
: undefined;
|
|
349
|
+
// Time-only tags have "time" but not "date" in their name:
|
|
350
|
+
const keyIncludesTime = /subsec|time/i.test(tagName);
|
|
351
|
+
const keyIncludesDate = /date/i.test(tagName);
|
|
352
|
+
const keyIncludesWhen = /when/i.test(tagName); // < ResourceEvent.When
|
|
353
|
+
const result = (keyIncludesTime || keyIncludesDate || keyIncludesWhen
|
|
354
|
+
? ExifDateTime_1.ExifDateTime.from(value, tz)
|
|
355
|
+
: undefined) ??
|
|
356
|
+
(keyIncludesTime || keyIncludesWhen
|
|
357
|
+
? ExifTime_1.ExifTime.fromEXIF(value, tz)
|
|
358
|
+
: undefined) ??
|
|
359
|
+
(keyIncludesDate || keyIncludesWhen
|
|
360
|
+
? ExifDate_1.ExifDate.from(value)
|
|
361
|
+
: undefined) ??
|
|
362
|
+
value;
|
|
363
|
+
const defaultTz = this.#tz();
|
|
364
|
+
if (this.options.backfillTimezones &&
|
|
365
|
+
result != null &&
|
|
366
|
+
defaultTz != null &&
|
|
367
|
+
result instanceof ExifDateTime_1.ExifDateTime &&
|
|
368
|
+
this.#defaultToUTC() &&
|
|
369
|
+
!isUtcTagName(tagName) &&
|
|
370
|
+
true === result.inferredZone) {
|
|
371
|
+
return result.setZone(defaultTz);
|
|
372
|
+
}
|
|
373
|
+
return result;
|
|
374
|
+
}
|
|
375
|
+
}
|
|
376
|
+
// Trust that ExifTool rendered the value with the correct type in JSON:
|
|
377
|
+
return value;
|
|
378
|
+
}
|
|
379
|
+
catch (e) {
|
|
380
|
+
this.warnings.push(`Failed to parse ${tagName} with value ${JSON.stringify(value)}: ${e}`);
|
|
381
|
+
return value;
|
|
408
382
|
}
|
|
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
383
|
}
|
|
416
|
-
}
|
|
384
|
+
}
|
|
385
|
+
exports.ReadTask = ReadTask;
|
|
417
386
|
function isUtcTagName(tagName) {
|
|
418
387
|
return tagName.includes("UTC") || tagName.startsWith("GPS");
|
|
419
388
|
}
|
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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"}
|