@decaf-ts/for-nest 0.1.6 → 0.1.7

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.
Files changed (33) hide show
  1. package/dist/for-nest.cjs +1 -1
  2. package/dist/for-nest.cjs.map +1 -1
  3. package/dist/for-nest.js +1 -1
  4. package/dist/for-nest.js.map +1 -1
  5. package/lib/constants.cjs +4 -1
  6. package/lib/constants.d.ts +3 -0
  7. package/lib/constants.js.map +1 -1
  8. package/lib/decaf-model/FromModelController.cjs +2 -0
  9. package/lib/decaf-model/FromModelController.js.map +1 -1
  10. package/lib/decaf-model/decorators/decorators.cjs +60 -0
  11. package/lib/decaf-model/decorators/decorators.d.ts +46 -0
  12. package/lib/decaf-model/decorators/decorators.js.map +1 -0
  13. package/lib/esm/constants.d.ts +3 -0
  14. package/lib/esm/constants.js +3 -0
  15. package/lib/esm/constants.js.map +1 -1
  16. package/lib/esm/decaf-model/FromModelController.js +2 -0
  17. package/lib/esm/decaf-model/FromModelController.js.map +1 -1
  18. package/lib/esm/decaf-model/decorators/decorators.d.ts +46 -0
  19. package/lib/esm/decaf-model/decorators/decorators.js +55 -0
  20. package/lib/esm/decaf-model/decorators/decorators.js.map +1 -0
  21. package/lib/esm/index.d.ts +1 -1
  22. package/lib/esm/index.js +1 -1
  23. package/lib/esm/interceptors/AuthInterceptor.d.ts +10 -0
  24. package/lib/esm/interceptors/AuthInterceptor.js +37 -0
  25. package/lib/esm/interceptors/AuthInterceptor.js.map +1 -0
  26. package/lib/esm/types.d.ts +45 -1
  27. package/lib/index.cjs +1 -1
  28. package/lib/index.d.ts +1 -1
  29. package/lib/interceptors/AuthInterceptor.cjs +40 -0
  30. package/lib/interceptors/AuthInterceptor.d.ts +10 -0
  31. package/lib/interceptors/AuthInterceptor.js.map +1 -0
  32. package/lib/types.d.ts +45 -1
  33. package/package.json +1 -1
