exiftool-vendored 21.5.1 → 22.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 (51) hide show
  1. package/CHANGELOG.md +17 -0
  2. package/RELEASE.md +13 -7
  3. package/dist/Array.d.ts +13 -2
  4. package/dist/Array.js +58 -7
  5. package/dist/Array.js.map +1 -1
  6. package/dist/BinaryField.js.map +1 -1
  7. package/dist/BinaryToBufferTask.js.map +1 -1
  8. package/dist/DateTime.d.ts +3 -0
  9. package/dist/DateTime.js +5 -1
  10. package/dist/DateTime.js.map +1 -1
  11. package/dist/DefaultExifToolOptions.js +6 -1
  12. package/dist/DefaultExifToolOptions.js.map +1 -1
  13. package/dist/DefaultExiftoolArgs.js +1 -0
  14. package/dist/DefaultExiftoolArgs.js.map +1 -1
  15. package/dist/ExifDate.d.ts +1 -0
  16. package/dist/ExifDate.js +6 -0
  17. package/dist/ExifDate.js.map +1 -1
  18. package/dist/ExifDateTime.d.ts +3 -0
  19. package/dist/ExifDateTime.js +17 -0
  20. package/dist/ExifDateTime.js.map +1 -1
  21. package/dist/ExifTool.d.ts +18 -14
  22. package/dist/ExifTool.js +47 -11
  23. package/dist/ExifTool.js.map +1 -1
  24. package/dist/ExifToolOptions.d.ts +38 -8
  25. package/dist/ExifToolOptions.js +8 -0
  26. package/dist/ExifToolOptions.js.map +1 -1
  27. package/dist/ImageDataHashTag.d.ts +11 -0
  28. package/dist/ImageDataHashTag.js +3 -0
  29. package/dist/ImageDataHashTag.js.map +1 -0
  30. package/dist/Lazy.js +6 -2
  31. package/dist/Lazy.js.map +1 -1
  32. package/dist/Object.js +1 -1
  33. package/dist/Object.js.map +1 -1
  34. package/dist/ReadTask.d.ts +6 -5
  35. package/dist/ReadTask.js +90 -64
  36. package/dist/ReadTask.js.map +1 -1
  37. package/dist/String.js +3 -3
  38. package/dist/String.js.map +1 -1
  39. package/dist/Tags.d.ts +57 -56
  40. package/dist/Times.d.ts +1 -0
  41. package/dist/Times.js +10 -0
  42. package/dist/Times.js.map +1 -0
  43. package/dist/Timezones.d.ts +6 -14
  44. package/dist/Timezones.js +71 -25
  45. package/dist/Timezones.js.map +1 -1
  46. package/dist/VersionTask.js +1 -1
  47. package/dist/VersionTask.js.map +1 -1
  48. package/dist/Which.d.ts +2 -0
  49. package/dist/Which.js +23 -0
  50. package/dist/Which.js.map +1 -0
  51. package/package.json +23 -27
package/dist/Timezones.js CHANGED
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.extractTzOffsetFromUTCOffset = exports.inferLikelyOffsetMinutes = exports.extractTzOffsetFromTags = exports.extractOffset = exports.offsetMinutesToZoneName = exports.reasonableTzOffsetMinutes = exports.normalizeZone = exports.defaultVideosToUTC = exports.UnsetZoneName = exports.UnsetZone = exports.UnsetZoneOffsetMinutes = exports.MaxTzOffsetHours = void 0;
3
+ exports.equivalentZones = exports.extractTzOffsetFromUTCOffset = exports.inferLikelyOffsetMinutes = exports.extractTzOffsetFromTags = exports.extractOffset = exports.offsetMinutesToZoneName = exports.reasonableTzOffsetMinutes = exports.normalizeZone = exports.defaultVideosToUTC = exports.UnsetZoneName = exports.UnsetZone = exports.UnsetZoneOffsetMinutes = exports.MaxTzOffsetHours = void 0;
4
4
  const luxon_1 = require("luxon");
