ag-psd 22.0.1 → 23.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 +3 -0
- package/dist/additionalInfo.js +161 -120
- package/dist/additionalInfo.js.map +1 -1
- package/dist/bundle.js +180 -144
- package/dist/descriptor.d.ts +6 -0
- package/dist/descriptor.js +19 -17
- package/dist/descriptor.js.map +1 -1
- package/dist/psd.d.ts +9 -2
- package/dist/psd.js.map +1 -1
- package/dist/psdWriter.js +0 -7
- package/dist/psdWriter.js.map +1 -1
- package/dist-es/additionalInfo.js +161 -120
- package/dist-es/additionalInfo.js.map +1 -1
- package/dist-es/descriptor.d.ts +6 -0
- package/dist-es/descriptor.js +19 -17
- package/dist-es/descriptor.js.map +1 -1
- package/dist-es/psd.d.ts +9 -2
- package/dist-es/psd.js.map +1 -1
- package/dist-es/psdWriter.js +0 -7
- package/dist-es/psdWriter.js.map +1 -1
- package/package.json +1 -1
- package/src/additionalInfo.ts +165 -111
- package/src/descriptor.ts +21 -12
- package/src/psd.ts +10 -1
- package/src/psdWriter.ts +0 -7
package/CHANGELOG.md
CHANGED
package/dist/additionalInfo.js
CHANGED
|
@@ -393,12 +393,13 @@ addHandler('lmfx', function (target) { return target.effects !== undefined && ha
|
|
|
393
393
|
if (version !== 0)
|
|
394
394
|
throw new Error('Invalid lmfx version');
|
|
395
395
|
var desc = (0, descriptor_1.readVersionAndDescriptor)(reader);
|
|
396
|
-
// console.log(require('util').inspect(
|
|
396
|
+
// console.log('READ', require('util').inspect(desc, false, 99, true));
|
|
397
397
|
// discard if read in 'lrFX' or 'lfx2' section
|
|
398
398
|
target.effects = (0, descriptor_1.parseEffects)(desc, !!reader.logMissingFeatures);
|
|
399
399
|
(0, psdReader_1.skipBytes)(reader, left());
|
|
400
400
|
}, function (writer, target, _, options) {
|
|
401
401
|
var desc = (0, descriptor_1.serializeEffects)(target.effects, !!options.logMissingFeatures, true);
|
|
402
|
+
// console.log('WRITE', require('util').inspect(desc, false, 99, true));
|
|
402
403
|
(0, psdWriter_1.writeUint32)(writer, 0); // version
|
|
403
404
|
(0, descriptor_1.writeVersionAndDescriptor)(writer, '', 'null', desc);
|
|
404
405
|
});
|
|
@@ -2130,130 +2131,170 @@ addHandler('Anno', function (target) { return target.annotations !== undefined;
|
|
|
2130
2131
|
writer.view.setUint32(dataOffset - 4, writer.offset - dataOffset, false);
|
|
2131
2132
|
}
|
|
2132
2133
|
});
|
|
2133
|
-
|
|
2134
|
-
|
|
2135
|
-
|
|
2136
|
-
|
|
2137
|
-
|
|
2138
|
-
|
|
2139
|
-
|
|
2140
|
-
|
|
2141
|
-
|
|
2142
|
-
|
|
2143
|
-
|
|
2144
|
-
|
|
2145
|
-
|
|
2146
|
-
|
|
2147
|
-
|
|
2148
|
-
|
|
2149
|
-
|
|
2150
|
-
|
|
2151
|
-
|
|
2152
|
-
|
|
2153
|
-
|
|
2154
|
-
|
|
2155
|
-
|
|
2156
|
-
|
|
2157
|
-
|
|
2158
|
-
|
|
2159
|
-
|
|
2160
|
-
|
|
2161
|
-
|
|
2162
|
-
|
|
2163
|
-
|
|
2164
|
-
|
|
2165
|
-
|
|
2166
|
-
|
|
2167
|
-
|
|
2168
|
-
|
|
2169
|
-
|
|
2170
|
-
|
|
2171
|
-
|
|
2172
|
-
|
|
2173
|
-
|
|
2174
|
-
|
|
2175
|
-
|
|
2176
|
-
|
|
2177
|
-
|
|
2178
|
-
|
|
2179
|
-
|
|
2180
|
-
|
|
2181
|
-
|
|
2182
|
-
|
|
2183
|
-
|
|
2184
|
-
|
|
2185
|
-
|
|
2186
|
-
|
|
2187
|
-
|
|
2188
|
-
|
|
2189
|
-
|
|
2190
|
-
|
|
2191
|
-
|
|
2192
|
-
|
|
2193
|
-
|
|
2194
|
-
|
|
2195
|
-
|
|
2196
|
-
|
|
2197
|
-
|
|
2198
|
-
|
|
2199
|
-
|
|
2200
|
-
|
|
2201
|
-
|
|
2202
|
-
|
|
2203
|
-
|
|
2204
|
-
|
|
2205
|
-
|
|
2206
|
-
|
|
2207
|
-
|
|
2208
|
-
|
|
2209
|
-
|
|
2210
|
-
|
|
2211
|
-
|
|
2212
|
-
var sizeOffset = writer.offset;
|
|
2213
|
-
(0, psdWriter_1.writeSignature)(writer, file.data ? 'liFD' : 'liFA');
|
|
2214
|
-
(0, psdWriter_1.writeInt32)(writer, version);
|
|
2215
|
-
if (!file.id || typeof file.id !== 'string' || !/^[0-9a-f]{8}-([0-9a-f]{4}-){3}[0-9a-f]{12}$/.test(file.id)) {
|
|
2216
|
-
throw new Error('Linked file ID must be in a GUID format (example: 20953ddb-9391-11ec-b4f1-c15674f50bc4)');
|
|
2217
|
-
}
|
|
2218
|
-
(0, psdWriter_1.writePascalString)(writer, file.id, 1);
|
|
2219
|
-
(0, psdWriter_1.writeUnicodeStringWithPadding)(writer, file.name || '');
|
|
2220
|
-
(0, psdWriter_1.writeSignature)(writer, file.type ? "".concat(file.type, " ").substring(0, 4) : ' ');
|
|
2221
|
-
(0, psdWriter_1.writeSignature)(writer, file.creator ? "".concat(file.creator, " ").substring(0, 4) : '\0\0\0\0');
|
|
2222
|
-
writeLength64(writer, file.data ? file.data.byteLength : 0);
|
|
2223
|
-
if (file.descriptor && file.descriptor.compInfo) {
|
|
2224
|
-
var desc = {
|
|
2225
|
-
compInfo: {
|
|
2226
|
-
compID: file.descriptor.compInfo.compID,
|
|
2227
|
-
originalCompID: file.descriptor.compInfo.originalCompID,
|
|
2228
|
-
}
|
|
2229
|
-
};
|
|
2230
|
-
(0, psdWriter_1.writeUint8)(writer, 1);
|
|
2231
|
-
(0, descriptor_1.writeVersionAndDescriptor)(writer, '', 'null', desc);
|
|
2232
|
-
}
|
|
2233
|
-
else {
|
|
2234
|
-
(0, psdWriter_1.writeUint8)(writer, 0);
|
|
2134
|
+
function createLnkHandler(tag) {
|
|
2135
|
+
addHandler(tag, function (target) {
|
|
2136
|
+
var psd = target;
|
|
2137
|
+
if (!psd.linkedFiles || !psd.linkedFiles.length)
|
|
2138
|
+
return false;
|
|
2139
|
+
if (tag === 'lnkE' && !psd.linkedFiles.some(function (f) { return f.linkedFile; }))
|
|
2140
|
+
return false;
|
|
2141
|
+
return true;
|
|
2142
|
+
}, function (reader, target, left, _psd) {
|
|
2143
|
+
var psd = target;
|
|
2144
|
+
psd.linkedFiles = psd.linkedFiles || [];
|
|
2145
|
+
while (left() > 8) {
|
|
2146
|
+
var size = readLength64(reader);
|
|
2147
|
+
var startOffset = reader.offset;
|
|
2148
|
+
var type = (0, psdReader_1.readSignature)(reader);
|
|
2149
|
+
// liFD - linked file data
|
|
2150
|
+
// liFE - linked file external
|
|
2151
|
+
// liFA - linked file alias
|
|
2152
|
+
var version = (0, psdReader_1.readInt32)(reader);
|
|
2153
|
+
var id = (0, psdReader_1.readPascalString)(reader, 1);
|
|
2154
|
+
var name_3 = (0, psdReader_1.readUnicodeString)(reader);
|
|
2155
|
+
var fileType = (0, psdReader_1.readSignature)(reader).trim(); // ' ' if empty
|
|
2156
|
+
var fileCreator = (0, psdReader_1.readSignature)(reader).trim(); // ' ' or '\0\0\0\0' if empty
|
|
2157
|
+
var dataSize = readLength64(reader);
|
|
2158
|
+
var hasFileOpenDescriptor = (0, psdReader_1.readUint8)(reader);
|
|
2159
|
+
var fileOpenDescriptor = hasFileOpenDescriptor ? (0, descriptor_1.readVersionAndDescriptor)(reader) : undefined;
|
|
2160
|
+
var linkedFileDescriptor = type === 'liFE' ? (0, descriptor_1.readVersionAndDescriptor)(reader) : undefined;
|
|
2161
|
+
var file = { id: id, name: name_3 };
|
|
2162
|
+
if (fileType)
|
|
2163
|
+
file.type = fileType;
|
|
2164
|
+
if (fileCreator)
|
|
2165
|
+
file.creator = fileCreator;
|
|
2166
|
+
if (fileOpenDescriptor) {
|
|
2167
|
+
file.descriptor = {
|
|
2168
|
+
compInfo: {
|
|
2169
|
+
compID: fileOpenDescriptor.compInfo.compID,
|
|
2170
|
+
originalCompID: fileOpenDescriptor.compInfo.originalCompID,
|
|
2171
|
+
}
|
|
2172
|
+
};
|
|
2173
|
+
}
|
|
2174
|
+
if (type === 'liFE' && version > 3) {
|
|
2175
|
+
var year = (0, psdReader_1.readInt32)(reader);
|
|
2176
|
+
var month = (0, psdReader_1.readUint8)(reader);
|
|
2177
|
+
var day = (0, psdReader_1.readUint8)(reader);
|
|
2178
|
+
var hour = (0, psdReader_1.readUint8)(reader);
|
|
2179
|
+
var minute = (0, psdReader_1.readUint8)(reader);
|
|
2180
|
+
var seconds = (0, psdReader_1.readFloat64)(reader);
|
|
2181
|
+
var wholeSeconds = Math.floor(seconds);
|
|
2182
|
+
var ms = (seconds - wholeSeconds) * 1000;
|
|
2183
|
+
file.time = (new Date(Date.UTC(year, month, day, hour, minute, wholeSeconds, ms))).toISOString();
|
|
2184
|
+
}
|
|
2185
|
+
var fileSize = type === 'liFE' ? readLength64(reader) : 0;
|
|
2186
|
+
if (type === 'liFA')
|
|
2187
|
+
(0, psdReader_1.skipBytes)(reader, 8);
|
|
2188
|
+
if (type === 'liFD')
|
|
2189
|
+
file.data = (0, psdReader_1.readBytes)(reader, dataSize); // seems to be a typo in docs
|
|
2190
|
+
if (version >= 5)
|
|
2191
|
+
file.childDocumentID = (0, psdReader_1.readUnicodeString)(reader);
|
|
2192
|
+
if (version >= 6)
|
|
2193
|
+
file.assetModTime = (0, psdReader_1.readFloat64)(reader);
|
|
2194
|
+
if (version >= 7)
|
|
2195
|
+
file.assetLockedState = (0, psdReader_1.readUint8)(reader);
|
|
2196
|
+
if (type === 'liFE' && version === 2)
|
|
2197
|
+
file.data = (0, psdReader_1.readBytes)(reader, fileSize);
|
|
2198
|
+
if (reader.skipLinkedFilesData)
|
|
2199
|
+
file.data = undefined;
|
|
2200
|
+
if (tag === 'lnkE') {
|
|
2201
|
+
file.linkedFile = {
|
|
2202
|
+
fileSize: fileSize,
|
|
2203
|
+
name: (linkedFileDescriptor === null || linkedFileDescriptor === void 0 ? void 0 : linkedFileDescriptor['Nm ']) || '',
|
|
2204
|
+
fullPath: (linkedFileDescriptor === null || linkedFileDescriptor === void 0 ? void 0 : linkedFileDescriptor.fullPath) || '',
|
|
2205
|
+
originalPath: (linkedFileDescriptor === null || linkedFileDescriptor === void 0 ? void 0 : linkedFileDescriptor.originalPath) || '',
|
|
2206
|
+
relativePath: (linkedFileDescriptor === null || linkedFileDescriptor === void 0 ? void 0 : linkedFileDescriptor.relPath) || '',
|
|
2207
|
+
};
|
|
2208
|
+
}
|
|
2209
|
+
psd.linkedFiles.push(file);
|
|
2210
|
+
while (size % 4)
|
|
2211
|
+
size++;
|
|
2212
|
+
reader.offset = startOffset + size;
|
|
2235
2213
|
}
|
|
2236
|
-
|
|
2237
|
-
|
|
2238
|
-
|
|
2214
|
+
(0, psdReader_1.skipBytes)(reader, left()); // ?
|
|
2215
|
+
}, function (writer, target) {
|
|
2216
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j;
|
|
2217
|
+
var psd = target;
|
|
2218
|
+
for (var _i = 0, _k = psd.linkedFiles; _i < _k.length; _i++) {
|
|
2219
|
+
var file = _k[_i];
|
|
2220
|
+
if ((tag === 'lnkE') !== !!file.linkedFile)
|
|
2221
|
+
continue;
|
|
2222
|
+
var version = 2;
|
|
2223
|
+
if (file.assetLockedState != null)
|
|
2224
|
+
version = 7;
|
|
2225
|
+
else if (file.assetModTime != null)
|
|
2226
|
+
version = 6;
|
|
2227
|
+
else if (file.childDocumentID != null)
|
|
2228
|
+
version = 5;
|
|
2229
|
+
else if (tag == 'lnkE')
|
|
2230
|
+
version = 3;
|
|
2239
2231
|
writeLength64(writer, 0);
|
|
2240
|
-
|
|
2241
|
-
(0, psdWriter_1.
|
|
2242
|
-
|
|
2243
|
-
(
|
|
2244
|
-
|
|
2245
|
-
|
|
2246
|
-
|
|
2247
|
-
|
|
2248
|
-
|
|
2249
|
-
|
|
2250
|
-
(
|
|
2232
|
+
var sizeOffset = writer.offset;
|
|
2233
|
+
(0, psdWriter_1.writeSignature)(writer, (tag === 'lnkE') ? 'liFE' : (file.data ? 'liFD' : 'liFA'));
|
|
2234
|
+
(0, psdWriter_1.writeInt32)(writer, version);
|
|
2235
|
+
if (!file.id || typeof file.id !== 'string' || !/^[0-9a-f]{8}-([0-9a-f]{4}-){3}[0-9a-f]{12}$/.test(file.id)) {
|
|
2236
|
+
throw new Error('Linked file ID must be in a GUID format (example: 20953ddb-9391-11ec-b4f1-c15674f50bc4)');
|
|
2237
|
+
}
|
|
2238
|
+
(0, psdWriter_1.writePascalString)(writer, file.id, 1);
|
|
2239
|
+
(0, psdWriter_1.writeUnicodeStringWithPadding)(writer, file.name || '');
|
|
2240
|
+
(0, psdWriter_1.writeSignature)(writer, file.type ? "".concat(file.type, " ").substring(0, 4) : ' ');
|
|
2241
|
+
(0, psdWriter_1.writeSignature)(writer, file.creator ? "".concat(file.creator, " ").substring(0, 4) : '\0\0\0\0');
|
|
2242
|
+
writeLength64(writer, file.data ? file.data.byteLength : 0);
|
|
2243
|
+
if (file.descriptor && file.descriptor.compInfo) {
|
|
2244
|
+
var desc = {
|
|
2245
|
+
compInfo: {
|
|
2246
|
+
compID: file.descriptor.compInfo.compID,
|
|
2247
|
+
originalCompID: file.descriptor.compInfo.originalCompID,
|
|
2248
|
+
},
|
|
2249
|
+
};
|
|
2250
|
+
(0, psdWriter_1.writeUint8)(writer, 1);
|
|
2251
|
+
(0, descriptor_1.writeVersionAndDescriptor)(writer, '', 'null', desc);
|
|
2252
|
+
}
|
|
2253
|
+
else {
|
|
2254
|
+
(0, psdWriter_1.writeUint8)(writer, 0);
|
|
2255
|
+
}
|
|
2256
|
+
if (tag === 'lnkE') {
|
|
2257
|
+
var desc = {
|
|
2258
|
+
descVersion: 2,
|
|
2259
|
+
'Nm ': (_b = (_a = file.linkedFile) === null || _a === void 0 ? void 0 : _a.name) !== null && _b !== void 0 ? _b : '',
|
|
2260
|
+
fullPath: (_d = (_c = file.linkedFile) === null || _c === void 0 ? void 0 : _c.fullPath) !== null && _d !== void 0 ? _d : '',
|
|
2261
|
+
originalPath: (_f = (_e = file.linkedFile) === null || _e === void 0 ? void 0 : _e.originalPath) !== null && _f !== void 0 ? _f : '',
|
|
2262
|
+
relPath: (_h = (_g = file.linkedFile) === null || _g === void 0 ? void 0 : _g.relativePath) !== null && _h !== void 0 ? _h : '',
|
|
2263
|
+
};
|
|
2264
|
+
(0, descriptor_1.writeVersionAndDescriptor)(writer, '', 'ExternalFileLink', desc);
|
|
2265
|
+
var time = file.time ? new Date(file.time) : new Date();
|
|
2266
|
+
(0, psdWriter_1.writeInt32)(writer, time.getUTCFullYear());
|
|
2267
|
+
(0, psdWriter_1.writeUint8)(writer, time.getUTCMonth());
|
|
2268
|
+
(0, psdWriter_1.writeUint8)(writer, time.getUTCDate());
|
|
2269
|
+
(0, psdWriter_1.writeUint8)(writer, time.getUTCHours());
|
|
2270
|
+
(0, psdWriter_1.writeUint8)(writer, time.getUTCMinutes());
|
|
2271
|
+
(0, psdWriter_1.writeFloat64)(writer, time.getUTCSeconds() + time.getUTCMilliseconds() / 1000);
|
|
2272
|
+
}
|
|
2273
|
+
if (file.data) {
|
|
2274
|
+
(0, psdWriter_1.writeBytes)(writer, file.data);
|
|
2275
|
+
}
|
|
2276
|
+
else {
|
|
2277
|
+
writeLength64(writer, ((_j = file.linkedFile) === null || _j === void 0 ? void 0 : _j.fileSize) || 0);
|
|
2278
|
+
}
|
|
2279
|
+
if (version >= 5)
|
|
2280
|
+
(0, psdWriter_1.writeUnicodeStringWithPadding)(writer, file.childDocumentID || '');
|
|
2281
|
+
if (version >= 6)
|
|
2282
|
+
(0, psdWriter_1.writeFloat64)(writer, file.assetModTime || 0);
|
|
2283
|
+
if (version >= 7)
|
|
2284
|
+
(0, psdWriter_1.writeUint8)(writer, file.assetLockedState || 0);
|
|
2285
|
+
var size = writer.offset - sizeOffset;
|
|
2286
|
+
writer.view.setUint32(sizeOffset - 4, size, false); // write size
|
|
2287
|
+
while (size % 4) {
|
|
2288
|
+
size++;
|
|
2289
|
+
(0, psdWriter_1.writeUint8)(writer, 0);
|
|
2290
|
+
}
|
|
2251
2291
|
}
|
|
2252
|
-
}
|
|
2253
|
-
}
|
|
2292
|
+
});
|
|
2293
|
+
}
|
|
2294
|
+
createLnkHandler('lnk2');
|
|
2295
|
+
createLnkHandler('lnkE');
|
|
2254
2296
|
addHandlerAlias('lnkD', 'lnk2');
|
|
2255
2297
|
addHandlerAlias('lnk3', 'lnk2');
|
|
2256
|
-
addHandlerAlias('lnkE', 'lnk2');
|
|
2257
2298
|
addHandler('pths', hasKey('pathList'), function (reader, target) {
|
|
2258
2299
|
var desc = (0, descriptor_1.readVersionAndDescriptor)(reader, true);
|
|
2259
2300
|
// console.log(require('util').inspect(desc, false, 99, true));
|