Commit 000d034a authored by Ryan LeFevre's avatar Ryan LeFevre

Fix parsing of files without layer comps

parent 71635fa6
...@@ -80,7 +80,7 @@ module.exports = PSD = (function(_super) { ...@@ -80,7 +80,7 @@ module.exports = PSD = (function(_super) {
})(Module); })(Module);
},{"./psd/file.coffee":5,"./psd/header.coffee":6,"./psd/image.coffee":7,"./psd/init.coffee":"/ioUh4","./psd/layer_mask.coffee":25,"./psd/lazy_execute.coffee":26,"./psd/nodes/root.coffee":32,"./psd/resources.coffee":36,"coffeescript-module":40}],"psd":[function(require,module,exports){ },{"./psd/file.coffee":5,"./psd/header.coffee":6,"./psd/image.coffee":7,"./psd/init.coffee":"/ioUh4","./psd/layer_mask.coffee":33,"./psd/lazy_execute.coffee":34,"./psd/nodes/root.coffee":40,"./psd/resources.coffee":44,"coffeescript-module":48}],"psd":[function(require,module,exports){
module.exports=require('aS3ana'); module.exports=require('aS3ana');
},{}],3:[function(require,module,exports){ },{}],3:[function(require,module,exports){
var BlendMode, Module, var BlendMode, Module,
...@@ -157,7 +157,7 @@ module.exports = BlendMode = (function(_super) { ...@@ -157,7 +157,7 @@ module.exports = BlendMode = (function(_super) {
})(Module); })(Module);
},{"coffeescript-module":40}],4:[function(require,module,exports){ },{"coffeescript-module":48}],4:[function(require,module,exports){
var Descriptor; var Descriptor;
module.exports = Descriptor = (function() { module.exports = Descriptor = (function() {
...@@ -542,7 +542,7 @@ module.exports = File = (function() { ...@@ -542,7 +542,7 @@ module.exports = File = (function() {
}; };
File.prototype.readBoolean = function() { File.prototype.readBoolean = function() {
return readByte() !== 0; return this.readByte() !== 0;
}; };
return File; return File;
...@@ -550,7 +550,7 @@ module.exports = File = (function() { ...@@ -550,7 +550,7 @@ module.exports = File = (function() {
})(); })();
},{"./util.coffee":38,"jspack":42}],6:[function(require,module,exports){ },{"./util.coffee":46,"jspack":50}],6:[function(require,module,exports){
var Header; var Header;
module.exports = Header = (function() { module.exports = Header = (function() {
...@@ -738,7 +738,7 @@ module.exports = Image = (function(_super) { ...@@ -738,7 +738,7 @@ module.exports = Image = (function(_super) {
})(Module); })(Module);
},{"./image_export.coffee":8,"./image_format.coffee":9,"./image_mode.coffee":12,"coffeescript-module":40}],8:[function(require,module,exports){ },{"./image_export.coffee":8,"./image_format.coffee":9,"./image_mode.coffee":12,"coffeescript-module":48}],8:[function(require,module,exports){
module.exports = { module.exports = {
PNG: require('./image_exports/png.coffee') PNG: require('./image_exports/png.coffee')
}; };
...@@ -911,7 +911,7 @@ module.exports = Layer = (function(_super) { ...@@ -911,7 +911,7 @@ module.exports = Layer = (function(_super) {
})(Module); })(Module);
},{"./layer/blend_modes.coffee":14,"./layer/blending_ranges.coffee":15,"./layer/helpers.coffee":16,"./layer/info.coffee":17,"./layer/mask.coffee":18,"./layer/name.coffee":19,"./layer/position_channels.coffee":20,"coffeescript-module":40}],14:[function(require,module,exports){ },{"./layer/blend_modes.coffee":14,"./layer/blending_ranges.coffee":15,"./layer/helpers.coffee":16,"./layer/info.coffee":17,"./layer/mask.coffee":18,"./layer/name.coffee":19,"./layer/position_channels.coffee":20,"coffeescript-module":48}],14:[function(require,module,exports){
var BlendMode; var BlendMode;
BlendMode = require('../blend_mode.coffee'); BlendMode = require('../blend_mode.coffee');
...@@ -1000,6 +1000,14 @@ LazyExecute = require('../lazy_execute.coffee'); ...@@ -1000,6 +1000,14 @@ LazyExecute = require('../lazy_execute.coffee');
Util = require('../util.coffee'); Util = require('../util.coffee');
LAYER_INFO = { LAYER_INFO = {
blendClippingElements: require('../layer_info/blend_clipping_elements.coffee'),
blendInteriorElements: require('../layer_info/blend_interior_elements.coffee'),
fillOpacity: require('../layer_info/fill_opacity.coffee'),
gradientFill: require('../layer_info/gradient_fill.coffee'),
layerId: require('../layer_info/layer_id.coffee'),
layerNameSource: require('../layer_info/layer_name_source.coffee'),
locked: require('../layer_info/locked.coffee'),
metadata: require('../layer_info/metadata.coffee'),
name: require('../layer_info/unicode_name.coffee'), name: require('../layer_info/unicode_name.coffee'),
nestedSectionDivider: require('../layer_info/nested_section_divider.coffee'), nestedSectionDivider: require('../layer_info/nested_section_divider.coffee'),
sectionDivider: require('../layer_info/section_divider.coffee') sectionDivider: require('../layer_info/section_divider.coffee')
...@@ -1027,7 +1035,7 @@ module.exports = { ...@@ -1027,7 +1035,7 @@ module.exports = {
(function(_this) { (function(_this) {
return (function(name) { return (function(name) {
return _this[name] = function() { return _this[name] = function() {
return this.adjustments[name]; return _this.adjustments[name];
}; };
}); });
})(this)(name); })(this)(name);
...@@ -1046,7 +1054,7 @@ module.exports = { ...@@ -1046,7 +1054,7 @@ module.exports = {
}; };
},{"../layer_info/nested_section_divider.coffee":22,"../layer_info/section_divider.coffee":23,"../layer_info/unicode_name.coffee":24,"../lazy_execute.coffee":26,"../util.coffee":38}],18:[function(require,module,exports){ },{"../layer_info/blend_clipping_elements.coffee":22,"../layer_info/blend_interior_elements.coffee":23,"../layer_info/fill_opacity.coffee":24,"../layer_info/gradient_fill.coffee":25,"../layer_info/layer_id.coffee":26,"../layer_info/layer_name_source.coffee":27,"../layer_info/locked.coffee":28,"../layer_info/metadata.coffee":29,"../layer_info/nested_section_divider.coffee":30,"../layer_info/section_divider.coffee":31,"../layer_info/unicode_name.coffee":32,"../lazy_execute.coffee":34,"../util.coffee":46}],18:[function(require,module,exports){
var Mask; var Mask;
Mask = require('../mask.coffee'); Mask = require('../mask.coffee');
...@@ -1058,7 +1066,7 @@ module.exports = { ...@@ -1058,7 +1066,7 @@ module.exports = {
}; };
},{"../mask.coffee":27}],19:[function(require,module,exports){ },{"../mask.coffee":35}],19:[function(require,module,exports){
var Util; var Util;
Util = require('../util.coffee'); Util = require('../util.coffee');
...@@ -1072,7 +1080,7 @@ module.exports = { ...@@ -1072,7 +1080,7 @@ module.exports = {
}; };
},{"../util.coffee":38}],20:[function(require,module,exports){ },{"../util.coffee":46}],20:[function(require,module,exports){
module.exports = { module.exports = {
parsePositionAndChannels: function() { parsePositionAndChannels: function() {
var i, id, length, _i, _ref, _results; var i, id, length, _i, _ref, _results;
...@@ -1123,6 +1131,254 @@ module.exports = LayerInfo = (function() { ...@@ -1123,6 +1131,254 @@ module.exports = LayerInfo = (function() {
},{}],22:[function(require,module,exports){ },{}],22:[function(require,module,exports){
var BlendClippingElements, LayerInfo,
__hasProp = {}.hasOwnProperty,
__extends = function(child, parent) { for (var key in parent) { if (__hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; };
LayerInfo = require('../layer_info.coffee');
module.exports = BlendClippingElements = (function(_super) {
__extends(BlendClippingElements, _super);
function BlendClippingElements() {
return BlendClippingElements.__super__.constructor.apply(this, arguments);
}
BlendClippingElements.shouldParse = function(key) {
return key === 'clbl';
};
BlendClippingElements.prototype.parse = function() {
this.enabled = this.file.readBoolean();
return this.file.seek(3, true);
};
return BlendClippingElements;
})(LayerInfo);
},{"../layer_info.coffee":21}],23:[function(require,module,exports){
var BlendInteriorElements, LayerInfo,
__hasProp = {}.hasOwnProperty,
__extends = function(child, parent) { for (var key in parent) { if (__hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; };
LayerInfo = require('../layer_info.coffee');
module.exports = BlendInteriorElements = (function(_super) {
__extends(BlendInteriorElements, _super);
function BlendInteriorElements() {
return BlendInteriorElements.__super__.constructor.apply(this, arguments);
}
BlendInteriorElements.shouldParse = function(key) {
return key === 'infx';
};
BlendInteriorElements.prototype.parse = function() {
this.enabled = this.file.readBoolean();
return this.file.seek(3, true);
};
return BlendInteriorElements;
})(LayerInfo);
},{"../layer_info.coffee":21}],24:[function(require,module,exports){
var FillOpacity, LayerInfo,
__hasProp = {}.hasOwnProperty,
__extends = function(child, parent) { for (var key in parent) { if (__hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; };
LayerInfo = require('../layer_info.coffee');
module.exports = FillOpacity = (function(_super) {
__extends(FillOpacity, _super);
function FillOpacity() {
return FillOpacity.__super__.constructor.apply(this, arguments);
}
FillOpacity.shouldParse = function(key) {
return key === 'iOpa';
};
FillOpacity.prototype.parse = function() {
return this.value = this.file.readByte();
};
return FillOpacity;
})(LayerInfo);
},{"../layer_info.coffee":21}],25:[function(require,module,exports){
var Descriptor, GradientFill, LayerInfo,
__hasProp = {}.hasOwnProperty,
__extends = function(child, parent) { for (var key in parent) { if (__hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; };
LayerInfo = require('../layer_info.coffee');
Descriptor = require('../descriptor.coffee');
module.exports = GradientFill = (function(_super) {
__extends(GradientFill, _super);
function GradientFill() {
return GradientFill.__super__.constructor.apply(this, arguments);
}
GradientFill.shouldParse = function(key) {
return key === 'GdFl';
};
GradientFill.prototype.parse = function() {
this.file.seek(4, true);
return this.data = new Descriptor(this.file).parse();
};
return GradientFill;
})(LayerInfo);
},{"../descriptor.coffee":4,"../layer_info.coffee":21}],26:[function(require,module,exports){
var LayerId, LayerInfo,
__hasProp = {}.hasOwnProperty,
__extends = function(child, parent) { for (var key in parent) { if (__hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; };
LayerInfo = require('../layer_info.coffee');
module.exports = LayerId = (function(_super) {
__extends(LayerId, _super);
function LayerId() {
return LayerId.__super__.constructor.apply(this, arguments);
}
LayerId.shouldParse = function(key) {
return key === 'lyid';
};
LayerId.prototype.parse = function() {
return this.id = this.file.readInt();
};
return LayerId;
})(LayerInfo);
},{"../layer_info.coffee":21}],27:[function(require,module,exports){
var LayerInfo, LayerNameSource,
__hasProp = {}.hasOwnProperty,
__extends = function(child, parent) { for (var key in parent) { if (__hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; };
LayerInfo = require('../layer_info.coffee');
module.exports = LayerNameSource = (function(_super) {
__extends(LayerNameSource, _super);
function LayerNameSource() {
return LayerNameSource.__super__.constructor.apply(this, arguments);
}
LayerNameSource.shouldParse = function(key) {
return key === 'lnsr';
};
LayerNameSource.prototype.parse = function() {
return this.id = this.file.readString(4);
};
return LayerNameSource;
})(LayerInfo);
},{"../layer_info.coffee":21}],28:[function(require,module,exports){
var LayerInfo, Locked,
__hasProp = {}.hasOwnProperty,
__extends = function(child, parent) { for (var key in parent) { if (__hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; };
LayerInfo = require('../layer_info.coffee');
module.exports = Locked = (function(_super) {
__extends(Locked, _super);
function Locked() {
return Locked.__super__.constructor.apply(this, arguments);
}
Locked.shouldParse = function(key) {
return key === 'lspf';
};
Locked.prototype.parse = function() {
var locked;
locked = this.file.readInt();
this.transparencyLocked = (locked & (0x01 << 0)) > 0 || locked === -2147483648;
this.compositeLocked = (locked & (0x01 << 1)) > 0 || locked === -2147483648;
this.positionLocked = (locked & (0x01 << 2)) > 0 || locked === -2147483648;
return this.allLocked = this.transparencyLocked && this.compositeLocked && this.positionLocked;
};
return Locked;
})(LayerInfo);
},{"../layer_info.coffee":21}],29:[function(require,module,exports){
var Descriptor, LayerInfo, Metadata,
__hasProp = {}.hasOwnProperty,
__extends = function(child, parent) { for (var key in parent) { if (__hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; };
LayerInfo = require('../layer_info.coffee');
Descriptor = require('../descriptor.coffee');
module.exports = Metadata = (function(_super) {
__extends(Metadata, _super);
function Metadata() {
return Metadata.__super__.constructor.apply(this, arguments);
}
Metadata.shouldParse = function(key) {
return key === 'shmd';
};
Metadata.prototype.parse = function() {
var copyOnSheetDup, count, end, i, key, len, _i, _results;
count = this.file.readInt();
_results = [];
for (i = _i = 0; 0 <= count ? _i < count : _i > count; i = 0 <= count ? ++_i : --_i) {
this.file.seek(4, true);
key = this.file.readString(4);
copyOnSheetDup = this.file.readByte();
this.file.seek(3, true);
len = this.file.readInt();
end = this.file.tell() + len;
if (key === 'cmls') {
this.parseLayerComps();
}
_results.push(this.file.seek(end));
}
return _results;
};
Metadata.prototype.parseLayerComps = function() {
this.file.seek(4, true);
return this.data.layerComp = new Descriptor(this.file).parse();
};
return Metadata;
})(LayerInfo);
},{"../descriptor.coffee":4,"../layer_info.coffee":21}],30:[function(require,module,exports){
var LayerInfo, NestedSectionDivider, var LayerInfo, NestedSectionDivider,
__hasProp = {}.hasOwnProperty, __hasProp = {}.hasOwnProperty,
__extends = function(child, parent) { for (var key in parent) { if (__hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; }; __extends = function(child, parent) { for (var key in parent) { if (__hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; };
...@@ -1159,7 +1415,7 @@ module.exports = NestedSectionDivider = (function(_super) { ...@@ -1159,7 +1415,7 @@ module.exports = NestedSectionDivider = (function(_super) {
})(LayerInfo); })(LayerInfo);
},{"../layer_info.coffee":21}],23:[function(require,module,exports){ },{"../layer_info.coffee":21}],31:[function(require,module,exports){
var LayerInfo, NestedSectionDivider, var LayerInfo, NestedSectionDivider,
__hasProp = {}.hasOwnProperty, __hasProp = {}.hasOwnProperty,
__extends = function(child, parent) { for (var key in parent) { if (__hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; }; __extends = function(child, parent) { for (var key in parent) { if (__hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; };
...@@ -1214,7 +1470,7 @@ module.exports = NestedSectionDivider = (function(_super) { ...@@ -1214,7 +1470,7 @@ module.exports = NestedSectionDivider = (function(_super) {
})(LayerInfo); })(LayerInfo);
},{"../layer_info.coffee":21}],24:[function(require,module,exports){ },{"../layer_info.coffee":21}],32:[function(require,module,exports){
var LayerInfo, UnicodeName, var LayerInfo, UnicodeName,
__hasProp = {}.hasOwnProperty, __hasProp = {}.hasOwnProperty,
__extends = function(child, parent) { for (var key in parent) { if (__hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; }; __extends = function(child, parent) { for (var key in parent) { if (__hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; };
...@@ -1245,7 +1501,7 @@ module.exports = UnicodeName = (function(_super) { ...@@ -1245,7 +1501,7 @@ module.exports = UnicodeName = (function(_super) {
})(LayerInfo); })(LayerInfo);
},{"../layer_info.coffee":21}],25:[function(require,module,exports){ },{"../layer_info.coffee":21}],33:[function(require,module,exports){
var Layer, LayerMask, Util, _; var Layer, LayerMask, Util, _;
_ = require('lodash'); _ = require('lodash');
...@@ -1320,7 +1576,7 @@ module.exports = LayerMask = (function() { ...@@ -1320,7 +1576,7 @@ module.exports = LayerMask = (function() {
})(); })();
},{"./layer.coffee":13,"./util.coffee":38,"lodash":43}],26:[function(require,module,exports){ },{"./layer.coffee":13,"./util.coffee":46,"lodash":51}],34:[function(require,module,exports){
var LazyExecute, var LazyExecute,
__slice = [].slice, __slice = [].slice,
__indexOf = [].indexOf || function(item) { for (var i = 0, l = this.length; i < l; i++) { if (i in this && this[i] === item) return i; } return -1; }; __indexOf = [].indexOf || function(item) { for (var i = 0, l = this.length; i < l; i++) { if (i in this && this[i] === item) return i; } return -1; };
...@@ -1397,7 +1653,7 @@ module.exports = LazyExecute = (function() { ...@@ -1397,7 +1653,7 @@ module.exports = LazyExecute = (function() {
})(); })();
},{}],27:[function(require,module,exports){ },{}],35:[function(require,module,exports){
var Mask; var Mask;
module.exports = Mask = (function() { module.exports = Mask = (function() {
...@@ -1454,7 +1710,7 @@ module.exports = Mask = (function() { ...@@ -1454,7 +1710,7 @@ module.exports = Mask = (function() {
})(); })();
},{}],28:[function(require,module,exports){ },{}],36:[function(require,module,exports){
var Module, Node, _, var Module, Node, _,
__hasProp = {}.hasOwnProperty, __hasProp = {}.hasOwnProperty,
__extends = function(child, parent) { for (var key in parent) { if (__hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; }; __extends = function(child, parent) { for (var key in parent) { if (__hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; };
...@@ -1538,10 +1794,12 @@ module.exports = Node = (function(_super) { ...@@ -1538,10 +1794,12 @@ module.exports = Node = (function(_super) {
}; };
Node.prototype.get = function(prop) { Node.prototype.get = function(prop) {
if (this[prop] != null) { var value;
return this[prop]; value = this[prop] != null ? this[prop] : this.layer[prop];
if (typeof value === 'function') {
return value();
} else { } else {
return this.layer[prop]; return value;
} }
}; };
...@@ -1641,7 +1899,7 @@ module.exports = Node = (function(_super) { ...@@ -1641,7 +1899,7 @@ module.exports = Node = (function(_super) {
})(Module); })(Module);
},{"./nodes/ancestry.coffee":29,"./nodes/search.coffee":33,"coffeescript-module":40,"lodash":43}],29:[function(require,module,exports){ },{"./nodes/ancestry.coffee":37,"./nodes/search.coffee":41,"coffeescript-module":48,"lodash":51}],37:[function(require,module,exports){
var _; var _;
_ = require('lodash'); _ = require('lodash');
...@@ -1727,7 +1985,7 @@ module.exports = { ...@@ -1727,7 +1985,7 @@ module.exports = {
}; };
},{"lodash":43}],30:[function(require,module,exports){ },{"lodash":51}],38:[function(require,module,exports){
var Group, Node, _, var Group, Node, _,
__hasProp = {}.hasOwnProperty, __hasProp = {}.hasOwnProperty,
__extends = function(child, parent) { for (var key in parent) { if (__hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; }; __extends = function(child, parent) { for (var key in parent) { if (__hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; };
...@@ -1779,7 +2037,7 @@ module.exports = Group = (function(_super) { ...@@ -1779,7 +2037,7 @@ module.exports = Group = (function(_super) {
})(Node); })(Node);
},{"../node.coffee":28,"lodash":43}],31:[function(require,module,exports){ },{"../node.coffee":36,"lodash":51}],39:[function(require,module,exports){
var Layer, Node, _, var Layer, Node, _,
__hasProp = {}.hasOwnProperty, __hasProp = {}.hasOwnProperty,
__extends = function(child, parent) { for (var key in parent) { if (__hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; }; __extends = function(child, parent) { for (var key in parent) { if (__hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; };
...@@ -1814,7 +2072,7 @@ module.exports = Layer = (function(_super) { ...@@ -1814,7 +2072,7 @@ module.exports = Layer = (function(_super) {
})(Node); })(Node);
},{"../node.coffee":28,"lodash":43}],32:[function(require,module,exports){ },{"../node.coffee":36,"lodash":51}],40:[function(require,module,exports){
var Group, Layer, Node, Root, _, var Group, Layer, Node, Root, _,
__hasProp = {}.hasOwnProperty, __hasProp = {}.hasOwnProperty,
__extends = function(child, parent) { for (var key in parent) { if (__hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; }; __extends = function(child, parent) { for (var key in parent) { if (__hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; };
...@@ -1878,7 +2136,7 @@ module.exports = Root = (function(_super) { ...@@ -1878,7 +2136,7 @@ module.exports = Root = (function(_super) {
width: this.width, width: this.width,
height: this.height, height: this.height,
resources: { resources: {
layerComps: [], layerComps: this.psd.resources.resource('layerComps')["export"](),
guides: [], guides: [],
slices: [] slices: []
} }
...@@ -1912,7 +2170,7 @@ module.exports = Root = (function(_super) { ...@@ -1912,7 +2170,7 @@ module.exports = Root = (function(_super) {
})(Node); })(Node);
},{"../node.coffee":28,"./group.coffee":30,"./layer.coffee":31,"lodash":43}],33:[function(require,module,exports){ },{"../node.coffee":36,"./group.coffee":38,"./layer.coffee":39,"lodash":51}],41:[function(require,module,exports){
var _; var _;
_ = require('lodash'); _ = require('lodash');
...@@ -1948,7 +2206,7 @@ module.exports = { ...@@ -1948,7 +2206,7 @@ module.exports = {
}; };
},{"lodash":43}],34:[function(require,module,exports){ },{"lodash":51}],42:[function(require,module,exports){
var Resource, Util; var Resource, Util;
Util = require('./util.coffee'); Util = require('./util.coffee');
...@@ -1977,7 +2235,7 @@ module.exports = Resource = (function() { ...@@ -1977,7 +2235,7 @@ module.exports = Resource = (function() {
})(); })();
},{"./resource_section.coffee":35,"./util.coffee":38}],35:[function(require,module,exports){ },{"./resource_section.coffee":43,"./util.coffee":46}],43:[function(require,module,exports){
var ResourceSection, _; var ResourceSection, _;
_ = require('lodash'); _ = require('lodash');
...@@ -2008,7 +2266,7 @@ module.exports = ResourceSection = (function() { ...@@ -2008,7 +2266,7 @@ module.exports = ResourceSection = (function() {
})(); })();
},{"./resources/layer_comps.coffee":37,"lodash":43}],36:[function(require,module,exports){ },{"./resources/layer_comps.coffee":45,"lodash":51}],44:[function(require,module,exports){
var Resource, Resources; var Resource, Resources;
Resource = require('./resource.coffee'); Resource = require('./resource.coffee');
...@@ -2065,7 +2323,7 @@ module.exports = Resources = (function() { ...@@ -2065,7 +2323,7 @@ module.exports = Resources = (function() {
})(); })();
},{"./resource.coffee":34}],37:[function(require,module,exports){ },{"./resource.coffee":42}],45:[function(require,module,exports){
var Descriptor, LayerComps; var Descriptor, LayerComps;
Descriptor = require('../descriptor.coffee'); Descriptor = require('../descriptor.coffee');
...@@ -2118,7 +2376,7 @@ module.exports = LayerComps = (function() { ...@@ -2118,7 +2376,7 @@ module.exports = LayerComps = (function() {
})(); })();
},{"../descriptor.coffee":4}],38:[function(require,module,exports){ },{"../descriptor.coffee":4}],46:[function(require,module,exports){
var Util; var Util;
module.exports = Util = (function() { module.exports = Util = (function() {
...@@ -2149,7 +2407,7 @@ module.exports = Util = (function() { ...@@ -2149,7 +2407,7 @@ module.exports = Util = (function() {
})(); })();
},{}],39:[function(require,module,exports){ },{}],47:[function(require,module,exports){
// shim for using process in browser // shim for using process in browser
var process = module.exports = {}; var process = module.exports = {};
...@@ -2211,9 +2469,9 @@ process.chdir = function (dir) { ...@@ -2211,9 +2469,9 @@ process.chdir = function (dir) {
throw new Error('process.chdir is not supported'); throw new Error('process.chdir is not supported');
}; };
},{}],40:[function(require,module,exports){ },{}],48:[function(require,module,exports){
module.exports = require('./module'); module.exports = require('./module');
},{"./module":41}],41:[function(require,module,exports){ },{"./module":49}],49:[function(require,module,exports){
// Generated by CoffeeScript 1.7.1 // Generated by CoffeeScript 1.7.1
var Module, moduleKeywords, var Module, moduleKeywords,
__indexOf = [].indexOf || function(item) { for (var i = 0, l = this.length; i < l; i++) { if (i in this && this[i] === item) return i; } return -1; }, __indexOf = [].indexOf || function(item) { for (var i = 0, l = this.length; i < l; i++) { if (i in this && this[i] === item) return i; } return -1; },
...@@ -2293,7 +2551,7 @@ exports.Module = Module = (function() { ...@@ -2293,7 +2551,7 @@ exports.Module = Module = (function() {
})(); })();
},{}],42:[function(require,module,exports){ },{}],50:[function(require,module,exports){
/*! /*!
* Copyright © 2008 Fair Oaks Labs, Inc. * Copyright © 2008 Fair Oaks Labs, Inc.
* All rights reserved. * All rights reserved.
...@@ -2549,7 +2807,7 @@ function JSPack() ...@@ -2549,7 +2807,7 @@ function JSPack()
exports.jspack = new JSPack(); exports.jspack = new JSPack();
},{}],43:[function(require,module,exports){ },{}],51:[function(require,module,exports){
(function (global){ (function (global){
/** /**
* @license * @license
...@@ -9338,7 +9596,7 @@ exports.jspack = new JSPack(); ...@@ -9338,7 +9596,7 @@ exports.jspack = new JSPack();
}.call(this)); }.call(this));
}).call(this,typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {}) }).call(this,typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {})
},{}],44:[function(require,module,exports){ },{}],52:[function(require,module,exports){
"use strict"; "use strict";
var Promise = require("./rsvp/promise")["default"]; var Promise = require("./rsvp/promise")["default"];
var EventTarget = require("./rsvp/events")["default"]; var EventTarget = require("./rsvp/events")["default"];
...@@ -9401,7 +9659,7 @@ exports.reject = reject; ...@@ -9401,7 +9659,7 @@ exports.reject = reject;
exports.async = async; exports.async = async;
exports.map = map; exports.map = map;
exports.filter = filter; exports.filter = filter;
},{"./rsvp/all":46,"./rsvp/all-settled":45,"./rsvp/asap":47,"./rsvp/config":48,"./rsvp/defer":49,"./rsvp/events":50,"./rsvp/filter":51,"./rsvp/hash":53,"./rsvp/hash-settled":52,"./rsvp/map":55,"./rsvp/node":56,"./rsvp/promise":57,"./rsvp/race":63,"./rsvp/reject":64,"./rsvp/resolve":65,"./rsvp/rethrow":66}],45:[function(require,module,exports){ },{"./rsvp/all":54,"./rsvp/all-settled":53,"./rsvp/asap":55,"./rsvp/config":56,"./rsvp/defer":57,"./rsvp/events":58,"./rsvp/filter":59,"./rsvp/hash":61,"./rsvp/hash-settled":60,"./rsvp/map":63,"./rsvp/node":64,"./rsvp/promise":65,"./rsvp/race":71,"./rsvp/reject":72,"./rsvp/resolve":73,"./rsvp/rethrow":74}],53:[function(require,module,exports){
'use strict'; 'use strict';
var Promise = require('./promise')['default']; var Promise = require('./promise')['default'];
var isArray = require('./utils').isArray; var isArray = require('./utils').isArray;
...@@ -9507,7 +9765,7 @@ function rejected(reason) { ...@@ -9507,7 +9765,7 @@ function rejected(reason) {
reason: reason reason: reason
}; };
} }
},{"./promise":57,"./utils":67}],46:[function(require,module,exports){ },{"./promise":65,"./utils":75}],54:[function(require,module,exports){
'use strict'; 'use strict';
var Promise = require('./promise')['default']; var Promise = require('./promise')['default'];
/** /**
...@@ -9523,7 +9781,7 @@ var Promise = require('./promise')['default']; ...@@ -9523,7 +9781,7 @@ var Promise = require('./promise')['default'];
exports['default'] = function all(array, label) { exports['default'] = function all(array, label) {
return Promise.all(array, label); return Promise.all(array, label);
}; };
},{"./promise":57}],47:[function(require,module,exports){ },{"./promise":65}],55:[function(require,module,exports){
(function (process){ (function (process){
'use strict'; 'use strict';
exports['default'] = function asap(callback, arg) { exports['default'] = function asap(callback, arg) {
...@@ -9579,7 +9837,7 @@ if (typeof process !== 'undefined' && {}.toString.call(process) === '[object pro ...@@ -9579,7 +9837,7 @@ if (typeof process !== 'undefined' && {}.toString.call(process) === '[object pro
scheduleFlush = useSetTimeout(); scheduleFlush = useSetTimeout();
} }
}).call(this,require("/Users/ryanlefevre/Repositories/psd.js/node_modules/browserify/node_modules/insert-module-globals/node_modules/process/browser.js")) }).call(this,require("/Users/ryanlefevre/Repositories/psd.js/node_modules/browserify/node_modules/insert-module-globals/node_modules/process/browser.js"))
},{"/Users/ryanlefevre/Repositories/psd.js/node_modules/browserify/node_modules/insert-module-globals/node_modules/process/browser.js":39}],48:[function(require,module,exports){ },{"/Users/ryanlefevre/Repositories/psd.js/node_modules/browserify/node_modules/insert-module-globals/node_modules/process/browser.js":47}],56:[function(require,module,exports){
'use strict'; 'use strict';
var EventTarget = require('./events')['default']; var EventTarget = require('./events')['default'];
var config = { instrument: false }; var config = { instrument: false };
...@@ -9600,7 +9858,7 @@ function configure(name, value) { ...@@ -9600,7 +9858,7 @@ function configure(name, value) {
} }
exports.config = config; exports.config = config;
exports.configure = configure; exports.configure = configure;
},{"./events":50}],49:[function(require,module,exports){ },{"./events":58}],57:[function(require,module,exports){
'use strict'; 'use strict';
var Promise = require('./promise')['default']; var Promise = require('./promise')['default'];
/** /**
...@@ -9643,7 +9901,7 @@ exports['default'] = function defer(label) { ...@@ -9643,7 +9901,7 @@ exports['default'] = function defer(label) {
}, label); }, label);
return deferred; return deferred;
}; };
},{"./promise":57}],50:[function(require,module,exports){ },{"./promise":65}],58:[function(require,module,exports){
'use strict'; 'use strict';
function indexOf(callbacks, callback) { function indexOf(callbacks, callback) {
for (var i = 0, l = callbacks.length; i < l; i++) { for (var i = 0, l = callbacks.length; i < l; i++) {
...@@ -9704,7 +9962,7 @@ exports['default'] = { ...@@ -9704,7 +9962,7 @@ exports['default'] = {
} }
} }
}; };
},{}],51:[function(require,module,exports){ },{}],59:[function(require,module,exports){
'use strict'; 'use strict';
var Promise = require('./promise')['default']; var Promise = require('./promise')['default'];
var isFunction = require('./utils').isFunction; var isFunction = require('./utils').isFunction;
...@@ -9815,7 +10073,7 @@ exports['default'] = function filter(promises, filterFn, label) { ...@@ -9815,7 +10073,7 @@ exports['default'] = function filter(promises, filterFn, label) {
}); });
}); });
}; };
},{"./promise":57,"./utils":67}],52:[function(require,module,exports){ },{"./promise":65,"./utils":75}],60:[function(require,module,exports){
'use strict'; 'use strict';
var Promise = require('./promise')['default']; var Promise = require('./promise')['default'];
var isNonThenable = require('./utils').isNonThenable; var isNonThenable = require('./utils').isNonThenable;
...@@ -9970,7 +10228,7 @@ function rejected(reason) { ...@@ -9970,7 +10228,7 @@ function rejected(reason) {
reason: reason reason: reason
}; };
} }
},{"./promise":57,"./utils":67}],53:[function(require,module,exports){ },{"./promise":65,"./utils":75}],61:[function(require,module,exports){
'use strict'; 'use strict';
var Promise = require('./promise')['default']; var Promise = require('./promise')['default'];
var isNonThenable = require('./utils').isNonThenable; var isNonThenable = require('./utils').isNonThenable;
...@@ -10099,7 +10357,7 @@ exports['default'] = function hash(object, label) { ...@@ -10099,7 +10357,7 @@ exports['default'] = function hash(object, label) {
} }
}); });
}; };
},{"./promise":57,"./utils":67}],54:[function(require,module,exports){ },{"./promise":65,"./utils":75}],62:[function(require,module,exports){
'use strict'; 'use strict';
var config = require('./config').config; var config = require('./config').config;
var now = require('./utils').now; var now = require('./utils').now;
...@@ -10121,7 +10379,7 @@ exports['default'] = function instrument(eventName, promise, child) { ...@@ -10121,7 +10379,7 @@ exports['default'] = function instrument(eventName, promise, child) {
}, 0); }, 0);
} }
}; };
},{"./config":48,"./utils":67}],55:[function(require,module,exports){ },{"./config":56,"./utils":75}],63:[function(require,module,exports){
'use strict'; 'use strict';
var Promise = require('./promise')['default']; var Promise = require('./promise')['default'];
var isArray = require('./utils').isArray; var isArray = require('./utils').isArray;
...@@ -10217,7 +10475,7 @@ exports['default'] = function map(promises, mapFn, label) { ...@@ -10217,7 +10475,7 @@ exports['default'] = function map(promises, mapFn, label) {
return Promise.all(results, label); return Promise.all(results, label);
}); });
}; };
},{"./promise":57,"./utils":67}],56:[function(require,module,exports){ },{"./promise":65,"./utils":75}],64:[function(require,module,exports){
'use strict'; 'use strict';
/* global arraySlice */ /* global arraySlice */
var Promise = require('./promise')['default']; var Promise = require('./promise')['default'];
...@@ -10405,7 +10663,7 @@ exports['default'] = function denodeify(nodeFunc, argumentNames) { ...@@ -10405,7 +10663,7 @@ exports['default'] = function denodeify(nodeFunc, argumentNames) {
denodeifiedFunction.__proto__ = nodeFunc; denodeifiedFunction.__proto__ = nodeFunc;
return denodeifiedFunction; return denodeifiedFunction;
}; };
},{"./promise":57,"./utils":67}],57:[function(require,module,exports){ },{"./promise":65,"./utils":75}],65:[function(require,module,exports){
'use strict'; 'use strict';
var config = require('./config').config; var config = require('./config').config;
var EventTarget = require('./events')['default']; var EventTarget = require('./events')['default'];
...@@ -10725,7 +10983,7 @@ function publishRejection(promise) { ...@@ -10725,7 +10983,7 @@ function publishRejection(promise) {
} }
publish(promise, promise._state = REJECTED); publish(promise, promise._state = REJECTED);
} }
},{"./config":48,"./events":50,"./instrument":54,"./promise/all":58,"./promise/cast":59,"./promise/race":60,"./promise/reject":61,"./promise/resolve":62,"./utils":67}],58:[function(require,module,exports){ },{"./config":56,"./events":58,"./instrument":62,"./promise/all":66,"./promise/cast":67,"./promise/race":68,"./promise/reject":69,"./promise/resolve":70,"./utils":75}],66:[function(require,module,exports){
'use strict'; 'use strict';
var isArray = require('../utils').isArray; var isArray = require('../utils').isArray;
var isNonThenable = require('../utils').isNonThenable; var isNonThenable = require('../utils').isNonThenable;
...@@ -10815,7 +11073,7 @@ exports['default'] = function all(entries, label) { ...@@ -10815,7 +11073,7 @@ exports['default'] = function all(entries, label) {
} }
}, label); }, label);
}; };
},{"../utils":67}],59:[function(require,module,exports){ },{"../utils":75}],67:[function(require,module,exports){
'use strict'; 'use strict';
/** /**
@deprecated @deprecated
...@@ -10895,7 +11153,7 @@ exports['default'] = function cast(object, label) { ...@@ -10895,7 +11153,7 @@ exports['default'] = function cast(object, label) {
resolve(object); resolve(object);
}, label); }, label);
}; };
},{}],60:[function(require,module,exports){ },{}],68:[function(require,module,exports){
'use strict'; 'use strict';
/* global toString */ /* global toString */
var isArray = require('../utils').isArray; var isArray = require('../utils').isArray;
...@@ -10999,7 +11257,7 @@ exports['default'] = function race(entries, label) { ...@@ -10999,7 +11257,7 @@ exports['default'] = function race(entries, label) {
} }
}, label); }, label);
}; };
},{"../utils":67}],61:[function(require,module,exports){ },{"../utils":75}],69:[function(require,module,exports){
'use strict'; 'use strict';
/** /**
`RSVP.Promise.reject` returns a promise rejected with the passed `reason`. `RSVP.Promise.reject` returns a promise rejected with the passed `reason`.
...@@ -11043,7 +11301,7 @@ exports['default'] = function reject(reason, label) { ...@@ -11043,7 +11301,7 @@ exports['default'] = function reject(reason, label) {
reject$2(reason); reject$2(reason);
}, label); }, label);
}; };
},{}],62:[function(require,module,exports){ },{}],70:[function(require,module,exports){
'use strict'; 'use strict';
/** /**
`RSVP.Promise.resolve` returns a promise that will become resolved with the `RSVP.Promise.resolve` returns a promise that will become resolved with the
...@@ -11087,7 +11345,7 @@ exports['default'] = function resolve(object, label) { ...@@ -11087,7 +11345,7 @@ exports['default'] = function resolve(object, label) {
resolve$2(object); resolve$2(object);
}, label); }, label);
}; };
},{}],63:[function(require,module,exports){ },{}],71:[function(require,module,exports){
'use strict'; 'use strict';
var Promise = require('./promise')['default']; var Promise = require('./promise')['default'];
/** /**
...@@ -11103,7 +11361,7 @@ var Promise = require('./promise')['default']; ...@@ -11103,7 +11361,7 @@ var Promise = require('./promise')['default'];
exports['default'] = function race(array, label) { exports['default'] = function race(array, label) {
return Promise.race(array, label); return Promise.race(array, label);
}; };
},{"./promise":57}],64:[function(require,module,exports){ },{"./promise":65}],72:[function(require,module,exports){
'use strict'; 'use strict';
var Promise = require('./promise')['default']; var Promise = require('./promise')['default'];
/** /**
...@@ -11120,7 +11378,7 @@ var Promise = require('./promise')['default']; ...@@ -11120,7 +11378,7 @@ var Promise = require('./promise')['default'];
exports['default'] = function reject(reason, label) { exports['default'] = function reject(reason, label) {
return Promise.reject(reason, label); return Promise.reject(reason, label);
}; };
},{"./promise":57}],65:[function(require,module,exports){ },{"./promise":65}],73:[function(require,module,exports){
'use strict'; 'use strict';
var Promise = require('./promise')['default']; var Promise = require('./promise')['default'];
/** /**
...@@ -11138,7 +11396,7 @@ var Promise = require('./promise')['default']; ...@@ -11138,7 +11396,7 @@ var Promise = require('./promise')['default'];
exports['default'] = function resolve(value, label) { exports['default'] = function resolve(value, label) {
return Promise.resolve(value, label); return Promise.resolve(value, label);
}; };
},{"./promise":57}],66:[function(require,module,exports){ },{"./promise":65}],74:[function(require,module,exports){
'use strict'; 'use strict';
/** /**
`RSVP.rethrow` will rethrow an error on the next turn of the JavaScript event `RSVP.rethrow` will rethrow an error on the next turn of the JavaScript event
...@@ -11186,7 +11444,7 @@ exports['default'] = function rethrow(reason) { ...@@ -11186,7 +11444,7 @@ exports['default'] = function rethrow(reason) {
}); });
throw reason; throw reason;
}; };
},{}],67:[function(require,module,exports){ },{}],75:[function(require,module,exports){
'use strict'; 'use strict';
function objectOrFunction(x) { function objectOrFunction(x) {
return typeof x === 'function' || typeof x === 'object' && x !== null; return typeof x === 'function' || typeof x === 'object' && x !== null;
...@@ -11268,7 +11526,7 @@ module.exports = { ...@@ -11268,7 +11526,7 @@ module.exports = {
}; };
},{"rsvp":44}],"./image_exports/png.coffee":[function(require,module,exports){ },{"rsvp":52}],"./image_exports/png.coffee":[function(require,module,exports){
module.exports=require('bZ5QlH'); module.exports=require('bZ5QlH');
},{}],"bZ5QlH":[function(require,module,exports){ },{}],"bZ5QlH":[function(require,module,exports){
var RSVP; var RSVP;
...@@ -11306,7 +11564,7 @@ module.exports = { ...@@ -11306,7 +11564,7 @@ module.exports = {
}; };
},{"rsvp":44}],"./image_modes/rgb.coffee":[function(require,module,exports){ },{"rsvp":52}],"./image_modes/rgb.coffee":[function(require,module,exports){
module.exports=require('DhO9gV'); module.exports=require('DhO9gV');
},{}],"DhO9gV":[function(require,module,exports){ },{}],"DhO9gV":[function(require,module,exports){
module.exports = { module.exports = {
......
...@@ -2,6 +2,7 @@ var PSD = require('../../'); ...@@ -2,6 +2,7 @@ var PSD = require('../../');
var file = process.argv[2] || './examples/images/example.psd'; var file = process.argv[2] || './examples/images/example.psd';
PSD.open(file).then(function (psd) { var psd = PSD.fromFile(file);
console.log(psd.tree().export()); psd.parse();
});
\ No newline at end of file console.log(psd.tree().export());
\ No newline at end of file
RSVP = require 'rsvp'
{Module} = require 'coffeescript-module' {Module} = require 'coffeescript-module'
File = require './psd/file.coffee' File = require './psd/file.coffee'
...@@ -22,6 +23,8 @@ module.exports = class PSD extends Module ...@@ -22,6 +23,8 @@ module.exports = class PSD extends Module
Object.defineProperty @, 'layers', Object.defineProperty @, 'layers',
get: -> @layerMask.layers get: -> @layerMask.layers
RSVP.on 'error', (reason) -> console.error(reason)
parse: -> parse: ->
return if @parsed return if @parsed
......
...@@ -35,7 +35,7 @@ module.exports = class Root extends Node ...@@ -35,7 +35,7 @@ module.exports = class Root extends Node
width: @width width: @width
height: @height height: @height
resources: resources:
layerComps: @psd.resources.resource('layerComps').export() layerComps: @psd.resources.resource('layerComps')?.export() or []
guides: [] guides: []
slices: [] slices: []
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment