exiftool-vendored 36.0.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 +64 -5
- package/CLAUDE.md +2 -1
- package/README.md +128 -35
- package/RELEASE.md +1 -1
- package/data/TagMetadata.json +10 -3
- package/dist/DateTime.d.ts +2 -2
- package/dist/DateTime.js +1 -1
- package/dist/DateTime.js.map +1 -1
- package/dist/ExifTool.d.ts +45 -8
- package/dist/ExifTool.dispose.spec.js +3 -3
- package/dist/ExifTool.dispose.spec.js.map +1 -1
- package/dist/ExifTool.js +54 -10
- 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/TagEdit.d.ts +62 -0
- package/dist/TagEdit.js +224 -0
- package/dist/TagEdit.js.map +1 -0
- package/dist/TagEdit.spec.d.ts +1 -0
- package/dist/TagEdit.spec.js +863 -0
- package/dist/TagEdit.spec.js.map +1 -0
- 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/Timezones.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/WriteTask.d.ts +6 -0
- package/dist/WriteTask.js +58 -18
- package/dist/WriteTask.js.map +1 -1
- package/dist/WriteTask.spec.js +17 -0
- package/dist/WriteTask.spec.js.map +1 -1
- package/dist/update/mktags.js +19 -1
- package/dist/update/mktags.js.map +1 -1
- package/package.json +15 -47
package/dist/TagEdit.js
ADDED
|
@@ -0,0 +1,224 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.TagEditTagNames = exports.CollectionEditTagName = exports.TagEditValueTagNames = exports.TagEditRemoveOnlyTagNames = exports.RegionNameEditTagName = exports.TagEditAddTagNames = void 0;
|
|
4
|
+
exports.validateTagEdits = validateTagEdits;
|
|
5
|
+
const StrEnum_1 = require("./StrEnum");
|
|
6
|
+
const TagNameValidation_1 = require("./TagNameValidation");
|
|
7
|
+
/**
|
|
8
|
+
* Canonical family-1 string-list tags whose `+=` and `-=` behavior has been
|
|
9
|
+
* audited for exact add and remove edits.
|
|
10
|
+
*/
|
|
11
|
+
exports.TagEditAddTagNames = (0, StrEnum_1.strEnum)("IPTC:CatalogSets", "IPTC:Keywords", "MIE-Doc:Keywords", "XMP-acdsee:Keywords", "XMP-dc:Subject", "XMP-digiKam:TagsList", "XMP-expressionmedia:CatalogSets", "XMP-expressionmedia:People", "XMP-iptcExt:PersonInImage", "XMP-lr:HierarchicalSubject", "XMP-mediapro:CatalogSets", "XMP-mediapro:People", "XMP-microsoft:LastKeywordXMP");
|
|
12
|
+
/** A flattened MWG structure field supported only for removal. */
|
|
13
|
+
exports.RegionNameEditTagName = "XMP-mwg-rs:RegionName";
|
|
14
|
+
/**
|
|
15
|
+
* Canonical primitive tags supported only for exact removal. Flattened region
|
|
16
|
+
* edits preserve remaining sibling fields, but ExifTool may prune structures
|
|
17
|
+
* left empty and callers must preflight format-specific collision risks
|
|
18
|
+
* described in the usage documentation.
|
|
19
|
+
*/
|
|
20
|
+
exports.TagEditRemoveOnlyTagNames = (0, StrEnum_1.strEnum)("XMP-MP:RegionPersonDisplayName", "XMP-acdsee-rs:ACDSeeRegionName", exports.RegionNameEditTagName, "XMP-xmpDM:Album");
|
|
21
|
+
// XMP-iptcExt:PersonInImageName is intentionally absent: it is lang-alt, and
|
|
22
|
+
// removing its x-default value also deletes nonmatching translations.
|
|
23
|
+
/** Every canonical primitive tag supported for removal. */
|
|
24
|
+
exports.TagEditValueTagNames = (0, StrEnum_1.strEnum)(...exports.TagEditAddTagNames, ...exports.TagEditRemoveOnlyTagNames);
|
|
25
|
+
/** The sole structured tag supported by {@link TagEdit}. */
|
|
26
|
+
exports.CollectionEditTagName = "XMP-mwg-coll:Collections";
|
|
27
|
+
/** Every canonical tag accepted by {@link TagEdit}. */
|
|
28
|
+
exports.TagEditTagNames = (0, StrEnum_1.strEnum)(...exports.TagEditValueTagNames, exports.CollectionEditTagName);
|
|
29
|
+
const CollectionFields = ["CollectionName", "CollectionURI"];
|
|
30
|
+
const ListSeparator = String.fromCharCode(31);
|
|
31
|
+
const CanonicalTagNamesByLowercase = new Map(exports.TagEditTagNames.values.map((tag) => [tag.toLowerCase(), tag]));
|
|
32
|
+
function editContext(index) {
|
|
33
|
+
return `tag edit at index ${index}`;
|
|
34
|
+
}
|
|
35
|
+
function isPlainObject(value) {
|
|
36
|
+
if (value == null || typeof value !== "object")
|
|
37
|
+
return false;
|
|
38
|
+
const prototype = Object.getPrototypeOf(value);
|
|
39
|
+
return prototype === Object.prototype || prototype === null;
|
|
40
|
+
}
|
|
41
|
+
function validateSupportedTagName(tag, index) {
|
|
42
|
+
const context = editContext(index);
|
|
43
|
+
(0, TagNameValidation_1.validateTagName)(tag, `${context} tag name`);
|
|
44
|
+
const parts = tag.split(":");
|
|
45
|
+
if (parts.length < 2 || parts.some((part) => part.length === 0)) {
|
|
46
|
+
throw new Error(`${context} must use a group-qualified tag name: ${tag}`);
|
|
47
|
+
}
|
|
48
|
+
const canonical = CanonicalTagNamesByLowercase.get(tag.toLowerCase());
|
|
49
|
+
if (canonical == null) {
|
|
50
|
+
throw new Error(`${context} tag is not supported for exact edits: ${tag}`);
|
|
51
|
+
}
|
|
52
|
+
if (tag !== canonical) {
|
|
53
|
+
throw new Error(`${context} must use canonical tag casing ${canonical}`);
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
function validateUnicode(value, index) {
|
|
57
|
+
for (const character of value) {
|
|
58
|
+
const codePoint = character.codePointAt(0) ?? 0;
|
|
59
|
+
if (codePoint <= 0x8 ||
|
|
60
|
+
codePoint === 0xb ||
|
|
61
|
+
codePoint === 0xc ||
|
|
62
|
+
(codePoint >= 0xe && codePoint <= 0x1f)) {
|
|
63
|
+
throw new Error(`${editContext(index)} value contains an XML-invalid control character`);
|
|
64
|
+
}
|
|
65
|
+
// CR is XML-valid, but ExifTool emits a literal 0x0D byte rather than
|
|
66
|
+
// `
`, and XML 1.0 §2.11 requires parsers to normalize CR and CRLF to
|
|
67
|
+
// LF before reporting content. Only ExifTool's own non-normalizing reader
|
|
68
|
+
// returns the CR; every other consumer sees LF.
|
|
69
|
+
if (codePoint === 0xd) {
|
|
70
|
+
throw new Error(`${editContext(index)} value contains a carriage return, which XML parsers normalize to a line feed`);
|
|
71
|
+
}
|
|
72
|
+
if ((codePoint >= 0xd800 && codePoint <= 0xdfff) ||
|
|
73
|
+
(codePoint >= 0xfdd0 && codePoint <= 0xfdef) ||
|
|
74
|
+
(codePoint & 0xffff) === 0xfffe ||
|
|
75
|
+
(codePoint & 0xffff) === 0xffff) {
|
|
76
|
+
throw new Error(`${editContext(index)} value contains a non-round-tripping Unicode character`);
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
function validateEditString(value, index, allowEmpty = false) {
|
|
81
|
+
if (typeof value !== "string") {
|
|
82
|
+
throw new Error(`${editContext(index)} requires one string value`);
|
|
83
|
+
}
|
|
84
|
+
if (!allowEmpty && value.length === 0) {
|
|
85
|
+
throw new Error(`${editContext(index)} requires a non-empty string value`);
|
|
86
|
+
}
|
|
87
|
+
if (value.includes(ListSeparator)) {
|
|
88
|
+
throw new Error(`${editContext(index)} value must not contain ExifTool's list separator`);
|
|
89
|
+
}
|
|
90
|
+
validateUnicode(value, index);
|
|
91
|
+
return value;
|
|
92
|
+
}
|
|
93
|
+
function validateCollectionFields(value, index, requireCompleteValue) {
|
|
94
|
+
const context = editContext(index);
|
|
95
|
+
if (!isPlainObject(value)) {
|
|
96
|
+
throw new Error(`${context} requires a Collection object`);
|
|
97
|
+
}
|
|
98
|
+
const descriptors = Object.getOwnPropertyDescriptors(value);
|
|
99
|
+
const fields = Reflect.ownKeys(descriptors);
|
|
100
|
+
if (fields.length === 0) {
|
|
101
|
+
throw new Error(`${context} requires a non-empty predicate`);
|
|
102
|
+
}
|
|
103
|
+
const normalized = {};
|
|
104
|
+
for (const field of fields) {
|
|
105
|
+
if (typeof field !== "string" ||
|
|
106
|
+
!CollectionFields.includes(field)) {
|
|
107
|
+
throw new Error(`${context} has unknown Collection predicate field ${String(field)}`);
|
|
108
|
+
}
|
|
109
|
+
const descriptor = descriptors[field];
|
|
110
|
+
if (descriptor == null || !("value" in descriptor)) {
|
|
111
|
+
throw new Error(`${context} Collection fields must be data properties`);
|
|
112
|
+
}
|
|
113
|
+
const fieldValue = descriptor.value;
|
|
114
|
+
if (typeof fieldValue !== "string") {
|
|
115
|
+
throw new Error(`${context} Collection ${field} must be a string`);
|
|
116
|
+
}
|
|
117
|
+
normalized[field] = validateEditString(fieldValue, index, true);
|
|
118
|
+
}
|
|
119
|
+
if (requireCompleteValue &&
|
|
120
|
+
CollectionFields.some((field) => !Object.hasOwn(normalized, field))) {
|
|
121
|
+
throw new Error(`${context} Collection value requires CollectionName and CollectionURI`);
|
|
122
|
+
}
|
|
123
|
+
return normalized;
|
|
124
|
+
}
|
|
125
|
+
function collectionMatches(value, predicate) {
|
|
126
|
+
return CollectionFields.every((field) => !Object.hasOwn(predicate, field) || value[field] === predicate[field]);
|
|
127
|
+
}
|
|
128
|
+
function rejectUnorderableConflicts(edits) {
|
|
129
|
+
for (const [index, edit] of edits.entries()) {
|
|
130
|
+
for (let otherIndex = index + 1; otherIndex < edits.length; otherIndex++) {
|
|
131
|
+
const other = edits[otherIndex];
|
|
132
|
+
if (other == null)
|
|
133
|
+
continue;
|
|
134
|
+
if (edit.operation !== "add" ||
|
|
135
|
+
other.operation !== "remove" ||
|
|
136
|
+
edit.tag.toLowerCase() !== other.tag.toLowerCase()) {
|
|
137
|
+
continue;
|
|
138
|
+
}
|
|
139
|
+
const addition = edit;
|
|
140
|
+
const removal = other;
|
|
141
|
+
const conflicts = addition.tag === exports.CollectionEditTagName &&
|
|
142
|
+
removal.tag === exports.CollectionEditTagName
|
|
143
|
+
? collectionMatches(addition.value, removal.predicate)
|
|
144
|
+
: "value" in addition &&
|
|
145
|
+
"value" in removal &&
|
|
146
|
+
addition.value === removal.value;
|
|
147
|
+
if (conflicts) {
|
|
148
|
+
throw new Error(`${editContext(index)} conflicts with tag edit at index ${otherIndex}: ` +
|
|
149
|
+
"ExifTool cannot preserve add-then-remove because it applies removals before additions for the same value in one write");
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
/**
|
|
155
|
+
* Validate and snapshot edits before any ExifTool task is enqueued.
|
|
156
|
+
*/
|
|
157
|
+
function validateTagEdits(edits) {
|
|
158
|
+
if (!Array.isArray(edits) || edits.length === 0) {
|
|
159
|
+
throw new Error("editTags requires at least one tag edit");
|
|
160
|
+
}
|
|
161
|
+
const normalized = [];
|
|
162
|
+
for (const [index, edit] of edits.entries()) {
|
|
163
|
+
const context = editContext(index);
|
|
164
|
+
if (!isPlainObject(edit)) {
|
|
165
|
+
throw new Error(`${context} must be an object`);
|
|
166
|
+
}
|
|
167
|
+
if (!Object.hasOwn(edit, "tag") || !Object.hasOwn(edit, "operation")) {
|
|
168
|
+
throw new Error(`${context} requires a tag and operation`);
|
|
169
|
+
}
|
|
170
|
+
const tag = edit.tag;
|
|
171
|
+
const operation = edit.operation;
|
|
172
|
+
validateSupportedTagName(tag, index);
|
|
173
|
+
if (operation !== "add" && operation !== "remove") {
|
|
174
|
+
throw new Error(`${context} has invalid operation ${operation}`);
|
|
175
|
+
}
|
|
176
|
+
const hasValue = Object.hasOwn(edit, "value");
|
|
177
|
+
const hasPredicate = Object.hasOwn(edit, "predicate");
|
|
178
|
+
const value = hasValue ? edit.value : undefined;
|
|
179
|
+
const predicate = hasPredicate ? edit.predicate : undefined;
|
|
180
|
+
if (tag === exports.CollectionEditTagName) {
|
|
181
|
+
if (operation === "add") {
|
|
182
|
+
if (!hasValue || hasPredicate) {
|
|
183
|
+
throw new Error(`${context} Collection addition requires one value`);
|
|
184
|
+
}
|
|
185
|
+
normalized.push({
|
|
186
|
+
tag,
|
|
187
|
+
operation,
|
|
188
|
+
value: validateCollectionFields(value, index, true),
|
|
189
|
+
});
|
|
190
|
+
}
|
|
191
|
+
else {
|
|
192
|
+
if (!hasPredicate || hasValue) {
|
|
193
|
+
throw new Error(`${context} Collection removal requires a non-empty predicate`);
|
|
194
|
+
}
|
|
195
|
+
normalized.push({
|
|
196
|
+
tag,
|
|
197
|
+
operation,
|
|
198
|
+
predicate: validateCollectionFields(predicate, index, false),
|
|
199
|
+
});
|
|
200
|
+
}
|
|
201
|
+
}
|
|
202
|
+
else {
|
|
203
|
+
if (hasPredicate) {
|
|
204
|
+
throw new Error(`${context} uses an unsupported structured edit tag ${tag}`);
|
|
205
|
+
}
|
|
206
|
+
if (!hasValue) {
|
|
207
|
+
throw new Error(`${context} requires one value`);
|
|
208
|
+
}
|
|
209
|
+
const normalizedValue = validateEditString(value, index);
|
|
210
|
+
if (operation === "add") {
|
|
211
|
+
if (!exports.TagEditAddTagNames.includes(tag)) {
|
|
212
|
+
throw new Error(`${context} ${tag} is remove-only`);
|
|
213
|
+
}
|
|
214
|
+
normalized.push({ tag, operation, value: normalizedValue });
|
|
215
|
+
}
|
|
216
|
+
else {
|
|
217
|
+
normalized.push({ tag, operation, value: normalizedValue });
|
|
218
|
+
}
|
|
219
|
+
}
|
|
220
|
+
}
|
|
221
|
+
rejectUnorderableConflicts(normalized);
|
|
222
|
+
return normalized;
|
|
223
|
+
}
|
|
224
|
+
//# sourceMappingURL=TagEdit.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TagEdit.js","sourceRoot":"","sources":["../src/TagEdit.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|