Exiftool Vendored.js Versions Save

Fast, cross-platform Node.js access to ExifTool

v24.0.0

5 months ago
  • 💔 ExifTool.write now returns metadata describing how many files were unchanged, updated, or created, and no longer throws an error if the operation is a no-op. It is up to you to inspect .warnings and decide for your own usecase if the issue is exceptional. See issue #162 for details.

  • 💔 In the interests of reducing complexity, the ExifToolOptions.isIgnorableError predicate field was removed -- if this was used by anyone, please open an issue and we can talk about it.

  • .warnings are returned by ExifTool.read and ExifTool.write tasks if there are non-critical warnings emitted to stderr by ExifTool.

  • 📦 Some fields in Tags were moved to more correct groups

  • 📦 Refined WriteTags signature to omit ExifToolTags and FileTags fields.

  • 📦 Added node: prefix to Node.js module imports. This requires node v14.13, v16.0, or later.

Commits

  • yarn docs (b3fd735)
  • Revisit warning and error handling: - Delete ExifToolOptions.isIgnorableError predicate - Add .warnings to .read and .write results - Promote custom WriteTask error/warning handling to ExifToolTask - Extract WriteTag-related types from ExifTool.ts to avoid circular references - mktags handles duplicate-named tags in different groups properly now. First group in wins. - rebuild tags (79f5dbe)
  • rebuild docs (87840cb)
  • update devDependencies (d4807da)
  • prep v24.0.0 (e781762)
  • fix #162 (c3a58bf)
  • prep v24.0.0 (a93a191)
  • Replace all node imports with node: prefixes (55a84be)

v23.7.0

5 months ago
  • 📦 Added MWG .HierarchicalKeywords and .Collections to Tags

  • 🐞/📦 Rotation was removed from the default set of numericTags, as it may be encoded as an EXIF orientation value, or a degree rotation, and it should be up to the application to figure it out.

Commits

  • meh let's bump minor (3acdca1)
  • prep release (b5ab5a5)
  • rebuild docs (ca86cfe)
  • update deps (47142e6)
  • Add more MWG tags to Tags (40c66a3)
  • Remove Rotation as being a numeric field--it may be EXIF.Orientation-encoded. (d71e92d)
  • add jsdoc (d729af8)

v23.6.0

6 months ago
  • 📦 Added new option, ignoreZeroZeroLatLon, and defaulted this new option to true. Several camera manufacturers and image applications will write 0 to the GPSLatitude and GPSLongitude tags when they mean "unset"--but this can cause incorrect timezone inference. Set to false to retain prior code behavior.

  • 📦 Rotation was added to the default set of numericTags, as it may be encoded as an EXIF orientation value. Prior builds could return Rotation values like "Rotate 270 CW".

  • 📦 XMPTags.Notes was added to Tags, used as an album description

  • 🐞 Some ExifToolOptions were not passed from ExifTool into the ReadTask, which caused ReadTask to revert to defaults.

Commits

  • changelog twiddle (8683f1f)
  • prep release - update changelog - force-add Notes field - rebuild tags and docs (537933d)
  • ReadTask improvements - DRY up option pick for ReadTask to fix missing fields - Add new ignoreZeroZeroLatLon option (5a6c914)
  • yarn u (ab096a1)
  • Add Rotation as a numeric tag (14a44a6)
  • add node 21 (b56f12a)

Full Changelog: https://github.com/photostructure/exiftool-vendored.js/compare/v23.5.0...v23.6.0

v23.5.0

6 months ago
  • 🌱 ExifTool upgraded to v12.70. 🏆 Thanks for 20 years of updates, Phil Harvey! 🏆

  • 📦 XMPTags.Album was added to Tags

Commits

  • prep v23.5 (343b969)
  • Merge branch 'main' of github.com:photostructure/exiftool-vendored.js (882befb)
  • yarn docs (24fde25)
  • mktags (dcae4b4)
  • prep v23.5 (574fa02)
  • force-add XMPTags.Album (9f0fdd5)
  • yarn u (59eacd5)
  • diffs from new prettier (4473194)
  • Bump actions/setup-node from 3 to 4 (3b64111)

v23.4.0