package/dist/for-nest.cjs CHANGED
@@ -1,2 +1,2 @@
1
- var e,t;e=this,t=function(e,t,o,r,s,a,i,n,c,p,d,l,u,h){"use strict";function g(e){if(e&&e.__esModule)return e;var t=Object.create(null);return e&&Object.keys(e).forEach(o=>{if("default"!==o){var r=Object.getOwnPropertyDescriptor(e,o);Object.defineProperty(t,o,r.get?r:{enumerable:!0,get:()=>e[o]})}}),t.default=e,Object.freeze(t)}var f=g(h);t.Decoration.for(o.InjectablesKeys.INJECTABLE).extend({decorator:(e,t)=>(t=t||("object"==typeof e?Object.assign(e,o.DefaultInjectablesConfig):o.DefaultInjectablesConfig),r.Injectable({scope:t.singleton?r.Scope.DEFAULT:r.Scope.REQUEST,durable:!t.singleton||void 0}))}).apply(),t.Decoration.for(o.InjectablesKeys.INJECT).extend({decorator:(e,t)=>(t,o,s)=>r.Inject(e||t)(t,o,s)}).apply(),t.Decoration.for(s.ValidationKeys.REQUIRED).extend(i.ApiProperty({required:!0})).apply(),t.Decoration.for(s.ValidationKeys.MAX).extend({decorator:e=>i.ApiProperty({maximum:e})}).apply(),t.Decoration.for(s.ValidationKeys.MIN).extend({decorator:e=>i.ApiProperty({minimum:e})}).apply(),t.Decoration.for(s.ValidationKeys.MAX_LENGTH).extend({decorator:e=>i.ApiProperty({maxLength:e})}).apply(),t.Decoration.for(s.ValidationKeys.MIN_LENGTH).extend({decorator:e=>i.ApiProperty({minLength:e})}).apply(),t.Decoration.for(s.ValidationKeys.LIST).extend({decorator:e=>{const t=Array.isArray(e)?e[0]:e;return i.ApiProperty({type:[t]})}}).apply(),t.Decoration.for(s.ValidationKeys.PATTERN).extend({decorator:e=>i.ApiProperty({pattern:"string"==typeof e?e:e.source})}).apply(),t.Decoration.for(a.PersistenceKeys.COLUMN).extend({decorator:e=>i.ApiProperty({name:e})}).apply(),t.Decoration.for(t.DecorationKeys.DESCRIPTION).extend({decorator:e=>i.ApiProperty({description:e})}).apply();const m="DecafModuleOptions",y="DecafAdapter",E=Symbol("DecafHandlers"),_=Symbol("DecafAdapterForOptions");var A;let b=class{static{A=this}static{this._adapterInstance=null}static get log(){return this._logger||(this._logger=p.Logging.for(A)),this._logger}constructor(e,t){this.options=e,this.moduleRef=t}static async createAdapter(e){if(!this._adapterInstance){const t=this.log.for(this.createAdapter);t.info("Creating adapter instance..."),this._adapterInstance=new e.adapter(e.conf,e.alias),t.info("Adapter instance created successfully!")}return this._adapterInstance}static getAdapterInstance(){return this._adapterInstance}static forRoot(e){const t={provide:m,useValue:e},o={useFactory:async e=>A.createAdapter(e),provide:y,durable:!0,scope:r.Scope.DEFAULT,inject:[m]};return{module:A,providers:[o,t],exports:[o]}}async onApplicationShutdown(){const e=A.log.for(this.onApplicationShutdown),t=this.moduleRef.get(y);try{t&&(e.info("Shutting down"),await t.shutdown(),A._adapterInstance=null)}catch(t){e.error("Failed to shutdown application",t)}}};function R(e,o){const{handler:r,args:s}=t.Metadata.get(e,l.OperationKeys.REFLECT+l.OperationKeys.BLOCK)||{};return!!r&&(r(...s,o)??!1)}function w(e,t,o){const s={GET:[l.OperationKeys.READ,r.Get],POST:[l.OperationKeys.CREATE,r.Post],PUT:[l.OperationKeys.UPDATE,r.Put],PATCH:[l.OperationKeys.UPDATE,r.Patch],DELETE:[l.OperationKeys.DELETE,r.Delete]},[a,n]=s[t];return R(e,a)?d.apply(i.ApiExcludeEndpoint()):d.apply(n(o))}function P(e=[]){const t=e.map(e=>i.ApiParam({name:e.name,description:e.description??"Path parameter: "+e.name,required:e.required??!0,type:e.type??String}));return r.applyDecorators(...t)}b=A=n.__decorate([r.Global(),r.Module({}),n.__param(0,r.Inject(m)),n.__metadata("design:paramtypes",[Object,c.ModuleRef])],b);const D=r.createParamDecorator((e,t)=>{const o=t.switchToHttp().getRequest(),r=o?.params??{},s=e??Object.keys(r),a=s.map(e=>r[e]);return{original:r,ordered:a,order:s}});function O(e=[]){const t=e.map(e=>e.name);return D(t)}e.DecafRequestContext=class{constructor(){this.cache=new Map}set(e,t){this.cache.set(e,t)}get(e){return this.cache.get(e)}},e.DecafRequestContext=n.__decorate([r.Injectable({scope:r.Scope.REQUEST})],e.DecafRequestContext),e.DecafHandlerExecutor=class{constructor(e,t){this.handlers=e,this.context=t}async exec(e,t){for(const o of this.handlers)await o.handle(this.context,e,t)}},e.DecafHandlerExecutor=n.__decorate([r.Injectable({scope:r.Scope.REQUEST}),n.__param(0,r.Inject(E)),n.__metadata("design:paramtypes",[Array,e.DecafRequestContext])],e.DecafHandlerExecutor);class T{static{this.log=p.Logging.for(T.name)}static create(t){const o=T.log.for(T.create),c=s.Model.tableName(t),d=p.toKebabCase(c),u=t.name,{description:h,getPK:g,apiProperties:f,path:m}=T.getRouteParametersFromModel(t);o.debug("Creating controller for model: "+u);let y=class extends p.LoggedClass{constructor(e){super(),this.clientContext=e,this.pk=s.Model.pk(t),o.info(`Registering dynamic controller for model: ${u} route: /${d}`)}get persistence(){this._persistence||(this._persistence=a.ModelService.getService(t)||a.Repository.forModel(t));const e=this.clientContext.get(_);return e?this._persistence.for(e):this._persistence}async create(e){const t=this.log.for(this.create);let o;t.verbose("creating new "+u);try{o=await this.persistence.create(e)}catch(e){throw t.error("Failed to create new "+u,e),e}return t.info(`created new ${u} with id ${o[this.pk]}`),o}async read(e){const t=g(...e.ordered);if(void 0===t)throw new l.ValidationError(`No ${this.pk} provided`);const o=this.log.for(this.read);let r;try{o.debug(`reading ${u} with ${this.pk} ${t}`),r=await this.persistence.read(t)}catch(e){throw o.error(`Failed to read ${u} with id ${t}`,e),e}return o.info(`read ${u} with id ${r[this.pk]}`),r}async query(e){const t=this.log.for(this.read);let o;try{t.debug(`Querying ${u} using method "${e}"`);const r=[e];o=await this.persistence.query(...r)}catch(o){throw t.error(`Failed to query ${u} using method "${e}"`,o),o}return t.info(`Successfully queried ${u} using method "${e}"`),o}async update(e,o){const r=this.log.for(this.update),s=g(...e.ordered);if(void 0===s)throw new l.ValidationError(`No ${this.pk} provided`);let a;try{r.info(`updating ${u} with ${this.pk} ${s}`),a=await this.persistence.update(new t({...o,[this.pk]:s}))}catch(e){throw r.error(e),e}return a}async delete(e){const t=this.log.for(this.delete),o=g(...e.ordered);if(void 0===o)throw new l.ValidationError(`No ${this.pk} provided`);let r;try{t.debug(`deleting ${u} with ${this.pk} ${o}`),r=await this.persistence.delete(o)}catch(e){throw t.error(`Failed to delete ${u} with id ${o}`,e),e}return t.info(`deleted ${u} with id ${o}`),r}};return n.__decorate([w(t,"POST"),i.ApiOperation({summary:`Create a new ${u}.`}),i.ApiBody({description:"Payload for "+u,schema:{$ref:i.getSchemaPath(t)}}),i.ApiCreatedResponse({description:u+" created successfully."}),i.ApiBadRequestResponse({description:"Payload validation failed."}),i.ApiUnprocessableEntityResponse({description:"Repository rejected the provided payload."}),n.__param(0,r.Body()),n.__metadata("design:type",Function),n.__metadata("design:paramtypes",[Object]),n.__metadata("design:returntype",Promise)],y.prototype,"create",null),n.__decorate([w(t,"GET",m),P(f),i.ApiOperation({summary:`Retrieve a ${u} record by id.`}),i.ApiOkResponse({description:u+" retrieved successfully."}),i.ApiNotFoundResponse({description:`No ${u} record matches the provided identifier.`}),n.__param(0,O(f)),n.__metadata("design:type",Function),n.__metadata("design:paramtypes",[Object]),n.__metadata("design:returntype",Promise)],y.prototype,"read",null),n.__decorate([w(t,"GET","query/:method"),i.ApiOperation({summary:`Retrieve ${u} records by query.`}),i.ApiParam({name:"method",description:"Query method to be called"}),i.ApiOkResponse({description:u+" retrieved successfully."}),i.ApiNotFoundResponse({description:`No ${u} records matches the query.`}),n.__param(0,r.Param("method")),n.__metadata("design:type",Function),n.__metadata("design:paramtypes",[String]),n.__metadata("design:returntype",Promise)],y.prototype,"query",null),n.__decorate([w(t,"PUT",m),P(f),i.ApiOperation({summary:`Replace an existing ${u} record with a new payload.`}),i.ApiBody({description:"Payload for replace a existing record of "+u,schema:{$ref:i.getSchemaPath(t)}}),i.ApiOkResponse({description:t+" record replaced successfully."}),i.ApiNotFoundResponse({description:`No ${u} record matches the provided identifier.`}),i.ApiBadRequestResponse({description:"Payload validation failed."}),n.__param(0,O(f)),n.__param(1,r.Body()),n.__metadata("design:type",Function),n.__metadata("design:paramtypes",[Object,s.Model]),n.__metadata("design:returntype",Promise)],y.prototype,"update",null),n.__decorate([w(t,"DELETE",m),P(f),i.ApiOperation({summary:`Delete a ${u} record by id.`}),i.ApiOkResponse({description:u+" record deleted successfully."}),i.ApiNotFoundResponse({description:`No ${u} record matches the provided identifier.`}),n.__param(0,O(f)),n.__metadata("design:type",Function),n.__metadata("design:paramtypes",[Object]),n.__metadata("design:returntype",Promise)],y.prototype,"delete",null),y=n.__decorate([r.Controller(d),i.ApiTags(u),i.ApiExtraModels(t),n.__metadata("design:paramtypes",[e.DecafRequestContext])],y),y}static getRouteParametersFromModel(e){const o=s.Model.pk(e),r=t.Metadata.get(e,t.Metadata.key(l.DBKeys.COMPOSED,o)),a=r?.args??[],i=Array.isArray(a)&&a.length>0?[...a]:[o],n=t.Metadata.description(e),c=Array.from(new Set(i));return{path:c.map(e=>":"+e).join("/"),description:n,apiProperties:c.map(o=>({name:o,description:t.Metadata.description(e,o),required:!0,type:String})),getPK:(...e)=>r?.separator?e.join(r.separator):e.join("")}}}var S,F;e.DecafRequestHandlerInterceptor=class{constructor(e){this.executor=e}async intercept(e,t){const o=e.switchToHttp().getRequest(),r=e.switchToHttp().getResponse();return await this.executor.exec(o,r),t.handle()}},e.DecafRequestHandlerInterceptor=n.__decorate([r.Injectable({scope:r.Scope.REQUEST}),n.__metadata("design:paramtypes",[e.DecafHandlerExecutor])],e.DecafRequestHandlerInterceptor),e.DecafModelModule=class{static{S=this}static{this.log=p.Logging.for(S.name)}static createModelServices(e){return e.map(e=>({provide:e.name+"Service",useFactory:()=>a.ModelService.forModel(e)}))}static forRoot(t,o=[]){const r=this.log.for(this.forRoot);r.info("Generating controllers for flavour...");const s=a.Adapter.models(t),i=this.createModelServices(s),n=s.map(T.create);return r.info(`Generated ${n.length} controllers`),{module:S,controllers:n,providers:[{provide:E,useFactory:()=>o.map(e=>(r.info("Registered request handler: "+e.name),new e))},e.DecafRequestContext,e.DecafHandlerExecutor,{provide:c.APP_INTERCEPTOR,useClass:e.DecafRequestHandlerInterceptor},...i]}}},e.DecafModelModule=S=n.__decorate([r.Module({})],e.DecafModelModule),e.DecafModule=F=class{static async forRootAsync(t){const{autoControllers:o}=t,r=(await b.createAdapter(t)).flavour,s=[b.forRoot(t)];return o&&s.push(e.DecafModelModule.forRoot(r,t.handlers)),{module:F,imports:s}}},e.DecafModule=F=n.__decorate([r.Module({})],e.DecafModule);class C extends a.ForbiddenError{constructor(e){super(e,C.name)}}class x{constructor(e,t){const o=t?.status??r.HttpStatus.INTERNAL_SERVER_ERROR,s=t?.message??"Internal Server Error",a=(t?.error??r.HttpStatus[o]??"HTTP_EXCEPTION").toString().toUpperCase();Object.assign(this,{status:o,message:s,error:a,timestamp:(new Date).toISOString(),path:e.url,method:e.method})}}class I extends Error{constructor(e="Unauthorized"){super(e),this.name="AuthorizationError",this.status=401,this.code="UNAUTHORIZED",Object.setPrototypeOf(this,I.prototype)}}e.AuthorizationExceptionFilter=class{catch(e,t){const o=t.switchToHttp(),s=o.getRequest(),a=o.getResponse(),i=new x(s,{error:"UNAUTHORIZED",status:r.HttpStatus.UNAUTHORIZED,message:e.message});a.status(r.HttpStatus.UNAUTHORIZED).json(i)}},e.AuthorizationExceptionFilter=n.__decorate([r.Catch(I)],e.AuthorizationExceptionFilter);class v extends Error{constructor(e="Conflict"){super(e),this.name="ConflictError",this.status=409,this.code="CONFLICT",Object.setPrototypeOf(this,v.prototype)}}e.ConflictExceptionFilter=class{catch(e,t){const o=t.switchToHttp(),s=o.getResponse(),a=o.getRequest(),i=new x(a,{status:r.HttpStatus.CONFLICT,message:e.message,error:"CONFLICT"});s.status(i.status).json(i)}},e.ConflictExceptionFilter=n.__decorate([r.Catch(v)],e.ConflictExceptionFilter),e.GlobalExceptionFilter=class{catch(e,t){const o=t.switchToHttp(),s=o.getRequest(),a=o.getResponse();let i,n=r.HttpStatus.INTERNAL_SERVER_ERROR,c="Internal Server Error";if(e instanceof r.HttpException){const t=e.getResponse();n=e.getStatus(),c=(t?.message||e.message)??c,i=t?.error??e.name}else e instanceof Error&&(c=e.message,i=e.name);const p=new x(s,{status:n,message:c,error:i});a.status(p.status).json(p)}},e.GlobalExceptionFilter=n.__decorate([r.Catch()],e.GlobalExceptionFilter),e.HttpExceptionFilter=class{catch(e,t){const o=t.switchToHttp(),r=o.getResponse(),s=o.getRequest(),a=e.getStatus(),i=new x(s,{status:a,message:e.message,error:e.name});r.status(i.status).json(i)}},e.HttpExceptionFilter=n.__decorate([r.Catch(r.HttpException)],e.HttpExceptionFilter);class N extends Error{constructor(e="Resource not found"){super(e),this.name="NotFoundError",this.status=404,this.code="NOT_FOUND",Object.setPrototypeOf(this,N.prototype)}}e.NotFoundExceptionFilter=class{catch(e,t){const o=t.switchToHttp(),s=o.getResponse(),a=o.getRequest(),i=new x(a,{status:r.HttpStatus.NOT_FOUND,message:e.message,error:"NOT_FOUND"});s.status(i.status).json(i)}},e.NotFoundExceptionFilter=n.__decorate([r.Catch(N)],e.NotFoundExceptionFilter);class j extends Error{constructor(e="Validation failed"){super(e),this.name="ValidationError",this.status=422,this.code="VALIDATION_ERROR",Object.setPrototypeOf(this,j.prototype)}}e.ValidationExceptionFilter=class{catch(e,t){const o=t.switchToHttp(),s=o.getResponse(),a=o.getRequest(),i=new x(a,{status:r.HttpStatus.UNPROCESSABLE_ENTITY,message:e.message,error:"VALIDATION_ERROR"});s.status(i.status).json(i)}},e.ValidationExceptionFilter=n.__decorate([r.Catch(j)],e.ValidationExceptionFilter);const M={title:"Swagger | OpenAPI Specification (OAS)",description:"Standardized format for describing RESTful APIs",version:"0.0.1",path:"docs",faviconFilePath:"",topbarIconFilePath:"",auth:{type:"http",scheme:"bearer",bearerFormat:"JWT",name:"Authorization",description:"Enter JWT token",in:"header"},persistAuthorization:!0,topbarBgColor:"#000000"};class q{constructor(e){this.options={...e}}customCSS(){let e="";return this.options.topbarIconPath&&(e+=`.topbar-wrapper { content: url('data:image/png;base64,${this.b64(this.options.topbarIconPath)}'); width: 200px; height: auto; }\n`),e+`\n .topbar-wrapper svg { visibility: hidden; }\n .swagger-ui .topbar { background-color: ${this.options.topbarBgColor||M.topbarBgColor}; }\n `}getCustomOptions(){const e={};return this.options.faviconPath&&(e.customfavIcon=this.b64(this.options.faviconPath,!0)),{customSiteTitle:this.options.title,...e,customCss:this.customCSS(),swaggerOptions:{persistAuthorization:this.options.persistAuthorization},jsonDocumentUrl:this.options.path?this.options.path+"/spec.json":void 0,yamlDocumentUrl:this.options.path?this.options.path+"/spec.yaml":void 0}}b64(e,t=!1){const o=f.join(this.options.assetsPath||"",e),r=u.readFileSync(o,{encoding:"base64"});return t?"data:image/png;base64,"+r:r}}class ${constructor(e,t){this.app=e,this.options=t}createDocument(){const e=this.options.path?this.options.description+""+`<br><br><a href="${this.options.path}/spec.json">OpenAPI JSON Spec</a> | `+`<a href="${this.options.path}/spec.yaml">OpenAPI YAML Spec</a>`:this.options.description,t=(new i.DocumentBuilder).setTitle(this.options.title).setDescription(e).setVersion(this.options.version||"0.0.1").addBearerAuth(this.options.auth||M.auth).build();return i.SwaggerModule.createDocument(this.app,t,{extraModels:this.options.extraModels||[]})}setupSwagger(){const e=this.createDocument(),t=new q({title:this.options.title,path:this.options.path||M.path,persistAuthorization:this.options.persistAuthorization??!0,assetsPath:this.options.assetsPath,faviconPath:this.options.faviconFilePath,topbarIconPath:this.options.topbarIconFilePath,topbarBgColor:this.options.topbarBgColor});i.SwaggerModule.setup(this.options.path||M.path,this.app,e,{...t.getCustomOptions()})}}const H="##VERSION##",L="##PACKAGE##";t.Metadata.registerLibrary(L,H),e.ApiOperationFromModel=w,e.ApiParamsFromModel=P,e.AuthorizationError=I,e.ConflictError=v,e.CorsError=C,e.DECAF_ADAPTER_ID=y,e.DECAF_ADAPTER_OPTIONS=_,e.DECAF_HANDLERS=E,e.DECAF_MODULE_OPTIONS=m,e.DecafParams=O,e.FromModelController=T,e.HttpResponseError=x,e.NestBootstraper=class{static get logger(){return this._logger||(this._logger=new r.Logger("NestBootstrap")),this._logger}static initialize(e){return this.app=e,this}static enableLogger(e){return this._logger=e||new r.Logger("NestBootstrap"),this.app.useLogger(this._logger),this}static enableCors(e=[],t=["GET","POST","PUT","DELETE"]){const o="*"===e?"*":e.map(e=>e.trim().toLowerCase()),r={origin:(e,t)=>e?"*"===o||Array.isArray(o)&&o.includes(e.toLowerCase())?t(null,!0):void t(new C(`Origin ${e} not allowed`)):t(null,!0),credentials:!0,methods:t.join(",")};return this.app.enableCors(r),this}static useHelmet(e){try{const t=require("helmet");this.app.use(t(e)),this.logger.log("Helmet middleware enabled successfully.")}catch(e){this.logger.warn("Helmet not installed. Skipping middleware.")}return this}static setupSwagger(e){return new $(this.app,{title:e.title,description:e.description,version:e.version,path:e.path||"api",persistAuthorization:e.persistAuthorization??!0,assetsPath:e.assetsPath,faviconFilePath:e.faviconPath,topbarIconFilePath:e.topbarIconPath,topbarBgColor:e.topbarBgColor}).setupSwagger(),this}static useGlobalPipes(...e){return e.length>0&&this.app.useGlobalPipes(...e),this}static useGlobalFilters(...t){const o=[new e.HttpExceptionFilter,new e.ValidationExceptionFilter,new e.NotFoundExceptionFilter,new e.ConflictExceptionFilter,new e.AuthorizationExceptionFilter,new e.GlobalExceptionFilter];return this.app.useGlobalFilters(...t.length>0?t:o),this}static useGlobalInterceptors(...e){return e.length>0&&this.app.useGlobalInterceptors(...e),this}static async start(e=Number(process.env.PORT)||3e3,t=void 0,o=!0){this.app.listen(e,t).then(async()=>{if(o){const e=await this.app.getUrl();this.logger.log("\ud83d\ude80 Application is running at: "+e)}})}},e.NotFoundError=N,e.PACKAGE_NAME=L,e.SwaggerBuilder=$,e.VERSION=H,e.ValidationError=j,e.isOperationBlocked=R,e.repoForModel=e=>{const t=s.Model.get(e);if(!t)throw new l.InternalError("Failed to find repository for "+e);return a.Repository.forModel(t)}},"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("@decaf-ts/decoration"),require("@decaf-ts/injectable-decorators"),require("@nestjs/common"),require("@decaf-ts/decorator-validation"),require("@decaf-ts/core"),require("@nestjs/swagger"),require("tslib"),require("@nestjs/core"),require("@decaf-ts/logging"),require("@decaf-ts/reflection"),require("@decaf-ts/db-decorators"),require("fs"),require("path")):"function"==typeof define&&define.amd?define(["exports","@decaf-ts/decoration","@decaf-ts/injectable-decorators","@nestjs/common","@decaf-ts/decorator-validation","@decaf-ts/core","@nestjs/swagger","tslib","@nestjs/core","@decaf-ts/logging","@decaf-ts/reflection","@decaf-ts/db-decorators","fs","path"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self)["for-nest"]={},e.decafTsDecoration,e.decafTsInjectableDecorators,e.nestjsCommon,e.decafTsDecoratorValidation,e.decafTsCore,e.nestjsSwagger,e.tslib,e.nestjsCore,e.decafTsLogging,e.decafTsReflection,e.decafTsDbDecorators,e.fs,e.path);
1
+ var e,t;e=this,t=function(e,t,o,r,s,a,i,n,c,p,d,l,u,h){"use strict";function g(e){if(e&&e.__esModule)return e;var t=Object.create(null);return e&&Object.keys(e).forEach(o=>{if("default"!==o){var r=Object.getOwnPropertyDescriptor(e,o);Object.defineProperty(t,o,r.get?r:{enumerable:!0,get:()=>e[o]})}}),t.default=e,Object.freeze(t)}var f=g(h);t.Decoration.for(o.InjectablesKeys.INJECTABLE).extend({decorator:(e,t)=>(t=t||("object"==typeof e?Object.assign(e,o.DefaultInjectablesConfig):o.DefaultInjectablesConfig),r.Injectable({scope:t.singleton?r.Scope.DEFAULT:r.Scope.REQUEST,durable:!t.singleton||void 0}))}).apply(),t.Decoration.for(o.InjectablesKeys.INJECT).extend({decorator:(e,t)=>(t,o,s)=>r.Inject(e||t)(t,o,s)}).apply(),t.Decoration.for(s.ValidationKeys.REQUIRED).extend(i.ApiProperty({required:!0})).apply(),t.Decoration.for(s.ValidationKeys.MAX).extend({decorator:e=>i.ApiProperty({maximum:e})}).apply(),t.Decoration.for(s.ValidationKeys.MIN).extend({decorator:e=>i.ApiProperty({minimum:e})}).apply(),t.Decoration.for(s.ValidationKeys.MAX_LENGTH).extend({decorator:e=>i.ApiProperty({maxLength:e})}).apply(),t.Decoration.for(s.ValidationKeys.MIN_LENGTH).extend({decorator:e=>i.ApiProperty({minLength:e})}).apply(),t.Decoration.for(s.ValidationKeys.LIST).extend({decorator:e=>{const t=Array.isArray(e)?e[0]:e;return i.ApiProperty({type:[t]})}}).apply(),t.Decoration.for(s.ValidationKeys.PATTERN).extend({decorator:e=>i.ApiProperty({pattern:"string"==typeof e?e:e.source})}).apply(),t.Decoration.for(a.PersistenceKeys.COLUMN).extend({decorator:e=>i.ApiProperty({name:e})}).apply(),t.Decoration.for(t.DecorationKeys.DESCRIPTION).extend({decorator:e=>i.ApiProperty({description:e})}).apply();const m="DecafModuleOptions",y="DecafAdapter",_=Symbol("DecafHandlers"),E=Symbol("DecafAdapterForOptions"),A=Symbol("AUTH_HANDLER"),R="auth:meta";var b;let w=class{static{b=this}static{this._adapterInstance=null}static get log(){return this._logger||(this._logger=p.Logging.for(b)),this._logger}constructor(e,t){this.options=e,this.moduleRef=t}static async createAdapter(e){if(!this._adapterInstance){const t=this.log.for(this.createAdapter);t.info("Creating adapter instance..."),this._adapterInstance=new e.adapter(e.conf,e.alias),t.info("Adapter instance created successfully!")}return this._adapterInstance}static getAdapterInstance(){return this._adapterInstance}static forRoot(e){const t={provide:m,useValue:e},o={useFactory:async e=>b.createAdapter(e),provide:y,durable:!0,scope:r.Scope.DEFAULT,inject:[m]};return{module:b,providers:[o,t],exports:[o]}}async onApplicationShutdown(){const e=b.log.for(this.onApplicationShutdown),t=this.moduleRef.get(y);try{t&&(e.info("Shutting down"),await t.shutdown(),b._adapterInstance=null)}catch(t){e.error("Failed to shutdown application",t)}}};function D(e,o){const{handler:r,args:s}=t.Metadata.get(e,l.OperationKeys.REFLECT+l.OperationKeys.BLOCK)||{};return!!r&&(r(...s,o)??!1)}function P(e,t,o){const s={GET:[l.OperationKeys.READ,r.Get],POST:[l.OperationKeys.CREATE,r.Post],PUT:[l.OperationKeys.UPDATE,r.Put],PATCH:[l.OperationKeys.UPDATE,r.Patch],DELETE:[l.OperationKeys.DELETE,r.Delete]},[a,n]=s[t];return D(e,a)?d.apply(i.ApiExcludeEndpoint()):d.apply(n(o))}function O(e=[]){const t=e.map(e=>i.ApiParam({name:e.name,description:e.description??"Path parameter: "+e.name,required:e.required??!0,type:e.type??String}));return r.applyDecorators(...t)}w=b=n.__decorate([r.Global(),r.Module({}),n.__param(0,r.Inject(m)),n.__metadata("design:paramtypes",[Object,c.ModuleRef])],w);const T=r.createParamDecorator((e,t)=>{const o=t.switchToHttp().getRequest(),r=o?.params??{},s=e??Object.keys(r),a=s.map(e=>r[e]);return{original:r,ordered:a,order:s}});function S(e=[]){const t=e.map(e=>e.name);return T(t)}e.DecafRequestContext=class{constructor(){this.cache=new Map}set(e,t){this.cache.set(e,t)}get(e){return this.cache.get(e)}},e.DecafRequestContext=n.__decorate([r.Injectable({scope:r.Scope.REQUEST})],e.DecafRequestContext),e.DecafHandlerExecutor=class{constructor(e,t){this.handlers=e,this.context=t}async exec(e,t){for(const o of this.handlers)await o.handle(this.context,e,t)}},e.DecafHandlerExecutor=n.__decorate([r.Injectable({scope:r.Scope.REQUEST}),n.__param(0,r.Inject(_)),n.__metadata("design:paramtypes",[Array,e.DecafRequestContext])],e.DecafHandlerExecutor);let C=class{constructor(e,t){this.reflector=e,this.authHandler=t}async intercept(e,t){const o=this.reflector.get(R,e.getHandler())??this.reflector.get(R,e.getClass());return o&&this.authHandler&&await this.authHandler.authorize(e,o),t.handle()}};function F(e){const t="string"==typeof e?e:e.name;return r.applyDecorators(r.SetMetadata(R,t),r.UseInterceptors(C))}C=n.__decorate([r.Injectable(),n.__param(1,r.Optional()),n.__param(1,r.Inject(A)),n.__metadata("design:paramtypes",[c.Reflector,Object])],C);class x{static{this.log=p.Logging.for(x.name)}static create(t){const o=x.log.for(x.create),c=s.Model.tableName(t),d=p.toKebabCase(c),u=t.name,{description:h,getPK:g,apiProperties:f,path:m}=x.getRouteParametersFromModel(t);o.debug("Creating controller for model: "+u);let y=class extends p.LoggedClass{constructor(e){super(),this.clientContext=e,this.pk=s.Model.pk(t),o.info(`Registering dynamic controller for model: ${u} route: /${d}`)}get persistence(){this._persistence||(this._persistence=a.ModelService.getService(t)||a.Repository.forModel(t));const e=this.clientContext.get(E);return e?this._persistence.for(e):this._persistence}async create(e){const t=this.log.for(this.create);let o;t.verbose("creating new "+u);try{o=await this.persistence.create(e)}catch(e){throw t.error("Failed to create new "+u,e),e}return t.info(`created new ${u} with id ${o[this.pk]}`),o}async read(e){const t=g(...e.ordered);if(void 0===t)throw new l.ValidationError(`No ${this.pk} provided`);const o=this.log.for(this.read);let r;try{o.debug(`reading ${u} with ${this.pk} ${t}`),r=await this.persistence.read(t)}catch(e){throw o.error(`Failed to read ${u} with id ${t}`,e),e}return o.info(`read ${u} with id ${r[this.pk]}`),r}async query(e){const t=this.log.for(this.read);let o;try{t.debug(`Querying ${u} using method "${e}"`);const r=[e];o=await this.persistence.query(...r)}catch(o){throw t.error(`Failed to query ${u} using method "${e}"`,o),o}return t.info(`Successfully queried ${u} using method "${e}"`),o}async update(e,o){const r=this.log.for(this.update),s=g(...e.ordered);if(void 0===s)throw new l.ValidationError(`No ${this.pk} provided`);let a;try{r.info(`updating ${u} with ${this.pk} ${s}`),a=await this.persistence.update(new t({...o,[this.pk]:s}))}catch(e){throw r.error(e),e}return a}async delete(e){const t=this.log.for(this.delete),o=g(...e.ordered);if(void 0===o)throw new l.ValidationError(`No ${this.pk} provided`);let r;try{t.debug(`deleting ${u} with ${this.pk} ${o}`),r=await this.persistence.delete(o)}catch(e){throw t.error(`Failed to delete ${u} with id ${o}`,e),e}return t.info(`deleted ${u} with id ${o}`),r}};return n.__decorate([P(t,"POST"),i.ApiOperation({summary:`Create a new ${u}.`}),i.ApiBody({description:"Payload for "+u,schema:{$ref:i.getSchemaPath(t)}}),i.ApiCreatedResponse({description:u+" created successfully."}),i.ApiBadRequestResponse({description:"Payload validation failed."}),i.ApiUnprocessableEntityResponse({description:"Repository rejected the provided payload."}),n.__param(0,r.Body()),n.__metadata("design:type",Function),n.__metadata("design:paramtypes",[Object]),n.__metadata("design:returntype",Promise)],y.prototype,"create",null),n.__decorate([P(t,"GET",m),O(f),i.ApiOperation({summary:`Retrieve a ${u} record by id.`}),i.ApiOkResponse({description:u+" retrieved successfully."}),i.ApiNotFoundResponse({description:`No ${u} record matches the provided identifier.`}),n.__param(0,S(f)),n.__metadata("design:type",Function),n.__metadata("design:paramtypes",[Object]),n.__metadata("design:returntype",Promise)],y.prototype,"read",null),n.__decorate([P(t,"GET","query/:method"),i.ApiOperation({summary:`Retrieve ${u} records by query.`}),i.ApiParam({name:"method",description:"Query method to be called"}),i.ApiOkResponse({description:u+" retrieved successfully."}),i.ApiNotFoundResponse({description:`No ${u} records matches the query.`}),n.__param(0,r.Param("method")),n.__metadata("design:type",Function),n.__metadata("design:paramtypes",[String]),n.__metadata("design:returntype",Promise)],y.prototype,"query",null),n.__decorate([P(t,"PUT",m),O(f),i.ApiOperation({summary:`Replace an existing ${u} record with a new payload.`}),i.ApiBody({description:"Payload for replace a existing record of "+u,schema:{$ref:i.getSchemaPath(t)}}),i.ApiOkResponse({description:t+" record replaced successfully."}),i.ApiNotFoundResponse({description:`No ${u} record matches the provided identifier.`}),i.ApiBadRequestResponse({description:"Payload validation failed."}),n.__param(0,S(f)),n.__param(1,r.Body()),n.__metadata("design:type",Function),n.__metadata("design:paramtypes",[Object,s.Model]),n.__metadata("design:returntype",Promise)],y.prototype,"update",null),n.__decorate([P(t,"DELETE",m),O(f),i.ApiOperation({summary:`Delete a ${u} record by id.`}),i.ApiOkResponse({description:u+" record deleted successfully."}),i.ApiNotFoundResponse({description:`No ${u} record matches the provided identifier.`}),n.__param(0,S(f)),n.__metadata("design:type",Function),n.__metadata("design:paramtypes",[Object]),n.__metadata("design:returntype",Promise)],y.prototype,"delete",null),y=n.__decorate([r.Controller(d),i.ApiTags(u),i.ApiExtraModels(t),F(t),n.__metadata("design:paramtypes",[e.DecafRequestContext])],y),y}static getRouteParametersFromModel(e){const o=s.Model.pk(e),r=t.Metadata.get(e,t.Metadata.key(l.DBKeys.COMPOSED,o)),a=r?.args??[],i=Array.isArray(a)&&a.length>0?[...a]:[o],n=t.Metadata.description(e),c=Array.from(new Set(i));return{path:c.map(e=>":"+e).join("/"),description:n,apiProperties:c.map(o=>({name:o,description:t.Metadata.description(e,o),required:!0,type:String})),getPK:(...e)=>r?.separator?e.join(r.separator):e.join("")}}}var I,N;e.DecafRequestHandlerInterceptor=class{constructor(e){this.executor=e}async intercept(e,t){const o=e.switchToHttp().getRequest(),r=e.switchToHttp().getResponse();return await this.executor.exec(o,r),t.handle()}},e.DecafRequestHandlerInterceptor=n.__decorate([r.Injectable({scope:r.Scope.REQUEST}),n.__metadata("design:paramtypes",[e.DecafHandlerExecutor])],e.DecafRequestHandlerInterceptor),e.DecafModelModule=class{static{I=this}static{this.log=p.Logging.for(I.name)}static createModelServices(e){return e.map(e=>({provide:e.name+"Service",useFactory:()=>a.ModelService.forModel(e)}))}static forRoot(t,o=[]){const r=this.log.for(this.forRoot);r.info("Generating controllers for flavour...");const s=a.Adapter.models(t),i=this.createModelServices(s),n=s.map(x.create);return r.info(`Generated ${n.length} controllers`),{module:I,controllers:n,providers:[{provide:_,useFactory:()=>o.map(e=>(r.info("Registered request handler: "+e.name),new e))},e.DecafRequestContext,e.DecafHandlerExecutor,{provide:c.APP_INTERCEPTOR,useClass:e.DecafRequestHandlerInterceptor},...i]}}},e.DecafModelModule=I=n.__decorate([r.Module({})],e.DecafModelModule),e.DecafModule=N=class{static async forRootAsync(t){const{autoControllers:o}=t,r=(await w.createAdapter(t)).flavour,s=[w.forRoot(t)];return o&&s.push(e.DecafModelModule.forRoot(r,t.handlers)),{module:N,imports:s}}},e.DecafModule=N=n.__decorate([r.Module({})],e.DecafModule);class v extends a.ForbiddenError{constructor(e){super(e,v.name)}}class j{constructor(e,t){const o=t?.status??r.HttpStatus.INTERNAL_SERVER_ERROR,s=t?.message??"Internal Server Error",a=(t?.error??r.HttpStatus[o]??"HTTP_EXCEPTION").toString().toUpperCase();Object.assign(this,{status:o,message:s,error:a,timestamp:(new Date).toISOString(),path:e.url,method:e.method})}}class M extends Error{constructor(e="Unauthorized"){super(e),this.name="AuthorizationError",this.status=401,this.code="UNAUTHORIZED",Object.setPrototypeOf(this,M.prototype)}}e.AuthorizationExceptionFilter=class{catch(e,t){const o=t.switchToHttp(),s=o.getRequest(),a=o.getResponse(),i=new j(s,{error:"UNAUTHORIZED",status:r.HttpStatus.UNAUTHORIZED,message:e.message});a.status(r.HttpStatus.UNAUTHORIZED).json(i)}},e.AuthorizationExceptionFilter=n.__decorate([r.Catch(M)],e.AuthorizationExceptionFilter);class H extends Error{constructor(e="Conflict"){super(e),this.name="ConflictError",this.status=409,this.code="CONFLICT",Object.setPrototypeOf(this,H.prototype)}}e.ConflictExceptionFilter=class{catch(e,t){const o=t.switchToHttp(),s=o.getResponse(),a=o.getRequest(),i=new j(a,{status:r.HttpStatus.CONFLICT,message:e.message,error:"CONFLICT"});s.status(i.status).json(i)}},e.ConflictExceptionFilter=n.__decorate([r.Catch(H)],e.ConflictExceptionFilter),e.GlobalExceptionFilter=class{catch(e,t){const o=t.switchToHttp(),s=o.getRequest(),a=o.getResponse();let i,n=r.HttpStatus.INTERNAL_SERVER_ERROR,c="Internal Server Error";if(e instanceof r.HttpException){const t=e.getResponse();n=e.getStatus(),c=(t?.message||e.message)??c,i=t?.error??e.name}else e instanceof Error&&(c=e.message,i=e.name);const p=new j(s,{status:n,message:c,error:i});a.status(p.status).json(p)}},e.GlobalExceptionFilter=n.__decorate([r.Catch()],e.GlobalExceptionFilter),e.HttpExceptionFilter=class{catch(e,t){const o=t.switchToHttp(),r=o.getResponse(),s=o.getRequest(),a=e.getStatus(),i=new j(s,{status:a,message:e.message,error:e.name});r.status(i.status).json(i)}},e.HttpExceptionFilter=n.__decorate([r.Catch(r.HttpException)],e.HttpExceptionFilter);class q extends Error{constructor(e="Resource not found"){super(e),this.name="NotFoundError",this.status=404,this.code="NOT_FOUND",Object.setPrototypeOf(this,q.prototype)}}e.NotFoundExceptionFilter=class{catch(e,t){const o=t.switchToHttp(),s=o.getResponse(),a=o.getRequest(),i=new j(a,{status:r.HttpStatus.NOT_FOUND,message:e.message,error:"NOT_FOUND"});s.status(i.status).json(i)}},e.NotFoundExceptionFilter=n.__decorate([r.Catch(q)],e.NotFoundExceptionFilter);class $ extends Error{constructor(e="Validation failed"){super(e),this.name="ValidationError",this.status=422,this.code="VALIDATION_ERROR",Object.setPrototypeOf(this,$.prototype)}}e.ValidationExceptionFilter=class{catch(e,t){const o=t.switchToHttp(),s=o.getResponse(),a=o.getRequest(),i=new j(a,{status:r.HttpStatus.UNPROCESSABLE_ENTITY,message:e.message,error:"VALIDATION_ERROR"});s.status(i.status).json(i)}},e.ValidationExceptionFilter=n.__decorate([r.Catch($)],e.ValidationExceptionFilter);const L={title:"Swagger | OpenAPI Specification (OAS)",description:"Standardized format for describing RESTful APIs",version:"0.0.1",path:"docs",faviconFilePath:"",topbarIconFilePath:"",auth:{type:"http",scheme:"bearer",bearerFormat:"JWT",name:"Authorization",description:"Enter JWT token",in:"header"},persistAuthorization:!0,topbarBgColor:"#000000"};class U{constructor(e){this.options={...e}}customCSS(){let e="";return this.options.topbarIconPath&&(e+=`.topbar-wrapper { content: url('data:image/png;base64,${this.b64(this.options.topbarIconPath)}'); width: 200px; height: auto; }\n`),e+`\n .topbar-wrapper svg { visibility: hidden; }\n .swagger-ui .topbar { background-color: ${this.options.topbarBgColor||L.topbarBgColor}; }\n `}getCustomOptions(){const e={};return this.options.faviconPath&&(e.customfavIcon=this.b64(this.options.faviconPath,!0)),{customSiteTitle:this.options.title,...e,customCss:this.customCSS(),swaggerOptions:{persistAuthorization:this.options.persistAuthorization},jsonDocumentUrl:this.options.path?this.options.path+"/spec.json":void 0,yamlDocumentUrl:this.options.path?this.options.path+"/spec.yaml":void 0}}b64(e,t=!1){const o=f.join(this.options.assetsPath||"",e),r=u.readFileSync(o,{encoding:"base64"});return t?"data:image/png;base64,"+r:r}}class K{constructor(e,t){this.app=e,this.options=t}createDocument(){const e=this.options.path?this.options.description+""+`<br><br><a href="${this.options.path}/spec.json">OpenAPI JSON Spec</a> | `+`<a href="${this.options.path}/spec.yaml">OpenAPI YAML Spec</a>`:this.options.description,t=(new i.DocumentBuilder).setTitle(this.options.title).setDescription(e).setVersion(this.options.version||"0.0.1").addBearerAuth(this.options.auth||L.auth).build();return i.SwaggerModule.createDocument(this.app,t,{extraModels:this.options.extraModels||[]})}setupSwagger(){const e=this.createDocument(),t=new U({title:this.options.title,path:this.options.path||L.path,persistAuthorization:this.options.persistAuthorization??!0,assetsPath:this.options.assetsPath,faviconPath:this.options.faviconFilePath,topbarIconPath:this.options.topbarIconFilePath,topbarBgColor:this.options.topbarBgColor});i.SwaggerModule.setup(this.options.path||L.path,this.app,e,{...t.getCustomOptions()})}}const V="##VERSION##",B="##PACKAGE##";t.Metadata.registerLibrary(B,V),e.AUTH_HANDLER=A,e.AUTH_META_KEY=R,e.ApiOperationFromModel=P,e.ApiParamsFromModel=O,e.AuthRole="AuthRole",e.AuthorizationError=M,e.ConflictError=H,e.CorsError=v,e.DECAF_ADAPTER_ID=y,e.DECAF_ADAPTER_OPTIONS=E,e.DECAF_HANDLERS=_,e.DECAF_MODULE_OPTIONS=m,e.DecafParams=S,e.FromModelController=x,e.HttpResponseError=j,e.NestBootstraper=class{static get logger(){return this._logger||(this._logger=new r.Logger("NestBootstrap")),this._logger}static initialize(e){return this.app=e,this}static enableLogger(e){return this._logger=e||new r.Logger("NestBootstrap"),this.app.useLogger(this._logger),this}static enableCors(e=[],t=["GET","POST","PUT","DELETE"]){const o="*"===e?"*":e.map(e=>e.trim().toLowerCase()),r={origin:(e,t)=>e?"*"===o||Array.isArray(o)&&o.includes(e.toLowerCase())?t(null,!0):void t(new v(`Origin ${e} not allowed`)):t(null,!0),credentials:!0,methods:t.join(",")};return this.app.enableCors(r),this}static useHelmet(e){try{const t=require("helmet");this.app.use(t(e)),this.logger.log("Helmet middleware enabled successfully.")}catch(e){this.logger.warn("Helmet not installed. Skipping middleware.")}return this}static setupSwagger(e){return new K(this.app,{title:e.title,description:e.description,version:e.version,path:e.path||"api",persistAuthorization:e.persistAuthorization??!0,assetsPath:e.assetsPath,faviconFilePath:e.faviconPath,topbarIconFilePath:e.topbarIconPath,topbarBgColor:e.topbarBgColor}).setupSwagger(),this}static useGlobalPipes(...e){return e.length>0&&this.app.useGlobalPipes(...e),this}static useGlobalFilters(...t){const o=[new e.HttpExceptionFilter,new e.ValidationExceptionFilter,new e.NotFoundExceptionFilter,new e.ConflictExceptionFilter,new e.AuthorizationExceptionFilter,new e.GlobalExceptionFilter];return this.app.useGlobalFilters(...t.length>0?t:o),this}static useGlobalInterceptors(...e){return e.length>0&&this.app.useGlobalInterceptors(...e),this}static async start(e=Number(process.env.PORT)||3e3,t=void 0,o=!0){this.app.listen(e,t).then(async()=>{if(o){const e=await this.app.getUrl();this.logger.log("\ud83d\ude80 Application is running at: "+e)}})}},e.NotFoundError=q,e.PACKAGE_NAME=B,e.SwaggerBuilder=K,e.VERSION=V,e.ValidationError=$,e.isOperationBlocked=D,e.repoForModel=e=>{const t=s.Model.get(e);if(!t)throw new l.InternalError("Failed to find repository for "+e);return a.Repository.forModel(t)}},"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("@decaf-ts/decoration"),require("@decaf-ts/injectable-decorators"),require("@nestjs/common"),require("@decaf-ts/decorator-validation"),require("@decaf-ts/core"),require("@nestjs/swagger"),require("tslib"),require("@nestjs/core"),require("@decaf-ts/logging"),require("@decaf-ts/reflection"),require("@decaf-ts/db-decorators"),require("fs"),require("path")):"function"==typeof define&&define.amd?define(["exports","@decaf-ts/decoration","@decaf-ts/injectable-decorators","@nestjs/common","@decaf-ts/decorator-validation","@decaf-ts/core","@nestjs/swagger","tslib","@nestjs/core","@decaf-ts/logging","@decaf-ts/reflection","@decaf-ts/db-decorators","fs","path"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self)["for-nest"]={},e.decafTsDecoration,e.decafTsInjectableDecorators,e.nestjsCommon,e.decafTsDecoratorValidation,e.decafTsCore,e.nestjsSwagger,e.tslib,e.nestjsCore,e.decafTsLogging,e.decafTsReflection,e.decafTsDbDecorators,e.fs,e.path);
2
2
  //# sourceMappingURL=for-nest.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"for-nest.cjs","sources":["../src/decoration.ts","../src/constants.ts","../src/core-module.ts","../src/decaf-model/decorators/ApiOperationFromModel.ts","../src/decaf-model/decorators/ApiParamsFromModel.ts","../src/decaf-model/decorators/DecafParams.ts","../src/request/DecafRequestContext.ts","../src/request/DecafHandlerExecutor.ts","../src/decaf-model/FromModelController.ts","../src/interceptors/DecafRequestHandlerInterceptor.ts","../src/decaf-model/DecafModelModule.ts","../src/module.ts","../src/factory/errors/cors.ts","../src/factory/exceptions/HttpResponseError.ts","../src/factory/exceptions/AuthorizationExceptionFilter.ts","../src/factory/exceptions/ConflictExceptionFilter.ts","../src/factory/exceptions/GlobalExceptionFilter.ts","../src/factory/exceptions/HttpExceptionFilter.ts","../src/factory/exceptions/NotFoundExceptionFilter.ts","../src/factory/exceptions/ValidationExceptionFilter.ts","../src/factory/openapi/constants.ts","../src/factory/openapi/SwaggerCustomUI.ts","../src/factory/openapi/SwaggerBuilder.ts","../src/index.ts","../src/factory/NestBootstraper.ts","../src/utils.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null],"names":["Decoration","for","InjectablesKeys","INJECTABLE","extend","decorator","category","cfg","Object","assign","DefaultInjectablesConfig","Injectable","scope","singleton","Scope","DEFAULT","REQUEST","durable","undefined","apply","INJECT","target","propertyKey","descriptor","Inject","ValidationKeys","REQUIRED","ApiProperty","required","MAX","max","maximum","MIN","min","minimum","MAX_LENGTH","maxLength","MIN_LENGTH","minLength","LIST","clazz","c","Array","isArray","type","PATTERN","pat","pattern","source","PersistenceKeys","COLUMN","name","DecorationKeys","DESCRIPTION","description","DECAF_MODULE_OPTIONS","DECAF_ADAPTER_ID","DECAF_HANDLERS","Symbol","DECAF_ADAPTER_OPTIONS","DecafCoreModule","this","_adapterInstance","log","_logger","Logging","DecafCoreModule_1","constructor","options","moduleRef","createAdapter","info","adapter","conf","alias","getAdapterInstance","forRoot","typeOrmModuleOptions","provide","useValue","useFactory","async","opts","inject","module","providers","exports","onApplicationShutdown","get","shutdown","e","error","isOperationBlocked","ModelConstructor","op","handler","args","Metadata","OperationKeys","REFLECT","BLOCK","ApiOperationFromModel","verb","path","httpToCrud","GET","READ","Get","POST","CREATE","Post","PUT","UPDATE","Put","PATCH","Patch","DELETE","Delete","crudOp","HttpMethodDecorator","ApiExcludeEndpoint","ApiParamsFromModel","props","decorators","map","p","ApiParamDec","String","applyDecorators","__decorate","Global","Module","__param","ModuleRef","OrderedParams","createParamDecorator","order","ctx","req","switchToHttp","getRequest","original","params","orderList","keys","ordered","k","DecafParams","DecafRequestContext","cache","Map","set","key","value","DecafHandlerExecutor","handlers","context","exec","res","handle","FromModelController","create","ModelClazz","tableName","Model","routePath","toKebabCase","modelClazzName","getPK","apiProperties","getRouteParametersFromModel","debug","DynamicModelController","LoggedClass","clientContext","super","pk","persistence","_persistence","ModelService","getService","Repository","forModel","adapterOptions","data","created","verbose","read","routeParams","id","ValidationError","query","method","results","update","body","updated","delete","del","ApiOperation","summary","ApiBody","schema","$ref","getSchemaPath","ApiCreatedResponse","ApiBadRequestResponse","ApiUnprocessableEntityResponse","Body","prototype","ApiOkResponse","ApiNotFoundResponse","ApiParam","Param","Controller","ApiTags","ApiExtraModels","composed","DBKeys","COMPOSED","composedKeys","keysToReturn","length","uniqueKeys","from","Set","join","separator","DecafRequestHandlerInterceptor","executor","intercept","next","getResponse","DecafModelModule","DecafModelModule_1","createModelServices","models","model","flavour","trackedModels","Adapter","modelServices","controllers","H","APP_INTERCEPTOR","useClass","DecafModule","DecafModule_1","forRootAsync","autoControllers","imports","push","CorsError","ForbiddenError","msg","HttpResponseError","request","responseError","status","HttpStatus","INTERNAL_SERVER_ERROR","message","toString","toUpperCase","timestamp","Date","toISOString","url","AuthorizationError","Error","code","setPrototypeOf","AuthorizationExceptionFilter","exception","host","response","httpResponseError","UNAUTHORIZED","json","Catch","ConflictError","ConflictExceptionFilter","CONFLICT","GlobalExceptionFilter","HttpException","getStatus","HttpExceptionFilter","NotFoundError","NotFoundExceptionFilter","NOT_FOUND","ValidationExceptionFilter","UNPROCESSABLE_ENTITY","SWAGGER_UI_CONSTANTS","title","version","faviconFilePath","topbarIconFilePath","auth","scheme","bearerFormat","in","persistAuthorization","topbarBgColor","SwaggerCustomUI","customCSS","css","topbarIconPath","b64","getCustomOptions","favicon","faviconPath","customSiteTitle","customCss","swaggerOptions","jsonDocumentUrl","yamlDocumentUrl","file","img","filePath","assetsPath","readFileSync","encoding","SwaggerBuilder","app","createDocument","config","DocumentBuilder","setTitle","setDescription","setVersion","addBearerAuth","build","SwaggerModule","extraModels","setupSwagger","document","swaggerUI","setup","VERSION","PACKAGE_NAME","registerLibrary","logger","Logger","initialize","enableLogger","customLogger","useLogger","enableCors","origins","allowMethods","allowedOrigins","o","trim","toLowerCase","corsOptions","origin","callback","includes","credentials","methods","useHelmet","helmet","require","use","warn","useGlobalPipes","pipes","useGlobalFilters","filters","defaultFilters","useGlobalInterceptors","interceptors","start","port","Number","process","env","PORT","listen","then","getUrl","m","InternalError"],"mappings":"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"}
