{"version":3,"sources":["webpack:///./node_modules/aurelia-dependency-injection/dist/native-modules/aurelia-dependency-injection.js"],"names":["__decorate","decorators","target","key","desc","d","c","arguments","length","r","Object","getOwnPropertyDescriptor","Reflect","decorate","i","defineProperty","__metadata","metadataKey","metadataValue","metadata","autoinject","potentialTarget","deco","hasOwnProperty","inject","getOwn","paramTypes","_emptyParameters","slice","splice","rest","_i","_key","descriptor","value","resolver","create","get","isStrategy","actual","expected","state","StrategyResolver","strategy","this","prototype","container","singleton","invoke","Error","Number","Lazy","Lazy_1","_this","of","All","All_1","getAll","Optional","checkParent","_checkParent","Optional_1","hasResolver","Boolean","Parent","Parent_1","parent","Factory","Factory_1","fn","getResolver","NewInstance","dynamicDependencies","asKey","NewInstance_1","map","dependency","undefined","instance","registerInstance","as","bind","apply","concat","getDecoratorDependencies","lazy","keyValue","index","all","optional","checkParentOrTarget","inject$$1","factory","newInstance","asKeyOrTarget","validateKey","freeze","registration","invoker","resolverDecorates","decorates","InvocationHandler","dependencies","invokeWithDynamicDependencies","classInvoker","Type","deps","instances","dep","construct","staticDependencies","lookup","args","Array","Container","configuration","_configuration","_onHandlerCreated","onHandlerCreated","_handlers","handlers","Map","_resolvers","root","makeGlobal","setHandlerCreatedCallback","registerResolver","registerSingleton","registerTransient","registerHandler","handler","registerAlias","originalKey","aliasKey","resolver$$1","allResolvers","result","set","push","autoRegister","autoRegisterAll","fns","unregister","delete","has","_get","results","createChild","child","_createInvocationHandler","e","name","f","ctor","getPrototypeOf","define","invokeAsFactory","FactoryInvoker","transient","TransientRegistration","keyOrRegisterInChild","registerInChild","SingletonRegistration","existingResolver","_registerInChild","targetContainer"],"mappings":"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","file":"npm.aurelia-dependency-injection.069e98cf014a4f03c7ea.js","sourcesContent":["import { metadata, protocol } from 'aurelia-metadata';\nimport { AggregateError } from 'aurelia-pal';\n\n/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation. All rights reserved.\r\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\r\nthis file except in compliance with the License. You may obtain a copy of the\r\nLicense at http://www.apache.org/licenses/LICENSE-2.0\r\n\r\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\r\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\r\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\r\nMERCHANTABLITY OR NON-INFRINGEMENT.\r\n\r\nSee the Apache Version 2.0 License for specific language governing permissions\r\nand limitations under the License.\r\n***************************************************************************** */\r\n\r\nfunction __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nfunction __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\n\nfunction autoinject(potentialTarget) {\r\n var deco = function (target) {\r\n if (!target.hasOwnProperty('inject')) {\r\n target.inject = (metadata.getOwn(metadata.paramTypes, target) ||\r\n _emptyParameters).slice();\r\n if (target.inject && target.inject.length > 0) {\r\n if (target.inject[target.inject.length - 1] === Object) {\r\n target.inject.splice(-1, 1);\r\n }\r\n }\r\n }\r\n };\r\n return potentialTarget ? deco(potentialTarget) : deco;\r\n}\r\nfunction inject() {\r\n var rest = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n rest[_i] = arguments[_i];\r\n }\r\n return function (target, _key, descriptor) {\r\n if (typeof descriptor === 'number') {\r\n autoinject(target);\r\n if (rest.length === 1) {\r\n target.inject[descriptor] = rest[0];\r\n }\r\n return;\r\n }\r\n if (descriptor) {\r\n var fn = descriptor.value;\r\n fn.inject = rest;\r\n }\r\n else {\r\n target.inject = rest;\r\n }\r\n };\r\n}\n\nvar resolver = protocol.create('aurelia:resolver', function (target) {\r\n if (!(typeof target.get === 'function')) {\r\n return 'Resolvers must implement: get(container: Container, key: any): any';\r\n }\r\n return true;\r\n});\r\nfunction isStrategy(actual, expected, state) {\r\n return actual === expected;\r\n}\r\nvar StrategyResolver = (function () {\r\n function StrategyResolver(strategy, state) {\r\n this.strategy = strategy;\r\n this.state = state;\r\n }\r\n StrategyResolver.prototype.get = function (container, key) {\r\n if (isStrategy(this.strategy, 0, this.state)) {\r\n return this.state;\r\n }\r\n if (isStrategy(this.strategy, 1, this.state)) {\r\n var singleton = container.invoke(this.state);\r\n this.state = singleton;\r\n this.strategy = 0;\r\n return singleton;\r\n }\r\n if (isStrategy(this.strategy, 2, this.state)) {\r\n return container.invoke(this.state);\r\n }\r\n if (isStrategy(this.strategy, 3, this.state)) {\r\n return this.state(container, key, this);\r\n }\r\n if (isStrategy(this.strategy, 4, this.state)) {\r\n return this.state[0].get(container, key);\r\n }\r\n if (isStrategy(this.strategy, 5, this.state)) {\r\n return container.get(this.state);\r\n }\r\n throw new Error('Invalid strategy: ' + this.strategy);\r\n };\r\n StrategyResolver = __decorate([\r\n resolver(),\r\n __metadata(\"design:paramtypes\", [Number, Object])\r\n ], StrategyResolver);\r\n return StrategyResolver;\r\n}());\r\nvar Lazy = (function () {\r\n function Lazy(key) {\r\n this._key = key;\r\n }\r\n Lazy_1 = Lazy;\r\n Lazy.prototype.get = function (container) {\r\n var _this = this;\r\n return function () { return container.get(_this._key); };\r\n };\r\n Lazy.of = function (key) {\r\n return new Lazy_1(key);\r\n };\r\n var Lazy_1;\r\n Lazy = Lazy_1 = __decorate([\r\n resolver(),\r\n __metadata(\"design:paramtypes\", [Object])\r\n ], Lazy);\r\n return Lazy;\r\n}());\r\nvar All = (function () {\r\n function All(key) {\r\n this._key = key;\r\n }\r\n All_1 = All;\r\n All.prototype.get = function (container) {\r\n return container.getAll(this._key);\r\n };\r\n All.of = function (key) {\r\n return new All_1(key);\r\n };\r\n var All_1;\r\n All = All_1 = __decorate([\r\n resolver(),\r\n __metadata(\"design:paramtypes\", [Object])\r\n ], All);\r\n return All;\r\n}());\r\nvar Optional = (function () {\r\n function Optional(key, checkParent) {\r\n if (checkParent === void 0) { checkParent = true; }\r\n this._key = key;\r\n this._checkParent = checkParent;\r\n }\r\n Optional_1 = Optional;\r\n Optional.prototype.get = function (container) {\r\n if (container.hasResolver(this._key, this._checkParent)) {\r\n return container.get(this._key);\r\n }\r\n return null;\r\n };\r\n Optional.of = function (key, checkParent) {\r\n if (checkParent === void 0) { checkParent = true; }\r\n return new Optional_1(key, checkParent);\r\n };\r\n var Optional_1;\r\n Optional = Optional_1 = __decorate([\r\n resolver(),\r\n __metadata(\"design:paramtypes\", [Object, Boolean])\r\n ], Optional);\r\n return Optional;\r\n}());\r\nvar Parent = (function () {\r\n function Parent(key) {\r\n this._key = key;\r\n }\r\n Parent_1 = Parent;\r\n Parent.prototype.get = function (container) {\r\n return container.parent ? container.parent.get(this._key) : null;\r\n };\r\n Parent.of = function (key) {\r\n return new Parent_1(key);\r\n };\r\n var Parent_1;\r\n Parent = Parent_1 = __decorate([\r\n resolver(),\r\n __metadata(\"design:paramtypes\", [Object])\r\n ], Parent);\r\n return Parent;\r\n}());\r\nvar Factory = (function () {\r\n function Factory(key) {\r\n this._key = key;\r\n }\r\n Factory_1 = Factory;\r\n Factory.prototype.get = function (container) {\r\n var fn = this._key;\r\n var resolver = container.getResolver(fn);\r\n if (resolver && resolver.strategy === 3) {\r\n fn = resolver.state;\r\n }\r\n return function () {\r\n var rest = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n rest[_i] = arguments[_i];\r\n }\r\n return container.invoke(fn, rest);\r\n };\r\n };\r\n Factory.of = function (key) {\r\n return new Factory_1(key);\r\n };\r\n var Factory_1;\r\n Factory = Factory_1 = __decorate([\r\n resolver(),\r\n __metadata(\"design:paramtypes\", [Object])\r\n ], Factory);\r\n return Factory;\r\n}());\r\nvar NewInstance = (function () {\r\n function NewInstance(key) {\r\n var dynamicDependencies = [];\r\n for (var _i = 1; _i < arguments.length; _i++) {\r\n dynamicDependencies[_i - 1] = arguments[_i];\r\n }\r\n this.key = key;\r\n this.asKey = key;\r\n this.dynamicDependencies = dynamicDependencies;\r\n }\r\n NewInstance_1 = NewInstance;\r\n NewInstance.prototype.get = function (container) {\r\n var dynamicDependencies = this.dynamicDependencies.length > 0\r\n ? this.dynamicDependencies.map(function (dependency) {\r\n return dependency['protocol:aurelia:resolver']\r\n ? dependency.get(container)\r\n : container.get(dependency);\r\n })\r\n : undefined;\r\n var fn = this.key;\r\n var resolver = container.getResolver(fn);\r\n if (resolver && resolver.strategy === 3) {\r\n fn = resolver.state;\r\n }\r\n var instance = container.invoke(fn, dynamicDependencies);\r\n container.registerInstance(this.asKey, instance);\r\n return instance;\r\n };\r\n NewInstance.prototype.as = function (key) {\r\n this.asKey = key;\r\n return this;\r\n };\r\n NewInstance.of = function (key) {\r\n var dynamicDependencies = [];\r\n for (var _i = 1; _i < arguments.length; _i++) {\r\n dynamicDependencies[_i - 1] = arguments[_i];\r\n }\r\n return new (NewInstance_1.bind.apply(NewInstance_1, [void 0, key].concat(dynamicDependencies)))();\r\n };\r\n var NewInstance_1;\r\n NewInstance = NewInstance_1 = __decorate([\r\n resolver(),\r\n __metadata(\"design:paramtypes\", [Object, Object])\r\n ], NewInstance);\r\n return NewInstance;\r\n}());\r\nfunction getDecoratorDependencies(target) {\r\n autoinject(target);\r\n return target.inject;\r\n}\r\nfunction lazy(keyValue) {\r\n return function (target, _key, index) {\r\n var inject$$1 = getDecoratorDependencies(target);\r\n inject$$1[index] = Lazy.of(keyValue);\r\n };\r\n}\r\nfunction all(keyValue) {\r\n return function (target, _key, index) {\r\n var inject$$1 = getDecoratorDependencies(target);\r\n inject$$1[index] = All.of(keyValue);\r\n };\r\n}\r\nfunction optional(checkParentOrTarget) {\r\n if (checkParentOrTarget === void 0) { checkParentOrTarget = true; }\r\n var deco = function (checkParent) {\r\n return function (target, _key, index) {\r\n var inject$$1 = getDecoratorDependencies(target);\r\n inject$$1[index] = Optional.of(inject$$1[index], checkParent);\r\n };\r\n };\r\n if (typeof checkParentOrTarget === 'boolean') {\r\n return deco(checkParentOrTarget);\r\n }\r\n return deco(true);\r\n}\r\nfunction parent(target, _key, index) {\r\n var inject$$1 = getDecoratorDependencies(target);\r\n inject$$1[index] = Parent.of(inject$$1[index]);\r\n}\r\nfunction factory(keyValue) {\r\n return function (target, _key, index) {\r\n var inject$$1 = getDecoratorDependencies(target);\r\n inject$$1[index] = Factory.of(keyValue);\r\n };\r\n}\r\nfunction newInstance(asKeyOrTarget) {\r\n var dynamicDependencies = [];\r\n for (var _i = 1; _i < arguments.length; _i++) {\r\n dynamicDependencies[_i - 1] = arguments[_i];\r\n }\r\n var deco = function (asKey) {\r\n return function (target, _key, index) {\r\n var inject$$1 = getDecoratorDependencies(target);\r\n inject$$1[index] = NewInstance.of.apply(NewInstance, [inject$$1[index]].concat(dynamicDependencies));\r\n if (!!asKey) {\r\n inject$$1[index].as(asKey);\r\n }\r\n };\r\n };\r\n if (arguments.length >= 1) {\r\n return deco(asKeyOrTarget);\r\n }\r\n return deco();\r\n}\n\nfunction validateKey(key) {\r\n if (key === null || key === undefined) {\r\n throw new Error('key/value cannot be null or undefined. Are you trying to inject/register something that doesn\\'t exist with DI?');\r\n }\r\n}\r\nvar _emptyParameters = Object.freeze([]);\r\nmetadata.registration = 'aurelia:registration';\r\nmetadata.invoker = 'aurelia:invoker';\r\nvar resolverDecorates = resolver.decorates;\r\nvar InvocationHandler = (function () {\r\n function InvocationHandler(fn, invoker, dependencies) {\r\n this.fn = fn;\r\n this.invoker = invoker;\r\n this.dependencies = dependencies;\r\n }\r\n InvocationHandler.prototype.invoke = function (container, dynamicDependencies) {\r\n return dynamicDependencies !== undefined\r\n ? this.invoker.invokeWithDynamicDependencies(container, this.fn, this.dependencies, dynamicDependencies)\r\n : this.invoker.invoke(container, this.fn, this.dependencies);\r\n };\r\n return InvocationHandler;\r\n}());\r\nfunction invokeWithDynamicDependencies(container, fn, staticDependencies, dynamicDependencies) {\r\n var i = staticDependencies.length;\r\n var args = new Array(i);\r\n var lookup;\r\n while (i--) {\r\n lookup = staticDependencies[i];\r\n if (lookup === null || lookup === undefined) {\r\n throw new Error('Constructor Parameter with index ' +\r\n i +\r\n ' cannot be null or undefined. Are you trying to inject/register something that doesn\\'t exist with DI?');\r\n }\r\n else {\r\n args[i] = container.get(lookup);\r\n }\r\n }\r\n if (dynamicDependencies !== undefined) {\r\n args = args.concat(dynamicDependencies);\r\n }\r\n return Reflect.construct(fn, args);\r\n}\r\nvar classInvoker = {\r\n invoke: function (container, Type, deps) {\r\n var instances = deps.map(function (dep) { return container.get(dep); });\r\n return Reflect.construct(Type, instances);\r\n },\r\n invokeWithDynamicDependencies: invokeWithDynamicDependencies\r\n};\r\nfunction getDependencies(f) {\r\n if (!f.hasOwnProperty('inject')) {\r\n return [];\r\n }\r\n if (typeof f.inject === 'function') {\r\n return f.inject();\r\n }\r\n return f.inject;\r\n}\r\nvar Container = (function () {\r\n function Container(configuration) {\r\n if (configuration === undefined) {\r\n configuration = {};\r\n }\r\n this._configuration = configuration;\r\n this._onHandlerCreated = configuration.onHandlerCreated;\r\n this._handlers =\r\n configuration.handlers || (configuration.handlers = new Map());\r\n this._resolvers = new Map();\r\n this.root = this;\r\n this.parent = null;\r\n }\r\n Container.prototype.makeGlobal = function () {\r\n Container.instance = this;\r\n return this;\r\n };\r\n Container.prototype.setHandlerCreatedCallback = function (onHandlerCreated) {\r\n this._onHandlerCreated = onHandlerCreated;\r\n this._configuration.onHandlerCreated = onHandlerCreated;\r\n };\r\n Container.prototype.registerInstance = function (key, instance) {\r\n return this.registerResolver(key, new StrategyResolver(0, instance === undefined ? key : instance));\r\n };\r\n Container.prototype.registerSingleton = function (key, fn) {\r\n return this.registerResolver(key, new StrategyResolver(1, fn === undefined ? key : fn));\r\n };\r\n Container.prototype.registerTransient = function (key, fn) {\r\n return this.registerResolver(key, new StrategyResolver(2, fn === undefined ? key : fn));\r\n };\r\n Container.prototype.registerHandler = function (key, handler) {\r\n return this.registerResolver(key, new StrategyResolver(3, handler));\r\n };\r\n Container.prototype.registerAlias = function (originalKey, aliasKey) {\r\n return this.registerResolver(aliasKey, new StrategyResolver(5, originalKey));\r\n };\r\n Container.prototype.registerResolver = function (key, resolver$$1) {\r\n validateKey(key);\r\n var allResolvers = this._resolvers;\r\n var result = allResolvers.get(key);\r\n if (result === undefined) {\r\n allResolvers.set(key, resolver$$1);\r\n }\r\n else if (result.strategy === 4) {\r\n result.state.push(resolver$$1);\r\n }\r\n else {\r\n allResolvers.set(key, new StrategyResolver(4, [result, resolver$$1]));\r\n }\r\n return resolver$$1;\r\n };\r\n Container.prototype.autoRegister = function (key, fn) {\r\n fn = fn === undefined ? key : fn;\r\n if (typeof fn === 'function') {\r\n var registration = metadata.get(metadata.registration, fn);\r\n if (registration === undefined) {\r\n return this.registerResolver(key, new StrategyResolver(1, fn));\r\n }\r\n return registration.registerResolver(this, key, fn);\r\n }\r\n return this.registerResolver(key, new StrategyResolver(0, fn));\r\n };\r\n Container.prototype.autoRegisterAll = function (fns) {\r\n var i = fns.length;\r\n while (i--) {\r\n this.autoRegister(fns[i]);\r\n }\r\n };\r\n Container.prototype.unregister = function (key) {\r\n this._resolvers.delete(key);\r\n };\r\n Container.prototype.hasResolver = function (key, checkParent) {\r\n if (checkParent === void 0) { checkParent = false; }\r\n validateKey(key);\r\n return (this._resolvers.has(key) ||\r\n (checkParent &&\r\n this.parent !== null &&\r\n this.parent.hasResolver(key, checkParent)));\r\n };\r\n Container.prototype.getResolver = function (key) {\r\n return this._resolvers.get(key);\r\n };\r\n Container.prototype.get = function (key) {\r\n validateKey(key);\r\n if (key === Container) {\r\n return this;\r\n }\r\n if (resolverDecorates(key)) {\r\n return key.get(this, key);\r\n }\r\n var resolver$$1 = this._resolvers.get(key);\r\n if (resolver$$1 === undefined) {\r\n if (this.parent === null) {\r\n return this.autoRegister(key).get(this, key);\r\n }\r\n var registration = metadata.get(metadata.registration, key);\r\n if (registration === undefined) {\r\n return this.parent._get(key);\r\n }\r\n return registration.registerResolver(this, key, key).get(this, key);\r\n }\r\n return resolver$$1.get(this, key);\r\n };\r\n Container.prototype._get = function (key) {\r\n var resolver$$1 = this._resolvers.get(key);\r\n if (resolver$$1 === undefined) {\r\n if (this.parent === null) {\r\n return this.autoRegister(key).get(this, key);\r\n }\r\n return this.parent._get(key);\r\n }\r\n return resolver$$1.get(this, key);\r\n };\r\n Container.prototype.getAll = function (key) {\r\n validateKey(key);\r\n var resolver$$1 = this._resolvers.get(key);\r\n if (resolver$$1 === undefined) {\r\n if (this.parent === null) {\r\n return _emptyParameters;\r\n }\r\n return this.parent.getAll(key);\r\n }\r\n if (resolver$$1.strategy === 4) {\r\n var state = resolver$$1.state;\r\n var i = state.length;\r\n var results = new Array(i);\r\n while (i--) {\r\n results[i] = state[i].get(this, key);\r\n }\r\n return results;\r\n }\r\n return [resolver$$1.get(this, key)];\r\n };\r\n Container.prototype.createChild = function () {\r\n var child = new Container(this._configuration);\r\n child.root = this.root;\r\n child.parent = this;\r\n return child;\r\n };\r\n Container.prototype.invoke = function (fn, dynamicDependencies) {\r\n try {\r\n var handler = this._handlers.get(fn);\r\n if (handler === undefined) {\r\n handler = this._createInvocationHandler(fn);\r\n this._handlers.set(fn, handler);\r\n }\r\n return handler.invoke(this, dynamicDependencies);\r\n }\r\n catch (e) {\r\n throw new AggregateError(\"Error invoking \" + fn.name + \". Check the inner error for details.\", e, true);\r\n }\r\n };\r\n Container.prototype._createInvocationHandler = function (fn) {\r\n var dependencies;\r\n if (fn.inject === undefined) {\r\n dependencies =\r\n metadata.getOwn(metadata.paramTypes, fn) || _emptyParameters;\r\n }\r\n else {\r\n dependencies = [];\r\n var ctor = fn;\r\n while (typeof ctor === 'function') {\r\n dependencies.push.apply(dependencies, getDependencies(ctor));\r\n ctor = Object.getPrototypeOf(ctor);\r\n }\r\n }\r\n var invoker = metadata.getOwn(metadata.invoker, fn) || classInvoker;\r\n var handler = new InvocationHandler(fn, invoker, dependencies);\r\n return this._onHandlerCreated !== undefined\r\n ? this._onHandlerCreated(handler)\r\n : handler;\r\n };\r\n return Container;\r\n}());\n\nfunction invoker(value) {\r\n return function (target) {\r\n metadata.define(metadata.invoker, value, target);\r\n };\r\n}\r\nfunction invokeAsFactory(potentialTarget) {\r\n var deco = function (target) {\r\n metadata.define(metadata.invoker, FactoryInvoker.instance, target);\r\n };\r\n return potentialTarget ? deco(potentialTarget) : deco;\r\n}\r\nvar FactoryInvoker = (function () {\r\n function FactoryInvoker() {\r\n }\r\n FactoryInvoker.prototype.invoke = function (container, fn, dependencies) {\r\n var i = dependencies.length;\r\n var args = new Array(i);\r\n while (i--) {\r\n args[i] = container.get(dependencies[i]);\r\n }\r\n return fn.apply(undefined, args);\r\n };\r\n FactoryInvoker.prototype.invokeWithDynamicDependencies = function (container, fn, staticDependencies, dynamicDependencies) {\r\n var i = staticDependencies.length;\r\n var args = new Array(i);\r\n while (i--) {\r\n args[i] = container.get(staticDependencies[i]);\r\n }\r\n if (dynamicDependencies !== undefined) {\r\n args = args.concat(dynamicDependencies);\r\n }\r\n return fn.apply(undefined, args);\r\n };\r\n return FactoryInvoker;\r\n}());\r\nFactoryInvoker.instance = new FactoryInvoker();\n\nfunction registration(value) {\r\n return function (target) {\r\n metadata.define(metadata.registration, value, target);\r\n };\r\n}\r\nfunction transient(key) {\r\n return registration(new TransientRegistration(key));\r\n}\r\nfunction singleton(keyOrRegisterInChild, registerInChild) {\r\n if (registerInChild === void 0) { registerInChild = false; }\r\n return registration(new SingletonRegistration(keyOrRegisterInChild, registerInChild));\r\n}\r\nvar TransientRegistration = (function () {\r\n function TransientRegistration(key) {\r\n this._key = key;\r\n }\r\n TransientRegistration.prototype.registerResolver = function (container, key, fn) {\r\n var existingResolver = container.getResolver(this._key || key);\r\n return existingResolver === undefined\r\n ? container.registerTransient((this._key || key), fn)\r\n : existingResolver;\r\n };\r\n return TransientRegistration;\r\n}());\r\nvar SingletonRegistration = (function () {\r\n function SingletonRegistration(keyOrRegisterInChild, registerInChild) {\r\n if (registerInChild === void 0) { registerInChild = false; }\r\n if (typeof keyOrRegisterInChild === 'boolean') {\r\n this._registerInChild = keyOrRegisterInChild;\r\n }\r\n else {\r\n this._key = keyOrRegisterInChild;\r\n this._registerInChild = registerInChild;\r\n }\r\n }\r\n SingletonRegistration.prototype.registerResolver = function (container, key, fn) {\r\n var targetContainer = this._registerInChild ? container : container.root;\r\n var existingResolver = targetContainer.getResolver(this._key || key);\r\n return existingResolver === undefined\r\n ? targetContainer.registerSingleton(this._key || key, fn)\r\n : existingResolver;\r\n };\r\n return SingletonRegistration;\r\n}());\n\nexport { _emptyParameters, InvocationHandler, Container, autoinject, inject, invoker, invokeAsFactory, FactoryInvoker, registration, transient, singleton, TransientRegistration, SingletonRegistration, resolver, StrategyResolver, Lazy, All, Optional, Parent, Factory, NewInstance, getDecoratorDependencies, lazy, all, optional, parent, factory, newInstance };\n"],"sourceRoot":""}