5
5
  const Array_1 = require("./Array");
6
6
  const CapturedAtTagNames_1 = require("./CapturedAtTagNames");
@@ -74,42 +74,80 @@ function tzHourToOffset(n) {
74
74
  ? offsetMinutesToZoneName(n * 60)
75
75
  : undefined;
76
76
  }
77
- const tzRe = /(?:UTC)?([+-]?)(\d\d?)(?::(\d\d))?/;
77
+ const utcTzRe = /(?:UTC)?(?<sign>[+-]?)(?<hours>\d\d?)(?::(?<minutes>\d\d))?/;
78
+ const timestampTzRe = /(?<sign>[+-])(?<hours>\d\d?):(?<minutes>\d\d)$/;
78
79
  /**
79
80
  * Parse a timezone offset and return the offset minutes
80
81
  */
81
82
  function extractOffset(tz) {
83
+ var _a, _b, _c, _d;
82
84
  if (tz == null || (0, String_1.blank)(tz)) {
83
85
  return undefined;
84
86
  }
85
87
  if ((0, String_1.isString)(tz) && luxon_1.Info.isValidIANAZone(tz)) {
86
88
  return { tz, src: "validIANAZone" };
87
89
  }
88
- return (0, Maybe_1.map)(tzRe.exec(tz), (m) => {
89
- var _a;
90
- return (0, Maybe_1.map)(offsetMinutesToZoneName((m[1] === "-" ? -1 : 1) *
91
- // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
92
- (parseInt(m[2]) * 60 + parseInt((_a = m[3]) !== null && _a !== void 0 ? _a : "0"))), (ea) => ({ tz: ea, src: "offsetMinutesToZoneName" }));
93
- });
90
+ for (const g of (0, Array_1.compact)([
91
+ (_a = utcTzRe.exec(tz)) === null || _a === void 0 ? void 0 : _a.groups,
92
+ (_b = timestampTzRe.exec(tz)) === null || _b === void 0 ? void 0 : _b.groups,
93
+ ])) {
94
+ const tz = offsetMinutesToZoneName((g.sign === "-" ? -1 : 1) *
95
+ (parseInt((_c = g.hours) !== null && _c !== void 0 ? _c : "0") * 60 + parseInt((_d = g.minutes) !== null && _d !== void 0 ? _d : "0")));
96
+ if (tz != null)
97
+ return { tz, src: "offsetMinutesToZoneName" };
98
+ }
99
+ return;
94
100
  }
95
101
  exports.extractOffset = extractOffset;
