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/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
- addHandler('lnk2', function (target) { return !!target.linkedFiles && target.linkedFiles.length > 0; }, function (reader, target, left) {
2436
- var psd = target;
2437
- psd.linkedFiles = psd.linkedFiles || [];
2438
- while (left() > 8) {
2439
- var size = readLength64(reader); // size
2440
- var startOffset = reader.offset;
2441
- var type = (0, psdReader_1.readSignature)(reader);
2442
- // liFD - linked file data
2443
- // liFE - linked file external
2444
- // liFA - linked file alias
2445
- var version = (0, psdReader_1.readInt32)(reader);
2446
- var id = (0, psdReader_1.readPascalString)(reader, 1);
2447
- var name_3 = (0, psdReader_1.readUnicodeString)(reader);
2448
- var fileType = (0, psdReader_1.readSignature)(reader).trim(); // ' ' if empty
2449
- var fileCreator = (0, psdReader_1.readSignature)(reader).trim(); // ' ' or '\0\0\0\0' if empty
2450
- var dataSize = readLength64(reader);
2451
- var hasFileOpenDescriptor = (0, psdReader_1.readUint8)(reader);
2452
- var fileOpenDescriptor = hasFileOpenDescriptor ? (0, descriptor_1.readVersionAndDescriptor)(reader) : undefined;
2453
- var linkedFileDescriptor = type === 'liFE' ? (0, descriptor_1.readVersionAndDescriptor)(reader) : undefined;
2454
- var file = { id: id, name: name_3 };
2455
- if (fileType)
2456
- file.type = fileType;
2457
- if (fileCreator)
2458
- file.creator = fileCreator;
2459
- if (fileOpenDescriptor) {
2460
- file.descriptor = {
2461
- compInfo: {
2462
- compID: fileOpenDescriptor.compInfo.compID,
2463
- originalCompID: fileOpenDescriptor.compInfo.originalCompID,
2464
- }
2465
- };
2466
- }
2467
- if (type === 'liFE' && version > 3) {
2468
- var year = (0, psdReader_1.readInt32)(reader);
2469
- var month = (0, psdReader_1.readUint8)(reader);
2470
- var day = (0, psdReader_1.readUint8)(reader);
2471
- var hour = (0, psdReader_1.readUint8)(reader);
2472
- var minute = (0, psdReader_1.readUint8)(reader);
2473
- var seconds = (0, psdReader_1.readFloat64)(reader);
2474
- var wholeSeconds = Math.floor(seconds);
2475
- var ms = (seconds - wholeSeconds) * 1000;
2476
- file.time = (new Date(year, month, day, hour, minute, wholeSeconds, ms)).toISOString();
2477
- }
2478
- var fileSize = type === 'liFE' ? readLength64(reader) : 0;
2479
- if (type === 'liFA')
2480
- (0, psdReader_1.skipBytes)(reader, 8);
2481
- if (type === 'liFD')
2482
- file.data = (0, psdReader_1.readBytes)(reader, dataSize); // seems to be a typo in docs
2483
- if (version >= 5)
2484
- file.childDocumentID = (0, psdReader_1.readUnicodeString)(reader);
2485
- if (version >= 6)
2486
- file.assetModTime = (0, psdReader_1.readFloat64)(reader);
2487
- if (version >= 7)
2488
- file.assetLockedState = (0, psdReader_1.readUint8)(reader);
2489
- if (type === 'liFE' && version === 2)
2490
- file.data = (0, psdReader_1.readBytes)(reader, fileSize);
2491
- if (reader.skipLinkedFilesData)
2492
- file.data = undefined;
2493
- psd.linkedFiles.push(file);
2494
- linkedFileDescriptor;
2495
- while (size % 4)
2496
- size++;
2497
- reader.offset = startOffset + size;
2498
- }
2499
- (0, psdReader_1.skipBytes)(reader, left()); // ?
2500
- }, function (writer, target) {
2501
- var psd = target;
2502
- for (var _i = 0, _a = psd.linkedFiles; _i < _a.length; _i++) {
2503
- var file = _a[_i];
2504
- var version = 2;
2505
- if (file.assetLockedState != null)
2506
- version = 7;
2507
- else if (file.assetModTime != null)
2508
- version = 6;
2509
- else if (file.childDocumentID != null)
2510
- version = 5;
2511
- // TODO: else if (file.time != null) version = 3; (only for liFE)
2512
- (0, psdWriter_1.writeUint32)(writer, 0);
2513
- (0, psdWriter_1.writeUint32)(writer, 0); // size
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
- if (file.data)
2539
- (0, psdWriter_1.writeBytes)(writer, file.data);
2540
- else
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
- if (version >= 5)
2543
- (0, psdWriter_1.writeUnicodeStringWithPadding)(writer, file.childDocumentID || '');
2544
- if (version >= 6)
2545
- (0, psdWriter_1.writeFloat64)(writer, file.assetModTime || 0);
2546
- if (version >= 7)
2547
- (0, psdWriter_1.writeUint8)(writer, file.assetLockedState || 0);
2548
- var size = writer.offset - sizeOffset;
2549
- writer.view.setUint32(sizeOffset - 4, size, false); // write size
2550
- while (size % 4) {
2551
- size++;
2552
- (0, psdWriter_1.writeUint8)(writer, 0);
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: {
@@ -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;
@@ -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',