exiftool-vendored 28.8.0 → 29.1.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.
Files changed (121) hide show
  1. package/CHANGELOG.md +40 -4
  2. package/README.md +22 -22
  3. package/SECURITY.md +1 -2
  4. package/dist/Array.d.ts +4 -4
  5. package/dist/Array.js +8 -10
  6. package/dist/Array.js.map +1 -1
  7. package/dist/AsyncRetry.js.map +1 -1
  8. package/dist/BinaryExtractionTask.d.ts +4 -2
  9. package/dist/BinaryExtractionTask.js +8 -5
  10. package/dist/BinaryExtractionTask.js.map +1 -1
  11. package/dist/BinaryField.js +2 -0
  12. package/dist/BinaryField.js.map +1 -1
  13. package/dist/BinaryToBufferTask.js +5 -5
  14. package/dist/BinaryToBufferTask.js.map +1 -1
  15. package/dist/Boolean.d.ts +1 -1
  16. package/dist/Boolean.js.map +1 -1
  17. package/dist/CapturedAtTagNames.js.map +1 -1
  18. package/dist/CoordinateParser.d.ts +59 -0
  19. package/dist/CoordinateParser.js +286 -0
  20. package/dist/CoordinateParser.js.map +1 -0
  21. package/dist/DateTime.d.ts +1 -1
  22. package/dist/DateTime.js +4 -5
  23. package/dist/DateTime.js.map +1 -1
  24. package/dist/DefaultCreateDateTagNames.js.map +1 -1
  25. package/dist/DefaultExifToolOptions.js +20 -7
  26. package/dist/DefaultExifToolOptions.js.map +1 -1
  27. package/dist/DefaultExiftoolArgs.js.map +1 -1
  28. package/dist/DefaultMaxProcs.js +17 -7
  29. package/dist/DefaultMaxProcs.js.map +1 -1
  30. package/dist/DeleteAllTagsArgs.js.map +1 -1
  31. package/dist/ErrorsAndWarnings.d.ts +5 -1
  32. package/dist/ErrorsAndWarnings.js +11 -2
  33. package/dist/ErrorsAndWarnings.js.map +1 -1
  34. package/dist/ExifDate.js +7 -2
  35. package/dist/ExifDate.js.map +1 -1
  36. package/dist/ExifDateTime.d.ts +2 -2
  37. package/dist/ExifDateTime.js +63 -67
  38. package/dist/ExifDateTime.js.map +1 -1
  39. package/dist/ExifTime.js +19 -26
  40. package/dist/ExifTime.js.map +1 -1
  41. package/dist/ExifTool.d.ts +28 -24
  42. package/dist/ExifTool.js +97 -81
  43. package/dist/ExifTool.js.map +1 -1
  44. package/dist/ExifToolOptions.d.ts +8 -0
  45. package/dist/ExifToolOptions.js.map +1 -1
  46. package/dist/ExifToolTags.js +0 -1
  47. package/dist/ExifToolTags.js.map +1 -1
  48. package/dist/ExifToolTask.js +38 -33
  49. package/dist/ExifToolTask.js.map +1 -1
  50. package/dist/ExifToolVendoredTags.js.map +1 -1
  51. package/dist/ExiftoolPath.js +27 -12
  52. package/dist/ExiftoolPath.js.map +1 -1
  53. package/dist/File.d.ts +2 -0
  54. package/dist/File.js +16 -1
  55. package/dist/File.js.map +1 -1
  56. package/dist/FileTags.d.ts +3 -2
  57. package/dist/FileTags.js +3 -2
  58. package/dist/FileTags.js.map +1 -1
  59. package/dist/FilenameCharsetArgs.js.map +1 -1
  60. package/dist/FirstDateTime.js +1 -1
  61. package/dist/FirstDateTime.js.map +1 -1
  62. package/dist/GPS.d.ts +18 -0
  63. package/dist/GPS.js +116 -0
  64. package/dist/GPS.js.map +1 -0
  65. package/dist/GeoTz.js.map +1 -1
  66. package/dist/GeolocationTags.d.ts +1 -1
  67. package/dist/GeolocationTags.js +16 -14
  68. package/dist/GeolocationTags.js.map +1 -1
  69. package/dist/IsWarning.js.map +1 -1
  70. package/dist/IsWin32.js +17 -7
  71. package/dist/IsWin32.js.map +1 -1
  72. package/dist/JSON.js +4 -1
  73. package/dist/JSON.js.map +1 -1
  74. package/dist/Lazy.js +2 -1
  75. package/dist/Lazy.js.map +1 -1
  76. package/dist/Maybe.js.map +1 -1
  77. package/dist/Number.d.ts +18 -3
  78. package/dist/Number.js +36 -1
  79. package/dist/Number.js.map +1 -1
  80. package/dist/Object.d.ts +4 -4
  81. package/dist/Object.js +8 -8
  82. package/dist/Object.js.map +1 -1
  83. package/dist/OnlyZerosRE.js.map +1 -1
  84. package/dist/Pick.js.map +1 -1
  85. package/dist/ReadRawTask.js +20 -8
  86. package/dist/ReadRawTask.js.map +1 -1
  87. package/dist/ReadTask.d.ts +1 -1
  88. package/dist/ReadTask.js +233 -264
  89. package/dist/ReadTask.js.map +1 -1
  90. package/dist/ResourceEvent.d.ts +1 -1
  91. package/dist/ResourceEvent.js +1 -1
  92. package/dist/ResourceEvent.js.map +1 -1
  93. package/dist/RewriteAllTagsTask.js +19 -9
  94. package/dist/RewriteAllTagsTask.js.map +1 -1
  95. package/dist/Sidecars.js.map +1 -1
  96. package/dist/String.d.ts +8 -4
  97. package/dist/String.js +7 -3
  98. package/dist/String.js.map +1 -1
  99. package/dist/Struct.d.ts +1 -1
  100. package/dist/Struct.js +1 -2
  101. package/dist/Struct.js.map +1 -1
  102. package/dist/Tags.d.ts +154 -152
  103. package/dist/TimeParsing.js +6 -8
  104. package/dist/TimeParsing.js.map +1 -1
  105. package/dist/Times.d.ts +6 -0
  106. package/dist/Times.js +7 -3
  107. package/dist/Times.js.map +1 -1
  108. package/dist/Timezones.d.ts +5 -4
  109. package/dist/Timezones.js +71 -41
  110. package/dist/Timezones.js.map +1 -1
  111. package/dist/Version.d.ts +1 -1
  112. package/dist/Version.js +1 -1
  113. package/dist/Version.js.map +1 -1
  114. package/dist/VersionTask.js +1 -1
  115. package/dist/VersionTask.js.map +1 -1
  116. package/dist/Which.js.map +1 -1
  117. package/dist/WriteTags.d.ts +6 -1
  118. package/dist/WriteTask.js +71 -25
  119. package/dist/WriteTask.js.map +1 -1
  120. package/eslint.config.mjs +34 -0
  121. package/package.json +21 -19