96
- function extractTzOffsetFromTags(t) {
97
- return (0, Maybe_1.firstDefinedThunk)([
98
- () => (0, Maybe_1.first)([
99
- "TimeZone",
100
- "OffsetTime",
101
- "OffsetTimeOriginal",
102
- "OffsetTimeDigitized",
103
- "TimeZoneOffset",
104
- ], (tagName) => (0, Maybe_1.map)(extractOffset(t[tagName]), (ea) => ({
105
- tz: ea.tz,
106
- src: ea.src + " from " + tagName,
107
- }))),
108
- () => (0, Maybe_1.map)(t.TimeZoneOffset, (value) => (0, Maybe_1.map)(tzHourToOffset(Array.isArray(value) ? value[0] : value), (tz) => ({
109
- tz,
110
- src: "TimeZoneOffset",
111
- }))),
112
- ]);
102
+ const TimezoneOffsetTagnames = [
103
+ "TimeZone",
104
+ "OffsetTime",
105
+ /** time zone for DateTimeOriginal, "-08:00" */
106
+ "OffsetTimeOriginal",
107
+ /** time zone for CreateDate, "-08:00" */
108
+ "OffsetTimeDigitized",
109
+ /**
110
+ * 1 or 2 values: 1. The time zone offset of DateTimeOriginal from GMT in
111
+ * hours, 2. If present, the time zone offset of ModifyDate (which we ignore)
112
+ * @see https://www.exiftool.org/TagNames/EXIF.html
113
+ */
114
+ "TimeZoneOffset", // number | number[] | string
115
+ ];
116
+ // The following are a hail-mary to try to get the offset from a
117
+ // created-at tag, and only examined if `inferTimezoneFromDatestamps` is
118
+ // true.
119
+ const CreateDateTagnames = [
120
+ "SubSecCreateDate",
121
+ "CreateDate",
122
+ "SubSecDateTimeOriginal",
123
+ "DateTimeOriginal",
124
+ "SubSecMediaCreateDate",
125
+ "MediaCreateDate",
126
+ "CreationDate",
127
+ "TimeCreated", // < IPTC tag
128
+ ];
129
+ function extractTzOffsetFromTags(t, opts) {
130
+ var _a;
131
+ for (const tagName of [
132
+ ...TimezoneOffsetTagnames,
133
+ ...(((_a = opts === null || opts === void 0 ? void 0 : opts.inferTimezoneFromDatestamps) !== null && _a !== void 0 ? _a : false) ? CreateDateTagnames : []),
134
+ ]) {
135
+ if (t[tagName] != null) {
136
+ const offset = extractOffset(t[tagName]);
137
+ if (offset != null) {
138
+ return { tz: offset.tz, src: tagName };
139
+ }
140
+ }
141
+ }
142
+ if (t.TimeZoneOffset != null) {
143
+ const tz = tzHourToOffset(Array.isArray(t.TimeZoneOffset) ? t.TimeZoneOffset[0] : t.TimeZoneOffset);
144
+ if (tz != null)
145
+ return {
146
+ tz,
147
+ src: "TimeZoneOffset",
148
+ };
149
+ }
150
+ return;
113
151
  }
114
152
  exports.extractTzOffsetFromTags = extractTzOffsetFromTags;
115
153
  // timezone offsets may be on a 15 minute boundary, but if GPS acquisition is
@@ -168,4 +206,12 @@ function extractTzOffsetFromUTCOffset(t) {
168
206
  }));
169
207
  }
170
208
  exports.extractTzOffsetFromUTCOffset = extractTzOffsetFromUTCOffset;
209
+ function equivalentZones(a, b) {
210
+ const az = normalizeZone(a);
211
+ const bz = normalizeZone(b);
212
+ return (az != null &&
213
+ bz != null &&
214
+ (az.equals(bz) || az.offset(Date.now()) === bz.offset(Date.now())));
215
+ }
216
+ exports.equivalentZones = equivalentZones;
171
217
  //# sourceMappingURL=Timezones.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Timezones.js","sourceRoot":"","sources":["../src/Timezones.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Timezones.js","sourceRoot":"","sources":["../src/Timezones.ts"],"names":[],"mappings":"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"}
@@ -16,6 +16,6 @@ class VersionTask extends ExifToolTask_1.ExifToolTask {
16
16
  }
17
17
  }
18
18
  }
19
- VersionTask.versionRegex = /^\d{1,3}\.\d{1,3}(\.\d{1,3}})?$/;
20
19
  exports.VersionTask = VersionTask;
20
+ VersionTask.versionRegex = /^\d{1,3}\.\d{1,3}(\.\d{1,3}})?$/;
21
21
  //# sourceMappingURL=VersionTask.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"VersionTask.js","sourceRoot":"","sources":["../src/VersionTask.ts"],"names":[],"mappings":";;;AAAA,iDAA6C;AAE7C,MAAa,WAAY,SAAQ,2BAAoB;IAGnD;QACE,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,CAAA;IACjB,CAAC;IAES,KAAK,CAAC,KAAa;QAC3B,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,EAAE,CAAA;QAC1B,IAAI,WAAW,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;YACxC,OAAO,KAAK,CAAA;SACb;aAAM;YACL,MAAM,IAAI,KAAK,CAAC,sBAAsB,KAAK,EAAE,CAAC,CAAA;SAC/C;IACH,CAAC;;AAbuB,wBAAY,GAAG,iCAAiC,CAAA;AAD7D,kCAAW"}
