exiftool-vendored
Advanced tools
Comparing version 23.3.0 to 23.4.0
@@ -29,2 +29,11 @@ # Changelog/Versioning | ||
### v23.4.0 | ||
- 🌱 ExifTool upgraded to [v12.69](https://exiftool.org/history.html#v12.69) | ||
- 📦 `ExifTool.read`: `ExifTime` now adopts the default zone extracted from | ||
the file. **This may result in different values for timestamps.** | ||
- 📦 Updated dependencies | ||
### v23.3.0 | ||
@@ -60,3 +69,3 @@ | ||
- 📦 Upgrade all deps, but only `devDependencies` were impacted. | ||
- 📦 Updated all dependencies, but only `devDependencies` were impacted. | ||
@@ -63,0 +72,0 @@ ### v23.0.0 |
@@ -38,3 +38,5 @@ "use strict"; | ||
if ((0, String_1.notBlank)(stderr) || !passed) { | ||
const errMsg = (stderr !== null && stderr !== void 0 ? stderr : stdout).trim().replace(/error(:\s*|\b)/i, ""); | ||
const errMsg = (stderr !== null && stderr !== void 0 ? stderr : stdout) | ||
.trim() | ||
.replace(/error(?::\s*|\b)/i, ""); | ||
if (!this.isIgnorableError(errMsg)) { | ||
@@ -41,0 +43,0 @@ this.errors.push(errMsg); |
@@ -5,6 +5,6 @@ import { ExifToolTask } from "./ExifToolTask"; | ||
export declare const DefaultReadTaskOptions: { | ||
readonly includeImageDataMD5: boolean | undefined; | ||
readonly imageHashType: false | "MD5" | "SHA256" | "SHA512"; | ||
readonly useMWG: boolean; | ||
readonly numericTags: string[]; | ||
readonly imageHashType: false | "MD5" | "SHA256" | "SHA512"; | ||
readonly includeImageDataMD5: boolean | undefined; | ||
readonly defaultVideosToUTC: boolean; | ||
@@ -11,0 +11,0 @@ readonly backfillTimezones: boolean; |
@@ -287,3 +287,3 @@ "use strict"; | ||
// Time-only tags have "time" but not "date" in their name: | ||
const keyIncludesTime = /time/i.test(tagName); | ||
const keyIncludesTime = /subsec|time/i.test(tagName); | ||
const keyIncludesDate = /date/i.test(tagName); | ||
@@ -294,3 +294,3 @@ const keyIncludesWhen = /when/i.test(tagName); // < ResourceEvent.When | ||
: undefined)) !== null && _a !== void 0 ? _a : (keyIncludesTime || keyIncludesWhen | ||
? ExifTime_1.ExifTime.fromEXIF(value) | ||
? ExifTime_1.ExifTime.fromEXIF(value, tz) | ||
: undefined)) !== null && _b !== void 0 ? _b : (keyIncludesDate || keyIncludesWhen | ||
@@ -297,0 +297,0 @@ ? ExifDate_1.ExifDate.from(value) |
@@ -83,3 +83,2 @@ "use strict"; | ||
} | ||
// export const localTzOffsetMinutes = lazy(() => DateTime.local().offset, hourMs) | ||
const ValidOffsetMinutes = (0, Lazy_1.lazy)(() => new Set(ValidTimezoneOffsets.map(offsetToMinutes))); | ||
@@ -153,3 +152,3 @@ /** | ||
if (typeof z === "string") { | ||
z = z.replace(/^(Zulu|Z|GMT)(\b|$)/, "UTC"); | ||
z = z.replace(/^(?:Zulu|Z|GMT)(?:\b|$)/, "UTC"); | ||
// Info.normalizeZone("") returns the system zone, which we never want. | ||
@@ -267,3 +266,3 @@ // We also don't need to tease Info.normalizeZone with obviously | ||
// or "Z" | ||
!/[.\d\s](UTC|Z)$/.test(str)) { | ||
!/[.\d\s](?:UTC|Z)$/.test(str)) { | ||
str = str.replace(/\s[a-z]{2,5}$/i, ""); | ||
@@ -270,0 +269,0 @@ } |
@@ -20,3 +20,3 @@ "use strict"; | ||
exports.VersionTask = VersionTask; | ||
VersionTask.versionRegex = /^\d{1,3}\.\d{1,3}(\.\d{1,3}})?$/; | ||
VersionTask.versionRegex = /^\d{1,3}\.\d{1,3}(?:\.\d{1,3})?$/; | ||
//# sourceMappingURL=VersionTask.js.map |
{ | ||
"name": "exiftool-vendored", | ||
"version": "23.3.0", | ||
"version": "23.4.0", | ||
"description": "Efficient, cross-platform access to ExifTool", | ||
@@ -70,14 +70,14 @@ "main": "./dist/ExifTool.js", | ||
"devDependencies": { | ||
"@types/chai": "^4.3.6", | ||
"@types/chai-as-promised": "^7.1.6", | ||
"@types/chai-subset": "^1.3.3", | ||
"@types/globule": "^1.1.7", | ||
"@types/he": "^1.2.1", | ||
"@types/mocha": "^10.0.2", | ||
"@types/node": "^20.8.2", | ||
"@types/progress": "^2.0.5", | ||
"@types/tmp": "^0.2.4", | ||
"@types/xmldom": "^0.1.32", | ||
"@typescript-eslint/eslint-plugin": "^6.7.4", | ||
"@typescript-eslint/parser": "^6.7.4", | ||
"@types/chai": "^4.3.9", | ||
"@types/chai-as-promised": "^7.1.7", | ||
"@types/chai-subset": "^1.3.4", | ||
"@types/globule": "^1.1.8", | ||
"@types/he": "^1.2.2", | ||
"@types/mocha": "^10.0.3", | ||
"@types/node": "^20.8.9", | ||
"@types/progress": "^2.0.6", | ||
"@types/tmp": "^0.2.5", | ||
"@types/xmldom": "^0.1.33", | ||
"@typescript-eslint/eslint-plugin": "^6.9.0", | ||
"@typescript-eslint/parser": "^6.9.0", | ||
"@xmldom/xmldom": "^0.8.10", | ||
@@ -87,5 +87,6 @@ "chai": "^4.3.10", | ||
"chai-subset": "^1.6.0", | ||
"eslint": "^8.50.0", | ||
"eslint-plugin-import": "^2.28.1", | ||
"eslint": "^8.52.0", | ||
"eslint-plugin-import": "^2.29.0", | ||
"eslint-plugin-node": "^11.1.0", | ||
"eslint-plugin-regexp": "^2.1.1", | ||
"extract-zip": "^2.0.1", | ||
@@ -95,3 +96,3 @@ "geo-tz": "^7.0.7", | ||
"mocha": "^10.2.0", | ||
"npm-check-updates": "^16.14.4", | ||
"npm-check-updates": "^16.14.6", | ||
"npm-run-all": "^4.1.5", | ||
@@ -105,3 +106,3 @@ "prettier": "^3.0.3", | ||
"tmp": "^0.2.1", | ||
"typedoc": "^0.25.1", | ||
"typedoc": "^0.25.2", | ||
"typescript": "^5.2.2", | ||
@@ -113,3 +114,3 @@ "xpath": "^0.0.33" | ||
"@photostructure/tz-lookup": "^8.0.0", | ||
"@types/luxon": "^3.3.2", | ||
"@types/luxon": "^3.3.3", | ||
"batch-cluster": "^12.1.0", | ||
@@ -120,5 +121,5 @@ "he": "^1.2.0", | ||
"optionalDependencies": { | ||
"exiftool-vendored.exe": "12.67.0", | ||
"exiftool-vendored.pl": "12.67.0" | ||
"exiftool-vendored.exe": "12.69.0", | ||
"exiftool-vendored.pl": "12.69.0" | ||
} | ||
} |
# exiftool-vendored | ||
**Fast, cross-platform [Node.js](https://nodejs.org/) access to [ExifTool](https://exiftool.org/).** | ||
**Fast, cross-platform [Node.js](https://nodejs.org/) access to [ExifTool](https://exiftool.org/). Built and supported by [PhotoStructure](https://photostructure.com).** | ||
@@ -14,7 +14,9 @@ [](https://www.npmjs.com/package/exiftool-vendored) | ||
_Expect [an order of magnitude faster performance](#performance) than other packages._ | ||
This is the module that [PhotoStructure](https://photostructure.com) (and [500+](https://github.com/photostructure/exiftool-vendored.js/network/dependents) other projects) use for photo and video metadata reading and writing. | ||
1. Proper extraction of | ||
Expect [an order of magnitude faster performance](#performance) than other Node.js ExifTool modules. | ||
- **dates** with [correct timezone offset encoding, when available](#dates)) | ||
1. Best-effort extraction of | ||
- **dates** with [correct timezone offset encoding](#dates) | ||
- **latitudes & longitudes** as floats (where negative values indicate west or south of the meridian) | ||
@@ -30,6 +32,6 @@ | ||
1. **[Robust type definitions](#tags)** of the top 99.5% tags used by over 6,000 | ||
different camera makes and models (see an [example](https://photostructure.github.io/exiftool-vendored.js/interfaces/EXIFTags.html)) | ||
different camera makes and models (see an [example](https://photostructure.github.io/exiftool-vendored.js/interfaces/EXIFTags.html#CreateDate)) | ||
1. **Automated updates** to ExifTool ([as new versions come out | ||
monthly](https://exiftool.org/history.html)) | ||
frequently](https://exiftool.org/history.html)) | ||
@@ -47,12 +49,14 @@ 1. **Robust test coverage**, performed with on [macOS, Linux, and | ||
Note that `exiftool-vendored` provides an installation of ExifTool relevant | ||
for your local platform through | ||
[optionalDependencies](https://docs.npmjs.com/files/package.json#optionaldependencies). | ||
### Installation notes | ||
You shouldn't include either the `exiftool-vendored.exe` or | ||
`exiftool-vendored.pl` as direct dependencies to your project. | ||
- `exiftool-vendored` provides an installation of ExifTool relevant for your | ||
local platform through | ||
[optionalDependencies](https://docs.npmjs.com/files/package.json#optionaldependencies). | ||
If you're installing on a minimal Linux distribution, like | ||
[Alpine](https://alpinelinux.org/), you may need to install `perl` (à la "`apk add perl`"). | ||
- You shouldn't include either the `exiftool-vendored.exe` or | ||
`exiftool-vendored.pl` as direct dependencies to your project, unless you know | ||
what you're doing. | ||
- If you're installing on a minimal Linux distribution, you may need to install `perl`. On Alpine, run `apk add perl`. | ||
## Upgrading | ||
@@ -59,0 +63,0 @@ |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
516157
8812
471
36
+ Addedexiftool-vendored.exe@12.69.0(transitive)
+ Addedexiftool-vendored.pl@12.69.0(transitive)
- Removedexiftool-vendored.exe@12.67.0(transitive)
- Removedexiftool-vendored.pl@12.67.0(transitive)
Updated@types/luxon@^3.3.3