7 months ago
  • 🌱 ExifTool upgraded to v12.69

  • 📦 ExifTool.read: ExifTime now adopts the default zone extracted from the file. This may result in different values for timestamps.

  • 📦 Updated dependencies

Commits

  • update readme, rebuild docs. (980fb48)
  • Use default zone for ExifTime on .read() (1b03442)
  • Pull in new ExifTool v12.69. Rebuild tags and docs. (11c2e85)
  • Enable regex linting. Fix linting errors. yarn u. yarn docs. (df569e6)
  • yarn docs (56f8a79)
  • yarn u (bc9c77d)
  • yarn docs (19cb90f)
  • if a tag has "subsec", assume it may be parsed by ExifDateTime (40ca600)
  • delete commented-out code (924e605)
  • fix dangling paren. mention PhotoStructure. (591ff4a)

v23.3.0

7 months ago
  • restore Exif(Date)?(Time)? parsing for "when" tags (9ee6e1f)

v23.2.0

8 months ago
  • replace jsdoc reference of DefaultCreateDateTagNames with CapturedAtTagNames (ce23a32)
  • DRY up DefaultCreateDateTagNames and CapturedAtTagNames. Rebuild docs. (816af93)
  • Timezone improvements: - Fix extractTzOffsetFromUTCOffset type signature to use CapturedAtTagNames directly. - Fix GpsDateTimeStamp to not write to the underlying tags object - use correct isUTC() (52be3b4)
  • Update CapturedAtTagNames.ts (2ccb925)
  • Timezone parsing improvements: - add isZoneValid() backstop - extract zoneToShortOffset() - improve normalizeZone() and extractZone() - add instance tests for Version, Struct, and - rebuild Tags - rebuild docs (5cad294)
  • yarn u (5698008)

v23.1.0

8 months ago
  • pull in ExifTool v12.67. Rebuild tags and docs. (d9f0063)
  • yarn docs (4a509a2)
  • don't test emoji in filenames on windows (c2eb83c)
  • revert mistaken tz backfill condition (8c76df0)
  • rebuild tags, docs, and update changelog (35883b9)
  • yarn docs. prep changelog. (ed7bf9e)
  • Date/Time parsing improvements to fix #157: - timezone validation is against a static list of all known timezone offsets (as a backstop against issue #157) - datetime and time parsing now handle timezone extraction, as the luxon 'Z' token is currently broken. - ExifTime now has a zone - extracted parsing into new TimeParsing - date/time parsing now uses a generator for template generation, which avoids some array GC - add a ton of new parsing tests (b722751)
  • add yarn u script (409bd88)
  • add SecondMs and improve typing for validDateTime() (f2a6d7e)
  • delete commented console.log lines (bb10b8c)
  • trivial pad improvements: - stricter input typing - avoid recursive call for negative numbers - add test for negative inputs that are longer than padlen (8bd1e9a)

v23.0.0

8 months ago
  • yarn docs (c97bfba)
  • defaultVideosToUTC/backfillTimezones improvements
    • if backfillTimezones=false, no timezone defaults are used unless the file is a video and defaultVideosToUTC=true
    • backfillTimezones now defaults to true - use new ExifDateTime.inferredZone to determine when to backfill zones
    • avoid File stat tags (which use SystemZone) as a candidate EDT for zone adoption
    • if defaultVideosToUTC=true, Tags.tz isn't forced to UTC anymore if we can extract a reasonable zone, but we still parse all datestamps with a UTC default backstop (fbabbce)
  • add "inferred zone" field to ExifDateTime (used by backfillTimezones) (b98e193)
  • TZ improvements: - don't adopt FileCreateDate or FileModifyDate offsets - support hour-only timezone offset suffixes (0aa0e07)
  • drop node 16 from the build (50ad810)
  • Merge branch 'main' of github.com:photostructure/exiftool-vendored.js (ea9791a)
  • ncu -u (244539f)
  • try to repro issue #156 (22fe149)
  • Bump actions/checkout from 3 to 4 (2dda07a)

v22.2.3

8 months ago
  • Add more parsing prefilters to ExifDate and more tests to Exif* parsers. (cf1d59b)