exiftool-vendored 23.1.0 → 23.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/dist/Timezones.js CHANGED
@@ -1,14 +1,16 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getZoneName = exports.equivalentZones = exports.extractTzOffsetFromUTCOffset = exports.inferLikelyOffsetMinutes = exports.extractTzOffsetFromTags = exports.extractZone = exports.offsetMinutesToZoneName = exports.validTzOffsetMinutes = exports.normalizeZone = exports.defaultVideosToUTC = exports.UnsetZoneName = exports.UnsetZone = exports.UnsetZoneOffsetMinutes = void 0;
3
+ exports.getZoneName = exports.equivalentZones = exports.extractTzOffsetFromUTCOffset = exports.inferLikelyOffsetMinutes = exports.extractTzOffsetFromDatestamps = exports.extractTzOffsetFromTags = exports.extractZone = exports.offsetMinutesToZoneName = exports.validTzOffsetMinutes = exports.zoneToShortOffset = exports.normalizeZone = exports.defaultVideosToUTC = exports.isZoneValid = exports.isUTC = exports.UnsetZoneName = exports.UnsetZone = exports.UnsetZoneOffsetMinutes = void 0;
4
4
  const luxon_1 = require("luxon");
5
- const Array_1 = require("./Array");
5
+ const BinaryField_1 = require("./BinaryField");
6
6
  const CapturedAtTagNames_1 = require("./CapturedAtTagNames");
7
+ const ExifDate_1 = require("./ExifDate");
7
8
  const ExifDateTime_1 = require("./ExifDateTime");
8
9
  const ExifTime_1 = require("./ExifTime");
9
10
  const Lazy_1 = require("./Lazy");
10
11
  const Maybe_1 = require("./Maybe");
11
12
  const Number_1 = require("./Number");
13
+ const Pick_1 = require("./Pick");
12
14
  const String_1 = require("./String");
13
15
  // Unique values from https://en.wikipedia.org/wiki/List_of_tz_database_time_zones
