ag-psd 22.0.2 → 23.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.
- package/CHANGELOG.md +6 -0
- package/dist/additionalInfo.js +182 -124
- package/dist/additionalInfo.js.map +1 -1
- package/dist/bundle.js +184 -133
- package/dist/descriptor.d.ts +6 -0
- package/dist/descriptor.js +1 -1
- package/dist/descriptor.js.map +1 -1
- package/dist/index.d.ts +2 -2
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/psd.d.ts +22 -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 +182 -124
- package/dist-es/additionalInfo.js.map +1 -1
- package/dist-es/descriptor.d.ts +6 -0
- package/dist-es/descriptor.js +1 -1
- package/dist-es/descriptor.js.map +1 -1
- package/dist-es/index.d.ts +2 -2
- package/dist-es/index.js +1 -1
- package/dist-es/index.js.map +1 -1
- package/dist-es/psd.d.ts +22 -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 +195 -111
- package/src/descriptor.ts +8 -2
- package/src/index.ts +3 -2
- package/src/psd.ts +17 -1
- package/src/psdWriter.ts +0 -7
|
@@ -1295,11 +1295,22 @@ function parseFilterFXItem(f, options) {
|
|
|
1295
1295
|
lightDirection: f.Fltr.LghD,
|
|
1296
1296
|
specularity: f.Fltr.specularity,
|
|
1297
1297
|
} });
|
|
1298
|
-
case 'LqFy':
|
|
1299
|
-
|
|
1300
|
-
|
|
1301
|
-
|
|
1302
|
-
|
|
1298
|
+
case 'LqFy':
|
|
1299
|
+
{
|
|
1300
|
+
return __assign(__assign({}, base), { type: 'liquify', filter: {
|
|
1301
|
+
liquifyMesh: f.Fltr.LqMe,
|
|
1302
|
+
} });
|
|
1303
|
+
}
|
|
1304
|
+
;
|
|
1305
|
+
case 'perspectiveWarpTransform':
|
|
1306
|
+
{
|
|
1307
|
+
return __assign(__assign({}, base), { type: 'perspective warp', filter: {
|
|
1308
|
+
vertices: f.Fltr.vertices.map(hrznVrtcToPoint),
|
|
1309
|
+
warpedVertices: f.Fltr.warpedVertices.map(hrznVrtcToPoint),
|
|
1310
|
+
quads: f.Fltr.quads.map(function (q) { return q.indices; }),
|
|
1311
|
+
} });
|
|
1312
|
+
}
|
|
1313
|
+
;
|
|
1303
1314
|
default:
|
|
1304
1315
|
if (options.throwForMissingFeatures) {
|
|
1305
1316
|
throw new Error("Unknown filter classId: ".concat(f.Fltr._classID));
|
|
@@ -1772,6 +1783,13 @@ function serializeFilterFXItem(f) {
|
|
|
1772
1783
|
_classID: 'LqFy',
|
|
1773
1784
|
LqMe: f.filter.liquifyMesh,
|
|
1774
1785
|
}, filterID: 1282492025 });
|
|
1786
|
+
case 'perspective warp': return __assign(__assign({}, base), { Fltr: {
|
|
1787
|
+
_name: 'Perspective Warp',
|
|
1788
|
+
_classID: 'perspectiveWarpTransform',
|
|
1789
|
+
vertices: f.filter.vertices.map(pointToHrznVrtc),
|
|
1790
|
+
warpedVertices: f.filter.warpedVertices.map(pointToHrznVrtc),
|
|
1791
|
+
quads: f.filter.quads.map(function (indices) { return ({ indices: indices }); }),
|
|
1792
|
+
}, filterID: 442 });
|
|
1775
1793
|
default: throw new Error("Unknow filter type: ".concat(f.type));
|
|
1776
1794
|
}
|
|
1777
1795
|
}
|
|
@@ -2126,130 +2144,170 @@ addHandler('Anno', function (target) { return target.annotations !== undefined;
|
|
|
2126
2144
|
writer.view.setUint32(dataOffset - 4, writer.offset - dataOffset, false);
|
|
2127
2145
|
}
|
|
2128
2146
|
});
|
|
2129
|
-
|
|
2130
|
-
|
|
2131
|
-
|
|
2132
|
-
|
|
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
|
-
var sizeOffset = writer.offset;
|
|
2209
|
-
writeSignature(writer, file.data ? 'liFD' : 'liFA');
|
|
2210
|
-
writeInt32(writer, version);
|
|
2211
|
-
if (!file.id || typeof file.id !== 'string' || !/^[0-9a-f]{8}-([0-9a-f]{4}-){3}[0-9a-f]{12}$/.test(file.id)) {
|
|
2212
|
-
throw new Error('Linked file ID must be in a GUID format (example: 20953ddb-9391-11ec-b4f1-c15674f50bc4)');
|
|
2213
|
-
}
|
|
2214
|
-
writePascalString(writer, file.id, 1);
|
|
2215
|
-
writeUnicodeStringWithPadding(writer, file.name || '');
|
|
2216
|
-
writeSignature(writer, file.type ? "".concat(file.type, " ").substring(0, 4) : ' ');
|
|
2217
|
-
writeSignature(writer, file.creator ? "".concat(file.creator, " ").substring(0, 4) : '\0\0\0\0');
|
|
2218
|
-
writeLength64(writer, file.data ? file.data.byteLength : 0);
|
|
2219
|
-
if (file.descriptor && file.descriptor.compInfo) {
|
|
2220
|
-
var desc = {
|
|
2221
|
-
compInfo: {
|
|
2222
|
-
compID: file.descriptor.compInfo.compID,
|
|
2223
|
-
originalCompID: file.descriptor.compInfo.originalCompID,
|
|
2224
|
-
}
|
|
2225
|
-
};
|
|
2226
|
-
writeUint8(writer, 1);
|
|
2227
|
-
writeVersionAndDescriptor(writer, '', 'null', desc);
|
|
2228
|
-
}
|
|
2229
|
-
else {
|
|
2230
|
-
writeUint8(writer, 0);
|
|
2147
|
+
function createLnkHandler(tag) {
|
|
2148
|
+
addHandler(tag, function (target) {
|
|
2149
|
+
var psd = target;
|
|
2150
|
+
if (!psd.linkedFiles || !psd.linkedFiles.length)
|
|
2151
|
+
return false;
|
|
2152
|
+
if (tag === 'lnkE' && !psd.linkedFiles.some(function (f) { return f.linkedFile; }))
|
|
2153
|
+
return false;
|
|
2154
|
+
return true;
|
|
2155
|
+
}, function (reader, target, left, _psd) {
|
|
2156
|
+
var psd = target;
|
|
2157
|
+
psd.linkedFiles = psd.linkedFiles || [];
|
|
2158
|
+
while (left() > 8) {
|
|
2159
|
+
var size = readLength64(reader);
|
|
2160
|
+
var startOffset = reader.offset;
|
|
2161
|
+
var type = readSignature(reader);
|
|
2162
|
+
// liFD - linked file data
|
|
2163
|
+
// liFE - linked file external
|
|
2164
|
+
// liFA - linked file alias
|
|
2165
|
+
var version = readInt32(reader);
|
|
2166
|
+
var id = readPascalString(reader, 1);
|
|
2167
|
+
var name_3 = readUnicodeString(reader);
|
|
2168
|
+
var fileType = readSignature(reader).trim(); // ' ' if empty
|
|
2169
|
+
var fileCreator = readSignature(reader).trim(); // ' ' or '\0\0\0\0' if empty
|
|
2170
|
+
var dataSize = readLength64(reader);
|
|
2171
|
+
var hasFileOpenDescriptor = readUint8(reader);
|
|
2172
|
+
var fileOpenDescriptor = hasFileOpenDescriptor ? readVersionAndDescriptor(reader) : undefined;
|
|
2173
|
+
var linkedFileDescriptor = type === 'liFE' ? readVersionAndDescriptor(reader) : undefined;
|
|
2174
|
+
var file = { id: id, name: name_3 };
|
|
2175
|
+
if (fileType)
|
|
2176
|
+
file.type = fileType;
|
|
2177
|
+
if (fileCreator)
|
|
2178
|
+
file.creator = fileCreator;
|
|
2179
|
+
if (fileOpenDescriptor) {
|
|
2180
|
+
file.descriptor = {
|
|
2181
|
+
compInfo: {
|
|
2182
|
+
compID: fileOpenDescriptor.compInfo.compID,
|
|
2183
|
+
originalCompID: fileOpenDescriptor.compInfo.originalCompID,
|
|
2184
|
+
}
|
|
2185
|
+
};
|
|
2186
|
+
}
|
|
2187
|
+
if (type === 'liFE' && version > 3) {
|
|
2188
|
+
var year = readInt32(reader);
|
|
2189
|
+
var month = readUint8(reader);
|
|
2190
|
+
var day = readUint8(reader);
|
|
2191
|
+
var hour = readUint8(reader);
|
|
2192
|
+
var minute = readUint8(reader);
|
|
2193
|
+
var seconds = readFloat64(reader);
|
|
2194
|
+
var wholeSeconds = Math.floor(seconds);
|
|
2195
|
+
var ms = (seconds - wholeSeconds) * 1000;
|
|
2196
|
+
file.time = (new Date(Date.UTC(year, month, day, hour, minute, wholeSeconds, ms))).toISOString();
|
|
2197
|
+
}
|
|
2198
|
+
var fileSize = type === 'liFE' ? readLength64(reader) : 0;
|
|
2199
|
+
if (type === 'liFA')
|
|
2200
|
+
skipBytes(reader, 8);
|
|
2201
|
+
if (type === 'liFD')
|
|
2202
|
+
file.data = readBytes(reader, dataSize); // seems to be a typo in docs
|
|
2203
|
+
if (version >= 5)
|
|
2204
|
+
file.childDocumentID = readUnicodeString(reader);
|
|
2205
|
+
if (version >= 6)
|
|
2206
|
+
file.assetModTime = readFloat64(reader);
|
|
2207
|
+
if (version >= 7)
|
|
2208
|
+
file.assetLockedState = readUint8(reader);
|
|
2209
|
+
if (type === 'liFE' && version === 2)
|
|
2210
|
+
file.data = readBytes(reader, fileSize);
|
|
2211
|
+
if (reader.skipLinkedFilesData)
|
|
2212
|
+
file.data = undefined;
|
|
2213
|
+
if (tag === 'lnkE') {
|
|
2214
|
+
file.linkedFile = {
|
|
2215
|
+
fileSize: fileSize,
|
|
2216
|
+
name: (linkedFileDescriptor === null || linkedFileDescriptor === void 0 ? void 0 : linkedFileDescriptor['Nm ']) || '',
|
|
2217
|
+
fullPath: (linkedFileDescriptor === null || linkedFileDescriptor === void 0 ? void 0 : linkedFileDescriptor.fullPath) || '',
|
|
2218
|
+
originalPath: (linkedFileDescriptor === null || linkedFileDescriptor === void 0 ? void 0 : linkedFileDescriptor.originalPath) || '',
|
|
2219
|
+
relativePath: (linkedFileDescriptor === null || linkedFileDescriptor === void 0 ? void 0 : linkedFileDescriptor.relPath) || '',
|
|
2220
|
+
};
|
|
2221
|
+
}
|
|
2222
|
+
psd.linkedFiles.push(file);
|
|
2223
|
+
while (size % 4)
|
|
2224
|
+
size++;
|
|
2225
|
+
reader.offset = startOffset + size;
|
|
2231
2226
|
}
|
|
2232
|
-
|
|
2233
|
-
|
|
2234
|
-
|
|
2227
|
+
skipBytes(reader, left()); // ?
|
|
2228
|
+
}, function (writer, target) {
|
|
2229
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j;
|
|
2230
|
+
var psd = target;
|
|
2231
|
+
for (var _i = 0, _k = psd.linkedFiles; _i < _k.length; _i++) {
|
|
2232
|
+
var file = _k[_i];
|
|
2233
|
+
if ((tag === 'lnkE') !== !!file.linkedFile)
|
|
2234
|
+
continue;
|
|
2235
|
+
var version = 2;
|
|
2236
|
+
if (file.assetLockedState != null)
|
|
2237
|
+
version = 7;
|
|
2238
|
+
else if (file.assetModTime != null)
|
|
2239
|
+
version = 6;
|
|
2240
|
+
else if (file.childDocumentID != null)
|
|
2241
|
+
version = 5;
|
|
2242
|
+
else if (tag == 'lnkE')
|
|
2243
|
+
version = 3;
|
|
2235
2244
|
writeLength64(writer, 0);
|
|
2236
|
-
|
|
2237
|
-
|
|
2238
|
-
|
|
2239
|
-
|
|
2240
|
-
|
|
2241
|
-
|
|
2242
|
-
|
|
2243
|
-
|
|
2244
|
-
|
|
2245
|
-
|
|
2246
|
-
|
|
2245
|
+
var sizeOffset = writer.offset;
|
|
2246
|
+
writeSignature(writer, (tag === 'lnkE') ? 'liFE' : (file.data ? 'liFD' : 'liFA'));
|
|
2247
|
+
writeInt32(writer, version);
|
|
2248
|
+
if (!file.id || typeof file.id !== 'string' || !/^[0-9a-f]{8}-([0-9a-f]{4}-){3}[0-9a-f]{12}$/.test(file.id)) {
|
|
2249
|
+
throw new Error('Linked file ID must be in a GUID format (example: 20953ddb-9391-11ec-b4f1-c15674f50bc4)');
|
|
2250
|
+
}
|
|
2251
|
+
writePascalString(writer, file.id, 1);
|
|
2252
|
+
writeUnicodeStringWithPadding(writer, file.name || '');
|
|
2253
|
+
writeSignature(writer, file.type ? "".concat(file.type, " ").substring(0, 4) : ' ');
|
|
2254
|
+
writeSignature(writer, file.creator ? "".concat(file.creator, " ").substring(0, 4) : '\0\0\0\0');
|
|
2255
|
+
writeLength64(writer, file.data ? file.data.byteLength : 0);
|
|
2256
|
+
if (file.descriptor && file.descriptor.compInfo) {
|
|
2257
|
+
var desc = {
|
|
2258
|
+
compInfo: {
|
|
2259
|
+
compID: file.descriptor.compInfo.compID,
|
|
2260
|
+
originalCompID: file.descriptor.compInfo.originalCompID,
|
|
2261
|
+
},
|
|
2262
|
+
};
|
|
2263
|
+
writeUint8(writer, 1);
|
|
2264
|
+
writeVersionAndDescriptor(writer, '', 'null', desc);
|
|
2265
|
+
}
|
|
2266
|
+
else {
|
|
2267
|
+
writeUint8(writer, 0);
|
|
2268
|
+
}
|
|
2269
|
+
if (tag === 'lnkE') {
|
|
2270
|
+
var desc = {
|
|
2271
|
+
descVersion: 2,
|
|
2272
|
+
'Nm ': (_b = (_a = file.linkedFile) === null || _a === void 0 ? void 0 : _a.name) !== null && _b !== void 0 ? _b : '',
|
|
2273
|
+
fullPath: (_d = (_c = file.linkedFile) === null || _c === void 0 ? void 0 : _c.fullPath) !== null && _d !== void 0 ? _d : '',
|
|
2274
|
+
originalPath: (_f = (_e = file.linkedFile) === null || _e === void 0 ? void 0 : _e.originalPath) !== null && _f !== void 0 ? _f : '',
|
|
2275
|
+
relPath: (_h = (_g = file.linkedFile) === null || _g === void 0 ? void 0 : _g.relativePath) !== null && _h !== void 0 ? _h : '',
|
|
2276
|
+
};
|
|
2277
|
+
writeVersionAndDescriptor(writer, '', 'ExternalFileLink', desc);
|
|
2278
|
+
var time = file.time ? new Date(file.time) : new Date();
|
|
2279
|
+
writeInt32(writer, time.getUTCFullYear());
|
|
2280
|
+
writeUint8(writer, time.getUTCMonth());
|
|
2281
|
+
writeUint8(writer, time.getUTCDate());
|
|
2282
|
+
writeUint8(writer, time.getUTCHours());
|
|
2283
|
+
writeUint8(writer, time.getUTCMinutes());
|
|
2284
|
+
writeFloat64(writer, time.getUTCSeconds() + time.getUTCMilliseconds() / 1000);
|
|
2285
|
+
}
|
|
2286
|
+
if (file.data) {
|
|
2287
|
+
writeBytes(writer, file.data);
|
|
2288
|
+
}
|
|
2289
|
+
else {
|
|
2290
|
+
writeLength64(writer, ((_j = file.linkedFile) === null || _j === void 0 ? void 0 : _j.fileSize) || 0);
|
|
2291
|
+
}
|
|
2292
|
+
if (version >= 5)
|
|
2293
|
+
writeUnicodeStringWithPadding(writer, file.childDocumentID || '');
|
|
2294
|
+
if (version >= 6)
|
|
2295
|
+
writeFloat64(writer, file.assetModTime || 0);
|
|
2296
|
+
if (version >= 7)
|
|
2297
|
+
writeUint8(writer, file.assetLockedState || 0);
|
|
2298
|
+
var size = writer.offset - sizeOffset;
|
|
2299
|
+
writer.view.setUint32(sizeOffset - 4, size, false); // write size
|
|
2300
|
+
while (size % 4) {
|
|
2301
|
+
size++;
|
|
2302
|
+
writeUint8(writer, 0);
|
|
2303
|
+
}
|
|
2247
2304
|
}
|
|
2248
|
-
}
|
|
2249
|
-
}
|
|
2305
|
+
});
|
|
2306
|
+
}
|
|
2307
|
+
createLnkHandler('lnk2');
|
|
2308
|
+
createLnkHandler('lnkE');
|
|
2250
2309
|
addHandlerAlias('lnkD', 'lnk2');
|
|
2251
2310
|
addHandlerAlias('lnk3', 'lnk2');
|
|
2252
|
-
addHandlerAlias('lnkE', 'lnk2');
|
|
2253
2311
|
addHandler('pths', hasKey('pathList'), function (reader, target) {
|
|
2254
2312
|
var desc = readVersionAndDescriptor(reader, true);
|
|
2255
2313
|
// console.log(require('util').inspect(desc, false, 99, true));
|