fix(deps): update dependency exiftool-vendored to v31#22922
Closed
renovate[bot] wants to merge 1 commit intomainfrom
Closed
fix(deps): update dependency exiftool-vendored to v31#22922renovate[bot] wants to merge 1 commit intomainfrom
renovate[bot] wants to merge 1 commit intomainfrom
Conversation
7e6dc20 to
508de93
Compare
Member
|
Superseded by #21445 |
Contributor
Author
Renovate Ignore NotificationBecause you closed this PR without merging, Renovate will ignore this update. You will not get PRs for any future If you accidentally closed this PR, or if you changed your mind: rename this PR to get a fresh replacement PR. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This PR contains the following updates:
^28.8.0->^31.0.0^28.3.1->^31.0.0Warning
Some dependencies could not be looked up. Check the Dependency Dashboard for more information.
Release Notes
photostructure/exiftool-vendored.js (exiftool-vendored)
v31.1.0Compare Source
Tags.ts: fields that live in multiple groups are now included in every group. Prior versions would pick the first-seen group for these fields, and that was nondeterministic between versions.TagMetadata.jsonkeys are sorted to minimize later per-version diffsFile:Commentwas writable? TIL!)v31.0.0Compare Source
Tags.tswith new exiftool v13.37 and additional newer exemplar test images. Several prior fields (that hopefully no one is using) were dropped, and new fields were added (see the git diff of Tags.ts from the prior release for details)v30.5.0Compare Source
v30.4.0Compare Source
🌱 Upgraded ExifTool to version 13.34.
📦 Upgrade to batch-cluster v15.0.1 which includes a macos and linux /proc permission workaround, and is now built with OIDC, so it includes https://www.npmjs.com/package/batch-cluster#user-content-provenance
📦 Automated publishing (like batch-cluster!), so https://www.npmjs.com/package/exiftool-vendored#user-content-provenance will be a thing
v30.3.0Compare Source
🌱 Upgraded ExifTool to version 13.31.
✨ Added Disposable interface support for automatic resource cleanup:
ExifToolnow implements bothDisposableandAsyncDisposableinterfacesusing et = new ExifTool()for automatic synchronous cleanup (TypeScript 5.2+)await using et = new ExifTool()for automatic asynchronous cleanupdisposalTimeoutMs(default: 1000ms) andasyncDisposalTimeoutMs(default: 5000ms).end()method unchanged✨ Enhanced JSDoc annotations for Tags interface with emoji-based visual hierarchy:
even more crypticsemantic JSDoc tags@frequency 🔥 ★★★★ (85%)combines device type, visual rating, and exact percentagedata/TagMetadata.jsonwith programmatic access to frequency, mainstream flags, and groupsv30.2.0Compare Source
StrEnumwith iterator support and JSDocv30.1.0Compare Source
🌱 Upgraded ExifTool to version 13.30.
🐞 Fixed
ExifToolVersionto be astring. Prior versions usedexiftool's JSON representation, which rendered a numeric float. This caused versions like "12.3" and "12.30" to appear identical. We now preserve the exact version string to enable proper version comparisons.✨ Added partial date support for
ExifDateclass. XMP date tags (likeXMP:CreateDate,XMP:MetadataDate) now support:1980(numeric) or"1980"(string)"1980:08"(EXIF format) or"1980-08"(ISO format)"1980:08:13"(unchanged)✨ Enhanced
ExifDatewith type-safe predicates:isYearOnly(): Returnstruefor year-only dates with type narrowingisYearMonth(): Returnstruefor year-month dates with type narrowingisFullDate(): Returnstruefor complete dates with type narrowingisPartial(): Returnstruefor year-only or year-month dates✨ Added compositional TypeScript interfaces:
ExifDateYearOnly:{year: number}ExifDateYearMonth extends ExifDateYearOnly:{year: number, month: number}ExifDateFull extends ExifDateYearMonth:{year: number, month: number, day: number}✨ Enhanced
WriteTagsinterface with group-prefixed tag support:"XMP:CreateDate","XMP:MetadataDate", etc. accept partial dates"EXIF:CreateDate", etc. require full dates (type-safe distinction)📦 Docs are now automatically updated via GitHub Actions
📦 Added comprehensive test coverage (47 new tests) for partial date functionality
📦 Upgrade to batch-cluster v14.0.0 which removes the requirement for
procpson most linux distributions.v30.0.0Compare Source
🏚️ Dropped support for Node v18, whose End-of-Life was 2025-04-30.
🌱 Upgraded ExifTool to version 13.29.
✨ Added new
TagNamesstring enumeration with the most popular 2,500(ish) tag field names that is automatically updated bymktags. As a reminder: theTagsinterface 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).📦 Renamed the
.tzfield inTagsto.zone. Note that for the next few releases,.tzwill be kept, but marked as deprecated. After doing a bit of research, it turns out the correct term for identifiers likeAmerica/Los_Angeleswithin 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).✨ Updating to new versions of ExifTool is now fully automated via GitHub Actions.
v29.3.0Compare Source
🌱 Upgraded ExifTool to version 13.26.
✨ Added support for 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.
v29.2.0Compare Source
🌱 Upgraded ExifTool to version 13.25.
✨ ExifTool.write now supports
booleanfield values. Thanks for the suggestion, Kira-Kitsune.📦 Updated the default for maxProcs to use availableParallelism where available.
v29.1.0Compare Source
🌱 Upgraded ExifTool to version 13.17. Note that this release includes seventeen ExifTool version bumps (from November 2024 through January 2025--Phil Harvey has been busy!). Although I haven't seen any breaking changes in the Tags generation or test suite with the new versions, please do your own validation.
✨ Thanks to Mert for adding forceWrite to binary tag extraction.
✨ ExifTool's Geolocation feature seems to work around some obscure GPS encoding issues where the decimal sign gets ignored. This project now leverages that "corrected" GPS location by adopting the hemisphere signs, which seems to fix this issue.
🐞 Removed
OffsetTimefrom the list of Timezone offset tags we infer tz from. Thanks for the heads-up, Carsten Otto!📦 Updated to the latest
eslint, which required rewriting the config, and delinting the new nits📦 Deleted most of the
prettierconfig to accept their defaults. This created a huge no-op commit but now it's over.v29.0.0Compare Source
💔/🐞/📦 ExifTool sometimes returns
booleanvalues for some tags, likeSemanticStylePreset, but uses "Yes" or "No" values for other tags, likeGPSValid(TIL!). If the tag name ends inValidand 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
streamFlushMillisto10. 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 yourstreamFlushMillis.💔 TypeScript now emits ES2022, which requires Node.js 18.
GPS improvements
🐞/📦 GPS Latitude and GPS Longitude values are now parsed from DMS notation, 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
GPSLatitudeandGPSLongitudeto theExifToolOptions.numericTagsarray.🐞/📦 If
ExifToolOptions.geolocationis enabled, andGeolocationPositionexists, 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*andGeolocation*metadata will be omitted fromExifTool.readTags(). Prior versions let some values (likeGPSCoordinates) 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 setGPSLatitudeRefandGPSLongitudeRefif lat/lon are provided but references are unspecified. More tests were added to verify this workaround. On reads,GPSLatitudeRefandGPSLongitudeRefwill 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
ignoreZeroZeroLatLonandgeolocationweretrue, (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.
Configuration
📅 Schedule: Branch creation - "before 9am 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.