UNPKG

hilary

Version:

a simple Dependency Injection (DI) library that provides Inversion of Control (IoC) capabilities in Node.js and the browser

2 lines 21.3 kB
/*! polyn 2017-03-15 */ !function(){"use strict";function a(a,d,e){var f,g;if(Array.isArray(d))for(f=0;f<d.length;f+=1)if(!c[d[f]])return b(new Error("[POLYN] Unable to define module: LOADED OUT OF ORDER"));g=new e(c),Object.defineProperty(c,a,{get:function(){return g},set:function(){return b(new Error("[POLYN] polyn modules are read-only"))},enumerable:!0,configurable:!1})}var b,c={};return b=function(a){var b=console.warn||console.log;return b(a.message,a),a},window?(Object.defineProperty(window,"polyn",{get:function(){return c},set:function(){return b(new Error("[POLYN] polyn modules are read-only"))},enumerable:!0,configurable:!1}),void Object.defineProperty(c,"addModule",{get:function(){return a},set:function(){return b(new Error("[POLYN] polyn modules are read-only"))},enumerable:!0,configurable:!1})):b(new Error("[POLYN] Unable to define module: UNKNOWN RUNTIME"))}(),function(){"use strict";function a(a){return"string"==typeof a?a:"Exception"}function b(a,b){if("object"==typeof a)return a;var c=b;return"string"==typeof b?(f.onWarning(e),c=new Error(b)):b||(f.onWarning(e),c=new Error("UNKNOWN")),c}function c(a,b){var c=[];return Array.isArray(b)?c=b:b?c.push(b):!b&&a&&a.message&&c.push(a.message),c}function d(d,e,f){var g=b(d,e);return{type:a(d),error:g,messages:c(g,f),isException:!0}}var e="[POLYN] EXCEPTION WARNING: You should always pass an Error to Exception, to preserve your stack trace",f={onWarning:function(a){console.log(a)}};"undefined"!=typeof module&&module.exports?module.exports=d:window&&window.polyn?window.polyn.addModule("Exception",null,function(){return d}):console.log(new Error("[POLYN] Unable to define module: UNKNOWN RUNTIME or POLYN NOT DEFINED")),d.configure=function(a){a=a||{},"function"==typeof a.onWarning&&(f.onWarning=a.onWarning)}}(),function(){"use strict";function a(){function a(a,b){b===!0&&"undefined"!=typeof process&&"function"==typeof process.nextTick?process.nextTick(a):setTimeout(a,0)}function f(f,g,h){function i(){j(l+=1,arguments)}function j(a,b){k(function(){try{var d=b[0],g=e(b);if(d)return h.apply(null,[d].concat(g));if(a===f.length)return h.apply(null,[null].concat(g));g.push(c(i)),f[a].apply(null,g)}catch(a){return h.apply(null,[a])}},!0)}function k(b){g.blocking?b():a(b,!0)}var l=-1;return"function"==typeof g?(h=b(g||d),g={blocking:!1}):(h=b(h||d),g=g||{}),Array.isArray(f)?f.length?void i():h():h(new Error("The first argument to waterfall must be an array of functions"))}var g={runAsync:a,waterfall:f};return g}function b(a){return function(){if(null!==a){var b=a;a=null,b.apply(this,arguments)}}}function c(a){return function(){if(null===a)throw new Error("Callback was already called.");var b=a;a=null,b.apply(this,arguments)}}function d(){}function e(a){var b,c=[];for(b in a)a.hasOwnProperty(b)&&c.push(a[b]);return c.shift(),c}var f=a();"undefined"!=typeof module&&module.exports?module.exports=f:window&&window.polyn?window.polyn.addModule("async",null,a):console.log(new Error("[POLYN] Unable to define module: UNKNOWN RUNTIME or POLYN NOT DEFINED"))}(),function(){"use strict";function Factory(a){return new ObjectHelper(a.async)}function ObjectHelper(async){function setReadOnlyProperty(a,b,c,d){var e="the {{name}} property is read-only".replace(/{{name}}/,b);Object.defineProperty(a,b,{get:function(){return c},set:function(){if("function"==typeof d)return d(e);var a=new Error(e);return console.log(a),a},enumerable:!0,configurable:!1})}function copyValue(a){if(!a)return a;try{return isDate(a)?new Date(a):isFunction(a)?copyFunction(a):isRegex(a)?new RegExp(a):isObject(a)&&!Array.isArray(a)?syncCloneObject(a,!0):JSON.parse(JSON.stringify(a))}catch(a){return{type:locale.errorTypes.invalidArgumentException,error:a,messages:[a.message],isException:!0}}}function copyFunction(func){var newFunc,that,prop;if(func&&"function"!=typeof func)return{type:locale.errorTypes.invalidArgumentException,error:new Error(locale.errors.cannotCopyFunction),messages:[locale.errors.cannotCopyFunction],isException:!0};if(!func)return func;that=func.__clonedFrom||func,eval(FUNCTION_TEMPLATE.replace(/{{args}}/,getArgumentNames(func).join(", ")));for(prop in that)that.hasOwnProperty(prop)&&(newFunc[prop]=copyValue(that[prop]));return newFunc.__clonedFrom=that,newFunc}function getArgumentNames(a,b){return"function"!=typeof b?syncGetArgumentNames(a):void async.runAsync(function(){var c=syncGetArgumentNames(a);c.isException?b(c):b(null,c)})}function syncGetArgumentNames(a){var b,c;return a&&"function"!=typeof a?{type:locale.errorTypes.invalidArgumentException,error:new Error(locale.errors.cannotCopyFunction),messages:[locale.errors.cannotCopyFunction],isException:!0}:a?(b=a.toString().replace(STRIP_COMMENTS,""),c=b.slice(b.indexOf("(")+1,b.indexOf(")")).match(ARGUMENT_NAMES),null===c&&(c=[]),c):[]}function cloneObject(a,b,c){return"function"!=typeof c?syncCloneObject(a,b):void async.runAsync(function(){var d=syncCloneObject(a,b);d.isException?c(d):c(null,d)})}function syncCloneObject(a,b){var c,d={};"undefined"==typeof b&&(b=!0);for(c in a)if(a.hasOwnProperty(c)&&(b&&isObject(a[c])&&!isDate(a[c])?d[c]=syncCloneObject(a[c]):b||!isObject(a[c])||isDate(a[c])?d[c]=copyValue(a[c],d):d[c]=null,d[c]&&d[c].isException))return d[c];return d}function merge(a,b,c){return"function"!=typeof c?syncMerge(a,b):void async.runAsync(function(){var d=syncMerge(a,b);d.isException?c(d):c(null,d)})}function syncMerge(a,b){var c,d=syncCloneObject(a);for(c in b)b.hasOwnProperty(c)&&(isObject(b[c])&&!isDate(b[c])?d[c]=merge(a[c],b[c]):d[c]=b[c]);return d}function isDate(a){return"object"==typeof a&&"[object Date]"===Object.prototype.toString.call(a)}function isFunction(a){return"function"==typeof a}function isObject(a){return"object"==typeof a}function isRegex(a){return a&&a instanceof RegExp}var self={};return setReadOnlyProperty(self,"setReadOnlyProperty",setReadOnlyProperty),setReadOnlyProperty(self,"copyValue",copyValue),setReadOnlyProperty(self,"cloneObject",cloneObject),setReadOnlyProperty(self,"merge",merge),setReadOnlyProperty(self,"getArgumentNames",getArgumentNames),self}var STRIP_COMMENTS=/((\/\/.*$)|(\/\*[\s\S]*?\*\/))/gm,ARGUMENT_NAMES=/([^\s,]+)/g,FUNCTION_TEMPLATE="newFunc = function ({{args}}) { return that.apply(that, arguments); }",locale={errorTypes:{invalidArgumentException:"InvalidArgumentException"},errors:{cannotCopyFunction:"Valid values for the function argument are a function, null, or undefined"}};"undefined"!=typeof module&&module.exports?module.exports=new Factory({async:require("./async.js")}):window&&window.polyn?window.polyn.addModule("objectHelper",["async"],Factory):console.log(new Error("[POLYN] Unable to define module: UNKNOWN RUNTIME or POLYN NOT DEFINED"))}(),function(){"use strict";function a(){var a,b={createUid:void 0,createGuid:void 0};return a=function(a){return a.replace(/[xy]/g,function(a){var b=16*Math.random()|0,c="x"===a?b:3&b|8;return c.toString(16)})},b.createUid=function(b){var c;return b=b||12,c=new Array(b+1).join("x"),a(c)},b.createGuid=function(){return a("xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx")},b}"undefined"!=typeof module&&module.exports?module.exports=new a:window&&window.polyn?window.polyn.addModule("id",null,a):console.log(new Error("[POLYN] Unable to define module: UNKNOWN RUNTIME or POLYN NOT DEFINED"))}(),function(){"use strict";function a(){var a,b,c={getType:void 0,defined:void 0,nullOrUndefined:void 0,function:void 0,object:void 0,array:void 0,string:void 0,bool:void 0,boolean:void 0,date:void 0,datetime:void 0,regexp:void 0,number:void 0,nullOrWhitespace:void 0,money:void 0,decimal:void 0,Window:void 0,ObjectID:void 0,not:{defined:void 0,function:void 0,object:void 0,array:void 0,string:void 0,bool:void 0,boolean:void 0,date:void 0,datetime:void 0,regexp:void 0,number:void 0,nullOrWhitespace:void 0,money:void 0,decimal:void 0,Window:void 0,ObjectID:void 0}},d={},e=["Boolean","Number","String","Function","Array","Date","RegExp","Object"];for(a=0;a<e.length;a+=1)b=e[a],d["[object "+b+"]"]=b.toLowerCase();return c.getType=function(a){return"undefined"==typeof a?"undefined":null===a?String(a):"object"==typeof a||"function"==typeof a?d[Object.prototype.toString.call(a)]||"object":typeof a},c.defined=function(a){try{return"undefined"!==c.getType(a)}catch(a){return!1}},c.not.defined=function(a){return c.defined(a)===!1},c.nullOrUndefined=function(a){return c.not.defined(a)||null===a},c.not.nullOrWhitespace=function(a){return"undefined"!=typeof a&&null!==typeof a&&!c.not.string(a)&&/([^\s])/.test(a)},c.nullOrWhitespace=function(a){return c.not.nullOrWhitespace(a)===!1},c.function=function(a){return"function"===c.getType(a)},c.not.function=function(a){return c.function(a)===!1},c.object=function(a){return"object"===c.getType(a)},c.not.object=function(a){return c.object(a)===!1},c.array=function(a){return"array"===c.getType(a)},c.not.array=function(a){return c.array(a)===!1},c.string=function(a){return"string"===c.getType(a)},c.not.string=function(a){return c.string(a)===!1},c.bool=function(a){return"boolean"===c.getType(a)},c.not.bool=function(a){return c.boolean(a)===!1},c.boolean=function(a){return"boolean"===c.getType(a)},c.not.boolean=function(a){return c.boolean(a)===!1},c.datetime=function(a){return"date"===c.getType(a)&&c.function(a.getTime)&&!isNaN(a.getTime())},c.not.datetime=function(a){return c.datetime(a)===!1},c.date=c.datetime,c.not.date=c.not.datetime,c.regexp=function(a){return"regexp"===c.getType(a)},c.not.regexp=function(a){return c.regexp(a)===!1},c.number=function(a){return"number"===c.getType(a)},c.not.number=function(a){return c.number(a)===!1},c.money=function(a){return c.defined(a)&&/^(?:-)?[0-9]\d*(?:\.\d{0,2})?$/.test(a.toString())},c.not.money=function(a){return c.money(a)===!1},c.decimal=function(a,b){return!c.not.number(a)&&(!(b||!c.number(a))||!(!a||+(+a||0).toFixed(b)!==+a))},c.not.decimal=function(a){return c.decimal(a)===!1},c.Window=function(a){return c.defined(Window)&&a instanceof Window},c.not.Window=function(a){return c.Window(a)===!1},c.ObjectID=function(a){return c.defined(a)&&"ObjectID"===a._bsontype},c.not.ObjectID=function(a){return c.ObjectID(a)===!1},c}"undefined"!=typeof module&&module.exports?module.exports=new a:window&&window.polyn?window.polyn.addModule("is",null,a):console.log(new Error("[POLYN] Unable to define module: UNKNOWN RUNTIME or POLYN NOT DEFINED"))}(),function(){"use strict";function a(a){return new b(a.async,a.id,a.is,a.Exception,a.objectHelper)}function b(a,b,c,d,e){var f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,A,B={},C={v20161119:new Date("2016-11-19"),v20161120:new Date("2016-11-20")},D={errorTypes:{invalidArgumentException:"InvalidArgumentException",readOnlyViolation:"ReadOnlyViolation"},errors:{requiresImplementation:"An implementation is required to create a new instance of an interface",requiresProperty:"This implementation does not satisfy blueprint, {{blueprint}}. It should have the property, {{property}}, with type, {{type}}.",requiresArguments:"This implementation does not satisfy blueprint, {{blueprint}}. The function, {{property}}, is missing arguments",missingConstructorArgument:"An object literal is required when constructing a Blueprint",missingSignaturesMatchBlueprintArgument:"The `blueprint` argument is required",missingSignaturesMatchImplementationArgument:"The `implementation` argument is required",missingSignaturesMatchCallbackArgument:"The `callback` argument is required",configurationCompatibilityIsNotValid:"The date you tried to set the Blueprint compatibility to is not valid",validatePropertyInvalidArgs:"To validate a single property, you must provide the blueprint, and the property name",validatePropertyNoBlueprintValue:"The {{property}} property does not exist on the blueprint",validatePropertyFailed:"An error occurred while validating the property"}};return g=function(a,b,c){var d;a=s(a),d=function(d,e){d||t(a,b),"function"==typeof c&&c(d,e)},i(a,b,d)},h=function(a,b){var c;return a=s(a),c=j(a,b),c.result&&t(a,b),c},i=function(b,c,d){a.runAsync(function(){var a=j(b,c);a.result?d(null,!0):d(a.errors,!1)})},j=function(a,b){var c,d=[];if(u(a,b))return{errors:null,result:!0};for(c in b.props)b.props.hasOwnProperty(c)&&k(b.__blueprintId,a,c,b.props[c],d);return d.length>0?{errors:d,result:!1}:{errors:null,result:!0}},k=function(a,b,d,e,f){c.string(e)?m(a,b,d,e,f):c.regexp(e)?r(a,b,d,e,f):c.object(e)&&l(a,b,d,e,e.type,f)},l=function(a,b,d,e,f,g){if(e.required!==!1||!c.not.defined(b[d])&&null!==b[d])if(c.function(e.validate))e.validate(b[d],g,b);else switch(f){case"blueprint":q(e.blueprint,b,d,g);break;case"function":m(a,b,d,f,g),e.args&&n(a,b,d,e.args,g);break;case"decimal":o(a,b,d,e.places,g);break;case"expression":r(a,b,d,e.expression,g);break;default:m(a,b,d,f,g)}},m=function(a,b,d,e,f){c.function(c.not[e])&&c.not[e](b[d])&&f.push(x(D.errors.requiresProperty,a,d,e))},n=function(a,b,d,e,f){var g,h;if(g=c.array(e),g=g&&e.length>0,g=g&&c.function(b[d]),g=g&&b[d].length===e.length,!g){try{h=e.join(", ")}catch(a){h=e.toString()}f.push(x(D.errors.requiresArguments,a,d,h))}},o=function(a,b,d,e,f){c.not.decimal(b[d],e)&&f.push(x(D.errors.requiresProperty,a,d,"decimal with "+e+" places"))},p=function(a,b,d,e){c.function(c.not.boolean)&&c.not.boolean(b[d])&&e.push(x(D.errors.requiresProperty,a,d,"boolean"))},q=function(a,b,c,d){var e,f=a.syncSignatureMatches(b[c]);if(!f.result)for(e=0;e<f.errors.length;e+=1)d.push(f.errors[e])},r=function(a,b,c,d,e){d.test(b[c])===!1&&e.push(x(D.errors.requiresProperty,a,c,d.toString()))},s=function(a){return B.rememberValidation&&(a[B.memoryPropertName]=a[B.memoryPropertName]||{}),a},t=function(a,b){return B.rememberValidation&&(a[B.memoryPropertName][b.__blueprintId]=!0),a},u=function(a,b){return a[B.memoryPropertName]&&a[B.memoryPropertName][b.__blueprintId]},v=function(a,b){return b<a},w=function(a,b){return b>a},x=function(a,b,c,d){return a.replace(/{{blueprint}}/gi,b).replace(/{{property}}/gi,c).replace(/{{type}}/gi,d)},y=function(a,b,c){e.setReadOnlyProperty(a,b,c,function(){var a=new d(D.errorTypes.readOnlyViolation,new Error(b+" is read-only"));return B.onError(a),a})},f=function(a){var g,h={},i={},j=!1;a=a||{};for(g in a)if(a.hasOwnProperty(g))if("__blueprintId"===g)y(h,"__blueprintId",a.__blueprintId);else if(f.isValidatableProperty(a[g]))y(i,g,a[g]);else{j=!0;var k=new d(D.errorTypes.invalidArgumentException,new Error(g+" is not validatable by Blueprint"));B.onError(k)}return c.not.string(h.__blueprintId)&&y(h,"__blueprintId",b.createUid(8)),y(h,"props",i),y(h,"validate",function(a,b){return f.validate(h,a,b)}),y(h,"validateProperty",function(a,b,c){return f.validateProperty(h,a,b,c)}),y(h,"signatureMatches",function(a,b){return f.validate(h,a,b)}),y(h,"syncSignatureMatches",function(a){return f.syncValidate(h,a)}),y(h,"inherits",function(a){return f.syncMerge([h,a])}),y(h,"hasInvalidProperties",j),y(h,"getSchema",function(){return e.cloneObject(a)}),h},f.validate=function(b,d,e){return c.not.function(e)?f.syncValidate(b,d):void a.runAsync(function(){g(d,b,e)})},f.syncValidate=function(a,b){return c.not.defined(a)?{errors:[D.errors.missingSignaturesMatchBlueprintArgument],result:!1}:c.not.defined(b)?{errors:[D.errors.missingSignaturesMatchImplementationArgument],result:!1}:h(b,a)},f.validateProperty=function(b,d,e,g){return c.not.function(g)?f.syncValidateProperty(b,d,e):void a.runAsync(function(){var a=f.syncValidateProperty(b,d,e);return a?void g(a.errors,a.result):g([D.errors.validatePropertyFailed],!1)})},f.syncValidateProperty=function(a,b,d){var e,f={},g=[];return c.not.defined(a)||c.not.string(b)?{errors:[D.errors.validatePropertyInvalidArgs],result:!1}:(e=a.props&&a.props[b]||a[b],c.not.defined(e)?{errors:[D.errors.validatePropertyNoBlueprintValue.replace(/{{property}}/,b)],result:!1}:(f[b]=d,k(a.__blueprintId,f,b,e,g),{errors:0===g.length?null:g,result:0===g.length}))},f.merge=function(b,c){return"function"!=typeof c?f.syncMerge(b):void a.runAsync(function(){c(null,f.syncMerge(b))})},f.syncMerge=function(a){var b,c,d=!0;if(!Array.isArray(a))return null;for(b=a.shift();d&&(d=a.shift());)for(c in d.props)d.props.hasOwnProperty(c)&&(b.props[c]=b.props[c]||d.props[c]);return b},z=function(a){if(c.string(a.compatibility))try{B.compatibility=new Date(a.compatibility)}catch(a){B.compatibility=new Date("2016-11-19"),console.log(D.errors.configurationCompatibilityIsNotValid)}else c.date(a.compatibility)?B.compatibility=a.compatibility:B.compatibility=new Date("2016-11-19")},A=function(){w(C.v20161119,B.compatibility)?(B.rememberValidation=!1,B.memoryPropertName="__blueprints"):(B.rememberValidation=!0,B.memoryPropertName="__interfaces"),B.onError=function(a){console.log(a)}},f.types=["array","blueprint","bool","boolean","date","datetime","decimal","expression","function","money","nullOrWhitespace","number","object","regexp","string","ObjectID"],f.isValidatableProperty=function(a){return!!a&&!!(a.__blueprintId||c.string(a)&&f.types.indexOf(a)>-1||c.string(a.type)&&f.types.indexOf(a.type)>-1||c.regexp(a)||c.function(a.validate))},f.configure=function(a){return a=a||{},z(a),A(),c.defined(a.rememberValidation)&&(B.rememberValidation=a.rememberValidation),c.function(a.onError)&&(B.onError=a.onError),e.copyValue(B)},f.configure(),f}"undefined"!=typeof module&&module.exports?module.exports=a({async:require("./async.js"),id:require("./id.js"),is:require("./is.js"),Exception:require("./Exception.js"),objectHelper:require("./objectHelper.js")}):window&&window.polyn?window.polyn.addModule("Blueprint",["async","id","is","Exception","objectHelper"],a):console.log(new Error("[POLYN] Unable to define module: UNKNOWN RUNTIME or POLYN NOT DEFINED"))}(),function(){"use strict";function a(a){return new b(a.Blueprint,a.Exception,a.objectHelper,a.is,a.async)}function b(a,b,f,g,h){function i(b){function d(d){var f,h={};if(d=d||{},b.__skipValidation!==!0&&!a.validate(e,d).result){var i=new m(new Error(c.errors.initialValidationFailed),a.validate(e,d).errors);return q.onError(i),i}try{for(f in r)r.hasOwnProperty(f)&&"__blueprintId"!==f&&(g.nullOrUndefined(d[f])?k(h,f):j(h,r,d,f))}catch(a){return new m(a)}return h}var e,l,p,r={};if(!b)return new m(new Error("A schema object, and values are required"));for(l in b)b.hasOwnProperty(l)&&"__skipValidation"!==l&&("__skipValdation"===l&&(r.__skipValidation=b.skipValdation),!g.object(b[l])||a.isValidatableProperty(b[l])||b[l].__immutableCtor?r[l]=b[l]:r[l]=new i(b[l]),r[l].__immutableCtor&&(p=l.substring(0,1).toUpperCase()+l.substring(1),d[p]=r[l]));return e=new a(r),n(d,"merge",function(a,b,c){if("function"!=typeof c){var e;return o(d,a,b,function(a,b){e=a||b}),e}h.runAsync(function(){o(d,a,b,c)})}),n(d,"toObject",function(a,b){return f.cloneObject(a,!0,b)}),n(d,"validate",function(b,c){return a.validate(e,b,c)}),n(d,"validateProperty",function(b,d,f){if(!b&&g.function(f))f([c.errors.validatePropertyInvalidArgs],!1);else if(!b)return{errors:[c.errors.validatePropertyInvalidArgs],result:!1};return a.validateProperty(e,d,b[d],f)}),n(d,"log",function(a){a?console.log(d.toObject(a)):console.log(null)}),n(d,"getSchema",function(a){return f.cloneObject(b,!0,a)}),n(d,"blueprint",e),n(d,"__immutableCtor",!0),d}function j(a,b,c,h){var i,j,k;b[h].__immutableCtor&&g.function(b[h])?(i=b[h],f.setReadOnlyProperty(a,h,new i(c[h]),l(h))):Array.isArray(c[h])||p(c[h])?(j=Array.isArray(c[h])?d:e,k=f.copyValue(c[h]),j.forEach(function(a){k[a]=l(h)}),f.setReadOnlyProperty(a,h,k,l(h))):f.setReadOnlyProperty(a,h,f.copyValue(c[h]),l(h))}function k(a,b){f.setReadOnlyProperty(a,b,null,l(b))}function l(a){return function(){var d=new b(c.errorTypes.readOnlyViolation,new Error("Cannot set `"+a+"`. This object is immutable"));return q.onError(d),d}}function m(a,d){return new b(c.errorTypes.invalidArgumentException,a,d)}function n(a,d,e){f.setReadOnlyProperty(a,d,e,function(){var a=new b(c.errorTypes.readOnlyViolation,new Error(d+" is read-only"));return q.onError(a),a})}function o(a,b,c,d){var e,g=f.merge(b,c);return g.isException?d(g):(e=new a(g),e.isException?d(e):d(null,e))}function p(a){return"object"==typeof a&&"[object Date]"===Object.prototype.toString.call(a)}var q={onError:function(a){console.log(a)}};return i.configure=function(a){a=a||{},g.function(a.onError)&&(q.onError=a.onError)},i}var c={errorTypes:{invalidArgumentException:"InvalidArgumentException",readOnlyViolation:"ReadOnlyViolation"},errors:{initialValidationFailed:"The argument passed to the constructor is not valid",validatePropertyInvalidArgs:"To validate a property, you must provide the instance, and property name"}},d=["setPrototypeOf","push","pop","sort","splice","shift","unshift","reverse"],e=["setPrototypeOf","setDate","setFullYear","setHours","setMilliseconds","setMinutes","setMonth","setSeconds","setTime","setUTCDate","setUTCFullYear","setUTCHours","setUTCMilliseconds","setUTCMinutes","setUTCMonth","setUTCSeconds","setYear"];"undefined"!=typeof module&&module.exports?module.exports=a({Blueprint:require("./Blueprint.js"),Exception:require("./Exception.js"),objectHelper:require("./objectHelper.js"),is:require("./is.js"),async:require("./async.js")}):window&&window.polyn?window.polyn.addModule("Immutable",["async","Blueprint","is","Exception","objectHelper"],a):console.log(new Error("[POLYN] Unable to define module: UNKNOWN RUNTIME or POLYN NOT DEFINED"))}();