ag-psd 17.0.5 → 18.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 CHANGED
@@ -1,6 +1,12 @@
1
1
  # Changelog
2
2
 
3
- ## v17.0.4
3
+ ## v18.0.0
4
+ - Added `fillRule` field to vector paths
5
+
6
+ ## v17.0.6
7
+ - Fixed broken file after saving with layer name longer than 255 characters
8
+
9
+ ## v17.0.5
4
10
  - Fixed incorrect parsing of external linked files
5
11
  - Fixed incorrect parsing of compositorUsed section when some fields are missing
6
12
 
@@ -176,10 +176,15 @@ function readVectorMask(reader, vectorMask, width, height, size) {
176
176
  case 3: { // Open subpath length record
177
177
  (0, psdReader_1.readUint16)(reader); // count
178
178
  var boolOp = (0, psdReader_1.readInt16)(reader);
179
- (0, psdReader_1.readUint16)(reader); // always 1 ?
179
+ var flags = (0, psdReader_1.readUint16)(reader); // bit 1 always 1 ?
180
180
  (0, psdReader_1.skipBytes)(reader, 18);
181
181
  // TODO: 'combine' here might be wrong
182
- path = { open: selector === 3, operation: boolOp === -1 ? 'combine' : exports.booleanOperations[boolOp], knots: [] };
182
+ path = {
183
+ open: selector === 3,
184
+ operation: boolOp === -1 ? 'combine' : exports.booleanOperations[boolOp],
185
+ knots: [],
186
+ fillRule: flags & 2 ? 'non-zero' : 'even-odd',
187
+ };
183
188
  paths.push(path);
184
189
  break;
185
190
  }
@@ -257,7 +262,7 @@ addHandler('vmsk', hasKey('vectorMask'), function (reader, target, left, _a) {
257
262
  (0, psdWriter_1.writeUint16)(writer, path.open ? 3 : 0);
258
263
  (0, psdWriter_1.writeUint16)(writer, path.knots.length);
259
264
  (0, psdWriter_1.writeUint16)(writer, Math.abs(exports.booleanOperations.indexOf(path.operation))); // default to 1 if not found
260
- (0, psdWriter_1.writeUint16)(writer, 1);
265
+ (0, psdWriter_1.writeUint16)(writer, 1 | (path.fillRule === 'non-zero' ? 2 : 0));
261
266
  (0, psdWriter_1.writeZeros)(writer, 18); // TODO: these are sometimes non-zero
262
267
  var linkedKnot = path.open ? 4 : 1;
263
268
  var unlinkedKnot = path.open ? 5 : 2;