exiftool-vendored 36.1.0 → 37.0.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 +60 -5
- package/CLAUDE.md +2 -1
- package/README.md +124 -35
- package/data/TagMetadata.json +10 -3
- package/dist/ExifTool.d.ts +15 -8
- package/dist/ExifTool.dispose.spec.js +3 -3
- package/dist/ExifTool.dispose.spec.js.map +1 -1
- package/dist/ExifTool.js +11 -9
- package/dist/ExifTool.js.map +1 -1
- package/dist/ExifToolOptions.d.ts +15 -2
- package/dist/ExifToolOptions.js.map +1 -1
- package/dist/ExifToolVendoredTags.d.ts +11 -1
- package/dist/ExifToolVendoredTags.js +1 -1
- package/dist/ExifToolVendoredTags.js.map +1 -1
- package/dist/ExiftoolPath.js +1 -1
- package/dist/ExiftoolPath.js.map +1 -1
- package/dist/InvalidUtf8Bytes.d.ts +20 -0
- package/dist/InvalidUtf8Bytes.js +106 -0
- package/dist/InvalidUtf8Bytes.js.map +1 -0
- package/dist/InvalidUtf8Bytes.spec.d.ts +1 -0
- package/dist/InvalidUtf8Bytes.spec.js +75 -0
- package/dist/InvalidUtf8Bytes.spec.js.map +1 -0
- package/dist/InvalidUtf8Xml.spec.d.ts +1 -0
- package/dist/InvalidUtf8Xml.spec.js +156 -0
- package/dist/InvalidUtf8Xml.spec.js.map +1 -0
- package/dist/JSON.d.ts +1 -0
- package/dist/JSON.js +6 -1
- package/dist/JSON.js.map +1 -1
- package/dist/RawTags.d.ts +9 -2
- package/dist/ReadRawTask.d.ts +1 -0
- package/dist/ReadRawTask.js +16 -3
- package/dist/ReadRawTask.js.map +1 -1
- package/dist/ReadRawTask.spec.js +191 -0
- package/dist/ReadRawTask.spec.js.map +1 -1
- package/dist/ReadTask.js +24 -2
- package/dist/ReadTask.js.map +1 -1
- package/dist/ReadTask.spec.js +52 -0
- package/dist/ReadTask.spec.js.map +1 -1
- package/dist/Tags.d.ts +56 -38
- package/dist/Tags.js +3 -3
- package/dist/Tags.js.map +1 -1
- package/dist/Tags.spec.js +8 -0
- package/dist/Tags.spec.js.map +1 -1
- package/dist/Utf8JsonFilter.d.ts +7 -0
- package/dist/Utf8JsonFilter.js +85 -0
- package/dist/Utf8JsonFilter.js.map +1 -0
- package/dist/update/mktags.js +19 -1
- package/dist/update/mktags.js.map +1 -1
- package/package.json +8 -11
package/dist/ReadRawTask.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ReadRawTask.js","sourceRoot":"","sources":["../src/ReadRawTask.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,iDAAuC;AACvC,iDAAmC;AACnC,qEAAkE;AAClE,2DAAwD;AAExD,iDAA8C;AAC9C,+DAAgE;AAChE,iCAA8B;
|
|
1
|
+
{"version":3,"file":"ReadRawTask.js","sourceRoot":"","sources":["../src/ReadRawTask.ts"],"names":[],"mappings":"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"}
|
package/dist/ReadRawTask.spec.js
CHANGED
|
@@ -6,9 +6,200 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
6
6
|
const promises_1 = require("node:fs/promises");
|
|
7
7
|
const node_path_1 = __importDefault(require("node:path"));
|
|
8
8
|
const ExifTool_1 = require("./ExifTool");
|
|
9
|
+
const InvalidUtf8Bytes_1 = require("./InvalidUtf8Bytes");
|
|
9
10
|
const _chai_spec_1 = require("./_chai.spec");
|
|
10
11
|
after(() => (0, _chai_spec_1.end)(ExifTool_1.exiftool));
|
|
11
12
|
describe("ReadRawTask", () => {
|
|
13
|
+
describe("malformed UTF-8", () => {
|
|
14
|
+
const malformedUtf8File = node_path_1.default.join(_chai_spec_1.testDir, "malformed-utf8.jpg");
|
|
15
|
+
const binaryListFile = node_path_1.default.join(_chai_spec_1.testDir, "malformed-utf8.lfp");
|
|
16
|
+
const binaryCollisionFile = node_path_1.default.join(_chai_spec_1.testDir, "malformed-utf8-collision.mie");
|
|
17
|
+
const customFilter = 'Image::ExifTool::XMP::FixUTF8(\\$_,"X")';
|
|
18
|
+
function withoutInvalidUtf8Bytes(value) {
|
|
19
|
+
const { invalidUtf8Bytes: _, ...rest } = value;
|
|
20
|
+
return rest;
|
|
21
|
+
}
|
|
22
|
+
function legacyUtf8Replacement(value) {
|
|
23
|
+
if (typeof value === "string")
|
|
24
|
+
return value.replaceAll("\uFFFD", "?");
|
|
25
|
+
if (Array.isArray(value))
|
|
26
|
+
return value.map(legacyUtf8Replacement);
|
|
27
|
+
if (value != null && typeof value === "object") {
|
|
28
|
+
return Object.fromEntries(Object.entries(value).map(([key, child]) => [
|
|
29
|
+
key,
|
|
30
|
+
legacyUtf8Replacement(child),
|
|
31
|
+
]));
|
|
32
|
+
}
|
|
33
|
+
return value;
|
|
34
|
+
}
|
|
35
|
+
it("marks malformed scalar and list values without changing valid text", async () => {
|
|
36
|
+
const tags = await ExifTool_1.exiftool.readRaw(malformedUtf8File);
|
|
37
|
+
(0, _chai_spec_1.expect)(tags).to.containSubset({
|
|
38
|
+
City: "\uFFFDK",
|
|
39
|
+
Title: "Authored? 世界",
|
|
40
|
+
Subject: ["Valid? item", "damaged:\uFFFDtail"],
|
|
41
|
+
UserComment: "SKEYս",
|
|
42
|
+
});
|
|
43
|
+
(0, _chai_spec_1.expect)(tags.invalidUtf8Bytes?.City).to.deep.equal(new Uint8Array([0xdc, 0x4b]));
|
|
44
|
+
(0, _chai_spec_1.expect)(tags.invalidUtf8Bytes?.Subject).to.deep.equal({
|
|
45
|
+
1: new Uint8Array([
|
|
46
|
+
0x64, 0x61, 0x6d, 0x61, 0x67, 0x65, 0x64, 0x3a, 0xdc, 0x74, 0x61,
|
|
47
|
+
0x69, 0x6c,
|
|
48
|
+
]),
|
|
49
|
+
});
|
|
50
|
+
(0, _chai_spec_1.expect)(tags.invalidUtf8Bytes?.UserComment).to.deep.equal(new Uint8Array([
|
|
51
|
+
0x53, 0x4b, 0x45, 0x59, 0x00, 0x00, 0x00, 0x00, 0xd5, 0x00, 0xbd,
|
|
52
|
+
]));
|
|
53
|
+
});
|
|
54
|
+
it("mirrors JSON NUL removal before deciding which bytes are malformed", async () => {
|
|
55
|
+
const readArgs = ["-G1", "-UserComment"];
|
|
56
|
+
const marked = await ExifTool_1.exiftool.readRaw(malformedUtf8File, { readArgs });
|
|
57
|
+
const legacy = await ExifTool_1.exiftool.readRaw(malformedUtf8File, {
|
|
58
|
+
readArgs: [...readArgs, "-api", "Filter=1"],
|
|
59
|
+
});
|
|
60
|
+
// The stored bytes d5 00 bd become valid UTF-8 (U+057D) when JSON removes
|
|
61
|
+
// NUL. Repairing before that deletion would incorrectly produce two U+FFFDs.
|
|
62
|
+
(0, _chai_spec_1.expect)(marked).to.containSubset({ "ExifIFD:UserComment": "SKEYս" });
|
|
63
|
+
(0, _chai_spec_1.expect)(marked.invalidUtf8Bytes).to.deep.equal({
|
|
64
|
+
"ExifIFD:UserComment": new Uint8Array([
|
|
65
|
+
0x53, 0x4b, 0x45, 0x59, 0x00, 0x00, 0x00, 0x00, 0xd5, 0x00, 0xbd,
|
|
66
|
+
]),
|
|
67
|
+
});
|
|
68
|
+
(0, _chai_spec_1.expect)(withoutInvalidUtf8Bytes(marked)).to.deep.equal(legacy);
|
|
69
|
+
});
|
|
70
|
+
it("otherwise differs from legacy JSON only by ? to U+FFFD repair", async () => {
|
|
71
|
+
for (const [file, readArgs] of [
|
|
72
|
+
[malformedUtf8File, ["-City", "-Title", "-Subject", "-UserComment"]],
|
|
73
|
+
[binaryListFile, ["-G1", "-JSONMetadata", "-Foo"]],
|
|
74
|
+
[binaryCollisionFile, ["-G1", "-City", "-RelatedAudioFile"]],
|
|
75
|
+
]) {
|
|
76
|
+
const marked = await ExifTool_1.exiftool.readRaw(file, {
|
|
77
|
+
readArgs: [...readArgs],
|
|
78
|
+
});
|
|
79
|
+
const legacy = await ExifTool_1.exiftool.readRaw(file, {
|
|
80
|
+
readArgs: [...readArgs, "-api", "Filter=1"],
|
|
81
|
+
});
|
|
82
|
+
(0, _chai_spec_1.expect)(legacyUtf8Replacement(withoutInvalidUtf8Bytes(marked))).to.deep.equal(legacy);
|
|
83
|
+
}
|
|
84
|
+
});
|
|
85
|
+
it("keeps the marker when per-call readArgs replace the defaults", async () => {
|
|
86
|
+
(0, _chai_spec_1.expect)(await ExifTool_1.exiftool.readRaw(malformedUtf8File, { readArgs: [] })).to.containSubset({
|
|
87
|
+
City: "\uFFFDK",
|
|
88
|
+
Subject: ["Valid? item", "damaged:\uFFFDtail"],
|
|
89
|
+
});
|
|
90
|
+
});
|
|
91
|
+
for (const { api, filter } of [
|
|
92
|
+
{ api: "-api", filter: `Filter=${customFilter}` },
|
|
93
|
+
{ api: "-API", filter: `filter=${customFilter}` },
|
|
94
|
+
{ api: "-api", filter: `FILTER^=${customFilter}` },
|
|
95
|
+
]) {
|
|
96
|
+
it(`leaves UTF-8 repair to ${api} ${filter.split("=")[0]}=`, async () => {
|
|
97
|
+
const tags = await ExifTool_1.exiftool.readRaw(malformedUtf8File, {
|
|
98
|
+
readArgs: [api, filter],
|
|
99
|
+
});
|
|
100
|
+
(0, _chai_spec_1.expect)(tags).to.containSubset({
|
|
101
|
+
City: "XK",
|
|
102
|
+
Subject: ["Valid? item", "damaged:Xtail"],
|
|
103
|
+
});
|
|
104
|
+
(0, _chai_spec_1.expect)(tags.invalidUtf8Bytes).to.equal(undefined);
|
|
105
|
+
});
|
|
106
|
+
}
|
|
107
|
+
for (const bareFilter of ["Filter", "Filter^"]) {
|
|
108
|
+
it(`treats a bare ${bareFilter} as a custom no-op Filter`, async () => {
|
|
109
|
+
// Ground truth:
|
|
110
|
+
// exiftool -j -City -api 'Filter[^]' test/malformed-utf8.jpg
|
|
111
|
+
const tags = await ExifTool_1.exiftool.readRaw(malformedUtf8File, {
|
|
112
|
+
readArgs: ["-City", "-api", bareFilter],
|
|
113
|
+
});
|
|
114
|
+
(0, _chai_spec_1.expect)(tags.City).to.equal("?K");
|
|
115
|
+
(0, _chai_spec_1.expect)(tags.invalidUtf8Bytes).to.equal(undefined);
|
|
116
|
+
});
|
|
117
|
+
}
|
|
118
|
+
it("does not decode marker-shaped output owned by a custom Filter", async () => {
|
|
119
|
+
const markerValue = {
|
|
120
|
+
[InvalidUtf8Bytes_1.InvalidUtf8Marker]: {
|
|
121
|
+
replacement: "s:forged",
|
|
122
|
+
rawBase64: "b64:3Es=",
|
|
123
|
+
},
|
|
124
|
+
};
|
|
125
|
+
const markerFilter = String.raw `Filter=$_={"${InvalidUtf8Bytes_1.InvalidUtf8Marker}"=>{replacement=>"s:forged",rawBase64=>"b64:3Es="}} if $_ eq "\xdcK"`;
|
|
126
|
+
const tags = await ExifTool_1.exiftool.readRaw(malformedUtf8File, {
|
|
127
|
+
readArgs: ["-City", "-api", markerFilter],
|
|
128
|
+
});
|
|
129
|
+
(0, _chai_spec_1.expect)(tags.City).to.deep.equal(markerValue);
|
|
130
|
+
(0, _chai_spec_1.expect)(tags.invalidUtf8Bytes).to.equal(undefined);
|
|
131
|
+
});
|
|
132
|
+
it("does not let a custom Filter leak into the next stay-open command", async () => {
|
|
133
|
+
(0, _chai_spec_1.expect)(await ExifTool_1.exiftool.readRaw(malformedUtf8File, {
|
|
134
|
+
readArgs: ["-api", `Filter=${customFilter}`],
|
|
135
|
+
})).to.containSubset({ City: "XK" });
|
|
136
|
+
(0, _chai_spec_1.expect)(await ExifTool_1.exiftool.readRaw(malformedUtf8File, { readArgs: [] })).to.containSubset({ City: "\uFFFDK" });
|
|
137
|
+
});
|
|
138
|
+
for (const emptyFilter of ["Filter=", "Filter^="]) {
|
|
139
|
+
it(`does not treat ${emptyFilter} as a custom Filter`, async () => {
|
|
140
|
+
(0, _chai_spec_1.expect)(await ExifTool_1.exiftool.readRaw(malformedUtf8File, {
|
|
141
|
+
readArgs: ["-api", emptyFilter],
|
|
142
|
+
})).to.containSubset({ City: "\uFFFDK" });
|
|
143
|
+
});
|
|
144
|
+
}
|
|
145
|
+
for (const clearedFilter of ["Filter=", "Filter^="]) {
|
|
146
|
+
it(`honors a final ${clearedFilter} after a custom Filter`, async () => {
|
|
147
|
+
// ExifTool API options are last-assignment-wins. Verified with:
|
|
148
|
+
// exiftool -j -api 'Filter=..."X"' -api 'Filter=' malformed-utf8.jpg
|
|
149
|
+
(0, _chai_spec_1.expect)(await ExifTool_1.exiftool.readRaw(malformedUtf8File, {
|
|
150
|
+
readArgs: ["-api", `Filter=${customFilter}`, "-api", clearedFilter],
|
|
151
|
+
})).to.containSubset({ City: "\uFFFDK" });
|
|
152
|
+
});
|
|
153
|
+
}
|
|
154
|
+
it("honors a final custom Filter after an empty Filter", async () => {
|
|
155
|
+
(0, _chai_spec_1.expect)(await ExifTool_1.exiftool.readRaw(malformedUtf8File, {
|
|
156
|
+
readArgs: ["-api", "Filter=", "-api", `Filter=${customFilter}`],
|
|
157
|
+
})).to.containSubset({ City: "XK" });
|
|
158
|
+
});
|
|
159
|
+
it("does not alter malformed binary list items", async () => {
|
|
160
|
+
// The synthetic LFP contains two 13-byte JSONMetadata binary items.
|
|
161
|
+
// Ground truth without a Filter:
|
|
162
|
+
// exiftool -j -G1 -struct test/malformed-utf8.lfp
|
|
163
|
+
const tags = await ExifTool_1.exiftool.readRaw(binaryListFile, {
|
|
164
|
+
readArgs: ["-G1", "-JSONMetadata", "-Foo"],
|
|
165
|
+
});
|
|
166
|
+
(0, _chai_spec_1.expect)(tags).to.containSubset({
|
|
167
|
+
"Lytro:JSONMetadata": [
|
|
168
|
+
"(Binary data 13 bytes, use -b option to extract)",
|
|
169
|
+
"(Binary data 13 bytes, use -b option to extract)",
|
|
170
|
+
],
|
|
171
|
+
"Lytro:Foo": "\uFFFDL",
|
|
172
|
+
});
|
|
173
|
+
(0, _chai_spec_1.expect)(tags.invalidUtf8Bytes).to.deep.equal({
|
|
174
|
+
"Lytro:Foo": new Uint8Array([0xdd, 0x4c]),
|
|
175
|
+
});
|
|
176
|
+
});
|
|
177
|
+
it("repairs text that has the same bytes as an unrelated binary tag", async () => {
|
|
178
|
+
// Both tags contain dc 4b. Ground truth:
|
|
179
|
+
// exiftool -b -MIE-Geo:City malformed-utf8-collision.mie | od -An -tx1
|
|
180
|
+
// exiftool -b -MIE-Audio:RelatedAudioFile ... | od -An -tx1
|
|
181
|
+
const tags = await ExifTool_1.exiftool.readRaw(binaryCollisionFile, {
|
|
182
|
+
readArgs: ["-G1", "-City", "-RelatedAudioFile"],
|
|
183
|
+
});
|
|
184
|
+
(0, _chai_spec_1.expect)(tags).to.containSubset({
|
|
185
|
+
"MIE-Geo:City": "\uFFFDK",
|
|
186
|
+
"MIE-Audio:RelatedAudioFile": "(Binary data 2 bytes, use -b option to extract)",
|
|
187
|
+
});
|
|
188
|
+
(0, _chai_spec_1.expect)(tags.invalidUtf8Bytes).to.deep.equal({
|
|
189
|
+
"MIE-Geo:City": new Uint8Array([0xdc, 0x4b]),
|
|
190
|
+
});
|
|
191
|
+
});
|
|
192
|
+
it("preserves malformed binary output", async () => {
|
|
193
|
+
const tags = await ExifTool_1.exiftool.readRaw(binaryCollisionFile, {
|
|
194
|
+
readArgs: ["-G1", "-b", "-RelatedAudioFile"],
|
|
195
|
+
});
|
|
196
|
+
(0, _chai_spec_1.expect)(tags).to.containSubset({
|
|
197
|
+
// base64 for the original bytes dc 4b
|
|
198
|
+
"MIE-Audio:RelatedAudioFile": "base64:3Es=",
|
|
199
|
+
});
|
|
200
|
+
(0, _chai_spec_1.expect)(tags.invalidUtf8Bytes).to.equal(undefined);
|
|
201
|
+
});
|
|
202
|
+
});
|
|
12
203
|
describe("non-alphanumeric filenames", () => {
|
|
13
204
|
for (const { str, desc } of _chai_spec_1.NonAlphaStrings) {
|
|
14
205
|
it("reads with " + desc, async () => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ReadRawTask.spec.js","sourceRoot":"","sources":["../src/ReadRawTask.spec.ts"],"names":[],"mappings":";;;;;AAAA,+CAA4C;AAC5C,0DAA6B;AAC7B,yCAAsC;AACtC,6CAQsB;AAEtB,KAAK,CAAC,GAAG,EAAE,CAAC,IAAA,gBAAG,EAAC,mBAAQ,CAAC,CAAC,CAAC;AAE3B,QAAQ,CAAC,aAAa,EAAE,GAAG,EAAE;IAC3B,QAAQ,CAAC,4BAA4B,EAAE,GAAG,EAAE;QAC1C,KAAK,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,4BAAe,EAAE,CAAC;YAC5C,EAAE,CAAC,aAAa,GAAG,IAAI,EAAE,KAAK,IAAI,EAAE;gBAClC,IAAA,mBAAM,EAAC,mBAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;gBAC/C,MAAM,QAAQ,GAAG,GAAG,GAAG,MAAM,CAAC;gBAC9B,MAAM,IAAI,GAAG,mBAAI,CAAC,IAAI,CAAC,IAAA,mBAAM,GAAE,EAAE,QAAQ,CAAC,CAAC;gBAC3C,MAAM,IAAA,mBAAM,EAAC,IAAA,mBAAM,GAAE,CAAC,CAAC;gBACvB,MAAM,IAAA,mBAAQ,EAAC,mBAAI,CAAC,IAAI,CAAC,oBAAO,EAAE,YAAY,CAAC,EAAE,IAAI,CAAC,CAAC;gBACvD,MAAM,CAAC,GAAG,MAAM,mBAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;gBACvC,IAAA,mBAAM,EAAC,CAAC,CAAC,CAAC,EAAE,CAAC,aAAa,CAAC;oBACzB,QAAQ,EAAE,YAAY;oBACtB,QAAQ;oBACR,gBAAgB,EAAE,yBAAyB;oBAC3C,IAAI,EAAE,OAAO;oBACb,KAAK,EAAE,eAAe;oBACtB,gBAAgB,EAAE,mCAAmC;oBACrD,cAAc,EAAE,CAAC,MAAM,EAAE,UAAU,EAAE,OAAO,CAAC;oBAC7C,KAAK,EAAE,+BAAkB;iBAC1B,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;QACL,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,6DAA6D;IAC7D,qEAAqE;IACrE,uBAAuB;IACvB,QAAQ,CAAC,8BAA8B,EAAE,GAAG,EAAE;QAC5C,EAAE,CAAC,0DAA0D,EAAE,KAAK,IAAI,EAAE;YACxE,OAAO,IAAA,mBAAM,EACX,mBAAQ,CAAC,OAAO,CAAC,2CAA2C,CAAC,CAC9D,CAAC,EAAE,CAAC,EAAE,CAAC,YAAY,CAAC,mBAAmB,CAAC,CAAC;QAC5C,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,2DAA2D,EAAE,KAAK,IAAI,EAAE;YACzE,OAAO,IAAA,mBAAM,EACX,mBAAQ,CAAC,OAAO,CAAC,4BAA4B,CAAC,CAC/C,CAAC,EAAE,CAAC,EAAE,CAAC,YAAY,CAAC,mBAAmB,CAAC,CAAC;QAC5C,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
1
|
+
{"version":3,"file":"ReadRawTask.spec.js","sourceRoot":"","sources":["../src/ReadRawTask.spec.ts"],"names":[],"mappings":"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"}
|
package/dist/ReadTask.js
CHANGED
|
@@ -50,6 +50,7 @@ const ExifToolTask_1 = require("./ExifToolTask");
|
|
|
50
50
|
const File_1 = require("./File");
|
|
51
51
|
const FilenameCharsetArgs_1 = require("./FilenameCharsetArgs");
|
|
52
52
|
const GPS_1 = require("./GPS");
|
|
53
|
+
const InvalidUtf8Bytes_1 = require("./InvalidUtf8Bytes");
|
|
53
54
|
const Lazy_1 = require("./Lazy");
|
|
54
55
|
const Number_1 = require("./Number");
|
|
55
56
|
const Object_1 = require("./Object");
|
|
@@ -58,6 +59,7 @@ const Pick_1 = require("./Pick");
|
|
|
58
59
|
const String_1 = require("./String");
|
|
59
60
|
const TagNameValidation_1 = require("./TagNameValidation");
|
|
60
61
|
const Timezones_1 = require("./Timezones");
|
|
62
|
+
const Utf8JsonFilter_1 = require("./Utf8JsonFilter");
|
|
61
63
|
/**
|
|
62
64
|
* tag names we don't need to muck with, but name conventions (like including
|
|
63
65
|
* "date") suggest they might be date/time tags
|
|
@@ -104,6 +106,8 @@ class ReadTask extends ExifToolTask_1.ExifToolTask {
|
|
|
104
106
|
degroup;
|
|
105
107
|
#raw = {};
|
|
106
108
|
#rawDegrouped = {};
|
|
109
|
+
#invalidUtf8Bytes;
|
|
110
|
+
#unwrapInvalidUtf8;
|
|
107
111
|
#tags = {};
|
|
108
112
|
/**
|
|
109
113
|
* @param sourceFile the file to read
|
|
@@ -116,6 +120,7 @@ class ReadTask extends ExifToolTask_1.ExifToolTask {
|
|
|
116
120
|
this.sourceFile = sourceFile;
|
|
117
121
|
this.args = args;
|
|
118
122
|
this.options = options;
|
|
123
|
+
this.#unwrapInvalidUtf8 = (0, Utf8JsonFilter_1.hasBuiltInUtf8Filter)(args);
|
|
119
124
|
// See https://github.com/photostructure/exiftool-vendored.js/issues/147#issuecomment-1642580118
|
|
120
125
|
this.degroup = this.args.includes("-G");
|
|
121
126
|
this.#tags = { SourceFile: sourceFile };
|
|
@@ -127,10 +132,12 @@ class ReadTask extends ExifToolTask_1.ExifToolTask {
|
|
|
127
132
|
...options,
|
|
128
133
|
});
|
|
129
134
|
const sourceFile = _path.resolve(filename);
|
|
135
|
+
const readArgs = (0, Array_1.toArray)(opts.readArgs);
|
|
130
136
|
const args = [
|
|
131
137
|
...FilenameCharsetArgs_1.Utf8FilenameCharsetArgs,
|
|
132
138
|
"-json",
|
|
133
|
-
...
|
|
139
|
+
...readArgs,
|
|
140
|
+
...(0, Utf8JsonFilter_1.utf8JsonFilterArgs)(readArgs),
|
|
134
141
|
];
|
|
135
142
|
// "-api struct=undef" doesn't work: but it's the same as struct=0:
|
|
136
143
|
args.push("-api", "struct=" + ((0, Number_1.isNumber)(opts.struct) ? opts.struct : "0"));
|
|
@@ -171,7 +178,12 @@ class ReadTask extends ExifToolTask_1.ExifToolTask {
|
|
|
171
178
|
try {
|
|
172
179
|
// Fix ExifToolVersion to be a string to preserve version distinctions like 12.3 vs 12.30
|
|
173
180
|
const versionFixedData = data.replace(/"ExifToolVersion"\s*:\s*(\d+(?:\.\d+)?)/, '"ExifToolVersion":"$1"');
|
|
174
|
-
|
|
181
|
+
const parsed = JSON.parse(versionFixedData)[0];
|
|
182
|
+
const decoded = this.#unwrapInvalidUtf8
|
|
183
|
+
? (0, InvalidUtf8Bytes_1.unwrapInvalidUtf8Tags)(parsed)
|
|
184
|
+
: { tags: parsed };
|
|
185
|
+
this.#raw = decoded.tags;
|
|
186
|
+
this.#invalidUtf8Bytes = decoded.invalidUtf8Bytes;
|
|
175
187
|
}
|
|
176
188
|
catch (jsonError) {
|
|
177
189
|
// TODO: should restart exiftool?
|
|
@@ -243,6 +255,16 @@ class ReadTask extends ExifToolTask_1.ExifToolTask {
|
|
|
243
255
|
const { errors, warnings } = (0, ErrorsAndWarnings_1.errorsAndWarnings)(this, tags);
|
|
244
256
|
tags.errors = errors;
|
|
245
257
|
tags.warnings = warnings;
|
|
258
|
+
if (this.#invalidUtf8Bytes != null) {
|
|
259
|
+
for (const key of Object.keys(this.#invalidUtf8Bytes)) {
|
|
260
|
+
if (!Object.hasOwn(tags, key)) {
|
|
261
|
+
Reflect.deleteProperty(this.#invalidUtf8Bytes, key);
|
|
262
|
+
}
|
|
263
|
+
}
|
|
264
|
+
if (Object.keys(this.#invalidUtf8Bytes).length > 0) {
|
|
265
|
+
tags.invalidUtf8Bytes = this.#invalidUtf8Bytes;
|
|
266
|
+
}
|
|
267
|
+
}
|
|
246
268
|
return tags;
|
|
247
269
|
}
|
|
248
270
|
#extractGpsMetadata = (0, Lazy_1.lazy)(() => {
|
package/dist/ReadTask.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ReadTask.js","sourceRoot":"","sources":["../src/ReadTask.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ReadTask.js","sourceRoot":"","sources":["../src/ReadTask.ts"],"names":[],"mappings":"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"}
|
package/dist/ReadTask.spec.js
CHANGED
|
@@ -45,6 +45,7 @@ const DateTime_1 = require("./DateTime");
|
|
|
45
45
|
const ExifDateTime_1 = require("./ExifDateTime");
|
|
46
46
|
const ExifTool_1 = require("./ExifTool");
|
|
47
47
|
const GeolocationTags_1 = require("./GeolocationTags");
|
|
48
|
+
const InvalidUtf8Bytes_1 = require("./InvalidUtf8Bytes");
|
|
48
49
|
const Object_1 = require("./Object");
|
|
49
50
|
const Pick_1 = require("./Pick");
|
|
50
51
|
const ReadTask_1 = require("./ReadTask");
|
|
@@ -73,6 +74,57 @@ describe("ReadTask", () => {
|
|
|
73
74
|
let exiftool;
|
|
74
75
|
before(() => (exiftool = new ExifTool_1.ExifTool()));
|
|
75
76
|
after(() => (0, _chai_spec_1.end)(exiftool));
|
|
77
|
+
describe("malformed UTF-8", () => {
|
|
78
|
+
const malformedUtf8File = (0, node_path_1.join)(_chai_spec_1.testDir, "malformed-utf8.jpg");
|
|
79
|
+
const customFilter = 'Filter=Image::ExifTool::XMP::FixUTF8(\\$_,"X")';
|
|
80
|
+
it("marks malformed scalar and list values without changing valid text", async () => {
|
|
81
|
+
const tags = await exiftool.read(malformedUtf8File);
|
|
82
|
+
(0, _chai_spec_1.expect)(tags).to.containSubset({
|
|
83
|
+
City: "\uFFFDK",
|
|
84
|
+
Title: "Authored? 世界",
|
|
85
|
+
Subject: ["Valid? item", "damaged:\uFFFDtail"],
|
|
86
|
+
});
|
|
87
|
+
(0, _chai_spec_1.expect)(tags.invalidUtf8Bytes?.City).to.deep.equal(new Uint8Array([0xdc, 0x4b]));
|
|
88
|
+
(0, _chai_spec_1.expect)(tags.invalidUtf8Bytes?.Subject).to.deep.equal({
|
|
89
|
+
1: new Uint8Array([
|
|
90
|
+
0x64, 0x61, 0x6d, 0x61, 0x67, 0x65, 0x64, 0x3a, 0xdc, 0x74, 0x61,
|
|
91
|
+
0x69, 0x6c,
|
|
92
|
+
]),
|
|
93
|
+
});
|
|
94
|
+
});
|
|
95
|
+
it("keeps the marker when per-call readArgs replace the defaults", async () => {
|
|
96
|
+
(0, _chai_spec_1.expect)(await exiftool.read(malformedUtf8File, { readArgs: [] })).to.containSubset({
|
|
97
|
+
City: "\uFFFDK",
|
|
98
|
+
Subject: ["Valid? item", "damaged:\uFFFDtail"],
|
|
99
|
+
});
|
|
100
|
+
});
|
|
101
|
+
it("leaves UTF-8 repair to an explicit custom Filter", async () => {
|
|
102
|
+
const tags = await exiftool.read(malformedUtf8File, {
|
|
103
|
+
readArgs: ["-api", customFilter],
|
|
104
|
+
});
|
|
105
|
+
(0, _chai_spec_1.expect)(tags).to.containSubset({
|
|
106
|
+
City: "XK",
|
|
107
|
+
Subject: ["Valid? item", "damaged:Xtail"],
|
|
108
|
+
});
|
|
109
|
+
(0, _chai_spec_1.expect)(tags.invalidUtf8Bytes).to.equal(undefined);
|
|
110
|
+
});
|
|
111
|
+
it("prunes byte paths whose parsed tags are rejected", () => {
|
|
112
|
+
const tags = parse({
|
|
113
|
+
tags: {
|
|
114
|
+
GPSLatitude: 999,
|
|
115
|
+
GPSLongitude: 1,
|
|
116
|
+
GPSProcessingMethod: {
|
|
117
|
+
[InvalidUtf8Bytes_1.InvalidUtf8Marker]: {
|
|
118
|
+
replacement: "s:�GPS",
|
|
119
|
+
rawBase64: "b64:3EdQUw==",
|
|
120
|
+
},
|
|
121
|
+
},
|
|
122
|
+
},
|
|
123
|
+
});
|
|
124
|
+
(0, _chai_spec_1.expect)(tags.GPSProcessingMethod).to.equal(undefined);
|
|
125
|
+
(0, _chai_spec_1.expect)(tags.invalidUtf8Bytes).to.equal(undefined);
|
|
126
|
+
});
|
|
127
|
+
});
|
|
76
128
|
describe("Lat/Lon parsing", () => {
|
|
77
129
|
/* Example:
|
|
78
130
|
$ exiftool -j -coordFormat '%.8f' -fast ../test-images/important/Apple_iPhone7Plus.jpg | grep itude
|