Socket
Socket
Sign inDemoInstall

inversify-binding-decorators

Package Overview
Dependencies
1
Maintainers
1
Versions
17
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

Comparing version 1.0.0-beta.5 to 1.0.0-beta.6

es/interfaces/interfaces.js

6

dist/index.min.js
/**
* inversify-binding-decorators v.1.0.0-beta.5 - An utility that allows developers to declare InversifyJS bindings using ES2016 decorators
* inversify-binding-decorators v.1.0.0-beta.6 - An utility that allows developers to declare InversifyJS bindings using ES2016 decorators
* Copyright (c) 2015 Remo H. Jansen <remo.jansen@wolksoftware.com> (http://www.remojansen.com)

@@ -7,4 +7,4 @@ * MIT inversify.io/LICENSE

*/
!function(n){if("object"==typeof exports&&"undefined"!=typeof module)module.exports=n();else if("function"==typeof define&&define.amd)define([],n);else{var t;t="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:this,t.inversifyBindingDecorators=n()}}(function(){return function n(t,e,r){function i(a,s){if(!e[a]){if(!t[a]){var u="function"==typeof require&&require;if(!s&&u)return u(a,!0);if(o)return o(a,!0);var c=new Error("Cannot find module '"+a+"'");throw c.code="MODULE_NOT_FOUND",c}var d=e[a]={exports:{}};t[a][0].call(d.exports,function(n){var e=t[a][1][n];return i(e?e:n)},d,d.exports,n,t,e,r)}return e[a].exports}for(var o="function"==typeof require&&require,a=0;a<r.length;a++)i(r[a]);return i}({1:[function(n,t,e){"use strict";function r(n,t,e,r){var i=c.TAGGED;return o(i,n,t,r,e)}function i(n,t,e){var r=c.TAGGED_PROP;return o(r,n.constructor,t,e)}function o(n,t,e,r,i){var o=null,a="number"==typeof i,s=a?i.toString():e;if(a===!0&&void 0!==e)throw new Error(d.INVALID_DECORATOR_OPERATION);o=Reflect.hasOwnMetadata(n,t)!==!0?{}:Reflect.getMetadata(n,t);var u=o[s];if(Array.isArray(u)!==!0)u=[];else for(var c=0;c<u.length;c++){var f=u[c];if(f.key===r.key)throw new Error(d.DUPLICATED_METADATA+" "+f.key)}return u.push(r),o[s]=u,Reflect.defineMetadata(n,o,t),t}function a(n,t){Reflect.decorate(n,t)}function s(n,t){return function(e,r){t(e,r,n)}}function u(n,t,e){"number"==typeof e?a([s(e,n)],t):a([n],t)}var c=n("../constants/metadata_keys"),d=n("../constants/error_msgs");e.tagParameter=r,e.tagProperty=i,e.decorate=u},{"../constants/error_msgs":13,"../constants/metadata_keys":14}],2:[function(n,t,e){"use strict";function r(n){return function(t,e,r){var s=new i["default"](a.INJECT_TAG,n);return o.tagParameter(t,e,r,s)}}var i=n("../planning/metadata"),o=n("./decorator_utils"),a=n("../constants/metadata_keys");Object.defineProperty(e,"__esModule",{value:!0}),e["default"]=r},{"../constants/metadata_keys":14,"../planning/metadata":21,"./decorator_utils":1}],3:[function(n,t,e){"use strict";function r(){return function(n){if(Reflect.hasOwnMetadata(i.PARAM_TYPES,n)===!0)throw new Error(o.DUPLICATED_INJECTABLE_DECORATOR);var t=Reflect.getMetadata(i.DESIGN_PARAM_TYPES,n)||[];return Reflect.defineMetadata(i.PARAM_TYPES,t,n),n}}var i=n("../constants/metadata_keys"),o=n("../constants/error_msgs");Object.defineProperty(e,"__esModule",{value:!0}),e["default"]=r},{"../constants/error_msgs":13,"../constants/metadata_keys":14}],4:[function(n,t,e){"use strict";function r(n){return function(t,e,r){var s=new i["default"](a.MULTI_INJECT_TAG,n);return o.tagParameter(t,e,r,s)}}var i=n("../planning/metadata"),o=n("./decorator_utils"),a=n("../constants/metadata_keys");Object.defineProperty(e,"__esModule",{value:!0}),e["default"]=r},{"../constants/metadata_keys":14,"../planning/metadata":21,"./decorator_utils":1}],5:[function(n,t,e){"use strict";function r(n){return function(t,e,r){var s=new i["default"](a.NAMED_TAG,n);return"number"==typeof r?o.tagParameter(t,e,r,s):o.tagProperty(t,e,s)}}var i=n("../planning/metadata"),o=n("./decorator_utils"),a=n("../constants/metadata_keys");Object.defineProperty(e,"__esModule",{value:!0}),e["default"]=r},{"../constants/metadata_keys":14,"../planning/metadata":21,"./decorator_utils":1}],6:[function(n,t,e){"use strict";function r(n,t,e){function r(){return Reflect.hasMetadata(u,this,t)||Reflect.defineMetadata(u,e(),this,t),Reflect.getMetadata(u,this,t)}function i(n){Reflect.defineMetadata(u,n,this,t)}Object.defineProperty(n,t,{configurable:!0,enumerable:!0,get:r,set:i})}function i(n){return function(t){return function(e,i){var o=function(){return n.get(t)};r(e,i,o)}}}function o(n){return function(t,e){return function(i,o){var a=function(){return n.getNamed(t,e)};r(i,o,a)}}}function a(n){return function(t,e,i){return function(o,a){var s=function(){return n.getTagged(t,e,i)};r(o,a,s)}}}function s(n){return function(t){return function(e,i){var o=function(){return n.getAll(t)};r(e,i,o)}}}var u=Symbol();e.makePropertyInjectDecorator=i,e.makePropertyInjectNamedDecorator=o,e.makePropertyInjectTaggedDecorator=a,e.makePropertyMultiInjectDecorator=s},{}],7:[function(n,t,e){"use strict";function r(n,t){return function(e,r,a){var s=new i["default"](n,t);return"number"==typeof a?o.tagParameter(e,r,a,s):o.tagProperty(e,r,s)}}var i=n("../planning/metadata"),o=n("./decorator_utils");Object.defineProperty(e,"__esModule",{value:!0}),e["default"]=r},{"../planning/metadata":21,"./decorator_utils":1}],8:[function(n,t,e){"use strict";function r(n){return function(t,e,r){var s=new i["default"](a.NAME_TAG,n);return o.tagParameter(t,e,r,s)}}var i=n("../planning/metadata"),o=n("./decorator_utils"),a=n("../constants/metadata_keys");Object.defineProperty(e,"__esModule",{value:!0}),e["default"]=r},{"../constants/metadata_keys":14,"../planning/metadata":21,"./decorator_utils":1}],9:[function(n,t,e){"use strict";var r=n("./binding_scope"),i=n("./binding_type"),o=function(){function n(n){this.activated=!1,this.serviceIdentifier=n,this.scope=r["default"].Transient,this.type=i["default"].Invalid,this.constraint=function(n){return!0},this.implementationType=null,this.cache=null,this.factory=null,this.provider=null,this.onActivation=null}return n.prototype.clone=function(){var t=new n(this.serviceIdentifier);return t.activated=!1,t.implementationType=this.implementationType,t.dynamicValue=this.dynamicValue,t.scope=this.scope,t.type=this.type,t.factory=this.factory,t.provider=this.provider,t.constraint=this.constraint,t.onActivation=this.onActivation,t.cache=this.cache,t},n}();Object.defineProperty(e,"__esModule",{value:!0}),e["default"]=o},{"./binding_scope":11,"./binding_type":12}],10:[function(n,t,e){"use strict";var r;!function(n){n[n.NoBindingsAvailable=0]="NoBindingsAvailable",n[n.OnlyOneBindingAvailable=1]="OnlyOneBindingAvailable",n[n.MultipleBindingsAvailable=2]="MultipleBindingsAvailable"}(r||(r={})),Object.defineProperty(e,"__esModule",{value:!0}),e["default"]=r},{}],11:[function(n,t,e){"use strict";var r;!function(n){n[n.Transient=0]="Transient",n[n.Singleton=1]="Singleton"}(r||(r={})),Object.defineProperty(e,"__esModule",{value:!0}),e["default"]=r},{}],12:[function(n,t,e){"use strict";var r;!function(n){n[n.Invalid=0]="Invalid",n[n.Instance=1]="Instance",n[n.ConstantValue=2]="ConstantValue",n[n.DynamicValue=3]="DynamicValue",n[n.Constructor=4]="Constructor",n[n.Factory=5]="Factory",n[n.Provider=6]="Provider"}(r||(r={})),Object.defineProperty(e,"__esModule",{value:!0}),e["default"]=r},{}],13:[function(n,t,e){"use strict";e.DUPLICATED_INJECTABLE_DECORATOR="Cannot apply @injectable decorator multiple times.",e.DUPLICATED_METADATA="Metadadata key was used more than once in a parameter:",e.NULL_ARGUMENT="NULL argument",e.KEY_NOT_FOUND="Key Not Found",e.AMBIGUOUS_MATCH="Ambiguous match found for serviceIdentifier:",e.CANNOT_UNBIND="Could not unbind serviceIdentifier:",e.NOT_REGISTERED="No bindings found for serviceIdentifier:",e.MISSING_INJECTABLE_ANNOTATION="Missing required @injectable annotation in:",e.MISSING_INJECT_ANNOTATION="Missing required @inject or @multiInject annotation in:",e.CIRCULAR_DEPENDENCY="Circular dependency found between services:",e.NOT_IMPLEMENTED="Sorry, this feature is not fully implemented yet.",e.INVALID_BINDING_TYPE="Invalid binding type:",e.MISSING_EXPLICIT_CONSTRUCTOR="Derived class must explicitly declare its constructor:",e.INVALID_DECORATOR_OPERATION="The @inject @multiInject @tagged and @named decorators must be applied to the parameters of a class constructor or a class property.",e.NO_MORE_SNAPSHOTS_AVAILABLE="No snapshot available to restore.",e.INVALID_MIDDLEWARE_RETURN="Invalid return type in middleware. Return must be an Array!"},{}],14:[function(n,t,e){"use strict";e.NAMED_TAG="named",e.NAME_TAG="name",e.INJECT_TAG="inject",e.MULTI_INJECT_TAG="multi_inject",e.TAGGED="inversify:tagged",e.TAGGED_PROP="inversify:tagged_props",e.PARAM_TYPES="inversify:paramtypes",e.DESIGN_PARAM_TYPES="design:paramtypes"},{}],15:[function(n,t,e){"use strict";var r=n("./kernel/kernel");e.Kernel=r["default"];var i=n("./annotation/injectable");e.injectable=i["default"];var o=n("./annotation/tagged");e.tagged=o["default"];var a=n("./annotation/named");e.named=a["default"];var s=n("./annotation/inject");e.inject=s["default"];var u=n("./annotation/property_injectors");e.makePropertyInjectDecorator=u.makePropertyInjectDecorator,e.makePropertyMultiInjectDecorator=u.makePropertyMultiInjectDecorator;var c=n("./annotation/multi_inject");e.multiInject=c["default"];var d=n("./annotation/target_name");e.targetName=d["default"];var f=n("./annotation/decorator_utils");e.decorate=f.decorate;var h=n("./syntax/constraint_helpers");e.traverseAncerstors=h.traverseAncerstors,e.taggedConstraint=h.taggedConstraint,e.namedConstraint=h.namedConstraint,e.typeConstraint=h.typeConstraint},{"./annotation/decorator_utils":1,"./annotation/inject":2,"./annotation/injectable":3,"./annotation/multi_inject":4,"./annotation/named":5,"./annotation/property_injectors":6,"./annotation/tagged":7,"./annotation/target_name":8,"./kernel/kernel":16,"./syntax/constraint_helpers":34}],16:[function(n,t,e){"use strict";var r=n("../bindings/binding_count"),i=n("../bindings/binding"),o=n("./lookup"),a=n("../planning/planner"),s=n("../resolution/resolver"),u=n("../constants/error_msgs"),c=n("../constants/metadata_keys"),d=n("../syntax/binding_to_syntax"),f=n("../planning/metadata"),h=n("../planning/target"),p=n("../planning/request"),_=n("./kernel_snapshot"),y=function(){function n(){this._planner=new a["default"],this._resolver=new s["default"],this._bindingDictionary=new o["default"],this._middleware=null,this._snapshots=[]}return n.prototype.load=function(){for(var n=this,t=[],e=0;e<arguments.length;e++)t[e-0]=arguments[e];t.forEach(function(t){t(n)})},n.prototype.bind=function(n){var t=new i["default"](n);return this._bindingDictionary.add(n,t),new d["default"](t)},n.prototype.unbind=function(n){try{this._bindingDictionary.remove(n)}catch(t){throw new Error(u.CANNOT_UNBIND+" "+n)}},n.prototype.unbindAll=function(){this._bindingDictionary=new o["default"]},n.prototype.get=function(n){return this._get({contextInterceptor:function(n){return n},multiInject:!1,serviceIdentifier:n,target:null})[0]},n.prototype.getNamed=function(n,t){return this.getTagged(n,c.NAMED_TAG,t)},n.prototype.getTagged=function(n,t,e){var r=new f["default"](t,e),i=new h["default"](null,n,r);return this._get({contextInterceptor:function(n){return n},multiInject:!1,serviceIdentifier:n,target:i})[0]},n.prototype.snapshot=function(){this._snapshots.push(_["default"].of(this._bindingDictionary.clone(),this._middleware))},n.prototype.restore=function(){if(0===this._snapshots.length)throw new Error(u.NO_MORE_SNAPSHOTS_AVAILABLE);var n=this._snapshots.pop();this._bindingDictionary=n.bindings,this._middleware=n.middleware},n.prototype.getServiceIdentifierAsString=function(n){var t=typeof n;if("function"===t){var e=n;return e.name}if("symbol"===t)return n.toString();var e=n;return e},n.prototype.applyMiddleware=function(){for(var n=[],t=0;t<arguments.length;t++)n[t-0]=arguments[t];var e=this._middleware?this._middleware:this._planAndResolve.bind(this);this._middleware=n.reduce(function(n,t){return t(n)},e)},n.prototype.getAll=function(n){return this._get({contextInterceptor:function(n){return n},multiInject:!0,serviceIdentifier:n,target:null})},n.prototype._get=function(n){var t=null;if(t=this._middleware?this._middleware(n):this._planAndResolve(n),Array.isArray(t)===!1)throw new Error(u.INVALID_MIDDLEWARE_RETURN);return t},n.prototype._planAndResolve=function(n){var t=this._plan(n.multiInject,n.serviceIdentifier,n.target),e=this._resolve(t,n.contextInterceptor);return e},n.prototype._getActiveBindings=function(n,t,e){var i=this._planner.getBindings(this,t);if(null!==e){var o=new p["default"](t,this._planner.createContext(this),null,i,e);i=this._planner.getActiveBindings(o,e)}switch(i.length){case r["default"].NoBindingsAvailable:throw new Error(u.NOT_REGISTERED+" "+t);case r["default"].OnlyOneBindingAvailable:if(n===!1)return i;case r["default"].MultipleBindingsAvailable:default:if(n===!1)throw new Error(u.AMBIGUOUS_MATCH+" "+t);return i}},n.prototype._plan=function(n,t,e){var r=this,i=this._getActiveBindings(n,t,e),o=i.map(function(n){return r._createContext(n,e)});return o},n.prototype._createContext=function(n,t){var e=this._planner.createContext(this);return this._planner.createPlan(e,n,t),e},n.prototype._resolve=function(n,t){var e=this,r=n.map(function(n){return e._resolver.resolve(t(n))});return r},n}();Object.defineProperty(e,"__esModule",{value:!0}),e["default"]=y},{"../bindings/binding":9,"../bindings/binding_count":10,"../constants/error_msgs":13,"../constants/metadata_keys":14,"../planning/metadata":21,"../planning/planner":23,"../planning/request":25,"../planning/target":26,"../resolution/resolver":27,"../syntax/binding_to_syntax":31,"./kernel_snapshot":17,"./lookup":19}],17:[function(n,t,e){"use strict";var r=function(){function n(){}return n.of=function(t,e){var r=new n;return r.bindings=t,r.middleware=e,r},n}();Object.defineProperty(e,"__esModule",{value:!0}),e["default"]=r},{}],18:[function(n,t,e){"use strict";var r=function(){function n(n,t){this.serviceIdentifier=n,this.value=new Array,this.value.push(t)}return n}();Object.defineProperty(e,"__esModule",{value:!0}),e["default"]=r},{}],19:[function(n,t,e){"use strict";var r=n("./key_value_pair"),i=n("../constants/error_msgs"),o=function(){function n(){this._dictionary=[]}return n.prototype.add=function(n,t){if(null===n||void 0===n)throw new Error(i.NULL_ARGUMENT);if(null===t||void 0===t)throw new Error(i.NULL_ARGUMENT);var e=this.getIndexByKey(n);-1!==e?this._dictionary[e].value.push(t):this._dictionary.push(new r["default"](n,t))},n.prototype.get=function(n){if(null===n||void 0===n)throw new Error(i.NULL_ARGUMENT);var t=this.getIndexByKey(n);if(-1!==t)return this._dictionary[t].value;throw new Error(i.KEY_NOT_FOUND)},n.prototype.remove=function(n){if(null===n||void 0===n)throw new Error(i.NULL_ARGUMENT);var t=this.getIndexByKey(n);if(-1===t)throw new Error(i.KEY_NOT_FOUND);this._dictionary.splice(t,1)},n.prototype.hasKey=function(n){if(null===n||void 0===n)throw new Error(i.NULL_ARGUMENT);var t=this.getIndexByKey(n);return-1!==t},n.prototype.clone=function(){for(var t=new n,e=0,r=this._dictionary;e<r.length;e++)for(var i=r[e],o=0,a=i.value;o<a.length;o++){var s=a[o];t.add(i.serviceIdentifier,s.clone())}return t},n.prototype.getIndexByKey=function(n){for(var t=-1,e=0;e<this._dictionary.length;e++){var r=this._dictionary[e];r.serviceIdentifier===n&&(t=e)}return t},n}();Object.defineProperty(e,"__esModule",{value:!0}),e["default"]=o},{"../constants/error_msgs":13,"./key_value_pair":18}],20:[function(n,t,e){"use strict";var r=function(){function n(n){this.kernel=n}return n.prototype.addPlan=function(n){this.plan=n},n}();Object.defineProperty(e,"__esModule",{value:!0}),e["default"]=r},{}],21:[function(n,t,e){"use strict";var r=function(){function n(n,t){this.key=n,this.value=t}return n}();Object.defineProperty(e,"__esModule",{value:!0}),e["default"]=r},{}],22:[function(n,t,e){"use strict";var r=function(){function n(n,t){this.parentContext=n,this.rootRequest=t}return n}();Object.defineProperty(e,"__esModule",{value:!0}),e["default"]=r},{}],23:[function(n,t,e){"use strict";var r=n("./plan"),i=n("./context"),o=n("./request"),a=n("./target"),s=n("../constants/metadata_keys"),u=n("../constants/error_msgs"),c=n("../bindings/binding_type"),d=function(){function n(){}return n.prototype.createContext=function(n){return new i["default"](n)},n.prototype.createPlan=function(n,t,e){var i=this,a=new o["default"](t.serviceIdentifier,n,null,t,e),s=new r["default"](n,a);n.addPlan(s);var u=this._getDependencies(t.implementationType);return u.forEach(function(n){i._createSubRequest(a,n)}),s},n.prototype.getBindings=function(n,t){var e=[],r=n,i=r._bindingDictionary;return i.hasKey(t)&&(e=i.get(t)),e},n.prototype.getActiveBindings=function(n,t){var e=this.getBindings(n.parentContext.kernel,t.serviceIdentifier),r=[];return r=e.length>1&&t.isArray()===!1?e.filter(function(e){var r=new o["default"](e.serviceIdentifier,n.parentContext,n,e,t);return e.constraint(r)}):e},n.prototype._createSubRequest=function(n,t){try{var e=this.getActiveBindings(n,t);if(0===e.length){var r=n.parentContext.kernel.getServiceIdentifierAsString(t.serviceIdentifier);throw new Error(u.NOT_REGISTERED+" "+r)}if(e.length>1&&t.isArray()===!1){var r=n.parentContext.kernel.getServiceIdentifierAsString(t.serviceIdentifier);throw new Error(u.AMBIGUOUS_MATCH+" "+r)}this._createChildRequest(n,t,e)}catch(i){if(!(i instanceof RangeError))throw new Error(i.message);this._throwWhenCircularDependenciesFound(n.parentContext.plan.rootRequest)}},n.prototype._createChildRequest=function(n,t,e){var r=this,i=n.addChildRequest(t.serviceIdentifier,e,t),o=i;e.forEach(function(n){if(t.isArray()&&(o=i.addChildRequest(n.serviceIdentifier,n,t)),n.type===c["default"].Instance){var e=r._getDependencies(n.implementationType);e.forEach(function(n,t){r._createSubRequest(o,n)})}})},n.prototype._throwWhenCircularDependenciesFound=function(n,t){var e=this;void 0===t&&(t=[]),t.push(n.serviceIdentifier),n.childRequests.forEach(function(r){var i=r.serviceIdentifier;if(-1!==t.indexOf(i)){var o=n.parentContext.kernel.getServiceIdentifierAsString(n.serviceIdentifier);throw new Error(u.CIRCULAR_DEPENDENCY+" "+i+" and "+o)}r.childRequests.length>0?e._throwWhenCircularDependenciesFound(r,t):t.push(i)})},n.prototype._getDependencies=function(n){if(null===n)return[];var t=n.name,e=Reflect.getMetadata(s.PARAM_TYPES,n);if(void 0===e){var r=u.MISSING_INJECTABLE_ANNOTATION+" "+t+".";throw new Error(r)}for(var i=Reflect.getMetadata(s.TAGGED,n)||[],o=[],c=function(n){var r=e[n],c=i[n.toString()]||[],d={};c.forEach(function(n){d[n.key.toString()]=n.value});var f=d[s.INJECT_TAG],h=d[s.MULTI_INJECT_TAG],p=d[s.NAME_TAG];if(r=f||h?f||h:r,r===Object||r===Function||void 0===r){var _=u.MISSING_INJECT_ANNOTATION+" argument "+n+" in class "+t+".";throw new Error(_)}var y=new a["default"](p,r);y.metadata=c,o.push(y)},d=0;d<n.length;d++)c(d);if(0===n.length&&0===o.length&&this._baseClassHasDepencencies(n))throw new Error(u.MISSING_EXPLICIT_CONSTRUCTOR+" "+t+".");return o},n.prototype._baseClassHasDepencencies=function(n){var t=Object.getPrototypeOf(n.prototype).constructor;if(t!==Object){var e=Reflect.getMetadata(s.PARAM_TYPES,t);if(void 0===e){var r=t.name,i=u.MISSING_INJECTABLE_ANNOTATION+" "+r+".";throw new Error(i)}return t.length>0&&e?!0:this._baseClassHasDepencencies(t)}return!1},n}();Object.defineProperty(e,"__esModule",{value:!0}),e["default"]=d},{"../bindings/binding_type":12,"../constants/error_msgs":13,"../constants/metadata_keys":14,"./context":20,"./plan":22,"./request":25,"./target":26}],24:[function(n,t,e){"use strict";var r=function(){function n(n){this.str=n}return n.prototype.startsWith=function(n){return 0===this.str.indexOf(n)},n.prototype.endsWith=function(n){var t="",e=n.split("").reverse().join("");return t=this.str.split("").reverse().join(""),this.startsWith.call({str:t},e)},n.prototype.contains=function(n){return-1!==this.str.indexOf(n)},n.prototype.equals=function(n){return this.str===n},n.prototype.value=function(){return this.str},n}();Object.defineProperty(e,"__esModule",{value:!0}),e["default"]=r},{}],25:[function(n,t,e){"use strict";var r=function(){function n(n,t,e,r,i){void 0===i&&(i=null),this.serviceIdentifier=n,this.parentContext=t,this.parentRequest=e,this.target=i,this.childRequests=[],this.bindings=Array.isArray(r)?r:r?[r]:[]}return n.prototype.addChildRequest=function(t,e,r){var i=new n(t,this.parentContext,this,e,r);return this.childRequests.push(i),i},n}();Object.defineProperty(e,"__esModule",{value:!0}),e["default"]=r},{}],26:[function(n,t,e){"use strict";var r=n("../planning/metadata"),i=n("./queryable_string"),o=n("../constants/metadata_keys"),a=function(){function n(n,t,e){this.serviceIdentifier=t,this.name=new i["default"](n||""),this.metadata=new Array;var a=null;"string"==typeof e?a=new r["default"](o.NAMED_TAG,e):e instanceof r["default"]&&(a=e),null!==a&&this.metadata.push(a)}return n.prototype.hasTag=function(n){for(var t=0;t<this.metadata.length;t++){var e=this.metadata[t];if(e.key===n)return!0}return!1},n.prototype.isArray=function(){return this.hasTag(o.MULTI_INJECT_TAG)},n.prototype.matchesArray=function(n){return this.matchesTag(o.MULTI_INJECT_TAG)(n)},n.prototype.isNamed=function(){return this.hasTag(o.NAMED_TAG)},n.prototype.isTagged=function(){return this.metadata.length>1?!0:1===this.metadata.length?!this.hasTag(o.NAMED_TAG):!1},n.prototype.matchesNamedTag=function(n){return this.matchesTag(o.NAMED_TAG)(n)},n.prototype.matchesTag=function(n){var t=this;return function(e){for(var r=0;r<t.metadata.length;r++){var i=t.metadata[r];if(i.key===n&&i.value===e)return!0}return!1}},n}();Object.defineProperty(e,"__esModule",{value:!0}),e["default"]=a},{"../constants/metadata_keys":14,"../planning/metadata":21,"./queryable_string":24}],27:[function(n,t,e){"use strict";var r=n("../bindings/binding_scope"),i=n("../bindings/binding_type"),o=n("../constants/error_msgs"),a=function(){function n(){}return n.prototype.resolve=function(n){var t=n.plan.rootRequest;return this._resolve(t)},n.prototype._resolve=function(n){var t=this,e=n.bindings,a=n.childRequests;if(!n.target||!n.target.isArray()||n.parentRequest.target&&n.parentRequest.target.matchesArray(n.target.serviceIdentifier)){var s=null,u=e[0],c=u.scope===r["default"].Singleton;if(c&&u.activated===!0)return u.cache;switch(u.type){case i["default"].ConstantValue:s=u.cache;break;case i["default"].DynamicValue:s=u.dynamicValue();break;case i["default"].Constructor:s=u.implementationType;break;case i["default"].Factory:s=u.factory(n.parentContext);break;case i["default"].Provider:s=u.provider(n.parentContext);break;case i["default"].Instance:var d=u.implementationType;if(a.length>0){var f=a.map(function(n){return t._resolve(n)});s=this._createInstance(d,f)}else s=new d;break;case i["default"].Invalid:default:var h=n.parentContext.kernel.getServiceIdentifierAsString(n.serviceIdentifier);throw new Error(o.INVALID_BINDING_TYPE+" "+h)}return"function"==typeof u.onActivation&&(s=u.onActivation(n.parentContext,s)),c&&(u.cache=s,u.activated=!0),s}return a.map(function(n){return t._resolve(n)})},n.prototype._createInstance=function(n,t){return new(n.bind.apply(n,[void 0].concat(t)))},n}();Object.defineProperty(e,"__esModule",{value:!0}),e["default"]=a},{"../bindings/binding_scope":11,"../bindings/binding_type":12,"../constants/error_msgs":13}],28:[function(n,t,e){"use strict";var r=n("../bindings/binding_scope"),i=n("./binding_when_on_syntax"),o=function(){function n(n){this._binding=n}return n.prototype.inSingletonScope=function(){return this._binding.scope=r["default"].Singleton,new i["default"](this._binding)},n}();Object.defineProperty(e,"__esModule",{value:!0}),e["default"]=o},{"../bindings/binding_scope":11,"./binding_when_on_syntax":32}],29:[function(n,t,e){"use strict";var r=n("./binding_in_syntax"),i=n("./binding_when_syntax"),o=n("./binding_on_syntax"),a=function(){function n(n){this._binding=n,this._bindingWhenSyntax=new i["default"](this._binding),this._bindingOnSyntax=new o["default"](this._binding),this._bindingInSyntax=new r["default"](n)}return n.prototype.inSingletonScope=function(){return this._bindingInSyntax.inSingletonScope()},n.prototype.when=function(n){return this._bindingWhenSyntax.when(n)},n.prototype.whenTargetNamed=function(n){return this._bindingWhenSyntax.whenTargetNamed(n)},n.prototype.whenTargetTagged=function(n,t){return this._bindingWhenSyntax.whenTargetTagged(n,t)},n.prototype.whenInjectedInto=function(n){return this._bindingWhenSyntax.whenInjectedInto(n)},n.prototype.whenParentNamed=function(n){return this._bindingWhenSyntax.whenParentNamed(n)},n.prototype.whenParentTagged=function(n,t){return this._bindingWhenSyntax.whenParentTagged(n,t)},n.prototype.whenAnyAncestorIs=function(n){return this._bindingWhenSyntax.whenAnyAncestorIs(n)},n.prototype.whenNoAncestorIs=function(n){return this._bindingWhenSyntax.whenNoAncestorIs(n)},n.prototype.whenAnyAncestorNamed=function(n){return this._bindingWhenSyntax.whenAnyAncestorNamed(n)},n.prototype.whenAnyAncestorTagged=function(n,t){return this._bindingWhenSyntax.whenAnyAncestorTagged(n,t)},n.prototype.whenNoAncestorNamed=function(n){return this._bindingWhenSyntax.whenNoAncestorNamed(n)},n.prototype.whenNoAncestorTagged=function(n,t){return this._bindingWhenSyntax.whenNoAncestorTagged(n,t)},n.prototype.whenAnyAncestorMatches=function(n){return this._bindingWhenSyntax.whenAnyAncestorMatches(n)},n.prototype.whenNoAncestorMatches=function(n){return this._bindingWhenSyntax.whenNoAncestorMatches(n)},n.prototype.onActivation=function(n){return this._bindingOnSyntax.onActivation(n)},n}();Object.defineProperty(e,"__esModule",{value:!0}),e["default"]=a},{"./binding_in_syntax":28,"./binding_on_syntax":30,"./binding_when_syntax":33}],30:[function(n,t,e){"use strict";var r=n("./binding_when_syntax"),i=function(){function n(n){this._binding=n}return n.prototype.onActivation=function(n){return this._binding.onActivation=n,new r["default"](this._binding)},n}();Object.defineProperty(e,"__esModule",{value:!0}),e["default"]=i},{"./binding_when_syntax":33}],31:[function(n,t,e){"use strict";var r=n("./binding_in_when_on_syntax"),i=n("./binding_when_on_syntax"),o=n("../bindings/binding_type"),a=function(){function n(n){this._binding=n}return n.prototype.to=function(n){return this._binding.type=o["default"].Instance,this._binding.implementationType=n,new r["default"](this._binding)},n.prototype.toConstantValue=function(n){return this._binding.type=o["default"].ConstantValue,this._binding.cache=n,this._binding.dynamicValue=null,this._binding.implementationType=null,new i["default"](this._binding)},n.prototype.toDynamicValue=function(n){return this._binding.type=o["default"].DynamicValue,this._binding.cache=null,this._binding.dynamicValue=n,this._binding.implementationType=null,new i["default"](this._binding)},n.prototype.toConstructor=function(n){return this._binding.type=o["default"].Constructor,this._binding.implementationType=n,new i["default"](this._binding)},n.prototype.toFactory=function(n){return this._binding.type=o["default"].Factory,this._binding.factory=n,new i["default"](this._binding)},n.prototype.toAutoFactory=function(n){return this._binding.type=o["default"].Factory,this._binding.factory=function(t){return function(){return t.kernel.get(n)}},new i["default"](this._binding)},n.prototype.toProvider=function(n){return this._binding.type=o["default"].Provider,this._binding.provider=n,new i["default"](this._binding)},n}();Object.defineProperty(e,"__esModule",{value:!0}),e["default"]=a},{"../bindings/binding_type":12,"./binding_in_when_on_syntax":29,"./binding_when_on_syntax":32}],32:[function(n,t,e){"use strict";var r=n("./binding_when_syntax"),i=n("./binding_on_syntax"),o=function(){function n(n){this._binding=n,this._bindingWhenSyntax=new r["default"](this._binding),this._bindingOnSyntax=new i["default"](this._binding)}return n.prototype.when=function(n){return this._bindingWhenSyntax.when(n)},n.prototype.whenTargetNamed=function(n){return this._bindingWhenSyntax.whenTargetNamed(n)},n.prototype.whenTargetTagged=function(n,t){return this._bindingWhenSyntax.whenTargetTagged(n,t)},n.prototype.whenInjectedInto=function(n){return this._bindingWhenSyntax.whenInjectedInto(n)},n.prototype.whenParentNamed=function(n){return this._bindingWhenSyntax.whenParentNamed(n)},n.prototype.whenParentTagged=function(n,t){return this._bindingWhenSyntax.whenParentTagged(n,t)},n.prototype.whenAnyAncestorIs=function(n){return this._bindingWhenSyntax.whenAnyAncestorIs(n)},n.prototype.whenNoAncestorIs=function(n){return this._bindingWhenSyntax.whenNoAncestorIs(n)},n.prototype.whenAnyAncestorNamed=function(n){return this._bindingWhenSyntax.whenAnyAncestorNamed(n)},n.prototype.whenAnyAncestorTagged=function(n,t){return this._bindingWhenSyntax.whenAnyAncestorTagged(n,t)},n.prototype.whenNoAncestorNamed=function(n){return this._bindingWhenSyntax.whenNoAncestorNamed(n)},n.prototype.whenNoAncestorTagged=function(n,t){return this._bindingWhenSyntax.whenNoAncestorTagged(n,t)},n.prototype.whenAnyAncestorMatches=function(n){return this._bindingWhenSyntax.whenAnyAncestorMatches(n)},n.prototype.whenNoAncestorMatches=function(n){return this._bindingWhenSyntax.whenNoAncestorMatches(n)},n.prototype.onActivation=function(n){return this._bindingOnSyntax.onActivation(n)},n}();Object.defineProperty(e,"__esModule",{value:!0}),e["default"]=o},{"./binding_on_syntax":30,"./binding_when_syntax":33}],33:[function(n,t,e){"use strict";var r=n("./binding_on_syntax"),i=n("./constraint_helpers"),o=function(){function n(n){this._binding=n}return n.prototype.when=function(n){return this._binding.constraint=n,new r["default"](this._binding)},n.prototype.whenTargetNamed=function(n){return this._binding.constraint=i.namedConstraint(n),new r["default"](this._binding)},n.prototype.whenTargetTagged=function(n,t){return this._binding.constraint=i.taggedConstraint(n)(t),new r["default"](this._binding)},n.prototype.whenInjectedInto=function(n){return this._binding.constraint=function(t){return i.typeConstraint(n)(t.parentRequest)},new r["default"](this._binding)},n.prototype.whenParentNamed=function(n){return this._binding.constraint=function(t){return i.namedConstraint(n)(t.parentRequest)},new r["default"](this._binding)},n.prototype.whenParentTagged=function(n,t){return this._binding.constraint=function(e){return i.taggedConstraint(n)(t)(e.parentRequest)},new r["default"](this._binding)},n.prototype.whenAnyAncestorIs=function(n){return this._binding.constraint=function(t){return i.traverseAncerstors(t,i.typeConstraint(n))},new r["default"](this._binding)},n.prototype.whenNoAncestorIs=function(n){return this._binding.constraint=function(t){return!i.traverseAncerstors(t,i.typeConstraint(n))},new r["default"](this._binding)},n.prototype.whenAnyAncestorNamed=function(n){return this._binding.constraint=function(t){return i.traverseAncerstors(t,i.namedConstraint(n))},new r["default"](this._binding)},n.prototype.whenNoAncestorNamed=function(n){return this._binding.constraint=function(t){return!i.traverseAncerstors(t,i.namedConstraint(n))},new r["default"](this._binding)},n.prototype.whenAnyAncestorTagged=function(n,t){return this._binding.constraint=function(e){return i.traverseAncerstors(e,i.taggedConstraint(n)(t))},new r["default"](this._binding)},n.prototype.whenNoAncestorTagged=function(n,t){return this._binding.constraint=function(e){return!i.traverseAncerstors(e,i.taggedConstraint(n)(t))},new r["default"](this._binding)},n.prototype.whenAnyAncestorMatches=function(n){return this._binding.constraint=function(t){return i.traverseAncerstors(t,n)},new r["default"](this._binding)},n.prototype.whenNoAncestorMatches=function(n){return this._binding.constraint=function(t){return!i.traverseAncerstors(t,n)},new r["default"](this._binding)},n}();Object.defineProperty(e,"__esModule",{value:!0}),e["default"]=o},{"./binding_on_syntax":30,"./constraint_helpers":34}],34:[function(n,t,e){"use strict";var r=n("../constants/metadata_keys"),i=function(n,t){var e=n.parentRequest;return null!==e?t(e)?!0:i(e,t):!1};e.traverseAncerstors=i;var o=function(n){return function(t){return function(e){return e.target.matchesTag(n)(t)}}};e.taggedConstraint=o;var a=o(r.NAMED_TAG);e.namedConstraint=a;var s=function(n){return function(t){var e=t.bindings[0];if("string"==typeof n){var r=e.serviceIdentifier;return r===n}var i=t.bindings[0].implementationType;return n===i}};e.typeConstraint=s},{"../constants/metadata_keys":14}],35:[function(n,t,e){"use strict";function r(n){return function(t){var e=n.bind(t).to(null),r=e._binding,c=new u["default"](r),d=new i["default"](new s["default"](e,c),new o["default"](e,c),new a["default"](e,c));
return d}}var i=n("../syntax/provide_in_when_on_syntax"),o=n("../syntax/provide_when_syntax"),a=n("../syntax/provide_on_syntax"),s=n("../syntax/provide_in_syntax"),u=n("../syntax/provide_done_syntax");Object.defineProperty(e,"__esModule",{value:!0}),e["default"]=r},{"../syntax/provide_done_syntax":40,"../syntax/provide_in_syntax":41,"../syntax/provide_in_when_on_syntax":42,"../syntax/provide_on_syntax":43,"../syntax/provide_when_syntax":45}],36:[function(n,t,e){"use strict";function r(n){return function(t){var e=n.bind(t).to(null);return function(n){i.decorate(i.injectable(),n);var t=e._binding;return t.implementationType=n,n}}}var i=n("inversify");Object.defineProperty(e,"__esModule",{value:!0}),e["default"]=r},{inversify:15}],37:[function(n,t,e){"use strict";function r(n){return i["default"](n)}var i=n("../decorator/fluent_provide");Object.defineProperty(e,"__esModule",{value:!0}),e["default"]=r},{"../decorator/fluent_provide":35}],38:[function(n,t,e){"use strict";function r(n){return i["default"](n)}var i=n("../decorator/provide");Object.defineProperty(e,"__esModule",{value:!0}),e["default"]=r},{"../decorator/provide":36}],39:[function(n,t,e){"use strict";var r=n("./factory/provide_decorator_factory");e.makeProvideDecorator=r["default"];var i=n("./factory/fluent_provide_decorator_factory");e.makeFluentProvideDecorator=i["default"];var o=n("./utils/auto_wire");e.autoProvide=o["default"]},{"./factory/fluent_provide_decorator_factory":37,"./factory/provide_decorator_factory":38,"./utils/auto_wire":46}],40:[function(n,t,e){"use strict";var r=n("inversify"),i=function(){function n(n){this._binding=n}return n.prototype.done=function(){var n=this;return function(t){return r.decorate(r.injectable(),t),n._binding.implementationType=t,t}},n}();Object.defineProperty(e,"__esModule",{value:!0}),e["default"]=i},{inversify:15}],41:[function(n,t,e){"use strict";var r=n("./provide_when_on_syntax"),i=n("./provide_when_syntax"),o=n("./provide_on_syntax"),a=n("./provide_done_syntax"),s=function(){function n(n,t){this._bindingInSyntax=n,this._provideDoneSyntax=t}return n.prototype.inSingletonScope=function(){var n=this._bindingInSyntax.inSingletonScope(),t=new i["default"](n,this._provideDoneSyntax),e=new o["default"](n,this._provideDoneSyntax);return new r["default"](t,e)},n.prototype.done=function(){var n=this._bindingInSyntax._binding,t=new a["default"](n);return t.done()},n}();Object.defineProperty(e,"__esModule",{value:!0}),e["default"]=s},{"./provide_done_syntax":40,"./provide_on_syntax":43,"./provide_when_on_syntax":44,"./provide_when_syntax":45}],42:[function(n,t,e){"use strict";var r=function(){function n(n,t,e){this._provideInSyntax=n,this._provideWhenSyntax=t,this._provideOnSyntax=e}return n.prototype.when=function(n){return this._provideWhenSyntax.when(n)},n.prototype.whenTargetNamed=function(n){return this._provideWhenSyntax.whenTargetNamed(n)},n.prototype.whenTargetTagged=function(n,t){return this._provideWhenSyntax.whenTargetTagged(n,t)},n.prototype.whenInjectedInto=function(n){return this._provideWhenSyntax.whenInjectedInto(n)},n.prototype.whenParentNamed=function(n){return this._provideWhenSyntax.whenParentNamed(n)},n.prototype.whenParentTagged=function(n,t){return this._provideWhenSyntax.whenParentTagged(n,t)},n.prototype.whenAnyAncestorIs=function(n){return this._provideWhenSyntax.whenAnyAncestorIs(n)},n.prototype.whenNoAncestorIs=function(n){return this._provideWhenSyntax.whenNoAncestorIs(n)},n.prototype.whenAnyAncestorNamed=function(n){return this._provideWhenSyntax.whenAnyAncestorNamed(n)},n.prototype.whenAnyAncestorTagged=function(n,t){return this._provideWhenSyntax.whenAnyAncestorTagged(n,t)},n.prototype.whenNoAncestorNamed=function(n){return this._provideWhenSyntax.whenNoAncestorNamed(n)},n.prototype.whenNoAncestorTagged=function(n,t){return this._provideWhenSyntax.whenNoAncestorTagged(n,t)},n.prototype.whenAnyAncestorMatches=function(n){return this._provideWhenSyntax.whenAnyAncestorMatches(n)},n.prototype.whenNoAncestorMatches=function(n){return this._provideWhenSyntax.whenNoAncestorMatches(n)},n.prototype.onActivation=function(n){return this._provideOnSyntax.onActivation(n)},n.prototype.inSingletonScope=function(){return this._provideInSyntax.inSingletonScope()},n.prototype.done=function(){return this._provideInSyntax.done()},n}();Object.defineProperty(e,"__esModule",{value:!0}),e["default"]=r},{}],43:[function(n,t,e){"use strict";var r=n("./provide_when_syntax"),i=function(){function n(n,t){this._bindingOnSyntax=n,this._provideDoneSyntax=t}return n.prototype.onActivation=function(n){var t=this._bindingOnSyntax.onActivation(n);return new r["default"](t,this._provideDoneSyntax)},n.prototype.done=function(){return this._provideDoneSyntax.done()},n}();Object.defineProperty(e,"__esModule",{value:!0}),e["default"]=i},{"./provide_when_syntax":45}],44:[function(n,t,e){"use strict";var r=function(){function n(n,t){this._provideWhenSyntax=n,this._provideOnSyntax=t}return n.prototype.when=function(n){return this._provideWhenSyntax.when(n)},n.prototype.whenTargetNamed=function(n){return this._provideWhenSyntax.whenTargetNamed(n)},n.prototype.whenTargetTagged=function(n,t){return this._provideWhenSyntax.whenTargetTagged(n,t)},n.prototype.whenInjectedInto=function(n){return this._provideWhenSyntax.whenInjectedInto(n)},n.prototype.whenParentNamed=function(n){return this._provideWhenSyntax.whenParentNamed(n)},n.prototype.whenParentTagged=function(n,t){return this._provideWhenSyntax.whenParentTagged(n,t)},n.prototype.whenAnyAncestorIs=function(n){return this._provideWhenSyntax.whenAnyAncestorIs(n)},n.prototype.whenNoAncestorIs=function(n){return this._provideWhenSyntax.whenNoAncestorIs(n)},n.prototype.whenAnyAncestorNamed=function(n){return this._provideWhenSyntax.whenAnyAncestorNamed(n)},n.prototype.whenAnyAncestorTagged=function(n,t){return this._provideWhenSyntax.whenAnyAncestorTagged(n,t)},n.prototype.whenNoAncestorNamed=function(n){return this._provideWhenSyntax.whenNoAncestorNamed(n)},n.prototype.whenNoAncestorTagged=function(n,t){return this._provideWhenSyntax.whenNoAncestorTagged(n,t)},n.prototype.whenAnyAncestorMatches=function(n){return this._provideWhenSyntax.whenAnyAncestorMatches(n)},n.prototype.whenNoAncestorMatches=function(n){return this._provideWhenSyntax.whenNoAncestorMatches(n)},n.prototype.onActivation=function(n){return this._provideOnSyntax.onActivation(n)},n.prototype.done=function(){return this._provideWhenSyntax.done()},n}();Object.defineProperty(e,"__esModule",{value:!0}),e["default"]=r},{}],45:[function(n,t,e){"use strict";var r=n("./provide_on_syntax"),i=function(){function n(n,t){this._bindingWhenSyntax=n,this._provideDoneSyntax=t}return n.prototype.when=function(n){var t=this._bindingWhenSyntax.when(n);return new r["default"](t,this._provideDoneSyntax)},n.prototype.whenTargetNamed=function(n){var t=this._bindingWhenSyntax.whenTargetNamed(n);return new r["default"](t,this._provideDoneSyntax)},n.prototype.whenTargetTagged=function(n,t){var e=this._bindingWhenSyntax.whenTargetTagged(n,t);return new r["default"](e,this._provideDoneSyntax)},n.prototype.whenInjectedInto=function(n){var t=this._bindingWhenSyntax.whenInjectedInto(n);return new r["default"](t,this._provideDoneSyntax)},n.prototype.whenParentNamed=function(n){var t=this._bindingWhenSyntax.whenParentNamed(n);return new r["default"](t,this._provideDoneSyntax)},n.prototype.whenParentTagged=function(n,t){var e=this._bindingWhenSyntax.whenParentTagged(n,t);return new r["default"](e,this._provideDoneSyntax)},n.prototype.whenAnyAncestorIs=function(n){var t=this._bindingWhenSyntax.whenAnyAncestorIs(n);return new r["default"](t,this._provideDoneSyntax)},n.prototype.whenNoAncestorIs=function(n){var t=this._bindingWhenSyntax.whenNoAncestorIs(n);return new r["default"](t,this._provideDoneSyntax)},n.prototype.whenAnyAncestorNamed=function(n){var t=this._bindingWhenSyntax.whenAnyAncestorNamed(n);return new r["default"](t,this._provideDoneSyntax)},n.prototype.whenAnyAncestorTagged=function(n,t){var e=this._bindingWhenSyntax.whenAnyAncestorTagged(n,t);return new r["default"](e,this._provideDoneSyntax)},n.prototype.whenNoAncestorNamed=function(n){var t=this._bindingWhenSyntax.whenNoAncestorNamed(n);return new r["default"](t,this._provideDoneSyntax)},n.prototype.whenNoAncestorTagged=function(n,t){var e=this._bindingWhenSyntax.whenNoAncestorTagged(n,t);return new r["default"](e,this._provideDoneSyntax)},n.prototype.whenAnyAncestorMatches=function(n){var t=this._bindingWhenSyntax.whenAnyAncestorMatches(n);return new r["default"](t,this._provideDoneSyntax)},n.prototype.whenNoAncestorMatches=function(n){var t=this._bindingWhenSyntax.whenNoAncestorMatches(n);return new r["default"](t,this._provideDoneSyntax)},n.prototype.done=function(){return this._provideDoneSyntax.done()},n}();Object.defineProperty(e,"__esModule",{value:!0}),e["default"]=i},{"./provide_on_syntax":43}],46:[function(n,t,e){"use strict";function r(n){for(var t=[],e=1;e<arguments.length;e++)t[e-1]=arguments[e];var r=o["default"](n);t.forEach(function(n){Object.keys(n).forEach(function(t){var e=n[t],o=r(e);i.decorate(o,e)})})}var i=n("inversify"),o=n("../factory/provide_decorator_factory");Object.defineProperty(e,"__esModule",{value:!0}),e["default"]=r},{"../factory/provide_decorator_factory":38,inversify:15}]},{},[39])(39)});
!function(n){if("object"==typeof exports&&"undefined"!=typeof module)module.exports=n();else if("function"==typeof define&&define.amd)define([],n);else{var t;t="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:this,t.inversifyBindingDecorators=n()}}(function(){return function n(t,e,r){function i(a,s){if(!e[a]){if(!t[a]){var u="function"==typeof require&&require;if(!s&&u)return u(a,!0);if(o)return o(a,!0);var d=new Error("Cannot find module '"+a+"'");throw d.code="MODULE_NOT_FOUND",d}var c=e[a]={exports:{}};t[a][0].call(c.exports,function(n){var e=t[a][1][n];return i(e?e:n)},c,c.exports,n,t,e,r)}return e[a].exports}for(var o="function"==typeof require&&require,a=0;a<r.length;a++)i(r[a]);return i}({1:[function(n,t,e){"use strict";function r(n,t,e,r){var i=d.TAGGED;return o(i,n,t,r,e)}function i(n,t,e){var r=d.TAGGED_PROP;return o(r,n.constructor,t,e)}function o(n,t,e,r,i){var o={},a="number"==typeof i,s=void 0!==i&&a?i.toString():e;if(a===!0&&void 0!==e)throw new Error(c.INVALID_DECORATOR_OPERATION);Reflect.hasOwnMetadata(n,t)===!0&&(o=Reflect.getMetadata(n,t));var u=o[s];if(Array.isArray(u)!==!0)u=[];else for(var d=0;d<u.length;d++){var f=u[d];if(f.key===r.key)throw new Error(c.DUPLICATED_METADATA+" "+f.key)}return u.push(r),o[s]=u,Reflect.defineMetadata(n,o,t),t}function a(n,t){Reflect.decorate(n,t)}function s(n,t){return function(e,r){t(e,r,n)}}function u(n,t,e){"number"==typeof e?a([s(e,n)],t):a([n],t)}var d=n("../constants/metadata_keys"),c=n("../constants/error_msgs");e.tagParameter=r,e.tagProperty=i,e.decorate=u},{"../constants/error_msgs":13,"../constants/metadata_keys":14}],2:[function(n,t,e){"use strict";function r(n){return function(t,e,r){var s=new i["default"](a.INJECT_TAG,n);return o.tagParameter(t,e,r,s)}}var i=n("../planning/metadata"),o=n("./decorator_utils"),a=n("../constants/metadata_keys");Object.defineProperty(e,"__esModule",{value:!0}),e["default"]=r},{"../constants/metadata_keys":14,"../planning/metadata":22,"./decorator_utils":1}],3:[function(n,t,e){"use strict";function r(){return function(n){if(Reflect.hasOwnMetadata(i.PARAM_TYPES,n)===!0)throw new Error(o.DUPLICATED_INJECTABLE_DECORATOR);var t=Reflect.getMetadata(i.DESIGN_PARAM_TYPES,n)||[];return Reflect.defineMetadata(i.PARAM_TYPES,t,n),n}}var i=n("../constants/metadata_keys"),o=n("../constants/error_msgs");Object.defineProperty(e,"__esModule",{value:!0}),e["default"]=r},{"../constants/error_msgs":13,"../constants/metadata_keys":14}],4:[function(n,t,e){"use strict";function r(n){return function(t,e,r){var s=new i["default"](a.MULTI_INJECT_TAG,n);return o.tagParameter(t,e,r,s)}}var i=n("../planning/metadata"),o=n("./decorator_utils"),a=n("../constants/metadata_keys");Object.defineProperty(e,"__esModule",{value:!0}),e["default"]=r},{"../constants/metadata_keys":14,"../planning/metadata":22,"./decorator_utils":1}],5:[function(n,t,e){"use strict";function r(n){return function(t,e,r){var s=new i["default"](a.NAMED_TAG,n);return"number"==typeof r?o.tagParameter(t,e,r,s):o.tagProperty(t,e,s)}}var i=n("../planning/metadata"),o=n("./decorator_utils"),a=n("../constants/metadata_keys");Object.defineProperty(e,"__esModule",{value:!0}),e["default"]=r},{"../constants/metadata_keys":14,"../planning/metadata":22,"./decorator_utils":1}],6:[function(n,t,e){"use strict";function r(n,t,e){function r(){return Reflect.hasMetadata(u,this,t)||Reflect.defineMetadata(u,e(),this,t),Reflect.getMetadata(u,this,t)}function i(n){Reflect.defineMetadata(u,n,this,t)}Object.defineProperty(n,t,{configurable:!0,enumerable:!0,get:r,set:i})}function i(n){return function(t){return function(e,i){var o=function(){return n.get(t)};r(e,i,o)}}}function o(n){return function(t,e){return function(i,o){var a=function(){return n.getNamed(t,e)};r(i,o,a)}}}function a(n){return function(t,e,i){return function(o,a){var s=function(){return n.getTagged(t,e,i)};r(o,a,s)}}}function s(n){return function(t){return function(e,i){var o=function(){return n.getAll(t)};r(e,i,o)}}}var u=Symbol();e.makePropertyInjectDecorator=i,e.makePropertyInjectNamedDecorator=o,e.makePropertyInjectTaggedDecorator=a,e.makePropertyMultiInjectDecorator=s},{}],7:[function(n,t,e){"use strict";function r(n,t){return function(e,r,a){var s=new i["default"](n,t);return"number"==typeof a?o.tagParameter(e,r,a,s):o.tagProperty(e,r,s)}}var i=n("../planning/metadata"),o=n("./decorator_utils");Object.defineProperty(e,"__esModule",{value:!0}),e["default"]=r},{"../planning/metadata":22,"./decorator_utils":1}],8:[function(n,t,e){"use strict";function r(n){return function(t,e,r){var s=new i["default"](a.NAME_TAG,n);return o.tagParameter(t,e,r,s)}}var i=n("../planning/metadata"),o=n("./decorator_utils"),a=n("../constants/metadata_keys");Object.defineProperty(e,"__esModule",{value:!0}),e["default"]=r},{"../constants/metadata_keys":14,"../planning/metadata":22,"./decorator_utils":1}],9:[function(n,t,e){"use strict";var r=n("./binding_scope"),i=n("./binding_type"),o=n("../utils/guid"),a=function(){function n(n){this.guid=o["default"](),this.activated=!1,this.serviceIdentifier=n,this.scope=r["default"].Transient,this.type=i["default"].Invalid,this.constraint=function(n){return!0},this.implementationType=null,this.cache=null,this.factory=null,this.provider=null,this.onActivation=null}return n.prototype.clone=function(){var t=new n(this.serviceIdentifier);return t.activated=!1,t.implementationType=this.implementationType,t.dynamicValue=this.dynamicValue,t.scope=this.scope,t.type=this.type,t.factory=this.factory,t.provider=this.provider,t.constraint=this.constraint,t.onActivation=this.onActivation,t.cache=this.cache,t},n}();Object.defineProperty(e,"__esModule",{value:!0}),e["default"]=a},{"../utils/guid":36,"./binding_scope":11,"./binding_type":12}],10:[function(n,t,e){"use strict";var r;!function(n){n[n.NoBindingsAvailable=0]="NoBindingsAvailable",n[n.OnlyOneBindingAvailable=1]="OnlyOneBindingAvailable",n[n.MultipleBindingsAvailable=2]="MultipleBindingsAvailable"}(r||(r={})),Object.defineProperty(e,"__esModule",{value:!0}),e["default"]=r},{}],11:[function(n,t,e){"use strict";var r;!function(n){n[n.Transient=0]="Transient",n[n.Singleton=1]="Singleton"}(r||(r={})),Object.defineProperty(e,"__esModule",{value:!0}),e["default"]=r},{}],12:[function(n,t,e){"use strict";var r;!function(n){n[n.Invalid=0]="Invalid",n[n.Instance=1]="Instance",n[n.ConstantValue=2]="ConstantValue",n[n.DynamicValue=3]="DynamicValue",n[n.Constructor=4]="Constructor",n[n.Factory=5]="Factory",n[n.Function=6]="Function",n[n.Provider=7]="Provider"}(r||(r={})),Object.defineProperty(e,"__esModule",{value:!0}),e["default"]=r},{}],13:[function(n,t,e){"use strict";e.DUPLICATED_INJECTABLE_DECORATOR="Cannot apply @injectable decorator multiple times.",e.DUPLICATED_METADATA="Metadadata key was used more than once in a parameter:",e.NULL_ARGUMENT="NULL argument",e.KEY_NOT_FOUND="Key Not Found",e.AMBIGUOUS_MATCH="Ambiguous match found for serviceIdentifier:",e.CANNOT_UNBIND="Could not unbind serviceIdentifier:",e.NOT_REGISTERED="No bindings found for serviceIdentifier:",e.MISSING_INJECTABLE_ANNOTATION="Missing required @injectable annotation in:",e.MISSING_INJECT_ANNOTATION="Missing required @inject or @multiInject annotation in:",e.CIRCULAR_DEPENDENCY="Circular dependency found between services:",e.NOT_IMPLEMENTED="Sorry, this feature is not fully implemented yet.",e.INVALID_BINDING_TYPE="Invalid binding type:",e.NO_MORE_SNAPSHOTS_AVAILABLE="No snapshot available to restore.",e.INVALID_MIDDLEWARE_RETURN="Invalid return type in middleware. Return must be an Array!",e.INVALID_FUNCTION_BINDING="Value provided to function binding must be a function!",e.INVALID_DECORATOR_OPERATION="The @inject @multiInject @tagged and @named decorators must be applied to the parameters of a class constructor or a class property.",e.ARGUMENTS_LENGTH_MISMATCH_1="The number of constructor arguments in the derived class ",e.ARGUMENTS_LENGTH_MISMATCH_2=" must be >= than the number of constructor arguments of its base class."},{}],14:[function(n,t,e){"use strict";e.NAMED_TAG="named",e.NAME_TAG="name",e.INJECT_TAG="inject",e.MULTI_INJECT_TAG="multi_inject",e.TAGGED="inversify:tagged",e.TAGGED_PROP="inversify:tagged_props",e.PARAM_TYPES="inversify:paramtypes",e.DESIGN_PARAM_TYPES="design:paramtypes"},{}],15:[function(n,t,e){"use strict";var r=n("./kernel/kernel");e.Kernel=r["default"];var i=n("./kernel/kernel_module");e.KernelModule=i["default"];var o=n("./annotation/injectable");e.injectable=o["default"];var a=n("./annotation/tagged");e.tagged=a["default"];var s=n("./annotation/named");e.named=s["default"];var u=n("./annotation/inject");e.inject=u["default"];var d=n("./annotation/multi_inject");e.multiInject=d["default"];var c=n("./annotation/target_name");e.targetName=c["default"];var f=n("./annotation/decorator_utils");e.decorate=f.decorate;var h=n("./syntax/constraint_helpers");e.traverseAncerstors=h.traverseAncerstors,e.taggedConstraint=h.taggedConstraint,e.namedConstraint=h.namedConstraint,e.typeConstraint=h.typeConstraint;var p=n("./annotation/property_injectors");e.makePropertyInjectDecorator=p.makePropertyInjectDecorator,e.makePropertyMultiInjectDecorator=p.makePropertyMultiInjectDecorator,e.makePropertyInjectTaggedDecorator=p.makePropertyInjectTaggedDecorator,e.makePropertyInjectNamedDecorator=p.makePropertyInjectNamedDecorator},{"./annotation/decorator_utils":1,"./annotation/inject":2,"./annotation/injectable":3,"./annotation/multi_inject":4,"./annotation/named":5,"./annotation/property_injectors":6,"./annotation/tagged":7,"./annotation/target_name":8,"./kernel/kernel":16,"./kernel/kernel_module":17,"./syntax/constraint_helpers":35}],16:[function(n,t,e){"use strict";var r=n("../bindings/binding_count"),i=n("../bindings/binding"),o=n("./lookup"),a=n("../planning/planner"),s=n("../resolution/resolver"),u=n("../constants/error_msgs"),d=n("../constants/metadata_keys"),c=n("../syntax/binding_to_syntax"),f=n("../planning/metadata"),h=n("../planning/target"),p=n("../planning/request"),l=n("./kernel_snapshot"),_=n("../utils/guid"),y=function(){function n(){this.guid=_["default"](),this._planner=new a["default"],this._resolver=new s["default"],this._bindingDictionary=new o["default"],this._middleware=null,this._snapshots=[]}return n.prototype.load=function(){for(var n=this,t=[],e=0;e<arguments.length;e++)t[e-0]=arguments[e];var r=function(t){return function(e){var r=n.bind.bind(n),i=r(e);return i._binding.moduleId=t,i}};t.forEach(function(n){var t=r(n.guid);n.registry(t)})},n.prototype.unload=function(){for(var n=this,t=[],e=0;e<arguments.length;e++)t[e-0]=arguments[e];t.forEach(function(t){n._bindingDictionary.removeByModuleId(t.guid)})},n.prototype.bind=function(n){var t=new i["default"](n);return this._bindingDictionary.add(n,t),new c["default"](t)},n.prototype.unbind=function(n){try{this._bindingDictionary.remove(n)}catch(t){throw new Error(u.CANNOT_UNBIND+" "+n)}},n.prototype.unbindAll=function(){this._bindingDictionary=new o["default"]},n.prototype.isBound=function(n){var t=this._planner.getBindings(this,n);return t.length>0},n.prototype.get=function(n){return this._get({contextInterceptor:function(n){return n},multiInject:!1,serviceIdentifier:n,target:null})[0]},n.prototype.getNamed=function(n,t){return this.getTagged(n,d.NAMED_TAG,t)},n.prototype.getTagged=function(n,t,e){var r=new f["default"](t,e),i=new h["default"](null,n,r);return this._get({contextInterceptor:function(n){return n},multiInject:!1,serviceIdentifier:n,target:i})[0]},n.prototype.snapshot=function(){this._snapshots.push(l["default"].of(this._bindingDictionary.clone(),this._middleware))},n.prototype.restore=function(){if(0===this._snapshots.length)throw new Error(u.NO_MORE_SNAPSHOTS_AVAILABLE);var n=this._snapshots.pop();this._bindingDictionary=n.bindings,this._middleware=n.middleware},n.prototype.getServiceIdentifierAsString=function(n){var t=typeof n;if("function"===t){var e=n;return e.name}if("symbol"===t)return n.toString();var e=n;return e},n.prototype.applyMiddleware=function(){for(var n=[],t=0;t<arguments.length;t++)n[t-0]=arguments[t];var e=this._middleware?this._middleware:this._planAndResolve.bind(this);this._middleware=n.reduce(function(n,t){return t(n)},e)},n.prototype.getAll=function(n){return this._get({contextInterceptor:function(n){return n},multiInject:!0,serviceIdentifier:n,target:null})},n.prototype._get=function(n){var t=null;if(t=this._middleware?this._middleware(n):this._planAndResolve(n),Array.isArray(t)===!1)throw new Error(u.INVALID_MIDDLEWARE_RETURN);return t},n.prototype._planAndResolve=function(n){var t=this._plan(n.multiInject,n.serviceIdentifier,n.target),e=this._resolve(t,n.contextInterceptor);return e},n.prototype._getActiveBindings=function(n,t,e){var i=this._planner.getBindings(this,t);if(null!==e){var o=new p["default"](t,this._planner.createContext(this),null,i,e);i=this._planner.getActiveBindings(o,e)}switch(i.length){case r["default"].NoBindingsAvailable:throw new Error(u.NOT_REGISTERED+" "+t);case r["default"].OnlyOneBindingAvailable:if(n===!1)return i;case r["default"].MultipleBindingsAvailable:default:if(n===!1)throw new Error(u.AMBIGUOUS_MATCH+" "+t);return i}},n.prototype._plan=function(n,t,e){var r=this,i=this._getActiveBindings(n,t,e),o=i.map(function(n){return r._createContext(n,e)});return o},n.prototype._createContext=function(n,t){var e=this._planner.createContext(this);return this._planner.createPlan(e,n,t),e},n.prototype._resolve=function(n,t){var e=this,r=n.map(function(n){return e._resolver.resolve(t(n))});return r},n}();Object.defineProperty(e,"__esModule",{value:!0}),e["default"]=y},{"../bindings/binding":9,"../bindings/binding_count":10,"../constants/error_msgs":13,"../constants/metadata_keys":14,"../planning/metadata":22,"../planning/planner":24,"../planning/request":26,"../planning/target":27,"../resolution/resolver":28,"../syntax/binding_to_syntax":32,"../utils/guid":36,"./kernel_snapshot":18,"./lookup":20}],17:[function(n,t,e){"use strict";var r=n("../utils/guid"),i=function(){function n(n){this.guid=r["default"](),this.registry=n}return n}();Object.defineProperty(e,"__esModule",{value:!0}),e["default"]=i},{"../utils/guid":36}],18:[function(n,t,e){"use strict";var r=function(){function n(){}return n.of=function(t,e){var r=new n;return r.bindings=t,r.middleware=e,r},n}();Object.defineProperty(e,"__esModule",{value:!0}),e["default"]=r},{}],19:[function(n,t,e){"use strict";var r=function(){function n(n,t){this.serviceIdentifier=n,this.value=new Array,this.value.push(t)}return n}();Object.defineProperty(e,"__esModule",{value:!0}),e["default"]=r},{}],20:[function(n,t,e){"use strict";var r=n("./key_value_pair"),i=n("../constants/error_msgs"),o=function(){function n(){this._dictionary=[]}return n.prototype.add=function(n,t){if(null===n||void 0===n)throw new Error(i.NULL_ARGUMENT);if(null===t||void 0===t)throw new Error(i.NULL_ARGUMENT);var e=this.getIndexByKey(n);-1!==e?this._dictionary[e].value.push(t):this._dictionary.push(new r["default"](n,t))},n.prototype.get=function(n){if(null===n||void 0===n)throw new Error(i.NULL_ARGUMENT);var t=this.getIndexByKey(n);if(-1!==t)return this._dictionary[t].value;throw new Error(i.KEY_NOT_FOUND)},n.prototype.remove=function(n){if(null===n||void 0===n)throw new Error(i.NULL_ARGUMENT);var t=this.getIndexByKey(n);if(-1===t)throw new Error(i.KEY_NOT_FOUND);this._dictionary.splice(t,1)},n.prototype.removeByModuleId=function(n){this._dictionary.forEach(function(t){t.value=t.value.filter(function(t){return t.moduleId!==n})}),this._dictionary=this._dictionary.filter(function(n){return n.value.length>0})},n.prototype.hasKey=function(n){if(null===n||void 0===n)throw new Error(i.NULL_ARGUMENT);var t=this.getIndexByKey(n);return-1!==t},n.prototype.clone=function(){for(var t=new n,e=0,r=this._dictionary;e<r.length;e++)for(var i=r[e],o=0,a=i.value;o<a.length;o++){var s=a[o];t.add(i.serviceIdentifier,s.clone())}return t},n.prototype.getIndexByKey=function(n){for(var t=-1,e=0;e<this._dictionary.length;e++){var r=this._dictionary[e];r.serviceIdentifier===n&&(t=e)}return t},n}();Object.defineProperty(e,"__esModule",{value:!0}),e["default"]=o},{"../constants/error_msgs":13,"./key_value_pair":19}],21:[function(n,t,e){"use strict";var r=n("../utils/guid"),i=function(){function n(n){this.guid=r["default"](),this.kernel=n}return n.prototype.addPlan=function(n){this.plan=n},n}();Object.defineProperty(e,"__esModule",{value:!0}),e["default"]=i},{"../utils/guid":36}],22:[function(n,t,e){"use strict";var r=function(){function n(n,t){this.key=n,this.value=t}return n}();Object.defineProperty(e,"__esModule",{value:!0}),e["default"]=r},{}],23:[function(n,t,e){"use strict";var r=function(){function n(n,t){this.parentContext=n,this.rootRequest=t}return n}();Object.defineProperty(e,"__esModule",{value:!0}),e["default"]=r},{}],24:[function(n,t,e){"use strict";var r=n("./plan"),i=n("./context"),o=n("./request"),a=n("./target"),s=n("../constants/metadata_keys"),u=n("../constants/error_msgs"),d=n("../bindings/binding_type"),c=function(){function n(){}return n.prototype.createContext=function(n){return new i["default"](n)},n.prototype.createPlan=function(n,t,e){var i=this,a=new o["default"](t.serviceIdentifier,n,null,t,e),s=new r["default"](n,a);n.addPlan(s);var u=this._getDependencies(t.implementationType);return u.forEach(function(n){i._createSubRequest(a,n)}),s},n.prototype.getBindings=function(n,t){var e=[],r=n,i=r._bindingDictionary;return i.hasKey(t)&&(e=i.get(t)),e},n.prototype.getActiveBindings=function(n,t){var e=this.getBindings(n.parentContext.kernel,t.serviceIdentifier),r=[];return r=e.length>1&&t.isArray()===!1?e.filter(function(e){var r=new o["default"](e.serviceIdentifier,n.parentContext,n,e,t);return e.constraint(r)}):e},n.prototype._createSubRequest=function(n,t){try{var e=this.getActiveBindings(n,t);if(0===e.length){var r=n.parentContext.kernel.getServiceIdentifierAsString(t.serviceIdentifier);throw new Error(u.NOT_REGISTERED+" "+r)}if(e.length>1&&t.isArray()===!1){var r=n.parentContext.kernel.getServiceIdentifierAsString(t.serviceIdentifier);throw new Error(u.AMBIGUOUS_MATCH+" "+r)}this._createChildRequest(n,t,e)}catch(i){if(!(i instanceof RangeError))throw new Error(i.message);this._throwWhenCircularDependenciesFound(n.parentContext.plan.rootRequest)}},n.prototype._createChildRequest=function(n,t,e){var r=this,i=n.addChildRequest(t.serviceIdentifier,e,t),o=i;e.forEach(function(n){if(t.isArray()&&(o=i.addChildRequest(n.serviceIdentifier,n,t)),n.type===d["default"].Instance){var e=r._getDependencies(n.implementationType);e.forEach(function(n,t){r._createSubRequest(o,n)})}})},n.prototype._throwWhenCircularDependenciesFound=function(n,t){var e=this;void 0===t&&(t=[]),t.push(n.serviceIdentifier),n.childRequests.forEach(function(r){var i=r.serviceIdentifier;if(-1!==t.indexOf(i)){var o=n.parentContext.kernel.getServiceIdentifierAsString(n.serviceIdentifier);throw new Error(u.CIRCULAR_DEPENDENCY+" "+i+" and "+o)}r.childRequests.length>0?e._throwWhenCircularDependenciesFound(r,t):t.push(i)})},n.prototype._getDependencies=function(n){if(null===n)return[];var t=n.name,e=Reflect.getMetadata(s.PARAM_TYPES,n);if(void 0===e){var r=u.MISSING_INJECTABLE_ANNOTATION+" "+t+".";throw new Error(r)}for(var i=Reflect.getMetadata(s.TAGGED,n)||[],o=[],d=function(n){var r=e[n],d=i[n.toString()]||[],c={};d.forEach(function(n){c[n.key.toString()]=n.value});var f=c[s.INJECT_TAG],h=c[s.MULTI_INJECT_TAG],p=c[s.NAME_TAG];if(r=f||h?f||h:r,r===Object||r===Function||void 0===r){var l=u.MISSING_INJECT_ANNOTATION+" argument "+n+" in class "+t+".";throw new Error(l)}var _=new a["default"](p,r);_.metadata=d,o.push(_)},c=0;c<n.length;c++)d(c);var f=this._baseClassDepencencyCount(n);if(o.length<f){var h=u.ARGUMENTS_LENGTH_MISMATCH_1+t+u.ARGUMENTS_LENGTH_MISMATCH_2;throw new Error(h)}return o},n.prototype._baseClassDepencencyCount=function(n){var t=Object.getPrototypeOf(n.prototype).constructor;if(t!==Object){var e=Reflect.getMetadata(s.PARAM_TYPES,t);if(void 0===e){var r=t.name,i=u.MISSING_INJECTABLE_ANNOTATION+" "+r+".";throw new Error(i)}return t.length>0&&e?t.length:this._baseClassDepencencyCount(t)}return 0},n}();Object.defineProperty(e,"__esModule",{value:!0}),e["default"]=c},{"../bindings/binding_type":12,"../constants/error_msgs":13,"../constants/metadata_keys":14,"./context":21,"./plan":23,"./request":26,"./target":27}],25:[function(n,t,e){"use strict";var r=function(){function n(n){this.str=n}return n.prototype.startsWith=function(n){return 0===this.str.indexOf(n)},n.prototype.endsWith=function(n){var t="",e=n.split("").reverse().join("");return t=this.str.split("").reverse().join(""),this.startsWith.call({str:t},e)},n.prototype.contains=function(n){return-1!==this.str.indexOf(n)},n.prototype.equals=function(n){return this.str===n},n.prototype.value=function(){return this.str},n}();Object.defineProperty(e,"__esModule",{value:!0}),e["default"]=r},{}],26:[function(n,t,e){"use strict";var r=n("../utils/guid"),i=function(){function n(n,t,e,i,o){void 0===o&&(o=null),this.guid=r["default"](),this.serviceIdentifier=n,this.parentContext=t,this.parentRequest=e,this.target=o,this.childRequests=[],this.bindings=Array.isArray(i)?i:i?[i]:[]}return n.prototype.addChildRequest=function(t,e,r){var i=new n(t,this.parentContext,this,e,r);return this.childRequests.push(i),i},n}();Object.defineProperty(e,"__esModule",{value:!0}),e["default"]=i},{"../utils/guid":36}],27:[function(n,t,e){"use strict";var r=n("../planning/metadata"),i=n("./queryable_string"),o=n("../constants/metadata_keys"),a=n("../utils/guid"),s=function(){function n(n,t,e){this.guid=a["default"](),this.serviceIdentifier=t,this.name=new i["default"](n||""),this.metadata=new Array;var s=null;"string"==typeof e?s=new r["default"](o.NAMED_TAG,e):e instanceof r["default"]&&(s=e),null!==s&&this.metadata.push(s)}return n.prototype.hasTag=function(n){for(var t=0;t<this.metadata.length;t++){var e=this.metadata[t];if(e.key===n)return!0}return!1},n.prototype.isArray=function(){return this.hasTag(o.MULTI_INJECT_TAG)},n.prototype.matchesArray=function(n){return this.matchesTag(o.MULTI_INJECT_TAG)(n)},n.prototype.isNamed=function(){return this.hasTag(o.NAMED_TAG)},n.prototype.isTagged=function(){return this.metadata.length>1?!0:1===this.metadata.length?!this.hasTag(o.NAMED_TAG):!1},n.prototype.matchesNamedTag=function(n){return this.matchesTag(o.NAMED_TAG)(n)},n.prototype.matchesTag=function(n){var t=this;return function(e){for(var r=0;r<t.metadata.length;r++){var i=t.metadata[r];if(i.key===n&&i.value===e)return!0}return!1}},n}();Object.defineProperty(e,"__esModule",{value:!0}),e["default"]=s},{"../constants/metadata_keys":14,"../planning/metadata":22,"../utils/guid":36,"./queryable_string":25}],28:[function(n,t,e){"use strict";var r=n("../bindings/binding_scope"),i=n("../bindings/binding_type"),o=n("../constants/error_msgs"),a=function(){function n(){}return n.prototype.resolve=function(n){var t=n.plan.rootRequest;return this._resolve(t)},n.prototype._resolve=function(n){var t=this,e=n.bindings,a=n.childRequests;if(!n.target||!n.target.isArray()||n.parentRequest.target&&n.parentRequest.target.matchesArray(n.target.serviceIdentifier)){var s=null,u=e[0],d=u.scope===r["default"].Singleton;if(d&&u.activated===!0)return u.cache;switch(u.type){case i["default"].ConstantValue:s=u.cache;break;case i["default"].DynamicValue:s=u.dynamicValue();break;case i["default"].Constructor:s=u.implementationType;break;case i["default"].Factory:s=u.factory(n.parentContext);break;case i["default"].Function:s=u.cache;break;case i["default"].Provider:s=u.provider(n.parentContext);break;case i["default"].Instance:var c=u.implementationType;if(a.length>0){var f=a.map(function(n){return t._resolve(n)});s=this._createInstance(c,f)}else s=new c;break;case i["default"].Invalid:default:var h=n.parentContext.kernel.getServiceIdentifierAsString(n.serviceIdentifier);throw new Error(o.INVALID_BINDING_TYPE+" "+h)}return"function"==typeof u.onActivation&&(s=u.onActivation(n.parentContext,s)),d&&(u.cache=s,u.activated=!0),s}return a.map(function(n){return t._resolve(n)})},n.prototype._createInstance=function(n,t){return new(n.bind.apply(n,[void 0].concat(t)))},n}();Object.defineProperty(e,"__esModule",{value:!0}),e["default"]=a},{"../bindings/binding_scope":11,"../bindings/binding_type":12,"../constants/error_msgs":13}],29:[function(n,t,e){"use strict";var r=n("../bindings/binding_scope"),i=n("./binding_when_on_syntax"),o=function(){function n(n){this._binding=n}return n.prototype.inSingletonScope=function(){return this._binding.scope=r["default"].Singleton,new i["default"](this._binding)},n}();Object.defineProperty(e,"__esModule",{value:!0}),e["default"]=o},{"../bindings/binding_scope":11,"./binding_when_on_syntax":33}],30:[function(n,t,e){"use strict";var r=n("./binding_in_syntax"),i=n("./binding_when_syntax"),o=n("./binding_on_syntax"),a=function(){function n(n){this._binding=n,this._bindingWhenSyntax=new i["default"](this._binding),this._bindingOnSyntax=new o["default"](this._binding),this._bindingInSyntax=new r["default"](n)}return n.prototype.inSingletonScope=function(){return this._bindingInSyntax.inSingletonScope()},n.prototype.when=function(n){return this._bindingWhenSyntax.when(n)},n.prototype.whenTargetNamed=function(n){return this._bindingWhenSyntax.whenTargetNamed(n)},n.prototype.whenTargetTagged=function(n,t){return this._bindingWhenSyntax.whenTargetTagged(n,t)},n.prototype.whenInjectedInto=function(n){return this._bindingWhenSyntax.whenInjectedInto(n)},n.prototype.whenParentNamed=function(n){return this._bindingWhenSyntax.whenParentNamed(n)},n.prototype.whenParentTagged=function(n,t){return this._bindingWhenSyntax.whenParentTagged(n,t)},n.prototype.whenAnyAncestorIs=function(n){return this._bindingWhenSyntax.whenAnyAncestorIs(n)},n.prototype.whenNoAncestorIs=function(n){return this._bindingWhenSyntax.whenNoAncestorIs(n)},n.prototype.whenAnyAncestorNamed=function(n){return this._bindingWhenSyntax.whenAnyAncestorNamed(n)},n.prototype.whenAnyAncestorTagged=function(n,t){return this._bindingWhenSyntax.whenAnyAncestorTagged(n,t)},n.prototype.whenNoAncestorNamed=function(n){return this._bindingWhenSyntax.whenNoAncestorNamed(n)},n.prototype.whenNoAncestorTagged=function(n,t){return this._bindingWhenSyntax.whenNoAncestorTagged(n,t)},n.prototype.whenAnyAncestorMatches=function(n){return this._bindingWhenSyntax.whenAnyAncestorMatches(n)},n.prototype.whenNoAncestorMatches=function(n){return this._bindingWhenSyntax.whenNoAncestorMatches(n)},n.prototype.onActivation=function(n){return this._bindingOnSyntax.onActivation(n)},n}();Object.defineProperty(e,"__esModule",{value:!0}),e["default"]=a},{"./binding_in_syntax":29,"./binding_on_syntax":31,"./binding_when_syntax":34}],31:[function(n,t,e){"use strict";var r=n("./binding_when_syntax"),i=function(){function n(n){this._binding=n}return n.prototype.onActivation=function(n){return this._binding.onActivation=n,new r["default"](this._binding)},n}();Object.defineProperty(e,"__esModule",{value:!0}),e["default"]=i},{"./binding_when_syntax":34}],32:[function(n,t,e){"use strict";var r=n("./binding_in_when_on_syntax"),i=n("./binding_when_on_syntax"),o=n("../bindings/binding_type"),a=n("../constants/error_msgs"),s=function(){function n(n){this._binding=n}return n.prototype.to=function(n){return this._binding.type=o["default"].Instance,this._binding.implementationType=n,new r["default"](this._binding)},n.prototype.toConstantValue=function(n){return this._binding.type=o["default"].ConstantValue,this._binding.cache=n,this._binding.dynamicValue=null,this._binding.implementationType=null,new i["default"](this._binding)},n.prototype.toDynamicValue=function(n){return this._binding.type=o["default"].DynamicValue,this._binding.cache=null,this._binding.dynamicValue=n,this._binding.implementationType=null,new i["default"](this._binding)},n.prototype.toConstructor=function(n){return this._binding.type=o["default"].Constructor,this._binding.implementationType=n,new i["default"](this._binding)},n.prototype.toFactory=function(n){return this._binding.type=o["default"].Factory,this._binding.factory=n,new i["default"](this._binding)},n.prototype.toFunction=function(n){if("function"!=typeof n)throw new Error(a.INVALID_FUNCTION_BINDING);var t=this.toConstantValue(n);return this._binding.type=o["default"].Function,t},n.prototype.toAutoFactory=function(n){return this._binding.type=o["default"].Factory,this._binding.factory=function(t){return function(){return t.kernel.get(n)}},new i["default"](this._binding)},n.prototype.toProvider=function(n){return this._binding.type=o["default"].Provider,this._binding.provider=n,new i["default"](this._binding)},n}();Object.defineProperty(e,"__esModule",{value:!0}),e["default"]=s},{"../bindings/binding_type":12,"../constants/error_msgs":13,"./binding_in_when_on_syntax":30,"./binding_when_on_syntax":33}],33:[function(n,t,e){"use strict";var r=n("./binding_when_syntax"),i=n("./binding_on_syntax"),o=function(){function n(n){this._binding=n,this._bindingWhenSyntax=new r["default"](this._binding),this._bindingOnSyntax=new i["default"](this._binding)}return n.prototype.when=function(n){return this._bindingWhenSyntax.when(n)},n.prototype.whenTargetNamed=function(n){return this._bindingWhenSyntax.whenTargetNamed(n)},n.prototype.whenTargetTagged=function(n,t){return this._bindingWhenSyntax.whenTargetTagged(n,t)},n.prototype.whenInjectedInto=function(n){return this._bindingWhenSyntax.whenInjectedInto(n)},n.prototype.whenParentNamed=function(n){return this._bindingWhenSyntax.whenParentNamed(n)},n.prototype.whenParentTagged=function(n,t){return this._bindingWhenSyntax.whenParentTagged(n,t)},n.prototype.whenAnyAncestorIs=function(n){return this._bindingWhenSyntax.whenAnyAncestorIs(n)},n.prototype.whenNoAncestorIs=function(n){return this._bindingWhenSyntax.whenNoAncestorIs(n)},n.prototype.whenAnyAncestorNamed=function(n){return this._bindingWhenSyntax.whenAnyAncestorNamed(n)},n.prototype.whenAnyAncestorTagged=function(n,t){return this._bindingWhenSyntax.whenAnyAncestorTagged(n,t)},n.prototype.whenNoAncestorNamed=function(n){return this._bindingWhenSyntax.whenNoAncestorNamed(n)},n.prototype.whenNoAncestorTagged=function(n,t){return this._bindingWhenSyntax.whenNoAncestorTagged(n,t)},n.prototype.whenAnyAncestorMatches=function(n){return this._bindingWhenSyntax.whenAnyAncestorMatches(n)},n.prototype.whenNoAncestorMatches=function(n){return this._bindingWhenSyntax.whenNoAncestorMatches(n)},n.prototype.onActivation=function(n){return this._bindingOnSyntax.onActivation(n)},n}();Object.defineProperty(e,"__esModule",{value:!0}),e["default"]=o},{"./binding_on_syntax":31,"./binding_when_syntax":34}],34:[function(n,t,e){"use strict";var r=n("./binding_on_syntax"),i=n("./constraint_helpers"),o=function(){function n(n){this._binding=n}return n.prototype.when=function(n){return this._binding.constraint=n,new r["default"](this._binding)},n.prototype.whenTargetNamed=function(n){return this._binding.constraint=i.namedConstraint(n),new r["default"](this._binding)},n.prototype.whenTargetTagged=function(n,t){return this._binding.constraint=i.taggedConstraint(n)(t),new r["default"](this._binding)},n.prototype.whenInjectedInto=function(n){return this._binding.constraint=function(t){return i.typeConstraint(n)(t.parentRequest)},new r["default"](this._binding)},n.prototype.whenParentNamed=function(n){return this._binding.constraint=function(t){return i.namedConstraint(n)(t.parentRequest)},new r["default"](this._binding)},n.prototype.whenParentTagged=function(n,t){return this._binding.constraint=function(e){return i.taggedConstraint(n)(t)(e.parentRequest)},new r["default"](this._binding)},n.prototype.whenAnyAncestorIs=function(n){return this._binding.constraint=function(t){return i.traverseAncerstors(t,i.typeConstraint(n))},new r["default"](this._binding)},n.prototype.whenNoAncestorIs=function(n){return this._binding.constraint=function(t){return!i.traverseAncerstors(t,i.typeConstraint(n))},new r["default"](this._binding);
},n.prototype.whenAnyAncestorNamed=function(n){return this._binding.constraint=function(t){return i.traverseAncerstors(t,i.namedConstraint(n))},new r["default"](this._binding)},n.prototype.whenNoAncestorNamed=function(n){return this._binding.constraint=function(t){return!i.traverseAncerstors(t,i.namedConstraint(n))},new r["default"](this._binding)},n.prototype.whenAnyAncestorTagged=function(n,t){return this._binding.constraint=function(e){return i.traverseAncerstors(e,i.taggedConstraint(n)(t))},new r["default"](this._binding)},n.prototype.whenNoAncestorTagged=function(n,t){return this._binding.constraint=function(e){return!i.traverseAncerstors(e,i.taggedConstraint(n)(t))},new r["default"](this._binding)},n.prototype.whenAnyAncestorMatches=function(n){return this._binding.constraint=function(t){return i.traverseAncerstors(t,n)},new r["default"](this._binding)},n.prototype.whenNoAncestorMatches=function(n){return this._binding.constraint=function(t){return!i.traverseAncerstors(t,n)},new r["default"](this._binding)},n}();Object.defineProperty(e,"__esModule",{value:!0}),e["default"]=o},{"./binding_on_syntax":31,"./constraint_helpers":35}],35:[function(n,t,e){"use strict";var r=n("../constants/metadata_keys"),i=function(n,t){var e=n.parentRequest;return null!==e?t(e)?!0:i(e,t):!1};e.traverseAncerstors=i;var o=function(n){return function(t){return function(e){return e.target.matchesTag(n)(t)}}};e.taggedConstraint=o;var a=o(r.NAMED_TAG);e.namedConstraint=a;var s=function(n){return function(t){var e=t.bindings[0];if("string"==typeof n){var r=e.serviceIdentifier;return r===n}var i=t.bindings[0].implementationType;return n===i}};e.typeConstraint=s},{"../constants/metadata_keys":14}],36:[function(n,t,e){"use strict";function r(){function n(){return Math.floor(65536*(1+Math.random())).toString(16).substring(1)}return n()+n()+"-"+n()+"-"+n()+"-"+n()+"-"+n()+n()+n()}Object.defineProperty(e,"__esModule",{value:!0}),e["default"]=r},{}],37:[function(n,t,e){"use strict";function r(n){return function(t){var e=n.bind(t).to(null),r=e._binding,d=new u["default"](r),c=new i["default"](new s["default"](e,d),new o["default"](e,d),new a["default"](e,d));return c}}var i=n("../syntax/provide_in_when_on_syntax"),o=n("../syntax/provide_when_syntax"),a=n("../syntax/provide_on_syntax"),s=n("../syntax/provide_in_syntax"),u=n("../syntax/provide_done_syntax");Object.defineProperty(e,"__esModule",{value:!0}),e["default"]=r},{"../syntax/provide_done_syntax":42,"../syntax/provide_in_syntax":43,"../syntax/provide_in_when_on_syntax":44,"../syntax/provide_on_syntax":45,"../syntax/provide_when_syntax":47}],38:[function(n,t,e){"use strict";function r(n){return function(t){var e=n.bind(t).to(null);return function(n){i.decorate(i.injectable(),n);var t=e._binding;return t.implementationType=n,n}}}var i=n("inversify");Object.defineProperty(e,"__esModule",{value:!0}),e["default"]=r},{inversify:15}],39:[function(n,t,e){"use strict";function r(n){return i["default"](n)}var i=n("../decorator/fluent_provide");Object.defineProperty(e,"__esModule",{value:!0}),e["default"]=r},{"../decorator/fluent_provide":37}],40:[function(n,t,e){"use strict";function r(n){return i["default"](n)}var i=n("../decorator/provide");Object.defineProperty(e,"__esModule",{value:!0}),e["default"]=r},{"../decorator/provide":38}],41:[function(n,t,e){"use strict";var r=n("./factory/provide_decorator_factory");e.makeProvideDecorator=r["default"];var i=n("./factory/fluent_provide_decorator_factory");e.makeFluentProvideDecorator=i["default"];var o=n("./utils/auto_wire");e.autoProvide=o["default"]},{"./factory/fluent_provide_decorator_factory":39,"./factory/provide_decorator_factory":40,"./utils/auto_wire":48}],42:[function(n,t,e){"use strict";var r=n("inversify"),i=function(){function n(n){this._binding=n}return n.prototype.done=function(){var n=this;return function(t){return r.decorate(r.injectable(),t),n._binding.implementationType=t,t}},n}();Object.defineProperty(e,"__esModule",{value:!0}),e["default"]=i},{inversify:15}],43:[function(n,t,e){"use strict";var r=n("./provide_when_on_syntax"),i=n("./provide_when_syntax"),o=n("./provide_on_syntax"),a=n("./provide_done_syntax"),s=function(){function n(n,t){this._bindingInSyntax=n,this._provideDoneSyntax=t}return n.prototype.inSingletonScope=function(){var n=this._bindingInSyntax.inSingletonScope(),t=new i["default"](n,this._provideDoneSyntax),e=new o["default"](n,this._provideDoneSyntax);return new r["default"](t,e)},n.prototype.done=function(){var n=this._bindingInSyntax._binding,t=new a["default"](n);return t.done()},n}();Object.defineProperty(e,"__esModule",{value:!0}),e["default"]=s},{"./provide_done_syntax":42,"./provide_on_syntax":45,"./provide_when_on_syntax":46,"./provide_when_syntax":47}],44:[function(n,t,e){"use strict";var r=function(){function n(n,t,e){this._provideInSyntax=n,this._provideWhenSyntax=t,this._provideOnSyntax=e}return n.prototype.when=function(n){return this._provideWhenSyntax.when(n)},n.prototype.whenTargetNamed=function(n){return this._provideWhenSyntax.whenTargetNamed(n)},n.prototype.whenTargetTagged=function(n,t){return this._provideWhenSyntax.whenTargetTagged(n,t)},n.prototype.whenInjectedInto=function(n){return this._provideWhenSyntax.whenInjectedInto(n)},n.prototype.whenParentNamed=function(n){return this._provideWhenSyntax.whenParentNamed(n)},n.prototype.whenParentTagged=function(n,t){return this._provideWhenSyntax.whenParentTagged(n,t)},n.prototype.whenAnyAncestorIs=function(n){return this._provideWhenSyntax.whenAnyAncestorIs(n)},n.prototype.whenNoAncestorIs=function(n){return this._provideWhenSyntax.whenNoAncestorIs(n)},n.prototype.whenAnyAncestorNamed=function(n){return this._provideWhenSyntax.whenAnyAncestorNamed(n)},n.prototype.whenAnyAncestorTagged=function(n,t){return this._provideWhenSyntax.whenAnyAncestorTagged(n,t)},n.prototype.whenNoAncestorNamed=function(n){return this._provideWhenSyntax.whenNoAncestorNamed(n)},n.prototype.whenNoAncestorTagged=function(n,t){return this._provideWhenSyntax.whenNoAncestorTagged(n,t)},n.prototype.whenAnyAncestorMatches=function(n){return this._provideWhenSyntax.whenAnyAncestorMatches(n)},n.prototype.whenNoAncestorMatches=function(n){return this._provideWhenSyntax.whenNoAncestorMatches(n)},n.prototype.onActivation=function(n){return this._provideOnSyntax.onActivation(n)},n.prototype.inSingletonScope=function(){return this._provideInSyntax.inSingletonScope()},n.prototype.done=function(){return this._provideInSyntax.done()},n}();Object.defineProperty(e,"__esModule",{value:!0}),e["default"]=r},{}],45:[function(n,t,e){"use strict";var r=n("./provide_when_syntax"),i=function(){function n(n,t){this._bindingOnSyntax=n,this._provideDoneSyntax=t}return n.prototype.onActivation=function(n){var t=this._bindingOnSyntax.onActivation(n);return new r["default"](t,this._provideDoneSyntax)},n.prototype.done=function(){return this._provideDoneSyntax.done()},n}();Object.defineProperty(e,"__esModule",{value:!0}),e["default"]=i},{"./provide_when_syntax":47}],46:[function(n,t,e){"use strict";var r=function(){function n(n,t){this._provideWhenSyntax=n,this._provideOnSyntax=t}return n.prototype.when=function(n){return this._provideWhenSyntax.when(n)},n.prototype.whenTargetNamed=function(n){return this._provideWhenSyntax.whenTargetNamed(n)},n.prototype.whenTargetTagged=function(n,t){return this._provideWhenSyntax.whenTargetTagged(n,t)},n.prototype.whenInjectedInto=function(n){return this._provideWhenSyntax.whenInjectedInto(n)},n.prototype.whenParentNamed=function(n){return this._provideWhenSyntax.whenParentNamed(n)},n.prototype.whenParentTagged=function(n,t){return this._provideWhenSyntax.whenParentTagged(n,t)},n.prototype.whenAnyAncestorIs=function(n){return this._provideWhenSyntax.whenAnyAncestorIs(n)},n.prototype.whenNoAncestorIs=function(n){return this._provideWhenSyntax.whenNoAncestorIs(n)},n.prototype.whenAnyAncestorNamed=function(n){return this._provideWhenSyntax.whenAnyAncestorNamed(n)},n.prototype.whenAnyAncestorTagged=function(n,t){return this._provideWhenSyntax.whenAnyAncestorTagged(n,t)},n.prototype.whenNoAncestorNamed=function(n){return this._provideWhenSyntax.whenNoAncestorNamed(n)},n.prototype.whenNoAncestorTagged=function(n,t){return this._provideWhenSyntax.whenNoAncestorTagged(n,t)},n.prototype.whenAnyAncestorMatches=function(n){return this._provideWhenSyntax.whenAnyAncestorMatches(n)},n.prototype.whenNoAncestorMatches=function(n){return this._provideWhenSyntax.whenNoAncestorMatches(n)},n.prototype.onActivation=function(n){return this._provideOnSyntax.onActivation(n)},n.prototype.done=function(){return this._provideWhenSyntax.done()},n}();Object.defineProperty(e,"__esModule",{value:!0}),e["default"]=r},{}],47:[function(n,t,e){"use strict";var r=n("./provide_on_syntax"),i=function(){function n(n,t){this._bindingWhenSyntax=n,this._provideDoneSyntax=t}return n.prototype.when=function(n){var t=this._bindingWhenSyntax.when(n);return new r["default"](t,this._provideDoneSyntax)},n.prototype.whenTargetNamed=function(n){var t=this._bindingWhenSyntax.whenTargetNamed(n);return new r["default"](t,this._provideDoneSyntax)},n.prototype.whenTargetTagged=function(n,t){var e=this._bindingWhenSyntax.whenTargetTagged(n,t);return new r["default"](e,this._provideDoneSyntax)},n.prototype.whenInjectedInto=function(n){var t=this._bindingWhenSyntax.whenInjectedInto(n);return new r["default"](t,this._provideDoneSyntax)},n.prototype.whenParentNamed=function(n){var t=this._bindingWhenSyntax.whenParentNamed(n);return new r["default"](t,this._provideDoneSyntax)},n.prototype.whenParentTagged=function(n,t){var e=this._bindingWhenSyntax.whenParentTagged(n,t);return new r["default"](e,this._provideDoneSyntax)},n.prototype.whenAnyAncestorIs=function(n){var t=this._bindingWhenSyntax.whenAnyAncestorIs(n);return new r["default"](t,this._provideDoneSyntax)},n.prototype.whenNoAncestorIs=function(n){var t=this._bindingWhenSyntax.whenNoAncestorIs(n);return new r["default"](t,this._provideDoneSyntax)},n.prototype.whenAnyAncestorNamed=function(n){var t=this._bindingWhenSyntax.whenAnyAncestorNamed(n);return new r["default"](t,this._provideDoneSyntax)},n.prototype.whenAnyAncestorTagged=function(n,t){var e=this._bindingWhenSyntax.whenAnyAncestorTagged(n,t);return new r["default"](e,this._provideDoneSyntax)},n.prototype.whenNoAncestorNamed=function(n){var t=this._bindingWhenSyntax.whenNoAncestorNamed(n);return new r["default"](t,this._provideDoneSyntax)},n.prototype.whenNoAncestorTagged=function(n,t){var e=this._bindingWhenSyntax.whenNoAncestorTagged(n,t);return new r["default"](e,this._provideDoneSyntax)},n.prototype.whenAnyAncestorMatches=function(n){var t=this._bindingWhenSyntax.whenAnyAncestorMatches(n);return new r["default"](t,this._provideDoneSyntax)},n.prototype.whenNoAncestorMatches=function(n){var t=this._bindingWhenSyntax.whenNoAncestorMatches(n);return new r["default"](t,this._provideDoneSyntax)},n.prototype.done=function(){return this._provideDoneSyntax.done()},n}();Object.defineProperty(e,"__esModule",{value:!0}),e["default"]=i},{"./provide_on_syntax":45}],48:[function(n,t,e){"use strict";function r(n){for(var t=[],e=1;e<arguments.length;e++)t[e-1]=arguments[e];var r=o["default"](n);t.forEach(function(n){Object.keys(n).forEach(function(t){var e=n[t],o=r(e);i.decorate(o,e)})})}var i=n("inversify"),o=n("../factory/provide_decorator_factory");Object.defineProperty(e,"__esModule",{value:!0}),e["default"]=r},{"../factory/provide_decorator_factory":40,inversify:15}]},{},[41])(41)});
//# sourceMappingURL=index.min.js.map
/**
* inversify-binding-decorators v.1.0.0-beta.5 - An utility that allows developers to declare InversifyJS bindings using ES2016 decorators
* inversify-binding-decorators v.1.0.0-beta.6 - An utility that allows developers to declare InversifyJS bindings using ES2016 decorators
* Copyright (c) 2015 Remo H. Jansen <remo.jansen@wolksoftware.com> (http://www.remojansen.com)

@@ -4,0 +4,0 @@ * MIT inversify.io/LICENSE

/**
* inversify-binding-decorators v.1.0.0-beta.5 - An utility that allows developers to declare InversifyJS bindings using ES2016 decorators
* inversify-binding-decorators v.1.0.0-beta.6 - An utility that allows developers to declare InversifyJS bindings using ES2016 decorators
* Copyright (c) 2015 Remo H. Jansen <remo.jansen@wolksoftware.com> (http://www.remojansen.com)

@@ -4,0 +4,0 @@ * MIT inversify.io/LICENSE

/**
* inversify-binding-decorators v.1.0.0-beta.5 - An utility that allows developers to declare InversifyJS bindings using ES2016 decorators
* inversify-binding-decorators v.1.0.0-beta.6 - An utility that allows developers to declare InversifyJS bindings using ES2016 decorators
* Copyright (c) 2015 Remo H. Jansen <remo.jansen@wolksoftware.com> (http://www.remojansen.com)

@@ -4,0 +4,0 @@ * MIT inversify.io/LICENSE

/**
* inversify-binding-decorators v.1.0.0-beta.5 - An utility that allows developers to declare InversifyJS bindings using ES2016 decorators
* inversify-binding-decorators v.1.0.0-beta.6 - An utility that allows developers to declare InversifyJS bindings using ES2016 decorators
* Copyright (c) 2015 Remo H. Jansen <remo.jansen@wolksoftware.com> (http://www.remojansen.com)

@@ -4,0 +4,0 @@ * MIT inversify.io/LICENSE

/**
* inversify-binding-decorators v.1.0.0-beta.5 - An utility that allows developers to declare InversifyJS bindings using ES2016 decorators
* inversify-binding-decorators v.1.0.0-beta.6 - An utility that allows developers to declare InversifyJS bindings using ES2016 decorators
* Copyright (c) 2015 Remo H. Jansen <remo.jansen@wolksoftware.com> (http://www.remojansen.com)

@@ -4,0 +4,0 @@ * MIT inversify.io/LICENSE

/**
* inversify-binding-decorators v.1.0.0-beta.5 - An utility that allows developers to declare InversifyJS bindings using ES2016 decorators
* inversify-binding-decorators v.1.0.0-beta.6 - An utility that allows developers to declare InversifyJS bindings using ES2016 decorators
* Copyright (c) 2015 Remo H. Jansen <remo.jansen@wolksoftware.com> (http://www.remojansen.com)

@@ -4,0 +4,0 @@ * MIT inversify.io/LICENSE

/**
* inversify-binding-decorators v.1.0.0-beta.5 - An utility that allows developers to declare InversifyJS bindings using ES2016 decorators
* inversify-binding-decorators v.1.0.0-beta.6 - An utility that allows developers to declare InversifyJS bindings using ES2016 decorators
* Copyright (c) 2015 Remo H. Jansen <remo.jansen@wolksoftware.com> (http://www.remojansen.com)

@@ -4,0 +4,0 @@ * MIT inversify.io/LICENSE

/**
* inversify-binding-decorators v.1.0.0-beta.5 - An utility that allows developers to declare InversifyJS bindings using ES2016 decorators
* inversify-binding-decorators v.1.0.0-beta.6 - An utility that allows developers to declare InversifyJS bindings using ES2016 decorators
* Copyright (c) 2015 Remo H. Jansen <remo.jansen@wolksoftware.com> (http://www.remojansen.com)

@@ -4,0 +4,0 @@ * MIT inversify.io/LICENSE

/**
* inversify-binding-decorators v.1.0.0-beta.5 - An utility that allows developers to declare InversifyJS bindings using ES2016 decorators
* inversify-binding-decorators v.1.0.0-beta.6 - An utility that allows developers to declare InversifyJS bindings using ES2016 decorators
* Copyright (c) 2015 Remo H. Jansen <remo.jansen@wolksoftware.com> (http://www.remojansen.com)

@@ -4,0 +4,0 @@ * MIT inversify.io/LICENSE

/**
* inversify-binding-decorators v.1.0.0-beta.5 - An utility that allows developers to declare InversifyJS bindings using ES2016 decorators
* inversify-binding-decorators v.1.0.0-beta.6 - An utility that allows developers to declare InversifyJS bindings using ES2016 decorators
* Copyright (c) 2015 Remo H. Jansen <remo.jansen@wolksoftware.com> (http://www.remojansen.com)

@@ -4,0 +4,0 @@ * MIT inversify.io/LICENSE

/**
* inversify-binding-decorators v.1.0.0-beta.5 - An utility that allows developers to declare InversifyJS bindings using ES2016 decorators
* inversify-binding-decorators v.1.0.0-beta.6 - An utility that allows developers to declare InversifyJS bindings using ES2016 decorators
* Copyright (c) 2015 Remo H. Jansen <remo.jansen@wolksoftware.com> (http://www.remojansen.com)

@@ -4,0 +4,0 @@ * MIT inversify.io/LICENSE

/**
* inversify-binding-decorators v.1.0.0-beta.5 - An utility that allows developers to declare InversifyJS bindings using ES2016 decorators
* inversify-binding-decorators v.1.0.0-beta.6 - An utility that allows developers to declare InversifyJS bindings using ES2016 decorators
* Copyright (c) 2015 Remo H. Jansen <remo.jansen@wolksoftware.com> (http://www.remojansen.com)

@@ -4,0 +4,0 @@ * MIT inversify.io/LICENSE

/**
* inversify-binding-decorators v.1.0.0-beta.5 - An utility that allows developers to declare InversifyJS bindings using ES2016 decorators
* inversify-binding-decorators v.1.0.0-beta.6 - An utility that allows developers to declare InversifyJS bindings using ES2016 decorators
* Copyright (c) 2015 Remo H. Jansen <remo.jansen@wolksoftware.com> (http://www.remojansen.com)

@@ -4,0 +4,0 @@ * MIT inversify.io/LICENSE

/**
* inversify-binding-decorators v.1.0.0-beta.5 - An utility that allows developers to declare InversifyJS bindings using ES2016 decorators
* inversify-binding-decorators v.1.0.0-beta.6 - An utility that allows developers to declare InversifyJS bindings using ES2016 decorators
* Copyright (c) 2015 Remo H. Jansen <remo.jansen@wolksoftware.com> (http://www.remojansen.com)

@@ -4,0 +4,0 @@ * MIT inversify.io/LICENSE

/**
* inversify-binding-decorators v.1.0.0-beta.5 - An utility that allows developers to declare InversifyJS bindings using ES2016 decorators
* inversify-binding-decorators v.1.0.0-beta.6 - An utility that allows developers to declare InversifyJS bindings using ES2016 decorators
* Copyright (c) 2015 Remo H. Jansen <remo.jansen@wolksoftware.com> (http://www.remojansen.com)

@@ -4,0 +4,0 @@ * MIT inversify.io/LICENSE

/**
* inversify-binding-decorators v.1.0.0-beta.5 - An utility that allows developers to declare InversifyJS bindings using ES2016 decorators
* inversify-binding-decorators v.1.0.0-beta.6 - An utility that allows developers to declare InversifyJS bindings using ES2016 decorators
* Copyright (c) 2015 Remo H. Jansen <remo.jansen@wolksoftware.com> (http://www.remojansen.com)

@@ -4,0 +4,0 @@ * MIT inversify.io/LICENSE

/**
* inversify-binding-decorators v.1.0.0-beta.5 - An utility that allows developers to declare InversifyJS bindings using ES2016 decorators
* inversify-binding-decorators v.1.0.0-beta.6 - An utility that allows developers to declare InversifyJS bindings using ES2016 decorators
* Copyright (c) 2015 Remo H. Jansen <remo.jansen@wolksoftware.com> (http://www.remojansen.com)

@@ -4,0 +4,0 @@ * MIT inversify.io/LICENSE

/**
* inversify-binding-decorators v.1.0.0-beta.5 - An utility that allows developers to declare InversifyJS bindings using ES2016 decorators
* inversify-binding-decorators v.1.0.0-beta.6 - An utility that allows developers to declare InversifyJS bindings using ES2016 decorators
* Copyright (c) 2015 Remo H. Jansen <remo.jansen@wolksoftware.com> (http://www.remojansen.com)

@@ -4,0 +4,0 @@ * MIT inversify.io/LICENSE

/**
* inversify-binding-decorators v.1.0.0-beta.5 - An utility that allows developers to declare InversifyJS bindings using ES2016 decorators
* inversify-binding-decorators v.1.0.0-beta.6 - An utility that allows developers to declare InversifyJS bindings using ES2016 decorators
* Copyright (c) 2015 Remo H. Jansen <remo.jansen@wolksoftware.com> (http://www.remojansen.com)

@@ -4,0 +4,0 @@ * MIT inversify.io/LICENSE

/**
* inversify-binding-decorators v.1.0.0-beta.5 - An utility that allows developers to declare InversifyJS bindings using ES2016 decorators
* inversify-binding-decorators v.1.0.0-beta.6 - An utility that allows developers to declare InversifyJS bindings using ES2016 decorators
* Copyright (c) 2015 Remo H. Jansen <remo.jansen@wolksoftware.com> (http://www.remojansen.com)

@@ -4,0 +4,0 @@ * MIT inversify.io/LICENSE

/**
* inversify-binding-decorators v.1.0.0-beta.5 - An utility that allows developers to declare InversifyJS bindings using ES2016 decorators
* inversify-binding-decorators v.1.0.0-beta.6 - An utility that allows developers to declare InversifyJS bindings using ES2016 decorators
* Copyright (c) 2015 Remo H. Jansen <remo.jansen@wolksoftware.com> (http://www.remojansen.com)

@@ -4,0 +4,0 @@ * MIT inversify.io/LICENSE

/**
* inversify-binding-decorators v.1.0.0-beta.5 - An utility that allows developers to declare InversifyJS bindings using ES2016 decorators
* inversify-binding-decorators v.1.0.0-beta.6 - An utility that allows developers to declare InversifyJS bindings using ES2016 decorators
* Copyright (c) 2015 Remo H. Jansen <remo.jansen@wolksoftware.com> (http://www.remojansen.com)

@@ -4,0 +4,0 @@ * MIT inversify.io/LICENSE

/**
* inversify-binding-decorators v.1.0.0-beta.5 - An utility that allows developers to declare InversifyJS bindings using ES2016 decorators
* inversify-binding-decorators v.1.0.0-beta.6 - An utility that allows developers to declare InversifyJS bindings using ES2016 decorators
* Copyright (c) 2015 Remo H. Jansen <remo.jansen@wolksoftware.com> (http://www.remojansen.com)

@@ -4,0 +4,0 @@ * MIT inversify.io/LICENSE

/**
* inversify-binding-decorators v.1.0.0-beta.5 - An utility that allows developers to declare InversifyJS bindings using ES2016 decorators
* inversify-binding-decorators v.1.0.0-beta.6 - An utility that allows developers to declare InversifyJS bindings using ES2016 decorators
* Copyright (c) 2015 Remo H. Jansen <remo.jansen@wolksoftware.com> (http://www.remojansen.com)

@@ -4,0 +4,0 @@ * MIT inversify.io/LICENSE

{
"name": "inversify-binding-decorators",
"version": "1.0.0-beta.5",
"version": "1.0.0-beta.6",
"description": "An utility that allows developers to declare InversifyJS bindings using ES2016 decorators",

@@ -26,6 +26,6 @@ "main": "lib/index.js",

"dependencies": {
"inversify": "^2.0.0-beta.8",
"inversify-dts": "^1.0.3"
"inversify": "^2.0.0-beta.10"
},
"devDependencies": {
"inversify-dts": "^1.0.6",
"browserify": "^13.0.1",

@@ -35,4 +35,4 @@ "chai": "^3.5.0",

"gulp-codecov": "^2.0.1",
"gulp-header": "^1.8.2",
"gulp-istanbul": "^0.10.4",
"gulp-header": "1.8.7",
"gulp-istanbul": "^1.0.0",
"gulp-mocha": "^2.2.0",

@@ -39,0 +39,0 @@ "gulp-rename": "^1.2.2",

@@ -23,3 +23,4 @@ # inversify-binding-decorators

```
$ npm install --save inversify inversify-binding-decorators reflect-metadata inversify-dts
$ npm install --save inversify inversify-binding-decorators reflect-metadata
$ npm install --save-dev inversify-dts
```

@@ -42,3 +43,3 @@

@injectable()
class Katana implements IKatana {
class Katana implements Weapon {
public hit() {

@@ -50,3 +51,3 @@ return "cut!";

@injectable()
class Shuriken implements IShuriken {
class Shuriken implements ThrowableWeapon {
public throw() {

@@ -58,4 +59,4 @@ return "hit!";

var kernel = new Kernel();
kernel.bind<IKatana>("IKatana").to(Katana);
kernel.bind<IShuriken>("IShuriken").to(Shuriken);
kernel.bind<Katana>("Katana").to(Katana);
kernel.bind<Shuriken>("Shuriken").to(Shuriken);
```

@@ -74,3 +75,3 @@

@provide(Katana)
class Katana implements IKatana {
class Katana implements Weapon {
public hit() {

@@ -82,3 +83,3 @@ return "cut!";

@provide(Shuriken)
class Shuriken implements IShuriken {
class Shuriken implements ThrowableWeapon {
public throw() {

@@ -108,5 +109,5 @@ return "hit!";

class Ninja {
private _katana: Katana;
private _katana: Weapon;
public constructor(
katana: Katana
katana: Weapon
) {

@@ -130,8 +131,8 @@ this._katana = katana;

let TYPE = {
IKatana: "IKatana",
INinja: "INinja"
IKatana: "Katana",
INinja: "Ninja"
};
@provide(TYPE.IKatana)
class Katana implements IKatana {
@provide(TYPE.Katana)
class Katana implements Weapon {
public hit() {

@@ -142,9 +143,9 @@ return "cut!";

@provide(TYPE.INinja)
class Ninja implements INinja {
@provide(TYPE.Ninja)
class Ninja implements Ninja {
private _katana: IKatana;
private _katana: Weapon;
public constructor(
@inject(TYPE.IKatana) katana: IKatana
@inject(TYPE.Katana) katana: Weapon
) {

@@ -163,8 +164,8 @@ this._katana = katana;

let TYPE = {
IKatana: Symbol("IKatana"),
INinja: Symbol("INinja")
Katana: Symbol("Katana"),
Ninja: Symbol("Ninja")
};
@provide(TYPE.IKatana)
class Katana implements IKatana {
@provide(TYPE.Katana)
class Katana implements Weapon {
public hit() {

@@ -175,9 +176,9 @@ return "cut!";

@provide(TYPE.INinja)
class Ninja implements INinja {
@provide(TYPE.Ninja)
class Ninja implements Ninja {
private _katana: IKatana;
private _katana: Weapon;
public constructor(
@inject(TYPE.IKatana) katana: IKatana
@inject(TYPE.Katana) katana: Weapon
) {

@@ -193,5 +194,9 @@ this._katana = katana;

### Fluent binding decorator
The basic `@provide` decorator doesn't allow you to declare contextual constraints, scope and other advanced binding features. However, `inversify-binding-decorators` includes a second decorator that allows you to achieve access the full potential of the fluent binding syntax:
The basic `@provide` decorator doesn't allow you to declare contextual constraints,
scope and other advanced binding features. However, `inversify-binding-decorators`
includes a second decorator that allows you to achieve access the full potential
of the fluent binding syntax:
The decorator returned by `makeProvideDecorator` is not fluent and is very limited when compared to `makeFluentProvideDecorator`:
The decorator returned by `makeProvideDecorator` is not fluent and is very limited
when compared to `makeFluentProvideDecorator`:

@@ -206,8 +211,8 @@ ```ts

let TYPE = {
IWeapon : "IWeapon",
INinja: "INinja"
Weapon : "Weapon",
Ninja: "Ninja"
};
@provide(TYPE.IWeapon).whenTargetTagged("throwable", true).done();
class Katana implements IWeapon {
@provide(TYPE.Weapon).whenTargetTagged("throwable", true).done();
class Katana implements Weapon {
public hit() {

@@ -218,4 +223,4 @@ return "cut!";

@provide(TYPE.IWeapon).whenTargetTagged("throwable", false).done();
class Shuriken implements IWeapon {
@provide(TYPE.Weapon).whenTargetTagged("throwable", false).done();
class Shuriken implements Weapon {
public hit() {

@@ -226,11 +231,11 @@ return "hit!";

@provide(TYPE.INinja)
class Ninja implements INinja {
@provide(TYPE.Ninja)
class Ninja implements Ninja {
private _katana: IWeapon;
private _shuriken: IWeapon;
private _katana: Weapon;
private _shuriken: Weapon;
public constructor(
@inject(TYPE.IWeapon) @tagged("throwable", false) katana: IKatana,
@inject(TYPE.IWeapon) @tagged("throwable", true) shuriken: IShuriken
@inject(TYPE.Weapon) @tagged("throwable", false) katana: Weapon,
@inject(TYPE.Weapon) @tagged("throwable", true) shuriken: ThrowableWeapon
) {

@@ -256,4 +261,4 @@ this._katana = katana;

@provideThrowable(TYPE.IWeapon, true)
class Katana implements IWeapon {
@provideThrowable(TYPE.Weapon, true)
class Katana implements Weapon {
public hit() {

@@ -264,4 +269,4 @@ return "cut!";

@provideThrowable(TYPE.IWeapon, false)
class Shuriken implements IWeapon {
@provideThrowable(TYPE.Weapon, false)
class Shuriken implements Weapon {
public hit() {

@@ -282,4 +287,4 @@ return "hit!";

@provideSingleton(TYPE.IWeapon)
class Shuriken implements IWeapon {
@provideSingleton(TYPE.Weapon)
class Shuriken implements Weapon {
public hit() {

@@ -296,2 +301,3 @@ return "hit!";

Consider the following example:
```ts

@@ -307,2 +313,3 @@ import * as entites from "../entities";

The contents of the entities.ts file are the following:
```ts

@@ -312,3 +319,5 @@ export { default as Warrior } from "./warrior";

```
The contents of the katana.ts file are the following:
```ts

@@ -323,3 +332,5 @@ class Katana {

```
The contents of the warrior.ts file are the following:
```ts

@@ -330,3 +341,3 @@ import Katana from "./katana";

class Warrior {
private _weapon: Katana;
private _weapon: Weapon;
public constructor(

@@ -337,3 +348,3 @@ // we need to declare binding because auto-provide uses

// thanks to design-time decorators or some other TS feature
@inject(Katana) weapon: Katana
@inject(Katana) weapon: Weapon
) {

@@ -382,4 +393,9 @@ this._weapon = weapon;

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
PURPOSE AND NONINFRINGEMENT.
IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
DEALINGS IN THE SOFTWARE.

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc