exiftool-vendored 24.6.0 β 25.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 +12 -0
- package/README.md +21 -0
- package/dist/DefaultExifToolOptions.js +3 -2
- package/dist/DefaultExifToolOptions.js.map +1 -1
- package/dist/ExifTool.d.ts +3 -1
- package/dist/ExifTool.js +4 -6
- package/dist/ExifTool.js.map +1 -1
- package/dist/ExifToolOptions.d.ts +34 -19
- package/dist/ExifToolOptions.js.map +1 -1
- package/dist/ExiftoolPath.d.ts +2 -0
- package/dist/ExiftoolPath.js +86 -0
- package/dist/ExiftoolPath.js.map +1 -0
- package/dist/GeoTz.d.ts +3 -0
- package/dist/GeoTz.js +4 -6
- package/dist/GeoTz.js.map +1 -1
- package/dist/GeolocationTags.d.ts +37 -0
- package/dist/GeolocationTags.js +3 -0
- package/dist/GeolocationTags.js.map +1 -0
- package/dist/ReadTask.d.ts +2 -9
- package/dist/ReadTask.js +103 -72
- package/dist/ReadTask.js.map +1 -1
- package/dist/String.d.ts +1 -0
- package/dist/String.js +8 -1
- package/dist/String.js.map +1 -1
- package/dist/Tags.d.ts +15 -14
- package/dist/TimeParsing.js +1 -1
- package/dist/TimeParsing.js.map +1 -1
- package/dist/Timezones.js +1 -0
- package/dist/Timezones.js.map +1 -1
- package/package.json +13 -13
- package/dist/FindExiftool.d.ts +0 -1
- package/dist/FindExiftool.js +0 -54
- package/dist/FindExiftool.js.map +0 -1
package/CHANGELOG.md
CHANGED
|
@@ -26,6 +26,18 @@ vendored versions of ExifTool match the version that they vendor.
|
|
|
26
26
|
|
|
27
27
|
## Version history
|
|
28
28
|
|
|
29
|
+
### v25.0.0
|
|
30
|
+
|
|
31
|
+
- π±/β¨ 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
|
|
32
|
+
|
|
33
|
+
- β¨ If no vendored version of `exiftool` is available, we'll try to make do with whatever is available in the `PATH`.
|
|
34
|
+
|
|
35
|
+
- β¨ `ExifToolOptions.exiftoolPath` can now be an `async` function
|
|
36
|
+
|
|
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).
|
|
38
|
+
|
|
39
|
+
- π¦ Added support for `electron-forge`: [see the docs for details](https://photostructure.github.io/exiftool-vendored.js/#md:electron-forge-support).
|
|
40
|
+
|
|
29
41
|
### v24.6.0
|
|
30
42
|
|
|
31
43
|
- π± ExifTool upgraded to [v12.78](https://exiftool.org/history.html#v12.78)
|
package/README.md
CHANGED
|
@@ -44,6 +44,25 @@ or
|
|
|
44
44
|
|
|
45
45
|
npm install --save exiftool-vendored
|
|
46
46
|
|
|
47
|
+
### Electron-builder support
|
|
48
|
+
|
|
49
|
+
Add the following pattern to `electron-builder.yml`'s `asarUnpack`:
|
|
50
|
+
|
|
51
|
+
```yaml
|
|
52
|
+
- "node_modules/exiftool-vendored.*/**/*"
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
### Electron-forge support
|
|
56
|
+
|
|
57
|
+
Version 25.0 of this library added experimental support for `electron-forge`:
|
|
58
|
+
add the following element to your `ForgeConfig.packagerConfig.extraResource`
|
|
59
|
+
string array, and things should "just work":
|
|
60
|
+
|
|
61
|
+
```ts
|
|
62
|
+
"./node_modules/exiftool-vendored." +
|
|
63
|
+
(process.platform === "win32" ? "exe" : "pl")
|
|
64
|
+
```
|
|
65
|
+
|
|
47
66
|
### Installation notes
|
|
48
67
|
|
|
49
68
|
- `exiftool-vendored` provides an installation of ExifTool relevant for your
|
|
@@ -58,6 +77,8 @@ or
|
|
|
58
77
|
|
|
59
78
|
- Node.js's `-slim` docker images don't include a working `perl` build. Use the non-slim image instead. [See the issue report for details.](https://github.com/photostructure/exiftool-vendored.js/issues/168)
|
|
60
79
|
|
|
80
|
+
- If the platform-correct vendor module (`exiftool-vendored.exe` or `exiftool-vendored.pl`) is not found, `exiftool` is searched for on your `PATH`. Note that _very_ old versions of `exiftool` are found on currently-supported Linux distributions which this library will not work correctly with.
|
|
81
|
+
|
|
61
82
|
## Upgrading
|
|
62
83
|
|
|
63
84
|
See the
|
|
@@ -28,7 +28,7 @@ const bc = __importStar(require("batch-cluster"));
|
|
|
28
28
|
const CapturedAtTagNames_1 = require("./CapturedAtTagNames");
|
|
29
29
|
const DefaultExiftoolArgs_1 = require("./DefaultExiftoolArgs");
|
|
30
30
|
const DefaultMaxProcs_1 = require("./DefaultMaxProcs");
|
|
31
|
-
const
|
|
31
|
+
const ExiftoolPath_1 = require("./ExiftoolPath");
|
|
32
32
|
const GeoTz_1 = require("./GeoTz");
|
|
33
33
|
const IsWin32_1 = require("./IsWin32");
|
|
34
34
|
const VersionTask_1 = require("./VersionTask");
|
|
@@ -45,7 +45,7 @@ exports.DefaultExifToolOptions = Object.freeze({
|
|
|
45
45
|
taskTimeoutMillis: 20000,
|
|
46
46
|
onIdleIntervalMillis: 2000,
|
|
47
47
|
taskRetries: 1,
|
|
48
|
-
exiftoolPath:
|
|
48
|
+
exiftoolPath: ExiftoolPath_1.exiftoolPath,
|
|
49
49
|
exiftoolArgs: DefaultExiftoolArgs_1.DefaultExiftoolArgs,
|
|
50
50
|
exiftoolEnv: {},
|
|
51
51
|
checkPerl: !(0, IsWin32_1.isWin32)(),
|
|
@@ -58,6 +58,7 @@ exports.DefaultExifToolOptions = Object.freeze({
|
|
|
58
58
|
backfillTimezones: true,
|
|
59
59
|
defaultVideosToUTC: true,
|
|
60
60
|
geoTz: GeoTz_1.geoTz,
|
|
61
|
+
geolocation: false,
|
|
61
62
|
ignoreZeroZeroLatLon: true,
|
|
62
63
|
imageHashType: false,
|
|
63
64
|
includeImageDataMD5: undefined,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DefaultExifToolOptions.js","sourceRoot":"","sources":["../src/DefaultExifToolOptions.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,kDAAmC;AACnC,6DAAyD;AACzD,+DAA2D;AAC3D,uDAAmD;AAEnD,
|
|
1
|
+
{"version":3,"file":"DefaultExifToolOptions.js","sourceRoot":"","sources":["../src/DefaultExifToolOptions.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,kDAAmC;AACnC,6DAAyD;AACzD,+DAA2D;AAC3D,uDAAmD;AAEnD,iDAA6C;AAC7C,mCAA+B;AAC/B,uCAAmC;AAEnC,+CAA2C;AAE3C;;;GAGG;AACU,QAAA,sBAAsB,GAG/B,MAAM,CAAC,MAAM,CAAC;IAChB,GAAG,IAAI,EAAE,CAAC,mBAAmB,EAAE;IAC/B,QAAQ,EAAE,iCAAe;IACzB,kBAAkB,EAAE,GAAG;IACvB,kBAAkB,EAAE,KAAK;IACzB,yEAAyE;IACzE,iBAAiB,EAAE,KAAK;IACxB,oBAAoB,EAAE,IAAI;IAC1B,WAAW,EAAE,CAAC;IACd,YAAY,EAAZ,2BAAY;IACZ,YAAY,EAAE,yCAAmB;IACjC,WAAW,EAAE,EAAE;IACf,SAAS,EAAE,CAAC,IAAA,iBAAO,GAAE;IACrB,IAAI,EAAE,SAAS;IACf,IAAI,EAAE,SAAS;IACf,WAAW,EAAE,qBAAqB;IAClC,cAAc,EAAE,IAAI,yBAAW,EAAE,CAAC,OAAO;IACzC,yBAAyB,EAAE,KAAK;IAChC,kBAAkB,EAAE,kBAAkB;IAEtC,iBAAiB,EAAE,IAAI;IACvB,kBAAkB,EAAE,IAAI;IACxB,KAAK,EAAE,aAAK;IACZ,WAAW,EAAE,KAAK;IAClB,oBAAoB,EAAE,IAAI;IAC1B,aAAa,EAAE,KAAK;IACpB,mBAAmB,EAAE,SAAS;IAC9B,2BAA2B,EAAE,KAAK,EAAE,2BAA2B;IAC/D,8BAA8B,EAAE,CAAC,GAAG,uCAAkB,CAAC;IACvD,WAAW,EAAE;QACX,YAAY;QACZ,aAAa;QACb,aAAa;QACb,cAAc;QACd,aAAa;QACb,aAAa;KACd;IACD,MAAM,EAAE,KAAK;CACd,CAAC,CAAA"}
|
package/dist/ExifTool.d.ts
CHANGED
|
@@ -5,6 +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
9
|
import { ICCProfileTags } from "./ICCProfileTags";
|
|
9
10
|
import { CollectionInfo, KeywordInfoStruct, KeywordStruct, MWGCollectionsTags, MWGKeywordTags } from "./MWGTags";
|
|
10
11
|
import { Maybe } from "./Maybe";
|
|
@@ -32,7 +33,7 @@ export { parseJSON } from "./JSON";
|
|
|
32
33
|
export { DefaultReadTaskOptions } from "./ReadTask";
|
|
33
34
|
export { UnsetZone, UnsetZoneName, UnsetZoneOffsetMinutes, defaultVideosToUTC, offsetMinutesToZoneName, } from "./Timezones";
|
|
34
35
|
export { DefaultWriteTaskOptions } from "./WriteTask";
|
|
35
|
-
export type { APP12Tags, APP14Tags, APP1Tags, APP4Tags, APP5Tags, APP6Tags, AdditionalWriteTags, ApplicationRecordTags, CollectionInfo, CompositeTags, Defined, DefinedOrNullValued, EXIFTags, ErrorsAndWarnings, ExifToolOptions, ExifToolTags, ExpandedDateTags, FileTags, FlashPixTags, 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, };
|
|
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, };
|
|
36
37
|
/**
|
|
37
38
|
* Manages delegating calls to a cluster of ExifTool child processes.
|
|
38
39
|
*
|
|
@@ -43,6 +44,7 @@ export declare class ExifTool {
|
|
|
43
44
|
#private;
|
|
44
45
|
readonly options: ExifToolOptions;
|
|
45
46
|
private readonly batchCluster;
|
|
47
|
+
readonly exiftoolPath: () => Promise<string>;
|
|
46
48
|
constructor(options?: Partial<ExifToolOptions>);
|
|
47
49
|
/**
|
|
48
50
|
* Register life cycle event listeners. Delegates to BatchProcess.
|
package/dist/ExifTool.js
CHANGED
|
@@ -45,6 +45,7 @@ const DeleteAllTagsArgs_1 = require("./DeleteAllTagsArgs");
|
|
|
45
45
|
const ExifToolOptions_1 = require("./ExifToolOptions");
|
|
46
46
|
const IsWin32_1 = require("./IsWin32");
|
|
47
47
|
const Lazy_1 = require("./Lazy");
|
|
48
|
+
const Object_1 = require("./Object");
|
|
48
49
|
const Pick_1 = require("./Pick");
|
|
49
50
|
const ReadRawTask_1 = require("./ReadRawTask");
|
|
50
51
|
const ReadTask_1 = require("./ReadTask");
|
|
@@ -138,17 +139,14 @@ class ExifTool {
|
|
|
138
139
|
detached: false, // < no orphaned exiftool procs, please
|
|
139
140
|
env,
|
|
140
141
|
};
|
|
142
|
+
this.exiftoolPath = (0, Lazy_1.lazy)(async () => (0, Object_1.isFunction)(o.exiftoolPath) ? o.exiftoolPath(o.logger()) : o.exiftoolPath);
|
|
141
143
|
const processFactory = async () => ignoreShebang
|
|
142
|
-
? _cp.spawn(await whichPerl(), [
|
|
143
|
-
: _cp.spawn(
|
|
144
|
+
? _cp.spawn(await whichPerl(), [await this.exiftoolPath(), ...o.exiftoolArgs], spawnOpts)
|
|
145
|
+
: _cp.spawn(await this.exiftoolPath(), o.exiftoolArgs, spawnOpts);
|
|
144
146
|
this.options = {
|
|
145
147
|
...o,
|
|
146
148
|
ignoreShebang,
|
|
147
149
|
processFactory,
|
|
148
|
-
exitCommand: o.exitCommand,
|
|
149
|
-
versionCommand: o.versionCommand,
|
|
150
|
-
// User options win:
|
|
151
|
-
...options,
|
|
152
150
|
};
|
|
153
151
|
this.batchCluster = new bc.BatchCluster(this.options);
|
|
154
152
|
}
|
package/dist/ExifTool.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ExifTool.js","sourceRoot":"","sources":["../src/ExifTool.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,kDAAmC;AACnC,wDAAyC;AACzC,6CAA8B;AAC9B,gEAAkC;AAElC,6CAA4C;AAC5C,iEAA6D;AAC7D,6DAAyD;AACzD,qEAAiE;AAEjE,2DAAuD;AAEvD,uDAA4E;
|
|
1
|
+
{"version":3,"file":"ExifTool.js","sourceRoot":"","sources":["../src/ExifTool.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,kDAAmC;AACnC,wDAAyC;AACzC,6CAA8B;AAC9B,gEAAkC;AAElC,6CAA4C;AAC5C,iEAA6D;AAC7D,6DAAyD;AACzD,qEAAiE;AAEjE,2DAAuD;AAEvD,uDAA4E;AAI5E,uCAAmC;AACnC,iCAA6B;AAS7B,qCAAqC;AAErC,iCAA6B;AAG7B,+CAA2C;AAC3C,yCAA4E;AAE5E,6DAAyD;AAEzD,qCAA0C;AA6B1C,+CAA2C;AAC3C,mCAA+B;AAQ/B,2CAA0E;AAE1E,6CAA2C;AAAlC,0GAAA,WAAW,OAAA;AACpB,2DAAyD;AAAhD,wHAAA,kBAAkB,OAAA;AAC3B,mEAAiE;AAAxD,gIAAA,sBAAsB,OAAA;AAC/B,6DAA2D;AAAlD,0HAAA,mBAAmB,OAAA;AAC5B,qDAAmD;AAA1C,kHAAA,eAAe,OAAA;AACxB,uCAAqC;AAA5B,oGAAA,QAAQ,OAAA;AACjB,+CAA6C;AAApC,4GAAA,YAAY,OAAA;AACrB,uCAAqC;AAA5B,oGAAA,QAAQ,OAAA;AACjB,+CAA6C;AAApC,4GAAA,YAAY,OAAA;AACrB,+BAAkC;AAAzB,iGAAA,SAAS,OAAA;AAClB,uCAAmD;AAA1C,kHAAA,sBAAsB,OAAA;AAC/B,yCAMoB;AALlB,sGAAA,SAAS,OAAA;AACT,0GAAA,aAAa,OAAA;AACb,mHAAA,sBAAsB,OAAA;AACtB,+GAAA,kBAAkB,OAAA;AAClB,oHAAA,uBAAuB,OAAA;AAEzB,yCAAqD;AAA5C,oHAAA,uBAAuB,OAAA;AAyDhC,MAAM,cAAc,GAAG,IAAA,WAAI,EACzB,GAAG,EAAE,CAAC,CAAC,IAAA,iBAAO,GAAE,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,eAAe,CAAC,CACrD,CAAA;AAED,MAAM,SAAS,GAAG,IAAA,WAAI,EAAC,KAAK,IAAI,EAAE;IAChC,MAAM,MAAM,GAAG,MAAM,IAAA,aAAK,EAAC,MAAM,CAAC,CAAA;IAClC,IAAI,MAAM,IAAI,IAAI,EAAE,CAAC;QACnB,MAAM,IAAI,KAAK,CACb,sEAAsE,CACvE,CAAA;IACH,CAAC;IACD,OAAO,MAAM,CAAA;AACf,CAAC,CAAC,CAAA;AAEF;;;;;GAKG;AACH,MAAa,QAAQ;IAKnB,YAAY,UAAoC,EAAE;;QA2ClD;;WAEG;QACM,OAAE,GAA0B,CAAC,KAAU,EAAE,QAAa,EAAE,EAAE,CACjE,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAA;QAEvC;;WAEG;QACM,QAAG,GAA2B,CAAC,KAAU,EAAE,QAAa,EAAE,EAAE,CACnE,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAA;QAsP/B,iCAAgB,IAAA,WAAI,EAAC,KAAK,IAAI,EAAE;YACvC,IAAI,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC;gBAC3B,MAAM,SAAS,EAAE,CAAA,CAAC,8BAA8B;YAClD,CAAC;QACH,CAAC,CAAC;QAEF;;;;;WAKG;UAPD;QA9SA,IAAI,OAAO,IAAI,IAAI,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;YACnD,MAAM,IAAI,KAAK,CACb,0DAA0D,CAC3D,CAAA;QACH,CAAC;QACD,MAAM,CAAC,GAAG,IAAA,yCAAuB,EAAC;YAChC,GAAG,+CAAsB;YACzB,GAAG,OAAO;SACX,CAAC,CAAA;QAEF,MAAM,aAAa,GAAG,MAAA,CAAC,CAAC,aAAa,mCAAI,cAAc,EAAE,CAAA;QAEzD,MAAM,GAAG,GAAsB,EAAE,GAAG,CAAC,CAAC,WAAW,EAAE,IAAI,EAAE,GAAG,EAAE,CAAA;QAC9D,IAAI,IAAA,iBAAQ,EAAC,sBAAO,CAAC,GAAG,CAAC,aAAa,CAAC,IAAI,IAAA,cAAK,EAAC,GAAG,CAAC,aAAa,CAAC,EAAE,CAAC;YACpE,GAAG,CAAC,aAAa,GAAG,sBAAO,CAAC,GAAG,CAAC,aAAa,CAAA;QAC/C,CAAC;QACD,MAAM,SAAS,GAAqB;YAClC,KAAK,EAAE,MAAM;YACb,KAAK,EAAE,KAAK;YACZ,QAAQ,EAAE,KAAK,EAAE,uCAAuC;YACxD,GAAG;SACJ,CAAA;QACD,IAAI,CAAC,YAAY,GAAG,IAAA,WAAI,EAAC,KAAK,IAAI,EAAE,CAClC,IAAA,mBAAU,EAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY,CACzE,CAAA;QACD,MAAM,cAAc,GAAG,KAAK,IAAI,EAAE,CAChC,aAAa;YACX,CAAC,CAAC,GAAG,CAAC,KAAK,CACP,MAAM,SAAS,EAAE,EACjB,CAAC,MAAM,IAAI,CAAC,YAAY,EAAE,EAAE,GAAG,CAAC,CAAC,YAAY,CAAC,EAC9C,SAAS,CACV;YACH,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,IAAI,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC,YAAY,EAAE,SAAS,CAAC,CAAA;QAErE,IAAI,CAAC,OAAO,GAAG;YACb,GAAG,CAAC;YACJ,aAAa;YACb,cAAc;SACf,CAAA;QACD,IAAI,CAAC,YAAY,GAAG,IAAI,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;IACvD,CAAC;IAcD;;OAEG;IACH,OAAO;QACL,OAAO,IAAI,CAAC,WAAW,CAAC,GAAG,EAAE,CAAC,IAAI,yBAAW,EAAE,CAAC,CAAA;IAClD,CAAC;IAED;;;;;;;;;;;;;;OAcG;IACH,IAAI,CACF,IAAY,EACZ,eAAyB,CAAC,OAAO,CAAC,EAClC,OAAkC;QAElC,OAAO,IAAI,CAAC,WAAW,CAAC,GAAG,EAAE,CAC3B,mBAAQ,CAAC,GAAG,CAAC,IAAI,EAAE;YACjB,YAAY;YACZ,GAAG,IAAA,WAAI,EAAC,IAAI,CAAC,OAAO,EAAE,GAAG,+BAAoB,CAAC;YAC9C,GAAG,OAAO;SACX,CAAC,CACI,CAAA,CAAC,mEAAmE;IAC9E,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;;;OAyBG;IACH,OAAO,CAAC,IAAY,EAAE,OAAiB,EAAE;QACvC,OAAO,IAAI,CAAC,WAAW,CAAC,GAAG,EAAE,CAAC,yBAAW,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAA;IAC5D,CAAC;IAED;;;;;;;;;;;;OAYG;IACH,KAAK,CACH,IAAY,EACZ,IAAe,EACf,IAAe,EACf,OAA0B;QAE1B,wEAAwE;QACxE,yBAAyB;QACzB,MAAM,SAAS,GAAG,KAAK,CAAA;QACvB,OAAO,IAAI,CAAC,WAAW,CACrB,GAAG,EAAE,CACH,qBAAS,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE;YAC9B,GAAG,IAAA,WAAI,EAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC;YAC/B,GAAG,OAAO;SACX,CAAC,EACJ,SAAS,CACV,CAAA;IACH,CAAC;IAED;;;;;OAKG;IACH,aAAa,CAAC,IAAY;QACxB,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE,EAAE,qCAAiB,CAAC,CAAA;IAChD,CAAC;IAED;;;;;;;;OAQG;IACH,gBAAgB,CAAC,SAAiB,EAAE,aAAqB;QACvD,OAAO,IAAI,CAAC,gBAAgB,CAAC,gBAAgB,EAAE,SAAS,EAAE,aAAa,CAAC,CAAA;IAC1E,CAAC;IAED;;;;;;;;;OASG;IACH,cAAc,CAAC,SAAiB,EAAE,WAAmB;QACnD,OAAO,IAAI,CAAC,gBAAgB,CAAC,cAAc,EAAE,SAAS,EAAE,WAAW,CAAC,CAAA;IACtE,CAAC;IAED;;;;;;;;;OASG;IACH,iBAAiB,CAAC,SAAiB,EAAE,UAAkB;QACrD,OAAO,IAAI,CAAC,gBAAgB,CAAC,YAAY,EAAE,SAAS,EAAE,UAAU,CAAC,CAAA;IACnE,CAAC;IAED;;;;;;;OAOG;IACH,KAAK,CAAC,gBAAgB,CACpB,OAAe,EACf,GAAW,EACX,IAAY;QAEZ,2EAA2E;QAC3E,kCAAkC;QAClC,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,GAAG,EAAE,CAC7C,2CAAoB,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,EAAE,IAAI,CAAC,CAC7C,CAAA;QACD,IAAI,UAAU,IAAI,IAAI,EAAE,CAAC;YACvB,MAAM,IAAI,KAAK,CAAC,UAAU,CAAC,CAAA;QAC7B,CAAC;IACH,CAAC;IAED;;;;;;;;OAQG;IACH,KAAK,CAAC,wBAAwB,CAC5B,OAAmB,EACnB,SAAiB;QAEjB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,GAAG,EAAE,CACzC,uCAAkB,CAAC,GAAG,CAAC,OAAO,EAAE,SAAS,CAAC,CAC3C,CAAA;QACD,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;YAC5B,OAAO,MAAM,CAAA;QACf,CAAC;aAAM,IAAI,MAAM,YAAY,KAAK,EAAE,CAAC;YACnC,MAAM,MAAM,CAAA;QACd,CAAC;aAAM,CAAC;YACN,MAAM,IAAI,KAAK,CACb,6CAA6C,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CACvE,CAAA;QACH,CAAC;IACH,CAAC;IACD;;;;;;;;;;;;;;;;;OAiBG;IACH,cAAc,CACZ,SAAiB,EACjB,UAAkB,EAClB,oBAAoB,GAAG,KAAK;QAE5B,OAAO,IAAI,CAAC,WAAW,CAAC,GAAG,EAAE,CAC3B,uCAAkB,CAAC,GAAG,CAAC,SAAS,EAAE,UAAU,EAAE,oBAAoB,CAAC,CACpE,CAAA;IACH,CAAC;IAED;;;;;;OAMG;IACH,GAAG,CAAC,UAAU,GAAG,IAAI;QACnB,OAAO,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,OAAO,CAAA;IAClD,CAAC;IAED;;OAEG;IACH,IAAI,KAAK;QACP,OAAO,IAAI,CAAC,YAAY,CAAC,KAAK,CAAA;IAChC,CAAC;IAQD;;;;;OAKG;IACH,WAAW,CAAI,IAA2B,EAAE,SAAS,GAAG,IAAI;QAC1D,MAAM,CAAC,GAAG,KAAK,IAAI,EAAE;YACnB,MAAM,uBAAA,IAAI,8BAAc,MAAlB,IAAI,CAAgB,CAAA;YAC1B,OAAO,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,CAAA;QAC9C,CAAC,CAAA;QACD,OAAO,SAAS,CAAC,CAAC,CAAC,IAAA,0BAAa,EAAC,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA;IACrE,CAAC;IAED;;;;;OAKG;IACH,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,CAAA;IACjC,CAAC;IAED;;OAEG;IACH,IAAI,YAAY;QACd,OAAO,IAAI,CAAC,YAAY,CAAC,gBAAgB,CAAA;IAC3C,CAAC;IAED;;OAEG;IACH,IAAI,YAAY;QACd,OAAO,IAAI,CAAC,YAAY,CAAC,gBAAgB,CAAA;IAC3C,CAAC;IAED;;OAEG;IACH,IAAI,SAAS;QACX,OAAO,IAAI,CAAC,YAAY,CAAC,aAAa,CAAA;IACxC,CAAC;IAED;;OAEG;IACH,cAAc;QACZ,OAAO,IAAI,CAAC,YAAY,CAAC,cAAc,CAAA;IACzC,CAAC;IAED;;;OAGG;IACH,mBAAmB,CAAC,UAAU,GAAG,IAAI;QACnC,OAAO,IAAI,CAAC,YAAY,CAAC,mBAAmB,CAAC,UAAU,CAAC,CAAA;IAC1D,CAAC;CACF;AAjXD,4BAiXC;;AAED;;;;;;;;;;;;;;;;GAgBG;AACU,QAAA,QAAQ,GAAG,IAAI,QAAQ,EAAE,CAAA"}
|
|
@@ -57,7 +57,7 @@ export interface ExifToolOptions extends bc.BatchClusterOptions, bc.BatchProcess
|
|
|
57
57
|
* windows binaries provided by `exiftool-vendored.pl` or
|
|
58
58
|
* `exiftool-vendored.exe`.
|
|
59
59
|
*/
|
|
60
|
-
exiftoolPath: string;
|
|
60
|
+
exiftoolPath: string | ((logger?: bc.Logger) => string | Promise<string>);
|
|
61
61
|
/**
|
|
62
62
|
* Args passed to exiftool on launch.
|
|
63
63
|
*/
|
|
@@ -159,32 +159,22 @@ export interface ExifToolOptions extends bc.BatchClusterOptions, bc.BatchProcess
|
|
|
159
159
|
* this option is true, and GPSLatitude and GPSLongitude are both 0, then
|
|
160
160
|
* those values will be returned, but the TZ will not be inferred from that
|
|
161
161
|
* location.
|
|
162
|
-
*/
|
|
163
|
-
ignoreZeroZeroLatLon: boolean;
|
|
164
|
-
/**
|
|
165
|
-
* `ExifTool` has a shebang line that assumes a valid `perl` is installed at
|
|
166
|
-
* `/usr/bin/perl`.
|
|
167
162
|
*
|
|
168
|
-
*
|
|
169
|
-
*
|
|
170
|
-
* `/opt/bin/perl`), if you pull in a perl layer.
|
|
163
|
+
* If both this and {@link geolocation} are `true`, we will _delete_ the
|
|
164
|
+
* Geolocation tags from the returned metadata object.
|
|
171
165
|
*
|
|
172
|
-
*
|
|
173
|
-
* situations. Note also that `perl` will be spawned in a sub-shell.
|
|
166
|
+
* @see https://en.wikipedia.org/wiki/Null_Island
|
|
174
167
|
*/
|
|
175
|
-
|
|
176
|
-
/**
|
|
177
|
-
* Should we check for a readable and executable `perl` file in $PATH? This
|
|
178
|
-
* defaults to false on Windows, and true everywhere else. Set this to false
|
|
179
|
-
* if you know perl is installed.
|
|
180
|
-
*/
|
|
181
|
-
checkPerl: boolean;
|
|
168
|
+
ignoreZeroZeroLatLon: boolean;
|
|
182
169
|
/**
|
|
183
|
-
* Override the default geo-to-timezone lookup service.
|
|
170
|
+
* Override the default geo-to-timezone lookup service. Note that if {@link geolocation} is enabled, we'll try to use {@
|
|
184
171
|
*
|
|
185
172
|
* This defaults to `@photostructure/tz-lookup`, but if you have the
|
|
186
173
|
* resources, consider using `geo-tz` for more accurate results.
|
|
187
174
|
*
|
|
175
|
+
* If your implementation throws an error, `ExifTool` will consider that given
|
|
176
|
+
* latitude/longitude as invalid.
|
|
177
|
+
*
|
|
188
178
|
* Here's a snippet of how to use `geo-tz` instead of `tz-lookup`:
|
|
189
179
|
*
|
|
190
180
|
```js
|
|
@@ -197,5 +187,30 @@ export interface ExifToolOptions extends bc.BatchClusterOptions, bc.BatchProcess
|
|
|
197
187
|
* @see https://github.com/evansiroky/node-geo-tz/
|
|
198
188
|
*/
|
|
199
189
|
geoTz: typeof geoTz;
|
|
190
|
+
/**
|
|
191
|
+
* When reading metadata, should we enable ExifTool's geolocation features?
|
|
192
|
+
* Note that this requires ExifTool version 12.78 or later.
|
|
193
|
+
*
|
|
194
|
+
* @see https://exiftool.org/geolocation.html
|
|
195
|
+
*/
|
|
196
|
+
geolocation: boolean;
|
|
197
|
+
/**
|
|
198
|
+
* `ExifTool` has a shebang line that assumes a valid `perl` is installed at
|
|
199
|
+
* `/usr/bin/perl`.
|
|
200
|
+
*
|
|
201
|
+
* Some environments may not include a valid `/usr/bin/perl` (like AWS
|
|
202
|
+
* Lambda), but `perl` may be available in your `PATH` some place else (like
|
|
203
|
+
* `/opt/bin/perl`), if you pull in a perl layer.
|
|
204
|
+
*
|
|
205
|
+
* This will default to `true` in those environments as a workaround in these
|
|
206
|
+
* situations. Note also that `perl` will be spawned in a sub-shell.
|
|
207
|
+
*/
|
|
208
|
+
ignoreShebang: boolean;
|
|
209
|
+
/**
|
|
210
|
+
* Should we check for a readable and executable `perl` file in $PATH? This
|
|
211
|
+
* defaults to false on Windows, and true everywhere else. Set this to false
|
|
212
|
+
* if you know perl is installed.
|
|
213
|
+
*/
|
|
214
|
+
checkPerl: boolean;
|
|
200
215
|
}
|
|
201
216
|
export declare function handleDeprecatedOptions<T extends 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":";;;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"}
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
+
if (mod && mod.__esModule) return mod;
|
|
20
|
+
var result = {};
|
|
21
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
+
__setModuleDefault(result, mod);
|
|
23
|
+
return result;
|
|
24
|
+
};
|
|
25
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
26
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
27
|
+
};
|
|
28
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
29
|
+
exports.exiftoolPath = void 0;
|
|
30
|
+
const _fs = __importStar(require("node:fs"));
|
|
31
|
+
const _path = __importStar(require("node:path"));
|
|
32
|
+
const node_process_1 = __importDefault(require("node:process"));
|
|
33
|
+
const IsWin32_1 = require("./IsWin32");
|
|
34
|
+
const Which_1 = require("./Which");
|
|
35
|
+
function vendorPackage() {
|
|
36
|
+
return "exiftool-vendored." + ((0, IsWin32_1.isWin32)() ? "exe" : "pl");
|
|
37
|
+
}
|
|
38
|
+
function tryRequire({ prefix = "", logger, } = {}) {
|
|
39
|
+
const id = prefix + vendorPackage();
|
|
40
|
+
try {
|
|
41
|
+
return require(id);
|
|
42
|
+
}
|
|
43
|
+
catch (error) {
|
|
44
|
+
logger === null || logger === void 0 ? void 0 : logger.warn(id + "not found: ", error);
|
|
45
|
+
return;
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
async function exiftoolPath(logger) {
|
|
49
|
+
const path = tryRequire({ prefix: "", logger });
|
|
50
|
+
// This s/app.asar/app.asar.unpacked/ path switch adds support for Electron
|
|
51
|
+
// apps that are ASAR-packed (like by electron-builder). This is necessary because
|
|
52
|
+
// Note that we can't reliably automatically detect that we're running in
|
|
53
|
+
// electron because child processes that are spawned by the main process will
|
|
54
|
+
// most likely need the ELECTRON_RUN_AS_NODE environment variable set, which
|
|
55
|
+
// will unset the process.versions.electron field.
|
|
56
|
+
const fixedPath = path === null || path === void 0 ? void 0 : path.split(_path.sep).map((ea) => (ea === "app.asar" ? "app.asar.unpacked" : ea)).join(_path.sep);
|
|
57
|
+
// Note also, that we must check for the fixedPath first, because Electron's
|
|
58
|
+
// ASAR shenanigans will make existsSync return true even for asar-packed
|
|
59
|
+
// resources.
|
|
60
|
+
if (fixedPath != null && _fs.existsSync(fixedPath)) {
|
|
61
|
+
return fixedPath;
|
|
62
|
+
}
|
|
63
|
+
if (path != null && _fs.existsSync(path)) {
|
|
64
|
+
return path;
|
|
65
|
+
}
|
|
66
|
+
logger === null || logger === void 0 ? void 0 : logger.warn("Failed to find exiftool via " + vendorPackage());
|
|
67
|
+
// Set by electron-forge:
|
|
68
|
+
const electronResourcePath = node_process_1.default.resourcesPath;
|
|
69
|
+
if (electronResourcePath != null) {
|
|
70
|
+
const forgePath = _path.join(electronResourcePath, vendorPackage(), "bin", "exiftool" + ((0, IsWin32_1.isWin32)() ? ".exe" : ""));
|
|
71
|
+
if (_fs.existsSync(forgePath)) {
|
|
72
|
+
return forgePath;
|
|
73
|
+
}
|
|
74
|
+
else {
|
|
75
|
+
logger === null || logger === void 0 ? void 0 : logger.warn("Failed to find exiftool in electron forge resources path: " + forgePath);
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
// Last ditch: is there a globally installed exiftool in the PATH?
|
|
79
|
+
const fromPath = await (0, Which_1.which)("exiftool");
|
|
80
|
+
if (fromPath != null) {
|
|
81
|
+
return fromPath;
|
|
82
|
+
}
|
|
83
|
+
throw new Error(`Failed to find ExifTool installation: set exiftoolPath explicitly.`);
|
|
84
|
+
}
|
|
85
|
+
exports.exiftoolPath = exiftoolPath;
|
|
86
|
+
//# sourceMappingURL=ExiftoolPath.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ExiftoolPath.js","sourceRoot":"","sources":["../src/ExiftoolPath.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,6CAA8B;AAC9B,iDAAkC;AAClC,gEAAkC;AAClC,uCAAmC;AAEnC,mCAA+B;AAE/B,SAAS,aAAa;IACpB,OAAO,oBAAoB,GAAG,CAAC,IAAA,iBAAO,GAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAA;AAC1D,CAAC;AAED,SAAS,UAAU,CAAC,EAClB,MAAM,GAAG,EAAE,EACX,MAAM,MACyC,EAAE;IACjD,MAAM,EAAE,GAAG,MAAM,GAAG,aAAa,EAAE,CAAA;IACnC,IAAI,CAAC;QACH,OAAO,OAAO,CAAC,EAAE,CAAC,CAAA;IACpB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,IAAI,CAAC,EAAE,GAAG,aAAa,EAAE,KAAK,CAAC,CAAA;QACvC,OAAM;IACR,CAAC;AACH,CAAC;AAEM,KAAK,UAAU,YAAY,CAAC,MAAe;IAChD,MAAM,IAAI,GAAG,UAAU,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC,CAAA;IAC/C,2EAA2E;IAC3E,kFAAkF;IAClF,yEAAyE;IACzE,6EAA6E;IAC7E,4EAA4E;IAC5E,kDAAkD;IAClD,MAAM,SAAS,GAAG,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAClB,KAAK,CAAC,KAAK,CAAC,GAAG,EAChB,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,KAAK,UAAU,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,EAAE,CAAC,EAC1D,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;IAElB,4EAA4E;IAC5E,yEAAyE;IACzE,aAAa;IACb,IAAI,SAAS,IAAI,IAAI,IAAI,GAAG,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;QACnD,OAAO,SAAS,CAAA;IAClB,CAAC;IACD,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;QACzC,OAAO,IAAI,CAAA;IACb,CAAC;IAED,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,IAAI,CAAC,8BAA8B,GAAG,aAAa,EAAE,CAAC,CAAA;IAE9D,yBAAyB;IACzB,MAAM,oBAAoB,GAAI,sBAAe,CAAC,aAAa,CAAA;IAC3D,IAAI,oBAAoB,IAAI,IAAI,EAAE,CAAC;QACjC,MAAM,SAAS,GAAG,KAAK,CAAC,IAAI,CAC1B,oBAAoB,EACpB,aAAa,EAAE,EACf,KAAK,EACL,UAAU,GAAG,CAAC,IAAA,iBAAO,GAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CACvC,CAAA;QACD,IAAI,GAAG,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;YAC9B,OAAO,SAAS,CAAA;QAClB,CAAC;aAAM,CAAC;YACN,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,IAAI,CACV,4DAA4D,GAAG,SAAS,CACzE,CAAA;QACH,CAAC;IACH,CAAC;IAED,kEAAkE;IAClE,MAAM,QAAQ,GAAG,MAAM,IAAA,aAAK,EAAC,UAAU,CAAC,CAAA;IACxC,IAAI,QAAQ,IAAI,IAAI,EAAE,CAAC;QACrB,OAAO,QAAQ,CAAA;IACjB,CAAC;IAED,MAAM,IAAI,KAAK,CACb,oEAAoE,CACrE,CAAA;AACH,CAAC;AApDD,oCAoDC"}
|
package/dist/GeoTz.d.ts
CHANGED
package/dist/GeoTz.js
CHANGED
|
@@ -5,13 +5,11 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.geoTz = void 0;
|
|
7
7
|
const tz_lookup_1 = __importDefault(require("@photostructure/tz-lookup"));
|
|
8
|
+
/**
|
|
9
|
+
* @throws if the given latitude and longitude are invalid.
|
|
10
|
+
*/
|
|
8
11
|
function geoTz(lat, lon) {
|
|
9
|
-
|
|
10
|
-
return (0, tz_lookup_1.default)(lat, lon);
|
|
11
|
-
}
|
|
12
|
-
catch {
|
|
13
|
-
return;
|
|
14
|
-
}
|
|
12
|
+
return (0, tz_lookup_1.default)(lat, lon);
|
|
15
13
|
}
|
|
16
14
|
exports.geoTz = geoTz;
|
|
17
15
|
//# sourceMappingURL=GeoTz.js.map
|
package/dist/GeoTz.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GeoTz.js","sourceRoot":"","sources":["../src/GeoTz.ts"],"names":[],"mappings":";;;;;;AAAA,0EAAiD;AAGjD,SAAgB,KAAK,CAAC,GAAW,EAAE,GAAW;IAC5C,
|
|
1
|
+
{"version":3,"file":"GeoTz.js","sourceRoot":"","sources":["../src/GeoTz.ts"],"names":[],"mappings":";;;;;;AAAA,0EAAiD;AAGjD;;GAEG;AACH,SAAgB,KAAK,CAAC,GAAW,EAAE,GAAW;IAC5C,OAAO,IAAA,mBAAS,EAAC,GAAG,EAAE,GAAG,CAAC,CAAA;AAC5B,CAAC;AAFD,sBAEC"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* These tags are only available if {@link ExifToolOptions.geolocation} is true and the file
|
|
3
|
+
* has valid GPS location data.
|
|
4
|
+
*
|
|
5
|
+
* @see https://exiftool.org/geolocation.html#Read
|
|
6
|
+
*/
|
|
7
|
+
export interface GeolocationTags {
|
|
8
|
+
/** ββββ β Example: 99 */
|
|
9
|
+
GeolocationBearing?: number;
|
|
10
|
+
/** ββββ β Example: "ZΓΌrich" */
|
|
11
|
+
GeolocationCity?: string;
|
|
12
|
+
/** ββββ β Example: "United States" */
|
|
13
|
+
GeolocationCountry?: string;
|
|
14
|
+
/** ββββ β Example: "US" */
|
|
15
|
+
GeolocationCountryCode?: string;
|
|
16
|
+
/** ββββ β Example: "9.60 km" */
|
|
17
|
+
GeolocationDistance?: string;
|
|
18
|
+
/** ββββ β Example: "PPLL"
|
|
19
|
+
* @see http://www.geonames.org/export/codes.html#P
|
|
20
|
+
*/
|
|
21
|
+
GeolocationFeatureCode?: string;
|
|
22
|
+
/** ββββ β Example: 95000 */
|
|
23
|
+
GeolocationPopulation?: number;
|
|
24
|
+
/** ββββ β Example: "7.3397, 134.4733" */
|
|
25
|
+
GeolocationPosition?: string;
|
|
26
|
+
/** ββββ β Example: "Γle-de-France" */
|
|
27
|
+
GeolocationRegion?: string;
|
|
28
|
+
/** ββββ β Example: "Yokohama Shi" */
|
|
29
|
+
GeolocationSubregion?: string;
|
|
30
|
+
/** ββββ β Example: "Pacific/Saipan"
|
|
31
|
+
*
|
|
32
|
+
* IANA time zone name
|
|
33
|
+
*
|
|
34
|
+
* @see https://en.wikipedia.org/wiki/List_of_tz_database_time_zones
|
|
35
|
+
*/
|
|
36
|
+
GeolocationTimeZone?: string;
|
|
37
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"GeolocationTags.js","sourceRoot":"","sources":["../src/GeolocationTags.ts"],"names":[],"mappings":""}
|
package/dist/ReadTask.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { ExifToolTask } from "./ExifToolTask";
|
|
2
2
|
import { Tags } from "./Tags";
|
|
3
|
-
export declare const ReadTaskOptionFields:
|
|
3
|
+
export declare const ReadTaskOptionFields: ["backfillTimezones", "defaultVideosToUTC", "geoTz", "geolocation", "ignoreZeroZeroLatLon", "imageHashType", "includeImageDataMD5", "inferTimezoneFromDatestamps", "inferTimezoneFromDatestampTags", "numericTags", "useMWG"];
|
|
4
4
|
export declare function nullish(s: string | undefined): s is undefined;
|
|
5
5
|
export declare const DefaultReadTaskOptions: {
|
|
6
6
|
readonly includeImageDataMD5: boolean | undefined;
|
|
@@ -13,6 +13,7 @@ export declare const DefaultReadTaskOptions: {
|
|
|
13
13
|
readonly inferTimezoneFromDatestampTags: (keyof Tags)[];
|
|
14
14
|
readonly ignoreZeroZeroLatLon: boolean;
|
|
15
15
|
readonly geoTz: typeof import("./GeoTz").geoTz;
|
|
16
|
+
readonly geolocation: boolean;
|
|
16
17
|
readonly optionalArgs: string[];
|
|
17
18
|
};
|
|
18
19
|
export type ReadTaskOptions = typeof DefaultReadTaskOptions;
|
|
@@ -22,14 +23,6 @@ export declare class ReadTask extends ExifToolTask<Tags> {
|
|
|
22
23
|
readonly args: string[];
|
|
23
24
|
readonly options: ReadTaskOptions;
|
|
24
25
|
private readonly degroup;
|
|
25
|
-
private _raw;
|
|
26
|
-
private _rawDegrouped;
|
|
27
|
-
private readonly tags;
|
|
28
|
-
private lat;
|
|
29
|
-
private lon;
|
|
30
|
-
private invalidLatLon;
|
|
31
|
-
private tz;
|
|
32
|
-
private tzSource?;
|
|
33
26
|
private constructor();
|
|
34
27
|
static for(filename: string, options: Partial<ReadTaskOptions>): ReadTask;
|
|
35
28
|
toString(): string;
|