@tsed/di 8.8.2 → 8.8.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,2 +1,2 @@
1
- !function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t(require("@tsed/core"),require("@tsed/hooks"),require("@tsed/schema")):"function"==typeof define&&define.amd?define(["@tsed/core","@tsed/hooks","@tsed/schema"],t):"object"==typeof exports?exports["@tsed/di"]=t(require("@tsed/core"),require("@tsed/hooks"),require("@tsed/schema")):e["@tsed/di"]=t(e["@tsed/core"],e["@tsed/hooks"],e["@tsed/schema"])}(self,((e,t,r)=>(()=>{"use strict";var s={414:t=>{t.exports=e},171:e=>{e.exports=t},538:e=>{e.exports=r}},o={};function n(e){var t=o[e];if(void 0!==t)return t.exports;var r=o[e]={exports:{}};return s[e](r,r.exports,n),r.exports}n.d=(e,t)=>{for(var r in t)n.o(t,r)&&!n.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},n.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),n.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var i={};n.r(i),n.d(i,{AutoInjectable:()=>$,CONFIGURATION:()=>T,Configuration:()=>te,Constant:()=>oe,Container:()=>E,Controller:()=>ae,ControllerProvider:()=>_,DIConfiguration:()=>w,DI_INJECTABLE_PROPS:()=>c,DI_INTERCEPTOR_OPTIONS:()=>h,DI_INVOKE_OPTIONS:()=>a,DI_USE_OPTIONS:()=>u,DI_USE_PARAM_OPTIONS:()=>l,GlobalProviderRegistry:()=>v,GlobalProviders:()=>k,Inject:()=>ee,Injectable:()=>ce,InjectablePropertyType:()=>ne,InjectionError:()=>C,InjectorService:()=>N,Intercept:()=>he,Interceptor:()=>de,InvalidPropertyTokenError:()=>q,LOGGER:()=>Se,LazyInject:()=>ye,LocalsContainer:()=>y,Module:()=>Oe,OptionalLazyInject:()=>me,Opts:()=>ke,OverrideProvider:()=>Ee,Provider:()=>O,ProviderScope:()=>d,ProviderType:()=>p,Scope:()=>ve,Service:()=>Pe,UseOpts:()=>be,Value:()=>Ie,bindConstant:()=>se,bindIntercept:()=>le,bindValue:()=>Ce,cleanAllLocalsContainer:()=>Y,colors:()=>b,configuration:()=>L,constant:()=>re,controller:()=>K,createContainer:()=>I,destroyInjector:()=>M,detachLocalsContainer:()=>W,discoverHooks:()=>m,getConfiguration:()=>we,getConstructorDependencies:()=>R,getInterceptorOptions:()=>ue,inject:()=>X,injectMany:()=>Z,injectable:()=>U,injector:()=>D,interceptor:()=>G,invokeOptions:()=>J,lazyInject:()=>pe,localsContainer:()=>Q,mergeMount:()=>Te,optionalLazyInject:()=>fe,providerBuilder:()=>F,refValue:()=>Re,registerProvider:()=>x,setConstructorDependencies:()=>S});const a=Symbol("DI_INVOKE_OPTIONS"),c=Symbol("DI_INJECTABLE_PROPS"),u="DI_USE_OPTIONS",l="DI_USE_PARAM_OPTIONS",h="DI_INTERCEPTOR_OPTIONS";var d,p,f=n(414),g=n(171);class y extends Map{constructor(){super(...arguments),this.hooks=new g.Hooks}async destroy(){await this.hooks.asyncEmit("$onDestroy")}}function m(e){return(0,f.methodsOf)(e).reduce(((e,{propertyKey:t})=>{if(String(t).startsWith("$")){const r=(e,...r)=>e?.[t](...r);return{...e,[t]:r}}return e}),{})}!function(e){e.SINGLETON="singleton",e.REQUEST="request",e.INSTANCE="instance"}(d||(d={})),function(e){e.VALUE="value",e.PROVIDER="provider",e.MODULE="module",e.CONTROLLER="controller",e.INTERCEPTOR="interceptor",e.MIDDLEWARE="middleware"}(p||(p={}));class O{#e;#t;#r;#s;constructor(e,t={}){this.type=p.PROVIDER,this.hooks={},this.token=e,this.useClass=e,Object.assign(this,t),t instanceof O&&(this.#e=t.#e,this.#r=t.#r,this.#s=t.#s)}get token(){return this.#t}set token(e){e&&(this.#t=(0,f.getClassOrSymbol)(e),this.#s=this.#r=f.Store.from(e))}get provide(){return this.token}set provide(e){this.token=e}get useClass(){return this.#e}set useClass(e){(0,f.isClass)(e)&&(this.#e=(0,f.classOf)(e),this.#r=f.Store.from(e),this.hooks=m(this.#e))}get className(){return this.name}get name(){return(0,f.nameOf)(this.token)}get store(){return this.#r}get path(){return this.store.get("path","/")}set path(e){this.store.set("path",e)}get scope(){return this.isAsync()?d.SINGLETON:this.get("scope",d.SINGLETON)}set scope(e){this.store.set("scope",e)}get configuration(){return this.get("configuration")}set configuration(e){this.store.set("configuration",e)}get children(){return this.store.get("childrenControllers",[])}set children(e){this.store.set("childrenControllers",e)}getArgOpts(e){return this.store.get(`${l}:${e}`)}get(e,t){return this.store.get(e)||this.#s.get(e)||t}isAsync(){return!!this.useAsyncFactory}clone(){return new((0,f.classOf)(this))(this.token,this)}hasChildren(){return!!this.children.length}hasParent(){return!!this.store.get("parentController")}toString(){return["Token",this.name,this.useClass&&(0,f.nameOf)(this.useClass),this.useFactory&&"Factory",this.useValue&&"Value",this.useAsyncFactory&&"AsyncFactory"].filter(Boolean).join(":")}}class v extends Map{#o=new Map;get(e){return super.get((0,f.getClassOrSymbol)(e))}has(e){return super.has((0,f.getClassOrSymbol)(e))}set(e,t){return super.set((0,f.getClassOrSymbol)(e),t),this}merge(e,t){if(!1===t.global)return k.createProvider(e,t);const r=this.createIfNotExists(e,t);return Object.keys(t).forEach((e=>{r[e]=t[e]})),this.set(e,r),r}delete(e){return super.delete((0,f.getClassOrSymbol)(e))}createRegistry(e,t,r={}){const s=this.getRegistrySettings(e);return r=Object.assign(s,{...r,model:t}),this.#o.set(e,r),this}getRegistrySettings(e){let t=p.PROVIDER;if("string"==typeof e)t=e;else{const r=this.get(e);r&&(t=r.type)}return this.#o.get(t)||{model:O}}createProvider(e,t){const r=t.type||p.PROVIDER,{model:s=O}=this.#o.get(r)||{};return new s(e,t)}createIfNotExists(e,t){if(!this.has(e)){const r=this.createProvider(e,t);this.set(e,r)}return this.get(e)}}const k=new v;class E extends Map{add(e,t={}){const r=k.get(e)?.clone()||new O(e);return Object.assign(r,t),super.set(e,r)}addProvider(e,t={}){return this.add(e,t)}hasProvider(e){return super.has(e)}setProvider(e,t){return super.set(e,t)}getProvider(e){return super.get(e)}getProviders(e){const t=[].concat(e).map(String);return[...this].reduce(((r,[s,o])=>t.includes(String(o.type))||!e?[...r,o]:r),[])}addProviders(e){e.forEach((e=>{this.hasProvider(e.token)||this.setProvider(e.token,e.clone())}))}}const P=e=>e=>(process.env.NO_COLOR,e),b={red:P(),yellow:P(),green:P()};class C extends Error{constructor(e,t){super((0,f.isString)(t)?t:""),this.name="INJECTION_ERROR",this.tokens=[],this.tokens=[e],t&&((0,f.isString)(t)?this.origin={message:t,stack:this.stack}:t.tokens?(this.tokens=this.tokens.concat(t.tokens),this.origin=t.origin):(this.origin=t,this.stack=t.stack));const r=this.origin?"\nOrigin: "+this.origin.message:"",s=this.tokens.map((e=>(0,f.nameOf)(e))).join(" > ");this.message=`Injection failed on ${s}${r}`}static throwInjectorError(e,t,r){throw t&&(0,f.isClass)(e)&&(r.message=function(e,t){let r="";const s=(0,f.getConstructorArgNames)(e).map(((e,s)=>(t.index===s&&(r=e,e=b.red(e)),`${e}: ${(0,f.nameOf)(t.deps[s])}`))).join(", "),o=(0,f.nameOf)(e)+"->constructor("+s+")",n=o.indexOf(r)-5;return"Unable to inject dependency. "+t.message+"\n\n"+o+"\n"+(n>-1?(e=>" ".repeat(e)+b.red("^"+"‾".repeat(r.length-1)))(n):"")}(e,{...t,message:r.message})),new C(e,r)}}function I(e){const t=new E(k.entries());return e&&t.delete(e),t}function R(e,t){return f.Metadata.getOwn("override:ctor:design:paramtypes",e,t)||[...f.Metadata.getParamTypes(e,t)]||[]}function S(e,t){f.Metadata.set("override:ctor:design:paramtypes",t,e)}const T=Symbol.for("CONFIGURATION");class w{constructor(e={}){this.default=new Map,this.map=new Map,Object.entries({imports:[],routes:[],logger:{},...e}).forEach((([e,t])=>{this.default.set(e,t)}))}get version(){return this.get("version")}set version(e){this.map.set("version",e)}get rootDir(){return this.get("rootDir")}set rootDir(e){this.map.set("rootDir",e)}get env(){return this.map.get("env")}set env(e){this.map.set("env",e)}get imports(){return this.get("imports")}set imports(e){this.map.set("imports",e)}get routes(){return this.get("routes")}set routes(e){this.map.set("routes",e)}get logger(){return this.get("logger")}set logger(e){const t={...this.logger,...e};this.map.set("logger",t)}get debug(){return"debug"===this.logger.level}set debug(e){this.logger={...this.logger,level:e?"debug":"info"}}forEach(e,t){return new Set([...Array.from(this.default.keys()),...Array.from(this.map.keys())]).forEach((t=>{e(this.getRaw(t),t,this.map)}),t)}set(e,t){return"string"==typeof e?Reflect.has(this,e)?this[e]=t:this.setRaw(e,t):Object.entries(e).forEach((([e,t])=>{this.set(e,t)})),this}setRaw(e,t){return(0,f.setValue)(this.map,e,t),this}get(e,t){return this.getRaw(e,t)}getRaw(e,t){const r=(0,f.getValue)(this.map,e);return void 0!==r?r:(0,f.getValue)(this.default,e,t)}}const A=["mount","imports"];class N extends E{#n;#i;constructor(){super(),this.logger=console,this.resolvedConfiguration=!1,this.#n=new y,this.#i=!1,this.#n.set(N,this),this.#n.set(w,new w)}get settings(){return this.#n.get(w)}set settings(e){this.#n.set(w,e)}isLoaded(){return this.#i}toArray(){return[...this.#n.values()]}get(e,t){return this.has(e)?this.#n.get(e):this.resolve(e,t)}getMany(e,t){return this.getProviders(e).map((e=>this.resolve(e.token,t)))}has(e){return void 0!==this.#n.get(e)}alias(e,t){return this.#n.set(t,this.#n.get(e)),this}resolve(e,t={}){let r=t.locals?t.locals.get(e):void 0;if(void 0!==r)return r;if(e===l)return t.useOpts;if(r=t.rebuild?void 0:this.#n.get(e),null!=r)return r;const s=this.ensureProvider(e);if(!s||t.rebuild)return r=this.invokeToken(e,t),s?this.setToCache(s,r):r;switch(r=this.invokeToken(e,t),s.scope){case d.SINGLETON:return t.rebuild||this.registerHooks(s,t),this.setToCache(s,r);case d.REQUEST:return t.locals&&(t.locals.set(s.token,r),this.registerHooks(s,t)),r}return r}invoke(e,t={}){return this.resolve(e,t)}async loadAsync(){for(const[,e]of this)!this.has(e.token)&&e.isAsync()&&await this.resolve(e.token)}loadSync(){for(const[,e]of this)this.has(e.token)||e.scope!==d.SINGLETON||this.resolve(e.token)}async load(e=I()){this.#i=!0,await(0,g.$asyncEmit)("$beforeInit"),this.bootstrap(e),await this.loadAsync(),this.loadSync(),await(0,g.$asyncEmit)("$onInit")}resolveConfiguration(){if(this.resolvedConfiguration)return;const e=new Map;super.forEach((t=>{t.configuration&&"server:module"!==t.type&&Object.entries(t.configuration).forEach((([t,r])=>{A.includes(t)||(r=e.has(t)?(0,f.deepMerge)(e.get(t),r):(0,f.deepClone)(r),e.set(t,r))}))})),e.forEach(((e,t)=>{this.settings.set(t,(0,f.deepMerge)(e,this.settings.get(t)))})),this.resolvedConfiguration=!0}emit(e,...t){return(0,g.$asyncEmit)(e,t)}alter(e,t,...r){return(0,g.$alter)(e,t,r)}alterAsync(e,t,...r){return(0,g.$asyncAlter)(e,t,r)}async destroy(){await(0,g.$asyncEmit)("$onDestroy"),this.#n.forEach(((e,t)=>{(0,g.$off)(t)}))}bootstrap(e=I()){return this.addProviders(e),this.resolveConfiguration(),this.resolveImportsProviders(),this}ensureProvider(e,t=!1){return this.hasProvider(e)||!k.has(e)&&!t||this.addProvider(e),this.getProvider(e)}invokeToken(e,t={}){const r=this.mapInvokeOptions(e,t);if(!r)return;const{token:s,deps:o,construct:n,imports:i,provider:c}=r;let u;(0,g.$emit)("$beforeInvoke",s,[r]),(0,g.$emit)(`$beforeInvoke:${String(c.type)}`,[r]);let l=!1;try{const e=e=>(r,s)=>(l={token:r,index:s,deps:o},(0,f.isArray)(r)?this.getMany(r[0],t):(0,f.isInheritedFrom)(r,O,1)?c:this.resolve(r,{parent:e,locals:t.locals,useOpts:c?.getArgOpts(s)||t.useOpts}));i.forEach(e());const r=o.map(e(s));l=!1,u=n(r)}catch(e){C.throwInjectorError(s,l,e)}if(void 0===u)throw new C(s,`Unable to create new instance from undefined value. Check your provider declaration for ${(0,f.nameOf)(s)}`);return u&&(0,f.isClass)((0,f.classOf)(u))&&Reflect.defineProperty(u,a,{get:()=>({rebuild:t.rebuild,locals:t.locals})}),(0,g.$emit)("$afterInvoke",s,[u,r]),u}resolveImportsProviders(){this.settings.imports=this.settings.imports?.filter((e=>(0,f.isObject)(e)&&"token"in e&&e.token!==N)).map((e=>{if((0,f.isObject)(e)&&"token"in e){const{token:t,...r}=e,s=this.ensureProvider(t,!0);if(s){if(s.useValue=void 0,s.useAsyncFactory=void 0,s.useFactory=void 0,"useClass"in r)return void(s.useClass=r.useClass);if("useFactory"in r)return void(s.useFactory=r.useFactory);if("useAsyncFactory"in r)return void(s.useAsyncFactory=r.useAsyncFactory);if("use"in r)return void(s.useValue=r.use)}}return e})).filter(Boolean)}mapInvokeOptions(e,t){const r=t.locals||new y;t.locals=r;let s,o,n=t.imports,i=t.deps;if(!e||e===Object)throw new Error("Given token is undefined. Could mean a circular dependency problem. Try to use @Inject(() => Token) to solve it.");if(o=this.hasProvider(e)?this.getProvider(e):new O(e),i=i||o.deps,n=n||o.imports,void 0!==o.useValue)s=()=>(0,f.isFunction)(o.useValue)?o.useValue():o.useValue;else if(o.useFactory)s=e=>o.useFactory(...e);else if(o.useAsyncFactory)s=async e=>(e=await Promise.all(e),o.useAsyncFactory(...e));else{if(!o.useClass)return!1;i=i||R(o.useClass),s=e=>new o.useClass(...e)}return{token:e,deps:i||[],imports:n||[],construct:s,provider:o,locals:r}}registerHooks(e,t){if(e.hooks){if(e.scope===d.REQUEST){if(t.locals&&e.hooks?.$onDestroy){const{locals:r}=t;t.locals.hooks.on("$onDestroy",((...t)=>e.hooks?.$onDestroy?.(r.get(e.token),...t)))}return}Object.entries(e.hooks).forEach((([t,r])=>{(0,g.$on)(t,e.token,((...t)=>r(this.#n.get(e.token),...t)))}))}}setToCache(e,t){const r=t=>{this.#n.set(e.token,t),e?.alias&&this.alias(e.token,e.alias)};return!("isAsync"in e)||e.isAsync()||(0,f.isPromise)(t)?(r(t),t=t.then((e=>(r(e),e)))):(r(t),t)}}let j=new N;function D(){return j}async function M(){await j.destroy(),j=new N}function $(){return e=>class extends e{constructor(...t){super(...function(e,t){const r=D(),s=new y,o=R(e),n=[],i=Math.max(o.length,t.length);for(let a=0;a<i;a++)if(void 0!==t[a])n.push(t[a]);else{const t=o[a],i=(0,f.isArray)(t)?r.getMany(t[0],{locals:s,parent:e}):r.invoke(t,{locals:s,parent:e});n.push(i)}return n}(e,t))}}}function L(e,t){if(e){const r=f.Store.from(e);return t&&r.set("configuration",t),r.get("configuration",t)}return D().settings}class _ extends O{constructor(e,t={}){super(e,t),this.type=p.CONTROLLER}get middlewares(){return Object.assign({use:[],useAfter:[],useBefore:[]},this.store.get("middlewares",{}))}set middlewares(e){const t=this.middlewares;Object.keys(e).forEach((r=>{((e,t,r)=>{t[e]=t[e].concat(r[e])})(r,t,e)})),this.store.set("middlewares",t)}}function x({token:e,provide:t,...r}){return U(e||t,{...r,token:e||t}).inspect()}function F(e,t={}){return(r,s={})=>{const o={global:!D().isLoaded(),...s,...t,token:r},n=k.merge(r,o);return o.global||D().setProvider(r,n),e.reduce(((e,t)=>({...e,[t]:function(e){return n[t]=e,this}})),{factory(e){return n.useFactory=e,this},asyncFactory(e){return n.useAsyncFactory=e,this},value(e){return n.useValue=e,n.type=p.VALUE,this},class(e){return n.useClass=e,this},store:()=>n.store,inspect:()=>n,token:()=>n.token})}}k.createRegistry(p.CONTROLLER,_);const V=["type","scope","path","alias","hooks","deps","imports","configuration","priority"],U=F(V),G=F(V,{type:p.INTERCEPTOR}),K=F([...V,"middlewares"],{type:p.CONTROLLER});class q extends Error{constructor(e,t){super(`Object isn't a valid token. Please check the token set on ${(0,f.nameOf)((0,f.classOf)(e))}.${t}.\n- Check that it is not a circular reference.\n- Check that the token (class or symbol) exists`),this.name="INVALID_TOKEN_ERROR"}}let H,z={};const B=[];function Q({providers:e,rebuild:t}={}){return H&&!e||(H=new y,e&&(e.forEach((e=>{H.set(e.token,e.use)})),H.set(N,D())),t&&(z.rebuild=t)),H}function J(){return{...z}}function W(){H&&B.push(H),H=void 0,z={}}function Y(){W(),B.map((e=>e.clear()))}function X(e,t){return D().resolve(e,{...t,...J(),locals:t?.locals||Q()})}function Z(e,t){return D().getMany(e,{...t,locals:t?.locals||Q()})}function ee(e,t={}){return t="function"==typeof t?{transform:t}:t,(r,s,o)=>{switch((0,f.decoratorTypeOf)([r,s,o])){case f.DecoratorTypes.PARAM_CTOR:e&&function(e,{target:t,propertyKey:r,parameterIndex:s}){const o=R(t,r),n=o[s];o[s]=n===Array?[e]:e,f.Metadata.setParamTypes(t,r,o),S(t,o)}(e,{target:r,propertyKey:s,parameterIndex:o});break;case f.DecoratorTypes.PROP:!function(e,t,{token:r,transform:s=e=>e,useOpts:o}){const n=Symbol();e[c]||Reflect.defineProperty(e,c,{value:new Set,enumerable:!1,configurable:!1}),e[c].add(t),(0,f.catchError)((()=>Reflect.deleteProperty(e,t))),Reflect.defineProperty(e,t,{get(){const i=function(e,t,r){const s=e||f.Metadata.getType(t,r);if(s===Object)throw new q(t,String(r));return s}(r,e,t),c=f.Metadata.getType(e,t),l={rebuild:!!this[a]?.rebuild,locals:this[a]?.locals,useOpts:o||f.Store.from(e,t).get(u)};return void 0===this[n]&&(this[n]=c===Array?Z(r,l):X(i,l)),[].concat(this[n]).forEach(((e,t)=>{(0,f.isPromise)(this[n])&&e.then((e=>{this[n][t]=e,c!==Array&&(this[n]=e)}))})),s(this[n],{self:this,target:e,propertyKey:t})}})}(r,s,{...t,token:e})}}}function te(e={}){return(...t)=>{switch((0,f.decoratorTypeOf)(t)){case f.DecoratorTypes.CLASS:L(t[0],e);break;default:case f.DecoratorTypes.PARAM_CTOR:return ee(w)(t[0],t[1],t[2])}}}function re(e,t){return D().settings.get(e,t)}function se(e,t,r,s){const o=Symbol();(0,f.catchError)((()=>Reflect.deleteProperty(e,t))),Reflect.defineProperty(e,t,{get(){if(void 0!==this[o])return this[o];const e=re(r,s);return this[o]=Object.freeze((0,f.deepClone)(e)),this[o]},set(e){void 0===(re(r,s)||this[o])&&void 0!==e&&(this[o]=e)},enumerable:!0,configurable:!0})}function oe(e,t){return(r,s)=>se(r,s,e,t)}U(te).factory((()=>D().settings));var ne,ie=n(538);function ae(e){const{children:t=[],path:r,...s}=function(e){return"string"==typeof e||e instanceof RegExp||(0,f.isArrayOrArrayClass)(e)?{path:e}:e}(e);return(0,f.useDecorators)((e=>{K(e,s)}),r&&(0,ie.Path)(r),(0,ie.Children)(...t))}function ce(e={}){return t=>{const r={...e,...e.token?{useClass:t}:{token:t}};U(r.token,r)}}function ue(e,t){return f.Store.fromMethod(e,t).get(h)}function le(e,t,r,s){const o=(0,f.classOf)(e),n=Reflect.getOwnPropertyDescriptor(o.prototype,t),i=n.value,c=Symbol();return f.Store.fromMethod(o,t).set(h,s),n.value=function(...e){const n=t=>{if(!t)return i.apply(this,e);throw t},u={target:o,propertyKey:t,args:e,options:s,next:n},l={rebuild:!!this[a]?.rebuild,locals:this[a]?.locals};return this[c]=this[c]||X(r,l),this[c].intercept({...u,options:s},n)},Reflect.deleteProperty(o.prototype,t),Reflect.defineProperty(o.prototype,t,n),n}function he(e,t){return(...r)=>{const[s,o]=r;switch((0,f.decoratorTypeOf)(r)){case f.DecoratorTypes.CLASS:(0,f.decorateMethodsOf)(s,he(e,t));break;case f.DecoratorTypes.METHOD:return le(s,o,e,t)}}}function de(){return ce({type:p.INTERCEPTOR})}async function pe(e){const{default:t}=await e();if(!D().has(t)){const e=await X(t);"$onInit"in e&&(0,f.isFunction)(e.$onInit)&&await e.$onInit()}return D().get(t)}async function fe(e){try{return await pe(e)}catch(e){return}}function ge(e,t=!1){function r(e,r){return async()=>{try{const{[e]:t}=await r();return{default:t}}catch(e){if(!t)throw e;return}}}return(0,f.isFunction)(e[0])?r("default",e[0]):r(e[0],e[1])}function ye(...e){let t=ge(e);return(e,r)=>{(0,f.catchError)((()=>Reflect.deleteProperty(e,r))),Reflect.defineProperty(e,r,{get:async()=>pe(t)})}}function me(...e){const t=ge(e,!0);return(e,r)=>{(0,f.catchError)((()=>Reflect.deleteProperty(e,r))),Reflect.defineProperty(e,r,{get:async()=>fe(t)})}}function Oe(e={}){const{scopes:t,imports:r,deps:s,scope:o,...n}=e;return(0,f.useDecorators)(te(n),ce({type:p.MODULE,scope:d.SINGLETON,imports:r,deps:s,injectable:!1}))}function ve(e=d.REQUEST){return(0,f.StoreSet)("scope",e)}function ke(e,t,r){ve(d.INSTANCE)((0,f.classOf)(e)),ee(l)(e,t,r)}function Ee(e){return t=>{k.get(e).useClass=t}}function Pe(){return ce()}function be(e){return(t,r,s)=>{switch((0,f.decoratorTypeOf)([t,r,s])){case f.DecoratorTypes.PARAM_CTOR:f.Store.from(t).merge(`${l}:${s}`,e);break;case f.DecoratorTypes.PROP:f.Store.from(t,r).set(u,e);break;default:throw new f.UnsupportedDecoratorType(be,[t,r,s])}}}function Ce(e,t,r,s){const o={get:()=>D().settings.get(r,s),set(e){D().settings.set(r,e)},enumerable:!0,configurable:!0};(0,f.catchError)((()=>Reflect.deleteProperty(e,t))),(0,f.catchError)((()=>Reflect.defineProperty(e,t,o)))}function Ie(e,t){return(r,s)=>Ce(r,s,e,t)}function Re(e,t){return Object.freeze({get value(){return D().settings.get(e,t)},set value(t){D().settings.set(e,t)}})}!function(e){e.METHOD="method",e.PROPERTY="property",e.CONSTANT="constant",e.VALUE="value",e.INTERCEPTOR="interceptor"}(ne||(ne={}));const Se=Symbol.for("LOGGER");function Te(e={},t={}){return Object.entries(t).reduce(((e,[t,r])=>({...e,[t]:(e[t]||[]).concat(r)})),e)}function we(e,t={}){const r=f.Store.from(e).get("configuration")||{};return{...r,...t,mount:Te(r.mount,t.mount)}}return U(Se).factory((()=>D().logger)),i})()));
1
+ !function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t(require("@tsed/core"),require("@tsed/hooks"),require("@tsed/schema")):"function"==typeof define&&define.amd?define(["@tsed/core","@tsed/hooks","@tsed/schema"],t):"object"==typeof exports?exports["@tsed/di"]=t(require("@tsed/core"),require("@tsed/hooks"),require("@tsed/schema")):e["@tsed/di"]=t(e["@tsed/core"],e["@tsed/hooks"],e["@tsed/schema"])}(self,((e,t,r)=>(()=>{"use strict";var s={414:t=>{t.exports=e},171:e=>{e.exports=t},538:e=>{e.exports=r}},o={};function n(e){var t=o[e];if(void 0!==t)return t.exports;var r=o[e]={exports:{}};return s[e](r,r.exports,n),r.exports}n.d=(e,t)=>{for(var r in t)n.o(t,r)&&!n.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},n.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),n.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var i={};n.r(i),n.d(i,{AutoInjectable:()=>$,CONFIGURATION:()=>T,Configuration:()=>te,Constant:()=>oe,Container:()=>E,Controller:()=>ae,ControllerProvider:()=>_,DIConfiguration:()=>w,DI_INJECTABLE_PROPS:()=>c,DI_INTERCEPTOR_OPTIONS:()=>h,DI_INVOKE_OPTIONS:()=>a,DI_USE_OPTIONS:()=>u,DI_USE_PARAM_OPTIONS:()=>l,GlobalProviderRegistry:()=>v,GlobalProviders:()=>k,Inject:()=>ee,Injectable:()=>ce,InjectablePropertyType:()=>ne,InjectionError:()=>C,InjectorService:()=>N,Intercept:()=>he,Interceptor:()=>de,InvalidPropertyTokenError:()=>q,LOGGER:()=>Se,LazyInject:()=>ye,LocalsContainer:()=>y,Module:()=>Oe,OptionalLazyInject:()=>me,Opts:()=>ke,OverrideProvider:()=>Ee,Provider:()=>O,ProviderScope:()=>d,ProviderType:()=>p,Scope:()=>ve,Service:()=>Pe,UseOpts:()=>be,Value:()=>Ie,bindConstant:()=>se,bindIntercept:()=>le,bindValue:()=>Ce,cleanAllLocalsContainer:()=>Y,colors:()=>b,configuration:()=>L,constant:()=>re,controller:()=>K,createContainer:()=>I,destroyInjector:()=>M,detachLocalsContainer:()=>W,discoverHooks:()=>m,getConfiguration:()=>we,getConstructorDependencies:()=>R,getInterceptorOptions:()=>ue,inject:()=>X,injectMany:()=>Z,injectable:()=>U,injector:()=>D,interceptor:()=>G,invokeOptions:()=>J,lazyInject:()=>pe,localsContainer:()=>Q,mergeMount:()=>Te,optionalLazyInject:()=>fe,providerBuilder:()=>F,refValue:()=>Re,registerProvider:()=>x,setConstructorDependencies:()=>S});const a=Symbol("DI_INVOKE_OPTIONS"),c=Symbol("DI_INJECTABLE_PROPS"),u="DI_USE_OPTIONS",l="DI_USE_PARAM_OPTIONS",h="DI_INTERCEPTOR_OPTIONS";var d,p,f=n(414),g=n(171);class y extends Map{constructor(){super(...arguments),this.hooks=new g.Hooks}async destroy(){await this.hooks.asyncEmit("$onDestroy")}}function m(e){return(0,f.methodsOf)(e).reduce(((e,{propertyKey:t})=>{if(String(t).startsWith("$")){const r=(e,...r)=>e?.[t](...r);return{...e,[t]:r}}return e}),{})}!function(e){e.SINGLETON="singleton",e.REQUEST="request",e.INSTANCE="instance"}(d||(d={})),function(e){e.VALUE="value",e.PROVIDER="provider",e.MODULE="module",e.CONTROLLER="controller",e.INTERCEPTOR="interceptor",e.MIDDLEWARE="middleware"}(p||(p={}));class O{#e;#t;#r;#s;constructor(e,t={}){this.type=p.PROVIDER,this.hooks={},this.token=e,this.useClass=e,Object.assign(this,t),t instanceof O&&(this.#e=t.#e,this.#r=t.#r,this.#s=t.#s)}get token(){return this.#t}set token(e){e&&(this.#t=(0,f.getClassOrSymbol)(e),this.#s=this.#r=f.Store.from(e))}get provide(){return this.token}set provide(e){this.token=e}get useClass(){return this.#e}set useClass(e){(0,f.isClass)(e)&&(this.#e=(0,f.classOf)(e),this.#r=f.Store.from(e),this.hooks=m(this.#e))}get className(){return this.name}get name(){return(0,f.nameOf)(this.token)}get store(){return this.#r}get path(){return this.store.get("path","/")}set path(e){this.store.set("path",e)}get scope(){return this.isAsync()?d.SINGLETON:this.get("scope",d.SINGLETON)}set scope(e){this.store.set("scope",e)}get configuration(){return this.get("configuration")}set configuration(e){this.store.set("configuration",e)}get children(){return this.store.get("childrenControllers",[])}set children(e){this.store.set("childrenControllers",e)}getArgOpts(e){return this.store.get(`${l}:${e}`)}get(e,t){return this.store.get(e)||this.#s.get(e)||t}isAsync(){return!!this.useAsyncFactory}clone(){return new((0,f.classOf)(this))(this.token,this)}hasChildren(){return!!this.children.length}hasParent(){return!!this.store.get("parentController")}toString(){return["Token",this.name,this.useClass&&(0,f.nameOf)(this.useClass),this.useFactory&&"Factory",this.useValue&&"Value",this.useAsyncFactory&&"AsyncFactory"].filter(Boolean).join(":")}reset(){return this.useValue=void 0,this.useFactory=void 0,this.useAsyncFactory=void 0,this}}class v extends Map{#o=new Map;get(e){return super.get((0,f.getClassOrSymbol)(e))}has(e){return super.has((0,f.getClassOrSymbol)(e))}set(e,t){return super.set((0,f.getClassOrSymbol)(e),t),this}merge(e,t){if(!1===t.global)return k.createProvider(e,t);const r=this.createIfNotExists(e,t);return Object.keys(t).forEach((e=>{r[e]=t[e]})),this.set(e,r),r}delete(e){return super.delete((0,f.getClassOrSymbol)(e))}createRegistry(e,t,r={}){const s=this.getRegistrySettings(e);return r=Object.assign(s,{...r,model:t}),this.#o.set(e,r),this}getRegistrySettings(e){let t=p.PROVIDER;if("string"==typeof e)t=e;else{const r=this.get(e);r&&(t=r.type)}return this.#o.get(t)||{model:O}}createProvider(e,t){const r=t.type||p.PROVIDER,{model:s=O}=this.#o.get(r)||{};return new s(e,t)}createIfNotExists(e,t){if(!this.has(e)){const r=this.createProvider(e,t);this.set(e,r)}return this.get(e)}}const k=new v;class E extends Map{add(e,t={}){const r=k.get(e)?.clone()||new O(e);return Object.assign(r,t),super.set(e,r)}addProvider(e,t={}){return this.add(e,t)}hasProvider(e){return super.has(e)}setProvider(e,t){return super.set(e,t)}getProvider(e){return super.get(e)}getProviders(e){const t=[].concat(e).map(String);return[...this].reduce(((r,[s,o])=>t.includes(String(o.type))||!e?[...r,o]:r),[])}addProviders(e){e.forEach((e=>{this.hasProvider(e.token)||this.setProvider(e.token,e.clone())}))}}const P=e=>e=>(process.env.NO_COLOR,e),b={red:P(),yellow:P(),green:P()};class C extends Error{constructor(e,t){super((0,f.isString)(t)?t:""),this.name="INJECTION_ERROR",this.tokens=[],this.tokens=[e],t&&((0,f.isString)(t)?this.origin={message:t,stack:this.stack}:t.tokens?(this.tokens=this.tokens.concat(t.tokens),this.origin=t.origin):(this.origin=t,this.stack=t.stack));const r=this.origin?"\nOrigin: "+this.origin.message:"",s=this.tokens.map((e=>(0,f.nameOf)(e))).join(" > ");this.message=`Injection failed on ${s}${r}`}static throwInjectorError(e,t,r){throw t&&(0,f.isClass)(e)&&(r.message=function(e,t){let r="";const s=(0,f.getConstructorArgNames)(e).map(((e,s)=>(t.index===s&&(r=e,e=b.red(e)),`${e}: ${(0,f.nameOf)(t.deps[s])}`))).join(", "),o=(0,f.nameOf)(e)+"->constructor("+s+")",n=o.indexOf(r)-5;return"Unable to inject dependency. "+t.message+"\n\n"+o+"\n"+(n>-1?(e=>" ".repeat(e)+b.red("^"+"‾".repeat(r.length-1)))(n):"")}(e,{...t,message:r.message})),new C(e,r)}}function I(e){const t=new E(k.entries());return e&&t.delete(e),t}function R(e,t){return f.Metadata.getOwn("override:ctor:design:paramtypes",e,t)||[...f.Metadata.getParamTypes(e,t)]||[]}function S(e,t){f.Metadata.set("override:ctor:design:paramtypes",t,e)}const T=Symbol.for("CONFIGURATION");class w{constructor(e={}){this.default=new Map,this.map=new Map,Object.entries({imports:[],routes:[],logger:{},...e}).forEach((([e,t])=>{this.default.set(e,t)}))}get version(){return this.get("version")}set version(e){this.map.set("version",e)}get rootDir(){return this.get("rootDir")}set rootDir(e){this.map.set("rootDir",e)}get env(){return this.map.get("env")}set env(e){this.map.set("env",e)}get imports(){return this.get("imports")}set imports(e){this.map.set("imports",e)}get routes(){return this.get("routes")}set routes(e){this.map.set("routes",e)}get logger(){return this.get("logger")}set logger(e){const t={...this.logger,...e};this.map.set("logger",t)}get debug(){return"debug"===this.logger.level}set debug(e){this.logger={...this.logger,level:e?"debug":"info"}}forEach(e,t){return new Set([...Array.from(this.default.keys()),...Array.from(this.map.keys())]).forEach((t=>{e(this.getRaw(t),t,this.map)}),t)}set(e,t){return"string"==typeof e?Reflect.has(this,e)?this[e]=t:this.setRaw(e,t):Object.entries(e).forEach((([e,t])=>{this.set(e,t)})),this}setRaw(e,t){return(0,f.setValue)(this.map,e,t),this}get(e,t){return this.getRaw(e,t)}getRaw(e,t){const r=(0,f.getValue)(this.map,e);return void 0!==r?r:(0,f.getValue)(this.default,e,t)}}const A=["mount","imports"];class N extends E{#n;#i;constructor(){super(),this.logger=console,this.resolvedConfiguration=!1,this.#n=new y,this.#i=!1,this.#n.set(N,this),this.#n.set(w,new w)}get settings(){return this.#n.get(w)}set settings(e){this.#n.set(w,e)}isLoaded(){return this.#i}toArray(){return[...this.#n.values()]}get(e,t){return this.has(e)?this.#n.get(e):this.resolve(e,t)}getMany(e,t){return this.getProviders(e).map((e=>this.resolve(e.token,t)))}has(e){return void 0!==this.#n.get(e)}alias(e,t){return this.#n.set(t,this.#n.get(e)),this}resolve(e,t={}){let r=t.locals?t.locals.get(e):void 0;if(void 0!==r)return r;if(e===l)return t.useOpts;if(r=t.rebuild?void 0:this.#n.get(e),null!=r)return r;const s=this.ensureProvider(e);if(!s||t.rebuild)return r=this.invokeToken(e,t),s?this.setToCache(s,r):r;switch(r=this.invokeToken(e,t),s.scope){case d.SINGLETON:return t.rebuild||this.registerHooks(s,t),this.setToCache(s,r);case d.REQUEST:return t.locals&&(t.locals.set(s.token,r),this.registerHooks(s,t)),r}return r}invoke(e,t={}){return this.resolve(e,t)}async loadAsync(){for(const[,e]of this)!this.has(e.token)&&e.isAsync()&&await this.resolve(e.token)}loadSync(){for(const[,e]of this)this.has(e.token)||e.scope!==d.SINGLETON||this.resolve(e.token)}async load(e=I()){this.#i=!0,await(0,g.$asyncEmit)("$beforeInit"),this.bootstrap(e),await this.loadAsync(),this.loadSync(),await(0,g.$asyncEmit)("$onInit")}resolveConfiguration(){if(this.resolvedConfiguration)return;const e=new Map;super.forEach((t=>{t.configuration&&"server:module"!==t.type&&Object.entries(t.configuration).forEach((([t,r])=>{A.includes(t)||(r=e.has(t)?(0,f.deepMerge)(e.get(t),r):(0,f.deepClone)(r),e.set(t,r))}))})),e.forEach(((e,t)=>{this.settings.set(t,(0,f.deepMerge)(e,this.settings.get(t)))})),this.resolvedConfiguration=!0}emit(e,...t){return(0,g.$asyncEmit)(e,t)}alter(e,t,...r){return(0,g.$alter)(e,t,r)}alterAsync(e,t,...r){return(0,g.$asyncAlter)(e,t,r)}async destroy(){await(0,g.$asyncEmit)("$onDestroy"),this.#n.forEach(((e,t)=>{(0,g.$off)(t)}))}bootstrap(e=I()){return this.addProviders(e),this.resolveConfiguration(),this.resolveImportsProviders(),this}ensureProvider(e,t=!1){return this.hasProvider(e)||!k.has(e)&&!t||this.addProvider(e),this.getProvider(e)}invokeToken(e,t={}){const r=this.mapInvokeOptions(e,t);if(!r)return;const{token:s,deps:o,construct:n,imports:i,provider:c}=r;let u;(0,g.$emit)("$beforeInvoke",s,[r]),(0,g.$emit)(`$beforeInvoke:${String(c.type)}`,[r]);let l=!1;try{const e=e=>(r,s)=>(l={token:r,index:s,deps:o},(0,f.isArray)(r)?this.getMany(r[0],t):(0,f.isInheritedFrom)(r,O,1)?c:this.resolve(r,{parent:e,locals:t.locals,useOpts:c?.getArgOpts(s)||t.useOpts}));i.forEach(e());const r=o.map(e(s));l=!1,u=n(r)}catch(e){C.throwInjectorError(s,l,e)}if(void 0===u)throw new C(s,`Unable to create new instance from undefined value. Check your provider declaration for ${(0,f.nameOf)(s)}`);return u&&(0,f.isClass)((0,f.classOf)(u))&&Reflect.defineProperty(u,a,{get:()=>({rebuild:t.rebuild,locals:t.locals})}),(0,g.$emit)("$afterInvoke",s,[u,r]),u}resolveImportsProviders(){this.settings.imports=this.settings.imports?.filter((e=>(0,f.isObject)(e)&&"token"in e&&e.token!==N)).map((e=>{if((0,f.isObject)(e)&&"token"in e){const{token:t,...r}=e,s=this.ensureProvider(t,!0);if(s){if(s.useValue=void 0,s.useAsyncFactory=void 0,s.useFactory=void 0,"useClass"in r)return void(s.useClass=r.useClass);if("useFactory"in r)return void(s.useFactory=r.useFactory);if("useAsyncFactory"in r)return void(s.useAsyncFactory=r.useAsyncFactory);if("use"in r)return void(s.useValue=r.use)}}return e})).filter(Boolean)}mapInvokeOptions(e,t){const r=t.locals||new y;t.locals=r;let s,o,n=t.imports,i=t.deps;if(!e||e===Object)throw new Error("Given token is undefined. Could mean a circular dependency problem. Try to use @Inject(() => Token) to solve it.");if(o=this.hasProvider(e)?this.getProvider(e):new O(e),i=i||o.deps,n=n||o.imports,void 0!==o.useValue)s=()=>(0,f.isFunction)(o.useValue)?o.useValue():o.useValue;else if(o.useFactory)s=e=>o.useFactory(...e);else if(o.useAsyncFactory)s=async e=>(e=await Promise.all(e),o.useAsyncFactory(...e));else{if(!o.useClass)return!1;i=i||R(o.useClass),s=e=>new o.useClass(...e)}return{token:e,deps:i||[],imports:n||[],construct:s,provider:o,locals:r}}registerHooks(e,t){if(e.hooks){if(e.scope===d.REQUEST){if(t.locals&&e.hooks?.$onDestroy){const{locals:r}=t;t.locals.hooks.on("$onDestroy",((...t)=>e.hooks?.$onDestroy?.(r.get(e.token),...t)))}return}Object.entries(e.hooks).forEach((([t,r])=>{(0,g.$on)(t,e.token,((...t)=>r(this.#n.get(e.token),...t)))}))}}setToCache(e,t){const r=t=>{this.#n.set(e.token,t),e?.alias&&this.alias(e.token,e.alias)};return!("isAsync"in e)||e.isAsync()||(0,f.isPromise)(t)?(r(t),t=t.then((e=>(r(e),e)))):(r(t),t)}}let j=new N;function D(){return j}async function M(){await j.destroy(),j=new N}function $(){return e=>class extends e{constructor(...t){super(...function(e,t){const r=D(),s=new y,o=R(e),n=[],i=Math.max(o.length,t.length);for(let a=0;a<i;a++)if(void 0!==t[a])n.push(t[a]);else{const t=o[a],i=(0,f.isArray)(t)?r.getMany(t[0],{locals:s,parent:e}):r.invoke(t,{locals:s,parent:e});n.push(i)}return n}(e,t))}}}function L(e,t){if(e){const r=f.Store.from(e);return t&&r.set("configuration",t),r.get("configuration",t)}return D().settings}class _ extends O{constructor(e,t={}){super(e,t),this.type=p.CONTROLLER}get middlewares(){return Object.assign({use:[],useAfter:[],useBefore:[]},this.store.get("middlewares",{}))}set middlewares(e){const t=this.middlewares;Object.keys(e).forEach((r=>{((e,t,r)=>{t[e]=t[e].concat(r[e])})(r,t,e)})),this.store.set("middlewares",t)}}function x({token:e,provide:t,...r}){return U(e||t,{...r,token:e||t}).inspect()}function F(e,t={}){return(r,s={})=>{const o={global:!D().isLoaded(),...s,...t,token:r},n=k.merge(r,o);return o.global||D().setProvider(r,n),e.reduce(((e,t)=>({...e,[t]:function(e){return n[t]=e,this}})),{factory(e){return n.reset(),n.useFactory=e,this},asyncFactory(e){return n.reset(),n.useAsyncFactory=e,this},value(e){return n.reset(),n.useValue=e,n.type=p.VALUE,this},class(e){return n.reset(),n.useClass=e,this},store:()=>n.store,inspect:()=>n,token:()=>n.token})}}k.createRegistry(p.CONTROLLER,_);const V=["type","scope","path","alias","hooks","deps","imports","configuration","priority"],U=F(V),G=F(V,{type:p.INTERCEPTOR}),K=F([...V,"middlewares"],{type:p.CONTROLLER});class q extends Error{constructor(e,t){super(`Object isn't a valid token. Please check the token set on ${(0,f.nameOf)((0,f.classOf)(e))}.${t}.\n- Check that it is not a circular reference.\n- Check that the token (class or symbol) exists`),this.name="INVALID_TOKEN_ERROR"}}let H,z={};const B=[];function Q({providers:e,rebuild:t}={}){return H&&!e||(H=new y,e&&(e.forEach((e=>{H.set(e.token,e.use)})),H.set(N,D())),t&&(z.rebuild=t)),H}function J(){return{...z}}function W(){H&&B.push(H),H=void 0,z={}}function Y(){W(),B.map((e=>e.clear()))}function X(e,t){return D().resolve(e,{...t,...J(),locals:t?.locals||Q()})}function Z(e,t){return D().getMany(e,{...t,locals:t?.locals||Q()})}function ee(e,t={}){return t="function"==typeof t?{transform:t}:t,(r,s,o)=>{switch((0,f.decoratorTypeOf)([r,s,o])){case f.DecoratorTypes.PARAM_CTOR:e&&function(e,{target:t,propertyKey:r,parameterIndex:s}){const o=R(t,r),n=o[s];o[s]=n===Array?[e]:e,f.Metadata.setParamTypes(t,r,o),S(t,o)}(e,{target:r,propertyKey:s,parameterIndex:o});break;case f.DecoratorTypes.PROP:!function(e,t,{token:r,transform:s=e=>e,useOpts:o}){const n=Symbol();e[c]||Reflect.defineProperty(e,c,{value:new Set,enumerable:!1,configurable:!1}),e[c].add(t),(0,f.catchError)((()=>Reflect.deleteProperty(e,t))),Reflect.defineProperty(e,t,{get(){const i=function(e,t,r){const s=e||f.Metadata.getType(t,r);if(s===Object)throw new q(t,String(r));return s}(r,e,t),c=f.Metadata.getType(e,t),l={rebuild:!!this[a]?.rebuild,locals:this[a]?.locals,useOpts:o||f.Store.from(e,t).get(u)};return void 0===this[n]&&(this[n]=c===Array?Z(r,l):X(i,l)),[].concat(this[n]).forEach(((e,t)=>{(0,f.isPromise)(this[n])&&e.then((e=>{this[n][t]=e,c!==Array&&(this[n]=e)}))})),s(this[n],{self:this,target:e,propertyKey:t})}})}(r,s,{...t,token:e})}}}function te(e={}){return(...t)=>{switch((0,f.decoratorTypeOf)(t)){case f.DecoratorTypes.CLASS:L(t[0],e);break;default:case f.DecoratorTypes.PARAM_CTOR:return ee(w)(t[0],t[1],t[2])}}}function re(e,t){return D().settings.get(e,t)}function se(e,t,r,s){const o=Symbol();(0,f.catchError)((()=>Reflect.deleteProperty(e,t))),Reflect.defineProperty(e,t,{get(){if(void 0!==this[o])return this[o];const e=re(r,s);return this[o]=Object.freeze((0,f.deepClone)(e)),this[o]},set(e){void 0===(re(r,s)||this[o])&&void 0!==e&&(this[o]=e)},enumerable:!0,configurable:!0})}function oe(e,t){return(r,s)=>se(r,s,e,t)}U(te).factory((()=>D().settings));var ne,ie=n(538);function ae(e){const{children:t=[],path:r,...s}=function(e){return"string"==typeof e||e instanceof RegExp||(0,f.isArrayOrArrayClass)(e)?{path:e}:e}(e);return(0,f.useDecorators)((e=>{K(e,s)}),r&&(0,ie.Path)(r),(0,ie.Children)(...t))}function ce(e={}){return t=>{const r={...e,...e.token?{useClass:t}:{token:t}};U(r.token,r)}}function ue(e,t){return f.Store.fromMethod(e,t).get(h)}function le(e,t,r,s){const o=(0,f.classOf)(e),n=Reflect.getOwnPropertyDescriptor(o.prototype,t),i=n.value,c=Symbol();return f.Store.fromMethod(o,t).set(h,s),n.value=function(...e){const n=t=>{if(!t)return i.apply(this,e);throw t},u={target:o,propertyKey:t,args:e,options:s,next:n},l={rebuild:!!this[a]?.rebuild,locals:this[a]?.locals};return this[c]=this[c]||X(r,l),this[c].intercept({...u,options:s},n)},Reflect.deleteProperty(o.prototype,t),Reflect.defineProperty(o.prototype,t,n),n}function he(e,t){return(...r)=>{const[s,o]=r;switch((0,f.decoratorTypeOf)(r)){case f.DecoratorTypes.CLASS:(0,f.decorateMethodsOf)(s,he(e,t));break;case f.DecoratorTypes.METHOD:return le(s,o,e,t)}}}function de(){return ce({type:p.INTERCEPTOR})}async function pe(e){const{default:t}=await e();if(!D().has(t)){const e=await X(t);"$onInit"in e&&(0,f.isFunction)(e.$onInit)&&await e.$onInit()}return D().get(t)}async function fe(e){try{return await pe(e)}catch(e){return}}function ge(e,t=!1){function r(e,r){return async()=>{try{const{[e]:t}=await r();return{default:t}}catch(e){if(!t)throw e;return}}}return(0,f.isFunction)(e[0])?r("default",e[0]):r(e[0],e[1])}function ye(...e){let t=ge(e);return(e,r)=>{(0,f.catchError)((()=>Reflect.deleteProperty(e,r))),Reflect.defineProperty(e,r,{get:async()=>pe(t)})}}function me(...e){const t=ge(e,!0);return(e,r)=>{(0,f.catchError)((()=>Reflect.deleteProperty(e,r))),Reflect.defineProperty(e,r,{get:async()=>fe(t)})}}function Oe(e={}){const{scopes:t,imports:r,deps:s,scope:o,...n}=e;return(0,f.useDecorators)(te(n),ce({type:p.MODULE,scope:d.SINGLETON,imports:r,deps:s,injectable:!1}))}function ve(e=d.REQUEST){return(0,f.StoreSet)("scope",e)}function ke(e,t,r){ve(d.INSTANCE)((0,f.classOf)(e)),ee(l)(e,t,r)}function Ee(e){return t=>{k.get(e).useClass=t}}function Pe(){return ce()}function be(e){return(t,r,s)=>{switch((0,f.decoratorTypeOf)([t,r,s])){case f.DecoratorTypes.PARAM_CTOR:f.Store.from(t).merge(`${l}:${s}`,e);break;case f.DecoratorTypes.PROP:f.Store.from(t,r).set(u,e);break;default:throw new f.UnsupportedDecoratorType(be,[t,r,s])}}}function Ce(e,t,r,s){const o={get:()=>D().settings.get(r,s),set(e){D().settings.set(r,e)},enumerable:!0,configurable:!0};(0,f.catchError)((()=>Reflect.deleteProperty(e,t))),(0,f.catchError)((()=>Reflect.defineProperty(e,t,o)))}function Ie(e,t){return(r,s)=>Ce(r,s,e,t)}function Re(e,t){return Object.freeze({get value(){return D().settings.get(e,t)},set value(t){D().settings.set(e,t)}})}!function(e){e.METHOD="method",e.PROPERTY="property",e.CONSTANT="constant",e.VALUE="value",e.INTERCEPTOR="interceptor"}(ne||(ne={}));const Se=Symbol.for("LOGGER");function Te(e={},t={}){return Object.entries(t).reduce(((e,[t,r])=>({...e,[t]:(e[t]||[]).concat(r)})),e)}function we(e,t={}){const r=f.Store.from(e).get("configuration")||{};return{...r,...t,mount:Te(r.mount,t.mount)}}return U(Se).factory((()=>D().logger)),i})()));
2
2
  //# sourceMappingURL=di.umd.min.js.map