14
16
  const ValidTimezoneOffsets = [
@@ -93,21 +95,71 @@ exports.UnsetZone = luxon_1.Info.normalizeZone(exports.UnsetZoneOffsetMinutes);
93
95
  * Zone instances with this name are a placeholder for being "unset".
94
96
  */
95
97
  exports.UnsetZoneName = exports.UnsetZone.name;
98
+ const Zulus = [
99
+ luxon_1.FixedOffsetZone.utcInstance,
100
+ 0,
101
+ -0,
102
+ "UTC",
103
+ "GMT",
104
+ "Z",
105
+ "+0",
106
+ "+00:00",
107
+ "UTC+0",
108
+ "GMT+0",
109
+ "UTC+00:00",
110
+ // ...sigh, so much for "normalizeZone"...
111
+ ];
112
+ function isUTC(zone) {
113
+ var _a;
114
+ const z = zone;
115
+ return (zone != null && (Zulus.includes(z) || Zulus.includes((_a = z.zoneName) !== null && _a !== void 0 ? _a : z.fixed)));
116
+ }
117
+ exports.isUTC = isUTC;
118
+ function isZoneValid(zone) {
119
+ return (zone != null && zone.isValid && Math.abs(zone.offset(Date.now())) < 14 * 60);
120
+ }
121
+ exports.isZoneValid = isZoneValid;
96
122
  /**
97
123
  * If `tzSource` matches this value, the tags are from a video, and we had to
98
124
  * resort to assuming time fields are in UTC.
99
125
  * @see https://github.com/photostructure/exiftool-vendored.js/issues/113
100
126
  */
101
127
  exports.defaultVideosToUTC = "defaultVideosToUTC";
102
- function normalizeZone(z) {
128
+ // https://en.wikipedia.org/wiki/List_of_tz_database_time_zones -- not that
129
+ // "WET" and "W-SU" are full TZs
130
+ const IanaFormatRE = /^\w{2,15}(?:\/\w{3,15})?$/;
131
+ // Luxon requires fixed-offset zones to look like "UTC+H", "UTC-H",
132
+ // "UTC+H:mm", "UTC-H:mm":
133
+ const FixedFormatRE = /^UTC[+-]\d{1,2}(?::\d\d)?$/;
134
+ /**
135
+ * @param input must be either a number, which is the offset in minutes, or a
136
+ * string in the format "UTC+H" or "UTC+HH:mm"
137
+ */
138
+ function normalizeZone(input) {
139
+ // wrapped in a try/catch as Luxon.settings.throwOnInvalid may be true:
103
140
  try {
104
141
  // Info.normalizeZone returns the system zone if the input is null or
105
- // blank (!!!), but we want to return undefined instead--we don't want to introduce the system zone by accident!
106
- if (z == null || (0, String_1.blank)(String(z)))
142
+ // blank (!!!), but we want to return undefined instead:
143
+ // Info.normalizeZone(null) returns the system zone, which isn't what we
144
+ // (ever!) want.
145
+ if (input == null)
107
146
  return;
108
- const zone = luxon_1.Info.normalizeZone(z);
109
- return zone != null && zone.isValid && zone.name !== exports.UnsetZoneName
110
- ? zone
147
+ if (input instanceof luxon_1.Zone) {
148
+ return isZoneValid(input) ? input : undefined;
149
+ }
150
+ let z = input;
151
+ if (typeof z === "string") {
152
+ z = z.replace(/^(Zulu|Z|GMT)(\b|$)/, "UTC");
153
+ // Info.normalizeZone("") returns the system zone, which we never want.
154
+ // We also don't need to tease Info.normalizeZone with obviously
155
+ // non-offset inputs:
156
+ if ((0, String_1.blank)(z) || (!IanaFormatRE.test(z) && !FixedFormatRE.test(z))) {
157
+ return;
158
+ }
159
+ }
160
+ const result = luxon_1.Info.normalizeZone(z);
161
+ return isZoneValid(result) && result.name !== exports.UnsetZoneName
162
+ ? result
111
163
  : undefined;
112
164
  }
113
165
  catch {
@@ -115,6 +167,16 @@ function normalizeZone(z) {
115
167
  }
116
168
  }
117
169
  exports.normalizeZone = normalizeZone;
170
+ /**
171
+ * @param ts must be provided if the zone is not a fixed offset
172
+ * @return the zone offset (in "±HH:MM" format) for the given zone, or "" if
173
+ * the zone is invalid
174
+ */
175
+ function zoneToShortOffset(zone, ts) {
176
+ var _a, _b;
177
+ return (_b = (_a = normalizeZone(zone)) === null || _a === void 0 ? void 0 : _a.formatOffset(ts !== null && ts !== void 0 ? ts : Date.now(), "short")) !== null && _b !== void 0 ? _b : "";
178
+ }
179
+ exports.zoneToShortOffset = zoneToShortOffset;
118
180
  function validTzOffsetMinutes(tzOffsetMinutes) {
119
181
  return (tzOffsetMinutes != null &&
120
182
  (0, Number_1.isNumber)(tzOffsetMinutes) &&
@@ -162,24 +224,38 @@ function extractOffsetFromHours(hourOffset) {
162
224
  * Parse a timezone offset and return the offset minutes
163
225
  */
164
226
  function extractZone(value, opts) {
165
- var _a, _b, _c;
227
+ var _a, _b;
228
+ if (value == null ||
229
+ typeof value === "boolean" ||
230
+ value instanceof BinaryField_1.BinaryField ||
231
+ value instanceof ExifDate_1.ExifDate) {
232
+ return;
233
+ }
234
+ if (Array.isArray(value)) {
235
+ // we only ever care about the first non-null value
236
+ return extractZone(value.find((ea) => ea != null));
237
+ }
166
238
  if (value instanceof ExifDateTime_1.ExifDateTime || value instanceof ExifTime_1.ExifTime) {
167
239
  return value.zone == null
168
240
  ? undefined
169
241
  : { tz: value.zone, src: value.constructor.name + ".zone" };
170
242
  }
171
- if ((0, Number_1.isNumber)(value) || Array.isArray(value)) {
243
+ if ((0, Number_1.isNumber)(value)) {
172
244
  return extractOffsetFromHours(value);
173
245
  }
174
- let str = (_a = value.rawValue) !== null && _a !== void 0 ? _a : (0, String_1.toS)(value);
246
+ if (typeof value !== "string" || (0, String_1.blank)(value)) {
247
+ // don't accept ExifDate, boolean, BinaryField, ResourceEvent, Struct, or
248
+ // Version instances:
249
+ return;
250
+ }
175
251
  {
176
- if ((0, String_1.blank)(str))
177
- return;
178
- const z = normalizeZone(str);
252
+ // If value is a proper timezone name, this may be easy!
253
+ const z = normalizeZone(value);
179
254
  if (z != null) {
180
255
  return { tz: z.name, src: "normalizeZone" };
181
256
  }
182
257
  }
258
+ let str = value.trim();
183
259
  // Some EXIF datetime will "over-specify" and include both the utc offset
184
260
  // *and* the "time zone abbreviation"/TZA, like "PST" or "PDT". TZAs are
185
261
  // between 2 (AT) and 5 (WEST) characters.
@@ -197,18 +273,19 @@ function extractZone(value, opts) {
197
273
  return { tz: z.name, src: "normalizeZone" };
198
274
  }
199
275
  }
200
- const m = tzRe.exec(str);
201
- const g = m === null || m === void 0 ? void 0 : m.groups;
202
- if (m != null && g != null) {
203
- const leftovers = str.slice(0, m.index);
204
- if (g.Z === "Z")
276
+ const match = tzRe.exec(str);
277
+ const capturedGroups = match === null || match === void 0 ? void 0 : match.groups;
278
+ if (match != null && capturedGroups != null) {
279
+ const leftovers = str.slice(0, match.index);
280
+ if (capturedGroups.Z === "Z")
205
281
  return {
206
- tz: luxon_1.FixedOffsetZone.utcInstance.name,
282
+ tz: "UTC",
207
283
  src: "Z",
208
284
  leftovers,
209
285
  };
210
- const offsetMinutes = (g.sign === "-" ? -1 : 1) *
211
- (parseInt((_b = g.hours) !== null && _b !== void 0 ? _b : "0") * 60 + parseInt((_c = g.minutes) !== null && _c !== void 0 ? _c : "0"));
286
+ const offsetMinutes = (capturedGroups.sign === "-" ? -1 : 1) *
287
+ (parseInt((_a = capturedGroups.hours) !== null && _a !== void 0 ? _a : "0") * 60 +
288
+ parseInt((_b = capturedGroups.minutes) !== null && _b !== void 0 ? _b : "0"));
212
289
  const tz = offsetMinutesToZoneName(offsetMinutes);
213
290
  if (tz != null) {
214
291
  return { tz, src: "offsetMinutesToZoneName", leftovers };
@@ -231,45 +308,38 @@ const TimezoneOffsetTagnames = [
231
308
  // ignore) @see https://www.exiftool.org/TagNames/EXIF.html
232
309
  "TimeZoneOffset", // number | number[] | string
233
310
  ];
234
- // The following are a hail-mary to try to get the offset from a
235
- // created-at tag, and only examined if `inferTimezoneFromDatestamps` is
236
- // true.
237
- const CreateDateTagnames = [
238
- "SubSecCreateDate",
239
- "CreateDate",
240
- "SubSecDateTimeOriginal",
241
- "DateTimeOriginal",
242
- "SubSecMediaCreateDate",
243
- "MediaCreateDate",
244
- "CreationDate",
245
- "TimeCreated", // < IPTC tag
246
- ];
247
- function extractTzOffsetFromTags(t, opts) {
248
- var _a;
249
- for (const tagName of [
250
- ...TimezoneOffsetTagnames,
251
- ...(((_a = opts === null || opts === void 0 ? void 0 : opts.inferTimezoneFromDatestamps) !== null && _a !== void 0 ? _a : false) ? CreateDateTagnames : []),
252
- ]) {
253
- // don't adopt FileCreateDate or FileModifyDate offsets--those are just
254
- // the system timezone:
255
- if (t[tagName] != null && !tagName.startsWith("File")) {
311
+ function extractTzOffsetFromTags(t) {
312
+ // We have to iterate twice: if it's from a timezone offset tag, we can
313
+ // trust it, even if it's UTC.
314
+ for (const tagName of TimezoneOffsetTagnames) {
315
+ if (t[tagName] != null) {
256
316
  const offset = extractZone(t[tagName]);
257
317
  if (offset != null) {
258
318
  return { tz: offset.tz, src: tagName };
259
319
  }
260
320
  }
261
321
  }
262
- if (t.TimeZoneOffset != null) {
263
- const tz = tzHourToOffset(Array.isArray(t.TimeZoneOffset) ? t.TimeZoneOffset[0] : t.TimeZoneOffset);
264
- if (tz != null)
265
- return {
266
- tz,
267
- src: "TimeZoneOffset",
268
- };
269
- }
270
322
  return;
271
323
  }
272
324
  exports.extractTzOffsetFromTags = extractTzOffsetFromTags;
325
+ function extractTzOffsetFromDatestamps(t, opts) {
326
+ var _a;
327
+ if ((opts === null || opts === void 0 ? void 0 : opts.inferTimezoneFromDatestamps) === true) {
328
+ for (const tagName of (_a = opts.inferTimezoneFromDatestampTags) !== null && _a !== void 0 ? _a : []) {
329
+ if (t[tagName] != null) {
330
+ const offset = extractZone(t[tagName]);
331
+ // Some applications (looking at you, Google Takeout) will add a
332
+ // spurious "+00:00" timezone offset to random datestamp tags, so
333
+ // ignore UTC offsets here.
334
+ if (offset != null && !isUTC(offset.tz)) {
335
+ return { tz: offset.tz, src: tagName };
336
+ }
337
+ }
338
+ }
339
+ }
340
+ return;
341
+ }
342
+ exports.extractTzOffsetFromDatestamps = extractTzOffsetFromDatestamps;
273
343
  // timezone offsets may be on a 15 minute boundary, but if GPS acquisition is
274
344
  // old, this can be spurious. We get less mistakes with a larger multiple, so
275
345
  // we're using 30 minutes instead of 15. See
@@ -279,17 +349,25 @@ function inferLikelyOffsetMinutes(deltaMinutes) {
279
349
  return TzBoundaryMinutes * Math.floor(deltaMinutes / TzBoundaryMinutes);
280
350
  }
281
351
  exports.inferLikelyOffsetMinutes = inferLikelyOffsetMinutes;
352
+ /**
353
+ * Convert blank strings to undefined.
354
+ */
355
+ function blankToNull(x) {
356
+ return x == null || (typeof x === "string" && (0, String_1.blank)(x)) ? undefined : x;
357
+ }
282
358
  function extractTzOffsetFromUTCOffset(t) {
283
- var _a;
284
- const gpsStamps = (0, Array_1.compact)([t.GPSDateStamp, t.GPSTimeStamp]);
285
- if (gpsStamps.length === 2) {
286
- (_a = t.GPSDateTimeStamp) !== null && _a !== void 0 ? _a : (t.GPSDateTimeStamp = gpsStamps.join(" "));
287
- }
359
+ const utcSources = {
360
+ ...(0, Pick_1.pick)(t, "GPSDateTime", "DateTimeUTC"),
361
+ GPSDateTimeStamp: (0, Maybe_1.map2)(blankToNull(t.GPSDateStamp), // Example: "2022:04:13"
362
+ blankToNull(t.GPSTimeStamp), // Example: "23:59:41.001"
363
+ (a, b) => a + " " + b),
364
+ };
288
365
  // We can always assume these are in UTC:
289
366
  const utc = (0, Maybe_1.first)(["GPSDateTime", "DateTimeUTC", "GPSDateTimeStamp"], (tagName) => {
290
367
  var _a;
291
- const edt = ExifDateTime_1.ExifDateTime.fromExifStrict(t[tagName]);
292
- const s = edt != null && (edt.zone == null || edt.zone === "UTC")
368
+ const v = utcSources[tagName];
369
+ const edt = v instanceof ExifDateTime_1.ExifDateTime ? v : ExifDateTime_1.ExifDateTime.fromExifStrict(v);
370
+ const s = edt != null && (edt.zone == null || isUTC(edt.zone))
293
371
  ? (_a = edt.setZone("UTC", { keepLocalTime: true })) === null || _a === void 0 ? void 0 : _a.toEpochSeconds()
294
372
  : undefined;
295
373
  return s != null
@@ -1 +1 @@
1
- {"version":3,"file":"Timezones.js","sourceRoot":"","sources":["../src/Timezones.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Timezones.js","sourceRoot":"","sources":["../src/Timezones.ts"],"names":[],"mappings":"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"}
package/dist/Version.d.ts CHANGED
@@ -11,3 +11,4 @@ export interface Version {
11
11
  ModifyDate?: ExifDateTime | ExifDate | string;
12
12
  Version?: string;
13
13
  }
14
+ export declare function isVersion(obj: any): obj is Version;
package/dist/Version.js CHANGED
@@ -1,3 +1,9 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.isVersion = void 0;
4
+ const fields = ["Comments", "Event", "Modifier", "ModifyDate", "Version"];
5
+ function isVersion(obj) {
6
+ return obj != null && typeof obj === "object" && fields.every((f) => f in obj);
7
+ }
8
+ exports.isVersion = isVersion;
3
9
  //# sourceMappingURL=Version.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Version.js","sourceRoot":"","sources":["../src/Version.ts"],"names":[],"mappings":""}
1
+ {"version":3,"file":"Version.js","sourceRoot":"","sources":["../src/Version.ts"],"names":[],"mappings":";;;AAeA,MAAM,MAAM,GAAG,CAAC,UAAU,EAAE,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,SAAS,CAAC,CAAA;AAEzE,SAAgB,SAAS,CAAC,GAAQ;IAChC,OAAO,GAAG,IAAI,IAAI,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,GAAG,CAAC,CAAA;AAChF,CAAC;AAFD,8BAEC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "exiftool-vendored",
3
- "version": "23.1.0",
3
+ "version": "23.3.0",
4
4
  "description": "Efficient, cross-platform access to ExifTool",
5
5
  "main": "./dist/ExifTool.js",
6
6
  "types": "./dist/ExifTool.d.ts",
@@ -73,12 +73,12 @@
73
73
  "@types/globule": "^1.1.7",
74
74
  "@types/he": "^1.2.1",
75
75
  "@types/mocha": "^10.0.2",
76
- "@types/node": "^20.8.0",
76
+ "@types/node": "^20.8.2",
77
77
  "@types/progress": "^2.0.5",
78
78
  "@types/tmp": "^0.2.4",
79
79
  "@types/xmldom": "^0.1.32",
80
- "@typescript-eslint/eslint-plugin": "^6.7.3",
81
- "@typescript-eslint/parser": "^6.7.3",
80
+ "@typescript-eslint/eslint-plugin": "^6.7.4",
81
+ "@typescript-eslint/parser": "^6.7.4",
82
82
  "@xmldom/xmldom": "^0.8.10",
83
83
  "chai": "^4.3.10",
84
84
  "chai-as-promised": "^7.1.1",