@decaf-ts/for-nest 0.1.21 → 0.1.22

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,c,p,d,l,u){"use strict";function h(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 m=h(u);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 y="DecafModuleOptions",g="DecafAdapter",f="DecafRoute",_=Symbol("DecafHandlers"),A=Symbol("DecafAdapterForOptions"),b=Symbol("AUTH_HANDLER"),P="auth:meta",E="AuthRole";var w;let O=class{static{w=this}static{this._adapterInstance=null}static get log(){return this._logger||(this._logger=p.Logging.for(w)),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);try{await this._adapterInstance.initialize()}catch(e){throw t.error("Failed to initialized adapter"),e}t.info("Adapter instance created successfully!")}return this._adapterInstance}static getAdapterInstance(){return this._adapterInstance}static forRoot(e){const t={provide:y,useValue:e},r={useFactory:async e=>w.createAdapter(e),provide:g,durable:!0,scope:a.Scope.DEFAULT,inject:[y]};return{module:w,providers:[r,t],exports:[r]}}async onApplicationShutdown(){const e=w.log.for(this.onApplicationShutdown),t=this.moduleRef.get(g);try{t&&(e.info("Shutting down"),await t.shutdown(),w._adapterInstance=null)}catch(t){e.error("Failed to shutdown application",t)}}};function R(e,r){const{handler:a,args:o}=t.Metadata.get(e,d.OperationKeys.REFLECT+d.OperationKeys.BLOCK)||{};return!!a&&(a(...o,r)??!1)}function D(e,r,o){const i={GET:[d.OperationKeys.READ,a.Get],POST:[d.OperationKeys.CREATE,a.Post],PUT:[d.OperationKeys.UPDATE,a.Put],PATCH:[d.OperationKeys.UPDATE,a.Patch],DELETE:[d.OperationKeys.DELETE,a.Delete]},[n,c]=i[r];return R(e,n)?t.apply(s.ApiExcludeEndpoint()):t.apply(c(o))}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)}O=w=n.__decorate([a.Global(),a.Module({}),n.__param(0,a.Inject(y)),n.__metadata("design:paramtypes",[Object,c.ModuleRef])],O);const T=a.createParamDecorator((e,t)=>{const r=t.switchToHttp().getRequest().body,o=t.getClass(),i=o.clazz;if(!i)throw new a.InternalServerErrorException(`ModelConstructor not found on controller ${o.name}. Ensure the controller was created via FromModelController.`);return r?Array.isArray(r)?r.map(e=>new i(e)):new i(r):r}),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 I(e){const t={GET:a.Get,POST:a.Post,PUT:a.Put,PATCH:a.Patch,DELETE:a.Delete}[e];if(!t)throw Error(`Unsupported HTTP verb "${e}". No NestJS decorator mapping was found.`);return t}function k(t){const r="string"==typeof t?t:t.name;return a.applyDecorators(a.SetMetadata(P,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(P,e.getHandler())??this.reflector.get(P,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(b)),n.__metadata("design:paramtypes",[c.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 C=e=>({name:e,description:e+" parameter for the query",required:!0,type:String});function F(e,t,r,o=!1){const n=I(r),c=(e=>e.split("/").filter(e=>e.startsWith(":")).map(e=>e.slice(1)))(t).map(C),p=[];return"GET"===r&&o&&p.push(s.ApiQuery({name:"direction",required:!1,enum:i.OrderDirection,description:"the sort order when applicable"}),s.ApiQuery({name:"limit",required:!1,description:"limit or page size when applicable"}),s.ApiQuery({name:"offset",required:!1,description:"offset or bookmark when applicable"})),{method:[n(t),...c.map(s.ApiParam),...p,s.ApiOperation({summary:`Retrieve records using according to "${e}".`}),s.ApiOkResponse({description:"Result successfully retrieved."}),s.ApiNoContentResponse({description:"No content returned by the method."})],params:[$(c),a.Query()]}}function M(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 j(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 x(e,t,r){return Object.defineProperty(e.prototype||e,t,{value:r,writable:!1}),Object.getOwnPropertyDescriptor(e.prototype||e,t)}class q extends p.LoggedClass{constructor(e){super(),this.clientContext=e}get persistence(){throw Error("Not implemented")}}class N{static{this.log=p.Logging.for(N.name)}static getPersistence(e){try{return i.ModelService.getService(e)}catch(t){return i.Repository.forModel(e)}}static createQueryRoutesFromRepository(e,r=i.PersistenceKeys.QUERY){const a=N.log.for(N.createQueryRoutesFromRepository),o=e.class,s=t.Metadata.get(e.constructor,t.Metadata.key(i.PersistenceKeys.QUERY))??{},n=t.Metadata.get(e.constructor,t.Metadata.key(f))??{};class c extends q{constructor(e){super(e),this._persistence=N.getPersistence(o)}get persistence(){const e=this.clientContext.get(A);return e?this._persistence.for(e):this._persistence}}for(const[e,t]of Object.entries(n)){const r=[t.path.replace(/^\/+|\/+$/g,"")].filter(e=>e&&e.trim()).join("/"),i=j(e);if(!i){const t=`Invalid or missing handler for model ${o.name} on decorated method ${e}`;throw a.error(t),Error(t)}const s=x(c,e,i);s&&M(c,e,s,F(e,r,t.httpMethod))}for(const[e,t]of Object.entries(s)){const a=[r,e,...(t.fields??[]).map(e=>":"+e)].filter(e=>e&&e.trim()).join("/"),o=x(c,e,j(e));o&&M(c,e,o,F(e,a,"GET",!0))}return c}static create(t){const r=N.log.for(N.create),c=o.Model.tableName(t),l=p.toKebabCase(c),u=t.name,h=N.getPersistence(t),{description:m,getPK:y,apiProperties:g,path:f}=N.getRouteParametersFromModel(t);r.debug("Creating controller for model: "+u);const _=N.createQueryRoutesFromRepository(h instanceof i.ModelService?h.repo:h);let A=class extends _{static{this.clazz=t}constructor(e){super(e),this.pk=o.Model.pk(t),r.info(`Registering dynamic controller for model: ${u} route: /${l}`)}async listBy(e,t){return this.persistence.listBy(e,t.direction)}async paginateBy(e,t){return this.persistence.paginateBy(e,t.direction,t)}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,bookmark:n}=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=[t[0],a,{limit:s,offset:o,bookmark:n}];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 d.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 d.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 d.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.ApiQuery({name:"offset",description:"the bookmark when necessary"}),s.ApiOkResponse({description:u+" listed paginated."}),n.__param(0,a.Param("key")),n.__param(1,a.Query()),n.__metadata("design:type",Function),n.__metadata("design:paramtypes",[String,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,T()),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,T()),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"),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","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,T()),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,T()),n.__metadata("design:type",Function),n.__metadata("design:paramtypes",[Object,Object]),n.__metadata("design:returntype",Promise)],A.prototype,"update",null),n.__decorate([D(t,"DELETE","bulk"),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(l),s.ApiTags(u),s.ApiExtraModels(t),k(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(d.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,L;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=p.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(N.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:c.APP_INTERCEPTOR,useClass:e.DecafRequestHandlerInterceptor},...s]}}},e.DecafModelModule=B=n.__decorate([a.Module({})],e.DecafModelModule),e.DecafModule=L=class{static async forRootAsync(t){const{autoControllers:r,autoServices:a,handlers:o}=t,i=(await O.createAdapter(t)).flavour,s=[O.forRoot(t)];return r&&s.push(e.DecafModelModule.forRoot(i,{autoServices:a,handlers:o})),{module:L,imports:s}}},e.DecafModule=L=n.__decorate([a.Module({})],e.DecafModule);class K extends i.ForbiddenError{constructor(e){super(e,K.name)}}e.DecafExceptionFilter=class{catch(e,t){const r=t.switchToHttp(),a=r.getResponse(),o=r.getRequest(),i="production"===p.LoggedEnvironment.env;e instanceof d.BaseError||(e=new d.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 H={title:"Swagger | OpenAPI Specification (OAS)",description:"Standardized format for describing RESTful APIs",version:"0.0.1",path:"docs",faviconFilePath:"",topbarIconFilePath:"",auth:{type:"http",scheme:"bearer",bearerFormat:"JWT",name:"Authorization",description:"Enter JWT token",in:"header"},persistAuthorization:!0,topbarBgColor:"#000000"};class U{constructor(e){this.options={...e}}customCSS(){let e="";return this.options.topbarIconPath&&(e+=`.topbar-wrapper { content: url('data:image/png;base64,${this.b64(this.options.topbarIconPath)}'); width: 200px; height: auto; }\n`),e+`\n .topbar-wrapper svg { visibility: hidden; }\n .swagger-ui .topbar { background-color: ${this.options.topbarBgColor||H.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=m.join(this.options.assetsPath||"",e),a=l.readFileSync(r,{encoding:"base64"});return t?"data:image/png;base64,"+a:a}}class G{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||H.auth).build();return s.SwaggerModule.createDocument(this.app,t,{extraModels:this.options.extraModels||[]})}setupSwagger(){const e=this.createDocument(),t=new U({title:this.options.title,path:this.options.path||H.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||H.path,this.app,e,{...t.getCustomOptions()})}}const Q="##VERSION##",z="##PACKAGE##";t.Metadata.registerLibrary(z,Q),e.AUTH_HANDLER=b,e.AUTH_META_KEY=P,e.ApiOperationFromModel=D,e.ApiParamsFromModel=v,e.Auth=k,e.AuthRole=E,e.BulkApiOperationFromModel=(e,r,o)=>{const i={GET:[d.BulkCrudOperationKeys.READ_ALL,a.Get],POST:[d.BulkCrudOperationKeys.CREATE_ALL,a.Post],PUT:[d.BulkCrudOperationKeys.UPDATE_ALL,a.Put],PATCH:[d.BulkCrudOperationKeys.UPDATE_ALL,a.Patch],DELETE:[d.BulkCrudOperationKeys.DELETE_ALL,a.Delete]},[n,c]=i[r];return R(e,n)?t.apply(s.ApiExcludeEndpoint()):t.apply(c(o))},e.CorsError=K,e.DECAF_ADAPTER_ID=g,e.DECAF_ADAPTER_OPTIONS=A,e.DECAF_HANDLERS=_,e.DECAF_MODULE_OPTIONS=y,e.DECAF_ROUTE=f,e.DecafBody=T,e.DecafParams=$,e.FromModelController=N,e.HttpVerbToDecorator=I,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 K(`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 G(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=z,e.Roles=e=>t.metadata(E,e),e.SwaggerBuilder=G,e.UseDecafFilter=()=>a.UseFilters(new e.DecafExceptionFilter),e.VERSION=Q,e.isOperationBlocked=R,e.repoForModel=e=>{const t=o.Model.get(e);if(!t)throw new d.InternalError("Failed to find repository for "+e);return i.Repository.forModel(t)},e.route=(e,r)=>{const a=f;return t.Decoration.for(a).define({decorator:()=>(o,i,s)=>{const n={path:r,httpMethod:e,handler:s};return t.apply(t.methodMetadata(t.Metadata.key(a,i),n))(o,i,s)},args:[]}).apply()}},"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/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/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.decafTsDbDecorators,e.fs,e.path);
1
+ var e,t;e=this,t=function(e,t,r,a,o,i,s,n,c,p,d,l,u){"use strict";function h(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 m=h(u);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 y="DecafModuleOptions",g="DecafAdapter",f="DecafRoute",_=Symbol("DecafHandlers"),A=Symbol("DecafAdapterForOptions"),b=Symbol("AUTH_HANDLER"),P="auth:meta",E="AuthRole";var w;let O=class{static{w=this}static{this._adapterInstance=null}static get log(){return this._logger||(this._logger=p.Logging.for(w)),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);try{await this._adapterInstance.initialize()}catch(e){throw t.error("Failed to initialized adapter"),e}t.info("Adapter instance created successfully!")}return this._adapterInstance}static getAdapterInstance(){return this._adapterInstance}static forRoot(e){const t={provide:y,useValue:e},r={useFactory:async e=>w.createAdapter(e),provide:g,durable:!0,scope:a.Scope.DEFAULT,inject:[y]};return{module:w,providers:[r,t],exports:[r]}}async onApplicationShutdown(){const e=w.log.for(this.onApplicationShutdown),t=this.moduleRef.get(g);try{t&&(e.info("Shutting down"),await t.shutdown(),w._adapterInstance=null)}catch(t){e.error("Failed to shutdown application",t)}}};function R(e,r){const{handler:a,args:o}=t.Metadata.get(e,d.OperationKeys.REFLECT+d.OperationKeys.BLOCK)||{};return!!a&&(a(...o,r)??!1)}function D(e,r,o){const i={GET:[d.OperationKeys.READ,a.Get],POST:[d.OperationKeys.CREATE,a.Post],PUT:[d.OperationKeys.UPDATE,a.Put],PATCH:[d.OperationKeys.UPDATE,a.Patch],DELETE:[d.OperationKeys.DELETE,a.Delete]},[n,c]=i[r];return R(e,n)?t.apply(s.ApiExcludeEndpoint()):t.apply(c(o))}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)}O=w=n.__decorate([a.Global(),a.Module({}),n.__param(0,a.Inject(y)),n.__metadata("design:paramtypes",[Object,c.ModuleRef])],O);const T=a.createParamDecorator((e,t)=>{const r=t.switchToHttp().getRequest().body,o=t.getClass(),i=o.clazz;if(!i)throw new a.InternalServerErrorException(`ModelConstructor not found on controller ${o.name}. Ensure the controller was created via FromModelController.`);return r?Array.isArray(r)?r.map(e=>new i(e)):new i(r):r}),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 I(e){const t={GET:a.Get,POST:a.Post,PUT:a.Put,PATCH:a.Patch,DELETE:a.Delete}[e];if(!t)throw Error(`Unsupported HTTP verb "${e}". No NestJS decorator mapping was found.`);return t}function k(t){const r="string"==typeof t?t:t.name;return a.applyDecorators(a.SetMetadata(P,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(P,e.getHandler())??this.reflector.get(P,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(b)),n.__metadata("design:paramtypes",[c.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 C=e=>({name:e,description:e+" parameter for the query",required:!0,type:String});function F(e,t,r,o=!1){const n=I(r),c=(e=>e.split("/").filter(e=>e.startsWith(":")).map(e=>e.slice(1)))(t).map(C),p=[];return"GET"===r&&o&&p.push(s.ApiQuery({name:"direction",required:!1,enum:i.OrderDirection,description:"the sort order when applicable"}),s.ApiQuery({name:"limit",required:!1,description:"limit or page size when applicable"}),s.ApiQuery({name:"offset",required:!1,description:"offset or bookmark when applicable"})),{method:[n(t),...c.map(s.ApiParam),...p,s.ApiOperation({summary:`Retrieve records using according to "${e}".`}),s.ApiOkResponse({description:"Result successfully retrieved."}),s.ApiNoContentResponse({description:"No content returned by the method."})],params:[$(c),a.Query()]}}function M(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 j(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 x(e,t,r){return Object.defineProperty(e.prototype||e,t,{value:r,writable:!1}),Object.getOwnPropertyDescriptor(e.prototype||e,t)}class q extends p.LoggedClass{constructor(e){super(),this.clientContext=e}get persistence(){throw Error("Not implemented")}}class N{static{this.log=p.Logging.for(N.name)}static getPersistence(e){try{return i.ModelService.getService(e)}catch(t){return i.Repository.forModel(e)}}static createQueryRoutesFromRepository(e,r=i.PersistenceKeys.QUERY){const a=N.log.for(N.createQueryRoutesFromRepository),o=e instanceof i.ModelService?e.repo:e,s=o.class,n=t.Metadata.get(o.constructor,t.Metadata.key(i.PersistenceKeys.QUERY))??{},c=t.Metadata.get(e.constructor,t.Metadata.key(f))??{};class p extends q{constructor(e){super(e),this._persistence=N.getPersistence(s)}get persistence(){const e=this.clientContext.get(A);return e?this._persistence.for(e):this._persistence}}for(const[e,t]of Object.entries(c)){const r=[t.path.replace(/^\/+|\/+$/g,"")].filter(e=>e&&e.trim()).join("/"),o=j(e);if(!o){const t=`Invalid or missing handler for model ${s.name} on decorated method ${e}`;throw a.error(t),Error(t)}const i=x(p,e,o);i&&M(p,e,i,F(e,r,t.httpMethod))}for(const[e,t]of Object.entries(n)){const a=[r,e,...(t.fields??[]).map(e=>":"+e)].filter(e=>e&&e.trim()).join("/"),o=x(p,e,j(e));o&&M(p,e,o,F(e,a,"GET",!0))}return p}static create(t){const r=N.log.for(N.create),c=o.Model.tableName(t),l=p.toKebabCase(c),u=t.name,h=N.getPersistence(t),{description:m,getPK:y,apiProperties:g,path:f}=N.getRouteParametersFromModel(t);r.debug("Creating controller for model: "+u);const _=N.createQueryRoutesFromRepository(h);let A=class extends _{static{this.clazz=t}constructor(e){super(e),this.pk=o.Model.pk(t),r.info(`Registering dynamic controller for model: ${u} route: /${l}`)}async listBy(e,t){return this.persistence.listBy(e,t.direction)}async paginateBy(e,t){return this.persistence.paginateBy(e,t.direction,t)}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,bookmark:n}=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=[t[0],a,{limit:s,offset:o,bookmark:n}];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 d.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 d.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 d.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.ApiQuery({name:"offset",description:"the bookmark when necessary"}),s.ApiOkResponse({description:u+" listed paginated."}),n.__param(0,a.Param("key")),n.__param(1,a.Query()),n.__metadata("design:type",Function),n.__metadata("design:paramtypes",[String,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,T()),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,T()),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"),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","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,T()),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,T()),n.__metadata("design:type",Function),n.__metadata("design:paramtypes",[Object,Object]),n.__metadata("design:returntype",Promise)],A.prototype,"update",null),n.__decorate([D(t,"DELETE","bulk"),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(l),s.ApiTags(u),s.ApiExtraModels(t),k(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(d.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,L;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=p.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(N.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:c.APP_INTERCEPTOR,useClass:e.DecafRequestHandlerInterceptor},...s]}}},e.DecafModelModule=B=n.__decorate([a.Module({})],e.DecafModelModule),e.DecafModule=L=class{static async forRootAsync(t){const{autoControllers:r,autoServices:a,handlers:o}=t,i=(await O.createAdapter(t)).flavour,s=[O.forRoot(t)];return r&&s.push(e.DecafModelModule.forRoot(i,{autoServices:a,handlers:o})),{module:L,imports:s}}},e.DecafModule=L=n.__decorate([a.Module({})],e.DecafModule);class K extends i.ForbiddenError{constructor(e){super(e,K.name)}}e.DecafExceptionFilter=class{catch(e,t){const r=t.switchToHttp(),a=r.getResponse(),o=r.getRequest(),i="production"===p.LoggedEnvironment.env;e instanceof d.BaseError||(e=new d.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 H={title:"Swagger | OpenAPI Specification (OAS)",description:"Standardized format for describing RESTful APIs",version:"0.0.1",path:"docs",faviconFilePath:"",topbarIconFilePath:"",auth:{type:"http",scheme:"bearer",bearerFormat:"JWT",name:"Authorization",description:"Enter JWT token",in:"header"},persistAuthorization:!0,topbarBgColor:"#000000"};class U{constructor(e){this.options={...e}}customCSS(){let e="";return this.options.topbarIconPath&&(e+=`.topbar-wrapper { content: url('data:image/png;base64,${this.b64(this.options.topbarIconPath)}'); width: 200px; height: auto; }\n`),e+`\n .topbar-wrapper svg { visibility: hidden; }\n .swagger-ui .topbar { background-color: ${this.options.topbarBgColor||H.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=m.join(this.options.assetsPath||"",e),a=l.readFileSync(r,{encoding:"base64"});return t?"data:image/png;base64,"+a:a}}class G{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||H.auth).build();return s.SwaggerModule.createDocument(this.app,t,{extraModels:this.options.extraModels||[]})}setupSwagger(){const e=this.createDocument(),t=new U({title:this.options.title,path:this.options.path||H.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||H.path,this.app,e,{...t.getCustomOptions()})}}const Q="##VERSION##",z="##PACKAGE##";t.Metadata.registerLibrary(z,Q),e.AUTH_HANDLER=b,e.AUTH_META_KEY=P,e.ApiOperationFromModel=D,e.ApiParamsFromModel=v,e.Auth=k,e.AuthRole=E,e.BulkApiOperationFromModel=(e,r,o)=>{const i={GET:[d.BulkCrudOperationKeys.READ_ALL,a.Get],POST:[d.BulkCrudOperationKeys.CREATE_ALL,a.Post],PUT:[d.BulkCrudOperationKeys.UPDATE_ALL,a.Put],PATCH:[d.BulkCrudOperationKeys.UPDATE_ALL,a.Patch],DELETE:[d.BulkCrudOperationKeys.DELETE_ALL,a.Delete]},[n,c]=i[r];return R(e,n)?t.apply(s.ApiExcludeEndpoint()):t.apply(c(o))},e.CorsError=K,e.DECAF_ADAPTER_ID=g,e.DECAF_ADAPTER_OPTIONS=A,e.DECAF_HANDLERS=_,e.DECAF_MODULE_OPTIONS=y,e.DECAF_ROUTE=f,e.DecafBody=T,e.DecafParams=$,e.FromModelController=N,e.HttpVerbToDecorator=I,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 K(`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 G(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=z,e.Roles=e=>t.metadata(E,e),e.SwaggerBuilder=G,e.UseDecafFilter=()=>a.UseFilters(new e.DecafExceptionFilter),e.VERSION=Q,e.isOperationBlocked=R,e.repoForModel=e=>{const t=o.Model.get(e);if(!t)throw new d.InternalError("Failed to find repository for "+e);return i.Repository.forModel(t)},e.route=(e,r)=>{const a=f;return t.Decoration.for(a).define({decorator:()=>(o,i,s)=>{const n={path:r,httpMethod:e,handler:s};return t.apply(t.methodMetadata(t.Metadata.key(a,i),n))(o,i,s)},args:[]}).apply()}},"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/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/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.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/DecafBody.ts","../src/decaf-model/decorators/DecafParams.ts","../src/decaf-model/decorators/utils.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","../src/decaf-model/decorators/route.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null],"names":["Decoration","for","InjectablesKeys","INJECTABLE","extend","decorator","category","cfg","Object","assign","DefaultInjectablesConfig","Injectable","scope","singleton","Scope","DEFAULT","REQUEST","durable","undefined","apply","INJECT","target","propertyKey","descriptor","Inject","ValidationKeys","REQUIRED","ApiProperty","required","MAX","max","maximum","MIN","min","minimum","MAX_LENGTH","maxLength","MIN_LENGTH","minLength","LIST","clazz","c","Array","isArray","type","PATTERN","pat","pattern","source","PersistenceKeys","COLUMN","name","DecorationKeys","DESCRIPTION","description","DECAF_MODULE_OPTIONS","DECAF_ADAPTER_ID","DECAF_ROUTE","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","initialize","e","error","getAdapterInstance","forRoot","typeOrmModuleOptions","provide","useValue","useFactory","async","opts","inject","module","providers","exports","onApplicationShutdown","get","shutdown","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","DecafBody","createParamDecorator","data","ctx","body","switchToHttp","getRequest","controller","getClass","ModelConstr","InternalServerErrorException","item","OrderedParams","order","req","original","params","orderList","keys","ordered","k","raw","valuesInOrder","keysInOrder","DecafParams","HttpVerbToDecorator","Error","Auth","model","resource","SetMetadata","UseInterceptors","AuthInterceptor","reflector","authHandler","intercept","next","modelName","getHandler","authorize","handle","Optional","Reflector","DecafRequestContext","cache","Map","set","key","value","DecafHandlerExecutor","handlers","context","exec","res","apiParamSpec","getApiDecorators","methodName","routePath","httpVerb","includeQueryParams","NestHttpRouteDec","apiPathParams","split","filter","startsWith","slice","extractPathParams","swaggerQueryParams","push","ApiQuery","enum","OrderDirection","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","resolvePersistenceMethod","defineRouteMethod","ControllerClass","defineProperty","writable","getOwnPropertyDescriptor","AbstractQueryController","LoggedClass","clientContext","super","FromModelController","getPersistence","ModelClazz","getService","Repository","forModel","createQueryRoutesFromRepository","prefix","QUERY","class","queryMethods","routeMethods","QueryController","_persistence","adapterOptions","entries","replace","segment","trim","join","message","httpMethod","objValues","fields","f","create","tableName","Model","toKebabCase","modelClazzName","getPK","apiProperties","getRouteParametersFromModel","BaseController","repo","DynamicModelController","pk","listBy","details","paginateBy","findOneBy","findBy","bookmark","a","parseInt","PreparedStatementKeys","FIND_BY","LIST_BY","PAGE_BY","FIND_ONE_BY","createAll","created","verbose","readAll","ids","read","length","routeParams","id","ValidationError","updateAll","updated","update","deleteAll","delete","del","Param","ApiNotFoundResponse","ApiBody","schema","items","$ref","getSchemaPath","ApiCreatedResponse","ApiBadRequestResponse","ApiUnprocessableEntityResponse","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","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","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","define","obj","prop","methodMetadata"],"mappings":"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"}
1
+ {"version":3,"file":"for-nest.cjs","sources":["../src/decoration.ts","../src/constants.ts","../src/core-module.ts","../src/decaf-model/decorators/ApiOperationFromModel.ts","../src/decaf-model/decorators/ApiParamsFromModel.ts","../src/decaf-model/decorators/DecafBody.ts","../src/decaf-model/decorators/DecafParams.ts","../src/decaf-model/decorators/utils.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","../src/decaf-model/decorators/route.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null],"names":["Decoration","for","InjectablesKeys","INJECTABLE","extend","decorator","category","cfg","Object","assign","DefaultInjectablesConfig","Injectable","scope","singleton","Scope","DEFAULT","REQUEST","durable","undefined","apply","INJECT","target","propertyKey","descriptor","Inject","ValidationKeys","REQUIRED","ApiProperty","required","MAX","max","maximum","MIN","min","minimum","MAX_LENGTH","maxLength","MIN_LENGTH","minLength","LIST","clazz","c","Array","isArray","type","PATTERN","pat","pattern","source","PersistenceKeys","COLUMN","name","DecorationKeys","DESCRIPTION","description","DECAF_MODULE_OPTIONS","DECAF_ADAPTER_ID","DECAF_ROUTE","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","initialize","e","error","getAdapterInstance","forRoot","typeOrmModuleOptions","provide","useValue","useFactory","async","opts","inject","module","providers","exports","onApplicationShutdown","get","shutdown","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","DecafBody","createParamDecorator","data","ctx","body","switchToHttp","getRequest","controller","getClass","ModelConstr","InternalServerErrorException","item","OrderedParams","order","req","original","params","orderList","keys","ordered","k","raw","valuesInOrder","keysInOrder","DecafParams","HttpVerbToDecorator","Error","Auth","model","resource","SetMetadata","UseInterceptors","AuthInterceptor","reflector","authHandler","intercept","next","modelName","getHandler","authorize","handle","Optional","Reflector","DecafRequestContext","cache","Map","set","key","value","DecafHandlerExecutor","handlers","context","exec","res","apiParamSpec","getApiDecorators","methodName","routePath","httpVerb","includeQueryParams","NestHttpRouteDec","apiPathParams","split","filter","startsWith","slice","extractPathParams","swaggerQueryParams","push","ApiQuery","enum","OrderDirection","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","resolvePersistenceMethod","defineRouteMethod","ControllerClass","defineProperty","writable","getOwnPropertyDescriptor","AbstractQueryController","LoggedClass","clientContext","super","FromModelController","getPersistence","ModelClazz","getService","Repository","forModel","createQueryRoutesFromRepository","prefix","QUERY","repo","class","queryMethods","routeMethods","QueryController","_persistence","adapterOptions","entries","replace","segment","trim","join","message","httpMethod","objValues","fields","f","create","tableName","Model","toKebabCase","modelClazzName","getPK","apiProperties","getRouteParametersFromModel","BaseController","DynamicModelController","pk","listBy","details","paginateBy","findOneBy","findBy","bookmark","a","parseInt","PreparedStatementKeys","FIND_BY","LIST_BY","PAGE_BY","FIND_ONE_BY","createAll","created","verbose","readAll","ids","read","length","routeParams","id","ValidationError","updateAll","updated","update","deleteAll","delete","del","Param","ApiNotFoundResponse","ApiBody","schema","items","$ref","getSchemaPath","ApiCreatedResponse","ApiBadRequestResponse","ApiUnprocessableEntityResponse","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","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","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","define","obj","prop","methodMetadata"],"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,apply as o,methodMetadata as i,metadata as s}from"@decaf-ts/decoration";import{InjectablesKeys as n,DefaultInjectablesConfig as a}from"@decaf-ts/injectable-decorators";import{Injectable as c,Scope as p,Inject as d,Global as l,Module as h,Get as u,Post as m,Put as y,Patch as g,Delete as f,applyDecorators as w,createParamDecorator as b,InternalServerErrorException as v,Optional as A,SetMetadata as $,UseInterceptors as E,Query as P,Param as T,Controller as S,Catch as O,UseFilters as R,Logger as k}from"@nestjs/common";import{ValidationKeys as F,Model as I}from"@decaf-ts/decorator-validation";import{PersistenceKeys as C,OrderDirection as j,ModelService as x,Repository as L,PreparedStatementKeys as D,Adapter as N,ForbiddenError as B}from"@decaf-ts/core";import{ApiProperty as _,ApiExcludeEndpoint as q,ApiParam as G,ApiQuery as U,ApiOperation as z,ApiOkResponse as M,ApiNoContentResponse as H,ApiNotFoundResponse as Q,ApiBody as J,getSchemaPath as Y,ApiCreatedResponse as K,ApiBadRequestResponse as V,ApiUnprocessableEntityResponse as W,ApiTags as X,ApiExtraModels as Z,DocumentBuilder as ee,SwaggerModule as te}from"@nestjs/swagger";import{__decorate as re,__param as oe,__metadata as ie}from"tslib";import{ModuleRef as se,Reflector as ne,APP_INTERCEPTOR as ae}from"@nestjs/core";import{Logging as ce,LoggedClass as pe,toKebabCase as de,LoggedEnvironment as le}from"@decaf-ts/logging";import{OperationKeys as he,BulkCrudOperationKeys as ue,ValidationError as me,DBKeys as ye,InternalError as ge,BaseError as fe}from"@decaf-ts/db-decorators";import{readFileSync as we}from"fs";import*as be from"path";e.for(n.INJECTABLE).extend({decorator:(e,t)=>(t=t||("object"==typeof e?Object.assign(e,a):a),c({scope:t.singleton?p.DEFAULT:p.REQUEST,durable:!t.singleton||void 0}))}).apply(),e.for(n.INJECT).extend({decorator:(e,t)=>(t,r,o)=>d(e||t)(t,r,o)}).apply(),e.for(F.REQUIRED).extend(_({required:!0})).apply(),e.for(F.MAX).extend({decorator:e=>_({maximum:e})}).apply(),e.for(F.MIN).extend({decorator:e=>_({minimum:e})}).apply(),e.for(F.MAX_LENGTH).extend({decorator:e=>_({maxLength:e})}).apply(),e.for(F.MIN_LENGTH).extend({decorator:e=>_({minLength:e})}).apply(),e.for(F.LIST).extend({decorator:e=>{const t=Array.isArray(e)?e[0]:e;return _({type:[t]})}}).apply(),e.for(F.PATTERN).extend({decorator:e=>_({pattern:"string"==typeof e?e:e.source})}).apply(),e.for(C.COLUMN).extend({decorator:e=>_({name:e})}).apply(),e.for(t.DESCRIPTION).extend({decorator:e=>_({description:e})}).apply();const ve="DecafModuleOptions",Ae="DecafAdapter",$e="DecafRoute",Ee=Symbol("DecafHandlers"),Pe=Symbol("DecafAdapterForOptions"),Te=Symbol("AUTH_HANDLER"),Se="auth:meta",Oe="AuthRole";var Re;let ke=class{static{Re=this}static{this._adapterInstance=null}static get log(){return this._logger||(this._logger=ce.for(Re)),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);try{await this._adapterInstance.initialize()}catch(e){throw t.error("Failed to initialized adapter"),e}t.info("Adapter instance created successfully!")}return this._adapterInstance}static getAdapterInstance(){return this._adapterInstance}static forRoot(e){const t={provide:ve,useValue:e},r={useFactory:async e=>Re.createAdapter(e),provide:Ae,durable:!0,scope:p.DEFAULT,inject:[ve]};return{module:Re,providers:[r,t],exports:[r]}}async onApplicationShutdown(){const e=Re.log.for(this.onApplicationShutdown),t=this.moduleRef.get(Ae);try{t&&(e.info("Shutting down"),await t.shutdown(),Re._adapterInstance=null)}catch(t){e.error("Failed to shutdown application",t)}}};function Fe(e,t){const{handler:o,args:i}=r.get(e,he.REFLECT+he.BLOCK)||{};return!!o&&(o(...i,t)??!1)}function Ie(e,t,r){const i={GET:[he.READ,u],POST:[he.CREATE,m],PUT:[he.UPDATE,y],PATCH:[he.UPDATE,g],DELETE:[he.DELETE,f]},[s,n]=i[t];return Fe(e,s)?o(q()):o(n(r))}function Ce(e,t,r){const i={GET:[ue.READ_ALL,u],POST:[ue.CREATE_ALL,m],PUT:[ue.UPDATE_ALL,y],PATCH:[ue.UPDATE_ALL,g],DELETE:[ue.DELETE_ALL,f]},[s,n]=i[t];return Fe(e,s)?o(q()):o(n(r))}function je(e=[]){const t=e.map(e=>G({name:e.name,description:e.description??"Path parameter: "+e.name,required:e.required??!0,type:e.type??String}));return w(...t)}ke=Re=re([l(),h({}),oe(0,d(ve)),ie("design:paramtypes",[Object,se])],ke);const xe=b((e,t)=>{const r=t.switchToHttp().getRequest().body,o=t.getClass(),i=o.clazz;if(!i)throw new v(`ModelConstructor not found on controller ${o.name}. Ensure the controller was created via FromModelController.`);return r?Array.isArray(r)?r.map(e=>new i(e)):new i(r):r}),Le=b((e,t)=>{const r=t.switchToHttp().getRequest(),o=r?.params??{},i=e??Object.keys(o),s=i.map(e=>o[e]);return{raw:o,valuesInOrder:s,keysInOrder:i}});function De(e=[]){const t=e.map(e=>e.name);return Le(t)}function Ne(e){const t={GET:u,POST:m,PUT:y,PATCH:g,DELETE:f}[e];if(!t)throw Error(`Unsupported HTTP verb "${e}". No NestJS decorator mapping was found.`);return t}function Be(t,s){const n=$e;return e.for(n).define({decorator:()=>(e,a,c)=>{const p={path:s,httpMethod:t,handler:c};return o(i(r.key(n,a),p))(e,a,c)},args:[]}).apply()}let _e=class{constructor(e,t){this.reflector=e,this.authHandler=t}async intercept(e,t){const r=this.reflector.get(Se,e.getHandler())??this.reflector.get(Se,e.getClass());return r&&this.authHandler&&await this.authHandler.authorize(e,r),t.handle()}};function qe(e){const t="string"==typeof e?e:e.name;return w($(Se,t),E(_e))}_e=re([c(),oe(1,A()),oe(1,d(Te)),ie("design:paramtypes",[ne,Object])],_e);const Ge=e=>s(Oe,e);let Ue=class{constructor(){this.cache=new Map}set(e,t){this.cache.set(e,t)}get(e){return this.cache.get(e)}};Ue=re([c({scope:p.REQUEST})],Ue);let ze=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)}};ze=re([c({scope:p.REQUEST}),oe(0,d(Ee)),ie("design:paramtypes",[Array,Ue])],ze);const Me=e=>({name:e,description:e+" parameter for the query",required:!0,type:String});function He(e,t,r,o=!1){const i=Ne(r),s=(e=>e.split("/").filter(e=>e.startsWith(":")).map(e=>e.slice(1)))(t).map(Me),n=[];return"GET"===r&&o&&n.push(U({name:"direction",required:!1,enum:j,description:"the sort order when applicable"}),U({name:"limit",required:!1,description:"limit or page size when applicable"}),U({name:"offset",required:!1,description:"offset or bookmark when applicable"})),{method:[i(t),...s.map(G),...n,z({summary:`Retrieve records using according to "${e}".`}),M({description:"Result successfully retrieved."}),H({description:"No content returned by the method."})],params:[De(s),P()]}}function Qe(e,t,r,o){const i=e?.prototype??e;o.method.forEach(e=>e(i,t,r)),o.params?.forEach((e,r)=>e(i,t,r))}function Je(e){return async function(t,r){const o=this.log.for(e);try{o.debug(`Invoking persistence method "${e}" given parameters: ${JSON.stringify(t.valuesInOrder)}`);const{direction:i,limit:s,offset:n}=r;return await((e,t,...r)=>{if(e instanceof x)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,i,s,n)}catch(t){throw o.error(`Custom query "${e}" failed`,t),t}}}function Ye(e,t,r){return Object.defineProperty(e.prototype||e,t,{value:r,writable:!1}),Object.getOwnPropertyDescriptor(e.prototype||e,t)}class Ke extends pe{constructor(e){super(),this.clientContext=e}get persistence(){throw Error("Not implemented")}}class Ve{static{this.log=ce.for(Ve.name)}static getPersistence(e){try{return x.getService(e)}catch(t){return L.forModel(e)}}static createQueryRoutesFromRepository(e,t=C.QUERY){const o=Ve.log.for(Ve.createQueryRoutesFromRepository),i=e.class,s=r.get(e.constructor,r.key(C.QUERY))??{},n=r.get(e.constructor,r.key($e))??{};class a extends Ke{constructor(e){super(e),this._persistence=Ve.getPersistence(i)}get persistence(){const e=this.clientContext.get(Pe);return e?this._persistence.for(e):this._persistence}}for(const[e,t]of Object.entries(n)){const r=[t.path.replace(/^\/+|\/+$/g,"")].filter(e=>e&&e.trim()).join("/"),s=Je(e);if(!s){const t=`Invalid or missing handler for model ${i.name} on decorated method ${e}`;throw o.error(t),Error(t)}const n=Ye(a,e,s);n&&Qe(a,e,n,He(e,r,t.httpMethod))}for(const[e,r]of Object.entries(s)){const o=[t,e,...(r.fields??[]).map(e=>":"+e)].filter(e=>e&&e.trim()).join("/"),i=Ye(a,e,Je(e));i&&Qe(a,e,i,He(e,o,"GET",!0))}return a}static create(e){const t=Ve.log.for(Ve.create),r=I.tableName(e),o=de(r),i=e.name,s=Ve.getPersistence(e),{description:n,getPK:a,apiProperties:c,path:p}=Ve.getRouteParametersFromModel(e);t.debug("Creating controller for model: "+i);const d=Ve.createQueryRoutesFromRepository(s instanceof x?s.repo:s);let l=class extends d{static{this.clazz=e}constructor(r){super(r),this.pk=I.pk(e),t.info(`Registering dynamic controller for model: ${i} route: /${o}`)}async listBy(e,t){return this.persistence.listBy(e,t.direction)}async paginateBy(e,t){return this.persistence.paginateBy(e,t.direction,t)}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:o,offset:i,limit:s,bookmark:n}=r;switch(t=t.map(e=>("string"==typeof e?parseInt(e):e)||e),e){case D.FIND_BY:break;case D.LIST_BY:t.push(o);break;case D.PAGE_BY:t=[t[0],o,{limit:s,offset:i,bookmark:n}];case D.FIND_ONE_BY:}return this.persistence.statement(e,...t)}async createAll(t){const r=this.log.for(this.createAll);let o;r.verbose("creating new "+i);try{o=await this.persistence.createAll(t.map(t=>new e(t)))}catch(e){throw r.error("Failed to create new "+i,e),e}return r.info(`created new ${i} with id ${o[this.pk]}`),o}async create(e){const t=this.log.for(this.create);let r;t.verbose("creating new "+i);try{r=await this.persistence.create(e)}catch(e){throw t.error("Failed to create new "+i,e),e}return t.info(`created new ${i} with id ${r[this.pk]}`),r}async readAll(e){const t=this.log.for(this.readAll);let r;try{t.debug(`reading ${e.length} ${i}: ${e}`),r=await this.persistence.readAll(e)}catch(r){throw t.error(`Failed to ${i} with id ${e}`,r),r}return t.info(`read ${r.length} ${i}`),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 o;try{r.debug(`reading ${i} with ${this.pk} ${t}`),o=await this.persistence.read(t)}catch(e){throw r.error(`Failed to read ${i} with id ${t}`,e),e}return r.info(`read ${i} with id ${o[this.pk]}`),o}async updateAll(e){const t=this.log.for(this.updateAll);let r;try{t.info(`updating ${e.length} ${i}`),r=await this.persistence.updateAll(e)}catch(e){throw t.error(e),e}return r}async update(t,r){const o=this.log.for(this.update),s=a(...t.valuesInOrder);if(void 0===s)throw new me(`No ${this.pk} provided`);let n;try{o.info(`updating ${i} with ${this.pk} ${s}`),n=await this.persistence.update(new e({...r,[this.pk]:s}))}catch(e){throw o.error(e),e}return n}async deleteAll(e){const t=this.log.for(this.deleteAll);let r;try{t.debug(`deleting ${e.length} ${i}: ${e}`),r=await this.persistence.deleteAll(e)}catch(r){throw t.error(`Failed to delete ${i} with id ${e}`,r),r}return t.info(`deleted ${r.length} ${i}`),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 o;try{t.debug(`deleting ${i} with ${this.pk} ${r}`),o=await this.persistence.delete(r)}catch(e){throw t.error(`Failed to delete ${i} with id ${r}`,e),e}return t.info(`deleted ${i} with id ${r}`),o}};return re([Ie(e,"GET","listBy/:key"),z({summary:`Retrieve ${i} records by query.`}),G({name:"key",description:"the model key to sort by"}),U({name:"direction",required:!0,enum:j}),M({description:i+" listed successfully."}),oe(1,P()),ie("design:type",Function),ie("design:paramtypes",[String,Object]),ie("design:returntype",Promise)],l.prototype,"listBy",null),re([Ie(e,"GET","paginateBy/:key/:page"),z({summary:`Retrieve ${i} records by query.`}),G({name:"key",description:"the model key to sort by"}),G({name:"page",description:"the page to retrieve or the bookmark"}),U({name:"direction",required:!0,enum:j,description:"the sort order"}),U({name:"limit",required:!0,description:"the page size"}),U({name:"offset",description:"the bookmark when necessary"}),M({description:i+" listed paginated."}),oe(0,T("key")),oe(1,P()),ie("design:type",Function),ie("design:paramtypes",[String,Object]),ie("design:returntype",Promise)],l.prototype,"paginateBy",null),re([Ie(e,"GET","findOneBy/:key"),z({summary:`Retrieve ${i} records by query.`}),G({name:"key",description:"the model key to sort by"}),M({description:i+" listed found."}),Q({description:`No ${i} record matches the provided identifier.`}),oe(0,T("key")),oe(1,T("value")),ie("design:type",Function),ie("design:paramtypes",[String,Object]),ie("design:returntype",Promise)],l.prototype,"findOneBy",null),re([Ie(e,"GET","findBy/:key/:value"),z({summary:`Retrieve ${i} records by query.`}),G({name:"key",description:"the model key to compare"}),G({name:"value",description:"the value to match"}),U({name:"direction",required:!0,enum:j,description:"the sort order when applicable"}),M({description:i+" listed found."}),Q({description:`No ${i} record matches the provided identifier.`}),oe(0,T("key")),oe(1,T("value")),oe(2,P()),ie("design:type",Function),ie("design:paramtypes",[String,Object,Object]),ie("design:returntype",Promise)],l.prototype,"findBy",null),re([Ie(e,"GET","statement/:method/*args"),z({summary:`Executes a prepared statement on ${i}.`}),G({name:"method",description:"the prepared statement to execute"}),G({name:"args",description:"concatenated list of arguments the prepared statement can accept"}),U({name:"direction",required:!0,enum:j,description:"the sort order when applicable"}),U({name:"limit",required:!0,description:"limit or page size when applicable"}),U({name:"offset",required:!0,description:"offset or bookmark when applicable"}),M({description:i+" listed found."}),Q({description:`No ${i} record matches the provided identifier.`}),oe(0,T("method")),oe(1,T("args")),oe(2,P()),ie("design:type",Function),ie("design:paramtypes",[String,Array,Object]),ie("design:returntype",Promise)],l.prototype,"statement",null),re([Ie(e,"POST","bulk"),z({summary:`Create a new ${i}.`}),J({description:"Payload for "+i,schema:{type:"array",items:{$ref:Y(e)}}}),K({description:`x ${i} created successfully.`}),V({description:"Payload validation failed."}),W({description:"Repository rejected the provided payload."}),oe(0,xe()),ie("design:type",Function),ie("design:paramtypes",[Array]),ie("design:returntype",Promise)],l.prototype,"createAll",null),re([Ie(e,"POST"),z({summary:`Create a new ${i}.`}),J({description:"Payload for "+i,schema:{$ref:Y(e)}}),K({description:i+" created successfully."}),V({description:"Payload validation failed."}),W({description:"Repository rejected the provided payload."}),oe(0,xe()),ie("design:type",Function),ie("design:paramtypes",[Object]),ie("design:returntype",Promise)],l.prototype,"create",null),re([Ie(e,"GET","bulk"),z({summary:`Retrieve a ${i} record by id.`}),U({name:"ids",required:!0,type:"array"}),M({description:i+" retrieved successfully."}),Q({description:`No ${i} record matches the provided identifier.`}),oe(0,P("ids")),ie("design:type",Function),ie("design:paramtypes",[Array]),ie("design:returntype",Promise)],l.prototype,"readAll",null),re([Ie(e,"GET",p),je(c),z({summary:`Retrieve a ${i} record by id.`}),M({description:i+" retrieved successfully."}),Q({description:`No ${i} record matches the provided identifier.`}),oe(0,De(c)),ie("design:type",Function),ie("design:paramtypes",[Object]),ie("design:returntype",Promise)],l.prototype,"read",null),re([Ie(e,"PUT","bulk"),je(c),z({summary:`Replace an existing ${i} record with a new payload.`}),J({description:"Payload for replace a existing record of "+i,schema:{type:"array",items:{$ref:Y(e)}}}),M({description:e+" record replaced successfully."}),Q({description:`No ${i} record matches the provided identifier.`}),V({description:"Payload validation failed."}),oe(0,xe()),ie("design:type",Function),ie("design:paramtypes",[Array]),ie("design:returntype",Promise)],l.prototype,"updateAll",null),re([Ie(e,"PUT",p),je(c),z({summary:`Replace an existing ${i} record with a new payload.`}),J({description:"Payload for replace a existing record of "+i,schema:{$ref:Y(e)}}),M({description:e+" record replaced successfully."}),Q({description:`No ${i} record matches the provided identifier.`}),V({description:"Payload validation failed."}),oe(0,De(c)),oe(1,xe()),ie("design:type",Function),ie("design:paramtypes",[Object,Object]),ie("design:returntype",Promise)],l.prototype,"update",null),re([Ie(e,"DELETE","bulk"),je(c),z({summary:`Retrieve a ${i} record by id.`}),U({name:"ids",required:!0,type:"array"}),M({description:i+" retrieved successfully."}),Q({description:`No ${i} record matches the provided identifier.`}),oe(0,P("ids")),ie("design:type",Function),ie("design:paramtypes",[Array]),ie("design:returntype",Promise)],l.prototype,"deleteAll",null),re([Ie(e,"DELETE",p),je(c),z({summary:`Delete a ${i} record by id.`}),M({description:i+" record deleted successfully."}),Q({description:`No ${i} record matches the provided identifier.`}),oe(0,De(c)),ie("design:type",Function),ie("design:paramtypes",[Object]),ie("design:returntype",Promise)],l.prototype,"delete",null),l=re([S(o),X(i),Z(e),qe(e),ie("design:paramtypes",[Ue])],l),l}static getRouteParametersFromModel(e){const t=I.pk(e),o=r.get(e,r.key(ye.COMPOSED,t)),i=o?.args??[],s=Array.isArray(i)&&i.length>0?Array.from(new Set([...i])):Array.from(new Set([t])),n=r.description(e);return{path:":"+s.join("/:"),description:n,apiProperties:s.map(t=>({name:t,description:r.description(e,t),required:!0,type:String})),getPK:(...e)=>o?.separator?e.join(o.separator):e.join("")}}}let We=class{constructor(e){this.executor=e}async intercept(e,t){const r=e.switchToHttp().getRequest(),o=e.switchToHttp().getResponse();return await this.executor.exec(r,o),t.handle()}};var Xe;We=re([c({scope:p.REQUEST}),ie("design:paramtypes",[ze])],We);let Ze=class{static{Xe=this}static{this.log=ce.for(Xe.name)}static createModelServices(e){return e.map(e=>({provide:e.name+"Service",useFactory:()=>x.forModel(e)}))}static forRoot(e,t={}){const r=this.log.for(this.forRoot);r.info("Generating controllers for flavour...");const o=N.models(e);let i=[];t.autoServices&&(r.info("Auto-services enabled. Initializing service generation."),i=this.createModelServices(o),r.info(`Auto-services completed. ${i.length} services initialized.`));const s=o.map(Ve.create);return r.info(`Generated ${s.length} controllers`),{module:Xe,controllers:s,providers:[{provide:Ee,useFactory:()=>t.handlers?.map(e=>(r.info("Registered request handler: "+e.name),new e))??[]},Ue,ze,{provide:ae,useClass:We},...i]}}};var et;Ze=Xe=re([h({})],Ze);let tt=et=class{static async forRootAsync(e){const{autoControllers:t,autoServices:r,handlers:o}=e,i=(await ke.createAdapter(e)).flavour,s=[ke.forRoot(e)];return t&&s.push(Ze.forRoot(i,{autoServices:r,handlers:o})),{module:et,imports:s}}};function rt(e){const t=I.get(e);if(!t)throw new ge("Failed to find repository for "+e);return L.forModel(t)}tt=et=re([h({})],tt);class ot extends B{constructor(e){super(e,ot.name)}}let it=class{catch(e,t){const r=t.switchToHttp(),o=r.getResponse(),i=r.getRequest(),s="production"===le.env;e instanceof fe||(e=new ge(e.message)),o.status(e.code).json({status:e.code,error:s?e.name:e.message,timestamp:(new Date).toISOString(),path:i.url,method:i.method})}};function st(){return R(new it)}it=re([O()],it);const nt={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 at{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||nt.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=be.join(this.options.assetsPath||"",e),o=we(r,{encoding:"base64"});return t?"data:image/png;base64,"+o:o}}class ct{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 ee).setTitle(this.options.title).setDescription(e).setVersion(this.options.version||"0.0.1").addBearerAuth(this.options.auth||nt.auth).build();return te.createDocument(this.app,t,{extraModels:this.options.extraModels||[]})}setupSwagger(){const e=this.createDocument(),t=new at({title:this.options.title,path:this.options.path||nt.path,persistAuthorization:this.options.persistAuthorization??!0,assetsPath:this.options.assetsPath,faviconPath:this.options.faviconFilePath,topbarIconPath:this.options.topbarIconFilePath,topbarBgColor:this.options.topbarBgColor});te.setup(this.options.path||nt.path,this.app,e,{...t.getCustomOptions()})}}class pt{static get logger(){return this._logger||(this._logger=new k("NestBootstrap")),this._logger}static initialize(e){return this.app=e,this}static enableLogger(e){return this._logger=e||new k("NestBootstrap"),this.app.useLogger(this._logger),this}static enableCors(e=[],t=["GET","POST","PUT","DELETE"]){const r="*"===e?"*":e.map(e=>e.trim().toLowerCase()),o={origin:(e,t)=>e?"*"===r||Array.isArray(r)&&r.includes(e.toLowerCase())?t(null,!0):void t(new ot(`Origin ${e} not allowed`)):t(null,!0),credentials:!0,methods:t.join(",")};return this.app.enableCors(o),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 ct(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 it]),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 dt="##VERSION##",lt="##PACKAGE##";r.registerLibrary(lt,dt);export{Te as AUTH_HANDLER,Se as AUTH_META_KEY,Ie as ApiOperationFromModel,je as ApiParamsFromModel,qe as Auth,_e as AuthInterceptor,Oe as AuthRole,Ce as BulkApiOperationFromModel,ot as CorsError,Ae as DECAF_ADAPTER_ID,Pe as DECAF_ADAPTER_OPTIONS,Ee as DECAF_HANDLERS,ve as DECAF_MODULE_OPTIONS,$e as DECAF_ROUTE,xe as DecafBody,it as DecafExceptionFilter,ze as DecafHandlerExecutor,Ze as DecafModelModule,tt as DecafModule,De as DecafParams,Ue as DecafRequestContext,We as DecafRequestHandlerInterceptor,Ve as FromModelController,Ne as HttpVerbToDecorator,pt as NestBootstraper,lt as PACKAGE_NAME,Ge as Roles,ct as SwaggerBuilder,st as UseDecafFilter,dt as VERSION,Fe as isOperationBlocked,rt as repoForModel,Be as route};
1
+ import{Decoration as e,DecorationKeys as t,Metadata as r,apply as o,methodMetadata as i,metadata as s}from"@decaf-ts/decoration";import{InjectablesKeys as n,DefaultInjectablesConfig as a}from"@decaf-ts/injectable-decorators";import{Injectable as c,Scope as p,Inject as d,Global as l,Module as h,Get as u,Post as m,Put as y,Patch as g,Delete as f,applyDecorators as w,createParamDecorator as b,InternalServerErrorException as v,Optional as A,SetMetadata as $,UseInterceptors as E,Query as P,Param as T,Controller as S,Catch as O,UseFilters as R,Logger as k}from"@nestjs/common";import{ValidationKeys as F,Model as I}from"@decaf-ts/decorator-validation";import{PersistenceKeys as C,OrderDirection as j,ModelService as x,Repository as L,PreparedStatementKeys as D,Adapter as N,ForbiddenError as B}from"@decaf-ts/core";import{ApiProperty as _,ApiExcludeEndpoint as q,ApiParam as G,ApiQuery as U,ApiOperation as z,ApiOkResponse as M,ApiNoContentResponse as H,ApiNotFoundResponse as Q,ApiBody as J,getSchemaPath as Y,ApiCreatedResponse as K,ApiBadRequestResponse as V,ApiUnprocessableEntityResponse as W,ApiTags as X,ApiExtraModels as Z,DocumentBuilder as ee,SwaggerModule as te}from"@nestjs/swagger";import{__decorate as re,__param as oe,__metadata as ie}from"tslib";import{ModuleRef as se,Reflector as ne,APP_INTERCEPTOR as ae}from"@nestjs/core";import{Logging as ce,LoggedClass as pe,toKebabCase as de,LoggedEnvironment as le}from"@decaf-ts/logging";import{OperationKeys as he,BulkCrudOperationKeys as ue,ValidationError as me,DBKeys as ye,InternalError as ge,BaseError as fe}from"@decaf-ts/db-decorators";import{readFileSync as we}from"fs";import*as be from"path";e.for(n.INJECTABLE).extend({decorator:(e,t)=>(t=t||("object"==typeof e?Object.assign(e,a):a),c({scope:t.singleton?p.DEFAULT:p.REQUEST,durable:!t.singleton||void 0}))}).apply(),e.for(n.INJECT).extend({decorator:(e,t)=>(t,r,o)=>d(e||t)(t,r,o)}).apply(),e.for(F.REQUIRED).extend(_({required:!0})).apply(),e.for(F.MAX).extend({decorator:e=>_({maximum:e})}).apply(),e.for(F.MIN).extend({decorator:e=>_({minimum:e})}).apply(),e.for(F.MAX_LENGTH).extend({decorator:e=>_({maxLength:e})}).apply(),e.for(F.MIN_LENGTH).extend({decorator:e=>_({minLength:e})}).apply(),e.for(F.LIST).extend({decorator:e=>{const t=Array.isArray(e)?e[0]:e;return _({type:[t]})}}).apply(),e.for(F.PATTERN).extend({decorator:e=>_({pattern:"string"==typeof e?e:e.source})}).apply(),e.for(C.COLUMN).extend({decorator:e=>_({name:e})}).apply(),e.for(t.DESCRIPTION).extend({decorator:e=>_({description:e})}).apply();const ve="DecafModuleOptions",Ae="DecafAdapter",$e="DecafRoute",Ee=Symbol("DecafHandlers"),Pe=Symbol("DecafAdapterForOptions"),Te=Symbol("AUTH_HANDLER"),Se="auth:meta",Oe="AuthRole";var Re;let ke=class{static{Re=this}static{this._adapterInstance=null}static get log(){return this._logger||(this._logger=ce.for(Re)),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);try{await this._adapterInstance.initialize()}catch(e){throw t.error("Failed to initialized adapter"),e}t.info("Adapter instance created successfully!")}return this._adapterInstance}static getAdapterInstance(){return this._adapterInstance}static forRoot(e){const t={provide:ve,useValue:e},r={useFactory:async e=>Re.createAdapter(e),provide:Ae,durable:!0,scope:p.DEFAULT,inject:[ve]};return{module:Re,providers:[r,t],exports:[r]}}async onApplicationShutdown(){const e=Re.log.for(this.onApplicationShutdown),t=this.moduleRef.get(Ae);try{t&&(e.info("Shutting down"),await t.shutdown(),Re._adapterInstance=null)}catch(t){e.error("Failed to shutdown application",t)}}};function Fe(e,t){const{handler:o,args:i}=r.get(e,he.REFLECT+he.BLOCK)||{};return!!o&&(o(...i,t)??!1)}function Ie(e,t,r){const i={GET:[he.READ,u],POST:[he.CREATE,m],PUT:[he.UPDATE,y],PATCH:[he.UPDATE,g],DELETE:[he.DELETE,f]},[s,n]=i[t];return Fe(e,s)?o(q()):o(n(r))}function Ce(e,t,r){const i={GET:[ue.READ_ALL,u],POST:[ue.CREATE_ALL,m],PUT:[ue.UPDATE_ALL,y],PATCH:[ue.UPDATE_ALL,g],DELETE:[ue.DELETE_ALL,f]},[s,n]=i[t];return Fe(e,s)?o(q()):o(n(r))}function je(e=[]){const t=e.map(e=>G({name:e.name,description:e.description??"Path parameter: "+e.name,required:e.required??!0,type:e.type??String}));return w(...t)}ke=Re=re([l(),h({}),oe(0,d(ve)),ie("design:paramtypes",[Object,se])],ke);const xe=b((e,t)=>{const r=t.switchToHttp().getRequest().body,o=t.getClass(),i=o.clazz;if(!i)throw new v(`ModelConstructor not found on controller ${o.name}. Ensure the controller was created via FromModelController.`);return r?Array.isArray(r)?r.map(e=>new i(e)):new i(r):r}),Le=b((e,t)=>{const r=t.switchToHttp().getRequest(),o=r?.params??{},i=e??Object.keys(o),s=i.map(e=>o[e]);return{raw:o,valuesInOrder:s,keysInOrder:i}});function De(e=[]){const t=e.map(e=>e.name);return Le(t)}function Ne(e){const t={GET:u,POST:m,PUT:y,PATCH:g,DELETE:f}[e];if(!t)throw Error(`Unsupported HTTP verb "${e}". No NestJS decorator mapping was found.`);return t}function Be(t,s){const n=$e;return e.for(n).define({decorator:()=>(e,a,c)=>{const p={path:s,httpMethod:t,handler:c};return o(i(r.key(n,a),p))(e,a,c)},args:[]}).apply()}let _e=class{constructor(e,t){this.reflector=e,this.authHandler=t}async intercept(e,t){const r=this.reflector.get(Se,e.getHandler())??this.reflector.get(Se,e.getClass());return r&&this.authHandler&&await this.authHandler.authorize(e,r),t.handle()}};function qe(e){const t="string"==typeof e?e:e.name;return w($(Se,t),E(_e))}_e=re([c(),oe(1,A()),oe(1,d(Te)),ie("design:paramtypes",[ne,Object])],_e);const Ge=e=>s(Oe,e);let Ue=class{constructor(){this.cache=new Map}set(e,t){this.cache.set(e,t)}get(e){return this.cache.get(e)}};Ue=re([c({scope:p.REQUEST})],Ue);let ze=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)}};ze=re([c({scope:p.REQUEST}),oe(0,d(Ee)),ie("design:paramtypes",[Array,Ue])],ze);const Me=e=>({name:e,description:e+" parameter for the query",required:!0,type:String});function He(e,t,r,o=!1){const i=Ne(r),s=(e=>e.split("/").filter(e=>e.startsWith(":")).map(e=>e.slice(1)))(t).map(Me),n=[];return"GET"===r&&o&&n.push(U({name:"direction",required:!1,enum:j,description:"the sort order when applicable"}),U({name:"limit",required:!1,description:"limit or page size when applicable"}),U({name:"offset",required:!1,description:"offset or bookmark when applicable"})),{method:[i(t),...s.map(G),...n,z({summary:`Retrieve records using according to "${e}".`}),M({description:"Result successfully retrieved."}),H({description:"No content returned by the method."})],params:[De(s),P()]}}function Qe(e,t,r,o){const i=e?.prototype??e;o.method.forEach(e=>e(i,t,r)),o.params?.forEach((e,r)=>e(i,t,r))}function Je(e){return async function(t,r){const o=this.log.for(e);try{o.debug(`Invoking persistence method "${e}" given parameters: ${JSON.stringify(t.valuesInOrder)}`);const{direction:i,limit:s,offset:n}=r;return await((e,t,...r)=>{if(e instanceof x)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,i,s,n)}catch(t){throw o.error(`Custom query "${e}" failed`,t),t}}}function Ye(e,t,r){return Object.defineProperty(e.prototype||e,t,{value:r,writable:!1}),Object.getOwnPropertyDescriptor(e.prototype||e,t)}class Ke extends pe{constructor(e){super(),this.clientContext=e}get persistence(){throw Error("Not implemented")}}class Ve{static{this.log=ce.for(Ve.name)}static getPersistence(e){try{return x.getService(e)}catch(t){return L.forModel(e)}}static createQueryRoutesFromRepository(e,t=C.QUERY){const o=Ve.log.for(Ve.createQueryRoutesFromRepository),i=e instanceof x?e.repo:e,s=i.class,n=r.get(i.constructor,r.key(C.QUERY))??{},a=r.get(e.constructor,r.key($e))??{};class c extends Ke{constructor(e){super(e),this._persistence=Ve.getPersistence(s)}get persistence(){const e=this.clientContext.get(Pe);return e?this._persistence.for(e):this._persistence}}for(const[e,t]of Object.entries(a)){const r=[t.path.replace(/^\/+|\/+$/g,"")].filter(e=>e&&e.trim()).join("/"),i=Je(e);if(!i){const t=`Invalid or missing handler for model ${s.name} on decorated method ${e}`;throw o.error(t),Error(t)}const n=Ye(c,e,i);n&&Qe(c,e,n,He(e,r,t.httpMethod))}for(const[e,r]of Object.entries(n)){const o=[t,e,...(r.fields??[]).map(e=>":"+e)].filter(e=>e&&e.trim()).join("/"),i=Ye(c,e,Je(e));i&&Qe(c,e,i,He(e,o,"GET",!0))}return c}static create(e){const t=Ve.log.for(Ve.create),r=I.tableName(e),o=de(r),i=e.name,s=Ve.getPersistence(e),{description:n,getPK:a,apiProperties:c,path:p}=Ve.getRouteParametersFromModel(e);t.debug("Creating controller for model: "+i);const d=Ve.createQueryRoutesFromRepository(s);let l=class extends d{static{this.clazz=e}constructor(r){super(r),this.pk=I.pk(e),t.info(`Registering dynamic controller for model: ${i} route: /${o}`)}async listBy(e,t){return this.persistence.listBy(e,t.direction)}async paginateBy(e,t){return this.persistence.paginateBy(e,t.direction,t)}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:o,offset:i,limit:s,bookmark:n}=r;switch(t=t.map(e=>("string"==typeof e?parseInt(e):e)||e),e){case D.FIND_BY:break;case D.LIST_BY:t.push(o);break;case D.PAGE_BY:t=[t[0],o,{limit:s,offset:i,bookmark:n}];case D.FIND_ONE_BY:}return this.persistence.statement(e,...t)}async createAll(t){const r=this.log.for(this.createAll);let o;r.verbose("creating new "+i);try{o=await this.persistence.createAll(t.map(t=>new e(t)))}catch(e){throw r.error("Failed to create new "+i,e),e}return r.info(`created new ${i} with id ${o[this.pk]}`),o}async create(e){const t=this.log.for(this.create);let r;t.verbose("creating new "+i);try{r=await this.persistence.create(e)}catch(e){throw t.error("Failed to create new "+i,e),e}return t.info(`created new ${i} with id ${r[this.pk]}`),r}async readAll(e){const t=this.log.for(this.readAll);let r;try{t.debug(`reading ${e.length} ${i}: ${e}`),r=await this.persistence.readAll(e)}catch(r){throw t.error(`Failed to ${i} with id ${e}`,r),r}return t.info(`read ${r.length} ${i}`),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 o;try{r.debug(`reading ${i} with ${this.pk} ${t}`),o=await this.persistence.read(t)}catch(e){throw r.error(`Failed to read ${i} with id ${t}`,e),e}return r.info(`read ${i} with id ${o[this.pk]}`),o}async updateAll(e){const t=this.log.for(this.updateAll);let r;try{t.info(`updating ${e.length} ${i}`),r=await this.persistence.updateAll(e)}catch(e){throw t.error(e),e}return r}async update(t,r){const o=this.log.for(this.update),s=a(...t.valuesInOrder);if(void 0===s)throw new me(`No ${this.pk} provided`);let n;try{o.info(`updating ${i} with ${this.pk} ${s}`),n=await this.persistence.update(new e({...r,[this.pk]:s}))}catch(e){throw o.error(e),e}return n}async deleteAll(e){const t=this.log.for(this.deleteAll);let r;try{t.debug(`deleting ${e.length} ${i}: ${e}`),r=await this.persistence.deleteAll(e)}catch(r){throw t.error(`Failed to delete ${i} with id ${e}`,r),r}return t.info(`deleted ${r.length} ${i}`),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 o;try{t.debug(`deleting ${i} with ${this.pk} ${r}`),o=await this.persistence.delete(r)}catch(e){throw t.error(`Failed to delete ${i} with id ${r}`,e),e}return t.info(`deleted ${i} with id ${r}`),o}};return re([Ie(e,"GET","listBy/:key"),z({summary:`Retrieve ${i} records by query.`}),G({name:"key",description:"the model key to sort by"}),U({name:"direction",required:!0,enum:j}),M({description:i+" listed successfully."}),oe(1,P()),ie("design:type",Function),ie("design:paramtypes",[String,Object]),ie("design:returntype",Promise)],l.prototype,"listBy",null),re([Ie(e,"GET","paginateBy/:key/:page"),z({summary:`Retrieve ${i} records by query.`}),G({name:"key",description:"the model key to sort by"}),G({name:"page",description:"the page to retrieve or the bookmark"}),U({name:"direction",required:!0,enum:j,description:"the sort order"}),U({name:"limit",required:!0,description:"the page size"}),U({name:"offset",description:"the bookmark when necessary"}),M({description:i+" listed paginated."}),oe(0,T("key")),oe(1,P()),ie("design:type",Function),ie("design:paramtypes",[String,Object]),ie("design:returntype",Promise)],l.prototype,"paginateBy",null),re([Ie(e,"GET","findOneBy/:key"),z({summary:`Retrieve ${i} records by query.`}),G({name:"key",description:"the model key to sort by"}),M({description:i+" listed found."}),Q({description:`No ${i} record matches the provided identifier.`}),oe(0,T("key")),oe(1,T("value")),ie("design:type",Function),ie("design:paramtypes",[String,Object]),ie("design:returntype",Promise)],l.prototype,"findOneBy",null),re([Ie(e,"GET","findBy/:key/:value"),z({summary:`Retrieve ${i} records by query.`}),G({name:"key",description:"the model key to compare"}),G({name:"value",description:"the value to match"}),U({name:"direction",required:!0,enum:j,description:"the sort order when applicable"}),M({description:i+" listed found."}),Q({description:`No ${i} record matches the provided identifier.`}),oe(0,T("key")),oe(1,T("value")),oe(2,P()),ie("design:type",Function),ie("design:paramtypes",[String,Object,Object]),ie("design:returntype",Promise)],l.prototype,"findBy",null),re([Ie(e,"GET","statement/:method/*args"),z({summary:`Executes a prepared statement on ${i}.`}),G({name:"method",description:"the prepared statement to execute"}),G({name:"args",description:"concatenated list of arguments the prepared statement can accept"}),U({name:"direction",required:!0,enum:j,description:"the sort order when applicable"}),U({name:"limit",required:!0,description:"limit or page size when applicable"}),U({name:"offset",required:!0,description:"offset or bookmark when applicable"}),M({description:i+" listed found."}),Q({description:`No ${i} record matches the provided identifier.`}),oe(0,T("method")),oe(1,T("args")),oe(2,P()),ie("design:type",Function),ie("design:paramtypes",[String,Array,Object]),ie("design:returntype",Promise)],l.prototype,"statement",null),re([Ie(e,"POST","bulk"),z({summary:`Create a new ${i}.`}),J({description:"Payload for "+i,schema:{type:"array",items:{$ref:Y(e)}}}),K({description:`x ${i} created successfully.`}),V({description:"Payload validation failed."}),W({description:"Repository rejected the provided payload."}),oe(0,xe()),ie("design:type",Function),ie("design:paramtypes",[Array]),ie("design:returntype",Promise)],l.prototype,"createAll",null),re([Ie(e,"POST"),z({summary:`Create a new ${i}.`}),J({description:"Payload for "+i,schema:{$ref:Y(e)}}),K({description:i+" created successfully."}),V({description:"Payload validation failed."}),W({description:"Repository rejected the provided payload."}),oe(0,xe()),ie("design:type",Function),ie("design:paramtypes",[Object]),ie("design:returntype",Promise)],l.prototype,"create",null),re([Ie(e,"GET","bulk"),z({summary:`Retrieve a ${i} record by id.`}),U({name:"ids",required:!0,type:"array"}),M({description:i+" retrieved successfully."}),Q({description:`No ${i} record matches the provided identifier.`}),oe(0,P("ids")),ie("design:type",Function),ie("design:paramtypes",[Array]),ie("design:returntype",Promise)],l.prototype,"readAll",null),re([Ie(e,"GET",p),je(c),z({summary:`Retrieve a ${i} record by id.`}),M({description:i+" retrieved successfully."}),Q({description:`No ${i} record matches the provided identifier.`}),oe(0,De(c)),ie("design:type",Function),ie("design:paramtypes",[Object]),ie("design:returntype",Promise)],l.prototype,"read",null),re([Ie(e,"PUT","bulk"),je(c),z({summary:`Replace an existing ${i} record with a new payload.`}),J({description:"Payload for replace a existing record of "+i,schema:{type:"array",items:{$ref:Y(e)}}}),M({description:e+" record replaced successfully."}),Q({description:`No ${i} record matches the provided identifier.`}),V({description:"Payload validation failed."}),oe(0,xe()),ie("design:type",Function),ie("design:paramtypes",[Array]),ie("design:returntype",Promise)],l.prototype,"updateAll",null),re([Ie(e,"PUT",p),je(c),z({summary:`Replace an existing ${i} record with a new payload.`}),J({description:"Payload for replace a existing record of "+i,schema:{$ref:Y(e)}}),M({description:e+" record replaced successfully."}),Q({description:`No ${i} record matches the provided identifier.`}),V({description:"Payload validation failed."}),oe(0,De(c)),oe(1,xe()),ie("design:type",Function),ie("design:paramtypes",[Object,Object]),ie("design:returntype",Promise)],l.prototype,"update",null),re([Ie(e,"DELETE","bulk"),je(c),z({summary:`Retrieve a ${i} record by id.`}),U({name:"ids",required:!0,type:"array"}),M({description:i+" retrieved successfully."}),Q({description:`No ${i} record matches the provided identifier.`}),oe(0,P("ids")),ie("design:type",Function),ie("design:paramtypes",[Array]),ie("design:returntype",Promise)],l.prototype,"deleteAll",null),re([Ie(e,"DELETE",p),je(c),z({summary:`Delete a ${i} record by id.`}),M({description:i+" record deleted successfully."}),Q({description:`No ${i} record matches the provided identifier.`}),oe(0,De(c)),ie("design:type",Function),ie("design:paramtypes",[Object]),ie("design:returntype",Promise)],l.prototype,"delete",null),l=re([S(o),X(i),Z(e),qe(e),ie("design:paramtypes",[Ue])],l),l}static getRouteParametersFromModel(e){const t=I.pk(e),o=r.get(e,r.key(ye.COMPOSED,t)),i=o?.args??[],s=Array.isArray(i)&&i.length>0?Array.from(new Set([...i])):Array.from(new Set([t])),n=r.description(e);return{path:":"+s.join("/:"),description:n,apiProperties:s.map(t=>({name:t,description:r.description(e,t),required:!0,type:String})),getPK:(...e)=>o?.separator?e.join(o.separator):e.join("")}}}let We=class{constructor(e){this.executor=e}async intercept(e,t){const r=e.switchToHttp().getRequest(),o=e.switchToHttp().getResponse();return await this.executor.exec(r,o),t.handle()}};var Xe;We=re([c({scope:p.REQUEST}),ie("design:paramtypes",[ze])],We);let Ze=class{static{Xe=this}static{this.log=ce.for(Xe.name)}static createModelServices(e){return e.map(e=>({provide:e.name+"Service",useFactory:()=>x.forModel(e)}))}static forRoot(e,t={}){const r=this.log.for(this.forRoot);r.info("Generating controllers for flavour...");const o=N.models(e);let i=[];t.autoServices&&(r.info("Auto-services enabled. Initializing service generation."),i=this.createModelServices(o),r.info(`Auto-services completed. ${i.length} services initialized.`));const s=o.map(Ve.create);return r.info(`Generated ${s.length} controllers`),{module:Xe,controllers:s,providers:[{provide:Ee,useFactory:()=>t.handlers?.map(e=>(r.info("Registered request handler: "+e.name),new e))??[]},Ue,ze,{provide:ae,useClass:We},...i]}}};var et;Ze=Xe=re([h({})],Ze);let tt=et=class{static async forRootAsync(e){const{autoControllers:t,autoServices:r,handlers:o}=e,i=(await ke.createAdapter(e)).flavour,s=[ke.forRoot(e)];return t&&s.push(Ze.forRoot(i,{autoServices:r,handlers:o})),{module:et,imports:s}}};function rt(e){const t=I.get(e);if(!t)throw new ge("Failed to find repository for "+e);return L.forModel(t)}tt=et=re([h({})],tt);class ot extends B{constructor(e){super(e,ot.name)}}let it=class{catch(e,t){const r=t.switchToHttp(),o=r.getResponse(),i=r.getRequest(),s="production"===le.env;e instanceof fe||(e=new ge(e.message)),o.status(e.code).json({status:e.code,error:s?e.name:e.message,timestamp:(new Date).toISOString(),path:i.url,method:i.method})}};function st(){return R(new it)}it=re([O()],it);const nt={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 at{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||nt.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=be.join(this.options.assetsPath||"",e),o=we(r,{encoding:"base64"});return t?"data:image/png;base64,"+o:o}}class ct{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 ee).setTitle(this.options.title).setDescription(e).setVersion(this.options.version||"0.0.1").addBearerAuth(this.options.auth||nt.auth).build();return te.createDocument(this.app,t,{extraModels:this.options.extraModels||[]})}setupSwagger(){const e=this.createDocument(),t=new at({title:this.options.title,path:this.options.path||nt.path,persistAuthorization:this.options.persistAuthorization??!0,assetsPath:this.options.assetsPath,faviconPath:this.options.faviconFilePath,topbarIconPath:this.options.topbarIconFilePath,topbarBgColor:this.options.topbarBgColor});te.setup(this.options.path||nt.path,this.app,e,{...t.getCustomOptions()})}}class pt{static get logger(){return this._logger||(this._logger=new k("NestBootstrap")),this._logger}static initialize(e){return this.app=e,this}static enableLogger(e){return this._logger=e||new k("NestBootstrap"),this.app.useLogger(this._logger),this}static enableCors(e=[],t=["GET","POST","PUT","DELETE"]){const r="*"===e?"*":e.map(e=>e.trim().toLowerCase()),o={origin:(e,t)=>e?"*"===r||Array.isArray(r)&&r.includes(e.toLowerCase())?t(null,!0):void t(new ot(`Origin ${e} not allowed`)):t(null,!0),credentials:!0,methods:t.join(",")};return this.app.enableCors(o),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 ct(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 it]),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 dt="##VERSION##",lt="##PACKAGE##";r.registerLibrary(lt,dt);export{Te as AUTH_HANDLER,Se as AUTH_META_KEY,Ie as ApiOperationFromModel,je as ApiParamsFromModel,qe as Auth,_e as AuthInterceptor,Oe as AuthRole,Ce as BulkApiOperationFromModel,ot as CorsError,Ae as DECAF_ADAPTER_ID,Pe as DECAF_ADAPTER_OPTIONS,Ee as DECAF_HANDLERS,ve as DECAF_MODULE_OPTIONS,$e as DECAF_ROUTE,xe as DecafBody,it as DecafExceptionFilter,ze as DecafHandlerExecutor,Ze as DecafModelModule,tt as DecafModule,De as DecafParams,Ue as DecafRequestContext,We as DecafRequestHandlerInterceptor,Ve as FromModelController,Ne as HttpVerbToDecorator,pt as NestBootstraper,lt as PACKAGE_NAME,Ge as Roles,ct as SwaggerBuilder,st as UseDecafFilter,dt as VERSION,Fe as isOperationBlocked,rt as repoForModel,Be as route};
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/DecafBody.ts","../src/decaf-model/decorators/DecafParams.ts","../src/decaf-model/decorators/utils.ts","../src/decaf-model/decorators/route.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,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_ROUTE","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","initialize","e","error","getAdapterInstance","forRoot","typeOrmModuleOptions","provide","useValue","useFactory","async","opts","inject","module","providers","exports","onApplicationShutdown","get","shutdown","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","DecafBody","createParamDecorator","data","ctx","body","switchToHttp","getRequest","controller","getClass","ModelConstr","InternalServerErrorException","item","OrderedParams","order","req","original","params","orderList","keys","ordered","k","raw","valuesInOrder","keysInOrder","DecafParams","HttpVerbToDecorator","Error","route","httpMethod","key","define","obj","prop","methodMetadata","AuthInterceptor","reflector","authHandler","intercept","next","modelName","getHandler","authorize","handle","Auth","model","resource","SetMetadata","UseInterceptors","Optional","Reflector","Roles","roles","metadata","DecafRequestContext","cache","Map","set","value","DecafHandlerExecutor","handlers","context","exec","res","apiParamSpec","getApiDecorators","methodName","routePath","httpVerb","includeQueryParams","NestHttpRouteDec","apiPathParams","split","filter","startsWith","slice","extractPathParams","swaggerQueryParams","push","ApiQuery","enum","OrderDirection","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","resolvePersistenceMethod","defineRouteMethod","ControllerClass","defineProperty","writable","getOwnPropertyDescriptor","AbstractQueryController","LoggedClass","clientContext","super","FromModelController","getPersistence","ModelClazz","getService","Repository","forModel","createQueryRoutesFromRepository","prefix","QUERY","class","queryMethods","routeMethods","QueryController","_persistence","adapterOptions","entries","replace","segment","trim","join","message","objValues","fields","f","create","tableName","Model","toKebabCase","modelClazzName","getPK","apiProperties","getRouteParametersFromModel","BaseController","repo","DynamicModelController","pk","listBy","details","paginateBy","findOneBy","findBy","bookmark","a","parseInt","PreparedStatementKeys","FIND_BY","LIST_BY","PAGE_BY","FIND_ONE_BY","createAll","created","verbose","readAll","ids","read","length","routeParams","id","ValidationError","updateAll","updated","update","deleteAll","delete","del","Param","ApiNotFoundResponse","ApiBody","schema","items","$ref","getSchemaPath","ApiCreatedResponse","ApiBadRequestResponse","ApiUnprocessableEntityResponse","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","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","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/DecafBody.ts","../src/decaf-model/decorators/DecafParams.ts","../src/decaf-model/decorators/utils.ts","../src/decaf-model/decorators/route.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,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_ROUTE","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","initialize","e","error","getAdapterInstance","forRoot","typeOrmModuleOptions","provide","useValue","useFactory","async","opts","inject","module","providers","exports","onApplicationShutdown","get","shutdown","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","DecafBody","createParamDecorator","data","ctx","body","switchToHttp","getRequest","controller","getClass","ModelConstr","InternalServerErrorException","item","OrderedParams","order","req","original","params","orderList","keys","ordered","k","raw","valuesInOrder","keysInOrder","DecafParams","HttpVerbToDecorator","Error","route","httpMethod","key","define","obj","prop","methodMetadata","AuthInterceptor","reflector","authHandler","intercept","next","modelName","getHandler","authorize","handle","Auth","model","resource","SetMetadata","UseInterceptors","Optional","Reflector","Roles","roles","metadata","DecafRequestContext","cache","Map","set","value","DecafHandlerExecutor","handlers","context","exec","res","apiParamSpec","getApiDecorators","methodName","routePath","httpVerb","includeQueryParams","NestHttpRouteDec","apiPathParams","split","filter","startsWith","slice","extractPathParams","swaggerQueryParams","push","ApiQuery","enum","OrderDirection","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","resolvePersistenceMethod","defineRouteMethod","ControllerClass","defineProperty","writable","getOwnPropertyDescriptor","AbstractQueryController","LoggedClass","clientContext","super","FromModelController","getPersistence","ModelClazz","getService","Repository","forModel","createQueryRoutesFromRepository","prefix","QUERY","repo","class","queryMethods","routeMethods","QueryController","_persistence","adapterOptions","entries","replace","segment","trim","join","message","objValues","fields","f","create","tableName","Model","toKebabCase","modelClazzName","getPK","apiProperties","getRouteParametersFromModel","BaseController","DynamicModelController","pk","listBy","details","paginateBy","findOneBy","findBy","bookmark","a","parseInt","PreparedStatementKeys","FIND_BY","LIST_BY","PAGE_BY","FIND_ONE_BY","createAll","created","verbose","readAll","ids","read","length","routeParams","id","ValidationError","updateAll","updated","update","deleteAll","delete","del","Param","ApiNotFoundResponse","ApiBody","schema","items","$ref","getSchemaPath","ApiCreatedResponse","ApiBadRequestResponse","ApiUnprocessableEntityResponse","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","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","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":"8nDAYAA,EAAWC,IAAIC,EAAgBC,YAC5BC,OAAO,CACNC,UAAW,CACTC,EACAC,KAEAA,EACEA,IACqB,iBAAbD,EACJE,OAAOC,OACLH,EACAI,GAEFA,GACCC,EAAW,CAChBC,MAAOL,EAAIM,UAAYC,EAAMC,QAAUD,EAAME,QAC7CC,SAASV,EAAIM,gBAAYK,OAI9BC,QAEHnB,EAAWC,IAAIC,EAAgBkB,QAC5BhB,OAAO,CACNC,UAAW,CACTC,EAEAC,IAEO,CACLc,EACAC,EACAC,IAEOC,EAAOlB,GAAae,EAApBG,CACLH,EACAC,EACAC,KAKPJ,QAEHnB,EAAWC,IAAIwB,EAAeC,UAC3BtB,OACCuB,EAAY,CACVC,UAAU,KAGbT,QAEHnB,EAAWC,IAAIwB,EAAeI,KAC3BzB,OAAO,CACNC,UAA2ByB,GAClBH,EAAY,CAAEI,QAASD,MAGjCX,QAEHnB,EAAWC,IAAIwB,EAAeO,KAC3B5B,OAAO,CACNC,UAA2B4B,GAClBN,EAAY,CAAEO,QAASD,MAGjCd,QAEHnB,EAAWC,IAAIwB,EAAeU,YAC3B/B,OAAO,CACNC,UAAiCyB,GACxBH,EAAY,CAAES,UAAWN,MAGnCX,QAEHnB,EAAWC,IAAIwB,EAAeY,YAC3BjC,OAAO,CACNC,UAAiC4B,GACxBN,EAAY,CAAEW,UAAWL,MAGnCd,QAkBHnB,EAAWC,IAAIwB,EAAec,MAC3BnC,OAAO,CACNC,UACEmC,IAKA,MAAMC,EAAIC,MAAMC,QAAQH,GAASA,EAAM,GAAKA,EAC5C,OAAOb,EAAY,CAAEiB,KAAM,CAACH,IAC7B,IAEFtB,QAYHnB,EAAWC,IAAIwB,EAAeoB,SAC3BzC,OAAO,CACNC,UAA+ByC,GACtBnB,EAAY,CACjBoB,QAAwB,iBAARD,EAAmBA,EAAMA,EAAIE,WAIlD7B,QAEHnB,EAAWC,IAAIgD,EAAgBC,QAC5B9C,OAAO,CACNC,UAA8B8C,GACrBxB,EAAY,CACjBwB,KAAMA,MAIXhC,QAEHnB,EAAWC,IAAImD,EAAeC,aAC3BjD,OAAO,CACNC,UAAmCiD,GAC1B3B,EAAY,CACjB2B,YAAaA,MAIlBnC,QCpKI,MAAMoC,GAAuB,qBACvBC,GAAmB,eAEnBC,GAAc,aACdC,GAAiBC,OAAO,iBACxBC,GAAwBD,OAAO,0BAE/BE,GAAeF,OAAO,gBACtBG,GAAgB,YAEhBC,GAAW,kBCOjB,IAAMC,GAAN,4BAIUC,KAAgBC,iBAAuC,IAAK,CAEjE,cAAWC,GAEnB,OADKF,KAAKG,UAASH,KAAKG,QAAUC,GAAQpE,IAAIqE,KACvCL,KAAKG,OACb,CAED,WAAAG,CAEmBC,EACAC,GADAR,KAAOO,QAAPA,EACAP,KAASQ,UAATA,CACf,CAEJ,0BAAaC,CACXF,GAEA,IAAKP,KAAKC,iBAAkB,CAC1B,MAAMC,EAAMF,KAAKE,IAAIlE,IAAIgE,KAAKS,eAC9BP,EAAIQ,KAAK,gCACTV,KAAKC,iBAAmB,IAAIM,EAAQI,QAAQJ,EAAQK,KAAML,EAAQM,OAClE,UACQb,KAAKC,iBAAiBa,YAC7B,CAAC,MAAOC,GAEP,MADAb,EAAIc,MAAM,iCACJD,CACP,CACDb,EAAIQ,KAAK,yCACV,CACD,OAAOV,KAAKC,gBACb,CAED,yBAAOgB,GACL,OAAOjB,KAAKC,gBACb,CAED,cAAOiB,CAAQX,GACb,MAAMY,EAAuB,CAC3BC,QAAS9B,GACT+B,SAAUd,GAGNI,EAAgC,CACpCW,WAAYC,MAAOC,GACVnB,GAAgBI,cAAce,GAEvCJ,QAAS7B,GACTvC,SAAS,EACTL,MAAOE,EAAMC,QACb2E,OAAQ,CAACnC,KAMX,MAAO,CACLoC,OAAQrB,GACRsB,UALgB,CAAChB,EAASQ,GAM1BS,QALc,CAACjB,GAOlB,CAED,2BAAMkB,GACJ,MAAM3B,EAAMG,GAAgBH,IAAIlE,IAAIgE,KAAK6B,uBACnClB,EAAUX,KAAKQ,UAAUsB,IAAavC,IAC5C,IACMoB,IACFT,EAAIQ,KAAK,uBACHC,EAAQoB,WACd1B,GAAgBJ,iBAAmB,KAEtC,CAAC,MAAOc,GACPb,EAAIc,MAAM,iCAAkCD,EAC7C,CACF,GC1Ea,SAAAiB,GACdC,EACAC,GAEA,MAAMC,QAAEA,EAAOC,KAAEA,GAAUC,EAASP,IAClCG,EACAK,GAAcC,QAAUD,GAAcE,QACnC,CAAE,EASP,QAAQL,IAAmBA,KAAWC,EAAMF,KAAO,EACrD,UAUgBO,GACdR,EACAS,EACAC,GAEA,MAAMC,EAGF,CACFC,IAAK,CAACP,GAAcQ,KAAMC,GAC1BC,KAAM,CAACV,GAAcW,OAAQC,GAC7BC,IAAK,CAACb,GAAcc,OAAQC,GAC5BC,MAAO,CAAChB,GAAcc,OAAQG,GAC9BC,OAAQ,CAAClB,GAAckB,OAAQC,KAG1BC,EAAQC,GAAuBf,EAAWF,GACjD,OAAOV,GAAmBC,EAAkByB,GACxCxG,EAAM0G,KACN1G,EAAMyG,EAAoBhB,GAChC,UASgBkB,GACd5B,EACAS,EACAC,GAEA,MAAMC,EAGF,CACFC,IAAK,CAACiB,GAAsBC,SAAUhB,GACtCC,KAAM,CAACc,GAAsBE,WAAYd,GACzCC,IAAK,CAACW,GAAsBG,WAAYZ,GACxCC,MAAO,CAACQ,GAAsBG,WAAYV,GAC1CC,OAAQ,CAACM,GAAsBI,WAAYT,KAGtCC,EAAQC,GAAuBf,EAAWF,GACjD,OAAOV,GAAmBC,EAAkByB,GACxCxG,EAAM0G,KACN1G,EAAMyG,EAAoBhB,GAChC,CCjFgB,SAAAwB,GACdC,EAA4B,IAE5B,MAAMC,EAAaD,EAAME,IAAKC,GAC5BC,EAAY,CACVtF,KAAMqF,EAAErF,KACRG,YAAakF,EAAElF,aAAe,mBAAmBkF,EAAErF,KACnDvB,SAAU4G,EAAE5G,WAAY,EAExBgB,KAAM4F,EAAE5F,MAAQ8F,UAGpB,OAAOC,KAAmBL,EAC5B,CFXatE,GAAeM,GAAAsE,GAAA,CAF3BC,IACAC,EAAO,CAAA,GAaHC,GAAA,EAAAvH,EAAO+B,oCAEoByF,MAdnBhF,IGPA,MAAAiF,GAAYC,EACvB,CAACC,EAAeC,KACd,MACMC,EADUD,EAAIE,eAAeC,aACdF,KAGfG,EAAaJ,EAAIK,WAEjBC,EAAeF,EAAmBhH,MAExC,IAAKkH,EACH,MAAM,IAAIC,EACR,4CAA4CH,EAAWrG,oEAI3D,OAAKkG,EAED3G,MAAMC,QAAQ0G,GACTA,EAAKd,IAAKqB,GAAS,IAAIF,EAAYE,IAGrC,IAAIF,EAAYL,GANLA,ICZhBQ,GAAgBX,EACpB,CAACY,EAA6BV,KAC5B,MAAMW,EAAMX,EAAIE,eAAeC,aACzBS,EAAYD,GAAKE,QAAU,CAAE,EAC7BC,EAAYJ,GAAStJ,OAAO2J,KAAKH,GACjCI,EAAUF,EAAU3B,IAAK8B,GAAML,EAASK,IAC9C,MAAO,CAAEC,IAAKN,EAAUO,cAAeH,EAASI,YAAaN,KAUjD,SAAAO,GACdpC,EAA4B,IAE5B,MAAMyB,EAAQzB,EAAME,IAAKC,GAAMA,EAAErF,MACjC,OAAO0G,GAAcC,EACvB,CCvBM,SAAUY,GACd/D,GAEA,MAQMtG,EARoE,CACxEyG,IAAKE,EACLC,KAAME,EACNC,IAAKE,EACLC,MAAOC,EACPC,OAAQC,GAGmBf,GAE7B,IAAKtG,EACH,MAAUsK,MACR,0BAA0BhE,8CAI9B,OAAOtG,CACT,CCtBgB,SAAAuK,GAAMC,EAAuBjE,GAC3C,MAAMkE,EAAMrH,GAiBZ,OAAOzD,EAAWC,IAAI6K,GACnBC,OAAO,CACN1K,UAlBJ,IACS,CAAe2K,EAAaC,EAAY1J,KAC7C,MAAMiD,EAAgC,CACpCoC,KAAMA,EACNiE,WAAYA,EACZzE,QAAS7E,GAGX,OAAOJ,EAAM+J,EAAe5E,EAASwE,IAAIA,EAAKG,GAAOzG,GAA9CrD,CACL6J,EACAC,EACA1J,EAEJ,EAME8E,KAAM,KAEPlF,OACL,CClBa,IAAAgK,GAAN,MACL,WAAA5G,CACmB6G,EACkCC,GADlCpH,KAASmH,UAATA,EACkCnH,KAAWoH,YAAXA,CACjD,CAEJ,eAAMC,CACJlC,EACAmC,GAEA,MAAMC,EACJvH,KAAKmH,UAAUrF,IACbjC,GACAsF,EAAIqC,eAENxH,KAAKmH,UAAUrF,IAA0BjC,GAAesF,EAAIK,YAM9D,OAJI+B,GAAavH,KAAKoH,mBACdpH,KAAKoH,YAAYK,UAAUtC,EAAKoC,GAGjCD,EAAKI,QACb,GCLG,SAAUC,GAAKC,GACnB,MAAMC,EAA4B,iBAAVD,EAAqBA,EAAQA,EAAM1I,KAE3D,OAAOwF,EACLoD,EAAYjI,GAAegI,GAC3BE,EAAgBb,IAEpB,CDxBaA,GAAevC,GAAA,CAD3BjI,IAIIoI,GAAA,EAAAkD,KAAYlD,GAAA,EAAAvH,EAAOqC,6BADQqI,GAAS1L,UAF5B2K,IC0CA,MAAAgB,GAASC,GACbC,EAAStI,GAAUqI,GCnCf,IAAAE,GAAN,MAAA,WAAA/H,GACGN,KAAAsI,MAAQ,IAAIC,GASrB,CAPC,GAAAC,CAAI3B,EAAsB4B,GACxBzI,KAAKsI,MAAME,IAAI3B,EAAK4B,EACrB,CAED,GAAA3G,CAAa+E,GACX,OAAO7G,KAAKsI,MAAMxG,IAAI+E,EACvB,GATUwB,GAAmB1D,GAAA,CAD/BjI,EAAW,CAAEC,MAAOE,EAAME,WACdsL,IC0BA,IAAAK,GAAN,MACL,WAAApI,CAC2CqI,EACxBC,GADwB5I,KAAQ2I,SAARA,EACxB3I,KAAO4I,QAAPA,CACf,CAEJ,UAAMC,CAAK/C,EAAcgD,GACvB,IAAK,MAAM3G,KAAWnC,KAAK2I,eACnBxG,EAAQuF,OAAO1H,KAAK4I,QAAS9C,EAAKgD,EAE3C,GAVUJ,GAAoB/D,GAAA,CADhCjI,EAAW,CAAEC,MAAOE,EAAME,UAGtB+H,GAAA,EAAAvH,EAAOkC,mCACkB4I,MAHjBK,ICzBb,MAOMK,GAAgB7J,IAAoC,CACxDA,OACAG,YAAgBH,EAAH,2BACbvB,UAAU,EACVgB,KAAM8F,SAGF,SAAUuE,GACdC,EACAC,EACAC,EACAC,GAA8B,GAE9B,MAAMC,EAAmB5C,GAAoB0C,GACvCG,EArBkB,CAACJ,GAClBA,EACJK,MAAM,KACNC,OAAQjF,GAAMA,EAAEkF,WAAW,MAC3BnF,IAAKC,GAAMA,EAAEmF,MAAM,IAiBAC,CAAkBT,GAAW5E,IAAIyE,IAEjDa,EAAqB,GAsB3B,MArBiB,QAAbT,GAAsBC,GACxBQ,EAAmBC,KACjBC,EAAS,CACP5K,KAAM,YACNvB,UAAU,EACVoM,KAAMC,EACN3K,YAAa,mCAEfyK,EAAS,CACP5K,KAAM,QACNvB,UAAU,EACV0B,YAAa,uCAEfyK,EAAS,CACP5K,KAAM,SACNvB,UAAU,EACV0B,YAAa,wCAKZ,CACL4K,OAAQ,CACNZ,EAAiBH,MACdI,EAAchF,IAAI4F,MAClBN,EACHO,EAAa,CACXC,QAAS,wCAAwCnB,QAEnDoB,EAAc,CACZhL,YAAa,mCAEfiL,EAAqB,CACnBjL,YAAa,wCAGjB2G,OAAQ,CAACQ,GAAY8C,GAAgBiB,KAEzC,CAEM,SAAUC,GACdpN,EACA6L,EACA3L,EACA+G,GAEA,MAAMoG,EAAQrN,GAAQsN,WAAatN,EACnCiH,EAAW4F,OAAOU,QAASC,GAAMA,EAAEH,EAAOxB,EAAY3L,IACtD+G,EAAW2B,QAAQ2E,QAAQ,CAACC,EAAGC,IAAUD,EAAEH,EAAOxB,EAAY4B,GAChE,CAqBM,SAAUC,GAAsB7B,GACpC,OAAO1H,eAELwJ,EACAC,GAEA,MAAM9K,EAAcF,KAAKE,IAAIlE,IAAIiN,GAEjC,IACE/I,EAAI+K,MACF,gCAAgChC,wBAAiCiC,KAAKC,UAAUJ,EAAWzE,kBAE7F,MAAM8E,UAAEA,EAASC,MAAEA,EAAKC,OAAEA,GAAWN,EACrC,YAhCA,EACJO,EACAtC,KACG7G,KAEH,GAAImJ,aAAuBC,EACzB,MAAmD,mBAApCD,EAAoBtC,GAC9BsC,EAAoBtC,MAAe7G,GACpCmJ,EAAYE,UAAUxC,KAAe7G,GAG3C,GAAgD,mBAApCmJ,EAAoBtC,GAC9B,OAAQsC,EAAoBtC,MAAe7G,GAE7C,MAAUsE,MACR,uBAAuBuC,mBAA4BsC,GAAajL,aAAapB,OAEjF,EAemBwM,CACX1L,KAAKuL,YACLtC,KACG8B,EAAWzE,cACd8E,EACAC,EACAC,EAEH,CAAC,MAAOvK,GAEP,MADAb,EAAIc,MAAM,iBAAiBiI,YAAsBlI,GAC3CA,CACP,CACH,CACF,UAEgB4K,GACdC,EACA3C,EACA9G,GAWA,OATA5F,OAAOsP,eACLD,EAAgBlB,WAAakB,EAC7B3C,EACA,CACER,MAAOtG,EACP2J,UAAU,IAIPvP,OAAOwP,yBACZH,EAAgBlB,WAAakB,EAC7B3C,EAEJ,CC5JM,MAAgB+C,WAAgCC,GAIpD,WAAA3L,CAAsB4L,GACpBC,QACAnM,KAAKkM,cAAgBA,CACtB,CAED,eAAIX,GACF,MAAU7E,MAAM,kBACjB,QC8EU0F,UACapM,KAAGE,IAAGE,GAAQpE,IAAIoQ,GAAoBlN,KAAM,CAEpE,qBAAOmN,CACLC,GAEA,IACE,OAAOd,EAAae,WAAWD,EAEhC,CAAC,MAAOvL,GACP,OAAOyL,EAAWC,SAASH,EAC5B,CACF,CAED,sCAAOI,CACLnB,EACAoB,EAAiB3N,EAAgB4N,OAEjC,MAAM1M,EAAMkM,GAAoBlM,IAAIlE,IAClCoQ,GAAoBM,iCAEhBG,EACJtB,aAAuBC,EAAeD,EAAYsB,KAAOtB,EACrD9F,EAA2BoH,EAAKC,MAChCC,EACJ1K,EAASP,IACP+K,EAAKvM,YACL+B,EAASwE,IAAI7H,EAAgB4N,SAC1B,CAAA,EAEDI,EACJ3K,EAASP,IACPyJ,EAAYjL,YACZ+B,EAASwE,IAAIrH,MACV,GAGP,MAAMyN,UAAwBjB,GAC5B,WAAA1L,CAAY4L,GACVC,MAAMD,GACNlM,KAAKkN,aAAed,GAAoBC,eAAe5G,EACxD,CAED,eAAa8F,GACX,MAAM4B,EAAiBnN,KAAKkM,cAAcpK,IAAInC,IAC9C,OAAIwN,EAAuBnN,KAAKkN,aAAalR,IAAImR,GAC1CnN,KAAKkN,YACb,EAGH,IAAK,MAAOjE,EAAYjD,KAAWzJ,OAAO6Q,QAAQJ,GAAe,CAE/D,MAAM9D,EAAY,CAAClD,EAAOrD,KAAK0K,QAAQ,aAAc,KAClD7D,OAAQ8D,GAAYA,GAAWA,EAAQC,QACvCC,KAAK,KAGFrL,EAAU2I,GAAmB7B,GACnC,IAAK9G,EAAS,CACZ,MAAMsL,EAAU,wCAAwChI,EAAYvG,4BAA4B+J,IAEhG,MADA/I,EAAIc,MAAMyM,GACA/G,MAAM+G,EACjB,CAED,MAAMnQ,EAAaqO,GACjBsB,EACAhE,EACA9G,GAGE7E,GAMFkN,GAAmByC,EAAiBhE,EAAY3L,EAL7B0L,GACjBC,EACAC,EACAlD,EAAOY,YAIZ,CAED,IAAK,MAAOqC,EAAYyE,KAAcnR,OAAO6Q,QAAQL,GAAe,CAClE,MACM7D,EAAY,CAACyD,EAAQ1D,MADZyE,EAAUC,QAAU,IACcrJ,IAAKsJ,GAAM,IAAIA,IAC7DpE,OAAQ8D,GAAYA,GAAWA,EAAQC,QACvCC,KAAK,KAGFlQ,EAAaqO,GACjBsB,EACAhE,EAHc6B,GAAmB7B,IAO/B3L,GAEFkN,GAAmByC,EAAiBhE,EAAY3L,EAD7B0L,GAAiBC,EAAYC,EAAW,OAAO,GAGrE,CAED,OAAO+D,CACR,CAED,aAAOY,CAA6BpI,GAClC,MAAMvF,EAAMkM,GAAoBlM,IAAIlE,IAAIoQ,GAAoByB,QACtDC,EAAYC,EAAMD,UAAUrI,GAC5ByD,EAAY8E,GAAYF,GACxBG,EAAiBxI,EAAYvG,KAC7BqM,EAAca,GAAoBC,eAAe5G,IAGjDpG,YAAEA,EAAW6O,MAAEA,EAAKC,cAAEA,EAAaxL,KAAEA,GACzCyJ,GAAoBgC,4BAA4B3I,GAElDvF,EAAI+K,MAAM,kCAAkCgD,GAE5C,MAAMI,EAAiBjC,GAAoBM,gCACzCnB,GAGF,IAIM+C,EAJN,cAIqCD,SAGZrO,KAAKzB,MAAGkH,CAAY,CAE3C,WAAAnF,CAAY4L,GACVC,MAAMD,GALSlM,KAAAuO,GAAaR,EAAMQ,GAAG9I,GAMrCvF,EAAIQ,KACF,6CAA6CuN,aAA0B/E,IAE1E,CA4BD,YAAMsF,CAAO3H,EAAsB4H,GACjC,OAAOzO,KAAKuL,YAAYiD,OACtB3H,EACA4H,EAAQrD,UAEX,CAoBD,gBAAMsD,CACU7H,EACL4H,GAET,OAAOzO,KAAKuL,YAAYmD,WACtB7H,EACA4H,EAAQrD,UACRqD,EAEH,CAWD,eAAME,CAAwB9H,EAA6B4B,GACzD,OAAOzI,KAAKuL,YAAYoD,UAAU9H,EAAgB4B,EACnD,CAkBK,YAAAmG,CACU/H,EACE4B,EAEPgG,GAET,OAAOzO,KAAKuL,YAAYqD,OAAO/H,EAAgB4B,EAChD,CAqCK,eAAAgD,CACavM,EACFkD,EACNqM,GAET,MAAMrD,UAAEA,EAASE,OAAEA,EAAMD,MAAEA,EAAKwD,SAAEA,GAAaJ,EAI/C,OAHArM,EAAOA,EAAKkC,IACTwK,IAAoB,iBAANA,EAAiBC,SAASD,GAAKA,IAAMA,GAE9C5P,GACN,KAAK8P,EAAsBC,QACzB,MACF,KAAKD,EAAsBE,QACzB9M,EAAKyH,KAAKuB,GACV,MACF,KAAK4D,EAAsBG,QACzB/M,EAAO,CACLA,EAAK,GACLgJ,EACA,CAAEC,MAAOA,EAAOC,OAAQA,EAAQuD,SAAUA,IAG9C,KAAKG,EAAsBI,aAG7B,OAAOpP,KAAKuL,YAAYE,UAAUvM,KAASkD,EAC5C,CAkBD,eAAMiN,CAAuBnK,GAC3B,MAAMhF,EAAMF,KAAKE,IAAIlE,IAAIgE,KAAKqP,WAE9B,IAAIC,EADJpP,EAAIqP,QAAQ,gBAAgBtB,GAE5B,IACEqB,QAAgBtP,KAAKuL,YAAY8D,UAC/BnK,EAAKZ,IAAKsG,GAAM,IAAInF,EAAYmF,IAEnC,CAAC,MAAO7J,GAEP,MADAb,EAAIc,MAAM,wBAAwBiN,EAAkBlN,GAC9CA,CACP,CAID,OAHAb,EAAIQ,KACF,eAAeuN,aAA2BqB,EAAgBtP,KAAKuO,OAE1De,CACR,CAeD,YAAMzB,CAAoB3I,GACxB,MAAMhF,EAAMF,KAAKE,IAAIlE,IAAIgE,KAAK6N,QAE9B,IAAIyB,EADJpP,EAAIqP,QAAQ,gBAAgBtB,GAE5B,IACEqB,QAAgBtP,KAAKuL,YAAYsC,OAAO3I,EACzC,CAAC,MAAOnE,GAEP,MADAb,EAAIc,MAAM,wBAAwBiN,EAAkBlN,GAC9CA,CACP,CAID,OAHAb,EAAIQ,KACF,eAAeuN,aAA2BqB,EAAgBtP,KAAKuO,OAE1De,CACR,CAWD,aAAME,CAAsBC,GAC1B,MAAMvP,EAAMF,KAAKE,IAAIlE,IAAIgE,KAAKwP,SAC9B,IAAIE,EACJ,IACExP,EAAI+K,MAAM,WAAWwE,EAAIE,UAAU1B,MAAmBwB,KACtDC,QAAa1P,KAAKuL,YAAYiE,QAAQC,EACvC,CAAC,MAAO1O,GAEP,MADAb,EAAIc,MAAM,aAAaiN,aAA0BwB,IAAO1O,GAClDA,CACP,CAGD,OADAb,EAAIQ,KAAK,QAAQgP,EAAKC,UAAU1B,KACzByB,CACR,CAWD,UAAMA,CAAiCE,GACrC,MAAMC,EAAK3B,KAAS0B,EAAYtJ,eAChC,QAAkB,IAAPuJ,EACT,MAAM,IAAIC,GAAgB,MAAM9P,KAAKuO,eAEvC,MAAMrO,EAAMF,KAAKE,IAAIlE,IAAIgE,KAAK0P,MAC9B,IAAIA,EACJ,IACExP,EAAI+K,MAAM,WAAWgD,UAAuBjO,KAAKuO,MAAMsB,KACvDH,QAAa1P,KAAKuL,YAAYmE,KAAKG,EACpC,CAAC,MAAO9O,GAKP,MAJAb,EAAIc,MACF,kBAAkBiN,aAA0B4B,IAC5C9O,GAEIA,CACP,CAGD,OADAb,EAAIQ,KAAK,QAAQuN,aAA2ByB,EAAa1P,KAAKuO,OACvDmB,CACR,CAqBD,eAAMK,CAAuB3K,GAC3B,MAAMlF,EAAMF,KAAKE,IAAIlE,IAAIgE,KAAK+P,WAE9B,IAAIC,EACJ,IACE9P,EAAIQ,KAAK,YAAY0E,EAAKuK,UAAU1B,KACpC+B,QAAgBhQ,KAAKuL,YAAYwE,UAAU3K,EAC5C,CAAC,MAAOrE,GAEP,MADAb,EAAIc,MAAMD,GACJA,CACP,CACD,OAAOiP,CACR,CAkBD,YAAMC,CACwBL,EACfxK,GAEb,MAAMlF,EAAMF,KAAKE,IAAIlE,IAAIgE,KAAKiQ,QACxBJ,EAAK3B,KAAS0B,EAAYtJ,eAChC,QAAkB,IAAPuJ,EACT,MAAM,IAAIC,GAAgB,MAAM9P,KAAKuO,eAEvC,IAAIyB,EACJ,IACE9P,EAAIQ,KAAK,YAAYuN,UAAuBjO,KAAKuO,MAAMsB,KACvDG,QAAgBhQ,KAAKuL,YAAY0E,OAC/B,IAAIxK,EAAY,IACXL,EACH,CAACpF,KAAKuO,IAAKsB,IAGhB,CAAC,MAAO9O,GAEP,MADAb,EAAIc,MAAMD,GACJA,CACP,CACD,OAAOiP,CACR,CAYD,eAAME,CAAwBT,GAC5B,MAAMvP,EAAMF,KAAKE,IAAIlE,IAAIgE,KAAKkQ,WAC9B,IAAIR,EACJ,IACExP,EAAI+K,MAAM,YAAYwE,EAAIE,UAAU1B,MAAmBwB,KACvDC,QAAa1P,KAAKuL,YAAY2E,UAAUT,EACzC,CAAC,MAAO1O,GAKP,MAJAb,EAAIc,MACF,oBAAoBiN,aAA0BwB,IAC9C1O,GAEIA,CACP,CAGD,OADAb,EAAIQ,KAAK,WAAWgP,EAAKC,UAAU1B,KAC5ByB,CACR,CAWD,YAAM,CAAmCE,GACvC,MAAM1P,EAAMF,KAAKE,IAAIlE,IAAIgE,KAAKmQ,QACxBN,EAAK3B,KAAS0B,EAAYtJ,eAChC,QAAkB,IAAPuJ,EACT,MAAM,IAAIC,GAAgB,MAAM9P,KAAKuO,eAEvC,IAAI6B,EACJ,IACElQ,EAAI+K,MACF,YAAYgD,UAAuBjO,KAAKuO,MAAgBsB,KAE1DO,QAAYpQ,KAAKuL,YAAY4E,OAAON,EACrC,CAAC,MAAO9O,GAKP,MAJAb,EAAIc,MACF,oBAAoBiN,aAA0B4B,IAC9C9O,GAEIA,CACP,CAED,OADAb,EAAIQ,KAAK,WAAWuN,aAA0B4B,KACvCO,CACR,GAGH,OAtYQzL,GAAA,CAPLlC,GAAsBgD,EAAa,MAAO,eAC1C0E,EAAa,CAAEC,QAAS,YAAY6D,wBACpC/D,EAAS,CAAEhL,KAAM,MAAOG,YAAa,6BACrCyK,EAAS,CAAE5K,KAAM,YAAavB,UAAU,EAAMoM,KAAMC,IACpDK,EAAc,CACbhL,YAAgB4O,EAAH,0BAEYnJ,GAAA,EAAAyF,yGAK1B+D,EAAA5D,UAAA,SAAA,MAoBK/F,GAAA,CAlBLlC,GAAsBgD,EAAa,MAAO,yBAC1C0E,EAAa,CAAEC,QAAS,YAAY6D,wBACpC/D,EAAS,CAAEhL,KAAM,MAAOG,YAAa,6BACrC6K,EAAS,CACRhL,KAAM,OACNG,YAAa,yCAEdyK,EAAS,CACR5K,KAAM,YACNvB,UAAU,EACVoM,KAAMC,EACN3K,YAAa,mBAEdyK,EAAS,CAAE5K,KAAM,QAASvB,UAAU,EAAM0B,YAAa,kBACvDyK,EAAS,CAAE5K,KAAM,SAAUG,YAAa,gCACxCgL,EAAc,CACbhL,YAAgB4O,EAAH,uBAGZnJ,GAAA,EAAAuL,EAAM,QACNvL,GAAA,EAAAyF,yGAOF+D,EAAA5D,UAAA,aAAA,MAWK/F,GAAA,CATLlC,GAAsBgD,EAAa,MAAO,kBAC1C0E,EAAa,CAAEC,QAAS,YAAY6D,wBACpC/D,EAAS,CAAEhL,KAAM,MAAOG,YAAa,6BACrCgL,EAAc,CACbhL,YAAgB4O,EAAH,mBAEdqC,EAAoB,CACnBjR,YAAa,MAAM4O,8CAEJnJ,GAAA,EAAAuL,EAAM,QAAqBvL,GAAA,EAAAuL,EAAM,8GAEjD/B,EAAA5D,UAAA,YAAA,MAkBK/F,GAAA,CAhBLlC,GAAsBgD,EAAa,MAAO,sBAC1C0E,EAAa,CAAEC,QAAS,YAAY6D,wBACpC/D,EAAS,CAAEhL,KAAM,MAAOG,YAAa,6BACrC6K,EAAS,CAAEhL,KAAM,QAASG,YAAa,uBACvCyK,EAAS,CACR5K,KAAM,YACNvB,UAAU,EACVoM,KAAMC,EACN3K,YAAa,oCAEdgL,EAAc,CACbhL,YAAgB4O,EAAH,mBAEdqC,EAAoB,CACnBjR,YAAa,MAAM4O,8CAGlBnJ,GAAA,EAAAuL,EAAM,QACNvL,GAAA,EAAAuL,EAAM,UAENvL,GAAA,EAAAyF,gHAGF+D,EAAA5D,UAAA,SAAA,MAqCK/F,GAAA,CAnCLlC,GAAsBgD,EAAa,MAAO,2BAC1C0E,EAAa,CACZC,QAAS,oCAAoC6D,OAE9C/D,EAAS,CACRhL,KAAM,SACNG,YAAa,sCAEd6K,EAAS,CACRhL,KAAM,OACNG,YACE,qEAEHyK,EAAS,CACR5K,KAAM,YACNvB,UAAU,EACVoM,KAAMC,EACN3K,YAAa,oCAEdyK,EAAS,CACR5K,KAAM,QACNvB,UAAU,EACV0B,YAAa,uCAEdyK,EAAS,CACR5K,KAAM,SACNvB,UAAU,EACV0B,YAAa,uCAEdgL,EAAc,CACbhL,YAAgB4O,EAAH,mBAEdqC,EAAoB,CACnBjR,YAAa,MAAM4O,8CAGlBnJ,GAAA,EAAAuL,EAAM,WACNvL,GAAA,EAAAuL,EAAM,SACNvL,GAAA,EAAAyF,+GAuBF+D,EAAA5D,UAAA,YAAA,MAkBK/F,GAAA,CAhBLlC,GAAsBgD,EAAa,OAAQ,QAC3C0E,EAAa,CAAEC,QAAS,gBAAgB6D,OACxCsC,EAAQ,CACPlR,YAAa,eAAe4O,EAC5BuC,OAAQ,CACN7R,KAAM,QACN8R,MAAO,CAAEC,KAAMC,EAAclL,OAGhCmL,EAAmB,CAClBvR,YAAa,KAAK4O,4BAEnB4C,EAAsB,CAAExR,YAAa,+BACrCyR,EAA+B,CAC9BzR,YAAa,8CAEEyF,GAAA,EAAAE,kGAgBhBsJ,EAAA5D,UAAA,YAAA,MAeK/F,GAAA,CAbLlC,GAAsBgD,EAAa,QACnC0E,EAAa,CAAEC,QAAS,gBAAgB6D,OACxCsC,EAAQ,CACPlR,YAAa,eAAe4O,EAC5BuC,OAAQ,CAAEE,KAAMC,EAAclL,MAE/BmL,EAAmB,CAClBvR,YAAgB4O,EAAH,2BAEd4C,EAAsB,CAAExR,YAAa,+BACrCyR,EAA+B,CAC9BzR,YAAa,8CAEDyF,GAAA,EAAAE,mGAcbsJ,EAAA5D,UAAA,SAAA,MAWK/F,GAAA,CATLlC,GAAsBgD,EAAa,MAAO,QAC1C0E,EAAa,CAAEC,QAAS,cAAc6D,oBACtCnE,EAAS,CAAE5K,KAAM,MAAOvB,UAAU,EAAMgB,KAAM,UAC9C0L,EAAc,CACbhL,YAAgB4O,EAAH,6BAEdqC,EAAoB,CACnBjR,YAAa,MAAM4O,8CAENnJ,GAAA,EAAAyF,EAAM,oGAapB+D,EAAA5D,UAAA,UAAA,MAWK/F,GAAA,CATLlC,GAAsBgD,EAAa,MAAO9C,GAC1CwB,GAAmBgK,GACnBhE,EAAa,CAAEC,QAAS,cAAc6D,oBACtC5D,EAAc,CACbhL,YAAgB4O,EAAH,6BAEdqC,EAAoB,CACnBjR,YAAa,MAAM4O,8CAETnJ,GAAA,EAAA0B,GAAY2H,iGAoBvBG,EAAA5D,UAAA,OAAA,MAqBK/F,GAAA,CAnBLlC,GAAsBgD,EAAa,MAAO,QAC1CtB,GAAmBgK,GACnBhE,EAAa,CACZC,QAAS,uBAAuB6D,iCAEjCsC,EAAQ,CACPlR,YAAa,4CAA4C4O,EACzDuC,OAAQ,CACN7R,KAAM,QACN8R,MAAO,CAAEC,KAAMC,EAAclL,OAGhC4E,EAAc,CACbhL,YAAgBoG,EAAH,mCAEd6K,EAAoB,CACnBjR,YAAa,MAAM4O,8CAEpB4C,EAAsB,CAAExR,YAAa,+BACrByF,GAAA,EAAAE,kGAYhBsJ,EAAA5D,UAAA,YAAA,MAkBK/F,GAAA,CAhBLlC,GAAsBgD,EAAa,MAAO9C,GAC1CwB,GAAmBgK,GACnBhE,EAAa,CACZC,QAAS,uBAAuB6D,iCAEjCsC,EAAQ,CACPlR,YAAa,4CAA4C4O,EACzDuC,OAAQ,CAAEE,KAAMC,EAAclL,MAE/B4E,EAAc,CACbhL,YAAgBoG,EAAH,mCAEd6K,EAAoB,CACnBjR,YAAa,MAAM4O,8CAEpB4C,EAAsB,CAAExR,YAAa,+BAEnCyF,GAAA,EAAA0B,GAAY2H,IACZrJ,GAAA,EAAAE,0GAqBFsJ,EAAA5D,UAAA,SAAA,MAYK/F,GAAA,CAVLlC,GAAsBgD,EAAa,SAAU,QAC7CtB,GAAmBgK,GACnBhE,EAAa,CAAEC,QAAS,cAAc6D,oBACtCnE,EAAS,CAAE5K,KAAM,MAAOvB,UAAU,EAAMgB,KAAM,UAC9C0L,EAAc,CACbhL,YAAgB4O,EAAH,6BAEdqC,EAAoB,CACnBjR,YAAa,MAAM4O,8CAEJnJ,GAAA,EAAAyF,EAAM,oGAgBtB+D,EAAA5D,UAAA,YAAA,MAWK/F,GAAA,CATLlC,GAAsBgD,EAAa,SAAU9C,GAC7CwB,GAAmBgK,GACnBhE,EAAa,CAAEC,QAAS,YAAY6D,oBACpC5D,EAAc,CACbhL,YAAgB4O,EAAH,kCAEdqC,EAAoB,CACnBjR,YAAa,MAAM4O,8CAEPnJ,GAAA,EAAA0B,GAAY2H,iGAqBzBG,EAAA5D,UAAA,SAAA,MAzaG4D,EAAsB3J,GAAA,CAJ3BoM,EAAW7H,GACX8H,EAAQ/C,GACRgD,EAAexL,GACfkC,GAAKlC,2BAMuB4C,MALvBiG,GA4aCA,CACR,CAED,kCAAOF,CACL9B,GAEA,MAAMiC,EAAKR,EAAMQ,GAAGjC,GACd4E,EAAW7O,EAASP,IACxBwK,EACAjK,EAASwE,IAAIsK,GAAOC,SAAU7C,IAE1B8C,EAAeH,GAAU9O,MAAQ,GAGjCkP,EACJ7S,MAAMC,QAAQ2S,IAAiBA,EAAa1B,OAAS,EACjDlR,MAAM8S,KAAK,IAAIC,IAAI,IAAIH,KACvB5S,MAAM8S,KAAK,IAAIC,IAAI,CAACjD,KAEpBlP,EAAcgD,EAAShD,YAAYiN,GAWzC,MAAO,CACL3J,KAXW,IAAI2O,EAAW9D,KAAK,MAY/BnO,cACA8O,cAZwCmD,EAAWhN,IAAKuC,IACjD,CACL3H,KAAM2H,EACNxH,YAAagD,EAAShD,YAAYiN,EAAYzF,GAC9ClJ,UAAU,EACVgB,KAAM8F,UAQRyJ,MAAO,IAAIlI,IACTkL,GAAUO,UAAYzL,EAAOwH,KAAK0D,EAASO,WAAazL,EAAOwH,KAAK,IAEzE,ECtnBU,IAAAkE,GAAN,MACL,WAAApR,CAA6BqR,GAAA3R,KAAQ2R,SAARA,CAAkC,CAE/D,eAAMtK,CAAUlC,EAAuBmC,GACrC,MAAMxB,EAAMX,EAAIE,eAAeC,aACzBwD,EAAM3D,EAAIE,eAAeuM,cAE/B,aADM5R,KAAK2R,SAAS9I,KAAK/C,EAAKgD,GACvBxB,EAAKI,QACb,UARUgK,GAA8B/M,GAAA,CAD1CjI,EAAW,CAAEC,MAAOE,EAAME,kCAEc2L,MAD5BgJ,IC5CA,IAAAG,GAAN,4BACmB7R,KAAGE,IAAGE,GAAQpE,IAAI8V,GAAiB5S,KAAM,CAEzD,0BAAO6S,CACbC,GAEA,OAAOA,EAAO1N,IAAKsD,IAAW,CAC5BxG,QAAYwG,EAAM1I,KAAT,UACToC,WAAY,IAAMkK,EAAaiB,SAAS7E,KAE3C,CAED,cAAO1G,CACL+Q,EACA1R,EAAuC,IAEvC,MAAML,EAAMF,KAAKE,IAAIlE,IAAIgE,KAAKkB,SAC9BhB,EAAIQ,KAAK,yCAET,MAAMwR,EAAgBC,EAAQH,OAAOC,GAErC,IAAIG,EAA4B,GAC5B7R,EAAQ8R,eACVnS,EAAIQ,KAAK,2DACT0R,EAAgBpS,KAAK+R,oBAAoBG,GACzChS,EAAIQ,KACF,4BAA4B0R,EAAczC,iCAI9C,MAAM2C,EAAcJ,EAAc5N,IAAI8H,GAAoByB,QAG1D,OAFA3N,EAAIQ,KAAK,aAAa4R,EAAY3C,sBAE3B,CACLjO,OAAQoQ,GACRQ,cACA3Q,UAAW,CACT,CACEP,QAAS3B,GACT6B,WAAY,IAERf,EAAQoI,UAAUrE,IAAKiO,IACrBrS,EAAIQ,KAAK,+BAA+B6R,EAAErT,MACnC,IAAIqT,KACP,IAIZlK,GACAK,GACA,CACEtH,QAASoR,GACTC,SAAUf,OAETU,GAGR,UAzDUP,GAAgBC,GAAAnN,GAAA,CAD5BE,EAAO,CAAA,IACKgN,ICHA,IAAAa,GAANC,GAAA,MACL,yBAAaC,CACXrS,GAEA,MAAMsS,gBAAEA,EAAeR,aAAEA,EAAY1J,SAAEA,GAAapI,EAG9C0R,SADgBlS,GAAgBU,cAAcF,IAC5B0R,QAElBa,EAOU,CAAC/S,GAAgBmB,QAAQX,IAWzC,OATIsS,GACFC,EAAQjJ,KACNgI,GAAiB3Q,QAAQ+Q,EAAS,CAChCI,eACA1J,cAKC,CACLjH,OAAQiR,GACRG,QAASA,EAEZ,GCpCG,SAAUC,GAAanL,GAC5B,MAAMoL,EAAIjF,EAAMjM,IAAI8F,GACpB,IAAKoL,EACJ,MAAM,IAAIC,GAAc,iCAAiCrL,GAE1D,OADa4E,EAAWC,SAASuG,EAElC,CDDaN,GAAWC,GAAAhO,GAAA,CADvBE,EAAO,CAAA,IACK6N,IEPP,MAAOQ,WAAkBC,EAC7B,WAAA7S,CAAY8S,GACVjH,MAAMiH,EAAKF,GAAUhU,KACtB,ECAU,IAAAmU,GAAN,MACL,MAAMC,EAAkBC,GACtB,MAAMpO,EAAMoO,EAAKlO,eACXmO,EAAWrO,EAAIyM,cACf6B,EAAUtO,EAAIG,aAEdoO,EAAyC,eAA1BC,GAAkBC,IACjCN,aAAqBO,KACzBP,EAAY,IAAIL,GAAcK,EAAU7F,UAG1C+F,EAASM,OAAQR,EAAwBS,MAAMC,KAAK,CAClDF,OAASR,EAAwBS,KACjC/S,MAAO0S,EAAeJ,EAAUpU,KAAOoU,EAAU7F,QACjDwG,WAAW,IAAIC,MAAOC,cACtBxR,KAAM8Q,EAAQW,IACdnK,OAAQwJ,EAAQxJ,QAEnB,YCpBaoK,KACd,OAAOC,EAAW,IAAIjB,GACxB,CDAaA,GAAoB1O,GAAA,CADhC4P,KACYlB,IEYN,MAAMmB,GAAuC,CAClDC,MAAO,wCACPpV,YAAa,kDACbqV,QAAS,QACT/R,KAAM,OACNgS,gBAAiB,GACjBC,mBAAoB,GACpBC,KAAM,CACJlW,KAAM,OACNmW,OAAQ,SACRC,aAAc,MACd7V,KAAM,gBACNG,YAAa,kBACb2V,GAAI,UAENC,sBAAsB,EACtBC,cAAe,iBCnBJC,GAUX,WAAA7U,CAAYC,GACVP,KAAKO,QAAU,IACVA,EAEN,CAEO,SAAA6U,GACN,IAAIC,EAAM,GAKV,OAJIrV,KAAKO,QAAQ+U,iBAEfD,GAAO,yDADKrV,KAAKuV,IAAIvV,KAAKO,QAAQ+U,sDAIlCD,EACA,0GAE4CrV,KAAKO,QAAQ2U,eAAiBV,GAAqBU,0BAGlG,CAED,gBAAAM,GACE,MAAMC,EAA+B,CAAA,EAKrC,OAJIzV,KAAKO,QAAQmV,cACfD,EAAuB,cAAIzV,KAAKuV,IAAIvV,KAAKO,QAAQmV,aAAa,IAGzD,CACLC,gBAAiB3V,KAAKO,QAAQkU,SAC3BgB,EACHG,UAAW5V,KAAKoV,YAChBS,eAAgB,CACdZ,qBAAsBjV,KAAKO,QAAQ0U,sBAErCa,gBAAiB9V,KAAKO,QAAQoC,KACvB3C,KAAKO,QAAQoC,KAAhB,kBACA1F,EACJ8Y,gBAAiB/V,KAAKO,QAAQoC,KACvB3C,KAAKO,QAAQoC,KAAhB,kBACA1F,EAEP,CAED,GAAAsY,CAAIS,EAAcC,GAAe,GAC/B,MAAMC,EAAWvT,GAAK6K,KAAKxN,KAAKO,QAAQ4V,YAAc,GAAIH,GACpDT,EAAMa,GAAaF,EAAU,CAAEG,SAAU,WAC/C,OAAOJ,EAAM,yBAA2BV,EAAMA,CAC/C,QClEUe,GACX,WAAAhW,CACmBiW,EACAhW,GADAP,KAAGuW,IAAHA,EACAvW,KAAOO,QAAPA,CACf,CAEI,cAAAiW,GACN,MAAMnX,EAAcW,KAAKO,QAAQoC,KAC7B3C,KAAKO,QAAQlB,YACb,GACA,oBAAoBW,KAAKO,QAAQoC,2CACjC,YAAY3C,KAAKO,QAAQoC,wCACzB3C,KAAKO,QAAQlB,YAEXoX,GAAS,IAAIC,IAChBC,SAAS3W,KAAKO,QAAQkU,OACtBmC,eAAevX,GACfwX,WAAW7W,KAAKO,QAAQmU,SAAW,SACnCoC,cAAc9W,KAAKO,QAAQsU,MAAQL,GAAqBK,MACxDkC,QAEH,OAAOC,GAAcR,eAAexW,KAAKuW,IAAKE,EAAQ,CACpDQ,YAAajX,KAAKO,QAAQ0W,aAAe,IAE5C,CAEM,YAAAC,GACL,MAAMC,EAAWnX,KAAKwW,iBAChBY,EAAY,IAAIjC,GAAgB,CACpCV,MAAOzU,KAAKO,QAAQkU,MACpB9R,KAAM3C,KAAKO,QAAQoC,MAAQ6R,GAAqB7R,KAChDsS,qBAAsBjV,KAAKO,QAAQ0U,uBAAwB,EAC3DkB,WAAYnW,KAAKO,QAAQ4V,WACzBT,YAAa1V,KAAKO,QAAQoU,gBAC1BW,eAAgBtV,KAAKO,QAAQqU,mBAC7BM,cAAelV,KAAKO,QAAQ2U,gBAE9B8B,GAAcK,MACZrX,KAAKO,QAAQoC,MAAQ6R,GAAqB7R,KAC1C3C,KAAKuW,IACLY,EACA,IACKC,EAAU5B,oBAGlB,QCwCU8B,GAcH,iBAAWC,GAKjB,OAJKvX,KAAKG,UAERH,KAAKG,QAAU,IAAIqX,EAAO,kBAErBxX,KAAKG,OACb,CAaD,iBAAOW,CAAWyV,GAEhB,OADAvW,KAAKuW,IAAMA,EACJvW,IACR,CAcD,mBAAOyX,CAAaC,GAGlB,OAFA1X,KAAKG,QAAUuX,GAAgB,IAAIF,EAAO,iBAC1CxX,KAAKuW,IAAIoB,UAAU3X,KAAKG,SACjBH,IACR,CAgBD,iBAAO4X,CACLC,EAA0B,GAC1BC,EAAyB,CAAC,MAAO,OAAQ,MAAO,WAEhD,MAAMC,EACQ,MAAZF,EAAkB,IAAMA,EAAQvT,IAAK0T,GAAMA,EAAEzK,OAAO0K,eAEhDC,EAA2B,CAC/BC,OAAQ,CAACA,EAAQC,IAEVD,EAGgB,MAAnBJ,GACCtZ,MAAMC,QAAQqZ,IACbA,EAAeM,SAASF,EAAOF,eAE1BG,EAAS,MAAM,QAGxBA,EAAS,IAAIlF,GAAU,UAAUiF,kBAVbC,EAAS,MAAM,GAYrCE,aAAa,EACbC,QAAST,EAAatK,KAAK,MAI7B,OADAxN,KAAKuW,IAAIqB,WAAWM,GACblY,IACR,CAcD,gBAAOwY,CAAUjY,GACf,IAEE,MAAMkY,EAASC,QAAQ,UACvB1Y,KAAKuW,IAAIoC,IAAIF,EAAOlY,IACpBP,KAAKuX,OAAOrX,IAAI,0CAEjB,CAAC,MAAOa,GACPf,KAAKuX,OAAOqB,KAAK,6CAClB,CAED,OAAO5Y,IACR,CAcD,mBAAOkX,CAAa3W,GAalB,OAZgB,IAAI+V,GAAetW,KAAKuW,IAAK,CAC3C9B,MAAOlU,EAAQkU,MACfpV,YAAakB,EAAQlB,YACrBqV,QAASnU,EAAQmU,QACjB/R,KAAMpC,EAAQoC,MAAQ,MACtBsS,qBAAsB1U,EAAQ0U,uBAAwB,EACtDkB,WAAY5V,EAAQ4V,WACpBxB,gBAAiBpU,EAAQmV,YACzBd,mBAAoBrU,EAAQ+U,eAC5BJ,cAAe3U,EAAQ2U,gBAEjBgC,eACDlX,IACR,CAcD,qBAAO6Y,IAAkBC,GAEvB,OADIA,EAAMnJ,OAAS,GAAG3P,KAAKuW,IAAIsC,kBAAkBC,GAC1C9Y,IACR,CAaD,uBAAO+Y,IAAoBC,GAIzB,OAHAhZ,KAAKuW,IAAIwC,oBACHC,EAAQrJ,OAAS,EAAIqJ,EAAU,CAAC,IAAI3F,KAEnCrT,IACR,CAcD,4BAAOiZ,IAAyBC,GAG9B,OAFIA,EAAavJ,OAAS,GACxB3P,KAAKuW,IAAI0C,yBAAyBC,GAC7BlZ,IACR,CAgBD,kBAAamZ,CACXC,EAAeC,OAAOC,QAAQ1F,IAAI2F,OAAS,IAC3ChG,OAA2BtW,EAC3BiD,GAAe,GAEfF,KAAKuW,IAAIiD,OAAOJ,EAAM7F,GAAakG,KAAKlY,UACtC,GAAIrB,EAAK,CACP,MAAMkU,QAAYpU,KAAKuW,IAAImD,SAC3B1Z,KAAKuX,OAAOrX,IAAI,2CAAiCkU,EAClD,GAEJ,ECzRI,MAAMuF,GAAU,cACVC,GAAe,cAE5BvX,EAASwX,gBAAgBD,GAAcD"}
@@ -88,8 +88,9 @@ class FromModelController {
88
88
  }
89
89
  static createQueryRoutesFromRepository(persistence, prefix = core_1.PersistenceKeys.QUERY) {
90
90
  const log = FromModelController.log.for(FromModelController.createQueryRoutesFromRepository);
91
- const ModelConstr = persistence.class;
92
- const queryMethods = decoration_1.Metadata.get(persistence.constructor, decoration_1.Metadata.key(core_1.PersistenceKeys.QUERY)) ?? {};
91
+ const repo = persistence instanceof core_1.ModelService ? persistence.repo : persistence;
92
+ const ModelConstr = repo.class;
93
+ const queryMethods = decoration_1.Metadata.get(repo.constructor, decoration_1.Metadata.key(core_1.PersistenceKeys.QUERY)) ?? {};
93
94
  const routeMethods = decoration_1.Metadata.get(persistence.constructor, decoration_1.Metadata.key(constants_1.DECAF_ROUTE)) ?? {};
94
95
  // create base class
95
96
  class QueryController extends types_1.AbstractQueryController {
@@ -145,7 +146,8 @@ class FromModelController {
145
146
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
146
147
  const { description, getPK, apiProperties, path } = FromModelController.getRouteParametersFromModel(ModelConstr);
147
148
  log.debug(`Creating controller for model: ${modelClazzName}`);
148
- const BaseController = FromModelController.createQueryRoutesFromRepository(persistence instanceof core_1.ModelService ? persistence.repo : persistence);
149
+ const BaseController = FromModelController.createQueryRoutesFromRepository(persistence // instanceof ModelService ? persistence.repo : persistence
150
+ );
149
151
  let DynamicModelController = class DynamicModelController extends BaseController {
150
152
  static { this.clazz = ModelConstr; }
151
153
  constructor(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>, prefix?: string): ControllerConstructor<AbstractQueryController>;
57
+ static createQueryRoutesFromRepository<T extends Model<boolean>>(persistence: Repo<T> | ModelService<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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"}
@@ -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>, prefix?: string): ControllerConstructor<AbstractQueryController>;
57
+ static createQueryRoutesFromRepository<T extends Model<boolean>>(persistence: Repo<T> | ModelService<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
  }
@@ -85,8 +85,9 @@ export class FromModelController {
85
85
  }
86
86
  static createQueryRoutesFromRepository(persistence, prefix = PersistenceKeys.QUERY) {
87
87
  const log = FromModelController.log.for(FromModelController.createQueryRoutesFromRepository);
88
- const ModelConstr = persistence.class;
89
- const queryMethods = Metadata.get(persistence.constructor, Metadata.key(PersistenceKeys.QUERY)) ?? {};
88
+ const repo = persistence instanceof ModelService ? persistence.repo : persistence;
89
+ const ModelConstr = repo.class;
90
+ const queryMethods = Metadata.get(repo.constructor, Metadata.key(PersistenceKeys.QUERY)) ?? {};
90
91
  const routeMethods = Metadata.get(persistence.constructor, Metadata.key(DECAF_ROUTE)) ?? {};
91
92
  // create base class
92
93
  class QueryController extends AbstractQueryController {
@@ -142,7 +143,8 @@ export class FromModelController {
142
143
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
143
144
  const { description, getPK, apiProperties, path } = FromModelController.getRouteParametersFromModel(ModelConstr);
144
145
  log.debug(`Creating controller for model: ${modelClazzName}`);
145
- const BaseController = FromModelController.createQueryRoutesFromRepository(persistence instanceof ModelService ? persistence.repo : persistence);
146
+ const BaseController = FromModelController.createQueryRoutesFromRepository(persistence // instanceof ModelService ? persistence.repo : persistence
147
+ );
146
148
  let DynamicModelController = class DynamicModelController extends BaseController {
147
149
  static { this.clazz = ModelConstr; }
148
150
  constructor(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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"}
@@ -35,5 +35,5 @@ export * from "./request";
35
35
  * @constant
36
36
  * @type {string}
37
37
  */
38
- export declare const VERSION = "0.1.21";
38
+ export declare const VERSION = "0.1.22";
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.21";
39
+ export const VERSION = "0.1.22";
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.21";
56
+ exports.VERSION = "0.1.22";
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.21";
38
+ export declare const VERSION = "0.1.22";
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.21",
3
+ "version": "0.1.22",
4
4
  "description": "NestJS decaf integration",
5
5
  "type": "module",
6
6
  "exports": {