exiftool-vendored 20.0.0 → 21.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 CHANGED
@@ -25,6 +25,17 @@ vendored versions of ExifTool match the version that they vendor.
25
25
 
26
26
  ## Version history
27
27
 
28
+ ### v21.0.0
29
+
30
+ - 💔 `ExifDateTime.fromDateTime()` now takes an option hash as the second
31
+ argument (instead of the second argument being `rawValue`)
32
+
33
+ - 🐞 `ExifDateTime.milliseconds` will now be `undefined` if the EXIF or ISO
34
+ date string did not specify milliseconds, and will no longer render
35
+ milliseconds if the `rawValue` did not include millisecond precision.
36
+
37
+ - 📦 EXIF and ISO dates without specified seconds or milliseconds are now allowed
38
+
28
39
  ### v20.0.0
29
40
 
30
41
  - 💔 `ExifTool.write` took a generic that defaulted to `WriteTags`, but the type wasn't used for anything. I removed the generic typing, which may require consumers to change their code.
@@ -9,5 +9,8 @@ export declare const HourMs: number;
9
9
  export declare const DayMs: number;
10
10
  export type DateOrTime = ExifDateTime | ExifDate | ExifTime | DateTime;
11
11
  export declare function isDateOrTime(o: any): o is DateOrTime;
12
- export declare function dateTimeToExif(d: DateTime): string;
12
+ export declare function dateTimeToExif(d: DateTime, opts?: {
13
+ includeOffset?: boolean;
14
+ includeMilliseconds?: boolean;
15
+ }): string;
13
16
  export declare function toExifString(d: DateOrTime): Maybe<string>;
package/dist/DateTime.js CHANGED
@@ -16,19 +16,22 @@ function isDateOrTime(o) {
16
16
  return (o instanceof ExifDateTime_1.ExifDateTime ||
17
17
  o instanceof ExifDate_1.ExifDate ||
18
18
  o instanceof ExifTime_1.ExifTime ||
19
- o instanceof luxon_1.DateTime);
19
+ luxon_1.DateTime.isDateTime(o));
20
20
  }
21
21
  exports.isDateOrTime = isDateOrTime;