1
+ {"version":3,"file":"for-nest.cjs","sources":["../src/decoration.ts","../src/constants.ts","../src/core-module.ts","../src/decaf-model/decorators/ApiOperationFromModel.ts","../src/decaf-model/decorators/ApiParamsFromModel.ts","../src/decaf-model/decorators/DecafParams.ts","../src/request/DecafRequestContext.ts","../src/request/DecafHandlerExecutor.ts","../src/interceptors/AuthInterceptor.ts","../src/decaf-model/decorators/decorators.ts","../src/decaf-model/FromModelController.ts","../src/interceptors/DecafRequestHandlerInterceptor.ts","../src/decaf-model/DecafModelModule.ts","../src/module.ts","../src/factory/errors/cors.ts","../src/factory/exceptions/HttpResponseError.ts","../src/factory/exceptions/AuthorizationExceptionFilter.ts","../src/factory/exceptions/ConflictExceptionFilter.ts","../src/factory/exceptions/GlobalExceptionFilter.ts","../src/factory/exceptions/HttpExceptionFilter.ts","../src/factory/exceptions/NotFoundExceptionFilter.ts","../src/factory/exceptions/ValidationExceptionFilter.ts","../src/factory/openapi/constants.ts","../src/factory/openapi/SwaggerCustomUI.ts","../src/factory/openapi/SwaggerBuilder.ts","../src/index.ts","../src/factory/NestBootstraper.ts","../src/utils.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null],"names":["Decoration","for","InjectablesKeys","INJECTABLE","extend","decorator","category","cfg","Object","assign","DefaultInjectablesConfig","Injectable","scope","singleton","Scope","DEFAULT","REQUEST","durable","undefined","apply","INJECT","target","propertyKey","descriptor","Inject","ValidationKeys","REQUIRED","ApiProperty","required","MAX","max","maximum","MIN","min","minimum","MAX_LENGTH","maxLength","MIN_LENGTH","minLength","LIST","clazz","c","Array","isArray","type","PATTERN","pat","pattern","source","PersistenceKeys","COLUMN","name","DecorationKeys","DESCRIPTION","description","DECAF_MODULE_OPTIONS","DECAF_ADAPTER_ID","DECAF_HANDLERS","Symbol","DECAF_ADAPTER_OPTIONS","AUTH_HANDLER","AUTH_META_KEY","DecafCoreModule","this","_adapterInstance","log","_logger","Logging","DecafCoreModule_1","constructor","options","moduleRef","createAdapter","info","adapter","conf","alias","getAdapterInstance","forRoot","typeOrmModuleOptions","provide","useValue","useFactory","async","opts","inject","module","providers","exports","onApplicationShutdown","get","shutdown","e","error","isOperationBlocked","ModelConstructor","op","handler","args","Metadata","OperationKeys","REFLECT","BLOCK","ApiOperationFromModel","verb","path","httpToCrud","GET","READ","Get","POST","CREATE","Post","PUT","UPDATE","Put","PATCH","Patch","DELETE","Delete","crudOp","HttpMethodDecorator","ApiExcludeEndpoint","ApiParamsFromModel","props","decorators","map","p","ApiParamDec","String","applyDecorators","__decorate","Global","Module","__param","ModuleRef","OrderedParams","createParamDecorator","order","ctx","req","switchToHttp","getRequest","original","params","orderList","keys","ordered","k","DecafParams","DecafRequestContext","cache","Map","set","key","value","DecafHandlerExecutor","handlers","context","exec","res","handle","AuthInterceptor","reflector","authHandler","intercept","next","modelName","getHandler","getClass","authorize","Auth","model","resource","SetMetadata","UseInterceptors","Optional","Reflector","FromModelController","create","ModelClazz","tableName","Model","routePath","toKebabCase","modelClazzName","getPK","apiProperties","getRouteParametersFromModel","debug","DynamicModelController","LoggedClass","clientContext","super","pk","persistence","_persistence","ModelService","getService","Repository","forModel","adapterOptions","data","created","verbose","read","routeParams","id","ValidationError","query","method","results","update","body","updated","delete","del","ApiOperation","summary","ApiBody","schema","$ref","getSchemaPath","ApiCreatedResponse","ApiBadRequestResponse","ApiUnprocessableEntityResponse","Body","prototype","ApiOkResponse","ApiNotFoundResponse","ApiParam","Param","Controller","ApiTags","ApiExtraModels","composed","DBKeys","COMPOSED","composedKeys","keysToReturn","length","uniqueKeys","from","Set","join","separator","DecafRequestHandlerInterceptor","executor","getResponse","DecafModelModule","DecafModelModule_1","createModelServices","models","flavour","trackedModels","Adapter","modelServices","controllers","H","APP_INTERCEPTOR","useClass","DecafModule","DecafModule_1","forRootAsync","autoControllers","imports","push","CorsError","ForbiddenError","msg","HttpResponseError","request","responseError","status","HttpStatus","INTERNAL_SERVER_ERROR","message","toString","toUpperCase","timestamp","Date","toISOString","url","AuthorizationError","Error","code","setPrototypeOf","AuthorizationExceptionFilter","exception","host","response","httpResponseError","UNAUTHORIZED","json","Catch","ConflictError","ConflictExceptionFilter","CONFLICT","GlobalExceptionFilter","HttpException","getStatus","HttpExceptionFilter","NotFoundError","NotFoundExceptionFilter","NOT_FOUND","ValidationExceptionFilter","UNPROCESSABLE_ENTITY","SWAGGER_UI_CONSTANTS","title","version","faviconFilePath","topbarIconFilePath","auth","scheme","bearerFormat","in","persistAuthorization","topbarBgColor","SwaggerCustomUI","customCSS","css","topbarIconPath","b64","getCustomOptions","favicon","faviconPath","customSiteTitle","customCss","swaggerOptions","jsonDocumentUrl","yamlDocumentUrl","file","img","filePath","assetsPath","readFileSync","encoding","SwaggerBuilder","app","createDocument","config","DocumentBuilder","setTitle","setDescription","setVersion","addBearerAuth","build","SwaggerModule","extraModels","setupSwagger","document","swaggerUI","setup","VERSION","PACKAGE_NAME","registerLibrary","logger","Logger","initialize","enableLogger","customLogger","useLogger","enableCors","origins","allowMethods","allowedOrigins","o","trim","toLowerCase","corsOptions","origin","callback","includes","credentials","methods","useHelmet","helmet","require","use","warn","useGlobalPipes","pipes","useGlobalFilters","filters","defaultFilters","useGlobalInterceptors","interceptors","start","port","Number","process","env","PORT","listen","then","getUrl","m","InternalError"],"mappings":"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"}
package/dist/for-nest.js CHANGED
@@ -1,2 +1,2 @@
1
- import{Decoration as t,DecorationKeys as e,Metadata as s}from"@decaf-ts/decoration";import{InjectablesKeys as r,DefaultInjectablesConfig as o}from"@decaf-ts/injectable-decorators";import{Injectable as i,Scope as a,Inject as n,Global as c,Module as p,Get as d,Post as h,Put as l,Patch as u,Delete as g,applyDecorators as m,createParamDecorator as f,Body as y,Param as w,Controller as E,HttpStatus as b,Catch as R,HttpException as T,Logger as P}from"@nestjs/common";import{ValidationKeys as A,Model as O}from"@decaf-ts/decorator-validation";import{PersistenceKeys as v,ModelService as S,Repository as I,Adapter as $,ForbiddenError as N}from"@decaf-ts/core";import{ApiProperty as C,ApiExcludeEndpoint as F,ApiParam as x,ApiOperation as j,ApiBody as D,getSchemaPath as _,ApiCreatedResponse as U,ApiBadRequestResponse as L,ApiUnprocessableEntityResponse as q,ApiOkResponse as H,ApiNotFoundResponse as M,ApiTags as k,ApiExtraModels as G,DocumentBuilder as B,SwaggerModule as z}from"@nestjs/swagger";import{__decorate as V,__param as Q,__metadata as J}from"tslib";import{ModuleRef as K,APP_INTERCEPTOR as Z}from"@nestjs/core";import{Logging as X,toKebabCase as W,LoggedClass as Y}from"@decaf-ts/logging";import{apply as tt}from"@decaf-ts/reflection";import{OperationKeys as et,DBKeys as st,ValidationError as rt,InternalError as ot}from"@decaf-ts/db-decorators";import{readFileSync as it}from"fs";import*as at from"path";t.for(r.INJECTABLE).extend({decorator:(t,e)=>(e=e||("object"==typeof t?Object.assign(t,o):o),i({scope:e.singleton?a.DEFAULT:a.REQUEST,durable:!e.singleton||void 0}))}).apply(),t.for(r.INJECT).extend({decorator:(t,e)=>(e,s,r)=>n(t||e)(e,s,r)}).apply(),t.for(A.REQUIRED).extend(C({required:!0})).apply(),t.for(A.MAX).extend({decorator:t=>C({maximum:t})}).apply(),t.for(A.MIN).extend({decorator:t=>C({minimum:t})}).apply(),t.for(A.MAX_LENGTH).extend({decorator:t=>C({maxLength:t})}).apply(),t.for(A.MIN_LENGTH).extend({decorator:t=>C({minLength:t})}).apply(),t.for(A.LIST).extend({decorator:t=>{const e=Array.isArray(t)?t[0]:t;return C({type:[e]})}}).apply(),t.for(A.PATTERN).extend({decorator:t=>C({pattern:"string"==typeof t?t:t.source})}).apply(),t.for(v.COLUMN).extend({decorator:t=>C({name:t})}).apply(),t.for(e.DESCRIPTION).extend({decorator:t=>C({description:t})}).apply();const nt="DecafModuleOptions",ct="DecafAdapter",pt=Symbol("DecafHandlers"),dt=Symbol("DecafAdapterForOptions");var ht;let lt=class{static{ht=this}static{this._adapterInstance=null}static get log(){return this._logger||(this._logger=X.for(ht)),this._logger}constructor(t,e){this.options=t,this.moduleRef=e}static async createAdapter(t){if(!this._adapterInstance){const e=this.log.for(this.createAdapter);e.info("Creating adapter instance..."),this._adapterInstance=new t.adapter(t.conf,t.alias),e.info("Adapter instance created successfully!")}return this._adapterInstance}static getAdapterInstance(){return this._adapterInstance}static forRoot(t){const e={provide:nt,useValue:t},s={useFactory:async t=>ht.createAdapter(t),provide:ct,durable:!0,scope:a.DEFAULT,inject:[nt]};return{module:ht,providers:[s,e],exports:[s]}}async onApplicationShutdown(){const t=ht.log.for(this.onApplicationShutdown),e=this.moduleRef.get(ct);try{e&&(t.info("Shutting down"),await e.shutdown(),ht._adapterInstance=null)}catch(e){t.error("Failed to shutdown application",e)}}};function ut(t,e){const{handler:r,args:o}=s.get(t,et.REFLECT+et.BLOCK)||{};return!!r&&(r(...o,e)??!1)}function gt(t,e,s){const r={GET:[et.READ,d],POST:[et.CREATE,h],PUT:[et.UPDATE,l],PATCH:[et.UPDATE,u],DELETE:[et.DELETE,g]},[o,i]=r[e];return ut(t,o)?tt(F()):tt(i(s))}function mt(t=[]){const e=t.map(t=>x({name:t.name,description:t.description??"Path parameter: "+t.name,required:t.required??!0,type:t.type??String}));return m(...e)}lt=ht=V([c(),p({}),Q(0,n(nt)),J("design:paramtypes",[Object,K])],lt);const ft=f((t,e)=>{const s=e.switchToHttp().getRequest(),r=s?.params??{},o=t??Object.keys(r),i=o.map(t=>r[t]);return{original:r,ordered:i,order:o}});function yt(t=[]){const e=t.map(t=>t.name);return ft(e)}let wt=class{constructor(){this.cache=new Map}set(t,e){this.cache.set(t,e)}get(t){return this.cache.get(t)}};wt=V([i({scope:a.REQUEST})],wt);let Et=class{constructor(t,e){this.handlers=t,this.context=e}async exec(t,e){for(const s of this.handlers)await s.handle(this.context,t,e)}};Et=V([i({scope:a.REQUEST}),Q(0,n(pt)),J("design:paramtypes",[Array,wt])],Et);class bt{static{this.log=X.for(bt.name)}static create(t){const e=bt.log.for(bt.create),s=O.tableName(t),r=W(s),o=t.name,{description:i,getPK:a,apiProperties:n,path:c}=bt.getRouteParametersFromModel(t);e.debug("Creating controller for model: "+o);let p=class extends Y{constructor(s){super(),this.clientContext=s,this.pk=O.pk(t),e.info(`Registering dynamic controller for model: ${o} route: /${r}`)}get persistence(){this._persistence||(this._persistence=S.getService(t)||I.forModel(t));const e=this.clientContext.get(dt);return e?this._persistence.for(e):this._persistence}async create(t){const e=this.log.for(this.create);let s;e.verbose("creating new "+o);try{s=await this.persistence.create(t)}catch(t){throw e.error("Failed to create new "+o,t),t}return e.info(`created new ${o} with id ${s[this.pk]}`),s}async read(t){const e=a(...t.ordered);if(void 0===e)throw new rt(`No ${this.pk} provided`);const s=this.log.for(this.read);let r;try{s.debug(`reading ${o} with ${this.pk} ${e}`),r=await this.persistence.read(e)}catch(t){throw s.error(`Failed to read ${o} with id ${e}`,t),t}return s.info(`read ${o} with id ${r[this.pk]}`),r}async query(t){const e=this.log.for(this.read);let s;try{e.debug(`Querying ${o} using method "${t}"`);const r=[t];s=await this.persistence.query(...r)}catch(s){throw e.error(`Failed to query ${o} using method "${t}"`,s),s}return e.info(`Successfully queried ${o} using method "${t}"`),s}async update(e,s){const r=this.log.for(this.update),i=a(...e.ordered);if(void 0===i)throw new rt(`No ${this.pk} provided`);let n;try{r.info(`updating ${o} with ${this.pk} ${i}`),n=await this.persistence.update(new t({...s,[this.pk]:i}))}catch(t){throw r.error(t),t}return n}async delete(t){const e=this.log.for(this.delete),s=a(...t.ordered);if(void 0===s)throw new rt(`No ${this.pk} provided`);let r;try{e.debug(`deleting ${o} with ${this.pk} ${s}`),r=await this.persistence.delete(s)}catch(t){throw e.error(`Failed to delete ${o} with id ${s}`,t),t}return e.info(`deleted ${o} with id ${s}`),r}};return V([gt(t,"POST"),j({summary:`Create a new ${o}.`}),D({description:"Payload for "+o,schema:{$ref:_(t)}}),U({description:o+" created successfully."}),L({description:"Payload validation failed."}),q({description:"Repository rejected the provided payload."}),Q(0,y()),J("design:type",Function),J("design:paramtypes",[Object]),J("design:returntype",Promise)],p.prototype,"create",null),V([gt(t,"GET",c),mt(n),j({summary:`Retrieve a ${o} record by id.`}),H({description:o+" retrieved successfully."}),M({description:`No ${o} record matches the provided identifier.`}),Q(0,yt(n)),J("design:type",Function),J("design:paramtypes",[Object]),J("design:returntype",Promise)],p.prototype,"read",null),V([gt(t,"GET","query/:method"),j({summary:`Retrieve ${o} records by query.`}),x({name:"method",description:"Query method to be called"}),H({description:o+" retrieved successfully."}),M({description:`No ${o} records matches the query.`}),Q(0,w("method")),J("design:type",Function),J("design:paramtypes",[String]),J("design:returntype",Promise)],p.prototype,"query",null),V([gt(t,"PUT",c),mt(n),j({summary:`Replace an existing ${o} record with a new payload.`}),D({description:"Payload for replace a existing record of "+o,schema:{$ref:_(t)}}),H({description:t+" record replaced successfully."}),M({description:`No ${o} record matches the provided identifier.`}),L({description:"Payload validation failed."}),Q(0,yt(n)),Q(1,y()),J("design:type",Function),J("design:paramtypes",[Object,O]),J("design:returntype",Promise)],p.prototype,"update",null),V([gt(t,"DELETE",c),mt(n),j({summary:`Delete a ${o} record by id.`}),H({description:o+" record deleted successfully."}),M({description:`No ${o} record matches the provided identifier.`}),Q(0,yt(n)),J("design:type",Function),J("design:paramtypes",[Object]),J("design:returntype",Promise)],p.prototype,"delete",null),p=V([E(r),k(o),G(t),J("design:paramtypes",[wt])],p),p}static getRouteParametersFromModel(t){const e=O.pk(t),r=s.get(t,s.key(st.COMPOSED,e)),o=r?.args??[],i=Array.isArray(o)&&o.length>0?[...o]:[e],a=s.description(t),n=Array.from(new Set(i));return{path:n.map(t=>":"+t).join("/"),description:a,apiProperties:n.map(e=>({name:e,description:s.description(t,e),required:!0,type:String})),getPK:(...t)=>r?.separator?t.join(r.separator):t.join("")}}}let Rt=class{constructor(t){this.executor=t}async intercept(t,e){const s=t.switchToHttp().getRequest(),r=t.switchToHttp().getResponse();return await this.executor.exec(s,r),e.handle()}};var Tt;Rt=V([i({scope:a.REQUEST}),J("design:paramtypes",[Et])],Rt);let Pt=class{static{Tt=this}static{this.log=X.for(Tt.name)}static createModelServices(t){return t.map(t=>({provide:t.name+"Service",useFactory:()=>S.forModel(t)}))}static forRoot(t,e=[]){const s=this.log.for(this.forRoot);s.info("Generating controllers for flavour...");const r=$.models(t),o=this.createModelServices(r),i=r.map(bt.create);return s.info(`Generated ${i.length} controllers`),{module:Tt,controllers:i,providers:[{provide:pt,useFactory:()=>e.map(t=>(s.info("Registered request handler: "+t.name),new t))},wt,Et,{provide:Z,useClass:Rt},...o]}}};var At;Pt=Tt=V([p({})],Pt);let Ot=At=class{static async forRootAsync(t){const{autoControllers:e}=t,s=(await lt.createAdapter(t)).flavour,r=[lt.forRoot(t)];return e&&r.push(Pt.forRoot(s,t.handlers)),{module:At,imports:r}}};function vt(t){const e=O.get(t);if(!e)throw new ot("Failed to find repository for "+t);return I.forModel(e)}Ot=At=V([p({})],Ot);class St extends N{constructor(t){super(t,St.name)}}class It{constructor(t,e){const s=e?.status??b.INTERNAL_SERVER_ERROR,r=e?.message??"Internal Server Error",o=(e?.error??b[s]??"HTTP_EXCEPTION").toString().toUpperCase();Object.assign(this,{status:s,message:r,error:o,timestamp:(new Date).toISOString(),path:t.url,method:t.method})}}class $t extends Error{constructor(t="Unauthorized"){super(t),this.name="AuthorizationError",this.status=401,this.code="UNAUTHORIZED",Object.setPrototypeOf(this,$t.prototype)}}let Nt=class{catch(t,e){const s=e.switchToHttp(),r=s.getRequest(),o=s.getResponse(),i=new It(r,{error:"UNAUTHORIZED",status:b.UNAUTHORIZED,message:t.message});o.status(b.UNAUTHORIZED).json(i)}};Nt=V([R($t)],Nt);class Ct extends Error{constructor(t="Conflict"){super(t),this.name="ConflictError",this.status=409,this.code="CONFLICT",Object.setPrototypeOf(this,Ct.prototype)}}let Ft=class{catch(t,e){const s=e.switchToHttp(),r=s.getResponse(),o=s.getRequest(),i=new It(o,{status:b.CONFLICT,message:t.message,error:"CONFLICT"});r.status(i.status).json(i)}};Ft=V([R(Ct)],Ft);let xt=class{catch(t,e){const s=e.switchToHttp(),r=s.getRequest(),o=s.getResponse();let i,a=b.INTERNAL_SERVER_ERROR,n="Internal Server Error";if(t instanceof T){const e=t.getResponse();a=t.getStatus(),n=(e?.message||t.message)??n,i=e?.error??t.name}else t instanceof Error&&(n=t.message,i=t.name);const c=new It(r,{status:a,message:n,error:i});o.status(c.status).json(c)}};xt=V([R()],xt);let jt=class{catch(t,e){const s=e.switchToHttp(),r=s.getResponse(),o=s.getRequest(),i=t.getStatus(),a=new It(o,{status:i,message:t.message,error:t.name});r.status(a.status).json(a)}};jt=V([R(T)],jt);class Dt extends Error{constructor(t="Resource not found"){super(t),this.name="NotFoundError",this.status=404,this.code="NOT_FOUND",Object.setPrototypeOf(this,Dt.prototype)}}let _t=class{catch(t,e){const s=e.switchToHttp(),r=s.getResponse(),o=s.getRequest(),i=new It(o,{status:b.NOT_FOUND,message:t.message,error:"NOT_FOUND"});r.status(i.status).json(i)}};_t=V([R(Dt)],_t);class Ut extends Error{constructor(t="Validation failed"){super(t),this.name="ValidationError",this.status=422,this.code="VALIDATION_ERROR",Object.setPrototypeOf(this,Ut.prototype)}}let Lt=class{catch(t,e){const s=e.switchToHttp(),r=s.getResponse(),o=s.getRequest(),i=new It(o,{status:b.UNPROCESSABLE_ENTITY,message:t.message,error:"VALIDATION_ERROR"});r.status(i.status).json(i)}};Lt=V([R(Ut)],Lt);const qt={title:"Swagger | OpenAPI Specification (OAS)",description:"Standardized format for describing RESTful APIs",version:"0.0.1",path:"docs",faviconFilePath:"",topbarIconFilePath:"",auth:{type:"http",scheme:"bearer",bearerFormat:"JWT",name:"Authorization",description:"Enter JWT token",in:"header"},persistAuthorization:!0,topbarBgColor:"#000000"};class Ht{constructor(t){this.options={...t}}customCSS(){let t="";return this.options.topbarIconPath&&(t+=`.topbar-wrapper { content: url('data:image/png;base64,${this.b64(this.options.topbarIconPath)}'); width: 200px; height: auto; }\n`),t+`\n .topbar-wrapper svg { visibility: hidden; }\n .swagger-ui .topbar { background-color: ${this.options.topbarBgColor||qt.topbarBgColor}; }\n `}getCustomOptions(){const t={};return this.options.faviconPath&&(t.customfavIcon=this.b64(this.options.faviconPath,!0)),{customSiteTitle:this.options.title,...t,customCss:this.customCSS(),swaggerOptions:{persistAuthorization:this.options.persistAuthorization},jsonDocumentUrl:this.options.path?this.options.path+"/spec.json":void 0,yamlDocumentUrl:this.options.path?this.options.path+"/spec.yaml":void 0}}b64(t,e=!1){const s=at.join(this.options.assetsPath||"",t),r=it(s,{encoding:"base64"});return e?"data:image/png;base64,"+r:r}}class Mt{constructor(t,e){this.app=t,this.options=e}createDocument(){const t=this.options.path?this.options.description+""+`<br><br><a href="${this.options.path}/spec.json">OpenAPI JSON Spec</a> | `+`<a href="${this.options.path}/spec.yaml">OpenAPI YAML Spec</a>`:this.options.description,e=(new B).setTitle(this.options.title).setDescription(t).setVersion(this.options.version||"0.0.1").addBearerAuth(this.options.auth||qt.auth).build();return z.createDocument(this.app,e,{extraModels:this.options.extraModels||[]})}setupSwagger(){const t=this.createDocument(),e=new Ht({title:this.options.title,path:this.options.path||qt.path,persistAuthorization:this.options.persistAuthorization??!0,assetsPath:this.options.assetsPath,faviconPath:this.options.faviconFilePath,topbarIconPath:this.options.topbarIconFilePath,topbarBgColor:this.options.topbarBgColor});z.setup(this.options.path||qt.path,this.app,t,{...e.getCustomOptions()})}}class kt{static get logger(){return this._logger||(this._logger=new P("NestBootstrap")),this._logger}static initialize(t){return this.app=t,this}static enableLogger(t){return this._logger=t||new P("NestBootstrap"),this.app.useLogger(this._logger),this}static enableCors(t=[],e=["GET","POST","PUT","DELETE"]){const s="*"===t?"*":t.map(t=>t.trim().toLowerCase()),r={origin:(t,e)=>t?"*"===s||Array.isArray(s)&&s.includes(t.toLowerCase())?e(null,!0):void e(new St(`Origin ${t} not allowed`)):e(null,!0),credentials:!0,methods:e.join(",")};return this.app.enableCors(r),this}static useHelmet(t){try{const e=require("helmet");this.app.use(e(t)),this.logger.log("Helmet middleware enabled successfully.")}catch(t){this.logger.warn("Helmet not installed. Skipping middleware.")}return this}static setupSwagger(t){return new Mt(this.app,{title:t.title,description:t.description,version:t.version,path:t.path||"api",persistAuthorization:t.persistAuthorization??!0,assetsPath:t.assetsPath,faviconFilePath:t.faviconPath,topbarIconFilePath:t.topbarIconPath,topbarBgColor:t.topbarBgColor}).setupSwagger(),this}static useGlobalPipes(...t){return t.length>0&&this.app.useGlobalPipes(...t),this}static useGlobalFilters(...t){const e=[new jt,new Lt,new _t,new Ft,new Nt,new xt];return this.app.useGlobalFilters(...t.length>0?t:e),this}static useGlobalInterceptors(...t){return t.length>0&&this.app.useGlobalInterceptors(...t),this}static async start(t=Number(process.env.PORT)||3e3,e=void 0,s=!0){this.app.listen(t,e).then(async()=>{if(s){const t=await this.app.getUrl();this.logger.log("\ud83d\ude80 Application is running at: "+t)}})}}const Gt="##VERSION##",Bt="##PACKAGE##";s.registerLibrary(Bt,Gt);export{gt as ApiOperationFromModel,mt as ApiParamsFromModel,$t as AuthorizationError,Nt as AuthorizationExceptionFilter,Ct as ConflictError,Ft as ConflictExceptionFilter,St as CorsError,ct as DECAF_ADAPTER_ID,dt as DECAF_ADAPTER_OPTIONS,pt as DECAF_HANDLERS,nt as DECAF_MODULE_OPTIONS,Et as DecafHandlerExecutor,Pt as DecafModelModule,Ot as DecafModule,yt as DecafParams,wt as DecafRequestContext,Rt as DecafRequestHandlerInterceptor,bt as FromModelController,xt as GlobalExceptionFilter,jt as HttpExceptionFilter,It as HttpResponseError,kt as NestBootstraper,Dt as NotFoundError,_t as NotFoundExceptionFilter,Bt as PACKAGE_NAME,Mt as SwaggerBuilder,Gt as VERSION,Ut as ValidationError,Lt as ValidationExceptionFilter,ut as isOperationBlocked,vt as repoForModel};
1
+ import{Decoration as t,DecorationKeys as e,Metadata as s}from"@decaf-ts/decoration";import{InjectablesKeys as r,DefaultInjectablesConfig as o}from"@decaf-ts/injectable-decorators";import{Injectable as i,Scope as a,Inject as n,Global as c,Module as p,Get as d,Post as h,Put as l,Patch as u,Delete as g,applyDecorators as m,createParamDecorator as f,Optional as y,SetMetadata as w,UseInterceptors as E,Body as b,Param as R,Controller as T,HttpStatus as A,Catch as P,HttpException as O,Logger as v}from"@nestjs/common";import{ValidationKeys as S,Model as I}from"@decaf-ts/decorator-validation";import{PersistenceKeys as $,ModelService as N,Repository as C,Adapter as F,ForbiddenError as j}from"@decaf-ts/core";import{ApiProperty as x,ApiExcludeEndpoint as D,ApiParam as _,ApiOperation as U,ApiBody as L,getSchemaPath as H,ApiCreatedResponse as q,ApiBadRequestResponse as M,ApiUnprocessableEntityResponse as k,ApiOkResponse as G,ApiNotFoundResponse as z,ApiTags as B,ApiExtraModels as V,DocumentBuilder as Q,SwaggerModule as J}from"@nestjs/swagger";import{__decorate as K,__param as Z,__metadata as X}from"tslib";import{ModuleRef as W,Reflector as Y,APP_INTERCEPTOR as tt}from"@nestjs/core";import{Logging as et,toKebabCase as st,LoggedClass as rt}from"@decaf-ts/logging";import{apply as ot}from"@decaf-ts/reflection";import{OperationKeys as it,DBKeys as at,ValidationError as nt,InternalError as ct}from"@decaf-ts/db-decorators";import{readFileSync as pt}from"fs";import*as dt from"path";t.for(r.INJECTABLE).extend({decorator:(t,e)=>(e=e||("object"==typeof t?Object.assign(t,o):o),i({scope:e.singleton?a.DEFAULT:a.REQUEST,durable:!e.singleton||void 0}))}).apply(),t.for(r.INJECT).extend({decorator:(t,e)=>(e,s,r)=>n(t||e)(e,s,r)}).apply(),t.for(S.REQUIRED).extend(x({required:!0})).apply(),t.for(S.MAX).extend({decorator:t=>x({maximum:t})}).apply(),t.for(S.MIN).extend({decorator:t=>x({minimum:t})}).apply(),t.for(S.MAX_LENGTH).extend({decorator:t=>x({maxLength:t})}).apply(),t.for(S.MIN_LENGTH).extend({decorator:t=>x({minLength:t})}).apply(),t.for(S.LIST).extend({decorator:t=>{const e=Array.isArray(t)?t[0]:t;return x({type:[e]})}}).apply(),t.for(S.PATTERN).extend({decorator:t=>x({pattern:"string"==typeof t?t:t.source})}).apply(),t.for($.COLUMN).extend({decorator:t=>x({name:t})}).apply(),t.for(e.DESCRIPTION).extend({decorator:t=>x({description:t})}).apply();const ht="DecafModuleOptions",lt="DecafAdapter",ut=Symbol("DecafHandlers"),gt=Symbol("DecafAdapterForOptions"),mt=Symbol("AUTH_HANDLER"),ft="auth:meta",yt="AuthRole";var wt;let Et=class{static{wt=this}static{this._adapterInstance=null}static get log(){return this._logger||(this._logger=et.for(wt)),this._logger}constructor(t,e){this.options=t,this.moduleRef=e}static async createAdapter(t){if(!this._adapterInstance){const e=this.log.for(this.createAdapter);e.info("Creating adapter instance..."),this._adapterInstance=new t.adapter(t.conf,t.alias),e.info("Adapter instance created successfully!")}return this._adapterInstance}static getAdapterInstance(){return this._adapterInstance}static forRoot(t){const e={provide:ht,useValue:t},s={useFactory:async t=>wt.createAdapter(t),provide:lt,durable:!0,scope:a.DEFAULT,inject:[ht]};return{module:wt,providers:[s,e],exports:[s]}}async onApplicationShutdown(){const t=wt.log.for(this.onApplicationShutdown),e=this.moduleRef.get(lt);try{e&&(t.info("Shutting down"),await e.shutdown(),wt._adapterInstance=null)}catch(e){t.error("Failed to shutdown application",e)}}};function bt(t,e){const{handler:r,args:o}=s.get(t,it.REFLECT+it.BLOCK)||{};return!!r&&(r(...o,e)??!1)}function Rt(t,e,s){const r={GET:[it.READ,d],POST:[it.CREATE,h],PUT:[it.UPDATE,l],PATCH:[it.UPDATE,u],DELETE:[it.DELETE,g]},[o,i]=r[e];return bt(t,o)?ot(D()):ot(i(s))}function Tt(t=[]){const e=t.map(t=>_({name:t.name,description:t.description??"Path parameter: "+t.name,required:t.required??!0,type:t.type??String}));return m(...e)}Et=wt=K([c(),p({}),Z(0,n(ht)),X("design:paramtypes",[Object,W])],Et);const At=f((t,e)=>{const s=e.switchToHttp().getRequest(),r=s?.params??{},o=t??Object.keys(r),i=o.map(t=>r[t]);return{original:r,ordered:i,order:o}});function Pt(t=[]){const e=t.map(t=>t.name);return At(e)}let Ot=class{constructor(){this.cache=new Map}set(t,e){this.cache.set(t,e)}get(t){return this.cache.get(t)}};Ot=K([i({scope:a.REQUEST})],Ot);let vt=class{constructor(t,e){this.handlers=t,this.context=e}async exec(t,e){for(const s of this.handlers)await s.handle(this.context,t,e)}};vt=K([i({scope:a.REQUEST}),Z(0,n(ut)),X("design:paramtypes",[Array,Ot])],vt);let St=class{constructor(t,e){this.reflector=t,this.authHandler=e}async intercept(t,e){const s=this.reflector.get(ft,t.getHandler())??this.reflector.get(ft,t.getClass());return s&&this.authHandler&&await this.authHandler.authorize(t,s),e.handle()}};function It(t){const e="string"==typeof t?t:t.name;return m(w(ft,e),E(St))}St=K([i(),Z(1,y()),Z(1,n(mt)),X("design:paramtypes",[Y,Object])],St);class $t{static{this.log=et.for($t.name)}static create(t){const e=$t.log.for($t.create),s=I.tableName(t),r=st(s),o=t.name,{description:i,getPK:a,apiProperties:n,path:c}=$t.getRouteParametersFromModel(t);e.debug("Creating controller for model: "+o);let p=class extends rt{constructor(s){super(),this.clientContext=s,this.pk=I.pk(t),e.info(`Registering dynamic controller for model: ${o} route: /${r}`)}get persistence(){this._persistence||(this._persistence=N.getService(t)||C.forModel(t));const e=this.clientContext.get(gt);return e?this._persistence.for(e):this._persistence}async create(t){const e=this.log.for(this.create);let s;e.verbose("creating new "+o);try{s=await this.persistence.create(t)}catch(t){throw e.error("Failed to create new "+o,t),t}return e.info(`created new ${o} with id ${s[this.pk]}`),s}async read(t){const e=a(...t.ordered);if(void 0===e)throw new nt(`No ${this.pk} provided`);const s=this.log.for(this.read);let r;try{s.debug(`reading ${o} with ${this.pk} ${e}`),r=await this.persistence.read(e)}catch(t){throw s.error(`Failed to read ${o} with id ${e}`,t),t}return s.info(`read ${o} with id ${r[this.pk]}`),r}async query(t){const e=this.log.for(this.read);let s;try{e.debug(`Querying ${o} using method "${t}"`);const r=[t];s=await this.persistence.query(...r)}catch(s){throw e.error(`Failed to query ${o} using method "${t}"`,s),s}return e.info(`Successfully queried ${o} using method "${t}"`),s}async update(e,s){const r=this.log.for(this.update),i=a(...e.ordered);if(void 0===i)throw new nt(`No ${this.pk} provided`);let n;try{r.info(`updating ${o} with ${this.pk} ${i}`),n=await this.persistence.update(new t({...s,[this.pk]:i}))}catch(t){throw r.error(t),t}return n}async delete(t){const e=this.log.for(this.delete),s=a(...t.ordered);if(void 0===s)throw new nt(`No ${this.pk} provided`);let r;try{e.debug(`deleting ${o} with ${this.pk} ${s}`),r=await this.persistence.delete(s)}catch(t){throw e.error(`Failed to delete ${o} with id ${s}`,t),t}return e.info(`deleted ${o} with id ${s}`),r}};return K([Rt(t,"POST"),U({summary:`Create a new ${o}.`}),L({description:"Payload for "+o,schema:{$ref:H(t)}}),q({description:o+" created successfully."}),M({description:"Payload validation failed."}),k({description:"Repository rejected the provided payload."}),Z(0,b()),X("design:type",Function),X("design:paramtypes",[Object]),X("design:returntype",Promise)],p.prototype,"create",null),K([Rt(t,"GET",c),Tt(n),U({summary:`Retrieve a ${o} record by id.`}),G({description:o+" retrieved successfully."}),z({description:`No ${o} record matches the provided identifier.`}),Z(0,Pt(n)),X("design:type",Function),X("design:paramtypes",[Object]),X("design:returntype",Promise)],p.prototype,"read",null),K([Rt(t,"GET","query/:method"),U({summary:`Retrieve ${o} records by query.`}),_({name:"method",description:"Query method to be called"}),G({description:o+" retrieved successfully."}),z({description:`No ${o} records matches the query.`}),Z(0,R("method")),X("design:type",Function),X("design:paramtypes",[String]),X("design:returntype",Promise)],p.prototype,"query",null),K([Rt(t,"PUT",c),Tt(n),U({summary:`Replace an existing ${o} record with a new payload.`}),L({description:"Payload for replace a existing record of "+o,schema:{$ref:H(t)}}),G({description:t+" record replaced successfully."}),z({description:`No ${o} record matches the provided identifier.`}),M({description:"Payload validation failed."}),Z(0,Pt(n)),Z(1,b()),X("design:type",Function),X("design:paramtypes",[Object,I]),X("design:returntype",Promise)],p.prototype,"update",null),K([Rt(t,"DELETE",c),Tt(n),U({summary:`Delete a ${o} record by id.`}),G({description:o+" record deleted successfully."}),z({description:`No ${o} record matches the provided identifier.`}),Z(0,Pt(n)),X("design:type",Function),X("design:paramtypes",[Object]),X("design:returntype",Promise)],p.prototype,"delete",null),p=K([T(r),B(o),V(t),It(t),X("design:paramtypes",[Ot])],p),p}static getRouteParametersFromModel(t){const e=I.pk(t),r=s.get(t,s.key(at.COMPOSED,e)),o=r?.args??[],i=Array.isArray(o)&&o.length>0?[...o]:[e],a=s.description(t),n=Array.from(new Set(i));return{path:n.map(t=>":"+t).join("/"),description:a,apiProperties:n.map(e=>({name:e,description:s.description(t,e),required:!0,type:String})),getPK:(...t)=>r?.separator?t.join(r.separator):t.join("")}}}let Nt=class{constructor(t){this.executor=t}async intercept(t,e){const s=t.switchToHttp().getRequest(),r=t.switchToHttp().getResponse();return await this.executor.exec(s,r),e.handle()}};var Ct;Nt=K([i({scope:a.REQUEST}),X("design:paramtypes",[vt])],Nt);let Ft=class{static{Ct=this}static{this.log=et.for(Ct.name)}static createModelServices(t){return t.map(t=>({provide:t.name+"Service",useFactory:()=>N.forModel(t)}))}static forRoot(t,e=[]){const s=this.log.for(this.forRoot);s.info("Generating controllers for flavour...");const r=F.models(t),o=this.createModelServices(r),i=r.map($t.create);return s.info(`Generated ${i.length} controllers`),{module:Ct,controllers:i,providers:[{provide:ut,useFactory:()=>e.map(t=>(s.info("Registered request handler: "+t.name),new t))},Ot,vt,{provide:tt,useClass:Nt},...o]}}};var jt;Ft=Ct=K([p({})],Ft);let xt=jt=class{static async forRootAsync(t){const{autoControllers:e}=t,s=(await Et.createAdapter(t)).flavour,r=[Et.forRoot(t)];return e&&r.push(Ft.forRoot(s,t.handlers)),{module:jt,imports:r}}};function Dt(t){const e=I.get(t);if(!e)throw new ct("Failed to find repository for "+t);return C.forModel(e)}xt=jt=K([p({})],xt);class _t extends j{constructor(t){super(t,_t.name)}}class Ut{constructor(t,e){const s=e?.status??A.INTERNAL_SERVER_ERROR,r=e?.message??"Internal Server Error",o=(e?.error??A[s]??"HTTP_EXCEPTION").toString().toUpperCase();Object.assign(this,{status:s,message:r,error:o,timestamp:(new Date).toISOString(),path:t.url,method:t.method})}}class Lt extends Error{constructor(t="Unauthorized"){super(t),this.name="AuthorizationError",this.status=401,this.code="UNAUTHORIZED",Object.setPrototypeOf(this,Lt.prototype)}}let Ht=class{catch(t,e){const s=e.switchToHttp(),r=s.getRequest(),o=s.getResponse(),i=new Ut(r,{error:"UNAUTHORIZED",status:A.UNAUTHORIZED,message:t.message});o.status(A.UNAUTHORIZED).json(i)}};Ht=K([P(Lt)],Ht);class qt extends Error{constructor(t="Conflict"){super(t),this.name="ConflictError",this.status=409,this.code="CONFLICT",Object.setPrototypeOf(this,qt.prototype)}}let Mt=class{catch(t,e){const s=e.switchToHttp(),r=s.getResponse(),o=s.getRequest(),i=new Ut(o,{status:A.CONFLICT,message:t.message,error:"CONFLICT"});r.status(i.status).json(i)}};Mt=K([P(qt)],Mt);let kt=class{catch(t,e){const s=e.switchToHttp(),r=s.getRequest(),o=s.getResponse();let i,a=A.INTERNAL_SERVER_ERROR,n="Internal Server Error";if(t instanceof O){const e=t.getResponse();a=t.getStatus(),n=(e?.message||t.message)??n,i=e?.error??t.name}else t instanceof Error&&(n=t.message,i=t.name);const c=new Ut(r,{status:a,message:n,error:i});o.status(c.status).json(c)}};kt=K([P()],kt);let Gt=class{catch(t,e){const s=e.switchToHttp(),r=s.getResponse(),o=s.getRequest(),i=t.getStatus(),a=new Ut(o,{status:i,message:t.message,error:t.name});r.status(a.status).json(a)}};Gt=K([P(O)],Gt);class zt extends Error{constructor(t="Resource not found"){super(t),this.name="NotFoundError",this.status=404,this.code="NOT_FOUND",Object.setPrototypeOf(this,zt.prototype)}}let Bt=class{catch(t,e){const s=e.switchToHttp(),r=s.getResponse(),o=s.getRequest(),i=new Ut(o,{status:A.NOT_FOUND,message:t.message,error:"NOT_FOUND"});r.status(i.status).json(i)}};Bt=K([P(zt)],Bt);class Vt extends Error{constructor(t="Validation failed"){super(t),this.name="ValidationError",this.status=422,this.code="VALIDATION_ERROR",Object.setPrototypeOf(this,Vt.prototype)}}let Qt=class{catch(t,e){const s=e.switchToHttp(),r=s.getResponse(),o=s.getRequest(),i=new Ut(o,{status:A.UNPROCESSABLE_ENTITY,message:t.message,error:"VALIDATION_ERROR"});r.status(i.status).json(i)}};Qt=K([P(Vt)],Qt);const Jt={title:"Swagger | OpenAPI Specification (OAS)",description:"Standardized format for describing RESTful APIs",version:"0.0.1",path:"docs",faviconFilePath:"",topbarIconFilePath:"",auth:{type:"http",scheme:"bearer",bearerFormat:"JWT",name:"Authorization",description:"Enter JWT token",in:"header"},persistAuthorization:!0,topbarBgColor:"#000000"};class Kt{constructor(t){this.options={...t}}customCSS(){let t="";return this.options.topbarIconPath&&(t+=`.topbar-wrapper { content: url('data:image/png;base64,${this.b64(this.options.topbarIconPath)}'); width: 200px; height: auto; }\n`),t+`\n .topbar-wrapper svg { visibility: hidden; }\n .swagger-ui .topbar { background-color: ${this.options.topbarBgColor||Jt.topbarBgColor}; }\n `}getCustomOptions(){const t={};return this.options.faviconPath&&(t.customfavIcon=this.b64(this.options.faviconPath,!0)),{customSiteTitle:this.options.title,...t,customCss:this.customCSS(),swaggerOptions:{persistAuthorization:this.options.persistAuthorization},jsonDocumentUrl:this.options.path?this.options.path+"/spec.json":void 0,yamlDocumentUrl:this.options.path?this.options.path+"/spec.yaml":void 0}}b64(t,e=!1){const s=dt.join(this.options.assetsPath||"",t),r=pt(s,{encoding:"base64"});return e?"data:image/png;base64,"+r:r}}class Zt{constructor(t,e){this.app=t,this.options=e}createDocument(){const t=this.options.path?this.options.description+""+`<br><br><a href="${this.options.path}/spec.json">OpenAPI JSON Spec</a> | `+`<a href="${this.options.path}/spec.yaml">OpenAPI YAML Spec</a>`:this.options.description,e=(new Q).setTitle(this.options.title).setDescription(t).setVersion(this.options.version||"0.0.1").addBearerAuth(this.options.auth||Jt.auth).build();return J.createDocument(this.app,e,{extraModels:this.options.extraModels||[]})}setupSwagger(){const t=this.createDocument(),e=new Kt({title:this.options.title,path:this.options.path||Jt.path,persistAuthorization:this.options.persistAuthorization??!0,assetsPath:this.options.assetsPath,faviconPath:this.options.faviconFilePath,topbarIconPath:this.options.topbarIconFilePath,topbarBgColor:this.options.topbarBgColor});J.setup(this.options.path||Jt.path,this.app,t,{...e.getCustomOptions()})}}class Xt{static get logger(){return this._logger||(this._logger=new v("NestBootstrap")),this._logger}static initialize(t){return this.app=t,this}static enableLogger(t){return this._logger=t||new v("NestBootstrap"),this.app.useLogger(this._logger),this}static enableCors(t=[],e=["GET","POST","PUT","DELETE"]){const s="*"===t?"*":t.map(t=>t.trim().toLowerCase()),r={origin:(t,e)=>t?"*"===s||Array.isArray(s)&&s.includes(t.toLowerCase())?e(null,!0):void e(new _t(`Origin ${t} not allowed`)):e(null,!0),credentials:!0,methods:e.join(",")};return this.app.enableCors(r),this}static useHelmet(t){try{const e=require("helmet");this.app.use(e(t)),this.logger.log("Helmet middleware enabled successfully.")}catch(t){this.logger.warn("Helmet not installed. Skipping middleware.")}return this}static setupSwagger(t){return new Zt(this.app,{title:t.title,description:t.description,version:t.version,path:t.path||"api",persistAuthorization:t.persistAuthorization??!0,assetsPath:t.assetsPath,faviconFilePath:t.faviconPath,topbarIconFilePath:t.topbarIconPath,topbarBgColor:t.topbarBgColor}).setupSwagger(),this}static useGlobalPipes(...t){return t.length>0&&this.app.useGlobalPipes(...t),this}static useGlobalFilters(...t){const e=[new Gt,new Qt,new Bt,new Mt,new Ht,new kt];return this.app.useGlobalFilters(...t.length>0?t:e),this}static useGlobalInterceptors(...t){return t.length>0&&this.app.useGlobalInterceptors(...t),this}static async start(t=Number(process.env.PORT)||3e3,e=void 0,s=!0){this.app.listen(t,e).then(async()=>{if(s){const t=await this.app.getUrl();this.logger.log("\ud83d\ude80 Application is running at: "+t)}})}}const Wt="##VERSION##",Yt="##PACKAGE##";s.registerLibrary(Yt,Wt);export{mt as AUTH_HANDLER,ft as AUTH_META_KEY,Rt as ApiOperationFromModel,Tt as ApiParamsFromModel,yt as AuthRole,Lt as AuthorizationError,Ht as AuthorizationExceptionFilter,qt as ConflictError,Mt as ConflictExceptionFilter,_t as CorsError,lt as DECAF_ADAPTER_ID,gt as DECAF_ADAPTER_OPTIONS,ut as DECAF_HANDLERS,ht as DECAF_MODULE_OPTIONS,vt as DecafHandlerExecutor,Ft as DecafModelModule,xt as DecafModule,Pt as DecafParams,Ot as DecafRequestContext,Nt as DecafRequestHandlerInterceptor,$t as FromModelController,kt as GlobalExceptionFilter,Gt as HttpExceptionFilter,Ut as HttpResponseError,Xt as NestBootstraper,zt as NotFoundError,Bt as NotFoundExceptionFilter,Yt as PACKAGE_NAME,Zt as SwaggerBuilder,Wt as VERSION,Vt as ValidationError,Qt as ValidationExceptionFilter,bt as isOperationBlocked,Dt as repoForModel};
2
2
  //# sourceMappingURL=for-nest.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"for-nest.js","sources":["../src/decoration.ts","../src/constants.ts","../src/core-module.ts","../src/decaf-model/decorators/ApiOperationFromModel.ts","../src/decaf-model/decorators/ApiParamsFromModel.ts","../src/decaf-model/decorators/DecafParams.ts","../src/request/DecafRequestContext.ts","../src/request/DecafHandlerExecutor.ts","../src/decaf-model/FromModelController.ts","../src/interceptors/DecafRequestHandlerInterceptor.ts","../src/decaf-model/DecafModelModule.ts","../src/module.ts","../src/utils.ts","../src/factory/errors/cors.ts","../src/factory/exceptions/HttpResponseError.ts","../src/factory/exceptions/AuthorizationExceptionFilter.ts","../src/factory/exceptions/ConflictExceptionFilter.ts","../src/factory/exceptions/GlobalExceptionFilter.ts","../src/factory/exceptions/HttpExceptionFilter.ts","../src/factory/exceptions/NotFoundExceptionFilter.ts","../src/factory/exceptions/ValidationExceptionFilter.ts","../src/factory/openapi/constants.ts","../src/factory/openapi/SwaggerCustomUI.ts","../src/factory/openapi/SwaggerBuilder.ts","../src/factory/NestBootstraper.ts","../src/index.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null],"names":["Decoration","for","InjectablesKeys","INJECTABLE","extend","decorator","category","cfg","Object","assign","DefaultInjectablesConfig","Injectable","scope","singleton","Scope","DEFAULT","REQUEST","durable","undefined","apply","INJECT","target","propertyKey","descriptor","Inject","ValidationKeys","REQUIRED","ApiProperty","required","MAX","max","maximum","MIN","min","minimum","MAX_LENGTH","maxLength","MIN_LENGTH","minLength","LIST","clazz","c","Array","isArray","type","PATTERN","pat","pattern","source","PersistenceKeys","COLUMN","name","DecorationKeys","DESCRIPTION","description","DECAF_MODULE_OPTIONS","DECAF_ADAPTER_ID","DECAF_HANDLERS","Symbol","DECAF_ADAPTER_OPTIONS","DecafCoreModule","this","_adapterInstance","log","_logger","Logging","DecafCoreModule_1","constructor","options","moduleRef","createAdapter","info","adapter","conf","alias","getAdapterInstance","forRoot","typeOrmModuleOptions","provide","useValue","useFactory","async","opts","inject","module","providers","exports","onApplicationShutdown","get","shutdown","e","error","isOperationBlocked","ModelConstructor","op","handler","args","Metadata","OperationKeys","REFLECT","BLOCK","ApiOperationFromModel","verb","path","httpToCrud","GET","READ","Get","POST","CREATE","Post","PUT","UPDATE","Put","PATCH","Patch","DELETE","Delete","crudOp","HttpMethodDecorator","ApiExcludeEndpoint","ApiParamsFromModel","props","decorators","map","p","ApiParamDec","String","applyDecorators","__decorate","Global","Module","__param","ModuleRef","OrderedParams","createParamDecorator","order","ctx","req","switchToHttp","getRequest","original","params","orderList","keys","ordered","k","DecafParams","DecafRequestContext","cache","Map","set","key","value","DecafHandlerExecutor","handlers","context","exec","res","handle","FromModelController","create","ModelClazz","tableName","Model","routePath","toKebabCase","modelClazzName","getPK","apiProperties","getRouteParametersFromModel","debug","DynamicModelController","LoggedClass","clientContext","super","pk","persistence","_persistence","ModelService","getService","Repository","forModel","adapterOptions","data","created","verbose","read","routeParams","id","ValidationError","query","method","results","update","body","updated","delete","del","ApiOperation","summary","ApiBody","schema","$ref","getSchemaPath","ApiCreatedResponse","ApiBadRequestResponse","ApiUnprocessableEntityResponse","Body","prototype","ApiOkResponse","ApiNotFoundResponse","ApiParam","Param","Controller","ApiTags","ApiExtraModels","composed","DBKeys","COMPOSED","composedKeys","keysToReturn","length","uniqueKeys","from","Set","join","separator","DecafRequestHandlerInterceptor","executor","intercept","next","getResponse","DecafModelModule","DecafModelModule_1","createModelServices","models","model","flavour","trackedModels","Adapter","modelServices","controllers","H","APP_INTERCEPTOR","useClass","DecafModule","DecafModule_1","forRootAsync","autoControllers","imports","push","repoForModel","m","InternalError","CorsError","ForbiddenError","msg","HttpResponseError","request","responseError","status","HttpStatus","INTERNAL_SERVER_ERROR","message","toString","toUpperCase","timestamp","Date","toISOString","url","AuthorizationError","Error","code","setPrototypeOf","AuthorizationExceptionFilter","exception","host","response","httpResponseError","UNAUTHORIZED","json","Catch","ConflictError","ConflictExceptionFilter","CONFLICT","GlobalExceptionFilter","HttpException","getStatus","HttpExceptionFilter","NotFoundError","NotFoundExceptionFilter","NOT_FOUND","ValidationExceptionFilter","UNPROCESSABLE_ENTITY","SWAGGER_UI_CONSTANTS","title","version","faviconFilePath","topbarIconFilePath","auth","scheme","bearerFormat","in","persistAuthorization","topbarBgColor","SwaggerCustomUI","customCSS","css","topbarIconPath","b64","getCustomOptions","favicon","faviconPath","customSiteTitle","customCss","swaggerOptions","jsonDocumentUrl","yamlDocumentUrl","file","img","filePath","assetsPath","readFileSync","encoding","SwaggerBuilder","app","createDocument","config","DocumentBuilder","setTitle","setDescription","setVersion","addBearerAuth","build","SwaggerModule","extraModels","setupSwagger","document","swaggerUI","setup","NestBootstraper","logger","Logger","initialize","enableLogger","customLogger","useLogger","enableCors","origins","allowMethods","allowedOrigins","o","trim","toLowerCase","corsOptions","origin","callback","includes","credentials","methods","useHelmet","helmet","require","use","warn","useGlobalPipes","pipes","useGlobalFilters","filters","defaultFilters","useGlobalInterceptors","interceptors","start","port","Number","process","env","PORT","listen","then","getUrl","VERSION","PACKAGE_NAME","registerLibrary"],"mappings":"s4CAYAA,EAAWC,IAAIC,EAAgBC,YAC5BC,OAAO,CACNC,UAAW,CACTC,EACAC,KAEAA,EACEA,IACqB,iBAAbD,EACJE,OAAOC,OACLH,EACAI,GAEFA,GACCC,EAAW,CAChBC,MAAOL,EAAIM,UAAYC,EAAMC,QAAUD,EAAME,QAC7CC,SAASV,EAAIM,gBAAYK,OAI9BC,QAEHnB,EAAWC,IAAIC,EAAgBkB,QAC5BhB,OAAO,CACNC,UAAW,CACTC,EAEAC,IAEO,CACLc,EACAC,EACAC,IAEOC,EAAOlB,GAAae,EAApBG,CACLH,EACAC,EACAC,KAKPJ,QAEHnB,EAAWC,IAAIwB,EAAeC,UAC3BtB,OACCuB,EAAY,CACVC,UAAU,KAGbT,QAEHnB,EAAWC,IAAIwB,EAAeI,KAC3BzB,OAAO,CACNC,UAA2ByB,GAClBH,EAAY,CAAEI,QAASD,MAGjCX,QAEHnB,EAAWC,IAAIwB,EAAeO,KAC3B5B,OAAO,CACNC,UAA2B4B,GAClBN,EAAY,CAAEO,QAASD,MAGjCd,QAEHnB,EAAWC,IAAIwB,EAAeU,YAC3B/B,OAAO,CACNC,UAAiCyB,GACxBH,EAAY,CAAES,UAAWN,MAGnCX,QAEHnB,EAAWC,IAAIwB,EAAeY,YAC3BjC,OAAO,CACNC,UAAiC4B,GACxBN,EAAY,CAAEW,UAAWL,MAGnCd,QAkBHnB,EAAWC,IAAIwB,EAAec,MAC3BnC,OAAO,CACNC,UACEmC,IAKA,MAAMC,EAAIC,MAAMC,QAAQH,GAASA,EAAM,GAAKA,EAC5C,OAAOb,EAAY,CAAEiB,KAAM,CAACH,IAC7B,IAEFtB,QAYHnB,EAAWC,IAAIwB,EAAeoB,SAC3BzC,OAAO,CACNC,UAA+ByC,GACtBnB,EAAY,CACjBoB,QAAwB,iBAARD,EAAmBA,EAAMA,EAAIE,WAIlD7B,QAEHnB,EAAWC,IAAIgD,EAAgBC,QAC5B9C,OAAO,CACNC,UAA8B8C,GACrBxB,EAAY,CACjBwB,KAAMA,MAIXhC,QAEHnB,EAAWC,IAAImD,EAAeC,aAC3BjD,OAAO,CACNC,UAAmCiD,GAC1B3B,EAAY,CACjB2B,YAAaA,MAIlBnC,QCpKI,MAAMoC,GAAuB,qBACvBC,GAAmB,eAEnBC,GAAiBC,OAAO,iBACxBC,GAAwBD,OAAO,iCCarC,IAAME,GAAN,4BAIUC,KAAgBC,iBAAuC,IAAK,CAEjE,cAAWC,GAEnB,OADKF,KAAKG,UAASH,KAAKG,QAAUC,EAAQhE,IAAIiE,KACvCL,KAAKG,OACb,CAED,WAAAG,CAEmBC,EACAC,GADAR,KAAOO,QAAPA,EACAP,KAASQ,UAATA,CACf,CAEJ,0BAAaC,CACXF,GAEA,IAAKP,KAAKC,iBAAkB,CAC1B,MAAMC,EAAMF,KAAKE,IAAI9D,IAAI4D,KAAKS,eAC9BP,EAAIQ,KAAK,gCACTV,KAAKC,iBAAmB,IAAIM,EAAQI,QAAQJ,EAAQK,KAAML,EAAQM,OAClEX,EAAIQ,KAAK,yCACV,CACD,OAAOV,KAAKC,gBACb,CAED,yBAAOa,GACL,OAAOd,KAAKC,gBACb,CAED,cAAOc,CAAQR,GACb,MAAMS,EAAuB,CAC3BC,QAASvB,GACTwB,SAAUX,GAGNI,EAAgC,CACpCQ,WAAYC,MAAOC,GACVhB,GAAgBI,cAAcY,GAEvCJ,QAAStB,GACTvC,SAAS,EACTL,MAAOE,EAAMC,QACboE,OAAQ,CAAC5B,KAMX,MAAO,CACL6B,OAAQlB,GACRmB,UALgB,CAACb,EAASK,GAM1BS,QALc,CAACd,GAOlB,CAED,2BAAMe,GACJ,MAAMxB,EAAMG,GAAgBH,IAAI9D,IAAI4D,KAAK0B,uBACnCf,EAAUX,KAAKQ,UAAUmB,IAAahC,IAC5C,IACMgB,IACFT,EAAIQ,KAAK,uBACHC,EAAQiB,WACdvB,GAAgBJ,iBAAmB,KAEtC,CAAC,MAAO4B,GACP3B,EAAI4B,MAAM,iCAAkCD,EAC7C,CACF,GCxEa,SAAAE,GACdC,EACAC,GAEA,MAAMC,QAAEA,EAAOC,KAAEA,GAAUC,EAAST,IAClCK,EACAK,GAAcC,QAAUD,GAAcE,QACnC,CAAE,EASP,QAAQL,IAAmBA,KAAWC,EAAMF,KAAO,EACrD,UAUgBO,GACdR,EACAS,EACAC,GAEA,MAAMC,EAGF,CACFC,IAAK,CAACP,GAAcQ,KAAMC,GAC1BC,KAAM,CAACV,GAAcW,OAAQC,GAC7BC,IAAK,CAACb,GAAcc,OAAQC,GAC5BC,MAAO,CAAChB,GAAcc,OAAQG,GAC9BC,OAAQ,CAAClB,GAAckB,OAAQC,KAG1BC,EAAQC,GAAuBf,EAAWF,GACjD,OAAOV,GAAmBC,EAAkByB,GACxCnG,GAAMqG,KACNrG,GAAMoG,EAAoBhB,GAChC,CChDgB,SAAAkB,GACdC,EAA8B,IAE9B,MAAMC,EAAaD,EAAME,IAAKC,GAC5BC,EAAY,CACV3E,KAAM0E,EAAE1E,KACRG,YAAauE,EAAEvE,aAAe,mBAAmBuE,EAAE1E,KACnDvB,SAAUiG,EAAEjG,WAAY,EAExBgB,KAAMiF,EAAEjF,MAAQmF,UAGpB,OAAOC,KAAmBL,EAC5B,CFXa/D,GAAeM,GAAA+D,EAAA,CAF3BC,IACAC,EAAO,CAAA,GAaHC,EAAA,EAAA5G,EAAO+B,mCAEoB8E,KAdnBzE,IGHb,MAAM0E,GAAgBC,EACpB,CAACC,EAA6BC,KAC5B,MAAMC,EAAMD,EAAIE,eAAeC,aACzBC,EAAYH,GAAKI,QAAU,CAAE,EAC7BC,EAAYP,GAAShI,OAAOwI,KAAKH,GACjCI,EAAUF,EAAUnB,IAAKsB,GAAML,EAASK,IAC9C,MAAO,CAAEL,WAAUI,UAAST,MAAOO,KAUvB,SAAAI,GACdzB,EAA8B,IAE9B,MAAMc,EAAQd,EAAME,IAAKC,GAAMA,EAAE1E,MACjC,OAAOmF,GAAcE,EACvB,CCXa,IAAAY,GAAN,MAAA,WAAAjF,GACGN,KAAAwF,MAAQ,IAAIC,GASrB,CAPC,GAAAC,CAAIC,EAAsBC,GACxB5F,KAAKwF,MAAME,IAAIC,EAAKC,EACrB,CAED,GAAAjE,CAAagE,GACX,OAAO3F,KAAKwF,MAAM7D,IAAIgE,EACvB,GATUJ,GAAmBnB,EAAA,CAD/BtH,EAAW,CAAEC,MAAOE,EAAME,WACdoI,IC0BA,IAAAM,GAAN,MACL,WAAAvF,CAC2CwF,EACxBC,GADwB/F,KAAQ8F,SAARA,EACxB9F,KAAO+F,QAAPA,CACf,CAEJ,UAAMC,CAAKnB,EAAcoB,GACvB,IAAK,MAAM/D,KAAWlC,KAAK8F,eACnB5D,EAAQgE,OAAOlG,KAAK+F,QAASlB,EAAKoB,EAE3C,GAVUJ,GAAoBzB,EAAA,CADhCtH,EAAW,CAAEC,MAAOE,EAAME,UAGtBoH,EAAA,EAAA5G,EAAOiC,kCACkB2F,MAHjBM,UC+BAM,UACanG,KAAGE,IAAGE,EAAQhE,IAAI+J,GAAoB7G,KAAM,CAEpE,aAAO8G,CAA6BC,GAClC,MAAMnG,EAAMiG,GAAoBjG,IAAI9D,IAAI+J,GAAoBC,QACtDE,EAAYC,EAAMD,UAAUD,GAC5BG,EAAYC,EAAYH,GACxBI,EAAiBL,EAAW/G,MAE5BG,YAAEA,EAAWkH,MAAEA,EAAKC,cAAEA,EAAalE,KAAEA,GACzCyD,GAAoBU,4BAA4BR,GAElDnG,EAAI4G,MAAM,kCAAkCJ,GAE5C,IAGMK,EAHN,cAGqCC,EAInC,WAAA1G,CAAoB2G,GAClBC,QADkBlH,KAAaiH,cAAbA,EAFHjH,KAAAmH,GAAaZ,EAAMY,GAAGd,GAIrCnG,EAAIQ,KACF,6CAA6CgG,aAA0BF,IAE1E,CAED,eAAIY,GACGpH,KAAKqH,eACRrH,KAAKqH,aACFC,EAAaC,WAAWlB,IACxBmB,EAAWC,SAASpB,IAEzB,MAAMqB,EAAiB1H,KAAKiH,cAActF,IAAI7B,IAC9C,OAAI4H,EAAuB1H,KAAKqH,aAAajL,IAAIsL,GAE1C1H,KAAKqH,YACb,CAeD,YAAMjB,CAAeuB,GACnB,MAAMzH,EAAMF,KAAKE,IAAI9D,IAAI4D,KAAKoG,QAE9B,IAAIwB,EADJ1H,EAAI2H,QAAQ,gBAAgBnB,GAE5B,IACEkB,QAAgB5H,KAAKoH,YAAYhB,OAAOuB,EACzC,CAAC,MAAO9F,GAEP,MADA3B,EAAI4B,MAAM,wBAAwB4E,EAAkB7E,GAC9CA,CACP,CAID,OAHA3B,EAAIQ,KACF,eAAegG,aAA2BkB,EAAgB5H,KAAKmH,OAE1DS,CACR,CAWD,UAAME,CAAiCC,GACrC,MAAMC,EAAKrB,KAASoB,EAAY3C,SAChC,QAAkB,IAAP4C,EACT,MAAM,IAAIC,GAAgB,MAAMjI,KAAKmH,eAEvC,MAAMjH,EAAMF,KAAKE,IAAI9D,IAAI4D,KAAK8H,MAC9B,IAAIA,EACJ,IACE5H,EAAI4G,MAAM,WAAWJ,UAAuB1G,KAAKmH,MAAMa,KACvDF,QAAa9H,KAAKoH,YAAYU,KAAKE,EACpC,CAAC,MAAOnG,GAKP,MAJA3B,EAAI4B,MACF,kBAAkB4E,aAA0BsB,IAC5CnG,GAEIA,CACP,CAGD,OADA3B,EAAIQ,KAAK,QAAQgG,aAA2BoB,EAAa9H,KAAKmH,OACvDW,CACR,CAWD,WAAMI,CAAuBC,GAC3B,MAAMjI,EAAMF,KAAKE,IAAI9D,IAAI4D,KAAK8H,MAC9B,IAAIM,EAEJ,IACElI,EAAI4G,MAAM,YAAYJ,mBAAgCyB,MACtD,MAAMhG,EAAO,CAACgG,GACdC,QAAiBpI,KAAKoH,YAAYc,SAAiB/F,EACpD,CAAC,MAAON,GAKP,MAJA3B,EAAI4B,MACF,mBAAmB4E,mBAAgCyB,KACnDtG,GAEIA,CACP,CAKD,OAHA3B,EAAIQ,KACF,wBAAwBgG,mBAAgCyB,MAEnDC,CACR,CAkBD,YAAMC,CACwBN,EACpBO,GAER,MAAMpI,EAAMF,KAAKE,IAAI9D,IAAI4D,KAAKqI,QACxBL,EAAKrB,KAASoB,EAAY3C,SAChC,QAAkB,IAAP4C,EACT,MAAM,IAAIC,GAAgB,MAAMjI,KAAKmH,eAEvC,IAAIoB,EACJ,IACErI,EAAIQ,KAAK,YAAYgG,UAAuB1G,KAAKmH,MAAMa,KACvDO,QAAgBvI,KAAKoH,YAAYiB,OAC/B,IAAIhC,EAAW,IACViC,EACH,CAACtI,KAAKmH,IAAKa,IAGhB,CAAC,MAAOnG,GAEP,MADA3B,EAAI4B,MAAMD,GACJA,CACP,CACD,OAAO0G,CACR,CAWD,YAAM,CAAmCR,GACvC,MAAM7H,EAAMF,KAAKE,IAAI9D,IAAI4D,KAAKwI,QACxBR,EAAKrB,KAASoB,EAAY3C,SAChC,QAAkB,IAAP4C,EACT,MAAM,IAAIC,GAAgB,MAAMjI,KAAKmH,eAEvC,IAAIsB,EACJ,IACEvI,EAAI4G,MACF,YAAYJ,UAAuB1G,KAAKmH,MAAgBa,KAE1DS,QAAYzI,KAAKoH,YAAYoB,OAAOR,EACrC,CAAC,MAAOnG,GAKP,MAJA3B,EAAI4B,MACF,oBAAoB4E,aAA0BsB,IAC9CnG,GAEIA,CACP,CAED,OADA3B,EAAIQ,KAAK,WAAWgG,aAA0BsB,KACvCS,CACR,GAGH,OAxJQrE,EAAA,CAbL5B,GAAsB6D,EAAY,QAClCqC,EAAa,CAAEC,QAAS,gBAAgBjC,OACxCkC,EAAQ,CACPnJ,YAAa,eAAeiH,EAC5BmC,OAAQ,CAAEC,KAAMC,EAAc1C,MAE/B2C,EAAmB,CAClBvJ,YAAgBiH,EAAH,2BAEduC,EAAsB,CAAExJ,YAAa,+BACrCyJ,EAA+B,CAC9BzJ,YAAa,8CAED8E,EAAA,EAAA4E,+FAcbpC,EAAAqC,UAAA,SAAA,MAWKhF,EAAA,CATL5B,GAAsB6D,EAAY,MAAO3D,GACzCkB,GAAmBgD,GACnB8B,EAAa,CAAEC,QAAS,cAAcjC,oBACtC2C,EAAc,CACb5J,YAAgBiH,EAAH,6BAEd4C,EAAoB,CACnB7J,YAAa,MAAMiH,8CAETnC,EAAA,EAAAe,GAAYsB,8FAoBvBG,EAAAqC,UAAA,OAAA,MAWKhF,EAAA,CATL5B,GAAsB6D,EAAY,MAAO,iBACzCqC,EAAa,CAAEC,QAAS,YAAYjC,wBACpC6C,EAAS,CAAEjK,KAAM,SAAUG,YAAa,8BACxC4J,EAAc,CACb5J,YAAgBiH,EAAH,6BAEd4C,EAAoB,CACnB7J,YAAa,MAAMiH,iCAERnC,EAAA,EAAAiF,EAAM,qGAoBlBzC,EAAAqC,UAAA,QAAA,MAkBKhF,EAAA,CAhBL5B,GAAsB6D,EAAY,MAAO3D,GACzCkB,GAAmBgD,GACnB8B,EAAa,CACZC,QAAS,uBAAuBjC,iCAEjCkC,EAAQ,CACPnJ,YAAa,4CAA4CiH,EACzDmC,OAAQ,CAAEC,KAAMC,EAAc1C,MAE/BgD,EAAc,CACb5J,YAAgB4G,EAAH,mCAEdiD,EAAoB,CACnB7J,YAAa,MAAMiH,8CAEpBuC,EAAsB,CAAExJ,YAAa,+BAEnC8E,EAAA,EAAAe,GAAYsB,IACZrC,EAAA,EAAA4E,6DAAa5C,oCAqBfQ,EAAAqC,UAAA,SAAA,MAWKhF,EAAA,CATL5B,GAAsB6D,EAAY,SAAU3D,GAC5CkB,GAAmBgD,GACnB8B,EAAa,CAAEC,QAAS,YAAYjC,oBACpC2C,EAAc,CACb5J,YAAgBiH,EAAH,kCAEd4C,EAAoB,CACnB7J,YAAa,MAAMiH,8CAEPnC,EAAA,EAAAe,GAAYsB,8FAqBzBG,EAAAqC,UAAA,SAAA,MAzLGrC,EAAsB3C,EAAA,CAH3BqF,EAAWjD,GACXkD,EAAQhD,GACRiD,EAAetD,0BAKqBd,MAJ/BwB,GA4LCA,CACR,CAED,kCAAOF,CACLR,GAEA,MAAMc,EAAKZ,EAAMY,GAAGd,GACduD,EAAWxH,EAAST,IACxB0E,EACAjE,EAASuD,IAAIkE,GAAOC,SAAU3C,IAE1B4C,EAAeH,GAAUzH,MAAQ,GAEjC6H,EACJnL,MAAMC,QAAQiL,IAAiBA,EAAaE,OAAS,EACjD,IAAIF,GACJ,CAAC5C,GAED1H,EAAc2C,EAAS3C,YAAY4G,GAGnC6D,EAAarL,MAAMsL,KAAK,IAAIC,IAAIJ,IAYtC,MAAO,CACLtH,KAXWwH,EAAWnG,IAAK4B,GAAQ,IAAIA,GAAO0E,KAAK,KAYnD5K,cACAmH,cAZ0CsD,EAAWnG,IAAK4B,IACnD,CACLrG,KAAMqG,EACNlG,YAAa2C,EAAS3C,YAAY4G,EAAYV,GAC9C5H,UAAU,EACVgB,KAAMmF,UAQRyC,MAAO,IAAI1B,IACT2E,GAAUU,UAAYrF,EAAOoF,KAAKT,EAASU,WAAarF,EAAOoF,KAAK,IAEzE,EC9QU,IAAAE,GAAN,MACL,WAAAjK,CAA6BkK,GAAAxK,KAAQwK,SAARA,CAAkC,CAE/D,eAAMC,CAAU7F,EAAuB8F,GACrC,MAAM7F,EAAMD,EAAIE,eAAeC,aACzBkB,EAAMrB,EAAIE,eAAe6F,cAE/B,aADM3K,KAAKwK,SAASxE,KAAKnB,EAAKoB,GACvByE,EAAKxE,QACb,UARUqE,GAA8BnG,EAAA,CAD1CtH,EAAW,CAAEC,MAAOE,EAAME,iCAEc0I,MAD5B0E,IC7CA,IAAAK,GAAN,4BACmB5K,KAAGE,IAAGE,EAAQhE,IAAIyO,GAAiBvL,KAAM,CAEzD,0BAAOwL,CAAoBC,GACjC,OAAOA,EAAOhH,IAAKiH,IAAW,CAC5B/J,QAAY+J,EAAM1L,KAAT,UACT6B,WAAY,IAAMmG,EAAaG,SAASuD,KAE3C,CAED,cAAOjK,CACLkK,EACAnF,EAAwC,IAExC,MAAM5F,EAAMF,KAAKE,IAAI9D,IAAI4D,KAAKe,SAC9Bb,EAAIQ,KAAK,yCAET,MAAMwK,EAAgBC,EAAQJ,OAAOE,GAC/BG,EAAgBpL,KAAK8K,oBAAoBI,GACzCG,EAAcH,EAAcnH,IAAIoC,GAAoBC,QAI1D,OAFAlG,EAAIQ,KAAK,aAAa2K,EAAYpB,sBAE3B,CACL1I,OAAQsJ,GACRQ,cACA7J,UAAW,CACT,CACEP,QAASrB,GACTuB,WAAY,IACH2E,EAAS/B,IAAKuH,IACnBpL,EAAIQ,KAAK,+BAA+B4K,EAAEhM,MACnC,IAAIgM,KAIjB/F,GACAM,GACA,CACE5E,QAASsK,EACTC,SAAUjB,OAETa,GAGR,UA7CUR,GAAgBC,GAAAzG,EAAA,CAD5BE,EAAO,CAAA,IACKsG,ICFA,IAAAa,GAANC,GAAA,MACL,yBAAaC,CACXpL,GAEA,MAAMqL,gBAAEA,GAAoBrL,EAGtB0K,SADgBlL,GAAgBU,cAAcF,IAC5B0K,QAElBY,EAOU,CAAC9L,GAAgBgB,QAAQR,IAMzC,OAJIqL,GACFC,EAAQC,KAAKlB,GAAiB7J,QAAQkK,EAAS1K,EAAQuF,WAGlD,CACLvE,OAAQmK,GACRG,QAASA,EAEZ,GC/BG,SAAUE,GAAaf,GAC5B,MAAMgB,EAAIzF,EAAM5E,IAAIqJ,GACpB,IAAKgB,EACJ,MAAM,IAAIC,GAAc,iCAAiCjB,GAE1D,OADaxD,EAAWC,SAASuE,EAElC,CDDaP,GAAWC,GAAAtH,EAAA,CADvBE,EAAO,CAAA,IACKmH,IEPP,MAAOS,WAAkBC,EAC7B,WAAA7L,CAAY8L,GACVlF,MAAMkF,EAAKF,GAAU5M,KACtB,QCHU+M,GAQX,WAAA/L,CACEgM,EACAC,GAEA,MAAMC,EAASD,GAAeC,QAAUC,EAAWC,sBAC7CC,EAAUJ,GAAeI,SAAW,wBACpC7K,GACJyK,GAAezK,OACf2K,EAAWD,IACX,kBAECI,WACAC,cAEHlQ,OAAOC,OAAOoD,KAAM,CAClBwM,SACAG,UACA7K,QACAgL,WAAW,IAAIC,MAAOC,cACtBtK,KAAM4J,EAAQW,IACd9E,OAAQmE,EAAQnE,QAEnB,ECxBG,MAAO+E,WAA2BC,MAItC,WAAA7M,CAAYqM,EAAU,gBACpBzF,MAAMyF,GACN3M,KAAKV,KAAO,qBACZU,KAAKwM,OAAS,IACdxM,KAAKoN,KAAO,eACZzQ,OAAO0Q,eAAerN,KAAMkN,GAAmB9D,UAChD,EAIU,IAAAkE,GAAN,MACL,MAAMC,EAA+BC,GACnC,MAAM5I,EAAM4I,EAAK1I,eACXwH,EAAU1H,EAAIG,aACd0I,EAAW7I,EAAI+F,cAEf+C,EAAoB,IAAIrB,GAAkBC,EAAS,CACvDxK,MAAO,eACP0K,OAAQC,EAAWkB,aACnBhB,QAASY,EAAUZ,UAGpBc,EAAiBjB,OAAOC,EAAWkB,cAAcC,KAAKF,EACxD,GAbUJ,GAA4BlJ,EAAA,CADxCyJ,EAAMX,KACMI,ICdP,MAAOQ,WAAsBX,MAIjC,WAAA7M,CAAYqM,EAAU,YACpBzF,MAAMyF,GACN3M,KAAKV,KAAO,gBACZU,KAAKwM,OAAS,IACdxM,KAAKoN,KAAO,WAEZzQ,OAAO0Q,eAAerN,KAAM8N,GAAc1E,UAC3C,EAIU,IAAA2E,GAAN,MACL,MAAMR,EAA0BC,GAC9B,MAAM5I,EAAM4I,EAAK1I,eACX2I,EAAW7I,EAAI+F,cACf2B,EAAU1H,EAAIG,aAEd2I,EAAoB,IAAIrB,GAAkBC,EAAS,CACvDE,OAAQC,EAAWuB,SACnBrB,QAASY,EAAUZ,QACnB7K,MAAO,aAGR2L,EAAiBjB,OAAOkB,EAAkBlB,QAAQoB,KAAKF,EACzD,GAbUK,GAAuB3J,EAAA,CADnCyJ,EAAMC,KACMC,ICbA,IAAAE,GAAN,MACL,MAAMV,EAAoBC,GACxB,MAAM5I,EAAM4I,EAAK1I,eACXwH,EAAU1H,EAAIG,aACd0I,EAAW7I,EAAI+F,cAErB,IAEI7I,EAFA0K,EAASC,EAAWC,sBACpBC,EAAU,wBAGd,GAAIY,aAAqBW,EAAe,CACtC,MAAMjI,EAAWsH,EAAU5C,cAC3B6B,EAASe,EAAUY,YACnBxB,GAAW1G,GAAK0G,SAAWY,EAAUZ,UAAYA,EACjD7K,EAAQmE,GAAKnE,OAASyL,EAAUjO,IACjC,MAAUiO,aAAqBJ,QAC9BR,EAAUY,EAAUZ,QACpB7K,EAAQyL,EAAUjO,MAGpB,MAAMoO,EAAoB,IAAIrB,GAAkBC,EAAS,CACvDE,SACAG,UACA7K,UAED2L,EAAiBjB,OAAOkB,EAAkBlB,QAAQoB,KAAKF,EACzD,GA1BUO,GAAqB7J,EAAA,CADjCyJ,KACYI,ICDA,IAAAG,GAAN,MACL,MAAMb,EAA0BC,GAC9B,MAAM5I,EAAM4I,EAAK1I,eACX2I,EAAW7I,EAAI+F,cACf2B,EAAU1H,EAAIG,aACdyH,EAASe,EAAUY,YAEnBT,EAAoB,IAAIrB,GAAkBC,EAAS,CACvDE,SACAG,QAASY,EAAUZ,QACnB7K,MAAOyL,EAAUjO,OAGlBmO,EAAiBjB,OAAOkB,EAAkBlB,QAAQoB,KAAKF,EACzD,GAdUU,GAAmBhK,EAAA,CAD/ByJ,EAAMK,IACME,ICDP,MAAOC,WAAsBlB,MAIjC,WAAA7M,CAAYqM,EAAU,sBACpBzF,MAAMyF,GACN3M,KAAKV,KAAO,gBACZU,KAAKwM,OAAS,IACdxM,KAAKoN,KAAO,YAEZzQ,OAAO0Q,eAAerN,KAAMqO,GAAcjF,UAC3C,EAIU,IAAAkF,GAAN,MACL,MAAMf,EAA0BC,GAC9B,MAAM5I,EAAM4I,EAAK1I,eACX2I,EAAW7I,EAAI+F,cACf2B,EAAU1H,EAAIG,aAEd2I,EAAoB,IAAIrB,GAAkBC,EAAS,CACvDE,OAAQC,EAAW8B,UACnB5B,QAASY,EAAUZ,QACnB7K,MAAO,cAGR2L,EAAiBjB,OAAOkB,EAAkBlB,QAAQoB,KAAKF,EACzD,GAbUY,GAAuBlK,EAAA,CADnCyJ,EAAMQ,KACMC,ICfP,MAAOrG,WAAwBkF,MAInC,WAAA7M,CAAYqM,EAAU,qBACpBzF,MAAMyF,GACN3M,KAAKV,KAAO,kBACZU,KAAKwM,OAAS,IACdxM,KAAKoN,KAAO,mBAEZzQ,OAAO0Q,eAAerN,KAAMiI,GAAgBmB,UAC7C,EAIU,IAAAoF,GAAN,MACL,MAAMjB,EAA4BC,GAChC,MAAM5I,EAAM4I,EAAK1I,eACX2I,EAAW7I,EAAI+F,cACf2B,EAAU1H,EAAIG,aAEd2I,EAAoB,IAAIrB,GAAkBC,EAAS,CACvDE,OAAQC,EAAWgC,qBACnB9B,QAASY,EAAUZ,QACnB7K,MAAO,qBAGR2L,EAAiBjB,OAAOkB,EAAkBlB,QAAQoB,KAAKF,EACzD,GAbUc,GAAyBpK,EAAA,CADrCyJ,EAAM5F,KACMuG,ICNN,MAAME,GAAuC,CAClDC,MAAO,wCACPlP,YAAa,kDACbmP,QAAS,QACTlM,KAAM,OACNmM,gBAAiB,GACjBC,mBAAoB,GACpBC,KAAM,CACJhQ,KAAM,OACNiQ,OAAQ,SACRC,aAAc,MACd3P,KAAM,gBACNG,YAAa,kBACbyP,GAAI,UAENC,sBAAsB,EACtBC,cAAe,iBCnBJC,GAUX,WAAA/O,CAAYC,GACVP,KAAKO,QAAU,IACVA,EAEN,CAEO,SAAA+O,GACN,IAAIC,EAAM,GAKV,OAJIvP,KAAKO,QAAQiP,iBAEfD,GAAO,yDADKvP,KAAKyP,IAAIzP,KAAKO,QAAQiP,sDAIlCD,EACA,0GAE4CvP,KAAKO,QAAQ6O,eAAiBV,GAAqBU,0BAGlG,CAED,gBAAAM,GACE,MAAMC,EAA+B,CAAA,EAKrC,OAJI3P,KAAKO,QAAQqP,cACfD,EAAuB,cAAI3P,KAAKyP,IAAIzP,KAAKO,QAAQqP,aAAa,IAGzD,CACLC,gBAAiB7P,KAAKO,QAAQoO,SAC3BgB,EACHG,UAAW9P,KAAKsP,YAChBS,eAAgB,CACdZ,qBAAsBnP,KAAKO,QAAQ4O,sBAErCa,gBAAiBhQ,KAAKO,QAAQmC,KACvB1C,KAAKO,QAAQmC,KAAhB,kBACArF,EACJ4S,gBAAiBjQ,KAAKO,QAAQmC,KACvB1C,KAAKO,QAAQmC,KAAhB,kBACArF,EAEP,CAED,GAAAoS,CAAIS,EAAcC,GAAe,GAC/B,MAAMC,EAAW1N,GAAK2H,KAAKrK,KAAKO,QAAQ8P,YAAc,GAAIH,GACpDT,EAAMa,GAAaF,EAAU,CAAEG,SAAU,WAC/C,OAAOJ,EAAM,yBAA2BV,EAAMA,CAC/C,QClEUe,GACX,WAAAlQ,CACmBmQ,EACAlQ,GADAP,KAAGyQ,IAAHA,EACAzQ,KAAOO,QAAPA,CACf,CAEI,cAAAmQ,GACN,MAAMjR,EAAcO,KAAKO,QAAQmC,KAC7B1C,KAAKO,QAAQd,YACb,GACA,oBAAoBO,KAAKO,QAAQmC,2CACjC,YAAY1C,KAAKO,QAAQmC,wCACzB1C,KAAKO,QAAQd,YAEXkR,GAAS,IAAIC,GAChBC,SAAS7Q,KAAKO,QAAQoO,OACtBmC,eAAerR,GACfsR,WAAW/Q,KAAKO,QAAQqO,SAAW,SACnCoC,cAAchR,KAAKO,QAAQwO,MAAQL,GAAqBK,MACxDkC,QAEH,OAAOC,EAAcR,eAAe1Q,KAAKyQ,IAAKE,EAAQ,CACpDQ,YAAanR,KAAKO,QAAQ4Q,aAAe,IAE5C,CAEM,YAAAC,GACL,MAAMC,EAAWrR,KAAK0Q,iBAChBY,EAAY,IAAIjC,GAAgB,CACpCV,MAAO3O,KAAKO,QAAQoO,MACpBjM,KAAM1C,KAAKO,QAAQmC,MAAQgM,GAAqBhM,KAChDyM,qBAAsBnP,KAAKO,QAAQ4O,uBAAwB,EAC3DkB,WAAYrQ,KAAKO,QAAQ8P,WACzBT,YAAa5P,KAAKO,QAAQsO,gBAC1BW,eAAgBxP,KAAKO,QAAQuO,mBAC7BM,cAAepP,KAAKO,QAAQ6O,gBAE9B8B,EAAcK,MACZvR,KAAKO,QAAQmC,MAAQgM,GAAqBhM,KAC1C1C,KAAKyQ,IACLY,EACA,IACKC,EAAU5B,oBAGlB,QC+CU8B,GAcH,iBAAWC,GAKjB,OAJKzR,KAAKG,UAERH,KAAKG,QAAU,IAAIuR,EAAO,kBAErB1R,KAAKG,OACb,CAaD,iBAAOwR,CAAWlB,GAEhB,OADAzQ,KAAKyQ,IAAMA,EACJzQ,IACR,CAcD,mBAAO4R,CAAaC,GAGlB,OAFA7R,KAAKG,QAAU0R,GAAgB,IAAIH,EAAO,iBAC1C1R,KAAKyQ,IAAIqB,UAAU9R,KAAKG,SACjBH,IACR,CAgBD,iBAAO+R,CACLC,EAA0B,GAC1BC,EAAyB,CAAC,MAAO,OAAQ,MAAO,WAEhD,MAAMC,EACQ,MAAZF,EAAkB,IAAMA,EAAQjO,IAAKoO,GAAMA,EAAEC,OAAOC,eAEhDC,EAA2B,CAC/BC,OAAQ,CAACA,EAAQC,IAEVD,EAGgB,MAAnBL,GACCrT,MAAMC,QAAQoT,IACbA,EAAeO,SAASF,EAAOF,eAE1BG,EAAS,MAAM,QAGxBA,EAAS,IAAItG,GAAU,UAAUqG,kBAVbC,EAAS,MAAM,GAYrCE,aAAa,EACbC,QAASV,EAAa5H,KAAK,MAI7B,OADArK,KAAKyQ,IAAIsB,WAAWO,GACbtS,IACR,CAcD,gBAAO4S,CAAUrS,GACf,IAEE,MAAMsS,EAASC,QAAQ,UACvB9S,KAAKyQ,IAAIsC,IAAIF,EAAOtS,IACpBP,KAAKyR,OAAOvR,IAAI,0CAEjB,CAAC,MAAO2B,GACP7B,KAAKyR,OAAOuB,KAAK,6CAClB,CAED,OAAOhT,IACR,CAcD,mBAAOoR,CAAa7Q,GAalB,OAZgB,IAAIiQ,GAAexQ,KAAKyQ,IAAK,CAC3C9B,MAAOpO,EAAQoO,MACflP,YAAac,EAAQd,YACrBmP,QAASrO,EAAQqO,QACjBlM,KAAMnC,EAAQmC,MAAQ,MACtByM,qBAAsB5O,EAAQ4O,uBAAwB,EACtDkB,WAAY9P,EAAQ8P,WACpBxB,gBAAiBtO,EAAQqP,YACzBd,mBAAoBvO,EAAQiP,eAC5BJ,cAAe7O,EAAQ6O,gBAEjBgC,eACDpR,IACR,CAcD,qBAAOiT,IAAkBC,GAEvB,OADIA,EAAMjJ,OAAS,GAAGjK,KAAKyQ,IAAIwC,kBAAkBC,GAC1ClT,IACR,CAaD,uBAAOmT,IAAoBC,GACzB,MAAMC,EAAiB,CACrB,IAAIjF,GACJ,IAAII,GACJ,IAAIF,GACJ,IAAIP,GACJ,IAAIT,GACJ,IAAIW,IAMN,OAHAjO,KAAKyQ,IAAI0C,oBACHC,EAAQnJ,OAAS,EAAImJ,EAAUC,GAE9BrT,IACR,CAcD,4BAAOsT,IAAyBC,GAG9B,OAFIA,EAAatJ,OAAS,GACxBjK,KAAKyQ,IAAI6C,yBAAyBC,GAC7BvT,IACR,CAgBD,kBAAawT,CACXC,EAAeC,OAAOC,QAAQC,IAAIC,OAAS,IAC3CrG,OAA2BnQ,EAC3B6C,GAAe,GAEfF,KAAKyQ,IAAIqD,OAAOL,EAAMjG,GAAauG,KAAK3S,UACtC,GAAIlB,EAAK,CACP,MAAM+M,QAAYjN,KAAKyQ,IAAIuD,SAC3BhU,KAAKyR,OAAOvR,IAAI,2CAAiC+M,EAClD,GAEJ,ECzSI,MAAMgH,GAAU,cACVC,GAAe,cAE5B9R,EAAS+R,gBAAgBD,GAAcD"}
1
+ {"version":3,"file":"for-nest.js","sources":["../src/decoration.ts","../src/constants.ts","../src/core-module.ts","../src/decaf-model/decorators/ApiOperationFromModel.ts","../src/decaf-model/decorators/ApiParamsFromModel.ts","../src/decaf-model/decorators/DecafParams.ts","../src/request/DecafRequestContext.ts","../src/request/DecafHandlerExecutor.ts","../src/interceptors/AuthInterceptor.ts","../src/decaf-model/decorators/decorators.ts","../src/decaf-model/FromModelController.ts","../src/interceptors/DecafRequestHandlerInterceptor.ts","../src/decaf-model/DecafModelModule.ts","../src/module.ts","../src/utils.ts","../src/factory/errors/cors.ts","../src/factory/exceptions/HttpResponseError.ts","../src/factory/exceptions/AuthorizationExceptionFilter.ts","../src/factory/exceptions/ConflictExceptionFilter.ts","../src/factory/exceptions/GlobalExceptionFilter.ts","../src/factory/exceptions/HttpExceptionFilter.ts","../src/factory/exceptions/NotFoundExceptionFilter.ts","../src/factory/exceptions/ValidationExceptionFilter.ts","../src/factory/openapi/constants.ts","../src/factory/openapi/SwaggerCustomUI.ts","../src/factory/openapi/SwaggerBuilder.ts","../src/factory/NestBootstraper.ts","../src/index.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null],"names":["Decoration","for","InjectablesKeys","INJECTABLE","extend","decorator","category","cfg","Object","assign","DefaultInjectablesConfig","Injectable","scope","singleton","Scope","DEFAULT","REQUEST","durable","undefined","apply","INJECT","target","propertyKey","descriptor","Inject","ValidationKeys","REQUIRED","ApiProperty","required","MAX","max","maximum","MIN","min","minimum","MAX_LENGTH","maxLength","MIN_LENGTH","minLength","LIST","clazz","c","Array","isArray","type","PATTERN","pat","pattern","source","PersistenceKeys","COLUMN","name","DecorationKeys","DESCRIPTION","description","DECAF_MODULE_OPTIONS","DECAF_ADAPTER_ID","DECAF_HANDLERS","Symbol","DECAF_ADAPTER_OPTIONS","AUTH_HANDLER","AUTH_META_KEY","AuthRole","DecafCoreModule","this","_adapterInstance","log","_logger","Logging","DecafCoreModule_1","constructor","options","moduleRef","createAdapter","info","adapter","conf","alias","getAdapterInstance","forRoot","typeOrmModuleOptions","provide","useValue","useFactory","async","opts","inject","module","providers","exports","onApplicationShutdown","get","shutdown","e","error","isOperationBlocked","ModelConstructor","op","handler","args","Metadata","OperationKeys","REFLECT","BLOCK","ApiOperationFromModel","verb","path","httpToCrud","GET","READ","Get","POST","CREATE","Post","PUT","UPDATE","Put","PATCH","Patch","DELETE","Delete","crudOp","HttpMethodDecorator","ApiExcludeEndpoint","ApiParamsFromModel","props","decorators","map","p","ApiParamDec","String","applyDecorators","__decorate","Global","Module","__param","ModuleRef","OrderedParams","createParamDecorator","order","ctx","req","switchToHttp","getRequest","original","params","orderList","keys","ordered","k","DecafParams","DecafRequestContext","cache","Map","set","key","value","DecafHandlerExecutor","handlers","context","exec","res","handle","AuthInterceptor","reflector","authHandler","intercept","next","modelName","getHandler","getClass","authorize","Auth","model","resource","SetMetadata","UseInterceptors","Optional","Reflector","FromModelController","create","ModelClazz","tableName","Model","routePath","toKebabCase","modelClazzName","getPK","apiProperties","getRouteParametersFromModel","debug","DynamicModelController","LoggedClass","clientContext","super","pk","persistence","_persistence","ModelService","getService","Repository","forModel","adapterOptions","data","created","verbose","read","routeParams","id","ValidationError","query","method","results","update","body","updated","delete","del","ApiOperation","summary","ApiBody","schema","$ref","getSchemaPath","ApiCreatedResponse","ApiBadRequestResponse","ApiUnprocessableEntityResponse","Body","prototype","ApiOkResponse","ApiNotFoundResponse","ApiParam","Param","Controller","ApiTags","ApiExtraModels","composed","DBKeys","COMPOSED","composedKeys","keysToReturn","length","uniqueKeys","from","Set","join","separator","DecafRequestHandlerInterceptor","executor","getResponse","DecafModelModule","DecafModelModule_1","createModelServices","models","flavour","trackedModels","Adapter","modelServices","controllers","H","APP_INTERCEPTOR","useClass","DecafModule","DecafModule_1","forRootAsync","autoControllers","imports","push","repoForModel","m","InternalError","CorsError","ForbiddenError","msg","HttpResponseError","request","responseError","status","HttpStatus","INTERNAL_SERVER_ERROR","message","toString","toUpperCase","timestamp","Date","toISOString","url","AuthorizationError","Error","code","setPrototypeOf","AuthorizationExceptionFilter","exception","host","response","httpResponseError","UNAUTHORIZED","json","Catch","ConflictError","ConflictExceptionFilter","CONFLICT","GlobalExceptionFilter","HttpException","getStatus","HttpExceptionFilter","NotFoundError","NotFoundExceptionFilter","NOT_FOUND","ValidationExceptionFilter","UNPROCESSABLE_ENTITY","SWAGGER_UI_CONSTANTS","title","version","faviconFilePath","topbarIconFilePath","auth","scheme","bearerFormat","in","persistAuthorization","topbarBgColor","SwaggerCustomUI","customCSS","css","topbarIconPath","b64","getCustomOptions","favicon","faviconPath","customSiteTitle","customCss","swaggerOptions","jsonDocumentUrl","yamlDocumentUrl","file","img","filePath","assetsPath","readFileSync","encoding","SwaggerBuilder","app","createDocument","config","DocumentBuilder","setTitle","setDescription","setVersion","addBearerAuth","build","SwaggerModule","extraModels","setupSwagger","document","swaggerUI","setup","NestBootstraper","logger","Logger","initialize","enableLogger","customLogger","useLogger","enableCors","origins","allowMethods","allowedOrigins","o","trim","toLowerCase","corsOptions","origin","callback","includes","credentials","methods","useHelmet","helmet","require","use","warn","useGlobalPipes","pipes","useGlobalFilters","filters","defaultFilters","useGlobalInterceptors","interceptors","start","port","Number","process","env","PORT","listen","then","getUrl","VERSION","PACKAGE_NAME","registerLibrary"],"mappings":"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"}
package/lib/constants.cjs CHANGED
@@ -1,8 +1,11 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.DECAF_ADAPTER_OPTIONS = exports.DECAF_HANDLERS = exports.DECAF_ADAPTER_ID = exports.DECAF_MODULE_OPTIONS = void 0;
3
+ exports.AuthRole = exports.AUTH_META_KEY = exports.AUTH_HANDLER = exports.DECAF_ADAPTER_OPTIONS = exports.DECAF_HANDLERS = exports.DECAF_ADAPTER_ID = exports.DECAF_MODULE_OPTIONS = void 0;
4
4
  exports.DECAF_MODULE_OPTIONS = "DecafModuleOptions";
5
5
  exports.DECAF_ADAPTER_ID = "DecafAdapter";
6
6
  exports.DECAF_HANDLERS = Symbol("DecafHandlers");
7
7
  exports.DECAF_ADAPTER_OPTIONS = Symbol("DecafAdapterForOptions");
8
+ exports.AUTH_HANDLER = Symbol("AUTH_HANDLER");
9
+ exports.AUTH_META_KEY = "auth:meta";
10
+ exports.AuthRole = "AuthRole";
8
11
  //# sourceMappingURL=constants.js.map
@@ -2,3 +2,6 @@ export declare const DECAF_MODULE_OPTIONS = "DecafModuleOptions";
2
2
  export declare const DECAF_ADAPTER_ID = "DecafAdapter";
3
3
  export declare const DECAF_HANDLERS: unique symbol;
4
4
  export declare const DECAF_ADAPTER_OPTIONS: unique symbol;
5
+ export declare const AUTH_HANDLER: unique symbol;
6
+ export declare const AUTH_META_KEY = "auth:meta";
7
+ export declare const AuthRole = "AuthRole";
@@ -1 +1 @@
1
- {"version":3,"file":"constants.js","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":";;;AAAa,QAAA,oBAAoB,GAAG,oBAAoB,CAAC;AAC5C,QAAA,gBAAgB,GAAG,cAAc,CAAC;AAElC,QAAA,cAAc,GAAG,MAAM,CAAC,eAAe,CAAC,CAAC;AACzC,QAAA,qBAAqB,GAAG,MAAM,CAAC,wBAAwB,CAAC,CAAC"}
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":";;;AAAa,QAAA,oBAAoB,GAAG,oBAAoB,CAAC;AAC5C,QAAA,gBAAgB,GAAG,cAAc,CAAC;AAElC,QAAA,cAAc,GAAG,MAAM,CAAC,eAAe,CAAC,CAAC;AACzC,QAAA,qBAAqB,GAAG,MAAM,CAAC,wBAAwB,CAAC,CAAC;AAEzD,QAAA,YAAY,GAAG,MAAM,CAAC,cAAc,CAAC,CAAC;AACtC,QAAA,aAAa,GAAG,WAAW,CAAC;AAE5B,QAAA,QAAQ,GAAG,UAAU,CAAC"}
@@ -23,6 +23,7 @@ const decoration_1 = require("@decaf-ts/decoration");
23
23
  const decorators_1 = require("./decorators/index.cjs");
24
24
  const request_1 = require("./../request/index.cjs");
25
25
  const constants_1 = require("./../constants.cjs");
26
+ const decorators_2 = require("./decorators/decorators.cjs");
26
27
  /**
27
28
  * @description
28
29
  * Factory and utilities for generating dynamic NestJS controllers from Decaf {@link Model} definitions.
@@ -273,6 +274,7 @@ class FromModelController {
273
274
  (0, common_1.Controller)(routePath),
274
275
  (0, swagger_1.ApiTags)(modelClazzName),
275
276
  (0, swagger_1.ApiExtraModels)(ModelClazz),
277
+ (0, decorators_2.Auth)(ModelClazz),
276
278
  __metadata("design:paramtypes", [request_1.DecafRequestContext])
277
279
  ], DynamicModelController);
278
280
  return DynamicModelController;
@@ -1 +1 @@
1
- {"version":3,"file":"FromModelController.js","sourceRoot":"","sources":["../../src/decaf-model/FromModelController.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"FromModelController.js","sourceRoot":"","sources":["../../src/decaf-model/FromModelController.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,60 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Roles = void 0;
4
+ exports.Auth = Auth;
5
+ const common_1 = require("@nestjs/common");
6
+ const constants_1 = require("./../../constants.cjs");
7
+ const AuthInterceptor_1 = require("./../../interceptors/AuthInterceptor.cjs");
8
+ const decoration_1 = require("@decaf-ts/decoration");
9
+ /**
10
+ * A decorator function that applies authentication and authorization metadata to a NestJS controller or method.
11
+ *
12
+ * @param model - The model name or constructor function for the resource being accessed.
13
+ * If a string is provided, it is used as the resource name.
14
+ * If a constructor function is provided, its name is used as the resource name.
15
+ *
16
+ * @returns - A function that applies the authentication and authorization decorators to the target.
17
+ *
18
+ * @example
19
+ * ```typescript
20
+ * @Controller('users')
21
+ * @Auth('User')
22
+ * export class UsersController {
23
+ * // ...
24
+ * }
25
+ * ```
26
+ *
27
+ * @example
28
+ * ```typescript
29
+ * @Controller('users')
30
+ * @Auth(User)
31
+ * export class UsersController {
32
+ * // ...
33
+ * }
34
+ * ```
35
+ */
36
+ function Auth(model) {
37
+ const resource = typeof model === "string" ? model : model.name;
38
+ return (0, common_1.applyDecorators)((0, common_1.SetMetadata)(constants_1.AUTH_META_KEY, resource), (0, common_1.UseInterceptors)(AuthInterceptor_1.AuthInterceptor));
39
+ }
40
+ /**
41
+ * A decorator function that sets the roles required for authentication and authorization to the model in NestJS.
42
+ *
43
+ * @param roles - An array of role names required for access.
44
+ *
45
+ * @returns - A function that applies the role decorators to the target.
46
+ *
47
+ * @example
48
+ * ```typescript
49
+ * @model('users')
50
+ * @Roles(['admin'])
51
+ * export class UserModel {
52
+ * //...
53
+ * }
54
+ *
55
+ */
56
+ const Roles = (roles) => {
57
+ return (0, decoration_1.metadata)(constants_1.AuthRole, roles);
58
+ };
59
+ exports.Roles = Roles;
60
+ //# sourceMappingURL=decorators.js.map
@@ -0,0 +1,46 @@
1
+ import { Constructor } from "@decaf-ts/decoration";
2
+ /**
3
+ * A decorator function that applies authentication and authorization metadata to a NestJS controller or method.
4
+ *
5
+ * @param model - The model name or constructor function for the resource being accessed.
6
+ * If a string is provided, it is used as the resource name.
7
+ * If a constructor function is provided, its name is used as the resource name.
8
+ *
9
+ * @returns - A function that applies the authentication and authorization decorators to the target.
10
+ *
11
+ * @example
12
+ * ```typescript
13
+ * @Controller('users')
14
+ * @Auth('User')
15
+ * export class UsersController {
16
+ * // ...
17
+ * }
18
+ * ```
19
+ *
20
+ * @example
21
+ * ```typescript
22
+ * @Controller('users')
23
+ * @Auth(User)
24
+ * export class UsersController {
25
+ * // ...
26
+ * }
27
+ * ```
28
+ */
29
+ export declare function Auth(model: string | Constructor): <TFunction extends Function, Y>(target: TFunction | object, propertyKey?: string | symbol, descriptor?: TypedPropertyDescriptor<Y>) => void;
30
+ /**
31
+ * A decorator function that sets the roles required for authentication and authorization to the model in NestJS.
32
+ *
33
+ * @param roles - An array of role names required for access.
34
+ *
35
+ * @returns - A function that applies the role decorators to the target.
36
+ *
37
+ * @example
38
+ * ```typescript
39
+ * @model('users')
40
+ * @Roles(['admin'])
41
+ * export class UserModel {
42
+ * //...
43
+ * }
44
+ *
45
+ */
46
+ export declare const Roles: (roles: string[]) => (model: any, prop?: any, descriptor?: PropertyDescriptor | number) => void;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"decorators.js","sourceRoot":"","sources":["../../../src/decaf-model/decorators/decorators.ts"],"names":[],"mappings":";;;AAiCA,oBAOC;AAxCD,2CAA+E;AAE/E,qDAA0D;AAC1D,8EAAqE;AACrE,qDAAgD;AAEhD;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,SAAgB,IAAI,CAAC,KAA2B;IAC9C,MAAM,QAAQ,GAAG,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC;IAEhE,OAAO,IAAA,wBAAe,EACpB,IAAA,oBAAW,EAAC,yBAAa,EAAE,QAAQ,CAAC,EACpC,IAAA,wBAAe,EAAC,iCAAe,CAAC,CACjC,CAAC;AACJ,CAAC;AAED;;;;;;;;;;;;;;;GAeG;AACI,MAAM,KAAK,GAAG,CAAC,KAAe,EAAE,EAAE;IACvC,OAAO,IAAA,qBAAQ,EAAC,oBAAQ,EAAE,KAAK,CAAC,CAAC;AACnC,CAAC,CAAC;AAFW,QAAA,KAAK,SAEhB"}
@@ -2,3 +2,6 @@ export declare const DECAF_MODULE_OPTIONS = "DecafModuleOptions";
2
2
  export declare const DECAF_ADAPTER_ID = "DecafAdapter";
3
3
  export declare const DECAF_HANDLERS: unique symbol;
4
4
  export declare const DECAF_ADAPTER_OPTIONS: unique symbol;
5
+ export declare const AUTH_HANDLER: unique symbol;
6
+ export declare const AUTH_META_KEY = "auth:meta";
7
+ export declare const AuthRole = "AuthRole";
@@ -2,4 +2,7 @@ export const DECAF_MODULE_OPTIONS = "DecafModuleOptions";
2
2
  export const DECAF_ADAPTER_ID = "DecafAdapter";
3
3
  export const DECAF_HANDLERS = Symbol("DecafHandlers");
4
4
  export const DECAF_ADAPTER_OPTIONS = Symbol("DecafAdapterForOptions");
5
+ export const AUTH_HANDLER = Symbol("AUTH_HANDLER");
6
+ export const AUTH_META_KEY = "auth:meta";
7
+ export const AuthRole = "AuthRole";
5
8
  //# sourceMappingURL=constants.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/constants.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,oBAAoB,GAAG,oBAAoB,CAAC;AACzD,MAAM,CAAC,MAAM,gBAAgB,GAAG,cAAc,CAAC;AAE/C,MAAM,CAAC,MAAM,cAAc,GAAG,MAAM,CAAC,eAAe,CAAC,CAAC;AACtD,MAAM,CAAC,MAAM,qBAAqB,GAAG,MAAM,CAAC,wBAAwB,CAAC,CAAC"}
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/constants.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,oBAAoB,GAAG,oBAAoB,CAAC;AACzD,MAAM,CAAC,MAAM,gBAAgB,GAAG,cAAc,CAAC;AAE/C,MAAM,CAAC,MAAM,cAAc,GAAG,MAAM,CAAC,eAAe,CAAC,CAAC;AACtD,MAAM,CAAC,MAAM,qBAAqB,GAAG,MAAM,CAAC,wBAAwB,CAAC,CAAC;AAEtE,MAAM,CAAC,MAAM,YAAY,GAAG,MAAM,CAAC,cAAc,CAAC,CAAC;AACnD,MAAM,CAAC,MAAM,aAAa,GAAG,WAAW,CAAC;AAEzC,MAAM,CAAC,MAAM,QAAQ,GAAG,UAAU,CAAC"}
@@ -20,6 +20,7 @@ import { Metadata } from "@decaf-ts/decoration";
20
20
  import { ApiOperationFromModel, ApiParamsFromModel, DecafParams, } from "./decorators/index.js";
21
21
  import { DecafRequestContext } from "./../request/index.js";
22
22
  import { DECAF_ADAPTER_OPTIONS } from "./../constants.js";
23
+ import { Auth } from "./decorators/decorators.js";
23
24
  /**
24
25
  * @description
25
26
  * Factory and utilities for generating dynamic NestJS controllers from Decaf {@link Model} definitions.
@@ -270,6 +271,7 @@ export class FromModelController {
270
271
  Controller(routePath),
271
272
  ApiTags(modelClazzName),
272
273
  ApiExtraModels(ModelClazz),
274
+ Auth(ModelClazz),
273
275
  __metadata("design:paramtypes", [DecafRequestContext])
274
276
  ], DynamicModelController);
275
277
  return DynamicModelController;
@@ -1 +1 @@
1
- {"version":3,"file":"FromModelController.js","sourceRoot":"","sources":["../../../src/decaf-model/FromModelController.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"FromModelController.js","sourceRoot":"","sources":["../../../src/decaf-model/FromModelController.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,46 @@
1
+ import { Constructor } from "@decaf-ts/decoration";
2
+ /**
3
+ * A decorator function that applies authentication and authorization metadata to a NestJS controller or method.
4
+ *
5
+ * @param model - The model name or constructor function for the resource being accessed.
6
+ * If a string is provided, it is used as the resource name.
7
+ * If a constructor function is provided, its name is used as the resource name.
8
+ *
9
+ * @returns - A function that applies the authentication and authorization decorators to the target.
10
+ *
11
+ * @example
12
+ * ```typescript
13
+ * @Controller('users')
14
+ * @Auth('User')
15
+ * export class UsersController {
16
+ * // ...
17
+ * }
18
+ * ```
19
+ *
20
+ * @example
21
+ * ```typescript
22
+ * @Controller('users')
23
+ * @Auth(User)
24
+ * export class UsersController {
25
+ * // ...
26
+ * }
27
+ * ```
28
+ */
29
+ export declare function Auth(model: string | Constructor): <TFunction extends Function, Y>(target: TFunction | object, propertyKey?: string | symbol, descriptor?: TypedPropertyDescriptor<Y>) => void;
30
+ /**
31
+ * A decorator function that sets the roles required for authentication and authorization to the model in NestJS.
32
+ *
33
+ * @param roles - An array of role names required for access.
34
+ *
35
+ * @returns - A function that applies the role decorators to the target.
36
+ *
37
+ * @example
38
+ * ```typescript
39
+ * @model('users')
40
+ * @Roles(['admin'])
41
+ * export class UserModel {
42
+ * //...
43
+ * }
44
+ *
45
+ */
46
+ export declare const Roles: (roles: string[]) => (model: any, prop?: any, descriptor?: PropertyDescriptor | number) => void;
@@ -0,0 +1,55 @@
1
+ import { applyDecorators, SetMetadata, UseInterceptors } from "@nestjs/common";
2
+ import { AUTH_META_KEY, AuthRole } from "./../../constants.js";
3
+ import { AuthInterceptor } from "./../../interceptors/AuthInterceptor.js";
4
+ import { metadata } from "@decaf-ts/decoration";
5
+ /**
6
+ * A decorator function that applies authentication and authorization metadata to a NestJS controller or method.
7
+ *
8
+ * @param model - The model name or constructor function for the resource being accessed.
9
+ * If a string is provided, it is used as the resource name.
10
+ * If a constructor function is provided, its name is used as the resource name.
11
+ *
12
+ * @returns - A function that applies the authentication and authorization decorators to the target.
13
+ *
14
+ * @example
15
+ * ```typescript
16
+ * @Controller('users')
17
+ * @Auth('User')
18
+ * export class UsersController {
19
+ * // ...
20
+ * }
21
+ * ```
22
+ *
23
+ * @example
24
+ * ```typescript
25
+ * @Controller('users')
26
+ * @Auth(User)
27
+ * export class UsersController {
28
+ * // ...
29
+ * }
30
+ * ```
31
+ */
32
+ export function Auth(model) {
33
+ const resource = typeof model === "string" ? model : model.name;
34
+ return applyDecorators(SetMetadata(AUTH_META_KEY, resource), UseInterceptors(AuthInterceptor));
35
+ }
36
+ /**
37
+ * A decorator function that sets the roles required for authentication and authorization to the model in NestJS.
38
+ *
39
+ * @param roles - An array of role names required for access.
40
+ *
41
+ * @returns - A function that applies the role decorators to the target.
42
+ *
43
+ * @example
44
+ * ```typescript
45
+ * @model('users')
46
+ * @Roles(['admin'])
47
+ * export class UserModel {
48
+ * //...
49
+ * }
50
+ *
51
+ */
52
+ export const Roles = (roles) => {
53
+ return metadata(AuthRole, roles);
54
+ };
55
+ //# sourceMappingURL=decorators.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"decorators.js","sourceRoot":"","sources":["../../../../src/decaf-model/decorators/decorators.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAE/E,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,6BAAwB;AAC1D,OAAO,EAAE,eAAe,EAAE,gDAA2C;AACrE,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAEhD;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,MAAM,UAAU,IAAI,CAAC,KAA2B;IAC9C,MAAM,QAAQ,GAAG,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC;IAEhE,OAAO,eAAe,CACpB,WAAW,CAAC,aAAa,EAAE,QAAQ,CAAC,EACpC,eAAe,CAAC,eAAe,CAAC,CACjC,CAAC;AACJ,CAAC;AAED;;;;;;;;;;;;;;;GAeG;AACH,MAAM,CAAC,MAAM,KAAK,GAAG,CAAC,KAAe,EAAE,EAAE;IACvC,OAAO,QAAQ,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;AACnC,CAAC,CAAC"}
@@ -35,5 +35,5 @@ export * from "./request";
35
35
  * @constant
36
36
  * @type {string}
37
37
  */
38
- export declare const VERSION = "0.1.6";
38
+ export declare const VERSION = "0.1.7";
39
39
  export declare const PACKAGE_NAME = "@decaf-ts/for-nest";
package/lib/esm/index.js CHANGED
@@ -36,7 +36,7 @@ export * from "./request/index.js";
36
36
  * @constant
37
37
  * @type {string}
38
38
  */
39
- export const VERSION = "0.1.6";
39
+ export const VERSION = "0.1.7";
40
40
  export const PACKAGE_NAME = "@decaf-ts/for-nest";
41
41
  Metadata.registerLibrary(PACKAGE_NAME, VERSION);
42
42
  //# sourceMappingURL=index.js.map
@@ -0,0 +1,10 @@
1
+ import { NestInterceptor, ExecutionContext, CallHandler } from "@nestjs/common";
2
+ import { Reflector } from "@nestjs/core";
3
+ import { Observable } from "rxjs";
4
+ import type { AuthHandler } from "../types";
5
+ export declare class AuthInterceptor implements NestInterceptor {
6
+ private readonly reflector;
7
+ private readonly authHandler?;
8
+ constructor(reflector: Reflector, authHandler?: AuthHandler | undefined);
9
+ intercept(ctx: ExecutionContext, next: CallHandler): Promise<Observable<any>>;
10
+ }
@@ -0,0 +1,37 @@
1
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6
+ };
7
+ var __metadata = (this && this.__metadata) || function (k, v) {
8
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
9
+ };
10
+ var __param = (this && this.__param) || function (paramIndex, decorator) {
11
+ return function (target, key) { decorator(target, key, paramIndex); }
12
+ };
13
+ import { Injectable, Inject, Optional, } from "@nestjs/common";
14
+ import { Reflector } from "@nestjs/core";
15
+ import { AUTH_HANDLER, AUTH_META_KEY } from "./../constants.js";
16
+ let AuthInterceptor = class AuthInterceptor {
17
+ constructor(reflector, authHandler) {
18
+ this.reflector = reflector;
19
+ this.authHandler = authHandler;
20
+ }
21
+ async intercept(ctx, next) {
22
+ const modelName = this.reflector.get(AUTH_META_KEY, ctx.getHandler()) ??
23
+ this.reflector.get(AUTH_META_KEY, ctx.getClass());
24
+ if (modelName && this.authHandler) {
25
+ await this.authHandler.authorize(ctx, modelName);
26
+ }
27
+ return next.handle();
28
+ }
29
+ };
30
+ AuthInterceptor = __decorate([
31
+ Injectable(),
32
+ __param(1, Optional()),
33
+ __param(1, Inject(AUTH_HANDLER)),
34
+ __metadata("design:paramtypes", [Reflector, Object])
35
+ ], AuthInterceptor);
36
+ export { AuthInterceptor };
37
+ //# sourceMappingURL=AuthInterceptor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AuthInterceptor.js","sourceRoot":"","sources":["../../../src/interceptors/AuthInterceptor.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,OAAO,EACL,UAAU,EAIV,MAAM,EACN,QAAQ,GACT,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAIzC,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,0BAAqB;AAIpD,IAAM,eAAe,GAArB,MAAM,eAAe;IAC1B,YACmB,SAAoB,EACc,WAAyB;QAD3D,cAAS,GAAT,SAAS,CAAW;QACc,gBAAW,GAAX,WAAW,CAAc;IAC3E,CAAC;IAEJ,KAAK,CAAC,SAAS,CACb,GAAqB,EACrB,IAAiB;QAEjB,MAAM,SAAS,GACb,IAAI,CAAC,SAAS,CAAC,GAAG,CAChB,aAAa,EACb,GAAG,CAAC,UAAU,EAAE,CACjB;YACD,IAAI,CAAC,SAAS,CAAC,GAAG,CAAuB,aAAa,EAAE,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC;QAE1E,IAAI,SAAS,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YAClC,MAAM,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;QACnD,CAAC;QAED,OAAO,IAAI,CAAC,MAAM,EAAE,CAAC;IACvB,CAAC;CACF,CAAA;AAvBY,eAAe;IAD3B,UAAU,EAAE;IAIR,WAAA,QAAQ,EAAE,CAAA;IAAE,WAAA,MAAM,CAAC,YAAY,CAAC,CAAA;qCADL,SAAS;GAF5B,eAAe,CAuB3B"}
@@ -1,6 +1,6 @@
1
1
  import { Adapter } from "@decaf-ts/core";
2
2
  import { Constructor } from "@decaf-ts/decoration";
3
- import { Type } from "@nestjs/common";
3
+ import { ExecutionContext, Type } from "@nestjs/common";
4
4
  export interface RequestContextAccessor {
5
5
  set(key: string | symbol, value: any): void;
6
6
  get<T = any>(key: string | symbol): T | undefined;
@@ -18,3 +18,47 @@ export type DecafModuleOptions<CONF = any, A extends Adapter<CONF, any, any, any
18
18
  autoControllers: boolean;
19
19
  handlers?: Type<DecafRequestHandler>[];
20
20
  };
21
+ /**
22
+ * Abstraction used by the {@link AuthInterceptor} to authorize decaf models.
23
+ *
24
+ * // costumauthHandler.ts
25
+ *
26
+ * @example
27
+ * export class CustomAuthHandler implements AuthHandler {
28
+ * async authorize(ctx: ExecutionContext, resource: string) {
29
+ * const req = ctx.switchToHttp().getRequest();
30
+ * const userRole = req.headers.authorization?.split(" ")[1] as string;
31
+ * if (!userRole) throw new AuthorizationError("Unauthenticated");
32
+ * const roles = Metadata.get(Model.get(resource)!, AuthRole);
33
+ * if (!roles.includes(userRole)) {
34
+ * throw new AuthorizationError("Unauthorized");
35
+ * }
36
+ * }
37
+ * }
38
+ *
39
+ * // auth.module.ts
40
+ *
41
+ * @Global()
42
+ * @Module({
43
+ * providers: [
44
+ * AuthInterceptor,
45
+ * CustomAuthHandler,
46
+ * {
47
+ * provide: AUTH_HANDLER,
48
+ * useClass: CustomAuthHandler, //swap this to use another provider
49
+ * },
50
+ * ],
51
+ * exports: [AUTH_HANDLER, AuthInterceptor],
52
+ * })
53
+ * export class AuthModule {}
54
+ */
55
+ export interface AuthHandler {
56
+ /**
57
+ * Inspect the request context and ensure the caller can access the model.
58
+ * Implementations should throw an {@link AuthorizationError} on denial.
59
+ *
60
+ * @param ctx - Nest execution context that exposes the request/response.
61
+ * @param model - Model name or constructor being accessed.
62
+ */
63
+ authorize(ctx: ExecutionContext, model: string | Constructor): Promise<void> | void;
64
+ }
package/lib/index.cjs CHANGED
@@ -53,7 +53,7 @@ __exportStar(require("./request/index.cjs"), exports);
53
53
  * @constant
54
54
  * @type {string}
55
55
  */
56
- exports.VERSION = "0.1.6";
56
+ exports.VERSION = "0.1.7";
57
57
  exports.PACKAGE_NAME = "@decaf-ts/for-nest";
58
58
  decoration_1.Metadata.registerLibrary(exports.PACKAGE_NAME, exports.VERSION);
59
59
  //# sourceMappingURL=index.js.map
package/lib/index.d.ts CHANGED
@@ -35,5 +35,5 @@ export * from "./request";
35
35
  * @constant
36
36
  * @type {string}
37
37
  */
38
- export declare const VERSION = "0.1.6";
38
+ export declare const VERSION = "0.1.7";
39
39
  export declare const PACKAGE_NAME = "@decaf-ts/for-nest";
@@ -0,0 +1,40 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ var __param = (this && this.__param) || function (paramIndex, decorator) {
12
+ return function (target, key) { decorator(target, key, paramIndex); }
13
+ };
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ exports.AuthInterceptor = void 0;
16
+ const common_1 = require("@nestjs/common");
17
+ const core_1 = require("@nestjs/core");
18
+ const constants_1 = require("./../constants.cjs");
19
+ let AuthInterceptor = class AuthInterceptor {
20
+ constructor(reflector, authHandler) {
21
+ this.reflector = reflector;
22
+ this.authHandler = authHandler;
23
+ }
24
+ async intercept(ctx, next) {
25
+ const modelName = this.reflector.get(constants_1.AUTH_META_KEY, ctx.getHandler()) ??
26
+ this.reflector.get(constants_1.AUTH_META_KEY, ctx.getClass());
27
+ if (modelName && this.authHandler) {
28
+ await this.authHandler.authorize(ctx, modelName);
29
+ }
30
+ return next.handle();
31
+ }
32
+ };
33
+ exports.AuthInterceptor = AuthInterceptor;
34
+ exports.AuthInterceptor = AuthInterceptor = __decorate([
35
+ (0, common_1.Injectable)(),
36
+ __param(1, (0, common_1.Optional)()),
37
+ __param(1, (0, common_1.Inject)(constants_1.AUTH_HANDLER)),
38
+ __metadata("design:paramtypes", [core_1.Reflector, Object])
39
+ ], AuthInterceptor);
40
+ //# sourceMappingURL=AuthInterceptor.js.map
@@ -0,0 +1,10 @@
1
+ import { NestInterceptor, ExecutionContext, CallHandler } from "@nestjs/common";
2
+ import { Reflector } from "@nestjs/core";
3
+ import { Observable } from "rxjs";
4
+ import type { AuthHandler } from "../types";
5
+ export declare class AuthInterceptor implements NestInterceptor {
6
+ private readonly reflector;
7
+ private readonly authHandler?;
8
+ constructor(reflector: Reflector, authHandler?: AuthHandler | undefined);
9
+ intercept(ctx: ExecutionContext, next: CallHandler): Promise<Observable<any>>;
10
+ }
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AuthInterceptor.js","sourceRoot":"","sources":["../../src/interceptors/AuthInterceptor.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,2CAOwB;AACxB,uCAAyC;AAIzC,kDAA2D;AAIpD,IAAM,eAAe,GAArB,MAAM,eAAe;IAC1B,YACmB,SAAoB,EACc,WAAyB;QAD3D,cAAS,GAAT,SAAS,CAAW;QACc,gBAAW,GAAX,WAAW,CAAc;IAC3E,CAAC;IAEJ,KAAK,CAAC,SAAS,CACb,GAAqB,EACrB,IAAiB;QAEjB,MAAM,SAAS,GACb,IAAI,CAAC,SAAS,CAAC,GAAG,CAChB,yBAAa,EACb,GAAG,CAAC,UAAU,EAAE,CACjB;YACD,IAAI,CAAC,SAAS,CAAC,GAAG,CAAuB,yBAAa,EAAE,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC;QAE1E,IAAI,SAAS,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YAClC,MAAM,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;QACnD,CAAC;QAED,OAAO,IAAI,CAAC,MAAM,EAAE,CAAC;IACvB,CAAC;CACF,CAAA;AAvBY,0CAAe;0BAAf,eAAe;IAD3B,IAAA,mBAAU,GAAE;IAIR,WAAA,IAAA,iBAAQ,GAAE,CAAA;IAAE,WAAA,IAAA,eAAM,EAAC,wBAAY,CAAC,CAAA;qCADL,gBAAS;GAF5B,eAAe,CAuB3B"}
package/lib/types.d.ts CHANGED
@@ -1,6 +1,6 @@
1
1
  import { Adapter } from "@decaf-ts/core";
2
2
  import { Constructor } from "@decaf-ts/decoration";
3
- import { Type } from "@nestjs/common";
3
+ import { ExecutionContext, Type } from "@nestjs/common";
4
4
  export interface RequestContextAccessor {
5
5
  set(key: string | symbol, value: any): void;
6
6
  get<T = any>(key: string | symbol): T | undefined;
@@ -18,3 +18,47 @@ export type DecafModuleOptions<CONF = any, A extends Adapter<CONF, any, any, any
18
18
  autoControllers: boolean;
19
19
  handlers?: Type<DecafRequestHandler>[];
20
20
  };
21
+ /**
22
+ * Abstraction used by the {@link AuthInterceptor} to authorize decaf models.
23
+ *
24
+ * // costumauthHandler.ts
25
+ *
26
+ * @example
27
+ * export class CustomAuthHandler implements AuthHandler {
28
+ * async authorize(ctx: ExecutionContext, resource: string) {
29
+ * const req = ctx.switchToHttp().getRequest();
30
+ * const userRole = req.headers.authorization?.split(" ")[1] as string;
31
+ * if (!userRole) throw new AuthorizationError("Unauthenticated");
32
+ * const roles = Metadata.get(Model.get(resource)!, AuthRole);
33
+ * if (!roles.includes(userRole)) {
34
+ * throw new AuthorizationError("Unauthorized");
35
+ * }
36
+ * }
37
+ * }
38
+ *
39
+ * // auth.module.ts
40
+ *
41
+ * @Global()
42
+ * @Module({
43
+ * providers: [
44
+ * AuthInterceptor,
45
+ * CustomAuthHandler,
46
+ * {
47
+ * provide: AUTH_HANDLER,
48
+ * useClass: CustomAuthHandler, //swap this to use another provider
49
+ * },
50
+ * ],
51
+ * exports: [AUTH_HANDLER, AuthInterceptor],
52
+ * })
53
+ * export class AuthModule {}
54
+ */
55
+ export interface AuthHandler {
56
+ /**
57
+ * Inspect the request context and ensure the caller can access the model.
58
+ * Implementations should throw an {@link AuthorizationError} on denial.
59
+ *
60
+ * @param ctx - Nest execution context that exposes the request/response.
61
+ * @param model - Model name or constructor being accessed.
62
+ */
63
+ authorize(ctx: ExecutionContext, model: string | Constructor): Promise<void> | void;
64
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@decaf-ts/for-nest",
3
- "version": "0.1.6",
3
+ "version": "0.1.7",
4
4
  "description": "NestJS decaf integration",
5
5
  "type": "module",
6
6
  "exports": {