/*! Fixture - v1.3.3 - 2017-01-01 https://github.com/fixturejs/fixture A simple, lightweight JavaScript fixture API. Copyright (C) 2017 Kyle Florence Released under the (BSD OR MIT) licenses */ !function(a,b){"function"==typeof define&&define.amd?define([],b):a.Fixture=b()}(this,function(){function a(a,b){var c;b=b||{};for(c in b)a[c]=b[c];return a}function b(a){return"fixture"===f.typeOf(a)}function c(a){return b(this)?(this.data={},this.uuid=g++,void f.extend(this,a)):new c(a)}function d(){this.items=[]}var e=/function ([^(]+)/,f={};a(f,{clone:function(a){var b,c={};for(b in a)c[b]=a[b];return c},extend:a,makeArray:function(a){return"array"===this.typeOf(a)?a:[a]},noop:function(){},typeOf:function(a){var b,c;return null==a?a+"":"object"==(c=typeof a)||"function"===c?(b=e.exec(a.constructor.toString()))&&b[1]&&b[1].toLowerCase()||"object":c}});var g=0;return f.extend(c.prototype,{attach:f.noop,detach:f.noop,equals:function(a){return b(a)&&this.uuid===a.uuid},interact:f.noop,toString:function(){return"Fixture:"+this.uuid},verify:f.noop}),f.extend(c,{create:function(a){return a=this.normalize(a),a&&!b(a)&&(a=new c(a)),a},define:function(a,b,c){if("object"===f.typeOf(a)&&(c=b,b=a,a=b.name),b=this.normalize(b),b.name=a,"object"!==f.typeOf(b)||"string"!==f.typeOf(b.name)||"function"!==f.typeOf(b.attach)&&"function"!==f.typeOf(b.detach)&&"function"!==f.typeOf(b.interact)&&"function"!==f.typeOf(b.verify))throw"Fixture definition is invalid.";if(this.definitions[a]&&c!==!0)throw"Fixture definition name already exists: "+a;return this.definitions[a]=b,b},definitions:{},equal:function(a,c){return b(a)&&a.equals(c)},get:function(a,b){var c=this.definitions[a];return c&&(c=f.extend(f.clone(c),this.normalize(b))),c},isFixture:b,normalize:function(a){var c,d=f.typeOf(a);return"string"===d?c=this.get(a):"function"===d?c={interact:a}:"object"===d?c=this.get(a.name,a)||a:b(a)&&(c=a),c},remove:function(a){var b=this.definitions[a];return b&&delete this.definitions[a],b}}),f.extend(d.prototype,{add:function(a){var b=c.create(a);return b&&this.items.push(b),b},get:function(a,b){var c,d,e,g,h=[];if(null==a)h.push.apply(h,this.items);else for(g=f.makeArray(a),d=0;d