@decaf-ts/for-nest 0.3.3 → 0.3.4

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,o,a,s,i,n,c,p,d,l,u,h,m){"use strict";function f(e){var t=Object.create(null);return e&&Object.keys(e).forEach(r=>{if("default"!==r){var o=Object.getOwnPropertyDescriptor(e,r);Object.defineProperty(t,r,o.get?o:{enumerable:!0,get:()=>e[r]})}}),t.default=e,Object.freeze(t)}var y=f(m);const g="swagger",_={API_OPERATION:g+"/apiOperation",API_RESPONSE:g+"/apiResponse",API_PRODUCES:g+"/apiProduces",API_CONSUMES:g+"/apiConsumes",API_TAGS:g+"/apiUseTags",API_CALLBACKS:g+"/apiCallbacks",API_PARAMETERS:g+"/apiParameters",API_HEADERS:g+"/apiHeaders",API_MODEL_PROPERTIES:g+"/apiModelProperties",API_MODEL_PROPERTIES_ARRAY:g+"/apiModelPropertiesArray",API_SECURITY:g+"/apiSecurity",API_EXCLUDE_ENDPOINT:g+"/apiExcludeEndpoint",API_EXCLUDE_CONTROLLER:g+"/apiExcludeController",API_EXTRA_MODELS:g+"/apiExtraModels",API_EXTENSION:g+"/apiExtension",API_SCHEMA:g+"/apiSchema",API_DEFAULT_GETTER:g+"/apiDefaultGetter",API_LINK:g+"/apiLink"},A=e=>void 0===e;function E(e){if("function"==typeof e)return E(e());if(Array.isArray(e))return e;if("object"!=typeof e)return[];const t=Object.values(e).filter(e=>"number"==typeof e).map(e=>e.toString());return Object.keys(e).filter(e=>!t.includes(e)).map(t=>e[t])}function b(e){return e.filter(i.isString).length>0?"string":"number"}function P(e,t,r=!0){return(o,a)=>{const s=Reflect.getMetadata(_.API_MODEL_PROPERTIES_ARRAY,o)||[],n=":"+a;s.includes(n)||Reflect.defineMetadata(_.API_MODEL_PROPERTIES_ARRAY,[...s,":"+a],o);const c=Reflect.getMetadata(e,o,a);if(c){const s=i.pickBy(t,i.negate(A)),n=r?{...c,...s}:{...s,...c};Reflect.defineMetadata(e,n,o,a)}else{const r=o?.constructor?._OPENAPI_METADATA_FACTORY?.()[a]?.type??Reflect.getMetadata("design:type",o,a);Reflect.defineMetadata(e,{type:r,required:!1,...i.pickBy(t,i.negate(A))},o,a)}}}function O(e={}){return R(e)}function R(e={},t=!0){const[r,o]=((e,t)=>{if(!e)return[e,t];if(t)return[e,t];const r=i.isArray(e);return[r?e[0]:e,r]})(e.type,e.isArray);if((a=e={...e,type:r,isArray:o}).isArray&&"enum"in a&&void 0!==a.enum){e.type="array";const t=E(e.enum);e.items={type:b(t),enum:t},delete e.enum}else if("enum"in e&&void 0!==e.enum){const t=E(e.enum);e.enum=t,e.type=b(t)}var a;return Array.isArray(e.type)&&(e.type="array",e.items={type:"array",items:{type:e.type[0]}}),P(_.API_MODEL_PROPERTIES,e,t)}function v(e,r){const{handler:o,args:a}=t.Metadata.get(e,c.OperationKeys.REFLECT+c.OperationKeys.BLOCK)||{};return!!o&&(o(...a,r)??!1)}function D(e,r,a){const s={GET:[c.OperationKeys.READ,o.Get],POST:[c.OperationKeys.CREATE,o.Post],PUT:[c.OperationKeys.UPDATE,o.Put],PATCH:[c.OperationKeys.UPDATE,o.Patch],DELETE:[c.OperationKeys.DELETE,o.Delete]},[i,p]=s[r];return v(e,i)?t.apply(n.ApiExcludeEndpoint()):t.apply(p(a))}function w(e=[]){const t=e.map(e=>n.ApiParam({name:e.name,description:e.description??"Path parameter: "+e.name,required:e.required??!0,type:e.type??String}));return o.applyDecorators(...t)}const T=o.createParamDecorator((e,t)=>{const r=t.switchToHttp().getRequest().body,a=t.getClass(),s=a.class;if(!s)throw new o.InternalServerErrorException(`ModelConstructor not found on controller ${a.name}. Ensure the controller was created via FromModelController.`);return r?Array.isArray(r)?r.map(e=>new s(e)):new s(r):r}),C=o.createParamDecorator((e,t)=>{const r=t.switchToHttp().getRequest(),o=r?.params??{},a=e??Object.keys(o),s=a.map(e=>o[e]);return{raw:o,valuesInOrder:s,keysInOrder:a}});function S(e=[]){const t=e.map(e=>e.name);return C(t)}const x=o.createParamDecorator((e,t)=>{const r={...t.switchToHttp().getRequest().query??{}};if(void 0!==r.limit){const e=Number(r.limit);Number.isNaN(e)||(r.limit=e)}if(void 0!==r.offset){const e=Number(r.offset);Number.isNaN(e)||(r.offset=e)}if(void 0!==r.bookmark){const e=Number(r.bookmark);r.bookmark=Number.isNaN(e)?r.bookmark:e}return r});function M(e){const t={GET:o.Get,POST:o.Post,PUT:o.Put,PATCH:o.Patch,DELETE:o.Delete}[e];if(!t)throw Error(`Unsupported HTTP verb "${e}". No NestJS decorator mapping was found.`);return t}const I="DecafModuleOptions",q="DecafAdapter",$="DecafRoute",F=Symbol("DecafHandlers"),k=Symbol("DecafAdapterForOptions"),N=Symbol("AUTH_HANDLER"),j="auth:meta",L=Symbol("decaf:context");function K(t){const r=t?"string"==typeof t?t:t.name:void 0,a=[n.ApiBearerAuth(),o.UseInterceptors(e.AuthInterceptor)];return r&&a.push(o.SetMetadata(j,r)),o.applyDecorators(...a)}e.AuthInterceptor=class{constructor(e,t){this.reflector=e,this.authHandler=t}async intercept(e,t){const r=l.Logging.for(this).for(this.intercept),o=this.reflector.get(j,e.getHandler())??this.reflector.get(j,e.getClass());return r.verbose("Intercepted request"+(o?" for "+o:"")),this.authHandler?await this.authHandler.authorize(e,o):r.debug("No auth handler/model"),t.handle()}},e.AuthInterceptor=p.__decorate([o.Injectable(),p.__param(1,o.Optional()),p.__param(1,o.Inject(N)),p.__metadata("design:paramtypes",[d.Reflector,Object])],e.AuthInterceptor);class B{parseRequest(e){const t=e.headers.authorization?.split(" ")[1];return t}async authorize(e,r){const o=e.switchToHttp().getRequest(),i=this.parseRequest(o);if(!i)throw new s.AuthorizationError("Unauthenticated");if(!t.Metadata.get(a.Model.get(r),s.PersistenceKeys.AUTH_ROLE).includes(i))throw new s.AuthorizationError("Missing role: "+i)}}var U;e.DecafRequestContext=class{constructor(e){this.req=e,this.uuid=s.UUID.instance.generate()}get request(){return this.req}put(e){let t;try{t=this.ctx.get("overrides")}catch(e){t={}}this._ctx=this.ctx.accumulate({overrides:Object.assign(t,e)})}applyCtx(e){if(this._ctx)throw new c.InternalError("Trying to overwrite context");this._ctx=e}get ctx(){if(!this._ctx)throw new c.InternalError("Context not initialized for request");return this._ctx}},e.DecafRequestContext=p.__decorate([o.Injectable({scope:o.Scope.REQUEST}),p.__param(0,o.Inject(d.REQUEST)),p.__metadata("design:paramtypes",[Request])],e.DecafRequestContext),e.DecafHandlerExecutor=U=class{constructor(e,t){this.handlers=e,this.context=t}async exec(e,t){l.Logging.for(U.name).for(this.exec).debug(`CONTEXT ${this.context.uuid} running ${this.handlers.length} handlers for request ${e.method} ${e.url}`);for(const r of this.handlers)await r.handle(this.context,e,t)}},e.DecafHandlerExecutor=U=p.__decorate([o.Injectable({scope:o.Scope.REQUEST}),p.__param(0,o.Inject(F)),p.__metadata("design:paramtypes",[Array,e.DecafRequestContext])],e.DecafHandlerExecutor),e.DecafResponseInterceptor=class{constructor(e){this.ctx=e}intercept(e,t){let r=e.switchToHttp().getResponse();return t.handle().pipe(u.tap(e=>{r=this.ctx.ctx.toResponse(r)}))}},e.DecafResponseInterceptor=p.__decorate([o.Injectable(),p.__metadata("design:paramtypes",[e.DecafRequestContext])],e.DecafResponseInterceptor);const H=e=>({name:e,description:e+" parameter for the query",required:!0,type:String});function G(e,t,r,a=!1){const i=M(r),c=(e=>e.split("/").filter(e=>e.startsWith(":")).map(e=>e.slice(1)))(t).map(H),p=[];return"GET"===r&&a&&p.push(n.ApiQuery({name:"direction",required:!1,enum:s.OrderDirection,description:"the sort order when applicable"}),n.ApiQuery({name:"limit",required:!1,description:"limit or page size when applicable"}),n.ApiQuery({name:"offset",required:!1,description:"offset or bookmark when applicable"})),{method:[i(t),...c.map(n.ApiParam),...p,n.ApiOperation({summary:`Retrieve records using according to "${e}".`}),n.ApiOkResponse({description:"Result successfully retrieved."}),n.ApiNoContentResponse({description:"No content returned by the method."})],params:[S(c),o.Query()]}}function Q(e,t,r,o){const a=e?.prototype??e;o.method.forEach(e=>e(a,t,r)),o.params?.forEach((e,r)=>e(a,t,r))}function z(e,t,...r){if(e instanceof s.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}`)}function V(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:a,limit:s,offset:i}=r;return await z(this.persistence(),e,...t.valuesInOrder,a,s,i)}catch(t){throw o.error(`Custom query "${e}" failed`,t),t}}}function Y(e,t,r){return Object.defineProperty(e.prototype||e,t,{value:r,writable:!1}),Object.getOwnPropertyDescriptor(e.prototype||e,t)}class X extends s.Service{constructor(e,t){super(t),this.clientContext=e}logCtx(e,t,r=!1,o){const a=this.clientContext.ctx;let i;e=e.filter(e=>void 0!==e),o&&(o.headers||o.ip)&&(i=o,o={});const n=s.ContextualLoggedClass.logCtx.call(this,t,o||{},r,...e,a);return this.bindLoggerToRequest(n,i)}bindLoggerToRequest(e,t){const r=this;function o(e,t){return e.log=((e,t)=>{const o=(e=>{if(!e)return;const t=e.headers,r=W(t?.["x-forwarded-for"])??W(t?.["x-real-ip"])??W(t?.["X-Forwarded-For"])??W(t?.["X-Real-IP"]);if(r)return r;if("string"==typeof e.ip&&e.ip.length)return e.ip;const o=e.socket||e.connection;return o&&"string"==typeof o.remoteAddress&&o.remoteAddress.length?o.remoteAddress:void 0})(t??r.clientContext.request);if(!o)return e;const a={ip:o};return e.for(a)})(e.log,t),e}return(e=>"object"==typeof e&&null!==e&&"function"==typeof e.then)(e)?e.then(e=>o(e,t)):o(e,t)}}class J extends X{persistence(e){if(!this._persistence)try{this._persistence=s.Service.get(this.class)}catch(e){try{this._persistence=s.ModelService.getService(this.class)}catch(e){this._persistence=s.Repository.forModel(this.class)}}const t=this.clientContext.request[k]||{};return e&&this.clientContext.put(t),e?this._persistence instanceof s.Repository?this._persistence.override(t):this._persistence.for(t):this._persistence}constructor(e,t){super(e,t)}logCtx(e,t,r=!1,o){const a=this.clientContext.ctx;let i;o&&(o.headers||o.ip)&&(i=o,o={});try{o=a.get("overrides")}catch(e){}const n=this.persistence(a);let c,p;return n instanceof s.ModelService?c=n.repo._adapter:n instanceof s.Repository?c=n._adapter:n.context&&(c=n),r?c.logCtx(e,t,!0,o).then(e=>this.bindLoggerToRequest(e,i)):(p=c.logCtx(e,t,!1,o),this.bindLoggerToRequest(p,i))}}function W(e){if(e)return(Array.isArray(e)?e[0]:e).split(",").map(e=>e.trim()).filter(Boolean)[0]}const Z=new Map;function ee(e,r){if(!s.TransactionOperationKeys.includes(e))return r;const o=(e=>(Z.has(e)||Z.set(e,new WeakMap),Z.get(e)))(e),i=o.get(r);if(i)return i;const n=[c.OperationKeys.UPDATE,c.BulkCrudOperationKeys.UPDATE_ALL].includes(e);class p{}o.set(r,p),Object.defineProperty(p,"name",{value:`${l.toPascalCase(r.name)}${l.toPascalCase(e)}DTO`});const d=(()=>{try{return a.Model.pk(r)}catch{return}})(),u=d?a.Model.pkProps(r):void 0,h=d?Reflect.getMetadata("design:type",r.prototype,d):void 0,m=h===Number||h===BigInt,f=!!u?.generated||!!d&&(a.Model.generatedBySequence(r,d)||oe(r,d)||m),y=Array.from(new Set(t.Metadata.properties(r)||[])),g=new Set(a.Model.relations(r)||[]),_=[];for(const e of y)e&&(g.has(e)||e===d&&!n&&f||e!==d&&oe(r,e)||_.push(e));for(const e of _){const t=ae(r,e),o=!!t?.[a.ValidationKeys.REQUIRED],s=se(r,e)??Reflect.getMetadata("design:type",r.prototype,e),i={required:o};s&&(i.type=s),O(i)(p.prototype,e);const n=Reflect.getMetadata("design:type",r.prototype,e)??s;void 0!==n&&Reflect.defineMetadata("design:type",n,p.prototype,e),Object.defineProperty(p.prototype,e,{value:void 0,writable:!0,enumerable:!0,configurable:!0})}for(const o of g){const s=t.Metadata.relations(r,o);if(!s)throw new c.InternalError(`Metadata for relation ${o} not found`);let i=s.class;if("function"!=typeof i||i.name||(i=i()),!i||"function"!=typeof i)throw new c.InternalError(`Type for relation ${o} not found`);if(!a.Model.get(i.name))continue;const d=t.Metadata.validationFor(r,o),l=!!d?.[a.ValidationKeys.LIST],u=!!d?.[a.ValidationKeys.REQUIRED],h=ee(e,i);n?re(p,o,i,h,l,u):te(p,o,h,l,u)}return p}function te(e,t,r,o,a){O({type:r,required:a,isArray:o})(e.prototype,t),Reflect.defineMetadata("design:type",o?Array:r,e.prototype,t),Object.defineProperty(e.prototype,t,{value:void 0,writable:!0,enumerable:!0,configurable:!0})}function re(e,t,r,o,s,i){const n=Reflect.getMetadata(_.API_EXTRA_MODELS,e)||[];n.includes(o)||Reflect.defineMetadata(_.API_EXTRA_MODELS,[...n,o],e);const c="#/components/schemas/"+o.name,p=(e=>{try{const t=a.Model.pkProps(e),r=t?.type;return r===Number||r===BigInt?"integer":"string"}catch{return"string"}})(r),d=[{$ref:c},{type:p}];O(s?{type:"array",required:i,oneOf:d}:{type:Object,required:i,oneOf:d})(e.prototype,t),Reflect.defineMetadata("design:type",s?Array:Object,e.prototype,t),Object.defineProperty(e.prototype,t,{value:void 0,writable:!0,enumerable:!0,configurable:!0})}function oe(e,t){let r=e;for(;r&&r!==Object&&r!==Function;){if(a.Model.generated(r,t))return!0;r=Object.getPrototypeOf(r)}return!1}function ae(e,r){let o=e;for(;o&&o!==Object&&o!==Function;){const e=t.Metadata.validationFor(o,r);if(e)return e;o=Object.getPrototypeOf(o)}}function se(e,r){let o=e;for(;o&&o!==Object&&o!==Function;){const e=t.Metadata.type(o,r);if(e)return e;o=Object.getPrototypeOf(o)}}s.Adapter.transformerFor=(e=>{const r="string"==typeof e?e:e.alias;return t.Metadata.innerGet(Symbol.for("transformers"),r)}).bind(s.Adapter),s.Adapter.flavoursToTransform=(()=>{const e=t.Metadata.innerGet(Symbol.for("transformers"));if(e)return Object.keys(e)}).bind(s.Adapter),s.Context.prototype.toResponse=function(e){const t=this.pending();return t&&e.header("x-pending-task",JSON.stringify(t)),e};const ie=a.ModelBuilder.prototype;if(ie.decorateClass||(ie.decorateClass=function(e){return this._classDecorators||(this._classDecorators=[]),this._classDecorators.push(e),this}),ie.Auth=function(e){return this.decorateClass(K(e))},!ie.__hasClassDecoratorSupport){const e=ie.build;ie.build=function(){let t=e.call(this);const r=this._classDecorators;if(r?.length)for(const e of r){const r=e(t);r&&(t=r)}return t},ie.__hasClassDecoratorSupport=!0}class ne{static{this.log=l.Logging.for(ne.name)}static getPersistence(e){try{return s.Service.get(e)}catch(t){try{return s.ModelService.getService(e)}catch(t){return s.Repository.forModel(e)}}}static createQueryRoutesFromRepository(e,r=s.PersistenceKeys.QUERY){const o=ne.log.for(ne.createQueryRoutesFromRepository),a=e instanceof s.ModelService?e.repo:e,i=a.class,n=t.Metadata.get(a.constructor,t.Metadata.key(s.PersistenceKeys.QUERY))??{},c=t.Metadata.get(e.constructor,t.Metadata.key($))??{};class p extends J{get class(){throw Error("Method not implemented.")}constructor(e,t){super(e,t)}}for(const[e,t]of Object.entries(c)){const r=[t.path.replace(/^\/+|\/+$/g,"")].filter(e=>e&&e.trim()).join("/"),a=V(e);if(!a){const t=`Invalid or missing handler for model ${i.name} on decorated method ${e}`;throw o.error(t),Error(t)}const s=Y(p,e,a);s&&Q(p,e,s,G(e,r,t.httpMethod))}for(const[e,t]of Object.entries(n)){const o=[r,e,...(t.fields??[]).map(e=>":"+e)].filter(e=>e&&e.trim()).join("/"),a=Y(p,e,V(e));a&&Q(p,e,a,G(e,o,"GET",!0))}return p}static create(t){const r=ne.log.for(ne.create),i=a.Model.tableName(t),d=l.toKebabCase(i),u=t.name,h=ne.getPersistence(t),{description:m,getPK:f,apiProperties:y,path:g}=ne.getRouteParametersFromModel(t);r.debug("Creating controller for model: "+u);const _=ne.createQueryRoutesFromRepository(h);let A=class extends _{static get class(){return t}get class(){return t}constructor(e){super(e),this.pk=a.Model.pk(t),r.info(`Registering dynamic controller for model: ${this.class.name} route: /${d}`)}async listBy(e,t){const{ctx:r}=(await this.logCtx([],s.PreparedStatementKeys.LIST_BY,!0)).for(this.listBy);return this.persistence(r).listBy(e,t.direction,r)}async paginateBy(e,t){const{ctx:r}=(await this.logCtx([],s.PreparedStatementKeys.PAGE_BY,!0)).for(this.paginateBy);return this.persistence(r).paginateBy(e,t.direction,t,r)}async find(e,t){const{ctx:r}=(await this.logCtx([],s.PreparedStatementKeys.FIND,!0)).for(this.find),o=t.direction??s.OrderDirection.ASC;return z(this.persistence(r),this.find.name,e,o,r)}async page(e,t){const{ctx:r}=(await this.logCtx([],s.PreparedStatementKeys.PAGE,!0)).for(this.page),{direction:o=s.OrderDirection.ASC,limit:a,offset:i,bookmark:n}=t,c={offset:i??1,limit:a??10,bookmark:n};return z(this.persistence(r),this.page.name,e,o,c,r)}async findOneBy(e,t){const{ctx:r}=(await this.logCtx([],s.PreparedStatementKeys.FIND_ONE_BY,!0)).for(this.findOneBy);return this.persistence(r).findOneBy(e,t,r)}async findBy(e,t,r){const{ctx:o}=(await this.logCtx([],s.PreparedStatementKeys.FIND_BY,!0)).for(this.findBy);return this.persistence(o).for(o.toOverrides()).findBy(e,t,o)}async statement(e,t,r){const{ctx:o}=(await this.logCtx([],s.PersistenceKeys.STATEMENT,!0)).for(this.statement),{direction:a,offset:i,limit:n,bookmark:c}=r,p=(t=t.map(e=>("string"==typeof e?parseInt(e):e)||e)).length>1?t[1]:void 0,d=a??p;switch(d&&t.length>1&&(t[1]=d),e){case s.PreparedStatementKeys.FIND:case s.PreparedStatementKeys.FIND_BY:break;case s.PreparedStatementKeys.LIST_BY:t.push(a);break;case s.PreparedStatementKeys.PAGE:case s.PreparedStatementKeys.PAGE_BY:t=[t[0],d,{limit:n,offset:i,bookmark:c}];case s.PreparedStatementKeys.FIND_ONE_BY:case s.PreparedStatementKeys.COUNT_OF:case s.PreparedStatementKeys.MAX_OF:case s.PreparedStatementKeys.MIN_OF:case s.PreparedStatementKeys.AVG_OF:case s.PreparedStatementKeys.SUM_OF:case s.PreparedStatementKeys.DISTINCT_OF:case s.PreparedStatementKeys.GROUP_OF:}return this.persistence(o).statement(e,...t,o)}async createAll(e,r){const{ctx:o,log:a}=(await this.logCtx([],c.BulkCrudOperationKeys.CREATE_ALL,!0)).for(this.createAll);let s;a.verbose("creating new "+u);try{s=await this.persistence(o).createAll(e.map(e=>new t(e)),o)}catch(e){throw a.error("Failed to create new "+u,e),e}return a.info(`created new ${u} with id ${s[this.pk]}`),o.toResponse(r),s}async create(e,t){const{ctx:r,log:o}=(await this.logCtx([],c.OperationKeys.CREATE,!0)).for(this.create);let a;o.verbose("creating new "+u);try{const t=this.persistence(r);a=await t.create(e,r)}catch(e){throw o.error("Failed to create new "+u,e),e}return o.info(`created new ${u} with id ${a[this.pk]}`),r.toResponse(t),a}async readAll(e){const{ctx:t,log:r}=(await this.logCtx([],c.BulkCrudOperationKeys.READ_ALL,!0)).for(this.readAll);let o;try{r.debug(`reading ${e.length} ${u}: ${e}`);const a=this.persistence(t);o=await a.readAll(e,t)}catch(t){throw r.error(`Failed to ${u} with id ${e}`,t),t}return r.info(`read ${o.length} ${u}`),o}async read(e){const{ctx:t,log:r}=(await this.logCtx([],c.OperationKeys.READ,!0)).for(this.read),o=f(...e.valuesInOrder);if(void 0===o)throw new c.ValidationError(`No ${this.pk} provided`);let a;try{r.debug(`reading ${u} with ${this.pk} ${o}`);const e=this.persistence(t);a=await e.read(o,t)}catch(e){throw r.error(`Failed to read ${u} with id ${o}`,e),e}return r.info(`read ${u} with id ${a[this.pk]}`),a}async updateAll(e,t){const{ctx:r,log:o}=(await this.logCtx([],c.BulkCrudOperationKeys.UPDATE_ALL,!0)).for(this.updateAll);let a;try{o.info(`updating ${e.length} ${u}`),a=await this.persistence(r).updateAll(e,r)}catch(e){throw o.error(e),e}return r.toResponse(t),a}async update(e,r,o){const{ctx:a,log:s}=(await this.logCtx([],c.OperationKeys.UPDATE,!0)).for(this.update),i=f(...e.valuesInOrder);if(void 0===i)throw new c.ValidationError(`No ${this.pk} provided`);let n;try{s.info(`updating ${u} with ${this.pk} ${i}`);const e=JSON.parse(JSON.stringify(r)),o=this.persistence(a);n=await o.update(new t({...e,[this.pk]:i}),a)}catch(e){throw s.error(e),e}return a.toResponse(o),n}async deleteAll(e,t){const{ctx:r,log:o}=(await this.logCtx([],c.BulkCrudOperationKeys.DELETE_ALL,!0)).for(this.deleteAll);let a;try{o.debug(`deleting ${e.length} ${u}: ${e}`),a=await this.persistence(r).deleteAll(e,r)}catch(t){throw o.error(`Failed to delete ${u} with id ${e}`,t),t}return o.info(`deleted ${a.length} ${u}`),r.toResponse(t),a}async delete(e,t){const{ctx:r,log:o}=(await this.logCtx([],c.OperationKeys.DELETE,!0)).for(this.delete),a=f(...e.valuesInOrder);if(void 0===a)throw new c.ValidationError(`No ${this.pk} provided`);let s;try{o.debug(`deleting ${u} with ${this.pk} ${a}`),s=await this.persistence(r).delete(a,r)}catch(e){throw o.error(`Failed to delete ${u} with id ${a}`,e),e}return o.info(`deleted ${u} with id ${a}`),r.toResponse(t),s}};return p.__decorate([D(t,"GET","listBy/:key"),n.ApiOperation({summary:`Retrieve ${u} records by query.`}),n.ApiParam({name:"key",description:"the model key to sort by"}),n.ApiQuery({name:"direction",required:!0,enum:s.OrderDirection}),n.ApiOkResponse({description:u+" listed successfully."}),p.__param(0,o.Param("key")),p.__param(1,x()),p.__metadata("design:type",Function),p.__metadata("design:paramtypes",[String,Object]),p.__metadata("design:returntype",Promise)],A.prototype,"listBy",null),p.__decorate([D(t,"GET","paginateBy/:key/:page"),n.ApiOperation({summary:`Retrieve ${u} records by query.`}),n.ApiParam({name:"key",description:"the model key to sort by"}),n.ApiParam({name:"page",description:"the page to retrieve or the bookmark"}),n.ApiQuery({name:"direction",required:!0,enum:s.OrderDirection,description:"the sort order"}),n.ApiQuery({name:"limit",required:!0,description:"the page size"}),n.ApiQuery({name:"offset",description:"the bookmark when necessary"}),n.ApiOkResponse({description:u+" listed paginated."}),p.__param(0,o.Param("key")),p.__param(1,x()),p.__metadata("design:type",Function),p.__metadata("design:paramtypes",[String,Object]),p.__metadata("design:returntype",Promise)],A.prototype,"paginateBy",null),p.__decorate([D(t,"GET","find/:value"),n.ApiOperation({summary:`Find ${u} records using the default query attributes.`}),n.ApiParam({name:"value",description:"The string to match against the default query attributes"}),n.ApiQuery({name:"direction",required:!1,enum:s.OrderDirection,description:"the sort order for the matching results"}),n.ApiOkResponse({description:u+" records matching the provided prefix."}),p.__param(0,o.Param("value")),p.__param(1,x()),p.__metadata("design:type",Function),p.__metadata("design:paramtypes",[String,Object]),p.__metadata("design:returntype",Promise)],A.prototype,"find",null),p.__decorate([D(t,"GET","page/:value"),n.ApiOperation({summary:`Page ${u} records using the default query attributes.`}),n.ApiParam({name:"value",description:"The string to match against the default query attributes"}),n.ApiQuery({name:"direction",required:!1,enum:s.OrderDirection,description:"the sort order for the paged results"}),n.ApiQuery({name:"limit",required:!1,description:"page size"}),n.ApiQuery({name:"offset",required:!1,description:"page number"}),n.ApiQuery({name:"bookmark",required:!1,description:"bookmark for cursor pagination"}),n.ApiOkResponse({description:u+" records paged by the provided prefix."}),p.__param(0,o.Param("value")),p.__param(1,x()),p.__metadata("design:type",Function),p.__metadata("design:paramtypes",[String,Object]),p.__metadata("design:returntype",Promise)],A.prototype,"page",null),p.__decorate([D(t,"GET","findOneBy/:key"),n.ApiOperation({summary:`Retrieve ${u} records by query.`}),n.ApiParam({name:"key",description:"the model key to sort by"}),n.ApiOkResponse({description:u+" listed found."}),n.ApiNotFoundResponse({description:`No ${u} record matches the provided identifier.`}),p.__param(0,o.Param("key")),p.__param(1,o.Param("value")),p.__metadata("design:type",Function),p.__metadata("design:paramtypes",[String,Object]),p.__metadata("design:returntype",Promise)],A.prototype,"findOneBy",null),p.__decorate([D(t,"GET","findBy/:key/:value"),n.ApiOperation({summary:`Retrieve ${u} records by query.`}),n.ApiParam({name:"key",description:"the model key to compare"}),n.ApiParam({name:"value",description:"the value to match"}),n.ApiQuery({name:"direction",required:!0,enum:s.OrderDirection,description:"the sort order when applicable"}),n.ApiOkResponse({description:u+" listed found."}),n.ApiNotFoundResponse({description:`No ${u} record matches the provided identifier.`}),p.__param(0,o.Param("key")),p.__param(1,o.Param("value")),p.__param(2,x()),p.__metadata("design:type",Function),p.__metadata("design:paramtypes",[String,Object,Object]),p.__metadata("design:returntype",Promise)],A.prototype,"findBy",null),p.__decorate([D(t,"GET","statement/:method/*args"),n.ApiOperation({summary:`Executes a prepared statement on ${u}.`}),n.ApiParam({name:"method",description:"the prepared statement to execute"}),n.ApiParam({name:"args",description:"concatenated list of arguments the prepared statement can accept"}),n.ApiQuery({name:"direction",required:!0,enum:s.OrderDirection,description:"the sort order when applicable"}),n.ApiQuery({name:"limit",required:!0,description:"limit or page size when applicable"}),n.ApiQuery({name:"offset",required:!0,description:"offset or bookmark when applicable"}),n.ApiOkResponse({description:u+" listed found."}),n.ApiNotFoundResponse({description:`No ${u} record matches the provided identifier.`}),p.__param(0,o.Param("method")),p.__param(1,o.Param("args")),p.__param(2,x()),p.__metadata("design:type",Function),p.__metadata("design:paramtypes",[String,Array,Object]),p.__metadata("design:returntype",Promise)],A.prototype,"statement",null),p.__decorate([D(t,"POST","bulk"),n.ApiOperation({summary:`Create a new ${u}.`}),n.ApiBody({description:"Payload for "+u,schema:{type:"array",items:{$ref:n.getSchemaPath(t)}}}),n.ApiCreatedResponse({description:u+" created successfully.",schema:{type:"array",items:{$ref:n.getSchemaPath(t)}}}),n.ApiBadRequestResponse({description:"Payload validation failed."}),n.ApiUnprocessableEntityResponse({description:"Repository rejected the provided payload."}),p.__param(0,T()),p.__param(1,o.Response({passthrough:!0})),p.__metadata("design:type",Function),p.__metadata("design:paramtypes",[Array,Object]),p.__metadata("design:returntype",Promise)],A.prototype,"createAll",null),p.__decorate([D(t,"POST"),n.ApiOperation({summary:`Create a new ${u}.`}),n.ApiBody({description:"Payload for "+u,type:ee(c.OperationKeys.CREATE,t)}),n.ApiCreatedResponse({description:u+" created successfully.",schema:{$ref:n.getSchemaPath(t)}}),n.ApiBadRequestResponse({description:"Payload validation failed."}),n.ApiUnprocessableEntityResponse({description:"Repository rejected the provided payload."}),p.__param(0,T()),p.__param(1,o.Response({passthrough:!0})),p.__metadata("design:type",Function),p.__metadata("design:paramtypes",[Object,Object]),p.__metadata("design:returntype",Promise)],A.prototype,"create",null),p.__decorate([D(t,"GET","bulk"),n.ApiOperation({summary:`Retrieve a ${u} record by id.`}),n.ApiQuery({name:"ids",required:!0,type:"array"}),n.ApiOkResponse({description:u+" retrieved successfully.",schema:{type:"array",items:{$ref:n.getSchemaPath(t)}}}),n.ApiNotFoundResponse({description:`No ${u} record matches the provided identifier.`}),p.__param(0,o.Query("ids")),p.__metadata("design:type",Function),p.__metadata("design:paramtypes",[Array]),p.__metadata("design:returntype",Promise)],A.prototype,"readAll",null),p.__decorate([D(t,"GET",g),w(y),n.ApiOperation({summary:`Retrieve a ${u} record by id.`}),n.ApiOkResponse({description:u+" retrieved successfully.",schema:{$ref:n.getSchemaPath(t)}}),n.ApiNotFoundResponse({description:`No ${u} record matches the provided identifier.`}),p.__param(0,S(y)),p.__metadata("design:type",Function),p.__metadata("design:paramtypes",[Object]),p.__metadata("design:returntype",Promise)],A.prototype,"read",null),p.__decorate([D(t,"PUT","bulk"),w(y),n.ApiOperation({summary:`Replace an existing ${u} record with a new payload.`}),n.ApiBody({description:"Payload for replace a existing record of "+u,schema:{type:"array",$ref:n.getSchemaPath(ee(c.OperationKeys.UPDATE,t))}}),n.ApiOkResponse({description:u+" updated successfully.",schema:{type:"array",items:{$ref:n.getSchemaPath(t)}}}),n.ApiNotFoundResponse({description:`No ${u} record matches the provided identifier.`}),n.ApiBadRequestResponse({description:"Payload validation failed."}),p.__param(0,T()),p.__param(1,o.Response({passthrough:!0})),p.__metadata("design:type",Function),p.__metadata("design:paramtypes",[Array,Object]),p.__metadata("design:returntype",Promise)],A.prototype,"updateAll",null),p.__decorate([D(t,"PUT",g),w(y),n.ApiOperation({summary:`Replace an existing ${u} record with a new payload.`}),n.ApiBody({description:"Payload for replace a existing record of "+u,type:ee(c.OperationKeys.UPDATE,t)}),n.ApiOkResponse({description:u+" updated successfully.",schema:{$ref:n.getSchemaPath(t)}}),n.ApiNotFoundResponse({description:`No ${u} record matches the provided identifier.`}),n.ApiBadRequestResponse({description:"Payload validation failed."}),p.__param(0,S(y)),p.__param(1,T()),p.__param(2,o.Response({passthrough:!0})),p.__metadata("design:type",Function),p.__metadata("design:paramtypes",[Object,Object,Object]),p.__metadata("design:returntype",Promise)],A.prototype,"update",null),p.__decorate([D(t,"DELETE","bulk"),w(y),n.ApiOperation({summary:`Retrieve a ${u} record by id.`}),n.ApiQuery({name:"ids",required:!0,type:"array"}),n.ApiOkResponse({description:u+" deleted successfully.",schema:{type:"array",items:{$ref:n.getSchemaPath(t)}}}),n.ApiNotFoundResponse({description:`No ${u} record matches the provided identifier.`}),p.__param(0,o.Query("ids")),p.__param(1,o.Response({passthrough:!0})),p.__metadata("design:type",Function),p.__metadata("design:paramtypes",[Array,Object]),p.__metadata("design:returntype",Promise)],A.prototype,"deleteAll",null),p.__decorate([D(t,"DELETE",g),w(y),n.ApiOperation({summary:`Delete a ${u} record by id.`}),n.ApiOkResponse({description:u+" deleted successfully.",schema:{$ref:n.getSchemaPath(t)}}),n.ApiNotFoundResponse({description:`No ${u} record matches the provided identifier.`}),p.__param(0,S(y)),p.__param(1,o.Response({passthrough:!0})),p.__metadata("design:type",Function),p.__metadata("design:paramtypes",[Object,Object]),p.__metadata("design:returntype",Promise)],A.prototype,"delete",null),A=p.__decorate([o.Controller(d),n.ApiTags(u),n.ApiExtraModels(t),K(t),p.__metadata("design:paramtypes",[e.DecafRequestContext])],A),A}static getRouteParametersFromModel(e){const r=a.Model.pk(e),o=t.Metadata.get(e,t.Metadata.key(c.DBKeys.COMPOSED,r)),s=o?.args??[],i=Array.isArray(s)&&s.length>0?Array.from(new Set([...s])):Array.from(new Set([r])),n=t.Metadata.description(e);return{path:":"+i.join("/:"),description:n,apiProperties:i.map(r=>({name:r,description:t.Metadata.description(e,r),required:!0,type:String})),getPK:(...e)=>o?.separator?e.join(o.separator):e.join("")}}}function ce(e){var t;let r=class{static{t=this}static{this.log=l.Logging.for(t.name).for(e)}static createModelServices(e){return e.map(e=>({provide:e.name+"Service",useFactory:()=>s.ModelService.forModel(e)}))}static forRoot(e,r={}){const o=this.log.for(this.forRoot);o.info("Generating controllers for flavour...");const a=s.Adapter.models(e);let i=[];r.autoServices&&(o.info("Auto-services enabled. Initializing service generation."),i=this.createModelServices(a),o.info(`Auto-services completed. ${i.length} services initialized.`));const n=a.map(ne.create);return o.info(`Generated ${n.length} controllers`),{module:t,controllers:n,providers:[...i]}}};return r=t=p.__decorate([o.Module({})],r),Object.assign(r,"name",{value:"DecafModule"+e}),r}t.Decoration.for(r.InjectablesKeys.INJECTABLE).extend({decorator:(e,t)=>(t=t||("object"==typeof e?Object.assign(e,r.DefaultInjectablesConfig):r.DefaultInjectablesConfig),o.Injectable({scope:t.singleton?o.Scope.DEFAULT:o.Scope.REQUEST,durable:!t.singleton||void 0}))}).apply(),t.Decoration.for(r.InjectablesKeys.INJECT).extend({decorator:(e,t)=>(t,r,a)=>o.Inject(e||t)(t,r,a)}).apply(),t.Decoration.for(a.ValidationKeys.REQUIRED).extend(O({required:!0})).apply(),t.Decoration.for(a.ValidationKeys.MAX).extend({decorator:e=>O({maximum:e,required:!1})}).apply(),t.Decoration.for(a.ValidationKeys.MIN).extend({decorator:e=>O({minimum:e,required:!1})}).apply(),t.Decoration.for(a.ValidationKeys.MAX_LENGTH).extend({decorator:e=>O({maxLength:e,required:!1})}).apply(),t.Decoration.for(a.ValidationKeys.MIN_LENGTH).extend({decorator:e=>O({minLength:e,required:!1})}).apply(),t.Decoration.for(a.ValidationKeys.TYPE).extend({decorator:e=>(t,r)=>("function"!=typeof(e=Array.isArray(e)?e[0]:e)||e.name||(e=e()),O({type:e,required:!1})(t,r))}).apply(),t.Decoration.for(a.ValidationKeys.DATE).extend({decorator:e=>O({type:String,format:"date-time",required:!1})}).apply(),t.Decoration.for(a.ValidationKeys.ENUM).extend({decorator:e=>O({enum:Array.isArray(e)?e:Object.values(e),required:!1})}).apply(),t.Decoration.for(a.ValidationKeys.PATTERN).extend({decorator:e=>O({pattern:"string"==typeof e?e:e.source,required:!1})}).apply(),t.Decoration.for(s.PersistenceKeys.COLUMN).extend({decorator:e=>O({name:e,required:!1})}).apply(),t.Decoration.for(t.DecorationKeys.DESCRIPTION).extend({decorator:e=>O({description:e,required:!1})}).apply(),t.Decoration.for(s.PersistenceKeys.AUTH).extend({decorator:K}).apply();class pe extends s.ForbiddenError{constructor(e){super(e,pe.name)}}e.DecafExceptionFilter=class{catch(e,t){const r=t.switchToHttp(),a=r.getResponse(),i=r.getRequest(),n="production"===l.LoggedEnvironment.env;let p;e instanceof o.NotFoundException||e instanceof s.UnsupportedError?p=(e=new o.NotAcceptableException(e.message)).getStatus():e instanceof c.BaseError||(e=new c.InternalError(e.message)),a.status(e.code||p).json({status:e.code||p,error:n?e.name:e.message,timestamp:(new Date).toISOString(),path:i.url,method:i.method})}},e.DecafExceptionFilter=p.__decorate([o.Catch()],e.DecafExceptionFilter);const de={path:"docs",auth:{type:"http",scheme:"bearer",bearerFormat:"JWT",name:"Authorization",description:"Enter JWT token",in:"header"},topbarBgColor:"#000000"};class le{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||de.topbarBgColor}; }\n `}getCustomOptions(){const e={};return this.options.faviconPath&&(e.customfavIcon=this.b64(this.options.faviconPath,!0)),{customSiteTitle:this.options.title,...e,customCss:this.customCSS(),swaggerOptions:{persistAuthorization:this.options.persistAuthorization},jsonDocumentUrl:this.options.path?this.options.path+"/spec.json":void 0,yamlDocumentUrl:this.options.path?this.options.path+"/spec.yaml":void 0}}b64(e,t=!1){const r=y.join(this.options.assetsPath||"",e),o=h.readFileSync(r,{encoding:"base64"});return t?"data:image/png;base64,"+o:o}}class ue{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 n.DocumentBuilder).setTitle(this.options.title).setDescription(e).setVersion(this.options.version||"0.0.1").addBearerAuth(this.options.auth||de.auth).build();return n.SwaggerModule.createDocument(this.app,t,{extraModels:this.options.extraModels||[]})}setupSwagger(){const e=this.createDocument(),t=new le({title:this.options.title,path:this.options.path||de.path,persistAuthorization:this.options.persistAuthorization??!0,assetsPath:this.options.assetsPath,faviconPath:this.options.faviconFilePath,topbarIconPath:this.options.topbarIconFilePath,topbarBgColor:this.options.topbarBgColor});n.SwaggerModule.setup(this.options.path||de.path,this.app,e,{...t.getCustomOptions()})}}var he,me;function fe(e){return r=>(t.Metadata.set("transformers",e,r),"function"==typeof r?t.metadata("transformers",e)(r):r)}e.DecafRequestHandlerInterceptor=he=class{constructor(e,t){this.requestContext=e,this.executor=t}async contextualize(e){const t={headers:e.headers,overrides:{}},r=s.Adapter.flavoursToTransform();if(r)for(const o of r)try{const r=s.Adapter.transformerFor(o),a=await r.from(e);Object.assign(t.overrides,a)}catch(e){throw new c.InternalError("Failed to contextualize request: "+e)}return(new s.Context).accumulate(Object.assign({},s.DefaultAdapterFlags,{logger:l.Logging.get(),timestamp:new Date},t))}async intercept(e,t){const r=e.switchToHttp().getRequest(),o=e.switchToHttp().getResponse(),a=l.Logging.for(he).for(this.intercept);a.debug(`CONTEXT ${this.requestContext.uuid} - request: ${r.method} ${r.url}`);const s=await this.contextualize(r);return a.debug(`CONTEXT ${this.requestContext.uuid} contextualized - request: ${r.method} ${r.url}`),this.requestContext.applyCtx(s),a.debug(`CONTEXT ${this.requestContext.uuid} applied - request: ${r.method} ${r.url}`),await this.executor.exec(r,o),a.debug(`CONTEXT ${this.requestContext.uuid} executors finished - request: ${r.method} ${r.url}`),t.handle()}},e.DecafRequestHandlerInterceptor=he=p.__decorate([o.Injectable({scope:o.Scope.REQUEST}),p.__metadata("design:paramtypes",[e.DecafRequestContext,e.DecafHandlerExecutor])],e.DecafRequestHandlerInterceptor),e.DecafCoreModule=class{static{me=this}static get persistence(){if(!this._persistence)throw new c.InternalError("Persistence service not initialized");return this._persistence}static get log(){return this._logger||(this._logger=l.Logging.for(me)),this._logger}constructor(e,t){this.options=e,this.moduleRef=t}static forRoot(t){const r=this.log.for(this.forRoot);return{module:me,providers:[{provide:I,useValue:t},{provide:q,useValue:this.persistence.client},{provide:F,useFactory:()=>t.handlers?.map(e=>(r.info("Registered request handler: "+e.name),new e))??[]},e.AuthInterceptor,{provide:d.APP_INTERCEPTOR,useExisting:e.AuthInterceptor},e.DecafRequestContext,e.DecafHandlerExecutor,{provide:d.APP_INTERCEPTOR,useClass:e.DecafRequestHandlerInterceptor}],exports:[I,q,F,e.DecafRequestContext,e.DecafHandlerExecutor]}}static async bootPersistence(e){const t=this.log.for(this.bootPersistence);if(!this._persistence){const r=e.conf.map(([e,t,...r])=>r.pop()?[e,t,...r]:[e,t]);this._persistence=new s.PersistenceService,await this._persistence.boot(r);const o=this._persistence.client;for(let t=0;t<o.length;t++){const r=e.conf[t];let a=r.slice(2,r.length).pop();if(!a||!a.from){const e=s.Adapter.transformerFor(o[t].flavour);if(!e)throw new c.InternalError(`No transformer found for flavour ${o[t].flavour}. you should either @requestToContextTransformer or provide a transformer in the config`);try{a=e.from?e:new e}catch(e){throw new c.InternalError("Failed to boot transformer for "+o[t].flavour)}}fe(o[t].flavour)(a)}t.info("persistence layer created successfully!")}return this.persistence.client}async onApplicationShutdown(){const e=me.log.for(this.onApplicationShutdown),t=this.moduleRef.get(q);for(const r of t)try{r&&(e.info("Shutting down "+r.toString()),await r.shutdown())}catch(t){e.error("Failed to shutdown application",t)}}},e.DecafCoreModule=me=p.__decorate([o.Global(),o.Module({}),p.__param(0,o.Inject(I)),p.__metadata("design:paramtypes",[Object,d.ModuleRef])],e.DecafCoreModule);const ye=Symbol("LISTENING_ADAPTERS_FLAVOURS");var ge,_e,Ae;e.EventsController=ge=class extends X{constructor(e,t){super(e,ge.name),this.adapters=t.map(e=>s.Adapter.get(e))}listen(){const e=l.Logging.for(ge.name);return new u.Observable(t=>{const r=new class{refresh(...e){return Promise.resolve().then(()=>{const r=(e=>{const[t,r,o,a]=e;return[t?.name??t,r,o,Array.isArray(a)?a.map(e=>e.serialize()):a?.serialize()]})(e);t.next({data:r})})}};try{for(const e of this.adapters)e.observe(r)}catch(e){t.error("Failed to observe event: "+(e.message||e))}return()=>{try{for(const e of this.adapters)e.unObserve(r)}catch(t){e.error(t)}}})}listenForModel(e){const t=l.Logging.for(ge.name);return new u.Observable(e=>{const r=new class{refresh(...t){return Promise.resolve().then(()=>{e.next({data:t})})}};try{for(const e of this.adapters)e.observe(r)}catch(t){e.error("Failed to observe event: "+(t.message||t))}return()=>{try{for(const e of this.adapters)e.unObserve(r)}catch(e){t.error(e)}}})}},p.__decorate([o.Sse(),p.__metadata("design:type",Function),p.__metadata("design:paramtypes",[]),p.__metadata("design:returntype",u.Observable)],e.EventsController.prototype,"listen",null),p.__decorate([o.Sse("/:model"),p.__param(0,o.Query("model")),p.__metadata("design:type",Function),p.__metadata("design:paramtypes",[String]),p.__metadata("design:returntype",u.Observable)],e.EventsController.prototype,"listenForModel",null),e.EventsController=ge=p.__decorate([o.Controller(),p.__param(1,o.Inject(ye)),p.__metadata("design:paramtypes",[e.DecafRequestContext,Array])],e.EventsController),e.DecafStreamModule=_e=class{static forFlavours(t,r="events"){return{module:_e,controllers:[e.EventsController],imports:[d.RouterModule.register([{path:r.replace(/^\//,""),module:_e}])],providers:[e.DecafRequestContext,{provide:ye,useValue:t??[]}]}}},e.DecafStreamModule=_e=p.__decorate([o.Module({})],e.DecafStreamModule),e.DecafModule=Ae=class{static async forRootAsync(t){const{autoControllers:r,autoServices:o}=t,a=(await e.DecafCoreModule.bootPersistence(t)).map(e=>e.flavour),s=[e.DecafCoreModule.forRoot(t)];return r&&a.forEach(e=>{s.push(ce(e).forRoot(e,{autoServices:o}))}),t.observerOptions?.enableObserverEvents&&s.push(e.DecafStreamModule.forFlavours(a)),{module:Ae,imports:s}}},e.DecafModule=Ae=p.__decorate([o.Module({})],e.DecafModule);const Ee="##VERSION##",be="##PACKAGE##";t.Metadata.allowReregistration(!0),t.Metadata.registerLibrary(be,Ee),t.Metadata.allowReregistration(!1),e.AUTH_HANDLER=N,e.AUTH_META_KEY=j,e.ApiOperationFromModel=D,e.ApiParamsFromModel=w,e.ApiProperty=O,e.Auth=K,e.BulkApiOperationFromModel=(e,r,a)=>{const s={GET:[c.BulkCrudOperationKeys.READ_ALL,o.Get],POST:[c.BulkCrudOperationKeys.CREATE_ALL,o.Post],PUT:[c.BulkCrudOperationKeys.UPDATE_ALL,o.Put],PATCH:[c.BulkCrudOperationKeys.UPDATE_ALL,o.Patch],DELETE:[c.BulkCrudOperationKeys.DELETE_ALL,o.Delete]},[i,p]=s[r];return v(e,i)?t.apply(n.ApiExcludeEndpoint()):t.apply(p(a))},e.CorsError=pe,e.DECAF_ADAPTER_ID=q,e.DECAF_ADAPTER_OPTIONS=k,e.DECAF_CONTEXT_KEY=L,e.DECAF_HANDLERS=F,e.DECAF_MODULE_OPTIONS=I,e.DECAF_ROUTE=$,e.DECORATORS=_,e.DECORATORS_PREFIX=g,e.DecafAuthHandler=B,e.DecafBody=T,e.DecafController=X,e.DecafModelController=J,e.DecafParams=S,e.DecafQuery=x,e.DecafRoleAuthHandler=class extends B{constructor(){super()}async authorize(e,r){const o=e.switchToHttp().getRequest(),i=this.parseRequest(o);if(!i)throw new s.AuthorizationError("Unauthenticated");const n=t.Metadata.get(a.Model.get(r),s.PersistenceKeys.AUTH_ROLE);if(!n.includes(i))throw new s.AuthorizationError("Missing role: "+i);return n}},e.DtoFor=ee,e.FromModelController=ne,e.HttpVerbToDecorator=M,e.NestBootstraper=class{static get logger(){return this._logger||(this._logger=new o.Logger("NestBootstrap")),this._logger}static initialize(e){return this.app=e,this}static enableLogger(e){return this._logger=e||new o.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()),o={origin:(e,t)=>e?"*"===r||Array.isArray(r)&&r.includes(e.toLowerCase())?t(null,!0):void t(new pe(`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 ue(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=be,e.RequestToContextTransformer=class{},e.SwaggerBuilder=ue,e.UseDecafFilter=()=>o.UseFilters(new e.DecafExceptionFilter),e.UseDecafHeaders=()=>o.UseInterceptors(e.DecafResponseInterceptor),e.VERSION=Ee,e.createApiPropertyDecorator=R,e.createPropertyDecorator=P,e.getEnumType=b,e.getEnumValues=E,e.getModuleFor=ce,e.isOperationBlocked=v,e.isUndefined=A,e.repoForModel=e=>{const t=a.Model.get(e);if(!t)throw new c.InternalError("Failed to find repository for "+e);return s.Repository.forModel(t)},e.requestToContextTransformer=fe},"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("lodash"),require("@nestjs/swagger"),require("@decaf-ts/db-decorators"),require("tslib"),require("@nestjs/core"),require("@decaf-ts/logging"),require("rxjs"),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","lodash","@nestjs/swagger","@decaf-ts/db-decorators","tslib","@nestjs/core","@decaf-ts/logging","rxjs","fs","path"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self)["for-nest"]={},e.decafTsDecoration,e.decafTsInjectableDecorators,e.nestjsCommon,e.decafTsDecoratorValidation,e.decafTsCore,e.lodash,e.nestjsSwagger,e.decafTsDbDecorators,e.tslib,e.nestjsCore,e.decafTsLogging,e.rxjs,e.fs,e.path);
1
+ var e,t;e=this,t=function(e,t,r,o,a,s,i,n,c,p,d,l,u,h,m){"use strict";function f(e){var t=Object.create(null);return e&&Object.keys(e).forEach(r=>{if("default"!==r){var o=Object.getOwnPropertyDescriptor(e,r);Object.defineProperty(t,r,o.get?o:{enumerable:!0,get:()=>e[r]})}}),t.default=e,Object.freeze(t)}var y=f(m);const g="swagger",_={API_OPERATION:g+"/apiOperation",API_RESPONSE:g+"/apiResponse",API_PRODUCES:g+"/apiProduces",API_CONSUMES:g+"/apiConsumes",API_TAGS:g+"/apiUseTags",API_CALLBACKS:g+"/apiCallbacks",API_PARAMETERS:g+"/apiParameters",API_HEADERS:g+"/apiHeaders",API_MODEL_PROPERTIES:g+"/apiModelProperties",API_MODEL_PROPERTIES_ARRAY:g+"/apiModelPropertiesArray",API_SECURITY:g+"/apiSecurity",API_EXCLUDE_ENDPOINT:g+"/apiExcludeEndpoint",API_EXCLUDE_CONTROLLER:g+"/apiExcludeController",API_EXTRA_MODELS:g+"/apiExtraModels",API_EXTENSION:g+"/apiExtension",API_SCHEMA:g+"/apiSchema",API_DEFAULT_GETTER:g+"/apiDefaultGetter",API_LINK:g+"/apiLink"},A=e=>void 0===e;function E(e){if("function"==typeof e)return E(e());if(Array.isArray(e))return e;if("object"!=typeof e)return[];const t=Object.values(e).filter(e=>"number"==typeof e).map(e=>e.toString());return Object.keys(e).filter(e=>!t.includes(e)).map(t=>e[t])}function b(e){return e.filter(i.isString).length>0?"string":"number"}function P(e,t,r=!0){return(o,a)=>{const s=Reflect.getMetadata(_.API_MODEL_PROPERTIES_ARRAY,o)||[],n=":"+a;s.includes(n)||Reflect.defineMetadata(_.API_MODEL_PROPERTIES_ARRAY,[...s,":"+a],o);const c=Reflect.getMetadata(e,o,a);if(c){const s=i.pickBy(t,i.negate(A)),n=r?{...c,...s}:{...s,...c};Reflect.defineMetadata(e,n,o,a)}else{const r=o?.constructor?._OPENAPI_METADATA_FACTORY?.()[a]?.type??Reflect.getMetadata("design:type",o,a);Reflect.defineMetadata(e,{type:r,required:!1,...i.pickBy(t,i.negate(A))},o,a)}}}function O(e={}){return R(e)}function R(e={},t=!0){const[r,o]=((e,t)=>{if(!e)return[e,t];if(t)return[e,t];const r=i.isArray(e);return[r?e[0]:e,r]})(e.type,e.isArray);if((a=e={...e,type:r,isArray:o}).isArray&&"enum"in a&&void 0!==a.enum){e.type="array";const t=E(e.enum);e.items={type:b(t),enum:t},delete e.enum}else if("enum"in e&&void 0!==e.enum){const t=E(e.enum);e.enum=t,e.type=b(t)}var a;return Array.isArray(e.type)&&(e.type="array",e.items={type:"array",items:{type:e.type[0]}}),P(_.API_MODEL_PROPERTIES,e,t)}function v(e,r){const{handler:o,args:a}=t.Metadata.get(e,c.OperationKeys.REFLECT+c.OperationKeys.BLOCK)||{};return!!o&&(o(...a,r)??!1)}function w(e,r,a){const s={GET:[c.OperationKeys.READ,o.Get],POST:[c.OperationKeys.CREATE,o.Post],PUT:[c.OperationKeys.UPDATE,o.Put],PATCH:[c.OperationKeys.UPDATE,o.Patch],DELETE:[c.OperationKeys.DELETE,o.Delete]},[i,p]=s[r];return v(e,i)?t.apply(n.ApiExcludeEndpoint()):t.apply(p(a))}function D(e=[]){const t=e.map(e=>n.ApiParam({name:e.name,description:e.description??"Path parameter: "+e.name,required:e.required??!0,type:e.type??String}));return o.applyDecorators(...t)}const T=o.createParamDecorator((e,t)=>{const r=t.switchToHttp().getRequest().body,a=t.getClass(),s=a.class;if(!s)throw new o.InternalServerErrorException(`ModelConstructor not found on controller ${a.name}. Ensure the controller was created via FromModelController.`);return r?Array.isArray(r)?r.map(e=>new s(e)):new s(r):r}),C=o.createParamDecorator((e,t)=>{const r=t.switchToHttp().getRequest(),o=r?.params??{},a=e??Object.keys(o),s=a.map(e=>o[e]);return{raw:o,valuesInOrder:s,keysInOrder:a}});function S(e=[]){const t=e.map(e=>e.name);return C(t)}const x=o.createParamDecorator((e,t)=>{const r={...t.switchToHttp().getRequest().query??{}};if(void 0!==r.limit){const e=Number(r.limit);Number.isNaN(e)||(r.limit=e)}if(void 0!==r.offset){const e=Number(r.offset);Number.isNaN(e)||(r.offset=e)}if(void 0!==r.bookmark){const e=Number(r.bookmark);r.bookmark=Number.isNaN(e)?r.bookmark:e}return r});function I(e){const t={GET:o.Get,POST:o.Post,PUT:o.Put,PATCH:o.Patch,DELETE:o.Delete}[e];if(!t)throw Error(`Unsupported HTTP verb "${e}". No NestJS decorator mapping was found.`);return t}const M="DecafModuleOptions",q="DecafAdapter",$="DecafRoute",F=Symbol("DecafHandlers"),k=Symbol("DecafAdapterForOptions"),N=Symbol("AUTH_HANDLER"),j="auth:meta",L=Symbol("decaf:context");function K(t){const r=t?"string"==typeof t?t:t.name:void 0,a=[n.ApiBearerAuth(),o.UseInterceptors(e.AuthInterceptor)];return r&&a.push(o.SetMetadata(j,r)),o.applyDecorators(...a)}e.AuthInterceptor=class{constructor(e,t){this.reflector=e,this.authHandler=t}async intercept(e,t){const r=l.Logging.for(this).for(this.intercept),o=this.reflector.get(j,e.getHandler())??this.reflector.get(j,e.getClass());return r.verbose("Intercepted request"+(o?" for "+o:"")),this.authHandler?await this.authHandler.authorize(e,o):r.debug("No auth handler/model"),t.handle()}},e.AuthInterceptor=p.__decorate([o.Injectable(),p.__param(1,o.Optional()),p.__param(1,o.Inject(N)),p.__metadata("design:paramtypes",[d.Reflector,Object])],e.AuthInterceptor);class B{parseRequest(e){const t=e.headers.authorization?.split(" ")[1];return t}async authorize(e,r){const o=e.switchToHttp().getRequest(),i=this.parseRequest(o);if(!i)throw new s.AuthorizationError("Unauthenticated");if(!t.Metadata.get(a.Model.get(r),s.PersistenceKeys.AUTH_ROLE).includes(i))throw new s.AuthorizationError("Missing role: "+i)}}var U;e.DecafRequestContext=class{constructor(e){this.req=e,this.uuid=s.UUID.instance.generate()}get request(){return this.req}put(e){let t;try{t=this.ctx.get("overrides")}catch(e){t={}}this._ctx=this.ctx.accumulate({overrides:Object.assign(t,e)})}applyCtx(e){if(this._ctx)throw new c.InternalError("Trying to overwrite context");this._ctx=e}get ctx(){if(!this._ctx)throw new c.InternalError("Context not initialized for request");return this._ctx}},e.DecafRequestContext=p.__decorate([o.Injectable({scope:o.Scope.REQUEST}),p.__param(0,o.Inject(d.REQUEST)),p.__metadata("design:paramtypes",[Request])],e.DecafRequestContext),e.DecafHandlerExecutor=U=class{constructor(e,t){this.handlers=e,this.context=t}async exec(e,t){l.Logging.for(U.name).for(this.exec).debug(`CONTEXT ${this.context.uuid} running ${this.handlers.length} handlers for request ${e.method} ${e.url}`);for(const r of this.handlers)await r.handle(this.context,e,t)}},e.DecafHandlerExecutor=U=p.__decorate([o.Injectable({scope:o.Scope.REQUEST}),p.__param(0,o.Inject(F)),p.__metadata("design:paramtypes",[Array,e.DecafRequestContext])],e.DecafHandlerExecutor),e.DecafResponseInterceptor=class{constructor(e){this.ctx=e}intercept(e,t){let r=e.switchToHttp().getResponse();return t.handle().pipe(u.tap(e=>{r=this.ctx.ctx.toResponse(r)}))}},e.DecafResponseInterceptor=p.__decorate([o.Injectable(),p.__metadata("design:paramtypes",[e.DecafRequestContext])],e.DecafResponseInterceptor);const H=e=>({name:e,description:e+" parameter for the query",required:!0,type:String});function G(e,t,r,a=!1){const i=I(r),c=(e=>e.split("/").filter(e=>e.startsWith(":")).map(e=>e.slice(1)))(t).map(H),p=[];return"GET"===r&&a&&p.push(n.ApiQuery({name:"direction",required:!1,enum:s.OrderDirection,description:"the sort order when applicable"}),n.ApiQuery({name:"limit",required:!1,description:"limit or page size when applicable"}),n.ApiQuery({name:"offset",required:!1,description:"offset or bookmark when applicable"})),{method:[i(t),...c.map(n.ApiParam),...p,n.ApiOperation({summary:`Retrieve records using according to "${e}".`}),n.ApiOkResponse({description:"Result successfully retrieved."}),n.ApiNoContentResponse({description:"No content returned by the method."})],params:[S(c),o.Query()]}}function Q(e,t,r,o){const a=e?.prototype??e;o.method.forEach(e=>e(a,t,r)),o.params?.forEach((e,r)=>e(a,t,r))}function z(e,t,...r){if(e instanceof s.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}`)}function V(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:a,limit:s,offset:i}=r;return await z(this.persistence(),e,...t.valuesInOrder,a,s,i)}catch(t){throw o.error(`Custom query "${e}" failed`,t),t}}}function Y(e,t,r){return Object.defineProperty(e.prototype||e,t,{value:r,writable:!1}),Object.getOwnPropertyDescriptor(e.prototype||e,t)}class X extends s.Service{constructor(e,t){super(t),this.clientContext=e}logCtx(e,t,r=!1,o){const a=this.clientContext.ctx;let i;e=e.filter(e=>void 0!==e),o&&(o.headers||o.ip)&&(i=o,o={});const n=s.ContextualLoggedClass.logCtx.call(this,t,o||{},r,...e,a);return this.bindLoggerToRequest(n,i)}bindLoggerToRequest(e,t){const r=this;function o(e,t){return e.log=((e,t)=>{const o=(e=>{if(!e)return;const t=e.headers,r=W(t?.["x-forwarded-for"])??W(t?.["x-real-ip"])??W(t?.["X-Forwarded-For"])??W(t?.["X-Real-IP"]);if(r)return r;if("string"==typeof e.ip&&e.ip.length)return e.ip;const o=e.socket||e.connection;return o&&"string"==typeof o.remoteAddress&&o.remoteAddress.length?o.remoteAddress:void 0})(t??r.clientContext.request);if(!o)return e;const a={ip:o};return e.for(a)})(e.log,t),e}return(e=>"object"==typeof e&&null!==e&&"function"==typeof e.then)(e)?e.then(e=>o(e,t)):o(e,t)}}class J extends X{persistence(e){if(!this._persistence)try{this._persistence=s.Service.get(this.class)}catch(e){try{this._persistence=s.ModelService.getService(this.class)}catch(e){this._persistence=s.Repository.forModel(this.class)}}const t=this.clientContext.request[k]||{};return e&&this.clientContext.put(t),e?this._persistence instanceof s.Repository?this._persistence.override(t):this._persistence.for(t):this._persistence}constructor(e,t){super(e,t)}logCtx(e,t,r=!1,o){const a=this.clientContext.ctx;let i;o&&(o.headers||o.ip)&&(i=o,o={});try{o=a.get("overrides")}catch(e){}const n=this.persistence(a);let c,p;return n instanceof s.ModelService?c=n.repo._adapter:n instanceof s.Repository?c=n._adapter:n.context&&(c=n),r?c.logCtx(e,t,!0,o).then(e=>this.bindLoggerToRequest(e,i)):(p=c.logCtx(e,t,!1,o),this.bindLoggerToRequest(p,i))}}function W(e){if(e)return(Array.isArray(e)?e[0]:e).split(",").map(e=>e.trim()).filter(Boolean)[0]}const Z=new Map;function ee(e,r){if(!s.TransactionOperationKeys.includes(e))return r;const o=(e=>(Z.has(e)||Z.set(e,new WeakMap),Z.get(e)))(e),i=o.get(r);if(i)return i;const n=[c.OperationKeys.UPDATE,c.BulkCrudOperationKeys.UPDATE_ALL].includes(e);class p{}o.set(r,p),Object.defineProperty(p,"name",{value:`${l.toPascalCase(r.name)}${l.toPascalCase(e)}DTO`});const d=(()=>{try{return a.Model.pk(r)}catch{return}})(),u=d?a.Model.pkProps(r):void 0,h=d?Reflect.getMetadata("design:type",r.prototype,d):void 0,m=h===Number||h===BigInt,f=!!u?.generated||!!d&&(a.Model.generatedBySequence(r,d)||oe(r,d)||m),y=Array.from(new Set(t.Metadata.properties(r)||[])),g=new Set(a.Model.relations(r)||[]),_=[];for(const e of y)e&&(g.has(e)||e===d&&!n&&f||e!==d&&oe(r,e)||_.push(e));for(const e of _){const t=ae(r,e),o=!!t?.[a.ValidationKeys.REQUIRED],s=se(r,e)??Reflect.getMetadata("design:type",r.prototype,e),i={required:o};s&&(i.type=s),O(i)(p.prototype,e);const n=Reflect.getMetadata("design:type",r.prototype,e)??s;void 0!==n&&Reflect.defineMetadata("design:type",n,p.prototype,e),Object.defineProperty(p.prototype,e,{value:void 0,writable:!0,enumerable:!0,configurable:!0})}for(const o of g){const s=t.Metadata.relations(r,o);if(!s)throw new c.InternalError(`Metadata for relation ${o} not found`);let i=s.class;if("function"!=typeof i||i.name||(i=i()),!i||"function"!=typeof i)throw new c.InternalError(`Type for relation ${o} not found`);if(!a.Model.get(i.name))continue;const d=t.Metadata.validationFor(r,o),l=!!d?.[a.ValidationKeys.LIST],u=!!d?.[a.ValidationKeys.REQUIRED],h=ee(e,i);n?re(p,o,i,h,l,u):te(p,o,h,l,u)}return p}function te(e,t,r,o,a){O({type:r,required:a,isArray:o})(e.prototype,t),Reflect.defineMetadata("design:type",o?Array:r,e.prototype,t),Object.defineProperty(e.prototype,t,{value:void 0,writable:!0,enumerable:!0,configurable:!0})}function re(e,t,r,o,s,i){const n=Reflect.getMetadata(_.API_EXTRA_MODELS,e)||[];n.includes(o)||Reflect.defineMetadata(_.API_EXTRA_MODELS,[...n,o],e);const c="#/components/schemas/"+o.name,p=(e=>{try{const t=a.Model.pkProps(e),r=t?.type;return r===Number||r===BigInt?"integer":"string"}catch{return"string"}})(r),d=[{$ref:c},{type:p}];O(s?{type:"array",required:i,oneOf:d}:{type:Object,required:i,oneOf:d})(e.prototype,t),Reflect.defineMetadata("design:type",s?Array:Object,e.prototype,t),Object.defineProperty(e.prototype,t,{value:void 0,writable:!0,enumerable:!0,configurable:!0})}function oe(e,t){let r=e;for(;r&&r!==Object&&r!==Function;){if(a.Model.generated(r,t))return!0;r=Object.getPrototypeOf(r)}return!1}function ae(e,r){let o=e;for(;o&&o!==Object&&o!==Function;){const e=t.Metadata.validationFor(o,r);if(e)return e;o=Object.getPrototypeOf(o)}}function se(e,r){let o=e;for(;o&&o!==Object&&o!==Function;){const e=t.Metadata.type(o,r);if(e)return e;o=Object.getPrototypeOf(o)}}s.Adapter.transformerFor=(e=>{const r="string"==typeof e?e:e.alias;return t.Metadata.innerGet(Symbol.for("transformers"),r)}).bind(s.Adapter),s.Adapter.flavoursToTransform=(()=>{const e=t.Metadata.innerGet(Symbol.for("transformers"));if(e)return Object.keys(e)}).bind(s.Adapter),s.Context.prototype.toResponse=function(e){const t=this.pending();return t&&e.header("x-pending-task",JSON.stringify(t)),e};const ie=a.ModelBuilder.prototype;if(ie.decorateClass||(ie.decorateClass=function(e){return this._classDecorators||(this._classDecorators=[]),this._classDecorators.push(e),this}),ie.Auth=function(e){return this.decorateClass(K(e))},!ie.__hasClassDecoratorSupport){const e=ie.build;ie.build=function(){let t=e.call(this);const r=this._classDecorators;if(r?.length)for(const e of r){const r=e(t);r&&(t=r)}return t},ie.__hasClassDecoratorSupport=!0}class ne{static{this.log=l.Logging.for(ne.name)}static getPersistence(e){try{return s.Service.get(e)}catch(t){try{return s.ModelService.getService(e)}catch(t){return s.Repository.forModel(e)}}}static createQueryRoutesFromRepository(e,r=s.PersistenceKeys.QUERY){const o=ne.log.for(ne.createQueryRoutesFromRepository),a=e instanceof s.ModelService?e.repo:e,i=a.class,n=t.Metadata.get(a.constructor,t.Metadata.key(s.PersistenceKeys.QUERY))??{},c=t.Metadata.get(e.constructor,t.Metadata.key($))??{};class p extends J{get class(){throw Error("Method not implemented.")}constructor(e,t){super(e,t)}}for(const[e,t]of Object.entries(c)){const r=[t.path.replace(/^\/+|\/+$/g,"")].filter(e=>e&&e.trim()).join("/"),a=V(e);if(!a){const t=`Invalid or missing handler for model ${i.name} on decorated method ${e}`;throw o.error(t),Error(t)}const s=Y(p,e,a);s&&Q(p,e,s,G(e,r,t.httpMethod))}for(const[e,t]of Object.entries(n)){const o=[r,e,...(t.fields??[]).map(e=>":"+e)].filter(e=>e&&e.trim()).join("/"),a=Y(p,e,V(e));a&&Q(p,e,a,G(e,o,"GET",!0))}return p}static create(t){const r=ne.log.for(ne.create),i=a.Model.tableName(t),d=l.toKebabCase(i),u=t.name,h=ne.getPersistence(t),{description:m,getPK:f,apiProperties:y,path:g}=ne.getRouteParametersFromModel(t);r.debug("Creating controller for model: "+u);const _=ne.createQueryRoutesFromRepository(h);let A=class extends _{static get class(){return t}get class(){return t}constructor(e){super(e),this.pk=a.Model.pk(t),r.info(`Registering dynamic controller for model: ${this.class.name} route: /${d}`)}async listBy(e,t){const{ctx:r}=(await this.logCtx([],s.PreparedStatementKeys.LIST_BY,!0)).for(this.listBy);return this.persistence(r).listBy(e,t.direction,r)}async paginateBy(e,t){const{ctx:r}=(await this.logCtx([],s.PreparedStatementKeys.PAGE_BY,!0)).for(this.paginateBy);return this.persistence(r).paginateBy(e,t.direction,t,r)}async find(e,t){const{ctx:r}=(await this.logCtx([],s.PreparedStatementKeys.FIND,!0)).for(this.find),o=t.direction??s.OrderDirection.ASC;return z(this.persistence(r),this.find.name,e,o,r)}async page(e,t){const{ctx:r}=(await this.logCtx([],s.PreparedStatementKeys.PAGE,!0)).for(this.page),{direction:o=s.OrderDirection.ASC,limit:a,offset:i,bookmark:n}=t,c={offset:i??1,limit:a??10,bookmark:n};return z(this.persistence(r),this.page.name,e,o,c,r)}async findOneBy(e,t){const{ctx:r}=(await this.logCtx([],s.PreparedStatementKeys.FIND_ONE_BY,!0)).for(this.findOneBy);return this.persistence(r).findOneBy(e,t,r)}async findBy(e,t,r){const{ctx:o}=(await this.logCtx([],s.PreparedStatementKeys.FIND_BY,!0)).for(this.findBy);return this.persistence(o).for(o.toOverrides()).findBy(e,t,o)}async statement(e,t,r){const{ctx:o}=(await this.logCtx([],s.PersistenceKeys.STATEMENT,!0)).for(this.statement),{direction:a,offset:i,limit:n,bookmark:c}=r,p=(t=t.map(e=>("string"==typeof e?parseInt(e):e)||e)).length>1?t[1]:void 0,d=a??p;switch(d&&t.length>1&&(t[1]=d),e){case s.PreparedStatementKeys.FIND:case s.PreparedStatementKeys.FIND_BY:break;case s.PreparedStatementKeys.LIST_BY:t.push(a);break;case s.PreparedStatementKeys.PAGE:case s.PreparedStatementKeys.PAGE_BY:t=[t[0],d,{limit:n,offset:i,bookmark:c}];case s.PreparedStatementKeys.FIND_ONE_BY:case s.PreparedStatementKeys.COUNT_OF:case s.PreparedStatementKeys.MAX_OF:case s.PreparedStatementKeys.MIN_OF:case s.PreparedStatementKeys.AVG_OF:case s.PreparedStatementKeys.SUM_OF:case s.PreparedStatementKeys.DISTINCT_OF:case s.PreparedStatementKeys.GROUP_OF:}return this.persistence(o).statement(e,...t,o)}async createAll(e,r){const{ctx:o,log:a}=(await this.logCtx([],c.BulkCrudOperationKeys.CREATE_ALL,!0)).for(this.createAll);let s;a.verbose("creating new "+u);try{s=await this.persistence(o).createAll(e.map(e=>new t(e)),o)}catch(e){throw a.error("Failed to create new "+u,e),e}return a.info(`created new ${u} with id ${s[this.pk]}`),o.toResponse(r),s}async create(e,t){const{ctx:r,log:o}=(await this.logCtx([],c.OperationKeys.CREATE,!0)).for(this.create);let a;o.verbose("creating new "+u);try{const t=this.persistence(r);a=await t.create(e,r)}catch(e){throw o.error("Failed to create new "+u,e),e}return o.info(`created new ${u} with id ${a[this.pk]}`),r.toResponse(t),a}async readAll(e){const{ctx:t,log:r}=(await this.logCtx([],c.BulkCrudOperationKeys.READ_ALL,!0)).for(this.readAll);let o;try{r.debug(`reading ${e.length} ${u}: ${e}`);const a=this.persistence(t);o=await a.readAll(e,t)}catch(t){throw r.error(`Failed to ${u} with id ${e}`,t),t}return r.info(`read ${o.length} ${u}`),o}async read(e){const{ctx:t,log:r}=(await this.logCtx([],c.OperationKeys.READ,!0)).for(this.read),o=f(...e.valuesInOrder);if(void 0===o)throw new c.ValidationError(`No ${this.pk} provided`);let a;try{r.debug(`reading ${u} with ${this.pk} ${o}`);const e=this.persistence(t);a=await e.read(o,t)}catch(e){throw r.error(`Failed to read ${u} with id ${o}`,e),e}return r.info(`read ${u} with id ${a[this.pk]}`),a}async updateAll(e,t){const{ctx:r,log:o}=(await this.logCtx([],c.BulkCrudOperationKeys.UPDATE_ALL,!0)).for(this.updateAll);let a;try{o.info(`updating ${e.length} ${u}`),a=await this.persistence(r).updateAll(e,r)}catch(e){throw o.error(e),e}return r.toResponse(t),a}async update(e,r,o){const{ctx:a,log:s}=(await this.logCtx([],c.OperationKeys.UPDATE,!0)).for(this.update),i=f(...e.valuesInOrder);if(void 0===i)throw new c.ValidationError(`No ${this.pk} provided`);let n;try{s.info(`updating ${u} with ${this.pk} ${i}`);const e=JSON.parse(JSON.stringify(r)),o=this.persistence(a);n=await o.update(new t({...e,[this.pk]:i}),a)}catch(e){throw s.error(e),e}return a.toResponse(o),n}async deleteAll(e,t){const{ctx:r,log:o}=(await this.logCtx([],c.BulkCrudOperationKeys.DELETE_ALL,!0)).for(this.deleteAll);let a;try{o.debug(`deleting ${e.length} ${u}: ${e}`),a=await this.persistence(r).deleteAll(e,r)}catch(t){throw o.error(`Failed to delete ${u} with id ${e}`,t),t}return o.info(`deleted ${a.length} ${u}`),r.toResponse(t),a}async delete(e,t){const{ctx:r,log:o}=(await this.logCtx([],c.OperationKeys.DELETE,!0)).for(this.delete),a=f(...e.valuesInOrder);if(void 0===a)throw new c.ValidationError(`No ${this.pk} provided`);let s;try{o.debug(`deleting ${u} with ${this.pk} ${a}`),s=await this.persistence(r).delete(a,r)}catch(e){throw o.error(`Failed to delete ${u} with id ${a}`,e),e}return o.info(`deleted ${u} with id ${a}`),r.toResponse(t),s}};return p.__decorate([w(t,"GET","listBy/:key"),n.ApiOperation({summary:`Retrieve ${u} records by query.`}),n.ApiParam({name:"key",description:"the model key to sort by"}),n.ApiQuery({name:"direction",required:!0,enum:s.OrderDirection}),n.ApiOkResponse({description:u+" listed successfully."}),p.__param(0,o.Param("key")),p.__param(1,x()),p.__metadata("design:type",Function),p.__metadata("design:paramtypes",[String,Object]),p.__metadata("design:returntype",Promise)],A.prototype,"listBy",null),p.__decorate([w(t,"GET","paginateBy/:key/:page"),n.ApiOperation({summary:`Retrieve ${u} records by query.`}),n.ApiParam({name:"key",description:"the model key to sort by"}),n.ApiParam({name:"page",description:"the page to retrieve or the bookmark"}),n.ApiQuery({name:"direction",required:!0,enum:s.OrderDirection,description:"the sort order"}),n.ApiQuery({name:"limit",required:!0,description:"the page size"}),n.ApiQuery({name:"offset",description:"the bookmark when necessary"}),n.ApiOkResponse({description:u+" listed paginated."}),p.__param(0,o.Param("key")),p.__param(1,x()),p.__metadata("design:type",Function),p.__metadata("design:paramtypes",[String,Object]),p.__metadata("design:returntype",Promise)],A.prototype,"paginateBy",null),p.__decorate([w(t,"GET","find/:value"),n.ApiOperation({summary:`Find ${u} records using the default query attributes.`}),n.ApiParam({name:"value",description:"The string to match against the default query attributes"}),n.ApiQuery({name:"direction",required:!1,enum:s.OrderDirection,description:"the sort order for the matching results"}),n.ApiOkResponse({description:u+" records matching the provided prefix."}),p.__param(0,o.Param("value")),p.__param(1,x()),p.__metadata("design:type",Function),p.__metadata("design:paramtypes",[String,Object]),p.__metadata("design:returntype",Promise)],A.prototype,"find",null),p.__decorate([w(t,"GET","page/:value"),n.ApiOperation({summary:`Page ${u} records using the default query attributes.`}),n.ApiParam({name:"value",description:"The string to match against the default query attributes"}),n.ApiQuery({name:"direction",required:!1,enum:s.OrderDirection,description:"the sort order for the paged results"}),n.ApiQuery({name:"limit",required:!1,description:"page size"}),n.ApiQuery({name:"offset",required:!1,description:"page number"}),n.ApiQuery({name:"bookmark",required:!1,description:"bookmark for cursor pagination"}),n.ApiOkResponse({description:u+" records paged by the provided prefix."}),p.__param(0,o.Param("value")),p.__param(1,x()),p.__metadata("design:type",Function),p.__metadata("design:paramtypes",[String,Object]),p.__metadata("design:returntype",Promise)],A.prototype,"page",null),p.__decorate([w(t,"GET","findOneBy/:key"),n.ApiOperation({summary:`Retrieve ${u} records by query.`}),n.ApiParam({name:"key",description:"the model key to sort by"}),n.ApiOkResponse({description:u+" listed found."}),n.ApiNotFoundResponse({description:`No ${u} record matches the provided identifier.`}),p.__param(0,o.Param("key")),p.__param(1,o.Param("value")),p.__metadata("design:type",Function),p.__metadata("design:paramtypes",[String,Object]),p.__metadata("design:returntype",Promise)],A.prototype,"findOneBy",null),p.__decorate([w(t,"GET","findBy/:key/:value"),n.ApiOperation({summary:`Retrieve ${u} records by query.`}),n.ApiParam({name:"key",description:"the model key to compare"}),n.ApiParam({name:"value",description:"the value to match"}),n.ApiQuery({name:"direction",required:!0,enum:s.OrderDirection,description:"the sort order when applicable"}),n.ApiOkResponse({description:u+" listed found."}),n.ApiNotFoundResponse({description:`No ${u} record matches the provided identifier.`}),p.__param(0,o.Param("key")),p.__param(1,o.Param("value")),p.__param(2,x()),p.__metadata("design:type",Function),p.__metadata("design:paramtypes",[String,Object,Object]),p.__metadata("design:returntype",Promise)],A.prototype,"findBy",null),p.__decorate([w(t,"GET","statement/:method/*args"),n.ApiOperation({summary:`Executes a prepared statement on ${u}.`}),n.ApiParam({name:"method",description:"the prepared statement to execute"}),n.ApiParam({name:"args",description:"concatenated list of arguments the prepared statement can accept"}),n.ApiQuery({name:"direction",required:!0,enum:s.OrderDirection,description:"the sort order when applicable"}),n.ApiQuery({name:"limit",required:!0,description:"limit or page size when applicable"}),n.ApiQuery({name:"offset",required:!0,description:"offset or bookmark when applicable"}),n.ApiOkResponse({description:u+" listed found."}),n.ApiNotFoundResponse({description:`No ${u} record matches the provided identifier.`}),p.__param(0,o.Param("method")),p.__param(1,o.Param("args")),p.__param(2,x()),p.__metadata("design:type",Function),p.__metadata("design:paramtypes",[String,Array,Object]),p.__metadata("design:returntype",Promise)],A.prototype,"statement",null),p.__decorate([w(t,"POST","bulk"),n.ApiOperation({summary:`Create a new ${u}.`}),n.ApiBody({description:"Payload for "+u,schema:{type:"array",items:{$ref:n.getSchemaPath(t)}}}),n.ApiCreatedResponse({description:u+" created successfully.",schema:{type:"array",items:{$ref:n.getSchemaPath(t)}}}),n.ApiBadRequestResponse({description:"Payload validation failed."}),n.ApiUnprocessableEntityResponse({description:"Repository rejected the provided payload."}),p.__param(0,T()),p.__param(1,o.Response({passthrough:!0})),p.__metadata("design:type",Function),p.__metadata("design:paramtypes",[Array,Object]),p.__metadata("design:returntype",Promise)],A.prototype,"createAll",null),p.__decorate([w(t,"POST"),n.ApiOperation({summary:`Create a new ${u}.`}),n.ApiBody({description:"Payload for "+u,type:ee(c.OperationKeys.CREATE,t)}),n.ApiCreatedResponse({description:u+" created successfully.",schema:{$ref:n.getSchemaPath(t)}}),n.ApiBadRequestResponse({description:"Payload validation failed."}),n.ApiUnprocessableEntityResponse({description:"Repository rejected the provided payload."}),p.__param(0,T()),p.__param(1,o.Response({passthrough:!0})),p.__metadata("design:type",Function),p.__metadata("design:paramtypes",[Object,Object]),p.__metadata("design:returntype",Promise)],A.prototype,"create",null),p.__decorate([w(t,"GET","bulk"),n.ApiOperation({summary:`Retrieve a ${u} record by id.`}),n.ApiQuery({name:"ids",required:!0,type:"array"}),n.ApiOkResponse({description:u+" retrieved successfully.",schema:{type:"array",items:{$ref:n.getSchemaPath(t)}}}),n.ApiNotFoundResponse({description:`No ${u} record matches the provided identifier.`}),p.__param(0,o.Query("ids")),p.__metadata("design:type",Function),p.__metadata("design:paramtypes",[Array]),p.__metadata("design:returntype",Promise)],A.prototype,"readAll",null),p.__decorate([w(t,"GET",g),D(y),n.ApiOperation({summary:`Retrieve a ${u} record by id.`}),n.ApiOkResponse({description:u+" retrieved successfully.",schema:{$ref:n.getSchemaPath(t)}}),n.ApiNotFoundResponse({description:`No ${u} record matches the provided identifier.`}),p.__param(0,S(y)),p.__metadata("design:type",Function),p.__metadata("design:paramtypes",[Object]),p.__metadata("design:returntype",Promise)],A.prototype,"read",null),p.__decorate([w(t,"PUT","bulk"),D(y),n.ApiOperation({summary:`Replace an existing ${u} record with a new payload.`}),n.ApiBody({description:"Payload for replace a existing record of "+u,schema:{type:"array",$ref:n.getSchemaPath(ee(c.OperationKeys.UPDATE,t))}}),n.ApiOkResponse({description:u+" updated successfully.",schema:{type:"array",items:{$ref:n.getSchemaPath(t)}}}),n.ApiNotFoundResponse({description:`No ${u} record matches the provided identifier.`}),n.ApiBadRequestResponse({description:"Payload validation failed."}),p.__param(0,T()),p.__param(1,o.Response({passthrough:!0})),p.__metadata("design:type",Function),p.__metadata("design:paramtypes",[Array,Object]),p.__metadata("design:returntype",Promise)],A.prototype,"updateAll",null),p.__decorate([w(t,"PUT",g),D(y),n.ApiOperation({summary:`Replace an existing ${u} record with a new payload.`}),n.ApiBody({description:"Payload for replace a existing record of "+u,type:ee(c.OperationKeys.UPDATE,t)}),n.ApiOkResponse({description:u+" updated successfully.",schema:{$ref:n.getSchemaPath(t)}}),n.ApiNotFoundResponse({description:`No ${u} record matches the provided identifier.`}),n.ApiBadRequestResponse({description:"Payload validation failed."}),p.__param(0,S(y)),p.__param(1,T()),p.__param(2,o.Response({passthrough:!0})),p.__metadata("design:type",Function),p.__metadata("design:paramtypes",[Object,Object,Object]),p.__metadata("design:returntype",Promise)],A.prototype,"update",null),p.__decorate([w(t,"DELETE","bulk"),D(y),n.ApiOperation({summary:`Retrieve a ${u} record by id.`}),n.ApiQuery({name:"ids",required:!0,type:"array"}),n.ApiOkResponse({description:u+" deleted successfully.",schema:{type:"array",items:{$ref:n.getSchemaPath(t)}}}),n.ApiNotFoundResponse({description:`No ${u} record matches the provided identifier.`}),p.__param(0,o.Query("ids")),p.__param(1,o.Response({passthrough:!0})),p.__metadata("design:type",Function),p.__metadata("design:paramtypes",[Array,Object]),p.__metadata("design:returntype",Promise)],A.prototype,"deleteAll",null),p.__decorate([w(t,"DELETE",g),D(y),n.ApiOperation({summary:`Delete a ${u} record by id.`}),n.ApiOkResponse({description:u+" deleted successfully.",schema:{$ref:n.getSchemaPath(t)}}),n.ApiNotFoundResponse({description:`No ${u} record matches the provided identifier.`}),p.__param(0,S(y)),p.__param(1,o.Response({passthrough:!0})),p.__metadata("design:type",Function),p.__metadata("design:paramtypes",[Object,Object]),p.__metadata("design:returntype",Promise)],A.prototype,"delete",null),A=p.__decorate([o.Controller(d),n.ApiTags(u),n.ApiExtraModels(t),K(t),p.__metadata("design:paramtypes",[e.DecafRequestContext])],A),A}static getRouteParametersFromModel(e){const r=a.Model.pk(e),o=t.Metadata.get(e,t.Metadata.key(c.DBKeys.COMPOSED,r)),s=o?.args??[],i=Array.isArray(s)&&s.length>0?Array.from(new Set([...s])):Array.from(new Set([r])),n=t.Metadata.description(e);return{path:":"+i.join("/:"),description:n,apiProperties:i.map(r=>({name:r,description:t.Metadata.description(e,r),required:!0,type:String})),getPK:(...e)=>o?.separator?e.join(o.separator):e.join("")}}}function ce(e){var t;let r=class{static{t=this}static{this.log=l.Logging.for(t.name).for(e)}static createModelServices(e){return e.map(e=>({provide:e.name+"Service",useFactory:()=>s.ModelService.forModel(e)}))}static forRoot(e,r={}){const o=this.log.for(this.forRoot);o.info("Generating controllers for flavour...");const a=s.Adapter.models(e);let i=[];r.autoServices&&(o.info("Auto-services enabled. Initializing service generation."),i=this.createModelServices(a),o.info(`Auto-services completed. ${i.length} services initialized.`));const n=a.map(ne.create);return o.info(`Generated ${n.length} controllers`),{module:t,controllers:n,providers:[...i]}}};return r=t=p.__decorate([o.Module({})],r),Object.assign(r,"name",{value:"DecafModule"+e}),r}t.Decoration.for(r.InjectablesKeys.INJECTABLE).extend({decorator:(e,t)=>(t=t||("object"==typeof e?Object.assign(e,r.DefaultInjectablesConfig):r.DefaultInjectablesConfig),o.Injectable({scope:t.singleton?o.Scope.DEFAULT:o.Scope.REQUEST,durable:!t.singleton||void 0}))}).apply(),t.Decoration.for(r.InjectablesKeys.INJECT).extend({decorator:(e,t)=>(t,r,a)=>o.Inject(e||t)(t,r,a)}).apply(),t.Decoration.for(a.ValidationKeys.REQUIRED).extend(O({required:!0})).apply(),t.Decoration.for(a.ValidationKeys.MAX).extend({decorator:e=>O({maximum:e,required:!1})}).apply(),t.Decoration.for(a.ValidationKeys.MIN).extend({decorator:e=>O({minimum:e,required:!1})}).apply(),t.Decoration.for(a.ValidationKeys.MAX_LENGTH).extend({decorator:e=>O({maxLength:e,required:!1})}).apply(),t.Decoration.for(a.ValidationKeys.MIN_LENGTH).extend({decorator:e=>O({minLength:e,required:!1})}).apply(),t.Decoration.for(a.ValidationKeys.TYPE).extend({decorator:e=>(t,r)=>("function"!=typeof(e=Array.isArray(e)?e[0]:e)||e.name||(e=e()),O({type:e,required:!1})(t,r))}).apply(),t.Decoration.for(a.ValidationKeys.DATE).extend({decorator:e=>O({type:String,format:"date-time",required:!1})}).apply(),t.Decoration.for(a.ValidationKeys.ENUM).extend({decorator:e=>O({enum:Array.isArray(e)?e:Object.values(e),required:!1})}).apply(),t.Decoration.for(a.ValidationKeys.PATTERN).extend({decorator:e=>O({pattern:"string"==typeof e?e:e.source,required:!1})}).apply(),t.Decoration.for(s.PersistenceKeys.COLUMN).extend({decorator:e=>O({name:e,required:!1})}).apply(),t.Decoration.for(t.DecorationKeys.DESCRIPTION).extend({decorator:e=>O({description:e,required:!1})}).apply(),t.Decoration.for(s.PersistenceKeys.AUTH).extend({decorator:K}).apply();class pe extends s.ForbiddenError{constructor(e){super(e,pe.name)}}e.DecafExceptionFilter=class{catch(e,t){const r=t.switchToHttp(),a=r.getResponse(),i=r.getRequest(),n="production"===l.LoggedEnvironment.env;let p;e instanceof o.NotFoundException||e instanceof s.UnsupportedError?p=(e=new o.NotAcceptableException(e.message)).getStatus():e instanceof c.BaseError||(e=new c.InternalError(e.message)),a.status(e.code||p).json({status:e.code||p,error:n?e.name:e.message,timestamp:(new Date).toISOString(),path:i.url,method:i.method})}},e.DecafExceptionFilter=p.__decorate([o.Catch()],e.DecafExceptionFilter);const de={path:"docs",auth:{type:"http",scheme:"bearer",bearerFormat:"JWT",name:"Authorization",description:"Enter JWT token",in:"header"},topbarBgColor:"#000000"};class le{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||de.topbarBgColor}; }\n `}getCustomOptions(){const e={};return this.options.faviconPath&&(e.customfavIcon=this.b64(this.options.faviconPath,!0)),{customSiteTitle:this.options.title,...e,customCss:this.customCSS(),swaggerOptions:{persistAuthorization:this.options.persistAuthorization},jsonDocumentUrl:this.options.path?this.options.path+"/spec.json":void 0,yamlDocumentUrl:this.options.path?this.options.path+"/spec.yaml":void 0}}b64(e,t=!1){const r=y.join(this.options.assetsPath||"",e),o=h.readFileSync(r,{encoding:"base64"});return t?"data:image/png;base64,"+o:o}}class ue{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 n.DocumentBuilder).setTitle(this.options.title).setDescription(e).setVersion(this.options.version||"0.0.1").addBearerAuth(this.options.auth||de.auth).build();return n.SwaggerModule.createDocument(this.app,t,{extraModels:this.options.extraModels||[]})}setupSwagger(){const e=this.createDocument(),t=new le({title:this.options.title,path:this.options.path||de.path,persistAuthorization:this.options.persistAuthorization??!0,assetsPath:this.options.assetsPath,faviconPath:this.options.faviconFilePath,topbarIconPath:this.options.topbarIconFilePath,topbarBgColor:this.options.topbarBgColor});n.SwaggerModule.setup(this.options.path||de.path,this.app,e,{...t.getCustomOptions()})}}var he,me;function fe(e){return r=>(t.Metadata.set("transformers",e,r),"function"==typeof r?t.metadata("transformers",e)(r):r)}e.DecafRequestHandlerInterceptor=he=class{constructor(e,t){this.requestContext=e,this.executor=t}async contextualize(e){const t={headers:e.headers,overrides:{}},r=s.Adapter.flavoursToTransform();if(r)for(const o of r)try{const r=s.Adapter.transformerFor(o),a=await r.from(e);Object.assign(t.overrides,a)}catch(e){throw new c.InternalError("Failed to contextualize request: "+e)}return(new s.Context).accumulate(Object.assign({},s.DefaultAdapterFlags,{logger:l.Logging.get(),timestamp:new Date},t))}async intercept(e,t){const r=e.switchToHttp().getRequest(),o=e.switchToHttp().getResponse(),a=l.Logging.for(he).for(this.intercept);a.debug(`CONTEXT ${this.requestContext.uuid} - request: ${r.method} ${r.url}`);const s=await this.contextualize(r);return a.debug(`CONTEXT ${this.requestContext.uuid} contextualized - request: ${r.method} ${r.url}`),this.requestContext.applyCtx(s),a.debug(`CONTEXT ${this.requestContext.uuid} applied - request: ${r.method} ${r.url}`),await this.executor.exec(r,o),a.debug(`CONTEXT ${this.requestContext.uuid} executors finished - request: ${r.method} ${r.url}`),t.handle()}},e.DecafRequestHandlerInterceptor=he=p.__decorate([o.Injectable({scope:o.Scope.REQUEST}),p.__metadata("design:paramtypes",[e.DecafRequestContext,e.DecafHandlerExecutor])],e.DecafRequestHandlerInterceptor),e.DecafCoreModule=class{static{me=this}static get persistence(){if(!this._persistence)throw new c.InternalError("Persistence service not initialized");return this._persistence}static get log(){return this._logger||(this._logger=l.Logging.for(me)),this._logger}constructor(e,t){this.options=e,this.moduleRef=t}static forRoot(t){const r=this.log.for(this.forRoot);return{module:me,providers:[{provide:M,useValue:t},{provide:q,useValue:this.persistence.client},{provide:F,useFactory:()=>t.handlers?.map(e=>(r.info("Registered request handler: "+e.name),new e))??[]},e.AuthInterceptor,{provide:d.APP_INTERCEPTOR,useExisting:e.AuthInterceptor},e.DecafRequestContext,e.DecafHandlerExecutor,{provide:d.APP_INTERCEPTOR,useClass:e.DecafRequestHandlerInterceptor}],exports:[M,q,F,e.DecafRequestContext,e.DecafHandlerExecutor]}}static async bootPersistence(e){const t=this.log.for(this.bootPersistence);if(!this._persistence){const r=e.conf.map(([e,t,...r])=>r.pop()?[e,t,...r]:[e,t]);this._persistence=new s.PersistenceService,await this._persistence.boot(r);const o=this._persistence.client;for(let t=0;t<o.length;t++){const r=e.conf[t];let a=r.slice(2,r.length).pop();if(!a||!a.from){const e=s.Adapter.transformerFor(o[t].flavour);if(!e)throw new c.InternalError(`No transformer found for flavour ${o[t].flavour}. you should either @requestToContextTransformer or provide a transformer in the config`);try{a=e.from?e:new e}catch(e){throw new c.InternalError("Failed to boot transformer for "+o[t].flavour)}}fe(o[t].flavour)(a)}if(t.info("persistence layer created successfully!"),e.initialization)try{await e.initialization()}catch(e){throw new c.InternalError("Failed to initialize application: "+e)}}return this.persistence.client}async onApplicationShutdown(){const e=me.log.for(this.onApplicationShutdown),t=this.moduleRef.get(q);for(const r of t)try{r&&(e.info("Shutting down "+r.toString()),await r.shutdown())}catch(t){e.error("Failed to shutdown application",t)}}},e.DecafCoreModule=me=p.__decorate([o.Global(),o.Module({}),p.__param(0,o.Inject(M)),p.__metadata("design:paramtypes",[Object,d.ModuleRef])],e.DecafCoreModule);const ye=Symbol("LISTENING_ADAPTERS_FLAVOURS");var ge,_e,Ae;e.EventsController=ge=class extends X{constructor(e,t){super(e,ge.name),this.adapters=t.map(e=>s.Adapter.get(e))}listen(){const e=l.Logging.for(ge.name);return new u.Observable(t=>{const r=new class{refresh(...e){return Promise.resolve().then(()=>{const r=(e=>{const[t,r,o,a]=e;return[t?.name??t,r,o,Array.isArray(a)?a.map(e=>e.serialize()):a?.serialize()]})(e);t.next({data:r})})}};try{for(const e of this.adapters)e.observe(r)}catch(e){t.error("Failed to observe event: "+(e.message||e))}return()=>{try{for(const e of this.adapters)e.unObserve(r)}catch(t){e.error(t)}}})}listenForModel(e){const t=l.Logging.for(ge.name);return new u.Observable(e=>{const r=new class{refresh(...t){return Promise.resolve().then(()=>{e.next({data:t})})}};try{for(const e of this.adapters)e.observe(r)}catch(t){e.error("Failed to observe event: "+(t.message||t))}return()=>{try{for(const e of this.adapters)e.unObserve(r)}catch(e){t.error(e)}}})}},p.__decorate([o.Sse(),p.__metadata("design:type",Function),p.__metadata("design:paramtypes",[]),p.__metadata("design:returntype",u.Observable)],e.EventsController.prototype,"listen",null),p.__decorate([o.Sse("/:model"),p.__param(0,o.Query("model")),p.__metadata("design:type",Function),p.__metadata("design:paramtypes",[String]),p.__metadata("design:returntype",u.Observable)],e.EventsController.prototype,"listenForModel",null),e.EventsController=ge=p.__decorate([o.Controller(),p.__param(1,o.Inject(ye)),p.__metadata("design:paramtypes",[e.DecafRequestContext,Array])],e.EventsController),e.DecafStreamModule=_e=class{static forFlavours(t,r="events"){return{module:_e,controllers:[e.EventsController],imports:[d.RouterModule.register([{path:r.replace(/^\//,""),module:_e}])],providers:[e.DecafRequestContext,{provide:ye,useValue:t??[]}]}}},e.DecafStreamModule=_e=p.__decorate([o.Module({})],e.DecafStreamModule),e.DecafModule=Ae=class{static async forRootAsync(t){const{autoControllers:r,autoServices:o}=t,a=(await e.DecafCoreModule.bootPersistence(t)).map(e=>e.flavour),s=[e.DecafCoreModule.forRoot(t)];return r&&a.forEach(e=>{s.push(ce(e).forRoot(e,{autoServices:o}))}),t.observerOptions?.enableObserverEvents&&s.push(e.DecafStreamModule.forFlavours(a)),{module:Ae,imports:s}}},e.DecafModule=Ae=p.__decorate([o.Module({})],e.DecafModule);const Ee="##VERSION##",be="##PACKAGE##";t.Metadata.allowReregistration(!0),t.Metadata.registerLibrary(be,Ee),t.Metadata.allowReregistration(!1),e.AUTH_HANDLER=N,e.AUTH_META_KEY=j,e.ApiOperationFromModel=w,e.ApiParamsFromModel=D,e.ApiProperty=O,e.Auth=K,e.BulkApiOperationFromModel=(e,r,a)=>{const s={GET:[c.BulkCrudOperationKeys.READ_ALL,o.Get],POST:[c.BulkCrudOperationKeys.CREATE_ALL,o.Post],PUT:[c.BulkCrudOperationKeys.UPDATE_ALL,o.Put],PATCH:[c.BulkCrudOperationKeys.UPDATE_ALL,o.Patch],DELETE:[c.BulkCrudOperationKeys.DELETE_ALL,o.Delete]},[i,p]=s[r];return v(e,i)?t.apply(n.ApiExcludeEndpoint()):t.apply(p(a))},e.CorsError=pe,e.DECAF_ADAPTER_ID=q,e.DECAF_ADAPTER_OPTIONS=k,e.DECAF_CONTEXT_KEY=L,e.DECAF_HANDLERS=F,e.DECAF_MODULE_OPTIONS=M,e.DECAF_ROUTE=$,e.DECORATORS=_,e.DECORATORS_PREFIX=g,e.DecafAuthHandler=B,e.DecafBody=T,e.DecafController=X,e.DecafModelController=J,e.DecafParams=S,e.DecafQuery=x,e.DecafRoleAuthHandler=class extends B{constructor(){super()}async authorize(e,r){const o=e.switchToHttp().getRequest(),i=this.parseRequest(o);if(!i)throw new s.AuthorizationError("Unauthenticated");const n=t.Metadata.get(a.Model.get(r),s.PersistenceKeys.AUTH_ROLE);if(!n.includes(i))throw new s.AuthorizationError("Missing role: "+i);return n}},e.DtoFor=ee,e.FromModelController=ne,e.HttpVerbToDecorator=I,e.NestBootstraper=class{static get logger(){return this._logger||(this._logger=new o.Logger("NestBootstrap")),this._logger}static initialize(e){return this.app=e,this}static enableLogger(e){return this._logger=e||new o.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()),o={origin:(e,t)=>e?"*"===r||Array.isArray(r)&&r.includes(e.toLowerCase())?t(null,!0):void t(new pe(`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 ue(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=be,e.RequestToContextTransformer=class{},e.SwaggerBuilder=ue,e.UseDecafFilter=()=>o.UseFilters(new e.DecafExceptionFilter),e.UseDecafHeaders=()=>o.UseInterceptors(e.DecafResponseInterceptor),e.VERSION=Ee,e.createApiPropertyDecorator=R,e.createPropertyDecorator=P,e.getEnumType=b,e.getEnumValues=E,e.getModuleFor=ce,e.isOperationBlocked=v,e.isUndefined=A,e.repoForModel=e=>{const t=a.Model.get(e);if(!t)throw new c.InternalError("Failed to find repository for "+e);return s.Repository.forModel(t)},e.requestToContextTransformer=fe},"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("lodash"),require("@nestjs/swagger"),require("@decaf-ts/db-decorators"),require("tslib"),require("@nestjs/core"),require("@decaf-ts/logging"),require("rxjs"),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","lodash","@nestjs/swagger","@decaf-ts/db-decorators","tslib","@nestjs/core","@decaf-ts/logging","rxjs","fs","path"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self)["for-nest"]={},e.decafTsDecoration,e.decafTsInjectableDecorators,e.nestjsCommon,e.decafTsDecoratorValidation,e.decafTsCore,e.lodash,e.nestjsSwagger,e.decafTsDbDecorators,e.tslib,e.nestjsCore,e.decafTsLogging,e.rxjs,e.fs,e.path);
2
2
  //# sourceMappingURL=for-nest.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"for-nest.cjs","sources":["../src/overrides/constants.ts","../src/overrides/decoration.ts","../src/overrides/helpers.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/constants.ts","../src/decaf-model/decorators/decorators.ts","../src/interceptors/AuthInterceptor.ts","../src/request/DecafAuthHandler.ts","../src/request/DecafRequestContext.ts","../src/request/DecafHandlerExecutor.ts","../src/request/DecafResponseInterceptor.ts","../src/decaf-model/utils.ts","../src/controllers.ts","../src/factory/openapi/DtoBuilder.ts","../src/overrides/overrides.ts","../src/overrides/ModelBuilderExtensions.ts","../src/decaf-model/FromModelController.ts","../src/decaf-model/DecafModelModule.ts","../src/decoration.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/interceptors/context.ts","../src/interceptors/DecafRequestHandlerInterceptor.ts","../src/core-module.ts","../src/events-module/constant.ts","../src/events-module/EventsController.ts","../src/events-module/utils.ts","../src/events-module/DecafStreamModule.ts","../src/module.ts","../src/index.ts","../src/factory/NestBootstraper.ts","../src/factory/exceptions/decorators.ts","../src/utils.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null],"names":["DECORATORS_PREFIX","DECORATORS","API_OPERATION","API_RESPONSE","API_PRODUCES","API_CONSUMES","API_TAGS","API_CALLBACKS","API_PARAMETERS","API_HEADERS","API_MODEL_PROPERTIES","API_MODEL_PROPERTIES_ARRAY","API_SECURITY","API_EXCLUDE_ENDPOINT","API_EXCLUDE_CONTROLLER","API_EXTRA_MODELS","API_EXTENSION","API_SCHEMA","API_DEFAULT_GETTER","API_LINK","isUndefined","obj","getEnumValues","enumType","Array","isArray","numericValues","Object","values","filter","value","map","toString","keys","key","includes","getEnumType","isString","length","createPropertyDecorator","metakey","metadata","overrideExisting","target","propertyKey","properties","Reflect","getMetadata","defineMetadata","existingMetadata","newMetadata","pickBy","negate","metadataToSave","type","constructor","required","ApiProperty","options","createApiPropertyDecorator","input","isArrayFlag","isInputArray","getTypeIsArrayTuple","opts","undefined","enum","enumValues","items","isOperationBlocked","ModelConstructor","op","handler","args","Metadata","get","OperationKeys","REFLECT","BLOCK","ApiOperationFromModel","verb","path","httpToCrud","GET","READ","Get","POST","CREATE","Post","PUT","UPDATE","Put","PATCH","Patch","DELETE","Delete","crudOp","HttpMethodDecorator","apply","ApiExcludeEndpoint","ApiParamsFromModel","props","decorators","p","ApiParamDec","name","description","String","applyDecorators","DecafBody","createParamDecorator","data","ctx","body","switchToHttp","getRequest","controller","getClass","ModelConstr","class","InternalServerErrorException","item","OrderedParams","order","req","original","params","orderList","ordered","k","raw","valuesInOrder","keysInOrder","DecafParams","DecafQuery","_","parsed","query","limit","n","Number","isNaN","offset","bookmark","HttpVerbToDecorator","decorator","Error","DECAF_MODULE_OPTIONS","DECAF_ADAPTER_ID","DECAF_ROUTE","DECAF_HANDLERS","Symbol","DECAF_ADAPTER_OPTIONS","AUTH_HANDLER","AUTH_META_KEY","DECAF_CONTEXT_KEY","Auth","model","resource","decs","ApiBearerAuth","UseInterceptors","AuthInterceptor","push","SetMetadata","reflector","authHandler","this","intercept","next","log","Logging","for","modelName","getHandler","verbose","authorize","debug","handle","__decorate","Injectable","__param","Optional","Inject","Reflector","DecafAuthHandler","parseRequest","userRole","headers","authorization","split","AuthorizationError","Model","PersistenceKeys","AUTH_ROLE","DecafRequestContext","uuid","UUID","instance","generate","request","put","record","overrides","e","_ctx","accumulate","assign","applyCtx","InternalError","scope","Scope","REQUEST","Request","DecafHandlerExecutor","DecafHandlerExecutor_1","handlers","context","exec","res","method","url","DecafResponseInterceptor","response","getResponse","pipe","tap","toResponse","apiParamSpec","getApiDecorators","methodName","routePath","httpVerb","includeQueryParams","NestHttpRouteDec","apiPathParams","startsWith","slice","extractPathParams","swaggerQueryParams","ApiQuery","OrderDirection","ApiParam","ApiOperation","summary","ApiOkResponse","ApiNoContentResponse","Query","applyApiDecorators","descriptor","proto","prototype","forEach","d","index","resolvePersistenceMethod","persistence","ModelService","statement","createRouteHandler","async","pathParams","queryParams","JSON","stringify","direction","error","defineRouteMethod","ControllerClass","defineProperty","writable","getOwnPropertyDescriptor","DecafController","Service","clientContext","super","logCtx","operation","allowCreate","ip","result","ContextualLoggedClass","call","bindLoggerToRequest","self","applyRequestIp","ctxArgs","forwarded","parseIpHeader","socket","connection","remoteAddress","extractRequestIp","config","decorateLoggerWithIp","then","isPromise","DecafModelController","_persistence","getService","Repository","forModel","certs","override","contextual","repo","segment","trim","Boolean","dtoCache","Map","DtoFor","TransactionOperationKeys","cache","has","set","WeakMap","getDtoCache","cached","isUpdateOp","BulkCrudOperationKeys","UPDATE_ALL","DynamicDTO","toPascalCase","pkProp","pk","pkPropsMetadata","pkProps","pkDesignType","pkTypeIsNumeric","BigInt","pkIsGenerated","generated","generatedBySequence","isPropertyGeneratedAcrossInheritance","allProps","from","Set","relations","scalarProps","prop","validation","getValidationAcrossInheritance","isRequired","ValidationKeys","REQUIRED","typeHint","getTypeAcrossInheritance","apiOptions","designType","enumerable","configurable","relation","relationMeta","relationType","meta","validationFor","LIST","relationDto","addRelationUpdate","addRelation","DtoClass","extraModels","dtoRef","pkTypeName","pkType","getPkOpenApiType","oneOfItems","$ref","oneOf","current","Function","getPrototypeOf","Adapter","transformerFor","adapter","alias","bind","flavoursToTransform","Context","pending","header","ModelBuilder","decorateClass","_classDecorators","__hasClassDecoratorSupport","originalBuild","build","decorated","FromModelController","getPersistence","ModelClazz","createQueryRoutesFromRepository","prefix","QUERY","queryMethods","routeMethods","QueryController","entries","replace","join","message","httpMethod","objValues","fields","f","create","tableName","toKebabCase","modelClazzName","getPK","apiProperties","getRouteParametersFromModel","BaseController","DynamicModelController","info","listBy","details","PreparedStatementKeys","LIST_BY","paginateBy","PAGE_BY","find","FIND","ASC","page","PAGE","ref","findOneBy","FIND_ONE_BY","findBy","FIND_BY","toOverrides","STATEMENT","pathDirection","a","parseInt","resolvedDirection","COUNT_OF","MAX_OF","MIN_OF","AVG_OF","SUM_OF","DISTINCT_OF","GROUP_OF","createAll","resp","CREATE_ALL","created","readAll","ids","READ_ALL","read","routeParams","id","ValidationError","updateAll","updated","update","payload","parse","deleteAll","DELETE_ALL","delete","del","Param","ApiNotFoundResponse","ApiBody","schema","getSchemaPath","ApiCreatedResponse","ApiBadRequestResponse","ApiUnprocessableEntityResponse","Response","passthrough","Controller","ApiTags","ApiExtraModels","composed","DBKeys","COMPOSED","composedKeys","uniqueKeys","separator","getModuleFor","flavour","DecafModelModule","DecafModelModule_1","createModelServices","models","provide","useFactory","forRoot","trackedModels","modelServices","autoServices","controllers","module","providers","Module","Decoration","InjectablesKeys","INJECTABLE","extend","category","cfg","DefaultInjectablesConfig","singleton","DEFAULT","durable","INJECT","MAX","max","maximum","MIN","min","minimum","MAX_LENGTH","maxLength","MIN_LENGTH","minLength","TYPE","DATE","format","ENUM","PATTERN","pat","pattern","source","COLUMN","DecorationKeys","DESCRIPTION","AUTH","CorsError","ForbiddenError","msg","DecafExceptionFilter","exception","host","isProduction","LoggedEnvironment","env","statusCode","NotFoundException","UnsupportedError","NotAcceptableException","getStatus","BaseError","status","code","json","timestamp","Date","toISOString","Catch","SWAGGER_UI_CONSTANTS","auth","scheme","bearerFormat","in","topbarBgColor","SwaggerCustomUI","customCSS","css","topbarIconPath","b64","getCustomOptions","favicon","faviconPath","customSiteTitle","title","customCss","swaggerOptions","persistAuthorization","jsonDocumentUrl","yamlDocumentUrl","file","img","filePath","assetsPath","readFileSync","encoding","SwaggerBuilder","app","createDocument","DocumentBuilder","setTitle","setDescription","setVersion","version","addBearerAuth","SwaggerModule","setupSwagger","document","swaggerUI","faviconFilePath","topbarIconFilePath","setup","requestToContextTransformer","DecafRequestHandlerInterceptor","DecafRequestHandlerInterceptor_1","requestContext","executor","contextualize","flags","flavours","transformer","DefaultAdapterFlags","logger","DecafCoreModule","_logger","DecafCoreModule_1","moduleRef","useValue","client","H","APP_INTERCEPTOR","useExisting","useClass","exports","bootPersistence","trimmed","conf","contr","pop","PersistenceService","boot","clients","i","c","onApplicationShutdown","adapters","shutdown","Global","ModuleRef","LISTENING_ADAPTERS_FLAVOURS","EventsController","EventsController_1","listen","Observable","observer","cb","refresh","Promise","resolve","modelConstr","serialize","normalizeEventResponse","observe","unObserve","listenForModel","Sse","DecafStreamModule","DecafStreamModule_1","forFlavours","imports","RouterModule","register","DecafModule","DecafModule_1","forRootAsync","autoControllers","observerOptions","enableObserverEvents","VERSION","PACKAGE_NAME","allowReregistration","registerLibrary","roles","Logger","initialize","enableLogger","customLogger","useLogger","enableCors","origins","allowMethods","allowedOrigins","o","toLowerCase","corsOptions","origin","callback","credentials","methods","useHelmet","helmet","require","use","warn","useGlobalPipes","pipes","useGlobalFilters","filters","useGlobalInterceptors","interceptors","start","port","process","PORT","getUrl","UseFilters","m"],"mappings":"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"}
1
+ {"version":3,"file":"for-nest.cjs","sources":["../src/overrides/constants.ts","../src/overrides/decoration.ts","../src/overrides/helpers.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/constants.ts","../src/decaf-model/decorators/decorators.ts","../src/interceptors/AuthInterceptor.ts","../src/request/DecafAuthHandler.ts","../src/request/DecafRequestContext.ts","../src/request/DecafHandlerExecutor.ts","../src/request/DecafResponseInterceptor.ts","../src/decaf-model/utils.ts","../src/controllers.ts","../src/factory/openapi/DtoBuilder.ts","../src/overrides/overrides.ts","../src/overrides/ModelBuilderExtensions.ts","../src/decaf-model/FromModelController.ts","../src/decaf-model/DecafModelModule.ts","../src/decoration.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/interceptors/context.ts","../src/interceptors/DecafRequestHandlerInterceptor.ts","../src/core-module.ts","../src/events-module/constant.ts","../src/events-module/EventsController.ts","../src/events-module/utils.ts","../src/events-module/DecafStreamModule.ts","../src/module.ts","../src/index.ts","../src/factory/NestBootstraper.ts","../src/factory/exceptions/decorators.ts","../src/utils.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null],"names":["DECORATORS_PREFIX","DECORATORS","API_OPERATION","API_RESPONSE","API_PRODUCES","API_CONSUMES","API_TAGS","API_CALLBACKS","API_PARAMETERS","API_HEADERS","API_MODEL_PROPERTIES","API_MODEL_PROPERTIES_ARRAY","API_SECURITY","API_EXCLUDE_ENDPOINT","API_EXCLUDE_CONTROLLER","API_EXTRA_MODELS","API_EXTENSION","API_SCHEMA","API_DEFAULT_GETTER","API_LINK","isUndefined","obj","getEnumValues","enumType","Array","isArray","numericValues","Object","values","filter","value","map","toString","keys","key","includes","getEnumType","isString","length","createPropertyDecorator","metakey","metadata","overrideExisting","target","propertyKey","properties","Reflect","getMetadata","defineMetadata","existingMetadata","newMetadata","pickBy","negate","metadataToSave","type","constructor","required","ApiProperty","options","createApiPropertyDecorator","input","isArrayFlag","isInputArray","getTypeIsArrayTuple","opts","undefined","enum","enumValues","items","isOperationBlocked","ModelConstructor","op","handler","args","Metadata","get","OperationKeys","REFLECT","BLOCK","ApiOperationFromModel","verb","path","httpToCrud","GET","READ","Get","POST","CREATE","Post","PUT","UPDATE","Put","PATCH","Patch","DELETE","Delete","crudOp","HttpMethodDecorator","apply","ApiExcludeEndpoint","ApiParamsFromModel","props","decorators","p","ApiParamDec","name","description","String","applyDecorators","DecafBody","createParamDecorator","data","ctx","body","switchToHttp","getRequest","controller","getClass","ModelConstr","class","InternalServerErrorException","item","OrderedParams","order","req","original","params","orderList","ordered","k","raw","valuesInOrder","keysInOrder","DecafParams","DecafQuery","_","parsed","query","limit","n","Number","isNaN","offset","bookmark","HttpVerbToDecorator","decorator","Error","DECAF_MODULE_OPTIONS","DECAF_ADAPTER_ID","DECAF_ROUTE","DECAF_HANDLERS","Symbol","DECAF_ADAPTER_OPTIONS","AUTH_HANDLER","AUTH_META_KEY","DECAF_CONTEXT_KEY","Auth","model","resource","decs","ApiBearerAuth","UseInterceptors","AuthInterceptor","push","SetMetadata","reflector","authHandler","this","intercept","next","log","Logging","for","modelName","getHandler","verbose","authorize","debug","handle","__decorate","Injectable","__param","Optional","Inject","Reflector","DecafAuthHandler","parseRequest","userRole","headers","authorization","split","AuthorizationError","Model","PersistenceKeys","AUTH_ROLE","DecafRequestContext","uuid","UUID","instance","generate","request","put","record","overrides","e","_ctx","accumulate","assign","applyCtx","InternalError","scope","Scope","REQUEST","Request","DecafHandlerExecutor","DecafHandlerExecutor_1","handlers","context","exec","res","method","url","DecafResponseInterceptor","response","getResponse","pipe","tap","toResponse","apiParamSpec","getApiDecorators","methodName","routePath","httpVerb","includeQueryParams","NestHttpRouteDec","apiPathParams","startsWith","slice","extractPathParams","swaggerQueryParams","ApiQuery","OrderDirection","ApiParam","ApiOperation","summary","ApiOkResponse","ApiNoContentResponse","Query","applyApiDecorators","descriptor","proto","prototype","forEach","d","index","resolvePersistenceMethod","persistence","ModelService","statement","createRouteHandler","async","pathParams","queryParams","JSON","stringify","direction","error","defineRouteMethod","ControllerClass","defineProperty","writable","getOwnPropertyDescriptor","DecafController","Service","clientContext","super","logCtx","operation","allowCreate","ip","result","ContextualLoggedClass","call","bindLoggerToRequest","self","applyRequestIp","ctxArgs","forwarded","parseIpHeader","socket","connection","remoteAddress","extractRequestIp","config","decorateLoggerWithIp","then","isPromise","DecafModelController","_persistence","getService","Repository","forModel","certs","override","contextual","repo","segment","trim","Boolean","dtoCache","Map","DtoFor","TransactionOperationKeys","cache","has","set","WeakMap","getDtoCache","cached","isUpdateOp","BulkCrudOperationKeys","UPDATE_ALL","DynamicDTO","toPascalCase","pkProp","pk","pkPropsMetadata","pkProps","pkDesignType","pkTypeIsNumeric","BigInt","pkIsGenerated","generated","generatedBySequence","isPropertyGeneratedAcrossInheritance","allProps","from","Set","relations","scalarProps","prop","validation","getValidationAcrossInheritance","isRequired","ValidationKeys","REQUIRED","typeHint","getTypeAcrossInheritance","apiOptions","designType","enumerable","configurable","relation","relationMeta","relationType","meta","validationFor","LIST","relationDto","addRelationUpdate","addRelation","DtoClass","extraModels","dtoRef","pkTypeName","pkType","getPkOpenApiType","oneOfItems","$ref","oneOf","current","Function","getPrototypeOf","Adapter","transformerFor","adapter","alias","bind","flavoursToTransform","Context","pending","header","ModelBuilder","decorateClass","_classDecorators","__hasClassDecoratorSupport","originalBuild","build","decorated","FromModelController","getPersistence","ModelClazz","createQueryRoutesFromRepository","prefix","QUERY","queryMethods","routeMethods","QueryController","entries","replace","join","message","httpMethod","objValues","fields","f","create","tableName","toKebabCase","modelClazzName","getPK","apiProperties","getRouteParametersFromModel","BaseController","DynamicModelController","info","listBy","details","PreparedStatementKeys","LIST_BY","paginateBy","PAGE_BY","find","FIND","ASC","page","PAGE","ref","findOneBy","FIND_ONE_BY","findBy","FIND_BY","toOverrides","STATEMENT","pathDirection","a","parseInt","resolvedDirection","COUNT_OF","MAX_OF","MIN_OF","AVG_OF","SUM_OF","DISTINCT_OF","GROUP_OF","createAll","resp","CREATE_ALL","created","readAll","ids","READ_ALL","read","routeParams","id","ValidationError","updateAll","updated","update","payload","parse","deleteAll","DELETE_ALL","delete","del","Param","ApiNotFoundResponse","ApiBody","schema","getSchemaPath","ApiCreatedResponse","ApiBadRequestResponse","ApiUnprocessableEntityResponse","Response","passthrough","Controller","ApiTags","ApiExtraModels","composed","DBKeys","COMPOSED","composedKeys","uniqueKeys","separator","getModuleFor","flavour","DecafModelModule","DecafModelModule_1","createModelServices","models","provide","useFactory","forRoot","trackedModels","modelServices","autoServices","controllers","module","providers","Module","Decoration","InjectablesKeys","INJECTABLE","extend","category","cfg","DefaultInjectablesConfig","singleton","DEFAULT","durable","INJECT","MAX","max","maximum","MIN","min","minimum","MAX_LENGTH","maxLength","MIN_LENGTH","minLength","TYPE","DATE","format","ENUM","PATTERN","pat","pattern","source","COLUMN","DecorationKeys","DESCRIPTION","AUTH","CorsError","ForbiddenError","msg","DecafExceptionFilter","exception","host","isProduction","LoggedEnvironment","env","statusCode","NotFoundException","UnsupportedError","NotAcceptableException","getStatus","BaseError","status","code","json","timestamp","Date","toISOString","Catch","SWAGGER_UI_CONSTANTS","auth","scheme","bearerFormat","in","topbarBgColor","SwaggerCustomUI","customCSS","css","topbarIconPath","b64","getCustomOptions","favicon","faviconPath","customSiteTitle","title","customCss","swaggerOptions","persistAuthorization","jsonDocumentUrl","yamlDocumentUrl","file","img","filePath","assetsPath","readFileSync","encoding","SwaggerBuilder","app","createDocument","DocumentBuilder","setTitle","setDescription","setVersion","version","addBearerAuth","SwaggerModule","setupSwagger","document","swaggerUI","faviconFilePath","topbarIconFilePath","setup","requestToContextTransformer","DecafRequestHandlerInterceptor","DecafRequestHandlerInterceptor_1","requestContext","executor","contextualize","flags","flavours","transformer","DefaultAdapterFlags","logger","DecafCoreModule","_logger","DecafCoreModule_1","moduleRef","useValue","client","H","APP_INTERCEPTOR","useExisting","useClass","exports","bootPersistence","trimmed","conf","contr","pop","PersistenceService","boot","clients","i","c","initialization","onApplicationShutdown","adapters","shutdown","Global","ModuleRef","LISTENING_ADAPTERS_FLAVOURS","EventsController","EventsController_1","listen","Observable","observer","cb","refresh","Promise","resolve","modelConstr","serialize","normalizeEventResponse","observe","unObserve","listenForModel","Sse","DecafStreamModule","DecafStreamModule_1","forFlavours","imports","RouterModule","register","DecafModule","DecafModule_1","forRootAsync","autoControllers","observerOptions","enableObserverEvents","VERSION","PACKAGE_NAME","allowReregistration","registerLibrary","roles","Logger","initialize","enableLogger","customLogger","useLogger","enableCors","origins","allowMethods","allowedOrigins","o","toLowerCase","corsOptions","origin","callback","credentials","methods","useHelmet","helmet","require","use","warn","useGlobalPipes","pipes","useGlobalFilters","filters","useGlobalInterceptors","interceptors","start","port","process","PORT","getUrl","UseFilters","m"],"mappings":"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"}
package/dist/for-nest.js CHANGED
@@ -1,2 +1,2 @@
1
- import{apply as e,Metadata as t,Decoration as r,DecorationKeys as o,metadata as s}from"@decaf-ts/decoration";import{InjectablesKeys as i,DefaultInjectablesConfig as n}from"@decaf-ts/injectable-decorators";import{Delete as a,Patch as c,Put as p,Post as d,Get as l,applyDecorators as u,createParamDecorator as h,InternalServerErrorException as f,Injectable as m,Optional as y,Inject as g,UseInterceptors as b,SetMetadata as w,Scope as E,Query as A,Param as v,Response as P,Controller as T,Module as O,Catch as R,NotFoundException as x,NotAcceptableException as $,UseFilters as _,Logger as C,Global as S,Sse as q}from"@nestjs/common";import{Model as I,ValidationKeys as k,ModelBuilder as N}from"@decaf-ts/decorator-validation";import{AuthorizationError as D,PersistenceKeys as F,UUID as L,OrderDirection as j,ModelService as M,Service as U,Repository as B,ContextualLoggedClass as G,TransactionOperationKeys as H,Adapter as z,Context as Y,PreparedStatementKeys as X,ForbiddenError as Q,UnsupportedError as J,DefaultAdapterFlags as V,PersistenceService as K}from"@decaf-ts/core";import{isArray as W,isString as Z,pickBy as ee,negate as te}from"lodash";import{ApiExcludeEndpoint as re,ApiParam as oe,ApiBearerAuth as se,ApiQuery as ie,ApiOperation as ne,ApiOkResponse as ae,ApiNoContentResponse as ce,ApiNotFoundResponse as pe,ApiBody as de,getSchemaPath as le,ApiCreatedResponse as ue,ApiBadRequestResponse as he,ApiUnprocessableEntityResponse as fe,ApiTags as me,ApiExtraModels as ye,DocumentBuilder as ge,SwaggerModule as be}from"@nestjs/swagger";import{OperationKeys as we,BulkCrudOperationKeys as Ee,InternalError as Ae,DBKeys as ve,ValidationError as Pe,BaseError as Te}from"@decaf-ts/db-decorators";import{__decorate as Oe,__param as Re,__metadata as xe}from"tslib";import{Reflector as $e,REQUEST as _e,ModuleRef as Ce,APP_INTERCEPTOR as Se,RouterModule as qe}from"@nestjs/core";import{Logging as Ie,toPascalCase as ke,toKebabCase as Ne,LoggedEnvironment as De}from"@decaf-ts/logging";import{tap as Fe,Observable as Le}from"rxjs";import{readFileSync as je}from"fs";import*as Me from"path";const Ue="swagger",Be={API_OPERATION:Ue+"/apiOperation",API_RESPONSE:Ue+"/apiResponse",API_PRODUCES:Ue+"/apiProduces",API_CONSUMES:Ue+"/apiConsumes",API_TAGS:Ue+"/apiUseTags",API_CALLBACKS:Ue+"/apiCallbacks",API_PARAMETERS:Ue+"/apiParameters",API_HEADERS:Ue+"/apiHeaders",API_MODEL_PROPERTIES:Ue+"/apiModelProperties",API_MODEL_PROPERTIES_ARRAY:Ue+"/apiModelPropertiesArray",API_SECURITY:Ue+"/apiSecurity",API_EXCLUDE_ENDPOINT:Ue+"/apiExcludeEndpoint",API_EXCLUDE_CONTROLLER:Ue+"/apiExcludeController",API_EXTRA_MODELS:Ue+"/apiExtraModels",API_EXTENSION:Ue+"/apiExtension",API_SCHEMA:Ue+"/apiSchema",API_DEFAULT_GETTER:Ue+"/apiDefaultGetter",API_LINK:Ue+"/apiLink"};function Ge(e,t){if(!e)return[e,t];if(t)return[e,t];const r=W(e);return[r?e[0]:e,r]}const He=e=>void 0===e;function ze(e){if("function"==typeof e)return ze(e());if(Array.isArray(e))return e;if("object"!=typeof e)return[];const t=Object.values(e).filter(e=>"number"==typeof e).map(e=>e.toString());return Object.keys(e).filter(e=>!t.includes(e)).map(t=>e[t])}function Ye(e){return e.filter(Z).length>0?"string":"number"}function Xe(e,t,r=!0){return(o,s)=>{const i=Reflect.getMetadata(Be.API_MODEL_PROPERTIES_ARRAY,o)||[],n=":"+s;i.includes(n)||Reflect.defineMetadata(Be.API_MODEL_PROPERTIES_ARRAY,[...i,":"+s],o);const a=Reflect.getMetadata(e,o,s);if(a){const i=ee(t,te(He)),n=r?{...a,...i}:{...i,...a};Reflect.defineMetadata(e,n,o,s)}else{const r=o?.constructor?._OPENAPI_METADATA_FACTORY?.()[s]?.type??Reflect.getMetadata("design:type",o,s);Reflect.defineMetadata(e,{type:r,required:!1,...ee(t,te(He))},o,s)}}}function Qe(e={}){return Je(e)}function Je(e={},t=!0){const[r,o]=Ge(e.type,e.isArray);if((s=e={...e,type:r,isArray:o}).isArray&&"enum"in s&&void 0!==s.enum){e.type="array";const t=ze(e.enum);e.items={type:Ye(t),enum:t},delete e.enum}else if("enum"in e&&void 0!==e.enum){const t=ze(e.enum);e.enum=t,e.type=Ye(t)}var s;return Array.isArray(e.type)&&(e.type="array",e.items={type:"array",items:{type:e.type[0]}}),Xe(Be.API_MODEL_PROPERTIES,e,t)}function Ve(e,r){const{handler:o,args:s}=t.get(e,we.REFLECT+we.BLOCK)||{};return!!o&&(o(...s,r)??!1)}function Ke(t,r,o){const s={GET:[we.READ,l],POST:[we.CREATE,d],PUT:[we.UPDATE,p],PATCH:[we.UPDATE,c],DELETE:[we.DELETE,a]},[i,n]=s[r];return Ve(t,i)?e(re()):e(n(o))}function We(t,r,o){const s={GET:[Ee.READ_ALL,l],POST:[Ee.CREATE_ALL,d],PUT:[Ee.UPDATE_ALL,p],PATCH:[Ee.UPDATE_ALL,c],DELETE:[Ee.DELETE_ALL,a]},[i,n]=s[r];return Ve(t,i)?e(re()):e(n(o))}function Ze(e=[]){const t=e.map(e=>oe({name:e.name,description:e.description??"Path parameter: "+e.name,required:e.required??!0,type:e.type??String}));return u(...t)}const et=h((e,t)=>{const r=t.switchToHttp().getRequest().body,o=t.getClass(),s=o.class;if(!s)throw new f(`ModelConstructor not found on controller ${o.name}. Ensure the controller was created via FromModelController.`);return r?Array.isArray(r)?r.map(e=>new s(e)):new s(r):r}),tt=h((e,t)=>{const r=t.switchToHttp().getRequest(),o=r?.params??{},s=e??Object.keys(o),i=s.map(e=>o[e]);return{raw:o,valuesInOrder:i,keysInOrder:s}});function rt(e=[]){const t=e.map(e=>e.name);return tt(t)}const ot=h((e,t)=>{const r={...t.switchToHttp().getRequest().query??{}};if(void 0!==r.limit){const e=Number(r.limit);Number.isNaN(e)||(r.limit=e)}if(void 0!==r.offset){const e=Number(r.offset);Number.isNaN(e)||(r.offset=e)}if(void 0!==r.bookmark){const e=Number(r.bookmark);r.bookmark=Number.isNaN(e)?r.bookmark:e}return r});function st(e){const t={GET:l,POST:d,PUT:p,PATCH:c,DELETE:a}[e];if(!t)throw Error(`Unsupported HTTP verb "${e}". No NestJS decorator mapping was found.`);return t}const it="DecafModuleOptions",nt="DecafAdapter",at="DecafRoute",ct=Symbol("DecafHandlers"),pt=Symbol("DecafAdapterForOptions"),dt=Symbol("AUTH_HANDLER"),lt="auth:meta",ut=Symbol("decaf:context");let ht=class{constructor(e,t){this.reflector=e,this.authHandler=t}async intercept(e,t){const r=Ie.for(this).for(this.intercept),o=this.reflector.get(lt,e.getHandler())??this.reflector.get(lt,e.getClass());return r.verbose("Intercepted request"+(o?" for "+o:"")),this.authHandler?await this.authHandler.authorize(e,o):r.debug("No auth handler/model"),t.handle()}};function ft(e){const t=e?"string"==typeof e?e:e.name:void 0,r=[se(),b(ht)];return t&&r.push(w(lt,t)),u(...r)}ht=Oe([m(),Re(1,y()),Re(1,g(dt)),xe("design:paramtypes",[$e,Object])],ht);class mt{parseRequest(e){const t=e.headers.authorization?.split(" ")[1];return t}async authorize(e,r){const o=e.switchToHttp().getRequest(),s=this.parseRequest(o);if(!s)throw new D("Unauthenticated");if(!t.get(I.get(r),F.AUTH_ROLE).includes(s))throw new D("Missing role: "+s)}}class yt extends mt{constructor(){super()}async authorize(e,r){const o=e.switchToHttp().getRequest(),s=this.parseRequest(o);if(!s)throw new D("Unauthenticated");const i=t.get(I.get(r),F.AUTH_ROLE);if(!i.includes(s))throw new D("Missing role: "+s);return i}}let gt=class{constructor(e){this.req=e,this.uuid=L.instance.generate()}get request(){return this.req}put(e){let t;try{t=this.ctx.get("overrides")}catch(e){t={}}this._ctx=this.ctx.accumulate({overrides:Object.assign(t,e)})}applyCtx(e){if(this._ctx)throw new Ae("Trying to overwrite context");this._ctx=e}get ctx(){if(!this._ctx)throw new Ae("Context not initialized for request");return this._ctx}};var bt;gt=Oe([m({scope:E.REQUEST}),Re(0,g(_e)),xe("design:paramtypes",[Request])],gt);let wt=bt=class{constructor(e,t){this.handlers=e,this.context=t}async exec(e,t){Ie.for(bt.name).for(this.exec).debug(`CONTEXT ${this.context.uuid} running ${this.handlers.length} handlers for request ${e.method} ${e.url}`);for(const r of this.handlers)await r.handle(this.context,e,t)}};wt=bt=Oe([m({scope:E.REQUEST}),Re(0,g(ct)),xe("design:paramtypes",[Array,gt])],wt);let Et=class{constructor(e){this.ctx=e}intercept(e,t){let r=e.switchToHttp().getResponse();return t.handle().pipe(Fe(e=>{r=this.ctx.ctx.toResponse(r)}))}};Et=Oe([m(),xe("design:paramtypes",[gt])],Et);const At=e=>({name:e,description:e+" parameter for the query",required:!0,type:String});function vt(e,t,r,o=!1){const s=st(r),i=(e=>e.split("/").filter(e=>e.startsWith(":")).map(e=>e.slice(1)))(t).map(At),n=[];return"GET"===r&&o&&n.push(ie({name:"direction",required:!1,enum:j,description:"the sort order when applicable"}),ie({name:"limit",required:!1,description:"limit or page size when applicable"}),ie({name:"offset",required:!1,description:"offset or bookmark when applicable"})),{method:[s(t),...i.map(oe),...n,ne({summary:`Retrieve records using according to "${e}".`}),ae({description:"Result successfully retrieved."}),ce({description:"No content returned by the method."})],params:[rt(i),A()]}}function Pt(e,t,r,o){const s=e?.prototype??e;o.method.forEach(e=>e(s,t,r)),o.params?.forEach((e,r)=>e(s,t,r))}function Tt(e,t,...r){if(e instanceof M)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}`)}function Ot(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:s,limit:i,offset:n}=r;return await Tt(this.persistence(),e,...t.valuesInOrder,s,i,n)}catch(t){throw o.error(`Custom query "${e}" failed`,t),t}}}function Rt(e,t,r){return Object.defineProperty(e.prototype||e,t,{value:r,writable:!1}),Object.getOwnPropertyDescriptor(e.prototype||e,t)}class xt extends U{constructor(e,t){super(t),this.clientContext=e}logCtx(e,t,r=!1,o){const s=this.clientContext.ctx;let i;e=e.filter(e=>void 0!==e),o&&(o.headers||o.ip)&&(i=o,o={});const n=G.logCtx.call(this,t,o||{},r,...e,s);return this.bindLoggerToRequest(n,i)}bindLoggerToRequest(e,t){const r=this;function o(e,t){return e.log=((e,t)=>{const o=(e=>{if(!e)return;const t=e.headers,r=_t(t?.["x-forwarded-for"])??_t(t?.["x-real-ip"])??_t(t?.["X-Forwarded-For"])??_t(t?.["X-Real-IP"]);if(r)return r;if("string"==typeof e.ip&&e.ip.length)return e.ip;const o=e.socket||e.connection;return o&&"string"==typeof o.remoteAddress&&o.remoteAddress.length?o.remoteAddress:void 0})(t??r.clientContext.request);if(!o)return e;const s={ip:o};return e.for(s)})(e.log,t),e}return(e=>"object"==typeof e&&null!==e&&"function"==typeof e.then)(e)?e.then(e=>o(e,t)):o(e,t)}}class $t extends xt{persistence(e){if(!this._persistence)try{this._persistence=U.get(this.class)}catch(e){try{this._persistence=M.getService(this.class)}catch(e){this._persistence=B.forModel(this.class)}}const t=this.clientContext.request[pt]||{};return e&&this.clientContext.put(t),e?this._persistence instanceof B?this._persistence.override(t):this._persistence.for(t):this._persistence}constructor(e,t){super(e,t)}logCtx(e,t,r=!1,o){const s=this.clientContext.ctx;let i;o&&(o.headers||o.ip)&&(i=o,o={});try{o=s.get("overrides")}catch(e){}const n=this.persistence(s);let a,c;return n instanceof M?a=n.repo._adapter:n instanceof B?a=n._adapter:n.context&&(a=n),r?a.logCtx(e,t,!0,o).then(e=>this.bindLoggerToRequest(e,i)):(c=a.logCtx(e,t,!1,o),this.bindLoggerToRequest(c,i))}}function _t(e){if(e)return(Array.isArray(e)?e[0]:e).split(",").map(e=>e.trim()).filter(Boolean)[0]}const Ct=new Map;function St(e,r){if(!H.includes(e))return r;const o=(e=>(Ct.has(e)||Ct.set(e,new WeakMap),Ct.get(e)))(e),s=o.get(r);if(s)return s;const i=[we.UPDATE,Ee.UPDATE_ALL].includes(e);class n{}o.set(r,n),Object.defineProperty(n,"name",{value:`${ke(r.name)}${ke(e)}DTO`});const a=(()=>{try{return I.pk(r)}catch{return}})(),c=a?I.pkProps(r):void 0,p=a?Reflect.getMetadata("design:type",r.prototype,a):void 0,d=p===Number||p===BigInt,l=!!c?.generated||!!a&&(I.generatedBySequence(r,a)||kt(r,a)||d),u=Array.from(new Set(t.properties(r)||[])),h=new Set(I.relations(r)||[]),f=[];for(const e of u)e&&(h.has(e)||e===a&&!i&&l||e!==a&&kt(r,e)||f.push(e));for(const e of f){const t=Nt(r,e),o=!!t?.[k.REQUIRED],s=Dt(r,e)??Reflect.getMetadata("design:type",r.prototype,e),i={required:o};s&&(i.type=s),Qe(i)(n.prototype,e);const a=Reflect.getMetadata("design:type",r.prototype,e)??s;void 0!==a&&Reflect.defineMetadata("design:type",a,n.prototype,e),Object.defineProperty(n.prototype,e,{value:void 0,writable:!0,enumerable:!0,configurable:!0})}for(const o of h){const s=t.relations(r,o);if(!s)throw new Ae(`Metadata for relation ${o} not found`);let a=s.class;if("function"!=typeof a||a.name||(a=a()),!a||"function"!=typeof a)throw new Ae(`Type for relation ${o} not found`);if(!I.get(a.name))continue;const c=t.validationFor(r,o),p=!!c?.[k.LIST],d=!!c?.[k.REQUIRED],l=St(e,a);i?It(n,o,a,l,p,d):qt(n,o,l,p,d)}return n}function qt(e,t,r,o,s){Qe({type:r,required:s,isArray:o})(e.prototype,t),Reflect.defineMetadata("design:type",o?Array:r,e.prototype,t),Object.defineProperty(e.prototype,t,{value:void 0,writable:!0,enumerable:!0,configurable:!0})}function It(e,t,r,o,s,i){const n=Reflect.getMetadata(Be.API_EXTRA_MODELS,e)||[];n.includes(o)||Reflect.defineMetadata(Be.API_EXTRA_MODELS,[...n,o],e);const a="#/components/schemas/"+o.name,c=(e=>{try{const t=I.pkProps(e),r=t?.type;return r===Number||r===BigInt?"integer":"string"}catch{return"string"}})(r),p=[{$ref:a},{type:c}];Qe(s?{type:"array",required:i,oneOf:p}:{type:Object,required:i,oneOf:p})(e.prototype,t),Reflect.defineMetadata("design:type",s?Array:Object,e.prototype,t),Object.defineProperty(e.prototype,t,{value:void 0,writable:!0,enumerable:!0,configurable:!0})}function kt(e,t){let r=e;for(;r&&r!==Object&&r!==Function;){if(I.generated(r,t))return!0;r=Object.getPrototypeOf(r)}return!1}function Nt(e,r){let o=e;for(;o&&o!==Object&&o!==Function;){const e=t.validationFor(o,r);if(e)return e;o=Object.getPrototypeOf(o)}}function Dt(e,r){let o=e;for(;o&&o!==Object&&o!==Function;){const e=t.type(o,r);if(e)return e;o=Object.getPrototypeOf(o)}}z.transformerFor=(e=>{const r="string"==typeof e?e:e.alias;return t.innerGet(Symbol.for("transformers"),r)}).bind(z),z.flavoursToTransform=(()=>{const e=t.innerGet(Symbol.for("transformers"));if(e)return Object.keys(e)}).bind(z),Y.prototype.toResponse=function(e){const t=this.pending();return t&&e.header("x-pending-task",JSON.stringify(t)),e};const Ft=N.prototype;if(Ft.decorateClass||(Ft.decorateClass=function(e){return this._classDecorators||(this._classDecorators=[]),this._classDecorators.push(e),this}),Ft.Auth=function(e){return this.decorateClass(ft(e))},!Ft.__hasClassDecoratorSupport){const e=Ft.build;Ft.build=function(){let t=e.call(this);const r=this._classDecorators;if(r?.length)for(const e of r){const r=e(t);r&&(t=r)}return t},Ft.__hasClassDecoratorSupport=!0}class Lt{static{this.log=Ie.for(Lt.name)}static getPersistence(e){try{return U.get(e)}catch(t){try{return M.getService(e)}catch(t){return B.forModel(e)}}}static createQueryRoutesFromRepository(e,r=F.QUERY){const o=Lt.log.for(Lt.createQueryRoutesFromRepository),s=e instanceof M?e.repo:e,i=s.class,n=t.get(s.constructor,t.key(F.QUERY))??{},a=t.get(e.constructor,t.key(at))??{};class c extends $t{get class(){throw Error("Method not implemented.")}constructor(e,t){super(e,t)}}for(const[e,t]of Object.entries(a)){const r=[t.path.replace(/^\/+|\/+$/g,"")].filter(e=>e&&e.trim()).join("/"),s=Ot(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=Rt(c,e,s);n&&Pt(c,e,n,vt(e,r,t.httpMethod))}for(const[e,t]of Object.entries(n)){const o=[r,e,...(t.fields??[]).map(e=>":"+e)].filter(e=>e&&e.trim()).join("/"),s=Rt(c,e,Ot(e));s&&Pt(c,e,s,vt(e,o,"GET",!0))}return c}static create(e){const t=Lt.log.for(Lt.create),r=I.tableName(e),o=Ne(r),s=e.name,i=Lt.getPersistence(e),{description:n,getPK:a,apiProperties:c,path:p}=Lt.getRouteParametersFromModel(e);t.debug("Creating controller for model: "+s);const d=Lt.createQueryRoutesFromRepository(i);let l=class extends d{static get class(){return e}get class(){return e}constructor(r){super(r),this.pk=I.pk(e),t.info(`Registering dynamic controller for model: ${this.class.name} route: /${o}`)}async listBy(e,t){const{ctx:r}=(await this.logCtx([],X.LIST_BY,!0)).for(this.listBy);return this.persistence(r).listBy(e,t.direction,r)}async paginateBy(e,t){const{ctx:r}=(await this.logCtx([],X.PAGE_BY,!0)).for(this.paginateBy);return this.persistence(r).paginateBy(e,t.direction,t,r)}async find(e,t){const{ctx:r}=(await this.logCtx([],X.FIND,!0)).for(this.find),o=t.direction??j.ASC;return Tt(this.persistence(r),this.find.name,e,o,r)}async page(e,t){const{ctx:r}=(await this.logCtx([],X.PAGE,!0)).for(this.page),{direction:o=j.ASC,limit:s,offset:i,bookmark:n}=t,a={offset:i??1,limit:s??10,bookmark:n};return Tt(this.persistence(r),this.page.name,e,o,a,r)}async findOneBy(e,t){const{ctx:r}=(await this.logCtx([],X.FIND_ONE_BY,!0)).for(this.findOneBy);return this.persistence(r).findOneBy(e,t,r)}async findBy(e,t,r){const{ctx:o}=(await this.logCtx([],X.FIND_BY,!0)).for(this.findBy);return this.persistence(o).for(o.toOverrides()).findBy(e,t,o)}async statement(e,t,r){const{ctx:o}=(await this.logCtx([],F.STATEMENT,!0)).for(this.statement),{direction:s,offset:i,limit:n,bookmark:a}=r,c=(t=t.map(e=>("string"==typeof e?parseInt(e):e)||e)).length>1?t[1]:void 0,p=s??c;switch(p&&t.length>1&&(t[1]=p),e){case X.FIND:case X.FIND_BY:break;case X.LIST_BY:t.push(s);break;case X.PAGE:case X.PAGE_BY:t=[t[0],p,{limit:n,offset:i,bookmark:a}];case X.FIND_ONE_BY:case X.COUNT_OF:case X.MAX_OF:case X.MIN_OF:case X.AVG_OF:case X.SUM_OF:case X.DISTINCT_OF:case X.GROUP_OF:}return this.persistence(o).statement(e,...t,o)}async createAll(t,r){const{ctx:o,log:i}=(await this.logCtx([],Ee.CREATE_ALL,!0)).for(this.createAll);let n;i.verbose("creating new "+s);try{n=await this.persistence(o).createAll(t.map(t=>new e(t)),o)}catch(e){throw i.error("Failed to create new "+s,e),e}return i.info(`created new ${s} with id ${n[this.pk]}`),o.toResponse(r),n}async create(e,t){const{ctx:r,log:o}=(await this.logCtx([],we.CREATE,!0)).for(this.create);let i;o.verbose("creating new "+s);try{const t=this.persistence(r);i=await t.create(e,r)}catch(e){throw o.error("Failed to create new "+s,e),e}return o.info(`created new ${s} with id ${i[this.pk]}`),r.toResponse(t),i}async readAll(e){const{ctx:t,log:r}=(await this.logCtx([],Ee.READ_ALL,!0)).for(this.readAll);let o;try{r.debug(`reading ${e.length} ${s}: ${e}`);const i=this.persistence(t);o=await i.readAll(e,t)}catch(t){throw r.error(`Failed to ${s} with id ${e}`,t),t}return r.info(`read ${o.length} ${s}`),o}async read(e){const{ctx:t,log:r}=(await this.logCtx([],we.READ,!0)).for(this.read),o=a(...e.valuesInOrder);if(void 0===o)throw new Pe(`No ${this.pk} provided`);let i;try{r.debug(`reading ${s} with ${this.pk} ${o}`);const e=this.persistence(t);i=await e.read(o,t)}catch(e){throw r.error(`Failed to read ${s} with id ${o}`,e),e}return r.info(`read ${s} with id ${i[this.pk]}`),i}async updateAll(e,t){const{ctx:r,log:o}=(await this.logCtx([],Ee.UPDATE_ALL,!0)).for(this.updateAll);let i;try{o.info(`updating ${e.length} ${s}`),i=await this.persistence(r).updateAll(e,r)}catch(e){throw o.error(e),e}return r.toResponse(t),i}async update(t,r,o){const{ctx:i,log:n}=(await this.logCtx([],we.UPDATE,!0)).for(this.update),c=a(...t.valuesInOrder);if(void 0===c)throw new Pe(`No ${this.pk} provided`);let p;try{n.info(`updating ${s} with ${this.pk} ${c}`);const t=JSON.parse(JSON.stringify(r)),o=this.persistence(i);p=await o.update(new e({...t,[this.pk]:c}),i)}catch(e){throw n.error(e),e}return i.toResponse(o),p}async deleteAll(e,t){const{ctx:r,log:o}=(await this.logCtx([],Ee.DELETE_ALL,!0)).for(this.deleteAll);let i;try{o.debug(`deleting ${e.length} ${s}: ${e}`),i=await this.persistence(r).deleteAll(e,r)}catch(t){throw o.error(`Failed to delete ${s} with id ${e}`,t),t}return o.info(`deleted ${i.length} ${s}`),r.toResponse(t),i}async delete(e,t){const{ctx:r,log:o}=(await this.logCtx([],we.DELETE,!0)).for(this.delete),i=a(...e.valuesInOrder);if(void 0===i)throw new Pe(`No ${this.pk} provided`);let n;try{o.debug(`deleting ${s} with ${this.pk} ${i}`),n=await this.persistence(r).delete(i,r)}catch(e){throw o.error(`Failed to delete ${s} with id ${i}`,e),e}return o.info(`deleted ${s} with id ${i}`),r.toResponse(t),n}};return Oe([Ke(e,"GET","listBy/:key"),ne({summary:`Retrieve ${s} records by query.`}),oe({name:"key",description:"the model key to sort by"}),ie({name:"direction",required:!0,enum:j}),ae({description:s+" listed successfully."}),Re(0,v("key")),Re(1,ot()),xe("design:type",Function),xe("design:paramtypes",[String,Object]),xe("design:returntype",Promise)],l.prototype,"listBy",null),Oe([Ke(e,"GET","paginateBy/:key/:page"),ne({summary:`Retrieve ${s} records by query.`}),oe({name:"key",description:"the model key to sort by"}),oe({name:"page",description:"the page to retrieve or the bookmark"}),ie({name:"direction",required:!0,enum:j,description:"the sort order"}),ie({name:"limit",required:!0,description:"the page size"}),ie({name:"offset",description:"the bookmark when necessary"}),ae({description:s+" listed paginated."}),Re(0,v("key")),Re(1,ot()),xe("design:type",Function),xe("design:paramtypes",[String,Object]),xe("design:returntype",Promise)],l.prototype,"paginateBy",null),Oe([Ke(e,"GET","find/:value"),ne({summary:`Find ${s} records using the default query attributes.`}),oe({name:"value",description:"The string to match against the default query attributes"}),ie({name:"direction",required:!1,enum:j,description:"the sort order for the matching results"}),ae({description:s+" records matching the provided prefix."}),Re(0,v("value")),Re(1,ot()),xe("design:type",Function),xe("design:paramtypes",[String,Object]),xe("design:returntype",Promise)],l.prototype,"find",null),Oe([Ke(e,"GET","page/:value"),ne({summary:`Page ${s} records using the default query attributes.`}),oe({name:"value",description:"The string to match against the default query attributes"}),ie({name:"direction",required:!1,enum:j,description:"the sort order for the paged results"}),ie({name:"limit",required:!1,description:"page size"}),ie({name:"offset",required:!1,description:"page number"}),ie({name:"bookmark",required:!1,description:"bookmark for cursor pagination"}),ae({description:s+" records paged by the provided prefix."}),Re(0,v("value")),Re(1,ot()),xe("design:type",Function),xe("design:paramtypes",[String,Object]),xe("design:returntype",Promise)],l.prototype,"page",null),Oe([Ke(e,"GET","findOneBy/:key"),ne({summary:`Retrieve ${s} records by query.`}),oe({name:"key",description:"the model key to sort by"}),ae({description:s+" listed found."}),pe({description:`No ${s} record matches the provided identifier.`}),Re(0,v("key")),Re(1,v("value")),xe("design:type",Function),xe("design:paramtypes",[String,Object]),xe("design:returntype",Promise)],l.prototype,"findOneBy",null),Oe([Ke(e,"GET","findBy/:key/:value"),ne({summary:`Retrieve ${s} records by query.`}),oe({name:"key",description:"the model key to compare"}),oe({name:"value",description:"the value to match"}),ie({name:"direction",required:!0,enum:j,description:"the sort order when applicable"}),ae({description:s+" listed found."}),pe({description:`No ${s} record matches the provided identifier.`}),Re(0,v("key")),Re(1,v("value")),Re(2,ot()),xe("design:type",Function),xe("design:paramtypes",[String,Object,Object]),xe("design:returntype",Promise)],l.prototype,"findBy",null),Oe([Ke(e,"GET","statement/:method/*args"),ne({summary:`Executes a prepared statement on ${s}.`}),oe({name:"method",description:"the prepared statement to execute"}),oe({name:"args",description:"concatenated list of arguments the prepared statement can accept"}),ie({name:"direction",required:!0,enum:j,description:"the sort order when applicable"}),ie({name:"limit",required:!0,description:"limit or page size when applicable"}),ie({name:"offset",required:!0,description:"offset or bookmark when applicable"}),ae({description:s+" listed found."}),pe({description:`No ${s} record matches the provided identifier.`}),Re(0,v("method")),Re(1,v("args")),Re(2,ot()),xe("design:type",Function),xe("design:paramtypes",[String,Array,Object]),xe("design:returntype",Promise)],l.prototype,"statement",null),Oe([Ke(e,"POST","bulk"),ne({summary:`Create a new ${s}.`}),de({description:"Payload for "+s,schema:{type:"array",items:{$ref:le(e)}}}),ue({description:s+" created successfully.",schema:{type:"array",items:{$ref:le(e)}}}),he({description:"Payload validation failed."}),fe({description:"Repository rejected the provided payload."}),Re(0,et()),Re(1,P({passthrough:!0})),xe("design:type",Function),xe("design:paramtypes",[Array,Object]),xe("design:returntype",Promise)],l.prototype,"createAll",null),Oe([Ke(e,"POST"),ne({summary:`Create a new ${s}.`}),de({description:"Payload for "+s,type:St(we.CREATE,e)}),ue({description:s+" created successfully.",schema:{$ref:le(e)}}),he({description:"Payload validation failed."}),fe({description:"Repository rejected the provided payload."}),Re(0,et()),Re(1,P({passthrough:!0})),xe("design:type",Function),xe("design:paramtypes",[Object,Object]),xe("design:returntype",Promise)],l.prototype,"create",null),Oe([Ke(e,"GET","bulk"),ne({summary:`Retrieve a ${s} record by id.`}),ie({name:"ids",required:!0,type:"array"}),ae({description:s+" retrieved successfully.",schema:{type:"array",items:{$ref:le(e)}}}),pe({description:`No ${s} record matches the provided identifier.`}),Re(0,A("ids")),xe("design:type",Function),xe("design:paramtypes",[Array]),xe("design:returntype",Promise)],l.prototype,"readAll",null),Oe([Ke(e,"GET",p),Ze(c),ne({summary:`Retrieve a ${s} record by id.`}),ae({description:s+" retrieved successfully.",schema:{$ref:le(e)}}),pe({description:`No ${s} record matches the provided identifier.`}),Re(0,rt(c)),xe("design:type",Function),xe("design:paramtypes",[Object]),xe("design:returntype",Promise)],l.prototype,"read",null),Oe([Ke(e,"PUT","bulk"),Ze(c),ne({summary:`Replace an existing ${s} record with a new payload.`}),de({description:"Payload for replace a existing record of "+s,schema:{type:"array",$ref:le(St(we.UPDATE,e))}}),ae({description:s+" updated successfully.",schema:{type:"array",items:{$ref:le(e)}}}),pe({description:`No ${s} record matches the provided identifier.`}),he({description:"Payload validation failed."}),Re(0,et()),Re(1,P({passthrough:!0})),xe("design:type",Function),xe("design:paramtypes",[Array,Object]),xe("design:returntype",Promise)],l.prototype,"updateAll",null),Oe([Ke(e,"PUT",p),Ze(c),ne({summary:`Replace an existing ${s} record with a new payload.`}),de({description:"Payload for replace a existing record of "+s,type:St(we.UPDATE,e)}),ae({description:s+" updated successfully.",schema:{$ref:le(e)}}),pe({description:`No ${s} record matches the provided identifier.`}),he({description:"Payload validation failed."}),Re(0,rt(c)),Re(1,et()),Re(2,P({passthrough:!0})),xe("design:type",Function),xe("design:paramtypes",[Object,Object,Object]),xe("design:returntype",Promise)],l.prototype,"update",null),Oe([Ke(e,"DELETE","bulk"),Ze(c),ne({summary:`Retrieve a ${s} record by id.`}),ie({name:"ids",required:!0,type:"array"}),ae({description:s+" deleted successfully.",schema:{type:"array",items:{$ref:le(e)}}}),pe({description:`No ${s} record matches the provided identifier.`}),Re(0,A("ids")),Re(1,P({passthrough:!0})),xe("design:type",Function),xe("design:paramtypes",[Array,Object]),xe("design:returntype",Promise)],l.prototype,"deleteAll",null),Oe([Ke(e,"DELETE",p),Ze(c),ne({summary:`Delete a ${s} record by id.`}),ae({description:s+" deleted successfully.",schema:{$ref:le(e)}}),pe({description:`No ${s} record matches the provided identifier.`}),Re(0,rt(c)),Re(1,P({passthrough:!0})),xe("design:type",Function),xe("design:paramtypes",[Object,Object]),xe("design:returntype",Promise)],l.prototype,"delete",null),l=Oe([T(o),me(s),ye(e),ft(e),xe("design:paramtypes",[gt])],l),l}static getRouteParametersFromModel(e){const r=I.pk(e),o=t.get(e,t.key(ve.COMPOSED,r)),s=o?.args??[],i=Array.isArray(s)&&s.length>0?Array.from(new Set([...s])):Array.from(new Set([r])),n=t.description(e);return{path:":"+i.join("/:"),description:n,apiProperties:i.map(r=>({name:r,description:t.description(e,r),required:!0,type:String})),getPK:(...e)=>o?.separator?e.join(o.separator):e.join("")}}}function jt(e){var t;let r=class{static{t=this}static{this.log=Ie.for(t.name).for(e)}static createModelServices(e){return e.map(e=>({provide:e.name+"Service",useFactory:()=>M.forModel(e)}))}static forRoot(e,r={}){const o=this.log.for(this.forRoot);o.info("Generating controllers for flavour...");const s=z.models(e);let i=[];r.autoServices&&(o.info("Auto-services enabled. Initializing service generation."),i=this.createModelServices(s),o.info(`Auto-services completed. ${i.length} services initialized.`));const n=s.map(Lt.create);return o.info(`Generated ${n.length} controllers`),{module:t,controllers:n,providers:[...i]}}};return r=t=Oe([O({})],r),Object.assign(r,"name",{value:"DecafModule"+e}),r}r.for(i.INJECTABLE).extend({decorator:(e,t)=>(t=t||("object"==typeof e?Object.assign(e,n):n),m({scope:t.singleton?E.DEFAULT:E.REQUEST,durable:!t.singleton||void 0}))}).apply(),r.for(i.INJECT).extend({decorator:(e,t)=>(t,r,o)=>g(e||t)(t,r,o)}).apply(),r.for(k.REQUIRED).extend(Qe({required:!0})).apply(),r.for(k.MAX).extend({decorator:e=>Qe({maximum:e,required:!1})}).apply(),r.for(k.MIN).extend({decorator:e=>Qe({minimum:e,required:!1})}).apply(),r.for(k.MAX_LENGTH).extend({decorator:e=>Qe({maxLength:e,required:!1})}).apply(),r.for(k.MIN_LENGTH).extend({decorator:e=>Qe({minLength:e,required:!1})}).apply(),r.for(k.TYPE).extend({decorator:e=>(t,r)=>("function"!=typeof(e=Array.isArray(e)?e[0]:e)||e.name||(e=e()),Qe({type:e,required:!1})(t,r))}).apply(),r.for(k.DATE).extend({decorator:e=>Qe({type:String,format:"date-time",required:!1})}).apply(),r.for(k.ENUM).extend({decorator:e=>Qe({enum:Array.isArray(e)?e:Object.values(e),required:!1})}).apply(),r.for(k.PATTERN).extend({decorator:e=>Qe({pattern:"string"==typeof e?e:e.source,required:!1})}).apply(),r.for(F.COLUMN).extend({decorator:e=>Qe({name:e,required:!1})}).apply(),r.for(o.DESCRIPTION).extend({decorator:e=>Qe({description:e,required:!1})}).apply(),r.for(F.AUTH).extend({decorator:ft}).apply();class Mt extends Q{constructor(e){super(e,Mt.name)}}let Ut=class{catch(e,t){const r=t.switchToHttp(),o=r.getResponse(),s=r.getRequest(),i="production"===De.env;let n;e instanceof x||e instanceof J?n=(e=new $(e.message)).getStatus():e instanceof Te||(e=new Ae(e.message)),o.status(e.code||n).json({status:e.code||n,error:i?e.name:e.message,timestamp:(new Date).toISOString(),path:s.url,method:s.method})}};function Bt(){return _(new Ut)}function Gt(){return b(Et)}Ut=Oe([R()],Ut);const Ht={path:"docs",auth:{type:"http",scheme:"bearer",bearerFormat:"JWT",name:"Authorization",description:"Enter JWT token",in:"header"},topbarBgColor:"#000000"};class zt{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||Ht.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=Me.join(this.options.assetsPath||"",e),o=je(r,{encoding:"base64"});return t?"data:image/png;base64,"+o:o}}class Yt{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 ge).setTitle(this.options.title).setDescription(e).setVersion(this.options.version||"0.0.1").addBearerAuth(this.options.auth||Ht.auth).build();return be.createDocument(this.app,t,{extraModels:this.options.extraModels||[]})}setupSwagger(){const e=this.createDocument(),t=new zt({title:this.options.title,path:this.options.path||Ht.path,persistAuthorization:this.options.persistAuthorization??!0,assetsPath:this.options.assetsPath,faviconPath:this.options.faviconFilePath,topbarIconPath:this.options.topbarIconFilePath,topbarBgColor:this.options.topbarBgColor});be.setup(this.options.path||Ht.path,this.app,e,{...t.getCustomOptions()})}}class Xt{static get logger(){return this._logger||(this._logger=new C("NestBootstrap")),this._logger}static initialize(e){return this.app=e,this}static enableLogger(e){return this._logger=e||new C("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 Mt(`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 Yt(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 Ut]),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)}})}}var Qt;let Jt=Qt=class{constructor(e,t){this.requestContext=e,this.executor=t}async contextualize(e){const t={headers:e.headers,overrides:{}},r=z.flavoursToTransform();if(r)for(const o of r)try{const r=z.transformerFor(o),s=await r.from(e);Object.assign(t.overrides,s)}catch(e){throw new Ae("Failed to contextualize request: "+e)}return(new Y).accumulate(Object.assign({},V,{logger:Ie.get(),timestamp:new Date},t))}async intercept(e,t){const r=e.switchToHttp().getRequest(),o=e.switchToHttp().getResponse(),s=Ie.for(Qt).for(this.intercept);s.debug(`CONTEXT ${this.requestContext.uuid} - request: ${r.method} ${r.url}`);const i=await this.contextualize(r);return s.debug(`CONTEXT ${this.requestContext.uuid} contextualized - request: ${r.method} ${r.url}`),this.requestContext.applyCtx(i),s.debug(`CONTEXT ${this.requestContext.uuid} applied - request: ${r.method} ${r.url}`),await this.executor.exec(r,o),s.debug(`CONTEXT ${this.requestContext.uuid} executors finished - request: ${r.method} ${r.url}`),t.handle()}};Jt=Qt=Oe([m({scope:E.REQUEST}),xe("design:paramtypes",[gt,wt])],Jt);class Vt{}function Kt(e){return r=>(t.set("transformers",e,r),"function"==typeof r?s("transformers",e)(r):r)}var Wt;let Zt=class{static{Wt=this}static get persistence(){if(!this._persistence)throw new Ae("Persistence service not initialized");return this._persistence}static get log(){return this._logger||(this._logger=Ie.for(Wt)),this._logger}constructor(e,t){this.options=e,this.moduleRef=t}static forRoot(e){const t=this.log.for(this.forRoot);return{module:Wt,providers:[{provide:it,useValue:e},{provide:nt,useValue:this.persistence.client},{provide:ct,useFactory:()=>e.handlers?.map(e=>(t.info("Registered request handler: "+e.name),new e))??[]},ht,{provide:Se,useExisting:ht},gt,wt,{provide:Se,useClass:Jt}],exports:[it,nt,ct,gt,wt]}}static async bootPersistence(e){const t=this.log.for(this.bootPersistence);if(!this._persistence){const r=e.conf.map(([e,t,...r])=>r.pop()?[e,t,...r]:[e,t]);this._persistence=new K,await this._persistence.boot(r);const o=this._persistence.client;for(let t=0;t<o.length;t++){const r=e.conf[t];let s=r.slice(2,r.length).pop();if(!s||!s.from){const e=z.transformerFor(o[t].flavour);if(!e)throw new Ae(`No transformer found for flavour ${o[t].flavour}. you should either @requestToContextTransformer or provide a transformer in the config`);try{s=e.from?e:new e}catch(e){throw new Ae("Failed to boot transformer for "+o[t].flavour)}}Kt(o[t].flavour)(s)}t.info("persistence layer created successfully!")}return this.persistence.client}async onApplicationShutdown(){const e=Wt.log.for(this.onApplicationShutdown),t=this.moduleRef.get(nt);for(const r of t)try{r&&(e.info("Shutting down "+r.toString()),await r.shutdown())}catch(t){e.error("Failed to shutdown application",t)}}};Zt=Wt=Oe([S(),O({}),Re(0,g(it)),xe("design:paramtypes",[Object,Ce])],Zt);const er=Symbol("LISTENING_ADAPTERS_FLAVOURS");var tr;let rr=tr=class extends xt{constructor(e,t){super(e,tr.name),this.adapters=t.map(e=>z.get(e))}listen(){const e=Ie.for(tr.name);return new Le(t=>{const r=new class{refresh(...e){return Promise.resolve().then(()=>{const r=(e=>{const[t,r,o,s]=e;return[t?.name??t,r,o,Array.isArray(s)?s.map(e=>e.serialize()):s?.serialize()]})(e);t.next({data:r})})}};try{for(const e of this.adapters)e.observe(r)}catch(e){t.error("Failed to observe event: "+(e.message||e))}return()=>{try{for(const e of this.adapters)e.unObserve(r)}catch(t){e.error(t)}}})}listenForModel(e){const t=Ie.for(tr.name);return new Le(e=>{const r=new class{refresh(...t){return Promise.resolve().then(()=>{e.next({data:t})})}};try{for(const e of this.adapters)e.observe(r)}catch(t){e.error("Failed to observe event: "+(t.message||t))}return()=>{try{for(const e of this.adapters)e.unObserve(r)}catch(e){t.error(e)}}})}};var or;Oe([q(),xe("design:type",Function),xe("design:paramtypes",[]),xe("design:returntype",Le)],rr.prototype,"listen",null),Oe([q("/:model"),Re(0,A("model")),xe("design:type",Function),xe("design:paramtypes",[String]),xe("design:returntype",Le)],rr.prototype,"listenForModel",null),rr=tr=Oe([T(),Re(1,g(er)),xe("design:paramtypes",[gt,Array])],rr);let sr=or=class{static forFlavours(e,t="events"){return{module:or,controllers:[rr],imports:[qe.register([{path:t.replace(/^\//,""),module:or}])],providers:[gt,{provide:er,useValue:e??[]}]}}};var ir;sr=or=Oe([O({})],sr);let nr=ir=class{static async forRootAsync(e){const{autoControllers:t,autoServices:r}=e,o=(await Zt.bootPersistence(e)).map(e=>e.flavour),s=[Zt.forRoot(e)];return t&&o.forEach(e=>{s.push(jt(e).forRoot(e,{autoServices:r}))}),e.observerOptions?.enableObserverEvents&&s.push(sr.forFlavours(o)),{module:ir,imports:s}}};function ar(e){const t=I.get(e);if(!t)throw new Ae("Failed to find repository for "+e);return B.forModel(t)}nr=ir=Oe([O({})],nr);const cr="##VERSION##",pr="##PACKAGE##";t.allowReregistration(!0),t.registerLibrary(pr,cr),t.allowReregistration(!1);export{dt as AUTH_HANDLER,lt as AUTH_META_KEY,Ke as ApiOperationFromModel,Ze as ApiParamsFromModel,Qe as ApiProperty,ft as Auth,ht as AuthInterceptor,We as BulkApiOperationFromModel,Mt as CorsError,nt as DECAF_ADAPTER_ID,pt as DECAF_ADAPTER_OPTIONS,ut as DECAF_CONTEXT_KEY,ct as DECAF_HANDLERS,it as DECAF_MODULE_OPTIONS,at as DECAF_ROUTE,Be as DECORATORS,Ue as DECORATORS_PREFIX,mt as DecafAuthHandler,et as DecafBody,xt as DecafController,Zt as DecafCoreModule,Ut as DecafExceptionFilter,wt as DecafHandlerExecutor,$t as DecafModelController,nr as DecafModule,rt as DecafParams,ot as DecafQuery,gt as DecafRequestContext,Jt as DecafRequestHandlerInterceptor,Et as DecafResponseInterceptor,yt as DecafRoleAuthHandler,sr as DecafStreamModule,St as DtoFor,rr as EventsController,Lt as FromModelController,st as HttpVerbToDecorator,Xt as NestBootstraper,pr as PACKAGE_NAME,Vt as RequestToContextTransformer,Yt as SwaggerBuilder,Bt as UseDecafFilter,Gt as UseDecafHeaders,cr as VERSION,Je as createApiPropertyDecorator,Xe as createPropertyDecorator,Ye as getEnumType,ze as getEnumValues,jt as getModuleFor,Ve as isOperationBlocked,He as isUndefined,ar as repoForModel,Kt as requestToContextTransformer};
1
+ import{apply as e,Metadata as t,Decoration as r,DecorationKeys as o,metadata as s}from"@decaf-ts/decoration";import{InjectablesKeys as i,DefaultInjectablesConfig as n}from"@decaf-ts/injectable-decorators";import{Delete as a,Patch as c,Put as p,Post as d,Get as l,applyDecorators as u,createParamDecorator as h,InternalServerErrorException as f,Injectable as m,Optional as y,Inject as g,UseInterceptors as b,SetMetadata as w,Scope as E,Query as A,Param as v,Response as P,Controller as T,Module as O,Catch as R,NotFoundException as x,NotAcceptableException as $,UseFilters as _,Logger as C,Global as S,Sse as q}from"@nestjs/common";import{Model as I,ValidationKeys as k,ModelBuilder as N}from"@decaf-ts/decorator-validation";import{AuthorizationError as D,PersistenceKeys as F,UUID as L,OrderDirection as j,ModelService as M,Service as U,Repository as B,ContextualLoggedClass as G,TransactionOperationKeys as H,Adapter as z,Context as Y,PreparedStatementKeys as X,ForbiddenError as Q,UnsupportedError as J,DefaultAdapterFlags as V,PersistenceService as K}from"@decaf-ts/core";import{isArray as W,isString as Z,pickBy as ee,negate as te}from"lodash";import{ApiExcludeEndpoint as re,ApiParam as oe,ApiBearerAuth as se,ApiQuery as ie,ApiOperation as ne,ApiOkResponse as ae,ApiNoContentResponse as ce,ApiNotFoundResponse as pe,ApiBody as de,getSchemaPath as le,ApiCreatedResponse as ue,ApiBadRequestResponse as he,ApiUnprocessableEntityResponse as fe,ApiTags as me,ApiExtraModels as ye,DocumentBuilder as ge,SwaggerModule as be}from"@nestjs/swagger";import{OperationKeys as we,BulkCrudOperationKeys as Ee,InternalError as Ae,DBKeys as ve,ValidationError as Pe,BaseError as Te}from"@decaf-ts/db-decorators";import{__decorate as Oe,__param as Re,__metadata as xe}from"tslib";import{Reflector as $e,REQUEST as _e,ModuleRef as Ce,APP_INTERCEPTOR as Se,RouterModule as qe}from"@nestjs/core";import{Logging as Ie,toPascalCase as ke,toKebabCase as Ne,LoggedEnvironment as De}from"@decaf-ts/logging";import{tap as Fe,Observable as Le}from"rxjs";import{readFileSync as je}from"fs";import*as Me from"path";const Ue="swagger",Be={API_OPERATION:Ue+"/apiOperation",API_RESPONSE:Ue+"/apiResponse",API_PRODUCES:Ue+"/apiProduces",API_CONSUMES:Ue+"/apiConsumes",API_TAGS:Ue+"/apiUseTags",API_CALLBACKS:Ue+"/apiCallbacks",API_PARAMETERS:Ue+"/apiParameters",API_HEADERS:Ue+"/apiHeaders",API_MODEL_PROPERTIES:Ue+"/apiModelProperties",API_MODEL_PROPERTIES_ARRAY:Ue+"/apiModelPropertiesArray",API_SECURITY:Ue+"/apiSecurity",API_EXCLUDE_ENDPOINT:Ue+"/apiExcludeEndpoint",API_EXCLUDE_CONTROLLER:Ue+"/apiExcludeController",API_EXTRA_MODELS:Ue+"/apiExtraModels",API_EXTENSION:Ue+"/apiExtension",API_SCHEMA:Ue+"/apiSchema",API_DEFAULT_GETTER:Ue+"/apiDefaultGetter",API_LINK:Ue+"/apiLink"};function Ge(e,t){if(!e)return[e,t];if(t)return[e,t];const r=W(e);return[r?e[0]:e,r]}const He=e=>void 0===e;function ze(e){if("function"==typeof e)return ze(e());if(Array.isArray(e))return e;if("object"!=typeof e)return[];const t=Object.values(e).filter(e=>"number"==typeof e).map(e=>e.toString());return Object.keys(e).filter(e=>!t.includes(e)).map(t=>e[t])}function Ye(e){return e.filter(Z).length>0?"string":"number"}function Xe(e,t,r=!0){return(o,s)=>{const i=Reflect.getMetadata(Be.API_MODEL_PROPERTIES_ARRAY,o)||[],n=":"+s;i.includes(n)||Reflect.defineMetadata(Be.API_MODEL_PROPERTIES_ARRAY,[...i,":"+s],o);const a=Reflect.getMetadata(e,o,s);if(a){const i=ee(t,te(He)),n=r?{...a,...i}:{...i,...a};Reflect.defineMetadata(e,n,o,s)}else{const r=o?.constructor?._OPENAPI_METADATA_FACTORY?.()[s]?.type??Reflect.getMetadata("design:type",o,s);Reflect.defineMetadata(e,{type:r,required:!1,...ee(t,te(He))},o,s)}}}function Qe(e={}){return Je(e)}function Je(e={},t=!0){const[r,o]=Ge(e.type,e.isArray);if((s=e={...e,type:r,isArray:o}).isArray&&"enum"in s&&void 0!==s.enum){e.type="array";const t=ze(e.enum);e.items={type:Ye(t),enum:t},delete e.enum}else if("enum"in e&&void 0!==e.enum){const t=ze(e.enum);e.enum=t,e.type=Ye(t)}var s;return Array.isArray(e.type)&&(e.type="array",e.items={type:"array",items:{type:e.type[0]}}),Xe(Be.API_MODEL_PROPERTIES,e,t)}function Ve(e,r){const{handler:o,args:s}=t.get(e,we.REFLECT+we.BLOCK)||{};return!!o&&(o(...s,r)??!1)}function Ke(t,r,o){const s={GET:[we.READ,l],POST:[we.CREATE,d],PUT:[we.UPDATE,p],PATCH:[we.UPDATE,c],DELETE:[we.DELETE,a]},[i,n]=s[r];return Ve(t,i)?e(re()):e(n(o))}function We(t,r,o){const s={GET:[Ee.READ_ALL,l],POST:[Ee.CREATE_ALL,d],PUT:[Ee.UPDATE_ALL,p],PATCH:[Ee.UPDATE_ALL,c],DELETE:[Ee.DELETE_ALL,a]},[i,n]=s[r];return Ve(t,i)?e(re()):e(n(o))}function Ze(e=[]){const t=e.map(e=>oe({name:e.name,description:e.description??"Path parameter: "+e.name,required:e.required??!0,type:e.type??String}));return u(...t)}const et=h((e,t)=>{const r=t.switchToHttp().getRequest().body,o=t.getClass(),s=o.class;if(!s)throw new f(`ModelConstructor not found on controller ${o.name}. Ensure the controller was created via FromModelController.`);return r?Array.isArray(r)?r.map(e=>new s(e)):new s(r):r}),tt=h((e,t)=>{const r=t.switchToHttp().getRequest(),o=r?.params??{},s=e??Object.keys(o),i=s.map(e=>o[e]);return{raw:o,valuesInOrder:i,keysInOrder:s}});function rt(e=[]){const t=e.map(e=>e.name);return tt(t)}const ot=h((e,t)=>{const r={...t.switchToHttp().getRequest().query??{}};if(void 0!==r.limit){const e=Number(r.limit);Number.isNaN(e)||(r.limit=e)}if(void 0!==r.offset){const e=Number(r.offset);Number.isNaN(e)||(r.offset=e)}if(void 0!==r.bookmark){const e=Number(r.bookmark);r.bookmark=Number.isNaN(e)?r.bookmark:e}return r});function st(e){const t={GET:l,POST:d,PUT:p,PATCH:c,DELETE:a}[e];if(!t)throw Error(`Unsupported HTTP verb "${e}". No NestJS decorator mapping was found.`);return t}const it="DecafModuleOptions",nt="DecafAdapter",at="DecafRoute",ct=Symbol("DecafHandlers"),pt=Symbol("DecafAdapterForOptions"),dt=Symbol("AUTH_HANDLER"),lt="auth:meta",ut=Symbol("decaf:context");let ht=class{constructor(e,t){this.reflector=e,this.authHandler=t}async intercept(e,t){const r=Ie.for(this).for(this.intercept),o=this.reflector.get(lt,e.getHandler())??this.reflector.get(lt,e.getClass());return r.verbose("Intercepted request"+(o?" for "+o:"")),this.authHandler?await this.authHandler.authorize(e,o):r.debug("No auth handler/model"),t.handle()}};function ft(e){const t=e?"string"==typeof e?e:e.name:void 0,r=[se(),b(ht)];return t&&r.push(w(lt,t)),u(...r)}ht=Oe([m(),Re(1,y()),Re(1,g(dt)),xe("design:paramtypes",[$e,Object])],ht);class mt{parseRequest(e){const t=e.headers.authorization?.split(" ")[1];return t}async authorize(e,r){const o=e.switchToHttp().getRequest(),s=this.parseRequest(o);if(!s)throw new D("Unauthenticated");if(!t.get(I.get(r),F.AUTH_ROLE).includes(s))throw new D("Missing role: "+s)}}class yt extends mt{constructor(){super()}async authorize(e,r){const o=e.switchToHttp().getRequest(),s=this.parseRequest(o);if(!s)throw new D("Unauthenticated");const i=t.get(I.get(r),F.AUTH_ROLE);if(!i.includes(s))throw new D("Missing role: "+s);return i}}let gt=class{constructor(e){this.req=e,this.uuid=L.instance.generate()}get request(){return this.req}put(e){let t;try{t=this.ctx.get("overrides")}catch(e){t={}}this._ctx=this.ctx.accumulate({overrides:Object.assign(t,e)})}applyCtx(e){if(this._ctx)throw new Ae("Trying to overwrite context");this._ctx=e}get ctx(){if(!this._ctx)throw new Ae("Context not initialized for request");return this._ctx}};var bt;gt=Oe([m({scope:E.REQUEST}),Re(0,g(_e)),xe("design:paramtypes",[Request])],gt);let wt=bt=class{constructor(e,t){this.handlers=e,this.context=t}async exec(e,t){Ie.for(bt.name).for(this.exec).debug(`CONTEXT ${this.context.uuid} running ${this.handlers.length} handlers for request ${e.method} ${e.url}`);for(const r of this.handlers)await r.handle(this.context,e,t)}};wt=bt=Oe([m({scope:E.REQUEST}),Re(0,g(ct)),xe("design:paramtypes",[Array,gt])],wt);let Et=class{constructor(e){this.ctx=e}intercept(e,t){let r=e.switchToHttp().getResponse();return t.handle().pipe(Fe(e=>{r=this.ctx.ctx.toResponse(r)}))}};Et=Oe([m(),xe("design:paramtypes",[gt])],Et);const At=e=>({name:e,description:e+" parameter for the query",required:!0,type:String});function vt(e,t,r,o=!1){const s=st(r),i=(e=>e.split("/").filter(e=>e.startsWith(":")).map(e=>e.slice(1)))(t).map(At),n=[];return"GET"===r&&o&&n.push(ie({name:"direction",required:!1,enum:j,description:"the sort order when applicable"}),ie({name:"limit",required:!1,description:"limit or page size when applicable"}),ie({name:"offset",required:!1,description:"offset or bookmark when applicable"})),{method:[s(t),...i.map(oe),...n,ne({summary:`Retrieve records using according to "${e}".`}),ae({description:"Result successfully retrieved."}),ce({description:"No content returned by the method."})],params:[rt(i),A()]}}function Pt(e,t,r,o){const s=e?.prototype??e;o.method.forEach(e=>e(s,t,r)),o.params?.forEach((e,r)=>e(s,t,r))}function Tt(e,t,...r){if(e instanceof M)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}`)}function Ot(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:s,limit:i,offset:n}=r;return await Tt(this.persistence(),e,...t.valuesInOrder,s,i,n)}catch(t){throw o.error(`Custom query "${e}" failed`,t),t}}}function Rt(e,t,r){return Object.defineProperty(e.prototype||e,t,{value:r,writable:!1}),Object.getOwnPropertyDescriptor(e.prototype||e,t)}class xt extends U{constructor(e,t){super(t),this.clientContext=e}logCtx(e,t,r=!1,o){const s=this.clientContext.ctx;let i;e=e.filter(e=>void 0!==e),o&&(o.headers||o.ip)&&(i=o,o={});const n=G.logCtx.call(this,t,o||{},r,...e,s);return this.bindLoggerToRequest(n,i)}bindLoggerToRequest(e,t){const r=this;function o(e,t){return e.log=((e,t)=>{const o=(e=>{if(!e)return;const t=e.headers,r=_t(t?.["x-forwarded-for"])??_t(t?.["x-real-ip"])??_t(t?.["X-Forwarded-For"])??_t(t?.["X-Real-IP"]);if(r)return r;if("string"==typeof e.ip&&e.ip.length)return e.ip;const o=e.socket||e.connection;return o&&"string"==typeof o.remoteAddress&&o.remoteAddress.length?o.remoteAddress:void 0})(t??r.clientContext.request);if(!o)return e;const s={ip:o};return e.for(s)})(e.log,t),e}return(e=>"object"==typeof e&&null!==e&&"function"==typeof e.then)(e)?e.then(e=>o(e,t)):o(e,t)}}class $t extends xt{persistence(e){if(!this._persistence)try{this._persistence=U.get(this.class)}catch(e){try{this._persistence=M.getService(this.class)}catch(e){this._persistence=B.forModel(this.class)}}const t=this.clientContext.request[pt]||{};return e&&this.clientContext.put(t),e?this._persistence instanceof B?this._persistence.override(t):this._persistence.for(t):this._persistence}constructor(e,t){super(e,t)}logCtx(e,t,r=!1,o){const s=this.clientContext.ctx;let i;o&&(o.headers||o.ip)&&(i=o,o={});try{o=s.get("overrides")}catch(e){}const n=this.persistence(s);let a,c;return n instanceof M?a=n.repo._adapter:n instanceof B?a=n._adapter:n.context&&(a=n),r?a.logCtx(e,t,!0,o).then(e=>this.bindLoggerToRequest(e,i)):(c=a.logCtx(e,t,!1,o),this.bindLoggerToRequest(c,i))}}function _t(e){if(e)return(Array.isArray(e)?e[0]:e).split(",").map(e=>e.trim()).filter(Boolean)[0]}const Ct=new Map;function St(e,r){if(!H.includes(e))return r;const o=(e=>(Ct.has(e)||Ct.set(e,new WeakMap),Ct.get(e)))(e),s=o.get(r);if(s)return s;const i=[we.UPDATE,Ee.UPDATE_ALL].includes(e);class n{}o.set(r,n),Object.defineProperty(n,"name",{value:`${ke(r.name)}${ke(e)}DTO`});const a=(()=>{try{return I.pk(r)}catch{return}})(),c=a?I.pkProps(r):void 0,p=a?Reflect.getMetadata("design:type",r.prototype,a):void 0,d=p===Number||p===BigInt,l=!!c?.generated||!!a&&(I.generatedBySequence(r,a)||kt(r,a)||d),u=Array.from(new Set(t.properties(r)||[])),h=new Set(I.relations(r)||[]),f=[];for(const e of u)e&&(h.has(e)||e===a&&!i&&l||e!==a&&kt(r,e)||f.push(e));for(const e of f){const t=Nt(r,e),o=!!t?.[k.REQUIRED],s=Dt(r,e)??Reflect.getMetadata("design:type",r.prototype,e),i={required:o};s&&(i.type=s),Qe(i)(n.prototype,e);const a=Reflect.getMetadata("design:type",r.prototype,e)??s;void 0!==a&&Reflect.defineMetadata("design:type",a,n.prototype,e),Object.defineProperty(n.prototype,e,{value:void 0,writable:!0,enumerable:!0,configurable:!0})}for(const o of h){const s=t.relations(r,o);if(!s)throw new Ae(`Metadata for relation ${o} not found`);let a=s.class;if("function"!=typeof a||a.name||(a=a()),!a||"function"!=typeof a)throw new Ae(`Type for relation ${o} not found`);if(!I.get(a.name))continue;const c=t.validationFor(r,o),p=!!c?.[k.LIST],d=!!c?.[k.REQUIRED],l=St(e,a);i?It(n,o,a,l,p,d):qt(n,o,l,p,d)}return n}function qt(e,t,r,o,s){Qe({type:r,required:s,isArray:o})(e.prototype,t),Reflect.defineMetadata("design:type",o?Array:r,e.prototype,t),Object.defineProperty(e.prototype,t,{value:void 0,writable:!0,enumerable:!0,configurable:!0})}function It(e,t,r,o,s,i){const n=Reflect.getMetadata(Be.API_EXTRA_MODELS,e)||[];n.includes(o)||Reflect.defineMetadata(Be.API_EXTRA_MODELS,[...n,o],e);const a="#/components/schemas/"+o.name,c=(e=>{try{const t=I.pkProps(e),r=t?.type;return r===Number||r===BigInt?"integer":"string"}catch{return"string"}})(r),p=[{$ref:a},{type:c}];Qe(s?{type:"array",required:i,oneOf:p}:{type:Object,required:i,oneOf:p})(e.prototype,t),Reflect.defineMetadata("design:type",s?Array:Object,e.prototype,t),Object.defineProperty(e.prototype,t,{value:void 0,writable:!0,enumerable:!0,configurable:!0})}function kt(e,t){let r=e;for(;r&&r!==Object&&r!==Function;){if(I.generated(r,t))return!0;r=Object.getPrototypeOf(r)}return!1}function Nt(e,r){let o=e;for(;o&&o!==Object&&o!==Function;){const e=t.validationFor(o,r);if(e)return e;o=Object.getPrototypeOf(o)}}function Dt(e,r){let o=e;for(;o&&o!==Object&&o!==Function;){const e=t.type(o,r);if(e)return e;o=Object.getPrototypeOf(o)}}z.transformerFor=(e=>{const r="string"==typeof e?e:e.alias;return t.innerGet(Symbol.for("transformers"),r)}).bind(z),z.flavoursToTransform=(()=>{const e=t.innerGet(Symbol.for("transformers"));if(e)return Object.keys(e)}).bind(z),Y.prototype.toResponse=function(e){const t=this.pending();return t&&e.header("x-pending-task",JSON.stringify(t)),e};const Ft=N.prototype;if(Ft.decorateClass||(Ft.decorateClass=function(e){return this._classDecorators||(this._classDecorators=[]),this._classDecorators.push(e),this}),Ft.Auth=function(e){return this.decorateClass(ft(e))},!Ft.__hasClassDecoratorSupport){const e=Ft.build;Ft.build=function(){let t=e.call(this);const r=this._classDecorators;if(r?.length)for(const e of r){const r=e(t);r&&(t=r)}return t},Ft.__hasClassDecoratorSupport=!0}class Lt{static{this.log=Ie.for(Lt.name)}static getPersistence(e){try{return U.get(e)}catch(t){try{return M.getService(e)}catch(t){return B.forModel(e)}}}static createQueryRoutesFromRepository(e,r=F.QUERY){const o=Lt.log.for(Lt.createQueryRoutesFromRepository),s=e instanceof M?e.repo:e,i=s.class,n=t.get(s.constructor,t.key(F.QUERY))??{},a=t.get(e.constructor,t.key(at))??{};class c extends $t{get class(){throw Error("Method not implemented.")}constructor(e,t){super(e,t)}}for(const[e,t]of Object.entries(a)){const r=[t.path.replace(/^\/+|\/+$/g,"")].filter(e=>e&&e.trim()).join("/"),s=Ot(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=Rt(c,e,s);n&&Pt(c,e,n,vt(e,r,t.httpMethod))}for(const[e,t]of Object.entries(n)){const o=[r,e,...(t.fields??[]).map(e=>":"+e)].filter(e=>e&&e.trim()).join("/"),s=Rt(c,e,Ot(e));s&&Pt(c,e,s,vt(e,o,"GET",!0))}return c}static create(e){const t=Lt.log.for(Lt.create),r=I.tableName(e),o=Ne(r),s=e.name,i=Lt.getPersistence(e),{description:n,getPK:a,apiProperties:c,path:p}=Lt.getRouteParametersFromModel(e);t.debug("Creating controller for model: "+s);const d=Lt.createQueryRoutesFromRepository(i);let l=class extends d{static get class(){return e}get class(){return e}constructor(r){super(r),this.pk=I.pk(e),t.info(`Registering dynamic controller for model: ${this.class.name} route: /${o}`)}async listBy(e,t){const{ctx:r}=(await this.logCtx([],X.LIST_BY,!0)).for(this.listBy);return this.persistence(r).listBy(e,t.direction,r)}async paginateBy(e,t){const{ctx:r}=(await this.logCtx([],X.PAGE_BY,!0)).for(this.paginateBy);return this.persistence(r).paginateBy(e,t.direction,t,r)}async find(e,t){const{ctx:r}=(await this.logCtx([],X.FIND,!0)).for(this.find),o=t.direction??j.ASC;return Tt(this.persistence(r),this.find.name,e,o,r)}async page(e,t){const{ctx:r}=(await this.logCtx([],X.PAGE,!0)).for(this.page),{direction:o=j.ASC,limit:s,offset:i,bookmark:n}=t,a={offset:i??1,limit:s??10,bookmark:n};return Tt(this.persistence(r),this.page.name,e,o,a,r)}async findOneBy(e,t){const{ctx:r}=(await this.logCtx([],X.FIND_ONE_BY,!0)).for(this.findOneBy);return this.persistence(r).findOneBy(e,t,r)}async findBy(e,t,r){const{ctx:o}=(await this.logCtx([],X.FIND_BY,!0)).for(this.findBy);return this.persistence(o).for(o.toOverrides()).findBy(e,t,o)}async statement(e,t,r){const{ctx:o}=(await this.logCtx([],F.STATEMENT,!0)).for(this.statement),{direction:s,offset:i,limit:n,bookmark:a}=r,c=(t=t.map(e=>("string"==typeof e?parseInt(e):e)||e)).length>1?t[1]:void 0,p=s??c;switch(p&&t.length>1&&(t[1]=p),e){case X.FIND:case X.FIND_BY:break;case X.LIST_BY:t.push(s);break;case X.PAGE:case X.PAGE_BY:t=[t[0],p,{limit:n,offset:i,bookmark:a}];case X.FIND_ONE_BY:case X.COUNT_OF:case X.MAX_OF:case X.MIN_OF:case X.AVG_OF:case X.SUM_OF:case X.DISTINCT_OF:case X.GROUP_OF:}return this.persistence(o).statement(e,...t,o)}async createAll(t,r){const{ctx:o,log:i}=(await this.logCtx([],Ee.CREATE_ALL,!0)).for(this.createAll);let n;i.verbose("creating new "+s);try{n=await this.persistence(o).createAll(t.map(t=>new e(t)),o)}catch(e){throw i.error("Failed to create new "+s,e),e}return i.info(`created new ${s} with id ${n[this.pk]}`),o.toResponse(r),n}async create(e,t){const{ctx:r,log:o}=(await this.logCtx([],we.CREATE,!0)).for(this.create);let i;o.verbose("creating new "+s);try{const t=this.persistence(r);i=await t.create(e,r)}catch(e){throw o.error("Failed to create new "+s,e),e}return o.info(`created new ${s} with id ${i[this.pk]}`),r.toResponse(t),i}async readAll(e){const{ctx:t,log:r}=(await this.logCtx([],Ee.READ_ALL,!0)).for(this.readAll);let o;try{r.debug(`reading ${e.length} ${s}: ${e}`);const i=this.persistence(t);o=await i.readAll(e,t)}catch(t){throw r.error(`Failed to ${s} with id ${e}`,t),t}return r.info(`read ${o.length} ${s}`),o}async read(e){const{ctx:t,log:r}=(await this.logCtx([],we.READ,!0)).for(this.read),o=a(...e.valuesInOrder);if(void 0===o)throw new Pe(`No ${this.pk} provided`);let i;try{r.debug(`reading ${s} with ${this.pk} ${o}`);const e=this.persistence(t);i=await e.read(o,t)}catch(e){throw r.error(`Failed to read ${s} with id ${o}`,e),e}return r.info(`read ${s} with id ${i[this.pk]}`),i}async updateAll(e,t){const{ctx:r,log:o}=(await this.logCtx([],Ee.UPDATE_ALL,!0)).for(this.updateAll);let i;try{o.info(`updating ${e.length} ${s}`),i=await this.persistence(r).updateAll(e,r)}catch(e){throw o.error(e),e}return r.toResponse(t),i}async update(t,r,o){const{ctx:i,log:n}=(await this.logCtx([],we.UPDATE,!0)).for(this.update),c=a(...t.valuesInOrder);if(void 0===c)throw new Pe(`No ${this.pk} provided`);let p;try{n.info(`updating ${s} with ${this.pk} ${c}`);const t=JSON.parse(JSON.stringify(r)),o=this.persistence(i);p=await o.update(new e({...t,[this.pk]:c}),i)}catch(e){throw n.error(e),e}return i.toResponse(o),p}async deleteAll(e,t){const{ctx:r,log:o}=(await this.logCtx([],Ee.DELETE_ALL,!0)).for(this.deleteAll);let i;try{o.debug(`deleting ${e.length} ${s}: ${e}`),i=await this.persistence(r).deleteAll(e,r)}catch(t){throw o.error(`Failed to delete ${s} with id ${e}`,t),t}return o.info(`deleted ${i.length} ${s}`),r.toResponse(t),i}async delete(e,t){const{ctx:r,log:o}=(await this.logCtx([],we.DELETE,!0)).for(this.delete),i=a(...e.valuesInOrder);if(void 0===i)throw new Pe(`No ${this.pk} provided`);let n;try{o.debug(`deleting ${s} with ${this.pk} ${i}`),n=await this.persistence(r).delete(i,r)}catch(e){throw o.error(`Failed to delete ${s} with id ${i}`,e),e}return o.info(`deleted ${s} with id ${i}`),r.toResponse(t),n}};return Oe([Ke(e,"GET","listBy/:key"),ne({summary:`Retrieve ${s} records by query.`}),oe({name:"key",description:"the model key to sort by"}),ie({name:"direction",required:!0,enum:j}),ae({description:s+" listed successfully."}),Re(0,v("key")),Re(1,ot()),xe("design:type",Function),xe("design:paramtypes",[String,Object]),xe("design:returntype",Promise)],l.prototype,"listBy",null),Oe([Ke(e,"GET","paginateBy/:key/:page"),ne({summary:`Retrieve ${s} records by query.`}),oe({name:"key",description:"the model key to sort by"}),oe({name:"page",description:"the page to retrieve or the bookmark"}),ie({name:"direction",required:!0,enum:j,description:"the sort order"}),ie({name:"limit",required:!0,description:"the page size"}),ie({name:"offset",description:"the bookmark when necessary"}),ae({description:s+" listed paginated."}),Re(0,v("key")),Re(1,ot()),xe("design:type",Function),xe("design:paramtypes",[String,Object]),xe("design:returntype",Promise)],l.prototype,"paginateBy",null),Oe([Ke(e,"GET","find/:value"),ne({summary:`Find ${s} records using the default query attributes.`}),oe({name:"value",description:"The string to match against the default query attributes"}),ie({name:"direction",required:!1,enum:j,description:"the sort order for the matching results"}),ae({description:s+" records matching the provided prefix."}),Re(0,v("value")),Re(1,ot()),xe("design:type",Function),xe("design:paramtypes",[String,Object]),xe("design:returntype",Promise)],l.prototype,"find",null),Oe([Ke(e,"GET","page/:value"),ne({summary:`Page ${s} records using the default query attributes.`}),oe({name:"value",description:"The string to match against the default query attributes"}),ie({name:"direction",required:!1,enum:j,description:"the sort order for the paged results"}),ie({name:"limit",required:!1,description:"page size"}),ie({name:"offset",required:!1,description:"page number"}),ie({name:"bookmark",required:!1,description:"bookmark for cursor pagination"}),ae({description:s+" records paged by the provided prefix."}),Re(0,v("value")),Re(1,ot()),xe("design:type",Function),xe("design:paramtypes",[String,Object]),xe("design:returntype",Promise)],l.prototype,"page",null),Oe([Ke(e,"GET","findOneBy/:key"),ne({summary:`Retrieve ${s} records by query.`}),oe({name:"key",description:"the model key to sort by"}),ae({description:s+" listed found."}),pe({description:`No ${s} record matches the provided identifier.`}),Re(0,v("key")),Re(1,v("value")),xe("design:type",Function),xe("design:paramtypes",[String,Object]),xe("design:returntype",Promise)],l.prototype,"findOneBy",null),Oe([Ke(e,"GET","findBy/:key/:value"),ne({summary:`Retrieve ${s} records by query.`}),oe({name:"key",description:"the model key to compare"}),oe({name:"value",description:"the value to match"}),ie({name:"direction",required:!0,enum:j,description:"the sort order when applicable"}),ae({description:s+" listed found."}),pe({description:`No ${s} record matches the provided identifier.`}),Re(0,v("key")),Re(1,v("value")),Re(2,ot()),xe("design:type",Function),xe("design:paramtypes",[String,Object,Object]),xe("design:returntype",Promise)],l.prototype,"findBy",null),Oe([Ke(e,"GET","statement/:method/*args"),ne({summary:`Executes a prepared statement on ${s}.`}),oe({name:"method",description:"the prepared statement to execute"}),oe({name:"args",description:"concatenated list of arguments the prepared statement can accept"}),ie({name:"direction",required:!0,enum:j,description:"the sort order when applicable"}),ie({name:"limit",required:!0,description:"limit or page size when applicable"}),ie({name:"offset",required:!0,description:"offset or bookmark when applicable"}),ae({description:s+" listed found."}),pe({description:`No ${s} record matches the provided identifier.`}),Re(0,v("method")),Re(1,v("args")),Re(2,ot()),xe("design:type",Function),xe("design:paramtypes",[String,Array,Object]),xe("design:returntype",Promise)],l.prototype,"statement",null),Oe([Ke(e,"POST","bulk"),ne({summary:`Create a new ${s}.`}),de({description:"Payload for "+s,schema:{type:"array",items:{$ref:le(e)}}}),ue({description:s+" created successfully.",schema:{type:"array",items:{$ref:le(e)}}}),he({description:"Payload validation failed."}),fe({description:"Repository rejected the provided payload."}),Re(0,et()),Re(1,P({passthrough:!0})),xe("design:type",Function),xe("design:paramtypes",[Array,Object]),xe("design:returntype",Promise)],l.prototype,"createAll",null),Oe([Ke(e,"POST"),ne({summary:`Create a new ${s}.`}),de({description:"Payload for "+s,type:St(we.CREATE,e)}),ue({description:s+" created successfully.",schema:{$ref:le(e)}}),he({description:"Payload validation failed."}),fe({description:"Repository rejected the provided payload."}),Re(0,et()),Re(1,P({passthrough:!0})),xe("design:type",Function),xe("design:paramtypes",[Object,Object]),xe("design:returntype",Promise)],l.prototype,"create",null),Oe([Ke(e,"GET","bulk"),ne({summary:`Retrieve a ${s} record by id.`}),ie({name:"ids",required:!0,type:"array"}),ae({description:s+" retrieved successfully.",schema:{type:"array",items:{$ref:le(e)}}}),pe({description:`No ${s} record matches the provided identifier.`}),Re(0,A("ids")),xe("design:type",Function),xe("design:paramtypes",[Array]),xe("design:returntype",Promise)],l.prototype,"readAll",null),Oe([Ke(e,"GET",p),Ze(c),ne({summary:`Retrieve a ${s} record by id.`}),ae({description:s+" retrieved successfully.",schema:{$ref:le(e)}}),pe({description:`No ${s} record matches the provided identifier.`}),Re(0,rt(c)),xe("design:type",Function),xe("design:paramtypes",[Object]),xe("design:returntype",Promise)],l.prototype,"read",null),Oe([Ke(e,"PUT","bulk"),Ze(c),ne({summary:`Replace an existing ${s} record with a new payload.`}),de({description:"Payload for replace a existing record of "+s,schema:{type:"array",$ref:le(St(we.UPDATE,e))}}),ae({description:s+" updated successfully.",schema:{type:"array",items:{$ref:le(e)}}}),pe({description:`No ${s} record matches the provided identifier.`}),he({description:"Payload validation failed."}),Re(0,et()),Re(1,P({passthrough:!0})),xe("design:type",Function),xe("design:paramtypes",[Array,Object]),xe("design:returntype",Promise)],l.prototype,"updateAll",null),Oe([Ke(e,"PUT",p),Ze(c),ne({summary:`Replace an existing ${s} record with a new payload.`}),de({description:"Payload for replace a existing record of "+s,type:St(we.UPDATE,e)}),ae({description:s+" updated successfully.",schema:{$ref:le(e)}}),pe({description:`No ${s} record matches the provided identifier.`}),he({description:"Payload validation failed."}),Re(0,rt(c)),Re(1,et()),Re(2,P({passthrough:!0})),xe("design:type",Function),xe("design:paramtypes",[Object,Object,Object]),xe("design:returntype",Promise)],l.prototype,"update",null),Oe([Ke(e,"DELETE","bulk"),Ze(c),ne({summary:`Retrieve a ${s} record by id.`}),ie({name:"ids",required:!0,type:"array"}),ae({description:s+" deleted successfully.",schema:{type:"array",items:{$ref:le(e)}}}),pe({description:`No ${s} record matches the provided identifier.`}),Re(0,A("ids")),Re(1,P({passthrough:!0})),xe("design:type",Function),xe("design:paramtypes",[Array,Object]),xe("design:returntype",Promise)],l.prototype,"deleteAll",null),Oe([Ke(e,"DELETE",p),Ze(c),ne({summary:`Delete a ${s} record by id.`}),ae({description:s+" deleted successfully.",schema:{$ref:le(e)}}),pe({description:`No ${s} record matches the provided identifier.`}),Re(0,rt(c)),Re(1,P({passthrough:!0})),xe("design:type",Function),xe("design:paramtypes",[Object,Object]),xe("design:returntype",Promise)],l.prototype,"delete",null),l=Oe([T(o),me(s),ye(e),ft(e),xe("design:paramtypes",[gt])],l),l}static getRouteParametersFromModel(e){const r=I.pk(e),o=t.get(e,t.key(ve.COMPOSED,r)),s=o?.args??[],i=Array.isArray(s)&&s.length>0?Array.from(new Set([...s])):Array.from(new Set([r])),n=t.description(e);return{path:":"+i.join("/:"),description:n,apiProperties:i.map(r=>({name:r,description:t.description(e,r),required:!0,type:String})),getPK:(...e)=>o?.separator?e.join(o.separator):e.join("")}}}function jt(e){var t;let r=class{static{t=this}static{this.log=Ie.for(t.name).for(e)}static createModelServices(e){return e.map(e=>({provide:e.name+"Service",useFactory:()=>M.forModel(e)}))}static forRoot(e,r={}){const o=this.log.for(this.forRoot);o.info("Generating controllers for flavour...");const s=z.models(e);let i=[];r.autoServices&&(o.info("Auto-services enabled. Initializing service generation."),i=this.createModelServices(s),o.info(`Auto-services completed. ${i.length} services initialized.`));const n=s.map(Lt.create);return o.info(`Generated ${n.length} controllers`),{module:t,controllers:n,providers:[...i]}}};return r=t=Oe([O({})],r),Object.assign(r,"name",{value:"DecafModule"+e}),r}r.for(i.INJECTABLE).extend({decorator:(e,t)=>(t=t||("object"==typeof e?Object.assign(e,n):n),m({scope:t.singleton?E.DEFAULT:E.REQUEST,durable:!t.singleton||void 0}))}).apply(),r.for(i.INJECT).extend({decorator:(e,t)=>(t,r,o)=>g(e||t)(t,r,o)}).apply(),r.for(k.REQUIRED).extend(Qe({required:!0})).apply(),r.for(k.MAX).extend({decorator:e=>Qe({maximum:e,required:!1})}).apply(),r.for(k.MIN).extend({decorator:e=>Qe({minimum:e,required:!1})}).apply(),r.for(k.MAX_LENGTH).extend({decorator:e=>Qe({maxLength:e,required:!1})}).apply(),r.for(k.MIN_LENGTH).extend({decorator:e=>Qe({minLength:e,required:!1})}).apply(),r.for(k.TYPE).extend({decorator:e=>(t,r)=>("function"!=typeof(e=Array.isArray(e)?e[0]:e)||e.name||(e=e()),Qe({type:e,required:!1})(t,r))}).apply(),r.for(k.DATE).extend({decorator:e=>Qe({type:String,format:"date-time",required:!1})}).apply(),r.for(k.ENUM).extend({decorator:e=>Qe({enum:Array.isArray(e)?e:Object.values(e),required:!1})}).apply(),r.for(k.PATTERN).extend({decorator:e=>Qe({pattern:"string"==typeof e?e:e.source,required:!1})}).apply(),r.for(F.COLUMN).extend({decorator:e=>Qe({name:e,required:!1})}).apply(),r.for(o.DESCRIPTION).extend({decorator:e=>Qe({description:e,required:!1})}).apply(),r.for(F.AUTH).extend({decorator:ft}).apply();class Mt extends Q{constructor(e){super(e,Mt.name)}}let Ut=class{catch(e,t){const r=t.switchToHttp(),o=r.getResponse(),s=r.getRequest(),i="production"===De.env;let n;e instanceof x||e instanceof J?n=(e=new $(e.message)).getStatus():e instanceof Te||(e=new Ae(e.message)),o.status(e.code||n).json({status:e.code||n,error:i?e.name:e.message,timestamp:(new Date).toISOString(),path:s.url,method:s.method})}};function Bt(){return _(new Ut)}function Gt(){return b(Et)}Ut=Oe([R()],Ut);const Ht={path:"docs",auth:{type:"http",scheme:"bearer",bearerFormat:"JWT",name:"Authorization",description:"Enter JWT token",in:"header"},topbarBgColor:"#000000"};class zt{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||Ht.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=Me.join(this.options.assetsPath||"",e),o=je(r,{encoding:"base64"});return t?"data:image/png;base64,"+o:o}}class Yt{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 ge).setTitle(this.options.title).setDescription(e).setVersion(this.options.version||"0.0.1").addBearerAuth(this.options.auth||Ht.auth).build();return be.createDocument(this.app,t,{extraModels:this.options.extraModels||[]})}setupSwagger(){const e=this.createDocument(),t=new zt({title:this.options.title,path:this.options.path||Ht.path,persistAuthorization:this.options.persistAuthorization??!0,assetsPath:this.options.assetsPath,faviconPath:this.options.faviconFilePath,topbarIconPath:this.options.topbarIconFilePath,topbarBgColor:this.options.topbarBgColor});be.setup(this.options.path||Ht.path,this.app,e,{...t.getCustomOptions()})}}class Xt{static get logger(){return this._logger||(this._logger=new C("NestBootstrap")),this._logger}static initialize(e){return this.app=e,this}static enableLogger(e){return this._logger=e||new C("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 Mt(`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 Yt(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 Ut]),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)}})}}var Qt;let Jt=Qt=class{constructor(e,t){this.requestContext=e,this.executor=t}async contextualize(e){const t={headers:e.headers,overrides:{}},r=z.flavoursToTransform();if(r)for(const o of r)try{const r=z.transformerFor(o),s=await r.from(e);Object.assign(t.overrides,s)}catch(e){throw new Ae("Failed to contextualize request: "+e)}return(new Y).accumulate(Object.assign({},V,{logger:Ie.get(),timestamp:new Date},t))}async intercept(e,t){const r=e.switchToHttp().getRequest(),o=e.switchToHttp().getResponse(),s=Ie.for(Qt).for(this.intercept);s.debug(`CONTEXT ${this.requestContext.uuid} - request: ${r.method} ${r.url}`);const i=await this.contextualize(r);return s.debug(`CONTEXT ${this.requestContext.uuid} contextualized - request: ${r.method} ${r.url}`),this.requestContext.applyCtx(i),s.debug(`CONTEXT ${this.requestContext.uuid} applied - request: ${r.method} ${r.url}`),await this.executor.exec(r,o),s.debug(`CONTEXT ${this.requestContext.uuid} executors finished - request: ${r.method} ${r.url}`),t.handle()}};Jt=Qt=Oe([m({scope:E.REQUEST}),xe("design:paramtypes",[gt,wt])],Jt);class Vt{}function Kt(e){return r=>(t.set("transformers",e,r),"function"==typeof r?s("transformers",e)(r):r)}var Wt;let Zt=class{static{Wt=this}static get persistence(){if(!this._persistence)throw new Ae("Persistence service not initialized");return this._persistence}static get log(){return this._logger||(this._logger=Ie.for(Wt)),this._logger}constructor(e,t){this.options=e,this.moduleRef=t}static forRoot(e){const t=this.log.for(this.forRoot);return{module:Wt,providers:[{provide:it,useValue:e},{provide:nt,useValue:this.persistence.client},{provide:ct,useFactory:()=>e.handlers?.map(e=>(t.info("Registered request handler: "+e.name),new e))??[]},ht,{provide:Se,useExisting:ht},gt,wt,{provide:Se,useClass:Jt}],exports:[it,nt,ct,gt,wt]}}static async bootPersistence(e){const t=this.log.for(this.bootPersistence);if(!this._persistence){const r=e.conf.map(([e,t,...r])=>r.pop()?[e,t,...r]:[e,t]);this._persistence=new K,await this._persistence.boot(r);const o=this._persistence.client;for(let t=0;t<o.length;t++){const r=e.conf[t];let s=r.slice(2,r.length).pop();if(!s||!s.from){const e=z.transformerFor(o[t].flavour);if(!e)throw new Ae(`No transformer found for flavour ${o[t].flavour}. you should either @requestToContextTransformer or provide a transformer in the config`);try{s=e.from?e:new e}catch(e){throw new Ae("Failed to boot transformer for "+o[t].flavour)}}Kt(o[t].flavour)(s)}if(t.info("persistence layer created successfully!"),e.initialization)try{await e.initialization()}catch(e){throw new Ae("Failed to initialize application: "+e)}}return this.persistence.client}async onApplicationShutdown(){const e=Wt.log.for(this.onApplicationShutdown),t=this.moduleRef.get(nt);for(const r of t)try{r&&(e.info("Shutting down "+r.toString()),await r.shutdown())}catch(t){e.error("Failed to shutdown application",t)}}};Zt=Wt=Oe([S(),O({}),Re(0,g(it)),xe("design:paramtypes",[Object,Ce])],Zt);const er=Symbol("LISTENING_ADAPTERS_FLAVOURS");var tr;let rr=tr=class extends xt{constructor(e,t){super(e,tr.name),this.adapters=t.map(e=>z.get(e))}listen(){const e=Ie.for(tr.name);return new Le(t=>{const r=new class{refresh(...e){return Promise.resolve().then(()=>{const r=(e=>{const[t,r,o,s]=e;return[t?.name??t,r,o,Array.isArray(s)?s.map(e=>e.serialize()):s?.serialize()]})(e);t.next({data:r})})}};try{for(const e of this.adapters)e.observe(r)}catch(e){t.error("Failed to observe event: "+(e.message||e))}return()=>{try{for(const e of this.adapters)e.unObserve(r)}catch(t){e.error(t)}}})}listenForModel(e){const t=Ie.for(tr.name);return new Le(e=>{const r=new class{refresh(...t){return Promise.resolve().then(()=>{e.next({data:t})})}};try{for(const e of this.adapters)e.observe(r)}catch(t){e.error("Failed to observe event: "+(t.message||t))}return()=>{try{for(const e of this.adapters)e.unObserve(r)}catch(e){t.error(e)}}})}};var or;Oe([q(),xe("design:type",Function),xe("design:paramtypes",[]),xe("design:returntype",Le)],rr.prototype,"listen",null),Oe([q("/:model"),Re(0,A("model")),xe("design:type",Function),xe("design:paramtypes",[String]),xe("design:returntype",Le)],rr.prototype,"listenForModel",null),rr=tr=Oe([T(),Re(1,g(er)),xe("design:paramtypes",[gt,Array])],rr);let sr=or=class{static forFlavours(e,t="events"){return{module:or,controllers:[rr],imports:[qe.register([{path:t.replace(/^\//,""),module:or}])],providers:[gt,{provide:er,useValue:e??[]}]}}};var ir;sr=or=Oe([O({})],sr);let nr=ir=class{static async forRootAsync(e){const{autoControllers:t,autoServices:r}=e,o=(await Zt.bootPersistence(e)).map(e=>e.flavour),s=[Zt.forRoot(e)];return t&&o.forEach(e=>{s.push(jt(e).forRoot(e,{autoServices:r}))}),e.observerOptions?.enableObserverEvents&&s.push(sr.forFlavours(o)),{module:ir,imports:s}}};function ar(e){const t=I.get(e);if(!t)throw new Ae("Failed to find repository for "+e);return B.forModel(t)}nr=ir=Oe([O({})],nr);const cr="##VERSION##",pr="##PACKAGE##";t.allowReregistration(!0),t.registerLibrary(pr,cr),t.allowReregistration(!1);export{dt as AUTH_HANDLER,lt as AUTH_META_KEY,Ke as ApiOperationFromModel,Ze as ApiParamsFromModel,Qe as ApiProperty,ft as Auth,ht as AuthInterceptor,We as BulkApiOperationFromModel,Mt as CorsError,nt as DECAF_ADAPTER_ID,pt as DECAF_ADAPTER_OPTIONS,ut as DECAF_CONTEXT_KEY,ct as DECAF_HANDLERS,it as DECAF_MODULE_OPTIONS,at as DECAF_ROUTE,Be as DECORATORS,Ue as DECORATORS_PREFIX,mt as DecafAuthHandler,et as DecafBody,xt as DecafController,Zt as DecafCoreModule,Ut as DecafExceptionFilter,wt as DecafHandlerExecutor,$t as DecafModelController,nr as DecafModule,rt as DecafParams,ot as DecafQuery,gt as DecafRequestContext,Jt as DecafRequestHandlerInterceptor,Et as DecafResponseInterceptor,yt as DecafRoleAuthHandler,sr as DecafStreamModule,St as DtoFor,rr as EventsController,Lt as FromModelController,st as HttpVerbToDecorator,Xt as NestBootstraper,pr as PACKAGE_NAME,Vt as RequestToContextTransformer,Yt as SwaggerBuilder,Bt as UseDecafFilter,Gt as UseDecafHeaders,cr as VERSION,Je as createApiPropertyDecorator,Xe as createPropertyDecorator,Ye as getEnumType,ze as getEnumValues,jt as getModuleFor,Ve as isOperationBlocked,He as isUndefined,ar as repoForModel,Kt as requestToContextTransformer};
2
2
  //# sourceMappingURL=for-nest.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"for-nest.js","sources":["../src/overrides/constants.ts","../src/overrides/helpers.ts","../src/overrides/decoration.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/constants.ts","../src/interceptors/AuthInterceptor.ts","../src/decaf-model/decorators/decorators.ts","../src/request/DecafAuthHandler.ts","../src/request/DecafRequestContext.ts","../src/request/DecafHandlerExecutor.ts","../src/request/DecafResponseInterceptor.ts","../src/decaf-model/utils.ts","../src/controllers.ts","../src/factory/openapi/DtoBuilder.ts","../src/overrides/overrides.ts","../src/overrides/ModelBuilderExtensions.ts","../src/decaf-model/FromModelController.ts","../src/decaf-model/DecafModelModule.ts","../src/decoration.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/interceptors/DecafRequestHandlerInterceptor.ts","../src/interceptors/context.ts","../src/core-module.ts","../src/events-module/constant.ts","../src/events-module/EventsController.ts","../src/events-module/utils.ts","../src/events-module/DecafStreamModule.ts","../src/module.ts","../src/utils.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,null,null,null,null,null,null,null,null,null,null,null,null],"names":["DECORATORS_PREFIX","DECORATORS","API_OPERATION","API_RESPONSE","API_PRODUCES","API_CONSUMES","API_TAGS","API_CALLBACKS","API_PARAMETERS","API_HEADERS","API_MODEL_PROPERTIES","API_MODEL_PROPERTIES_ARRAY","API_SECURITY","API_EXCLUDE_ENDPOINT","API_EXCLUDE_CONTROLLER","API_EXTRA_MODELS","API_EXTENSION","API_SCHEMA","API_DEFAULT_GETTER","API_LINK","getTypeIsArrayTuple","input","isArrayFlag","isInputArray","isArray","isUndefined","obj","getEnumValues","enumType","Array","numericValues","Object","values","filter","value","map","toString","keys","key","includes","getEnumType","isString","length","createPropertyDecorator","metakey","metadata","overrideExisting","target","propertyKey","properties","Reflect","getMetadata","defineMetadata","existingMetadata","newMetadata","pickBy","negate","metadataToSave","type","constructor","required","ApiProperty","options","createApiPropertyDecorator","opts","undefined","enum","enumValues","items","isOperationBlocked","ModelConstructor","op","handler","args","Metadata","get","OperationKeys","REFLECT","BLOCK","ApiOperationFromModel","verb","path","httpToCrud","GET","READ","Get","POST","CREATE","Post","PUT","UPDATE","Put","PATCH","Patch","DELETE","Delete","crudOp","HttpMethodDecorator","apply","ApiExcludeEndpoint","BulkApiOperationFromModel","BulkCrudOperationKeys","READ_ALL","CREATE_ALL","UPDATE_ALL","DELETE_ALL","ApiParamsFromModel","props","decorators","p","ApiParamDec","name","description","String","applyDecorators","DecafBody","createParamDecorator","data","ctx","body","switchToHttp","getRequest","controller","getClass","ModelConstr","class","InternalServerErrorException","item","OrderedParams","order","req","original","params","orderList","ordered","k","raw","valuesInOrder","keysInOrder","DecafParams","DecafQuery","_","parsed","query","limit","n","Number","isNaN","offset","bookmark","HttpVerbToDecorator","decorator","Error","DECAF_MODULE_OPTIONS","DECAF_ADAPTER_ID","DECAF_ROUTE","DECAF_HANDLERS","Symbol","DECAF_ADAPTER_OPTIONS","AUTH_HANDLER","AUTH_META_KEY","DECAF_CONTEXT_KEY","AuthInterceptor","reflector","authHandler","this","intercept","next","log","Logging","for","modelName","getHandler","verbose","authorize","debug","handle","Auth","model","resource","decs","ApiBearerAuth","UseInterceptors","push","SetMetadata","__decorate","Injectable","__param","Optional","Inject","Reflector","DecafAuthHandler","parseRequest","userRole","headers","authorization","split","AuthorizationError","Model","PersistenceKeys","AUTH_ROLE","DecafRoleAuthHandler","super","roles","DecafRequestContext","uuid","UUID","instance","generate","request","put","record","overrides","e","_ctx","accumulate","assign","applyCtx","InternalError","scope","Scope","REQUEST","Request","DecafHandlerExecutor","DecafHandlerExecutor_1","handlers","context","exec","res","method","url","DecafResponseInterceptor","response","getResponse","pipe","tap","toResponse","apiParamSpec","getApiDecorators","methodName","routePath","httpVerb","includeQueryParams","NestHttpRouteDec","apiPathParams","startsWith","slice","extractPathParams","swaggerQueryParams","ApiQuery","OrderDirection","ApiParam","ApiOperation","summary","ApiOkResponse","ApiNoContentResponse","Query","applyApiDecorators","descriptor","proto","prototype","forEach","d","index","resolvePersistenceMethod","persistence","ModelService","statement","createRouteHandler","async","pathParams","queryParams","JSON","stringify","direction","error","defineRouteMethod","ControllerClass","defineProperty","writable","getOwnPropertyDescriptor","DecafController","Service","clientContext","logCtx","operation","allowCreate","ip","result","ContextualLoggedClass","call","bindLoggerToRequest","self","applyRequestIp","ctxArgs","forwarded","parseIpHeader","socket","connection","remoteAddress","extractRequestIp","config","decorateLoggerWithIp","then","isPromise","DecafModelController","_persistence","getService","Repository","forModel","certs","override","contextual","repo","segment","trim","Boolean","dtoCache","Map","DtoFor","TransactionOperationKeys","cache","has","set","WeakMap","getDtoCache","cached","isUpdateOp","DynamicDTO","toPascalCase","pkProp","pk","pkPropsMetadata","pkProps","pkDesignType","pkTypeIsNumeric","BigInt","pkIsGenerated","generated","generatedBySequence","isPropertyGeneratedAcrossInheritance","allProps","from","Set","relations","scalarProps","prop","validation","getValidationAcrossInheritance","isRequired","ValidationKeys","REQUIRED","typeHint","getTypeAcrossInheritance","apiOptions","designType","enumerable","configurable","relation","relationMeta","relationType","meta","validationFor","LIST","relationDto","addRelationUpdate","addRelation","DtoClass","extraModels","dtoRef","pkTypeName","pkType","getPkOpenApiType","oneOfItems","$ref","oneOf","current","Function","getPrototypeOf","Adapter","transformerFor","adapter","alias","bind","flavoursToTransform","Context","pending","header","ModelBuilder","decorateClass","_classDecorators","__hasClassDecoratorSupport","originalBuild","build","decorated","FromModelController","getPersistence","ModelClazz","createQueryRoutesFromRepository","prefix","QUERY","queryMethods","routeMethods","QueryController","entries","replace","join","message","httpMethod","objValues","fields","f","create","tableName","toKebabCase","modelClazzName","getPK","apiProperties","getRouteParametersFromModel","BaseController","DynamicModelController","info","listBy","details","PreparedStatementKeys","LIST_BY","paginateBy","PAGE_BY","find","FIND","ASC","page","PAGE","ref","findOneBy","FIND_ONE_BY","findBy","FIND_BY","toOverrides","STATEMENT","pathDirection","a","parseInt","resolvedDirection","COUNT_OF","MAX_OF","MIN_OF","AVG_OF","SUM_OF","DISTINCT_OF","GROUP_OF","createAll","resp","created","readAll","ids","read","routeParams","id","ValidationError","updateAll","updated","update","payload","parse","deleteAll","delete","del","Param","ApiNotFoundResponse","ApiBody","schema","getSchemaPath","ApiCreatedResponse","ApiBadRequestResponse","ApiUnprocessableEntityResponse","Response","passthrough","Controller","ApiTags","ApiExtraModels","composed","DBKeys","COMPOSED","composedKeys","uniqueKeys","separator","getModuleFor","flavour","DecafModelModule","DecafModelModule_1","createModelServices","models","provide","useFactory","forRoot","trackedModels","modelServices","autoServices","controllers","module","providers","Module","Decoration","InjectablesKeys","INJECTABLE","extend","category","cfg","DefaultInjectablesConfig","singleton","DEFAULT","durable","INJECT","MAX","max","maximum","MIN","min","minimum","MAX_LENGTH","maxLength","MIN_LENGTH","minLength","TYPE","DATE","format","ENUM","PATTERN","pat","pattern","source","COLUMN","DecorationKeys","DESCRIPTION","AUTH","CorsError","ForbiddenError","msg","DecafExceptionFilter","exception","host","isProduction","LoggedEnvironment","env","statusCode","NotFoundException","UnsupportedError","NotAcceptableException","getStatus","BaseError","status","code","json","timestamp","Date","toISOString","UseDecafFilter","UseFilters","UseDecafHeaders","Catch","SWAGGER_UI_CONSTANTS","auth","scheme","bearerFormat","in","topbarBgColor","SwaggerCustomUI","customCSS","css","topbarIconPath","b64","getCustomOptions","favicon","faviconPath","customSiteTitle","title","customCss","swaggerOptions","persistAuthorization","jsonDocumentUrl","yamlDocumentUrl","file","img","filePath","assetsPath","readFileSync","encoding","SwaggerBuilder","app","createDocument","DocumentBuilder","setTitle","setDescription","setVersion","version","addBearerAuth","SwaggerModule","setupSwagger","document","swaggerUI","faviconFilePath","topbarIconFilePath","setup","NestBootstraper","logger","_logger","Logger","initialize","enableLogger","customLogger","useLogger","enableCors","origins","allowMethods","allowedOrigins","o","toLowerCase","corsOptions","origin","callback","credentials","methods","useHelmet","helmet","require","use","warn","useGlobalPipes","pipes","useGlobalFilters","filters","useGlobalInterceptors","interceptors","start","port","process","PORT","listen","getUrl","DecafRequestHandlerInterceptor","DecafRequestHandlerInterceptor_1","requestContext","executor","contextualize","flags","flavours","transformer","DefaultAdapterFlags","RequestToContextTransformer","requestToContextTransformer","DecafCoreModule","DecafCoreModule_1","moduleRef","useValue","client","H","APP_INTERCEPTOR","useExisting","useClass","exports","bootPersistence","trimmed","conf","contr","pop","PersistenceService","boot","clients","i","c","onApplicationShutdown","adapters","shutdown","Global","ModuleRef","LISTENING_ADAPTERS_FLAVOURS","EventsController","EventsController_1","Observable","observer","cb","refresh","Promise","resolve","modelConstr","serialize","normalizeEventResponse","observe","unObserve","listenForModel","Sse","DecafStreamModule","DecafStreamModule_1","forFlavours","imports","RouterModule","register","DecafModule","DecafModule_1","forRootAsync","autoControllers","observerOptions","enableObserverEvents","repoForModel","m","VERSION","PACKAGE_NAME","allowReregistration","registerLibrary"],"mappings":"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"}
1
+ {"version":3,"file":"for-nest.js","sources":["../src/overrides/constants.ts","../src/overrides/helpers.ts","../src/overrides/decoration.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/constants.ts","../src/interceptors/AuthInterceptor.ts","../src/decaf-model/decorators/decorators.ts","../src/request/DecafAuthHandler.ts","../src/request/DecafRequestContext.ts","../src/request/DecafHandlerExecutor.ts","../src/request/DecafResponseInterceptor.ts","../src/decaf-model/utils.ts","../src/controllers.ts","../src/factory/openapi/DtoBuilder.ts","../src/overrides/overrides.ts","../src/overrides/ModelBuilderExtensions.ts","../src/decaf-model/FromModelController.ts","../src/decaf-model/DecafModelModule.ts","../src/decoration.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/interceptors/DecafRequestHandlerInterceptor.ts","../src/interceptors/context.ts","../src/core-module.ts","../src/events-module/constant.ts","../src/events-module/EventsController.ts","../src/events-module/utils.ts","../src/events-module/DecafStreamModule.ts","../src/module.ts","../src/utils.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,null,null,null,null,null,null,null,null,null,null,null,null],"names":["DECORATORS_PREFIX","DECORATORS","API_OPERATION","API_RESPONSE","API_PRODUCES","API_CONSUMES","API_TAGS","API_CALLBACKS","API_PARAMETERS","API_HEADERS","API_MODEL_PROPERTIES","API_MODEL_PROPERTIES_ARRAY","API_SECURITY","API_EXCLUDE_ENDPOINT","API_EXCLUDE_CONTROLLER","API_EXTRA_MODELS","API_EXTENSION","API_SCHEMA","API_DEFAULT_GETTER","API_LINK","getTypeIsArrayTuple","input","isArrayFlag","isInputArray","isArray","isUndefined","obj","getEnumValues","enumType","Array","numericValues","Object","values","filter","value","map","toString","keys","key","includes","getEnumType","isString","length","createPropertyDecorator","metakey","metadata","overrideExisting","target","propertyKey","properties","Reflect","getMetadata","defineMetadata","existingMetadata","newMetadata","pickBy","negate","metadataToSave","type","constructor","required","ApiProperty","options","createApiPropertyDecorator","opts","undefined","enum","enumValues","items","isOperationBlocked","ModelConstructor","op","handler","args","Metadata","get","OperationKeys","REFLECT","BLOCK","ApiOperationFromModel","verb","path","httpToCrud","GET","READ","Get","POST","CREATE","Post","PUT","UPDATE","Put","PATCH","Patch","DELETE","Delete","crudOp","HttpMethodDecorator","apply","ApiExcludeEndpoint","BulkApiOperationFromModel","BulkCrudOperationKeys","READ_ALL","CREATE_ALL","UPDATE_ALL","DELETE_ALL","ApiParamsFromModel","props","decorators","p","ApiParamDec","name","description","String","applyDecorators","DecafBody","createParamDecorator","data","ctx","body","switchToHttp","getRequest","controller","getClass","ModelConstr","class","InternalServerErrorException","item","OrderedParams","order","req","original","params","orderList","ordered","k","raw","valuesInOrder","keysInOrder","DecafParams","DecafQuery","_","parsed","query","limit","n","Number","isNaN","offset","bookmark","HttpVerbToDecorator","decorator","Error","DECAF_MODULE_OPTIONS","DECAF_ADAPTER_ID","DECAF_ROUTE","DECAF_HANDLERS","Symbol","DECAF_ADAPTER_OPTIONS","AUTH_HANDLER","AUTH_META_KEY","DECAF_CONTEXT_KEY","AuthInterceptor","reflector","authHandler","this","intercept","next","log","Logging","for","modelName","getHandler","verbose","authorize","debug","handle","Auth","model","resource","decs","ApiBearerAuth","UseInterceptors","push","SetMetadata","__decorate","Injectable","__param","Optional","Inject","Reflector","DecafAuthHandler","parseRequest","userRole","headers","authorization","split","AuthorizationError","Model","PersistenceKeys","AUTH_ROLE","DecafRoleAuthHandler","super","roles","DecafRequestContext","uuid","UUID","instance","generate","request","put","record","overrides","e","_ctx","accumulate","assign","applyCtx","InternalError","scope","Scope","REQUEST","Request","DecafHandlerExecutor","DecafHandlerExecutor_1","handlers","context","exec","res","method","url","DecafResponseInterceptor","response","getResponse","pipe","tap","toResponse","apiParamSpec","getApiDecorators","methodName","routePath","httpVerb","includeQueryParams","NestHttpRouteDec","apiPathParams","startsWith","slice","extractPathParams","swaggerQueryParams","ApiQuery","OrderDirection","ApiParam","ApiOperation","summary","ApiOkResponse","ApiNoContentResponse","Query","applyApiDecorators","descriptor","proto","prototype","forEach","d","index","resolvePersistenceMethod","persistence","ModelService","statement","createRouteHandler","async","pathParams","queryParams","JSON","stringify","direction","error","defineRouteMethod","ControllerClass","defineProperty","writable","getOwnPropertyDescriptor","DecafController","Service","clientContext","logCtx","operation","allowCreate","ip","result","ContextualLoggedClass","call","bindLoggerToRequest","self","applyRequestIp","ctxArgs","forwarded","parseIpHeader","socket","connection","remoteAddress","extractRequestIp","config","decorateLoggerWithIp","then","isPromise","DecafModelController","_persistence","getService","Repository","forModel","certs","override","contextual","repo","segment","trim","Boolean","dtoCache","Map","DtoFor","TransactionOperationKeys","cache","has","set","WeakMap","getDtoCache","cached","isUpdateOp","DynamicDTO","toPascalCase","pkProp","pk","pkPropsMetadata","pkProps","pkDesignType","pkTypeIsNumeric","BigInt","pkIsGenerated","generated","generatedBySequence","isPropertyGeneratedAcrossInheritance","allProps","from","Set","relations","scalarProps","prop","validation","getValidationAcrossInheritance","isRequired","ValidationKeys","REQUIRED","typeHint","getTypeAcrossInheritance","apiOptions","designType","enumerable","configurable","relation","relationMeta","relationType","meta","validationFor","LIST","relationDto","addRelationUpdate","addRelation","DtoClass","extraModels","dtoRef","pkTypeName","pkType","getPkOpenApiType","oneOfItems","$ref","oneOf","current","Function","getPrototypeOf","Adapter","transformerFor","adapter","alias","bind","flavoursToTransform","Context","pending","header","ModelBuilder","decorateClass","_classDecorators","__hasClassDecoratorSupport","originalBuild","build","decorated","FromModelController","getPersistence","ModelClazz","createQueryRoutesFromRepository","prefix","QUERY","queryMethods","routeMethods","QueryController","entries","replace","join","message","httpMethod","objValues","fields","f","create","tableName","toKebabCase","modelClazzName","getPK","apiProperties","getRouteParametersFromModel","BaseController","DynamicModelController","info","listBy","details","PreparedStatementKeys","LIST_BY","paginateBy","PAGE_BY","find","FIND","ASC","page","PAGE","ref","findOneBy","FIND_ONE_BY","findBy","FIND_BY","toOverrides","STATEMENT","pathDirection","a","parseInt","resolvedDirection","COUNT_OF","MAX_OF","MIN_OF","AVG_OF","SUM_OF","DISTINCT_OF","GROUP_OF","createAll","resp","created","readAll","ids","read","routeParams","id","ValidationError","updateAll","updated","update","payload","parse","deleteAll","delete","del","Param","ApiNotFoundResponse","ApiBody","schema","getSchemaPath","ApiCreatedResponse","ApiBadRequestResponse","ApiUnprocessableEntityResponse","Response","passthrough","Controller","ApiTags","ApiExtraModels","composed","DBKeys","COMPOSED","composedKeys","uniqueKeys","separator","getModuleFor","flavour","DecafModelModule","DecafModelModule_1","createModelServices","models","provide","useFactory","forRoot","trackedModels","modelServices","autoServices","controllers","module","providers","Module","Decoration","InjectablesKeys","INJECTABLE","extend","category","cfg","DefaultInjectablesConfig","singleton","DEFAULT","durable","INJECT","MAX","max","maximum","MIN","min","minimum","MAX_LENGTH","maxLength","MIN_LENGTH","minLength","TYPE","DATE","format","ENUM","PATTERN","pat","pattern","source","COLUMN","DecorationKeys","DESCRIPTION","AUTH","CorsError","ForbiddenError","msg","DecafExceptionFilter","exception","host","isProduction","LoggedEnvironment","env","statusCode","NotFoundException","UnsupportedError","NotAcceptableException","getStatus","BaseError","status","code","json","timestamp","Date","toISOString","UseDecafFilter","UseFilters","UseDecafHeaders","Catch","SWAGGER_UI_CONSTANTS","auth","scheme","bearerFormat","in","topbarBgColor","SwaggerCustomUI","customCSS","css","topbarIconPath","b64","getCustomOptions","favicon","faviconPath","customSiteTitle","title","customCss","swaggerOptions","persistAuthorization","jsonDocumentUrl","yamlDocumentUrl","file","img","filePath","assetsPath","readFileSync","encoding","SwaggerBuilder","app","createDocument","DocumentBuilder","setTitle","setDescription","setVersion","version","addBearerAuth","SwaggerModule","setupSwagger","document","swaggerUI","faviconFilePath","topbarIconFilePath","setup","NestBootstraper","logger","_logger","Logger","initialize","enableLogger","customLogger","useLogger","enableCors","origins","allowMethods","allowedOrigins","o","toLowerCase","corsOptions","origin","callback","credentials","methods","useHelmet","helmet","require","use","warn","useGlobalPipes","pipes","useGlobalFilters","filters","useGlobalInterceptors","interceptors","start","port","process","PORT","listen","getUrl","DecafRequestHandlerInterceptor","DecafRequestHandlerInterceptor_1","requestContext","executor","contextualize","flags","flavours","transformer","DefaultAdapterFlags","RequestToContextTransformer","requestToContextTransformer","DecafCoreModule","DecafCoreModule_1","moduleRef","useValue","client","H","APP_INTERCEPTOR","useExisting","useClass","exports","bootPersistence","trimmed","conf","contr","pop","PersistenceService","boot","clients","i","c","initialization","onApplicationShutdown","adapters","shutdown","Global","ModuleRef","LISTENING_ADAPTERS_FLAVOURS","EventsController","EventsController_1","Observable","observer","cb","refresh","Promise","resolve","modelConstr","serialize","normalizeEventResponse","observe","unObserve","listenForModel","Sse","DecafStreamModule","DecafStreamModule_1","forFlavours","imports","RouterModule","register","DecafModule","DecafModule_1","forRootAsync","autoControllers","observerOptions","enableObserverEvents","repoForModel","m","VERSION","PACKAGE_NAME","allowReregistration","registerLibrary"],"mappings":"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"}
@@ -106,6 +106,14 @@ let DecafCoreModule = class DecafCoreModule {
106
106
  (0, interceptors_1.requestToContextTransformer)(clients[i].flavour)(transformer);
107
107
  }
108
108
  log.info("persistence layer created successfully!");
109
+ if (options.initialization) {
110
+ try {
111
+ await options.initialization();
112
+ }
113
+ catch (e) {
114
+ throw new db_decorators_1.InternalError(`Failed to initialize application: ${e}`);
115
+ }
116
+ }
109
117
  }
110
118
  return this.persistence.client;
111
119
  //
@@ -1 +1 @@
1
- {"version":3,"file":"core-module.js","sourceRoot":"","sources":["../src/core-module.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"core-module.js","sourceRoot":"","sources":["../src/core-module.ts"],"names":[],"mappings":"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"}
@@ -103,6 +103,14 @@ let DecafCoreModule = class DecafCoreModule {
103
103
  requestToContextTransformer(clients[i].flavour)(transformer);
104
104
  }
105
105
  log.info("persistence layer created successfully!");
106
+ if (options.initialization) {
107
+ try {
108
+ await options.initialization();
109
+ }
110
+ catch (e) {
111
+ throw new InternalError(`Failed to initialize application: ${e}`);
112
+ }
113
+ }
106
114
  }
107
115
  return this.persistence.client;
108
116
  //
@@ -1 +1 @@
1
- {"version":3,"file":"core-module.js","sourceRoot":"","sources":["../../src/core-module.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"core-module.js","sourceRoot":"","sources":["../../src/core-module.ts"],"names":[],"mappings":"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"}
@@ -39,5 +39,5 @@ export * from "./events-module";
39
39
  * @constant
40
40
  * @type {string}
41
41
  */
42
- export declare const VERSION = "0.3.2";
42
+ export declare const VERSION = "0.3.3";
43
43
  export declare const PACKAGE_NAME = "@decaf-ts/for-nest";
package/lib/esm/index.js CHANGED
@@ -40,7 +40,7 @@ export * from "./events-module/index.js";
40
40
  * @constant
41
41
  * @type {string}
42
42
  */
43
- export const VERSION = "0.3.2";
43
+ export const VERSION = "0.3.3";
44
44
  export const PACKAGE_NAME = "@decaf-ts/for-nest";
45
45
  Metadata.allowReregistration(true);
46
46
  Metadata.registerLibrary(PACKAGE_NAME, VERSION);
@@ -40,6 +40,7 @@ export type DecafModuleOptions<CONF = any, A extends Adapter<CONF, any, any, any
40
40
  observerOptions?: ObserverEventsOptions;
41
41
  aggregations?: boolean;
42
42
  handlers?: Type<DecafRequestHandler>[];
43
+ initialization?: () => Promise<void>;
43
44
  };
44
45
  /**
45
46
  * Abstraction used by the {@link AuthInterceptor} to authorize decaf models.
package/lib/index.cjs CHANGED
@@ -57,7 +57,7 @@ __exportStar(require("./events-module/index.cjs"), exports);
57
57
  * @constant
58
58
  * @type {string}
59
59
  */
60
- exports.VERSION = "0.3.2";
60
+ exports.VERSION = "0.3.3";
61
61
  exports.PACKAGE_NAME = "@decaf-ts/for-nest";
62
62
  decoration_1.Metadata.allowReregistration(true);
63
63
  decoration_1.Metadata.registerLibrary(exports.PACKAGE_NAME, exports.VERSION);
package/lib/index.d.ts CHANGED
@@ -39,5 +39,5 @@ export * from "./events-module";
39
39
  * @constant
40
40
  * @type {string}
41
41
  */
42
- export declare const VERSION = "0.3.2";
42
+ export declare const VERSION = "0.3.3";
43
43
  export declare const PACKAGE_NAME = "@decaf-ts/for-nest";
package/lib/types.d.ts CHANGED
@@ -40,6 +40,7 @@ export type DecafModuleOptions<CONF = any, A extends Adapter<CONF, any, any, any
40
40
  observerOptions?: ObserverEventsOptions;
41
41
  aggregations?: boolean;
42
42
  handlers?: Type<DecafRequestHandler>[];
43
+ initialization?: () => Promise<void>;
43
44
  };
44
45
  /**
45
46
  * Abstraction used by the {@link AuthInterceptor} to authorize decaf models.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@decaf-ts/for-nest",
3
- "version": "0.3.3",
3
+ "version": "0.3.4",
4
4
  "description": "NestJS decaf integration",
5
5
  "type": "module",
6
6
  "exports": {