package/dist/Tags.d.ts CHANGED
@@ -18,7 +18,7 @@ import { Version } from "./Version";
18
18
  export interface ExifToolTags {
19
19
  /** ☆☆☆☆ ✔ Example: "File is empty" */
20
20
  Error?: string;
21
- /** ★★★★ ✔ Example: 13 */
21
+ /** ★★★★ ✔ Example: 13.16 */
22
22
  ExifToolVersion?: number;
23
23
  /** ☆☆☆☆ Example: "path/to/file.jpg" */
24
24
  SourceFile?: string;
@@ -44,11 +44,11 @@ export interface FileTags {
44
44
  EncodingProcess?: string;
45
45
  /** ★★★★ ✔ Example: "Little-endian (Intel, II)" */
46
46
  ExifByteOrder?: string;
47
- /** ★★★★ ✔ Example: "2024:10:29 12:25:32-07:00" */
47
+ /** ★★★★ ✔ Example: "2025:01:29 11:37:49-08:00" */
48
48
  FileAccessDate?: ExifDateTime | string;
49
49
  /** ☆☆☆☆ Example: */
50
50
  FileCreateDate?: ExifDateTime | string;
51
- /** ★★★★ ✔ Example: "2024:10:23 16:05:23-07:00" */
51
+ /** ★★★★ ✔ Example: "2025:01:25 21:09:20-08:00" */
52
52
  FileInodeChangeDate?: ExifDateTime | string;
53
53
  /** ★★★★ ✔ Example: "2024:06:15 18:39:22-07:00" */
54
54
  FileModifyDate?: ExifDateTime | string;
@@ -83,6 +83,95 @@ export interface FileTags {
83
83
  /** ★★★★ ✔ Example: "YCbCr4:4:4 (1 1)" */
84
84
  YCbCrSubSampling?: string;
85
85
  }
86
+ /**
87
+ * These are tags are derived from the values of one or more other tags.
88
+ * Only a few are writable directly.
89
+ * @see https://exiftool.org/TagNames/Composite.html
90
+ */
91
+ export interface CompositeTags {
92
+ /** ☆☆☆☆ ✔ Example: "Unknown (49 5)" */
93
+ AdvancedSceneMode?: string;
94
+ /** ★★★★ ✔ Example: 90 */
95
+ Aperture?: number;
96
+ /** ☆☆☆☆ ✔ Example: "On" */
97
+ AutoFocus?: string;
98
+ /** ☆☆☆☆ ✔ Example: "8.7 Mbps" */
99
+ AvgBitrate?: string;
100
+ /** ★★☆☆ ✔ Example: 46 */
101
+ BlueBalance?: number;
102
+ /** ☆☆☆☆ ✔ Example: "[Red,Green][Green,Blue]" */
103
+ CFAPattern?: string;
104
+ /** ★★★★ ✔ Example: "1.030 mm" */
105
+ CircleOfConfusion?: string;
106
+ /** ☆☆☆☆ ✔ Example: 0 */
107
+ ConditionalFEC?: number;
108
+ /** ☆☆☆☆ ✔ Example: "2021:03:16 18:14:25" */
109
+ DigitalCreationDateTime?: ExifDateTime | string;
110
+ /** ★★☆☆ ✔ Example: "inf (9.66 m - inf)" */
111
+ DOF?: string;
112
+ /** ★★☆☆ ✔ Example: "Unknown (3152)" */
113
+ DriveMode?: string;
114
+ /** ☆☆☆☆ ✔ Example: "Not attached" */
115
+ ExtenderStatus?: string;
116
+ /** ☆☆☆☆ ✔ Example: "Optional,TTL" */
117
+ FlashType?: string;
118
+ /** ★★★★ ✔ Example: "99.7 mm (35 mm equivalent: 554.0 mm)" */
119
+ FocalLength35efl?: string;
120
+ /** ★★★★ ✔ Example: "97.7 deg" */
121
+ FOV?: string;
122
+ /** ☆☆☆☆ ✔ Example: "2024:04:21 04:09:51Z" */
123
+ GPSDateTime?: ExifDateTime | string;
124
+ /** ☆☆☆☆ ✔ Example: "7.196465 134.376806666667" */
125
+ GPSPosition?: string;
126
+ /** ★★★★ ✔ Example: "Inf m" */
127
+ HyperfocalDistance?: string;
128
+ /** ★★★★ ✔ Example: "8x8" */
129
+ ImageSize?: string;
130
+ /** ★★☆☆ ✔ Example: "smc PENTAX-D FA 50mm F2.8 Macro" */
131
+ Lens?: string;
132
+ /** ★★☆☆ ✔ Example: "9.2 - 92.0 mm (35 mm equivalent: 24.9 - 248.8 mm)" */
133
+ Lens35efl?: string;
134
+ /** ★★☆☆ ✔ Example: "smc PENTAX-FA 28-105mm F3.2-4.5 AL[IF]" */
135
+ LensID?: string;
136
+ /** ★★★★ ✔ Example: 9.9 */
137
+ LightValue?: number;
138
+ /** ★★★★ ✔ Example: 9.5 */
139
+ Megapixels?: number;
140
+ /** ☆☆☆☆ ✔ Example: "(Binary data 512 bytes, use -b option to extract)" */
141
+ OriginalDecisionData?: BinaryField | string;
142
+ /** ☆☆☆☆ Example: "9.9 um" */
143
+ PeakSpectralSensitivity?: string;
144
+ /** ★★★☆ ✔ Example: "(Binary data 37244 bytes, use -b option to extract)" */
145
+ PreviewImage?: BinaryField;
146
+ /** ★★☆☆ ✔ Example: 38.625 */
147
+ RedBalance?: number;
148
+ /** ☆☆☆☆ ✔ Example: "On" */
149
+ RedEyeReduction?: string;
150
+ /** ☆☆☆☆ Example: 11.2 */
151
+ RicohPitch?: number;
152
+ /** ☆☆☆☆ Example: 1.59 */
153
+ RicohRoll?: number;
154
+ /** ★☆☆☆ ✔ Example: "Unknown (0)" */
155
+ Rotation?: number;
156
+ /** ☆☆☆☆ ✔ Example: "9:30:01" */
157
+ RunTimeSincePowerUp?: string;
158
+ /** ★★★★ ✔ Example: 9.9 */
159
+ ScaleFactor35efl?: number;
160
+ /** ★★☆☆ ✔ Example: "Unknown (83)" */
161
+ ShootingMode?: string;
162
+ /** ☆☆☆☆ ✔ Example: "1st-curtain sync" */
163
+ ShutterCurtainHack?: string;
164
+ /** ★★★★ ✔ Example: "inf" */
165
+ ShutterSpeed?: string;
166
+ /** ★☆☆☆ ✔ Example: "2024:07:01 09:39:41.09+00:00" */
167
+ SubSecCreateDate?: ExifDateTime | string;
168
+ /** ★☆☆☆ ✔ Example: "2024:07:01 09:39:41.09+00:00" */
169
+ SubSecDateTimeOriginal?: ExifDateTime | string;
170
+ /** ☆☆☆☆ Example: */
171
+ SubSecMediaCreateDate?: ExifDateTime | string;
172
+ /** ★☆☆☆ ✔ Example: "2024:07:01 09:39:41.09+00:00" */
173
+ SubSecModifyDate?: ExifDateTime | string;
174
+ }
86
175
  export interface APPTags {
87
176
  /** ☆☆☆☆ Example: "59 128 128" */
88
177
  AboveColor?: string;
@@ -156,7 +245,7 @@ export interface APPTags {
156
245
  DCTEncodeVersion?: number;
157
246
  /** ☆☆☆☆ ✔ Example: "Photo Global Settings" */
158
247
  DeviceName?: string;
159
- /** ☆☆☆☆ Example: "(Binary data 1998654 bytes, use -b option to extract)" */
248
+ /** ☆☆☆☆ Example: "(Binary data 1011393 bytes, use -b option to extract)" */
160
249
  EmbeddedImage?: BinaryField | string;
161
250
  /** ☆☆☆☆ Example: 960 */
162
251
  EmbeddedImageHeight?: number;
@@ -216,8 +305,8 @@ export interface APPTags {
216
305
  GPSTrack?: number;
217
306
  /** ☆☆☆☆ ✔ Example: "True North" */
218
307
  GPSTrackRef?: string;
219
- /** ☆☆☆☆ Example: "Yes" */
220
- GPSValid?: string;
308
+ /** ☆☆☆☆ Example: true */
309
+ GPSValid?: boolean;
221
310
  /** ☆☆☆☆ Example: 2152 */
222
311
  GRgain?: number;
223
312
  /** ☆☆☆☆ Example: 8 */
@@ -298,7 +387,7 @@ export interface APPTags {
298
387
  R5100?: number;
299
388
  /** ☆☆☆☆ ✔ Example: "4_1SEC" */
300
389
  Rate?: string;
301
- /** ☆☆☆☆ Example: "(Binary data 655564 bytes, use -b option to extract)" */
390
+ /** ☆☆☆☆ Example: "(Binary data 614604 bytes, use -b option to extract)" */
302
391
  RawThermalImage?: BinaryField | string;
303
392
  /** ☆☆☆☆ Example: 90 */
304
393
  RawThermalImageHeight?: number;
@@ -369,95 +458,6 @@ export interface APPTags {
369
458
  /** ☆☆☆☆ Example: 9 */
370
459
  ZoomPos?: number;
371
460
  }
372
- /**
373
- * These are tags are derived from the values of one or more other tags.
374
- * Only a few are writable directly.
375
- * @see https://exiftool.org/TagNames/Composite.html
376
- */
377
- export interface CompositeTags {
378
- /** ☆☆☆☆ ✔ Example: "Unknown (49 5)" */
379
- AdvancedSceneMode?: string;
380
- /** ★★★★ ✔ Example: 90 */
381
- Aperture?: number;
382
- /** ☆☆☆☆ ✔ Example: "On" */
383
- AutoFocus?: string;
384
- /** ☆☆☆☆ ✔ Example: "8.7 Mbps" */
385
- AvgBitrate?: string;
386
- /** ★★☆☆ ✔ Example: 46 */
387
- BlueBalance?: number;
388
- /** ☆☆☆☆ ✔ Example: "[Red,Green][Green,Blue]" */
389
- CFAPattern?: string;
390
- /** ★★★★ ✔ Example: "1.030 mm" */
391
- CircleOfConfusion?: string;
392
- /** ☆☆☆☆ ✔ Example: 0 */
393
- ConditionalFEC?: number;
394
- /** ☆☆☆☆ ✔ Example: "2021:03:16 18:14:25" */
395
- DigitalCreationDateTime?: ExifDateTime | string;
396
- /** ★★☆☆ ✔ Example: "inf (9.66 m - inf)" */
397
- DOF?: string;
398
- /** ★★☆☆ ✔ Example: "Unknown (3152)" */
399
- DriveMode?: string;
400
- /** ☆☆☆☆ ✔ Example: "Not attached" */
401
- ExtenderStatus?: string;
402
- /** ☆☆☆☆ ✔ Example: "Optional,TTL" */
403
- FlashType?: string;
404
- /** ★★★★ ✔ Example: "99.7 mm (35 mm equivalent: 554.0 mm)" */
405
- FocalLength35efl?: string;
406
- /** ★★★★ ✔ Example: "97.7 deg" */
407
- FOV?: string;
408
- /** ☆☆☆☆ ✔ Example: "2024:04:21 04:09:51Z" */
409
- GPSDateTime?: ExifDateTime | string;
410
- /** ☆☆☆☆ ✔ Example: "7.196465 134.376806666667" */
411
- GPSPosition?: string;
412
- /** ★★★★ ✔ Example: "Inf m" */
413
- HyperfocalDistance?: string;
414
- /** ★★★★ ✔ Example: "8x8" */
415
- ImageSize?: string;
416
- /** ★★☆☆ ✔ Example: "smc PENTAX-D FA 50mm F2.8 Macro" */
417
- Lens?: string;
418
- /** ★★☆☆ ✔ Example: "9.2 - 92.0 mm (35 mm equivalent: 24.9 - 248.8 mm)" */
419
- Lens35efl?: string;
420
- /** ★★☆☆ ✔ Example: "smc PENTAX-FA 28-105mm F3.2-4.5 AL[IF]" */
421
- LensID?: string;
422
- /** ★★★★ ✔ Example: 9.9 */
423
- LightValue?: number;
424
- /** ★★★★ ✔ Example: 9.5 */
425
- Megapixels?: number;
426
- /** ☆☆☆☆ ✔ Example: "(Binary data 512 bytes, use -b option to extract)" */
427
- OriginalDecisionData?: BinaryField | string;
428
- /** ☆☆☆☆ Example: "9.9 um" */
429
- PeakSpectralSensitivity?: string;
430
- /** ★★★☆ ✔ Example: "(Binary data 315546 bytes, use -b option to extract)" */
431
- PreviewImage?: BinaryField;
432
- /** ★★☆☆ ✔ Example: 38.625 */
433
- RedBalance?: number;
434
- /** ☆☆☆☆ ✔ Example: "On" */
435
- RedEyeReduction?: string;
436
- /** ☆☆☆☆ Example: 11.2 */
437
- RicohPitch?: number;
438
- /** ☆☆☆☆ Example: 1.59 */
439
- RicohRoll?: number;
440
- /** ★☆☆☆ ✔ Example: "Unknown (0)" */
441
- Rotation?: number;
442
- /** ☆☆☆☆ ✔ Example: "9:30:01" */
443
- RunTimeSincePowerUp?: string;
444
- /** ★★★★ ✔ Example: 9.9 */
445
- ScaleFactor35efl?: number;
446
- /** ★★☆☆ ✔ Example: "Unknown (83)" */
447
- ShootingMode?: string;
448
- /** ☆☆☆☆ ✔ Example: "1st-curtain sync" */
449
- ShutterCurtainHack?: string;
450
- /** ★★★★ ✔ Example: "inf" */
451
- ShutterSpeed?: string;
452
- /** ★☆☆☆ ✔ Example: "2024:07:01 09:39:41.09+00:00" */
453
- SubSecCreateDate?: ExifDateTime | string;
454
- /** ★☆☆☆ ✔ Example: "2024:07:01 09:39:41.09+00:00" */
455
- SubSecDateTimeOriginal?: ExifDateTime | string;
456
- /** ☆☆☆☆ Example: */
457
- SubSecMediaCreateDate?: ExifDateTime | string;
458
- /** ★☆☆☆ ✔ Example: "2024:07:01 09:39:41.09+00:00" */
459
- SubSecModifyDate?: ExifDateTime | string;
460
- }
461
461
  /**
462
462
  * @see https://exiftool.org/TagNames/FlashPix.html
463
463
  */
@@ -485,6 +485,10 @@ export interface FlashPixTags {
485
485
  /** ☆☆☆☆ ✔ Example: 1 */
486
486
  UsedExtensionNumbers?: number;
487
487
  }
488
+ export interface JPEGTags {
489
+ /** ☆☆☆☆ ✔ Example: "(Binary data 1458 bytes, use -b option to extract)" */
490
+ HDRGainCurve?: BinaryField | string;
491
+ }
488
492
  export interface JSONTags {
489
493
  /** ☆☆☆☆ Example: 0 */
490
494
  AIScene?: number;
@@ -499,30 +503,6 @@ export interface JSONTags {
499
503
  /** ☆☆☆☆ Example: 1 */
500
504
  ZoomMultiple?: number;
501
505
  }
502
- export interface MPFTags {
503
- /** ★★☆☆ ✔ Example: 9697 */
504
- DependentImage1EntryNumber?: number;
505
- /** ★★☆☆ ✔ Example: 960 */
506
- DependentImage2EntryNumber?: number;
507
- /** ☆☆☆☆ ✔ Example: "(Binary data 66 bytes, use -b option to extract)" */
508
- ImageUIDList?: BinaryField | string;
509
- /** ★★☆☆ ✔ Example: "0100" */
510
- MPFVersion?: string;
511
- /** ★★☆☆ ✔ Example: "Representative image, Dependent parent image" */
512
- MPImageFlags?: string;
513
- /** ★★☆☆ ✔ Example: "Unknown (4)" */
514
- MPImageFormat?: string;
515
- /** ★★☆☆ ✔ Example: 999325 */
516
- MPImageLength?: number;
517
- /** ★★☆☆ ✔ Example: 9999872 */
518
- MPImageStart?: number;
519
- /** ★★☆☆ ✔ Example: "Undefined" */
520
- MPImageType?: string;
521
- /** ★★☆☆ ✔ Example: 3 */
522
- NumberOfImages?: number;
523
- /** ☆☆☆☆ ✔ Example: 1 */
524
- TotalFrames?: number;
525
- }
526
506
  /**
527
507
  * @see https://exiftool.org/TagNames/EXIF.html
528
508
  */
@@ -565,8 +545,6 @@ export interface EXIFTags {
565
545
  CompositeImage?: string;
566
546
  /** ★★★★ ✔ Example: 90 */
567
547
  CompressedBitsPerPixel?: number;
568
- /** ★★★★ ✔ Example: "n/a" */
569
- Contrast?: string;
570
548
  /** ★★★☆ ✔ Example: "© Chuckles McSnortypants, Inc." */
571
549
  Copyright?: string;
572
550
  /** ★★★★ ✔ Example: "2218:09:22 02:32:14" */
@@ -581,8 +559,6 @@ export interface EXIFTags {
581
559
  DefaultCropSize?: string;
582
560
  /** ☆☆☆☆ ✔ Example: "(Binary data 0 bytes, use -b option to extract)" */
583
561
  DeviceSettingDescription?: BinaryField | string;
584
- /** ★★★☆ ✔ Example: 8.1319764 */
585
- DigitalZoomRatio?: number;
586
562
  /** ☆☆☆☆ ✔ Example: "1.3.0.0" */
587
563
  DNGBackwardVersion?: string;
588
564
  /** ☆☆☆☆ ✔ Example: "1.4.0.0" */
@@ -595,8 +571,6 @@ export interface EXIFTags {
595
571
  ExifImageWidth?: number;
596
572
  /** ★☆☆☆ ✔ Example: 83 */
597
573
  ExposureIndex?: number;
598
- /** ★★★★ ✔ Example: "Unknown (Auto exposure)" */
599
- ExposureMode?: string;
600
574
  /** ★★★★ ✔ Example: "iAuto+" */
601
575
  ExposureProgram?: string;
602
576
  /** ★★★★ ✔ Example: "inf" */
@@ -658,11 +632,11 @@ export interface EXIFTags {
658
632
  /** ☆☆☆☆ ✔ Example: "Unknown ()" */
659
633
  GPSImgDirectionRef?: string;
660
634
  /** ★☆☆☆ ✔ Example: 48.857748 */
661
- GPSLatitude?: number;
635
+ GPSLatitude?: number | string;
662
636
  /** ☆☆☆☆ ✔ Example: "Unknown ()" */
663
637
  GPSLatitudeRef?: string;
664
638
  /** ★☆☆☆ ✔ Example: 2.2918888 */
665
- GPSLongitude?: number;
639
+ GPSLongitude?: number | string;
666
640
  /** ☆☆☆☆ ✔ Example: "West" */
667
641
  GPSLongitudeRef?: string;
668
642
  /** ☆☆☆☆ ✔ Example: "WGS84" */
@@ -681,6 +655,8 @@ export interface EXIFTags {
681
655
  GPSStatus?: string;
682
656
  /** ☆☆☆☆ ✔ Example: "23:59:41.001" */
683
657
  GPSTimeStamp?: ExifTime | string;
658
+ /** ★☆☆☆ ✔ Example: "50.51.48.48" */
659
+ GPSVersionID?: string;
684
660
  /** ☆☆☆☆ ✔ Example: 1 */
685
661
  HighISOMultiplierBlue?: number;
686
662
  /** ☆☆☆☆ ✔ Example: 1 */
@@ -701,7 +677,7 @@ export interface EXIFTags {
701
677
  ISO?: number;
702
678
  /** ☆☆☆☆ ✔ Example: 80 */
703
679
  ISOSpeed?: number;
704
- /** ☆☆☆☆ ✔ Example: "(Binary data 772608 bytes, use -b option to extract)" */
680
+ /** ☆☆☆☆ ✔ Example: "(Binary data 687616 bytes, use -b option to extract)" */
705
681
  JpgFromRaw?: BinaryField;
706
682
  /** ☆☆☆☆ ✔ Example: 845574 */
707
683
  JpgFromRawLength?: number;
@@ -811,8 +787,6 @@ export interface EXIFTags {
811
787
  RowsPerStrip?: number;
812
788
  /** ☆☆☆☆ ✔ Example: 3 */
813
789
  SamplesPerPixel?: number;
814
- /** ★★★★ ✔ Example: "n/a" */
815
- Saturation?: string;
816
790
  /** ★★★★ ✔ Example: "Unknown (Standard)" */
817
791
  SceneCaptureType?: string;
818
792
  /** ★★★★ ✔ Example: "Unknown (Directly photographed)" */
@@ -821,8 +795,6 @@ export interface EXIFTags {
821
795
  SensingMethod?: string;
822
796
  /** ★★☆☆ ✔ Example: "Unknown" */
823
797
  SensitivityType?: string;
824
- /** ★★★★ ✔ Example: "n/a" */
825
- Sharpness?: string;
826
798
  /** ★★★☆ ✔ Example: "1/999963365" */
827
799
  ShutterSpeedValue?: string;
828
800
  /** ★★★★ ✔ Example: "https://PhotoStructure.com/" */
@@ -869,7 +841,7 @@ export interface EXIFTags {
869
841
  TileByteCounts?: BinaryField | string;
870
842
  /** ☆☆☆☆ ✔ Example: 512 */
871
843
  TileLength?: number;
872
- /** ☆☆☆☆ ✔ Example: "(Binary data 508 bytes, use -b option to extract)" */
844
+ /** ☆☆☆☆ ✔ Example: "(Binary data 507 bytes, use -b option to extract)" */
873
845
  TileOffsets?: BinaryField | string;
874
846
  /** ☆☆☆☆ ✔ Example: 512 */
875
847
  TileWidth?: number;
@@ -883,8 +855,6 @@ export interface EXIFTags {
883
855
  UserComment?: string;
884
856
  /** ☆☆☆☆ ✔ Example: 0.1 */
885
857
  WaterDepth?: number;
886
- /** ★★★★ ✔ Example: "White Preset" */
887
- WhiteBalance?: string;
888
858
  /** ☆☆☆☆ ✔ Example: 65535 */
889
859
  WhiteLevel?: number;
890
860
  /** ☆☆☆☆ ✔ Example: "9696 8192 8192 7136" */
@@ -910,6 +880,30 @@ export interface EXIFTags {
910
880
  /** ★★★★ ✔ Example: 99 */
911
881
  YResolution?: number;
912
882
  }
883
+ export interface MPFTags {
884
+ /** ★★☆☆ ✔ Example: 9697 */
885
+ DependentImage1EntryNumber?: number;
886
+ /** ★★☆☆ ✔ Example: 960 */
887
+ DependentImage2EntryNumber?: number;
888
+ /** ☆☆☆☆ ✔ Example: "(Binary data 66 bytes, use -b option to extract)" */
889
+ ImageUIDList?: BinaryField | string;
890
+ /** ★★☆☆ ✔ Example: "0100" */
891
+ MPFVersion?: string;
892
+ /** ★★☆☆ ✔ Example: "Representative image, Dependent parent image" */
893
+ MPImageFlags?: string;
894
+ /** ★★☆☆ ✔ Example: "Unknown (4)" */
895
+ MPImageFormat?: string;
896
+ /** ★★☆☆ ✔ Example: 999325 */
897
+ MPImageLength?: number;
898
+ /** ★★☆☆ ✔ Example: 9999872 */
899
+ MPImageStart?: number;
900
+ /** ★★☆☆ ✔ Example: "Undefined" */
901
+ MPImageType?: string;
902
+ /** ★★☆☆ ✔ Example: 3 */
903
+ NumberOfImages?: number;
904
+ /** ☆☆☆☆ ✔ Example: 1 */
905
+ TotalFrames?: number;
906
+ }
913
907
  export interface MetaTags {
914
908
  /** ☆☆☆☆ Example: 1 */
915
909
  BorderID?: number;
@@ -1166,8 +1160,8 @@ export interface QuickTimeTags {
1166
1160
  VendorID?: string;
1167
1161
  /** ☆☆☆☆ ✔ Example: "n/a" */
1168
1162
  VideoFrameRate?: string;
1169
- /** ☆☆☆☆ ✔ Example: 0 */
1170
- VideoFullRangeFlag?: number;
1163
+ /** ☆☆☆☆ ✔ Example: "Limited" */
1164
+ VideoFullRangeFlag?: string;
1171
1165
  }
1172
1166
  export interface RAFTags {
1173
1167
  /** ☆☆☆☆ ✔ Example: "294.2 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 6.8e-05 0.000….001464" */
@@ -1801,7 +1795,7 @@ export interface MakerNotesTags {
1801
1795
  CameraISO?: string;
1802
1796
  /** ☆☆☆☆ ✔ Example: "Unknown (155)" */
1803
1797
  CameraOrientation?: string;
1804
- /** ☆☆☆☆ ✔ Example: "(Binary data 8412 bytes, use -b option to extract)" */
1798
+ /** ☆☆☆☆ ✔ Example: "(Binary data 8290 bytes, use -b option to extract)" */
1805
1799
  CameraParameters?: BinaryField | string;
1806
1800
  /** ☆☆☆☆ ✔ Example: "User Defined 3" */
1807
1801
  CameraPictureStyle?: string;
@@ -2043,6 +2037,8 @@ export interface MakerNotesTags {
2043
2037
  ContinuousShootingSpeed?: string;
2044
2038
  /** ☆☆☆☆ ✔ Example: "Disable; 99 shots" */
2045
2039
  ContinuousShotLimit?: string;
2040
+ /** ★★★★ ✔ Example: "n/a" */
2041
+ Contrast?: string;
2046
2042
  /** ☆☆☆☆ ✔ Example: 0 */
2047
2043
  ContrastAuto?: number;
2048
2044
  /** ☆☆☆☆ ✔ Example: "(Binary data 578 bytes, use -b option to extract)" */
@@ -2203,6 +2199,8 @@ export interface MakerNotesTags {
2203
2199
  DigitalZoom?: string;
2204
2200
  /** ☆☆☆☆ Example: "On" */
2205
2201
  DigitalZoomOn?: string;
2202
+ /** ★★★☆ ✔ Example: 8.1319764 */
2203
+ DigitalZoomRatio?: number;
2206
2204
  /** ☆☆☆☆ ✔ Example: 897 */
2207
2205
  DirectoryIndex?: number;
2208
2206
  /** ☆☆☆☆ ✔ Example: 999 */
@@ -2331,6 +2329,8 @@ export interface MakerNotesTags {
2331
2329
  ExposureIndicator?: number;
2332
2330
  /** ☆☆☆☆ ✔ Example: "1/3-stop set, 1/3-stop comp." */
2333
2331
  ExposureLevelIncrements?: string;
2332
+ /** ★★★★ ✔ Example: "Unknown (Auto exposure)" */
2333
+ ExposureMode?: string;
2334
2334
  /** ☆☆☆☆ ✔ Example: "Spot metering" */
2335
2335
  ExposureModeInManual?: string;
2336
2336
  /** ☆☆☆☆ ✔ Example: 0 */
@@ -2643,12 +2643,8 @@ export interface MakerNotesTags {
2643
2643
  FocusContinuous?: string;
2644
2644
  /** ☆☆☆☆ ✔ Example: "Enable" */
2645
2645
  FocusDisplayAIServoAndMF?: string;
2646
- /** ★☆☆☆ ✔ Example: "inf" */
2647
- FocusDistanceLower?: string;
2648
2646
  /** ☆☆☆☆ ✔ Example: "7.68 - 36.90 m" */
2649
2647
  FocusDistanceRange?: string;
2650
- /** ★☆☆☆ ✔ Example: "inf" */
2651
- FocusDistanceUpper?: string;
2652
2648
  /** ☆☆☆☆ ✔ Example: "475x476" */
2653
2649
  FocusFrameSize?: string;
2654
2650
  /** ☆☆☆☆ ✔ Example: "Focus Hold" */
@@ -3453,7 +3449,7 @@ export interface MakerNotesTags {
3453
3449
  NEFBitDepth?: string;
3454
3450
  /** ☆☆☆☆ ✔ Example: "Uncompressed (reduced to 12 bit)" */
3455
3451
  NEFCompression?: string;
3456
- /** ☆☆☆☆ ✔ Example: "(Binary data 46 bytes, use -b option to extract)" */
3452
+ /** ☆☆☆☆ ✔ Example: "(Binary data 624 bytes, use -b option to extract)" */
3457
3453
  NEFLinearizationTable?: BinaryField | string;
3458
3454
  /** ☆☆☆☆ Example: "Off (Auto)" */
3459
3455
  NeutralDensityFilter?: string;
@@ -3693,8 +3689,8 @@ export interface MakerNotesTags {
3693
3689
  PreviewImageSize?: string;
3694
3690
  /** ★★☆☆ ✔ Example: 9996 */
3695
3691
  PreviewImageStart?: number;
3696
- /** ☆☆☆☆ ✔ Example: "Yes" */
3697
- PreviewImageValid?: string;
3692
+ /** ☆☆☆☆ ✔ Example: true */
3693
+ PreviewImageValid?: boolean;
3698
3694
  /** ☆☆☆☆ ✔ Example: 816 */
3699
3695
  PreviewImageWidth?: number;
3700
3696
  /** ☆☆☆☆ ✔ Example: 95 */
@@ -3889,6 +3885,8 @@ export interface MakerNotesTags {
3889
3885
  SanyoQuality?: string;
3890
3886
  /** ☆☆☆☆ Example: "(Binary data 10313 bytes, use -b option to extract)" */
3891
3887
  SanyoThumbnail?: BinaryField | string;
3888
+ /** ★★★★ ✔ Example: "n/a" */
3889
+ Saturation?: string;
3892
3890
  /** ☆☆☆☆ ✔ Example: 1 */
3893
3891
  SaturationAdj?: number;
3894
3892
  /** ☆☆☆☆ ✔ Example: 0 */
@@ -4027,6 +4025,8 @@ export interface MakerNotesTags {
4027
4025
  ShakeReduction?: string;
4028
4026
  /** ☆☆☆☆ Example: "Normal" */
4029
4027
  Sharpening?: string;
4028
+ /** ★★★★ ✔ Example: "n/a" */
4029
+ Sharpness?: string;
4030
4030
  /** ☆☆☆☆ ✔ Example: 3 */
4031
4031
  SharpnessAuto?: number;
4032
4032
  /** ☆☆☆☆ ✔ Example: 768 */
@@ -4303,7 +4303,7 @@ export interface MakerNotesTags {
4303
4303
  ToneCurve?: string;
4304
4304
  /** ☆☆☆☆ ✔ Example: "(Binary data 95 bytes, use -b option to extract)" */
4305
4305
  ToneCurveMatching?: BinaryField | string;
4306
- /** ☆☆☆☆ ✔ Example: "(Binary data 1505 bytes, use -b option to extract)" */
4306
+ /** ☆☆☆☆ ✔ Example: "(Binary data 1679 bytes, use -b option to extract)" */
4307
4307
  ToneCurveTable?: BinaryField | string;
4308
4308
  /** ☆☆☆☆ ✔ Example: "Highlights; 0; -7; 7; Shadows; 0; -7; 7; Midtones; 0; -7;…0; 0; 0" */
4309
4309
  ToneLevel?: string;
@@ -4447,6 +4447,8 @@ export interface MakerNotesTags {
4447
4447
  WBShiftGM?: number;
4448
4448
  /** ☆☆☆☆ ✔ Example: 0 */
4449
4449
  WBShiftIntelligentAuto?: number;
4450
+ /** ★★★★ ✔ Example: "White Preset" */
4451
+ WhiteBalance?: string;
4450
4452
  /** ☆☆☆☆ ✔ Example: "On" */
4451
4453
  WhiteBalanceAutoAdjustment?: string;
4452
4454
  /** ☆☆☆☆ ✔ Example: 0 */
@@ -4471,7 +4473,7 @@ export interface MakerNotesTags {
4471
4473
  WhiteBalanceSetting?: string;
4472
4474
  /** ☆☆☆☆ ✔ Example: "Auto" */
4473
4475
  WhiteBalanceSetup?: string;
4474
- /** ☆☆☆☆ ✔ Example: "(Binary data 2201 bytes, use -b option to extract)" */
4476
+ /** ☆☆☆☆ ✔ Example: "(Binary data 2217 bytes, use -b option to extract)" */
4475
4477
  WhiteBalanceTable?: BinaryField | string;
4476
4478
  /** ☆☆☆☆ ✔ Example: "Auto" */
4477
4479
  WhiteBalanceTemperature?: string;
@@ -4744,7 +4746,7 @@ export interface XMPTags {
4744
4746
  HasSettings?: boolean;
4745
4747
  /** ☆☆☆☆ ✔ Example: "(Binary data 23388 bytes, use -b option to extract)" */
4746
4748
  HdrPlusMakernote?: BinaryField | string;
4747
- /** ☆☆☆☆ ✔ Example: "(Binary data 23317 bytes, use -b option to extract)" */
4749
+ /** ☆☆☆☆ ✔ Example: "(Binary data 22075 bytes, use -b option to extract)" */
4748
4750
  HDRPMakerNote?: BinaryField | string;
4749
4751
  /** ☆☆☆☆ ✔ Example: ["点像F11"] */
4750
4752
  HierarchicalSubject?: string[];
@@ -5092,10 +5094,10 @@ export interface XMPTags {
5092
5094
  * - a checkmark if the tag is used by popular devices (like iPhones), and
5093
5095
  * - an example value, JSON stringified.
5094
5096
  *
5095
- * Autogenerated by "npm run mktags" by ExifTool 13.00 on Tue Oct 29 2024.
5096
- * 2753 unique tags were found in 10128 photo and video files.
5097
+ * Autogenerated by "npm run mktags" by ExifTool 13.16 on Wed Jan 29 2025.
5098
+ * 2754 unique tags were found in 10128 photo and video files.
5097
5099
  *
5098
5100
  * @see https://exiftool.org/TagNames/
5099
5101
  */
5100
- export interface Tags extends APPTags, CompositeTags, EXIFTags, ExifToolTags, ExifToolVendoredTags, FileTags, FlashPixTags, GeolocationTags, ICCProfileTags, IPTCApplicationRecordTags, IPTCTags, ImageDataHashTag, JFIFTags, JSONTags, MPFTags, MWGCollectionsTags, MWGKeywordTags, MakerNotesTags, MetaTags, PanasonicRawTags, PhotoshopTags, PrintIMTags, QuickTimeTags, RAFTags, RIFFTags, XMPTags {
5102
+ export interface Tags extends APPTags, CompositeTags, EXIFTags, ExifToolTags, ExifToolVendoredTags, FileTags, FlashPixTags, GeolocationTags, ICCProfileTags, IPTCApplicationRecordTags, IPTCTags, ImageDataHashTag, JFIFTags, JPEGTags, JSONTags, MPFTags, MWGCollectionsTags, MWGKeywordTags, MakerNotesTags, MetaTags, PanasonicRawTags, PhotoshopTags, PrintIMTags, QuickTimeTags, RAFTags, RIFFTags, XMPTags {
5101
5103
  }
@@ -14,9 +14,8 @@ const TimeFmts = [
14
14
  { fmt: "HH:mm", unsetMilliseconds: true },
15
15
  ];
16
16
  function* timeFormats(args) {
17
- var _a;
18
17
  const inferredZone = (0, String_1.notBlank)(args.defaultZone);
19
- for (const prefix of (_a = args.formatPrefixes) !== null && _a !== void 0 ? _a : [""]) {
18
+ for (const prefix of args.formatPrefixes ?? [""]) {
20
19
  for (const timeFmt of TimeFmts) {
21
20
  yield {
22
21
  fmt: prefix + timeFmt.fmt,
@@ -28,21 +27,20 @@ function* timeFormats(args) {
28
27
  }
29
28
  }
30
29
  function parseDateTime(text, fmts) {
31
- var _a, _b, _c, _d;
32
30
  const s = (0, String_1.toS)(text).trim();
33
31
  if (s.length === 0)
34
32
  return;
35
33
  const extractedZone = (0, Timezones_1.extractZone)(s);
36
- const input = (_a = extractedZone === null || extractedZone === void 0 ? void 0 : extractedZone.leftovers) !== null && _a !== void 0 ? _a : s;
34
+ const input = extractedZone?.leftovers ?? s;
37
35
  for (const ea of fmts) {
38
36
  const dt = luxon_1.DateTime.fromFormat(input, ea.fmt, {
39
37
  setZone: true,
40
- zone: (_c = (_b = extractedZone === null || extractedZone === void 0 ? void 0 : extractedZone.tz) !== null && _b !== void 0 ? _b : ea.zone) !== null && _c !== void 0 ? _c : Timezones_1.UnsetZone,
38
+ zone: extractedZone?.tz ?? ea.zone ?? Timezones_1.UnsetZone,
41
39
  });
42
40
  if (dt == null || !dt.isValid)
43
41
  continue;
44
- const unsetZone = (extractedZone === null || extractedZone === void 0 ? void 0 : extractedZone.tz) == null && (dt.zone == null || dt.zone === Timezones_1.UnsetZone);
45
- let inferredZone = (extractedZone === null || extractedZone === void 0 ? void 0 : extractedZone.tz) != null || unsetZone ? false : ea.inferredZone;
42
+ const unsetZone = extractedZone?.tz == null && (dt.zone == null || dt.zone === Timezones_1.UnsetZone);
43
+ let inferredZone = extractedZone?.tz != null || unsetZone ? false : ea.inferredZone;
46
44
  if (inferredZone == null) {
47
45
  // this is pretty miserable, but luxon doesn't expose _how_ it got
48
46
  // the zone, so we have to resort to this hack to see if the zone
@@ -56,7 +54,7 @@ function parseDateTime(text, fmts) {
56
54
  unsetZone,
57
55
  inferredZone,
58
56
  input,
59
- unsetMilliseconds: (_d = ea.unsetMilliseconds) !== null && _d !== void 0 ? _d : false,
57
+ unsetMilliseconds: ea.unsetMilliseconds ?? false,
60
58
  };
61
59
  }
62
60
  return;
@@ -1 +1 @@
1
- {"version":3,"file":"TimeParsing.js","sourceRoot":"","sources":["../src/TimeParsing.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"TimeParsing.js","sourceRoot":"","sources":["../src/TimeParsing.ts"],"names":[],"mappings":"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"}
package/dist/Times.d.ts CHANGED
@@ -1 +1,7 @@
1
+ /**
2
+ * Generates an array by running a function n times
3
+ * @param n The number of times to run the function
4
+ * @param fn The function to generate each element
5
+ * @returns An array containing the results
6
+ */
1
7
  export declare function times<T>(n: number, f: (idx: number) => T): T[];
package/dist/Times.js CHANGED
@@ -1,9 +1,13 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.times = times;
4
+ /**
5
+ * Generates an array by running a function n times
6
+ * @param n The number of times to run the function
7
+ * @param fn The function to generate each element
8
+ * @returns An array containing the results
9
+ */
4
10
  function times(n, f) {
5
- return Array(n)
6
- .fill(undefined)
7
- .map((_, i) => f(i));
11
+ return Array.from({ length: n }, (_, i) => f(i));
8
12
  }
9
13
  //# sourceMappingURL=Times.js.map
package/dist/Times.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"Times.js","sourceRoot":"","sources":["../src/Times.ts"],"names":[],"mappings":";;AAAA,sBAIC;AAJD,SAAgB,KAAK,CAAI,CAAS,EAAE,CAAqB;IACvD,OAAO,KAAK,CAAC,CAAC,CAAC;SACZ,IAAI,CAAC,SAAS,CAAC;SACf,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;AACxB,CAAC"}
1
+ {"version":3,"file":"Times.js","sourceRoot":"","sources":["../src/Times.ts"],"names":[],"mappings":";;AAMA,sBAEC;AARD;;;;;GAKG;AACH,SAAgB,KAAK,CAAI,CAAS,EAAE,CAAqB;IACvD,OAAO,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACnD,CAAC"}