@tsed/di 8.0.0-alpha.1 → 8.0.0-alpha.11
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.
- package/lib/browser/di.umd.min.js +1 -1
- package/lib/browser/di.umd.min.js.map +1 -1
- package/lib/esm/common/decorators/autoInjectable.js.map +1 -1
- package/lib/esm/common/decorators/configuration.js.map +1 -1
- package/lib/esm/common/decorators/constant.js.map +1 -1
- package/lib/esm/common/decorators/controller.js.map +1 -1
- package/lib/esm/common/decorators/inject.js +1 -1
- package/lib/esm/common/decorators/inject.js.map +1 -1
- package/lib/esm/common/decorators/intercept.js.map +1 -1
- package/lib/esm/common/decorators/lazyInject.js.map +1 -1
- package/lib/esm/common/decorators/module.js +1 -1
- package/lib/esm/common/decorators/module.js.map +1 -1
- package/lib/esm/common/decorators/opts.js.map +1 -1
- package/lib/esm/common/decorators/overrideProvider.js.map +1 -1
- package/lib/esm/common/decorators/scope.js.map +1 -1
- package/lib/esm/common/decorators/useOpts.js +1 -1
- package/lib/esm/common/decorators/useOpts.js.map +1 -1
- package/lib/esm/common/decorators/value.js.map +1 -1
- package/lib/esm/common/domain/Container.js.map +1 -1
- package/lib/esm/common/domain/LocalsContainer.js.map +1 -1
- package/lib/esm/common/domain/Provider.js.map +1 -1
- package/lib/esm/common/errors/InjectionError.js.map +1 -1
- package/lib/esm/common/registries/GlobalProviders.js +1 -5
- package/lib/esm/common/registries/GlobalProviders.js.map +1 -1
- package/lib/esm/common/registries/ProviderRegistry.js.map +1 -1
- package/lib/esm/common/services/DIConfiguration.js.map +1 -1
- package/lib/esm/common/services/InjectorService.js.map +1 -1
- package/lib/esm/common/utils/createContainer.js.map +1 -1
- package/lib/esm/common/utils/resolveControllers.js +1 -1
- package/lib/esm/common/utils/resolveControllers.js.map +1 -1
- package/lib/esm/node/decorators/injectContext.js +2 -2
- package/lib/esm/node/decorators/injectContext.js.map +1 -1
- package/lib/esm/node/domain/ContextLogger.js +2 -2
- package/lib/esm/node/domain/ContextLogger.js.map +1 -1
- package/lib/esm/node/domain/DIContext.js.map +1 -1
- package/lib/esm/node/services/DILogger.js.map +1 -1
- package/lib/esm/node/services/DITest.js +1 -1
- package/lib/esm/node/services/DITest.js.map +1 -1
- package/lib/esm/node/utils/asyncHookContext.js +3 -2
- package/lib/esm/node/utils/asyncHookContext.js.map +1 -1
- package/lib/esm/node/utils/setLoggerFormat.js.map +1 -1
- package/lib/esm/node/utils/setLoggerLevel.js.map +1 -1
- package/lib/types/common/decorators/module.d.ts +1 -1
- package/lib/types/common/domain/Container.d.ts +1 -1
- package/lib/types/common/domain/Provider.d.ts +1 -1
- package/lib/types/common/interfaces/ProviderOpts.d.ts +1 -1
- package/lib/types/common/interfaces/TokenProvider.d.ts +1 -1
- package/lib/types/node/decorators/injectContext.d.ts +2 -1
- package/lib/types/node/domain/ContextLogger.d.ts +3 -3
- package/lib/types/node/domain/DIContext.d.ts +1 -1
- package/lib/types/node/utils/asyncHookContext.d.ts +4 -3
- package/package.json +17 -18
- package/vitest.config.mts +4 -4
- package/lib/cjs/common/constants/constants.js +0 -9
- package/lib/cjs/common/constants/constants.js.map +0 -1
- package/lib/cjs/common/decorators/autoInjectable.js +0 -38
- package/lib/cjs/common/decorators/autoInjectable.js.map +0 -1
- package/lib/cjs/common/decorators/configuration.js +0 -24
- package/lib/cjs/common/decorators/configuration.js.map +0 -1
- package/lib/cjs/common/decorators/constant.js +0 -74
- package/lib/cjs/common/decorators/constant.js.map +0 -1
- package/lib/cjs/common/decorators/controller.js +0 -53
- package/lib/cjs/common/decorators/controller.js.map +0 -1
- package/lib/cjs/common/decorators/inject.js +0 -84
- package/lib/cjs/common/decorators/inject.js.map +0 -1
- package/lib/cjs/common/decorators/injectable.js +0 -32
- package/lib/cjs/common/decorators/injectable.js.map +0 -1
- package/lib/cjs/common/decorators/intercept.js +0 -65
- package/lib/cjs/common/decorators/intercept.js.map +0 -1
- package/lib/cjs/common/decorators/interceptor.js +0 -21
- package/lib/cjs/common/decorators/interceptor.js.map +0 -1
- package/lib/cjs/common/decorators/lazyInject.js +0 -71
- package/lib/cjs/common/decorators/lazyInject.js.map +0 -1
- package/lib/cjs/common/decorators/module.js +0 -32
- package/lib/cjs/common/decorators/module.js.map +0 -1
- package/lib/cjs/common/decorators/opts.js +0 -54
- package/lib/cjs/common/decorators/opts.js.map +0 -1
- package/lib/cjs/common/decorators/overrideProvider.js +0 -17
- package/lib/cjs/common/decorators/overrideProvider.js.map +0 -1
- package/lib/cjs/common/decorators/scope.js +0 -16
- package/lib/cjs/common/decorators/scope.js.map +0 -1
- package/lib/cjs/common/decorators/service.js +0 -18
- package/lib/cjs/common/decorators/service.js.map +0 -1
- package/lib/cjs/common/decorators/useOpts.js +0 -61
- package/lib/cjs/common/decorators/useOpts.js.map +0 -1
- package/lib/cjs/common/decorators/value.js +0 -62
- package/lib/cjs/common/decorators/value.js.map +0 -1
- package/lib/cjs/common/domain/Container.js +0 -72
- package/lib/cjs/common/domain/Container.js.map +0 -1
- package/lib/cjs/common/domain/ControllerProvider.js +0 -36
- package/lib/cjs/common/domain/ControllerProvider.js.map +0 -1
- package/lib/cjs/common/domain/InjectablePropertyType.js +0 -12
- package/lib/cjs/common/domain/InjectablePropertyType.js.map +0 -1
- package/lib/cjs/common/domain/LocalsContainer.js +0 -15
- package/lib/cjs/common/domain/LocalsContainer.js.map +0 -1
- package/lib/cjs/common/domain/Provider.js +0 -134
- package/lib/cjs/common/domain/Provider.js.map +0 -1
- package/lib/cjs/common/domain/ProviderScope.js +0 -10
- package/lib/cjs/common/domain/ProviderScope.js.map +0 -1
- package/lib/cjs/common/domain/ProviderType.js +0 -15
- package/lib/cjs/common/domain/ProviderType.js.map +0 -1
- package/lib/cjs/common/errors/InjectionError.js +0 -58
- package/lib/cjs/common/errors/InjectionError.js.map +0 -1
- package/lib/cjs/common/errors/InvalidPropertyTokenError.js +0 -12
- package/lib/cjs/common/errors/InvalidPropertyTokenError.js.map +0 -1
- package/lib/cjs/common/index.js +0 -58
- package/lib/cjs/common/index.js.map +0 -1
- package/lib/cjs/common/interfaces/DIConfigurationOptions.js +0 -3
- package/lib/cjs/common/interfaces/DIConfigurationOptions.js.map +0 -1
- package/lib/cjs/common/interfaces/DILogger.js +0 -3
- package/lib/cjs/common/interfaces/DILogger.js.map +0 -1
- package/lib/cjs/common/interfaces/DILoggerOptions.js +0 -3
- package/lib/cjs/common/interfaces/DILoggerOptions.js.map +0 -1
- package/lib/cjs/common/interfaces/DIResolver.js +0 -3
- package/lib/cjs/common/interfaces/DIResolver.js.map +0 -1
- package/lib/cjs/common/interfaces/ImportTokenProviderOpts.js +0 -3
- package/lib/cjs/common/interfaces/ImportTokenProviderOpts.js.map +0 -1
- package/lib/cjs/common/interfaces/InterceptorContext.js +0 -3
- package/lib/cjs/common/interfaces/InterceptorContext.js.map +0 -1
- package/lib/cjs/common/interfaces/InterceptorMethods.js +0 -3
- package/lib/cjs/common/interfaces/InterceptorMethods.js.map +0 -1
- package/lib/cjs/common/interfaces/InvokeOptions.js +0 -3
- package/lib/cjs/common/interfaces/InvokeOptions.js.map +0 -1
- package/lib/cjs/common/interfaces/OnDestroy.js +0 -3
- package/lib/cjs/common/interfaces/OnDestroy.js.map +0 -1
- package/lib/cjs/common/interfaces/OnInit.js +0 -3
- package/lib/cjs/common/interfaces/OnInit.js.map +0 -1
- package/lib/cjs/common/interfaces/ProviderOpts.js +0 -3
- package/lib/cjs/common/interfaces/ProviderOpts.js.map +0 -1
- package/lib/cjs/common/interfaces/RegistrySettings.js +0 -3
- package/lib/cjs/common/interfaces/RegistrySettings.js.map +0 -1
- package/lib/cjs/common/interfaces/ResolvedInvokeOptions.js +0 -3
- package/lib/cjs/common/interfaces/ResolvedInvokeOptions.js.map +0 -1
- package/lib/cjs/common/interfaces/TokenProvider.js +0 -3
- package/lib/cjs/common/interfaces/TokenProvider.js.map +0 -1
- package/lib/cjs/common/interfaces/TokenRoute.js +0 -3
- package/lib/cjs/common/interfaces/TokenRoute.js.map +0 -1
- package/lib/cjs/common/registries/GlobalProviders.js +0 -121
- package/lib/cjs/common/registries/GlobalProviders.js.map +0 -1
- package/lib/cjs/common/registries/ProviderRegistry.js +0 -86
- package/lib/cjs/common/registries/ProviderRegistry.js.map +0 -1
- package/lib/cjs/common/services/DIConfiguration.js +0 -142
- package/lib/cjs/common/services/DIConfiguration.js.map +0 -1
- package/lib/cjs/common/services/DILogger.js +0 -14
- package/lib/cjs/common/services/DILogger.js.map +0 -1
- package/lib/cjs/common/services/InjectorService.js +0 -536
- package/lib/cjs/common/services/InjectorService.js.map +0 -1
- package/lib/cjs/common/utils/colors.js +0 -10
- package/lib/cjs/common/utils/colors.js.map +0 -1
- package/lib/cjs/common/utils/createContainer.js +0 -14
- package/lib/cjs/common/utils/createContainer.js.map +0 -1
- package/lib/cjs/common/utils/getConfiguration.js +0 -23
- package/lib/cjs/common/utils/getConfiguration.js.map +0 -1
- package/lib/cjs/common/utils/getConstructorDependencies.js +0 -13
- package/lib/cjs/common/utils/getConstructorDependencies.js.map +0 -1
- package/lib/cjs/common/utils/resolveControllers.js +0 -47
- package/lib/cjs/common/utils/resolveControllers.js.map +0 -1
- package/lib/cjs/index.js +0 -6
- package/lib/cjs/index.js.map +0 -1
- package/lib/cjs/node/decorators/injectContext.js +0 -39
- package/lib/cjs/node/decorators/injectContext.js.map +0 -1
- package/lib/cjs/node/domain/ContextLogger.js +0 -99
- package/lib/cjs/node/domain/ContextLogger.js.map +0 -1
- package/lib/cjs/node/domain/DIContext.js +0 -102
- package/lib/cjs/node/domain/DIContext.js.map +0 -1
- package/lib/cjs/node/index.js +0 -18
- package/lib/cjs/node/index.js.map +0 -1
- package/lib/cjs/node/interfaces/AlterRunInContext.js +0 -3
- package/lib/cjs/node/interfaces/AlterRunInContext.js.map +0 -1
- package/lib/cjs/node/services/DILogger.js +0 -12
- package/lib/cjs/node/services/DILogger.js.map +0 -1
- package/lib/cjs/node/services/DITest.js +0 -126
- package/lib/cjs/node/services/DITest.js.map +0 -1
- package/lib/cjs/node/utils/asyncHookContext.js +0 -42
- package/lib/cjs/node/utils/asyncHookContext.js.map +0 -1
- package/lib/cjs/node/utils/attachLogger.js +0 -10
- package/lib/cjs/node/utils/attachLogger.js.map +0 -1
- package/lib/cjs/node/utils/setLoggerConfiguration.js +0 -11
- package/lib/cjs/node/utils/setLoggerConfiguration.js.map +0 -1
- package/lib/cjs/node/utils/setLoggerFormat.js +0 -33
- package/lib/cjs/node/utils/setLoggerFormat.js.map +0 -1
- package/lib/cjs/node/utils/setLoggerLevel.js +0 -15
- package/lib/cjs/node/utils/setLoggerLevel.js.map +0 -1
- package/lib/cjs/package.json +0 -3
- package/lib/esm/package.json +0 -3
- package/lib/types-esm/common/constants/constants.d.ts +0 -5
- package/lib/types-esm/common/decorators/autoInjectable.d.ts +0 -1
- package/lib/types-esm/common/decorators/configuration.d.ts +0 -8
- package/lib/types-esm/common/decorators/constant.d.ts +0 -39
- package/lib/types-esm/common/decorators/controller.d.ts +0 -42
- package/lib/types-esm/common/decorators/inject.d.ts +0 -35
- package/lib/types-esm/common/decorators/injectable.d.ts +0 -20
- package/lib/types-esm/common/decorators/intercept.d.ts +0 -13
- package/lib/types-esm/common/decorators/interceptor.d.ts +0 -10
- package/lib/types-esm/common/decorators/lazyInject.d.ts +0 -43
- package/lib/types-esm/common/decorators/module.d.ts +0 -37
- package/lib/types-esm/common/decorators/opts.d.ts +0 -41
- package/lib/types-esm/common/decorators/overrideProvider.d.ts +0 -8
- package/lib/types-esm/common/decorators/scope.d.ts +0 -8
- package/lib/types-esm/common/decorators/service.d.ts +0 -10
- package/lib/types-esm/common/decorators/useOpts.d.ts +0 -42
- package/lib/types-esm/common/decorators/value.d.ts +0 -37
- package/lib/types-esm/common/domain/Container.d.ts +0 -43
- package/lib/types-esm/common/domain/ControllerProvider.d.ts +0 -17
- package/lib/types-esm/common/domain/InjectablePropertyType.d.ts +0 -7
- package/lib/types-esm/common/domain/LocalsContainer.d.ts +0 -6
- package/lib/types-esm/common/domain/Provider.d.ts +0 -71
- package/lib/types-esm/common/domain/ProviderScope.d.ts +0 -5
- package/lib/types-esm/common/domain/ProviderType.d.ts +0 -10
- package/lib/types-esm/common/errors/InjectionError.d.ts +0 -8
- package/lib/types-esm/common/errors/InvalidPropertyTokenError.d.ts +0 -4
- package/lib/types-esm/common/index.d.ts +0 -54
- package/lib/types-esm/common/interfaces/DIConfigurationOptions.d.ts +0 -29
- package/lib/types-esm/common/interfaces/DILogger.d.ts +0 -8
- package/lib/types-esm/common/interfaces/DILoggerOptions.d.ts +0 -53
- package/lib/types-esm/common/interfaces/DIResolver.d.ts +0 -5
- package/lib/types-esm/common/interfaces/ImportTokenProviderOpts.d.ts +0 -19
- package/lib/types-esm/common/interfaces/InterceptorContext.d.ts +0 -11
- package/lib/types-esm/common/interfaces/InterceptorMethods.d.ts +0 -4
- package/lib/types-esm/common/interfaces/InvokeOptions.d.ts +0 -30
- package/lib/types-esm/common/interfaces/OnDestroy.d.ts +0 -3
- package/lib/types-esm/common/interfaces/OnInit.d.ts +0 -3
- package/lib/types-esm/common/interfaces/ProviderOpts.d.ts +0 -59
- package/lib/types-esm/common/interfaces/RegistrySettings.d.ts +0 -21
- package/lib/types-esm/common/interfaces/ResolvedInvokeOptions.d.ts +0 -12
- package/lib/types-esm/common/interfaces/TokenProvider.d.ts +0 -2
- package/lib/types-esm/common/interfaces/TokenRoute.d.ts +0 -5
- package/lib/types-esm/common/registries/GlobalProviders.d.ts +0 -58
- package/lib/types-esm/common/registries/ProviderRegistry.d.ts +0 -58
- package/lib/types-esm/common/services/DIConfiguration.d.ts +0 -57
- package/lib/types-esm/common/services/DILogger.d.ts +0 -3
- package/lib/types-esm/common/services/InjectorService.d.ts +0 -203
- package/lib/types-esm/common/utils/colors.d.ts +0 -5
- package/lib/types-esm/common/utils/createContainer.d.ts +0 -3
- package/lib/types-esm/common/utils/getConfiguration.d.ts +0 -3
- package/lib/types-esm/common/utils/getConstructorDependencies.d.ts +0 -2
- package/lib/types-esm/common/utils/resolveControllers.d.ts +0 -12
- package/lib/types-esm/index.d.ts +0 -2
- package/lib/types-esm/node/decorators/injectContext.d.ts +0 -15
- package/lib/types-esm/node/domain/ContextLogger.d.ts +0 -37
- package/lib/types-esm/node/domain/DIContext.d.ts +0 -61
- package/lib/types-esm/node/index.d.ts +0 -14
- package/lib/types-esm/node/interfaces/AlterRunInContext.d.ts +0 -3
- package/lib/types-esm/node/services/DILogger.d.ts +0 -1
- package/lib/types-esm/node/services/DITest.d.ts +0 -37
- package/lib/types-esm/node/utils/asyncHookContext.d.ts +0 -14
- package/lib/types-esm/node/utils/attachLogger.d.ts +0 -2
- package/lib/types-esm/node/utils/setLoggerConfiguration.d.ts +0 -2
- package/lib/types-esm/node/utils/setLoggerFormat.d.ts +0 -6
- package/lib/types-esm/node/utils/setLoggerLevel.d.ts +0 -6
- /package/{webpack.config.js → webpack.config.cjs} +0 -0
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t(require("@tsed/core"),require("@tsed/schema")):"function"==typeof define&&define.amd?define(["@tsed/core","@tsed/schema"],t):"object"==typeof exports?exports["@tsed/di"]=t(require("@tsed/core"),require("@tsed/schema")):e["@tsed/di"]=t(e["@tsed/core"],e["@tsed/schema"])}(self,((e,t)=>(()=>{"use strict";var r={803:t=>{t.exports=e},953:e=>{e.exports=t}},s={};function o(e){var t=s[e];if(void 0!==t)return t.exports;var n=s[e]={exports:{}};return r[e](n,n.exports,o),n.exports}o.d=(e,t)=>{for(var r in t)o.o(t,r)&&!o.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},o.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),o.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var n={};return(()=>{o.r(n),o.d(n,{AutoInjectable:()=>F,Configuration:()=>v,Constant:()=>G,Container:()=>S,Controller:()=>z,ControllerProvider:()=>ie,DIConfiguration:()=>_,DI_INJECTABLE_PROPS:()=>t,DI_INTERCEPTOR_OPTIONS:()=>i,DI_INVOKE_OPTIONS:()=>e,DI_USE_OPTIONS:()=>r,DI_USE_PARAM_OPTIONS:()=>s,GlobalProviderRegistry:()=>O,GlobalProviders:()=>E,Inject:()=>y,Injectable:()=>b,InjectablePropertyType:()=>K,InjectionError:()=>T,InjectorService:()=>V,Intercept:()=>J,Interceptor:()=>Q,InvalidPropertyTokenError:()=>l,LOGGER:()=>ae,LazyInject:()=>W,LocalsContainer:()=>h,Module:()=>X,OptionalLazyInject:()=>Y,Opts:()=>ee,OverrideProvider:()=>te,Provider:()=>m,ProviderScope:()=>a,ProviderType:()=>c,Scope:()=>Z,Service:()=>re,UseOpts:()=>se,Value:()=>ne,bindConstant:()=>U,bindIntercept:()=>B,bindValue:()=>oe,colors:()=>C,constant:()=>$,createContainer:()=>w,getConfiguration:()=>ue,getConstructorDependencies:()=>p,getInterceptorOptions:()=>H,getTokens:()=>j,inject:()=>g,injectMany:()=>f,mergeMount:()=>ce,registerController:()=>P,registerProvider:()=>I,registerValue:()=>k,resolveControllers:()=>D,setConstructorDependencies:()=>d});const e=Symbol("DI_INVOKE_OPTIONS"),t=Symbol("DI_INJECTABLE_PROPS"),r="DI_USE_OPTIONS",s="DI_USE_PARAM_OPTIONS",i="DI_INTERCEPTOR_OPTIONS";var a,c,u=o(803);class h extends Map{constructor(){super(...arguments),this.hooks=new u.Hooks}async destroy(){await this.hooks.asyncEmit("$onDestroy")}}Object.create,Object.create,"function"==typeof SuppressedError&&SuppressedError;class l extends Error{constructor(e,t){super(`Object isn't a valid token. Please check the token set on ${(0,u.nameOf)((0,u.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"}}function p(e,t){return u.Metadata.getOwn("override:ctor:design:paramtypes",e,t)||[...u.Metadata.getParamTypes(e,t)]||[]}function d(e,t){u.Metadata.set("override:ctor:design:paramtypes",t,e)}function g(e,t){return V.getInstance().invoke(e,t?.locals||V.getLocals(),t)}function f(e,t){return V.getInstance().getMany(e,t?.locals||V.getLocals(),t)}function y(s,o={}){return o="function"==typeof o?{transform:o}:o,(n,i,a)=>{switch((0,u.decoratorTypeOf)([n,i,a])){case u.DecoratorTypes.PARAM_CTOR:s&&function(e,{target:t,propertyKey:r,parameterIndex:s}){const o=p(t,r),n=o[s];o[s]=n===Array?[e]:e,u.Metadata.setParamTypes(t,r,o),d(t,o)}(s,{target:n,propertyKey:i,parameterIndex:a});break;case u.DecoratorTypes.PROP:!function(s,o,{token:n,transform:i=(e=>e),useOpts:a}){const c=Symbol();s[t]||Reflect.defineProperty(s,t,{value:new Set,enumerable:!1,configurable:!1}),s[t].add(o),(0,u.catchError)((()=>Reflect.deleteProperty(s,o))),Reflect.defineProperty(s,o,{get(){const t=function(e,t,r){const s=e||u.Metadata.getType(t,r);if(s===Object)throw new l(t,String(r));return s}(n,s,o),h=u.Metadata.getType(s,o),p={rebuild:!!this[e]?.rebuild,locals:this[e]?.locals,useOpts:a||u.Store.from(s,o).get(r)};return void 0===this[c]&&(this[c]=h===Array?f(n,p):g(t,p)),[].concat(this[c]).forEach(((e,t)=>{(0,u.isPromise)(this[c])&&e.then((e=>{this[c][t]=e,h!==Array&&(this[c]=e)}))})),i(this[c],{self:this,target:s,propertyKey:o})}})}(n,i,{...o,token:s})}}}function v(e={}){return(...t)=>{switch((0,u.decoratorTypeOf)(t)){case u.DecoratorTypes.CLASS:(0,u.StoreSet)("configuration",e)(t[0]);break;default:case u.DecoratorTypes.PARAM_CTOR:return y(v)(t[0],t[1],t[2])}}}!function(e){e.SINGLETON="singleton",e.REQUEST="request",e.INSTANCE="instance"}(a||(a={})),function(e){e.VALUE="value",e.FACTORY="factory",e.SERVICE="service",e.PROVIDER="provider",e.MODULE="module",e.CONTROLLER="controller",e.INTERCEPTOR="interceptor",e.MIDDLEWARE="middleware"}(c||(c={}));class m{constructor(e,t={}){this.type=c.PROVIDER,this.provide=e,this.useClass=e,Object.assign(this,t)}get token(){return this._provide}get provide(){return this._provide}set provide(e){e&&(this._provide=(0,u.getClassOrSymbol)(e),this._tokenStore=this._store=u.Store.from(e))}get useClass(){return this._useClass}set useClass(e){(0,u.isClass)(e)&&(this._useClass=(0,u.classOf)(e),this._store=u.Store.from(e),this.hooks=(0,u.methodsOf)(this._useClass).reduce(((e,{propertyKey:t})=>String(t).startsWith("$")?{...e,[t]:(e,...r)=>e[t](...r)}:e),{}))}get className(){return this.name}get name(){return(0,u.nameOf)(this.provide)}get store(){return this._store}get path(){return this.store.get("path","/")}set path(e){this.store.set("path",e)}get scope(){return this.isAsync()?a.SINGLETON:this.get("scope")}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",[])}get(e){return this.store.get(e)||this._tokenStore.get(e)}isAsync(){return!!this.useAsyncFactory}clone(){return new((0,u.classOf)(this))(this._provide,this)}hasChildren(){return!!this.children.length}hasParent(){return!!this.store.get("parentController")}toString(){return["Token",this.name,this.useClass&&(0,u.nameOf)(this.useClass),this.useFactory&&"Factory",this.useValue&&"Value",this.useAsyncFactory&&"AsyncFactory"].filter(Boolean).join(":")}}class O extends Map{constructor(){super(...arguments),this.#e=new Map}#e;get(e){return super.get((0,u.getClassOrSymbol)(e))}has(e){return super.has((0,u.getClassOrSymbol)(e))}set(e,t){return super.set((0,u.getClassOrSymbol)(e),t),this}merge(e,t){const r=this.createIfNotExists(e,t);return Object.keys(t).forEach((e=>{let s=t[e];r[e]=s})),this.set(e,r),r}delete(e){return super.delete((0,u.getClassOrSymbol)(e))}createRegistry(e,t,r={}){const s=this.getRegistrySettings(e);return r=Object.assign(s,{...r,model:t}),this.#e.set(e,r),this}onInvoke(e,t,r){const s=this.#e.get(e.type);s?.onInvoke&&s.onInvoke(e,t,r)}getRegistrySettings(e){let t=c.PROVIDER;if("string"==typeof e)t=e;else{const r=this.get(e);r&&(t=r.type)}return this.#e.get(t)||{model:m}}createRegisterFn(e){return(t,r)=>{t=Object.assign({instance:r},t,{type:e}),this.merge(t.provide,t)}}createIfNotExists(e,t){const r=t.type||c.PROVIDER;if(!this.has(e)){const{model:s=m}=this.#e.get(r)||{},o=new s(e,t);this.set(e,o)}return this.get(e)}}const E=new O;function I(e){if(!e.provide)throw new Error("Provider.provide is required");return E.merge(e.provide,e)}E.createRegistry(c.CONTROLLER,m);const k=(e,t)=>{e.provide||(e={provide:e}),e=Object.assign({scope:a.SINGLETON,useValue:t},e,{type:c.VALUE}),E.merge(e.provide,e)},P=E.createRegisterFn(c.CONTROLLER);function b(e={}){return t=>{I({...e,...e.provide?{useClass:t}:{provide:t}})}}class S extends Map{add(e,t={}){const r=E.get(e)?.clone()||new m(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.provide)||this.setProvider(e.provide,e.clone())}))}}const R=e=>e=>(process.env.NO_COLOR,e),C={red:R(),yellow:R(),green:R()};class T extends Error{constructor(e,t){super((0,u.isString)(t)?t:""),this.name="INJECTION_ERROR",this.tokens=[],this.tokens=[e],t&&((0,u.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,u.nameOf)(e))).join(" > ");this.message=`Injection failed on ${s}${r}`}static throwInjectorError(e,t,r){throw t&&(0,u.isClass)(e)&&(r.message=function(e,t){let r="";const s=(0,u.getConstructorArgNames)(e).map(((e,s)=>(t.index===s&&(r=e,e=C.red(e)),`${e}: ${(0,u.nameOf)(t.deps[s])}`))).join(", "),o=(0,u.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)+C.red("^"+"‾".repeat(r.length-1)))(n):"")}(e,{...t,message:r.message})),new T(e,r)}}function w(e){const t=new S(E.entries());return e&&t.delete(e),t}const N=["mount","imports"];function j(e){return e?(0,u.isArray)(e)?e.filter(u.isClass).map((e=>({token:e}))):Object.keys(e).reduce(((t,r)=>[...t,...[].concat(e[r]).filter(u.isClass).map((e=>({route:r,token:e})))]),[]):[]}function A(e){return e.map((({token:e})=>E.get(e))).filter((e=>e?.type===c.MODULE&&e.configuration)).flatMap((e=>D(e.configuration)))}function D(e){const t=N.flatMap((t=>j(e[t])));return[...A(t),...t].filter((e=>!!e.route))}class _{constructor(e={}){return this.default=new Map,this.map=new Map,Object.entries({scopes:{},resolvers:[],imports:[],routes:[],logger:{},...e}).forEach((([e,t])=>{this.default.set(e,t)})),(0,u.proxyDelegation)(this,{ownKeys:e=>[...e.default.keys(),...e.map.keys()]})}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 scopes(){return this.map.get("scopes")}set scopes(e){this.map.set("scopes",e)}get resolvers(){return this.getRaw("resolvers")}set resolvers(e){this.map.set("resolvers",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,u.setValue)(this.map,e,t),this}get(e,t){return this.getRaw(e,t)}resolve(e){return e.replace("${rootDir}",this.rootDir)}getRaw(e,t){const r=(0,u.getValue)(this.map,e);return void 0!==r?r:(0,u.getValue)(this.default,e,t)}}var M;let L,x,V=M=class extends S{#t;#r;constructor(){super(),this.settings=new _,this.logger=console,this.resolvedConfiguration=!1,this.#t=new h,this.#r=new u.Hooks,this.#t.set(M,this),L=this}get resolvers(){return this.settings.resolvers}get scopes(){return this.settings.scopes||{}}static getInstance(){if(!L)throw new Error("InjectorService instance is not created yet.");return L}static getLocals(){return x||(x=new h)}static unsetLocals(){x=void 0}scopeOf(e){return e.scope||this.scopes[String(e.type)]||a.SINGLETON}toArray(){return[...this.#t.values()]}get(e,t={}){const r=this.getInstance(e);if(void 0!==r)return r;if(!this.hasProvider(e))for(const r of this.resolvers){const s=r.get(e,t);if(void 0!==s)return s}}getMany(e,t,r){return this.getProviders(e).map((e=>this.invoke(e.token,t,r)))}has(e){return void 0!==this.#t.get(e)}alias(e,t){return this.#t.set(t,this.#t.get(e)),this}invoke(e,t,r={}){let o=t?t.get(e):void 0;if(void 0!==o)return o;if(e===v)return this.settings;if(o=r.rebuild?void 0:this.getInstance(e),null!=o)return o;if(e===s)return r.useOpts;const n=this.ensureProvider(e),i=t=>{this.#t.set(e,t),n?.alias&&this.alias(e,n.alias)};if(!n||r.rebuild)return o=this.resolve(e,t,r),this.hasProvider(e)&&i(o),o;switch(o=this.resolve(e,t,r),this.scopeOf(n)){case a.SINGLETON:return n.hooks&&!r.rebuild&&this.registerHooks(n,o),n.isAsync()&&(0,u.isPromise)(o)?(i(o),o=o.then((e=>(i(e),e))),o):(i(o),o);case a.REQUEST:return t&&(t.set(e,o),n.hooks&&n.hooks.$onDestroy&&t.hooks.on("$onDestroy",((...e)=>n.hooks.$onDestroy(o,...e)))),o}return o}async loadAsync(){for(const[,e]of this)!this.has(e.token)&&e.isAsync()&&await this.invoke(e.token)}loadSync(){for(const[,e]of this)this.has(e.token)||this.scopeOf(e)!==a.SINGLETON||this.invoke(e.token)}bootstrap(e=w()){return this.addProviders(e),this.resolveConfiguration(),this.resolveImportsProviders(),this}loadModule(e){this.settings.routes=this.settings.routes.concat(D(this.settings));const t=w();return t.delete(e),t.addProvider(e,{type:"server:module",scope:a.SINGLETON}),this.load(t)}async load(e=w()){this.bootstrap(e),await this.loadAsync(),this.loadSync(),await this.emit("$beforeInit"),await this.emit("$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])=>{["resolvers","mount","imports"].includes(t)||(r=e.has(t)?(0,u.deepMerge)(e.get(t),r):(0,u.deepClone)(r),e.set(t,r))})),t.resolvers&&(this.settings.resolvers=this.settings.resolvers.concat(t.resolvers))})),e.forEach(((e,t)=>{this.settings.set(t,(0,u.deepMerge)(e,this.settings.get(t)))})),this.resolvedConfiguration=!0}async lazyInvoke(e){let t=this.getInstance(e);return t||(t=await this.invoke(e),(0,u.isFunction)(t?.$onInit)&&await t.$onInit()),t}emit(e,...t){return this.#r.asyncEmit(e,t)}alter(e,t,...r){return this.#r.alter(e,t,r)}alterAsync(e,t,...r){return this.#r.asyncAlter(e,t,r)}async destroy(){await this.emit("$onDestroy"),L=void 0}ensureProvider(e,t=!1){return this.hasProvider(e)||!E.has(e)&&!t||this.addProvider(e),this.getProvider(e)}getInstance(e){return this.#t.get(e)}resolve(t,r=new h,o={}){const n=this.mapInvokeOptions(t,r,o);if(!n)return;const{token:i,deps:a,construct:c,imports:l,provider:p}=n;let d;p&&E.onInvoke(p,r,{...n,injector:this});let g=!1;try{const e=e=>(t,n)=>{if(g={token:t,index:n,deps:a},(0,u.isArray)(t))return this.getMany(t[0],r,o);const i=p?.store?.get(`${s}:${n}`)||o.useOpts;return(0,u.isInheritedFrom)(t,m,1)?p:this.invoke(t,r,{parent:e,useOpts:i})};l.forEach(e());const t=a.map(e(i));g=!1,d=c(t)}catch(e){T.throwInjectorError(i,g,e)}if(void 0===d)throw new T(i,`Unable to create new instance from undefined value. Check your provider declaration for ${(0,u.nameOf)(i)}`);return d&&(0,u.isClass)((0,u.classOf)(d))&&Reflect.defineProperty(d,e,{get:()=>({rebuild:o.rebuild,locals:r})}),d}resolveImportsProviders(){this.settings.imports=this.settings.imports?.filter((e=>(0,u.isObject)(e)&&"token"in e&&e.token!==M)).map((e=>{if((0,u.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,r){let o,n,i=r.imports,c=r.deps,h=r.scope;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(this.hasProvider(e)?n=this.getProvider(e):(n=new m(e),this.resolvers.forEach((r=>{const o=r.get(e,t.get(s));void 0!==o&&(n.useFactory=()=>o)}))),h=h||this.scopeOf(n),c=c||n.deps,i=i||n.imports,void 0!==n.useValue)o=()=>(0,u.isFunction)(n.useValue)?n.useValue():n.useValue;else if(n.useFactory)o=e=>n.useFactory(...e);else if(n.useAsyncFactory)o=async e=>(e=await Promise.all(e),n.useAsyncFactory(...e));else{if(!n.useClass)return!1;c=c||p(n.useClass),o=e=>new n.useClass(...e)}return{token:e,scope:h||u.Store.from(e).get("scope")||a.SINGLETON,deps:c||[],imports:i||[],construct:o,provider:n}}registerHooks(e,t){e.hooks&&Object.entries(e.hooks).forEach((([r,s])=>{this.#r.on(r,((...r)=>s(this.get(e.token)||t,...r)))}))}};function F(){return e=>class extends e{constructor(...t){super(...function(e,t){const r=new h,s=V.getInstance(),o=p(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,u.isArray)(t)?s.getMany(t[0],r,{parent:e}):s.invoke(t,r,{parent:e});n.push(i)}return n}(e,t))}}}function $(e,t){return V.getInstance().settings.get(e,t)}function U(e,t,r,s){const o=Symbol();(0,u.catchError)((()=>Reflect.deleteProperty(e,t))),Reflect.defineProperty(e,t,{get(){if(void 0!==this[o])return this[o];const e=$(r,s);return this[o]=Object.freeze((0,u.deepClone)(e)),this[o]},set(e){void 0===($(r,s)||this[o])&&void 0!==e&&(this[o]=e)},enumerable:!0,configurable:!0})}function G(e,t){return(r,s)=>U(r,s,e,t)}V=M=function(e,t,r,s){var o,n=arguments.length,i=n<3?t:null===s?s=Object.getOwnPropertyDescriptor(t,r):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)i=Reflect.decorate(e,t,r,s);else for(var a=e.length-1;a>=0;a--)(o=e[a])&&(i=(n<3?o(i):n>3?o(t,r,i):o(t,r))||i);return n>3&&i&&Object.defineProperty(t,r,i),i}([b({scope:a.SINGLETON}),function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)}("design:paramtypes",[])],V);var K,q=o(953);function z(e){const{children:t=[],path:r,...s}=function(e){return"string"==typeof e||e instanceof RegExp||(0,u.isArrayOrArrayClass)(e)?{path:e}:e}(e);return(0,u.useDecorators)((e=>{P({provide:e,...s})}),r&&(0,q.Path)(r),(0,q.Children)(...t))}function H(e,t){return u.Store.fromMethod(e,t).get(i)}function B(t,r,s,o){const n=(0,u.classOf)(t),a=Reflect.getOwnPropertyDescriptor(n.prototype,r),c=a.value,h=Symbol();return u.Store.fromMethod(n,r).set(i,o),a.value=function(...n){const i=e=>{if(!e)return c.apply(this,n);throw e},a={target:t,propertyKey:r,args:n,options:o,next:i},u={rebuild:!!this[e]?.rebuild,locals:this[e]?.locals};return this[h]=this[h]||g(s,u),this[h].intercept({...a,options:o},i)},a}function J(e,t){return(...r)=>{const[s,o]=r;switch((0,u.decoratorTypeOf)(r)){case u.DecoratorTypes.CLASS:(0,u.decorateMethodsOf)(s,J(e,t));break;case u.DecoratorTypes.METHOD:return B(s,o,e,t)}}}function Q(){return b({type:c.INTERCEPTOR})}function W(e,t,{optional:r=!1,packageName:s=t.toString()}={}){return(o,n)=>{let i,a;(0,u.catchError)((()=>Reflect.deleteProperty(o,n))),Reflect.defineProperty(o,n,{async get(){if(!a){const o=V.getInstance(),n=await(0,u.importPackage)(s,t,r);if(a=n[e],!a&&!r)throw new Error(`Unable to lazy load the "${e}". The token isn't a valid token provider.`);i=a?await o.lazyInvoke(a):{}}return i}})}}function Y(e,t){return W(e,t,{optional:!0})}function X(e={}){const{scopes:t,imports:r,resolvers:s,deps:o,scope:n,...i}=e;return(0,u.useDecorators)(v(i),b({type:c.MODULE,scope:a.SINGLETON,imports:r,deps:o,injectable:!1,resolvers:s}))}function Z(e=a.REQUEST){return(0,u.StoreSet)("scope",e)}function ee(e,t,r){Z(a.INSTANCE)((0,u.classOf)(e)),y(s)(e,t,r)}function te(e){return t=>{E.get(e).useClass=t}}function re(){return b()}function se(e){return(t,o,n)=>{switch((0,u.decoratorTypeOf)([t,o,n])){case u.DecoratorTypes.PARAM_CTOR:u.Store.from(t).merge(`${s}:${n}`,e);break;case u.DecoratorTypes.PROP:u.Store.from(t,o).set(r,e);break;default:throw new u.UnsupportedDecoratorType(se,[t,o,n])}}}function oe(e,t,r,s){const o={get:()=>V.getInstance().settings.get(r,s),set(e){V.getInstance().settings.set(r,e)},enumerable:!0,configurable:!0};(0,u.catchError)((()=>Reflect.deleteProperty(e,t))),(0,u.catchError)((()=>Reflect.defineProperty(e,t,o)))}function ne(e,t){return(r,s)=>oe(r,s,e,t)}class ie extends m{constructor(e,t={}){super(e,t),this.type=c.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(e){e.METHOD="method",e.PROPERTY="property",e.CONSTANT="constant",e.VALUE="value",e.INTERCEPTOR="interceptor"}(K||(K={}));const ae=Symbol.for("LOGGER");function ce(e={},t={}){return Object.entries(t).reduce(((e,[t,r])=>({...e,[t]:(e[t]||[]).concat(r)})),e)}function ue(e,t={}){const r=u.Store.from(e).get("configuration")||{};return{...r,...t,mount:ce(r.mount,t.mount)}}I({provide:ae,deps:[V],useFactory:e=>e.logger})})(),n})()));
|
|
1
|
+
!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t(require("@tsed/core"),require("@tsed/schema")):"function"==typeof define&&define.amd?define(["@tsed/core","@tsed/schema"],t):"object"==typeof exports?exports["@tsed/di"]=t(require("@tsed/core"),require("@tsed/schema")):e["@tsed/di"]=t(e["@tsed/core"],e["@tsed/schema"])}(self,((e,t)=>(()=>{"use strict";var r={803:t=>{t.exports=e},953:e=>{e.exports=t}},s={};function o(e){var t=s[e];if(void 0!==t)return t.exports;var n=s[e]={exports:{}};return r[e](n,n.exports,o),n.exports}o.d=(e,t)=>{for(var r in t)o.o(t,r)&&!o.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},o.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),o.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var n={};return(()=>{o.r(n),o.d(n,{AutoInjectable:()=>F,Configuration:()=>v,Constant:()=>G,Container:()=>S,Controller:()=>z,ControllerProvider:()=>ie,DIConfiguration:()=>_,DI_INJECTABLE_PROPS:()=>t,DI_INTERCEPTOR_OPTIONS:()=>i,DI_INVOKE_OPTIONS:()=>e,DI_USE_OPTIONS:()=>r,DI_USE_PARAM_OPTIONS:()=>s,GlobalProviderRegistry:()=>O,GlobalProviders:()=>E,Inject:()=>y,Injectable:()=>b,InjectablePropertyType:()=>K,InjectionError:()=>T,InjectorService:()=>V,Intercept:()=>J,Interceptor:()=>Q,InvalidPropertyTokenError:()=>l,LOGGER:()=>ae,LazyInject:()=>W,LocalsContainer:()=>h,Module:()=>X,OptionalLazyInject:()=>Y,Opts:()=>ee,OverrideProvider:()=>te,Provider:()=>m,ProviderScope:()=>a,ProviderType:()=>c,Scope:()=>Z,Service:()=>re,UseOpts:()=>se,Value:()=>ne,bindConstant:()=>U,bindIntercept:()=>B,bindValue:()=>oe,colors:()=>C,constant:()=>$,createContainer:()=>w,getConfiguration:()=>ue,getConstructorDependencies:()=>p,getInterceptorOptions:()=>H,getTokens:()=>j,inject:()=>g,injectMany:()=>f,mergeMount:()=>ce,registerController:()=>P,registerProvider:()=>I,registerValue:()=>k,resolveControllers:()=>D,setConstructorDependencies:()=>d});const e=Symbol("DI_INVOKE_OPTIONS"),t=Symbol("DI_INJECTABLE_PROPS"),r="DI_USE_OPTIONS",s="DI_USE_PARAM_OPTIONS",i="DI_INTERCEPTOR_OPTIONS";var a,c,u=o(803);class h extends Map{constructor(){super(...arguments),this.hooks=new u.Hooks}async destroy(){await this.hooks.asyncEmit("$onDestroy")}}Object.create,Object.create,"function"==typeof SuppressedError&&SuppressedError;class l extends Error{constructor(e,t){super(`Object isn't a valid token. Please check the token set on ${(0,u.nameOf)((0,u.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"}}function p(e,t){return u.Metadata.getOwn("override:ctor:design:paramtypes",e,t)||[...u.Metadata.getParamTypes(e,t)]||[]}function d(e,t){u.Metadata.set("override:ctor:design:paramtypes",t,e)}function g(e,t){return V.getInstance().invoke(e,t?.locals||V.getLocals(),t)}function f(e,t){return V.getInstance().getMany(e,t?.locals||V.getLocals(),t)}function y(s,o={}){return o="function"==typeof o?{transform:o}:o,(n,i,a)=>{switch((0,u.decoratorTypeOf)([n,i,a])){case u.DecoratorTypes.PARAM_CTOR:s&&function(e,{target:t,propertyKey:r,parameterIndex:s}){const o=p(t,r),n=o[s];o[s]=n===Array?[e]:e,u.Metadata.setParamTypes(t,r,o),d(t,o)}(s,{target:n,propertyKey:i,parameterIndex:a});break;case u.DecoratorTypes.PROP:!function(s,o,{token:n,transform:i=(e=>e),useOpts:a}){const c=Symbol();s[t]||Reflect.defineProperty(s,t,{value:new Set,enumerable:!1,configurable:!1}),s[t].add(o),(0,u.catchError)((()=>Reflect.deleteProperty(s,o))),Reflect.defineProperty(s,o,{get(){const t=function(e,t,r){const s=e||u.Metadata.getType(t,r);if(s===Object)throw new l(t,String(r));return s}(n,s,o),h=u.Metadata.getType(s,o),p={rebuild:!!this[e]?.rebuild,locals:this[e]?.locals,useOpts:a||u.Store.from(s,o).get(r)};return void 0===this[c]&&(this[c]=h===Array?f(n,p):g(t,p)),[].concat(this[c]).forEach(((e,t)=>{(0,u.isPromise)(this[c])&&e.then((e=>{this[c][t]=e,h!==Array&&(this[c]=e)}))})),i(this[c],{self:this,target:s,propertyKey:o})}})}(n,i,{...o,token:s})}}}function v(e={}){return(...t)=>{switch((0,u.decoratorTypeOf)(t)){case u.DecoratorTypes.CLASS:(0,u.StoreSet)("configuration",e)(t[0]);break;default:case u.DecoratorTypes.PARAM_CTOR:return y(v)(t[0],t[1],t[2])}}}!function(e){e.SINGLETON="singleton",e.REQUEST="request",e.INSTANCE="instance"}(a||(a={})),function(e){e.VALUE="value",e.FACTORY="factory",e.SERVICE="service",e.PROVIDER="provider",e.MODULE="module",e.CONTROLLER="controller",e.INTERCEPTOR="interceptor",e.MIDDLEWARE="middleware"}(c||(c={}));class m{constructor(e,t={}){this.type=c.PROVIDER,this.provide=e,this.useClass=e,Object.assign(this,t)}get token(){return this._provide}get provide(){return this._provide}set provide(e){e&&(this._provide=(0,u.getClassOrSymbol)(e),this._tokenStore=this._store=u.Store.from(e))}get useClass(){return this._useClass}set useClass(e){(0,u.isClass)(e)&&(this._useClass=(0,u.classOf)(e),this._store=u.Store.from(e),this.hooks=(0,u.methodsOf)(this._useClass).reduce(((e,{propertyKey:t})=>String(t).startsWith("$")?{...e,[t]:(e,...r)=>e[t](...r)}:e),{}))}get className(){return this.name}get name(){return(0,u.nameOf)(this.provide)}get store(){return this._store}get path(){return this.store.get("path","/")}set path(e){this.store.set("path",e)}get scope(){return this.isAsync()?a.SINGLETON:this.get("scope")}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",[])}get(e){return this.store.get(e)||this._tokenStore.get(e)}isAsync(){return!!this.useAsyncFactory}clone(){return new((0,u.classOf)(this))(this._provide,this)}hasChildren(){return!!this.children.length}hasParent(){return!!this.store.get("parentController")}toString(){return["Token",this.name,this.useClass&&(0,u.nameOf)(this.useClass),this.useFactory&&"Factory",this.useValue&&"Value",this.useAsyncFactory&&"AsyncFactory"].filter(Boolean).join(":")}}class O extends Map{#e=new Map;get(e){return super.get((0,u.getClassOrSymbol)(e))}has(e){return super.has((0,u.getClassOrSymbol)(e))}set(e,t){return super.set((0,u.getClassOrSymbol)(e),t),this}merge(e,t){const r=this.createIfNotExists(e,t);return Object.keys(t).forEach((e=>{let s=t[e];r[e]=s})),this.set(e,r),r}delete(e){return super.delete((0,u.getClassOrSymbol)(e))}createRegistry(e,t,r={}){const s=this.getRegistrySettings(e);return r=Object.assign(s,{...r,model:t}),this.#e.set(e,r),this}onInvoke(e,t,r){const s=this.#e.get(e.type);s?.onInvoke&&s.onInvoke(e,t,r)}getRegistrySettings(e){let t=c.PROVIDER;if("string"==typeof e)t=e;else{const r=this.get(e);r&&(t=r.type)}return this.#e.get(t)||{model:m}}createRegisterFn(e){return(t,r)=>{t=Object.assign({instance:r},t,{type:e}),this.merge(t.provide,t)}}createIfNotExists(e,t){const r=t.type||c.PROVIDER;if(!this.has(e)){const{model:s=m}=this.#e.get(r)||{},o=new s(e,t);this.set(e,o)}return this.get(e)}}const E=new O;function I(e){if(!e.provide)throw new Error("Provider.provide is required");return E.merge(e.provide,e)}E.createRegistry(c.CONTROLLER,m);const k=(e,t)=>{e.provide||(e={provide:e}),e=Object.assign({scope:a.SINGLETON,useValue:t},e,{type:c.VALUE}),E.merge(e.provide,e)},P=E.createRegisterFn(c.CONTROLLER);function b(e={}){return t=>{I({...e,...e.provide?{useClass:t}:{provide:t}})}}class S extends Map{add(e,t={}){const r=E.get(e)?.clone()||new m(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.provide)||this.setProvider(e.provide,e.clone())}))}}const R=e=>e=>(process.env.NO_COLOR,e),C={red:R(),yellow:R(),green:R()};class T extends Error{constructor(e,t){super((0,u.isString)(t)?t:""),this.name="INJECTION_ERROR",this.tokens=[],this.tokens=[e],t&&((0,u.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,u.nameOf)(e))).join(" > ");this.message=`Injection failed on ${s}${r}`}static throwInjectorError(e,t,r){throw t&&(0,u.isClass)(e)&&(r.message=function(e,t){let r="";const s=(0,u.getConstructorArgNames)(e).map(((e,s)=>(t.index===s&&(r=e,e=C.red(e)),`${e}: ${(0,u.nameOf)(t.deps[s])}`))).join(", "),o=(0,u.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)+C.red("^"+"‾".repeat(r.length-1)))(n):"")}(e,{...t,message:r.message})),new T(e,r)}}function w(e){const t=new S(E.entries());return e&&t.delete(e),t}const N=["mount","imports"];function j(e){return e?(0,u.isArray)(e)?e.filter(u.isClass).map((e=>({token:e}))):Object.keys(e).reduce(((t,r)=>[...t,...[].concat(e[r]).filter(u.isClass).map((e=>({route:r,token:e})))]),[]):[]}function A(e){return e.map((({token:e})=>E.get(e))).filter((e=>e?.type===c.MODULE&&e.configuration)).flatMap((e=>D(e.configuration)))}function D(e){const t=N.flatMap((t=>j(e[t])));return[...A(t),...t].filter((e=>!!e.route))}class _{constructor(e={}){return this.default=new Map,this.map=new Map,Object.entries({scopes:{},resolvers:[],imports:[],routes:[],logger:{},...e}).forEach((([e,t])=>{this.default.set(e,t)})),(0,u.proxyDelegation)(this,{ownKeys:e=>[...e.default.keys(),...e.map.keys()]})}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 scopes(){return this.map.get("scopes")}set scopes(e){this.map.set("scopes",e)}get resolvers(){return this.getRaw("resolvers")}set resolvers(e){this.map.set("resolvers",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,u.setValue)(this.map,e,t),this}get(e,t){return this.getRaw(e,t)}resolve(e){return e.replace("${rootDir}",this.rootDir)}getRaw(e,t){const r=(0,u.getValue)(this.map,e);return void 0!==r?r:(0,u.getValue)(this.default,e,t)}}var M;let L,x,V=M=class extends S{#t;#r;constructor(){super(),this.settings=new _,this.logger=console,this.resolvedConfiguration=!1,this.#t=new h,this.#r=new u.Hooks,this.#t.set(M,this),L=this}get resolvers(){return this.settings.resolvers}get scopes(){return this.settings.scopes||{}}static getInstance(){if(!L)throw new Error("InjectorService instance is not created yet.");return L}static getLocals(){return x||(x=new h)}static unsetLocals(){x=void 0}scopeOf(e){return e.scope||this.scopes[String(e.type)]||a.SINGLETON}toArray(){return[...this.#t.values()]}get(e,t={}){const r=this.getInstance(e);if(void 0!==r)return r;if(!this.hasProvider(e))for(const r of this.resolvers){const s=r.get(e,t);if(void 0!==s)return s}}getMany(e,t,r){return this.getProviders(e).map((e=>this.invoke(e.token,t,r)))}has(e){return void 0!==this.#t.get(e)}alias(e,t){return this.#t.set(t,this.#t.get(e)),this}invoke(e,t,r={}){let o=t?t.get(e):void 0;if(void 0!==o)return o;if(e===v)return this.settings;if(o=r.rebuild?void 0:this.getInstance(e),null!=o)return o;if(e===s)return r.useOpts;const n=this.ensureProvider(e),i=t=>{this.#t.set(e,t),n?.alias&&this.alias(e,n.alias)};if(!n||r.rebuild)return o=this.resolve(e,t,r),this.hasProvider(e)&&i(o),o;switch(o=this.resolve(e,t,r),this.scopeOf(n)){case a.SINGLETON:return n.hooks&&!r.rebuild&&this.registerHooks(n,o),n.isAsync()&&(0,u.isPromise)(o)?(i(o),o=o.then((e=>(i(e),e))),o):(i(o),o);case a.REQUEST:return t&&(t.set(e,o),n.hooks&&n.hooks.$onDestroy&&t.hooks.on("$onDestroy",((...e)=>n.hooks.$onDestroy(o,...e)))),o}return o}async loadAsync(){for(const[,e]of this)!this.has(e.token)&&e.isAsync()&&await this.invoke(e.token)}loadSync(){for(const[,e]of this)this.has(e.token)||this.scopeOf(e)!==a.SINGLETON||this.invoke(e.token)}bootstrap(e=w()){return this.addProviders(e),this.resolveConfiguration(),this.resolveImportsProviders(),this}loadModule(e){this.settings.routes=this.settings.routes.concat(D(this.settings));const t=w();return t.delete(e),t.addProvider(e,{type:"server:module",scope:a.SINGLETON}),this.load(t)}async load(e=w()){this.bootstrap(e),await this.loadAsync(),this.loadSync(),await this.emit("$beforeInit"),await this.emit("$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])=>{["resolvers","mount","imports"].includes(t)||(r=e.has(t)?(0,u.deepMerge)(e.get(t),r):(0,u.deepClone)(r),e.set(t,r))})),t.resolvers&&(this.settings.resolvers=this.settings.resolvers.concat(t.resolvers))})),e.forEach(((e,t)=>{this.settings.set(t,(0,u.deepMerge)(e,this.settings.get(t)))})),this.resolvedConfiguration=!0}async lazyInvoke(e){let t=this.getInstance(e);return t||(t=await this.invoke(e),(0,u.isFunction)(t?.$onInit)&&await t.$onInit()),t}emit(e,...t){return this.#r.asyncEmit(e,t)}alter(e,t,...r){return this.#r.alter(e,t,r)}alterAsync(e,t,...r){return this.#r.asyncAlter(e,t,r)}async destroy(){await this.emit("$onDestroy"),L=void 0}ensureProvider(e,t=!1){return this.hasProvider(e)||!E.has(e)&&!t||this.addProvider(e),this.getProvider(e)}getInstance(e){return this.#t.get(e)}resolve(t,r=new h,o={}){const n=this.mapInvokeOptions(t,r,o);if(!n)return;const{token:i,deps:a,construct:c,imports:l,provider:p}=n;let d;p&&E.onInvoke(p,r,{...n,injector:this});let g=!1;try{const e=e=>(t,n)=>{if(g={token:t,index:n,deps:a},(0,u.isArray)(t))return this.getMany(t[0],r,o);const i=p?.store?.get(`${s}:${n}`)||o.useOpts;return(0,u.isInheritedFrom)(t,m,1)?p:this.invoke(t,r,{parent:e,useOpts:i})};l.forEach(e());const t=a.map(e(i));g=!1,d=c(t)}catch(e){T.throwInjectorError(i,g,e)}if(void 0===d)throw new T(i,`Unable to create new instance from undefined value. Check your provider declaration for ${(0,u.nameOf)(i)}`);return d&&(0,u.isClass)((0,u.classOf)(d))&&Reflect.defineProperty(d,e,{get:()=>({rebuild:o.rebuild,locals:r})}),d}resolveImportsProviders(){this.settings.imports=this.settings.imports?.filter((e=>(0,u.isObject)(e)&&"token"in e&&e.token!==M)).map((e=>{if((0,u.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,r){let o,n,i=r.imports,c=r.deps,h=r.scope;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(this.hasProvider(e)?n=this.getProvider(e):(n=new m(e),this.resolvers.forEach((r=>{const o=r.get(e,t.get(s));void 0!==o&&(n.useFactory=()=>o)}))),h=h||this.scopeOf(n),c=c||n.deps,i=i||n.imports,void 0!==n.useValue)o=()=>(0,u.isFunction)(n.useValue)?n.useValue():n.useValue;else if(n.useFactory)o=e=>n.useFactory(...e);else if(n.useAsyncFactory)o=async e=>(e=await Promise.all(e),n.useAsyncFactory(...e));else{if(!n.useClass)return!1;c=c||p(n.useClass),o=e=>new n.useClass(...e)}return{token:e,scope:h||u.Store.from(e).get("scope")||a.SINGLETON,deps:c||[],imports:i||[],construct:o,provider:n}}registerHooks(e,t){e.hooks&&Object.entries(e.hooks).forEach((([r,s])=>{this.#r.on(r,((...r)=>s(this.get(e.token)||t,...r)))}))}};function F(){return e=>class extends e{constructor(...t){super(...function(e,t){const r=new h,s=V.getInstance(),o=p(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,u.isArray)(t)?s.getMany(t[0],r,{parent:e}):s.invoke(t,r,{parent:e});n.push(i)}return n}(e,t))}}}function $(e,t){return V.getInstance().settings.get(e,t)}function U(e,t,r,s){const o=Symbol();(0,u.catchError)((()=>Reflect.deleteProperty(e,t))),Reflect.defineProperty(e,t,{get(){if(void 0!==this[o])return this[o];const e=$(r,s);return this[o]=Object.freeze((0,u.deepClone)(e)),this[o]},set(e){void 0===($(r,s)||this[o])&&void 0!==e&&(this[o]=e)},enumerable:!0,configurable:!0})}function G(e,t){return(r,s)=>U(r,s,e,t)}V=M=function(e,t,r,s){var o,n=arguments.length,i=n<3?t:null===s?s=Object.getOwnPropertyDescriptor(t,r):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)i=Reflect.decorate(e,t,r,s);else for(var a=e.length-1;a>=0;a--)(o=e[a])&&(i=(n<3?o(i):n>3?o(t,r,i):o(t,r))||i);return n>3&&i&&Object.defineProperty(t,r,i),i}([b({scope:a.SINGLETON}),function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)}("design:paramtypes",[])],V);var K,q=o(953);function z(e){const{children:t=[],path:r,...s}=function(e){return"string"==typeof e||e instanceof RegExp||(0,u.isArrayOrArrayClass)(e)?{path:e}:e}(e);return(0,u.useDecorators)((e=>{P({provide:e,...s})}),r&&(0,q.Path)(r),(0,q.Children)(...t))}function H(e,t){return u.Store.fromMethod(e,t).get(i)}function B(t,r,s,o){const n=(0,u.classOf)(t),a=Reflect.getOwnPropertyDescriptor(n.prototype,r),c=a.value,h=Symbol();return u.Store.fromMethod(n,r).set(i,o),a.value=function(...n){const i=e=>{if(!e)return c.apply(this,n);throw e},a={target:t,propertyKey:r,args:n,options:o,next:i},u={rebuild:!!this[e]?.rebuild,locals:this[e]?.locals};return this[h]=this[h]||g(s,u),this[h].intercept({...a,options:o},i)},a}function J(e,t){return(...r)=>{const[s,o]=r;switch((0,u.decoratorTypeOf)(r)){case u.DecoratorTypes.CLASS:(0,u.decorateMethodsOf)(s,J(e,t));break;case u.DecoratorTypes.METHOD:return B(s,o,e,t)}}}function Q(){return b({type:c.INTERCEPTOR})}function W(e,t,{optional:r=!1,packageName:s=t.toString()}={}){return(o,n)=>{let i,a;(0,u.catchError)((()=>Reflect.deleteProperty(o,n))),Reflect.defineProperty(o,n,{async get(){if(!a){const o=V.getInstance(),n=await(0,u.importPackage)(s,t,r);if(a=n[e],!a&&!r)throw new Error(`Unable to lazy load the "${e}". The token isn't a valid token provider.`);i=a?await o.lazyInvoke(a):{}}return i}})}}function Y(e,t){return W(e,t,{optional:!0})}function X(e={}){const{scopes:t,imports:r,resolvers:s,deps:o,scope:n,...i}=e;return(0,u.useDecorators)(v(i),b({type:c.MODULE,scope:a.SINGLETON,imports:r,deps:o,injectable:!1,resolvers:s}))}function Z(e=a.REQUEST){return(0,u.StoreSet)("scope",e)}function ee(e,t,r){Z(a.INSTANCE)((0,u.classOf)(e)),y(s)(e,t,r)}function te(e){return t=>{E.get(e).useClass=t}}function re(){return b()}function se(e){return(t,o,n)=>{switch((0,u.decoratorTypeOf)([t,o,n])){case u.DecoratorTypes.PARAM_CTOR:u.Store.from(t).merge(`${s}:${n}`,e);break;case u.DecoratorTypes.PROP:u.Store.from(t,o).set(r,e);break;default:throw new u.UnsupportedDecoratorType(se,[t,o,n])}}}function oe(e,t,r,s){const o={get:()=>V.getInstance().settings.get(r,s),set(e){V.getInstance().settings.set(r,e)},enumerable:!0,configurable:!0};(0,u.catchError)((()=>Reflect.deleteProperty(e,t))),(0,u.catchError)((()=>Reflect.defineProperty(e,t,o)))}function ne(e,t){return(r,s)=>oe(r,s,e,t)}class ie extends m{constructor(e,t={}){super(e,t),this.type=c.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(e){e.METHOD="method",e.PROPERTY="property",e.CONSTANT="constant",e.VALUE="value",e.INTERCEPTOR="interceptor"}(K||(K={}));const ae=Symbol.for("LOGGER");function ce(e={},t={}){return Object.entries(t).reduce(((e,[t,r])=>({...e,[t]:(e[t]||[]).concat(r)})),e)}function ue(e,t={}){const r=u.Store.from(e).get("configuration")||{};return{...r,...t,mount:ce(r.mount,t.mount)}}I({provide:ae,deps:[V],useFactory:e=>e.logger})})(),n})()));
|
|
2
2
|
//# sourceMappingURL=di.umd.min.js.map
|