exiftool-vendored 30.0.0 → 30.2.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.
- package/CHANGELOG.md +40 -0
- package/CLAUDE.md +40 -104
- package/README.md +30 -1
- package/RELEASE.md +29 -34
- package/dist/Array.js.map +1 -1
- package/dist/BinaryToBufferTask.js +1 -1
- package/dist/BinaryToBufferTask.js.map +1 -1
- package/dist/CoordinateParser.js +9 -0
- package/dist/CoordinateParser.js.map +1 -1
- package/dist/DateTime.js +1 -1
- package/dist/DateTime.js.map +1 -1
- package/dist/ExifDate.d.ts +47 -7
- package/dist/ExifDate.js +60 -1
- package/dist/ExifDate.js.map +1 -1
- package/dist/ExifDateTime.js +5 -1
- package/dist/ExifDateTime.js.map +1 -1
- package/dist/ExifTool.d.ts +9 -23
- package/dist/ExifTool.js +16 -1
- package/dist/ExifTool.js.map +1 -1
- package/dist/ExifToolVendoredTags.d.ts +0 -1
- package/dist/ExifToolVendoredTags.js +0 -4
- package/dist/ExifToolVendoredTags.js.map +1 -1
- package/dist/ExiftoolPath.js +5 -5
- package/dist/ExiftoolPath.js.map +1 -1
- package/dist/GPS.d.ts +3 -1
- package/dist/GPS.js +4 -15
- package/dist/GPS.js.map +1 -1
- package/dist/GeolocationTags.d.ts +1 -1
- package/dist/GeolocationTags.js +2 -2
- package/dist/GeolocationTags.js.map +1 -1
- package/dist/ICCProfileTags.d.ts +0 -1
- package/dist/ICCProfileTags.js +0 -4
- package/dist/ICCProfileTags.js.map +1 -1
- package/dist/IPTCApplicationRecordTags.d.ts +0 -4
- package/dist/IPTCApplicationRecordTags.js +0 -7
- package/dist/IPTCApplicationRecordTags.js.map +1 -1
- package/dist/ImageDataHashTag.d.ts +0 -1
- package/dist/ImageDataHashTag.js +0 -4
- package/dist/ImageDataHashTag.js.map +1 -1
- package/dist/JSON.d.ts +4 -0
- package/dist/JSON.js +7 -2
- package/dist/JSON.js.map +1 -1
- package/dist/MWGTags.d.ts +0 -8
- package/dist/MWGTags.js +0 -14
- package/dist/MWGTags.js.map +1 -1
- package/dist/Maybe.js +1 -1
- package/dist/Maybe.js.map +1 -1
- package/dist/Object.d.ts +2 -2
- package/dist/Object.js +3 -3
- package/dist/Object.js.map +1 -1
- package/dist/RawTags.d.ts +1 -4
- package/dist/ReadTask.js +5 -2
- package/dist/ReadTask.js.map +1 -1
- package/dist/StrEnum.d.ts +144 -4
- package/dist/StrEnum.js +2 -0
- package/dist/StrEnum.js.map +1 -1
- package/dist/String.js +1 -6
- package/dist/String.js.map +1 -1
- package/dist/Tags.d.ts +167 -171
- package/dist/Tags.js +5 -6
- package/dist/Tags.js.map +1 -1
- package/dist/TimeParsing.js +1 -1
- package/dist/TimeParsing.js.map +1 -1
- package/dist/Timezones.js +3 -1
- package/dist/Timezones.js.map +1 -1
- package/dist/WriteTags.d.ts +18 -2
- package/eslint.config.mjs +37 -18
- package/package.json +12 -11
- package/dist/ExifToolTags.d.ts +0 -7
- package/dist/ExifToolTags.js +0 -19
- package/dist/ExifToolTags.js.map +0 -1
- package/dist/FileTags.d.ts +0 -7
- package/dist/FileTags.js +0 -41
- package/dist/FileTags.js.map +0 -1
package/dist/WriteTags.d.ts
CHANGED
|
@@ -29,11 +29,27 @@ export type AdditionalWriteTags = {
|
|
|
29
29
|
*/
|
|
30
30
|
export type MutableTags = Omit<Tags, keyof (ExifToolTags & FileTags & ErrorsAndWarnings)>;
|
|
31
31
|
export type ExpandedDateTags = {
|
|
32
|
-
[K in keyof MutableTags]: (MutableTags[K] extends ExifDateTime ? ExifDate | ExifDateTime : MutableTags[K]) | string;
|
|
32
|
+
[K in keyof MutableTags]: (MutableTags[K] extends ExifDateTime | string ? ExifDate | ExifDateTime | number : MutableTags[K]) | string | number;
|
|
33
33
|
};
|
|
34
34
|
export type WritableGPSRefs = {
|
|
35
35
|
GPSAltitudeRef?: string | number | null;
|
|
36
36
|
GPSLatitudeRef?: string | number | null;
|
|
37
37
|
GPSLongitudeRef?: string | number | null;
|
|
38
38
|
};
|
|
39
|
-
|
|
39
|
+
type XMPPartialDateTags = {
|
|
40
|
+
"XMP:CreateDate"?: ExifDate | ExifDateTime | string | number;
|
|
41
|
+
"XMP:MetadataDate"?: ExifDate | ExifDateTime | string | number;
|
|
42
|
+
"XMP:ModifyDate"?: ExifDate | ExifDateTime | string | number;
|
|
43
|
+
"XMP:DateCreated"?: ExifDate | ExifDateTime | string | number;
|
|
44
|
+
"XMP:DateTimeOriginal"?: ExifDate | ExifDateTime | string | number;
|
|
45
|
+
"XMP:DateTimeDigitized"?: ExifDate | ExifDateTime | string | number;
|
|
46
|
+
};
|
|
47
|
+
type EXIFStrictDateTags = {
|
|
48
|
+
"EXIF:CreateDate"?: ExifDateTime | string;
|
|
49
|
+
"EXIF:DateTimeOriginal"?: ExifDateTime | string;
|
|
50
|
+
"EXIF:ModifyDate"?: ExifDateTime | string;
|
|
51
|
+
"EXIF:DateTimeDigitized"?: ExifDateTime | string;
|
|
52
|
+
};
|
|
53
|
+
type GroupPrefixedTags = XMPPartialDateTags & EXIFStrictDateTags;
|
|
54
|
+
export type WriteTags = Omit<DefinedOrNullValued<ShortcutTags & AdditionalWriteTags & ExpandedDateTags & StructAppendTags>, keyof WritableGPSRefs> & WritableGPSRefs & GroupPrefixedTags;
|
|
55
|
+
export {};
|
package/eslint.config.mjs
CHANGED
|
@@ -1,34 +1,53 @@
|
|
|
1
1
|
// eslint.config.mjs
|
|
2
|
-
import
|
|
3
|
-
import
|
|
2
|
+
import eslint from "@eslint/js";
|
|
3
|
+
import globals from "globals";
|
|
4
|
+
import tseslint from "typescript-eslint";
|
|
4
5
|
|
|
5
|
-
export default
|
|
6
|
+
export default tseslint.config(
|
|
7
|
+
{
|
|
8
|
+
ignores: ["dist/", "node_modules/", "**/*.d.ts", "coverage/", "docs/"],
|
|
9
|
+
},
|
|
10
|
+
eslint.configs.recommended,
|
|
11
|
+
...tseslint.configs.recommended,
|
|
12
|
+
...tseslint.configs.strict,
|
|
6
13
|
{
|
|
7
14
|
files: ["src/**/*.ts"],
|
|
8
15
|
languageOptions: {
|
|
9
|
-
parser:
|
|
16
|
+
parser: tseslint.parser,
|
|
10
17
|
parserOptions: {
|
|
18
|
+
project: "./tsconfig.json",
|
|
11
19
|
ecmaVersion: "latest",
|
|
12
20
|
sourceType: "module",
|
|
13
|
-
project: "./tsconfig.json",
|
|
14
21
|
},
|
|
22
|
+
globals: globals.node,
|
|
15
23
|
},
|
|
16
|
-
|
|
17
|
-
|
|
24
|
+
rules: {
|
|
25
|
+
// Enable strict rules for main library code
|
|
26
|
+
"@typescript-eslint/no-explicit-any": "error",
|
|
27
|
+
"@typescript-eslint/no-unused-vars": [
|
|
28
|
+
"error",
|
|
29
|
+
{ argsIgnorePattern: "^_" },
|
|
30
|
+
],
|
|
31
|
+
"@typescript-eslint/prefer-nullish-coalescing": "error",
|
|
32
|
+
"@typescript-eslint/prefer-optional-chain": "error",
|
|
18
33
|
},
|
|
34
|
+
},
|
|
35
|
+
{
|
|
36
|
+
files: ["src/**/*.spec.ts", "src/update/**/*.ts"],
|
|
19
37
|
rules: {
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
38
|
+
// Relax rules for test files and build scripts
|
|
39
|
+
"@typescript-eslint/no-explicit-any": "off",
|
|
40
|
+
"@typescript-eslint/no-unused-expressions": "off",
|
|
41
|
+
"@typescript-eslint/no-non-null-assertion": "off",
|
|
23
42
|
},
|
|
24
43
|
},
|
|
25
44
|
{
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
"
|
|
32
|
-
|
|
45
|
+
files: ["**/*.js", "**/*.mjs"],
|
|
46
|
+
languageOptions: {
|
|
47
|
+
globals: globals.node,
|
|
48
|
+
},
|
|
49
|
+
rules: {
|
|
50
|
+
"@typescript-eslint/no-require-imports": "off",
|
|
51
|
+
},
|
|
33
52
|
},
|
|
34
|
-
|
|
53
|
+
);
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "exiftool-vendored",
|
|
3
|
-
"version": "30.
|
|
3
|
+
"version": "30.2.0",
|
|
4
4
|
"description": "Efficient, cross-platform access to ExifTool",
|
|
5
5
|
"main": "./dist/ExifTool.js",
|
|
6
6
|
"types": "./dist/ExifTool.d.ts",
|
|
@@ -25,11 +25,9 @@
|
|
|
25
25
|
"fmt": "prettier --write src/*.ts src/**/*.ts **/*.yml **/*.json **/*.md",
|
|
26
26
|
"pretest": "npm run compile",
|
|
27
27
|
"test": "mocha 'dist/*.spec.js'",
|
|
28
|
-
"docs:
|
|
29
|
-
"docs:
|
|
30
|
-
"docs
|
|
31
|
-
"docs:5": "serve docs",
|
|
32
|
-
"docs": "run-s docs:*",
|
|
28
|
+
"docs:build": "typedoc --options .typedoc.js",
|
|
29
|
+
"docs:serve": "npm run docs:build && cp .serve.json docs/serve.json && touch docs/.nojekyll && serve docs",
|
|
30
|
+
"docs": "npm run docs:serve",
|
|
33
31
|
"release": "release-it"
|
|
34
32
|
},
|
|
35
33
|
"repository": {
|
|
@@ -91,8 +89,9 @@
|
|
|
91
89
|
"@types/globule": "^1.1.9",
|
|
92
90
|
"@types/he": "^1.2.3",
|
|
93
91
|
"@types/mocha": "^10.0.10",
|
|
94
|
-
"@types/node": "^22.15.
|
|
92
|
+
"@types/node": "^22.15.21",
|
|
95
93
|
"@types/progress": "^2.0.7",
|
|
94
|
+
"@types/source-map-support": "^0.5.10",
|
|
96
95
|
"@types/tmp": "^0.2.6",
|
|
97
96
|
"@types/xmldom": "^0.1.34",
|
|
98
97
|
"@typescript-eslint/eslint-plugin": "^8.32.1",
|
|
@@ -108,6 +107,7 @@
|
|
|
108
107
|
"eslint-plugin-regexp": "^2.7.0",
|
|
109
108
|
"extract-zip": "^2.0.1",
|
|
110
109
|
"geo-tz": "^8.1.4",
|
|
110
|
+
"globals": "^16.2.0",
|
|
111
111
|
"globule": "^1.3.4",
|
|
112
112
|
"mocha": "^10.8.2",
|
|
113
113
|
"npm-check-updates": "^18.0.1",
|
|
@@ -121,20 +121,21 @@
|
|
|
121
121
|
"source-map-support": "^0.5.21",
|
|
122
122
|
"tmp": "^0.2.3",
|
|
123
123
|
"ts-node": "^10.9.2",
|
|
124
|
-
"typedoc": "^0.28.
|
|
124
|
+
"typedoc": "^0.28.5",
|
|
125
125
|
"typescript": "^5.8.3",
|
|
126
|
+
"typescript-eslint": "^8.32.1",
|
|
126
127
|
"xpath": "^0.0.34"
|
|
127
128
|
},
|
|
128
129
|
"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>",
|
|
129
130
|
"dependencies": {
|
|
130
131
|
"@photostructure/tz-lookup": "^11.2.0",
|
|
131
132
|
"@types/luxon": "^3.6.2",
|
|
132
|
-
"batch-cluster": "^
|
|
133
|
+
"batch-cluster": "^14.0.0",
|
|
133
134
|
"he": "^1.2.0",
|
|
134
135
|
"luxon": "^3.6.1"
|
|
135
136
|
},
|
|
136
137
|
"optionalDependencies": {
|
|
137
|
-
"exiftool-vendored.exe": "13.
|
|
138
|
-
"exiftool-vendored.pl": "13.
|
|
138
|
+
"exiftool-vendored.exe": "13.30.0",
|
|
139
|
+
"exiftool-vendored.pl": "13.30.0"
|
|
139
140
|
}
|
|
140
141
|
}
|
package/dist/ExifToolTags.d.ts
DELETED
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
import { ExifToolTags } from "./Tags";
|
|
2
|
-
export declare const ExifToolTagNames: (keyof ExifToolTags)[];
|
|
3
|
-
/**
|
|
4
|
-
* Is the given tag name intrinsic to the content of a given file? In other
|
|
5
|
-
* words, is it not an artifact of a metadata field?
|
|
6
|
-
*/
|
|
7
|
-
export declare function isExifToolTag(name: string): name is keyof ExifToolTags;
|
package/dist/ExifToolTags.js
DELETED
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.ExifToolTagNames = void 0;
|
|
4
|
-
exports.isExifToolTag = isExifToolTag;
|
|
5
|
-
const Object_1 = require("./Object");
|
|
6
|
-
exports.ExifToolTagNames = (0, Object_1.keysOf)({
|
|
7
|
-
ExifToolVersion: true,
|
|
8
|
-
SourceFile: true,
|
|
9
|
-
Error: true,
|
|
10
|
-
Warning: true,
|
|
11
|
-
});
|
|
12
|
-
/**
|
|
13
|
-
* Is the given tag name intrinsic to the content of a given file? In other
|
|
14
|
-
* words, is it not an artifact of a metadata field?
|
|
15
|
-
*/
|
|
16
|
-
function isExifToolTag(name) {
|
|
17
|
-
return exports.ExifToolTagNames.includes(name);
|
|
18
|
-
}
|
|
19
|
-
//# sourceMappingURL=ExifToolTags.js.map
|
package/dist/ExifToolTags.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ExifToolTags.js","sourceRoot":"","sources":["../src/ExifToolTags.ts"],"names":[],"mappings":";;;AAcA,sCAEC;AAhBD,qCAAkC;AAGrB,QAAA,gBAAgB,GAAG,IAAA,eAAM,EAAe;IACnD,eAAe,EAAE,IAAI;IACrB,UAAU,EAAE,IAAI;IAChB,KAAK,EAAE,IAAI;IACX,OAAO,EAAE,IAAI;CACd,CAAC,CAAC;AAEH;;;GAGG;AACH,SAAgB,aAAa,CAAC,IAAY;IACxC,OAAO,wBAAgB,CAAC,QAAQ,CAAC,IAA0B,CAAC,CAAC;AAC/D,CAAC"}
|
package/dist/FileTags.d.ts
DELETED
package/dist/FileTags.js
DELETED
|
@@ -1,41 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.isFileTag = isFileTag;
|
|
4
|
-
const Object_1 = require("./Object");
|
|
5
|
-
const FileTagNames = (0, Object_1.keysOf)({
|
|
6
|
-
BMPVersion: true,
|
|
7
|
-
BitsPerSample: true,
|
|
8
|
-
ColorComponents: true,
|
|
9
|
-
CurrentIPTCDigest: true,
|
|
10
|
-
Directory: true,
|
|
11
|
-
EncodingProcess: true,
|
|
12
|
-
ExifByteOrder: true,
|
|
13
|
-
FileAccessDate: true,
|
|
14
|
-
FileCreateDate: true,
|
|
15
|
-
FileInodeChangeDate: true,
|
|
16
|
-
FileModifyDate: true,
|
|
17
|
-
FileName: true,
|
|
18
|
-
FilePermissions: true,
|
|
19
|
-
FileSize: true,
|
|
20
|
-
FileType: true,
|
|
21
|
-
FileTypeExtension: true,
|
|
22
|
-
ImageDataMD5: true,
|
|
23
|
-
ImageHeight: true,
|
|
24
|
-
ImageWidth: true,
|
|
25
|
-
MIMEType: true,
|
|
26
|
-
NumColors: true,
|
|
27
|
-
NumImportantColors: true,
|
|
28
|
-
PixelsPerMeterX: true,
|
|
29
|
-
PixelsPerMeterY: true,
|
|
30
|
-
Planes: true,
|
|
31
|
-
YCbCrSubSampling: true,
|
|
32
|
-
});
|
|
33
|
-
/**
|
|
34
|
-
* Is the given tag name intrinsic to the content of a given file?
|
|
35
|
-
*
|
|
36
|
-
* In other words, is it not an artifact of a metadata field?
|
|
37
|
-
*/
|
|
38
|
-
function isFileTag(name) {
|
|
39
|
-
return FileTagNames.includes(name);
|
|
40
|
-
}
|
|
41
|
-
//# sourceMappingURL=FileTags.js.map
|
package/dist/FileTags.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"FileTags.js","sourceRoot":"","sources":["../src/FileTags.ts"],"names":[],"mappings":";;AAqCA,8BAEC;AAvCD,qCAAkC;AAGlC,MAAM,YAAY,GAAG,IAAA,eAAM,EAAW;IACpC,UAAU,EAAE,IAAI;IAChB,aAAa,EAAE,IAAI;IACnB,eAAe,EAAE,IAAI;IACrB,iBAAiB,EAAE,IAAI;IACvB,SAAS,EAAE,IAAI;IACf,eAAe,EAAE,IAAI;IACrB,aAAa,EAAE,IAAI;IACnB,cAAc,EAAE,IAAI;IACpB,cAAc,EAAE,IAAI;IACpB,mBAAmB,EAAE,IAAI;IACzB,cAAc,EAAE,IAAI;IACpB,QAAQ,EAAE,IAAI;IACd,eAAe,EAAE,IAAI;IACrB,QAAQ,EAAE,IAAI;IACd,QAAQ,EAAE,IAAI;IACd,iBAAiB,EAAE,IAAI;IACvB,YAAY,EAAE,IAAI;IAClB,WAAW,EAAE,IAAI;IACjB,UAAU,EAAE,IAAI;IAChB,QAAQ,EAAE,IAAI;IACd,SAAS,EAAE,IAAI;IACf,kBAAkB,EAAE,IAAI;IACxB,eAAe,EAAE,IAAI;IACrB,eAAe,EAAE,IAAI;IACrB,MAAM,EAAE,IAAI;IACZ,gBAAgB,EAAE,IAAI;CACvB,CAAC,CAAC;AAEH;;;;GAIG;AACH,SAAgB,SAAS,CAAC,IAAY;IACpC,OAAO,YAAY,CAAC,QAAQ,CAAC,IAAsB,CAAC,CAAC;AACvD,CAAC"}
|