immich-app / immich

High performance self-hosted photo and video management solution.
https://immich.app
GNU Affero General Public License v3.0
52.37k stars 2.77k forks source link

fix(deps): update dependency exiftool-vendored to v29 #14220

Open renovate[bot] opened 3 days ago

renovate[bot] commented 3 days ago

This PR contains the following updates:

Package Change Age Adoption Passing Confidence
exiftool-vendored (source) ^28.3.1 -> ^29.0.0 age adoption passing confidence

Release Notes

photostructure/exiftool-vendored.js (exiftool-vendored) ### [`v29.0.0`](https://redirect.github.com/photostructure/exiftool-vendored.js/blob/HEAD/CHANGELOG.md#v2900) [Compare Source](https://redirect.github.com/photostructure/exiftool-vendored.js/compare/v28.8.0...v29.0.0) - πŸ’”/🐞/πŸ“¦ ExifTool sometimes returns `boolean` values for some tags, like `SemanticStylePreset`, but uses "Yes" or "No" values for other tags, like `GPSValid` (TIL!). If the tag name ends in `Valid` and is truthy (1, true, "Yes") or falsy (0, false, "No"), we'll convert it to a boolean for you. Note that this is arguably a breaking API change, but it should be what you were already expecting (so is it a bug fix?). See the diff to the Tags interface in this version to verify what types have changed. - πŸ“¦ Reduced `streamFlushMillis` to `10`. This reduced elapsed time for the full test suite by 2.5x on macOS and 3x on Windows, and drops the upper latency bound substantially. Note that this is at the risk of buffered stream collisions between tasks. The (extensive) test suite on Github Actions (whose virtual machines are notoriously slower than molasses) still runs solidly, but if you see internal errors, please open a Github issue and increase your `streamFlushMillis`. - πŸ’” TypeScript now emits ES2022, which requires Node.js 18. ##### GPS improvements - 🐞/πŸ“¦ GPS Latitude and GPS Longitude values are now parsed from [DMS notation](https://en.wikipedia.org/wiki/Degree_\(angle\)#Subdivisions), which seems to avoid some incorrectly signed values in some file formats (especially for some problematic XMP exports, like from Apple Photos). Numeric GPSLatitude and GPSLongitude are still accepted: to avoid the new coordinates parsing code, restore `GPSLatitude` and `GPSLongitude` to the `ExifToolOptions.numericTags` array. - 🐞/πŸ“¦ If `ExifToolOptions.geolocation` is enabled, and `GeolocationPosition` exists, and we got numeric GPS coordinates, we will assume the hemisphere from GeolocationPosition, as that tag seems to correct for more conditions than GPS\*Ref values. - 🐞/πŸ“¦ If the encoded GPS location is invalid, all `GPS*` and `Geolocation*` metadata will be omitted from `ExifTool.readTags()`. Prior versions let some values (like `GPSCoordinates`) from invalid values slip by. A location is invalid if latitude and longitude are 0, out of bounds, either are unspecified. - 🐞/πŸ“¦ Reading and writing GPS latitude and GPS longitude values is surprisingly tricky, and could fail for some file formats due to inconsistent handling of negative values. Now, within `ExifTool.writeTags()`, we will automatically set `GPSLatitudeRef` and `GPSLongitudeRef` if lat/lon are provided but references are unspecified. More tests were added to verify this workaround. On reads, `GPSLatitudeRef` and `GPSLongitudeRef` will be backfilled to be correct. Note that they only return `"N" | "S" | "E" | "W"` now, rather than possibly being the full cardinal direction name. - 🐞 If `ignoreZeroZeroLatLon` and `geolocation` were `true`, (0,0) location timezones could still be inferred in prior versions. - πŸ“¦ GPS coordinates are now round to 6 decimal places (β‰ˆ11cm precision). This exceeds consumer GPS accuracy while simplifying test assertions and reducing noise in comparisons. Previously storing full float precision added complexity without practical benefit. ### [`v28.8.0`](https://redirect.github.com/photostructure/exiftool-vendored.js/blob/HEAD/CHANGELOG.md#v2880) [Compare Source](https://redirect.github.com/photostructure/exiftool-vendored.js/compare/v28.7.0...v28.8.0) **Important:** ExifTool versions use the format `NN.NN` and do not follow semantic versioning. The version from ExifTool will not parse correctly with the `semver` library (for the next 10 versions) since they are zero- padded. - 🌱 Upgraded ExifTool to version [13.00](https://exiftool.org/history.html#13.00) **Note:** ExifTool version numbers increment by 0.01 and do not follow semantic versioning conventions. The changes between version 12.99 and 13.00 are minor updates without any known breaking changes. - πŸ“¦ Added Node.js v23 to the build matrix.

Configuration

πŸ“… Schedule: Branch creation - "on tuesday" (UTC), Automerge - At any time (no schedule defined).

🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

β™» Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

πŸ”• Ignore: Close this PR and you won't be reminded about these updates again.



This PR was generated by Mend Renovate. View the repository job log.