22
- function dateTimeToExif(d) {
23
- return d.toFormat("y:MM:dd HH:mm:ss.u");
22
+ function dateTimeToExif(d, opts) {
23
+ return d.toFormat("y:MM:dd HH:mm:ss" +
24
+ ((opts === null || opts === void 0 ? void 0 : opts.includeMilliseconds) === true ? ".u" : "") +
25
+ ((opts === null || opts === void 0 ? void 0 : opts.includeOffset) === false ? "" : "ZZ"));
24
26
  }
25
27
  exports.dateTimeToExif = dateTimeToExif;
26
28
  function toExifString(d) {
27
- if (d instanceof luxon_1.DateTime) {
29
+ var _a;
30
+ if (luxon_1.DateTime.isDateTime(d)) {
28
31
  return dateTimeToExif(d);
29
32
  }
30
33
  else {
31
- return d.toExifString();
34
+ return (_a = d === null || d === void 0 ? void 0 : d.toExifString) === null || _a === void 0 ? void 0 : _a.call(d);
32
35
  }
33
36
  }
34
37
  exports.toExifString = toExifString;
@@ -1 +1 @@
1
- {"version":3,"file":"DateTime.js","sourceRoot":"","sources":["../src/DateTime.ts"],"names":[],"mappings":";;;AAAA,iCAAgC;AAChC,yCAAqC;AACrC,iDAA6C;AAC7C,yCAAqC;AAGrC,SAAgB,aAAa,CAAC,EAAY;IACxC,OAAO,EAAE,IAAI,IAAI,IAAI,EAAE,CAAC,OAAO,CAAA;AACjC,CAAC;AAFD,sCAEC;AAEY,QAAA,QAAQ,GAAG,EAAE,GAAG,IAAI,CAAA;AACpB,QAAA,MAAM,GAAG,EAAE,GAAG,gBAAQ,CAAA;AACtB,QAAA,KAAK,GAAG,EAAE,GAAG,cAAM,CAAA;AAIhC,SAAgB,YAAY,CAAC,CAAM;IACjC,OAAO,CACL,CAAC,YAAY,2BAAY;QACzB,CAAC,YAAY,mBAAQ;QACrB,CAAC,YAAY,mBAAQ;QACrB,CAAC,YAAY,gBAAQ,CACtB,CAAA;AACH,CAAC;AAPD,oCAOC;AAED,SAAgB,cAAc,CAAC,CAAW;IACxC,OAAO,CAAC,CAAC,QAAQ,CAAC,oBAAoB,CAAC,CAAA;AACzC,CAAC;AAFD,wCAEC;AAED,SAAgB,YAAY,CAAC,CAAa;IACxC,IAAI,CAAC,YAAY,gBAAQ,EAAE;QACzB,OAAO,cAAc,CAAC,CAAC,CAAC,CAAA;KACzB;SAAM;QACL,OAAO,CAAC,CAAC,YAAY,EAAE,CAAA;KACxB;AACH,CAAC;AAND,oCAMC"}
1
+ {"version":3,"file":"DateTime.js","sourceRoot":"","sources":["../src/DateTime.ts"],"names":[],"mappings":";;;AAAA,iCAAgC;AAChC,yCAAqC;AACrC,iDAA6C;AAC7C,yCAAqC;AAGrC,SAAgB,aAAa,CAAC,EAAY;IACxC,OAAO,EAAE,IAAI,IAAI,IAAI,EAAE,CAAC,OAAO,CAAA;AACjC,CAAC;AAFD,sCAEC;AAEY,QAAA,QAAQ,GAAG,EAAE,GAAG,IAAI,CAAA;AACpB,QAAA,MAAM,GAAG,EAAE,GAAG,gBAAQ,CAAA;AACtB,QAAA,KAAK,GAAG,EAAE,GAAG,cAAM,CAAA;AAIhC,SAAgB,YAAY,CAAC,CAAM;IACjC,OAAO,CACL,CAAC,YAAY,2BAAY;QACzB,CAAC,YAAY,mBAAQ;QACrB,CAAC,YAAY,mBAAQ;QACrB,gBAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,CACvB,CAAA;AACH,CAAC;AAPD,oCAOC;AAED,SAAgB,cAAc,CAC5B,CAAW,EACX,IAAiE;IAEjE,OAAO,CAAC,CAAC,QAAQ,CACf,kBAAkB;QAChB,CAAC,CAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,mBAAmB,MAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;QAChD,CAAC,CAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,aAAa,MAAK,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAC9C,CAAA;AACH,CAAC;AATD,wCASC;AAED,SAAgB,YAAY,CAAC,CAAa;;IACxC,IAAI,gBAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE;QAC1B,OAAO,cAAc,CAAC,CAAC,CAAC,CAAA;KACzB;SAAM;QACL,OAAO,MAAA,CAAC,aAAD,CAAC,uBAAD,CAAC,CAAE,YAAY,iDAAI,CAAA;KAC3B;AACH,CAAC;AAND,oCAMC"}
@@ -15,7 +15,7 @@ export declare class ExifDateTime {
15
15
  readonly tzoffsetMinutes?: number | undefined;
16
16
  readonly rawValue?: string | undefined;
17
17
  readonly zoneName?: string | undefined;
18
- static fromISO(iso: string, zone?: Maybe<string>): Maybe<ExifDateTime>;
18
+ static fromISO(iso: string, defaultZone?: Maybe<string>): Maybe<ExifDateTime>;
19
19
  /**
20
20
  * Try to parse a date-time string from EXIF. If there is not both a date
21
21
  * and a time component, returns `undefined`.
@@ -41,7 +41,10 @@ export declare class ExifDateTime {
41
41
  */
42
42
  static fromExifStrict(text: Maybe<string>, defaultZone?: Maybe<string>): Maybe<ExifDateTime>;
43
43
  static fromExifLoose(text: Maybe<string>, defaultZone?: Maybe<string>): Maybe<ExifDateTime>;
44
- static fromDateTime(dt: DateTime, rawValue?: string): Maybe<ExifDateTime>;
44
+ static fromDateTime(dt: DateTime, opts?: {
45
+ rawValue?: Maybe<string>;
46
+ unsetMilliseconds?: boolean;
47
+ }): Maybe<ExifDateTime>;
45
48
  /**
46
49
  * Create an ExifDateTime from a number of milliseconds since the epoch
47
50
  * (meaning since 1 January 1970 00:00:00 UTC). Uses the default zone.
@@ -65,6 +68,10 @@ export declare class ExifDateTime {
65
68
  get hasZone(): boolean;
66
69
  get zone(): Maybe<string>;
67
70
  setZone(zone?: string | Zone, opts?: ZoneOptions): Maybe<ExifDateTime>;
71
+ /**
72
+ * CAUTION: This instance will inherit the system timezone if this instance
73
+ * has an unset zone
74
+ */
68
75
  toDateTime(): DateTime;
69
76
  toEpochSeconds(): number;
70
77
  toDate(): Date;
@@ -19,26 +19,37 @@ const Maybe_1 = require("./Maybe");
19
19
  const Object_1 = require("./Object");
20
20
  const String_1 = require("./String");
21
21
  const Timezones_1 = require("./Timezones");
22
+ const TimeFmts = [
23
+ { fmt: "HH:mm:ss.u", unsetMilliseconds: false },
24
+ { fmt: "HH:mm:ss", unsetMilliseconds: true },
25
+ { fmt: "HH:mm", unsetMilliseconds: true },
26
+ ];
22
27
  /**
23
28
  * Encodes an ExifDateTime with an optional tz offset in minutes.
24
29
  */
25
30
  class ExifDateTime {
26
- static fromISO(iso, zone) {
31
+ static fromISO(iso, defaultZone) {
27
32
  if ((0, String_1.blank)(iso) || null != iso.match(/^\d+$/))
28
33
  return undefined;
29
34
  // Unfortunately, DateTime.fromISO() is happy to parse a date with no time,
30
35
  // so we have to do this ourselves:
31
- return this.fromPatterns(iso, [
32
- // if it specifies a zone, use it:
33
- { fmt: "y-M-d'T'H:m:s.uZZ" },
34
- { fmt: "y-M-d'T'H:m:sZZ" },
35
- // if it specifies UTC, use it:
36
- { fmt: "y-M-d'T'H:m:s.u'Z'", zone: "utc" },
37
- { fmt: "y-M-d'T'H:m:s'Z'", zone: "utc" },
38
- // Otherwise use the default zone:
39
- { fmt: "y-M-d'T'H:m:s.u", zone },
40
- { fmt: "y-M-d'T'H:m:s", zone },
41
- ]);
36
+ const patterns = [];
37
+ for (const z of [
38
+ { fmt: "ZZ", zone: undefined },
39
+ { fmt: "'Z'", zone: "UTC" },
40
+ { fmt: "", zone: defaultZone },
41
+ ]) {
42
+ for (const sep of ["'T'", " "]) {
43
+ for (const timeFmt of TimeFmts) {
44
+ patterns.push({
45
+ fmt: `y-M-d${sep}${timeFmt.fmt}${z.fmt}`,
46
+ zone: z.zone,
47
+ unsetMilliseconds: timeFmt.unsetMilliseconds,
48
+ });
49
+ }
50
+ }
51
+ }
52
+ return this.fromPatterns(iso, patterns);
42
53
  }
43
54
  /**
44
55
  * Try to parse a date-time string from EXIF. If there is not both a date
@@ -66,21 +77,26 @@ class ExifDateTime {
66
77
  // TZAs are between 2 (AT) and 5 (WEST) characters.
67
78
  // Unfortunately, luxon doesn't support regex.
68
79
  // We only want to strip off the TZA if it isn't "UTC" or "Z"
69
- if (null == s.match(/[.\d\s](utc|z)$/i)) {
80
+ if (null == s.match(/[.\d\s](UTC|Z)$/)) {
70
81
  const noTza = s.replace(/ [a-z]{2,5}$/i, "");
71
82
  if (noTza !== s)
72
83
  inputs.push(noTza);
73
84
  }
74
85
  // PERF: unroll first() to avoid creating closures
75
86
  for (const input of inputs) {
76
- for (const { fmt, zone } of fmts) {
87
+ for (const { fmt, zone, unsetMilliseconds } of fmts) {
77
88
  const dt = luxon_1.DateTime.fromFormat(input, fmt, {
78
89
  setZone: true,
79
90
  zone: zone !== null && zone !== void 0 ? zone : Timezones_1.UnsetZone,
80
91
  });
81
- const edt = ExifDateTime.fromDateTime(dt, s);
82
- if (edt != null)
83
- return edt;
92
+ if (dt.isValid) {
93
+ const edt = ExifDateTime.fromDateTime(dt, {
94
+ rawValue: s,
95
+ unsetMilliseconds: unsetMilliseconds !== null && unsetMilliseconds !== void 0 ? unsetMilliseconds : false,
96
+ });
97
+ if (edt != null)
98
+ return edt;
99
+ }
84
100
  }
85
101
  }
86
102
  return;
@@ -100,41 +116,50 @@ class ExifDateTime {
100
116
  var _a;
101
117
  if ((0, String_1.blank)(text))
102
118
  return undefined;
103
- return ((_a = this.fromPatterns(text, [
104
- // if it specifies a zone, use it:
105
- { fmt: "y:M:d H:m:s.uZZ" },
106
- { fmt: "y:M:d H:m:sZZ" },
107
- // if it specifies UTC, use it:
108
- { fmt: "y:M:d H:m:s.u'Z'", zone: "utc" },
109
- { fmt: "y:M:d H:m:s'Z'", zone: "utc" },
110
- // Otherwise use the default zone:
111
- { fmt: "y:M:d H:m:s.u", zone: defaultZone },
112
- { fmt: "y:M:d H:m:s", zone: defaultZone },
113
- // Not found yet? Maybe it's in ISO format? See
114
- // https://github.com/photostructure/exiftool-vendored.js/issues/71
115
- ])) !== null && _a !== void 0 ? _a : this.fromISO(text, defaultZone));
119
+ const patterns = [];
120
+ for (const z of [
121
+ { fmt: "ZZ", zone: undefined },
122
+ { fmt: "'Z'", zone: "UTC" },
123
+ { fmt: "", zone: defaultZone },
124
+ ]) {
125
+ for (const timeFmt of TimeFmts) {
126
+ patterns.push({
127
+ fmt: `y:M:d ${timeFmt.fmt}${z.fmt}`,
128
+ zone: z.zone,
129
+ unsetMilliseconds: timeFmt.unsetMilliseconds,
130
+ });
131
+ }
132
+ }
133
+ return ((_a = this.fromPatterns(text, patterns)) !== null && _a !== void 0 ? _a :
134
+ // Not found yet? Maybe it's in ISO format? See
135
+ // https://github.com/photostructure/exiftool-vendored.js/issues/71
136
+ this.fromISO(text, defaultZone));
116
137
  }
117
138
  static fromExifLoose(text, defaultZone) {
118
139
  if ((0, String_1.blank)(text))
119
140
  return undefined;
120
141
  const zone = (0, String_1.notBlank)(defaultZone) ? defaultZone : Timezones_1.UnsetZone;
121
- return this.fromPatterns(text, [
122
- // FWIW, the following are from actual datestamps seen in the wild:
123
- { fmt: "MMM d y H:m:sZZZ" },
124
- { fmt: "MMM d y H:m:s", zone },
125
- { fmt: "MMM d y, H:m:sZZZ" },
126
- { fmt: "MMM d y, H:m:s", zone },
142
+ // The following are from actual datestamps seen in the wild:
143
+ const formats = [
144
+ "MMM d y H:m:s",
145
+ "MMM d y, H:m:s",
127
146
  // Thu Oct 13 00:12:27 2016:
128
- { fmt: "ccc MMM d H:m:s yZZ" },
129
- { fmt: "ccc MMM d H:m:s y", zone },
147
+ "ccc MMM d H:m:s y",
148
+ ];
149
+ return this.fromPatterns(text, [
150
+ ...formats.map((fmt) => ({ fmt: fmt + "ZZ" })),
151
+ // And the same formats, without offsets with default zone:
152
+ ...formats.map((fmt) => ({ fmt, zone })),
130
153
  ]);
131
154
  }
132
- static fromDateTime(dt, rawValue) {
155
+ static fromDateTime(dt, opts) {
133
156
  var _a;
134
157
  if (dt == null || !dt.isValid || dt.year === 0 || dt.year === 1) {
135
158
  return undefined;
136
159
  }
137
- return new ExifDateTime(dt.year, dt.month, dt.day, dt.hour, dt.minute, dt.second, dt.millisecond, dt.offset === Timezones_1.UnsetZoneOffsetMinutes ? undefined : dt.offset, rawValue, ((_a = dt.zone) === null || _a === void 0 ? void 0 : _a.name) === Timezones_1.UnsetZone.name ? undefined : dt.zoneName);
160
+ return new ExifDateTime(dt.year, dt.month, dt.day, dt.hour, dt.minute, dt.second, dt.millisecond === 0 && true === (opts === null || opts === void 0 ? void 0 : opts.unsetMilliseconds)
161
+ ? undefined
162
+ : dt.millisecond, dt.offset === Timezones_1.UnsetZoneOffsetMinutes ? undefined : dt.offset, opts === null || opts === void 0 ? void 0 : opts.rawValue, ((_a = dt.zone) === null || _a === void 0 ? void 0 : _a.name) === Timezones_1.UnsetZone.name ? undefined : dt.zoneName);
138
163
  }
139
164
  /**
140
165
  * Create an ExifDateTime from a number of milliseconds since the epoch
@@ -150,7 +175,7 @@ class ExifDateTime {
150
175
  */
151
176
  static fromMillis(millis, options = {}) {
152
177
  // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
153
- return this.fromDateTime(luxon_1.DateTime.fromMillis(millis, (0, Object_1.omit)(options, "rawValue")), options.rawValue);
178
+ return this.fromDateTime(luxon_1.DateTime.fromMillis(millis, (0, Object_1.omit)(options, "rawValue")), { rawValue: options.rawValue });
154
179
  }
155
180
  static now(opts = {}) {
156
181
  return this.fromMillis(Date.now(), opts);
@@ -184,12 +209,16 @@ class ExifDateTime {
184
209
  const result = ExifDateTime.fromDateTime(this.toDateTime().setZone(zone, {
185
210
  keepLocalTime: !this.hasZone,
186
211
  ...opts,
187
- }), this.rawValue);
212
+ }), { rawValue: this.rawValue, unsetMilliseconds: this.millisecond == null });
188
213
  // We know this will be defined: this is valid, so changing the zone will
189
214
  // also be valid.
190
215
  // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
191
216
  return result;
192
217
  }
218
+ /**
219
+ * CAUTION: This instance will inherit the system timezone if this instance
220
+ * has an unset zone
221
+ */
193
222
  toDateTime() {
194
223
  var _a;
195
224
  return (__classPrivateFieldSet(this, _ExifDateTime_dt, (_a = __classPrivateFieldGet(this, _ExifDateTime_dt, "f")) !== null && _a !== void 0 ? _a : luxon_1.DateTime.fromObject({
@@ -218,7 +247,10 @@ class ExifDateTime {
218
247
  }));
219
248
  }
220
249
  toExifString() {
221
- return (0, DateTime_1.dateTimeToExif)(this.toDateTime());
250
+ return (0, DateTime_1.dateTimeToExif)(this.toDateTime(), {
251
+ includeOffset: this.hasZone,
252
+ includeMilliseconds: this.millisecond != null,
253
+ });
222
254
  }
223
255
  toString() {
224
256
  return this.toISOString();
@@ -1 +1 @@
1
- {"version":3,"file":"ExifDateTime.js","sourceRoot":"","sources":["../src/ExifDateTime.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ExifDateTime.js","sourceRoot":"","sources":["../src/ExifDateTime.ts"],"names":[],"mappings":"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"}
package/dist/Tags.d.ts CHANGED
@@ -28,7 +28,7 @@ export interface FileTags {
28
28
  CurrentIPTCDigest?: string;
29
29
  /** ★★★★ ✔ Example: "/home/username/pictures" */
30
30
  Directory?: string;
31
- /** ★★★★ ✔ Example: "2023:02:02 16:19:43-08:00" */
31
+ /** ★★★★ ✔ Example: "2023:02:05 12:52:30-08:00" */
32
32
  FileAccessDate?: ExifDateTime | string;
33
33
  /** ★★★★ ✔ Example: "2023:01:30 11:33:43-08:00" */
34
34
  FileInodeChangeDate?: ExifDateTime | string;
@@ -642,7 +642,7 @@ export interface EXIFTags {
642
642
  ImageNumber?: number;
643
643
  /** ☆☆☆☆ ✔ Example: "fa5fdfee65f3a6e05fe7d4692b9112a7" */
644
644
  ImageUniqueID?: string;
645
- /** ☆☆☆☆ ✔ Example: "(Binary data 571392 bytes, use -b option to extract)" */
645
+ /** ☆☆☆☆ ✔ Example: "(Binary data 772608 bytes, use -b option to extract)" */
646
646
  JpgFromRaw?: BinaryField;
647
647
  /** ☆☆☆☆ ✔ Example: 845574 */
648
648
  JpgFromRawLength?: number;
@@ -696,7 +696,7 @@ export interface EXIFTags {
696
696
  OffsetTimeOriginal?: string;
697
697
  /** ★★★★ ✔ Example: 8 */
698
698
  Orientation?: number;
699
- /** ☆☆☆☆ ✔ Example: "(Binary data 5146 bytes, use -b option to extract)" */
699
+ /** ☆☆☆☆ ✔ Example: "(Binary data 4798 bytes, use -b option to extract)" */
700
700
  OtherImage?: BinaryField | string;
701
701
  /** ☆☆☆☆ ✔ Example: 941265 */
702
702
  OtherImageLength?: number;
@@ -2263,7 +2263,7 @@ export interface MakerNotesTags {
2263
2263
  /** ☆☆☆☆ ✔ Example: 0 */
2264
2264
  FineTuneOptSpotMetering?: number;
2265
2265
  /** ☆☆☆☆ Example: "2015:11:09 08:38" */
2266
- FirmwareDate?: string;
2266
+ FirmwareDate?: ExifDateTime | string;
2267
2267
  /** ☆☆☆☆ ✔ Example: "NX1_000000" */
2268
2268
  FirmwareName?: string;
2269
2269
  /** ★☆☆☆ ✔ Example: "Rev01500000" */
@@ -3094,7 +3094,7 @@ export interface MakerNotesTags {
3094
3094
  NDFilter?: string;
3095
3095
  /** ☆☆☆☆ ✔ Example: "Uncompressed (reduced to 12 bit)" */
3096
3096
  NEFCompression?: string;
3097
- /** ☆☆☆☆ ✔ Example: "(Binary data 624 bytes, use -b option to extract)" */
3097
+ /** ☆☆☆☆ ✔ Example: "(Binary data 46 bytes, use -b option to extract)" */
3098
3098
  NEFLinearizationTable?: BinaryField | string;
3099
3099
  /** ☆☆☆☆ Example: "Off (0 2)" */
3100
3100
  NeutralDensityFilter?: string;
@@ -4018,7 +4018,7 @@ export interface XMPTags {
4018
4018
  CameraProfileDigest?: string;
4019
4019
  /** ☆☆☆☆ Example: "Rear" */
4020
4020
  CameraUnit?: string;
4021
- /** ☆☆☆☆ ✔ Example: [{"Camera":{"DepthMap":{"ConfidenceURI":"android/confidencal"}}] */
4021
+ /** ☆☆☆☆ ✔ Example: [{"DepthMap":{"ConfidenceURI":"android/confidencemap","Deical"}] */
4022
4022
  Cameras?: Struct[];
4023
4023
  /** ☆☆☆☆ ✔ Example: "Photo" */
4024
4024
  CaptureMode?: string;
@@ -4054,7 +4054,7 @@ export interface XMPTags {
4054
4054
  ColorSpace?: string;
4055
4055
  /** ☆☆☆☆ ✔ Example: "" */
4056
4056
  Colorlabels?: string;
4057
- /** ☆☆☆☆ ✔ Example: {"Directory":[{"Item":{"DataURI":"primary_image","Length"…eg"}}]} */
4057
+ /** ☆☆☆☆ ✔ Example: {"Directory":[{"DataURI":"primary_image","Length":0,"Mimepeg"}]} */
4058
4058
  Container?: Struct;
4059
4059
  /** ☆☆☆☆ ✔ Example: false */
4060
4060
  ConvertToGrayscale?: boolean;
@@ -4354,7 +4354,7 @@ export interface XMPTags {
4354
4354
  PreservedFileName?: string;
4355
4355
  /** ☆☆☆☆ ✔ Example: 11 */
4356
4356
  ProcessVersion?: number;
4357
- /** ☆☆☆☆ ✔ Example: [{"Profile":{"CameraIndices":[0],"Type":"DepthPhoto"}}] */
4357
+ /** ☆☆☆☆ ✔ Example: [{"CameraIndices":[0],"Type":"DepthPhoto"}] */
4358
4358
  Profiles?: Struct[];
4359
4359
  /** ☆☆☆☆ ✔ Example: "equirectangular" */
4360
4360
  ProjectionType?: string;
@@ -4495,7 +4495,7 @@ export interface XMPTags {
4495
4495
  * devices (like iPhones) An example value, JSON stringified, follows the
4496
4496
  * popularity ratings.
4497
4497
  *
4498
- * Autogenerated by "yarn mktags" by ExifTool 12.55 on Thu Feb 02 2023.
4498
+ * Autogenerated by "yarn mktags" by ExifTool 12.55 on Sun Feb 05 2023.
4499
4499
  * 3029 unique tags were found in 10079 photo and video files.
4500
4500
  */
4501
4501
  export interface Tags extends APP12Tags, APP14Tags, APP1Tags, APP4Tags, APP5Tags, APP6Tags, ApplicationRecordTags, CompositeTags, EXIFTags, ExifToolTags, FileTags, FlashPixTags, ICCProfileTags, IPTCTags, JFIFTags, MPFTags, MakerNotesTags, MetaTags, PanasonicRawTags, PhotoshopTags, PrintIMTags, QuickTimeTags, RAFTags, RIFFTags, XMPTags {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "exiftool-vendored",
3
- "version": "20.0.0",
3
+ "version": "21.0.0",
4
4
  "description": "Efficient, cross-platform access to ExifTool",
5
5
  "main": "./dist/ExifTool.js",
6
6
  "types": "./dist/ExifTool.d.ts",
@@ -73,9 +73,9 @@
73
73
  "@types/chai-subset": "^1.3.3",
74
74
  "@types/fs-extra": "^11.0.1",
75
75
  "@types/globule": "^1.1.5",
76
- "@types/he": "^1.1.2",
76
+ "@types/he": "^1.2.0",
77
77
  "@types/mocha": "^10.0.1",
78
- "@types/node": "^18.11.18",
78
+ "@types/node": "^18.11.19",
79
79
  "@types/progress": "^2.0.5",
80
80
  "@types/rimraf": "^3.0.2",
81
81
  "@types/tar-fs": "^2.0.1",