ag-psd 22.0.2 → 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 +159 -119
- package/dist/additionalInfo.js.map +1 -1
- package/dist/bundle.js +160 -127
- package/dist/descriptor.d.ts +6 -0
- package/dist/descriptor.js +1 -1
- 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 +159 -119
- 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/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 +163 -110
- package/src/descriptor.ts +8 -2
- package/src/psd.ts +10 -1
- package/src/psdWriter.ts +0 -7
package/dist/bundle.js
CHANGED
|
@@ -2432,130 +2432,170 @@ addHandler('Anno', function (target) { return target.annotations !== undefined;
|
|
|
2432
2432
|
writer.view.setUint32(dataOffset - 4, writer.offset - dataOffset, false);
|
|
2433
2433
|
}
|
|
2434
2434
|
});
|
|
2435
|
-
|
|
2436
|
-
|
|
2437
|
-
|
|
2438
|
-
|
|
2439
|
-
|
|
2440
|
-
|
|
2441
|
-
|
|
2442
|
-
|
|
2443
|
-
|
|
2444
|
-
|
|
2445
|
-
|
|
2446
|
-
|
|
2447
|
-
|
|
2448
|
-
|
|
2449
|
-
|
|
2450
|
-
|
|
2451
|
-
|
|
2452
|
-
|
|
2453
|
-
|
|
2454
|
-
|
|
2455
|
-
|
|
2456
|
-
|
|
2457
|
-
|
|
2458
|
-
|
|
2459
|
-
|
|
2460
|
-
|
|
2461
|
-
|
|
2462
|
-
|
|
2463
|
-
|
|
2464
|
-
|
|
2465
|
-
|
|
2466
|
-
|
|
2467
|
-
|
|
2468
|
-
|
|
2469
|
-
|
|
2470
|
-
|
|
2471
|
-
|
|
2472
|
-
|
|
2473
|
-
|
|
2474
|
-
|
|
2475
|
-
|
|
2476
|
-
|
|
2477
|
-
|
|
2478
|
-
|
|
2479
|
-
|
|
2480
|
-
|
|
2481
|
-
|
|
2482
|
-
|
|
2483
|
-
|
|
2484
|
-
|
|
2485
|
-
|
|
2486
|
-
|
|
2487
|
-
|
|
2488
|
-
|
|
2489
|
-
|
|
2490
|
-
|
|
2491
|
-
|
|
2492
|
-
|
|
2493
|
-
|
|
2494
|
-
|
|
2495
|
-
|
|
2496
|
-
|
|
2497
|
-
|
|
2498
|
-
|
|
2499
|
-
|
|
2500
|
-
|
|
2501
|
-
|
|
2502
|
-
|
|
2503
|
-
|
|
2504
|
-
|
|
2505
|
-
|
|
2506
|
-
|
|
2507
|
-
|
|
2508
|
-
|
|
2509
|
-
|
|
2510
|
-
|
|
2511
|
-
|
|
2512
|
-
|
|
2513
|
-
|
|
2514
|
-
var sizeOffset = writer.offset;
|
|
2515
|
-
(0, psdWriter_1.writeSignature)(writer, file.data ? 'liFD' : 'liFA');
|
|
2516
|
-
(0, psdWriter_1.writeInt32)(writer, version);
|
|
2517
|
-
if (!file.id || typeof file.id !== 'string' || !/^[0-9a-f]{8}-([0-9a-f]{4}-){3}[0-9a-f]{12}$/.test(file.id)) {
|
|
2518
|
-
throw new Error('Linked file ID must be in a GUID format (example: 20953ddb-9391-11ec-b4f1-c15674f50bc4)');
|
|
2519
|
-
}
|
|
2520
|
-
(0, psdWriter_1.writePascalString)(writer, file.id, 1);
|
|
2521
|
-
(0, psdWriter_1.writeUnicodeStringWithPadding)(writer, file.name || '');
|
|
2522
|
-
(0, psdWriter_1.writeSignature)(writer, file.type ? "".concat(file.type, " ").substring(0, 4) : ' ');
|
|
2523
|
-
(0, psdWriter_1.writeSignature)(writer, file.creator ? "".concat(file.creator, " ").substring(0, 4) : '\0\0\0\0');
|
|
2524
|
-
writeLength64(writer, file.data ? file.data.byteLength : 0);
|
|
2525
|
-
if (file.descriptor && file.descriptor.compInfo) {
|
|
2526
|
-
var desc = {
|
|
2527
|
-
compInfo: {
|
|
2528
|
-
compID: file.descriptor.compInfo.compID,
|
|
2529
|
-
originalCompID: file.descriptor.compInfo.originalCompID,
|
|
2530
|
-
}
|
|
2531
|
-
};
|
|
2532
|
-
(0, psdWriter_1.writeUint8)(writer, 1);
|
|
2533
|
-
(0, descriptor_1.writeVersionAndDescriptor)(writer, '', 'null', desc);
|
|
2534
|
-
}
|
|
2535
|
-
else {
|
|
2536
|
-
(0, psdWriter_1.writeUint8)(writer, 0);
|
|
2435
|
+
function createLnkHandler(tag) {
|
|
2436
|
+
addHandler(tag, function (target) {
|
|
2437
|
+
var psd = target;
|
|
2438
|
+
if (!psd.linkedFiles || !psd.linkedFiles.length)
|
|
2439
|
+
return false;
|
|
2440
|
+
if (tag === 'lnkE' && !psd.linkedFiles.some(function (f) { return f.linkedFile; }))
|
|
2441
|
+
return false;
|
|
2442
|
+
return true;
|
|
2443
|
+
}, function (reader, target, left, _psd) {
|
|
2444
|
+
var psd = target;
|
|
2445
|
+
psd.linkedFiles = psd.linkedFiles || [];
|
|
2446
|
+
while (left() > 8) {
|
|
2447
|
+
var size = readLength64(reader);
|
|
2448
|
+
var startOffset = reader.offset;
|
|
2449
|
+
var type = (0, psdReader_1.readSignature)(reader);
|
|
2450
|
+
// liFD - linked file data
|
|
2451
|
+
// liFE - linked file external
|
|
2452
|
+
// liFA - linked file alias
|
|
2453
|
+
var version = (0, psdReader_1.readInt32)(reader);
|
|
2454
|
+
var id = (0, psdReader_1.readPascalString)(reader, 1);
|
|
2455
|
+
var name_3 = (0, psdReader_1.readUnicodeString)(reader);
|
|
2456
|
+
var fileType = (0, psdReader_1.readSignature)(reader).trim(); // ' ' if empty
|
|
2457
|
+
var fileCreator = (0, psdReader_1.readSignature)(reader).trim(); // ' ' or '\0\0\0\0' if empty
|
|
2458
|
+
var dataSize = readLength64(reader);
|
|
2459
|
+
var hasFileOpenDescriptor = (0, psdReader_1.readUint8)(reader);
|
|
2460
|
+
var fileOpenDescriptor = hasFileOpenDescriptor ? (0, descriptor_1.readVersionAndDescriptor)(reader) : undefined;
|
|
2461
|
+
var linkedFileDescriptor = type === 'liFE' ? (0, descriptor_1.readVersionAndDescriptor)(reader) : undefined;
|
|
2462
|
+
var file = { id: id, name: name_3 };
|
|
2463
|
+
if (fileType)
|
|
2464
|
+
file.type = fileType;
|
|
2465
|
+
if (fileCreator)
|
|
2466
|
+
file.creator = fileCreator;
|
|
2467
|
+
if (fileOpenDescriptor) {
|
|
2468
|
+
file.descriptor = {
|
|
2469
|
+
compInfo: {
|
|
2470
|
+
compID: fileOpenDescriptor.compInfo.compID,
|
|
2471
|
+
originalCompID: fileOpenDescriptor.compInfo.originalCompID,
|
|
2472
|
+
}
|
|
2473
|
+
};
|
|
2474
|
+
}
|
|
2475
|
+
if (type === 'liFE' && version > 3) {
|
|
2476
|
+
var year = (0, psdReader_1.readInt32)(reader);
|
|
2477
|
+
var month = (0, psdReader_1.readUint8)(reader);
|
|
2478
|
+
var day = (0, psdReader_1.readUint8)(reader);
|
|
2479
|
+
var hour = (0, psdReader_1.readUint8)(reader);
|
|
2480
|
+
var minute = (0, psdReader_1.readUint8)(reader);
|
|
2481
|
+
var seconds = (0, psdReader_1.readFloat64)(reader);
|
|
2482
|
+
var wholeSeconds = Math.floor(seconds);
|
|
2483
|
+
var ms = (seconds - wholeSeconds) * 1000;
|
|
2484
|
+
file.time = (new Date(Date.UTC(year, month, day, hour, minute, wholeSeconds, ms))).toISOString();
|
|
2485
|
+
}
|
|
2486
|
+
var fileSize = type === 'liFE' ? readLength64(reader) : 0;
|
|
2487
|
+
if (type === 'liFA')
|
|
2488
|
+
(0, psdReader_1.skipBytes)(reader, 8);
|
|
2489
|
+
if (type === 'liFD')
|
|
2490
|
+
file.data = (0, psdReader_1.readBytes)(reader, dataSize); // seems to be a typo in docs
|
|
2491
|
+
if (version >= 5)
|
|
2492
|
+
file.childDocumentID = (0, psdReader_1.readUnicodeString)(reader);
|
|
2493
|
+
if (version >= 6)
|
|
2494
|
+
file.assetModTime = (0, psdReader_1.readFloat64)(reader);
|
|
2495
|
+
if (version >= 7)
|
|
2496
|
+
file.assetLockedState = (0, psdReader_1.readUint8)(reader);
|
|
2497
|
+
if (type === 'liFE' && version === 2)
|
|
2498
|
+
file.data = (0, psdReader_1.readBytes)(reader, fileSize);
|
|
2499
|
+
if (reader.skipLinkedFilesData)
|
|
2500
|
+
file.data = undefined;
|
|
2501
|
+
if (tag === 'lnkE') {
|
|
2502
|
+
file.linkedFile = {
|
|
2503
|
+
fileSize: fileSize,
|
|
2504
|
+
name: (linkedFileDescriptor === null || linkedFileDescriptor === void 0 ? void 0 : linkedFileDescriptor['Nm ']) || '',
|
|
2505
|
+
fullPath: (linkedFileDescriptor === null || linkedFileDescriptor === void 0 ? void 0 : linkedFileDescriptor.fullPath) || '',
|
|
2506
|
+
originalPath: (linkedFileDescriptor === null || linkedFileDescriptor === void 0 ? void 0 : linkedFileDescriptor.originalPath) || '',
|
|
2507
|
+
relativePath: (linkedFileDescriptor === null || linkedFileDescriptor === void 0 ? void 0 : linkedFileDescriptor.relPath) || '',
|
|
2508
|
+
};
|
|
2509
|
+
}
|
|
2510
|
+
psd.linkedFiles.push(file);
|
|
2511
|
+
while (size % 4)
|
|
2512
|
+
size++;
|
|
2513
|
+
reader.offset = startOffset + size;
|
|
2537
2514
|
}
|
|
2538
|
-
|
|
2539
|
-
|
|
2540
|
-
|
|
2515
|
+
(0, psdReader_1.skipBytes)(reader, left()); // ?
|
|
2516
|
+
}, function (writer, target) {
|
|
2517
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j;
|
|
2518
|
+
var psd = target;
|
|
2519
|
+
for (var _i = 0, _k = psd.linkedFiles; _i < _k.length; _i++) {
|
|
2520
|
+
var file = _k[_i];
|
|
2521
|
+
if ((tag === 'lnkE') !== !!file.linkedFile)
|
|
2522
|
+
continue;
|
|
2523
|
+
var version = 2;
|
|
2524
|
+
if (file.assetLockedState != null)
|
|
2525
|
+
version = 7;
|
|
2526
|
+
else if (file.assetModTime != null)
|
|
2527
|
+
version = 6;
|
|
2528
|
+
else if (file.childDocumentID != null)
|
|
2529
|
+
version = 5;
|
|
2530
|
+
else if (tag == 'lnkE')
|
|
2531
|
+
version = 3;
|
|
2541
2532
|
writeLength64(writer, 0);
|
|
2542
|
-
|
|
2543
|
-
(0, psdWriter_1.
|
|
2544
|
-
|
|
2545
|
-
(
|
|
2546
|
-
|
|
2547
|
-
|
|
2548
|
-
|
|
2549
|
-
|
|
2550
|
-
|
|
2551
|
-
|
|
2552
|
-
(
|
|
2533
|
+
var sizeOffset = writer.offset;
|
|
2534
|
+
(0, psdWriter_1.writeSignature)(writer, (tag === 'lnkE') ? 'liFE' : (file.data ? 'liFD' : 'liFA'));
|
|
2535
|
+
(0, psdWriter_1.writeInt32)(writer, version);
|
|
2536
|
+
if (!file.id || typeof file.id !== 'string' || !/^[0-9a-f]{8}-([0-9a-f]{4}-){3}[0-9a-f]{12}$/.test(file.id)) {
|
|
2537
|
+
throw new Error('Linked file ID must be in a GUID format (example: 20953ddb-9391-11ec-b4f1-c15674f50bc4)');
|
|
2538
|
+
}
|
|
2539
|
+
(0, psdWriter_1.writePascalString)(writer, file.id, 1);
|
|
2540
|
+
(0, psdWriter_1.writeUnicodeStringWithPadding)(writer, file.name || '');
|
|
2541
|
+
(0, psdWriter_1.writeSignature)(writer, file.type ? "".concat(file.type, " ").substring(0, 4) : ' ');
|
|
2542
|
+
(0, psdWriter_1.writeSignature)(writer, file.creator ? "".concat(file.creator, " ").substring(0, 4) : '\0\0\0\0');
|
|
2543
|
+
writeLength64(writer, file.data ? file.data.byteLength : 0);
|
|
2544
|
+
if (file.descriptor && file.descriptor.compInfo) {
|
|
2545
|
+
var desc = {
|
|
2546
|
+
compInfo: {
|
|
2547
|
+
compID: file.descriptor.compInfo.compID,
|
|
2548
|
+
originalCompID: file.descriptor.compInfo.originalCompID,
|
|
2549
|
+
},
|
|
2550
|
+
};
|
|
2551
|
+
(0, psdWriter_1.writeUint8)(writer, 1);
|
|
2552
|
+
(0, descriptor_1.writeVersionAndDescriptor)(writer, '', 'null', desc);
|
|
2553
|
+
}
|
|
2554
|
+
else {
|
|
2555
|
+
(0, psdWriter_1.writeUint8)(writer, 0);
|
|
2556
|
+
}
|
|
2557
|
+
if (tag === 'lnkE') {
|
|
2558
|
+
var desc = {
|
|
2559
|
+
descVersion: 2,
|
|
2560
|
+
'Nm ': (_b = (_a = file.linkedFile) === null || _a === void 0 ? void 0 : _a.name) !== null && _b !== void 0 ? _b : '',
|
|
2561
|
+
fullPath: (_d = (_c = file.linkedFile) === null || _c === void 0 ? void 0 : _c.fullPath) !== null && _d !== void 0 ? _d : '',
|
|
2562
|
+
originalPath: (_f = (_e = file.linkedFile) === null || _e === void 0 ? void 0 : _e.originalPath) !== null && _f !== void 0 ? _f : '',
|
|
2563
|
+
relPath: (_h = (_g = file.linkedFile) === null || _g === void 0 ? void 0 : _g.relativePath) !== null && _h !== void 0 ? _h : '',
|
|
2564
|
+
};
|
|
2565
|
+
(0, descriptor_1.writeVersionAndDescriptor)(writer, '', 'ExternalFileLink', desc);
|
|
2566
|
+
var time = file.time ? new Date(file.time) : new Date();
|
|
2567
|
+
(0, psdWriter_1.writeInt32)(writer, time.getUTCFullYear());
|
|
2568
|
+
(0, psdWriter_1.writeUint8)(writer, time.getUTCMonth());
|
|
2569
|
+
(0, psdWriter_1.writeUint8)(writer, time.getUTCDate());
|
|
2570
|
+
(0, psdWriter_1.writeUint8)(writer, time.getUTCHours());
|
|
2571
|
+
(0, psdWriter_1.writeUint8)(writer, time.getUTCMinutes());
|
|
2572
|
+
(0, psdWriter_1.writeFloat64)(writer, time.getUTCSeconds() + time.getUTCMilliseconds() / 1000);
|
|
2573
|
+
}
|
|
2574
|
+
if (file.data) {
|
|
2575
|
+
(0, psdWriter_1.writeBytes)(writer, file.data);
|
|
2576
|
+
}
|
|
2577
|
+
else {
|
|
2578
|
+
writeLength64(writer, ((_j = file.linkedFile) === null || _j === void 0 ? void 0 : _j.fileSize) || 0);
|
|
2579
|
+
}
|
|
2580
|
+
if (version >= 5)
|
|
2581
|
+
(0, psdWriter_1.writeUnicodeStringWithPadding)(writer, file.childDocumentID || '');
|
|
2582
|
+
if (version >= 6)
|
|
2583
|
+
(0, psdWriter_1.writeFloat64)(writer, file.assetModTime || 0);
|
|
2584
|
+
if (version >= 7)
|
|
2585
|
+
(0, psdWriter_1.writeUint8)(writer, file.assetLockedState || 0);
|
|
2586
|
+
var size = writer.offset - sizeOffset;
|
|
2587
|
+
writer.view.setUint32(sizeOffset - 4, size, false); // write size
|
|
2588
|
+
while (size % 4) {
|
|
2589
|
+
size++;
|
|
2590
|
+
(0, psdWriter_1.writeUint8)(writer, 0);
|
|
2591
|
+
}
|
|
2553
2592
|
}
|
|
2554
|
-
}
|
|
2555
|
-
}
|
|
2593
|
+
});
|
|
2594
|
+
}
|
|
2595
|
+
createLnkHandler('lnk2');
|
|
2596
|
+
createLnkHandler('lnkE');
|
|
2556
2597
|
addHandlerAlias('lnkD', 'lnk2');
|
|
2557
2598
|
addHandlerAlias('lnk3', 'lnk2');
|
|
2558
|
-
addHandlerAlias('lnkE', 'lnk2');
|
|
2559
2599
|
addHandler('pths', hasKey('pathList'), function (reader, target) {
|
|
2560
2600
|
var desc = (0, descriptor_1.readVersionAndDescriptor)(reader, true);
|
|
2561
2601
|
// console.log(require('util').inspect(desc, false, 99, true));
|
|
@@ -3713,7 +3753,7 @@ var typeToField = {
|
|
|
3713
3753
|
'Txt ', 'printerName', 'Nm ', 'Idnt', 'blackAndWhitePresetFileName', 'LUT3DFileName',
|
|
3714
3754
|
'presetFileName', 'curvesPresetFileName', 'mixerPresetFileName', 'placed', 'description', 'reason',
|
|
3715
3755
|
'artboardPresetName', 'json', 'clipID', 'relPath', 'fullPath', 'mediaDescriptor', 'Msge',
|
|
3716
|
-
'altTag', 'url', 'cellText', 'preset', 'KnNm', 'FPth', 'comment',
|
|
3756
|
+
'altTag', 'url', 'cellText', 'preset', 'KnNm', 'FPth', 'comment', 'originalPath',
|
|
3717
3757
|
],
|
|
3718
3758
|
'tdta': [
|
|
3719
3759
|
'EngineData', 'LUT3DFileData', 'indexArray', 'originalVertexArray', 'deformedVertexArray',
|
|
@@ -9274,13 +9314,6 @@ function addChildren(layers, children) {
|
|
|
9274
9314
|
sectionDivider: {
|
|
9275
9315
|
type: 3 /* SectionDividerType.BoundingSectionDivider */,
|
|
9276
9316
|
},
|
|
9277
|
-
// TESTING
|
|
9278
|
-
// nameSource: 'lset',
|
|
9279
|
-
// id: [4, 0, 0, 8, 11, 0, 0, 0, 0, 14][layers.length] || 0,
|
|
9280
|
-
// layerColor: 'none',
|
|
9281
|
-
// timestamp: [1611346817.349021, 0, 0, 1611346817.349175, 1611346817.3491833, 0, 0, 0, 0, 1611346817.349832][layers.length] || 0,
|
|
9282
|
-
// protected: {},
|
|
9283
|
-
// referencePoint: { x: 0, y: 0 },
|
|
9284
9317
|
});
|
|
9285
9318
|
addChildren(layers, c.children);
|
|
9286
9319
|
layers.push(__assign(__assign({}, c), { blendMode: c.blendMode === 'pass through' ? 'normal' : c.blendMode, sectionDivider: {
|
package/dist/descriptor.d.ts
CHANGED
|
@@ -149,6 +149,12 @@ export interface WarpDescriptor {
|
|
|
149
149
|
Left: DescriptorUnitsValue;
|
|
150
150
|
Btom: DescriptorUnitsValue;
|
|
151
151
|
Rght: DescriptorUnitsValue;
|
|
152
|
+
} | {
|
|
153
|
+
_classID: 'classFloatRect';
|
|
154
|
+
'Top ': number;
|
|
155
|
+
Left: number;
|
|
156
|
+
Btom: number;
|
|
157
|
+
Rght: number;
|
|
152
158
|
};
|
|
153
159
|
uOrder: number;
|
|
154
160
|
vOrder: number;
|
package/dist/descriptor.js
CHANGED
|
@@ -164,7 +164,7 @@ var typeToField = {
|
|
|
164
164
|
'Txt ', 'printerName', 'Nm ', 'Idnt', 'blackAndWhitePresetFileName', 'LUT3DFileName',
|
|
165
165
|
'presetFileName', 'curvesPresetFileName', 'mixerPresetFileName', 'placed', 'description', 'reason',
|
|
166
166
|
'artboardPresetName', 'json', 'clipID', 'relPath', 'fullPath', 'mediaDescriptor', 'Msge',
|
|
167
|
-
'altTag', 'url', 'cellText', 'preset', 'KnNm', 'FPth', 'comment',
|
|
167
|
+
'altTag', 'url', 'cellText', 'preset', 'KnNm', 'FPth', 'comment', 'originalPath',
|
|
168
168
|
],
|
|
169
169
|
'tdta': [
|
|
170
170
|
'EngineData', 'LUT3DFileData', 'indexArray', 'originalVertexArray', 'deformedVertexArray',
|