-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathinversify-12bfe0fb23.min.js
More file actions
1 lines (1 loc) · 52.2 KB
/
inversify-12bfe0fb23.min.js
File metadata and controls
1 lines (1 loc) · 52.2 KB
1
var Reflect;!function(t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):("undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:this).inversify=t()}((function(){return function t(n,e,i){function r(a,s){if(!e[a]){if(!n[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:{}};n[a][0].call(d.exports,(function(t){return r(n[a][1][t]||t)}),d,d.exports,t,n,e,i)}return e[a].exports}for(var o="function"==typeof require&&require,a=0;a<i.length;a++)r(i[a]);return r}({1:[function(t,n,e){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var i=t("../constants/error_msgs"),r=t("../constants/metadata_keys");function o(t,n,e,r,o){var a={},s="number"==typeof o,u=void 0!==o&&s?o.toString():e;if(s&&void 0!==e)throw new Error(i.INVALID_DECORATOR_OPERATION);Reflect.hasOwnMetadata(t,n)&&(a=Reflect.getMetadata(t,n));var c=a[u];if(Array.isArray(c))for(var d=0,f=c;d<f.length;d++){var p=f[d];if(p.key===r.key)throw new Error(i.DUPLICATED_METADATA+" "+p.key)}else c=[];c.push(r),a[u]=c,Reflect.defineMetadata(t,a,n)}function a(t,n){Reflect.decorate(t,n)}e.tagParameter=function(t,n,e,i){o(r.TAGGED,t,n,i,e)},e.tagProperty=function(t,n,e){o(r.TAGGED_PROP,t.constructor,n,e)},e.decorate=function(t,n,e){var i,r;"number"==typeof e?a([(i=e,r=t,function(t,n){r(t,n,i)})],n):"string"==typeof e?Reflect.decorate([t],n,e):a([t],n)}},{"../constants/error_msgs":13,"../constants/metadata_keys":15}],2:[function(t,n,e){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var i=t("../constants/metadata_keys"),r=t("../planning/metadata"),o=t("./decorator_utils");e.inject=function(t){return function(n,e,a){var s=new r.Metadata(i.INJECT_TAG,t);"number"==typeof a?o.tagParameter(n,e,a,s):o.tagProperty(n,e,s)}}},{"../constants/metadata_keys":15,"../planning/metadata":22,"./decorator_utils":1}],3:[function(t,n,e){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var i=t("../constants/error_msgs"),r=t("../constants/metadata_keys");e.injectable=function(){return function(t){if(Reflect.hasOwnMetadata(r.PARAM_TYPES,t))throw new Error(i.DUPLICATED_INJECTABLE_DECORATOR);var n=Reflect.getMetadata(r.DESIGN_PARAM_TYPES,t)||[];return Reflect.defineMetadata(r.PARAM_TYPES,n,t),t}}},{"../constants/error_msgs":13,"../constants/metadata_keys":15}],4:[function(t,n,e){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var i=t("../constants/metadata_keys"),r=t("../planning/metadata"),o=t("./decorator_utils");e.multiInject=function(t){return function(n,e,a){var s=new r.Metadata(i.MULTI_INJECT_TAG,t);"number"==typeof a?o.tagParameter(n,e,a,s):o.tagProperty(n,e,s)}}},{"../constants/metadata_keys":15,"../planning/metadata":22,"./decorator_utils":1}],5:[function(t,n,e){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var i=t("../constants/metadata_keys"),r=t("../planning/metadata"),o=t("./decorator_utils");e.named=function(t){return function(n,e,a){var s=new r.Metadata(i.NAMED_TAG,t);"number"==typeof a?o.tagParameter(n,e,a,s):o.tagProperty(n,e,s)}}},{"../constants/metadata_keys":15,"../planning/metadata":22,"./decorator_utils":1}],6:[function(t,n,e){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var i=t("../constants/metadata_keys"),r=t("../planning/metadata"),o=t("./decorator_utils");e.optional=function(){return function(t,n,e){var a=new r.Metadata(i.OPTIONAL_TAG,!0);"number"==typeof e?o.tagParameter(t,n,e,a):o.tagProperty(t,n,a)}}},{"../constants/metadata_keys":15,"../planning/metadata":22,"./decorator_utils":1}],7:[function(t,n,e){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var i=t("../constants/error_msgs"),r=t("../constants/metadata_keys"),o=t("../planning/metadata");e.postConstruct=function(){return function(t,n,e){var a=new o.Metadata(r.POST_CONSTRUCT,n);if(Reflect.hasOwnMetadata(r.POST_CONSTRUCT,t.constructor))throw new Error(i.MULTIPLE_POST_CONSTRUCT_METHODS);Reflect.defineMetadata(r.POST_CONSTRUCT,a,t.constructor)}}},{"../constants/error_msgs":13,"../constants/metadata_keys":15,"../planning/metadata":22}],8:[function(t,n,e){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var i=t("../planning/metadata"),r=t("./decorator_utils");e.tagged=function(t,n){return function(e,o,a){var s=new i.Metadata(t,n);"number"==typeof a?r.tagParameter(e,o,a,s):r.tagProperty(e,o,s)}}},{"../planning/metadata":22,"./decorator_utils":1}],9:[function(t,n,e){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var i=t("../constants/metadata_keys"),r=t("../planning/metadata"),o=t("./decorator_utils");e.targetName=function(t){return function(n,e,a){var s=new r.Metadata(i.NAME_TAG,t);o.tagParameter(n,e,a,s)}}},{"../constants/metadata_keys":15,"../planning/metadata":22,"./decorator_utils":1}],10:[function(t,n,e){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var i=t("../constants/metadata_keys"),r=t("../planning/metadata"),o=t("./decorator_utils");e.unmanaged=function(){return function(t,n,e){var a=new r.Metadata(i.UNMANAGED_TAG,!0);o.tagParameter(t,n,e,a)}}},{"../constants/metadata_keys":15,"../planning/metadata":22,"./decorator_utils":1}],11:[function(t,n,e){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var i=t("../constants/literal_types"),r=t("../utils/guid"),o=function(){function t(t,n){this.guid=r.guid(),this.activated=!1,this.serviceIdentifier=t,this.scope=n,this.type=i.BindingTypeEnum.Invalid,this.constraint=function(t){return!0},this.implementationType=null,this.cache=null,this.factory=null,this.provider=null,this.onActivation=null,this.dynamicValue=null}return t.prototype.clone=function(){var n=new t(this.serviceIdentifier,this.scope);return n.activated=!1,n.implementationType=this.implementationType,n.dynamicValue=this.dynamicValue,n.scope=this.scope,n.type=this.type,n.factory=this.factory,n.provider=this.provider,n.constraint=this.constraint,n.onActivation=this.onActivation,n.cache=this.cache,n},t}();e.Binding=o},{"../constants/literal_types":14,"../utils/guid":41}],12:[function(t,n,e){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.BindingCount={MultipleBindingsAvailable:2,NoBindingsAvailable:0,OnlyOneBindingAvailable:1}},{}],13:[function(t,n,e){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.DUPLICATED_INJECTABLE_DECORATOR="Cannot apply @injectable decorator multiple times.",e.DUPLICATED_METADATA="Metadata 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 matching 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:",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. Middleware must return!",e.INVALID_FUNCTION_BINDING="Value provided to function binding must be a function!",e.INVALID_TO_SELF_VALUE="The toSelf function can only be applied when a constructor is used as service identifier",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.",e.CONTAINER_OPTIONS_MUST_BE_AN_OBJECT="Invalid Container constructor argument. Container options must be an object.",e.CONTAINER_OPTIONS_INVALID_DEFAULT_SCOPE="Invalid Container option. Default scope must be a string ('singleton' or 'transient').",e.CONTAINER_OPTIONS_INVALID_AUTO_BIND_INJECTABLE="Invalid Container option. Auto bind injectable must be a boolean",e.MULTIPLE_POST_CONSTRUCT_METHODS="Cannot apply @postConstruct decorator multiple times in the same class",e.POST_CONSTRUCT_ERROR=function(){for(var t=[],n=0;n<arguments.length;n++)t[n]=arguments[n];return"@postConstruct error in class "+t[0]+": "+t[1]},e.CIRCULAR_DEPENDENCY_IN_FACTORY=function(){for(var t=[],n=0;n<arguments.length;n++)t[n]=arguments[n];return"It looks like there is a circular dependency in one of the '"+t[0]+"' bindings. Please investigate bindings withservice identifier '"+t[1]+"'."},e.STACK_OVERFLOW="Maximum call stack size exceeded"},{}],14:[function(t,n,e){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.BindingScopeEnum={Request:"Request",Singleton:"Singleton",Transient:"Transient"},e.BindingTypeEnum={ConstantValue:"ConstantValue",Constructor:"Constructor",DynamicValue:"DynamicValue",Factory:"Factory",Function:"Function",Instance:"Instance",Invalid:"Invalid",Provider:"Provider"},e.TargetTypeEnum={ClassProperty:"ClassProperty",ConstructorArgument:"ConstructorArgument",Variable:"Variable"}},{}],15:[function(t,n,e){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.NAMED_TAG="named",e.NAME_TAG="name",e.UNMANAGED_TAG="unmanaged",e.OPTIONAL_TAG="optional",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",e.POST_CONSTRUCT="post_construct"},{}],16:[function(t,n,e){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var i=t("../bindings/binding"),r=t("../constants/error_msgs"),o=t("../constants/literal_types"),a=t("../constants/metadata_keys"),s=t("../planning/metadata_reader"),u=t("../planning/planner"),c=t("../resolution/resolver"),d=t("../syntax/binding_to_syntax"),f=t("../utils/guid"),p=t("../utils/serialization"),l=t("./container_snapshot"),g=t("./lookup"),y=function(){function t(t){if(void 0!==t){if("object"!=typeof t)throw new Error(""+r.CONTAINER_OPTIONS_MUST_BE_AN_OBJECT);if(void 0!==t.defaultScope&&t.defaultScope!==o.BindingScopeEnum.Singleton&&t.defaultScope!==o.BindingScopeEnum.Transient&&t.defaultScope!==o.BindingScopeEnum.Request)throw new Error(""+r.CONTAINER_OPTIONS_INVALID_DEFAULT_SCOPE);if(void 0!==t.autoBindInjectable&&"boolean"!=typeof t.autoBindInjectable)throw new Error(""+r.CONTAINER_OPTIONS_INVALID_AUTO_BIND_INJECTABLE);this.options={autoBindInjectable:t.autoBindInjectable,defaultScope:t.defaultScope}}else this.options={autoBindInjectable:!1,defaultScope:o.BindingScopeEnum.Transient};this.guid=f.guid(),this._bindingDictionary=new g.Lookup,this._snapshots=[],this._middleware=null,this.parent=null,this._metadataReader=new s.MetadataReader}return t.merge=function(n,e){var i=new t,r=u.getBindingDictionary(i),o=u.getBindingDictionary(n),a=u.getBindingDictionary(e);function s(t,n){t.traverse((function(t,e){e.forEach((function(t){n.add(t.serviceIdentifier,t.clone())}))}))}return s(o,r),s(a,r),i},t.prototype.load=function(){for(var t=this,n=[],e=0;e<arguments.length;e++)n[e]=arguments[e];var i=function(t,n){t._binding.moduleId=n};n.forEach((function(n){var e,r,o=(e=n.guid,function(n){var r=t.bind.call(t,n);return i(r,e),r}),a=(n.guid,function(n){t.unbind.bind(t)(n)}),s=(n.guid,function(n){return t.isBound.bind(t)(n)}),u=(r=n.guid,function(n){var e=t.rebind.call(t,n);return i(e,r),e});n.registry(o,a,s,u)}))},t.prototype.unload=function(){for(var t=this,n=[],e=0;e<arguments.length;e++)n[e]=arguments[e];n.forEach((function(n){var e,i=(e=n.guid,function(t){return t.moduleId===e});t._bindingDictionary.removeByCondition(i)}))},t.prototype.bind=function(t){var n=this.options.defaultScope||o.BindingScopeEnum.Transient,e=new i.Binding(t,n);return this._bindingDictionary.add(t,e),new d.BindingToSyntax(e)},t.prototype.rebind=function(t){return this.unbind(t),this.bind(t)},t.prototype.unbind=function(t){try{this._bindingDictionary.remove(t)}catch(n){throw new Error(r.CANNOT_UNBIND+" "+p.getServiceIdentifierAsString(t))}},t.prototype.unbindAll=function(){this._bindingDictionary=new g.Lookup},t.prototype.isBound=function(t){var n=this._bindingDictionary.hasKey(t);return!n&&this.parent&&(n=this.parent.isBound(t)),n},t.prototype.isBoundNamed=function(t,n){return this.isBoundTagged(t,a.NAMED_TAG,n)},t.prototype.isBoundTagged=function(t,n,e){var i=!1;if(this._bindingDictionary.hasKey(t)){var r=this._bindingDictionary.get(t),o=u.createMockRequest(this,t,n,e);i=r.some((function(t){return t.constraint(o)}))}return!i&&this.parent&&(i=this.parent.isBoundTagged(t,n,e)),i},t.prototype.snapshot=function(){this._snapshots.push(l.ContainerSnapshot.of(this._bindingDictionary.clone(),this._middleware))},t.prototype.restore=function(){var t=this._snapshots.pop();if(void 0===t)throw new Error(r.NO_MORE_SNAPSHOTS_AVAILABLE);this._bindingDictionary=t.bindings,this._middleware=t.middleware},t.prototype.createChild=function(){var n=new t;return n.parent=this,n},t.prototype.applyMiddleware=function(){for(var t=[],n=0;n<arguments.length;n++)t[n]=arguments[n];var e=this._middleware?this._middleware:this._planAndResolve();this._middleware=t.reduce((function(t,n){return n(t)}),e)},t.prototype.applyCustomMetadataReader=function(t){this._metadataReader=t},t.prototype.get=function(t){return this._get(!1,!1,o.TargetTypeEnum.Variable,t)},t.prototype.getTagged=function(t,n,e){return this._get(!1,!1,o.TargetTypeEnum.Variable,t,n,e)},t.prototype.getNamed=function(t,n){return this.getTagged(t,a.NAMED_TAG,n)},t.prototype.getAll=function(t){return this._get(!0,!0,o.TargetTypeEnum.Variable,t)},t.prototype.getAllTagged=function(t,n,e){return this._get(!1,!0,o.TargetTypeEnum.Variable,t,n,e)},t.prototype.getAllNamed=function(t,n){return this.getAllTagged(t,a.NAMED_TAG,n)},t.prototype.resolve=function(n){var e=new t;return e.bind(n).toSelf(),e.parent=this,e.get(n)},t.prototype._get=function(t,n,e,i,o,a){var s=null,u={avoidConstraints:t,contextInterceptor:function(t){return t},isMultiInject:n,key:o,serviceIdentifier:i,targetType:e,value:a};if(this._middleware){if(void 0===(s=this._middleware(u))||null===s)throw new Error(r.INVALID_MIDDLEWARE_RETURN)}else s=this._planAndResolve()(u);return s},t.prototype._planAndResolve=function(){var t=this;return function(n){var e=u.plan(t._metadataReader,t,n.isMultiInject,n.targetType,n.serviceIdentifier,n.key,n.value,n.avoidConstraints);return e=n.contextInterceptor(e),c.resolve(e)}},t}();e.Container=y},{"../bindings/binding":11,"../constants/error_msgs":13,"../constants/literal_types":14,"../constants/metadata_keys":15,"../planning/metadata_reader":23,"../planning/planner":25,"../resolution/resolver":31,"../syntax/binding_to_syntax":35,"../utils/guid":41,"../utils/serialization":42,"./container_snapshot":18,"./lookup":19}],17:[function(t,n,e){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var i=t("../utils/guid"),r=function(t){this.guid=i.guid(),this.registry=t};e.ContainerModule=r},{"../utils/guid":41}],18:[function(t,n,e){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var i=function(){function t(){}return t.of=function(n,e){var i=new t;return i.bindings=n,i.middleware=e,i},t}();e.ContainerSnapshot=i},{}],19:[function(t,n,e){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var i=t("../constants/error_msgs"),r=function(){function t(){this._map=new Map}return t.prototype.getMap=function(){return this._map},t.prototype.add=function(t,n){if(null==t)throw new Error(i.NULL_ARGUMENT);if(null==n)throw new Error(i.NULL_ARGUMENT);var e=this._map.get(t);void 0!==e?(e.push(n),this._map.set(t,e)):this._map.set(t,[n])},t.prototype.get=function(t){if(null==t)throw new Error(i.NULL_ARGUMENT);var n=this._map.get(t);if(void 0!==n)return n;throw new Error(i.KEY_NOT_FOUND)},t.prototype.remove=function(t){if(null==t)throw new Error(i.NULL_ARGUMENT);if(!this._map.delete(t))throw new Error(i.KEY_NOT_FOUND)},t.prototype.removeByCondition=function(t){var n=this;this._map.forEach((function(e,i){var r=e.filter((function(n){return!t(n)}));r.length>0?n._map.set(i,r):n._map.delete(i)}))},t.prototype.hasKey=function(t){if(null==t)throw new Error(i.NULL_ARGUMENT);return this._map.has(t)},t.prototype.clone=function(){var n=new t;return this._map.forEach((function(t,e){t.forEach((function(t){return n.add(e,t.clone())}))})),n},t.prototype.traverse=function(t){this._map.forEach((function(n,e){t(e,n)}))},t}();e.Lookup=r},{"../constants/error_msgs":13}],20:[function(t,n,e){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var i=t("./constants/metadata_keys");e.METADATA_KEY=i;var r=t("./container/container");e.Container=r.Container;var o=t("./constants/literal_types");e.BindingScopeEnum=o.BindingScopeEnum,e.BindingTypeEnum=o.BindingTypeEnum,e.TargetTypeEnum=o.TargetTypeEnum;var a=t("./container/container_module");e.ContainerModule=a.ContainerModule;var s=t("./annotation/injectable");e.injectable=s.injectable;var u=t("./annotation/tagged");e.tagged=u.tagged;var c=t("./annotation/named");e.named=c.named;var d=t("./annotation/inject");e.inject=d.inject;var f=t("./annotation/optional");e.optional=f.optional;var p=t("./annotation/unmanaged");e.unmanaged=p.unmanaged;var l=t("./annotation/multi_inject");e.multiInject=l.multiInject;var g=t("./annotation/target_name");e.targetName=g.targetName;var y=t("./annotation/post_construct");e.postConstruct=y.postConstruct;var h=t("./planning/metadata_reader");e.MetadataReader=h.MetadataReader;var _=t("./utils/guid");e.guid=_.guid;var v=t("./annotation/decorator_utils");e.decorate=v.decorate;var m=t("./syntax/constraint_helpers");e.traverseAncerstors=m.traverseAncerstors,e.taggedConstraint=m.taggedConstraint,e.namedConstraint=m.namedConstraint,e.typeConstraint=m.typeConstraint;var T=t("./utils/serialization");e.getServiceIdentifierAsString=T.getServiceIdentifierAsString;var b=t("./utils/binding_utils");e.multiBindToService=b.multiBindToService},{"./annotation/decorator_utils":1,"./annotation/inject":2,"./annotation/injectable":3,"./annotation/multi_inject":4,"./annotation/named":5,"./annotation/optional":6,"./annotation/post_construct":7,"./annotation/tagged":8,"./annotation/target_name":9,"./annotation/unmanaged":10,"./constants/literal_types":14,"./constants/metadata_keys":15,"./container/container":16,"./container/container_module":17,"./planning/metadata_reader":23,"./syntax/constraint_helpers":38,"./utils/binding_utils":39,"./utils/guid":41,"./utils/serialization":42}],21:[function(t,n,e){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var i=t("../utils/guid"),r=function(){function t(t){this.guid=i.guid(),this.container=t}return t.prototype.addPlan=function(t){this.plan=t},t.prototype.setCurrentRequest=function(t){this.currentRequest=t},t}();e.Context=r},{"../utils/guid":41}],22:[function(t,n,e){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var i=t("../constants/metadata_keys"),r=function(){function t(t,n){this.key=t,this.value=n}return t.prototype.toString=function(){return this.key===i.NAMED_TAG?"named: "+this.value.toString()+" ":"tagged: { key:"+this.key.toString()+", value: "+this.value+" }"},t}();e.Metadata=r},{"../constants/metadata_keys":15}],23:[function(t,n,e){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var i=t("../constants/metadata_keys"),r=function(){function t(){}return t.prototype.getConstructorMetadata=function(t){return{compilerGeneratedMetadata:Reflect.getMetadata(i.PARAM_TYPES,t),userGeneratedMetadata:Reflect.getMetadata(i.TAGGED,t)||{}}},t.prototype.getPropertiesMetadata=function(t){return Reflect.getMetadata(i.TAGGED_PROP,t)||[]},t}();e.MetadataReader=r},{"../constants/metadata_keys":15}],24:[function(t,n,e){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var i=function(t,n){this.parentContext=t,this.rootRequest=n};e.Plan=i},{}],25:[function(t,n,e){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var i=t("../bindings/binding_count"),r=t("../constants/error_msgs"),o=t("../constants/literal_types"),a=t("../constants/metadata_keys"),s=t("../utils/exceptions"),u=t("../utils/serialization"),c=t("./context"),d=t("./metadata"),f=t("./plan"),p=t("./reflection_utils"),l=t("./request"),g=t("./target");function y(t){return t._bindingDictionary}function h(t,n,e,o,a){var s,c=_(e.container,a.serviceIdentifier);return c.length===i.BindingCount.NoBindingsAvailable&&e.container.options.autoBindInjectable&&"function"==typeof a.serviceIdentifier&&t.getConstructorMetadata(a.serviceIdentifier).compilerGeneratedMetadata&&(e.container.bind(a.serviceIdentifier).toSelf(),c=_(e.container,a.serviceIdentifier)),s=n?c:c.filter((function(t){var n=new l.Request(t.serviceIdentifier,e,o,t,a);return t.constraint(n)})),function(t,n,e,o){switch(n.length){case i.BindingCount.NoBindingsAvailable:if(e.isOptional())return n;var a=u.getServiceIdentifierAsString(t),s=r.NOT_REGISTERED;throw s+=u.listMetadataForTarget(a,e),s+=u.listRegisteredBindingsForServiceIdentifier(o,a,_),new Error(s);case i.BindingCount.OnlyOneBindingAvailable:if(!e.isArray())return n;case i.BindingCount.MultipleBindingsAvailable:default:if(e.isArray())return n;a=u.getServiceIdentifierAsString(t),s=r.AMBIGUOUS_MATCH+" "+a;throw s+=u.listRegisteredBindingsForServiceIdentifier(o,a,_),new Error(s)}}(a.serviceIdentifier,s,a,e.container),s}function _(t,n){var e=[],i=y(t);return i.hasKey(n)?e=i.get(n):null!==t.parent&&(e=_(t.parent,n)),e}e.getBindingDictionary=y,e.plan=function(t,n,e,i,r,y,_,v){void 0===v&&(v=!1);var m=new c.Context(n),T=function(t,n,e,i,r,o){var s=t?a.MULTI_INJECT_TAG:a.INJECT_TAG,u=new d.Metadata(s,e),c=new g.Target(n,"",e,u);if(void 0!==r){var f=new d.Metadata(r,o);c.metadata.push(f)}return c}(e,i,r,0,y,_);try{return function t(n,e,i,r,a,s){var u,c;if(null===a){u=h(n,e,r,null,s),c=new l.Request(i,r,null,u,s);var d=new f.Plan(r,c);r.addPlan(d)}else u=h(n,e,r,a,s),c=a.addChildRequest(s.serviceIdentifier,u,s);u.forEach((function(e){var i=null;if(s.isArray())i=c.addChildRequest(e.serviceIdentifier,e,s);else{if(e.cache)return;i=c}e.type===o.BindingTypeEnum.Instance&&null!==e.implementationType&&p.getDependencies(n,e.implementationType).forEach((function(e){t(n,!1,e.serviceIdentifier,r,i,e)}))}))}(t,v,r,m,null,T),m}catch(t){throw s.isStackOverflowExeption(t)&&m.plan&&u.circularDependencyToException(m.plan.rootRequest),t}},e.createMockRequest=function(t,n,e,i){var r=new g.Target(o.TargetTypeEnum.Variable,"",n,new d.Metadata(e,i)),a=new c.Context(t);return new l.Request(n,a,null,[],r)}},{"../bindings/binding_count":12,"../constants/error_msgs":13,"../constants/literal_types":14,"../constants/metadata_keys":15,"../utils/exceptions":40,"../utils/serialization":42,"./context":21,"./metadata":22,"./plan":24,"./reflection_utils":27,"./request":28,"./target":29}],26:[function(t,n,e){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var i=function(){function t(t){this.str=t}return t.prototype.startsWith=function(t){return 0===this.str.indexOf(t)},t.prototype.endsWith=function(t){var n,e=t.split("").reverse().join("");return n=this.str.split("").reverse().join(""),this.startsWith.call({str:n},e)},t.prototype.contains=function(t){return-1!==this.str.indexOf(t)},t.prototype.equals=function(t){return this.str===t},t.prototype.value=function(){return this.str},t}();e.QueryableString=i},{}],27:[function(t,n,e){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var i=t("../constants/error_msgs"),r=t("../constants/literal_types"),o=t("../constants/metadata_keys"),a=t("../utils/serialization"),s=t("./target");function u(t,n,e,f){var p=t.getConstructorMetadata(e),l=p.compilerGeneratedMetadata;if(void 0===l){var g=i.MISSING_INJECTABLE_ANNOTATION+" "+n+".";throw new Error(g)}var y=p.userGeneratedMetadata,h=Object.keys(y),_=function(t,n,e,i,r){for(var o=[],a=0;a<r;a++){var s=c(a,t,n,e,i);null!==s&&o.push(s)}return o}(f,n,l,y,0===e.length&&h.length>0?h.length:e.length),v=function t(n,e){for(var i=n.getPropertiesMetadata(e),o=[],a=0,u=Object.keys(i);a<u.length;a++){var c=u[a],f=i[c],p=d(i[c]),l=p.targetName||c,g=p.inject||p.multiInject,y=new s.Target(r.TargetTypeEnum.ClassProperty,l,g);y.metadata=f,o.push(y)}var h=Object.getPrototypeOf(e.prototype).constructor;if(h!==Object){var _=t(n,h);o=o.concat(_)}return o}(t,e),m=_.concat(v),T=function t(n,e){var i=Object.getPrototypeOf(e.prototype).constructor;if(i!==Object){var r=u(n,a.getFunctionName(i),i,!0),s=r.map((function(t){return t.metadata.filter((function(t){return t.key===o.UNMANAGED_TAG}))})),c=[].concat.apply([],s).length,d=r.length-c;return d>0?d:t(n,i)}return 0}(t,e);if(m.length<T){var b=i.ARGUMENTS_LENGTH_MISMATCH_1+n+i.ARGUMENTS_LENGTH_MISMATCH_2;throw new Error(b)}return m}function c(t,n,e,o,a){var u=a[t.toString()]||[],c=d(u),f=!0!==c.unmanaged,p=o[t];if(p=c.inject||c.multiInject||p,f){if(!n&&(p===Object||p===Function||void 0===p)){var l=i.MISSING_INJECT_ANNOTATION+" argument "+t+" in class "+e+".";throw new Error(l)}var g=new s.Target(r.TargetTypeEnum.ConstructorArgument,c.targetName,p);return g.metadata=u,g}return null}function d(t){var n={};return t.forEach((function(t){n[t.key.toString()]=t.value})),{inject:n[o.INJECT_TAG],multiInject:n[o.MULTI_INJECT_TAG],targetName:n[o.NAME_TAG],unmanaged:n[o.UNMANAGED_TAG]}}e.getDependencies=function(t,n){return u(t,a.getFunctionName(n),n,!1)}},{"../constants/error_msgs":13,"../constants/literal_types":14,"../constants/metadata_keys":15,"../utils/serialization":42,"./target":29}],28:[function(t,n,e){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var i=t("../utils/guid"),r=function(){function t(t,n,e,r,o){this.guid=i.guid(),this.serviceIdentifier=t,this.parentContext=n,this.parentRequest=e,this.target=o,this.childRequests=[],this.bindings=Array.isArray(r)?r:[r],this.requestScope=null===e?new Map:null}return t.prototype.addChildRequest=function(n,e,i){var r=new t(n,this.parentContext,this,e,i);return this.childRequests.push(r),r},t}();e.Request=r},{"../utils/guid":41}],29:[function(t,n,e){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var i=t("../constants/metadata_keys"),r=t("../utils/guid"),o=t("./metadata"),a=t("./queryable_string"),s=function(){function t(t,n,e,s){this.guid=r.guid(),this.type=t,this.serviceIdentifier=e,this.name=new a.QueryableString(n||""),this.metadata=new Array;var u=null;"string"==typeof s?u=new o.Metadata(i.NAMED_TAG,s):s instanceof o.Metadata&&(u=s),null!==u&&this.metadata.push(u)}return t.prototype.hasTag=function(t){for(var n=0,e=this.metadata;n<e.length;n++)if(e[n].key===t)return!0;return!1},t.prototype.isArray=function(){return this.hasTag(i.MULTI_INJECT_TAG)},t.prototype.matchesArray=function(t){return this.matchesTag(i.MULTI_INJECT_TAG)(t)},t.prototype.isNamed=function(){return this.hasTag(i.NAMED_TAG)},t.prototype.isTagged=function(){return this.metadata.some((function(t){return t.key!==i.INJECT_TAG&&t.key!==i.MULTI_INJECT_TAG&&t.key!==i.NAME_TAG&&t.key!==i.UNMANAGED_TAG&&t.key!==i.NAMED_TAG}))},t.prototype.isOptional=function(){return this.matchesTag(i.OPTIONAL_TAG)(!0)},t.prototype.getNamedTag=function(){return this.isNamed()?this.metadata.filter((function(t){return t.key===i.NAMED_TAG}))[0]:null},t.prototype.getCustomTags=function(){return this.isTagged()?this.metadata.filter((function(t){return t.key!==i.INJECT_TAG&&t.key!==i.MULTI_INJECT_TAG&&t.key!==i.NAME_TAG&&t.key!==i.UNMANAGED_TAG&&t.key!==i.NAMED_TAG})):null},t.prototype.matchesNamedTag=function(t){return this.matchesTag(i.NAMED_TAG)(t)},t.prototype.matchesTag=function(t){var n=this;return function(e){for(var i=0,r=n.metadata;i<r.length;i++){var o=r[i];if(o.key===t&&o.value===e)return!0}return!1}},t}();e.Target=s},{"../constants/metadata_keys":15,"../utils/guid":41,"./metadata":22,"./queryable_string":26}],30:[function(t,n,e){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var i=t("../constants/error_msgs"),r=t("../constants/literal_types"),o=t("../constants/metadata_keys");e.resolveInstance=function(t,n,e){var a,s,u,c,d,f,p=null;if(n.length>0){var l=n.filter((function(t){return null!==t.target&&t.target.type===r.TargetTypeEnum.ConstructorArgument})).map(e);f=l,p=new((d=t).bind.apply(d,[void 0].concat(f))),a=p,s=e,u=n.filter((function(t){return null!==t.target&&t.target.type===r.TargetTypeEnum.ClassProperty})),c=u.map(s),u.forEach((function(t,n){var e;e=t.target.name.value();var i=c[n];a[e]=i})),p=a}else p=new t;return function(t,n){if(Reflect.hasMetadata(o.POST_CONSTRUCT,t)){var e=Reflect.getMetadata(o.POST_CONSTRUCT,t);try{n[e.value]()}catch(n){throw new Error(i.POST_CONSTRUCT_ERROR(t.name,n.message))}}}(t,p),p}},{"../constants/error_msgs":13,"../constants/literal_types":14,"../constants/metadata_keys":15}],31:[function(t,n,e){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var i=t("../constants/error_msgs"),r=t("../constants/literal_types"),o=t("../utils/exceptions"),a=t("../utils/serialization"),s=t("./instantiation"),u=function(t,n,e){try{return e()}catch(e){throw o.isStackOverflowExeption(e)?new Error(i.CIRCULAR_DEPENDENCY_IN_FACTORY(t,n.toString())):e}},c=function(t){return function(n){n.parentContext.setCurrentRequest(n);var e=n.bindings,o=n.childRequests,d=n.target&&n.target.isArray(),f=!(n.parentRequest&&n.parentRequest.target&&n.target&&n.parentRequest.target.matchesArray(n.target.serviceIdentifier));if(d&&f)return o.map((function(n){return c(t)(n)}));var p=null;if(!n.target.isOptional()||0!==e.length){var l=e[0],g=l.scope===r.BindingScopeEnum.Singleton,y=l.scope===r.BindingScopeEnum.Request;if(g&&l.activated)return l.cache;if(y&&null!==t&&t.has(l.guid))return t.get(l.guid);if(l.type===r.BindingTypeEnum.ConstantValue)p=l.cache;else if(l.type===r.BindingTypeEnum.Function)p=l.cache;else if(l.type===r.BindingTypeEnum.Constructor)p=l.implementationType;else if(l.type===r.BindingTypeEnum.DynamicValue&&null!==l.dynamicValue)p=u("toDynamicValue",l.serviceIdentifier,(function(){return l.dynamicValue(n.parentContext)}));else if(l.type===r.BindingTypeEnum.Factory&&null!==l.factory)p=u("toFactory",l.serviceIdentifier,(function(){return l.factory(n.parentContext)}));else if(l.type===r.BindingTypeEnum.Provider&&null!==l.provider)p=u("toProvider",l.serviceIdentifier,(function(){return l.provider(n.parentContext)}));else{if(l.type!==r.BindingTypeEnum.Instance||null===l.implementationType){var h=a.getServiceIdentifierAsString(n.serviceIdentifier);throw new Error(i.INVALID_BINDING_TYPE+" "+h)}p=s.resolveInstance(l.implementationType,o,c(t))}return"function"==typeof l.onActivation&&(p=l.onActivation(n.parentContext,p)),g&&(l.cache=p,l.activated=!0),y&&null!==t&&!t.has(l.guid)&&t.set(l.guid,p),p}}};e.resolve=function(t){return c(t.plan.rootRequest.requestScope)(t.plan.rootRequest)}},{"../constants/error_msgs":13,"../constants/literal_types":14,"../utils/exceptions":40,"../utils/serialization":42,"./instantiation":30}],32:[function(t,n,e){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var i=t("../constants/literal_types"),r=t("./binding_when_on_syntax"),o=function(){function t(t){this._binding=t}return t.prototype.inRequestScope=function(){return this._binding.scope=i.BindingScopeEnum.Request,new r.BindingWhenOnSyntax(this._binding)},t.prototype.inSingletonScope=function(){return this._binding.scope=i.BindingScopeEnum.Singleton,new r.BindingWhenOnSyntax(this._binding)},t.prototype.inTransientScope=function(){return this._binding.scope=i.BindingScopeEnum.Transient,new r.BindingWhenOnSyntax(this._binding)},t}();e.BindingInSyntax=o},{"../constants/literal_types":14,"./binding_when_on_syntax":36}],33:[function(t,n,e){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var i=t("./binding_in_syntax"),r=t("./binding_on_syntax"),o=t("./binding_when_syntax"),a=function(){function t(t){this._binding=t,this._bindingWhenSyntax=new o.BindingWhenSyntax(this._binding),this._bindingOnSyntax=new r.BindingOnSyntax(this._binding),this._bindingInSyntax=new i.BindingInSyntax(t)}return t.prototype.inRequestScope=function(){return this._bindingInSyntax.inRequestScope()},t.prototype.inSingletonScope=function(){return this._bindingInSyntax.inSingletonScope()},t.prototype.inTransientScope=function(){return this._bindingInSyntax.inTransientScope()},t.prototype.when=function(t){return this._bindingWhenSyntax.when(t)},t.prototype.whenTargetNamed=function(t){return this._bindingWhenSyntax.whenTargetNamed(t)},t.prototype.whenTargetIsDefault=function(){return this._bindingWhenSyntax.whenTargetIsDefault()},t.prototype.whenTargetTagged=function(t,n){return this._bindingWhenSyntax.whenTargetTagged(t,n)},t.prototype.whenInjectedInto=function(t){return this._bindingWhenSyntax.whenInjectedInto(t)},t.prototype.whenParentNamed=function(t){return this._bindingWhenSyntax.whenParentNamed(t)},t.prototype.whenParentTagged=function(t,n){return this._bindingWhenSyntax.whenParentTagged(t,n)},t.prototype.whenAnyAncestorIs=function(t){return this._bindingWhenSyntax.whenAnyAncestorIs(t)},t.prototype.whenNoAncestorIs=function(t){return this._bindingWhenSyntax.whenNoAncestorIs(t)},t.prototype.whenAnyAncestorNamed=function(t){return this._bindingWhenSyntax.whenAnyAncestorNamed(t)},t.prototype.whenAnyAncestorTagged=function(t,n){return this._bindingWhenSyntax.whenAnyAncestorTagged(t,n)},t.prototype.whenNoAncestorNamed=function(t){return this._bindingWhenSyntax.whenNoAncestorNamed(t)},t.prototype.whenNoAncestorTagged=function(t,n){return this._bindingWhenSyntax.whenNoAncestorTagged(t,n)},t.prototype.whenAnyAncestorMatches=function(t){return this._bindingWhenSyntax.whenAnyAncestorMatches(t)},t.prototype.whenNoAncestorMatches=function(t){return this._bindingWhenSyntax.whenNoAncestorMatches(t)},t.prototype.onActivation=function(t){return this._bindingOnSyntax.onActivation(t)},t}();e.BindingInWhenOnSyntax=a},{"./binding_in_syntax":32,"./binding_on_syntax":34,"./binding_when_syntax":37}],34:[function(t,n,e){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var i=t("./binding_when_syntax"),r=function(){function t(t){this._binding=t}return t.prototype.onActivation=function(t){return this._binding.onActivation=t,new i.BindingWhenSyntax(this._binding)},t}();e.BindingOnSyntax=r},{"./binding_when_syntax":37}],35:[function(t,n,e){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var i=t("../constants/error_msgs"),r=t("../constants/literal_types"),o=t("./binding_in_when_on_syntax"),a=t("./binding_when_on_syntax"),s=function(){function t(t){this._binding=t}return t.prototype.to=function(t){return this._binding.type=r.BindingTypeEnum.Instance,this._binding.implementationType=t,new o.BindingInWhenOnSyntax(this._binding)},t.prototype.toSelf=function(){if("function"!=typeof this._binding.serviceIdentifier)throw new Error(""+i.INVALID_TO_SELF_VALUE);var t=this._binding.serviceIdentifier;return this.to(t)},t.prototype.toConstantValue=function(t){return this._binding.type=r.BindingTypeEnum.ConstantValue,this._binding.cache=t,this._binding.dynamicValue=null,this._binding.implementationType=null,new a.BindingWhenOnSyntax(this._binding)},t.prototype.toDynamicValue=function(t){return this._binding.type=r.BindingTypeEnum.DynamicValue,this._binding.cache=null,this._binding.dynamicValue=t,this._binding.implementationType=null,new o.BindingInWhenOnSyntax(this._binding)},t.prototype.toConstructor=function(t){return this._binding.type=r.BindingTypeEnum.Constructor,this._binding.implementationType=t,new a.BindingWhenOnSyntax(this._binding)},t.prototype.toFactory=function(t){return this._binding.type=r.BindingTypeEnum.Factory,this._binding.factory=t,new a.BindingWhenOnSyntax(this._binding)},t.prototype.toFunction=function(t){if("function"!=typeof t)throw new Error(i.INVALID_FUNCTION_BINDING);var n=this.toConstantValue(t);return this._binding.type=r.BindingTypeEnum.Function,n},t.prototype.toAutoFactory=function(t){return this._binding.type=r.BindingTypeEnum.Factory,this._binding.factory=function(n){return function(){return n.container.get(t)}},new a.BindingWhenOnSyntax(this._binding)},t.prototype.toProvider=function(t){return this._binding.type=r.BindingTypeEnum.Provider,this._binding.provider=t,new a.BindingWhenOnSyntax(this._binding)},t.prototype.toService=function(t){this.toDynamicValue((function(n){return n.container.get(t)}))},t}();e.BindingToSyntax=s},{"../constants/error_msgs":13,"../constants/literal_types":14,"./binding_in_when_on_syntax":33,"./binding_when_on_syntax":36}],36:[function(t,n,e){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var i=t("./binding_on_syntax"),r=t("./binding_when_syntax"),o=function(){function t(t){this._binding=t,this._bindingWhenSyntax=new r.BindingWhenSyntax(this._binding),this._bindingOnSyntax=new i.BindingOnSyntax(this._binding)}return t.prototype.when=function(t){return this._bindingWhenSyntax.when(t)},t.prototype.whenTargetNamed=function(t){return this._bindingWhenSyntax.whenTargetNamed(t)},t.prototype.whenTargetIsDefault=function(){return this._bindingWhenSyntax.whenTargetIsDefault()},t.prototype.whenTargetTagged=function(t,n){return this._bindingWhenSyntax.whenTargetTagged(t,n)},t.prototype.whenInjectedInto=function(t){return this._bindingWhenSyntax.whenInjectedInto(t)},t.prototype.whenParentNamed=function(t){return this._bindingWhenSyntax.whenParentNamed(t)},t.prototype.whenParentTagged=function(t,n){return this._bindingWhenSyntax.whenParentTagged(t,n)},t.prototype.whenAnyAncestorIs=function(t){return this._bindingWhenSyntax.whenAnyAncestorIs(t)},t.prototype.whenNoAncestorIs=function(t){return this._bindingWhenSyntax.whenNoAncestorIs(t)},t.prototype.whenAnyAncestorNamed=function(t){return this._bindingWhenSyntax.whenAnyAncestorNamed(t)},t.prototype.whenAnyAncestorTagged=function(t,n){return this._bindingWhenSyntax.whenAnyAncestorTagged(t,n)},t.prototype.whenNoAncestorNamed=function(t){return this._bindingWhenSyntax.whenNoAncestorNamed(t)},t.prototype.whenNoAncestorTagged=function(t,n){return this._bindingWhenSyntax.whenNoAncestorTagged(t,n)},t.prototype.whenAnyAncestorMatches=function(t){return this._bindingWhenSyntax.whenAnyAncestorMatches(t)},t.prototype.whenNoAncestorMatches=function(t){return this._bindingWhenSyntax.whenNoAncestorMatches(t)},t.prototype.onActivation=function(t){return this._bindingOnSyntax.onActivation(t)},t}();e.BindingWhenOnSyntax=o},{"./binding_on_syntax":34,"./binding_when_syntax":37}],37:[function(t,n,e){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var i=t("./binding_on_syntax"),r=t("./constraint_helpers"),o=function(){function t(t){this._binding=t}return t.prototype.when=function(t){return this._binding.constraint=t,new i.BindingOnSyntax(this._binding)},t.prototype.whenTargetNamed=function(t){return this._binding.constraint=r.namedConstraint(t),new i.BindingOnSyntax(this._binding)},t.prototype.whenTargetIsDefault=function(){return this._binding.constraint=function(t){return null!==t.target&&!t.target.isNamed()&&!t.target.isTagged()},new i.BindingOnSyntax(this._binding)},t.prototype.whenTargetTagged=function(t,n){return this._binding.constraint=r.taggedConstraint(t)(n),new i.BindingOnSyntax(this._binding)},t.prototype.whenInjectedInto=function(t){return this._binding.constraint=function(n){return r.typeConstraint(t)(n.parentRequest)},new i.BindingOnSyntax(this._binding)},t.prototype.whenParentNamed=function(t){return this._binding.constraint=function(n){return r.namedConstraint(t)(n.parentRequest)},new i.BindingOnSyntax(this._binding)},t.prototype.whenParentTagged=function(t,n){return this._binding.constraint=function(e){return r.taggedConstraint(t)(n)(e.parentRequest)},new i.BindingOnSyntax(this._binding)},t.prototype.whenAnyAncestorIs=function(t){return this._binding.constraint=function(n){return r.traverseAncerstors(n,r.typeConstraint(t))},new i.BindingOnSyntax(this._binding)},t.prototype.whenNoAncestorIs=function(t){return this._binding.constraint=function(n){return!r.traverseAncerstors(n,r.typeConstraint(t))},new i.BindingOnSyntax(this._binding)},t.prototype.whenAnyAncestorNamed=function(t){return this._binding.constraint=function(n){return r.traverseAncerstors(n,r.namedConstraint(t))},new i.BindingOnSyntax(this._binding)},t.prototype.whenNoAncestorNamed=function(t){return this._binding.constraint=function(n){return!r.traverseAncerstors(n,r.namedConstraint(t))},new i.BindingOnSyntax(this._binding)},t.prototype.whenAnyAncestorTagged=function(t,n){return this._binding.constraint=function(e){return r.traverseAncerstors(e,r.taggedConstraint(t)(n))},new i.BindingOnSyntax(this._binding)},t.prototype.whenNoAncestorTagged=function(t,n){return this._binding.constraint=function(e){return!r.traverseAncerstors(e,r.taggedConstraint(t)(n))},new i.BindingOnSyntax(this._binding)},t.prototype.whenAnyAncestorMatches=function(t){return this._binding.constraint=function(n){return r.traverseAncerstors(n,t)},new i.BindingOnSyntax(this._binding)},t.prototype.whenNoAncestorMatches=function(t){return this._binding.constraint=function(n){return!r.traverseAncerstors(n,t)},new i.BindingOnSyntax(this._binding)},t}();e.BindingWhenSyntax=o},{"./binding_on_syntax":34,"./constraint_helpers":38}],38:[function(t,n,e){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var i=t("../constants/metadata_keys"),r=t("../planning/metadata"),o=function(t,n){var e=t.parentRequest;return null!==e&&(!!n(e)||o(e,n))};e.traverseAncerstors=o;var a=function(t){return function(n){var e=function(e){return null!==e&&null!==e.target&&e.target.matchesTag(t)(n)};return e.metaData=new r.Metadata(t,n),e}};e.taggedConstraint=a;var s=a(i.NAMED_TAG);e.namedConstraint=s,e.typeConstraint=function(t){return function(n){var e=null;if(null!==n){if(e=n.bindings[0],"string"==typeof t)return e.serviceIdentifier===t;var i=n.bindings[0].implementationType;return t===i}return!1}}},{"../constants/metadata_keys":15,"../planning/metadata":22}],39:[function(t,n,e){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.multiBindToService=function(t){return function(n){return function(){for(var e=[],i=0;i<arguments.length;i++)e[i]=arguments[i];return e.forEach((function(e){return t.bind(e).toService(n)}))}}}},{}],40:[function(t,n,e){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var i=t("../constants/error_msgs");e.isStackOverflowExeption=function(t){return t instanceof RangeError||t.message===i.STACK_OVERFLOW}},{"../constants/error_msgs":13}],41:[function(t,n,e){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.guid=function(){function t(){return Math.floor(65536*(Math.random()+1)).toString(16).substring(1)}return t()+t()+"-"+t()+"-"+t()+"-"+t()+"-"+t()+t()+t()}},{}],42:[function(t,n,e){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var i=t("../constants/error_msgs");function r(t){return"function"==typeof t?t.name:"symbol"==typeof t?t.toString():t}function o(t){if(t.name)return t.name;var n=t.toString(),e=n.match(/^function\s*([^\s(]+)/);return e?e[1]:"Anonymous function: "+n}e.getServiceIdentifierAsString=r,e.listRegisteredBindingsForServiceIdentifier=function(t,n,e){var i="",r=e(t,n);return 0!==r.length&&(i="\nRegistered bindings:",r.forEach((function(t){var n="Object";null!==t.implementationType&&(n=o(t.implementationType)),i=i+"\n "+n,t.constraint.metaData&&(i=i+" - "+t.constraint.metaData)}))),i},e.circularDependencyToException=function t(n){n.childRequests.forEach((function(n){if(function t(n,e){return null!==n.parentRequest&&(n.parentRequest.serviceIdentifier===e||t(n.parentRequest,e))}(n,n.serviceIdentifier)){var e=function t(n,e){void 0===e&&(e=[]);var i=r(n.serviceIdentifier);return e.push(i),null!==n.parentRequest?t(n.parentRequest,e):e}(n).reverse().join(" --\x3e ");throw new Error(i.CIRCULAR_DEPENDENCY+" "+e)}t(n)}))},e.listMetadataForTarget=function(t,n){if(n.isTagged()||n.isNamed()){var e="",i=n.getNamedTag(),r=n.getCustomTags();return null!==i&&(e+=i.toString()+"\n"),null!==r&&r.forEach((function(t){e+=t.toString()+"\n"}))," "+t+"\n "+t+" - "+e}return" "+t},e.getFunctionName=o},{"../constants/error_msgs":13}]},{},[20])(20)})),function(t){"use strict";var n,e,i,r,o,a=Object.prototype.hasOwnProperty,s="function"==typeof Symbol,u=s&&void 0!==Symbol.toPrimitive?Symbol.toPrimitive:"@@toPrimitive",c=s&&void 0!==Symbol.iterator?Symbol.iterator:"@@iterator";e=n||(n={}),i="function"==typeof Object.create,r={__proto__:[]}instanceof Array,o=!i&&!r,e.create=i?function(){return x(Object.create(null))}:r?function(){return x({__proto__:null})}:function(){return x({})},e.has=o?function(t,n){return a.call(t,n)}:function(t,n){return n in t},e.get=o?function(t,n){return a.call(t,n)?t[n]:void 0}:function(t,n){return t[n]};var d=Object.getPrototypeOf(Function),f="object"==typeof process&&process.env&&"true"===process.env.REFLECT_METADATA_USE_MAP_POLYFILL,p=f||"function"!=typeof Map||"function"!=typeof Map.prototype.entries?function(){var t={},n=[],e=function(){function t(t,n,e){this._index=0,this._keys=t,this._values=n,this._selector=e}return t.prototype["@@iterator"]=function(){return this},t.prototype[c]=function(){return this},t.prototype.next=function(){var t=this._index;if(t>=0&&t<this._keys.length){var e=this._selector(this._keys[t],this._values[t]);return t+1>=this._keys.length?(this._index=-1,this._keys=n,this._values=n):this._index++,{value:e,done:!1}}return{value:void 0,done:!0}},t.prototype.throw=function(t){throw this._index>=0&&(this._index=-1,this._keys=n,this._values=n),t},t.prototype.return=function(t){return this._index>=0&&(this._index=-1,this._keys=n,this._values=n),{value:t,done:!0}},t}();return function(){function n(){this._keys=[],this._values=[],this._cacheKey=t,this._cacheIndex=-2}return Object.defineProperty(n.prototype,"size",{get:function(){return this._keys.length},enumerable:!0,configurable:!0}),n.prototype.has=function(t){return this._find(t,!1)>=0},n.prototype.get=function(t){var n=this._find(t,!1);return n>=0?this._values[n]:void 0},n.prototype.set=function(t,n){var e=this._find(t,!0);return this._values[e]=n,this},n.prototype.delete=function(n){var e=this._find(n,!1);if(e>=0){for(var i=this._keys.length,r=e+1;r<i;r++)this._keys[r-1]=this._keys[r],this._values[r-1]=this._values[r];return this._keys.length--,this._values.length--,n===this._cacheKey&&(this._cacheKey=t,this._cacheIndex=-2),!0}return!1},n.prototype.clear=function(){this._keys.length=0,this._values.length=0,this._cacheKey=t,this._cacheIndex=-2},n.prototype.keys=function(){return new e(this._keys,this._values,i)},n.prototype.values=function(){return new e(this._keys,this._values,r)},n.prototype.entries=function(){return new e(this._keys,this._values,o)},n.prototype["@@iterator"]=function(){return this.entries()},n.prototype[c]=function(){return this.entries()},n.prototype._find=function(t,n){return this._cacheKey!==t&&(this._cacheIndex=this._keys.indexOf(this._cacheKey=t)),this._cacheIndex<0&&n&&(this._cacheIndex=this._keys.length,this._keys.push(t),this._values.push(void 0)),this._cacheIndex},n}();function i(t,n){return t}function r(t,n){return n}function o(t,n){return[t,n]}}():Map,l=f||"function"!=typeof Set||"function"!=typeof Set.prototype.entries?function(){function t(){this._map=new p}return Object.defineProperty(t.prototype,"size",{get:function(){return this._map.size},enumerable:!0,configurable:!0}),t.prototype.has=function(t){return this._map.has(t)},t.prototype.add=function(t){return this._map.set(t,t),this},t.prototype.delete=function(t){return this._map.delete(t)},t.prototype.clear=function(){this._map.clear()},t.prototype.keys=function(){return this._map.keys()},t.prototype.values=function(){return this._map.values()},t.prototype.entries=function(){return this._map.entries()},t.prototype["@@iterator"]=function(){return this.keys()},t.prototype[c]=function(){return this.keys()},t}():Set,g=new(f||"function"!=typeof WeakMap?function(){var t=n.create(),e=i();return function(){function t(){this._key=i()}return t.prototype.has=function(t){var e=r(t,!1);return void 0!==e&&n.has(e,this._key)},t.prototype.get=function(t){var e=r(t,!1);return void 0!==e?n.get(e,this._key):void 0},t.prototype.set=function(t,n){return r(t,!0)[this._key]=n,this},t.prototype.delete=function(t){var n=r(t,!1);return void 0!==n&&delete n[this._key]},t.prototype.clear=function(){this._key=i()},t}();function i(){var e;do{e="@@WeakMap@@"+s()}while(n.has(t,e));return t[e]=!0,e}function r(t,i){if(!a.call(t,e)){if(!i)return;Object.defineProperty(t,e,{value:n.create()})}return t[e]}function o(t,n){for(var e=0;e<n;++e)t[e]=255*Math.random()|0;return t}function s(){var t=function(t){return"function"==typeof Uint8Array?"undefined"!=typeof crypto?crypto.getRandomValues(new Uint8Array(t)):"undefined"!=typeof msCrypto?msCrypto.getRandomValues(new Uint8Array(t)):o(new Uint8Array(t),t):o(new Array(t),t)}(16);t[6]=79&t[6]|64,t[8]=191&t[8]|128;for(var n="",e=0;e<16;++e){var i=t[e];4!==e&&6!==e&&8!==e||(n+="-"),i<16&&(n+="0"),n+=i.toString(16).toLowerCase()}return n}}():WeakMap);function y(t,n,e){var i=g.get(t);if(b(i)){if(!e)return;i=new p,g.set(t,i)}var r=i.get(n);if(b(r)){if(!e)return;r=new p,i.set(n,r)}return r}function h(t,n,e){var i=y(n,e,!1);return!b(i)&&!!i.has(t)}function _(t,n,e){var i=y(n,e,!1);if(!b(i))return i.get(t)}function v(t,n,e,i){y(e,i,!0).set(t,n)}function m(t,n){var e=[],i=y(t,n,!1);if(b(i))return e;for(var r,o=function(t){var n=O(t,c);if(!I(n))throw new TypeError;var e=n.call(t);if(!w(e))throw new TypeError;return e}(i.keys()),a=0;;){var s=!(r=o.next()).done&&r;if(!s)return e.length=a,e;var u=s.value;try{e[a]=u}catch(t){try{M(o)}finally{throw t}}a++}}function T(t){if(null===t)return 1;switch(typeof t){case"undefined":return 0;case"boolean":return 2;case"string":return 3;case"symbol":return 4;case"number":return 5;case"object":return null===t?1:6;default:return 6}}function b(t){return void 0===t}function A(t){return null===t}function w(t){return"object"==typeof t?null!==t:"function"==typeof t}function E(t){var n=function(t,n){switch(T(t)){case 0:case 1:case 2:case 3:case 4:case 5:return t}var e=3===n?"string":5===n?"number":"default",i=O(t,u);if(void 0!==i){var r=i.call(t,e);if(w(r))throw new TypeError;return r}return function(t,n){if("string"===n){var e=t.toString;if(I(e)&&!w(r=e.call(t)))return r;if(I(i=t.valueOf)&&!w(r=i.call(t)))return r}else{var i;if(I(i=t.valueOf)&&!w(r=i.call(t)))return r;var r,o=t.toString;if(I(o)&&!w(r=o.call(t)))return r}throw new TypeError}(t,"default"===e?"number":e)}(t,3);return"symbol"==typeof n?n:""+n}function N(t){return Array.isArray?Array.isArray(t):t instanceof Object?t instanceof Array:"[object Array]"===Object.prototype.toString.call(t)}function I(t){return"function"==typeof t}function S(t){return"function"==typeof t}function O(t,n){var e=t[n];if(null!=e){if(!I(e))throw new TypeError;return e}}function M(t){var n=t.return;n&&n.call(t)}function C(t){var n=Object.getPrototypeOf(t);if("function"!=typeof t||t===d)return n;if(n!==d)return n;var e=t.prototype,i=e&&Object.getPrototypeOf(e);if(null==i||i===Object.prototype)return n;var r=i.constructor;return"function"!=typeof r||r===t?n:r}function x(t){return t.__=void 0,delete t.__,t}t.decorate=function(t,n,e,i){if(b(e)){if(!N(t))throw new TypeError;if(!S(n))throw new TypeError;return function(t,n){for(var e=t.length-1;e>=0;--e){var i=(0,t[e])(n);if(!b(i)&&!A(i)){if(!S(i))throw new TypeError;n=i}}return n}(t,n)}if(!N(t))throw new TypeError;if(!w(n))throw new TypeError;if(!w(i)&&!b(i)&&!A(i))throw new TypeError;return A(i)&&(i=void 0),function(t,n,e,i){for(var r=t.length-1;r>=0;--r){var o=(0,t[r])(n,e,i);if(!b(o)&&!A(o)){if(!w(o))throw new TypeError;i=o}}return i}(t,n,e=E(e),i)},t.metadata=function(t,n){return function(e,i){if(!w(e))throw new TypeError;if(!b(i)&&!function(t){switch(T(t)){case 3:case 4:return!0;default:return!1}}(i))throw new TypeError;v(t,n,e,i)}},t.defineMetadata=function(t,n,e,i){if(!w(e))throw new TypeError;return b(i)||(i=E(i)),v(t,n,e,i)},t.hasMetadata=function(t,n,e){if(!w(n))throw new TypeError;return b(e)||(e=E(e)),function t(n,e,i){if(h(n,e,i))return!0;var r=C(e);return!A(r)&&t(n,r,i)}(t,n,e)},t.hasOwnMetadata=function(t,n,e){if(!w(n))throw new TypeError;return b(e)||(e=E(e)),h(t,n,e)},t.getMetadata=function(t,n,e){if(!w(n))throw new TypeError;return b(e)||(e=E(e)),function t(n,e,i){if(h(n,e,i))return _(n,e,i);var r=C(e);return A(r)?void 0:t(n,r,i)}(t,n,e)},t.getOwnMetadata=function(t,n,e){if(!w(n))throw new TypeError;return b(e)||(e=E(e)),_(t,n,e)},t.getMetadataKeys=function(t,n){if(!w(t))throw new TypeError;return b(n)||(n=E(n)),function t(n,e){var i=m(n,e),r=C(n);if(null===r)return i;var o=t(r,e);if(o.length<=0)return i;if(i.length<=0)return o;for(var a=new l,s=[],u=0,c=i;u<c.length;u++){var d=c[u];a.has(d)||(a.add(d),s.push(d))}for(var f=0,p=o;f<p.length;f++){d=p[f];a.has(d)||(a.add(d),s.push(d))}return s}(t,n)},t.getOwnMetadataKeys=function(t,n){if(!w(t))throw new TypeError;return b(n)||(n=E(n)),m(t,n)},t.deleteMetadata=function(t,n,e){if(!w(n))throw new TypeError;b(e)||(e=E(e));var i=y(n,e,!1);if(b(i))return!1;if(!i.delete(t))return!1;if(i.size>0)return!0;var r=g.get(n);return r.delete(e),r.size>0||(g.delete(n),!0)},function(n){if(void 0!==n.Reflect){if(n.Reflect!==t)for(var e in t)a.call(t,e)&&(n.Reflect[e]=t[e])}else n.Reflect=t}("undefined"!=typeof global?global:"undefined"!=typeof self?self:Function("return this;")())}(Reflect||(Reflect={}));