@decaf-ts/for-nest 0.1.9 → 0.1.10

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/dist/for-nest.cjs CHANGED
@@ -1,2 +1,2 @@
1
- var e,t;e=this,t=function(e,t,r,a,o,i,s,n,p,c,d,l,u,h){"use strict";function m(e){if(e&&e.__esModule)return e;var t=Object.create(null);return e&&Object.keys(e).forEach(r=>{if("default"!==r){var a=Object.getOwnPropertyDescriptor(e,r);Object.defineProperty(t,r,a.get?a:{enumerable:!0,get:()=>e[r]})}}),t.default=e,Object.freeze(t)}var y=m(h);t.Decoration.for(r.InjectablesKeys.INJECTABLE).extend({decorator:(e,t)=>(t=t||("object"==typeof e?Object.assign(e,r.DefaultInjectablesConfig):r.DefaultInjectablesConfig),a.Injectable({scope:t.singleton?a.Scope.DEFAULT:a.Scope.REQUEST,durable:!t.singleton||void 0}))}).apply(),t.Decoration.for(r.InjectablesKeys.INJECT).extend({decorator:(e,t)=>(t,r,o)=>a.Inject(e||t)(t,r,o)}).apply(),t.Decoration.for(o.ValidationKeys.REQUIRED).extend(s.ApiProperty({required:!0})).apply(),t.Decoration.for(o.ValidationKeys.MAX).extend({decorator:e=>s.ApiProperty({maximum:e})}).apply(),t.Decoration.for(o.ValidationKeys.MIN).extend({decorator:e=>s.ApiProperty({minimum:e})}).apply(),t.Decoration.for(o.ValidationKeys.MAX_LENGTH).extend({decorator:e=>s.ApiProperty({maxLength:e})}).apply(),t.Decoration.for(o.ValidationKeys.MIN_LENGTH).extend({decorator:e=>s.ApiProperty({minLength:e})}).apply(),t.Decoration.for(o.ValidationKeys.LIST).extend({decorator:e=>{const t=Array.isArray(e)?e[0]:e;return s.ApiProperty({type:[t]})}}).apply(),t.Decoration.for(o.ValidationKeys.PATTERN).extend({decorator:e=>s.ApiProperty({pattern:"string"==typeof e?e:e.source})}).apply(),t.Decoration.for(i.PersistenceKeys.COLUMN).extend({decorator:e=>s.ApiProperty({name:e})}).apply(),t.Decoration.for(t.DecorationKeys.DESCRIPTION).extend({decorator:e=>s.ApiProperty({description:e})}).apply();const g="DecafModuleOptions",f="DecafAdapter",_=Symbol("DecafHandlers"),A=Symbol("DecafAdapterForOptions"),P=Symbol("AUTH_HANDLER"),b="auth:meta",E="AuthRole";var O;let w=class{static{O=this}static{this._adapterInstance=null}static get log(){return this._logger||(this._logger=c.Logging.for(O)),this._logger}constructor(e,t){this.options=e,this.moduleRef=t}static async createAdapter(e){if(!this._adapterInstance){const t=this.log.for(this.createAdapter);t.info("Creating adapter instance..."),this._adapterInstance=new e.adapter(e.conf,e.alias),t.info("Adapter instance created successfully!")}return this._adapterInstance}static getAdapterInstance(){return this._adapterInstance}static forRoot(e){const t={provide:g,useValue:e},r={useFactory:async e=>O.createAdapter(e),provide:f,durable:!0,scope:a.Scope.DEFAULT,inject:[g]};return{module:O,providers:[r,t],exports:[r]}}async onApplicationShutdown(){const e=O.log.for(this.onApplicationShutdown),t=this.moduleRef.get(f);try{t&&(e.info("Shutting down"),await t.shutdown(),O._adapterInstance=null)}catch(t){e.error("Failed to shutdown application",t)}}};function R(e,r){const{handler:a,args:o}=t.Metadata.get(e,l.OperationKeys.REFLECT+l.OperationKeys.BLOCK)||{};return!!a&&(a(...o,r)??!1)}function D(e,t,r){const o={GET:[l.OperationKeys.READ,a.Get],POST:[l.OperationKeys.CREATE,a.Post],PUT:[l.OperationKeys.UPDATE,a.Put],PATCH:[l.OperationKeys.UPDATE,a.Patch],DELETE:[l.OperationKeys.DELETE,a.Delete]},[i,n]=o[t];return R(e,i)?d.apply(s.ApiExcludeEndpoint()):d.apply(n(r))}function v(e=[]){const t=e.map(e=>s.ApiParam({name:e.name,description:e.description??"Path parameter: "+e.name,required:e.required??!0,type:e.type??String}));return a.applyDecorators(...t)}w=O=n.__decorate([a.Global(),a.Module({}),n.__param(0,a.Inject(g)),n.__metadata("design:paramtypes",[Object,p.ModuleRef])],w);const T=a.createParamDecorator((e,t)=>{const r=t.switchToHttp().getRequest(),a=r?.params??{},o=e??Object.keys(a),i=o.map(e=>a[e]);return{raw:a,valuesInOrder:i,keysInOrder:o}});function S(e=[]){const t=e.map(e=>e.name);return T(t)}function $(t){const r="string"==typeof t?t:t.name;return a.applyDecorators(a.SetMetadata(b,r),a.UseInterceptors(e.AuthInterceptor))}e.AuthInterceptor=class{constructor(e,t){this.reflector=e,this.authHandler=t}async intercept(e,t){const r=this.reflector.get(b,e.getHandler())??this.reflector.get(b,e.getClass());return r&&this.authHandler&&await this.authHandler.authorize(e,r),t.handle()}},e.AuthInterceptor=n.__decorate([a.Injectable(),n.__param(1,a.Optional()),n.__param(1,a.Inject(P)),n.__metadata("design:paramtypes",[p.Reflector,Object])],e.AuthInterceptor),e.DecafRequestContext=class{constructor(){this.cache=new Map}set(e,t){this.cache.set(e,t)}get(e){return this.cache.get(e)}},e.DecafRequestContext=n.__decorate([a.Injectable({scope:a.Scope.REQUEST})],e.DecafRequestContext),e.DecafHandlerExecutor=class{constructor(e,t){this.handlers=e,this.context=t}async exec(e,t){for(const r of this.handlers)await r.handle(this.context,e,t)}},e.DecafHandlerExecutor=n.__decorate([a.Injectable({scope:a.Scope.REQUEST}),n.__param(0,a.Inject(_)),n.__metadata("design:paramtypes",[Array,e.DecafRequestContext])],e.DecafHandlerExecutor);const I=e=>({name:e,description:e+" parameter for the query",required:!0,type:String});function F(e,t){const r=(e=>e.split("/").filter(e=>e.startsWith(":")).map(e=>e.slice(1)))(t).map(I);return{method:[a.Get(t),...r.map(s.ApiParam),s.ApiOperation({summary:`Retrieve records using custom query "${e}".`}),s.ApiOkResponse({description:"Results successfully retrieved."}),s.ApiNoContentResponse({description:"No content returned by the query."})],params:[S(r),a.Query()]}}function C(e,t,r,a){const o=e?.prototype??e;a.method.forEach(e=>e(o,t,r)),a.params?.forEach((e,r)=>e(o,t,r))}function k(e){return async function(t,r){const a=this.log.for(e);try{a.debug(`Invoking persistence method "${e}" given parameters: ${JSON.stringify(t.valuesInOrder)}`);const{direction:o,limit:i,offset:s}=r;return await this.persistence[e](...t.valuesInOrder,o,i,s)}catch(t){throw a.error(`Custom query "${e}" failed`,t),t}}}function j(e,t,r){return Object.defineProperty(e.prototype||e,t,{value:r,writable:!1}),Object.getOwnPropertyDescriptor(e.prototype||e,t)}class M extends c.LoggedClass{constructor(e){super(),this.clientContext=e}get persistence(){throw Error("Not implemented")}}class x{static{this.log=c.Logging.for(x.name)}static getPersistence(e){try{return i.ModelService.forModel(e)}catch(t){return i.Repository.forModel(e)}}static createQueryRoutesFromRepository(e,r=i.PersistenceKeys.STATEMENT){const a=e.class,o=t.Metadata.get(e.constructor,t.Metadata.key(i.PersistenceKeys.QUERY))??{};class s extends M{constructor(e){super(e),this._persistence=x.getPersistence(a)}get persistence(){const e=this.clientContext.get(A);return e?this._persistence.for(e):this._persistence}}for(const[e,t]of Object.entries(o)){const a=[r,e,...(t.fields??[]).map(e=>":"+e)].filter(e=>e&&e.trim()).join("/"),o=j(s,e,k(e));o&&C(s,e,o,F(e,a))}return s}static create(t){const r=x.log.for(x.create),p=o.Model.tableName(t),d=c.toKebabCase(p),u=t.name,h=x.getPersistence(t),{description:m,getPK:y,apiProperties:g,path:f}=x.getRouteParametersFromModel(t);r.debug("Creating controller for model: "+u);const _=x.createQueryRoutesFromRepository(h);let A=class extends _{constructor(e){super(e),this.pk=o.Model.pk(t),r.info(`Registering dynamic controller for model: ${u} route: /${d}`)}async listBy(e,t){return this.persistence.listBy(e,t.direction)}async paginateBy(e,t,r){return this.persistence.paginateBy(e,r.direction,r.limit)}async findOneBy(e,t){return this.persistence.findOneBy(e,t)}async findBy(e,t,r){return this.persistence.findBy(e,t)}async statement(e,t,r){const{direction:a,offset:o,limit:s}=r;switch(t=t.map(e=>("string"==typeof e?parseInt(e):e)||e),e){case i.PreparedStatementKeys.FIND_BY:break;case i.PreparedStatementKeys.LIST_BY:t.push(a);break;case i.PreparedStatementKeys.PAGE_BY:t.push(a,s);case i.PreparedStatementKeys.FIND_ONE_BY:}return this.persistence.statement(e,...t)}async createAll(e){const r=this.log.for(this.createAll);let a;r.verbose("creating new "+u);try{a=await this.persistence.createAll(e.map(e=>new t(e)))}catch(e){throw r.error("Failed to create new "+u,e),e}return r.info(`created new ${u} with id ${a[this.pk]}`),a}async create(e){const t=this.log.for(this.create);let r;t.verbose("creating new "+u);try{r=await this.persistence.create(e)}catch(e){throw t.error("Failed to create new "+u,e),e}return t.info(`created new ${u} with id ${r[this.pk]}`),r}async readAll(e){const t=this.log.for(this.readAll);let r;try{t.debug(`reading ${e.length} ${u}: ${e}`),r=await this.persistence.readAll(e)}catch(r){throw t.error(`Failed to ${u} with id ${e}`,r),r}return t.info(`read ${r.length} ${u}`),r}async read(e){const t=y(...e.valuesInOrder);if(void 0===t)throw new l.ValidationError(`No ${this.pk} provided`);const r=this.log.for(this.read);let a;try{r.debug(`reading ${u} with ${this.pk} ${t}`),a=await this.persistence.read(t)}catch(e){throw r.error(`Failed to read ${u} with id ${t}`,e),e}return r.info(`read ${u} with id ${a[this.pk]}`),a}async updateAll(e){const t=this.log.for(this.updateAll);let r;try{t.info(`updating ${e.length} ${u}`),r=await this.persistence.updateAll(e)}catch(e){throw t.error(e),e}return r}async update(e,r){const a=this.log.for(this.update),o=y(...e.valuesInOrder);if(void 0===o)throw new l.ValidationError(`No ${this.pk} provided`);let i;try{a.info(`updating ${u} with ${this.pk} ${o}`),i=await this.persistence.update(new t({...r,[this.pk]:o}))}catch(e){throw a.error(e),e}return i}async deleteAll(e){const t=this.log.for(this.deleteAll);let r;try{t.debug(`deleting ${e.length} ${u}: ${e}`),r=await this.persistence.deleteAll(e)}catch(r){throw t.error(`Failed to delete ${u} with id ${e}`,r),r}return t.info(`deleted ${r.length} ${u}`),r}async delete(e){const t=this.log.for(this.delete),r=y(...e.valuesInOrder);if(void 0===r)throw new l.ValidationError(`No ${this.pk} provided`);let a;try{t.debug(`deleting ${u} with ${this.pk} ${r}`),a=await this.persistence.delete(r)}catch(e){throw t.error(`Failed to delete ${u} with id ${r}`,e),e}return t.info(`deleted ${u} with id ${r}`),a}};return n.__decorate([D(t,"GET","listBy/:key"),s.ApiOperation({summary:`Retrieve ${u} records by query.`}),s.ApiParam({name:"key",description:"the model key to sort by"}),s.ApiQuery({name:"direction",required:!0,enum:i.OrderDirection}),s.ApiOkResponse({description:u+" listed successfully."}),n.__param(1,a.Query()),n.__metadata("design:type",Function),n.__metadata("design:paramtypes",[String,Object]),n.__metadata("design:returntype",Promise)],A.prototype,"listBy",null),n.__decorate([D(t,"GET","paginateBy/:key/:page"),s.ApiOperation({summary:`Retrieve ${u} records by query.`}),s.ApiParam({name:"key",description:"the model key to sort by"}),s.ApiParam({name:"page",description:"the page to retrieve or the bookmark"}),s.ApiQuery({name:"direction",required:!0,enum:i.OrderDirection,description:"the sort order"}),s.ApiQuery({name:"limit",required:!0,description:"the page size"}),s.ApiOkResponse({description:u+" listed paginated."}),n.__param(0,a.Param("key")),n.__param(1,a.Param("page")),n.__param(2,a.Query()),n.__metadata("design:type",Function),n.__metadata("design:paramtypes",[String,Object,Object]),n.__metadata("design:returntype",Promise)],A.prototype,"paginateBy",null),n.__decorate([D(t,"GET","findOneBy/:key"),s.ApiOperation({summary:`Retrieve ${u} records by query.`}),s.ApiParam({name:"key",description:"the model key to sort by"}),s.ApiOkResponse({description:u+" listed found."}),s.ApiNotFoundResponse({description:`No ${u} record matches the provided identifier.`}),n.__param(0,a.Param("key")),n.__param(1,a.Param("value")),n.__metadata("design:type",Function),n.__metadata("design:paramtypes",[String,Object]),n.__metadata("design:returntype",Promise)],A.prototype,"findOneBy",null),n.__decorate([D(t,"GET","findBy/:key/:value"),s.ApiOperation({summary:`Retrieve ${u} records by query.`}),s.ApiParam({name:"key",description:"the model key to compare"}),s.ApiParam({name:"value",description:"the value to match"}),s.ApiQuery({name:"direction",required:!0,enum:i.OrderDirection,description:"the sort order when applicable"}),s.ApiOkResponse({description:u+" listed found."}),s.ApiNotFoundResponse({description:`No ${u} record matches the provided identifier.`}),n.__param(0,a.Param("key")),n.__param(1,a.Param("value")),n.__param(2,a.Query()),n.__metadata("design:type",Function),n.__metadata("design:paramtypes",[String,Object,Object]),n.__metadata("design:returntype",Promise)],A.prototype,"findBy",null),n.__decorate([D(t,"GET","statement/:method/*args"),s.ApiOperation({summary:`Executes a prepared statement on ${u}.`}),s.ApiParam({name:"method",description:"the prepared statement to execute"}),s.ApiParam({name:"args",description:"concatenated list of arguments the prepared statement can accept"}),s.ApiQuery({name:"direction",required:!0,enum:i.OrderDirection,description:"the sort order when applicable"}),s.ApiQuery({name:"limit",required:!0,description:"limit or page size when applicable"}),s.ApiQuery({name:"offset",required:!0,description:"offset or bookmark when applicable"}),s.ApiOkResponse({description:u+" listed found."}),s.ApiNotFoundResponse({description:`No ${u} record matches the provided identifier.`}),n.__param(0,a.Param("method")),n.__param(1,a.Param("args")),n.__param(2,a.Query()),n.__metadata("design:type",Function),n.__metadata("design:paramtypes",[String,Array,Object]),n.__metadata("design:returntype",Promise)],A.prototype,"statement",null),n.__decorate([D(t,"POST","bulk"),s.ApiOperation({summary:`Create a new ${u}.`}),s.ApiBody({description:"Payload for "+u,schema:{type:"array",items:{$ref:s.getSchemaPath(t)}}}),s.ApiCreatedResponse({description:`x ${u} created successfully.`}),s.ApiBadRequestResponse({description:"Payload validation failed."}),s.ApiUnprocessableEntityResponse({description:"Repository rejected the provided payload."}),n.__param(0,a.Body()),n.__metadata("design:type",Function),n.__metadata("design:paramtypes",[Array]),n.__metadata("design:returntype",Promise)],A.prototype,"createAll",null),n.__decorate([D(t,"POST"),s.ApiOperation({summary:`Create a new ${u}.`}),s.ApiBody({description:"Payload for "+u,schema:{$ref:s.getSchemaPath(t)}}),s.ApiCreatedResponse({description:u+" created successfully."}),s.ApiBadRequestResponse({description:"Payload validation failed."}),s.ApiUnprocessableEntityResponse({description:"Repository rejected the provided payload."}),n.__param(0,a.Body()),n.__metadata("design:type",Function),n.__metadata("design:paramtypes",[Object]),n.__metadata("design:returntype",Promise)],A.prototype,"create",null),n.__decorate([D(t,"GET","bulk/:ids"),s.ApiOperation({summary:`Retrieve a ${u} record by id.`}),s.ApiQuery({name:"ids",required:!0,type:"array"}),s.ApiOkResponse({description:u+" retrieved successfully."}),s.ApiNotFoundResponse({description:`No ${u} record matches the provided identifier.`}),n.__param(0,a.Query("ids")),n.__metadata("design:type",Function),n.__metadata("design:paramtypes",[Array]),n.__metadata("design:returntype",Promise)],A.prototype,"readAll",null),n.__decorate([D(t,"GET",f),v(g),s.ApiOperation({summary:`Retrieve a ${u} record by id.`}),s.ApiOkResponse({description:u+" retrieved successfully."}),s.ApiNotFoundResponse({description:`No ${u} record matches the provided identifier.`}),n.__param(0,S(g)),n.__metadata("design:type",Function),n.__metadata("design:paramtypes",[Object]),n.__metadata("design:returntype",Promise)],A.prototype,"read",null),n.__decorate([D(t,"PUT",f+"/bulk"),v(g),s.ApiOperation({summary:`Replace an existing ${u} record with a new payload.`}),s.ApiBody({description:"Payload for replace a existing record of "+u,schema:{type:"array",items:{$ref:s.getSchemaPath(t)}}}),s.ApiOkResponse({description:t+" record replaced successfully."}),s.ApiNotFoundResponse({description:`No ${u} record matches the provided identifier.`}),s.ApiBadRequestResponse({description:"Payload validation failed."}),n.__param(0,a.Body()),n.__metadata("design:type",Function),n.__metadata("design:paramtypes",[Array]),n.__metadata("design:returntype",Promise)],A.prototype,"updateAll",null),n.__decorate([D(t,"PUT",f),v(g),s.ApiOperation({summary:`Replace an existing ${u} record with a new payload.`}),s.ApiBody({description:"Payload for replace a existing record of "+u,schema:{$ref:s.getSchemaPath(t)}}),s.ApiOkResponse({description:t+" record replaced successfully."}),s.ApiNotFoundResponse({description:`No ${u} record matches the provided identifier.`}),s.ApiBadRequestResponse({description:"Payload validation failed."}),n.__param(0,S(g)),n.__param(1,a.Body()),n.__metadata("design:type",Function),n.__metadata("design:paramtypes",[Object,o.Model]),n.__metadata("design:returntype",Promise)],A.prototype,"update",null),n.__decorate([D(t,"DELETE","bulk/:ids"),v(g),s.ApiOperation({summary:`Retrieve a ${u} record by id.`}),s.ApiQuery({name:"ids",required:!0,type:"array"}),s.ApiOkResponse({description:u+" retrieved successfully."}),s.ApiNotFoundResponse({description:`No ${u} record matches the provided identifier.`}),n.__param(0,a.Query("ids")),n.__metadata("design:type",Function),n.__metadata("design:paramtypes",[Array]),n.__metadata("design:returntype",Promise)],A.prototype,"deleteAll",null),n.__decorate([D(t,"DELETE",f),v(g),s.ApiOperation({summary:`Delete a ${u} record by id.`}),s.ApiOkResponse({description:u+" record deleted successfully."}),s.ApiNotFoundResponse({description:`No ${u} record matches the provided identifier.`}),n.__param(0,S(g)),n.__metadata("design:type",Function),n.__metadata("design:paramtypes",[Object]),n.__metadata("design:returntype",Promise)],A.prototype,"delete",null),A=n.__decorate([a.Controller(d),s.ApiTags(u),s.ApiExtraModels(t),$(t),n.__metadata("design:paramtypes",[e.DecafRequestContext])],A),A}static getRouteParametersFromModel(e){const r=o.Model.pk(e),a=t.Metadata.get(e,t.Metadata.key(l.DBKeys.COMPOSED,r)),i=a?.args??[],s=Array.isArray(i)&&i.length>0?Array.from(new Set([...i])):Array.from(new Set([r])),n=t.Metadata.description(e);return{path:":"+s.join("/:"),description:n,apiProperties:s.map(r=>({name:r,description:t.Metadata.description(e,r),required:!0,type:String})),getPK:(...e)=>a?.separator?e.join(a.separator):e.join("")}}}var B,q;e.DecafRequestHandlerInterceptor=class{constructor(e){this.executor=e}async intercept(e,t){const r=e.switchToHttp().getRequest(),a=e.switchToHttp().getResponse();return await this.executor.exec(r,a),t.handle()}},e.DecafRequestHandlerInterceptor=n.__decorate([a.Injectable({scope:a.Scope.REQUEST}),n.__metadata("design:paramtypes",[e.DecafHandlerExecutor])],e.DecafRequestHandlerInterceptor),e.DecafModelModule=class{static{B=this}static{this.log=c.Logging.for(B.name)}static createModelServices(e){return e.map(e=>({provide:e.name+"Service",useFactory:()=>i.ModelService.forModel(e)}))}static forRoot(t,r={}){const a=this.log.for(this.forRoot);a.info("Generating controllers for flavour...");const o=i.Adapter.models(t);let s=[];r.autoServices&&(a.info("Auto-services enabled. Initializing service generation."),s=this.createModelServices(o),a.info(`Auto-services completed. ${s.length} services initialized.`));const n=o.map(x.create);return a.info(`Generated ${n.length} controllers`),{module:B,controllers:n,providers:[{provide:_,useFactory:()=>r.handlers?.map(e=>(a.info("Registered request handler: "+e.name),new e))??[]},e.DecafRequestContext,e.DecafHandlerExecutor,{provide:p.APP_INTERCEPTOR,useClass:e.DecafRequestHandlerInterceptor},...s]}}},e.DecafModelModule=B=n.__decorate([a.Module({})],e.DecafModelModule),e.DecafModule=q=class{static async forRootAsync(t){const{autoControllers:r,autoServices:a,handlers:o}=t,i=(await w.createAdapter(t)).flavour,s=[w.forRoot(t)];return r&&s.push(e.DecafModelModule.forRoot(i,{autoServices:a,handlers:o})),{module:q,imports:s}}},e.DecafModule=q=n.__decorate([a.Module({})],e.DecafModule);class N extends i.ForbiddenError{constructor(e){super(e,N.name)}}e.DecafExceptionFilter=class{catch(e,t){const r=t.switchToHttp(),a=r.getResponse(),o=r.getRequest(),i="production"===c.LoggedEnvironment.env;e instanceof l.BaseError||(e=new l.InternalError(e.message)),a.status(e.code).json({status:e.code,error:i?e.name:e.message,timestamp:(new Date).toISOString(),path:o.url,method:o.method})}},e.DecafExceptionFilter=n.__decorate([a.Catch()],e.DecafExceptionFilter);const L={title:"Swagger | OpenAPI Specification (OAS)",description:"Standardized format for describing RESTful APIs",version:"0.0.1",path:"docs",faviconFilePath:"",topbarIconFilePath:"",auth:{type:"http",scheme:"bearer",bearerFormat:"JWT",name:"Authorization",description:"Enter JWT token",in:"header"},persistAuthorization:!0,topbarBgColor:"#000000"};class K{constructor(e){this.options={...e}}customCSS(){let e="";return this.options.topbarIconPath&&(e+=`.topbar-wrapper { content: url('data:image/png;base64,${this.b64(this.options.topbarIconPath)}'); width: 200px; height: auto; }\n`),e+`\n .topbar-wrapper svg { visibility: hidden; }\n .swagger-ui .topbar { background-color: ${this.options.topbarBgColor||L.topbarBgColor}; }\n `}getCustomOptions(){const e={};return this.options.faviconPath&&(e.customfavIcon=this.b64(this.options.faviconPath,!0)),{customSiteTitle:this.options.title,...e,customCss:this.customCSS(),swaggerOptions:{persistAuthorization:this.options.persistAuthorization},jsonDocumentUrl:this.options.path?this.options.path+"/spec.json":void 0,yamlDocumentUrl:this.options.path?this.options.path+"/spec.yaml":void 0}}b64(e,t=!1){const r=y.join(this.options.assetsPath||"",e),a=u.readFileSync(r,{encoding:"base64"});return t?"data:image/png;base64,"+a:a}}class H{constructor(e,t){this.app=e,this.options=t}createDocument(){const e=this.options.path?this.options.description+""+`<br><br><a href="${this.options.path}/spec.json">OpenAPI JSON Spec</a> | `+`<a href="${this.options.path}/spec.yaml">OpenAPI YAML Spec</a>`:this.options.description,t=(new s.DocumentBuilder).setTitle(this.options.title).setDescription(e).setVersion(this.options.version||"0.0.1").addBearerAuth(this.options.auth||L.auth).build();return s.SwaggerModule.createDocument(this.app,t,{extraModels:this.options.extraModels||[]})}setupSwagger(){const e=this.createDocument(),t=new K({title:this.options.title,path:this.options.path||L.path,persistAuthorization:this.options.persistAuthorization??!0,assetsPath:this.options.assetsPath,faviconPath:this.options.faviconFilePath,topbarIconPath:this.options.topbarIconFilePath,topbarBgColor:this.options.topbarBgColor});s.SwaggerModule.setup(this.options.path||L.path,this.app,e,{...t.getCustomOptions()})}}const U="##VERSION##",G="##PACKAGE##";t.Metadata.registerLibrary(G,U),e.AUTH_HANDLER=P,e.AUTH_META_KEY=b,e.ApiOperationFromModel=D,e.ApiParamsFromModel=v,e.Auth=$,e.AuthRole=E,e.BulkApiOperationFromModel=(e,t,r)=>{const o={GET:[l.BulkCrudOperationKeys.READ_ALL,a.Get],POST:[l.BulkCrudOperationKeys.CREATE_ALL,a.Post],PUT:[l.BulkCrudOperationKeys.UPDATE_ALL,a.Put],PATCH:[l.BulkCrudOperationKeys.UPDATE_ALL,a.Patch],DELETE:[l.BulkCrudOperationKeys.DELETE_ALL,a.Delete]},[i,n]=o[t];return R(e,i)?d.apply(s.ApiExcludeEndpoint()):d.apply(n(r))},e.CorsError=N,e.DECAF_ADAPTER_ID=f,e.DECAF_ADAPTER_OPTIONS=A,e.DECAF_HANDLERS=_,e.DECAF_MODULE_OPTIONS=g,e.DecafParams=S,e.FromModelController=x,e.NestBootstraper=class{static get logger(){return this._logger||(this._logger=new a.Logger("NestBootstrap")),this._logger}static initialize(e){return this.app=e,this}static enableLogger(e){return this._logger=e||new a.Logger("NestBootstrap"),this.app.useLogger(this._logger),this}static enableCors(e=[],t=["GET","POST","PUT","DELETE"]){const r="*"===e?"*":e.map(e=>e.trim().toLowerCase()),a={origin:(e,t)=>e?"*"===r||Array.isArray(r)&&r.includes(e.toLowerCase())?t(null,!0):void t(new N(`Origin ${e} not allowed`)):t(null,!0),credentials:!0,methods:t.join(",")};return this.app.enableCors(a),this}static useHelmet(e){try{const t=require("helmet");this.app.use(t(e)),this.logger.log("Helmet middleware enabled successfully.")}catch(e){this.logger.warn("Helmet not installed. Skipping middleware.")}return this}static setupSwagger(e){return new H(this.app,{title:e.title,description:e.description,version:e.version,path:e.path||"api",persistAuthorization:e.persistAuthorization??!0,assetsPath:e.assetsPath,faviconFilePath:e.faviconPath,topbarIconFilePath:e.topbarIconPath,topbarBgColor:e.topbarBgColor}).setupSwagger(),this}static useGlobalPipes(...e){return e.length>0&&this.app.useGlobalPipes(...e),this}static useGlobalFilters(...t){return this.app.useGlobalFilters(...t.length>0?t:[new e.DecafExceptionFilter]),this}static useGlobalInterceptors(...e){return e.length>0&&this.app.useGlobalInterceptors(...e),this}static async start(e=Number(process.env.PORT)||3e3,t=void 0,r=!0){this.app.listen(e,t).then(async()=>{if(r){const e=await this.app.getUrl();this.logger.log("\ud83d\ude80 Application is running at: "+e)}})}},e.PACKAGE_NAME=G,e.Roles=e=>t.metadata(E,e),e.SwaggerBuilder=H,e.UseDecafFilter=()=>a.UseFilters(new e.DecafExceptionFilter),e.VERSION=U,e.isOperationBlocked=R,e.repoForModel=e=>{const t=o.Model.get(e);if(!t)throw new l.InternalError("Failed to find repository for "+e);return i.Repository.forModel(t)}},"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("@decaf-ts/decoration"),require("@decaf-ts/injectable-decorators"),require("@nestjs/common"),require("@decaf-ts/decorator-validation"),require("@decaf-ts/core"),require("@nestjs/swagger"),require("tslib"),require("@nestjs/core"),require("@decaf-ts/logging"),require("@decaf-ts/reflection"),require("@decaf-ts/db-decorators"),require("fs"),require("path")):"function"==typeof define&&define.amd?define(["exports","@decaf-ts/decoration","@decaf-ts/injectable-decorators","@nestjs/common","@decaf-ts/decorator-validation","@decaf-ts/core","@nestjs/swagger","tslib","@nestjs/core","@decaf-ts/logging","@decaf-ts/reflection","@decaf-ts/db-decorators","fs","path"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self)["for-nest"]={},e.decafTsDecoration,e.decafTsInjectableDecorators,e.nestjsCommon,e.decafTsDecoratorValidation,e.decafTsCore,e.nestjsSwagger,e.tslib,e.nestjsCore,e.decafTsLogging,e.decafTsReflection,e.decafTsDbDecorators,e.fs,e.path);
1
+ var e,t;e=this,t=function(e,t,r,a,o,i,s,n,p,c,d,l,u,h){"use strict";function m(e){if(e&&e.__esModule)return e;var t=Object.create(null);return e&&Object.keys(e).forEach(r=>{if("default"!==r){var a=Object.getOwnPropertyDescriptor(e,r);Object.defineProperty(t,r,a.get?a:{enumerable:!0,get:()=>e[r]})}}),t.default=e,Object.freeze(t)}var y=m(h);t.Decoration.for(r.InjectablesKeys.INJECTABLE).extend({decorator:(e,t)=>(t=t||("object"==typeof e?Object.assign(e,r.DefaultInjectablesConfig):r.DefaultInjectablesConfig),a.Injectable({scope:t.singleton?a.Scope.DEFAULT:a.Scope.REQUEST,durable:!t.singleton||void 0}))}).apply(),t.Decoration.for(r.InjectablesKeys.INJECT).extend({decorator:(e,t)=>(t,r,o)=>a.Inject(e||t)(t,r,o)}).apply(),t.Decoration.for(o.ValidationKeys.REQUIRED).extend(s.ApiProperty({required:!0})).apply(),t.Decoration.for(o.ValidationKeys.MAX).extend({decorator:e=>s.ApiProperty({maximum:e})}).apply(),t.Decoration.for(o.ValidationKeys.MIN).extend({decorator:e=>s.ApiProperty({minimum:e})}).apply(),t.Decoration.for(o.ValidationKeys.MAX_LENGTH).extend({decorator:e=>s.ApiProperty({maxLength:e})}).apply(),t.Decoration.for(o.ValidationKeys.MIN_LENGTH).extend({decorator:e=>s.ApiProperty({minLength:e})}).apply(),t.Decoration.for(o.ValidationKeys.LIST).extend({decorator:e=>{const t=Array.isArray(e)?e[0]:e;return s.ApiProperty({type:[t]})}}).apply(),t.Decoration.for(o.ValidationKeys.PATTERN).extend({decorator:e=>s.ApiProperty({pattern:"string"==typeof e?e:e.source})}).apply(),t.Decoration.for(i.PersistenceKeys.COLUMN).extend({decorator:e=>s.ApiProperty({name:e})}).apply(),t.Decoration.for(t.DecorationKeys.DESCRIPTION).extend({decorator:e=>s.ApiProperty({description:e})}).apply();const g="DecafModuleOptions",f="DecafAdapter",_=Symbol("DecafHandlers"),A=Symbol("DecafAdapterForOptions"),P=Symbol("AUTH_HANDLER"),b="auth:meta",E="AuthRole";var O;let w=class{static{O=this}static{this._adapterInstance=null}static get log(){return this._logger||(this._logger=c.Logging.for(O)),this._logger}constructor(e,t){this.options=e,this.moduleRef=t}static async createAdapter(e){if(!this._adapterInstance){const t=this.log.for(this.createAdapter);t.info("Creating adapter instance..."),this._adapterInstance=new e.adapter(e.conf,e.alias),t.info("Adapter instance created successfully!")}return this._adapterInstance}static getAdapterInstance(){return this._adapterInstance}static forRoot(e){const t={provide:g,useValue:e},r={useFactory:async e=>O.createAdapter(e),provide:f,durable:!0,scope:a.Scope.DEFAULT,inject:[g]};return{module:O,providers:[r,t],exports:[r]}}async onApplicationShutdown(){const e=O.log.for(this.onApplicationShutdown),t=this.moduleRef.get(f);try{t&&(e.info("Shutting down"),await t.shutdown(),O._adapterInstance=null)}catch(t){e.error("Failed to shutdown application",t)}}};function R(e,r){const{handler:a,args:o}=t.Metadata.get(e,l.OperationKeys.REFLECT+l.OperationKeys.BLOCK)||{};return!!a&&(a(...o,r)??!1)}function D(e,t,r){const o={GET:[l.OperationKeys.READ,a.Get],POST:[l.OperationKeys.CREATE,a.Post],PUT:[l.OperationKeys.UPDATE,a.Put],PATCH:[l.OperationKeys.UPDATE,a.Patch],DELETE:[l.OperationKeys.DELETE,a.Delete]},[i,n]=o[t];return R(e,i)?d.apply(s.ApiExcludeEndpoint()):d.apply(n(r))}function v(e=[]){const t=e.map(e=>s.ApiParam({name:e.name,description:e.description??"Path parameter: "+e.name,required:e.required??!0,type:e.type??String}));return a.applyDecorators(...t)}w=O=n.__decorate([a.Global(),a.Module({}),n.__param(0,a.Inject(g)),n.__metadata("design:paramtypes",[Object,p.ModuleRef])],w);const S=a.createParamDecorator((e,t)=>{const r=t.switchToHttp().getRequest(),a=r?.params??{},o=e??Object.keys(a),i=o.map(e=>a[e]);return{raw:a,valuesInOrder:i,keysInOrder:o}});function $(e=[]){const t=e.map(e=>e.name);return S(t)}function T(t){const r="string"==typeof t?t:t.name;return a.applyDecorators(a.SetMetadata(b,r),a.UseInterceptors(e.AuthInterceptor))}e.AuthInterceptor=class{constructor(e,t){this.reflector=e,this.authHandler=t}async intercept(e,t){const r=this.reflector.get(b,e.getHandler())??this.reflector.get(b,e.getClass());return r&&this.authHandler&&await this.authHandler.authorize(e,r),t.handle()}},e.AuthInterceptor=n.__decorate([a.Injectable(),n.__param(1,a.Optional()),n.__param(1,a.Inject(P)),n.__metadata("design:paramtypes",[p.Reflector,Object])],e.AuthInterceptor),e.DecafRequestContext=class{constructor(){this.cache=new Map}set(e,t){this.cache.set(e,t)}get(e){return this.cache.get(e)}},e.DecafRequestContext=n.__decorate([a.Injectable({scope:a.Scope.REQUEST})],e.DecafRequestContext),e.DecafHandlerExecutor=class{constructor(e,t){this.handlers=e,this.context=t}async exec(e,t){for(const r of this.handlers)await r.handle(this.context,e,t)}},e.DecafHandlerExecutor=n.__decorate([a.Injectable({scope:a.Scope.REQUEST}),n.__param(0,a.Inject(_)),n.__metadata("design:paramtypes",[Array,e.DecafRequestContext])],e.DecafHandlerExecutor);const I=e=>({name:e,description:e+" parameter for the query",required:!0,type:String});function F(e,t){const r=(e=>e.split("/").filter(e=>e.startsWith(":")).map(e=>e.slice(1)))(t).map(I);return{method:[a.Get(t),...r.map(s.ApiParam),s.ApiOperation({summary:`Retrieve records using custom query "${e}".`}),s.ApiOkResponse({description:"Results successfully retrieved."}),s.ApiNoContentResponse({description:"No content returned by the query."})],params:[$(r),a.Query()]}}function C(e,t,r,a){const o=e?.prototype??e;a.method.forEach(e=>e(o,t,r)),a.params?.forEach((e,r)=>e(o,t,r))}function k(e){return async function(t,r){const a=this.log.for(e);try{a.debug(`Invoking persistence method "${e}" given parameters: ${JSON.stringify(t.valuesInOrder)}`);const{direction:o,limit:s,offset:n}=r;return await((e,t,...r)=>{if(e instanceof i.ModelService)return"function"==typeof e[t]?e[t](...r):e.statement(t,...r);if("function"==typeof e[t])return e[t](...r);throw Error(`Persistence method "${t}" not found on ${e?.constructor?.name}`)})(this.persistence,e,...t.valuesInOrder,o,s,n)}catch(t){throw a.error(`Custom query "${e}" failed`,t),t}}}function M(e,t,r){return Object.defineProperty(e.prototype||e,t,{value:r,writable:!1}),Object.getOwnPropertyDescriptor(e.prototype||e,t)}class j extends c.LoggedClass{constructor(e){super(),this.clientContext=e}get persistence(){throw Error("Not implemented")}}class x{static{this.log=c.Logging.for(x.name)}static getPersistence(e){try{return i.ModelService.forModel(e)}catch(t){return i.Repository.forModel(e)}}static createQueryRoutesFromRepository(e,r=i.PersistenceKeys.QUERY){const a=e.class,o=t.Metadata.get(e.constructor,t.Metadata.key(i.PersistenceKeys.QUERY))??{};class s extends j{constructor(e){super(e),this._persistence=x.getPersistence(a)}get persistence(){const e=this.clientContext.get(A);return e?this._persistence.for(e):this._persistence}}for(const[e,t]of Object.entries(o)){const a=[r,e,...(t.fields??[]).map(e=>":"+e)].filter(e=>e&&e.trim()).join("/"),o=M(s,e,k(e));o&&C(s,e,o,F(e,a))}return s}static create(t){const r=x.log.for(x.create),p=o.Model.tableName(t),d=c.toKebabCase(p),u=t.name,h=x.getPersistence(t),{description:m,getPK:y,apiProperties:g,path:f}=x.getRouteParametersFromModel(t);r.debug("Creating controller for model: "+u);const _=x.createQueryRoutesFromRepository(h instanceof i.ModelService?h.repo:h);let A=class extends _{constructor(e){super(e),this.pk=o.Model.pk(t),r.info(`Registering dynamic controller for model: ${u} route: /${d}`)}async listBy(e,t){return this.persistence.listBy(e,t.direction)}async paginateBy(e,t,r){return this.persistence.paginateBy(e,r.direction,r.limit)}async findOneBy(e,t){return this.persistence.findOneBy(e,t)}async findBy(e,t,r){return this.persistence.findBy(e,t)}async statement(e,t,r){const{direction:a,offset:o,limit:s}=r;switch(t=t.map(e=>("string"==typeof e?parseInt(e):e)||e),e){case i.PreparedStatementKeys.FIND_BY:break;case i.PreparedStatementKeys.LIST_BY:t.push(a);break;case i.PreparedStatementKeys.PAGE_BY:t.push(a,s);case i.PreparedStatementKeys.FIND_ONE_BY:}return this.persistence.statement(e,...t)}async createAll(e){const r=this.log.for(this.createAll);let a;r.verbose("creating new "+u);try{a=await this.persistence.createAll(e.map(e=>new t(e)))}catch(e){throw r.error("Failed to create new "+u,e),e}return r.info(`created new ${u} with id ${a[this.pk]}`),a}async create(e){const t=this.log.for(this.create);let r;t.verbose("creating new "+u);try{r=await this.persistence.create(e)}catch(e){throw t.error("Failed to create new "+u,e),e}return t.info(`created new ${u} with id ${r[this.pk]}`),r}async readAll(e){const t=this.log.for(this.readAll);let r;try{t.debug(`reading ${e.length} ${u}: ${e}`),r=await this.persistence.readAll(e)}catch(r){throw t.error(`Failed to ${u} with id ${e}`,r),r}return t.info(`read ${r.length} ${u}`),r}async read(e){const t=y(...e.valuesInOrder);if(void 0===t)throw new l.ValidationError(`No ${this.pk} provided`);const r=this.log.for(this.read);let a;try{r.debug(`reading ${u} with ${this.pk} ${t}`),a=await this.persistence.read(t)}catch(e){throw r.error(`Failed to read ${u} with id ${t}`,e),e}return r.info(`read ${u} with id ${a[this.pk]}`),a}async updateAll(e){const t=this.log.for(this.updateAll);let r;try{t.info(`updating ${e.length} ${u}`),r=await this.persistence.updateAll(e)}catch(e){throw t.error(e),e}return r}async update(e,r){const a=this.log.for(this.update),o=y(...e.valuesInOrder);if(void 0===o)throw new l.ValidationError(`No ${this.pk} provided`);let i;try{a.info(`updating ${u} with ${this.pk} ${o}`),i=await this.persistence.update(new t({...r,[this.pk]:o}))}catch(e){throw a.error(e),e}return i}async deleteAll(e){const t=this.log.for(this.deleteAll);let r;try{t.debug(`deleting ${e.length} ${u}: ${e}`),r=await this.persistence.deleteAll(e)}catch(r){throw t.error(`Failed to delete ${u} with id ${e}`,r),r}return t.info(`deleted ${r.length} ${u}`),r}async delete(e){const t=this.log.for(this.delete),r=y(...e.valuesInOrder);if(void 0===r)throw new l.ValidationError(`No ${this.pk} provided`);let a;try{t.debug(`deleting ${u} with ${this.pk} ${r}`),a=await this.persistence.delete(r)}catch(e){throw t.error(`Failed to delete ${u} with id ${r}`,e),e}return t.info(`deleted ${u} with id ${r}`),a}};return n.__decorate([D(t,"GET","listBy/:key"),s.ApiOperation({summary:`Retrieve ${u} records by query.`}),s.ApiParam({name:"key",description:"the model key to sort by"}),s.ApiQuery({name:"direction",required:!0,enum:i.OrderDirection}),s.ApiOkResponse({description:u+" listed successfully."}),n.__param(1,a.Query()),n.__metadata("design:type",Function),n.__metadata("design:paramtypes",[String,Object]),n.__metadata("design:returntype",Promise)],A.prototype,"listBy",null),n.__decorate([D(t,"GET","paginateBy/:key/:page"),s.ApiOperation({summary:`Retrieve ${u} records by query.`}),s.ApiParam({name:"key",description:"the model key to sort by"}),s.ApiParam({name:"page",description:"the page to retrieve or the bookmark"}),s.ApiQuery({name:"direction",required:!0,enum:i.OrderDirection,description:"the sort order"}),s.ApiQuery({name:"limit",required:!0,description:"the page size"}),s.ApiOkResponse({description:u+" listed paginated."}),n.__param(0,a.Param("key")),n.__param(1,a.Param("page")),n.__param(2,a.Query()),n.__metadata("design:type",Function),n.__metadata("design:paramtypes",[String,Object,Object]),n.__metadata("design:returntype",Promise)],A.prototype,"paginateBy",null),n.__decorate([D(t,"GET","findOneBy/:key"),s.ApiOperation({summary:`Retrieve ${u} records by query.`}),s.ApiParam({name:"key",description:"the model key to sort by"}),s.ApiOkResponse({description:u+" listed found."}),s.ApiNotFoundResponse({description:`No ${u} record matches the provided identifier.`}),n.__param(0,a.Param("key")),n.__param(1,a.Param("value")),n.__metadata("design:type",Function),n.__metadata("design:paramtypes",[String,Object]),n.__metadata("design:returntype",Promise)],A.prototype,"findOneBy",null),n.__decorate([D(t,"GET","findBy/:key/:value"),s.ApiOperation({summary:`Retrieve ${u} records by query.`}),s.ApiParam({name:"key",description:"the model key to compare"}),s.ApiParam({name:"value",description:"the value to match"}),s.ApiQuery({name:"direction",required:!0,enum:i.OrderDirection,description:"the sort order when applicable"}),s.ApiOkResponse({description:u+" listed found."}),s.ApiNotFoundResponse({description:`No ${u} record matches the provided identifier.`}),n.__param(0,a.Param("key")),n.__param(1,a.Param("value")),n.__param(2,a.Query()),n.__metadata("design:type",Function),n.__metadata("design:paramtypes",[String,Object,Object]),n.__metadata("design:returntype",Promise)],A.prototype,"findBy",null),n.__decorate([D(t,"GET","statement/:method/*args"),s.ApiOperation({summary:`Executes a prepared statement on ${u}.`}),s.ApiParam({name:"method",description:"the prepared statement to execute"}),s.ApiParam({name:"args",description:"concatenated list of arguments the prepared statement can accept"}),s.ApiQuery({name:"direction",required:!0,enum:i.OrderDirection,description:"the sort order when applicable"}),s.ApiQuery({name:"limit",required:!0,description:"limit or page size when applicable"}),s.ApiQuery({name:"offset",required:!0,description:"offset or bookmark when applicable"}),s.ApiOkResponse({description:u+" listed found."}),s.ApiNotFoundResponse({description:`No ${u} record matches the provided identifier.`}),n.__param(0,a.Param("method")),n.__param(1,a.Param("args")),n.__param(2,a.Query()),n.__metadata("design:type",Function),n.__metadata("design:paramtypes",[String,Array,Object]),n.__metadata("design:returntype",Promise)],A.prototype,"statement",null),n.__decorate([D(t,"POST","bulk"),s.ApiOperation({summary:`Create a new ${u}.`}),s.ApiBody({description:"Payload for "+u,schema:{type:"array",items:{$ref:s.getSchemaPath(t)}}}),s.ApiCreatedResponse({description:`x ${u} created successfully.`}),s.ApiBadRequestResponse({description:"Payload validation failed."}),s.ApiUnprocessableEntityResponse({description:"Repository rejected the provided payload."}),n.__param(0,a.Body()),n.__metadata("design:type",Function),n.__metadata("design:paramtypes",[Array]),n.__metadata("design:returntype",Promise)],A.prototype,"createAll",null),n.__decorate([D(t,"POST"),s.ApiOperation({summary:`Create a new ${u}.`}),s.ApiBody({description:"Payload for "+u,schema:{$ref:s.getSchemaPath(t)}}),s.ApiCreatedResponse({description:u+" created successfully."}),s.ApiBadRequestResponse({description:"Payload validation failed."}),s.ApiUnprocessableEntityResponse({description:"Repository rejected the provided payload."}),n.__param(0,a.Body()),n.__metadata("design:type",Function),n.__metadata("design:paramtypes",[Object]),n.__metadata("design:returntype",Promise)],A.prototype,"create",null),n.__decorate([D(t,"GET","bulk/:ids"),s.ApiOperation({summary:`Retrieve a ${u} record by id.`}),s.ApiQuery({name:"ids",required:!0,type:"array"}),s.ApiOkResponse({description:u+" retrieved successfully."}),s.ApiNotFoundResponse({description:`No ${u} record matches the provided identifier.`}),n.__param(0,a.Query("ids")),n.__metadata("design:type",Function),n.__metadata("design:paramtypes",[Array]),n.__metadata("design:returntype",Promise)],A.prototype,"readAll",null),n.__decorate([D(t,"GET",f),v(g),s.ApiOperation({summary:`Retrieve a ${u} record by id.`}),s.ApiOkResponse({description:u+" retrieved successfully."}),s.ApiNotFoundResponse({description:`No ${u} record matches the provided identifier.`}),n.__param(0,$(g)),n.__metadata("design:type",Function),n.__metadata("design:paramtypes",[Object]),n.__metadata("design:returntype",Promise)],A.prototype,"read",null),n.__decorate([D(t,"PUT",f+"/bulk"),v(g),s.ApiOperation({summary:`Replace an existing ${u} record with a new payload.`}),s.ApiBody({description:"Payload for replace a existing record of "+u,schema:{type:"array",items:{$ref:s.getSchemaPath(t)}}}),s.ApiOkResponse({description:t+" record replaced successfully."}),s.ApiNotFoundResponse({description:`No ${u} record matches the provided identifier.`}),s.ApiBadRequestResponse({description:"Payload validation failed."}),n.__param(0,a.Body()),n.__metadata("design:type",Function),n.__metadata("design:paramtypes",[Array]),n.__metadata("design:returntype",Promise)],A.prototype,"updateAll",null),n.__decorate([D(t,"PUT",f),v(g),s.ApiOperation({summary:`Replace an existing ${u} record with a new payload.`}),s.ApiBody({description:"Payload for replace a existing record of "+u,schema:{$ref:s.getSchemaPath(t)}}),s.ApiOkResponse({description:t+" record replaced successfully."}),s.ApiNotFoundResponse({description:`No ${u} record matches the provided identifier.`}),s.ApiBadRequestResponse({description:"Payload validation failed."}),n.__param(0,$(g)),n.__param(1,a.Body()),n.__metadata("design:type",Function),n.__metadata("design:paramtypes",[Object,o.Model]),n.__metadata("design:returntype",Promise)],A.prototype,"update",null),n.__decorate([D(t,"DELETE","bulk/:ids"),v(g),s.ApiOperation({summary:`Retrieve a ${u} record by id.`}),s.ApiQuery({name:"ids",required:!0,type:"array"}),s.ApiOkResponse({description:u+" retrieved successfully."}),s.ApiNotFoundResponse({description:`No ${u} record matches the provided identifier.`}),n.__param(0,a.Query("ids")),n.__metadata("design:type",Function),n.__metadata("design:paramtypes",[Array]),n.__metadata("design:returntype",Promise)],A.prototype,"deleteAll",null),n.__decorate([D(t,"DELETE",f),v(g),s.ApiOperation({summary:`Delete a ${u} record by id.`}),s.ApiOkResponse({description:u+" record deleted successfully."}),s.ApiNotFoundResponse({description:`No ${u} record matches the provided identifier.`}),n.__param(0,$(g)),n.__metadata("design:type",Function),n.__metadata("design:paramtypes",[Object]),n.__metadata("design:returntype",Promise)],A.prototype,"delete",null),A=n.__decorate([a.Controller(d),s.ApiTags(u),s.ApiExtraModels(t),T(t),n.__metadata("design:paramtypes",[e.DecafRequestContext])],A),A}static getRouteParametersFromModel(e){const r=o.Model.pk(e),a=t.Metadata.get(e,t.Metadata.key(l.DBKeys.COMPOSED,r)),i=a?.args??[],s=Array.isArray(i)&&i.length>0?Array.from(new Set([...i])):Array.from(new Set([r])),n=t.Metadata.description(e);return{path:":"+s.join("/:"),description:n,apiProperties:s.map(r=>({name:r,description:t.Metadata.description(e,r),required:!0,type:String})),getPK:(...e)=>a?.separator?e.join(a.separator):e.join("")}}}var B,q;e.DecafRequestHandlerInterceptor=class{constructor(e){this.executor=e}async intercept(e,t){const r=e.switchToHttp().getRequest(),a=e.switchToHttp().getResponse();return await this.executor.exec(r,a),t.handle()}},e.DecafRequestHandlerInterceptor=n.__decorate([a.Injectable({scope:a.Scope.REQUEST}),n.__metadata("design:paramtypes",[e.DecafHandlerExecutor])],e.DecafRequestHandlerInterceptor),e.DecafModelModule=class{static{B=this}static{this.log=c.Logging.for(B.name)}static createModelServices(e){return e.map(e=>({provide:e.name+"Service",useFactory:()=>i.ModelService.forModel(e)}))}static forRoot(t,r={}){const a=this.log.for(this.forRoot);a.info("Generating controllers for flavour...");const o=i.Adapter.models(t);let s=[];r.autoServices&&(a.info("Auto-services enabled. Initializing service generation."),s=this.createModelServices(o),a.info(`Auto-services completed. ${s.length} services initialized.`));const n=o.map(x.create);return a.info(`Generated ${n.length} controllers`),{module:B,controllers:n,providers:[{provide:_,useFactory:()=>r.handlers?.map(e=>(a.info("Registered request handler: "+e.name),new e))??[]},e.DecafRequestContext,e.DecafHandlerExecutor,{provide:p.APP_INTERCEPTOR,useClass:e.DecafRequestHandlerInterceptor},...s]}}},e.DecafModelModule=B=n.__decorate([a.Module({})],e.DecafModelModule),e.DecafModule=q=class{static async forRootAsync(t){const{autoControllers:r,autoServices:a,handlers:o}=t,i=(await w.createAdapter(t)).flavour,s=[w.forRoot(t)];return r&&s.push(e.DecafModelModule.forRoot(i,{autoServices:a,handlers:o})),{module:q,imports:s}}},e.DecafModule=q=n.__decorate([a.Module({})],e.DecafModule);class N extends i.ForbiddenError{constructor(e){super(e,N.name)}}e.DecafExceptionFilter=class{catch(e,t){const r=t.switchToHttp(),a=r.getResponse(),o=r.getRequest(),i="production"===c.LoggedEnvironment.env;e instanceof l.BaseError||(e=new l.InternalError(e.message)),a.status(e.code).json({status:e.code,error:i?e.name:e.message,timestamp:(new Date).toISOString(),path:o.url,method:o.method})}},e.DecafExceptionFilter=n.__decorate([a.Catch()],e.DecafExceptionFilter);const L={title:"Swagger | OpenAPI Specification (OAS)",description:"Standardized format for describing RESTful APIs",version:"0.0.1",path:"docs",faviconFilePath:"",topbarIconFilePath:"",auth:{type:"http",scheme:"bearer",bearerFormat:"JWT",name:"Authorization",description:"Enter JWT token",in:"header"},persistAuthorization:!0,topbarBgColor:"#000000"};class K{constructor(e){this.options={...e}}customCSS(){let e="";return this.options.topbarIconPath&&(e+=`.topbar-wrapper { content: url('data:image/png;base64,${this.b64(this.options.topbarIconPath)}'); width: 200px; height: auto; }\n`),e+`\n .topbar-wrapper svg { visibility: hidden; }\n .swagger-ui .topbar { background-color: ${this.options.topbarBgColor||L.topbarBgColor}; }\n `}getCustomOptions(){const e={};return this.options.faviconPath&&(e.customfavIcon=this.b64(this.options.faviconPath,!0)),{customSiteTitle:this.options.title,...e,customCss:this.customCSS(),swaggerOptions:{persistAuthorization:this.options.persistAuthorization},jsonDocumentUrl:this.options.path?this.options.path+"/spec.json":void 0,yamlDocumentUrl:this.options.path?this.options.path+"/spec.yaml":void 0}}b64(e,t=!1){const r=y.join(this.options.assetsPath||"",e),a=u.readFileSync(r,{encoding:"base64"});return t?"data:image/png;base64,"+a:a}}class H{constructor(e,t){this.app=e,this.options=t}createDocument(){const e=this.options.path?this.options.description+""+`<br><br><a href="${this.options.path}/spec.json">OpenAPI JSON Spec</a> | `+`<a href="${this.options.path}/spec.yaml">OpenAPI YAML Spec</a>`:this.options.description,t=(new s.DocumentBuilder).setTitle(this.options.title).setDescription(e).setVersion(this.options.version||"0.0.1").addBearerAuth(this.options.auth||L.auth).build();return s.SwaggerModule.createDocument(this.app,t,{extraModels:this.options.extraModels||[]})}setupSwagger(){const e=this.createDocument(),t=new K({title:this.options.title,path:this.options.path||L.path,persistAuthorization:this.options.persistAuthorization??!0,assetsPath:this.options.assetsPath,faviconPath:this.options.faviconFilePath,topbarIconPath:this.options.topbarIconFilePath,topbarBgColor:this.options.topbarBgColor});s.SwaggerModule.setup(this.options.path||L.path,this.app,e,{...t.getCustomOptions()})}}const U="##VERSION##",G="##PACKAGE##";t.Metadata.registerLibrary(G,U),e.AUTH_HANDLER=P,e.AUTH_META_KEY=b,e.ApiOperationFromModel=D,e.ApiParamsFromModel=v,e.Auth=T,e.AuthRole=E,e.BulkApiOperationFromModel=(e,t,r)=>{const o={GET:[l.BulkCrudOperationKeys.READ_ALL,a.Get],POST:[l.BulkCrudOperationKeys.CREATE_ALL,a.Post],PUT:[l.BulkCrudOperationKeys.UPDATE_ALL,a.Put],PATCH:[l.BulkCrudOperationKeys.UPDATE_ALL,a.Patch],DELETE:[l.BulkCrudOperationKeys.DELETE_ALL,a.Delete]},[i,n]=o[t];return R(e,i)?d.apply(s.ApiExcludeEndpoint()):d.apply(n(r))},e.CorsError=N,e.DECAF_ADAPTER_ID=f,e.DECAF_ADAPTER_OPTIONS=A,e.DECAF_HANDLERS=_,e.DECAF_MODULE_OPTIONS=g,e.DecafParams=$,e.FromModelController=x,e.NestBootstraper=class{static get logger(){return this._logger||(this._logger=new a.Logger("NestBootstrap")),this._logger}static initialize(e){return this.app=e,this}static enableLogger(e){return this._logger=e||new a.Logger("NestBootstrap"),this.app.useLogger(this._logger),this}static enableCors(e=[],t=["GET","POST","PUT","DELETE"]){const r="*"===e?"*":e.map(e=>e.trim().toLowerCase()),a={origin:(e,t)=>e?"*"===r||Array.isArray(r)&&r.includes(e.toLowerCase())?t(null,!0):void t(new N(`Origin ${e} not allowed`)):t(null,!0),credentials:!0,methods:t.join(",")};return this.app.enableCors(a),this}static useHelmet(e){try{const t=require("helmet");this.app.use(t(e)),this.logger.log("Helmet middleware enabled successfully.")}catch(e){this.logger.warn("Helmet not installed. Skipping middleware.")}return this}static setupSwagger(e){return new H(this.app,{title:e.title,description:e.description,version:e.version,path:e.path||"api",persistAuthorization:e.persistAuthorization??!0,assetsPath:e.assetsPath,faviconFilePath:e.faviconPath,topbarIconFilePath:e.topbarIconPath,topbarBgColor:e.topbarBgColor}).setupSwagger(),this}static useGlobalPipes(...e){return e.length>0&&this.app.useGlobalPipes(...e),this}static useGlobalFilters(...t){return this.app.useGlobalFilters(...t.length>0?t:[new e.DecafExceptionFilter]),this}static useGlobalInterceptors(...e){return e.length>0&&this.app.useGlobalInterceptors(...e),this}static async start(e=Number(process.env.PORT)||3e3,t=void 0,r=!0){this.app.listen(e,t).then(async()=>{if(r){const e=await this.app.getUrl();this.logger.log("\ud83d\ude80 Application is running at: "+e)}})}},e.PACKAGE_NAME=G,e.Roles=e=>t.metadata(E,e),e.SwaggerBuilder=H,e.UseDecafFilter=()=>a.UseFilters(new e.DecafExceptionFilter),e.VERSION=U,e.isOperationBlocked=R,e.repoForModel=e=>{const t=o.Model.get(e);if(!t)throw new l.InternalError("Failed to find repository for "+e);return i.Repository.forModel(t)}},"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("@decaf-ts/decoration"),require("@decaf-ts/injectable-decorators"),require("@nestjs/common"),require("@decaf-ts/decorator-validation"),require("@decaf-ts/core"),require("@nestjs/swagger"),require("tslib"),require("@nestjs/core"),require("@decaf-ts/logging"),require("@decaf-ts/reflection"),require("@decaf-ts/db-decorators"),require("fs"),require("path")):"function"==typeof define&&define.amd?define(["exports","@decaf-ts/decoration","@decaf-ts/injectable-decorators","@nestjs/common","@decaf-ts/decorator-validation","@decaf-ts/core","@nestjs/swagger","tslib","@nestjs/core","@decaf-ts/logging","@decaf-ts/reflection","@decaf-ts/db-decorators","fs","path"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self)["for-nest"]={},e.decafTsDecoration,e.decafTsInjectableDecorators,e.nestjsCommon,e.decafTsDecoratorValidation,e.decafTsCore,e.nestjsSwagger,e.tslib,e.nestjsCore,e.decafTsLogging,e.decafTsReflection,e.decafTsDbDecorators,e.fs,e.path);
2
2
  //# sourceMappingURL=for-nest.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"for-nest.cjs","sources":["../src/decoration.ts","../src/constants.ts","../src/core-module.ts","../src/decaf-model/decorators/ApiOperationFromModel.ts","../src/decaf-model/decorators/ApiParamsFromModel.ts","../src/decaf-model/decorators/DecafParams.ts","../src/decaf-model/decorators/decorators.ts","../src/interceptors/AuthInterceptor.ts","../src/request/DecafRequestContext.ts","../src/request/DecafHandlerExecutor.ts","../src/decaf-model/utils.ts","../src/decaf-model/types.ts","../src/decaf-model/FromModelController.ts","../src/interceptors/DecafRequestHandlerInterceptor.ts","../src/decaf-model/DecafModelModule.ts","../src/module.ts","../src/factory/errors/cors.ts","../src/factory/exceptions/DecafErrorFilter.ts","../src/factory/openapi/constants.ts","../src/factory/openapi/SwaggerCustomUI.ts","../src/factory/openapi/SwaggerBuilder.ts","../src/index.ts","../src/factory/NestBootstraper.ts","../src/factory/exceptions/decorators.ts","../src/utils.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null],"names":["Decoration","for","InjectablesKeys","INJECTABLE","extend","decorator","category","cfg","Object","assign","DefaultInjectablesConfig","Injectable","scope","singleton","Scope","DEFAULT","REQUEST","durable","undefined","apply","INJECT","target","propertyKey","descriptor","Inject","ValidationKeys","REQUIRED","ApiProperty","required","MAX","max","maximum","MIN","min","minimum","MAX_LENGTH","maxLength","MIN_LENGTH","minLength","LIST","clazz","c","Array","isArray","type","PATTERN","pat","pattern","source","PersistenceKeys","COLUMN","name","DecorationKeys","DESCRIPTION","description","DECAF_MODULE_OPTIONS","DECAF_ADAPTER_ID","DECAF_HANDLERS","Symbol","DECAF_ADAPTER_OPTIONS","AUTH_HANDLER","AUTH_META_KEY","AuthRole","DecafCoreModule","this","_adapterInstance","log","_logger","Logging","DecafCoreModule_1","constructor","options","moduleRef","createAdapter","info","adapter","conf","alias","getAdapterInstance","forRoot","typeOrmModuleOptions","provide","useValue","useFactory","async","opts","inject","module","providers","exports","onApplicationShutdown","get","shutdown","e","error","isOperationBlocked","ModelConstructor","op","handler","args","Metadata","OperationKeys","REFLECT","BLOCK","ApiOperationFromModel","verb","path","httpToCrud","GET","READ","Get","POST","CREATE","Post","PUT","UPDATE","Put","PATCH","Patch","DELETE","Delete","crudOp","HttpMethodDecorator","ApiExcludeEndpoint","ApiParamsFromModel","props","decorators","map","p","ApiParamDec","String","applyDecorators","__decorate","Global","Module","__param","ModuleRef","OrderedParams","createParamDecorator","order","ctx","req","switchToHttp","getRequest","original","params","orderList","keys","ordered","k","raw","valuesInOrder","keysInOrder","DecafParams","Auth","model","resource","SetMetadata","UseInterceptors","AuthInterceptor","reflector","authHandler","intercept","next","modelName","getHandler","getClass","authorize","handle","Optional","Reflector","DecafRequestContext","cache","Map","set","key","value","DecafHandlerExecutor","handlers","context","exec","res","apiParamSpec","getApiDecorators","methodName","routePath","apiPathParams","split","filter","startsWith","slice","extractPathParams","method","ApiParam","ApiOperation","summary","ApiOkResponse","ApiNoContentResponse","Query","applyApiDecorators","proto","prototype","forEach","d","index","createRouteHandler","pathParams","queryParams","debug","JSON","stringify","direction","limit","offset","persistence","defineRouteMethod","ControllerClass","defineProperty","writable","getOwnPropertyDescriptor","AbstractQueryController","LoggedClass","clientContext","super","Error","FromModelController","getPersistence","ModelClazz","ModelService","forModel","Repository","createQueryRoutesFromRepository","prefix","STATEMENT","ModelConstr","class","methodQueries","QUERY","QueryController","_persistence","adapterOptions","objValues","entries","fields","f","segment","trim","join","create","tableName","Model","toKebabCase","modelClazzName","getPK","apiProperties","getRouteParametersFromModel","BaseController","DynamicModelController","pk","listBy","details","paginateBy","page","findOneBy","findBy","statement","a","parseInt","PreparedStatementKeys","FIND_BY","LIST_BY","push","PAGE_BY","FIND_ONE_BY","createAll","data","created","verbose","readAll","ids","read","length","routeParams","id","ValidationError","updateAll","body","updated","update","deleteAll","delete","del","ApiQuery","enum","OrderDirection","Param","ApiNotFoundResponse","ApiBody","schema","items","$ref","getSchemaPath","ApiCreatedResponse","ApiBadRequestResponse","ApiUnprocessableEntityResponse","Body","Controller","ApiTags","ApiExtraModels","composed","DBKeys","COMPOSED","composedKeys","uniqueKeys","from","Set","separator","DecafRequestHandlerInterceptor","executor","getResponse","DecafModelModule","DecafModelModule_1","createModelServices","models","flavour","trackedModels","Adapter","modelServices","autoServices","controllers","H","APP_INTERCEPTOR","useClass","DecafModule","DecafModule_1","forRootAsync","autoControllers","imports","CorsError","ForbiddenError","msg","DecafExceptionFilter","exception","host","response","request","isProduction","LoggedEnvironment","env","BaseError","InternalError","message","status","code","json","timestamp","Date","toISOString","url","Catch","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","BulkCrudOperationKeys","READ_ALL","CREATE_ALL","UPDATE_ALL","DELETE_ALL","logger","Logger","initialize","enableLogger","customLogger","useLogger","enableCors","origins","allowMethods","allowedOrigins","o","toLowerCase","corsOptions","origin","callback","includes","credentials","methods","useHelmet","helmet","require","use","warn","useGlobalPipes","pipes","useGlobalFilters","filters","useGlobalInterceptors","interceptors","start","port","Number","process","PORT","listen","then","getUrl","roles","metadata","UseFilters","m"],"mappings":"qVAYAA,EAAAA,WAAWC,IAAIC,EAAeA,gBAACC,YAC5BC,OAAO,CACNC,UAAW,CACTC,EACAC,KAEAA,EACEA,IACqB,iBAAbD,EACJE,OAAOC,OACLH,EACAI,4BAEFA,EAAAA,0BACCC,aAAW,CAChBC,MAAOL,EAAIM,UAAYC,EAAKA,MAACC,QAAUD,EAAKA,MAACE,QAC7CC,SAASV,EAAIM,gBAAYK,OAI9BC,QAEHnB,EAAAA,WAAWC,IAAIC,EAAeA,gBAACkB,QAC5BhB,OAAO,CACNC,UAAW,CACTC,EAEAC,IAEO,CACLc,EACAC,EACAC,IAEOC,EAAAA,OAAOlB,GAAae,EAApBG,CACLH,EACAC,EACAC,KAKPJ,QAEHnB,EAAAA,WAAWC,IAAIwB,EAAcA,eAACC,UAC3BtB,OACCuB,EAAAA,YAAY,CACVC,UAAU,KAGbT,QAEHnB,EAAAA,WAAWC,IAAIwB,EAAcA,eAACI,KAC3BzB,OAAO,CACNC,UAA2ByB,GAClBH,cAAY,CAAEI,QAASD,MAGjCX,QAEHnB,EAAAA,WAAWC,IAAIwB,EAAcA,eAACO,KAC3B5B,OAAO,CACNC,UAA2B4B,GAClBN,cAAY,CAAEO,QAASD,MAGjCd,QAEHnB,EAAAA,WAAWC,IAAIwB,EAAcA,eAACU,YAC3B/B,OAAO,CACNC,UAAiCyB,GACxBH,cAAY,CAAES,UAAWN,MAGnCX,QAEHnB,EAAAA,WAAWC,IAAIwB,EAAcA,eAACY,YAC3BjC,OAAO,CACNC,UAAiC4B,GACxBN,cAAY,CAAEW,UAAWL,MAGnCd,QAkBHnB,EAAAA,WAAWC,IAAIwB,EAAcA,eAACc,MAC3BnC,OAAO,CACNC,UACEmC,IAKA,MAAMC,EAAIC,MAAMC,QAAQH,GAASA,EAAM,GAAKA,EAC5C,OAAOb,EAAWA,YAAC,CAAEiB,KAAM,CAACH,IAC7B,IAEFtB,QAYHnB,EAAAA,WAAWC,IAAIwB,EAAcA,eAACoB,SAC3BzC,OAAO,CACNC,UAA+ByC,GACtBnB,cAAY,CACjBoB,QAAwB,iBAARD,EAAmBA,EAAMA,EAAIE,WAIlD7B,QAEHnB,EAAAA,WAAWC,IAAIgD,EAAeA,gBAACC,QAC5B9C,OAAO,CACNC,UAA8B8C,GACrBxB,cAAY,CACjBwB,KAAMA,MAIXhC,QAEHnB,EAAAA,WAAWC,IAAImD,EAAcA,eAACC,aAC3BjD,OAAO,CACNC,UAAmCiD,GAC1B3B,cAAY,CACjB2B,YAAaA,MAIlBnC,QCpKU,MAAAoC,EAAuB,qBACvBC,EAAmB,eAEnBC,EAAiBC,OAAO,iBACxBC,EAAwBD,OAAO,0BAE/BE,EAAeF,OAAO,gBACtBG,EAAgB,YAEhBC,EAAW,iBCQjB,IAAMC,EAAN,2BAIUC,KAAgBC,iBAAuC,IAAK,CAEjE,cAAWC,GAEnB,OADKF,KAAKG,UAASH,KAAKG,QAAUC,EAAAA,QAAQnE,IAAIoE,IACvCL,KAAKG,OACb,CAED,WAAAG,CAEmBC,EACAC,GADAR,KAAOO,QAAPA,EACAP,KAASQ,UAATA,CACf,CAEJ,0BAAaC,CACXF,GAEA,IAAKP,KAAKC,iBAAkB,CAC1B,MAAMC,EAAMF,KAAKE,IAAIjE,IAAI+D,KAAKS,eAC9BP,EAAIQ,KAAK,gCACTV,KAAKC,iBAAmB,IAAIM,EAAQI,QAAQJ,EAAQK,KAAML,EAAQM,OAClEX,EAAIQ,KAAK,yCACV,CACD,OAAOV,KAAKC,gBACb,CAED,yBAAOa,GACL,OAAOd,KAAKC,gBACb,CAED,cAAOc,CAAQR,GACb,MAAMS,EAAuB,CAC3BC,QAAS1B,EACT2B,SAAUX,GAGNI,EAAgC,CACpCQ,WAAYC,MAAOC,GACVhB,EAAgBI,cAAcY,GAEvCJ,QAASzB,EACTvC,SAAS,EACTL,MAAOE,EAAKA,MAACC,QACbuE,OAAQ,CAAC/B,IAMX,MAAO,CACLgC,OAAQlB,EACRmB,UALgB,CAACb,EAASK,GAM1BS,QALc,CAACd,GAOlB,CAED,2BAAMe,GACJ,MAAMxB,EAAMG,EAAgBH,IAAIjE,IAAI+D,KAAK0B,uBACnCf,EAAUX,KAAKQ,UAAUmB,IAAanC,GAC5C,IACMmB,IACFT,EAAIQ,KAAK,uBACHC,EAAQiB,WACdvB,EAAgBJ,iBAAmB,KAEtC,CAAC,MAAO4B,GACP3B,EAAI4B,MAAM,iCAAkCD,EAC7C,CACF,GCpEa,SAAAE,EACdC,EACAC,GAEA,MAAMC,QAAEA,EAAOC,KAAEA,GAAUC,EAAAA,SAAST,IAClCK,EACAK,EAAaA,cAACC,QAAUD,EAAaA,cAACE,QACnC,CAAE,EASP,QAAQL,IAAmBA,KAAWC,EAAMF,KAAO,EACrD,UAUgBO,EACdR,EACAS,EACAC,GAEA,MAAMC,EAGF,CACFC,IAAK,CAACP,EAAAA,cAAcQ,KAAMC,OAC1BC,KAAM,CAACV,EAAAA,cAAcW,OAAQC,QAC7BC,IAAK,CAACb,EAAAA,cAAcc,OAAQC,OAC5BC,MAAO,CAAChB,EAAAA,cAAcc,OAAQG,SAC9BC,OAAQ,CAAClB,EAAAA,cAAckB,OAAQC,YAG1BC,EAAQC,GAAuBf,EAAWF,GACjD,OAAOV,EAAmBC,EAAkByB,GACxCtG,EAAKA,MAACwG,EAAkBA,sBACxBxG,QAAMuG,EAAoBhB,GAChC,CCpDgB,SAAAkB,EACdC,EAA4B,IAE5B,MAAMC,EAAaD,EAAME,IAAKC,GAC5BC,EAAAA,SAAY,CACV9E,KAAM6E,EAAE7E,KACRG,YAAa0E,EAAE1E,aAAe,mBAAmB0E,EAAE7E,KACnDvB,SAAUoG,EAAEpG,WAAY,EAExBgB,KAAMoF,EAAEpF,MAAQsF,UAGpB,OAAOC,EAAeA,mBAAIL,EAC5B,CFXa/D,EAAeM,EAAA+D,EAAAA,WAAA,CAF3BC,WACAC,EAAAA,OAAO,CAAA,GAaHC,EAAAA,QAAA,EAAA/G,SAAO+B,6CAEoBiF,EAASA,aAd5BzE,GGHb,MAAM0E,EAAgBC,EAAoBA,qBACxC,CAACC,EAA6BC,KAC5B,MAAMC,EAAMD,EAAIE,eAAeC,aACzBC,EAAYH,GAAKI,QAAU,CAAE,EAC7BC,EAAYP,GAASnI,OAAO2I,KAAKH,GACjCI,EAAUF,EAAUnB,IAAKsB,GAAML,EAASK,IAC9C,MAAO,CAAEC,IAAKN,EAAUO,cAAeH,EAASI,YAAaN,KAUjD,SAAAO,EACd5B,EAA4B,IAE5B,MAAMc,EAAQd,EAAME,IAAKC,GAAMA,EAAE7E,MACjC,OAAOsF,EAAcE,EACvB,CCFM,SAAUe,EAAKC,GACnB,MAAMC,EAA4B,iBAAVD,EAAqBA,EAAQA,EAAMxG,KAE3D,OAAOgF,EAAAA,gBACL0B,EAAAA,YAAYhG,EAAe+F,GAC3BE,EAAeA,gBAACC,EAAeA,iBAEnC,CCxB4BtE,EAAAsE,gBAArB,MACL,WAAAzF,CACmB0F,EACkCC,GADlCjG,KAASgG,UAATA,EACkChG,KAAWiG,YAAXA,CACjD,CAEJ,eAAMC,CACJtB,EACAuB,GAEA,MAAMC,EACJpG,KAAKgG,UAAUrE,IACb9B,EACA+E,EAAIyB,eAENrG,KAAKgG,UAAUrE,IAA0B9B,EAAe+E,EAAI0B,YAM9D,OAJIF,GAAapG,KAAKiG,mBACdjG,KAAKiG,YAAYM,UAAU3B,EAAKwB,GAGjCD,EAAKK,QACb,GAtByB/E,EAAAsE,gBAAA3B,aAAA,CAD3BzH,eAII4H,UAAA,EAAAkC,EAAAA,YAAYlC,EAAAA,QAAA,EAAA/G,SAAOoC,sCADQ8G,EAASA,UAAAlK,UAF5BuJ,mBCQmBtE,EAAAkF,oBAAzB,MAAA,WAAArG,GACGN,KAAA4G,MAAQ,IAAIC,GASrB,CAPC,GAAAC,CAAIC,EAAsBC,GACxBhH,KAAK4G,MAAME,IAAIC,EAAKC,EACrB,CAED,GAAArF,CAAaoF,GACX,OAAO/G,KAAK4G,MAAMjF,IAAIoF,EACvB,GAT6BtF,EAAAkF,oBAAAvC,aAAA,CAD/BzH,EAAAA,WAAW,CAAEC,MAAOE,EAAKA,MAACE,WACd2J,uBC0BoBlF,EAAAwF,qBAA1B,MACL,WAAA3G,CAC2C4G,EACxBC,GADwBnH,KAAQkH,SAARA,EACxBlH,KAAOmH,QAAPA,CACf,CAEJ,UAAMC,CAAKvC,EAAcwC,GACvB,IAAK,MAAMnF,KAAWlC,KAAKkH,eACnBhF,EAAQsE,OAAOxG,KAAKmH,QAAStC,EAAKwC,EAE3C,GAV8B5F,EAAAwF,qBAAA7C,aAAA,CADhCzH,EAAAA,WAAW,CAAEC,MAAOE,EAAKA,MAACE,UAGtBuH,EAAAA,QAAA,EAAA/G,SAAOiC,4CACkBkH,EAAmBA,uBAHpCM,wBClCb,MAOMK,EAAgBnI,IAAoC,CACxDA,OACAG,YAAgBH,EAAH,2BACbvB,UAAU,EACVgB,KAAMsF,SAGQ,SAAAqD,EACdC,EACAC,GAEA,MAAMC,EAlBkB,CAACD,GAClBA,EACJE,MAAM,KACNC,OAAQ5D,GAAMA,EAAE6D,WAAW,MAC3B9D,IAAKC,GAAMA,EAAE8D,MAAM,IAcAC,CAAkBN,GAAW1D,IAAIuD,GACvD,MAAO,CACLU,OAAQ,CACNlF,EAAAA,IAAI2E,MACDC,EAAc3D,IAAIkE,YACrBC,eAAa,CACXC,QAAS,wCAAwCX,QAEnDY,gBAAc,CACZ9I,YAAa,oCAEf+I,uBAAqB,CACnB/I,YAAa,uCAGjB2F,OAAQ,CAACQ,EAAYiC,GAAgBY,EAAKA,SAE9C,CAEM,SAAUC,EACdlL,EACAmK,EACAjK,EACAuG,GAEA,MAAM0E,EAAQnL,GAAQoL,WAAapL,EACnCyG,EAAWkE,OAAOU,QAASC,GAAMA,EAAEH,EAAOhB,EAAYjK,IACtDuG,EAAWmB,QAAQyD,QAAQ,CAACC,EAAGC,IAAUD,EAAEH,EAAOhB,EAAYoB,GAChE,CAEM,SAAUC,EAAsBrB,GACpC,OAAOpG,eAEL0H,EACAC,GAEA,MAAM7I,EAAcF,KAAKE,IAAIjE,IAAIuL,GAEjC,IACEtH,EAAI8I,MACF,gCAAgCxB,wBAAiCyB,KAAKC,UAAUJ,EAAWvD,kBAE7F,MAAM4D,UAAEA,EAASC,MAAEA,EAAKC,OAAEA,GAAWN,EACrC,aAAe/I,KAAKsJ,YAAoC9B,MACnDsB,EAAWvD,cACd4D,EACAC,EACAC,EAEH,CAAC,MAAOxH,GAEP,MADA3B,EAAI4B,MAAM,iBAAiB0F,YAAsB3F,GAC3CA,CACP,CACH,CACF,UAEgB0H,EACdC,EACAhC,EACAtF,GAWA,OATA1F,OAAOiN,eACLD,EAAgBf,WAAae,EAC7BhC,EACA,CACER,MAAO9E,EACPwH,UAAU,IAIPlN,OAAOmN,yBACZH,EAAgBf,WAAae,EAC7BhC,EAEJ,CCnGM,MAAgBoC,UAAgCC,EAAAA,YAIpD,WAAAvJ,CAAsBwJ,GACpBC,QACA/J,KAAK8J,cAAgBA,CACtB,CAED,eAAIR,GACF,MAAUU,MAAM,kBACjB,QC8EUC,SACajK,KAAGE,IAAGE,EAAOA,QAACnE,IAAIgO,EAAoB9K,KAAM,CAEpE,qBAAO+K,CACLC,GAEA,IACE,OAAOC,EAAYA,aAACC,SAASF,EAE9B,CAAC,MAAOtI,GACP,OAAOyI,EAAUA,WAACD,SAASF,EAC5B,CACF,CAED,sCAAOI,CACLjB,EACAkB,EAAiBvL,EAAAA,gBAAgBwL,WAEjC,MAAMC,EAA2BpB,EAAYqB,MACvCC,EACJxI,EAAAA,SAAST,IACP2H,EAAYhJ,YACZ8B,WAAS2E,IAAI9H,EAAeA,gBAAC4L,SAC1B,CAAA,EAGP,MAAMC,UAAwBlB,EAC5B,WAAAtJ,CAAYwJ,GACVC,MAAMD,GACN9J,KAAK+K,aAAed,EAAoBC,eAAeQ,EACxD,CAED,eAAapB,GACX,MAAM0B,EAAiBhL,KAAK8J,cAAcnI,IAAIhC,GAC9C,OAAIqL,EAAuBhL,KAAK+K,aAAa9O,IAAI+O,GAC1ChL,KAAK+K,YACb,EAGH,IAAK,MAAOvD,EAAYyD,KAAczO,OAAO0O,QAAQN,GAAgB,CACnE,MACMnD,EAAY,CAAC+C,EAAQhD,MADZyD,EAAUE,QAAU,IACcpH,IAAKqH,GAAM,IAAIA,IAC7DxD,OAAQyD,GAAYA,GAAWA,EAAQC,QACvCC,KAAK,KAGFhO,EAAagM,EACjBuB,EACAtD,EAHcqB,EAAmBrB,IAO/BjK,GAGFgL,EAAmBuC,EAAiBtD,EAAYjK,EAF7BgK,EAAiBC,EAAYC,GAInD,CAED,OAAOqD,CACR,CAED,aAAOU,CAA6Bd,GAClC,MAAMxK,EAAM+J,EAAoB/J,IAAIjE,IAAIgO,EAAoBuB,QACtDC,EAAYC,EAAAA,MAAMD,UAAUf,GAC5BjD,EAAYkE,cAAYF,GACxBG,EAAiBlB,EAAYvL,KAC7BmK,EAAcW,EAAoBC,eAAeQ,IAGjDpL,YAAEA,EAAWuM,MAAEA,EAAKC,cAAEA,EAAapJ,KAAEA,GACzCuH,EAAoB8B,4BAA4BrB,GAElDxK,EAAI8I,MAAM,kCAAkC4C,GAE5C,MAAMI,EAAiB/B,EAAoBM,gCACzCjB,GAGF,IAIM2C,EAJN,cAIqCD,EAGnC,WAAA1L,CAAYwJ,GACVC,MAAMD,GAHS9J,KAAAkM,GAAaR,EAAAA,MAAMQ,GAAGxB,GAIrCxK,EAAIQ,KACF,6CAA6CkL,aAA0BnE,IAE1E,CA4BD,YAAM0E,CAAOpF,EAAsBqF,GACjC,OAAOpM,KAAKsJ,YAAY6C,OACtBpF,EACAqF,EAAQjD,UAEX,CAmBK,gBAAAkD,CACUtF,EACCuF,EACNF,GAET,OAAOpM,KAAKsJ,YAAY+C,WACtBtF,EACAqF,EAAQjD,UACRiD,EAAQhD,MAEX,CAWD,eAAMmD,CAAwBxF,EAA6BC,GACzD,OAAOhH,KAAKsJ,YAAYiD,UAAUxF,EAAgBC,EACnD,CAkBK,YAAAwF,CACUzF,EACEC,EAEPoF,GAET,OAAOpM,KAAKsJ,YAAYkD,OAAOzF,EAAgBC,EAChD,CAqCK,eAAAyF,CACatN,EACFgD,EACNiK,GAGT,MAAMjD,UAAEA,EAASE,OAAEA,EAAMD,MAAEA,GAAUgD,EAIrC,OAHAjK,EAAOA,EAAK4B,IACT2I,IAAoB,iBAANA,EAAiBC,SAASD,GAAKA,IAAMA,GAE9CvN,GACN,KAAKyN,EAAqBA,sBAACC,QACzB,MACF,KAAKD,EAAqBA,sBAACE,QACzB3K,EAAK4K,KAAK5D,GACV,MACF,KAAKyD,EAAqBA,sBAACI,QACzB7K,EAAK4K,KAAK5D,EAAqBC,GAEjC,KAAKwD,EAAqBA,sBAACK,aAG7B,OAAOjN,KAAKsJ,YAAYmD,UAAUtN,KAASgD,EAC5C,CAkBD,eAAM+K,CAAkBC,GACtB,MAAMjN,EAAMF,KAAKE,IAAIjE,IAAI+D,KAAKkN,WAE9B,IAAIE,EADJlN,EAAImN,QAAQ,gBAAgBzB,GAE5B,IACEwB,QAAgBpN,KAAKsJ,YAAY4D,UAC/BC,EAAKpJ,IAAK4E,GAAM,IAAI+B,EAAY/B,IAEnC,CAAC,MAAO9G,GAEP,MADA3B,EAAI4B,MAAM,wBAAwB8J,EAAkB/J,GAC9CA,CACP,CAID,OAHA3B,EAAIQ,KACF,eAAekL,aAA2BwB,EAAgBpN,KAAKkM,OAE1DkB,CACR,CAeD,YAAM5B,CAAe2B,GACnB,MAAMjN,EAAMF,KAAKE,IAAIjE,IAAI+D,KAAKwL,QAE9B,IAAI4B,EADJlN,EAAImN,QAAQ,gBAAgBzB,GAE5B,IACEwB,QAAgBpN,KAAKsJ,YAAYkC,OAAO2B,EACzC,CAAC,MAAOtL,GAEP,MADA3B,EAAI4B,MAAM,wBAAwB8J,EAAkB/J,GAC9CA,CACP,CAID,OAHA3B,EAAIQ,KACF,eAAekL,aAA2BwB,EAAgBpN,KAAKkM,OAE1DkB,CACR,CAWD,aAAME,CAAsBC,GAC1B,MAAMrN,EAAMF,KAAKE,IAAIjE,IAAI+D,KAAKsN,SAC9B,IAAIE,EACJ,IACEtN,EAAI8I,MAAM,WAAWuE,EAAIE,UAAU7B,MAAmB2B,KACtDC,QAAaxN,KAAKsJ,YAAYgE,QAAQC,EACvC,CAAC,MAAO1L,GAEP,MADA3B,EAAI4B,MAAM,aAAa8J,aAA0B2B,IAAO1L,GAClDA,CACP,CAGD,OADA3B,EAAIQ,KAAK,QAAQ8M,EAAKC,UAAU7B,KACzB4B,CACR,CAWD,UAAMA,CAAiCE,GACrC,MAAMC,EAAK9B,KAAS6B,EAAYnI,eAChC,QAAkB,IAAPoI,EACT,MAAM,IAAIC,EAAeA,gBAAC,MAAM5N,KAAKkM,eAEvC,MAAMhM,EAAMF,KAAKE,IAAIjE,IAAI+D,KAAKwN,MAC9B,IAAIA,EACJ,IACEtN,EAAI8I,MAAM,WAAW4C,UAAuB5L,KAAKkM,MAAMyB,KACvDH,QAAaxN,KAAKsJ,YAAYkE,KAAKG,EACpC,CAAC,MAAO9L,GAKP,MAJA3B,EAAI4B,MACF,kBAAkB8J,aAA0B+B,IAC5C9L,GAEIA,CACP,CAGD,OADA3B,EAAIQ,KAAK,QAAQkL,aAA2B4B,EAAaxN,KAAKkM,OACvDsB,CACR,CAqBD,eAAMK,CAAkBC,GACtB,MAAM5N,EAAMF,KAAKE,IAAIjE,IAAI+D,KAAK6N,WAE9B,IAAIE,EACJ,IACE7N,EAAIQ,KAAK,YAAYoN,EAAKL,UAAU7B,KACpCmC,QAAgB/N,KAAKsJ,YAAYuE,UAAUC,EAC5C,CAAC,MAAOjM,GAEP,MADA3B,EAAI4B,MAAMD,GACJA,CACP,CACD,OAAOkM,CACR,CAkBD,YAAMC,CACwBN,EACpBI,GAER,MAAM5N,EAAMF,KAAKE,IAAIjE,IAAI+D,KAAKgO,QACxBL,EAAK9B,KAAS6B,EAAYnI,eAChC,QAAkB,IAAPoI,EACT,MAAM,IAAIC,EAAeA,gBAAC,MAAM5N,KAAKkM,eAEvC,IAAI6B,EACJ,IACE7N,EAAIQ,KAAK,YAAYkL,UAAuB5L,KAAKkM,MAAMyB,KACvDI,QAAgB/N,KAAKsJ,YAAY0E,OAC/B,IAAItD,EAAY,IACXoD,EACH,CAAC9N,KAAKkM,IAAKyB,IAGhB,CAAC,MAAO9L,GAEP,MADA3B,EAAI4B,MAAMD,GACJA,CACP,CACD,OAAOkM,CACR,CAYD,eAAME,CAAwBV,GAC5B,MAAMrN,EAAMF,KAAKE,IAAIjE,IAAI+D,KAAKiO,WAC9B,IAAIT,EACJ,IACEtN,EAAI8I,MAAM,YAAYuE,EAAIE,UAAU7B,MAAmB2B,KACvDC,QAAaxN,KAAKsJ,YAAY2E,UAAUV,EACzC,CAAC,MAAO1L,GAKP,MAJA3B,EAAI4B,MACF,oBAAoB8J,aAA0B2B,IAC9C1L,GAEIA,CACP,CAGD,OADA3B,EAAIQ,KAAK,WAAW8M,EAAKC,UAAU7B,KAC5B4B,CACR,CAWD,YAAM,CAAmCE,GACvC,MAAMxN,EAAMF,KAAKE,IAAIjE,IAAI+D,KAAKkO,QACxBP,EAAK9B,KAAS6B,EAAYnI,eAChC,QAAkB,IAAPoI,EACT,MAAM,IAAIC,EAAeA,gBAAC,MAAM5N,KAAKkM,eAEvC,IAAIiC,EACJ,IACEjO,EAAI8I,MACF,YAAY4C,UAAuB5L,KAAKkM,MAAgByB,KAE1DQ,QAAYnO,KAAKsJ,YAAY4E,OAAOP,EACrC,CAAC,MAAO9L,GAKP,MAJA3B,EAAI4B,MACF,oBAAoB8J,aAA0B+B,IAC9C9L,GAEIA,CACP,CAED,OADA3B,EAAIQ,KAAK,WAAWkL,aAA0B+B,KACvCQ,CACR,GAGH,OAnYQ/J,aAAA,CAPL5B,EAAsBkI,EAAa,MAAO,eAC1CxC,EAAYA,aAAC,CAAEC,QAAS,YAAYyD,wBACpC3D,EAAAA,SAAS,CAAE9I,KAAM,MAAOG,YAAa,6BACrC8O,EAAQA,SAAC,CAAEjP,KAAM,YAAavB,UAAU,EAAMyQ,KAAMC,EAAAA,iBACpDlG,gBAAc,CACb9I,YAAgBsM,EAAH,0BAEYrH,UAAA,EAAA+D,EAAAA,2IAK1B2D,EAAAxD,UAAA,SAAA,MAmBKrE,aAAA,CAjBL5B,EAAsBkI,EAAa,MAAO,yBAC1CxC,EAAYA,aAAC,CAAEC,QAAS,YAAYyD,wBACpC3D,EAAAA,SAAS,CAAE9I,KAAM,MAAOG,YAAa,6BACrC2I,WAAS,CACR9I,KAAM,OACNG,YAAa,yCAEd8O,WAAS,CACRjP,KAAM,YACNvB,UAAU,EACVyQ,KAAMC,EAAcA,eACpBhP,YAAa,mBAEd8O,EAAQA,SAAC,CAAEjP,KAAM,QAASvB,UAAU,EAAM0B,YAAa,kBACvD8I,gBAAc,CACb9I,YAAgBsM,EAAH,uBAGZrH,EAAAA,QAAA,EAAAgK,QAAM,QACNhK,EAAAA,QAAA,EAAAgK,QAAM,SACNhK,UAAA,EAAA+D,EAAAA,kJAOF2D,EAAAxD,UAAA,aAAA,MAWKrE,aAAA,CATL5B,EAAsBkI,EAAa,MAAO,kBAC1CxC,EAAYA,aAAC,CAAEC,QAAS,YAAYyD,wBACpC3D,EAAAA,SAAS,CAAE9I,KAAM,MAAOG,YAAa,6BACrC8I,gBAAc,CACb9I,YAAgBsM,EAAH,mBAEd4C,sBAAoB,CACnBlP,YAAa,MAAMsM,8CAEJrH,EAAAA,QAAA,EAAAgK,QAAM,QAAqBhK,EAAAA,QAAA,EAAAgK,QAAM,4IAEjDtC,EAAAxD,UAAA,YAAA,MAkBKrE,aAAA,CAhBL5B,EAAsBkI,EAAa,MAAO,sBAC1CxC,EAAYA,aAAC,CAAEC,QAAS,YAAYyD,wBACpC3D,EAAAA,SAAS,CAAE9I,KAAM,MAAOG,YAAa,6BACrC2I,EAAAA,SAAS,CAAE9I,KAAM,QAASG,YAAa,uBACvC8O,WAAS,CACRjP,KAAM,YACNvB,UAAU,EACVyQ,KAAMC,EAAcA,eACpBhP,YAAa,oCAEd8I,gBAAc,CACb9I,YAAgBsM,EAAH,mBAEd4C,sBAAoB,CACnBlP,YAAa,MAAMsM,8CAGlBrH,EAAAA,QAAA,EAAAgK,QAAM,QACNhK,EAAAA,QAAA,EAAAgK,QAAM,UAENhK,UAAA,EAAA+D,EAAAA,kJAGF2D,EAAAxD,UAAA,SAAA,MAqCKrE,aAAA,CAnCL5B,EAAsBkI,EAAa,MAAO,2BAC1CxC,eAAa,CACZC,QAAS,oCAAoCyD,OAE9C3D,WAAS,CACR9I,KAAM,SACNG,YAAa,sCAEd2I,WAAS,CACR9I,KAAM,OACNG,YACE,qEAEH8O,WAAS,CACRjP,KAAM,YACNvB,UAAU,EACVyQ,KAAMC,EAAcA,eACpBhP,YAAa,oCAEd8O,WAAS,CACRjP,KAAM,QACNvB,UAAU,EACV0B,YAAa,uCAEd8O,WAAS,CACRjP,KAAM,SACNvB,UAAU,EACV0B,YAAa,uCAEd8I,gBAAc,CACb9I,YAAgBsM,EAAH,mBAEd4C,sBAAoB,CACnBlP,YAAa,MAAMsM,8CAGlBrH,EAAAA,QAAA,EAAAgK,QAAM,WACNhK,EAAAA,QAAA,EAAAgK,QAAM,SACNhK,UAAA,EAAA+D,EAAAA,iJAoBF2D,EAAAxD,UAAA,YAAA,MAkBKrE,aAAA,CAhBL5B,EAAsBkI,EAAa,OAAQ,QAC3CxC,EAAYA,aAAC,CAAEC,QAAS,gBAAgByD,OACxC6C,UAAQ,CACPnP,YAAa,eAAesM,EAC5B8C,OAAQ,CACN9P,KAAM,QACN+P,MAAO,CAAEC,KAAMC,EAAaA,cAACnE,OAGhCoE,qBAAmB,CAClBxP,YAAa,KAAKsM,4BAEnBmD,wBAAsB,CAAEzP,YAAa,+BACrC0P,iCAA+B,CAC9B1P,YAAa,8CAEEiF,UAAA,EAAA0K,EAAAA,kIAgBhBhD,EAAAxD,UAAA,YAAA,MAeKrE,aAAA,CAbL5B,EAAsBkI,EAAa,QACnCxC,EAAYA,aAAC,CAAEC,QAAS,gBAAgByD,OACxC6C,UAAQ,CACPnP,YAAa,eAAesM,EAC5B8C,OAAQ,CAAEE,KAAMC,EAAaA,cAACnE,MAE/BoE,qBAAmB,CAClBxP,YAAgBsM,EAAH,2BAEdmD,wBAAsB,CAAEzP,YAAa,+BACrC0P,iCAA+B,CAC9B1P,YAAa,8CAEDiF,UAAA,EAAA0K,EAAAA,mIAcbhD,EAAAxD,UAAA,SAAA,MAWKrE,aAAA,CATL5B,EAAsBkI,EAAa,MAAO,aAC1CxC,EAAYA,aAAC,CAAEC,QAAS,cAAcyD,oBACtCwC,EAAQA,SAAC,CAAEjP,KAAM,MAAOvB,UAAU,EAAMgB,KAAM,UAC9CwJ,gBAAc,CACb9I,YAAgBsM,EAAH,6BAEd4C,sBAAoB,CACnBlP,YAAa,MAAMsM,8CAENrH,EAAAA,QAAA,EAAA+D,QAAM,kIAapB2D,EAAAxD,UAAA,UAAA,MAWKrE,aAAA,CATL5B,EAAsBkI,EAAa,MAAOhI,GAC1CkB,EAAmBkI,GACnB5D,EAAYA,aAAC,CAAEC,QAAS,cAAcyD,oBACtCxD,gBAAc,CACb9I,YAAgBsM,EAAH,6BAEd4C,sBAAoB,CACnBlP,YAAa,MAAMsM,8CAETrH,EAAAA,QAAA,EAAAkB,EAAYqG,+HAoBvBG,EAAAxD,UAAA,OAAA,MAqBKrE,aAAA,CAnBL5B,EAAsBkI,EAAa,MAAUhI,EAAH,SAC1CkB,EAAmBkI,GACnB5D,eAAa,CACZC,QAAS,uBAAuByD,iCAEjC6C,UAAQ,CACPnP,YAAa,4CAA4CsM,EACzD8C,OAAQ,CACN9P,KAAM,QACN+P,MAAO,CAAEC,KAAMC,EAAaA,cAACnE,OAGhCtC,gBAAc,CACb9I,YAAgBoL,EAAH,mCAEd8D,sBAAoB,CACnBlP,YAAa,MAAMsM,8CAEpBmD,wBAAsB,CAAEzP,YAAa,+BACrBiF,UAAA,EAAA0K,EAAAA,kIAYhBhD,EAAAxD,UAAA,YAAA,MAkBKrE,aAAA,CAhBL5B,EAAsBkI,EAAa,MAAOhI,GAC1CkB,EAAmBkI,GACnB5D,eAAa,CACZC,QAAS,uBAAuByD,iCAEjC6C,UAAQ,CACPnP,YAAa,4CAA4CsM,EACzD8C,OAAQ,CAAEE,KAAMC,EAAaA,cAACnE,MAE/BtC,gBAAc,CACb9I,YAAgBoL,EAAH,mCAEd8D,sBAAoB,CACnBlP,YAAa,MAAMsM,8CAEpBmD,wBAAsB,CAAEzP,YAAa,+BAEnCiF,EAAAA,QAAA,EAAAkB,EAAYqG,IACZvH,UAAA,EAAA0K,EAAAA,sFAAavD,EAAKA,mDAqBpBO,EAAAxD,UAAA,SAAA,MAYKrE,aAAA,CAVL5B,EAAsBkI,EAAa,SAAU,aAC7C9G,EAAmBkI,GACnB5D,EAAYA,aAAC,CAAEC,QAAS,cAAcyD,oBACtCwC,EAAQA,SAAC,CAAEjP,KAAM,MAAOvB,UAAU,EAAMgB,KAAM,UAC9CwJ,gBAAc,CACb9I,YAAgBsM,EAAH,6BAEd4C,sBAAoB,CACnBlP,YAAa,MAAMsM,8CAEJrH,EAAAA,QAAA,EAAA+D,QAAM,kIAgBtB2D,EAAAxD,UAAA,YAAA,MAWKrE,aAAA,CATL5B,EAAsBkI,EAAa,SAAUhI,GAC7CkB,EAAmBkI,GACnB5D,EAAYA,aAAC,CAAEC,QAAS,YAAYyD,oBACpCxD,gBAAc,CACb9I,YAAgBsM,EAAH,kCAEd4C,sBAAoB,CACnBlP,YAAa,MAAMsM,8CAEPrH,EAAAA,QAAA,EAAAkB,EAAYqG,+HAqBzBG,EAAAxD,UAAA,SAAA,MApaGwD,EAAsB7H,EAAAA,WAAA,CAJ3B8K,EAAAA,WAAWzH,GACX0H,EAAAA,QAAQvD,GACRwD,EAAAA,eAAe1E,GACfhF,EAAKgF,qCAIuB/D,EAAAA,uBAHvBsF,GAuaCA,CACR,CAED,kCAAOF,CACL5B,GAEA,MAAM+B,EAAKR,EAAAA,MAAMQ,GAAG/B,GACdkF,EAAWjN,EAAAA,SAAST,IACxBwI,EACA/H,EAAAA,SAAS2E,IAAIuI,SAAOC,SAAUrD,IAE1BsD,EAAeH,GAAUlN,MAAQ,GAGjCsN,EACJ/Q,MAAMC,QAAQ6Q,IAAiBA,EAAa/B,OAAS,EACjD/O,MAAMgR,KAAK,IAAIC,IAAI,IAAIH,KACvB9Q,MAAMgR,KAAK,IAAIC,IAAI,CAACzD,KAEpB5M,EAAc8C,EAAAA,SAAS9C,YAAY6K,GAWzC,MAAO,CACLzH,KAXW,IAAI+M,EAAWlE,KAAK,MAY/BjM,cACAwM,cAZwC2D,EAAW1L,IAAKgD,IACjD,CACL5H,KAAM4H,EACNzH,YAAa8C,EAAQA,SAAC9C,YAAY6K,EAAYpD,GAC9CnJ,UAAU,EACVgB,KAAMsF,UAQR2H,MAAO,IAAI5G,IACToK,GAAUO,UAAY3K,EAAOsG,KAAK8D,EAASO,WAAa3K,EAAOsG,KAAK,IAEzE,UCzkBwC9J,EAAAoO,+BAApC,MACL,WAAAvP,CAA6BwP,GAAA9P,KAAQ8P,SAARA,CAAkC,CAE/D,eAAM5J,CAAUtB,EAAuBuB,GACrC,MAAMtB,EAAMD,EAAIE,eAAeC,aACzBsC,EAAMzC,EAAIE,eAAeiL,cAE/B,aADM/P,KAAK8P,SAAS1I,KAAKvC,EAAKwC,GACvBlB,EAAKK,QACb,GARwC/E,EAAAoO,+BAAAzL,aAAA,CAD1CzH,EAAAA,WAAW,CAAEC,MAAOE,EAAKA,MAACE,4CAEciK,EAAAA,wBAD5B4I,kCC5CgBpO,EAAAuO,iBAAtB,2BACmBhQ,KAAGE,IAAGE,EAAOA,QAACnE,IAAIgU,EAAiB9Q,KAAM,CAEzD,0BAAO+Q,CACbC,GAEA,OAAOA,EAAOpM,IAAK4B,IAAW,CAC5B1E,QAAY0E,EAAMxG,KAAT,UACTgC,WAAY,IAAMiJ,EAAAA,aAAaC,SAAS1E,KAE3C,CAED,cAAO5E,CACLqP,EACA7P,EAAuC,IAEvC,MAAML,EAAMF,KAAKE,IAAIjE,IAAI+D,KAAKe,SAC9Bb,EAAIQ,KAAK,yCAET,MAAM2P,EAAgBC,EAAAA,QAAQH,OAAOC,GAErC,IAAIG,EAA4B,GAC5BhQ,EAAQiQ,eACVtQ,EAAIQ,KAAK,2DACT6P,EAAgBvQ,KAAKkQ,oBAAoBG,GACzCnQ,EAAIQ,KACF,4BAA4B6P,EAAc9C,iCAI9C,MAAMgD,EAAcJ,EAActM,IAAIkG,EAAoBuB,QAG1D,OAFAtL,EAAIQ,KAAK,aAAa+P,EAAYhD,sBAE3B,CACLlM,OAAQ0O,EACRQ,cACAjP,UAAW,CACT,CACEP,QAASxB,EACT0B,WAAY,IAERZ,EAAQ2G,UAAUnD,IAAK2M,IACrBxQ,EAAIQ,KAAK,+BAA+BgQ,EAAEvR,MACnC,IAAIuR,KACP,IAIZ/J,EAAmBA,oBACnBM,EAAoBA,qBACpB,CACEhG,QAAS0P,EAAeA,gBACxBC,SAAUf,EAA8BA,mCAEvCU,GAGR,GAzDUP,EAAAA,iBAAgBC,EAAA7L,EAAAA,WAAA,CAD5BE,EAAAA,OAAO,CAAA,IACK0L,oBCHAa,EAAAA,YAANC,EAAA,MACL,yBAAaC,CACXxQ,GAEA,MAAMyQ,gBAAEA,EAAeR,aAAEA,EAAYtJ,SAAEA,GAAa3G,EAG9C6P,SADgBrQ,EAAgBU,cAAcF,IAC5B6P,QAElBa,EAOU,CAAClR,EAAgBgB,QAAQR,IAWzC,OATIyQ,GACFC,EAAQlE,KACNiD,mBAAiBjP,QAAQqP,EAAS,CAChCI,eACAtJ,cAKC,CACL3F,OAAQuP,EACRG,QAASA,EAEZ,GA/BUJ,EAAAA,YAAWC,EAAA1M,EAAAA,WAAA,CADvBE,EAAAA,OAAO,CAAA,IACKuM,eCPP,MAAOK,UAAkBC,EAAAA,eAC7B,WAAA7Q,CAAY8Q,GACVrH,MAAMqH,EAAKF,EAAU/R,KACtB,ECA8BsC,EAAA4P,qBAA1B,MACL,MAAMC,EAAkBC,GACtB,MAAM3M,EAAM2M,EAAKzM,eACX0M,EAAW5M,EAAImL,cACf0B,EAAU7M,EAAIG,aAEd2M,EAAyC,eAA1BC,EAAAA,kBAAkBC,IACjCN,aAAqBO,EAAAA,YACzBP,EAAY,IAAIQ,EAAAA,cAAcR,EAAUS,UAG1CP,EAASQ,OAAQV,EAAwBW,MAAMC,KAAK,CAClDF,OAASV,EAAwBW,KACjCnQ,MAAO4P,EAAeJ,EAAUnS,KAAOmS,EAAUS,QACjDI,WAAW,IAAIC,MAAOC,cACtB3P,KAAM+O,EAAQa,IACdtK,OAAQyJ,EAAQzJ,QAEnB,GAlB8BvG,EAAA4P,qBAAAjN,aAAA,CADhCmO,WACYlB,wBCYN,MAAMmB,EAAuC,CAClDC,MAAO,wCACPnT,YAAa,kDACboT,QAAS,QACThQ,KAAM,OACNiQ,gBAAiB,GACjBC,mBAAoB,GACpBC,KAAM,CACJjU,KAAM,OACNkU,OAAQ,SACRC,aAAc,MACd5T,KAAM,gBACNG,YAAa,kBACb0T,GAAI,UAENC,sBAAsB,EACtBC,cAAe,iBCnBJC,EAUX,WAAA7S,CAAYC,GACVP,KAAKO,QAAU,IACVA,EAEN,CAEO,SAAA6S,GACN,IAAIC,EAAM,GAKV,OAJIrT,KAAKO,QAAQ+S,iBAEfD,GAAO,yDADKrT,KAAKuT,IAAIvT,KAAKO,QAAQ+S,sDAIlCD,EACA,0GAE4CrT,KAAKO,QAAQ2S,eAAiBV,EAAqBU,0BAGlG,CAED,gBAAAM,GACE,MAAMC,EAA+B,CAAA,EAKrC,OAJIzT,KAAKO,QAAQmT,cACfD,EAAuB,cAAIzT,KAAKuT,IAAIvT,KAAKO,QAAQmT,aAAa,IAGzD,CACLC,gBAAiB3T,KAAKO,QAAQkS,SAC3BgB,EACHG,UAAW5T,KAAKoT,YAChBS,eAAgB,CACdZ,qBAAsBjT,KAAKO,QAAQ0S,sBAErCa,gBAAiB9T,KAAKO,QAAQmC,KACvB1C,KAAKO,QAAQmC,KAAhB,kBACAxF,EACJ6W,gBAAiB/T,KAAKO,QAAQmC,KACvB1C,KAAKO,QAAQmC,KAAhB,kBACAxF,EAEP,CAED,GAAAqW,CAAIS,EAAcC,GAAe,GAC/B,MAAMC,EAAWxR,EAAK6I,KAAKvL,KAAKO,QAAQ4T,YAAc,GAAIH,GACpDT,EAAMa,EAAAA,aAAaF,EAAU,CAAEG,SAAU,WAC/C,OAAOJ,EAAM,yBAA2BV,EAAMA,CAC/C,QClEUe,EACX,WAAAhU,CACmBiU,EACAhU,GADAP,KAAGuU,IAAHA,EACAvU,KAAOO,QAAPA,CACf,CAEI,cAAAiU,GACN,MAAMlV,EAAcU,KAAKO,QAAQmC,KAC7B1C,KAAKO,QAAQjB,YACb,GACA,oBAAoBU,KAAKO,QAAQmC,2CACjC,YAAY1C,KAAKO,QAAQmC,wCACzB1C,KAAKO,QAAQjB,YAEXmV,GAAS,IAAIC,mBAChBC,SAAS3U,KAAKO,QAAQkS,OACtBmC,eAAetV,GACfuV,WAAW7U,KAAKO,QAAQmS,SAAW,SACnCoC,cAAc9U,KAAKO,QAAQsS,MAAQL,EAAqBK,MACxDkC,QAEH,OAAOC,EAAaA,cAACR,eAAexU,KAAKuU,IAAKE,EAAQ,CACpDQ,YAAajV,KAAKO,QAAQ0U,aAAe,IAE5C,CAEM,YAAAC,GACL,MAAMC,EAAWnV,KAAKwU,iBAChBY,EAAY,IAAIjC,EAAgB,CACpCV,MAAOzS,KAAKO,QAAQkS,MACpB/P,KAAM1C,KAAKO,QAAQmC,MAAQ8P,EAAqB9P,KAChDuQ,qBAAsBjT,KAAKO,QAAQ0S,uBAAwB,EAC3DkB,WAAYnU,KAAKO,QAAQ4T,WACzBT,YAAa1T,KAAKO,QAAQoS,gBAC1BW,eAAgBtT,KAAKO,QAAQqS,mBAC7BM,cAAelT,KAAKO,QAAQ2S,gBAE9B8B,gBAAcK,MACZrV,KAAKO,QAAQmC,MAAQ8P,EAAqB9P,KAC1C1C,KAAKuU,IACLY,EACA,IACKC,EAAU5B,oBAGlB,ECTU,MAAA8B,EAAU,cACVC,EAAe,cAE5BnT,EAAAA,SAASoT,gBAAgBD,EAAcD,0IlBiCrCtT,EACAS,EACAC,KAEA,MAAMC,EAGF,CACFC,IAAK,CAAC6S,EAAAA,sBAAsBC,SAAU5S,OACtCC,KAAM,CAAC0S,EAAAA,sBAAsBE,WAAY1S,QACzCC,IAAK,CAACuS,EAAAA,sBAAsBG,WAAYxS,OACxCC,MAAO,CAACoS,EAAAA,sBAAsBG,WAAYtS,SAC1CC,OAAQ,CAACkS,EAAAA,sBAAsBI,WAAYrS,YAGtCC,EAAQC,GAAuBf,EAAWF,GACjD,OAAOV,EAAmBC,EAAkByB,GACxCtG,EAAKA,MAACwG,EAAkBA,sBACxBxG,QAAMuG,EAAoBhB,GAChC,2KmBQU,iBAAWoT,GAKjB,OAJK9V,KAAKG,UAERH,KAAKG,QAAU,IAAI4V,EAAMA,OAAC,kBAErB/V,KAAKG,OACb,CAaD,iBAAO6V,CAAWzB,GAEhB,OADAvU,KAAKuU,IAAMA,EACJvU,IACR,CAcD,mBAAOiW,CAAaC,GAGlB,OAFAlW,KAAKG,QAAU+V,GAAgB,IAAIH,EAAMA,OAAC,iBAC1C/V,KAAKuU,IAAI4B,UAAUnW,KAAKG,SACjBH,IACR,CAgBD,iBAAOoW,CACLC,EAA0B,GAC1BC,EAAyB,CAAC,MAAO,OAAQ,MAAO,WAEhD,MAAMC,EACQ,MAAZF,EAAkB,IAAMA,EAAQtS,IAAKyS,GAAMA,EAAElL,OAAOmL,eAEhDC,EAA2B,CAC/BC,OAAQ,CAACA,EAAQC,IAEVD,EAGgB,MAAnBJ,GACC7X,MAAMC,QAAQ4X,IACbA,EAAeM,SAASF,EAAOF,eAE1BG,EAAS,MAAM,QAGxBA,EAAS,IAAI1F,EAAU,UAAUyF,kBAVbC,EAAS,MAAM,GAYrCE,aAAa,EACbC,QAAST,EAAa/K,KAAK,MAI7B,OADAvL,KAAKuU,IAAI6B,WAAWM,GACb1W,IACR,CAcD,gBAAOgX,CAAUzW,GACf,IAEE,MAAM0W,EAASC,QAAQ,UACvBlX,KAAKuU,IAAI4C,IAAIF,EAAO1W,IACpBP,KAAK8V,OAAO5V,IAAI,0CAEjB,CAAC,MAAO2B,GACP7B,KAAK8V,OAAOsB,KAAK,6CAClB,CAED,OAAOpX,IACR,CAcD,mBAAOkV,CAAa3U,GAalB,OAZgB,IAAI+T,EAAetU,KAAKuU,IAAK,CAC3C9B,MAAOlS,EAAQkS,MACfnT,YAAaiB,EAAQjB,YACrBoT,QAASnS,EAAQmS,QACjBhQ,KAAMnC,EAAQmC,MAAQ,MACtBuQ,qBAAsB1S,EAAQ0S,uBAAwB,EACtDkB,WAAY5T,EAAQ4T,WACpBxB,gBAAiBpS,EAAQmT,YACzBd,mBAAoBrS,EAAQ+S,eAC5BJ,cAAe3S,EAAQ2S,gBAEjBgC,eACDlV,IACR,CAcD,qBAAOqX,IAAkBC,GAEvB,OADIA,EAAM7J,OAAS,GAAGzN,KAAKuU,IAAI8C,kBAAkBC,GAC1CtX,IACR,CAaD,uBAAOuX,IAAoBC,GAIzB,OAHAxX,KAAKuU,IAAIgD,oBACHC,EAAQ/J,OAAS,EAAI+J,EAAU,CAAC,IAAInG,yBAEnCrR,IACR,CAcD,4BAAOyX,IAAyBC,GAG9B,OAFIA,EAAajK,OAAS,GACxBzN,KAAKuU,IAAIkD,yBAAyBC,GAC7B1X,IACR,CAgBD,kBAAa2X,CACXC,EAAeC,OAAOC,QAAQlG,IAAImG,OAAS,IAC3CxG,OAA2BrU,EAC3BgD,GAAe,GAEfF,KAAKuU,IAAIyD,OAAOJ,EAAMrG,GAAa0G,KAAK7W,UACtC,GAAIlB,EAAK,CACP,MAAMoS,QAAYtS,KAAKuU,IAAI2D,SAC3BlY,KAAK8V,OAAO5V,IAAI,2CAAiCoS,EAClD,GAEJ,4BhBxQmB6F,GACbC,EAAQA,SAACtY,EAAUqY,2CiBvDnBE,EAAUA,WAAC,IAAIhH,EAAoBA,wECAf1L,IAC5B,MAAM2S,EAAI5M,EAAAA,MAAM/J,IAAIgE,GACpB,IAAK2S,EACJ,MAAM,IAAIxG,EAAAA,cAAc,iCAAiCnM,GAE1D,OADa2E,EAAAA,WAAWD,SAASiO,EAElC"}
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/decaf-model/decorators/decorators.ts","../src/interceptors/AuthInterceptor.ts","../src/request/DecafRequestContext.ts","../src/request/DecafHandlerExecutor.ts","../src/decaf-model/utils.ts","../src/decaf-model/types.ts","../src/decaf-model/FromModelController.ts","../src/interceptors/DecafRequestHandlerInterceptor.ts","../src/decaf-model/DecafModelModule.ts","../src/module.ts","../src/factory/errors/cors.ts","../src/factory/exceptions/DecafErrorFilter.ts","../src/factory/openapi/constants.ts","../src/factory/openapi/SwaggerCustomUI.ts","../src/factory/openapi/SwaggerBuilder.ts","../src/index.ts","../src/factory/NestBootstraper.ts","../src/factory/exceptions/decorators.ts","../src/utils.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null],"names":["Decoration","for","InjectablesKeys","INJECTABLE","extend","decorator","category","cfg","Object","assign","DefaultInjectablesConfig","Injectable","scope","singleton","Scope","DEFAULT","REQUEST","durable","undefined","apply","INJECT","target","propertyKey","descriptor","Inject","ValidationKeys","REQUIRED","ApiProperty","required","MAX","max","maximum","MIN","min","minimum","MAX_LENGTH","maxLength","MIN_LENGTH","minLength","LIST","clazz","c","Array","isArray","type","PATTERN","pat","pattern","source","PersistenceKeys","COLUMN","name","DecorationKeys","DESCRIPTION","description","DECAF_MODULE_OPTIONS","DECAF_ADAPTER_ID","DECAF_HANDLERS","Symbol","DECAF_ADAPTER_OPTIONS","AUTH_HANDLER","AUTH_META_KEY","AuthRole","DecafCoreModule","this","_adapterInstance","log","_logger","Logging","DecafCoreModule_1","constructor","options","moduleRef","createAdapter","info","adapter","conf","alias","getAdapterInstance","forRoot","typeOrmModuleOptions","provide","useValue","useFactory","async","opts","inject","module","providers","exports","onApplicationShutdown","get","shutdown","e","error","isOperationBlocked","ModelConstructor","op","handler","args","Metadata","OperationKeys","REFLECT","BLOCK","ApiOperationFromModel","verb","path","httpToCrud","GET","READ","Get","POST","CREATE","Post","PUT","UPDATE","Put","PATCH","Patch","DELETE","Delete","crudOp","HttpMethodDecorator","ApiExcludeEndpoint","ApiParamsFromModel","props","decorators","map","p","ApiParamDec","String","applyDecorators","__decorate","Global","Module","__param","ModuleRef","OrderedParams","createParamDecorator","order","ctx","req","switchToHttp","getRequest","original","params","orderList","keys","ordered","k","raw","valuesInOrder","keysInOrder","DecafParams","Auth","model","resource","SetMetadata","UseInterceptors","AuthInterceptor","reflector","authHandler","intercept","next","modelName","getHandler","getClass","authorize","handle","Optional","Reflector","DecafRequestContext","cache","Map","set","key","value","DecafHandlerExecutor","handlers","context","exec","res","apiParamSpec","getApiDecorators","methodName","routePath","apiPathParams","split","filter","startsWith","slice","extractPathParams","method","ApiParam","ApiOperation","summary","ApiOkResponse","ApiNoContentResponse","Query","applyApiDecorators","proto","prototype","forEach","d","index","createRouteHandler","pathParams","queryParams","debug","JSON","stringify","direction","limit","offset","persistence","ModelService","statement","Error","resolvePersistenceMethod","defineRouteMethod","ControllerClass","defineProperty","writable","getOwnPropertyDescriptor","AbstractQueryController","LoggedClass","clientContext","super","FromModelController","getPersistence","ModelClazz","forModel","Repository","createQueryRoutesFromRepository","prefix","QUERY","ModelConstr","class","methodQueries","QueryController","_persistence","adapterOptions","objValues","entries","fields","f","segment","trim","join","create","tableName","Model","toKebabCase","modelClazzName","getPK","apiProperties","getRouteParametersFromModel","BaseController","repo","DynamicModelController","pk","listBy","details","paginateBy","page","findOneBy","findBy","a","parseInt","PreparedStatementKeys","FIND_BY","LIST_BY","push","PAGE_BY","FIND_ONE_BY","createAll","data","created","verbose","readAll","ids","read","length","routeParams","id","ValidationError","updateAll","body","updated","update","deleteAll","delete","del","ApiQuery","enum","OrderDirection","Param","ApiNotFoundResponse","ApiBody","schema","items","$ref","getSchemaPath","ApiCreatedResponse","ApiBadRequestResponse","ApiUnprocessableEntityResponse","Body","Controller","ApiTags","ApiExtraModels","composed","DBKeys","COMPOSED","composedKeys","uniqueKeys","from","Set","separator","DecafRequestHandlerInterceptor","executor","getResponse","DecafModelModule","DecafModelModule_1","createModelServices","models","flavour","trackedModels","Adapter","modelServices","autoServices","controllers","H","APP_INTERCEPTOR","useClass","DecafModule","DecafModule_1","forRootAsync","autoControllers","imports","CorsError","ForbiddenError","msg","DecafExceptionFilter","exception","host","response","request","isProduction","LoggedEnvironment","env","BaseError","InternalError","message","status","code","json","timestamp","Date","toISOString","url","Catch","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","BulkCrudOperationKeys","READ_ALL","CREATE_ALL","UPDATE_ALL","DELETE_ALL","logger","Logger","initialize","enableLogger","customLogger","useLogger","enableCors","origins","allowMethods","allowedOrigins","o","toLowerCase","corsOptions","origin","callback","includes","credentials","methods","useHelmet","helmet","require","use","warn","useGlobalPipes","pipes","useGlobalFilters","filters","useGlobalInterceptors","interceptors","start","port","Number","process","PORT","listen","then","getUrl","roles","metadata","UseFilters","m"],"mappings":"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"}
package/dist/for-nest.js CHANGED
@@ -1,2 +1,2 @@
1
- import{Decoration as e,DecorationKeys as t,Metadata as r,metadata as i}from"@decaf-ts/decoration";import{InjectablesKeys as s,DefaultInjectablesConfig as o}from"@decaf-ts/injectable-decorators";import{Injectable as n,Scope as a,Inject as c,Global as p,Module as d,Get as l,Post as h,Put as u,Patch as m,Delete as y,applyDecorators as g,createParamDecorator as f,Optional as w,SetMetadata as b,UseInterceptors as v,Query as A,Param as P,Body as $,Controller as E,Catch as T,UseFilters as S,Logger as O}from"@nestjs/common";import{ValidationKeys as R,Model as k}from"@decaf-ts/decorator-validation";import{PersistenceKeys as I,ModelService as F,Repository as C,OrderDirection as x,PreparedStatementKeys as j,Adapter as L,ForbiddenError as N}from"@decaf-ts/core";import{ApiProperty as D,ApiExcludeEndpoint as B,ApiParam as _,ApiOperation as q,ApiOkResponse as G,ApiNoContentResponse as U,ApiQuery as M,ApiNotFoundResponse as H,ApiBody as z,getSchemaPath as Q,ApiCreatedResponse as J,ApiBadRequestResponse as Y,ApiUnprocessableEntityResponse as K,ApiTags as V,ApiExtraModels as W,DocumentBuilder as X,SwaggerModule as Z}from"@nestjs/swagger";import{__decorate as ee,__param as te,__metadata as re}from"tslib";import{ModuleRef as ie,Reflector as se,APP_INTERCEPTOR as oe}from"@nestjs/core";import{Logging as ne,LoggedClass as ae,toKebabCase as ce,LoggedEnvironment as pe}from"@decaf-ts/logging";import{apply as de}from"@decaf-ts/reflection";import{OperationKeys as le,BulkCrudOperationKeys as he,DBKeys as ue,ValidationError as me,InternalError as ye,BaseError as ge}from"@decaf-ts/db-decorators";import{readFileSync as fe}from"fs";import*as we from"path";e.for(s.INJECTABLE).extend({decorator:(e,t)=>(t=t||("object"==typeof e?Object.assign(e,o):o),n({scope:t.singleton?a.DEFAULT:a.REQUEST,durable:!t.singleton||void 0}))}).apply(),e.for(s.INJECT).extend({decorator:(e,t)=>(t,r,i)=>c(e||t)(t,r,i)}).apply(),e.for(R.REQUIRED).extend(D({required:!0})).apply(),e.for(R.MAX).extend({decorator:e=>D({maximum:e})}).apply(),e.for(R.MIN).extend({decorator:e=>D({minimum:e})}).apply(),e.for(R.MAX_LENGTH).extend({decorator:e=>D({maxLength:e})}).apply(),e.for(R.MIN_LENGTH).extend({decorator:e=>D({minLength:e})}).apply(),e.for(R.LIST).extend({decorator:e=>{const t=Array.isArray(e)?e[0]:e;return D({type:[t]})}}).apply(),e.for(R.PATTERN).extend({decorator:e=>D({pattern:"string"==typeof e?e:e.source})}).apply(),e.for(I.COLUMN).extend({decorator:e=>D({name:e})}).apply(),e.for(t.DESCRIPTION).extend({decorator:e=>D({description:e})}).apply();const be="DecafModuleOptions",ve="DecafAdapter",Ae=Symbol("DecafHandlers"),Pe=Symbol("DecafAdapterForOptions"),$e=Symbol("AUTH_HANDLER"),Ee="auth:meta",Te="AuthRole";var Se;let Oe=class{static{Se=this}static{this._adapterInstance=null}static get log(){return this._logger||(this._logger=ne.for(Se)),this._logger}constructor(e,t){this.options=e,this.moduleRef=t}static async createAdapter(e){if(!this._adapterInstance){const t=this.log.for(this.createAdapter);t.info("Creating adapter instance..."),this._adapterInstance=new e.adapter(e.conf,e.alias),t.info("Adapter instance created successfully!")}return this._adapterInstance}static getAdapterInstance(){return this._adapterInstance}static forRoot(e){const t={provide:be,useValue:e},r={useFactory:async e=>Se.createAdapter(e),provide:ve,durable:!0,scope:a.DEFAULT,inject:[be]};return{module:Se,providers:[r,t],exports:[r]}}async onApplicationShutdown(){const e=Se.log.for(this.onApplicationShutdown),t=this.moduleRef.get(ve);try{t&&(e.info("Shutting down"),await t.shutdown(),Se._adapterInstance=null)}catch(t){e.error("Failed to shutdown application",t)}}};function Re(e,t){const{handler:i,args:s}=r.get(e,le.REFLECT+le.BLOCK)||{};return!!i&&(i(...s,t)??!1)}function ke(e,t,r){const i={GET:[le.READ,l],POST:[le.CREATE,h],PUT:[le.UPDATE,u],PATCH:[le.UPDATE,m],DELETE:[le.DELETE,y]},[s,o]=i[t];return Re(e,s)?de(B()):de(o(r))}function Ie(e,t,r){const i={GET:[he.READ_ALL,l],POST:[he.CREATE_ALL,h],PUT:[he.UPDATE_ALL,u],PATCH:[he.UPDATE_ALL,m],DELETE:[he.DELETE_ALL,y]},[s,o]=i[t];return Re(e,s)?de(B()):de(o(r))}function Fe(e=[]){const t=e.map(e=>_({name:e.name,description:e.description??"Path parameter: "+e.name,required:e.required??!0,type:e.type??String}));return g(...t)}Oe=Se=ee([p(),d({}),te(0,c(be)),re("design:paramtypes",[Object,ie])],Oe);const Ce=f((e,t)=>{const r=t.switchToHttp().getRequest(),i=r?.params??{},s=e??Object.keys(i),o=s.map(e=>i[e]);return{raw:i,valuesInOrder:o,keysInOrder:s}});function xe(e=[]){const t=e.map(e=>e.name);return Ce(t)}let je=class{constructor(e,t){this.reflector=e,this.authHandler=t}async intercept(e,t){const r=this.reflector.get(Ee,e.getHandler())??this.reflector.get(Ee,e.getClass());return r&&this.authHandler&&await this.authHandler.authorize(e,r),t.handle()}};function Le(e){const t="string"==typeof e?e:e.name;return g(b(Ee,t),v(je))}je=ee([n(),te(1,w()),te(1,c($e)),re("design:paramtypes",[se,Object])],je);const Ne=e=>i(Te,e);let De=class{constructor(){this.cache=new Map}set(e,t){this.cache.set(e,t)}get(e){return this.cache.get(e)}};De=ee([n({scope:a.REQUEST})],De);let Be=class{constructor(e,t){this.handlers=e,this.context=t}async exec(e,t){for(const r of this.handlers)await r.handle(this.context,e,t)}};Be=ee([n({scope:a.REQUEST}),te(0,c(Ae)),re("design:paramtypes",[Array,De])],Be);const _e=e=>({name:e,description:e+" parameter for the query",required:!0,type:String});function qe(e,t){const r=(e=>e.split("/").filter(e=>e.startsWith(":")).map(e=>e.slice(1)))(t).map(_e);return{method:[l(t),...r.map(_),q({summary:`Retrieve records using custom query "${e}".`}),G({description:"Results successfully retrieved."}),U({description:"No content returned by the query."})],params:[xe(r),A()]}}function Ge(e,t,r,i){const s=e?.prototype??e;i.method.forEach(e=>e(s,t,r)),i.params?.forEach((e,r)=>e(s,t,r))}function Ue(e){return async function(t,r){const i=this.log.for(e);try{i.debug(`Invoking persistence method "${e}" given parameters: ${JSON.stringify(t.valuesInOrder)}`);const{direction:s,limit:o,offset:n}=r;return await this.persistence[e](...t.valuesInOrder,s,o,n)}catch(t){throw i.error(`Custom query "${e}" failed`,t),t}}}function Me(e,t,r){return Object.defineProperty(e.prototype||e,t,{value:r,writable:!1}),Object.getOwnPropertyDescriptor(e.prototype||e,t)}class He extends ae{constructor(e){super(),this.clientContext=e}get persistence(){throw Error("Not implemented")}}class ze{static{this.log=ne.for(ze.name)}static getPersistence(e){try{return F.forModel(e)}catch(t){return C.forModel(e)}}static createQueryRoutesFromRepository(e,t=I.STATEMENT){const i=e.class,s=r.get(e.constructor,r.key(I.QUERY))??{};class o extends He{constructor(e){super(e),this._persistence=ze.getPersistence(i)}get persistence(){const e=this.clientContext.get(Pe);return e?this._persistence.for(e):this._persistence}}for(const[e,r]of Object.entries(s)){const i=[t,e,...(r.fields??[]).map(e=>":"+e)].filter(e=>e&&e.trim()).join("/"),s=Me(o,e,Ue(e));s&&Ge(o,e,s,qe(e,i))}return o}static create(e){const t=ze.log.for(ze.create),r=k.tableName(e),i=ce(r),s=e.name,o=ze.getPersistence(e),{description:n,getPK:a,apiProperties:c,path:p}=ze.getRouteParametersFromModel(e);t.debug("Creating controller for model: "+s);const d=ze.createQueryRoutesFromRepository(o);let l=class extends d{constructor(r){super(r),this.pk=k.pk(e),t.info(`Registering dynamic controller for model: ${s} route: /${i}`)}async listBy(e,t){return this.persistence.listBy(e,t.direction)}async paginateBy(e,t,r){return this.persistence.paginateBy(e,r.direction,r.limit)}async findOneBy(e,t){return this.persistence.findOneBy(e,t)}async findBy(e,t,r){return this.persistence.findBy(e,t)}async statement(e,t,r){const{direction:i,offset:s,limit:o}=r;switch(t=t.map(e=>("string"==typeof e?parseInt(e):e)||e),e){case j.FIND_BY:break;case j.LIST_BY:t.push(i);break;case j.PAGE_BY:t.push(i,o);case j.FIND_ONE_BY:}return this.persistence.statement(e,...t)}async createAll(t){const r=this.log.for(this.createAll);let i;r.verbose("creating new "+s);try{i=await this.persistence.createAll(t.map(t=>new e(t)))}catch(e){throw r.error("Failed to create new "+s,e),e}return r.info(`created new ${s} with id ${i[this.pk]}`),i}async create(e){const t=this.log.for(this.create);let r;t.verbose("creating new "+s);try{r=await this.persistence.create(e)}catch(e){throw t.error("Failed to create new "+s,e),e}return t.info(`created new ${s} with id ${r[this.pk]}`),r}async readAll(e){const t=this.log.for(this.readAll);let r;try{t.debug(`reading ${e.length} ${s}: ${e}`),r=await this.persistence.readAll(e)}catch(r){throw t.error(`Failed to ${s} with id ${e}`,r),r}return t.info(`read ${r.length} ${s}`),r}async read(e){const t=a(...e.valuesInOrder);if(void 0===t)throw new me(`No ${this.pk} provided`);const r=this.log.for(this.read);let i;try{r.debug(`reading ${s} with ${this.pk} ${t}`),i=await this.persistence.read(t)}catch(e){throw r.error(`Failed to read ${s} with id ${t}`,e),e}return r.info(`read ${s} with id ${i[this.pk]}`),i}async updateAll(e){const t=this.log.for(this.updateAll);let r;try{t.info(`updating ${e.length} ${s}`),r=await this.persistence.updateAll(e)}catch(e){throw t.error(e),e}return r}async update(t,r){const i=this.log.for(this.update),o=a(...t.valuesInOrder);if(void 0===o)throw new me(`No ${this.pk} provided`);let n;try{i.info(`updating ${s} with ${this.pk} ${o}`),n=await this.persistence.update(new e({...r,[this.pk]:o}))}catch(e){throw i.error(e),e}return n}async deleteAll(e){const t=this.log.for(this.deleteAll);let r;try{t.debug(`deleting ${e.length} ${s}: ${e}`),r=await this.persistence.deleteAll(e)}catch(r){throw t.error(`Failed to delete ${s} with id ${e}`,r),r}return t.info(`deleted ${r.length} ${s}`),r}async delete(e){const t=this.log.for(this.delete),r=a(...e.valuesInOrder);if(void 0===r)throw new me(`No ${this.pk} provided`);let i;try{t.debug(`deleting ${s} with ${this.pk} ${r}`),i=await this.persistence.delete(r)}catch(e){throw t.error(`Failed to delete ${s} with id ${r}`,e),e}return t.info(`deleted ${s} with id ${r}`),i}};return ee([ke(e,"GET","listBy/:key"),q({summary:`Retrieve ${s} records by query.`}),_({name:"key",description:"the model key to sort by"}),M({name:"direction",required:!0,enum:x}),G({description:s+" listed successfully."}),te(1,A()),re("design:type",Function),re("design:paramtypes",[String,Object]),re("design:returntype",Promise)],l.prototype,"listBy",null),ee([ke(e,"GET","paginateBy/:key/:page"),q({summary:`Retrieve ${s} records by query.`}),_({name:"key",description:"the model key to sort by"}),_({name:"page",description:"the page to retrieve or the bookmark"}),M({name:"direction",required:!0,enum:x,description:"the sort order"}),M({name:"limit",required:!0,description:"the page size"}),G({description:s+" listed paginated."}),te(0,P("key")),te(1,P("page")),te(2,A()),re("design:type",Function),re("design:paramtypes",[String,Object,Object]),re("design:returntype",Promise)],l.prototype,"paginateBy",null),ee([ke(e,"GET","findOneBy/:key"),q({summary:`Retrieve ${s} records by query.`}),_({name:"key",description:"the model key to sort by"}),G({description:s+" listed found."}),H({description:`No ${s} record matches the provided identifier.`}),te(0,P("key")),te(1,P("value")),re("design:type",Function),re("design:paramtypes",[String,Object]),re("design:returntype",Promise)],l.prototype,"findOneBy",null),ee([ke(e,"GET","findBy/:key/:value"),q({summary:`Retrieve ${s} records by query.`}),_({name:"key",description:"the model key to compare"}),_({name:"value",description:"the value to match"}),M({name:"direction",required:!0,enum:x,description:"the sort order when applicable"}),G({description:s+" listed found."}),H({description:`No ${s} record matches the provided identifier.`}),te(0,P("key")),te(1,P("value")),te(2,A()),re("design:type",Function),re("design:paramtypes",[String,Object,Object]),re("design:returntype",Promise)],l.prototype,"findBy",null),ee([ke(e,"GET","statement/:method/*args"),q({summary:`Executes a prepared statement on ${s}.`}),_({name:"method",description:"the prepared statement to execute"}),_({name:"args",description:"concatenated list of arguments the prepared statement can accept"}),M({name:"direction",required:!0,enum:x,description:"the sort order when applicable"}),M({name:"limit",required:!0,description:"limit or page size when applicable"}),M({name:"offset",required:!0,description:"offset or bookmark when applicable"}),G({description:s+" listed found."}),H({description:`No ${s} record matches the provided identifier.`}),te(0,P("method")),te(1,P("args")),te(2,A()),re("design:type",Function),re("design:paramtypes",[String,Array,Object]),re("design:returntype",Promise)],l.prototype,"statement",null),ee([ke(e,"POST","bulk"),q({summary:`Create a new ${s}.`}),z({description:"Payload for "+s,schema:{type:"array",items:{$ref:Q(e)}}}),J({description:`x ${s} created successfully.`}),Y({description:"Payload validation failed."}),K({description:"Repository rejected the provided payload."}),te(0,$()),re("design:type",Function),re("design:paramtypes",[Array]),re("design:returntype",Promise)],l.prototype,"createAll",null),ee([ke(e,"POST"),q({summary:`Create a new ${s}.`}),z({description:"Payload for "+s,schema:{$ref:Q(e)}}),J({description:s+" created successfully."}),Y({description:"Payload validation failed."}),K({description:"Repository rejected the provided payload."}),te(0,$()),re("design:type",Function),re("design:paramtypes",[Object]),re("design:returntype",Promise)],l.prototype,"create",null),ee([ke(e,"GET","bulk/:ids"),q({summary:`Retrieve a ${s} record by id.`}),M({name:"ids",required:!0,type:"array"}),G({description:s+" retrieved successfully."}),H({description:`No ${s} record matches the provided identifier.`}),te(0,A("ids")),re("design:type",Function),re("design:paramtypes",[Array]),re("design:returntype",Promise)],l.prototype,"readAll",null),ee([ke(e,"GET",p),Fe(c),q({summary:`Retrieve a ${s} record by id.`}),G({description:s+" retrieved successfully."}),H({description:`No ${s} record matches the provided identifier.`}),te(0,xe(c)),re("design:type",Function),re("design:paramtypes",[Object]),re("design:returntype",Promise)],l.prototype,"read",null),ee([ke(e,"PUT",p+"/bulk"),Fe(c),q({summary:`Replace an existing ${s} record with a new payload.`}),z({description:"Payload for replace a existing record of "+s,schema:{type:"array",items:{$ref:Q(e)}}}),G({description:e+" record replaced successfully."}),H({description:`No ${s} record matches the provided identifier.`}),Y({description:"Payload validation failed."}),te(0,$()),re("design:type",Function),re("design:paramtypes",[Array]),re("design:returntype",Promise)],l.prototype,"updateAll",null),ee([ke(e,"PUT",p),Fe(c),q({summary:`Replace an existing ${s} record with a new payload.`}),z({description:"Payload for replace a existing record of "+s,schema:{$ref:Q(e)}}),G({description:e+" record replaced successfully."}),H({description:`No ${s} record matches the provided identifier.`}),Y({description:"Payload validation failed."}),te(0,xe(c)),te(1,$()),re("design:type",Function),re("design:paramtypes",[Object,k]),re("design:returntype",Promise)],l.prototype,"update",null),ee([ke(e,"DELETE","bulk/:ids"),Fe(c),q({summary:`Retrieve a ${s} record by id.`}),M({name:"ids",required:!0,type:"array"}),G({description:s+" retrieved successfully."}),H({description:`No ${s} record matches the provided identifier.`}),te(0,A("ids")),re("design:type",Function),re("design:paramtypes",[Array]),re("design:returntype",Promise)],l.prototype,"deleteAll",null),ee([ke(e,"DELETE",p),Fe(c),q({summary:`Delete a ${s} record by id.`}),G({description:s+" record deleted successfully."}),H({description:`No ${s} record matches the provided identifier.`}),te(0,xe(c)),re("design:type",Function),re("design:paramtypes",[Object]),re("design:returntype",Promise)],l.prototype,"delete",null),l=ee([E(i),V(s),W(e),Le(e),re("design:paramtypes",[De])],l),l}static getRouteParametersFromModel(e){const t=k.pk(e),i=r.get(e,r.key(ue.COMPOSED,t)),s=i?.args??[],o=Array.isArray(s)&&s.length>0?Array.from(new Set([...s])):Array.from(new Set([t])),n=r.description(e);return{path:":"+o.join("/:"),description:n,apiProperties:o.map(t=>({name:t,description:r.description(e,t),required:!0,type:String})),getPK:(...e)=>i?.separator?e.join(i.separator):e.join("")}}}let Qe=class{constructor(e){this.executor=e}async intercept(e,t){const r=e.switchToHttp().getRequest(),i=e.switchToHttp().getResponse();return await this.executor.exec(r,i),t.handle()}};var Je;Qe=ee([n({scope:a.REQUEST}),re("design:paramtypes",[Be])],Qe);let Ye=class{static{Je=this}static{this.log=ne.for(Je.name)}static createModelServices(e){return e.map(e=>({provide:e.name+"Service",useFactory:()=>F.forModel(e)}))}static forRoot(e,t={}){const r=this.log.for(this.forRoot);r.info("Generating controllers for flavour...");const i=L.models(e);let s=[];t.autoServices&&(r.info("Auto-services enabled. Initializing service generation."),s=this.createModelServices(i),r.info(`Auto-services completed. ${s.length} services initialized.`));const o=i.map(ze.create);return r.info(`Generated ${o.length} controllers`),{module:Je,controllers:o,providers:[{provide:Ae,useFactory:()=>t.handlers?.map(e=>(r.info("Registered request handler: "+e.name),new e))??[]},De,Be,{provide:oe,useClass:Qe},...s]}}};var Ke;Ye=Je=ee([d({})],Ye);let Ve=Ke=class{static async forRootAsync(e){const{autoControllers:t,autoServices:r,handlers:i}=e,s=(await Oe.createAdapter(e)).flavour,o=[Oe.forRoot(e)];return t&&o.push(Ye.forRoot(s,{autoServices:r,handlers:i})),{module:Ke,imports:o}}};function We(e){const t=k.get(e);if(!t)throw new ye("Failed to find repository for "+e);return C.forModel(t)}Ve=Ke=ee([d({})],Ve);class Xe extends N{constructor(e){super(e,Xe.name)}}let Ze=class{catch(e,t){const r=t.switchToHttp(),i=r.getResponse(),s=r.getRequest(),o="production"===pe.env;e instanceof ge||(e=new ye(e.message)),i.status(e.code).json({status:e.code,error:o?e.name:e.message,timestamp:(new Date).toISOString(),path:s.url,method:s.method})}};function et(){return S(new Ze)}Ze=ee([T()],Ze);const tt={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 rt{constructor(e){this.options={...e}}customCSS(){let e="";return this.options.topbarIconPath&&(e+=`.topbar-wrapper { content: url('data:image/png;base64,${this.b64(this.options.topbarIconPath)}'); width: 200px; height: auto; }\n`),e+`\n .topbar-wrapper svg { visibility: hidden; }\n .swagger-ui .topbar { background-color: ${this.options.topbarBgColor||tt.topbarBgColor}; }\n `}getCustomOptions(){const e={};return this.options.faviconPath&&(e.customfavIcon=this.b64(this.options.faviconPath,!0)),{customSiteTitle:this.options.title,...e,customCss:this.customCSS(),swaggerOptions:{persistAuthorization:this.options.persistAuthorization},jsonDocumentUrl:this.options.path?this.options.path+"/spec.json":void 0,yamlDocumentUrl:this.options.path?this.options.path+"/spec.yaml":void 0}}b64(e,t=!1){const r=we.join(this.options.assetsPath||"",e),i=fe(r,{encoding:"base64"});return t?"data:image/png;base64,"+i:i}}class it{constructor(e,t){this.app=e,this.options=t}createDocument(){const e=this.options.path?this.options.description+""+`<br><br><a href="${this.options.path}/spec.json">OpenAPI JSON Spec</a> | `+`<a href="${this.options.path}/spec.yaml">OpenAPI YAML Spec</a>`:this.options.description,t=(new X).setTitle(this.options.title).setDescription(e).setVersion(this.options.version||"0.0.1").addBearerAuth(this.options.auth||tt.auth).build();return Z.createDocument(this.app,t,{extraModels:this.options.extraModels||[]})}setupSwagger(){const e=this.createDocument(),t=new rt({title:this.options.title,path:this.options.path||tt.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||tt.path,this.app,e,{...t.getCustomOptions()})}}class st{static get logger(){return this._logger||(this._logger=new O("NestBootstrap")),this._logger}static initialize(e){return this.app=e,this}static enableLogger(e){return this._logger=e||new O("NestBootstrap"),this.app.useLogger(this._logger),this}static enableCors(e=[],t=["GET","POST","PUT","DELETE"]){const r="*"===e?"*":e.map(e=>e.trim().toLowerCase()),i={origin:(e,t)=>e?"*"===r||Array.isArray(r)&&r.includes(e.toLowerCase())?t(null,!0):void t(new Xe(`Origin ${e} not allowed`)):t(null,!0),credentials:!0,methods:t.join(",")};return this.app.enableCors(i),this}static useHelmet(e){try{const t=require("helmet");this.app.use(t(e)),this.logger.log("Helmet middleware enabled successfully.")}catch(e){this.logger.warn("Helmet not installed. Skipping middleware.")}return this}static setupSwagger(e){return new it(this.app,{title:e.title,description:e.description,version:e.version,path:e.path||"api",persistAuthorization:e.persistAuthorization??!0,assetsPath:e.assetsPath,faviconFilePath:e.faviconPath,topbarIconFilePath:e.topbarIconPath,topbarBgColor:e.topbarBgColor}).setupSwagger(),this}static useGlobalPipes(...e){return e.length>0&&this.app.useGlobalPipes(...e),this}static useGlobalFilters(...e){return this.app.useGlobalFilters(...e.length>0?e:[new Ze]),this}static useGlobalInterceptors(...e){return e.length>0&&this.app.useGlobalInterceptors(...e),this}static async start(e=Number(process.env.PORT)||3e3,t=void 0,r=!0){this.app.listen(e,t).then(async()=>{if(r){const e=await this.app.getUrl();this.logger.log("\ud83d\ude80 Application is running at: "+e)}})}}const ot="##VERSION##",nt="##PACKAGE##";r.registerLibrary(nt,ot);export{$e as AUTH_HANDLER,Ee as AUTH_META_KEY,ke as ApiOperationFromModel,Fe as ApiParamsFromModel,Le as Auth,je as AuthInterceptor,Te as AuthRole,Ie as BulkApiOperationFromModel,Xe as CorsError,ve as DECAF_ADAPTER_ID,Pe as DECAF_ADAPTER_OPTIONS,Ae as DECAF_HANDLERS,be as DECAF_MODULE_OPTIONS,Ze as DecafExceptionFilter,Be as DecafHandlerExecutor,Ye as DecafModelModule,Ve as DecafModule,xe as DecafParams,De as DecafRequestContext,Qe as DecafRequestHandlerInterceptor,ze as FromModelController,st as NestBootstraper,nt as PACKAGE_NAME,Ne as Roles,it as SwaggerBuilder,et as UseDecafFilter,ot as VERSION,Re as isOperationBlocked,We as repoForModel};
1
+ import{Decoration as e,DecorationKeys as t,Metadata as r,metadata as i}from"@decaf-ts/decoration";import{InjectablesKeys as s,DefaultInjectablesConfig as o}from"@decaf-ts/injectable-decorators";import{Injectable as n,Scope as a,Inject as c,Global as p,Module as d,Get as l,Post as h,Put as u,Patch as m,Delete as y,applyDecorators as g,createParamDecorator as f,Optional as w,SetMetadata as b,UseInterceptors as v,Query as A,Param as $,Body as P,Controller as E,Catch as T,UseFilters as O,Logger as S}from"@nestjs/common";import{ValidationKeys as R,Model as k}from"@decaf-ts/decorator-validation";import{PersistenceKeys as I,ModelService as F,Repository as C,OrderDirection as x,PreparedStatementKeys as j,Adapter as L,ForbiddenError as D}from"@decaf-ts/core";import{ApiProperty as N,ApiExcludeEndpoint as B,ApiParam as _,ApiOperation as q,ApiOkResponse as U,ApiNoContentResponse as G,ApiQuery as M,ApiNotFoundResponse as H,ApiBody as z,getSchemaPath as Q,ApiCreatedResponse as Y,ApiBadRequestResponse as J,ApiUnprocessableEntityResponse as K,ApiTags as V,ApiExtraModels as W,DocumentBuilder as X,SwaggerModule as Z}from"@nestjs/swagger";import{__decorate as ee,__param as te,__metadata as re}from"tslib";import{ModuleRef as ie,Reflector as se,APP_INTERCEPTOR as oe}from"@nestjs/core";import{Logging as ne,LoggedClass as ae,toKebabCase as ce,LoggedEnvironment as pe}from"@decaf-ts/logging";import{apply as de}from"@decaf-ts/reflection";import{OperationKeys as le,BulkCrudOperationKeys as he,DBKeys as ue,ValidationError as me,InternalError as ye,BaseError as ge}from"@decaf-ts/db-decorators";import{readFileSync as fe}from"fs";import*as we from"path";e.for(s.INJECTABLE).extend({decorator:(e,t)=>(t=t||("object"==typeof e?Object.assign(e,o):o),n({scope:t.singleton?a.DEFAULT:a.REQUEST,durable:!t.singleton||void 0}))}).apply(),e.for(s.INJECT).extend({decorator:(e,t)=>(t,r,i)=>c(e||t)(t,r,i)}).apply(),e.for(R.REQUIRED).extend(N({required:!0})).apply(),e.for(R.MAX).extend({decorator:e=>N({maximum:e})}).apply(),e.for(R.MIN).extend({decorator:e=>N({minimum:e})}).apply(),e.for(R.MAX_LENGTH).extend({decorator:e=>N({maxLength:e})}).apply(),e.for(R.MIN_LENGTH).extend({decorator:e=>N({minLength:e})}).apply(),e.for(R.LIST).extend({decorator:e=>{const t=Array.isArray(e)?e[0]:e;return N({type:[t]})}}).apply(),e.for(R.PATTERN).extend({decorator:e=>N({pattern:"string"==typeof e?e:e.source})}).apply(),e.for(I.COLUMN).extend({decorator:e=>N({name:e})}).apply(),e.for(t.DESCRIPTION).extend({decorator:e=>N({description:e})}).apply();const be="DecafModuleOptions",ve="DecafAdapter",Ae=Symbol("DecafHandlers"),$e=Symbol("DecafAdapterForOptions"),Pe=Symbol("AUTH_HANDLER"),Ee="auth:meta",Te="AuthRole";var Oe;let Se=class{static{Oe=this}static{this._adapterInstance=null}static get log(){return this._logger||(this._logger=ne.for(Oe)),this._logger}constructor(e,t){this.options=e,this.moduleRef=t}static async createAdapter(e){if(!this._adapterInstance){const t=this.log.for(this.createAdapter);t.info("Creating adapter instance..."),this._adapterInstance=new e.adapter(e.conf,e.alias),t.info("Adapter instance created successfully!")}return this._adapterInstance}static getAdapterInstance(){return this._adapterInstance}static forRoot(e){const t={provide:be,useValue:e},r={useFactory:async e=>Oe.createAdapter(e),provide:ve,durable:!0,scope:a.DEFAULT,inject:[be]};return{module:Oe,providers:[r,t],exports:[r]}}async onApplicationShutdown(){const e=Oe.log.for(this.onApplicationShutdown),t=this.moduleRef.get(ve);try{t&&(e.info("Shutting down"),await t.shutdown(),Oe._adapterInstance=null)}catch(t){e.error("Failed to shutdown application",t)}}};function Re(e,t){const{handler:i,args:s}=r.get(e,le.REFLECT+le.BLOCK)||{};return!!i&&(i(...s,t)??!1)}function ke(e,t,r){const i={GET:[le.READ,l],POST:[le.CREATE,h],PUT:[le.UPDATE,u],PATCH:[le.UPDATE,m],DELETE:[le.DELETE,y]},[s,o]=i[t];return Re(e,s)?de(B()):de(o(r))}function Ie(e,t,r){const i={GET:[he.READ_ALL,l],POST:[he.CREATE_ALL,h],PUT:[he.UPDATE_ALL,u],PATCH:[he.UPDATE_ALL,m],DELETE:[he.DELETE_ALL,y]},[s,o]=i[t];return Re(e,s)?de(B()):de(o(r))}function Fe(e=[]){const t=e.map(e=>_({name:e.name,description:e.description??"Path parameter: "+e.name,required:e.required??!0,type:e.type??String}));return g(...t)}Se=Oe=ee([p(),d({}),te(0,c(be)),re("design:paramtypes",[Object,ie])],Se);const Ce=f((e,t)=>{const r=t.switchToHttp().getRequest(),i=r?.params??{},s=e??Object.keys(i),o=s.map(e=>i[e]);return{raw:i,valuesInOrder:o,keysInOrder:s}});function xe(e=[]){const t=e.map(e=>e.name);return Ce(t)}let je=class{constructor(e,t){this.reflector=e,this.authHandler=t}async intercept(e,t){const r=this.reflector.get(Ee,e.getHandler())??this.reflector.get(Ee,e.getClass());return r&&this.authHandler&&await this.authHandler.authorize(e,r),t.handle()}};function Le(e){const t="string"==typeof e?e:e.name;return g(b(Ee,t),v(je))}je=ee([n(),te(1,w()),te(1,c(Pe)),re("design:paramtypes",[se,Object])],je);const De=e=>i(Te,e);let Ne=class{constructor(){this.cache=new Map}set(e,t){this.cache.set(e,t)}get(e){return this.cache.get(e)}};Ne=ee([n({scope:a.REQUEST})],Ne);let Be=class{constructor(e,t){this.handlers=e,this.context=t}async exec(e,t){for(const r of this.handlers)await r.handle(this.context,e,t)}};Be=ee([n({scope:a.REQUEST}),te(0,c(Ae)),re("design:paramtypes",[Array,Ne])],Be);const _e=e=>({name:e,description:e+" parameter for the query",required:!0,type:String});function qe(e,t){const r=(e=>e.split("/").filter(e=>e.startsWith(":")).map(e=>e.slice(1)))(t).map(_e);return{method:[l(t),...r.map(_),q({summary:`Retrieve records using custom query "${e}".`}),U({description:"Results successfully retrieved."}),G({description:"No content returned by the query."})],params:[xe(r),A()]}}function Ue(e,t,r,i){const s=e?.prototype??e;i.method.forEach(e=>e(s,t,r)),i.params?.forEach((e,r)=>e(s,t,r))}function Ge(e){return async function(t,r){const i=this.log.for(e);try{i.debug(`Invoking persistence method "${e}" given parameters: ${JSON.stringify(t.valuesInOrder)}`);const{direction:s,limit:o,offset:n}=r;return await((e,t,...r)=>{if(e instanceof F)return"function"==typeof e[t]?e[t](...r):e.statement(t,...r);if("function"==typeof e[t])return e[t](...r);throw Error(`Persistence method "${t}" not found on ${e?.constructor?.name}`)})(this.persistence,e,...t.valuesInOrder,s,o,n)}catch(t){throw i.error(`Custom query "${e}" failed`,t),t}}}function Me(e,t,r){return Object.defineProperty(e.prototype||e,t,{value:r,writable:!1}),Object.getOwnPropertyDescriptor(e.prototype||e,t)}class He extends ae{constructor(e){super(),this.clientContext=e}get persistence(){throw Error("Not implemented")}}class ze{static{this.log=ne.for(ze.name)}static getPersistence(e){try{return F.forModel(e)}catch(t){return C.forModel(e)}}static createQueryRoutesFromRepository(e,t=I.QUERY){const i=e.class,s=r.get(e.constructor,r.key(I.QUERY))??{};class o extends He{constructor(e){super(e),this._persistence=ze.getPersistence(i)}get persistence(){const e=this.clientContext.get($e);return e?this._persistence.for(e):this._persistence}}for(const[e,r]of Object.entries(s)){const i=[t,e,...(r.fields??[]).map(e=>":"+e)].filter(e=>e&&e.trim()).join("/"),s=Me(o,e,Ge(e));s&&Ue(o,e,s,qe(e,i))}return o}static create(e){const t=ze.log.for(ze.create),r=k.tableName(e),i=ce(r),s=e.name,o=ze.getPersistence(e),{description:n,getPK:a,apiProperties:c,path:p}=ze.getRouteParametersFromModel(e);t.debug("Creating controller for model: "+s);const d=ze.createQueryRoutesFromRepository(o instanceof F?o.repo:o);let l=class extends d{constructor(r){super(r),this.pk=k.pk(e),t.info(`Registering dynamic controller for model: ${s} route: /${i}`)}async listBy(e,t){return this.persistence.listBy(e,t.direction)}async paginateBy(e,t,r){return this.persistence.paginateBy(e,r.direction,r.limit)}async findOneBy(e,t){return this.persistence.findOneBy(e,t)}async findBy(e,t,r){return this.persistence.findBy(e,t)}async statement(e,t,r){const{direction:i,offset:s,limit:o}=r;switch(t=t.map(e=>("string"==typeof e?parseInt(e):e)||e),e){case j.FIND_BY:break;case j.LIST_BY:t.push(i);break;case j.PAGE_BY:t.push(i,o);case j.FIND_ONE_BY:}return this.persistence.statement(e,...t)}async createAll(t){const r=this.log.for(this.createAll);let i;r.verbose("creating new "+s);try{i=await this.persistence.createAll(t.map(t=>new e(t)))}catch(e){throw r.error("Failed to create new "+s,e),e}return r.info(`created new ${s} with id ${i[this.pk]}`),i}async create(e){const t=this.log.for(this.create);let r;t.verbose("creating new "+s);try{r=await this.persistence.create(e)}catch(e){throw t.error("Failed to create new "+s,e),e}return t.info(`created new ${s} with id ${r[this.pk]}`),r}async readAll(e){const t=this.log.for(this.readAll);let r;try{t.debug(`reading ${e.length} ${s}: ${e}`),r=await this.persistence.readAll(e)}catch(r){throw t.error(`Failed to ${s} with id ${e}`,r),r}return t.info(`read ${r.length} ${s}`),r}async read(e){const t=a(...e.valuesInOrder);if(void 0===t)throw new me(`No ${this.pk} provided`);const r=this.log.for(this.read);let i;try{r.debug(`reading ${s} with ${this.pk} ${t}`),i=await this.persistence.read(t)}catch(e){throw r.error(`Failed to read ${s} with id ${t}`,e),e}return r.info(`read ${s} with id ${i[this.pk]}`),i}async updateAll(e){const t=this.log.for(this.updateAll);let r;try{t.info(`updating ${e.length} ${s}`),r=await this.persistence.updateAll(e)}catch(e){throw t.error(e),e}return r}async update(t,r){const i=this.log.for(this.update),o=a(...t.valuesInOrder);if(void 0===o)throw new me(`No ${this.pk} provided`);let n;try{i.info(`updating ${s} with ${this.pk} ${o}`),n=await this.persistence.update(new e({...r,[this.pk]:o}))}catch(e){throw i.error(e),e}return n}async deleteAll(e){const t=this.log.for(this.deleteAll);let r;try{t.debug(`deleting ${e.length} ${s}: ${e}`),r=await this.persistence.deleteAll(e)}catch(r){throw t.error(`Failed to delete ${s} with id ${e}`,r),r}return t.info(`deleted ${r.length} ${s}`),r}async delete(e){const t=this.log.for(this.delete),r=a(...e.valuesInOrder);if(void 0===r)throw new me(`No ${this.pk} provided`);let i;try{t.debug(`deleting ${s} with ${this.pk} ${r}`),i=await this.persistence.delete(r)}catch(e){throw t.error(`Failed to delete ${s} with id ${r}`,e),e}return t.info(`deleted ${s} with id ${r}`),i}};return ee([ke(e,"GET","listBy/:key"),q({summary:`Retrieve ${s} records by query.`}),_({name:"key",description:"the model key to sort by"}),M({name:"direction",required:!0,enum:x}),U({description:s+" listed successfully."}),te(1,A()),re("design:type",Function),re("design:paramtypes",[String,Object]),re("design:returntype",Promise)],l.prototype,"listBy",null),ee([ke(e,"GET","paginateBy/:key/:page"),q({summary:`Retrieve ${s} records by query.`}),_({name:"key",description:"the model key to sort by"}),_({name:"page",description:"the page to retrieve or the bookmark"}),M({name:"direction",required:!0,enum:x,description:"the sort order"}),M({name:"limit",required:!0,description:"the page size"}),U({description:s+" listed paginated."}),te(0,$("key")),te(1,$("page")),te(2,A()),re("design:type",Function),re("design:paramtypes",[String,Object,Object]),re("design:returntype",Promise)],l.prototype,"paginateBy",null),ee([ke(e,"GET","findOneBy/:key"),q({summary:`Retrieve ${s} records by query.`}),_({name:"key",description:"the model key to sort by"}),U({description:s+" listed found."}),H({description:`No ${s} record matches the provided identifier.`}),te(0,$("key")),te(1,$("value")),re("design:type",Function),re("design:paramtypes",[String,Object]),re("design:returntype",Promise)],l.prototype,"findOneBy",null),ee([ke(e,"GET","findBy/:key/:value"),q({summary:`Retrieve ${s} records by query.`}),_({name:"key",description:"the model key to compare"}),_({name:"value",description:"the value to match"}),M({name:"direction",required:!0,enum:x,description:"the sort order when applicable"}),U({description:s+" listed found."}),H({description:`No ${s} record matches the provided identifier.`}),te(0,$("key")),te(1,$("value")),te(2,A()),re("design:type",Function),re("design:paramtypes",[String,Object,Object]),re("design:returntype",Promise)],l.prototype,"findBy",null),ee([ke(e,"GET","statement/:method/*args"),q({summary:`Executes a prepared statement on ${s}.`}),_({name:"method",description:"the prepared statement to execute"}),_({name:"args",description:"concatenated list of arguments the prepared statement can accept"}),M({name:"direction",required:!0,enum:x,description:"the sort order when applicable"}),M({name:"limit",required:!0,description:"limit or page size when applicable"}),M({name:"offset",required:!0,description:"offset or bookmark when applicable"}),U({description:s+" listed found."}),H({description:`No ${s} record matches the provided identifier.`}),te(0,$("method")),te(1,$("args")),te(2,A()),re("design:type",Function),re("design:paramtypes",[String,Array,Object]),re("design:returntype",Promise)],l.prototype,"statement",null),ee([ke(e,"POST","bulk"),q({summary:`Create a new ${s}.`}),z({description:"Payload for "+s,schema:{type:"array",items:{$ref:Q(e)}}}),Y({description:`x ${s} created successfully.`}),J({description:"Payload validation failed."}),K({description:"Repository rejected the provided payload."}),te(0,P()),re("design:type",Function),re("design:paramtypes",[Array]),re("design:returntype",Promise)],l.prototype,"createAll",null),ee([ke(e,"POST"),q({summary:`Create a new ${s}.`}),z({description:"Payload for "+s,schema:{$ref:Q(e)}}),Y({description:s+" created successfully."}),J({description:"Payload validation failed."}),K({description:"Repository rejected the provided payload."}),te(0,P()),re("design:type",Function),re("design:paramtypes",[Object]),re("design:returntype",Promise)],l.prototype,"create",null),ee([ke(e,"GET","bulk/:ids"),q({summary:`Retrieve a ${s} record by id.`}),M({name:"ids",required:!0,type:"array"}),U({description:s+" retrieved successfully."}),H({description:`No ${s} record matches the provided identifier.`}),te(0,A("ids")),re("design:type",Function),re("design:paramtypes",[Array]),re("design:returntype",Promise)],l.prototype,"readAll",null),ee([ke(e,"GET",p),Fe(c),q({summary:`Retrieve a ${s} record by id.`}),U({description:s+" retrieved successfully."}),H({description:`No ${s} record matches the provided identifier.`}),te(0,xe(c)),re("design:type",Function),re("design:paramtypes",[Object]),re("design:returntype",Promise)],l.prototype,"read",null),ee([ke(e,"PUT",p+"/bulk"),Fe(c),q({summary:`Replace an existing ${s} record with a new payload.`}),z({description:"Payload for replace a existing record of "+s,schema:{type:"array",items:{$ref:Q(e)}}}),U({description:e+" record replaced successfully."}),H({description:`No ${s} record matches the provided identifier.`}),J({description:"Payload validation failed."}),te(0,P()),re("design:type",Function),re("design:paramtypes",[Array]),re("design:returntype",Promise)],l.prototype,"updateAll",null),ee([ke(e,"PUT",p),Fe(c),q({summary:`Replace an existing ${s} record with a new payload.`}),z({description:"Payload for replace a existing record of "+s,schema:{$ref:Q(e)}}),U({description:e+" record replaced successfully."}),H({description:`No ${s} record matches the provided identifier.`}),J({description:"Payload validation failed."}),te(0,xe(c)),te(1,P()),re("design:type",Function),re("design:paramtypes",[Object,k]),re("design:returntype",Promise)],l.prototype,"update",null),ee([ke(e,"DELETE","bulk/:ids"),Fe(c),q({summary:`Retrieve a ${s} record by id.`}),M({name:"ids",required:!0,type:"array"}),U({description:s+" retrieved successfully."}),H({description:`No ${s} record matches the provided identifier.`}),te(0,A("ids")),re("design:type",Function),re("design:paramtypes",[Array]),re("design:returntype",Promise)],l.prototype,"deleteAll",null),ee([ke(e,"DELETE",p),Fe(c),q({summary:`Delete a ${s} record by id.`}),U({description:s+" record deleted successfully."}),H({description:`No ${s} record matches the provided identifier.`}),te(0,xe(c)),re("design:type",Function),re("design:paramtypes",[Object]),re("design:returntype",Promise)],l.prototype,"delete",null),l=ee([E(i),V(s),W(e),Le(e),re("design:paramtypes",[Ne])],l),l}static getRouteParametersFromModel(e){const t=k.pk(e),i=r.get(e,r.key(ue.COMPOSED,t)),s=i?.args??[],o=Array.isArray(s)&&s.length>0?Array.from(new Set([...s])):Array.from(new Set([t])),n=r.description(e);return{path:":"+o.join("/:"),description:n,apiProperties:o.map(t=>({name:t,description:r.description(e,t),required:!0,type:String})),getPK:(...e)=>i?.separator?e.join(i.separator):e.join("")}}}let Qe=class{constructor(e){this.executor=e}async intercept(e,t){const r=e.switchToHttp().getRequest(),i=e.switchToHttp().getResponse();return await this.executor.exec(r,i),t.handle()}};var Ye;Qe=ee([n({scope:a.REQUEST}),re("design:paramtypes",[Be])],Qe);let Je=class{static{Ye=this}static{this.log=ne.for(Ye.name)}static createModelServices(e){return e.map(e=>({provide:e.name+"Service",useFactory:()=>F.forModel(e)}))}static forRoot(e,t={}){const r=this.log.for(this.forRoot);r.info("Generating controllers for flavour...");const i=L.models(e);let s=[];t.autoServices&&(r.info("Auto-services enabled. Initializing service generation."),s=this.createModelServices(i),r.info(`Auto-services completed. ${s.length} services initialized.`));const o=i.map(ze.create);return r.info(`Generated ${o.length} controllers`),{module:Ye,controllers:o,providers:[{provide:Ae,useFactory:()=>t.handlers?.map(e=>(r.info("Registered request handler: "+e.name),new e))??[]},Ne,Be,{provide:oe,useClass:Qe},...s]}}};var Ke;Je=Ye=ee([d({})],Je);let Ve=Ke=class{static async forRootAsync(e){const{autoControllers:t,autoServices:r,handlers:i}=e,s=(await Se.createAdapter(e)).flavour,o=[Se.forRoot(e)];return t&&o.push(Je.forRoot(s,{autoServices:r,handlers:i})),{module:Ke,imports:o}}};function We(e){const t=k.get(e);if(!t)throw new ye("Failed to find repository for "+e);return C.forModel(t)}Ve=Ke=ee([d({})],Ve);class Xe extends D{constructor(e){super(e,Xe.name)}}let Ze=class{catch(e,t){const r=t.switchToHttp(),i=r.getResponse(),s=r.getRequest(),o="production"===pe.env;e instanceof ge||(e=new ye(e.message)),i.status(e.code).json({status:e.code,error:o?e.name:e.message,timestamp:(new Date).toISOString(),path:s.url,method:s.method})}};function et(){return O(new Ze)}Ze=ee([T()],Ze);const tt={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 rt{constructor(e){this.options={...e}}customCSS(){let e="";return this.options.topbarIconPath&&(e+=`.topbar-wrapper { content: url('data:image/png;base64,${this.b64(this.options.topbarIconPath)}'); width: 200px; height: auto; }\n`),e+`\n .topbar-wrapper svg { visibility: hidden; }\n .swagger-ui .topbar { background-color: ${this.options.topbarBgColor||tt.topbarBgColor}; }\n `}getCustomOptions(){const e={};return this.options.faviconPath&&(e.customfavIcon=this.b64(this.options.faviconPath,!0)),{customSiteTitle:this.options.title,...e,customCss:this.customCSS(),swaggerOptions:{persistAuthorization:this.options.persistAuthorization},jsonDocumentUrl:this.options.path?this.options.path+"/spec.json":void 0,yamlDocumentUrl:this.options.path?this.options.path+"/spec.yaml":void 0}}b64(e,t=!1){const r=we.join(this.options.assetsPath||"",e),i=fe(r,{encoding:"base64"});return t?"data:image/png;base64,"+i:i}}class it{constructor(e,t){this.app=e,this.options=t}createDocument(){const e=this.options.path?this.options.description+""+`<br><br><a href="${this.options.path}/spec.json">OpenAPI JSON Spec</a> | `+`<a href="${this.options.path}/spec.yaml">OpenAPI YAML Spec</a>`:this.options.description,t=(new X).setTitle(this.options.title).setDescription(e).setVersion(this.options.version||"0.0.1").addBearerAuth(this.options.auth||tt.auth).build();return Z.createDocument(this.app,t,{extraModels:this.options.extraModels||[]})}setupSwagger(){const e=this.createDocument(),t=new rt({title:this.options.title,path:this.options.path||tt.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||tt.path,this.app,e,{...t.getCustomOptions()})}}class st{static get logger(){return this._logger||(this._logger=new S("NestBootstrap")),this._logger}static initialize(e){return this.app=e,this}static enableLogger(e){return this._logger=e||new S("NestBootstrap"),this.app.useLogger(this._logger),this}static enableCors(e=[],t=["GET","POST","PUT","DELETE"]){const r="*"===e?"*":e.map(e=>e.trim().toLowerCase()),i={origin:(e,t)=>e?"*"===r||Array.isArray(r)&&r.includes(e.toLowerCase())?t(null,!0):void t(new Xe(`Origin ${e} not allowed`)):t(null,!0),credentials:!0,methods:t.join(",")};return this.app.enableCors(i),this}static useHelmet(e){try{const t=require("helmet");this.app.use(t(e)),this.logger.log("Helmet middleware enabled successfully.")}catch(e){this.logger.warn("Helmet not installed. Skipping middleware.")}return this}static setupSwagger(e){return new it(this.app,{title:e.title,description:e.description,version:e.version,path:e.path||"api",persistAuthorization:e.persistAuthorization??!0,assetsPath:e.assetsPath,faviconFilePath:e.faviconPath,topbarIconFilePath:e.topbarIconPath,topbarBgColor:e.topbarBgColor}).setupSwagger(),this}static useGlobalPipes(...e){return e.length>0&&this.app.useGlobalPipes(...e),this}static useGlobalFilters(...e){return this.app.useGlobalFilters(...e.length>0?e:[new Ze]),this}static useGlobalInterceptors(...e){return e.length>0&&this.app.useGlobalInterceptors(...e),this}static async start(e=Number(process.env.PORT)||3e3,t=void 0,r=!0){this.app.listen(e,t).then(async()=>{if(r){const e=await this.app.getUrl();this.logger.log("\ud83d\ude80 Application is running at: "+e)}})}}const ot="##VERSION##",nt="##PACKAGE##";r.registerLibrary(nt,ot);export{Pe as AUTH_HANDLER,Ee as AUTH_META_KEY,ke as ApiOperationFromModel,Fe as ApiParamsFromModel,Le as Auth,je as AuthInterceptor,Te as AuthRole,Ie as BulkApiOperationFromModel,Xe as CorsError,ve as DECAF_ADAPTER_ID,$e as DECAF_ADAPTER_OPTIONS,Ae as DECAF_HANDLERS,be as DECAF_MODULE_OPTIONS,Ze as DecafExceptionFilter,Be as DecafHandlerExecutor,Je as DecafModelModule,Ve as DecafModule,xe as DecafParams,Ne as DecafRequestContext,Qe as DecafRequestHandlerInterceptor,ze as FromModelController,st as NestBootstraper,nt as PACKAGE_NAME,De as Roles,it as SwaggerBuilder,et as UseDecafFilter,ot as VERSION,Re as isOperationBlocked,We as repoForModel};
2
2
  //# sourceMappingURL=for-nest.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"for-nest.js","sources":["../src/decoration.ts","../src/constants.ts","../src/core-module.ts","../src/decaf-model/decorators/ApiOperationFromModel.ts","../src/decaf-model/decorators/ApiParamsFromModel.ts","../src/decaf-model/decorators/DecafParams.ts","../src/interceptors/AuthInterceptor.ts","../src/decaf-model/decorators/decorators.ts","../src/request/DecafRequestContext.ts","../src/request/DecafHandlerExecutor.ts","../src/decaf-model/utils.ts","../src/decaf-model/types.ts","../src/decaf-model/FromModelController.ts","../src/interceptors/DecafRequestHandlerInterceptor.ts","../src/decaf-model/DecafModelModule.ts","../src/module.ts","../src/utils.ts","../src/factory/errors/cors.ts","../src/factory/exceptions/DecafErrorFilter.ts","../src/factory/exceptions/decorators.ts","../src/factory/openapi/constants.ts","../src/factory/openapi/SwaggerCustomUI.ts","../src/factory/openapi/SwaggerBuilder.ts","../src/factory/NestBootstraper.ts","../src/index.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null],"names":["Decoration","for","InjectablesKeys","INJECTABLE","extend","decorator","category","cfg","Object","assign","DefaultInjectablesConfig","Injectable","scope","singleton","Scope","DEFAULT","REQUEST","durable","undefined","apply","INJECT","target","propertyKey","descriptor","Inject","ValidationKeys","REQUIRED","ApiProperty","required","MAX","max","maximum","MIN","min","minimum","MAX_LENGTH","maxLength","MIN_LENGTH","minLength","LIST","clazz","c","Array","isArray","type","PATTERN","pat","pattern","source","PersistenceKeys","COLUMN","name","DecorationKeys","DESCRIPTION","description","DECAF_MODULE_OPTIONS","DECAF_ADAPTER_ID","DECAF_HANDLERS","Symbol","DECAF_ADAPTER_OPTIONS","AUTH_HANDLER","AUTH_META_KEY","AuthRole","DecafCoreModule","this","_adapterInstance","log","_logger","Logging","DecafCoreModule_1","constructor","options","moduleRef","createAdapter","info","adapter","conf","alias","getAdapterInstance","forRoot","typeOrmModuleOptions","provide","useValue","useFactory","async","opts","inject","module","providers","exports","onApplicationShutdown","get","shutdown","e","error","isOperationBlocked","ModelConstructor","op","handler","args","Metadata","OperationKeys","REFLECT","BLOCK","ApiOperationFromModel","verb","path","httpToCrud","GET","READ","Get","POST","CREATE","Post","PUT","UPDATE","Put","PATCH","Patch","DELETE","Delete","crudOp","HttpMethodDecorator","ApiExcludeEndpoint","BulkApiOperationFromModel","BulkCrudOperationKeys","READ_ALL","CREATE_ALL","UPDATE_ALL","DELETE_ALL","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","raw","valuesInOrder","keysInOrder","DecafParams","AuthInterceptor","reflector","authHandler","intercept","next","modelName","getHandler","getClass","authorize","handle","Auth","model","resource","SetMetadata","UseInterceptors","Optional","Reflector","Roles","roles","metadata","DecafRequestContext","cache","Map","set","key","value","DecafHandlerExecutor","handlers","context","exec","res","apiParamSpec","getApiDecorators","methodName","routePath","apiPathParams","split","filter","startsWith","slice","extractPathParams","method","ApiParam","ApiOperation","summary","ApiOkResponse","ApiNoContentResponse","Query","applyApiDecorators","proto","prototype","forEach","d","index","createRouteHandler","pathParams","queryParams","debug","JSON","stringify","direction","limit","offset","persistence","defineRouteMethod","ControllerClass","defineProperty","writable","getOwnPropertyDescriptor","AbstractQueryController","LoggedClass","clientContext","super","Error","FromModelController","getPersistence","ModelClazz","ModelService","forModel","Repository","createQueryRoutesFromRepository","prefix","STATEMENT","ModelConstr","class","methodQueries","QUERY","QueryController","_persistence","adapterOptions","objValues","entries","fields","f","segment","trim","join","create","tableName","Model","toKebabCase","modelClazzName","getPK","apiProperties","getRouteParametersFromModel","BaseController","DynamicModelController","pk","listBy","details","paginateBy","page","findOneBy","findBy","statement","a","parseInt","PreparedStatementKeys","FIND_BY","LIST_BY","push","PAGE_BY","FIND_ONE_BY","createAll","data","created","verbose","readAll","ids","read","length","routeParams","id","ValidationError","updateAll","body","updated","update","deleteAll","delete","del","ApiQuery","enum","OrderDirection","Param","ApiNotFoundResponse","ApiBody","schema","items","$ref","getSchemaPath","ApiCreatedResponse","ApiBadRequestResponse","ApiUnprocessableEntityResponse","Body","Controller","ApiTags","ApiExtraModels","composed","DBKeys","COMPOSED","composedKeys","uniqueKeys","from","Set","separator","DecafRequestHandlerInterceptor","executor","getResponse","DecafModelModule","DecafModelModule_1","createModelServices","models","flavour","trackedModels","Adapter","modelServices","autoServices","controllers","H","APP_INTERCEPTOR","useClass","DecafModule","DecafModule_1","forRootAsync","autoControllers","imports","repoForModel","m","InternalError","CorsError","ForbiddenError","msg","DecafExceptionFilter","exception","host","response","request","isProduction","LoggedEnvironment","env","BaseError","message","status","code","json","timestamp","Date","toISOString","url","UseDecafFilter","UseFilters","Catch","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","toLowerCase","corsOptions","origin","callback","includes","credentials","methods","useHelmet","helmet","require","use","warn","useGlobalPipes","pipes","useGlobalFilters","filters","useGlobalInterceptors","interceptors","start","port","Number","process","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/interceptors/AuthInterceptor.ts","../src/decaf-model/decorators/decorators.ts","../src/request/DecafRequestContext.ts","../src/request/DecafHandlerExecutor.ts","../src/decaf-model/utils.ts","../src/decaf-model/types.ts","../src/decaf-model/FromModelController.ts","../src/interceptors/DecafRequestHandlerInterceptor.ts","../src/decaf-model/DecafModelModule.ts","../src/module.ts","../src/utils.ts","../src/factory/errors/cors.ts","../src/factory/exceptions/DecafErrorFilter.ts","../src/factory/exceptions/decorators.ts","../src/factory/openapi/constants.ts","../src/factory/openapi/SwaggerCustomUI.ts","../src/factory/openapi/SwaggerBuilder.ts","../src/factory/NestBootstraper.ts","../src/index.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null],"names":["Decoration","for","InjectablesKeys","INJECTABLE","extend","decorator","category","cfg","Object","assign","DefaultInjectablesConfig","Injectable","scope","singleton","Scope","DEFAULT","REQUEST","durable","undefined","apply","INJECT","target","propertyKey","descriptor","Inject","ValidationKeys","REQUIRED","ApiProperty","required","MAX","max","maximum","MIN","min","minimum","MAX_LENGTH","maxLength","MIN_LENGTH","minLength","LIST","clazz","c","Array","isArray","type","PATTERN","pat","pattern","source","PersistenceKeys","COLUMN","name","DecorationKeys","DESCRIPTION","description","DECAF_MODULE_OPTIONS","DECAF_ADAPTER_ID","DECAF_HANDLERS","Symbol","DECAF_ADAPTER_OPTIONS","AUTH_HANDLER","AUTH_META_KEY","AuthRole","DecafCoreModule","this","_adapterInstance","log","_logger","Logging","DecafCoreModule_1","constructor","options","moduleRef","createAdapter","info","adapter","conf","alias","getAdapterInstance","forRoot","typeOrmModuleOptions","provide","useValue","useFactory","async","opts","inject","module","providers","exports","onApplicationShutdown","get","shutdown","e","error","isOperationBlocked","ModelConstructor","op","handler","args","Metadata","OperationKeys","REFLECT","BLOCK","ApiOperationFromModel","verb","path","httpToCrud","GET","READ","Get","POST","CREATE","Post","PUT","UPDATE","Put","PATCH","Patch","DELETE","Delete","crudOp","HttpMethodDecorator","ApiExcludeEndpoint","BulkApiOperationFromModel","BulkCrudOperationKeys","READ_ALL","CREATE_ALL","UPDATE_ALL","DELETE_ALL","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","raw","valuesInOrder","keysInOrder","DecafParams","AuthInterceptor","reflector","authHandler","intercept","next","modelName","getHandler","getClass","authorize","handle","Auth","model","resource","SetMetadata","UseInterceptors","Optional","Reflector","Roles","roles","metadata","DecafRequestContext","cache","Map","set","key","value","DecafHandlerExecutor","handlers","context","exec","res","apiParamSpec","getApiDecorators","methodName","routePath","apiPathParams","split","filter","startsWith","slice","extractPathParams","method","ApiParam","ApiOperation","summary","ApiOkResponse","ApiNoContentResponse","Query","applyApiDecorators","proto","prototype","forEach","d","index","createRouteHandler","pathParams","queryParams","debug","JSON","stringify","direction","limit","offset","persistence","ModelService","statement","Error","resolvePersistenceMethod","defineRouteMethod","ControllerClass","defineProperty","writable","getOwnPropertyDescriptor","AbstractQueryController","LoggedClass","clientContext","super","FromModelController","getPersistence","ModelClazz","forModel","Repository","createQueryRoutesFromRepository","prefix","QUERY","ModelConstr","class","methodQueries","QueryController","_persistence","adapterOptions","objValues","entries","fields","f","segment","trim","join","create","tableName","Model","toKebabCase","modelClazzName","getPK","apiProperties","getRouteParametersFromModel","BaseController","repo","DynamicModelController","pk","listBy","details","paginateBy","page","findOneBy","findBy","a","parseInt","PreparedStatementKeys","FIND_BY","LIST_BY","push","PAGE_BY","FIND_ONE_BY","createAll","data","created","verbose","readAll","ids","read","length","routeParams","id","ValidationError","updateAll","body","updated","update","deleteAll","delete","del","ApiQuery","enum","OrderDirection","Param","ApiNotFoundResponse","ApiBody","schema","items","$ref","getSchemaPath","ApiCreatedResponse","ApiBadRequestResponse","ApiUnprocessableEntityResponse","Body","Controller","ApiTags","ApiExtraModels","composed","DBKeys","COMPOSED","composedKeys","uniqueKeys","from","Set","separator","DecafRequestHandlerInterceptor","executor","getResponse","DecafModelModule","DecafModelModule_1","createModelServices","models","flavour","trackedModels","Adapter","modelServices","autoServices","controllers","H","APP_INTERCEPTOR","useClass","DecafModule","DecafModule_1","forRootAsync","autoControllers","imports","repoForModel","m","InternalError","CorsError","ForbiddenError","msg","DecafExceptionFilter","exception","host","response","request","isProduction","LoggedEnvironment","env","BaseError","message","status","code","json","timestamp","Date","toISOString","url","UseDecafFilter","UseFilters","Catch","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","toLowerCase","corsOptions","origin","callback","includes","credentials","methods","useHelmet","helmet","require","use","warn","useGlobalPipes","pipes","useGlobalFilters","filters","useGlobalInterceptors","interceptors","start","port","Number","process","PORT","listen","then","getUrl","VERSION","PACKAGE_NAME","registerLibrary"],"mappings":"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"}
@@ -86,7 +86,7 @@ class FromModelController {
86
86
  return core_1.Repository.forModel(ModelClazz);
87
87
  }
88
88
  }
89
- static createQueryRoutesFromRepository(persistence, prefix = core_1.PersistenceKeys.STATEMENT) {
89
+ static createQueryRoutesFromRepository(persistence, prefix = core_1.PersistenceKeys.QUERY) {
90
90
  const ModelConstr = persistence.class;
91
91
  const methodQueries = decoration_1.Metadata.get(persistence.constructor, decoration_1.Metadata.key(core_1.PersistenceKeys.QUERY)) ?? {};
92
92
  // create base class
@@ -125,7 +125,7 @@ class FromModelController {
125
125
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
126
126
  const { description, getPK, apiProperties, path } = FromModelController.getRouteParametersFromModel(ModelConstr);
127
127
  log.debug(`Creating controller for model: ${modelClazzName}`);
128
- const BaseController = FromModelController.createQueryRoutesFromRepository(persistence);
128
+ const BaseController = FromModelController.createQueryRoutesFromRepository(persistence instanceof core_1.ModelService ? persistence.repo : persistence);
129
129
  let DynamicModelController = class DynamicModelController extends BaseController {
130
130
  constructor(clientContext) {
131
131
  super(clientContext);
@@ -54,7 +54,7 @@ import { AbstractQueryController, ControllerConstructor } from "./types";
54
54
  export declare class FromModelController {
55
55
  private static readonly log;
56
56
  static getPersistence<T extends Model<boolean>>(ModelClazz: ModelConstructor<T>): Repo<T> | ModelService<T>;
57
- static createQueryRoutesFromRepository<T extends Model<boolean>>(persistence: Repo<T> | ModelService<T>, prefix?: string): ControllerConstructor<AbstractQueryController>;
57
+ static createQueryRoutesFromRepository<T extends Model<boolean>>(persistence: Repo<T>, prefix?: string): ControllerConstructor<AbstractQueryController>;
58
58
  static create<T extends Model<any>>(ModelConstr: ModelConstructor<T>): any;
59
59
  static getRouteParametersFromModel<T extends Model<any>>(ModelClazz: ModelConstructor<T>): DecafModelRoute;
60
60
  }
@@ -1 +1 @@
1
- {"version":3,"file":"FromModelController.js","sourceRoot":"","sources":["../../src/decaf-model/FromModelController.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"FromModelController.js","sourceRoot":"","sources":["../../src/decaf-model/FromModelController.ts"],"names":[],"mappings":"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"}
@@ -2,11 +2,13 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.getApiDecorators = getApiDecorators;
4
4
  exports.applyApiDecorators = applyApiDecorators;
5
+ exports.resolvePersistenceMethod = resolvePersistenceMethod;
5
6
  exports.createRouteHandler = createRouteHandler;
6
7
  exports.defineRouteMethod = defineRouteMethod;
7
8
  const common_1 = require("@nestjs/common");
8
9
  const swagger_1 = require("@nestjs/swagger");
9
10
  const decorators_1 = require("./decorators/index.cjs");
11
+ const core_1 = require("@decaf-ts/core");
10
12
  const extractPathParams = (routePath) => {
11
13
  return routePath
12
14
  .split("/")
@@ -43,13 +45,23 @@ function applyApiDecorators(target, methodName, descriptor, decorators) {
43
45
  decorators.method.forEach((d) => d(proto, methodName, descriptor));
44
46
  decorators.params?.forEach((d, index) => d(proto, methodName, index));
45
47
  }
48
+ function resolvePersistenceMethod(persistence, methodName, ...args) {
49
+ if (persistence instanceof core_1.ModelService) {
50
+ return typeof persistence[methodName] === "function"
51
+ ? persistence[methodName](...args)
52
+ : persistence.statement(methodName, ...args);
53
+ }
54
+ if (typeof persistence[methodName] === "function")
55
+ return persistence[methodName](...args);
56
+ throw new Error(`Persistence method "${methodName}" not found on ${persistence?.constructor?.name}`);
57
+ }
46
58
  function createRouteHandler(methodName) {
47
59
  return async function (pathParams, queryParams) {
48
60
  const log = this.log.for(methodName);
49
61
  try {
50
62
  log.debug(`Invoking persistence method "${methodName}" given parameters: ${JSON.stringify(pathParams.valuesInOrder)}`);
51
63
  const { direction, limit, offset } = queryParams;
52
- return (await this.persistence[methodName](...pathParams.valuesInOrder, direction, limit, offset));
64
+ return await resolvePersistenceMethod(this.persistence, methodName, ...pathParams.valuesInOrder, direction, limit, offset);
53
65
  }
54
66
  catch (e) {
55
67
  log.error(`Custom query "${methodName}" failed`, e);
@@ -1,7 +1,9 @@
1
1
  import { Controller, type DecoratorBundle } from "./types";
2
2
  import { type DecafParamProps } from "./decorators";
3
- import { DirectionLimitOffset } from "@decaf-ts/core";
3
+ import { DirectionLimitOffset, ModelService, Repo } from "@decaf-ts/core";
4
+ import { Model } from "@decaf-ts/decorator-validation";
4
5
  export declare function getApiDecorators(methodName: string, routePath: string): DecoratorBundle;
5
6
  export declare function applyApiDecorators(target: any, methodName: string, descriptor: PropertyDescriptor, decorators: DecoratorBundle): void;
7
+ export declare function resolvePersistenceMethod<T extends Model<boolean>>(persistence: Repo<T> | ModelService<T>, methodName: string, ...args: any[]): any;
6
8
  export declare function createRouteHandler<T>(methodName: string): (this: Controller, pathParams: DecafParamProps, queryParams: DirectionLimitOffset) => Promise<T>;
7
9
  export declare function defineRouteMethod(ControllerClass: new (...args: any[]) => any, methodName: string, handler: (...args: any[]) => any): PropertyDescriptor | undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/decaf-model/utils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/decaf-model/utils.ts"],"names":[],"mappings":"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"}
@@ -54,7 +54,7 @@ import { AbstractQueryController, ControllerConstructor } from "./types";
54
54
  export declare class FromModelController {
55
55
  private static readonly log;
56
56
  static getPersistence<T extends Model<boolean>>(ModelClazz: ModelConstructor<T>): Repo<T> | ModelService<T>;
57
- static createQueryRoutesFromRepository<T extends Model<boolean>>(persistence: Repo<T> | ModelService<T>, prefix?: string): ControllerConstructor<AbstractQueryController>;
57
+ static createQueryRoutesFromRepository<T extends Model<boolean>>(persistence: Repo<T>, prefix?: string): ControllerConstructor<AbstractQueryController>;
58
58
  static create<T extends Model<any>>(ModelConstr: ModelConstructor<T>): any;
59
59
  static getRouteParametersFromModel<T extends Model<any>>(ModelClazz: ModelConstructor<T>): DecafModelRoute;
60
60
  }
@@ -83,7 +83,7 @@ export class FromModelController {
83
83
  return Repository.forModel(ModelClazz);
84
84
  }
85
85
  }
86
- static createQueryRoutesFromRepository(persistence, prefix = PersistenceKeys.STATEMENT) {
86
+ static createQueryRoutesFromRepository(persistence, prefix = PersistenceKeys.QUERY) {
87
87
  const ModelConstr = persistence.class;
88
88
  const methodQueries = Metadata.get(persistence.constructor, Metadata.key(PersistenceKeys.QUERY)) ?? {};
89
89
  // create base class
@@ -122,7 +122,7 @@ export class FromModelController {
122
122
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
123
123
  const { description, getPK, apiProperties, path } = FromModelController.getRouteParametersFromModel(ModelConstr);
124
124
  log.debug(`Creating controller for model: ${modelClazzName}`);
125
- const BaseController = FromModelController.createQueryRoutesFromRepository(persistence);
125
+ const BaseController = FromModelController.createQueryRoutesFromRepository(persistence instanceof ModelService ? persistence.repo : persistence);
126
126
  let DynamicModelController = class DynamicModelController extends BaseController {
127
127
  constructor(clientContext) {
128
128
  super(clientContext);
@@ -1 +1 @@
1
- {"version":3,"file":"FromModelController.js","sourceRoot":"","sources":["../../../src/decaf-model/FromModelController.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"FromModelController.js","sourceRoot":"","sources":["../../../src/decaf-model/FromModelController.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,9 @@
1
1
  import { Controller, type DecoratorBundle } from "./types";
2
2
  import { type DecafParamProps } from "./decorators";
3
- import { DirectionLimitOffset } from "@decaf-ts/core";
3
+ import { DirectionLimitOffset, ModelService, Repo } from "@decaf-ts/core";
4
+ import { Model } from "@decaf-ts/decorator-validation";
4
5
  export declare function getApiDecorators(methodName: string, routePath: string): DecoratorBundle;
5
6
  export declare function applyApiDecorators(target: any, methodName: string, descriptor: PropertyDescriptor, decorators: DecoratorBundle): void;
7
+ export declare function resolvePersistenceMethod<T extends Model<boolean>>(persistence: Repo<T> | ModelService<T>, methodName: string, ...args: any[]): any;
6
8
  export declare function createRouteHandler<T>(methodName: string): (this: Controller, pathParams: DecafParamProps, queryParams: DirectionLimitOffset) => Promise<T>;
7
9
  export declare function defineRouteMethod(ControllerClass: new (...args: any[]) => any, methodName: string, handler: (...args: any[]) => any): PropertyDescriptor | undefined;
@@ -1,6 +1,7 @@
1
1
  import { Get, Query } from "@nestjs/common";
2
2
  import { ApiNoContentResponse, ApiOkResponse, ApiOperation, ApiParam, } from "@nestjs/swagger";
3
3
  import { DecafParams, } from "./decorators/index.js";
4
+ import { ModelService } from "@decaf-ts/core";
4
5
  const extractPathParams = (routePath) => {
5
6
  return routePath
6
7
  .split("/")
@@ -37,13 +38,23 @@ export function applyApiDecorators(target, methodName, descriptor, decorators) {
37
38
  decorators.method.forEach((d) => d(proto, methodName, descriptor));
38
39
  decorators.params?.forEach((d, index) => d(proto, methodName, index));
39
40
  }
41
+ export function resolvePersistenceMethod(persistence, methodName, ...args) {
42
+ if (persistence instanceof ModelService) {
43
+ return typeof persistence[methodName] === "function"
44
+ ? persistence[methodName](...args)
45
+ : persistence.statement(methodName, ...args);
46
+ }
47
+ if (typeof persistence[methodName] === "function")
48
+ return persistence[methodName](...args);
49
+ throw new Error(`Persistence method "${methodName}" not found on ${persistence?.constructor?.name}`);
50
+ }
40
51
  export function createRouteHandler(methodName) {
41
52
  return async function (pathParams, queryParams) {
42
53
  const log = this.log.for(methodName);
43
54
  try {
44
55
  log.debug(`Invoking persistence method "${methodName}" given parameters: ${JSON.stringify(pathParams.valuesInOrder)}`);
45
56
  const { direction, limit, offset } = queryParams;
46
- return (await this.persistence[methodName](...pathParams.valuesInOrder, direction, limit, offset));
57
+ return await resolvePersistenceMethod(this.persistence, methodName, ...pathParams.valuesInOrder, direction, limit, offset);
47
58
  }
48
59
  catch (e) {
49
60
  log.error(`Custom query "${methodName}" failed`, e);
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/decaf-model/utils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/decaf-model/utils.ts"],"names":[],"mappings":"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"}
@@ -35,5 +35,5 @@ export * from "./request";
35
35
  * @constant
36
36
  * @type {string}
37
37
  */
38
- export declare const VERSION = "0.1.8";
38
+ export declare const VERSION = "0.1.9";
39
39
  export declare const PACKAGE_NAME = "@decaf-ts/for-nest";
package/lib/esm/index.js CHANGED
@@ -36,7 +36,7 @@ export * from "./request/index.js";
36
36
  * @constant
37
37
  * @type {string}
38
38
  */
39
- export const VERSION = "0.1.8";
39
+ export const VERSION = "0.1.9";
40
40
  export const PACKAGE_NAME = "@decaf-ts/for-nest";
41
41
  Metadata.registerLibrary(PACKAGE_NAME, VERSION);
42
42
  //# sourceMappingURL=index.js.map
package/lib/index.cjs CHANGED
@@ -53,7 +53,7 @@ __exportStar(require("./request/index.cjs"), exports);
53
53
  * @constant
54
54
  * @type {string}
55
55
  */
56
- exports.VERSION = "0.1.8";
56
+ exports.VERSION = "0.1.9";
57
57
  exports.PACKAGE_NAME = "@decaf-ts/for-nest";
58
58
  decoration_1.Metadata.registerLibrary(exports.PACKAGE_NAME, exports.VERSION);
59
59
  //# sourceMappingURL=index.js.map
package/lib/index.d.ts CHANGED
@@ -35,5 +35,5 @@ export * from "./request";
35
35
  * @constant
36
36
  * @type {string}
37
37
  */
38
- export declare const VERSION = "0.1.8";
38
+ export declare const VERSION = "0.1.9";
39
39
  export declare const PACKAGE_NAME = "@decaf-ts/for-nest";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@decaf-ts/for-nest",
3
- "version": "0.1.9",
3
+ "version": "0.1.10",
4
4
  "description": "NestJS decaf integration",
5
5
  "type": "module",
6
6
  "exports": {