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 +11 -0
- package/dist/DateTime.d.ts +4 -1
- package/dist/DateTime.js +8 -5
- package/dist/DateTime.js.map +1 -1
- package/dist/ExifDateTime.d.ts +9 -2
- package/dist/ExifDateTime.js +75 -43
- package/dist/ExifDateTime.js.map +1 -1
- package/dist/Tags.d.ts +9 -9
- package/package.json +3 -3
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.
|
package/dist/DateTime.d.ts
CHANGED
|
@@ -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
|
|
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
|
-
|
|
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
|
|
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
|
-
|
|
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;
|
package/dist/DateTime.js.map
CHANGED
|
@@ -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,
|
|
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"}
|
package/dist/ExifDateTime.d.ts
CHANGED
|
@@ -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,
|
|
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,
|
|
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;
|
package/dist/ExifDateTime.js
CHANGED
|
@@ -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,
|
|
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
|
-
|
|
32
|
-
|
|
33
|
-
{ fmt: "
|
|
34
|
-
{ fmt: "
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
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](
|
|
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
|
-
|
|
82
|
-
|
|
83
|
-
|
|
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
|
-
|
|
104
|
-
|
|
105
|
-
{ fmt: "
|
|
106
|
-
{ fmt: "
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
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
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
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
|
-
|
|
129
|
-
|
|
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,
|
|
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
|
|
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();
|
package/dist/ExifDateTime.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ExifDateTime.js","sourceRoot":"","sources":["../src/ExifDateTime.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,iCAMc;AACd,yCAA2C;AAC3C,mCAAuC;AACvC,qCAA+B;AAC/B,qCAA+C;AAC/C,2CAIoB;AAEpB;;GAEG;AACH,MAAa,YAAY;IAGvB,MAAM,CAAC,OAAO,
|
|
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:
|
|
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
|
|
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
|
|
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
|
|
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: [{"
|
|
4021
|
+
/** ☆☆☆☆ ✔ Example: [{"DepthMap":{"ConfidenceURI":"android/confidencemap","De…ical"}] */
|
|
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":[{"
|
|
4057
|
+
/** ☆☆☆☆ ✔ Example: {"Directory":[{"DataURI":"primary_image","Length":0,"Mime…peg"}]} */
|
|
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: [{"
|
|
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
|
|
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": "
|
|
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.
|
|
76
|
+
"@types/he": "^1.2.0",
|
|
77
77
|
"@types/mocha": "^10.0.1",
|
|
78
|
-
"@types/node": "^18.11.
|
|
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",
|