1
+ {"version":3,"file":"VersionTask.js","sourceRoot":"","sources":["../src/VersionTask.ts"],"names":[],"mappings":";;;AAAA,iDAA6C;AAE7C,MAAa,WAAY,SAAQ,2BAAoB;IAGnD;QACE,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,CAAA;IACjB,CAAC;IAES,KAAK,CAAC,KAAa;QAC3B,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,EAAE,CAAA;QAC1B,IAAI,WAAW,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;YACxC,OAAO,KAAK,CAAA;SACb;aAAM;YACL,MAAM,IAAI,KAAK,CAAC,sBAAsB,KAAK,EAAE,CAAC,CAAA;SAC/C;IACH,CAAC;;AAdH,kCAeC;AAdyB,wBAAY,GAAG,iCAAiC,CAAA"}
@@ -0,0 +1,2 @@
1
+ import { Maybe } from "./Maybe";
2
+ export declare function which(binary: string): Promise<Maybe<string>>;
package/dist/Which.js ADDED
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.which = void 0;
4
+ const node_fs_1 = require("node:fs");
5
+ const promises_1 = require("node:fs/promises");
6
+ const node_path_1 = require("node:path");
7
+ const node_process_1 = require("node:process");
8
+ const String_1 = require("./String");
9
+ async function which(binary) {
10
+ for (const dir of (0, String_1.toS)(node_process_1.env.PATH).split(node_path_1.delimiter)) {
11
+ const fullPath = (0, node_path_1.join)(dir, binary);
12
+ try {
13
+ await (0, promises_1.access)(fullPath, node_fs_1.constants.R_OK | node_fs_1.constants.X_OK);
14
+ return fullPath;
15
+ }
16
+ catch {
17
+ //
18
+ }
19
+ }
20
+ return;
21
+ }
22
+ exports.which = which;
23
+ //# sourceMappingURL=Which.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Which.js","sourceRoot":"","sources":["../src/Which.ts"],"names":[],"mappings":";;;AAAA,qCAAmC;AACnC,+CAAyC;AACzC,yCAA2C;AAC3C,+CAAkC;AAElC,qCAA8B;AAEvB,KAAK,UAAU,KAAK,CAAC,MAAc;IACxC,KAAK,MAAM,GAAG,IAAI,IAAA,YAAG,EAAC,kBAAG,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,qBAAS,CAAC,EAAE;QAChD,MAAM,QAAQ,GAAG,IAAA,gBAAI,EAAC,GAAG,EAAE,MAAM,CAAC,CAAA;QAClC,IAAI;YACF,MAAM,IAAA,iBAAM,EAAC,QAAQ,EAAE,mBAAS,CAAC,IAAI,GAAG,mBAAS,CAAC,IAAI,CAAC,CAAA;YACvD,OAAO,QAAQ,CAAA;SAChB;QAAC,MAAM;YACN,EAAE;SACH;KACF;IACD,OAAM;AACR,CAAC;AAXD,sBAWC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "exiftool-vendored",
3
- "version": "21.5.1",
3
+ "version": "22.1.0",
4
4
  "description": "Efficient, cross-platform access to ExifTool",
5
5
  "main": "./dist/ExifTool.js",
6
6
  "types": "./dist/ExifTool.d.ts",
@@ -17,8 +17,6 @@
17
17
  "premktags": "yarn compile",
18
18
  "mktags": "node dist/update/mktags.js",
19
19
  "lint": "yarn eslint src --ext .ts",
20
- "organize-imports": "find src -maxdepth 3 -name \\*.ts | grep -v node_modules | xargs --verbose --max-args=64 --max-procs=8 npx organize-imports-cli",
21
- "preprettier": "yarn organize-imports",
22
20
  "prettier": "prettier --write src/*.ts src/**/*.ts",
23
21
  "pretest": "run-p lint compile",
24
22
  "test": "mocha 'dist/*.spec.js'",
@@ -68,53 +66,51 @@
68
66
  ]
