exiftool-vendored 25.0.0 → 25.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 CHANGED
@@ -26,6 +26,16 @@ vendored versions of ExifTool match the version that they vendor.
26
26
 
27
27
  ## Version history
28
28
 
29
+ ### v25.1.0
30
+
31
+ - ✨ Added `retain` field to [`ExifTool.deleteAllTags`](https://photostructure.github.io/exiftool-vendored.js/classes/ExifTool.html#deleteAllTags) to address [#178](https://github.com/photostructure/exiftool-vendored.js/issues/178)
32
+
33
+ - 📦 Added jsdocs for many `Tag` interface types
34
+
35
+ - 📦 Expose `GeolocationTags` and `isGeolocationTag()`
36
+
37
+ - 📦 Add `FileTags.FileCreateDate` (only a thing on Windows)
38
+
29
39
  ### v25.0.0
30
40
 
31
41
  - 🌱/✨ ExifTool upgraded to [v12.80](https://exiftool.org/history.html#v12.80), which **adds support for reverse-geo lookups** and [several other geolocation features](https://exiftool.org/geolocation.html
@@ -34,7 +44,7 @@ vendored versions of ExifTool match the version that they vendor.
34
44
 
35
45
  - ✨ `ExifToolOptions.exiftoolPath` can now be an `async` function
36
46
 
37
- - ✨ Added [Geolocation](https://photostructure.github.io/exiftool-vendored.js/interfaces/Geolocation.html) Tags. These will only be available if `{geolocation: true}` is passed to the [ExifTool constructor](https://photostructure.github.io/exiftool-vendored.js/classes/ExifTool.html#constructor).
47
+ - ✨ Added [Geolocation](https://photostructure.github.io/exiftool-vendored.js/interfaces/GeolocationTags.html) Tags. These will only be available if `{geolocation: true}` is passed to the [ExifTool constructor](https://photostructure.github.io/exiftool-vendored.js/classes/ExifTool.html#constructor).
38
48
 
39
49
  - 📦 Added support for `electron-forge`: [see the docs for details](https://photostructure.github.io/exiftool-vendored.js/#md:electron-forge-support).
40
50
 
@@ -1 +1 @@
1
- {"version":3,"file":"ErrorsAndWarnings.js","sourceRoot":"","sources":["../src/ErrorsAndWarnings.ts"],"names":[],"mappings":";;;AAAA,mCAA8B;AAE9B,qCAAwC;AAiBxC,SAAgB,iBAAiB,CAC/B,IAAuB,EACvB,CAAwC;IAExC,OAAO;QACL,MAAM,EAAE,IAAA,YAAI,EAAC,IAAA,sBAAa,EAAC,CAAC,CAAC,aAAD,CAAC,uBAAD,CAAC,CAAE,KAAK,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;QACvD,QAAQ,EAAE,IAAA,YAAI,EAAC,IAAA,sBAAa,EAAC,CAAC,CAAC,aAAD,CAAC,uBAAD,CAAC,CAAE,OAAO,EAAE,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;KAC9D,CAAA;AACH,CAAC;AARD,8CAQC"}
1
+ {"version":3,"file":"ErrorsAndWarnings.js","sourceRoot":"","sources":["../src/ErrorsAndWarnings.ts"],"names":[],"mappings":";;;AAAA,mCAA8B;AAE9B,qCAAwC;AAkBxC,SAAgB,iBAAiB,CAC/B,IAAuB,EACvB,CAAwC;IAExC,OAAO;QACL,MAAM,EAAE,IAAA,YAAI,EAAC,IAAA,sBAAa,EAAC,CAAC,CAAC,aAAD,CAAC,uBAAD,CAAC,CAAE,KAAK,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;QACvD,QAAQ,EAAE,IAAA,YAAI,EAAC,IAAA,sBAAa,EAAC,CAAC,CAAC,aAAD,CAAC,uBAAD,CAAC,CAAE,OAAO,EAAE,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;KAC9D,CAAA;AACH,CAAC;AARD,8CAQC"}
@@ -5,7 +5,7 @@ import { Defined, DefinedOrNullValued } from "./Defined";
5
5
  import { ErrorsAndWarnings } from "./ErrorsAndWarnings";
6
6
  import { ExifToolOptions } from "./ExifToolOptions";
7
7
  import { ExifToolTask } from "./ExifToolTask";
8
- import { GeolocationTags } from "./GeolocationTags";
8
+ import { ExifToolVendoredTags } from "./ExifToolVendoredTags";
9
9
  import { ICCProfileTags } from "./ICCProfileTags";
10
10
  import { CollectionInfo, KeywordInfoStruct, KeywordStruct, MWGCollectionsTags, MWGKeywordTags } from "./MWGTags";
11
11
  import { Maybe } from "./Maybe";
@@ -16,7 +16,7 @@ import { ReadTaskOptions } from "./ReadTask";
16
16
  import { ResourceEvent } from "./ResourceEvent";
17
17
  import { ShortcutTags } from "./ShortcutTags";
18
18
  import { Struct } from "./Struct";
19
- import { APP12Tags, APP14Tags, APP1Tags, APP4Tags, APP5Tags, APP6Tags, CompositeTags, EXIFTags, ExifToolTags, FileTags, FlashPixTags, IPTCTags, JFIFTags, MPFTags, MakerNotesTags, MetaTags, PanasonicRawTags, PhotoshopTags, PrintIMTags, QuickTimeTags, RAFTags, RIFFTags, Tags, XMPTags } from "./Tags";
19
+ import { APP12Tags, APP14Tags, APP1Tags, APP4Tags, APP5Tags, APP6Tags, CompositeTags, EXIFTags, ExifToolTags, FileTags, FlashPixTags, GeolocationTags, IPTCTags, JFIFTags, MPFTags, MakerNotesTags, MetaTags, PanasonicRawTags, PhotoshopTags, PrintIMTags, QuickTimeTags, RAFTags, RIFFTags, Tags, XMPTags } from "./Tags";
20
20
  import { Version } from "./Version";
21
21
  import { AdditionalWriteTags, ExpandedDateTags, MutableTags, StructAppendTags, WriteTags } from "./WriteTags";
22
22
  import { WriteTaskOptions, WriteTaskResult } from "./WriteTask";
@@ -29,11 +29,12 @@ export { ExifDate } from "./ExifDate";
29
29
  export { ExifDateTime } from "./ExifDateTime";
30
30
  export { ExifTime } from "./ExifTime";
31
31
  export { ExifToolTask } from "./ExifToolTask";
32
+ export { isGeolocationTag } from "./GeolocationTags";
32
33
  export { parseJSON } from "./JSON";
33
34
  export { DefaultReadTaskOptions } from "./ReadTask";
34
35
  export { UnsetZone, UnsetZoneName, UnsetZoneOffsetMinutes, defaultVideosToUTC, offsetMinutesToZoneName, } from "./Timezones";
35
36
  export { DefaultWriteTaskOptions } from "./WriteTask";
36
- export type { APP12Tags, APP14Tags, APP1Tags, APP4Tags, APP5Tags, APP6Tags, AdditionalWriteTags, ApplicationRecordTags, CollectionInfo, CompositeTags, Defined, DefinedOrNullValued, EXIFTags, ErrorsAndWarnings, ExifToolOptions, ExifToolTags, ExpandedDateTags, FileTags, FlashPixTags, GeolocationTags, ICCProfileTags, IPTCTags, JFIFTags, Json, KeywordInfoStruct, KeywordStruct, Literal, MPFTags, MWGCollectionsTags, MWGKeywordTags, MakerNotesTags, Maybe, MetaTags, MutableTags, Omit, PanasonicRawTags, PhotoshopTags, PrintIMTags, QuickTimeTags, RAFTags, RIFFTags, RawTags, ReadTaskOptions, ResourceEvent, ShortcutTags, Struct, StructAppendTags, Tags, Version, WriteTags, WriteTaskOptions, WriteTaskResult, XMPTags, };
37
+ export type { APP12Tags, APP14Tags, APP1Tags, APP4Tags, APP5Tags, APP6Tags, AdditionalWriteTags, ApplicationRecordTags, CollectionInfo, CompositeTags, Defined, DefinedOrNullValued, EXIFTags, ErrorsAndWarnings, ExifToolOptions, ExifToolTags, ExifToolVendoredTags, ExpandedDateTags, FileTags, FlashPixTags, GeolocationTags, ICCProfileTags, IPTCTags, JFIFTags, Json, KeywordInfoStruct, KeywordStruct, Literal, MPFTags, MWGCollectionsTags, MWGKeywordTags, MakerNotesTags, Maybe, MetaTags, MutableTags, Omit, PanasonicRawTags, PhotoshopTags, PrintIMTags, QuickTimeTags, RAFTags, RIFFTags, RawTags, ReadTaskOptions, ResourceEvent, ShortcutTags, Struct, StructAppendTags, Tags, Version, WriteTags, WriteTaskOptions, WriteTaskResult, XMPTags, };
37
38
  /**
38
39
  * Manages delegating calls to a cluster of ExifTool child processes.
39
40
  *
@@ -120,8 +121,15 @@ export declare class ExifTool {
120
121
  * name `${FILENAME}_original`) will be retained. Note that some tags, like
121
122
  * stat information and image dimensions, are intrinsic to the file and will
122
123
  * continue to exist if you re-`read` the file.
124
+ *
125
+ * @param {string} file the file to strip of metadata
126
+ *
127
+ * @param {(keyof Tags | string)[]} opts.retain optional. If provided, this is
128
+ * a list of metadata keys to **not** delete.
123
129
  */
124
- deleteAllTags(file: string): Promise<WriteTaskResult>;
130
+ deleteAllTags(file: string, opts?: {
131
+ retain?: (keyof Tags | string)[];
132
+ }): Promise<WriteTaskResult>;
125
133
  /**
126
134
  * Extract the low-resolution thumbnail in `path/to/image.jpg`
127
135
  * and write it to `path/to/thumbnail.jpg`.
package/dist/ExifTool.js CHANGED
@@ -32,7 +32,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
32
32
  };
33
33
  var _ExifTool_checkForPerl;
34
34
  Object.defineProperty(exports, "__esModule", { value: true });
35
- exports.exiftool = exports.ExifTool = exports.DefaultWriteTaskOptions = exports.offsetMinutesToZoneName = exports.defaultVideosToUTC = exports.UnsetZoneOffsetMinutes = exports.UnsetZoneName = exports.UnsetZone = exports.DefaultReadTaskOptions = exports.parseJSON = exports.ExifToolTask = exports.ExifTime = exports.ExifDateTime = exports.ExifDate = exports.DefaultMaxProcs = exports.DefaultExiftoolArgs = exports.DefaultExifToolOptions = exports.CapturedAtTagNames = exports.BinaryField = void 0;
35
+ exports.exiftool = exports.ExifTool = exports.DefaultWriteTaskOptions = exports.offsetMinutesToZoneName = exports.defaultVideosToUTC = exports.UnsetZoneOffsetMinutes = exports.UnsetZoneName = exports.UnsetZone = exports.DefaultReadTaskOptions = exports.parseJSON = exports.isGeolocationTag = exports.ExifToolTask = exports.ExifTime = exports.ExifDateTime = exports.ExifDate = exports.DefaultMaxProcs = exports.DefaultExiftoolArgs = exports.DefaultExifToolOptions = exports.CapturedAtTagNames = exports.BinaryField = void 0;
36
36
  const bc = __importStar(require("batch-cluster"));
37
37
  const _cp = __importStar(require("node:child_process"));
38
38
  const _fs = __importStar(require("node:fs"));
@@ -72,6 +72,8 @@ var ExifTime_1 = require("./ExifTime");
72
72
  Object.defineProperty(exports, "ExifTime", { enumerable: true, get: function () { return ExifTime_1.ExifTime; } });
73
73
  var ExifToolTask_1 = require("./ExifToolTask");
74
74
  Object.defineProperty(exports, "ExifToolTask", { enumerable: true, get: function () { return ExifToolTask_1.ExifToolTask; } });
75
+ var GeolocationTags_1 = require("./GeolocationTags");
76
+ Object.defineProperty(exports, "isGeolocationTag", { enumerable: true, get: function () { return GeolocationTags_1.isGeolocationTag; } });
75
77
  var JSON_1 = require("./JSON");
76
78
  Object.defineProperty(exports, "parseJSON", { enumerable: true, get: function () { return JSON_1.parseJSON; } });
77
79
  var ReadTask_2 = require("./ReadTask");
@@ -234,9 +236,19 @@ class ExifTool {
234
236
  * name `${FILENAME}_original`) will be retained. Note that some tags, like
235
237
  * stat information and image dimensions, are intrinsic to the file and will
236
238
  * continue to exist if you re-`read` the file.
239
+ *
240
+ * @param {string} file the file to strip of metadata
241
+ *
242
+ * @param {(keyof Tags | string)[]} opts.retain optional. If provided, this is
243
+ * a list of metadata keys to **not** delete.
237
244
  */
238
- deleteAllTags(file) {
239
- return this.write(file, {}, DeleteAllTagsArgs_1.DeleteAllTagsArgs);
245
+ deleteAllTags(file, opts) {
246
+ var _a;
247
+ const args = [...DeleteAllTagsArgs_1.DeleteAllTagsArgs];
248
+ for (const ea of (_a = opts === null || opts === void 0 ? void 0 : opts.retain) !== null && _a !== void 0 ? _a : []) {
249
+ args.push(`-${ea}<${ea}`);
250
+ }
251
+ return this.write(file, {}, args);
240
252
  }
241
253
  /**
242
254
  * Extract the low-resolution thumbnail in `path/to/image.jpg`
@@ -1 +1 @@
1
- {"version":3,"file":"ExifTool.js","sourceRoot":"","sources":["../src/ExifTool.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ExifTool.js","sourceRoot":"","sources":["../src/ExifTool.ts"],"names":[],"mappings":"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"}
@@ -167,7 +167,9 @@ export interface ExifToolOptions extends bc.BatchClusterOptions, bc.BatchProcess
167
167
  */
168
168
  ignoreZeroZeroLatLon: boolean;
169
169
  /**
170
- * Override the default geo-to-timezone lookup service. Note that if {@link geolocation} is enabled, we'll try to use {@
170
+ * Override the default geo-to-timezone lookup service. Note that if
171
+ {@link geolocation} is enabled, we'll use
172
+ {@link Tags.GeolocationTimeZone} if it's not blank.
171
173
  *
172
174
  * This defaults to `@photostructure/tz-lookup`, but if you have the
173
175
  * resources, consider using `geo-tz` for more accurate results.
@@ -1 +1 @@
1
- {"version":3,"file":"ExifToolOptions.js","sourceRoot":"","sources":["../src/ExifToolOptions.ts"],"names":[],"mappings":";;;AAgPA,SAAgB,uBAAuB,CAErC,OAAU;IACV,IAAI,OAAO,CAAC,aAAa,IAAI,IAAI,IAAI,OAAO,CAAC,mBAAmB,IAAI,IAAI,EAAE,CAAC;QACzE,OAAO,CAAC,aAAa,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAA;IACrE,CAAC;IACD,OAAO,OAAO,CAAA;AAChB,CAAC;AAPD,0DAOC"}
1
+ {"version":3,"file":"ExifToolOptions.js","sourceRoot":"","sources":["../src/ExifToolOptions.ts"],"names":[],"mappings":";;;AAkPA,SAAgB,uBAAuB,CAErC,OAAU;IACV,IAAI,OAAO,CAAC,aAAa,IAAI,IAAI,IAAI,OAAO,CAAC,mBAAmB,IAAI,IAAI,EAAE,CAAC;QACzE,OAAO,CAAC,aAAa,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAA;IACrE,CAAC;IACD,OAAO,OAAO,CAAA;AAChB,CAAC;AAPD,0DAOC"}
@@ -0,0 +1,7 @@
1
+ import { ExifToolTags } from "./Tags";
2
+ export declare const ExifToolTagNames: (keyof ExifToolTags)[];
3
+ /**
4
+ * Is the given tag name intrinsic to the content of a given file? In other
5
+ * words, is it not an artifact of a metadata field?
6
+ */
7
+ export declare function isExifToolTag(name: string): name is keyof ExifToolTags;
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+ /* eslint-disable @typescript-eslint/no-explicit-any */
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.isExifToolTag = exports.ExifToolTagNames = void 0;
5
+ const Object_1 = require("./Object");
6
+ exports.ExifToolTagNames = (0, Object_1.keysOf)({
7
+ ExifToolVersion: true,
8
+ SourceFile: true,
9
+ Error: true,
10
+ Warning: true,
11
+ });
12
+ /**
13
+ * Is the given tag name intrinsic to the content of a given file? In other
14
+ * words, is it not an artifact of a metadata field?
15
+ */
16
+ function isExifToolTag(name) {
17
+ return exports.ExifToolTagNames.includes(name);
18
+ }
19
+ exports.isExifToolTag = isExifToolTag;
20
+ //# sourceMappingURL=ExifToolTags.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ExifToolTags.js","sourceRoot":"","sources":["../src/ExifToolTags.ts"],"names":[],"mappings":";AAAA,uDAAuD;;;AAEvD,qCAAiC;AAGpB,QAAA,gBAAgB,GAAG,IAAA,eAAM,EAAe;IACnD,eAAe,EAAE,IAAI;IACrB,UAAU,EAAE,IAAI;IAChB,KAAK,EAAE,IAAI;IACX,OAAO,EAAE,IAAI;CACd,CAAC,CAAA;AAEF;;;GAGG;AACH,SAAgB,aAAa,CAAC,IAAY;IACxC,OAAO,wBAAgB,CAAC,QAAQ,CAAC,IAAW,CAAC,CAAA;AAC/C,CAAC;AAFD,sCAEC"}
@@ -0,0 +1,23 @@
1
+ import { ErrorsAndWarnings } from "./ErrorsAndWarnings";
2
+ /**
3
+ * This tags are added to {@link Tags} from this library.
4
+ */
5
+ export interface ExifToolVendoredTags extends ErrorsAndWarnings {
6
+ /**
7
+ * Either an offset, like `UTC-7`, or an actual IANA timezone, like
8
+ * `America/Los_Angeles`.
9
+ *
10
+ * This will be missing if we can't intuit a timezone from the metadata.
11
+ */
12
+ tz?: string;
13
+ /**
14
+ * Description of where and how `tz` was extracted
15
+ */
16
+ tzSource?: string;
17
+ }
18
+ export declare const ExifToolVendoredTagNames: (keyof ExifToolVendoredTags)[];
19
+ /**
20
+ * Is the given tag name intrinsic to the content of a given file? In other
21
+ * words, is it not an artifact of a metadata field?
22
+ */
23
+ export declare function isExifToolVendoredTag(name: string): name is keyof ExifToolVendoredTags;
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.isExifToolVendoredTag = exports.ExifToolVendoredTagNames = void 0;
4
+ const Object_1 = require("./Object");
5
+ exports.ExifToolVendoredTagNames = (0, Object_1.keysOf)({
6
+ tz: true,
7
+ tzSource: true,
8
+ errors: true,
9
+ warnings: true,
10
+ });
11
+ /**
12
+ * Is the given tag name intrinsic to the content of a given file? In other
13
+ * words, is it not an artifact of a metadata field?
14
+ */
15
+ function isExifToolVendoredTag(name) {
16
+ return exports.ExifToolVendoredTagNames.includes(name);
17
+ }
18
+ exports.isExifToolVendoredTag = isExifToolVendoredTag;
19
+ //# sourceMappingURL=ExifToolVendoredTags.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ExifToolVendoredTags.js","sourceRoot":"","sources":["../src/ExifToolVendoredTags.ts"],"names":[],"mappings":";;;AACA,qCAAiC;AAoBpB,QAAA,wBAAwB,GAAG,IAAA,eAAM,EAAuB;IACnE,EAAE,EAAE,IAAI;IACR,QAAQ,EAAE,IAAI;IACd,MAAM,EAAE,IAAI;IACZ,QAAQ,EAAE,IAAI;CACf,CAAC,CAAA;AAEF;;;GAGG;AACH,SAAgB,qBAAqB,CACnC,IAAY;IAEZ,OAAO,gCAAwB,CAAC,QAAQ,CAAC,IAAW,CAAC,CAAA;AACvD,CAAC;AAJD,sDAIC"}
@@ -0,0 +1,6 @@
1
+ import { FileTags } from "./Tags";
2
+ /**
3
+ * Is the given tag name intrinsic to the content of a given file? In other
4
+ * words, is it not an artifact of a metadata field?
5
+ */
6
+ export declare function isFileTag(name: string): name is keyof FileTags;
@@ -0,0 +1,41 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.isFileTag = void 0;
4
+ const Object_1 = require("./Object");
5
+ const FileTagNames = (0, Object_1.keysOf)({
6
+ BMPVersion: true,
7
+ BitsPerSample: true,
8
+ ColorComponents: true,
9
+ CurrentIPTCDigest: true,
10
+ Directory: true,
11
+ EncodingProcess: true,
12
+ ExifByteOrder: true,
13
+ FileAccessDate: true,
14
+ FileCreateDate: true,
15
+ FileInodeChangeDate: true,
16
+ FileModifyDate: true,
17
+ FileName: true,
18
+ FilePermissions: true,
19
+ FileSize: true,
20
+ FileType: true,
21
+ FileTypeExtension: true,
22
+ ImageDataMD5: true,
23
+ ImageHeight: true,
24
+ ImageWidth: true,
25
+ MIMEType: true,
26
+ NumColors: true,
27
+ NumImportantColors: true,
28
+ PixelsPerMeterX: true,
29
+ PixelsPerMeterY: true,
30
+ Planes: true,
31
+ YCbCrSubSampling: true,
32
+ });
33
+ /**
34
+ * Is the given tag name intrinsic to the content of a given file? In other
35
+ * words, is it not an artifact of a metadata field?
36
+ */
37
+ function isFileTag(name) {
38
+ return FileTagNames.includes(name);
39
+ }
40
+ exports.isFileTag = isFileTag;
41
+ //# sourceMappingURL=FileTags.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FileTags.js","sourceRoot":"","sources":["../src/FileTags.ts"],"names":[],"mappings":";;;AAAA,qCAAiC;AAGjC,MAAM,YAAY,GAAG,IAAA,eAAM,EAAW;IACpC,UAAU,EAAE,IAAI;IAChB,aAAa,EAAE,IAAI;IACnB,eAAe,EAAE,IAAI;IACrB,iBAAiB,EAAE,IAAI;IACvB,SAAS,EAAE,IAAI;IACf,eAAe,EAAE,IAAI;IACrB,aAAa,EAAE,IAAI;IACnB,cAAc,EAAE,IAAI;IACpB,cAAc,EAAE,IAAI;IACpB,mBAAmB,EAAE,IAAI;IACzB,cAAc,EAAE,IAAI;IACpB,QAAQ,EAAE,IAAI;IACd,eAAe,EAAE,IAAI;IACrB,QAAQ,EAAE,IAAI;IACd,QAAQ,EAAE,IAAI;IACd,iBAAiB,EAAE,IAAI;IACvB,YAAY,EAAE,IAAI;IAClB,WAAW,EAAE,IAAI;IACjB,UAAU,EAAE,IAAI;IAChB,QAAQ,EAAE,IAAI;IACd,SAAS,EAAE,IAAI;IACf,kBAAkB,EAAE,IAAI;IACxB,eAAe,EAAE,IAAI;IACrB,eAAe,EAAE,IAAI;IACrB,MAAM,EAAE,IAAI;IACZ,gBAAgB,EAAE,IAAI;CACvB,CAAC,CAAA;AAEF;;;GAGG;AACH,SAAgB,SAAS,CAAC,IAAY;IACpC,OAAO,YAAY,CAAC,QAAQ,CAAC,IAAW,CAAC,CAAA;AAC3C,CAAC;AAFD,8BAEC"}
@@ -1,3 +1,9 @@
1
+ export declare const GeolocationTagNames: (keyof GeolocationTags)[];
2
+ /**
3
+ * Is the given tag name intrinsic to the content of a given file? In other
4
+ * words, is it not an artifact of a metadata field?
5
+ */
6
+ export declare function isGeolocationTag(name: string): name is keyof GeolocationTags;
1
7
  /**
2
8
  * These tags are only available if {@link ExifToolOptions.geolocation} is true and the file
3
9
  * has valid GPS location data.
@@ -1,3 +1,26 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.isGeolocationTag = exports.GeolocationTagNames = void 0;
4
+ const Object_1 = require("./Object");
5
+ exports.GeolocationTagNames = (0, Object_1.keysOf)({
6
+ GeolocationBearing: true,
7
+ GeolocationCity: true,
8
+ GeolocationCountry: true,
9
+ GeolocationCountryCode: true,
10
+ GeolocationDistance: true,
11
+ GeolocationFeatureCode: true,
12
+ GeolocationPopulation: true,
13
+ GeolocationPosition: true,
14
+ GeolocationRegion: true,
15
+ GeolocationSubregion: true,
16
+ GeolocationTimeZone: true,
17
+ });
18
+ /**
19
+ * Is the given tag name intrinsic to the content of a given file? In other
20
+ * words, is it not an artifact of a metadata field?
21
+ */
22
+ function isGeolocationTag(name) {
23
+ return exports.GeolocationTagNames.includes(name);
24
+ }
25
+ exports.isGeolocationTag = isGeolocationTag;
3
26
  //# sourceMappingURL=GeolocationTags.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"GeolocationTags.js","sourceRoot":"","sources":["../src/GeolocationTags.ts"],"names":[],"mappings":""}
1
+ {"version":3,"file":"GeolocationTags.js","sourceRoot":"","sources":["../src/GeolocationTags.ts"],"names":[],"mappings":";;;AAAA,qCAAiC;AAEpB,QAAA,mBAAmB,GAAG,IAAA,eAAM,EAAkB;IACzD,kBAAkB,EAAE,IAAI;IACxB,eAAe,EAAE,IAAI;IACrB,kBAAkB,EAAE,IAAI;IACxB,sBAAsB,EAAE,IAAI;IAC5B,mBAAmB,EAAE,IAAI;IACzB,sBAAsB,EAAE,IAAI;IAC5B,qBAAqB,EAAE,IAAI;IAC3B,mBAAmB,EAAE,IAAI;IACzB,iBAAiB,EAAE,IAAI;IACvB,oBAAoB,EAAE,IAAI;IAC1B,mBAAmB,EAAE,IAAI;CAC1B,CAAC,CAAA;AAEF;;;GAGG;AACH,SAAgB,gBAAgB,CAAC,IAAY;IAC3C,OAAO,2BAAmB,CAAC,QAAQ,CAAC,IAAW,CAAC,CAAA;AAClD,CAAC;AAFD,4CAEC"}
package/dist/Object.d.ts CHANGED
@@ -6,3 +6,13 @@ export type Unpick<T, U> = {
6
6
  [P in keyof T]: P extends U ? never : T[P];
7
7
  };
8
8
  export declare function omit<T extends Record<string, any>, S extends string>(t: T, ...keysToOmit: S[]): Unpick<T, S>;
9
+ /**
10
+ * Provides a type-safe exhaustive array of keys for a given interface.
11
+ *
12
+ * Unfortunately, `satisfies (keyof T)[]` doesn't ensure all keys are present,
13
+ * and doesn't guard against duplicates. This function does.
14
+ *
15
+ * @param t - The interface to extract keys from. This is a Record of keys to
16
+ * `true`, which ensures the returned key array is unique.
17
+ */
18
+ export declare function keysOf<T>(t: Required<Record<keyof T, true>>): (keyof T)[];
package/dist/Object.js CHANGED
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.omit = exports.fromEntries = exports.isFunction = exports.keys = void 0;
3
+ exports.keysOf = exports.omit = exports.fromEntries = exports.isFunction = exports.keys = void 0;
4
4
  // eslint-disable-next-line @typescript-eslint/ban-types
5
5
  function keys(o) {
6
6
  return o == null
@@ -40,4 +40,17 @@ function omit(t, ...keysToOmit) {
40
40
  return result;
41
41
  }
42
42
  exports.omit = omit;
43
+ /**
44
+ * Provides a type-safe exhaustive array of keys for a given interface.
45
+ *
46
+ * Unfortunately, `satisfies (keyof T)[]` doesn't ensure all keys are present,
47
+ * and doesn't guard against duplicates. This function does.
48
+ *
49
+ * @param t - The interface to extract keys from. This is a Record of keys to
50
+ * `true`, which ensures the returned key array is unique.
51
+ */
52
+ function keysOf(t) {
53
+ return Object.keys(t);
54
+ }
55
+ exports.keysOf = keysOf;
43
56
  //# sourceMappingURL=Object.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Object.js","sourceRoot":"","sources":["../src/Object.ts"],"names":[],"mappings":";;;AAEA,wDAAwD;AACxD,SAAgB,IAAI,CAA+C,CAAI;IACrE,OAAO,CAAC,IAAI,IAAI;QACd,CAAC,CAAC,EAAE;QACJ,CAAC,CAAE,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAC5B,CAAC,EAAE,CAAC,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,CAAC,CAC9B,CAAA;AACf,CAAC;AAND,oBAMC;AAED,SAAgB,UAAU,CAAC,GAAQ;IACjC,OAAO,OAAO,GAAG,KAAK,UAAU,CAAA;AAClC,CAAC;AAFD,gCAEC;AAED,SAAgB,WAAW,CACzB,GAAkC,EAClC,GAAS;IAET,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,GAAG,CAAA;IAC/C,4DAA4D;IAC5D,KAAK,MAAM,EAAE,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,IAAI,CAAC,EAAE,CAAC;QAChD,IAAI,EAAE,IAAI,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC;YACpC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,CAAA;YACjB,qBAAqB;YACrB,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,KAAK,SAAS,EAAE,CAAC;gBACjC,IAAI,OAAO,GAAG,KAAK,QAAQ;oBAAE,GAAG,GAAG,EAAE,CAAA;gBACrC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAA;YACZ,CAAC;QACH,CAAC;IACH,CAAC;IACD,OAAO,GAAG,CAAA;AACZ,CAAC;AAjBD,kCAiBC;AAID,SAAgB,IAAI,CAClB,CAAI,EACJ,GAAG,UAAe;IAElB,IAAI,CAAC,IAAI,IAAI;QAAE,OAAO,EAAS,CAAA;IAC/B,MAAM,MAAM,GAAG,EAAE,GAAG,CAAC,EAAE,CAAA;IACvB,KAAK,MAAM,EAAE,IAAI,UAAU,EAAE,CAAC;QAC5B,OAAO,MAAM,CAAC,EAAE,CAAC,CAAA;IACnB,CAAC;IACD,OAAO,MAAM,CAAA;AACf,CAAC;AAVD,oBAUC"}
1
+ {"version":3,"file":"Object.js","sourceRoot":"","sources":["../src/Object.ts"],"names":[],"mappings":";;;AAEA,wDAAwD;AACxD,SAAgB,IAAI,CAA+C,CAAI;IACrE,OAAO,CAAC,IAAI,IAAI;QACd,CAAC,CAAC,EAAE;QACJ,CAAC,CAAE,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAC5B,CAAC,EAAE,CAAC,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,CAAC,CAC9B,CAAA;AACf,CAAC;AAND,oBAMC;AAED,SAAgB,UAAU,CAAC,GAAQ;IACjC,OAAO,OAAO,GAAG,KAAK,UAAU,CAAA;AAClC,CAAC;AAFD,gCAEC;AAED,SAAgB,WAAW,CACzB,GAAkC,EAClC,GAAS;IAET,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,GAAG,CAAA;IAC/C,4DAA4D;IAC5D,KAAK,MAAM,EAAE,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,IAAI,CAAC,EAAE,CAAC;QAChD,IAAI,EAAE,IAAI,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC;YACpC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,CAAA;YACjB,qBAAqB;YACrB,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,KAAK,SAAS,EAAE,CAAC;gBACjC,IAAI,OAAO,GAAG,KAAK,QAAQ;oBAAE,GAAG,GAAG,EAAE,CAAA;gBACrC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAA;YACZ,CAAC;QACH,CAAC;IACH,CAAC;IACD,OAAO,GAAG,CAAA;AACZ,CAAC;AAjBD,kCAiBC;AAID,SAAgB,IAAI,CAClB,CAAI,EACJ,GAAG,UAAe;IAElB,IAAI,CAAC,IAAI,IAAI;QAAE,OAAO,EAAS,CAAA;IAC/B,MAAM,MAAM,GAAG,EAAE,GAAG,CAAC,EAAE,CAAA;IACvB,KAAK,MAAM,EAAE,IAAI,UAAU,EAAE,CAAC;QAC5B,OAAO,MAAM,CAAC,EAAE,CAAC,CAAA;IACnB,CAAC;IACD,OAAO,MAAM,CAAA;AACf,CAAC;AAVD,oBAUC;AAED;;;;;;;;GAQG;AACH,SAAgB,MAAM,CAAI,CAAkC;IAC1D,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC,CAAQ,CAAA;AAC9B,CAAC;AAFD,wBAEC"}
package/dist/Tags.d.ts CHANGED
@@ -1,24 +1,32 @@
1
1
  import { ApplicationRecordTags } from "./ApplicationRecordTags";
2
2
  import { BinaryField } from "./BinaryField";
3
- import { ErrorsAndWarnings } from "./ErrorsAndWarnings";
4
3
  import { ExifDate } from "./ExifDate";
5
4
  import { ExifDateTime } from "./ExifDateTime";
6
5
  import { ExifTime } from "./ExifTime";
7
- import { GeolocationTags } from "./GeolocationTags";
6
+ import { ExifToolVendoredTags } from "./ExifToolVendoredTags";
8
7
  import { ICCProfileTags } from "./ICCProfileTags";
9
8
  import { ImageDataHashTag } from "./ImageDataHashTag";
10
9
  import { MWGCollectionsTags, MWGKeywordTags } from "./MWGTags";
11
10
  import { ResourceEvent } from "./ResourceEvent";
12
11
  import { Struct } from "./Struct";
13
12
  import { Version } from "./Version";
13
+ /**
14
+ * These tags are added by `exiftool`.
15
+ */
14
16
  export interface ExifToolTags {
15
17
  /** ☆☆☆☆ ✔ Example: "File is empty" */
16
18
  Error?: string;
17
19
  /** ★★★★ ✔ Example: 12.8 */
18
20
  ExifToolVersion?: number;
21
+ /** ☆☆☆☆ Example: "path/to/file.jpg" */
22
+ SourceFile?: string;
19
23
  /** ☆☆☆☆ ✔ Example: "Unrecognized IPTC record 0 (ignored)" */
20
24
  Warning?: string;
21
25
  }
26
+ /**
27
+ * These tags are not metadata fields, but are intrinsic to the content of a
28
+ * given file. ExifTool can't write to many of these tags.
29
+ */
22
30
  export interface FileTags {
23
31
  /** ☆☆☆☆ ✔ Example: "Windows V3" */
24
32
  BMPVersion?: string;
@@ -34,8 +42,10 @@ export interface FileTags {
34
42
  EncodingProcess?: string;
35
43
  /** ★★★★ ✔ Example: "Little-endian (Intel, II)" */
36
44
  ExifByteOrder?: string;
37
- /** ★★★★ ✔ Example: "2024:03:26 15:28:17-07:00" */
45
+ /** ★★★★ ✔ Example: "2024:03:28 11:39:10-07:00" */
38
46
  FileAccessDate?: ExifDateTime | string;
47
+ /** ☆☆☆☆ Example: */
48
+ FileCreateDate?: ExifDateTime | string;
39
49
  /** ★★★★ ✔ Example: "2024:03:20 21:17:00-07:00" */
40
50
  FileInodeChangeDate?: ExifDateTime | string;
41
51
  /** ★★★★ ✔ Example: "2023:07:19 21:21:02-07:00" */
@@ -71,6 +81,11 @@ export interface FileTags {
71
81
  /** ★★★★ ✔ Example: "YCbCr4:4:4 (1 1)" */
72
82
  YCbCrSubSampling?: string;
73
83
  }
84
+ /**
85
+ * These are tags are derived from the values of one or more other tags.
86
+ * Only a few are writable directly.
87
+ * @see https://exiftool.org/TagNames/Composite.html
88
+ */
74
89
  export interface CompositeTags {
75
90
  /** ☆☆☆☆ ✔ Example: "Unknown (49 5)" */
76
91
  AdvancedSceneMode?: string;
@@ -122,7 +137,7 @@ export interface CompositeTags {
122
137
  OriginalDecisionData?: BinaryField | string;
123
138
  /** ☆☆☆☆ Example: "9.9 um" */
124
139
  PeakSpectralSensitivity?: string;
125
- /** ★★★☆ ✔ Example: "(Binary data 315546 bytes, use -b option to extract)" */
140
+ /** ★★★☆ ✔ Example: "(Binary data 37244 bytes, use -b option to extract)" */
126
141
  PreviewImage?: BinaryField;
127
142
  /** ☆☆☆☆ ✔ Example: "On" */
128
143
  RedEyeReduction?: string;
@@ -170,7 +185,7 @@ export interface APP1Tags {
170
185
  CreatorSoftware?: string;
171
186
  /** ☆☆☆☆ Example: "2013:03:12 16:31:26" */
172
187
  DateTimeGenerated?: ExifDateTime | string;
173
- /** ☆☆☆☆ Example: "(Binary data 275008 bytes, use -b option to extract)" */
188
+ /** ☆☆☆☆ Example: "(Binary data 1011393 bytes, use -b option to extract)" */
174
189
  EmbeddedImage?: BinaryField | string;
175
190
  /** ☆☆☆☆ Example: 960 */
176
191
  EmbeddedImageHeight?: number;
@@ -240,7 +255,7 @@ export interface APP1Tags {
240
255
  PaletteStretch?: number;
241
256
  /** ☆☆☆☆ Example: ".basicImgData.objectParams.emissivity" */
242
257
  Param0?: string;
243
- /** ☆☆☆☆ Example: "(Binary data 153804 bytes, use -b option to extract)" */
258
+ /** ☆☆☆☆ Example: "(Binary data 614604 bytes, use -b option to extract)" */
244
259
  RawThermalImage?: BinaryField | string;
245
260
  /** ☆☆☆☆ Example: 90 */
246
261
  RawThermalImageHeight?: number;
@@ -429,30 +444,9 @@ export interface APP5Tags {
429
444
  /** ☆☆☆☆ Example: 45 */
430
445
  Compass?: string;
431
446
  }
432
- export interface APP6Tags {
433
- /** ☆☆☆☆ Example: 800 */
434
- AutoISOMax?: number;
435
- /** ☆☆☆☆ ✔ Example: 3200 */
436
- AutoISOMin?: number;
437
- /** ☆☆☆☆ ✔ Example: "Up" */
438
- AutoRotation?: string;
439
- /** ☆☆☆☆ ✔ Example: "Photo Global Settings" */
440
- DeviceName?: string;
441
- /** ☆☆☆☆ ✔ Example: "On (Manual)" */
442
- HDRSetting?: string;
443
- /** ☆☆☆☆ ✔ Example: "AUTO" */
444
- MaximumShutterAngle?: string;
445
- /** ☆☆☆☆ ✔ Example: "859830e2f50cb3397a6216f09553fce800000000000000000000000000000000" */
446
- MediaUniqueID?: string;
447
- /** ☆☆☆☆ ✔ Example: "7.6.4" */
448
- MetadataVersion?: string;
449
- /** ☆☆☆☆ ✔ Example: "12MP_W" */
450
- PhotoResolution?: string;
451
- /** ☆☆☆☆ ✔ Example: "On" */
452
- ProTune?: string;
453
- /** ☆☆☆☆ ✔ Example: "4_1SEC" */
454
- Rate?: string;
455
- }
447
+ /**
448
+ * @see https://exiftool.org/TagNames/EXIF.html
449
+ */
456
450
  export interface EXIFTags {
457
451
  /** ☆☆☆☆ ✔ Example: 988517 */
458
452
  Acceleration?: number;
@@ -636,7 +630,7 @@ export interface EXIFTags {
636
630
  InteropIndex?: string;
637
631
  /** ★★★★ ✔ Example: "undef undef undef" */
638
632
  InteropVersion?: string;
639
- /** ☆☆☆☆ ✔ Example: "(Binary data 772608 bytes, use -b option to extract)" */
633
+ /** ☆☆☆☆ ✔ Example: "(Binary data 571392 bytes, use -b option to extract)" */
640
634
  JpgFromRaw?: BinaryField;
641
635
  /** ☆☆☆☆ ✔ Example: 845574 */
642
636
  JpgFromRawLength?: number;
@@ -792,7 +786,7 @@ export interface EXIFTags {
792
786
  SubjectDistanceRange?: string;
793
787
  /** ☆☆☆☆ ✔ Example: 1 */
794
788
  SubjectLocation?: number;
795
- /** ★★★★ ✔ Example: "(Binary data 10202 bytes, use -b option to extract)" */
789
+ /** ★★★★ ✔ Example: "(Binary data 39781 bytes, use -b option to extract)" */
796
790
  ThumbnailImage?: BinaryField;
797
791
  /** ★★★★ ✔ Example: 9998 */
798
792
  ThumbnailLength?: number;
@@ -804,7 +798,7 @@ export interface EXIFTags {
804
798
  TileByteCounts?: BinaryField | string;
805
799
  /** ☆☆☆☆ ✔ Example: 512 */
806
800
  TileLength?: number;
807
- /** ☆☆☆☆ ✔ Example: "(Binary data 508 bytes, use -b option to extract)" */
801
+ /** ☆☆☆☆ ✔ Example: "(Binary data 507 bytes, use -b option to extract)" */
808
802
  TileOffsets?: BinaryField | string;
809
803
  /** ☆☆☆☆ ✔ Example: 512 */
810
804
  TileWidth?: number;
@@ -845,8 +839,35 @@ export interface EXIFTags {
845
839
  /** ★★★★ ✔ Example: 99 */
846
840
  YResolution?: number;
847
841
  }
842
+ export interface APP6Tags {
843
+ /** ☆☆☆☆ ✔ Example: 800 */
844
+ AutoISOMax?: number;
845
+ /** ☆☆☆☆ ✔ Example: 3200 */
846
+ AutoISOMin?: number;
847
+ /** ☆☆☆☆ ✔ Example: "Up" */
848
+ AutoRotation?: string;
849
+ /** ☆☆☆☆ ✔ Example: "Photo Global Settings" */
850
+ DeviceName?: string;
851
+ /** ☆☆☆☆ ✔ Example: "On (Manual)" */
852
+ HDRSetting?: string;
853
+ /** ☆☆☆☆ ✔ Example: "AUTO" */
854
+ MaximumShutterAngle?: string;
855
+ /** ☆☆☆☆ ✔ Example: "859830e2f50cb3397a6216f09553fce800000000000000000000000000000000" */
856
+ MediaUniqueID?: string;
857
+ /** ☆☆☆☆ ✔ Example: "7.6.4" */
858
+ MetadataVersion?: string;
859
+ /** ☆☆☆☆ ✔ Example: "12MP_W" */
860
+ PhotoResolution?: string;
861
+ /** ☆☆☆☆ ✔ Example: "On" */
862
+ ProTune?: string;
863
+ /** ☆☆☆☆ ✔ Example: "4_1SEC" */
864
+ Rate?: string;
865
+ }
866
+ /**
867
+ * @see https://exiftool.org/TagNames/FlashPix.html
868
+ */
848
869
  export interface FlashPixTags {
849
- /** ☆☆☆☆ Example: "(Binary data 20796 bytes, use -b option to extract)" */
870
+ /** ☆☆☆☆ Example: "(Binary data 18 bytes, use -b option to extract)" */
850
871
  AudioStream?: BinaryField | string;
851
872
  /** ☆☆☆☆ ✔ Example: "Unicode UTF-16, little endian" */
852
873
  CodePage?: string;
@@ -869,6 +890,34 @@ export interface FlashPixTags {
869
890
  /** ☆☆☆☆ ✔ Example: 1 */
870
891
  UsedExtensionNumbers?: number;
871
892
  }
893
+ /**
894
+ * These tags are only available if {@link ExifToolOptions.geolocation} is true
895
+ * and the file has valid GPS location data.
896
+ */
897
+ export interface GeolocationTags {
898
+ /** ☆☆☆☆ ✔ Example: 99 */
899
+ GeolocationBearing?: number;
900
+ /** ☆☆☆☆ ✔ Example: "Zürich" */
901
+ GeolocationCity?: string;
902
+ /** ☆☆☆☆ ✔ Example: "United States" */
903
+ GeolocationCountry?: string;
904
+ /** ☆☆☆☆ ✔ Example: "US" */
905
+ GeolocationCountryCode?: string;
906
+ /** ☆☆☆☆ ✔ Example: "9.60 km" */
907
+ GeolocationDistance?: string;
908
+ /** ☆☆☆☆ ✔ Example: "PPLL" */
909
+ GeolocationFeatureCode?: string;
910
+ /** ☆☆☆☆ ✔ Example: 95000 */
911
+ GeolocationPopulation?: number;
912
+ /** ☆☆☆☆ ✔ Example: "7.3397, 134.4733" */
913
+ GeolocationPosition?: string;
914
+ /** ☆☆☆☆ ✔ Example: "Île-de-France" */
915
+ GeolocationRegion?: string;
916
+ /** ☆☆☆☆ ✔ Example: "Yokohama Shi" */
917
+ GeolocationSubregion?: string;
918
+ /** ☆☆☆☆ ✔ Example: "Pacific/Saipan" */
919
+ GeolocationTimeZone?: string;
920
+ }
872
921
  export interface JSONTags {
873
922
  /** ☆☆☆☆ Example: 0 */
874
923
  AIScene?: number;
@@ -883,30 +932,9 @@ export interface JSONTags {
883
932
  /** ☆☆☆☆ Example: 1 */
884
933
  ZoomMultiple?: number;
885
934
  }
886
- export interface MPFTags {
887
- /** ★★☆☆ Example: 9697 */
888
- DependentImage1EntryNumber?: number;
889
- /** ★★☆☆ ✔ Example: 960 */
890
- DependentImage2EntryNumber?: number;
891
- /** ☆☆☆☆ ✔ Example: "(Binary data 66 bytes, use -b option to extract)" */
892
- ImageUIDList?: BinaryField | string;
893
- /** ★★☆☆ ✔ Example: "0100" */
894
- MPFVersion?: string;
895
- /** ★★☆☆ ✔ Example: "Representative image, Dependent parent image" */
896
- MPImageFlags?: string;
897
- /** ★★☆☆ ✔ Example: "Unknown (4)" */
898
- MPImageFormat?: string;
899
- /** ★★☆☆ ✔ Example: 999325 */
900
- MPImageLength?: number;
901
- /** ★★☆☆ ✔ Example: 9999872 */
902
- MPImageStart?: number;
903
- /** ★★☆☆ ✔ Example: "Undefined" */
904
- MPImageType?: string;
905
- /** ★★☆☆ ✔ Example: 3 */
906
- NumberOfImages?: number;
907
- /** ☆☆☆☆ ✔ Example: 1 */
908
- TotalFrames?: number;
909
- }
935
+ /**
936
+ * @see https://exiftool.org/TagNames/IPTC.html
937
+ */
910
938
  export interface IPTCTags {
911
939
  /** ☆☆☆☆ ✔ Example: 4 */
912
940
  ApplicationRecordVersion?: number;
@@ -973,6 +1001,30 @@ export interface IPTCTags {
973
1001
  /** ☆☆☆☆ ✔ Example: "1 (most urgent)" */
974
1002
  Urgency?: string;
975
1003
  }
1004
+ export interface MPFTags {
1005
+ /** ★★☆☆ ✔ Example: 9697 */
1006
+ DependentImage1EntryNumber?: number;
1007
+ /** ★★☆☆ ✔ Example: 960 */
1008
+ DependentImage2EntryNumber?: number;
1009
+ /** ☆☆☆☆ ✔ Example: "(Binary data 66 bytes, use -b option to extract)" */
1010
+ ImageUIDList?: BinaryField | string;
1011
+ /** ★★☆☆ ✔ Example: "0100" */
1012
+ MPFVersion?: string;
1013
+ /** ★★☆☆ ✔ Example: "Representative image, Dependent parent image" */
1014
+ MPImageFlags?: string;
1015
+ /** ★★☆☆ ✔ Example: "Unknown (4)" */
1016
+ MPImageFormat?: string;
1017
+ /** ★★☆☆ ✔ Example: 999325 */
1018
+ MPImageLength?: number;
1019
+ /** ★★☆☆ ✔ Example: 9999872 */
1020
+ MPImageStart?: number;
1021
+ /** ★★☆☆ ✔ Example: "Undefined" */
1022
+ MPImageType?: string;
1023
+ /** ★★☆☆ ✔ Example: 3 */
1024
+ NumberOfImages?: number;
1025
+ /** ☆☆☆☆ ✔ Example: 1 */
1026
+ TotalFrames?: number;
1027
+ }
976
1028
  export interface MetaTags {
977
1029
  /** ☆☆☆☆ Example: 1 */
978
1030
  BorderID?: number;
@@ -1017,6 +1069,9 @@ export interface PanasonicRawTags {
1017
1069
  /** ☆☆☆☆ ✔ Example: 7 */
1018
1070
  NumWBEntries?: number;
1019
1071
  }
1072
+ /**
1073
+ * @see https://exiftool.org/TagNames/Photoshop.html
1074
+ */
1020
1075
  export interface PhotoshopTags {
1021
1076
  /** ☆☆☆☆ ✔ Example: true */
1022
1077
  CopyrightFlag?: boolean;
@@ -4260,7 +4315,7 @@ export interface MakerNotesTags {
4260
4315
  ToneCurve?: string;
4261
4316
  /** ☆☆☆☆ ✔ Example: "(Binary data 95 bytes, use -b option to extract)" */
4262
4317
  ToneCurveMatching?: BinaryField | string;
4263
- /** ☆☆☆☆ ✔ Example: "(Binary data 1505 bytes, use -b option to extract)" */
4318
+ /** ☆☆☆☆ ✔ Example: "(Binary data 1679 bytes, use -b option to extract)" */
4264
4319
  ToneCurveTable?: BinaryField | string;
4265
4320
  /** ☆☆☆☆ ✔ Example: "Highlights; 0; -7; 7; Shadows; 0; -7; 7; Midtones; 0; -7;…0; 0; 0" */
4266
4321
  ToneLevel?: string;
@@ -4424,7 +4479,7 @@ export interface MakerNotesTags {
4424
4479
  WhiteBalanceSetting?: string;
4425
4480
  /** ☆☆☆☆ ✔ Example: "Auto" */
4426
4481
  WhiteBalanceSetup?: string;
4427
- /** ☆☆☆☆ ✔ Example: "(Binary data 2201 bytes, use -b option to extract)" */
4482
+ /** ☆☆☆☆ ✔ Example: "(Binary data 2217 bytes, use -b option to extract)" */
4428
4483
  WhiteBalanceTable?: BinaryField | string;
4429
4484
  /** ☆☆☆☆ ✔ Example: "Auto" */
4430
4485
  WhiteBalanceTemperature?: string;
@@ -4471,6 +4526,9 @@ export interface MakerNotesTags {
4471
4526
  /** ☆☆☆☆ ✔ Example: 4184638 */
4472
4527
  ZoomedPreviewStart?: number;
4473
4528
  }
4529
+ /**
4530
+ * @see https://exiftool.org/TagNames/XMP.html
4531
+ */
4474
4532
  export interface XMPTags {
4475
4533
  /** ☆☆☆☆ ✔ Example: "uuid:faf5bdd5-ba3d-11da-ad31-d33d75182f1b" */
4476
4534
  About?: string;
@@ -5035,14 +5093,8 @@ export interface XMPTags {
5035
5093
  * devices (like iPhones) An example value, JSON stringified, follows the
5036
5094
  * popularity ratings.
5037
5095
  *
5038
- * Autogenerated by "yarn mktags" by ExifTool 12.80 on Tue Mar 26 2024.
5039
- * 2723 unique tags were found in 10096 photo and video files.
5096
+ * Autogenerated by "yarn mktags" by ExifTool 12.80 on Thu Mar 28 2024.
5097
+ * 2736 unique tags were found in 10096 photo and video files.
5040
5098
  */
5041
- export interface Tags extends APP12Tags, APP14Tags, APP1Tags, APP4Tags, APP5Tags, APP6Tags, ApplicationRecordTags, CompositeTags, EXIFTags, ErrorsAndWarnings, ExifToolTags, FileTags, FlashPixTags, GeolocationTags, ICCProfileTags, IPTCTags, ImageDataHashTag, JFIFTags, JSONTags, MPFTags, MWGCollectionsTags, MWGKeywordTags, MakerNotesTags, MetaTags, PanasonicRawTags, PhotoshopTags, PrintIMTags, QuickTimeTags, RAFTags, RIFFTags, XMPTags {
5042
- /** Full, resolved native path to this file */
5043
- SourceFile?: string;
5044
- /** Either an offset, like `UTC-7`, or an actual timezone, like `America/Los_Angeles` */
5045
- tz?: string;
5046
- /** Description of where and how `tz` was extracted */
5047
- tzSource?: string;
5099
+ export interface Tags extends APP12Tags, APP14Tags, APP1Tags, APP4Tags, APP5Tags, APP6Tags, ApplicationRecordTags, CompositeTags, EXIFTags, ExifToolTags, ExifToolVendoredTags, FileTags, FlashPixTags, GeolocationTags, ICCProfileTags, IPTCTags, ImageDataHashTag, JFIFTags, JSONTags, MPFTags, MWGCollectionsTags, MWGKeywordTags, MakerNotesTags, MetaTags, PanasonicRawTags, PhotoshopTags, PrintIMTags, QuickTimeTags, RAFTags, RIFFTags, XMPTags {
5048
5100
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "exiftool-vendored",
3
- "version": "25.0.0",
3
+ "version": "25.1.0",
4
4
  "description": "Efficient, cross-platform access to ExifTool",
5
5
  "main": "./dist/ExifTool.js",
6
6
  "types": "./dist/ExifTool.d.ts",
@@ -17,6 +17,7 @@
17
17
  "compile:watch": "yarn precompile && tsc --watch",
18
18
  "premktags": "yarn compile",
19
19
  "mktags": "node dist/update/mktags.js",
20
+ "prelint": "yarn compile",
20
21
  "lint": "yarn eslint src --ext .ts",
21
22
  "prettier": "prettier --write src/*.ts src/**/*.ts",
22
23
  "pretest": "run-p lint compile",
@@ -32,6 +33,9 @@
32
33
  "url": "https://github.com/photostructure/exiftool-vendored.js.git"
33
34
  },
34
35
  "release-it": {
36
+ "hooks": {
37
+ "before:init": "yarn lint"
38
+ },
35
39
  "src": {
36
40
  "tagName": "v%s",
37
41
  "commitArgs": "-S",