@decaf-ts/for-nest 0.0.8 → 0.0.9

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 (46) hide show
  1. package/README.md +22 -2
  2. package/dist/for-nest.cjs +1 -1
  3. package/dist/for-nest.cjs.map +1 -1
  4. package/dist/for-nest.js +1 -1
  5. package/dist/for-nest.js.map +1 -1
  6. package/lib/decaf-model/FromModelController.cjs +1 -0
  7. package/lib/decaf-model/FromModelController.js.map +1 -1
  8. package/lib/decaf-model/decorators/ApiOperationFromModel.cjs +1 -1
  9. package/lib/decaf-model/decorators/ApiOperationFromModel.js.map +1 -1
  10. package/lib/decaf-model/decorators/ApiParamsFromModel.cjs +2 -2
  11. package/lib/decaf-model/decorators/ApiParamsFromModel.d.ts +2 -2
  12. package/lib/decoration.cjs +10 -10
  13. package/lib/decoration.js.map +1 -1
  14. package/lib/esm/decaf-model/FromModelController.js +1 -0
  15. package/lib/esm/decaf-model/FromModelController.js.map +1 -1
  16. package/lib/esm/decaf-model/decorators/ApiOperationFromModel.js +1 -1
  17. package/lib/esm/decaf-model/decorators/ApiOperationFromModel.js.map +1 -1
  18. package/lib/esm/decaf-model/decorators/ApiParamsFromModel.d.ts +2 -2
  19. package/lib/esm/decaf-model/decorators/ApiParamsFromModel.js +2 -2
  20. package/lib/esm/decoration.js +1 -1
  21. package/lib/esm/decoration.js.map +1 -1
  22. package/lib/esm/index.d.ts +1 -1
  23. package/lib/esm/index.js +1 -1
  24. package/lib/esm/index.js.map +1 -1
  25. package/lib/index.cjs +1 -1
  26. package/lib/index.d.ts +1 -1
  27. package/lib/index.js.map +1 -1
  28. package/package.json +2 -3
  29. package/lib/decorators/ApiProperty.cjs +0 -63
  30. package/lib/decorators/ApiProperty.d.ts +0 -27
  31. package/lib/decorators/ApiProperty.js.map +0 -1
  32. package/lib/decorators/helpers.cjs +0 -140
  33. package/lib/decorators/helpers.d.ts +0 -8
  34. package/lib/decorators/helpers.js.map +0 -1
  35. package/lib/decorators/index.cjs +0 -19
  36. package/lib/decorators/index.d.ts +0 -2
  37. package/lib/decorators/index.js.map +0 -1
  38. package/lib/esm/decorators/ApiProperty.d.ts +0 -27
  39. package/lib/esm/decorators/ApiProperty.js +0 -57
  40. package/lib/esm/decorators/ApiProperty.js.map +0 -1
  41. package/lib/esm/decorators/helpers.d.ts +0 -8
  42. package/lib/esm/decorators/helpers.js +0 -132
  43. package/lib/esm/decorators/helpers.js.map +0 -1
  44. package/lib/esm/decorators/index.d.ts +0 -2
  45. package/lib/esm/decorators/index.js +0 -3
  46. package/lib/esm/decorators/index.js.map +0 -1