69
67
  },
70
68
  "devDependencies": {
71
- "@types/chai": "^4.3.4",
69
+ "@types/chai": "^4.3.5",
72
70
  "@types/chai-as-promised": "^7.1.5",
73
71
  "@types/chai-subset": "^1.3.3",
74
- "@types/fs-extra": "^11.0.1",
75
72
  "@types/globule": "^1.1.6",
76
73
  "@types/he": "^1.2.0",
77
74
  "@types/mocha": "^10.0.1",
78
- "@types/node": "^18.15.11",
75
+ "@types/node": "^20.5.9",
79
76
  "@types/progress": "^2.0.5",
80
77
  "@types/tmp": "^0.2.3",
81
- "@types/xmldom": "^0.1.31",
82
- "@typescript-eslint/eslint-plugin": "^5.58.0",
83
- "@typescript-eslint/parser": "^5.58.0",
84
- "@xmldom/xmldom": "^0.8.7",
85
- "chai": "^4.3.7",
78
+ "@types/xmldom": "^0.1.32",
79
+ "@typescript-eslint/eslint-plugin": "^6.5.0",
80
+ "@typescript-eslint/parser": "^6.5.0",
81
+ "@xmldom/xmldom": "^0.8.10",
82
+ "chai": "^4.3.8",
86
83
  "chai-as-promised": "^7.1.1",
87
84
  "chai-subset": "^1.6.0",
88
- "eslint": "^8.38.0",
89
- "eslint-plugin-import": "^2.27.5",
85
+ "eslint": "^8.48.0",
86
+ "eslint-plugin-import": "^2.28.1",
90
87
  "eslint-plugin-node": "^11.1.0",
91
88
  "extract-zip": "^2.0.1",
92
- "fs-extra": "^11.1.1",
93
89
  "geo-tz": "^7.0.7",
94
90
  "globule": "^1.3.4",
95
91
  "mocha": "^10.2.0",
96
92
  "npm-run-all": "^4.1.5",
97
- "organize-imports-cli": "^0.10.0",
98
- "prettier": "^2.8.7",
93
+ "prettier": "^3.0.3",
94
+ "prettier-plugin-organize-imports": "^3.2.3",
99
95
  "progress": "^2.0.3",
100
- "rimraf": "^5.0.0",
101
- "serve": "^14.2.0",
96
+ "rimraf": "^5.0.1",
97
+ "serve": "^14.2.1",
102
98
  "source-map-support": "^0.5.21",
103
99
  "tmp": "^0.2.1",
104
- "typedoc": "^0.24.1",
105
- "typescript": "~5.0.4",
106
- "xpath": "^0.0.32"
100
+ "typedoc": "^0.25.0",
101
+ "typescript": "^5.2.2",
102
+ "xpath": "^0.0.33"
107
103
  },
108
- "dependencies-note": "@types/luxon is not a devDependency, as our exported TypeScript typings reference luxon types. See <https://github.com/photostructure/exiftool-vendored.js/pull/108>",
104
+ "dependencies-note": "@types/luxon is a proper dependency, not devDependency, as our exported TypeScript typings reference luxon types. See <https://github.com/photostructure/exiftool-vendored.js/pull/108>",
109
105
  "dependencies": {
110
- "@photostructure/tz-lookup": "^7.0.0",
111
- "@types/luxon": "^3.3.0",
106
+ "@photostructure/tz-lookup": "^8.0.0",
107
+ "@types/luxon": "^3.3.2",
112
108
  "batch-cluster": "^12.1.0",
113
109
  "he": "^1.2.0",
114
- "luxon": "^3.3.0"
110
+ "luxon": "^3.4.2"
115
111
  },
116
112
  "optionalDependencies": {
117
- "exiftool-vendored.exe": "12.60.0",
118
- "exiftool-vendored.pl": "12.60.0"
113
+ "exiftool-vendored.exe": "12.65.0",
114
+ "exiftool-vendored.pl": "12.65.0"
119
115
  }
120
116
  }