@decaf-ts/for-nest 0.1.1 → 0.1.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +6 -1
- package/dist/for-nest.cjs +1 -1
- package/dist/for-nest.cjs.map +1 -1
- package/dist/for-nest.js +1 -1
- package/dist/for-nest.js.map +1 -1
- package/lib/decoration.cjs +5 -0
- package/lib/decoration.js.map +1 -1
- package/lib/esm/decoration.js +6 -1
- package/lib/esm/decoration.js.map +1 -1
- package/lib/esm/index.d.ts +1 -1
- package/lib/esm/index.js +1 -1
- package/lib/index.cjs +1 -1
- package/lib/index.d.ts +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -3,6 +3,8 @@
|
|
|
3
3
|
|
|
4
4
|
This repository is meant to provide an enterprise template for any standard Typescript project
|
|
5
5
|
|
|
6
|
+
> Release docs refreshed on 2025-11-26. See [workdocs/reports/RELEASE_NOTES.md](./workdocs/reports/RELEASE_NOTES.md) for ticket summaries.
|
|
7
|
+
|
|
6
8
|

|
|
7
9
|

|
|
8
10
|

|
|
@@ -26,7 +28,7 @@ This repository is meant to provide an enterprise template for any standard Type
|
|
|
26
28
|
|
|
27
29
|
Documentation available [here](https://decaf-ts.github.io/for-nest/)
|
|
28
30
|
|
|
29
|
-
Minimal size: 5.
|
|
31
|
+
Minimal size: 5.3 KB kb gzipped
|
|
30
32
|
|
|
31
33
|
|
|
32
34
|
### Description
|
|
@@ -71,6 +73,9 @@ Now you can create new repositories from this template and enjoy having everythi
|
|
|
71
73
|
- builder;
|
|
72
74
|
- etc;
|
|
73
75
|
|
|
76
|
+
## Release Documentation Hooks
|
|
77
|
+
Stay aligned with the automated release pipeline by reviewing [Release Notes](./workdocs/reports/RELEASE_NOTES.md) and [Dependencies](./workdocs/reports/DEPENDENCIES.md) after trying these recipes (updated on 2025-11-26).
|
|
78
|
+
|
|
74
79
|
|
|
75
80
|
### Related
|
|
76
81
|
|
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){"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 w=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 P(t=[]){const e=t.map(t=>t.name);return w(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),a=s.Model.tableName(e),c=p.toKebabCase(a),d=e.name,{description:l,apiProperties:u,path:h}=O.getRouteParametersFromModel(e);o.debug("Creating controller for model: "+d);let g=class extends p.LoggedClass{constructor(t){super(),this.repoFactory=t,o.info(`Registering dynamic controller for model: ${d} route: /${c}`);try{this.repo=this.repoFactory.for(e.name),this.pk=s.Model.pk(e)}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 "+d);try{o=await this.repo.create(t)}catch(t){throw e.error("Failed to create new "+d,t),t}return e.info(`created new ${d} 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 ${d} with ${this.pk} ${e}`),r=await this.repo.read(e)}catch(t){throw o.error(`Failed to read ${d} with id ${e}`,t),t}return o.info(`read ${d} with id ${r[this.pk]}`),r}async query(t){const e=this.log.for(this.read);let o;try{e.debug(`Querying ${d} using method "${t}"`),o=await this.repo[t]()}catch(o){throw e.error(`Failed to query ${d} using method "${t}"`,o),o}return e.info(`Successfully queried ${d} using method "${t}"`),o}async update(t,e){const o=this.log.for(this.update);let r;try{o.info(`updating ${d} 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 ${d} with ${this.pk} ${t}`),o=await this.repo.read("id")}catch(t){throw e.error(`Failed to delete ${d} with id id`,t),t}return e.info(`deleted ${d} with id ${o[this.pk]}`),o}};return n.__decorate([b(e,"POST"),i.ApiOperation({summary:`Create a new ${d}.`}),i.ApiBody({description:"Payload for "+d,schema:{$ref:i.getSchemaPath(e)}}),i.ApiCreatedResponse({description:d+" 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)],g.prototype,"create",null),n.__decorate([b(e,"GET",h),R(u),i.ApiOperation({summary:`Retrieve a ${d} record by id.`}),i.ApiOkResponse({description:d+" retrieved successfully."}),i.ApiNotFoundResponse({description:`No ${d} 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)],g.prototype,"read",null),n.__decorate([b(e,"GET","query/:method"),i.ApiOperation({summary:`Retrieve ${d} records by query.`}),i.ApiParam({name:"method",description:"Query method to be called"}),i.ApiOkResponse({description:d+" retrieved successfully."}),i.ApiNotFoundResponse({description:`No ${d} 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)],g.prototype,"query",null),n.__decorate([b(e,"PUT",h),R(u),i.ApiOperation({summary:`Replace an existing ${d} record with a new payload.`}),i.ApiBody({description:"Payload for replace a existing record of "+d,schema:{$ref:i.getSchemaPath(e)}}),i.ApiOkResponse({description:e+" record replaced successfully."}),i.ApiNotFoundResponse({description:`No ${d} record matches the provided identifier.`}),i.ApiBadRequestResponse({description:"Payload validation failed."}),n.__param(0,P(u)),n.__param(1,r.Body()),n.__metadata("design:type",Function),n.__metadata("design:paramtypes",[Object,s.Model]),n.__metadata("design:returntype",Promise)],g.prototype,"update",null),n.__decorate([b(e,"DELETE",h),R(u),i.ApiOperation({summary:`Delete a ${d} record by id.`}),i.ApiOkResponse({description:d+" record deleted successfully."}),i.ApiNotFoundResponse({description:`No ${d} record matches the provided identifier.`}),n.__param(0,P(u)),n.__metadata("design:type",Function),n.__metadata("design:paramtypes",[Object]),n.__metadata("design:returntype",Promise)],g.prototype,"delete",null),g=n.__decorate([r.Controller(c),i.ApiTags(d),i.ApiExtraModels(e),n.__metadata("design:paramtypes",[t.RepoFactory])],g),g}static getRouteParametersFromModel(t){const o=new t({}),r=s.Model.pk(t),a=l.DBKeys.COMPOSED,i=Reflect.getMetadata(a,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 M={title:"Swagger | OpenAPI Specification (OAS)",description:"Standardized format for describing RESTful APIs",version:"0.0.1",path:"docs",faviconFilePath:"",topbarIconFilePath:"",auth:{type:"http",scheme:"bearer",bearerFormat:"JWT",name:"Authorization",description:"Enter JWT token",in:"header"},persistAuthorization:!0,topbarBgColor:"#000000"};class j{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||M.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 v{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||M.auth).build();return i.SwaggerModule.createDocument(this.app,e,{extraModels:this.options.extraModels||[]})}setupSwagger(){const t=this.createDocument(),e=new j({title:this.options.title,path:this.options.path||M.path,persistAuthorization:this.options.persistAuthorization??!0,assetsPath:this.options.assetsPath,faviconPath:this.options.faviconFilePath,topbarIconPath:this.options.topbarIconFilePath,topbarBgColor:this.options.topbarBgColor});i.SwaggerModule.setup(this.options.path||M.path,this.app,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=P,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 v(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=v,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);
|
|
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)=>(e=e||("object"==typeof t?Object.assign(t,o.DefaultInjectablesConfig):o.DefaultInjectablesConfig),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 w=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 P(t=[]){const e=t.map(t=>t.name);return w(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),a=s.Model.tableName(e),c=p.toKebabCase(a),d=e.name,{description:l,apiProperties:u,path:h}=O.getRouteParametersFromModel(e);o.debug("Creating controller for model: "+d);let g=class extends p.LoggedClass{constructor(t){super(),this.repoFactory=t,o.info(`Registering dynamic controller for model: ${d} route: /${c}`);try{this.repo=this.repoFactory.for(e.name),this.pk=s.Model.pk(e)}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 "+d);try{o=await this.repo.create(t)}catch(t){throw e.error("Failed to create new "+d,t),t}return e.info(`created new ${d} 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 ${d} with ${this.pk} ${e}`),r=await this.repo.read(e)}catch(t){throw o.error(`Failed to read ${d} with id ${e}`,t),t}return o.info(`read ${d} with id ${r[this.pk]}`),r}async query(t){const e=this.log.for(this.read);let o;try{e.debug(`Querying ${d} using method "${t}"`),o=await this.repo[t]()}catch(o){throw e.error(`Failed to query ${d} using method "${t}"`,o),o}return e.info(`Successfully queried ${d} using method "${t}"`),o}async update(t,e){const o=this.log.for(this.update);let r;try{o.info(`updating ${d} 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 ${d} with ${this.pk} ${t}`),o=await this.repo.read("id")}catch(t){throw e.error(`Failed to delete ${d} with id id`,t),t}return e.info(`deleted ${d} with id ${o[this.pk]}`),o}};return n.__decorate([b(e,"POST"),i.ApiOperation({summary:`Create a new ${d}.`}),i.ApiBody({description:"Payload for "+d,schema:{$ref:i.getSchemaPath(e)}}),i.ApiCreatedResponse({description:d+" 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)],g.prototype,"create",null),n.__decorate([b(e,"GET",h),R(u),i.ApiOperation({summary:`Retrieve a ${d} record by id.`}),i.ApiOkResponse({description:d+" retrieved successfully."}),i.ApiNotFoundResponse({description:`No ${d} 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)],g.prototype,"read",null),n.__decorate([b(e,"GET","query/:method"),i.ApiOperation({summary:`Retrieve ${d} records by query.`}),i.ApiParam({name:"method",description:"Query method to be called"}),i.ApiOkResponse({description:d+" retrieved successfully."}),i.ApiNotFoundResponse({description:`No ${d} 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)],g.prototype,"query",null),n.__decorate([b(e,"PUT",h),R(u),i.ApiOperation({summary:`Replace an existing ${d} record with a new payload.`}),i.ApiBody({description:"Payload for replace a existing record of "+d,schema:{$ref:i.getSchemaPath(e)}}),i.ApiOkResponse({description:e+" record replaced successfully."}),i.ApiNotFoundResponse({description:`No ${d} record matches the provided identifier.`}),i.ApiBadRequestResponse({description:"Payload validation failed."}),n.__param(0,P(u)),n.__param(1,r.Body()),n.__metadata("design:type",Function),n.__metadata("design:paramtypes",[Object,s.Model]),n.__metadata("design:returntype",Promise)],g.prototype,"update",null),n.__decorate([b(e,"DELETE",h),R(u),i.ApiOperation({summary:`Delete a ${d} record by id.`}),i.ApiOkResponse({description:d+" record deleted successfully."}),i.ApiNotFoundResponse({description:`No ${d} record matches the provided identifier.`}),n.__param(0,P(u)),n.__metadata("design:type",Function),n.__metadata("design:paramtypes",[Object]),n.__metadata("design:returntype",Promise)],g.prototype,"delete",null),g=n.__decorate([r.Controller(c),i.ApiTags(d),i.ApiExtraModels(e),n.__metadata("design:paramtypes",[t.RepoFactory])],g),g}static getRouteParametersFromModel(t){const o=new t({}),r=s.Model.pk(t),a=l.DBKeys.COMPOSED,i=Reflect.getMetadata(a,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 M{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 v{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 M({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=P,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 v(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=v,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
|
package/dist/for-nest.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"for-nest.cjs","sources":["../src/decoration.ts","../src/constants.ts","../src/core-module.ts","../src/decaf-model/decorators/ApiOperationFromModel.ts","../src/decaf-model/decorators/ApiParamsFromModel.ts","../src/decaf-model/decorators/DecafParams.ts","../src/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","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","composedKeyMetaKey","DBKeys","COMPOSED","composedKeys","Reflect","getMetadata","keysToReturn","length","uniqueKeys","from","Set","key","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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"}
|
|
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","Object","assign","DefaultInjectablesConfig","Injectable","scope","singleton","Scope","DEFAULT","REQUEST","durable","undefined","apply","INJECT","target","propertyKey","descriptor","Inject","ValidationKeys","REQUIRED","ApiProperty","required","MAX","max","maximum","MIN","min","minimum","MAX_LENGTH","maxLength","MIN_LENGTH","minLength","LIST","clazz","c","Array","isArray","type","PATTERN","pat","pattern","source","PersistenceKeys","COLUMN","name","DecorationKeys","DESCRIPTION","description","DECAF_MODULE_OPTIONS","DECAF_ADAPTER_ID","DecafCoreModule","this","_adapterInstance","log","_logger","Logging","DecafCoreModule_1","constructor","options","moduleRef","createAdapter","info","adapter","conf","alias","getAdapterInstance","forRoot","typeOrmModuleOptions","provide","useValue","useFactory","async","opts","inject","module","providers","exports","onApplicationShutdown","get","shutdown","e","error","isOperationBlocked","ModelConstructor","op","handler","args","Metadata","OperationKeys","REFLECT","BLOCK","ApiOperationFromModel","verb","path","httpToCrud","GET","READ","Get","POST","CREATE","Post","PUT","UPDATE","Put","PATCH","Patch","DELETE","Delete","crudOp","HttpMethodDecorator","ApiExcludeEndpoint","ApiParamsFromModel","props","decorators","map","p","ApiParamDec","String","applyDecorators","__decorate","Global","Module","__param","ModuleRef","OrderedParams","createParamDecorator","order","ctx","req","switchToHttp","getRequest","original","params","orderList","keys","ordered","k","DecafParams","RepoFactory","model","Model","InternalError","Repository","forModel","FromModelController","create","ModelClazz","tableName","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","composedKeyMetaKey","DBKeys","COMPOSED","composedKeys","Reflect","getMetadata","keysToReturn","length","uniqueKeys","from","Set","key","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","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 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 N,ApiParam as C,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,DBKeys as tt}from"@decaf-ts/db-decorators";import{readFileSync as et}from"fs";import*as st 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 rt="DecafModuleOptions",ot="DecafAdapter";var it;let at=class{static{it=this}static{this._adapterInstance=null}static get log(){return this._logger||(this._logger=Q.for(it)),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:rt,useValue:t},s={useFactory:async t=>it.createAdapter(t),provide:ot,durable:!0,scope:i.DEFAULT,inject:[rt]};return{module:it,providers:[s,e],exports:[s]}}async onApplicationShutdown(){const t=it.log.for(this.onApplicationShutdown),e=this.moduleRef.get(ot);try{e&&(t.info("Shutting down"),await e.shutdown(),it._adapterInstance=null)}catch(e){t.error("Failed to shutdown application",e)}}};function nt(t,e){const{handler:r,args:o}=s.get(t,W.REFLECT+W.BLOCK)||{};return!!r&&(r(...o,e)??!1)}function ct(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 nt(t,o)?K(N()):K(i(s))}function pt(t=[]){const e=t.map(t=>C({name:t.name,description:t.description??"Path parameter: "+t.name,required:t.required??!0,type:t.type??String}));return g(...e)}at=it=z([n(),c({}),B(0,a(rt)),V("design:paramtypes",[Object,J])],at);const dt=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 lt(t=[]){const e=t.map(t=>t.name);return dt(e)}let ht=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)}};ht=z([o()],ht);class ut{static{this.log=Q.for(ut.name)}static create(t){const e=ut.log.for(ut.create),s=A.tableName(t),r=Z(s),o=t.name,{description:i,apiProperties:a,path:n}=ut.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=A.pk(t)}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([ct(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([ct(t,"GET",n),pt(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([ct(t,"GET","query/:method"),F({summary:`Retrieve ${o} records by query.`}),C({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([ct(t,"PUT",n),pt(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,lt(a)),B(1,f()),V("design:type",Function),V("design:paramtypes",[Object,A]),V("design:returntype",Promise)],c.prototype,"update",null),z([ct(t,"DELETE",n),pt(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,lt(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",[ht])],c),c}static getRouteParametersFromModel(t){const e=new t({}),r=A.pk(t),o=tt.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 gt;let mt=class{static{gt=this}static{this.log=Q.for(gt.name)}static forRoot(t){const e=this.log.for(this.forRoot);e.info("Generating controllers for flavour...");const s=S.models(t).map(ut.create);return e.info(`Generated ${s.length} controllers`),{module:gt,controllers:s,providers:[ht]}}};var ft;mt=gt=z([c({})],mt);let yt=ft=class{static async forRootAsync(t){const{autoControllers:e}=t,s=(await at.createAdapter(t)).flavour,r=[at.forRoot(t)];return e&&r.push(mt.forRoot(s)),{module:ft,imports:r}}};function wt(t){const e=A.get(t);if(!e)throw new Y("Failed to find repository for "+t);return I.forModel(e)}yt=ft=z([c({})],yt);class Et extends ${constructor(t){super(t,Et.name)}}class bt{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 Rt extends Error{constructor(t="Unauthorized"){super(t),this.name="AuthorizationError",this.status=401,this.code="UNAUTHORIZED",Object.setPrototypeOf(this,Rt.prototype)}}let Tt=class{catch(t,e){const s=e.switchToHttp(),r=s.getRequest(),o=s.getResponse(),i=new bt(r,{error:"UNAUTHORIZED",status:E.UNAUTHORIZED,message:t.message});o.status(E.UNAUTHORIZED).json(i)}};Tt=z([b(Rt)],Tt);class Pt extends Error{constructor(t="Conflict"){super(t),this.name="ConflictError",this.status=409,this.code="CONFLICT",Object.setPrototypeOf(this,Pt.prototype)}}let At=class{catch(t,e){const s=e.switchToHttp(),r=s.getResponse(),o=s.getRequest(),i=new bt(o,{status:E.CONFLICT,message:t.message,error:"CONFLICT"});r.status(i.status).json(i)}};At=z([b(Pt)],At);let Ot=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 bt(r,{status:a,message:n,error:i});o.status(c.status).json(c)}};Ot=z([b()],Ot);let It=class{catch(t,e){const s=e.switchToHttp(),r=s.getResponse(),o=s.getRequest(),i=t.getStatus(),a=new bt(o,{status:i,message:t.message,error:t.name});r.status(a.status).json(a)}};It=z([b(R)],It);class St extends Error{constructor(t="Resource not found"){super(t),this.name="NotFoundError",this.status=404,this.code="NOT_FOUND",Object.setPrototypeOf(this,St.prototype)}}let $t=class{catch(t,e){const s=e.switchToHttp(),r=s.getResponse(),o=s.getRequest(),i=new bt(o,{status:E.NOT_FOUND,message:t.message,error:"NOT_FOUND"});r.status(i.status).json(i)}};$t=z([b(St)],$t);class vt extends Error{constructor(t="Validation failed"){super(t),this.name="ValidationError",this.status=422,this.code="VALIDATION_ERROR",Object.setPrototypeOf(this,vt.prototype)}}let Nt=class{catch(t,e){const s=e.switchToHttp(),r=s.getResponse(),o=s.getRequest(),i=new bt(o,{status:E.UNPROCESSABLE_ENTITY,message:t.message,error:"VALIDATION_ERROR"});r.status(i.status).json(i)}};Nt=z([b(vt)],Nt);const Ct={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 Ft{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||Ct.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=st.join(this.options.assetsPath||"",t),r=et(s,{encoding:"base64"});return e?"data:image/png;base64,"+r:r}}class Dt{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||Ct.auth).build();return k.createDocument(this.app,e,{extraModels:this.options.extraModels||[]})}setupSwagger(){const t=this.createDocument(),e=new Ft({title:this.options.title,path:this.options.path||Ct.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||Ct.path,this.app,t,{...e.getCustomOptions()})}}class jt{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 Et(`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 Dt(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 It,new Nt,new $t,new At,new Tt,new Ot];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 Lt="##VERSION##",Ut="##PACKAGE##";s.registerLibrary(Ut,Lt);export{ct as ApiOperationFromModel,pt as ApiParamsFromModel,Rt as AuthorizationError,Tt as AuthorizationExceptionFilter,Pt as ConflictError,At as ConflictExceptionFilter,Et as CorsError,ot as DECAF_ADAPTER_ID,rt as DECAF_MODULE_OPTIONS,mt as DecafModelModule,yt as DecafModule,lt as DecafParams,ut as FromModelController,Ot as GlobalExceptionFilter,It as HttpExceptionFilter,bt as HttpResponseError,jt as NestBootstraper,St as NotFoundError,$t as NotFoundExceptionFilter,Ut as PACKAGE_NAME,ht as RepoFactory,Dt as SwaggerBuilder,Lt as VERSION,vt as ValidationError,Nt as ValidationExceptionFilter,nt as isOperationBlocked,wt as repoForModel};
|
|
1
|
+
import{Decoration as t,DecorationKeys as e,Metadata as s}from"@decaf-ts/decoration";import{InjectablesKeys as o,DefaultInjectablesConfig as r}from"@decaf-ts/injectable-decorators";import{Injectable as i,Scope as a,Inject as n,Global as c,Module as p,Get as d,Post as l,Put as h,Patch as u,Delete as g,applyDecorators as m,createParamDecorator as f,Body as y,Param as w,Controller as b,HttpStatus as E,Catch as R,HttpException as T,Logger as P}from"@nestjs/common";import{ValidationKeys as A,Model as O}from"@decaf-ts/decorator-validation";import{PersistenceKeys as I,Repository as S,Adapter as $,ForbiddenError as v}from"@decaf-ts/core";import{ApiProperty as N,ApiExcludeEndpoint as C,ApiParam as F,ApiOperation as j,ApiBody as D,getSchemaPath as L,ApiCreatedResponse as U,ApiBadRequestResponse as _,ApiUnprocessableEntityResponse as x,ApiOkResponse as q,ApiNotFoundResponse as H,ApiTags as G,ApiExtraModels as M,DocumentBuilder as k,SwaggerModule as z}from"@nestjs/swagger";import{__decorate as B,__param as V,__metadata as J}from"tslib";import{ModuleRef as Q}from"@nestjs/core";import{Logging as Z,toKebabCase as X,LoggedClass as K}from"@decaf-ts/logging";import{apply as W}from"@decaf-ts/reflection";import{OperationKeys as Y,InternalError as tt,DBKeys as et}from"@decaf-ts/db-decorators";import{readFileSync as st}from"fs";import*as ot from"path";t.for(o.INJECTABLE).extend({decorator:(t,e)=>(e=e||("object"==typeof t?Object.assign(t,r):r),i({scope:e.singleton?a.DEFAULT:a.REQUEST,durable:!e.singleton||void 0}))}).apply(),t.for(o.INJECT).extend({decorator:(t,e)=>(e,s,o)=>n(t||e)(e,s,o)}).apply(),t.for(A.REQUIRED).extend(N({required:!0})).apply(),t.for(A.MAX).extend({decorator:t=>N({maximum:t})}).apply(),t.for(A.MIN).extend({decorator:t=>N({minimum:t})}).apply(),t.for(A.MAX_LENGTH).extend({decorator:t=>N({maxLength:t})}).apply(),t.for(A.MIN_LENGTH).extend({decorator:t=>N({minLength:t})}).apply(),t.for(A.LIST).extend({decorator:t=>{const e=Array.isArray(t)?t[0]:t;return N({type:[e]})}}).apply(),t.for(A.PATTERN).extend({decorator:t=>N({pattern:"string"==typeof t?t:t.source})}).apply(),t.for(I.COLUMN).extend({decorator:t=>N({name:t})}).apply(),t.for(e.DESCRIPTION).extend({decorator:t=>N({description:t})}).apply();const rt="DecafModuleOptions",it="DecafAdapter";var at;let nt=class{static{at=this}static{this._adapterInstance=null}static get log(){return this._logger||(this._logger=Z.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:rt,useValue:t},s={useFactory:async t=>at.createAdapter(t),provide:it,durable:!0,scope:a.DEFAULT,inject:[rt]};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:o,args:r}=s.get(t,Y.REFLECT+Y.BLOCK)||{};return!!o&&(o(...r,e)??!1)}function pt(t,e,s){const o={GET:[Y.READ,d],POST:[Y.CREATE,l],PUT:[Y.UPDATE,h],PATCH:[Y.UPDATE,u],DELETE:[Y.DELETE,g]},[r,i]=o[e];return ct(t,r)?W(C()):W(i(s))}function dt(t=[]){const e=t.map(t=>F({name:t.name,description:t.description??"Path parameter: "+t.name,required:t.required??!0,type:t.type??String}));return m(...e)}nt=at=B([c(),p({}),V(0,n(rt)),J("design:paramtypes",[Object,Q])],nt);const lt=f((t,e)=>{const s=e.switchToHttp().getRequest(),o=s?.params??{},r=t??Object.keys(o),i=r.map(t=>o[t]);return{original:o,ordered:i,order:r}});function ht(t=[]){const e=t.map(t=>t.name);return lt(e)}let ut=class{for(t){if(!(t="string"==typeof t?O.get(t):t))throw new tt("Failed to find repository for "+t);return S.forModel(t)}};ut=B([i()],ut);class gt{static{this.log=Z.for(gt.name)}static create(t){const e=gt.log.for(gt.create),s=O.tableName(t),o=X(s),r=t.name,{description:i,apiProperties:a,path:n}=gt.getRouteParametersFromModel(t);e.debug("Creating controller for model: "+r);let c=class extends K{constructor(s){super(),this.repoFactory=s,e.info(`Registering dynamic controller for model: ${r} route: /${o}`);try{this.repo=this.repoFactory.for(t.name),this.pk=O.pk(t)}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 "+r);try{s=await this.repo.create(t)}catch(t){throw e.error("Failed to create new "+r,t),t}return e.info(`created new ${r} with id ${s[this.pk]}`),s}async read(t){const{id:e}=t,s=this.log.for(this.read);let o;try{s.debug(`reading ${r} with ${this.pk} ${e}`),o=await this.repo.read(e)}catch(t){throw s.error(`Failed to read ${r} with id ${e}`,t),t}return s.info(`read ${r} with id ${o[this.pk]}`),o}async query(t){const e=this.log.for(this.read);let s;try{e.debug(`Querying ${r} using method "${t}"`),s=await this.repo[t]()}catch(s){throw e.error(`Failed to query ${r} using method "${t}"`,s),s}return e.info(`Successfully queried ${r} using method "${t}"`),s}async update(t,e){const s=this.log.for(this.update);let o;try{s.info(`updating ${r} with ${this.pk} ${e[this.pk]}`),o=await this.repo.create(e)}catch(t){throw s.error(t),t}return o}async delete(t){const e=this.log.for(this.delete);let s;try{e.debug(`deleting ${r} with ${this.pk} ${t}`),s=await this.repo.read("id")}catch(t){throw e.error(`Failed to delete ${r} with id id`,t),t}return e.info(`deleted ${r} with id ${s[this.pk]}`),s}};return B([pt(t,"POST"),j({summary:`Create a new ${r}.`}),D({description:"Payload for "+r,schema:{$ref:L(t)}}),U({description:r+" created successfully."}),_({description:"Payload validation failed."}),x({description:"Repository rejected the provided payload."}),V(0,y()),J("design:type",Function),J("design:paramtypes",[Object]),J("design:returntype",Promise)],c.prototype,"create",null),B([pt(t,"GET",n),dt(a),j({summary:`Retrieve a ${r} record by id.`}),q({description:r+" retrieved successfully."}),H({description:`No ${r} record matches the provided identifier.`}),V(0,w()),J("design:type",Function),J("design:paramtypes",[Object]),J("design:returntype",Promise)],c.prototype,"read",null),B([pt(t,"GET","query/:method"),j({summary:`Retrieve ${r} records by query.`}),F({name:"method",description:"Query method to be called"}),q({description:r+" retrieved successfully."}),H({description:`No ${r} records matches the query.`}),V(0,w("method")),J("design:type",Function),J("design:paramtypes",[String]),J("design:returntype",Promise)],c.prototype,"query",null),B([pt(t,"PUT",n),dt(a),j({summary:`Replace an existing ${r} record with a new payload.`}),D({description:"Payload for replace a existing record of "+r,schema:{$ref:L(t)}}),q({description:t+" record replaced successfully."}),H({description:`No ${r} record matches the provided identifier.`}),_({description:"Payload validation failed."}),V(0,ht(a)),V(1,y()),J("design:type",Function),J("design:paramtypes",[Object,O]),J("design:returntype",Promise)],c.prototype,"update",null),B([pt(t,"DELETE",n),dt(a),j({summary:`Delete a ${r} record by id.`}),q({description:r+" record deleted successfully."}),H({description:`No ${r} record matches the provided identifier.`}),V(0,ht(a)),J("design:type",Function),J("design:paramtypes",[Object]),J("design:returntype",Promise)],c.prototype,"delete",null),c=B([b(o),G(r),M(t),J("design:paramtypes",[ut])],c),c}static getRouteParametersFromModel(t){const e=new t({}),o=O.pk(t),r=et.COMPOSED,i=Reflect.getMetadata(r,e,o)?.args??[],a=Array.isArray(i)&&i.length>0?[...i]:[o],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=Z.for(mt.name)}static forRoot(t){const e=this.log.for(this.forRoot);e.info("Generating controllers for flavour...");const s=$.models(t).map(gt.create);return e.info(`Generated ${s.length} controllers`),{module:mt,controllers:s,providers:[ut]}}};var yt;ft=mt=B([p({})],ft);let wt=yt=class{static async forRootAsync(t){const{autoControllers:e}=t,s=(await nt.createAdapter(t)).flavour,o=[nt.forRoot(t)];return e&&o.push(ft.forRoot(s)),{module:yt,imports:o}}};function bt(t){const e=O.get(t);if(!e)throw new tt("Failed to find repository for "+t);return S.forModel(e)}wt=yt=B([p({})],wt);class Et extends v{constructor(t){super(t,Et.name)}}class Rt{constructor(t,e){const s=e?.status??E.INTERNAL_SERVER_ERROR,o=e?.message??"Internal Server Error",r=(e?.error??E[s]??"HTTP_EXCEPTION").toString().toUpperCase();Object.assign(this,{status:s,message:o,error:r,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(),o=s.getRequest(),r=s.getResponse(),i=new Rt(o,{error:"UNAUTHORIZED",status:E.UNAUTHORIZED,message:t.message});r.status(E.UNAUTHORIZED).json(i)}};Pt=B([R(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(),o=s.getResponse(),r=s.getRequest(),i=new Rt(r,{status:E.CONFLICT,message:t.message,error:"CONFLICT"});o.status(i.status).json(i)}};Ot=B([R(At)],Ot);let It=class{catch(t,e){const s=e.switchToHttp(),o=s.getRequest(),r=s.getResponse();let i,a=E.INTERNAL_SERVER_ERROR,n="Internal Server Error";if(t instanceof T){const e=t.getResponse();a=t.getStatus(),n=(e?.message||t.message)??n,i=e?.error??t.name}else t instanceof Error&&(n=t.message,i=t.name);const c=new Rt(o,{status:a,message:n,error:i});r.status(c.status).json(c)}};It=B([R()],It);let St=class{catch(t,e){const s=e.switchToHttp(),o=s.getResponse(),r=s.getRequest(),i=t.getStatus(),a=new Rt(r,{status:i,message:t.message,error:t.name});o.status(a.status).json(a)}};St=B([R(T)],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(),o=s.getResponse(),r=s.getRequest(),i=new Rt(r,{status:E.NOT_FOUND,message:t.message,error:"NOT_FOUND"});o.status(i.status).json(i)}};vt=B([R($t)],vt);class Nt extends Error{constructor(t="Validation failed"){super(t),this.name="ValidationError",this.status=422,this.code="VALIDATION_ERROR",Object.setPrototypeOf(this,Nt.prototype)}}let Ct=class{catch(t,e){const s=e.switchToHttp(),o=s.getResponse(),r=s.getRequest(),i=new Rt(r,{status:E.UNPROCESSABLE_ENTITY,message:t.message,error:"VALIDATION_ERROR"});o.status(i.status).json(i)}};Ct=B([R(Nt)],Ct);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 jt{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=ot.join(this.options.assetsPath||"",t),o=st(s,{encoding:"base64"});return e?"data:image/png;base64,"+o:o}}class Dt{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 k).setTitle(this.options.title).setDescription(t).setVersion(this.options.version||"0.0.1").addBearerAuth(this.options.auth||Ft.auth).build();return z.createDocument(this.app,e,{extraModels:this.options.extraModels||[]})}setupSwagger(){const t=this.createDocument(),e=new jt({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});z.setup(this.options.path||Ft.path,this.app,t,{...e.getCustomOptions()})}}class Lt{static get logger(){return this._logger||(this._logger=new P("NestBootstrap")),this._logger}static initialize(t){return this.app=t,this}static enableLogger(t){return this._logger=t||new P("NestBootstrap"),this.app.useLogger(this._logger),this}static enableCors(t=[],e=["GET","POST","PUT","DELETE"]){const s="*"===t?"*":t.map(t=>t.trim().toLowerCase()),o={origin:(t,e)=>t?"*"===s||Array.isArray(s)&&s.includes(t.toLowerCase())?e(null,!0):void e(new Et(`Origin ${t} not allowed`)):e(null,!0),credentials:!0,methods:e.join(",")};return this.app.enableCors(o),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 Dt(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 Ct,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,Et as CorsError,it as DECAF_ADAPTER_ID,rt 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,Dt as SwaggerBuilder,Ut as VERSION,Nt as ValidationError,Ct as ValidationExceptionFilter,ct as isOperationBlocked,bt as repoForModel};
|
|
2
2
|
//# sourceMappingURL=for-nest.js.map
|
package/dist/for-nest.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"for-nest.js","sources":["../src/decoration.ts","../src/constants.ts","../src/core-module.ts","../src/decaf-model/decorators/ApiOperationFromModel.ts","../src/decaf-model/decorators/ApiParamsFromModel.ts","../src/decaf-model/decorators/DecafParams.ts","../src/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","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","composedKeyMetaKey","DBKeys","COMPOSED","composedKeys","Reflect","getMetadata","keysToReturn","length","uniqueKeys","from","Set","key","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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"}
|
|
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","Object","assign","DefaultInjectablesConfig","Injectable","scope","singleton","Scope","DEFAULT","REQUEST","durable","undefined","apply","INJECT","target","propertyKey","descriptor","Inject","ValidationKeys","REQUIRED","ApiProperty","required","MAX","max","maximum","MIN","min","minimum","MAX_LENGTH","maxLength","MIN_LENGTH","minLength","LIST","clazz","c","Array","isArray","type","PATTERN","pat","pattern","source","PersistenceKeys","COLUMN","name","DecorationKeys","DESCRIPTION","description","DECAF_MODULE_OPTIONS","DECAF_ADAPTER_ID","DecafCoreModule","this","_adapterInstance","log","_logger","Logging","DecafCoreModule_1","constructor","options","moduleRef","createAdapter","info","adapter","conf","alias","getAdapterInstance","forRoot","typeOrmModuleOptions","provide","useValue","useFactory","async","opts","inject","module","providers","exports","onApplicationShutdown","get","shutdown","e","error","isOperationBlocked","ModelConstructor","op","handler","args","Metadata","OperationKeys","REFLECT","BLOCK","ApiOperationFromModel","verb","path","httpToCrud","GET","READ","Get","POST","CREATE","Post","PUT","UPDATE","Put","PATCH","Patch","DELETE","Delete","crudOp","HttpMethodDecorator","ApiExcludeEndpoint","ApiParamsFromModel","props","decorators","map","p","ApiParamDec","String","applyDecorators","__decorate","Global","Module","__param","ModuleRef","OrderedParams","createParamDecorator","order","ctx","req","switchToHttp","getRequest","original","params","orderList","keys","ordered","k","DecafParams","RepoFactory","model","Model","InternalError","Repository","forModel","FromModelController","create","ModelClazz","tableName","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","composedKeyMetaKey","DBKeys","COMPOSED","composedKeys","Reflect","getMetadata","keysToReturn","length","uniqueKeys","from","Set","key","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","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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"}
|
package/lib/decoration.cjs
CHANGED
|
@@ -9,6 +9,11 @@ const swagger_1 = require("@nestjs/swagger");
|
|
|
9
9
|
decoration_1.Decoration.for(injectable_decorators_1.InjectablesKeys.INJECTABLE)
|
|
10
10
|
.extend({
|
|
11
11
|
decorator: function nestInjectable(category, cfg) {
|
|
12
|
+
cfg =
|
|
13
|
+
cfg ||
|
|
14
|
+
(typeof category === "object"
|
|
15
|
+
? Object.assign(category, injectable_decorators_1.DefaultInjectablesConfig)
|
|
16
|
+
: injectable_decorators_1.DefaultInjectablesConfig);
|
|
12
17
|
return (0, common_1.Injectable)({
|
|
13
18
|
scope: cfg.singleton ? common_1.Scope.DEFAULT : common_1.Scope.REQUEST,
|
|
14
19
|
durable: cfg.singleton ? undefined : true,
|
package/lib/decoration.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"decoration.js","sourceRoot":"","sources":["../src/decoration.ts"],"names":[],"mappings":";;AAAA,
|
|
1
|
+
{"version":3,"file":"decoration.js","sourceRoot":"","sources":["../src/decoration.ts"],"names":[],"mappings":"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"}
|
package/lib/esm/decoration.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { InjectablesKeys, } from "@decaf-ts/injectable-decorators";
|
|
1
|
+
import { DefaultInjectablesConfig, InjectablesKeys, } from "@decaf-ts/injectable-decorators";
|
|
2
2
|
import { Inject, Injectable, Scope } from "@nestjs/common";
|
|
3
3
|
import { Decoration, DecorationKeys } from "@decaf-ts/decoration";
|
|
4
4
|
import { ValidationKeys } from "@decaf-ts/decorator-validation";
|
|
@@ -7,6 +7,11 @@ import { ApiProperty } from "@nestjs/swagger";
|
|
|
7
7
|
Decoration.for(InjectablesKeys.INJECTABLE)
|
|
8
8
|
.extend({
|
|
9
9
|
decorator: function nestInjectable(category, cfg) {
|
|
10
|
+
cfg =
|
|
11
|
+
cfg ||
|
|
12
|
+
(typeof category === "object"
|
|
13
|
+
? Object.assign(category, DefaultInjectablesConfig)
|
|
14
|
+
: DefaultInjectablesConfig);
|
|
10
15
|
return Injectable({
|
|
11
16
|
scope: cfg.singleton ? Scope.DEFAULT : Scope.REQUEST,
|
|
12
17
|
durable: cfg.singleton ? undefined : true,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"decoration.js","sourceRoot":"","sources":["../../src/decoration.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"decoration.js","sourceRoot":"","sources":["../../src/decoration.ts"],"names":[],"mappings":"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"}
|
package/lib/esm/index.d.ts
CHANGED
package/lib/esm/index.js
CHANGED
|
@@ -35,7 +35,7 @@ export * from "./decaf-model/index.js";
|
|
|
35
35
|
* @constant
|
|
36
36
|
* @type {string}
|
|
37
37
|
*/
|
|
38
|
-
export const VERSION = "0.1.
|
|
38
|
+
export const VERSION = "0.1.3";
|
|
39
39
|
export const PACKAGE_NAME = "@decaf-ts/for-nest";
|
|
40
40
|
Metadata.registerLibrary(PACKAGE_NAME, VERSION);
|
|
41
41
|
//# sourceMappingURL=index.js.map
|
package/lib/index.cjs
CHANGED
|
@@ -52,7 +52,7 @@ __exportStar(require("./decaf-model/index.cjs"), exports);
|
|
|
52
52
|
* @constant
|
|
53
53
|
* @type {string}
|
|
54
54
|
*/
|
|
55
|
-
exports.VERSION = "0.1.
|
|
55
|
+
exports.VERSION = "0.1.3";
|
|
56
56
|
exports.PACKAGE_NAME = "@decaf-ts/for-nest";
|
|
57
57
|
decoration_1.Metadata.registerLibrary(exports.PACKAGE_NAME, exports.VERSION);
|
|
58
58
|
//# sourceMappingURL=index.js.map
|
package/lib/index.d.ts
CHANGED