exiftool-vendored 29.2.0 → 30.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 +18 -0
- package/CLAUDE.md +131 -0
- package/LICENSE +1 -1
- package/RELEASE.md +4 -4
- package/dist/Array.d.ts +2 -2
- package/dist/Array.js.map +1 -1
- package/dist/BinaryField.d.ts +7 -0
- package/dist/BinaryField.js +7 -0
- package/dist/BinaryField.js.map +1 -1
- package/dist/DefaultExifToolOptions.js +1 -0
- package/dist/DefaultExifToolOptions.js.map +1 -1
- package/dist/ExifDateTime.d.ts +16 -1
- package/dist/ExifDateTime.js +17 -2
- package/dist/ExifDateTime.js.map +1 -1
- package/dist/ExifTool.d.ts +4 -4
- package/dist/ExifTool.js +4 -2
- package/dist/ExifTool.js.map +1 -1
- package/dist/ExifToolOptions.d.ts +17 -2
- package/dist/ExifToolOptions.js.map +1 -1
- package/dist/ExifToolVendoredTags.d.ts +15 -5
- package/dist/ExifToolVendoredTags.js +2 -11
- package/dist/ExifToolVendoredTags.js.map +1 -1
- package/dist/GeolocationTags.d.ts +4 -6
- package/dist/GeolocationTags.js +2 -20
- package/dist/GeolocationTags.js.map +1 -1
- package/dist/ICCProfileTags.d.ts +4 -0
- package/dist/ICCProfileTags.js +7 -0
- package/dist/ICCProfileTags.js.map +1 -1
- package/dist/IPTCApplicationRecordTags.d.ts +7 -0
- package/dist/IPTCApplicationRecordTags.js +10 -0
- package/dist/IPTCApplicationRecordTags.js.map +1 -1
- package/dist/ImageDataHashTag.d.ts +4 -0
- package/dist/ImageDataHashTag.js +7 -0
- package/dist/ImageDataHashTag.js.map +1 -1
- package/dist/JSON.d.ts +8 -0
- package/dist/JSON.js +8 -0
- package/dist/JSON.js.map +1 -1
- package/dist/MWGTags.d.ts +13 -0
- package/dist/MWGTags.js +18 -0
- package/dist/MWGTags.js.map +1 -1
- package/dist/Maybe.d.ts +4 -3
- package/dist/Maybe.js.map +1 -1
- package/dist/Object.d.ts +8 -2
- package/dist/Object.js +13 -13
- package/dist/Object.js.map +1 -1
- package/dist/ReadTask.d.ts +2 -1
- package/dist/ReadTask.js +15 -7
- package/dist/ReadTask.js.map +1 -1
- package/dist/StrEnum.d.ts +35 -0
- package/dist/StrEnum.js +75 -0
- package/dist/StrEnum.js.map +1 -0
- package/dist/Tags.d.ts +91 -45
- package/dist/Tags.js +32 -0
- package/dist/Tags.js.map +1 -1
- package/dist/Timezones.d.ts +11 -0
- package/dist/Timezones.js +51 -22
- package/dist/Timezones.js.map +1 -1
- package/dist/WriteTask.d.ts +10 -1
- package/dist/WriteTask.js.map +1 -1
- package/package.json +30 -17
package/CHANGELOG.md
CHANGED
|
@@ -25,6 +25,24 @@ vendored versions of ExifTool match the version that they vendor.
|
|
|
25
25
|
|
|
26
26
|
## Version history
|
|
27
27
|
|
|
28
|
+
### v30.0.0
|
|
29
|
+
|
|
30
|
+
- 💔 Dropped support for Node v18, whose End-of-Life was 2025-04-30.
|
|
31
|
+
|
|
32
|
+
- 🌱 Upgraded ExifTool to version [13.29](https://exiftool.org/history.html#13.29).
|
|
33
|
+
|
|
34
|
+
- ✨ Added new `TagNames` string enumeration with the most popular 2,500(ish) tag field names that is automatically updated by `mktags`. As a reminder: the `Tags` interface _is not comprehensive_. If we're missing any of your favorite fields, open an issue with an attached example media file and I look into promoting it to a "guaranteed" status (like we've done with several hundred fields already).
|
|
35
|
+
|
|
36
|
+
- 📦 Renamed the `.tz` field in `Tags` to `.zone`. Note that for the next few releases, `.tz` will be kept, but marked as deprecated. After doing a bit of research, it turns out the correct term for identifiers like `America/Los_Angeles` within the IANA Time Zone Database is "zone." The "tz" term commonly refers to the entire Time Zone Database, or "tz database" (also called tzdata or zoneinfo).
|
|
37
|
+
|
|
38
|
+
- ✨ Updating to new versions of ExifTool is now fully automated via GitHub Actions.
|
|
39
|
+
|
|
40
|
+
### v29.3.0
|
|
41
|
+
|
|
42
|
+
- 🌱 Upgraded ExifTool to version [13.26](https://exiftool.org/history.html#13.26).
|
|
43
|
+
|
|
44
|
+
- ✨ Added support for [keepUTCTime](https://exiftool.org/ExifTool.html#KeepUTCTime) to ExifToolOptions. This is a new ExifTool feature specifically for unixtime-encoded datetimes, but seems to be rarely applicable as unixtime is not a valid encoding format for most datetime tags.
|
|
45
|
+
|
|
28
46
|
### v29.2.0
|
|
29
47
|
|
|
30
48
|
- 🌱 Upgraded ExifTool to version [13.25](https://exiftool.org/history.html#13.25).
|
package/CLAUDE.md
ADDED
|
@@ -0,0 +1,131 @@
|
|
|
1
|
+
# CLAUDE.md
|
|
2
|
+
|
|
3
|
+
This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
|
|
4
|
+
|
|
5
|
+
## Overview
|
|
6
|
+
|
|
7
|
+
This is exiftool-vendored.js, a Node.js library that provides cross-platform access to ExifTool for reading and writing metadata in photos and videos. The library includes comprehensive TypeScript type definitions for metadata tags and is used by PhotoStructure and 500+ other projects.
|
|
8
|
+
|
|
9
|
+
## Key Commands
|
|
10
|
+
|
|
11
|
+
### Building & Development
|
|
12
|
+
|
|
13
|
+
```bash
|
|
14
|
+
# Install dependencies
|
|
15
|
+
npm install
|
|
16
|
+
|
|
17
|
+
# Compile TypeScript to JavaScript
|
|
18
|
+
npm run compile
|
|
19
|
+
|
|
20
|
+
# Watch mode for development
|
|
21
|
+
npm run compile:watch
|
|
22
|
+
|
|
23
|
+
# Clean build artifacts
|
|
24
|
+
npm run clean
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
### Linting & Formatting
|
|
28
|
+
|
|
29
|
+
```bash
|
|
30
|
+
# Run ESLint with TypeScript configuration
|
|
31
|
+
npm run lint
|
|
32
|
+
|
|
33
|
+
# Format all TypeScript and other files with Prettier
|
|
34
|
+
npm run fmt
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
### Testing
|
|
38
|
+
|
|
39
|
+
```bash
|
|
40
|
+
# Run all tests (requires compilation first)
|
|
41
|
+
npm test
|
|
42
|
+
|
|
43
|
+
# Note: Tests use Mocha and execute the compiled JavaScript files in dist/
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
### Documentation
|
|
47
|
+
|
|
48
|
+
```bash
|
|
49
|
+
# Generate TypeDoc documentation
|
|
50
|
+
npm run docs
|
|
51
|
+
|
|
52
|
+
# This runs the typedoc tool and serves the documentation locally
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
### Tag Generation
|
|
56
|
+
|
|
57
|
+
```bash
|
|
58
|
+
# Regenerate src/Tags.ts from sample images
|
|
59
|
+
npm run mktags ../path/to/images
|
|
60
|
+
|
|
61
|
+
# This requires a directory of sample images to analyze and extract metadata tags
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
## Architecture & Key Concepts
|
|
65
|
+
|
|
66
|
+
### Core Components
|
|
67
|
+
|
|
68
|
+
1. **ExifTool Class** (`src/ExifTool.ts`): Main entry point that wraps ExifTool process management using batch-cluster. Provides methods for reading metadata, writing tags, extracting binaries, and rewriting tags.
|
|
69
|
+
|
|
70
|
+
2. **Tags Interface** (`src/Tags.ts`): Auto-generated TypeScript interface containing ~2000 metadata fields commonly found in photo/video files. Generated by analyzing thousands of sample files to avoid TypeScript union type limits. Fields include popularity ratings and example values.
|
|
71
|
+
|
|
72
|
+
3. **Date/Time Handling**: Custom classes for handling EXIF dates with timezone complexities:
|
|
73
|
+
|
|
74
|
+
- `ExifDate`: Date without time
|
|
75
|
+
- `ExifTime`: Time without date
|
|
76
|
+
- `ExifDateTime`: Date and time with optional timezone
|
|
77
|
+
|
|
78
|
+
4. **Task System**: Various task classes for different operations:
|
|
79
|
+
|
|
80
|
+
- `ReadTask`: Read metadata from files
|
|
81
|
+
- `WriteTask`: Write metadata to files
|
|
82
|
+
- `BinaryExtractionTask`: Extract thumbnails/previews
|
|
83
|
+
- `RewriteAllTagsTask`: Repair corrupt metadata
|
|
84
|
+
|
|
85
|
+
5. **Platform Support**: Includes platform-specific ExifTool binaries via optional dependencies:
|
|
86
|
+
- `exiftool-vendored.exe` for Windows
|
|
87
|
+
- `exiftool-vendored.pl` for Unix-like systems
|
|
88
|
+
|
|
89
|
+
### Timezone Handling
|
|
90
|
+
|
|
91
|
+
The library implements sophisticated timezone heuristics to handle underspecified date metadata:
|
|
92
|
+
|
|
93
|
+
1. Uses explicit timezone metadata if available
|
|
94
|
+
2. Falls back to GPS location for timezone inference
|
|
95
|
+
3. Uses UTC timestamp deltas to infer timezone offsets
|
|
96
|
+
4. Handles edge cases like daylight saving time transitions
|
|
97
|
+
|
|
98
|
+
### Tag Generation Process
|
|
99
|
+
|
|
100
|
+
The `mktags.ts` script analyzes sample images to generate TypeScript interfaces:
|
|
101
|
+
|
|
102
|
+
1. Scans image directories for various formats (JPEG, RAW, video)
|
|
103
|
+
2. Extracts metadata using ExifTool
|
|
104
|
+
3. Counts tag frequencies and value types
|
|
105
|
+
4. Generates strongly-typed interfaces for the most common ~2000 tags
|
|
106
|
+
5. Includes popularity ratings (★★★★ = >50% of samples)
|
|
107
|
+
|
|
108
|
+
### Testing Approach
|
|
109
|
+
|
|
110
|
+
Tests use Mocha with Chai assertions:
|
|
111
|
+
|
|
112
|
+
- Unit tests for individual components (dates, parsers, etc.)
|
|
113
|
+
- Integration tests for ExifTool operations
|
|
114
|
+
- Test images in the `test/` directory cover various edge cases
|
|
115
|
+
- Includes non-English filename tests
|
|
116
|
+
|
|
117
|
+
## Important Notes
|
|
118
|
+
|
|
119
|
+
- Always run `npm run compile` before testing
|
|
120
|
+
- The singleton `exiftool` instance must be properly ended with `.end()` to clean up child processes
|
|
121
|
+
- Tag interfaces are not comprehensive - less common tags may exist in returned objects
|
|
122
|
+
- The library uses batch processing for performance, managing process pools automatically
|
|
123
|
+
- TypeScript's union type limits require careful tag selection to avoid compilation errors
|
|
124
|
+
|
|
125
|
+
## Important TypeScript Hygiene
|
|
126
|
+
|
|
127
|
+
- You MUST use `if (x != null)` to test for `null` or `undefined` values.
|
|
128
|
+
DO NOT use `if (x)`: this is problematic (especially when handling boolean values).
|
|
129
|
+
|
|
130
|
+
- You MUST use `??` for nullish coalescing.
|
|
131
|
+
DO NOT use `||`: this is problematic (especially when handling boolean values).
|
package/LICENSE
CHANGED
package/RELEASE.md
CHANGED
|
@@ -11,9 +11,9 @@
|
|
|
11
11
|
|
|
12
12
|
4. On POSIX, in `../exiftool-vendored.pl`:
|
|
13
13
|
|
|
14
|
-
1.
|
|
15
|
-
1. Verify
|
|
16
|
-
1.
|
|
14
|
+
1. Run the "check-updates" GitHub Action. If there is a pending update, a PR is generated.
|
|
15
|
+
1. Verify and merge the PR
|
|
16
|
+
1. Run the "release" GitHub Action.
|
|
17
17
|
|
|
18
18
|
5. On Windows, in `...\exiftool-vendored.exe\`:
|
|
19
19
|
(The terminal built into vscode plays with `ncu` and `release-it` a bit nicer than CMD or Windows for Git's terminal)
|
|
@@ -27,7 +27,7 @@
|
|
|
27
27
|
1. `cd ../exiftool-vendored.js`
|
|
28
28
|
1. `npm run u`
|
|
29
29
|
1. `npm run mktags ../test-images` # < assumes `../test-images` has the full ExifTool sample image suite
|
|
30
|
-
1. `npm run
|
|
30
|
+
1. `npm run fmt && npm run lint && npm run docs`
|
|
31
31
|
1. Verify docs were rebuilt successfully at <http://localhost:3000/index.html>
|
|
32
32
|
1. `npm run test`
|
|
33
33
|
1. Verify diffs are reasonable, `git commit` and `git push`
|
package/dist/Array.d.ts
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { Maybe,
|
|
1
|
+
import { Maybe, Nullable } from "./Maybe";
|
|
2
2
|
export declare function isIterable(obj: unknown): obj is Iterable<unknown>;
|
|
3
3
|
export declare function ifArray<T = unknown>(arr: T[] | unknown): Maybe<T[]>;
|
|
4
4
|
export declare function toArray<T>(arr: undefined | null | T[] | T | Iterable<T>): T[];
|
|
5
|
-
export declare function compact<T>(array:
|
|
5
|
+
export declare function compact<T>(array: Nullable<T>[]): T[];
|
|
6
6
|
/**
|
|
7
7
|
* Remove all elements from the given array that return false from the given
|
|
8
8
|
* predicate `filter`.
|
package/dist/Array.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Array.js","sourceRoot":"","sources":["../src/Array.ts"],"names":[],"mappings":";;AAIA,gCAEC;AAED,0BAEC;AAED,0BAUC;AAED,0BAEC;AAMD,sCAUC;AAED,oBAKC;AAGD,0CAOC;AAWD,wBAYC;AAwBD,0BAcC;AAvHD,qCAAoC;AACpC,qCAAoC;AAEpC,SAAgB,UAAU,CAAC,GAAY;IACrC,OAAO,CAAC,IAAA,iBAAQ,EAAC,GAAG,CAAC,IAAI,MAAM,CAAC,QAAQ,IAAI,GAAG,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;AACzE,CAAC;AAED,SAAgB,OAAO,CAAc,GAAkB;IACrD,OAAO,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC;AAC9C,CAAC;AAED,SAAgB,OAAO,CAAI,GAA6C;IACtE,OAAO,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,2BAA2B;QACnD,CAAC,CAAE,GAAW;QACd,CAAC,CAAC,GAAG,IAAI,IAAI;YACX,CAAC,CAAC,EAAE;YACJ,CAAC,CAAC,IAAA,iBAAQ,EAAC,GAAG,CAAC,CAAC,+CAA+C;gBAC7D,CAAC,CAAC,CAAC,GAAQ,CAAC;gBACZ,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC;oBACf,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC;oBACjB,CAAC,CAAC,CAAC,GAAQ,CAAC,CAAC;AACvB,CAAC;AAED,SAAgB,OAAO,CAAI,
|
|
1
|
+
{"version":3,"file":"Array.js","sourceRoot":"","sources":["../src/Array.ts"],"names":[],"mappings":"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"}
|
package/dist/BinaryField.d.ts
CHANGED
|
@@ -1,4 +1,11 @@
|
|
|
1
1
|
import { Maybe } from "./Maybe";
|
|
2
|
+
/**
|
|
3
|
+
* Represents a binary field in the Exif data.
|
|
4
|
+
*
|
|
5
|
+
* These fields can be used to store images (including thumbnails and full-sized
|
|
6
|
+
* images), audio, and other binary data. The size of the field is specified in
|
|
7
|
+
* bytes.
|
|
8
|
+
*/
|
|
2
9
|
export declare class BinaryField {
|
|
3
10
|
readonly bytes: number;
|
|
4
11
|
readonly rawValue: string;
|
package/dist/BinaryField.js
CHANGED
|
@@ -8,6 +8,13 @@ const BinaryFieldRE =
|
|
|
8
8
|
// chars): 10 chars is absurdly large, and is just to avoid the
|
|
9
9
|
// `js/polynomial-redos` eslint rule.
|
|
10
10
|
/Binary(?: data)? (\d{1,10}) bytes/i;
|
|
11
|
+
/**
|
|
12
|
+
* Represents a binary field in the Exif data.
|
|
13
|
+
*
|
|
14
|
+
* These fields can be used to store images (including thumbnails and full-sized
|
|
15
|
+
* images), audio, and other binary data. The size of the field is specified in
|
|
16
|
+
* bytes.
|
|
17
|
+
*/
|
|
11
18
|
class BinaryField {
|
|
12
19
|
bytes;
|
|
13
20
|
rawValue;
|
package/dist/BinaryField.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BinaryField.js","sourceRoot":"","sources":["../src/BinaryField.ts"],"names":[],"mappings":";;;AACA,qCAAiC;AAEjC,0DAA0D;AAC1D,MAAM,aAAa;AACjB,2EAA2E;AAC3E,+DAA+D;AAC/D,qCAAqC;AACrC,oCAAoC,CAAC;AAEvC,MAAa,WAAW;IAEX;IACA;IAFX,YACW,KAAa,EACb,QAAgB;QADhB,UAAK,GAAL,KAAK,CAAQ;QACb,aAAQ,GAAR,QAAQ,CAAQ;IACxB,CAAC;IAEJ,MAAM;QACJ,OAAO;YACL,KAAK,EAAE,aAAa;YACpB,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,QAAQ,EAAE,IAAI,CAAC,QAAQ;SACxB,CAAC;IACJ,CAAC;IAED,MAAM,CAAC,QAAQ,CAAC,IAAuC;QACrD,OAAO,IAAI,WAAW,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;IACpD,CAAC;IAED,MAAM,CAAC,YAAY,CAAC,QAAgB;QAClC,MAAM,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;QACxC,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC;YACd,MAAM,KAAK,GAAG,IAAA,cAAK,EAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAC1B,IAAI,KAAK,IAAI,IAAI,EAAE,CAAC;gBAClB,OAAO,IAAI,WAAW,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;YAC1C,CAAC;QACH,CAAC;QACD,OAAO;IACT,CAAC;CACF;AA5BD,kCA4BC"}
|
|
1
|
+
{"version":3,"file":"BinaryField.js","sourceRoot":"","sources":["../src/BinaryField.ts"],"names":[],"mappings":";;;AACA,qCAAiC;AAEjC,0DAA0D;AAC1D,MAAM,aAAa;AACjB,2EAA2E;AAC3E,+DAA+D;AAC/D,qCAAqC;AACrC,oCAAoC,CAAC;AAEvC;;;;;;GAMG;AACH,MAAa,WAAW;IAEX;IACA;IAFX,YACW,KAAa,EACb,QAAgB;QADhB,UAAK,GAAL,KAAK,CAAQ;QACb,aAAQ,GAAR,QAAQ,CAAQ;IACxB,CAAC;IAEJ,MAAM;QACJ,OAAO;YACL,KAAK,EAAE,aAAa;YACpB,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,QAAQ,EAAE,IAAI,CAAC,QAAQ;SACxB,CAAC;IACJ,CAAC;IAED,MAAM,CAAC,QAAQ,CAAC,IAAuC;QACrD,OAAO,IAAI,WAAW,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;IACpD,CAAC;IAED,MAAM,CAAC,YAAY,CAAC,QAAgB;QAClC,MAAM,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;QACxC,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC;YACd,MAAM,KAAK,GAAG,IAAA,cAAK,EAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAC1B,IAAI,KAAK,IAAI,IAAI,EAAE,CAAC;gBAClB,OAAO,IAAI,WAAW,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;YAC1C,CAAC;QACH,CAAC;QACD,OAAO;IACT,CAAC;CACF;AA5BD,kCA4BC"}
|
|
@@ -122,6 +122,7 @@ exports.DefaultExifToolOptions = Object.freeze({
|
|
|
122
122
|
writeArgs: [],
|
|
123
123
|
adjustTimeZoneIfDaylightSavings: defaultAdjustTimeZoneIfDaylightSavings,
|
|
124
124
|
preferTimezoneInferenceFromGps: false, // to retain prior behavior
|
|
125
|
+
keepUTCTime: true,
|
|
125
126
|
});
|
|
126
127
|
/**
|
|
127
128
|
* @see https://github.com/photostructure/exiftool-vendored.js/issues/215
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DefaultExifToolOptions.js","sourceRoot":"","sources":["../src/DefaultExifToolOptions.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"DefaultExifToolOptions.js","sourceRoot":"","sources":["../src/DefaultExifToolOptions.ts"],"names":[],"mappings":"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"}
|
package/dist/ExifDateTime.d.ts
CHANGED
|
@@ -1,7 +1,22 @@
|
|
|
1
1
|
import { DateTime, DateTimeJSOptions, DurationLike, ToISOTimeOptions, Zone, ZoneOptions } from "luxon";
|
|
2
2
|
import { Maybe } from "./Maybe";
|
|
3
3
|
/**
|
|
4
|
-
*
|
|
4
|
+
* Encapsulates encoding and decoding EXIF date and time strings,
|
|
5
|
+
* along with timezone handling functionality.
|
|
6
|
+
*
|
|
7
|
+
* Key features:
|
|
8
|
+
* - Parses datetime strings in various formats (EXIF strict/loose, ISO)
|
|
9
|
+
* - Supports timezone inference, conversion, and matching between dates
|
|
10
|
+
* - Preserves original string representations when available
|
|
11
|
+
* - Provides conversion to/from multiple datetime formats (Luxon DateTime, JS
|
|
12
|
+
* Date, ISO strings)
|
|
13
|
+
* - Supports serialization/deserialization via JSON (see
|
|
14
|
+
* {@link ExifDateTime.fromJSON})
|
|
15
|
+
*
|
|
16
|
+
* EXIF datetime strings don't typically include timezone information. This
|
|
17
|
+
* class provides mechanisms to associate timezone data from other EXIF tags
|
|
18
|
+
* (like GPS position or timezone offset), and distinguishes between explicitly
|
|
19
|
+
* set and inferred timezone information.
|
|
5
20
|
*/
|
|
6
21
|
export declare class ExifDateTime {
|
|
7
22
|
#private;
|
package/dist/ExifDateTime.js
CHANGED
|
@@ -9,7 +9,22 @@ const String_1 = require("./String");
|
|
|
9
9
|
const TimeParsing_1 = require("./TimeParsing");
|
|
10
10
|
const Timezones_1 = require("./Timezones");
|
|
11
11
|
/**
|
|
12
|
-
*
|
|
12
|
+
* Encapsulates encoding and decoding EXIF date and time strings,
|
|
13
|
+
* along with timezone handling functionality.
|
|
14
|
+
*
|
|
15
|
+
* Key features:
|
|
16
|
+
* - Parses datetime strings in various formats (EXIF strict/loose, ISO)
|
|
17
|
+
* - Supports timezone inference, conversion, and matching between dates
|
|
18
|
+
* - Preserves original string representations when available
|
|
19
|
+
* - Provides conversion to/from multiple datetime formats (Luxon DateTime, JS
|
|
20
|
+
* Date, ISO strings)
|
|
21
|
+
* - Supports serialization/deserialization via JSON (see
|
|
22
|
+
* {@link ExifDateTime.fromJSON})
|
|
23
|
+
*
|
|
24
|
+
* EXIF datetime strings don't typically include timezone information. This
|
|
25
|
+
* class provides mechanisms to associate timezone data from other EXIF tags
|
|
26
|
+
* (like GPS position or timezone offset), and distinguishes between explicitly
|
|
27
|
+
* set and inferred timezone information.
|
|
13
28
|
*/
|
|
14
29
|
class ExifDateTime {
|
|
15
30
|
year;
|
|
@@ -233,7 +248,7 @@ class ExifDateTime {
|
|
|
233
248
|
}
|
|
234
249
|
toJSON() {
|
|
235
250
|
return {
|
|
236
|
-
_ctor: "ExifDateTime",
|
|
251
|
+
_ctor: "ExifDateTime", // < magick field used by the JSON parser
|
|
237
252
|
year: this.year,
|
|
238
253
|
month: this.month,
|
|
239
254
|
day: this.day,
|
package/dist/ExifDateTime.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ExifDateTime.js","sourceRoot":"","sources":["../src/ExifDateTime.ts"],"names":[],"mappings":";;;AAAA,iCAOe;AACf,yCAAsD;AACtD,mCAAwC;AACxC,qCAAgC;AAChC,qCAAqD;AACrD,+CAKuB;AACvB,2CAKqB;AAErB
|
|
1
|
+
{"version":3,"file":"ExifDateTime.js","sourceRoot":"","sources":["../src/ExifDateTime.ts"],"names":[],"mappings":"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"}
|
package/dist/ExifTool.d.ts
CHANGED
|
@@ -33,12 +33,12 @@ export { ExifDateTime } from "./ExifDateTime";
|
|
|
33
33
|
export { ExifTime } from "./ExifTime";
|
|
34
34
|
export { ExifToolTask } from "./ExifToolTask";
|
|
35
35
|
export { exiftoolPath } from "./ExiftoolPath";
|
|
36
|
-
export { isGeolocationTag } from "./GeolocationTags";
|
|
36
|
+
export { GeolocationTagNames, isGeolocationTag } from "./GeolocationTags";
|
|
37
37
|
export { parseJSON } from "./JSON";
|
|
38
38
|
export { DefaultReadTaskOptions } from "./ReadTask";
|
|
39
39
|
export { TimezoneOffsetTagnames, UnsetZone, UnsetZoneName, UnsetZoneOffsetMinutes, defaultVideosToUTC, offsetMinutesToZoneName, } from "./Timezones";
|
|
40
|
-
export { DefaultWriteTaskOptions } from "./WriteTask";
|
|
41
|
-
export type { APPTags, AdditionalWriteTags, IPTCApplicationRecordTags as ApplicationRecordTags, CollectionInfo, CompositeTags, ContainerDirectoryItem, Defined, DefinedOrNullValued, EXIFTags, ErrorsAndWarnings, ExifToolOptions, ExifToolTags, ExifToolTaskOptions, ExifToolVendoredTags, ExpandedDateTags, FileTags, FlashPixTags, GeolocationTags, ICCProfileTags, IPTCApplicationRecordTags, IPTCTags, ImageDataHashTag, 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, WritableGPSRefs, WriteTags, WriteTaskOptions, WriteTaskResult, XMPTags, };
|
|
40
|
+
export { DefaultWriteTaskOptions, WriteTaskOptionFields } from "./WriteTask";
|
|
41
|
+
export type { APPTags, AdditionalWriteTags, IPTCApplicationRecordTags as ApplicationRecordTags, BinaryExtractionTaskOptions, CollectionInfo, CompositeTags, ContainerDirectoryItem, Defined, DefinedOrNullValued, EXIFTags, ErrorsAndWarnings, ExifToolOptions, ExifToolTags, ExifToolTaskOptions, ExifToolVendoredTags, ExpandedDateTags, FileTags, FlashPixTags, GeolocationTags, ICCProfileTags, IPTCApplicationRecordTags, IPTCTags, ImageDataHashTag, 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, WritableGPSRefs, WriteTags, WriteTaskOptions, WriteTaskResult, XMPTags, };
|
|
42
42
|
/**
|
|
43
43
|
* Manages delegating calls to a cluster of ExifTool child processes.
|
|
44
44
|
*
|
|
@@ -252,7 +252,7 @@ export declare class ExifTool {
|
|
|
252
252
|
* be lost in the process.
|
|
253
253
|
*
|
|
254
254
|
* This should only be applied as a last resort to images whose metadata is
|
|
255
|
-
* not readable via {@link ExifTool.read
|
|
255
|
+
* not readable via {@link ExifTool.read}.
|
|
256
256
|
*
|
|
257
257
|
* @see https://exiftool.org/faq.html#Q20
|
|
258
258
|
*
|
package/dist/ExifTool.js
CHANGED
|
@@ -36,7 +36,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
36
36
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
37
37
|
};
|
|
38
38
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
|
-
exports.exiftool = exports.ExifTool = exports.DefaultWriteTaskOptions = exports.offsetMinutesToZoneName = exports.defaultVideosToUTC = exports.UnsetZoneOffsetMinutes = exports.UnsetZoneName = exports.UnsetZone = exports.TimezoneOffsetTagnames = exports.DefaultReadTaskOptions = exports.parseJSON = exports.isGeolocationTag = exports.exiftoolPath = exports.ExifToolTask = exports.ExifTime = exports.ExifDateTime = exports.ExifDate = exports.DefaultMaxProcs = exports.DefaultExiftoolArgs = exports.DefaultExifToolOptions = exports.CapturedAtTagNames = exports.BinaryField = void 0;
|
|
39
|
+
exports.exiftool = exports.ExifTool = exports.WriteTaskOptionFields = exports.DefaultWriteTaskOptions = exports.offsetMinutesToZoneName = exports.defaultVideosToUTC = exports.UnsetZoneOffsetMinutes = exports.UnsetZoneName = exports.UnsetZone = exports.TimezoneOffsetTagnames = exports.DefaultReadTaskOptions = exports.parseJSON = exports.isGeolocationTag = exports.GeolocationTagNames = exports.exiftoolPath = exports.ExifToolTask = exports.ExifTime = exports.ExifDateTime = exports.ExifDate = exports.DefaultMaxProcs = exports.DefaultExiftoolArgs = exports.DefaultExifToolOptions = exports.CapturedAtTagNames = exports.BinaryField = void 0;
|
|
40
40
|
const bc = __importStar(require("batch-cluster"));
|
|
41
41
|
const _cp = __importStar(require("node:child_process"));
|
|
42
42
|
const _fs = __importStar(require("node:fs"));
|
|
@@ -81,6 +81,7 @@ Object.defineProperty(exports, "ExifToolTask", { enumerable: true, get: function
|
|
|
81
81
|
var ExiftoolPath_2 = require("./ExiftoolPath");
|
|
82
82
|
Object.defineProperty(exports, "exiftoolPath", { enumerable: true, get: function () { return ExiftoolPath_2.exiftoolPath; } });
|
|
83
83
|
var GeolocationTags_1 = require("./GeolocationTags");
|
|
84
|
+
Object.defineProperty(exports, "GeolocationTagNames", { enumerable: true, get: function () { return GeolocationTags_1.GeolocationTagNames; } });
|
|
84
85
|
Object.defineProperty(exports, "isGeolocationTag", { enumerable: true, get: function () { return GeolocationTags_1.isGeolocationTag; } });
|
|
85
86
|
var JSON_1 = require("./JSON");
|
|
86
87
|
Object.defineProperty(exports, "parseJSON", { enumerable: true, get: function () { return JSON_1.parseJSON; } });
|
|
@@ -95,6 +96,7 @@ Object.defineProperty(exports, "defaultVideosToUTC", { enumerable: true, get: fu
|
|
|
95
96
|
Object.defineProperty(exports, "offsetMinutesToZoneName", { enumerable: true, get: function () { return Timezones_1.offsetMinutesToZoneName; } });
|
|
96
97
|
var WriteTask_2 = require("./WriteTask");
|
|
97
98
|
Object.defineProperty(exports, "DefaultWriteTaskOptions", { enumerable: true, get: function () { return WriteTask_2.DefaultWriteTaskOptions; } });
|
|
99
|
+
Object.defineProperty(exports, "WriteTaskOptionFields", { enumerable: true, get: function () { return WriteTask_2.WriteTaskOptionFields; } });
|
|
98
100
|
/**
|
|
99
101
|
* This is the hardcoded path in the exiftool shebang line
|
|
100
102
|
*/
|
|
@@ -364,7 +366,7 @@ class ExifTool {
|
|
|
364
366
|
* be lost in the process.
|
|
365
367
|
*
|
|
366
368
|
* This should only be applied as a last resort to images whose metadata is
|
|
367
|
-
* not readable via {@link ExifTool.read
|
|
369
|
+
* not readable via {@link ExifTool.read}.
|
|
368
370
|
*
|
|
369
371
|
* @see https://exiftool.org/faq.html#Q20
|
|
370
372
|
*
|
package/dist/ExifTool.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ExifTool.js","sourceRoot":"","sources":["../src/ExifTool.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,kDAAoC;AACpC,wDAA0C;AAC1C,6CAA+B;AAC/B,gEAAmC;AACnC,mCAAkC;AAClC,6CAA6C;AAC7C,iEAGgC;AAChC,6DAA0D;AAE1D,qEAAkE;AAElE,2DAAwD;AAExD,uDAA6E;AAG7E,iDAA8C;AAK9C,uCAAoC;AACpC,iCAA8B;AAS9B,qCAAsD;AAEtD,iCAA8B;AAG9B,+CAA4C;AAC5C,yCAA6E;AAE7E,6DAA0D;AAE1D,qCAAqD;AAwBrD,+CAA4C;AAC5C,mCAAgC;AAShC,2CAKqB;AAErB,6CAA4C;AAAnC,0GAAA,WAAW,OAAA;AACpB,2DAA0D;AAAjD,wHAAA,kBAAkB,OAAA;AAC3B,mEAAkE;AAAzD,gIAAA,sBAAsB,OAAA;AAC/B,6DAA4D;AAAnD,0HAAA,mBAAmB,OAAA;AAC5B,qDAAoD;AAA3C,kHAAA,eAAe,OAAA;AACxB,uCAAsC;AAA7B,oGAAA,QAAQ,OAAA;AACjB,+CAA8C;AAArC,4GAAA,YAAY,OAAA;AACrB,uCAAsC;AAA7B,oGAAA,QAAQ,OAAA;AACjB,+CAA8C;AAArC,4GAAA,YAAY,OAAA;AACrB,+CAA8C;AAArC,4GAAA,YAAY,OAAA;AACrB,
|
|
1
|
+
{"version":3,"file":"ExifTool.js","sourceRoot":"","sources":["../src/ExifTool.ts"],"names":[],"mappings":"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"}
|
|
@@ -210,6 +210,7 @@ export interface ExifToolOptions extends bc.BatchClusterOptions, bc.BatchProcess
|
|
|
210
210
|
* Note that this requires ExifTool version 12.78 or later.
|
|
211
211
|
*
|
|
212
212
|
* @see https://exiftool.org/geolocation.html
|
|
213
|
+
* @see {@link GeolocationTags}
|
|
213
214
|
*/
|
|
214
215
|
geolocation: boolean;
|
|
215
216
|
/**
|
|
@@ -261,13 +262,13 @@ export interface ExifToolOptions extends bc.BatchClusterOptions, bc.BatchProcess
|
|
|
261
262
|
/**
|
|
262
263
|
* Any additional arguments that should be added by default to all read tasks,
|
|
263
264
|
* like `["-fast", "-api", "largefilesupport=1"]`. The value provided to the
|
|
264
|
-
* ExifTool constructor can be overridden in the call to {@link ExifTool.read
|
|
265
|
+
* ExifTool constructor can be overridden in the call to {@link ExifTool.read}
|
|
265
266
|
*/
|
|
266
267
|
readArgs: string[];
|
|
267
268
|
/**
|
|
268
269
|
* Any additional arguments that should be added by default to all write
|
|
269
270
|
* tasks, like `["-overwrite_original"]`. The value provided to the ExifTool
|
|
270
|
-
* constructor can be overridden in the call to {@link ExifTool.write
|
|
271
|
+
* constructor can be overridden in the call to {@link ExifTool.write}.
|
|
271
272
|
*/
|
|
272
273
|
writeArgs: string[];
|
|
273
274
|
/**
|
|
@@ -297,5 +298,19 @@ export interface ExifToolOptions extends bc.BatchClusterOptions, bc.BatchProcess
|
|
|
297
298
|
* over time--this will result incorrect timezones.
|
|
298
299
|
*/
|
|
299
300
|
preferTimezoneInferenceFromGps: boolean;
|
|
301
|
+
/**
|
|
302
|
+
* Should ExifTool keep times that are stored as seconds since UTC epoch as
|
|
303
|
+
* UTC times? If false, ExifTool will use local time instead of UTC/Zulu.
|
|
304
|
+
*
|
|
305
|
+
* We default to `true` to ensure we don't unintentionally adopt local
|
|
306
|
+
* timezones.
|
|
307
|
+
*
|
|
308
|
+
* Please note: when trying to validate this option, I **could not find a
|
|
309
|
+
* single example** that had a unixtime-encoded datetime, so I suspect this is
|
|
310
|
+
* irrelevant for most use cases and files.
|
|
311
|
+
*
|
|
312
|
+
* @see https://exiftool.org/ExifTool.html#KeepUTCTime
|
|
313
|
+
*/
|
|
314
|
+
keepUTCTime: boolean;
|
|
300
315
|
}
|
|
301
316
|
export declare function handleDeprecatedOptions<T extends Partial<Pick<ExifToolOptions, "includeImageDataMD5" | "imageHashType">>>(options: T): T;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ExifToolOptions.js","sourceRoot":"","sources":["../src/ExifToolOptions.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"ExifToolOptions.js","sourceRoot":"","sources":["../src/ExifToolOptions.ts"],"names":[],"mappings":";;AAiWA,0DASC;AATD,SAAgB,uBAAuB,CAIrC,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,CAAC;IACtE,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { ErrorsAndWarnings } from "./ErrorsAndWarnings";
|
|
2
|
+
import { StrEnum, StrEnumKeys } from "./StrEnum";
|
|
2
3
|
/**
|
|
3
4
|
* This tags are added to {@link Tags} from this library.
|
|
4
5
|
*/
|
|
@@ -8,16 +9,25 @@ export interface ExifToolVendoredTags extends ErrorsAndWarnings {
|
|
|
8
9
|
* `America/Los_Angeles`.
|
|
9
10
|
*
|
|
10
11
|
* This will be missing if we can't intuit a timezone from the metadata.
|
|
12
|
+
* @deprecated use `zone` instead
|
|
11
13
|
*/
|
|
12
14
|
tz?: string;
|
|
15
|
+
/**
|
|
16
|
+
* The IANA timezone, like `America/Los_Angeles`, or a IANA-rendered static offset, like `UTC-7`.
|
|
17
|
+
*
|
|
18
|
+
* This will be missing if we can't intuit a timezone from the metadata.
|
|
19
|
+
*/
|
|
20
|
+
zone?: string;
|
|
13
21
|
/**
|
|
14
22
|
* Description of where and how `tz` was extracted
|
|
23
|
+
* @deprecated use `zoneSource` instead
|
|
15
24
|
*/
|
|
16
25
|
tzSource?: string;
|
|
26
|
+
/**
|
|
27
|
+
* Description of where and how `zone` was extracted
|
|
28
|
+
*/
|
|
29
|
+
zoneSource?: string;
|
|
17
30
|
}
|
|
18
|
-
export declare const ExifToolVendoredTagNames:
|
|
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
|
-
*/
|
|
31
|
+
export declare const ExifToolVendoredTagNames: StrEnum<"zone" | "tz" | "tzSource" | "zoneSource" | "errors" | "warnings">;
|
|
32
|
+
export type ExifToolVendoredTagName = StrEnumKeys<typeof ExifToolVendoredTagNames>;
|
|
23
33
|
export declare function isExifToolVendoredTag(name: string): name is keyof ExifToolVendoredTags;
|
|
@@ -2,17 +2,8 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.ExifToolVendoredTagNames = void 0;
|
|
4
4
|
exports.isExifToolVendoredTag = isExifToolVendoredTag;
|
|
5
|
-
const
|
|
6
|
-
exports.ExifToolVendoredTagNames = (0,
|
|
7
|
-
tz: true,
|
|
8
|
-
tzSource: true,
|
|
9
|
-
errors: true,
|
|
10
|
-
warnings: 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
|
-
*/
|
|
5
|
+
const StrEnum_1 = require("./StrEnum");
|
|
6
|
+
exports.ExifToolVendoredTagNames = (0, StrEnum_1.strEnum)("tz", "zone", "tzSource", "zoneSource", "errors", "warnings");
|
|
16
7
|
function isExifToolVendoredTag(name) {
|
|
17
8
|
return exports.ExifToolVendoredTagNames.includes(name);
|
|
18
9
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ExifToolVendoredTags.js","sourceRoot":"","sources":["../src/ExifToolVendoredTags.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"ExifToolVendoredTags.js","sourceRoot":"","sources":["../src/ExifToolVendoredTags.ts"],"names":[],"mappings":";;;AAgDA,sDAIC;AAnDD,uCAA0D;AAkC7C,QAAA,wBAAwB,GAAG,IAAA,iBAAO,EAC7C,IAAI,EACJ,MAAM,EACN,UAAU,EACV,YAAY,EACZ,QAAQ,EACR,UAAU,CACmC,CAAC;AAMhD,SAAgB,qBAAqB,CACnC,IAAY;IAEZ,OAAO,gCAAwB,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AACjD,CAAC"}
|
|
@@ -1,9 +1,4 @@
|
|
|
1
|
-
|
|
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
|
+
import { StrEnum, StrEnumKeys } from "./StrEnum";
|
|
7
2
|
/**
|
|
8
3
|
* These tags are only available if {@link ExifToolOptions.geolocation} is true
|
|
9
4
|
* and the file has valid GPS location data.
|
|
@@ -45,3 +40,6 @@ export interface GeolocationTags {
|
|
|
45
40
|
GeolocationTimeZone?: string;
|
|
46
41
|
GeolocationWarning?: string;
|
|
47
42
|
}
|
|
43
|
+
export declare const GeolocationTagNames: StrEnum<"GeolocationBearing" | "GeolocationCity" | "GeolocationCountry" | "GeolocationCountryCode" | "GeolocationDistance" | "GeolocationFeatureCode" | "GeolocationFeatureType" | "GeolocationPopulation" | "GeolocationPosition" | "GeolocationRegion" | "GeolocationSubregion" | "GeolocationTimeZone" | "GeolocationWarning">;
|
|
44
|
+
export type GeolocationTagName = StrEnumKeys<typeof GeolocationTagNames>;
|
|
45
|
+
export declare function isGeolocationTag(name: string): name is keyof GeolocationTags;
|