exiftool-vendored 16.0.0 → 16.3.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 +34 -5
- package/README.md +1 -17
- package/dist/ExifDateTime.d.ts +19 -1
- package/dist/ExifDateTime.js +20 -0
- package/dist/ExifDateTime.js.map +1 -1
- package/dist/ExifTool.d.ts +14 -2
- package/dist/ExifTool.js +6 -3
- package/dist/ExifTool.js.map +1 -1
- package/dist/Object.d.ts +4 -0
- package/dist/Object.js +11 -1
- package/dist/Object.js.map +1 -1
- package/dist/ReadTask.d.ts +1 -7
- package/dist/ReadTask.js +126 -116
- package/dist/ReadTask.js.map +1 -1
- package/dist/ResourceEvent.d.ts +13 -0
- package/dist/ResourceEvent.js +3 -0
- package/dist/ResourceEvent.js.map +1 -0
- package/dist/Struct.js +4 -4
- package/dist/Struct.js.map +1 -1
- package/dist/Tags.d.ts +386 -1032
- package/dist/Version.d.ts +13 -0
- package/dist/Version.js +3 -0
- package/dist/Version.js.map +1 -0
- package/dist/WriteTask.js +1 -0
- package/dist/WriteTask.js.map +1 -1
- package/package.json +16 -16
package/dist/ReadTask.js
CHANGED
|
@@ -22,6 +22,12 @@ var __importStar = (this && this.__importStar) || function (mod) {
|
|
|
22
22
|
__setModuleDefault(result, mod);
|
|
23
23
|
return result;
|
|
24
24
|
};
|
|
25
|
+
var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
|
|
26
|
+
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
|
|
27
|
+
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
|
|
28
|
+
return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
|
|
29
|
+
};
|
|
30
|
+
var _ReadTask_instances, _ReadTask_tagName, _ReadTask_parseTags, _ReadTask_extractLatLon, _ReadTask_latlon, _ReadTask_extractTzOffset, _ReadTask_normalizeDateTime, _ReadTask_parseTag;
|
|
25
31
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
32
|
exports.ReadTask = exports.nullish = void 0;
|
|
27
33
|
const batch_cluster_1 = require("batch-cluster");
|
|
@@ -55,6 +61,7 @@ class ReadTask extends ExifToolTask_1.ExifToolTask {
|
|
|
55
61
|
super(args);
|
|
56
62
|
this.sourceFile = sourceFile;
|
|
57
63
|
this.args = args;
|
|
64
|
+
_ReadTask_instances.add(this);
|
|
58
65
|
/** May have keys that are group-prefixed */
|
|
59
66
|
this._raw = {};
|
|
60
67
|
/** Always has non-group-prefixed keys */
|
|
@@ -103,143 +110,146 @@ class ReadTask extends ExifToolTask_1.ExifToolTask {
|
|
|
103
110
|
}
|
|
104
111
|
if (this.degroup) {
|
|
105
112
|
Object.keys(this._raw).forEach((keyWithGroup) => {
|
|
106
|
-
this._tags[this.
|
|
113
|
+
this._tags[__classPrivateFieldGet(this, _ReadTask_instances, "m", _ReadTask_tagName).call(this, keyWithGroup)] = this._raw[keyWithGroup];
|
|
107
114
|
});
|
|
108
115
|
}
|
|
109
116
|
else {
|
|
110
117
|
this._tags = this._raw;
|
|
111
118
|
}
|
|
112
|
-
return this.
|
|
119
|
+
return __classPrivateFieldGet(this, _ReadTask_instances, "m", _ReadTask_parseTags).call(this);
|
|
113
120
|
}
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
121
|
+
}
|
|
122
|
+
exports.ReadTask = ReadTask;
|
|
123
|
+
_ReadTask_instances = new WeakSet(), _ReadTask_tagName = function _ReadTask_tagName(k) {
|
|
124
|
+
var _a;
|
|
125
|
+
return this.degroup ? (_a = k.split(":")[1]) !== null && _a !== void 0 ? _a : k : k;
|
|
126
|
+
}, _ReadTask_parseTags = function _ReadTask_parseTags() {
|
|
127
|
+
__classPrivateFieldGet(this, _ReadTask_instances, "m", _ReadTask_extractLatLon).call(this);
|
|
128
|
+
__classPrivateFieldGet(this, _ReadTask_instances, "m", _ReadTask_extractTzOffset).call(this);
|
|
129
|
+
(0, Maybe_1.map)(this.tz, (ea) => (this.tags.tz = ea));
|
|
130
|
+
(0, Maybe_1.map)(this.tzSource, (ea) => (this.tags.tzSource = ea));
|
|
131
|
+
const t = this.tags; // tsc hack :(
|
|
132
|
+
for (const key of Object.keys(this._raw)) {
|
|
133
|
+
t[key] = __classPrivateFieldGet(this, _ReadTask_instances, "m", _ReadTask_parseTag).call(this, __classPrivateFieldGet(this, _ReadTask_instances, "m", _ReadTask_tagName).call(this, key), this._raw[key]);
|
|
117
134
|
}
|
|
118
|
-
|
|
119
|
-
this.
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
if (this.errors.length > 0)
|
|
128
|
-
this.tags.errors = this.errors;
|
|
129
|
-
return this.tags;
|
|
135
|
+
if (this.errors.length > 0)
|
|
136
|
+
this.tags.errors = this.errors;
|
|
137
|
+
return this.tags;
|
|
138
|
+
}, _ReadTask_extractLatLon = function _ReadTask_extractLatLon() {
|
|
139
|
+
var _a, _b;
|
|
140
|
+
(_a = this.lat) !== null && _a !== void 0 ? _a : (this.lat = __classPrivateFieldGet(this, _ReadTask_instances, "m", _ReadTask_latlon).call(this, "GPSLatitude", "S", 90));
|
|
141
|
+
(_b = this.lon) !== null && _b !== void 0 ? _b : (this.lon = __classPrivateFieldGet(this, _ReadTask_instances, "m", _ReadTask_latlon).call(this, "GPSLongitude", "W", 180));
|
|
142
|
+
if (this.invalidLatLon) {
|
|
143
|
+
this.lat = this.lon = undefined;
|
|
130
144
|
}
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
145
|
+
}, _ReadTask_latlon = function _ReadTask_latlon(tagName, negateRef, maxValid) {
|
|
146
|
+
const tagValue = this._tags[tagName];
|
|
147
|
+
const ref = this._tags[tagName + "Ref"];
|
|
148
|
+
const result = (0, Number_1.toF)(tagValue);
|
|
149
|
+
if (result == null) {
|
|
150
|
+
return;
|
|
151
|
+
}
|
|
152
|
+
else if (Math.abs(result) > maxValid) {
|
|
153
|
+
this.errors.push(`Invalid ${tagName}: ${JSON.stringify(tagValue)}`);
|
|
154
|
+
this.invalidLatLon = true;
|
|
155
|
+
return;
|
|
156
|
+
}
|
|
157
|
+
else if ((0, String_1.blank)(ref)) {
|
|
158
|
+
// Videos may not have a GPSLatitudeRef or GPSLongitudeRef: if this is the case, assume the given sign is correct.
|
|
159
|
+
return result;
|
|
160
|
+
}
|
|
161
|
+
else {
|
|
162
|
+
// Versions of ExifTool pre-12 returned properly-negated lat/lon. ExifTool
|
|
163
|
+
// 12+ always returns positive values (!!). Also: if '-GPS*#' is set,
|
|
164
|
+
// we'll see "S" instead of "South", hence the .startsWith() instead of
|
|
165
|
+
// ===:
|
|
166
|
+
const negative = (0, String_1.toS)(ref).toUpperCase().startsWith(negateRef);
|
|
167
|
+
return (negative ? -1 : 1) * Math.abs(result);
|
|
138
168
|
}
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
169
|
+
}, _ReadTask_extractTzOffset = function _ReadTask_extractTzOffset() {
|
|
170
|
+
// tzlookup will be the "best" tz, as it will be a proper Zone name (like
|
|
171
|
+
// "America/New_York"), rather than just an hour offset.
|
|
172
|
+
(0, Maybe_1.map)((0, Maybe_1.firstDefinedThunk)([
|
|
173
|
+
() => {
|
|
174
|
+
if (!this.invalidLatLon && this.lat != null && this.lon != null) {
|
|
175
|
+
try {
|
|
176
|
+
return (0, Maybe_1.map)(tzlookup(this.lat, this.lon), (tz) => ({
|
|
177
|
+
tz,
|
|
178
|
+
src: "from Lat/Lon",
|
|
179
|
+
}));
|
|
180
|
+
}
|
|
181
|
+
catch (err) {
|
|
182
|
+
/* */
|
|
183
|
+
}
|
|
184
|
+
}
|
|
144
185
|
return;
|
|
186
|
+
},
|
|
187
|
+
() => (0, Timezones_1.extractTzOffsetFromTags)(this._tags),
|
|
188
|
+
() => (0, Timezones_1.extractTzOffsetFromUTCOffset)(this._tags),
|
|
189
|
+
]), (ea) => ({ tz: this.tz, src: this.tzSource } = ea));
|
|
190
|
+
}, _ReadTask_normalizeDateTime = function _ReadTask_normalizeDateTime(tagName, value) {
|
|
191
|
+
if (tagName.startsWith("File") ||
|
|
192
|
+
!(value instanceof ExifDateTime_1.ExifDateTime) ||
|
|
193
|
+
utcTagName(tagName) ||
|
|
194
|
+
this.tz == null) {
|
|
195
|
+
return value;
|
|
196
|
+
}
|
|
197
|
+
// ExifTool may have put this in the current system time, instead of the timezone of the file.
|
|
198
|
+
return value.zone !== this.tz ? value.setZone(this.tz) : value;
|
|
199
|
+
}, _ReadTask_parseTag = function _ReadTask_parseTag(tagName, value) {
|
|
200
|
+
var _a, _b, _c, _d, _e, _f;
|
|
201
|
+
if (nullish(value))
|
|
202
|
+
return undefined;
|
|
203
|
+
try {
|
|
204
|
+
if (PassthroughTags.indexOf(tagName) >= 0) {
|
|
205
|
+
return value;
|
|
145
206
|
}
|
|
146
|
-
|
|
147
|
-
this.
|
|
148
|
-
this.invalidLatLon = true;
|
|
149
|
-
return;
|
|
207
|
+
if (Array.isArray(value)) {
|
|
208
|
+
return value.map((ea) => __classPrivateFieldGet(this, _ReadTask_instances, "m", _ReadTask_parseTag).call(this, tagName, ea));
|
|
150
209
|
}
|
|
151
|
-
|
|
152
|
-
|
|
210
|
+
if (typeof value === "object") {
|
|
211
|
+
const result = {};
|
|
212
|
+
for (const [k, v] of Object.entries(value)) {
|
|
213
|
+
result[k] = __classPrivateFieldGet(this, _ReadTask_instances, "m", _ReadTask_parseTag).call(this, k, v);
|
|
214
|
+
}
|
|
153
215
|
return result;
|
|
154
216
|
}
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
// 12+ always returns positive values (!!). Also: if '-GPS*#' is set,
|
|
158
|
-
// we'll see "S" instead of "South", hence the .startsWith() instead of
|
|
159
|
-
// ===:
|
|
160
|
-
const negative = (0, String_1.toS)(ref).toUpperCase().startsWith(negateRef);
|
|
161
|
-
return (negative ? -1 : 1) * Math.abs(result);
|
|
217
|
+
if (tagName === "GPSLatitude") {
|
|
218
|
+
return this.lat;
|
|
162
219
|
}
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
// tzlookup will be the "best" tz, as it will be a proper Zone name (like
|
|
166
|
-
// "America/New_York"), rather than just an hour offset.
|
|
167
|
-
(0, Maybe_1.map)((0, Maybe_1.firstDefinedThunk)([
|
|
168
|
-
() => {
|
|
169
|
-
if (!this.invalidLatLon && this.lat != null && this.lon != null) {
|
|
170
|
-
try {
|
|
171
|
-
return (0, Maybe_1.map)(tzlookup(this.lat, this.lon), (tz) => ({
|
|
172
|
-
tz,
|
|
173
|
-
src: "from Lat/Lon",
|
|
174
|
-
}));
|
|
175
|
-
}
|
|
176
|
-
catch (err) {
|
|
177
|
-
/* */
|
|
178
|
-
}
|
|
179
|
-
}
|
|
180
|
-
return;
|
|
181
|
-
},
|
|
182
|
-
() => (0, Timezones_1.extractTzOffsetFromTags)(this._tags),
|
|
183
|
-
() => (0, Timezones_1.extractTzOffsetFromUTCOffset)(this._tags),
|
|
184
|
-
]), (ea) => ({ tz: this.tz, src: this.tzSource } = ea));
|
|
185
|
-
}
|
|
186
|
-
normalizeDateTime(tagName, value) {
|
|
187
|
-
if (tagName.startsWith("File") ||
|
|
188
|
-
!(value instanceof ExifDateTime_1.ExifDateTime) ||
|
|
189
|
-
tagIsInUTC(tagName) ||
|
|
190
|
-
this.tz == null) {
|
|
191
|
-
return value;
|
|
220
|
+
if (tagName === "GPSLongitude") {
|
|
221
|
+
return this.lon;
|
|
192
222
|
}
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
try {
|
|
202
|
-
if (PassthroughTags.indexOf(tagName) >= 0) {
|
|
203
|
-
return value;
|
|
223
|
+
if (typeof value === "string") {
|
|
224
|
+
const tz = utcTagName(tagName) ? "UTC" : undefined;
|
|
225
|
+
if (tagName === "When" ||
|
|
226
|
+
tagName.includes("DateTime") ||
|
|
227
|
+
tagName.toLowerCase().includes("timestamp")) {
|
|
228
|
+
const d = (_a = ExifDateTime_1.ExifDateTime.fromExifStrict(value, tz)) !== null && _a !== void 0 ? _a : ExifDateTime_1.ExifDateTime.fromISO(value, tz);
|
|
229
|
+
if (d != null)
|
|
230
|
+
return __classPrivateFieldGet(this, _ReadTask_instances, "m", _ReadTask_normalizeDateTime).call(this, tagName, d);
|
|
204
231
|
}
|
|
205
|
-
if (tagName === "
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
return this.lon;
|
|
210
|
-
}
|
|
211
|
-
if (typeof value === "string") {
|
|
212
|
-
const tz = tagIsInUTC(tagName) ? "UTC" : undefined;
|
|
213
|
-
if (tagName.includes("DateTime") ||
|
|
214
|
-
tagName.toLowerCase().includes("timestamp")) {
|
|
215
|
-
const d = (_a = ExifDateTime_1.ExifDateTime.fromExifStrict(value, tz)) !== null && _a !== void 0 ? _a : ExifDateTime_1.ExifDateTime.fromISO(value, tz);
|
|
216
|
-
if (d != null) {
|
|
217
|
-
return this.normalizeDateTime(tagName, d);
|
|
218
|
-
}
|
|
219
|
-
}
|
|
220
|
-
if (tagName.includes("Date")) {
|
|
221
|
-
const d = (_f = (_e = (_d = (_c = (_b = ExifDateTime_1.ExifDateTime.fromExifStrict(value, tz)) !== null && _b !== void 0 ? _b : ExifDateTime_1.ExifDateTime.fromISO(value, tz)) !== null && _c !== void 0 ? _c : ExifDateTime_1.ExifDateTime.fromExifLoose(value, tz)) !== null && _d !== void 0 ? _d : ExifDate_1.ExifDate.fromExifStrict(value)) !== null && _e !== void 0 ? _e : ExifDate_1.ExifDate.fromISO(value)) !== null && _f !== void 0 ? _f : ExifDate_1.ExifDate.fromExifLoose(value);
|
|
222
|
-
if (d != null) {
|
|
223
|
-
return this.normalizeDateTime(tagName, d);
|
|
224
|
-
}
|
|
225
|
-
}
|
|
226
|
-
if (tagName.includes("Time")) {
|
|
227
|
-
const t = ExifTime_1.ExifTime.fromEXIF(value);
|
|
228
|
-
if (t != null)
|
|
229
|
-
return t;
|
|
232
|
+
if (tagName === "When" || tagName.includes("Date")) {
|
|
233
|
+
const d = (_f = (_e = (_d = (_c = (_b = ExifDateTime_1.ExifDateTime.fromExifStrict(value, tz)) !== null && _b !== void 0 ? _b : ExifDateTime_1.ExifDateTime.fromISO(value, tz)) !== null && _c !== void 0 ? _c : ExifDateTime_1.ExifDateTime.fromExifLoose(value, tz)) !== null && _d !== void 0 ? _d : ExifDate_1.ExifDate.fromExifStrict(value)) !== null && _e !== void 0 ? _e : ExifDate_1.ExifDate.fromISO(value)) !== null && _f !== void 0 ? _f : ExifDate_1.ExifDate.fromExifLoose(value);
|
|
234
|
+
if (d != null) {
|
|
235
|
+
return __classPrivateFieldGet(this, _ReadTask_instances, "m", _ReadTask_normalizeDateTime).call(this, tagName, d);
|
|
230
236
|
}
|
|
231
237
|
}
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
return value;
|
|
238
|
+
if (tagName.includes("Time")) {
|
|
239
|
+
const t = ExifTime_1.ExifTime.fromEXIF(value);
|
|
240
|
+
if (t != null)
|
|
241
|
+
return t;
|
|
242
|
+
}
|
|
238
243
|
}
|
|
244
|
+
// Trust that ExifTool rendered the value with the correct type in JSON:
|
|
245
|
+
return value;
|
|
239
246
|
}
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
247
|
+
catch (e) {
|
|
248
|
+
this.addError(`Failed to parse ${tagName} with value ${JSON.stringify(value)}: ${e}`);
|
|
249
|
+
return value;
|
|
250
|
+
}
|
|
251
|
+
};
|
|
252
|
+
function utcTagName(tagName) {
|
|
243
253
|
return tagName.includes("UTC") || tagName.startsWith("GPS");
|
|
244
254
|
}
|
|
245
255
|
//# sourceMappingURL=ReadTask.js.map
|
package/dist/ReadTask.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ReadTask.js","sourceRoot":"","sources":["../src/ReadTask.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"ReadTask.js","sourceRoot":"","sources":["../src/ReadTask.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { ExifDate } from "./ExifDate";
|
|
2
|
+
import { ExifDateTime } from "./ExifDateTime";
|
|
3
|
+
/**
|
|
4
|
+
* @see https://exiftool.org/TagNames/XMP.html#ResourceEvent
|
|
5
|
+
*/
|
|
6
|
+
export interface ResourceEvent {
|
|
7
|
+
Action?: string;
|
|
8
|
+
Changed?: string;
|
|
9
|
+
InstanceID?: string;
|
|
10
|
+
Parameters?: string | number;
|
|
11
|
+
SoftwareAgent?: string;
|
|
12
|
+
When?: ExifDateTime | ExifDate | string;
|
|
13
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ResourceEvent.js","sourceRoot":"","sources":["../src/ResourceEvent.ts"],"names":[],"mappings":""}
|
package/dist/Struct.js
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.isStruct = void 0;
|
|
4
|
-
const
|
|
4
|
+
const DateTime_1 = require("./DateTime");
|
|
5
5
|
function isStruct(o) {
|
|
6
6
|
return (o != null &&
|
|
7
7
|
!Array.isArray(o) &&
|
|
8
|
-
|
|
9
|
-
const t = typeof
|
|
10
|
-
return t === "string" || t === "number" || isStruct(
|
|
8
|
+
Object.values(o).every((v) => {
|
|
9
|
+
const t = typeof v;
|
|
10
|
+
return t === "string" || t === "number" || (0, DateTime_1.isDateOrTime)(v) || isStruct(v);
|
|
11
11
|
}));
|
|
12
12
|
}
|
|
13
13
|
exports.isStruct = isStruct;
|
package/dist/Struct.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Struct.js","sourceRoot":"","sources":["../src/Struct.ts"],"names":[],"mappings":";;;AAAA,
|
|
1
|
+
{"version":3,"file":"Struct.js","sourceRoot":"","sources":["../src/Struct.ts"],"names":[],"mappings":";;;AAAA,yCAAyC;AAMzC,SAAgB,QAAQ,CAAC,CAAM;IAC7B,OAAO,CACL,CAAC,IAAI,IAAI;QACT,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;QACjB,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE;YAC3B,MAAM,CAAC,GAAG,OAAO,CAAC,CAAA;YAClB,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,KAAK,QAAQ,IAAI,IAAA,uBAAY,EAAC,CAAC,CAAC,IAAI,QAAQ,CAAC,CAAC,CAAC,CAAA;QAC3E,CAAC,CAAC,CACH,CAAA;AACH,CAAC;AATD,4BASC"}
|