package/README.md CHANGED
@@ -1,9 +1,8 @@
1
- [![Banner](./workdocs/assets/Banner.png)](https://decaf-ts.github.io/ts-workspace/)
1
+ ![Banner](./workdocs/assets/decaf-logo.svg)
2
2
  ## Typescript Template
3
3
 
4
4
  This repository is meant to provide an enterprise template for any standard Typescript project
5
5
 
6
-
7
6
  ![Licence](https://img.shields.io/github/license/decaf-ts/for-nest.svg?style=plastic)
8
7
  ![GitHub language count](https://img.shields.io/github/languages/count/decaf-ts/for-nest?style=plastic)
9
8
  ![GitHub top language](https://img.shields.io/github/languages/top/decaf-ts/for-nest?style=plastic)
@@ -27,6 +26,9 @@ This repository is meant to provide an enterprise template for any standard Type
27
26
 
28
27
  Documentation available [here](https://decaf-ts.github.io/for-nest/)
29
28
 
29
+ Minimal size: 5.2 KB kb gzipped
30
+
31
+
30
32
  ### Description
31
33
 
32
34
  No one needs the hassle of setting up new repos every time.
@@ -52,6 +54,24 @@ Now you can create new repositories from this template and enjoy having everythi
52
54
 
53
55
 
54
56
 
57
+ ## Coding Principles
58
+
59
+ - group similar functionality in folders (analog to namespaces but without any namespace declaration)
60
+ - one class per file;
61
+ - one interface per file (unless interface is just used as a type);
62
+ - group types as other interfaces in a types.ts file per folder;
63
+ - group constants or enums in a constants.ts file per folder;
64
+ - group decorators in a decorators.ts file per folder;
65
+ - always import from the specific file, never from a folder or index file (exceptions for dependencies on other packages);
66
+ - prefer the usage of established design patters where applicable:
67
+ - Singleton (can be an anti-pattern. use with care);
68
+ - factory;
69
+ - observer;
70
+ - strategy;
71
+ - builder;
72
+ - etc;
73
+
74
+
55
75
  ### Related
56
76
 
57
77
  [![Readme Card](https://github-readme-stats.vercel.app/api/pin/?username=decaf-ts&repo=ts-workspace)](https://github.com/decaf-ts/ts-workspace)
package/dist/for-nest.cjs CHANGED
@@ -1,2 +1,2 @@
1
- var t,e;t=this,e=function(t,e,o,r,s,a,i,n,c,p,d,l,u,h,g,m,y,f,E,_,A){"use strict";function R(t){if(t&&t.__esModule)return t;var e=Object.create(null);return t&&Object.keys(t).forEach(o=>{if("default"!==o){var r=Object.getOwnPropertyDescriptor(t,o);Object.defineProperty(e,o,r.get?r:{enumerable:!0,get:()=>t[o]})}}),e.default=t,Object.freeze(e)}var O=R(A);function b(t={}){return((t={},e=!0)=>{const[o,r]=a.getTypeIsArrayTuple(t.type,t.isArray);if((s=t={...t,type:o,isArray:r}).isArray&&"enum"in s&&void 0!==s.enum){t.type="array";const e=i.getEnumValues(t.enum);t.items={type:i.getEnumType(e),enum:e},delete t.enum}else if("enum"in t&&void 0!==t.enum){const e=i.getEnumValues(t.enum);t.enum=e,t.type=i.getEnumType(e)}var s;return Array.isArray(t.type)&&(t.type="array",t.items={type:"array",items:{type:t.type[0]}}),((t,e,o=!0)=>(r,s)=>{const a=Reflect.getMetadata(n.DECORATORS.API_MODEL_PROPERTIES_ARRAY,r)||[],i=":"+s;a.includes(i)||Reflect.defineMetadata(n.DECORATORS.API_MODEL_PROPERTIES_ARRAY,[...a,":"+s],r);const c=Reflect.getMetadata(t,r,s);if(c){const a=d.pickBy(e,d.negate(d.isUndefined)),i=o?{...c,...a}:{...a,...c};Reflect.defineMetadata(t,i,r,s)}else{const o=r?.constructor?.[l.METADATA_FACTORY_NAME]?.()[s]?.type??Reflect.getMetadata("design:type",r,s);Reflect.defineMetadata(t,{type:o,...d.pickBy(e,d.negate(d.isUndefined))},r,s)}})(n.DECORATORS.API_MODEL_PROPERTIES,t,e)})(t)}e.Decoration.for(o.InjectablesKeys.INJECTABLE).extend({decorator:(t,e)=>r.Injectable({scope:e.singleton?r.Scope.DEFAULT:r.Scope.REQUEST,durable:!e.singleton||void 0})}).apply(),e.Decoration.for(o.InjectablesKeys.INJECT).extend({decorator:(t,e)=>(e,o,s)=>r.Inject(t||e)(e,o,s)}).apply(),e.Decoration.for(s.ValidationKeys.REQUIRED).extend(b({required:!0})).apply(),e.Decoration.for(s.ValidationKeys.MAX).extend({decorator:t=>b({maximum:t})}).apply(),e.Decoration.for(s.ValidationKeys.MIN).extend({decorator:t=>b({minimum:t})}).apply(),e.Decoration.for(s.ValidationKeys.MAX_LENGTH).extend({decorator:t=>b({maxLength:t})}).apply(),e.Decoration.for(s.ValidationKeys.MIN_LENGTH).extend({decorator:t=>b({minLength:t})}).apply(),e.Decoration.for(s.ValidationKeys.LIST).extend({decorator:t=>b({type:[Array.isArray(t)?t[0]:t]})}).apply(),e.Decoration.for(s.ValidationKeys.PATTERN).extend({decorator:t=>b({pattern:"string"==typeof t?t:t.source})}).apply(),e.Decoration.for(u.PersistenceKeys.COLUMN).extend({decorator:t=>b({name:t})}).apply(),e.Decoration.for(e.DecorationKeys.DESCRIPTION).extend({decorator:t=>b({description:t})}).apply();const w="DecafModuleOptions",P="DecafAdapter";var T;let F=class{static{T=this}static{this._adapterInstance=null}static get log(){return this._logger||(this._logger=m.Logging.for(T)),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:w,useValue:t},o={useFactory:async t=>T.createAdapter(t),provide:P,durable:!0,scope:r.Scope.DEFAULT,inject:[w]};return{module:T,providers:[o,e],exports:[o]}}async onApplicationShutdown(){const t=T.log.for(this.onApplicationShutdown),e=this.moduleRef.get(P);try{e&&(t.info("Shutting down"),await e.shutdown(),T._adapterInstance=null)}catch(e){t.error("Failed to shutdown application",e)}}};function D(t,o){const{handler:r,args:s}=e.Metadata.get(t,E.OperationKeys.REFLECT+E.OperationKeys.BLOCK)||{};return!!r&&(r(...s,o)??!1)}function S(t,e,o){const s={GET:[E.OperationKeys.READ,r.Get],POST:[E.OperationKeys.CREATE,r.Post],PUT:[E.OperationKeys.UPDATE,r.Put],PATCH:[E.OperationKeys.UPDATE,r.Patch],DELETE:[E.OperationKeys.DELETE,r.Delete]},[a,i]=s[e];return D(t,a)?f.apply(y.ApiExcludeEndpoint()):f.apply(i(o))}function C(t=[]){const e=t.map(t=>y.ApiParam({name:t.name,description:t.description??"Path parameter: "+t.name,required:t.required??!0,type:t.type??String}));return r.applyDecorators(...e)}F=T=h.__decorate([r.Global(),r.Module({}),h.__param(0,r.Inject(w)),h.__metadata("design:paramtypes",[Object,g.ModuleRef])],F);const I=r.createParamDecorator((t,e)=>{const o=e.switchToHttp().getRequest(),r=o?.params??{},s=t??Object.keys(r),a=s.map(t=>r[t]);return{original:r,ordered:a,order:s}});function j(t=[]){const e=t.map(t=>t.name);return I(e)}t.RepoFactory=class{for(t){if(!(t="string"==typeof t?s.Model.get(t):t))throw new E.InternalError("Failed to find repository for "+t);return u.Repository.forModel(t)}},t.RepoFactory=h.__decorate([r.Injectable()],t.RepoFactory);class M{static{this.log=m.Logging.for(M.name)}static create(e){const o=M.log.for(M.create),a=u.Repository.table(e),i=m.toKebabCase(a),n=e.name,{description:c,apiProperties:p,path:d}=M.getRouteParametersFromModel(e);o.debug("Creating controller for model: "+n);let l=class extends m.LoggedClass{constructor(t){super(),this.repoFactory=t,o.info(`Registering dynamic controller for model: ${n} route: /${i}`);try{this.repo=this.repoFactory.for(e.name),this.pk=this.repo.pk}catch(t){this.log.error(`Failed to initialize repository for model "${e.name}".`,t)}}async create(t){const e=this.log.for(this.create);let o;e.verbose("creating new "+n);try{o=await this.repo.create(t)}catch(t){throw e.error("Failed to create new "+n,t),t}return e.info(`created new ${n} with id ${o[this.pk]}`),o}async read(t){const{id:e}=t,o=this.log.for(this.read);let r;try{o.debug(`reading ${n} with ${this.pk} ${e}`),r=await this.repo.read(e)}catch(t){throw o.error(`Failed to read ${n} with id ${e}`,t),t}return o.info(`read ${n} with id ${r[this.pk]}`),r}async query(t){const e=this.log.for(this.read);let o;try{e.debug(`Querying ${n} using method "${t}"`),o=await this.repo[t]()}catch(o){throw e.error(`Failed to query ${n} using method "${t}"`,o),o}return e.info(`Successfully queried ${n} using method "${t}"`),o}async update(t,e){const o=this.log.for(this.update);let r;try{o.info(`updating ${n} with ${this.pk} ${e[this.pk]}`),r=await this.repo.create(e)}catch(t){throw o.error(t),t}return r}async delete(t){const e=this.log.for(this.delete);let o;try{e.debug(`deleting ${n} with ${this.pk} ${t}`),o=await this.repo.read("id")}catch(t){throw e.error(`Failed to delete ${n} with id id`,t),t}return e.info(`deleted ${n} with id ${o[this.pk]}`),o}};return h.__decorate([S(e,"POST"),y.ApiOperation({summary:`Create a new ${n}.`}),y.ApiBody({description:"Payload for "+n,schema:{$ref:y.getSchemaPath(e)}}),y.ApiCreatedResponse({description:n+" created successfully."}),y.ApiBadRequestResponse({description:"Payload validation failed."}),y.ApiUnprocessableEntityResponse({description:"Repository rejected the provided payload."}),h.__param(0,r.Body()),h.__metadata("design:type",Function),h.__metadata("design:paramtypes",[Object]),h.__metadata("design:returntype",Promise)],l.prototype,"create",null),h.__decorate([S(e,"GET",d),C(p),y.ApiOperation({summary:`Retrieve a ${n} record by id.`}),y.ApiOkResponse({description:n+" retrieved successfully."}),y.ApiNotFoundResponse({description:`No ${n} record matches the provided identifier.`}),h.__param(0,r.Param()),h.__metadata("design:type",Function),h.__metadata("design:paramtypes",[Object]),h.__metadata("design:returntype",Promise)],l.prototype,"read",null),h.__decorate([S(e,"GET","query/:method"),y.ApiOperation({summary:`Retrieve ${n} records by query.`}),y.ApiParam({name:"method",description:"Query method to be called"}),y.ApiOkResponse({description:n+" retrieved successfully."}),y.ApiNotFoundResponse({description:`No ${n} records matches the query.`}),h.__param(0,r.Param("method")),h.__metadata("design:type",Function),h.__metadata("design:paramtypes",[String]),h.__metadata("design:returntype",Promise)],l.prototype,"query",null),h.__decorate([S(e,"PUT",d),C(p),y.ApiOperation({summary:`Replace an existing ${n} record with a new payload.`}),y.ApiBody({description:"Payload for replace a existing record of "+n,schema:{$ref:y.getSchemaPath(e)}}),y.ApiOkResponse({description:e+" record replaced successfully."}),y.ApiNotFoundResponse({description:`No ${n} record matches the provided identifier.`}),y.ApiBadRequestResponse({description:"Payload validation failed."}),h.__param(0,j(p)),h.__param(1,r.Body()),h.__metadata("design:type",Function),h.__metadata("design:paramtypes",[Object,s.Model]),h.__metadata("design:returntype",Promise)],l.prototype,"update",null),h.__decorate([S(e,"DELETE",d),C(p),y.ApiOperation({summary:`Delete a ${n} record by id.`}),y.ApiOkResponse({description:n+" record deleted successfully."}),y.ApiNotFoundResponse({description:`No ${n} record matches the provided identifier.`}),h.__param(0,j(p)),h.__metadata("design:type",Function),h.__metadata("design:paramtypes",[Object]),h.__metadata("design:returntype",Promise)],l.prototype,"delete",null),l=h.__decorate([r.Controller(i),y.ApiTags(n),y.ApiExtraModels(e),h.__metadata("design:paramtypes",[t.RepoFactory])],l),l}static getRouteParametersFromModel(t){const o=new t({}),r=E.findPrimaryKey(o)?.id||"id",s=u.Repository.key(E.DBKeys.COMPOSED),a=Reflect.getMetadata(s,o,r)?.args??[],i=Array.isArray(a)&&a.length>0?[...a]:[r],n=e.Metadata.description(t),c=Array.from(new Set(i)),p=c.map(t=>":"+t).join("/");return{description:n,apiProperties:c.map(o=>({name:o,description:e.Metadata.description(t,o),required:!0,type:String})),path:p}}}var x,N;t.DecafModelModule=class{static{x=this}static{this.log=m.Logging.for(x.name)}static forRoot(e){const o=this.log.for(this.forRoot);o.info("Generating controllers for flavour...");const r=u.Adapter.models(e).map(M.create);return o.info(`Generated ${r.length} controllers`),{module:x,controllers:r,providers:[t.RepoFactory]}}},t.DecafModelModule=x=h.__decorate([r.Module({})],t.DecafModelModule),t.DecafModule=N=class{static async forRootAsync(e){const{autoControllers:o}=e,r=(await F.createAdapter(e)).flavour,s=[F.forRoot(e)];return o&&s.push(t.DecafModelModule.forRoot(r)),{module:N,imports:s}}},t.DecafModule=N=h.__decorate([r.Module({})],t.DecafModule);class v extends u.ForbiddenError{constructor(t){super(t,v.name)}}class ${constructor(t,e){const o=e?.status??r.HttpStatus.INTERNAL_SERVER_ERROR,s=e?.message??"Internal Server Error",a=(e?.error??r.HttpStatus[o]??"HTTP_EXCEPTION").toString().toUpperCase();Object.assign(this,{status:o,message:s,error:a,timestamp:(new Date).toISOString(),path:t.url,method:t.method})}}class q extends Error{constructor(t="Unauthorized"){super(t),this.name="AuthorizationError",this.status=401,this.code="UNAUTHORIZED",Object.setPrototypeOf(this,q.prototype)}}t.AuthorizationExceptionFilter=class{catch(t,e){const o=e.switchToHttp(),s=o.getRequest(),a=o.getResponse(),i=new $(s,{error:"UNAUTHORIZED",status:r.HttpStatus.UNAUTHORIZED,message:t.message});a.status(r.HttpStatus.UNAUTHORIZED).json(i)}},t.AuthorizationExceptionFilter=h.__decorate([r.Catch(q)],t.AuthorizationExceptionFilter);class L extends Error{constructor(t="Conflict"){super(t),this.name="ConflictError",this.status=409,this.code="CONFLICT",Object.setPrototypeOf(this,L.prototype)}}t.ConflictExceptionFilter=class{catch(t,e){const o=e.switchToHttp(),s=o.getResponse(),a=o.getRequest(),i=new $(a,{status:r.HttpStatus.CONFLICT,message:t.message,error:"CONFLICT"});s.status(i.status).json(i)}},t.ConflictExceptionFilter=h.__decorate([r.Catch(L)],t.ConflictExceptionFilter),t.GlobalExceptionFilter=class{catch(t,e){const o=e.switchToHttp(),s=o.getRequest(),a=o.getResponse();let i,n=r.HttpStatus.INTERNAL_SERVER_ERROR,c="Internal Server Error";if(t instanceof r.HttpException){const e=t.getResponse();n=t.getStatus(),c=(e?.message||t.message)??c,i=e?.error??t.name}else t instanceof Error&&(c=t.message,i=t.name);const p=new $(s,{status:n,message:c,error:i});a.status(p.status).json(p)}},t.GlobalExceptionFilter=h.__decorate([r.Catch()],t.GlobalExceptionFilter),t.HttpExceptionFilter=class{catch(t,e){const o=e.switchToHttp(),r=o.getResponse(),s=o.getRequest(),a=t.getStatus(),i=new $(s,{status:a,message:t.message,error:t.name});r.status(i.status).json(i)}},t.HttpExceptionFilter=h.__decorate([r.Catch(r.HttpException)],t.HttpExceptionFilter);class H extends Error{constructor(t="Resource not found"){super(t),this.name="NotFoundError",this.status=404,this.code="NOT_FOUND",Object.setPrototypeOf(this,H.prototype)}}t.NotFoundExceptionFilter=class{catch(t,e){const o=e.switchToHttp(),s=o.getResponse(),a=o.getRequest(),i=new $(a,{status:r.HttpStatus.NOT_FOUND,message:t.message,error:"NOT_FOUND"});s.status(i.status).json(i)}},t.NotFoundExceptionFilter=h.__decorate([r.Catch(H)],t.NotFoundExceptionFilter);class U extends Error{constructor(t="Validation failed"){super(t),this.name="ValidationError",this.status=422,this.code="VALIDATION_ERROR",Object.setPrototypeOf(this,U.prototype)}}t.ValidationExceptionFilter=class{catch(t,e){const o=e.switchToHttp(),s=o.getResponse(),a=o.getRequest(),i=new $(a,{status:r.HttpStatus.UNPROCESSABLE_ENTITY,message:t.message,error:"VALIDATION_ERROR"});s.status(i.status).json(i)}},t.ValidationExceptionFilter=h.__decorate([r.Catch(U)],t.ValidationExceptionFilter);const B={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 V{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||B.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 o=O.join(this.options.assetsPath||"",t),r=_.readFileSync(o,{encoding:"base64"});return e?"data:image/png;base64,"+r:r}}class K{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 y.DocumentBuilder).setTitle(this.options.title).setDescription(t).setVersion(this.options.version||"0.0.1").addBearerAuth(this.options.auth||B.auth).build();return y.SwaggerModule.createDocument(this.app,e,{extraModels:this.options.extraModels||[]})}setupSwagger(){const t=this.createDocument(),e=new V({title:this.options.title,path:this.options.path||B.path,persistAuthorization:this.options.persistAuthorization??!0,assetsPath:this.options.assetsPath,faviconPath:this.options.faviconFilePath,topbarIconPath:this.options.topbarIconFilePath,topbarBgColor:this.options.topbarBgColor});y.SwaggerModule.setup(this.options.path||B.path,this.app,t,{...e.getCustomOptions()})}}const k="##VERSION##",G="##PACKAGE_NAME##";e.Metadata.registerLibrary(G,k),t.ApiOperationFromModel=S,t.ApiParamsFromModel=C,t.AuthorizationError=q,t.ConflictError=L,t.CorsError=v,t.DECAF_ADAPTER_ID=P,t.DECAF_MODULE_OPTIONS=w,t.DecafParams=j,t.FromModelController=M,t.HttpResponseError=$,t.NestBootstraper=class{static get logger(){return this._logger||(this._logger=new r.Logger("NestBootstrap")),this._logger}static initialize(t){return this.app=t,this}static enableLogger(t){return this._logger=t||new r.Logger("NestBootstrap"),this.app.useLogger(this._logger),this}static enableCors(t=[],e=["GET","POST","PUT","DELETE"]){const o="*"===t?"*":t.map(t=>t.trim().toLowerCase()),r={origin:(t,e)=>t?"*"===o||Array.isArray(o)&&o.includes(t.toLowerCase())?e(null,!0):void e(new v(`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 K(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(...e){const o=[new t.HttpExceptionFilter,new t.ValidationExceptionFilter,new t.NotFoundExceptionFilter,new t.ConflictExceptionFilter,new t.AuthorizationExceptionFilter,new t.GlobalExceptionFilter];return this.app.useGlobalFilters(...e.length>0?e:o),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,o=!0){this.app.listen(t,e).then(async()=>{if(o){const t=await this.app.getUrl();this.logger.log("\ud83d\ude80 Application is running at: "+t)}})}},t.NotFoundError=H,t.PACKAGE_NAME=G,t.SwaggerBuilder=K,t.VERSION=k,t.ValidationError=U,t.isOperationBlocked=D,t.repoForModel=t=>{const e=s.Model.get(t);if(!e)throw new E.InternalError("Failed to find repository for "+t);return u.Repository.forModel(e)}},"object"==typeof exports&&"undefined"!=typeof module?e(exports,require("@decaf-ts/decoration"),require("@decaf-ts/injectable-decorators"),require("@nestjs/common"),require("@decaf-ts/decorator-validation"),require("@nestjs/swagger/dist/decorators/helpers"),require("@nestjs/swagger/dist/utils/enum.utils"),require("@nestjs/swagger/dist/constants"),require("@nestjs/common/constants"),require("@nestjs/common/utils/shared.utils"),require("lodash"),require("@nestjs/swagger/dist/plugin/plugin-constants"),require("@decaf-ts/core"),require("tslib"),require("@nestjs/core"),require("@decaf-ts/logging"),require("@nestjs/swagger"),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","@nestjs/swagger/dist/decorators/helpers","@nestjs/swagger/dist/utils/enum.utils","@nestjs/swagger/dist/constants","@nestjs/common/constants","@nestjs/common/utils/shared.utils","lodash","@nestjs/swagger/dist/plugin/plugin-constants","@decaf-ts/core","tslib","@nestjs/core","@decaf-ts/logging","@nestjs/swagger","@decaf-ts/reflection","@decaf-ts/db-decorators","fs","path"],e):e((t="undefined"!=typeof globalThis?globalThis:t||self)["for-nest"]={},t.decafTsDecoration,t.decafTsInjectableDecorators,t.nestjsCommon,t.decafTsDecoratorValidation,t.helpers,t.enum_utils,t.constants,0,0,t.lodash,t.pluginConstants,t.decafTsCore,t.tslib,t.nestjsCore,t.decafTsLogging,t.nestjsSwagger,t.decafTsReflection,t.decafTsDbDecorators,t.fs,t.path);
1
+ var t,e;t=this,e=function(t,e,o,r,s,a,i,n,c,p,d,l,u,h){"use strict";function g(t){if(t&&t.__esModule)return t;var e=Object.create(null);return t&&Object.keys(t).forEach(o=>{if("default"!==o){var r=Object.getOwnPropertyDescriptor(t,o);Object.defineProperty(e,o,r.get?r:{enumerable:!0,get:()=>t[o]})}}),e.default=t,Object.freeze(e)}var m=g(h);e.Decoration.for(o.InjectablesKeys.INJECTABLE).extend({decorator:(t,e)=>r.Injectable({scope:e.singleton?r.Scope.DEFAULT:r.Scope.REQUEST,durable:!e.singleton||void 0})}).apply(),e.Decoration.for(o.InjectablesKeys.INJECT).extend({decorator:(t,e)=>(e,o,s)=>r.Inject(t||e)(e,o,s)}).apply(),e.Decoration.for(s.ValidationKeys.REQUIRED).extend(i.ApiProperty({required:!0})).apply(),e.Decoration.for(s.ValidationKeys.MAX).extend({decorator:t=>i.ApiProperty({maximum:t})}).apply(),e.Decoration.for(s.ValidationKeys.MIN).extend({decorator:t=>i.ApiProperty({minimum:t})}).apply(),e.Decoration.for(s.ValidationKeys.MAX_LENGTH).extend({decorator:t=>i.ApiProperty({maxLength:t})}).apply(),e.Decoration.for(s.ValidationKeys.MIN_LENGTH).extend({decorator:t=>i.ApiProperty({minLength:t})}).apply(),e.Decoration.for(s.ValidationKeys.LIST).extend({decorator:t=>{const e=Array.isArray(t)?t[0]:t;return i.ApiProperty({type:[e]})}}).apply(),e.Decoration.for(s.ValidationKeys.PATTERN).extend({decorator:t=>i.ApiProperty({pattern:"string"==typeof t?t:t.source})}).apply(),e.Decoration.for(a.PersistenceKeys.COLUMN).extend({decorator:t=>i.ApiProperty({name:t})}).apply(),e.Decoration.for(e.DecorationKeys.DESCRIPTION).extend({decorator:t=>i.ApiProperty({description:t})}).apply();const f="DecafModuleOptions",y="DecafAdapter";var E;let _=class{static{E=this}static{this._adapterInstance=null}static get log(){return this._logger||(this._logger=p.Logging.for(E)),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:f,useValue:t},o={useFactory:async t=>E.createAdapter(t),provide:y,durable:!0,scope:r.Scope.DEFAULT,inject:[f]};return{module:E,providers:[o,e],exports:[o]}}async onApplicationShutdown(){const t=E.log.for(this.onApplicationShutdown),e=this.moduleRef.get(y);try{e&&(t.info("Shutting down"),await e.shutdown(),E._adapterInstance=null)}catch(e){t.error("Failed to shutdown application",e)}}};function A(t,o){const{handler:r,args:s}=e.Metadata.get(t,l.OperationKeys.REFLECT+l.OperationKeys.BLOCK)||{};return!!r&&(r(...s,o)??!1)}function b(t,e,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[e];return A(t,a)?d.apply(i.ApiExcludeEndpoint()):d.apply(n(o))}function R(t=[]){const e=t.map(t=>i.ApiParam({name:t.name,description:t.description??"Path parameter: "+t.name,required:t.required??!0,type:t.type??String}));return r.applyDecorators(...e)}_=E=n.__decorate([r.Global(),r.Module({}),n.__param(0,r.Inject(f)),n.__metadata("design:paramtypes",[Object,c.ModuleRef])],_);const P=r.createParamDecorator((t,e)=>{const o=e.switchToHttp().getRequest(),r=o?.params??{},s=t??Object.keys(r),a=s.map(t=>r[t]);return{original:r,ordered:a,order:s}});function w(t=[]){const e=t.map(t=>t.name);return P(e)}t.RepoFactory=class{for(t){if(!(t="string"==typeof t?s.Model.get(t):t))throw new l.InternalError("Failed to find repository for "+t);return a.Repository.forModel(t)}},t.RepoFactory=n.__decorate([r.Injectable()],t.RepoFactory);class O{static{this.log=p.Logging.for(O.name)}static create(e){const o=O.log.for(O.create),c=a.Repository.table(e),d=p.toKebabCase(c),l=e.name,{description:u,apiProperties:h,path:g}=O.getRouteParametersFromModel(e);o.debug("Creating controller for model: "+l);let m=class extends p.LoggedClass{constructor(t){super(),this.repoFactory=t,o.info(`Registering dynamic controller for model: ${l} route: /${d}`);try{this.repo=this.repoFactory.for(e.name),this.pk=this.repo.pk}catch(t){this.log.error(`Failed to initialize repository for model "${e.name}".`,t)}}async create(t){const e=this.log.for(this.create);let o;e.verbose("creating new "+l);try{o=await this.repo.create(t)}catch(t){throw e.error("Failed to create new "+l,t),t}return e.info(`created new ${l} with id ${o[this.pk]}`),o}async read(t){const{id:e}=t,o=this.log.for(this.read);let r;try{o.debug(`reading ${l} with ${this.pk} ${e}`),r=await this.repo.read(e)}catch(t){throw o.error(`Failed to read ${l} with id ${e}`,t),t}return o.info(`read ${l} with id ${r[this.pk]}`),r}async query(t){const e=this.log.for(this.read);let o;try{e.debug(`Querying ${l} using method "${t}"`),o=await this.repo[t]()}catch(o){throw e.error(`Failed to query ${l} using method "${t}"`,o),o}return e.info(`Successfully queried ${l} using method "${t}"`),o}async update(t,e){const o=this.log.for(this.update);let r;try{o.info(`updating ${l} with ${this.pk} ${e[this.pk]}`),r=await this.repo.create(e)}catch(t){throw o.error(t),t}return r}async delete(t){const e=this.log.for(this.delete);let o;try{e.debug(`deleting ${l} with ${this.pk} ${t}`),o=await this.repo.read("id")}catch(t){throw e.error(`Failed to delete ${l} with id id`,t),t}return e.info(`deleted ${l} with id ${o[this.pk]}`),o}};return n.__decorate([b(e,"POST"),i.ApiOperation({summary:`Create a new ${l}.`}),i.ApiBody({description:"Payload for "+l,schema:{$ref:i.getSchemaPath(e)}}),i.ApiCreatedResponse({description:l+" 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)],m.prototype,"create",null),n.__decorate([b(e,"GET",g),R(h),i.ApiOperation({summary:`Retrieve a ${l} record by id.`}),i.ApiOkResponse({description:l+" retrieved successfully."}),i.ApiNotFoundResponse({description:`No ${l} record matches the provided identifier.`}),n.__param(0,r.Param()),n.__metadata("design:type",Function),n.__metadata("design:paramtypes",[Object]),n.__metadata("design:returntype",Promise)],m.prototype,"read",null),n.__decorate([b(e,"GET","query/:method"),i.ApiOperation({summary:`Retrieve ${l} records by query.`}),i.ApiParam({name:"method",description:"Query method to be called"}),i.ApiOkResponse({description:l+" retrieved successfully."}),i.ApiNotFoundResponse({description:`No ${l} 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)],m.prototype,"query",null),n.__decorate([b(e,"PUT",g),R(h),i.ApiOperation({summary:`Replace an existing ${l} record with a new payload.`}),i.ApiBody({description:"Payload for replace a existing record of "+l,schema:{$ref:i.getSchemaPath(e)}}),i.ApiOkResponse({description:e+" record replaced successfully."}),i.ApiNotFoundResponse({description:`No ${l} record matches the provided identifier.`}),i.ApiBadRequestResponse({description:"Payload validation failed."}),n.__param(0,w(h)),n.__param(1,r.Body()),n.__metadata("design:type",Function),n.__metadata("design:paramtypes",[Object,s.Model]),n.__metadata("design:returntype",Promise)],m.prototype,"update",null),n.__decorate([b(e,"DELETE",g),R(h),i.ApiOperation({summary:`Delete a ${l} record by id.`}),i.ApiOkResponse({description:l+" record deleted successfully."}),i.ApiNotFoundResponse({description:`No ${l} record matches the provided identifier.`}),n.__param(0,w(h)),n.__metadata("design:type",Function),n.__metadata("design:paramtypes",[Object]),n.__metadata("design:returntype",Promise)],m.prototype,"delete",null),m=n.__decorate([r.Controller(d),i.ApiTags(l),i.ApiExtraModels(e),n.__metadata("design:paramtypes",[t.RepoFactory])],m),m}static getRouteParametersFromModel(t){const o=new t({}),r=l.findPrimaryKey(o)?.id||"id",s=a.Repository.key(l.DBKeys.COMPOSED),i=Reflect.getMetadata(s,o,r)?.args??[],n=Array.isArray(i)&&i.length>0?[...i]:[r],c=e.Metadata.description(t),p=Array.from(new Set(n)),d=p.map(t=>":"+t).join("/");return{description:c,apiProperties:p.map(o=>({name:o,description:e.Metadata.description(t,o),required:!0,type:String})),path:d}}}var F,T;t.DecafModelModule=class{static{F=this}static{this.log=p.Logging.for(F.name)}static forRoot(e){const o=this.log.for(this.forRoot);o.info("Generating controllers for flavour...");const r=a.Adapter.models(e).map(O.create);return o.info(`Generated ${r.length} controllers`),{module:F,controllers:r,providers:[t.RepoFactory]}}},t.DecafModelModule=F=n.__decorate([r.Module({})],t.DecafModelModule),t.DecafModule=T=class{static async forRootAsync(e){const{autoControllers:o}=e,r=(await _.createAdapter(e)).flavour,s=[_.forRoot(e)];return o&&s.push(t.DecafModelModule.forRoot(r)),{module:T,imports:s}}},t.DecafModule=T=n.__decorate([r.Module({})],t.DecafModule);class D extends a.ForbiddenError{constructor(t){super(t,D.name)}}class C{constructor(t,e){const o=e?.status??r.HttpStatus.INTERNAL_SERVER_ERROR,s=e?.message??"Internal Server Error",a=(e?.error??r.HttpStatus[o]??"HTTP_EXCEPTION").toString().toUpperCase();Object.assign(this,{status:o,message:s,error:a,timestamp:(new Date).toISOString(),path:t.url,method:t.method})}}class S extends Error{constructor(t="Unauthorized"){super(t),this.name="AuthorizationError",this.status=401,this.code="UNAUTHORIZED",Object.setPrototypeOf(this,S.prototype)}}t.AuthorizationExceptionFilter=class{catch(t,e){const o=e.switchToHttp(),s=o.getRequest(),a=o.getResponse(),i=new C(s,{error:"UNAUTHORIZED",status:r.HttpStatus.UNAUTHORIZED,message:t.message});a.status(r.HttpStatus.UNAUTHORIZED).json(i)}},t.AuthorizationExceptionFilter=n.__decorate([r.Catch(S)],t.AuthorizationExceptionFilter);class I extends Error{constructor(t="Conflict"){super(t),this.name="ConflictError",this.status=409,this.code="CONFLICT",Object.setPrototypeOf(this,I.prototype)}}t.ConflictExceptionFilter=class{catch(t,e){const o=e.switchToHttp(),s=o.getResponse(),a=o.getRequest(),i=new C(a,{status:r.HttpStatus.CONFLICT,message:t.message,error:"CONFLICT"});s.status(i.status).json(i)}},t.ConflictExceptionFilter=n.__decorate([r.Catch(I)],t.ConflictExceptionFilter),t.GlobalExceptionFilter=class{catch(t,e){const o=e.switchToHttp(),s=o.getRequest(),a=o.getResponse();let i,n=r.HttpStatus.INTERNAL_SERVER_ERROR,c="Internal Server Error";if(t instanceof r.HttpException){const e=t.getResponse();n=t.getStatus(),c=(e?.message||t.message)??c,i=e?.error??t.name}else t instanceof Error&&(c=t.message,i=t.name);const p=new C(s,{status:n,message:c,error:i});a.status(p.status).json(p)}},t.GlobalExceptionFilter=n.__decorate([r.Catch()],t.GlobalExceptionFilter),t.HttpExceptionFilter=class{catch(t,e){const o=e.switchToHttp(),r=o.getResponse(),s=o.getRequest(),a=t.getStatus(),i=new C(s,{status:a,message:t.message,error:t.name});r.status(i.status).json(i)}},t.HttpExceptionFilter=n.__decorate([r.Catch(r.HttpException)],t.HttpExceptionFilter);class x extends Error{constructor(t="Resource not found"){super(t),this.name="NotFoundError",this.status=404,this.code="NOT_FOUND",Object.setPrototypeOf(this,x.prototype)}}t.NotFoundExceptionFilter=class{catch(t,e){const o=e.switchToHttp(),s=o.getResponse(),a=o.getRequest(),i=new C(a,{status:r.HttpStatus.NOT_FOUND,message:t.message,error:"NOT_FOUND"});s.status(i.status).json(i)}},t.NotFoundExceptionFilter=n.__decorate([r.Catch(x)],t.NotFoundExceptionFilter);class N extends Error{constructor(t="Validation failed"){super(t),this.name="ValidationError",this.status=422,this.code="VALIDATION_ERROR",Object.setPrototypeOf(this,N.prototype)}}t.ValidationExceptionFilter=class{catch(t,e){const o=e.switchToHttp(),s=o.getResponse(),a=o.getRequest(),i=new C(a,{status:r.HttpStatus.UNPROCESSABLE_ENTITY,message:t.message,error:"VALIDATION_ERROR"});s.status(i.status).json(i)}},t.ValidationExceptionFilter=n.__decorate([r.Catch(N)],t.ValidationExceptionFilter);const j={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 v{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||j.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 o=m.join(this.options.assetsPath||"",t),r=u.readFileSync(o,{encoding:"base64"});return e?"data:image/png;base64,"+r:r}}class M{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 i.DocumentBuilder).setTitle(this.options.title).setDescription(t).setVersion(this.options.version||"0.0.1").addBearerAuth(this.options.auth||j.auth).build();return i.SwaggerModule.createDocument(this.app,e,{extraModels:this.options.extraModels||[]})}setupSwagger(){const t=this.createDocument(),e=new v({title:this.options.title,path:this.options.path||j.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||j.path,this.app,t,{...e.getCustomOptions()})}}const $="##VERSION##",L="##PACKAGE##";e.Metadata.registerLibrary(L,$),t.ApiOperationFromModel=b,t.ApiParamsFromModel=R,t.AuthorizationError=S,t.ConflictError=I,t.CorsError=D,t.DECAF_ADAPTER_ID=y,t.DECAF_MODULE_OPTIONS=f,t.DecafParams=w,t.FromModelController=O,t.HttpResponseError=C,t.NestBootstraper=class{static get logger(){return this._logger||(this._logger=new r.Logger("NestBootstrap")),this._logger}static initialize(t){return this.app=t,this}static enableLogger(t){return this._logger=t||new r.Logger("NestBootstrap"),this.app.useLogger(this._logger),this}static enableCors(t=[],e=["GET","POST","PUT","DELETE"]){const o="*"===t?"*":t.map(t=>t.trim().toLowerCase()),r={origin:(t,e)=>t?"*"===o||Array.isArray(o)&&o.includes(t.toLowerCase())?e(null,!0):void e(new D(`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 M(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(...e){const o=[new t.HttpExceptionFilter,new t.ValidationExceptionFilter,new t.NotFoundExceptionFilter,new t.ConflictExceptionFilter,new t.AuthorizationExceptionFilter,new t.GlobalExceptionFilter];return this.app.useGlobalFilters(...e.length>0?e:o),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,o=!0){this.app.listen(t,e).then(async()=>{if(o){const t=await this.app.getUrl();this.logger.log("\ud83d\ude80 Application is running at: "+t)}})}},t.NotFoundError=x,t.PACKAGE_NAME=L,t.SwaggerBuilder=M,t.VERSION=$,t.ValidationError=N,t.isOperationBlocked=A,t.repoForModel=t=>{const e=s.Model.get(t);if(!e)throw new l.InternalError("Failed to find repository for "+t);return a.Repository.forModel(e)}},"object"==typeof exports&&"undefined"!=typeof module?e(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"],e):e((t="undefined"!=typeof globalThis?globalThis:t||self)["for-nest"]={},t.decafTsDecoration,t.decafTsInjectableDecorators,t.nestjsCommon,t.decafTsDecoratorValidation,t.decafTsCore,t.nestjsSwagger,t.tslib,t.nestjsCore,t.decafTsLogging,t.decafTsReflection,t.decafTsDbDecorators,t.fs,t.path);
2
2
  //# sourceMappingURL=for-nest.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"for-nest.cjs","sources":["../src/decorators/ApiProperty.ts","../src/decorators/helpers.ts","../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/RepoFactory.ts","../src/decaf-model/FromModelController.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":["ApiProperty","options","overrideExisting","type","isArray","getTypeIsArrayTuple","opts","undefined","enum","enumValues","getEnumValues","items","getEnumType","Array","metakey","metadata","target","propertyKey","properties","Reflect","getMetadata","DECORATORS","API_MODEL_PROPERTIES_ARRAY","key","includes","defineMetadata","existingMetadata","newMetadata","pickBy","negate","isUndefined","metadataToSave","constructor","METADATA_FACTORY_NAME","createPropertyDecorator","API_MODEL_PROPERTIES","createApiPropertyDecorator","Decoration","for","InjectablesKeys","INJECTABLE","extend","decorator","category","cfg","Injectable","scope","singleton","Scope","DEFAULT","REQUEST","durable","apply","INJECT","descriptor","Inject","ValidationKeys","REQUIRED","required","MAX","max","maximum","MIN","min","minimum","MAX_LENGTH","maxLength","MIN_LENGTH","minLength","LIST","clazz","PATTERN","pat","pattern","source","PersistenceKeys","COLUMN","name","DecorationKeys","DESCRIPTION","description","DECAF_MODULE_OPTIONS","DECAF_ADAPTER_ID","DecafCoreModule","this","_adapterInstance","log","_logger","Logging","DecafCoreModule_1","moduleRef","createAdapter","info","adapter","conf","alias","getAdapterInstance","forRoot","typeOrmModuleOptions","provide","useValue","useFactory","async","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","Object","keys","ordered","k","DecafParams","RepoFactory","model","Model","InternalError","Repository","forModel","FromModelController","create","ModelClazz","tableName","table","routePath","toKebabCase","modelClazzName","apiProperties","getRouteParametersFromModel","debug","DynamicModelController","LoggedClass","repoFactory","super","repo","pk","data","created","verbose","read","pathParams","id","query","method","results","update","routeParams","body","updated","delete","ApiOperation","summary","ApiBody","schema","$ref","getSchemaPath","ApiCreatedResponse","ApiBadRequestResponse","ApiUnprocessableEntityResponse","Body","prototype","ApiOkResponse","ApiNotFoundResponse","Param","ApiParam","Controller","ApiTags","ApiExtraModels","instance","findPrimaryKey","composedKeyMetaKey","DBKeys","COMPOSED","composedKeys","keysToReturn","length","uniqueKeys","from","Set","join","DecafModelModule","DecafModelModule_1","flavour","controllers","Adapter","models","DecafModule","DecafModule_1","forRootAsync","autoControllers","imports","push","CorsError","ForbiddenError","msg","HttpResponseError","request","responseError","status","HttpStatus","INTERNAL_SERVER_ERROR","message","toString","toUpperCase","assign","timestamp","Date","toISOString","url","AuthorizationError","Error","code","setPrototypeOf","AuthorizationExceptionFilter","exception","host","response","getResponse","httpResponseError","UNAUTHORIZED","json","Catch","ConflictError","ConflictExceptionFilter","CONFLICT","GlobalExceptionFilter","HttpException","res","getStatus","HttpExceptionFilter","NotFoundError","NotFoundExceptionFilter","NOT_FOUND","ValidationError","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","credentials","methods","useHelmet","helmet","require","use","warn","useGlobalPipes","pipes","useGlobalFilters","filters","defaultFilters","useGlobalInterceptors","interceptors","start","port","Number","process","env","PORT","listen","then","getUrl","m"],"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/RepoFactory.ts","../src/decaf-model/FromModelController.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],"names":["Decoration","for","InjectablesKeys","INJECTABLE","extend","decorator","category","cfg","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","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","Object","keys","ordered","k","DecafParams","RepoFactory","model","Model","InternalError","Repository","forModel","FromModelController","create","ModelClazz","tableName","table","routePath","toKebabCase","modelClazzName","apiProperties","getRouteParametersFromModel","debug","DynamicModelController","LoggedClass","repoFactory","super","repo","pk","data","created","verbose","read","pathParams","id","query","method","results","update","routeParams","body","updated","delete","ApiOperation","summary","ApiBody","schema","$ref","getSchemaPath","ApiCreatedResponse","ApiBadRequestResponse","ApiUnprocessableEntityResponse","Body","prototype","ApiOkResponse","ApiNotFoundResponse","Param","ApiParam","Controller","ApiTags","ApiExtraModels","instance","findPrimaryKey","composedKeyMetaKey","key","DBKeys","COMPOSED","composedKeys","Reflect","getMetadata","keysToReturn","length","uniqueKeys","from","Set","join","DecafModelModule","DecafModelModule_1","flavour","controllers","Adapter","models","DecafModule","DecafModule_1","forRootAsync","autoControllers","imports","push","CorsError","ForbiddenError","msg","HttpResponseError","request","responseError","status","HttpStatus","INTERNAL_SERVER_ERROR","message","toString","toUpperCase","assign","timestamp","Date","toISOString","url","AuthorizationError","Error","code","setPrototypeOf","AuthorizationExceptionFilter","exception","host","response","getResponse","httpResponseError","UNAUTHORIZED","json","Catch","ConflictError","ConflictExceptionFilter","CONFLICT","GlobalExceptionFilter","HttpException","res","getStatus","HttpExceptionFilter","NotFoundError","NotFoundExceptionFilter","NOT_FOUND","ValidationError","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"],"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}from"@decaf-ts/injectable-decorators";import{Injectable as o,Scope as i,Inject as a,Global as n,Module as c,Get as p,Post as d,Put as l,Patch as h,Delete as u,applyDecorators as g,createParamDecorator as m,Body as f,Param as y,Controller as w,HttpStatus as E,Catch as R,HttpException as A,Logger as b}from"@nestjs/common";import{ValidationKeys as P,Model as T}from"@decaf-ts/decorator-validation";import{getTypeIsArrayTuple as O}from"@nestjs/swagger/dist/decorators/helpers";import{getEnumValues as I,getEnumType as S}from"@nestjs/swagger/dist/utils/enum.utils";import{DECORATORS as v}from"@nestjs/swagger/dist/constants";import"@nestjs/common/constants";import"@nestjs/common/utils/shared.utils";import{pickBy as $,negate as N,isUndefined as C}from"lodash";import{METADATA_FACTORY_NAME as F}from"@nestjs/swagger/dist/plugin/plugin-constants";import{PersistenceKeys as _,Repository as j,Adapter as D,ForbiddenError as L}from"@decaf-ts/core";import{__decorate as U,__param as x,__metadata as M}from"tslib";import{ModuleRef as q}from"@nestjs/core";import{Logging as H,toKebabCase as G,LoggedClass as k}from"@decaf-ts/logging";import{ApiExcludeEndpoint as z,ApiParam as B,ApiOperation as V,ApiBody as J,getSchemaPath as Q,ApiCreatedResponse as Y,ApiBadRequestResponse as Z,ApiUnprocessableEntityResponse as X,ApiOkResponse as K,ApiNotFoundResponse as W,ApiTags as tt,ApiExtraModels as et,DocumentBuilder as st,SwaggerModule as rt}from"@nestjs/swagger";import{apply as ot}from"@decaf-ts/reflection";import{OperationKeys as it,InternalError as at,findPrimaryKey as nt,DBKeys as ct}from"@decaf-ts/db-decorators";import{readFileSync as pt}from"fs";import*as dt from"path";function lt(t={}){return((t={},e=!0)=>{const[s,r]=O(t.type,t.isArray);if((o=t={...t,type:s,isArray:r}).isArray&&"enum"in o&&void 0!==o.enum){t.type="array";const e=I(t.enum);t.items={type:S(e),enum:e},delete t.enum}else if("enum"in t&&void 0!==t.enum){const e=I(t.enum);t.enum=e,t.type=S(e)}var o;return Array.isArray(t.type)&&(t.type="array",t.items={type:"array",items:{type:t.type[0]}}),((t,e,s=!0)=>(r,o)=>{const i=Reflect.getMetadata(v.API_MODEL_PROPERTIES_ARRAY,r)||[],a=":"+o;i.includes(a)||Reflect.defineMetadata(v.API_MODEL_PROPERTIES_ARRAY,[...i,":"+o],r);const n=Reflect.getMetadata(t,r,o);if(n){const i=$(e,N(C)),a=s?{...n,...i}:{...i,...n};Reflect.defineMetadata(t,a,r,o)}else{const s=r?.constructor?.[F]?.()[o]?.type??Reflect.getMetadata("design:type",r,o);Reflect.defineMetadata(t,{type:s,...$(e,N(C))},r,o)}})(v.API_MODEL_PROPERTIES,t,e)})(t)}t.for(r.INJECTABLE).extend({decorator:(t,e)=>o({scope:e.singleton?i.DEFAULT:i.REQUEST,durable:!e.singleton||void 0})}).apply(),t.for(r.INJECT).extend({decorator:(t,e)=>(e,s,r)=>a(t||e)(e,s,r)}).apply(),t.for(P.REQUIRED).extend(lt({required:!0})).apply(),t.for(P.MAX).extend({decorator:t=>lt({maximum:t})}).apply(),t.for(P.MIN).extend({decorator:t=>lt({minimum:t})}).apply(),t.for(P.MAX_LENGTH).extend({decorator:t=>lt({maxLength:t})}).apply(),t.for(P.MIN_LENGTH).extend({decorator:t=>lt({minLength:t})}).apply(),t.for(P.LIST).extend({decorator:t=>lt({type:[Array.isArray(t)?t[0]:t]})}).apply(),t.for(P.PATTERN).extend({decorator:t=>lt({pattern:"string"==typeof t?t:t.source})}).apply(),t.for(_.COLUMN).extend({decorator:t=>lt({name:t})}).apply(),t.for(e.DESCRIPTION).extend({decorator:t=>lt({description:t})}).apply();const ht="DecafModuleOptions",ut="DecafAdapter";var gt;let mt=class{static{gt=this}static{this._adapterInstance=null}static get log(){return this._logger||(this._logger=H.for(gt)),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=>gt.createAdapter(t),provide:ut,durable:!0,scope:i.DEFAULT,inject:[ht]};return{module:gt,providers:[s,e],exports:[s]}}async onApplicationShutdown(){const t=gt.log.for(this.onApplicationShutdown),e=this.moduleRef.get(ut);try{e&&(t.info("Shutting down"),await e.shutdown(),gt._adapterInstance=null)}catch(e){t.error("Failed to shutdown application",e)}}};function ft(t,e){const{handler:r,args:o}=s.get(t,it.REFLECT+it.BLOCK)||{};return!!r&&(r(...o,e)??!1)}function yt(t,e,s){const r={GET:[it.READ,p],POST:[it.CREATE,d],PUT:[it.UPDATE,l],PATCH:[it.UPDATE,h],DELETE:[it.DELETE,u]},[o,i]=r[e];return ft(t,o)?ot(z()):ot(i(s))}function wt(t=[]){const e=t.map(t=>B({name:t.name,description:t.description??"Path parameter: "+t.name,required:t.required??!0,type:t.type??String}));return g(...e)}mt=gt=U([n(),c({}),x(0,a(ht)),M("design:paramtypes",[Object,q])],mt);const Et=m((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 Rt(t=[]){const e=t.map(t=>t.name);return Et(e)}let At=class{for(t){if(!(t="string"==typeof t?T.get(t):t))throw new at("Failed to find repository for "+t);return j.forModel(t)}};At=U([o()],At);class bt{static{this.log=H.for(bt.name)}static create(t){const e=bt.log.for(bt.create),s=j.table(t),r=G(s),o=t.name,{description:i,apiProperties:a,path:n}=bt.getRouteParametersFromModel(t);e.debug("Creating controller for model: "+o);let c=class extends k{constructor(s){super(),this.repoFactory=s,e.info(`Registering dynamic controller for model: ${o} route: /${r}`);try{this.repo=this.repoFactory.for(t.name),this.pk=this.repo.pk}catch(e){this.log.error(`Failed to initialize repository for model "${t.name}".`,e)}}async create(t){const e=this.log.for(this.create);let s;e.verbose("creating new "+o);try{s=await this.repo.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{id:e}=t,s=this.log.for(this.read);let r;try{s.debug(`reading ${o} with ${this.pk} ${e}`),r=await this.repo.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}"`),s=await this.repo[t]()}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(t,e){const s=this.log.for(this.update);let r;try{s.info(`updating ${o} with ${this.pk} ${e[this.pk]}`),r=await this.repo.create(e)}catch(t){throw s.error(t),t}return r}async delete(t){const e=this.log.for(this.delete);let s;try{e.debug(`deleting ${o} with ${this.pk} ${t}`),s=await this.repo.read("id")}catch(t){throw e.error(`Failed to delete ${o} with id id`,t),t}return e.info(`deleted ${o} with id ${s[this.pk]}`),s}};return U([yt(t,"POST"),V({summary:`Create a new ${o}.`}),J({description:"Payload for "+o,schema:{$ref:Q(t)}}),Y({description:o+" created successfully."}),Z({description:"Payload validation failed."}),X({description:"Repository rejected the provided payload."}),x(0,f()),M("design:type",Function),M("design:paramtypes",[Object]),M("design:returntype",Promise)],c.prototype,"create",null),U([yt(t,"GET",n),wt(a),V({summary:`Retrieve a ${o} record by id.`}),K({description:o+" retrieved successfully."}),W({description:`No ${o} record matches the provided identifier.`}),x(0,y()),M("design:type",Function),M("design:paramtypes",[Object]),M("design:returntype",Promise)],c.prototype,"read",null),U([yt(t,"GET","query/:method"),V({summary:`Retrieve ${o} records by query.`}),B({name:"method",description:"Query method to be called"}),K({description:o+" retrieved successfully."}),W({description:`No ${o} records matches the query.`}),x(0,y("method")),M("design:type",Function),M("design:paramtypes",[String]),M("design:returntype",Promise)],c.prototype,"query",null),U([yt(t,"PUT",n),wt(a),V({summary:`Replace an existing ${o} record with a new payload.`}),J({description:"Payload for replace a existing record of "+o,schema:{$ref:Q(t)}}),K({description:t+" record replaced successfully."}),W({description:`No ${o} record matches the provided identifier.`}),Z({description:"Payload validation failed."}),x(0,Rt(a)),x(1,f()),M("design:type",Function),M("design:paramtypes",[Object,T]),M("design:returntype",Promise)],c.prototype,"update",null),U([yt(t,"DELETE",n),wt(a),V({summary:`Delete a ${o} record by id.`}),K({description:o+" record deleted successfully."}),W({description:`No ${o} record matches the provided identifier.`}),x(0,Rt(a)),M("design:type",Function),M("design:paramtypes",[Object]),M("design:returntype",Promise)],c.prototype,"delete",null),c=U([w(r),tt(o),et(t),M("design:paramtypes",[At])],c),c}static getRouteParametersFromModel(t){const e=new t({}),r=nt(e)?.id||"id",o=j.key(ct.COMPOSED),i=Reflect.getMetadata(o,e,r)?.args??[],a=Array.isArray(i)&&i.length>0?[...i]:[r],n=s.description(t),c=Array.from(new Set(a)),p=c.map(t=>":"+t).join("/");return{description:n,apiProperties:c.map(e=>({name:e,description:s.description(t,e),required:!0,type:String})),path:p}}}var Pt;let Tt=class{static{Pt=this}static{this.log=H.for(Pt.name)}static forRoot(t){const e=this.log.for(this.forRoot);e.info("Generating controllers for flavour...");const s=D.models(t).map(bt.create);return e.info(`Generated ${s.length} controllers`),{module:Pt,controllers:s,providers:[At]}}};var Ot;Tt=Pt=U([c({})],Tt);let It=Ot=class{static async forRootAsync(t){const{autoControllers:e}=t,s=(await mt.createAdapter(t)).flavour,r=[mt.forRoot(t)];return e&&r.push(Tt.forRoot(s)),{module:Ot,imports:r}}};function St(t){const e=T.get(t);if(!e)throw new at("Failed to find repository for "+t);return j.forModel(e)}It=Ot=U([c({})],It);class vt extends L{constructor(t){super(t,vt.name)}}class $t{constructor(t,e){const s=e?.status??E.INTERNAL_SERVER_ERROR,r=e?.message??"Internal Server Error",o=(e?.error??E[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 Nt extends Error{constructor(t="Unauthorized"){super(t),this.name="AuthorizationError",this.status=401,this.code="UNAUTHORIZED",Object.setPrototypeOf(this,Nt.prototype)}}let Ct=class{catch(t,e){const s=e.switchToHttp(),r=s.getRequest(),o=s.getResponse(),i=new $t(r,{error:"UNAUTHORIZED",status:E.UNAUTHORIZED,message:t.message});o.status(E.UNAUTHORIZED).json(i)}};Ct=U([R(Nt)],Ct);class Ft extends Error{constructor(t="Conflict"){super(t),this.name="ConflictError",this.status=409,this.code="CONFLICT",Object.setPrototypeOf(this,Ft.prototype)}}let _t=class{catch(t,e){const s=e.switchToHttp(),r=s.getResponse(),o=s.getRequest(),i=new $t(o,{status:E.CONFLICT,message:t.message,error:"CONFLICT"});r.status(i.status).json(i)}};_t=U([R(Ft)],_t);let jt=class{catch(t,e){const s=e.switchToHttp(),r=s.getRequest(),o=s.getResponse();let i,a=E.INTERNAL_SERVER_ERROR,n="Internal Server Error";if(t instanceof A){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 $t(r,{status:a,message:n,error:i});o.status(c.status).json(c)}};jt=U([R()],jt);let Dt=class{catch(t,e){const s=e.switchToHttp(),r=s.getResponse(),o=s.getRequest(),i=t.getStatus(),a=new $t(o,{status:i,message:t.message,error:t.name});r.status(a.status).json(a)}};Dt=U([R(A)],Dt);class Lt extends Error{constructor(t="Resource not found"){super(t),this.name="NotFoundError",this.status=404,this.code="NOT_FOUND",Object.setPrototypeOf(this,Lt.prototype)}}let Ut=class{catch(t,e){const s=e.switchToHttp(),r=s.getResponse(),o=s.getRequest(),i=new $t(o,{status:E.NOT_FOUND,message:t.message,error:"NOT_FOUND"});r.status(i.status).json(i)}};Ut=U([R(Lt)],Ut);class xt extends Error{constructor(t="Validation failed"){super(t),this.name="ValidationError",this.status=422,this.code="VALIDATION_ERROR",Object.setPrototypeOf(this,xt.prototype)}}let Mt=class{catch(t,e){const s=e.switchToHttp(),r=s.getResponse(),o=s.getRequest(),i=new $t(o,{status:E.UNPROCESSABLE_ENTITY,message:t.message,error:"VALIDATION_ERROR"});r.status(i.status).json(i)}};Mt=U([R(xt)],Mt);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=dt.join(this.options.assetsPath||"",t),r=pt(s,{encoding:"base64"});return e?"data:image/png;base64,"+r:r}}class Gt{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 st).setTitle(this.options.title).setDescription(t).setVersion(this.options.version||"0.0.1").addBearerAuth(this.options.auth||qt.auth).build();return rt.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});rt.setup(this.options.path||qt.path,this.app,t,{...e.getCustomOptions()})}}class kt{static get logger(){return this._logger||(this._logger=new b("NestBootstrap")),this._logger}static initialize(t){return this.app=t,this}static enableLogger(t){return this._logger=t||new b("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 vt(`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 Gt(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 Dt,new Mt,new Ut,new _t,new Ct,new jt];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 zt="##VERSION##",Bt="##PACKAGE_NAME##";s.registerLibrary(Bt,zt);export{yt as ApiOperationFromModel,wt as ApiParamsFromModel,Nt as AuthorizationError,Ct as AuthorizationExceptionFilter,Ft as ConflictError,_t as ConflictExceptionFilter,vt as CorsError,ut as DECAF_ADAPTER_ID,ht as DECAF_MODULE_OPTIONS,Tt as DecafModelModule,It as DecafModule,Rt as DecafParams,bt as FromModelController,jt as GlobalExceptionFilter,Dt as HttpExceptionFilter,$t as HttpResponseError,kt as NestBootstraper,Lt as NotFoundError,Ut as NotFoundExceptionFilter,Bt as PACKAGE_NAME,At as RepoFactory,Gt as SwaggerBuilder,zt as VERSION,xt as ValidationError,Mt as ValidationExceptionFilter,ft as isOperationBlocked,St as repoForModel};
1
+ import{Decoration as t,DecorationKeys as e,Metadata as s}from"@decaf-ts/decoration";import{InjectablesKeys as r}from"@decaf-ts/injectable-decorators";import{Injectable as o,Scope as i,Inject as a,Global as n,Module as c,Get as p,Post as d,Put as l,Patch as h,Delete as u,applyDecorators as g,createParamDecorator as m,Body as f,Param as y,Controller as w,HttpStatus as E,Catch as b,HttpException as R,Logger as T}from"@nestjs/common";import{ValidationKeys as P,Model as A}from"@decaf-ts/decorator-validation";import{PersistenceKeys as O,Repository as I,Adapter as S,ForbiddenError as $}from"@decaf-ts/core";import{ApiProperty as v,ApiExcludeEndpoint as C,ApiParam as N,ApiOperation as F,ApiBody as D,getSchemaPath as j,ApiCreatedResponse as L,ApiBadRequestResponse as U,ApiUnprocessableEntityResponse as _,ApiOkResponse as x,ApiNotFoundResponse as q,ApiTags as H,ApiExtraModels as G,DocumentBuilder as M,SwaggerModule as k}from"@nestjs/swagger";import{__decorate as z,__param as B,__metadata as V}from"tslib";import{ModuleRef as J}from"@nestjs/core";import{Logging as Q,toKebabCase as Z,LoggedClass as X}from"@decaf-ts/logging";import{apply as K}from"@decaf-ts/reflection";import{OperationKeys as W,InternalError as Y,findPrimaryKey as tt,DBKeys as et}from"@decaf-ts/db-decorators";import{readFileSync as st}from"fs";import*as rt from"path";t.for(r.INJECTABLE).extend({decorator:(t,e)=>o({scope:e.singleton?i.DEFAULT:i.REQUEST,durable:!e.singleton||void 0})}).apply(),t.for(r.INJECT).extend({decorator:(t,e)=>(e,s,r)=>a(t||e)(e,s,r)}).apply(),t.for(P.REQUIRED).extend(v({required:!0})).apply(),t.for(P.MAX).extend({decorator:t=>v({maximum:t})}).apply(),t.for(P.MIN).extend({decorator:t=>v({minimum:t})}).apply(),t.for(P.MAX_LENGTH).extend({decorator:t=>v({maxLength:t})}).apply(),t.for(P.MIN_LENGTH).extend({decorator:t=>v({minLength:t})}).apply(),t.for(P.LIST).extend({decorator:t=>{const e=Array.isArray(t)?t[0]:t;return v({type:[e]})}}).apply(),t.for(P.PATTERN).extend({decorator:t=>v({pattern:"string"==typeof t?t:t.source})}).apply(),t.for(O.COLUMN).extend({decorator:t=>v({name:t})}).apply(),t.for(e.DESCRIPTION).extend({decorator:t=>v({description:t})}).apply();const ot="DecafModuleOptions",it="DecafAdapter";var at;let nt=class{static{at=this}static{this._adapterInstance=null}static get log(){return this._logger||(this._logger=Q.for(at)),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:ot,useValue:t},s={useFactory:async t=>at.createAdapter(t),provide:it,durable:!0,scope:i.DEFAULT,inject:[ot]};return{module:at,providers:[s,e],exports:[s]}}async onApplicationShutdown(){const t=at.log.for(this.onApplicationShutdown),e=this.moduleRef.get(it);try{e&&(t.info("Shutting down"),await e.shutdown(),at._adapterInstance=null)}catch(e){t.error("Failed to shutdown application",e)}}};function ct(t,e){const{handler:r,args:o}=s.get(t,W.REFLECT+W.BLOCK)||{};return!!r&&(r(...o,e)??!1)}function pt(t,e,s){const r={GET:[W.READ,p],POST:[W.CREATE,d],PUT:[W.UPDATE,l],PATCH:[W.UPDATE,h],DELETE:[W.DELETE,u]},[o,i]=r[e];return ct(t,o)?K(C()):K(i(s))}function dt(t=[]){const e=t.map(t=>N({name:t.name,description:t.description??"Path parameter: "+t.name,required:t.required??!0,type:t.type??String}));return g(...e)}nt=at=z([n(),c({}),B(0,a(ot)),V("design:paramtypes",[Object,J])],nt);const lt=m((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 ht(t=[]){const e=t.map(t=>t.name);return lt(e)}let ut=class{for(t){if(!(t="string"==typeof t?A.get(t):t))throw new Y("Failed to find repository for "+t);return I.forModel(t)}};ut=z([o()],ut);class gt{static{this.log=Q.for(gt.name)}static create(t){const e=gt.log.for(gt.create),s=I.table(t),r=Z(s),o=t.name,{description:i,apiProperties:a,path:n}=gt.getRouteParametersFromModel(t);e.debug("Creating controller for model: "+o);let c=class extends X{constructor(s){super(),this.repoFactory=s,e.info(`Registering dynamic controller for model: ${o} route: /${r}`);try{this.repo=this.repoFactory.for(t.name),this.pk=this.repo.pk}catch(e){this.log.error(`Failed to initialize repository for model "${t.name}".`,e)}}async create(t){const e=this.log.for(this.create);let s;e.verbose("creating new "+o);try{s=await this.repo.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{id:e}=t,s=this.log.for(this.read);let r;try{s.debug(`reading ${o} with ${this.pk} ${e}`),r=await this.repo.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}"`),s=await this.repo[t]()}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(t,e){const s=this.log.for(this.update);let r;try{s.info(`updating ${o} with ${this.pk} ${e[this.pk]}`),r=await this.repo.create(e)}catch(t){throw s.error(t),t}return r}async delete(t){const e=this.log.for(this.delete);let s;try{e.debug(`deleting ${o} with ${this.pk} ${t}`),s=await this.repo.read("id")}catch(t){throw e.error(`Failed to delete ${o} with id id`,t),t}return e.info(`deleted ${o} with id ${s[this.pk]}`),s}};return z([pt(t,"POST"),F({summary:`Create a new ${o}.`}),D({description:"Payload for "+o,schema:{$ref:j(t)}}),L({description:o+" created successfully."}),U({description:"Payload validation failed."}),_({description:"Repository rejected the provided payload."}),B(0,f()),V("design:type",Function),V("design:paramtypes",[Object]),V("design:returntype",Promise)],c.prototype,"create",null),z([pt(t,"GET",n),dt(a),F({summary:`Retrieve a ${o} record by id.`}),x({description:o+" retrieved successfully."}),q({description:`No ${o} record matches the provided identifier.`}),B(0,y()),V("design:type",Function),V("design:paramtypes",[Object]),V("design:returntype",Promise)],c.prototype,"read",null),z([pt(t,"GET","query/:method"),F({summary:`Retrieve ${o} records by query.`}),N({name:"method",description:"Query method to be called"}),x({description:o+" retrieved successfully."}),q({description:`No ${o} records matches the query.`}),B(0,y("method")),V("design:type",Function),V("design:paramtypes",[String]),V("design:returntype",Promise)],c.prototype,"query",null),z([pt(t,"PUT",n),dt(a),F({summary:`Replace an existing ${o} record with a new payload.`}),D({description:"Payload for replace a existing record of "+o,schema:{$ref:j(t)}}),x({description:t+" record replaced successfully."}),q({description:`No ${o} record matches the provided identifier.`}),U({description:"Payload validation failed."}),B(0,ht(a)),B(1,f()),V("design:type",Function),V("design:paramtypes",[Object,A]),V("design:returntype",Promise)],c.prototype,"update",null),z([pt(t,"DELETE",n),dt(a),F({summary:`Delete a ${o} record by id.`}),x({description:o+" record deleted successfully."}),q({description:`No ${o} record matches the provided identifier.`}),B(0,ht(a)),V("design:type",Function),V("design:paramtypes",[Object]),V("design:returntype",Promise)],c.prototype,"delete",null),c=z([w(r),H(o),G(t),V("design:paramtypes",[ut])],c),c}static getRouteParametersFromModel(t){const e=new t({}),r=tt(e)?.id||"id",o=I.key(et.COMPOSED),i=Reflect.getMetadata(o,e,r)?.args??[],a=Array.isArray(i)&&i.length>0?[...i]:[r],n=s.description(t),c=Array.from(new Set(a)),p=c.map(t=>":"+t).join("/");return{description:n,apiProperties:c.map(e=>({name:e,description:s.description(t,e),required:!0,type:String})),path:p}}}var mt;let ft=class{static{mt=this}static{this.log=Q.for(mt.name)}static forRoot(t){const e=this.log.for(this.forRoot);e.info("Generating controllers for flavour...");const s=S.models(t).map(gt.create);return e.info(`Generated ${s.length} controllers`),{module:mt,controllers:s,providers:[ut]}}};var yt;ft=mt=z([c({})],ft);let wt=yt=class{static async forRootAsync(t){const{autoControllers:e}=t,s=(await nt.createAdapter(t)).flavour,r=[nt.forRoot(t)];return e&&r.push(ft.forRoot(s)),{module:yt,imports:r}}};function Et(t){const e=A.get(t);if(!e)throw new Y("Failed to find repository for "+t);return I.forModel(e)}wt=yt=z([c({})],wt);class bt extends ${constructor(t){super(t,bt.name)}}class Rt{constructor(t,e){const s=e?.status??E.INTERNAL_SERVER_ERROR,r=e?.message??"Internal Server Error",o=(e?.error??E[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 Tt extends Error{constructor(t="Unauthorized"){super(t),this.name="AuthorizationError",this.status=401,this.code="UNAUTHORIZED",Object.setPrototypeOf(this,Tt.prototype)}}let Pt=class{catch(t,e){const s=e.switchToHttp(),r=s.getRequest(),o=s.getResponse(),i=new Rt(r,{error:"UNAUTHORIZED",status:E.UNAUTHORIZED,message:t.message});o.status(E.UNAUTHORIZED).json(i)}};Pt=z([b(Tt)],Pt);class At extends Error{constructor(t="Conflict"){super(t),this.name="ConflictError",this.status=409,this.code="CONFLICT",Object.setPrototypeOf(this,At.prototype)}}let Ot=class{catch(t,e){const s=e.switchToHttp(),r=s.getResponse(),o=s.getRequest(),i=new Rt(o,{status:E.CONFLICT,message:t.message,error:"CONFLICT"});r.status(i.status).json(i)}};Ot=z([b(At)],Ot);let It=class{catch(t,e){const s=e.switchToHttp(),r=s.getRequest(),o=s.getResponse();let i,a=E.INTERNAL_SERVER_ERROR,n="Internal Server Error";if(t instanceof R){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 Rt(r,{status:a,message:n,error:i});o.status(c.status).json(c)}};It=z([b()],It);let St=class{catch(t,e){const s=e.switchToHttp(),r=s.getResponse(),o=s.getRequest(),i=t.getStatus(),a=new Rt(o,{status:i,message:t.message,error:t.name});r.status(a.status).json(a)}};St=z([b(R)],St);class $t extends Error{constructor(t="Resource not found"){super(t),this.name="NotFoundError",this.status=404,this.code="NOT_FOUND",Object.setPrototypeOf(this,$t.prototype)}}let vt=class{catch(t,e){const s=e.switchToHttp(),r=s.getResponse(),o=s.getRequest(),i=new Rt(o,{status:E.NOT_FOUND,message:t.message,error:"NOT_FOUND"});r.status(i.status).json(i)}};vt=z([b($t)],vt);class Ct extends Error{constructor(t="Validation failed"){super(t),this.name="ValidationError",this.status=422,this.code="VALIDATION_ERROR",Object.setPrototypeOf(this,Ct.prototype)}}let Nt=class{catch(t,e){const s=e.switchToHttp(),r=s.getResponse(),o=s.getRequest(),i=new Rt(o,{status:E.UNPROCESSABLE_ENTITY,message:t.message,error:"VALIDATION_ERROR"});r.status(i.status).json(i)}};Nt=z([b(Ct)],Nt);const Ft={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 Dt{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||Ft.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=rt.join(this.options.assetsPath||"",t),r=st(s,{encoding:"base64"});return e?"data:image/png;base64,"+r:r}}class jt{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 M).setTitle(this.options.title).setDescription(t).setVersion(this.options.version||"0.0.1").addBearerAuth(this.options.auth||Ft.auth).build();return k.createDocument(this.app,e,{extraModels:this.options.extraModels||[]})}setupSwagger(){const t=this.createDocument(),e=new Dt({title:this.options.title,path:this.options.path||Ft.path,persistAuthorization:this.options.persistAuthorization??!0,assetsPath:this.options.assetsPath,faviconPath:this.options.faviconFilePath,topbarIconPath:this.options.topbarIconFilePath,topbarBgColor:this.options.topbarBgColor});k.setup(this.options.path||Ft.path,this.app,t,{...e.getCustomOptions()})}}class Lt{static get logger(){return this._logger||(this._logger=new T("NestBootstrap")),this._logger}static initialize(t){return this.app=t,this}static enableLogger(t){return this._logger=t||new T("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 bt(`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 jt(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 St,new Nt,new vt,new Ot,new Pt,new It];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 Ut="##VERSION##",_t="##PACKAGE##";s.registerLibrary(_t,Ut);export{pt as ApiOperationFromModel,dt as ApiParamsFromModel,Tt as AuthorizationError,Pt as AuthorizationExceptionFilter,At as ConflictError,Ot as ConflictExceptionFilter,bt as CorsError,it as DECAF_ADAPTER_ID,ot as DECAF_MODULE_OPTIONS,ft as DecafModelModule,wt as DecafModule,ht as DecafParams,gt as FromModelController,It as GlobalExceptionFilter,St as HttpExceptionFilter,Rt as HttpResponseError,Lt as NestBootstraper,$t as NotFoundError,vt as NotFoundExceptionFilter,_t as PACKAGE_NAME,ut as RepoFactory,jt as SwaggerBuilder,Ut as VERSION,Ct as ValidationError,Nt as ValidationExceptionFilter,ct as isOperationBlocked,Et as repoForModel};
2
2
  //# sourceMappingURL=for-nest.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"for-nest.js","sources":["../src/decorators/ApiProperty.ts","../src/decorators/helpers.ts","../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/RepoFactory.ts","../src/decaf-model/FromModelController.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":["ApiProperty","options","overrideExisting","type","isArray","getTypeIsArrayTuple","opts","undefined","enum","enumValues","getEnumValues","items","getEnumType","Array","metakey","metadata","target","propertyKey","properties","Reflect","getMetadata","DECORATORS","API_MODEL_PROPERTIES_ARRAY","key","includes","defineMetadata","existingMetadata","newMetadata","pickBy","negate","isUndefined","metadataToSave","constructor","METADATA_FACTORY_NAME","createPropertyDecorator","API_MODEL_PROPERTIES","createApiPropertyDecorator","Decoration","for","InjectablesKeys","INJECTABLE","extend","decorator","category","cfg","Injectable","scope","singleton","Scope","DEFAULT","REQUEST","durable","apply","INJECT","descriptor","Inject","ValidationKeys","REQUIRED","required","MAX","max","maximum","MIN","min","minimum","MAX_LENGTH","maxLength","MIN_LENGTH","minLength","LIST","clazz","PATTERN","pat","pattern","source","PersistenceKeys","COLUMN","name","DecorationKeys","DESCRIPTION","description","DECAF_MODULE_OPTIONS","DECAF_ADAPTER_ID","DecafCoreModule","this","_adapterInstance","log","_logger","Logging","DecafCoreModule_1","moduleRef","createAdapter","info","adapter","conf","alias","getAdapterInstance","forRoot","typeOrmModuleOptions","provide","useValue","useFactory","async","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","Object","keys","ordered","k","DecafParams","RepoFactory","model","Model","InternalError","Repository","forModel","FromModelController","create","ModelClazz","tableName","table","routePath","toKebabCase","modelClazzName","apiProperties","getRouteParametersFromModel","debug","DynamicModelController","LoggedClass","repoFactory","super","repo","pk","data","created","verbose","read","pathParams","id","query","method","results","update","routeParams","body","updated","delete","ApiOperation","summary","ApiBody","schema","$ref","getSchemaPath","ApiCreatedResponse","ApiBadRequestResponse","ApiUnprocessableEntityResponse","Body","prototype","ApiOkResponse","ApiNotFoundResponse","Param","ApiParam","Controller","ApiTags","ApiExtraModels","instance","findPrimaryKey","composedKeyMetaKey","DBKeys","COMPOSED","composedKeys","keysToReturn","length","uniqueKeys","from","Set","join","DecafModelModule","DecafModelModule_1","flavour","controllers","Adapter","models","DecafModule","DecafModule_1","forRootAsync","autoControllers","imports","push","repoForModel","m","CorsError","ForbiddenError","msg","HttpResponseError","request","responseError","status","HttpStatus","INTERNAL_SERVER_ERROR","message","toString","toUpperCase","assign","timestamp","Date","toISOString","url","AuthorizationError","Error","code","setPrototypeOf","AuthorizationExceptionFilter","exception","host","response","getResponse","httpResponseError","UNAUTHORIZED","json","Catch","ConflictError","ConflictExceptionFilter","CONFLICT","GlobalExceptionFilter","HttpException","res","getStatus","HttpExceptionFilter","NotFoundError","NotFoundExceptionFilter","NOT_FOUND","ValidationError","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","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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"}
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/RepoFactory.ts","../src/decaf-model/FromModelController.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],"names":["Decoration","for","InjectablesKeys","INJECTABLE","extend","decorator","category","cfg","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","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","Object","keys","ordered","k","DecafParams","RepoFactory","model","Model","InternalError","Repository","forModel","FromModelController","create","ModelClazz","tableName","table","routePath","toKebabCase","modelClazzName","apiProperties","getRouteParametersFromModel","debug","DynamicModelController","LoggedClass","repoFactory","super","repo","pk","data","created","verbose","read","pathParams","id","query","method","results","update","routeParams","body","updated","delete","ApiOperation","summary","ApiBody","schema","$ref","getSchemaPath","ApiCreatedResponse","ApiBadRequestResponse","ApiUnprocessableEntityResponse","Body","prototype","ApiOkResponse","ApiNotFoundResponse","Param","ApiParam","Controller","ApiTags","ApiExtraModels","instance","findPrimaryKey","composedKeyMetaKey","key","DBKeys","COMPOSED","composedKeys","Reflect","getMetadata","keysToReturn","length","uniqueKeys","from","Set","join","DecafModelModule","DecafModelModule_1","flavour","controllers","Adapter","models","DecafModule","DecafModule_1","forRootAsync","autoControllers","imports","push","repoForModel","m","CorsError","ForbiddenError","msg","HttpResponseError","request","responseError","status","HttpStatus","INTERNAL_SERVER_ERROR","message","toString","toUpperCase","assign","timestamp","Date","toISOString","url","AuthorizationError","Error","code","setPrototypeOf","AuthorizationExceptionFilter","exception","host","response","getResponse","httpResponseError","UNAUTHORIZED","json","Catch","ConflictError","ConflictExceptionFilter","CONFLICT","GlobalExceptionFilter","HttpException","res","getStatus","HttpExceptionFilter","NotFoundError","NotFoundExceptionFilter","NOT_FOUND","ValidationError","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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"}
@@ -29,6 +29,7 @@ class FromModelController {
29
29
  const tableName = core_1.Repository.table(ModelClazz);
30
30
  const routePath = (0, logging_1.toKebabCase)(tableName);
31
31
  const modelClazzName = ModelClazz.name;
32
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
32
33
  const { description, apiProperties, path } = FromModelController.getRouteParametersFromModel(ModelClazz);
33
34
  log.debug(`Creating controller for model: ${modelClazzName}`);
34
35
  let DynamicModelController = class DynamicModelController extends logging_1.LoggedClass {
@@ -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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"}
@@ -17,7 +17,7 @@ const db_decorators_1 = require("@decaf-ts/db-decorators");
17
17
  */
18
18
  function isOperationBlocked(ModelConstructor, op) {
19
19
  const { handler, args } = (decoration_1.Metadata.get(ModelConstructor, db_decorators_1.OperationKeys.REFLECT + db_decorators_1.OperationKeys.BLOCK) || {});
20
- // @ts-ignore
20
+ // @ts-expect-error TODO @pedro
21
21
  return !handler ? false : (handler(...args, op) ?? false);
22
22
  }
23
23
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"ApiOperationFromModel.js","sourceRoot":"","sources":["../../../src/decaf-model/decorators/ApiOperationFromModel.ts"],"names":[],"mappings":";;AAgBA,gDAiBC;AAUD,sDAoBC;AA/DD,qDAAgD;AAChD,2CAA+D;AAC/D,6CAAqD;AACrD,qDAA6C;AAC7C,2DAAwE;AAIxE;;;;;;;GAOG;AACH,SAAgB,kBAAkB,CAChC,gBAAuC,EACvC,EAAkB;IAElB,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,CAAC,qBAAQ,CAAC,GAAG,CACrC,gBAAuB,EACvB,6BAAa,CAAC,OAAO,GAAG,6BAAa,CAAC,KAAK,CAC5C,IAAI,EAAE,CAMN,CAAC;IAEF,aAAa;IACb,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,IAAI,EAAE,EAAE,CAAC,IAAI,KAAK,CAAC,CAAC;AAC5D,CAAC;AAED;;;;;;;GAOG;AACH,SAAgB,qBAAqB,CACnC,gBAAuC,EACvC,IAAe,EACf,IAAa;IAEb,MAAM,UAAU,GAGZ;QACF,GAAG,EAAE,CAAC,6BAAa,CAAC,IAAI,EAAE,YAAG,CAAC;QAC9B,IAAI,EAAE,CAAC,6BAAa,CAAC,MAAM,EAAE,aAAI,CAAC;QAClC,GAAG,EAAE,CAAC,6BAAa,CAAC,MAAM,EAAE,YAAG,CAAC;QAChC,KAAK,EAAE,CAAC,6BAAa,CAAC,MAAM,EAAE,cAAK,CAAC;QACpC,MAAM,EAAE,CAAC,6BAAa,CAAC,MAAM,EAAE,eAAM,CAAC;KACvC,CAAC;IAEF,MAAM,CAAC,MAAM,EAAE,mBAAmB,CAAC,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC;IACvD,OAAO,kBAAkB,CAAC,gBAAgB,EAAE,MAAM,CAAC;QACjD,CAAC,CAAC,IAAA,kBAAK,EAAC,IAAA,4BAAkB,GAAE,CAAC;QAC7B,CAAC,CAAC,IAAA,kBAAK,EAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC,CAAC;AACvC,CAAC"}
1
+ {"version":3,"file":"ApiOperationFromModel.js","sourceRoot":"","sources":["../../../src/decaf-model/decorators/ApiOperationFromModel.ts"],"names":[],"mappings":";;AAgBA,gDAiBC;AAUD,sDAoBC;AA/DD,qDAAgD;AAChD,2CAA+D;AAC/D,6CAAqD;AACrD,qDAA6C;AAC7C,2DAAwE;AAIxE;;;;;;;GAOG;AACH,SAAgB,kBAAkB,CAChC,gBAAuC,EACvC,EAAkB;IAElB,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,CAAC,qBAAQ,CAAC,GAAG,CACrC,gBAAuB,EACvB,6BAAa,CAAC,OAAO,GAAG,6BAAa,CAAC,KAAK,CAC5C,IAAI,EAAE,CAMN,CAAC;IAEF,+BAA+B;IAC/B,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,IAAI,EAAE,EAAE,CAAC,IAAI,KAAK,CAAC,CAAC;AAC5D,CAAC;AAED;;;;;;;GAOG;AACH,SAAgB,qBAAqB,CACnC,gBAAuC,EACvC,IAAe,EACf,IAAa;IAEb,MAAM,UAAU,GAGZ;QACF,GAAG,EAAE,CAAC,6BAAa,CAAC,IAAI,EAAE,YAAG,CAAC;QAC9B,IAAI,EAAE,CAAC,6BAAa,CAAC,MAAM,EAAE,aAAI,CAAC;QAClC,GAAG,EAAE,CAAC,6BAAa,CAAC,MAAM,EAAE,YAAG,CAAC;QAChC,KAAK,EAAE,CAAC,6BAAa,CAAC,MAAM,EAAE,cAAK,CAAC;QACpC,MAAM,EAAE,CAAC,6BAAa,CAAC,MAAM,EAAE,eAAM,CAAC;KACvC,CAAC;IAEF,MAAM,CAAC,MAAM,EAAE,mBAAmB,CAAC,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC;IACvD,OAAO,kBAAkB,CAAC,gBAAgB,EAAE,MAAM,CAAC;QACjD,CAAC,CAAC,IAAA,kBAAK,EAAC,IAAA,4BAAkB,GAAE,CAAC;QAC7B,CAAC,CAAC,IAAA,kBAAK,EAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC,CAAC;AACvC,CAAC"}
@@ -10,8 +10,8 @@ const swagger_1 = require("@nestjs/swagger");
10
10
  * @param {string} props[].name The parameter's name as it appears in the route template (e.g., `:id`).
11
11
  * @param {string} [props[].description] Human-readable explanation of the parameter; defaults to `"Path parameter: <name>"`.
12
12
  * @param {boolean} [props[].required=true] Whether the parameter is required; defaults to `true`.
13
- * @param {new (...args:any[]) => any} [props[].type=String] Constructor/type used by Swagger to infer schema (e.g., `String`, `Number`, `UUID`, custom class).
14
- * @return {MethodDecorator & ClassDecorator} A composed decorator applying all generated `@ApiParam` decorators to the target method or controller.
13
+ * @param {Constructor<any>} [props[].type=String] Constructor/type used by Swagger to infer schema (e.g., `String`, `Number`, `UUID`, custom class).
14
+ * @return {any} A composed decorator applying all generated `@ApiParam` decorators to the target method or controller.
15
15
  * @function ApiParamsFromModel
16
16
  */
17
17
  function ApiParamsFromModel(props = []) {
@@ -6,8 +6,8 @@ import { ApiParam } from "./types";
6
6
  * @param {string} props[].name The parameter's name as it appears in the route template (e.g., `:id`).
7
7
  * @param {string} [props[].description] Human-readable explanation of the parameter; defaults to `"Path parameter: <name>"`.
8
8
  * @param {boolean} [props[].required=true] Whether the parameter is required; defaults to `true`.
9
- * @param {new (...args:any[]) => any} [props[].type=String] Constructor/type used by Swagger to infer schema (e.g., `String`, `Number`, `UUID`, custom class).
10
- * @return {MethodDecorator & ClassDecorator} A composed decorator applying all generated `@ApiParam` decorators to the target method or controller.
9
+ * @param {Constructor<any>} [props[].type=String] Constructor/type used by Swagger to infer schema (e.g., `String`, `Number`, `UUID`, custom class).
10
+ * @return {any} A composed decorator applying all generated `@ApiParam` decorators to the target method or controller.
11
11
  * @function ApiParamsFromModel
12
12
  */
13
13
  export declare function ApiParamsFromModel(props?: ApiParam[]): MethodDecorator & ClassDecorator;