@decaf-ts/for-nest 0.2.41 → 0.2.42

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/for-nest.cjs CHANGED
@@ -1,2 +1,2 @@
1
- var e,t;e=this,t=function(e,t,r,a,o,s,i,n,c,p,d,l,u,h,m){"use strict";function y(e){var t=Object.create(null);return e&&Object.keys(e).forEach(r=>{if("default"!==r){var a=Object.getOwnPropertyDescriptor(e,r);Object.defineProperty(t,r,a.get?a:{enumerable:!0,get:()=>e[r]})}}),t.default=e,Object.freeze(t)}var f=y(h);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 P(e){return e.filter(i.isString).length>0?"string":"number"}function b(e,t,r=!0){return(a,o)=>{const s=Reflect.getMetadata(_.API_MODEL_PROPERTIES_ARRAY,a)||[],n=":"+o;s.includes(n)||Reflect.defineMetadata(_.API_MODEL_PROPERTIES_ARRAY,[...s,":"+o],a);const c=Reflect.getMetadata(e,a,o);if(c){const s=i.pickBy(t,i.negate(A)),n=r?{...c,...s}:{...s,...c};Reflect.defineMetadata(e,n,a,o)}else{const r=a?.constructor?._OPENAPI_METADATA_FACTORY?.()[o]?.type??Reflect.getMetadata("design:type",a,o);Reflect.defineMetadata(e,{type:r,required:!1,...i.pickBy(t,i.negate(A))},a,o)}}}function O(e={}){return R(e)}function R(e={},t=!0){const[r,a]=((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((o=e={...e,type:r,isArray:a}).isArray&&"enum"in o&&void 0!==o.enum){e.type="array";const t=E(e.enum);e.items={type:P(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=P(t)}var o;return Array.isArray(e.type)&&(e.type="array",e.items={type:"array",items:{type:e.type[0]}}),b(_.API_MODEL_PROPERTIES,e,t)}function v(e,r){const{handler:a,args:o}=t.Metadata.get(e,c.OperationKeys.REFLECT+c.OperationKeys.BLOCK)||{};return!!a&&(a(...o,r)??!1)}function w(e,r,o){const s={GET:[c.OperationKeys.READ,a.Get],POST:[c.OperationKeys.CREATE,a.Post],PUT:[c.OperationKeys.UPDATE,a.Put],PATCH:[c.OperationKeys.UPDATE,a.Patch],DELETE:[c.OperationKeys.DELETE,a.Delete]},[i,p]=s[r];return v(e,i)?t.apply(n.ApiExcludeEndpoint()):t.apply(p(o))}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 a.applyDecorators(...t)}const T=a.createParamDecorator((e,t)=>{const r=t.switchToHttp().getRequest().body,o=t.getClass(),s=o.class;if(!s)throw new a.InternalServerErrorException(`ModelConstructor not found on controller ${o.name}. Ensure the controller was created via FromModelController.`);return r?Array.isArray(r)?r.map(e=>new s(e)):new s(r):r}),S=a.createParamDecorator((e,t)=>{const r=t.switchToHttp().getRequest(),a=r?.params??{},o=e??Object.keys(a),s=o.map(e=>a[e]);return{raw:a,valuesInOrder:s,keysInOrder:o}});function C(e=[]){const t=e.map(e=>e.name);return S(t)}const x=a.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:a.Get,POST:a.Post,PUT:a.Put,PATCH:a.Patch,DELETE:a.Delete}[e];if(!t)throw Error(`Unsupported HTTP verb "${e}". No NestJS decorator mapping was found.`);return t}const I="DecafModuleOptions",$="DecafAdapter",q="DecafRoute",k=Symbol("DecafHandlers"),F=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,o=[n.ApiBearerAuth(),a.UseInterceptors(e.AuthInterceptor)];return r&&o.push(a.SetMetadata(j,r)),a.applyDecorators(...o)}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),a=this.reflector.get(j,e.getHandler())??this.reflector.get(j,e.getClass());return r.verbose("Intercepted request"+(a?" for "+a:"")),this.authHandler?await this.authHandler.authorize(e,a):r.debug("No auth handler/model"),t.handle()}},e.AuthInterceptor=p.__decorate([a.Injectable(),p.__param(1,a.Optional()),p.__param(1,a.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 a=e.switchToHttp().getRequest(),i=this.parseRequest(a);if(!i)throw new s.AuthorizationError("Unauthenticated");if(!t.Metadata.get(o.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([a.Injectable({scope:a.Scope.REQUEST}),p.__param(0,a.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([a.Injectable({scope:a.Scope.REQUEST}),p.__param(0,a.Inject(k)),p.__metadata("design:paramtypes",[Array,e.DecafRequestContext])],e.DecafHandlerExecutor);const H=e=>({name:e,description:e+" parameter for the query",required:!0,type:String});function G(e,t,r,o=!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&&o&&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:[C(c),a.Query()]}}function Q(e,t,r,a){const o=e?.prototype??e;a.method.forEach(e=>e(o,t,r)),a.params?.forEach((e,r)=>e(o,t,r))}function 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 a=this.log.for(e);try{a.debug(`Invoking persistence method "${e}" given parameters: ${JSON.stringify(t.valuesInOrder)}`);const{direction:o,limit:s,offset:i}=r;return await z(this.persistence(),e,...t.valuesInOrder,o,s,i)}catch(t){throw a.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,a){const o=this.clientContext.ctx;return e=e.filter(e=>void 0!==e),s.ContextualLoggedClass.logCtx.call(this,t,a||{},r,...e,o)}}class J extends X{persistence(e){if(!this._persistence)try{this._persistence=s.ModelService.getService(this.class)}catch(e){try{this._persistence=s.Service.get(this.class)}catch(e){this._persistence=s.Repository.forModel(this.class)}}const t=this.clientContext.request[F]||{};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){const a=this.clientContext.ctx;let o={};try{o=a.get("overrides")}catch(e){}const i=this.persistence(a);let n,c;return i instanceof s.ModelService?n=i.repo._adapter:i instanceof s.Repository?n=i._adapter:i.context&&(n=i),r?n.logCtx(e,t,!0,o).then(e=>e):(c=n.logCtx(e,t,!1,o),c)}}const W=new Map;function Z(e,r){if(!s.TransactionOperationKeys.includes(e))return r;const a=(e=>(W.has(e)||W.set(e,new WeakMap),W.get(e)))(e),i=a.get(r);if(i)return i;const n=[c.OperationKeys.UPDATE,c.BulkCrudOperationKeys.UPDATE_ALL].includes(e);class p{}a.set(r,p),Object.defineProperty(p,"name",{value:`${l.toPascalCase(r.name)}${l.toPascalCase(e)}DTO`});const d=(()=>{try{return o.Model.pk(r)}catch{return}})(),u=d?o.Model.pkProps(r):void 0,h=d?Reflect.getMetadata("design:type",r.prototype,d):void 0,m=h===Number||h===BigInt,y=!!u?.generated||!!d&&(o.Model.generatedBySequence(r,d)||re(r,d)||m),f=Array.from(new Set(t.Metadata.properties(r)||[])),g=new Set(o.Model.relations(r)||[]),_=[];for(const e of f)e&&(g.has(e)||e===d&&!n&&y||e!==d&&re(r,e)||_.push(e));for(const e of _){const t=ae(r,e),a=!!t?.[o.ValidationKeys.REQUIRED],s=oe(r,e)??Reflect.getMetadata("design:type",r.prototype,e),i={required:a};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 a of g){const s=t.Metadata.relations(r,a);if(!s)throw new c.InternalError(`Metadata for relation ${a} 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 ${a} not found`);if(!o.Model.get(i.name))continue;const d=t.Metadata.validationFor(r,a),l=!!d?.[o.ValidationKeys.LIST],u=!!d?.[o.ValidationKeys.REQUIRED],h=Z(e,i);n?te(p,a,i,h,l,u):ee(p,a,h,l,u)}return p}function ee(e,t,r,a,o){O({type:r,required:o,isArray:a})(e.prototype,t),Reflect.defineMetadata("design:type",a?Array:r,e.prototype,t),Object.defineProperty(e.prototype,t,{value:void 0,writable:!0,enumerable:!0,configurable:!0})}function te(e,t,r,a,s,i){const n=Reflect.getMetadata(_.API_EXTRA_MODELS,e)||[];n.includes(a)||Reflect.defineMetadata(_.API_EXTRA_MODELS,[...n,a],e);const c="#/components/schemas/"+a.name,p=(e=>{try{const t=o.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 re(e,t){let r=e;for(;r&&r!==Object&&r!==Function;){if(o.Model.generated(r,t))return!0;r=Object.getPrototypeOf(r)}return!1}function ae(e,r){let a=e;for(;a&&a!==Object&&a!==Function;){const e=t.Metadata.validationFor(a,r);if(e)return e;a=Object.getPrototypeOf(a)}}function oe(e,r){let a=e;for(;a&&a!==Object&&a!==Function;){const e=t.Metadata.type(a,r);if(e)return e;a=Object.getPrototypeOf(a)}}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 se=o.ModelBuilder.prototype;if(se.decorateClass||(se.decorateClass=function(e){return this._classDecorators||(this._classDecorators=[]),this._classDecorators.push(e),this}),se.Auth=function(e){return this.decorateClass(K(e))},!se.__hasClassDecoratorSupport){const e=se.build;se.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},se.__hasClassDecoratorSupport=!0}class ie{static{this.log=l.Logging.for(ie.name)}static getPersistence(e){try{return s.ModelService.getService(e)}catch(t){return s.Repository.forModel(e)}}static createQueryRoutesFromRepository(e,r=s.PersistenceKeys.QUERY){const a=ie.log.for(ie.createQueryRoutesFromRepository),o=e instanceof s.ModelService?e.repo:e,i=o.class,n=t.Metadata.get(o.constructor,t.Metadata.key(s.PersistenceKeys.QUERY))??{},c=t.Metadata.get(e.constructor,t.Metadata.key(q))??{};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("/"),o=V(e);if(!o){const t=`Invalid or missing handler for model ${i.name} on decorated method ${e}`;throw a.error(t),Error(t)}const s=Y(p,e,o);s&&Q(p,e,s,G(e,r,t.httpMethod))}for(const[e,t]of Object.entries(n)){const a=[r,e,...(t.fields??[]).map(e=>":"+e)].filter(e=>e&&e.trim()).join("/"),o=Y(p,e,V(e));o&&Q(p,e,o,G(e,a,"GET",!0))}return p}static create(t){const r=ie.log.for(ie.create),i=o.Model.tableName(t),d=l.toKebabCase(i),u=t.name,h=ie.getPersistence(t),{description:m,getPK:y,apiProperties:f,path:g}=ie.getRouteParametersFromModel(t);r.debug("Creating controller for model: "+u);const _=ie.createQueryRoutesFromRepository(h);let A=class extends _{static get class(){return t}get class(){return t}constructor(e){super(e),this.pk=o.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),a=t.direction??s.OrderDirection.ASC;return z(this.persistence(r),this.find.name,e,a,r)}async page(e,t){const{ctx:r}=(await this.logCtx([],s.PreparedStatementKeys.PAGE,!0)).for(this.page),{direction:a=s.OrderDirection.ASC,limit:o,offset:i,bookmark:n}=t,c={offset:i??1,limit:o??10,bookmark:n};return z(this.persistence(r),this.page.name,e,a,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:a}=(await this.logCtx([],s.PreparedStatementKeys.FIND_BY,!0)).for(this.findBy);return this.persistence(a).for(a.toOverrides()).findBy(e,t,a)}async statement(e,t,r){const{ctx:a}=(await this.logCtx([],s.PersistenceKeys.STATEMENT,!0)).for(this.statement),{direction:o,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=o??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(o);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(a).statement(e,...t,a)}async createAll(e,r){const{ctx:a,log:o}=(await this.logCtx([],c.BulkCrudOperationKeys.CREATE_ALL,!0)).for(this.createAll);let s;o.verbose("creating new "+u);try{s=await this.persistence(a).createAll(e.map(e=>new t(e)),a)}catch(e){throw o.error("Failed to create new "+u,e),e}return o.info(`created new ${u} with id ${s[this.pk]}`),a.toResponse(r),s}async create(e,t){const{ctx:r,log:a}=(await this.logCtx([],c.OperationKeys.CREATE,!0)).for(this.create);let o;a.verbose("creating new "+u);try{const t=this.persistence(r);o=await t.create(e,r)}catch(e){throw a.error("Failed to create new "+u,e),e}return a.info(`created new ${u} with id ${o[this.pk]}`),r.toResponse(t),o}async readAll(e){const{ctx:t,log:r}=(await this.logCtx([],c.BulkCrudOperationKeys.READ_ALL,!0)).for(this.readAll);let a;try{r.debug(`reading ${e.length} ${u}: ${e}`);const o=this.persistence(t);a=await o.readAll(e,t)}catch(t){throw r.error(`Failed to ${u} with id ${e}`,t),t}return r.info(`read ${a.length} ${u}`),a}async read(e){const{ctx:t,log:r}=(await this.logCtx([],c.OperationKeys.READ,!0)).for(this.read),a=y(...e.valuesInOrder);if(void 0===a)throw new c.ValidationError(`No ${this.pk} provided`);let o;try{r.debug(`reading ${u} with ${this.pk} ${a}`);const e=this.persistence(t);o=await e.read(a,t)}catch(e){throw r.error(`Failed to read ${u} with id ${a}`,e),e}return r.info(`read ${u} with id ${o[this.pk]}`),o}async updateAll(e,t){const{ctx:r,log:a}=(await this.logCtx([],c.BulkCrudOperationKeys.UPDATE_ALL,!0)).for(this.updateAll);let o;try{a.info(`updating ${e.length} ${u}`),o=await this.persistence(r).updateAll(e,r)}catch(e){throw a.error(e),e}return r.toResponse(t),o}async update(e,r,a){const{ctx:o,log:s}=(await this.logCtx([],c.OperationKeys.UPDATE,!0)).for(this.update),i=y(...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)),a=this.persistence(o);n=await a.update(new t({...e,[this.pk]:i}),o)}catch(e){throw s.error(e),e}return o.toResponse(a),n}async deleteAll(e,t){const{ctx:r,log:a}=(await this.logCtx([],c.BulkCrudOperationKeys.DELETE_ALL,!0)).for(this.deleteAll);let o;try{a.debug(`deleting ${e.length} ${u}: ${e}`),o=await this.persistence(r).deleteAll(e,r)}catch(t){throw a.error(`Failed to delete ${u} with id ${e}`,t),t}return a.info(`deleted ${o.length} ${u}`),r.toResponse(t),o}async delete(e,t){const{ctx:r,log:a}=(await this.logCtx([],c.OperationKeys.DELETE,!0)).for(this.delete),o=y(...e.valuesInOrder);if(void 0===o)throw new c.ValidationError(`No ${this.pk} provided`);let s;try{a.debug(`deleting ${u} with ${this.pk} ${o}`),s=await this.persistence(r).delete(o,r)}catch(e){throw a.error(`Failed to delete ${u} with id ${o}`,e),e}return a.info(`deleted ${u} with id ${o}`),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,a.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,a.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,a.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,a.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,a.Param("key")),p.__param(1,a.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,a.Param("key")),p.__param(1,a.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,a.Param("method")),p.__param(1,a.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,a.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:Z(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,a.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,a.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(f),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,C(f)),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(f),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(Z(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,a.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(f),n.ApiOperation({summary:`Replace an existing ${u} record with a new payload.`}),n.ApiBody({description:"Payload for replace a existing record of "+u,type:Z(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,C(f)),p.__param(1,T()),p.__param(2,a.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(f),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,a.Query("ids")),p.__param(1,a.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(f),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,C(f)),p.__param(1,a.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([a.Controller(d),n.ApiTags(u),n.ApiExtraModels(t),K(t),p.__metadata("design:paramtypes",[e.DecafRequestContext])],A),A}static getRouteParametersFromModel(e){const r=o.Model.pk(e),a=t.Metadata.get(e,t.Metadata.key(c.DBKeys.COMPOSED,r)),s=a?.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)=>a?.separator?e.join(a.separator):e.join("")}}}function ne(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 a=this.log.for(this.forRoot);a.info("Generating controllers for flavour...");const o=s.Adapter.models(e);let i=[];r.autoServices&&(a.info("Auto-services enabled. Initializing service generation."),i=this.createModelServices(o),a.info(`Auto-services completed. ${i.length} services initialized.`));const n=o.map(ie.create);return a.info(`Generated ${n.length} controllers`),{module:t,controllers:n,providers:[...i]}}};return r=t=p.__decorate([a.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),a.Injectable({scope:t.singleton?a.Scope.DEFAULT:a.Scope.REQUEST,durable:!t.singleton||void 0}))}).apply(),t.Decoration.for(r.InjectablesKeys.INJECT).extend({decorator:(e,t)=>(t,r,o)=>a.Inject(e||t)(t,r,o)}).apply(),t.Decoration.for(o.ValidationKeys.REQUIRED).extend(O({required:!0})).apply(),t.Decoration.for(o.ValidationKeys.MAX).extend({decorator:e=>O({maximum:e,required:!1})}).apply(),t.Decoration.for(o.ValidationKeys.MIN).extend({decorator:e=>O({minimum:e,required:!1})}).apply(),t.Decoration.for(o.ValidationKeys.MAX_LENGTH).extend({decorator:e=>O({maxLength:e,required:!1})}).apply(),t.Decoration.for(o.ValidationKeys.MIN_LENGTH).extend({decorator:e=>O({minLength:e,required:!1})}).apply(),t.Decoration.for(o.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(o.ValidationKeys.DATE).extend({decorator:e=>O({type:String,format:"date-time",required:!1})}).apply(),t.Decoration.for(o.ValidationKeys.ENUM).extend({decorator:e=>O({enum:Array.isArray(e)?e:Object.values(e),required:!1})}).apply(),t.Decoration.for(o.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 ce extends s.ForbiddenError{constructor(e){super(e,ce.name)}}e.DecafExceptionFilter=class{catch(e,t){const r=t.switchToHttp(),o=r.getResponse(),i=r.getRequest(),n="production"===l.LoggedEnvironment.env;let p;e instanceof a.NotFoundException||e instanceof s.UnsupportedError?p=(e=new a.NotAcceptableException(e.message)).getStatus():e instanceof c.BaseError||(e=new c.InternalError(e.message)),o.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([a.Catch()],e.DecafExceptionFilter);const pe={path:"docs",auth:{type:"http",scheme:"bearer",bearerFormat:"JWT",name:"Authorization",description:"Enter JWT token",in:"header"},topbarBgColor:"#000000"};class de{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||pe.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=f.join(this.options.assetsPath||"",e),a=u.readFileSync(r,{encoding:"base64"});return t?"data:image/png;base64,"+a:a}}class le{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||pe.auth).build();return n.SwaggerModule.createDocument(this.app,t,{extraModels:this.options.extraModels||[]})}setupSwagger(){const e=this.createDocument(),t=new de({title:this.options.title,path:this.options.path||pe.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||pe.path,this.app,e,{...t.getCustomOptions()})}}var ue,he;e.DecafRequestHandlerInterceptor=ue=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 a of r)try{const r=s.Adapter.transformerFor(a),o=await r.from(e);Object.assign(t.overrides,o)}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(),a=e.switchToHttp().getResponse(),o=l.Logging.for(ue).for(this.intercept);o.debug(`CONTEXT ${this.requestContext.uuid} - request: ${r.method} ${r.url}`);const s=await this.contextualize(r);return o.debug(`CONTEXT ${this.requestContext.uuid} contextualized - request: ${r.method} ${r.url}`),this.requestContext.applyCtx(s),o.debug(`CONTEXT ${this.requestContext.uuid} applied - request: ${r.method} ${r.url}`),await this.executor.exec(r,a),o.debug(`CONTEXT ${this.requestContext.uuid} executors finished - request: ${r.method} ${r.url}`),t.handle()}},e.DecafRequestHandlerInterceptor=ue=p.__decorate([a.Injectable({scope:a.Scope.REQUEST}),p.__metadata("design:paramtypes",[e.DecafRequestContext,e.DecafHandlerExecutor])],e.DecafRequestHandlerInterceptor);class me{}function ye(e){return r=>(t.Metadata.set("transformers",e,r),"function"==typeof r?t.metadata("transformers",e)(r):r)}let fe=class{static{he=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(he)),this._logger}constructor(e,t){this.options=e,this.moduleRef=t}static forRoot(t){const r=this.log.for(this.forRoot);return{module:he,providers:[{provide:I,useValue:t},{provide:$,useValue:this.persistence.client},{provide:k,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,$,k,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 a=this._persistence.client;for(let t=0;t<a.length;t++){const r=e.conf[t];let[,,o]=r;if(!o){const e=s.Adapter.transformerFor(a[t].flavour);if(!e)throw new c.InternalError(`No transformer found for flavour ${a[t].flavour}. you should either @requestToContextTransformer or provide a transformer in the config`);o=e instanceof me?e:new e}ye(a[t].flavour)(o)}t.info("persistence layer created successfully!")}return this.persistence.client}async onApplicationShutdown(){const e=he.log.for(this.onApplicationShutdown),t=this.moduleRef.get($);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)}}};fe=he=p.__decorate([a.Global(),a.Module({}),p.__param(0,a.Inject(I)),p.__metadata("design:paramtypes",[Object,d.ModuleRef])],fe);const ge=Symbol("LISTENING_ADAPTERS_FLAVOURS");var _e,Ae,Ee;e.EventsController=_e=class extends X{constructor(e,t){super(e,_e.name),this.adapters=t.map(e=>s.Adapter.get(e))}listen(){const e=l.Logging.for(_e.name);return new m.Observable(t=>{const r=new class{refresh(...e){return Promise.resolve().then(()=>{const r=(e=>{const[t,r,a,o]=e;return[t?.name??t,r,a,Array.isArray(o)?o.map(e=>e.serialize()):o?.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(_e.name);return new m.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([a.Sse(),p.__metadata("design:type",Function),p.__metadata("design:paramtypes",[]),p.__metadata("design:returntype",m.Observable)],e.EventsController.prototype,"listen",null),p.__decorate([a.Sse("/:model"),p.__param(0,a.Query("model")),p.__metadata("design:type",Function),p.__metadata("design:paramtypes",[String]),p.__metadata("design:returntype",m.Observable)],e.EventsController.prototype,"listenForModel",null),e.EventsController=_e=p.__decorate([a.Controller(),p.__param(1,a.Inject(ge)),p.__metadata("design:paramtypes",[e.DecafRequestContext,Array])],e.EventsController),e.DecafStreamModule=Ae=class{static forFlavours(t,r="events"){return{module:Ae,controllers:[e.EventsController],imports:[d.RouterModule.register([{path:r.replace(/^\//,""),module:Ae}])],providers:[e.DecafRequestContext,{provide:ge,useValue:t??[]}]}}},e.DecafStreamModule=Ae=p.__decorate([a.Module({})],e.DecafStreamModule),e.DecafModule=Ee=class{static async forRootAsync(t){const{autoControllers:r,autoServices:a}=t,o=(await fe.bootPersistence(t)).map(e=>e.flavour),s=[fe.forRoot(t)];return r&&o.forEach(e=>{s.push(ne(e).forRoot(e,{autoServices:a}))}),t.observerOptions?.enableObserverEvents&&s.push(e.DecafStreamModule.forFlavours(o)),{module:Ee,imports:s}}},e.DecafModule=Ee=p.__decorate([a.Module({})],e.DecafModule);const Pe="##VERSION##",be="##PACKAGE##";t.Metadata.registerLibrary(be,Pe),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,o)=>{const s={GET:[c.BulkCrudOperationKeys.READ_ALL,a.Get],POST:[c.BulkCrudOperationKeys.CREATE_ALL,a.Post],PUT:[c.BulkCrudOperationKeys.UPDATE_ALL,a.Put],PATCH:[c.BulkCrudOperationKeys.UPDATE_ALL,a.Patch],DELETE:[c.BulkCrudOperationKeys.DELETE_ALL,a.Delete]},[i,p]=s[r];return v(e,i)?t.apply(n.ApiExcludeEndpoint()):t.apply(p(o))},e.CorsError=ce,e.DECAF_ADAPTER_ID=$,e.DECAF_ADAPTER_OPTIONS=F,e.DECAF_CONTEXT_KEY=L,e.DECAF_HANDLERS=k,e.DECAF_MODULE_OPTIONS=I,e.DECAF_ROUTE=q,e.DECORATORS=_,e.DECORATORS_PREFIX=g,e.DecafAuthHandler=B,e.DecafBody=T,e.DecafController=X,e.DecafModelController=J,e.DecafParams=C,e.DecafQuery=x,e.DecafRoleAuthHandler=class extends B{constructor(){super()}async authorize(e,r){const a=e.switchToHttp().getRequest(),i=this.parseRequest(a);if(!i)throw new s.AuthorizationError("Unauthenticated");const n=t.Metadata.get(o.Model.get(r),s.PersistenceKeys.AUTH_ROLE);if(!n.includes(i))throw new s.AuthorizationError("Missing role: "+i);return n}},e.DtoFor=Z,e.FromModelController=ie,e.HttpVerbToDecorator=M,e.NestBootstraper=class{static get logger(){return this._logger||(this._logger=new a.Logger("NestBootstrap")),this._logger}static initialize(e){return this.app=e,this}static enableLogger(e){return this._logger=e||new a.Logger("NestBootstrap"),this.app.useLogger(this._logger),this}static enableCors(e=[],t=["GET","POST","PUT","DELETE"]){const r="*"===e?"*":e.map(e=>e.trim().toLowerCase()),a={origin:(e,t)=>e?"*"===r||Array.isArray(r)&&r.includes(e.toLowerCase())?t(null,!0):void t(new ce(`Origin ${e} not allowed`)):t(null,!0),credentials:!0,methods:t.join(",")};return this.app.enableCors(a),this}static useHelmet(e){try{const t=require("helmet");this.app.use(t(e)),this.logger.log("Helmet middleware enabled successfully.")}catch(e){this.logger.warn("Helmet not installed. Skipping middleware.")}return this}static setupSwagger(e){return new le(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=me,e.SwaggerBuilder=le,e.UseDecafFilter=()=>a.UseFilters(new e.DecafExceptionFilter),e.VERSION=Pe,e.createApiPropertyDecorator=R,e.createPropertyDecorator=b,e.getEnumType=P,e.getEnumValues=E,e.getModuleFor=ne,e.isOperationBlocked=v,e.isUndefined=A,e.repoForModel=e=>{const t=o.Model.get(e);if(!t)throw new c.InternalError("Failed to find repository for "+e);return s.Repository.forModel(t)},e.requestToContextTransformer=ye},"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("fs"),require("path"),require("rxjs")):"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","fs","path","rxjs"],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.fs,e.path,e.rxjs);
1
+ var e,t;e=this,t=function(e,t,r,a,o,s,i,n,c,p,d,l,u,h,m){"use strict";function y(e){var t=Object.create(null);return e&&Object.keys(e).forEach(r=>{if("default"!==r){var a=Object.getOwnPropertyDescriptor(e,r);Object.defineProperty(t,r,a.get?a:{enumerable:!0,get:()=>e[r]})}}),t.default=e,Object.freeze(t)}var f=y(h);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 P(e){return e.filter(i.isString).length>0?"string":"number"}function b(e,t,r=!0){return(a,o)=>{const s=Reflect.getMetadata(_.API_MODEL_PROPERTIES_ARRAY,a)||[],n=":"+o;s.includes(n)||Reflect.defineMetadata(_.API_MODEL_PROPERTIES_ARRAY,[...s,":"+o],a);const c=Reflect.getMetadata(e,a,o);if(c){const s=i.pickBy(t,i.negate(A)),n=r?{...c,...s}:{...s,...c};Reflect.defineMetadata(e,n,a,o)}else{const r=a?.constructor?._OPENAPI_METADATA_FACTORY?.()[o]?.type??Reflect.getMetadata("design:type",a,o);Reflect.defineMetadata(e,{type:r,required:!1,...i.pickBy(t,i.negate(A))},a,o)}}}function O(e={}){return R(e)}function R(e={},t=!0){const[r,a]=((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((o=e={...e,type:r,isArray:a}).isArray&&"enum"in o&&void 0!==o.enum){e.type="array";const t=E(e.enum);e.items={type:P(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=P(t)}var o;return Array.isArray(e.type)&&(e.type="array",e.items={type:"array",items:{type:e.type[0]}}),b(_.API_MODEL_PROPERTIES,e,t)}function v(e,r){const{handler:a,args:o}=t.Metadata.get(e,c.OperationKeys.REFLECT+c.OperationKeys.BLOCK)||{};return!!a&&(a(...o,r)??!1)}function w(e,r,o){const s={GET:[c.OperationKeys.READ,a.Get],POST:[c.OperationKeys.CREATE,a.Post],PUT:[c.OperationKeys.UPDATE,a.Put],PATCH:[c.OperationKeys.UPDATE,a.Patch],DELETE:[c.OperationKeys.DELETE,a.Delete]},[i,p]=s[r];return v(e,i)?t.apply(n.ApiExcludeEndpoint()):t.apply(p(o))}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 a.applyDecorators(...t)}const T=a.createParamDecorator((e,t)=>{const r=t.switchToHttp().getRequest().body,o=t.getClass(),s=o.class;if(!s)throw new a.InternalServerErrorException(`ModelConstructor not found on controller ${o.name}. Ensure the controller was created via FromModelController.`);return r?Array.isArray(r)?r.map(e=>new s(e)):new s(r):r}),C=a.createParamDecorator((e,t)=>{const r=t.switchToHttp().getRequest(),a=r?.params??{},o=e??Object.keys(a),s=o.map(e=>a[e]);return{raw:a,valuesInOrder:s,keysInOrder:o}});function S(e=[]){const t=e.map(e=>e.name);return C(t)}const x=a.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:a.Get,POST:a.Post,PUT:a.Put,PATCH:a.Patch,DELETE:a.Delete}[e];if(!t)throw Error(`Unsupported HTTP verb "${e}". No NestJS decorator mapping was found.`);return t}const I="DecafModuleOptions",$="DecafAdapter",q="DecafRoute",k=Symbol("DecafHandlers"),F=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,o=[n.ApiBearerAuth(),a.UseInterceptors(e.AuthInterceptor)];return r&&o.push(a.SetMetadata(j,r)),a.applyDecorators(...o)}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),a=this.reflector.get(j,e.getHandler())??this.reflector.get(j,e.getClass());return r.verbose("Intercepted request"+(a?" for "+a:"")),this.authHandler?await this.authHandler.authorize(e,a):r.debug("No auth handler/model"),t.handle()}},e.AuthInterceptor=p.__decorate([a.Injectable(),p.__param(1,a.Optional()),p.__param(1,a.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 a=e.switchToHttp().getRequest(),i=this.parseRequest(a);if(!i)throw new s.AuthorizationError("Unauthenticated");if(!t.Metadata.get(o.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([a.Injectable({scope:a.Scope.REQUEST}),p.__param(0,a.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([a.Injectable({scope:a.Scope.REQUEST}),p.__param(0,a.Inject(k)),p.__metadata("design:paramtypes",[Array,e.DecafRequestContext])],e.DecafHandlerExecutor);const H=e=>({name:e,description:e+" parameter for the query",required:!0,type:String});function G(e,t,r,o=!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&&o&&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),a.Query()]}}function Q(e,t,r,a){const o=e?.prototype??e;a.method.forEach(e=>e(o,t,r)),a.params?.forEach((e,r)=>e(o,t,r))}function 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 a=this.log.for(e);try{a.debug(`Invoking persistence method "${e}" given parameters: ${JSON.stringify(t.valuesInOrder)}`);const{direction:o,limit:s,offset:i}=r;return await z(this.persistence(),e,...t.valuesInOrder,o,s,i)}catch(t){throw a.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,a){const o=this.clientContext.ctx;return e=e.filter(e=>void 0!==e),s.ContextualLoggedClass.logCtx.call(this,t,a||{},r,...e,o)}}class J extends X{persistence(e){if(!this._persistence)try{this._persistence=s.ModelService.getService(this.class)}catch(e){try{this._persistence=s.Service.get(this.class)}catch(e){this._persistence=s.Repository.forModel(this.class)}}const t=this.clientContext.request[F]||{};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){const a=this.clientContext.ctx;let o={};try{o=a.get("overrides")}catch(e){}const i=this.persistence(a);let n,c;return i instanceof s.ModelService?n=i.repo._adapter:i instanceof s.Repository?n=i._adapter:i.context&&(n=i),r?n.logCtx(e,t,!0,o).then(e=>e):(c=n.logCtx(e,t,!1,o),c)}}const W=new Map;function Z(e,r){if(!s.TransactionOperationKeys.includes(e))return r;const a=(e=>(W.has(e)||W.set(e,new WeakMap),W.get(e)))(e),i=a.get(r);if(i)return i;const n=[c.OperationKeys.UPDATE,c.BulkCrudOperationKeys.UPDATE_ALL].includes(e);class p{}a.set(r,p),Object.defineProperty(p,"name",{value:`${l.toPascalCase(r.name)}${l.toPascalCase(e)}DTO`});const d=(()=>{try{return o.Model.pk(r)}catch{return}})(),u=d?o.Model.pkProps(r):void 0,h=d?Reflect.getMetadata("design:type",r.prototype,d):void 0,m=h===Number||h===BigInt,y=!!u?.generated||!!d&&(o.Model.generatedBySequence(r,d)||re(r,d)||m),f=Array.from(new Set(t.Metadata.properties(r)||[])),g=new Set(o.Model.relations(r)||[]),_=[];for(const e of f)e&&(g.has(e)||e===d&&!n&&y||e!==d&&re(r,e)||_.push(e));for(const e of _){const t=ae(r,e),a=!!t?.[o.ValidationKeys.REQUIRED],s=oe(r,e)??Reflect.getMetadata("design:type",r.prototype,e),i={required:a};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 a of g){const s=t.Metadata.relations(r,a);if(!s)throw new c.InternalError(`Metadata for relation ${a} 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 ${a} not found`);if(!o.Model.get(i.name))continue;const d=t.Metadata.validationFor(r,a),l=!!d?.[o.ValidationKeys.LIST],u=!!d?.[o.ValidationKeys.REQUIRED],h=Z(e,i);n?te(p,a,i,h,l,u):ee(p,a,h,l,u)}return p}function ee(e,t,r,a,o){O({type:r,required:o,isArray:a})(e.prototype,t),Reflect.defineMetadata("design:type",a?Array:r,e.prototype,t),Object.defineProperty(e.prototype,t,{value:void 0,writable:!0,enumerable:!0,configurable:!0})}function te(e,t,r,a,s,i){const n=Reflect.getMetadata(_.API_EXTRA_MODELS,e)||[];n.includes(a)||Reflect.defineMetadata(_.API_EXTRA_MODELS,[...n,a],e);const c="#/components/schemas/"+a.name,p=(e=>{try{const t=o.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 re(e,t){let r=e;for(;r&&r!==Object&&r!==Function;){if(o.Model.generated(r,t))return!0;r=Object.getPrototypeOf(r)}return!1}function ae(e,r){let a=e;for(;a&&a!==Object&&a!==Function;){const e=t.Metadata.validationFor(a,r);if(e)return e;a=Object.getPrototypeOf(a)}}function oe(e,r){let a=e;for(;a&&a!==Object&&a!==Function;){const e=t.Metadata.type(a,r);if(e)return e;a=Object.getPrototypeOf(a)}}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 se=o.ModelBuilder.prototype;if(se.decorateClass||(se.decorateClass=function(e){return this._classDecorators||(this._classDecorators=[]),this._classDecorators.push(e),this}),se.Auth=function(e){return this.decorateClass(K(e))},!se.__hasClassDecoratorSupport){const e=se.build;se.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},se.__hasClassDecoratorSupport=!0}class ie{static{this.log=l.Logging.for(ie.name)}static getPersistence(e){try{return s.ModelService.getService(e)}catch(t){return s.Repository.forModel(e)}}static createQueryRoutesFromRepository(e,r=s.PersistenceKeys.QUERY){const a=ie.log.for(ie.createQueryRoutesFromRepository),o=e instanceof s.ModelService?e.repo:e,i=o.class,n=t.Metadata.get(o.constructor,t.Metadata.key(s.PersistenceKeys.QUERY))??{},c=t.Metadata.get(e.constructor,t.Metadata.key(q))??{};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("/"),o=V(e);if(!o){const t=`Invalid or missing handler for model ${i.name} on decorated method ${e}`;throw a.error(t),Error(t)}const s=Y(p,e,o);s&&Q(p,e,s,G(e,r,t.httpMethod))}for(const[e,t]of Object.entries(n)){const a=[r,e,...(t.fields??[]).map(e=>":"+e)].filter(e=>e&&e.trim()).join("/"),o=Y(p,e,V(e));o&&Q(p,e,o,G(e,a,"GET",!0))}return p}static create(t){const r=ie.log.for(ie.create),i=o.Model.tableName(t),d=l.toKebabCase(i),u=t.name,h=ie.getPersistence(t),{description:m,getPK:y,apiProperties:f,path:g}=ie.getRouteParametersFromModel(t);r.debug("Creating controller for model: "+u);const _=ie.createQueryRoutesFromRepository(h);let A=class extends _{static get class(){return t}get class(){return t}constructor(e){super(e),this.pk=o.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),a=t.direction??s.OrderDirection.ASC;return z(this.persistence(r),this.find.name,e,a,r)}async page(e,t){const{ctx:r}=(await this.logCtx([],s.PreparedStatementKeys.PAGE,!0)).for(this.page),{direction:a=s.OrderDirection.ASC,limit:o,offset:i,bookmark:n}=t,c={offset:i??1,limit:o??10,bookmark:n};return z(this.persistence(r),this.page.name,e,a,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:a}=(await this.logCtx([],s.PreparedStatementKeys.FIND_BY,!0)).for(this.findBy);return this.persistence(a).for(a.toOverrides()).findBy(e,t,a)}async statement(e,t,r){const{ctx:a}=(await this.logCtx([],s.PersistenceKeys.STATEMENT,!0)).for(this.statement),{direction:o,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=o??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(o);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(a).statement(e,...t,a)}async createAll(e,r){const{ctx:a,log:o}=(await this.logCtx([],c.BulkCrudOperationKeys.CREATE_ALL,!0)).for(this.createAll);let s;o.verbose("creating new "+u);try{s=await this.persistence(a).createAll(e.map(e=>new t(e)),a)}catch(e){throw o.error("Failed to create new "+u,e),e}return o.info(`created new ${u} with id ${s[this.pk]}`),a.toResponse(r),s}async create(e,t){const{ctx:r,log:a}=(await this.logCtx([],c.OperationKeys.CREATE,!0)).for(this.create);let o;a.verbose("creating new "+u);try{const t=this.persistence(r);o=await t.create(e,r)}catch(e){throw a.error("Failed to create new "+u,e),e}return a.info(`created new ${u} with id ${o[this.pk]}`),r.toResponse(t),o}async readAll(e){const{ctx:t,log:r}=(await this.logCtx([],c.BulkCrudOperationKeys.READ_ALL,!0)).for(this.readAll);let a;try{r.debug(`reading ${e.length} ${u}: ${e}`);const o=this.persistence(t);a=await o.readAll(e,t)}catch(t){throw r.error(`Failed to ${u} with id ${e}`,t),t}return r.info(`read ${a.length} ${u}`),a}async read(e){const{ctx:t,log:r}=(await this.logCtx([],c.OperationKeys.READ,!0)).for(this.read),a=y(...e.valuesInOrder);if(void 0===a)throw new c.ValidationError(`No ${this.pk} provided`);let o;try{r.debug(`reading ${u} with ${this.pk} ${a}`);const e=this.persistence(t);o=await e.read(a,t)}catch(e){throw r.error(`Failed to read ${u} with id ${a}`,e),e}return r.info(`read ${u} with id ${o[this.pk]}`),o}async updateAll(e,t){const{ctx:r,log:a}=(await this.logCtx([],c.BulkCrudOperationKeys.UPDATE_ALL,!0)).for(this.updateAll);let o;try{a.info(`updating ${e.length} ${u}`),o=await this.persistence(r).updateAll(e,r)}catch(e){throw a.error(e),e}return r.toResponse(t),o}async update(e,r,a){const{ctx:o,log:s}=(await this.logCtx([],c.OperationKeys.UPDATE,!0)).for(this.update),i=y(...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)),a=this.persistence(o);n=await a.update(new t({...e,[this.pk]:i}),o)}catch(e){throw s.error(e),e}return o.toResponse(a),n}async deleteAll(e,t){const{ctx:r,log:a}=(await this.logCtx([],c.BulkCrudOperationKeys.DELETE_ALL,!0)).for(this.deleteAll);let o;try{a.debug(`deleting ${e.length} ${u}: ${e}`),o=await this.persistence(r).deleteAll(e,r)}catch(t){throw a.error(`Failed to delete ${u} with id ${e}`,t),t}return a.info(`deleted ${o.length} ${u}`),r.toResponse(t),o}async delete(e,t){const{ctx:r,log:a}=(await this.logCtx([],c.OperationKeys.DELETE,!0)).for(this.delete),o=y(...e.valuesInOrder);if(void 0===o)throw new c.ValidationError(`No ${this.pk} provided`);let s;try{a.debug(`deleting ${u} with ${this.pk} ${o}`),s=await this.persistence(r).delete(o,r)}catch(e){throw a.error(`Failed to delete ${u} with id ${o}`,e),e}return a.info(`deleted ${u} with id ${o}`),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,a.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,a.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,a.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,a.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,a.Param("key")),p.__param(1,a.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,a.Param("key")),p.__param(1,a.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,a.Param("method")),p.__param(1,a.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,a.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:Z(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,a.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,a.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(f),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(f)),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(f),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(Z(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,a.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(f),n.ApiOperation({summary:`Replace an existing ${u} record with a new payload.`}),n.ApiBody({description:"Payload for replace a existing record of "+u,type:Z(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(f)),p.__param(1,T()),p.__param(2,a.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(f),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,a.Query("ids")),p.__param(1,a.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(f),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(f)),p.__param(1,a.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([a.Controller(d),n.ApiTags(u),n.ApiExtraModels(t),K(t),p.__metadata("design:paramtypes",[e.DecafRequestContext])],A),A}static getRouteParametersFromModel(e){const r=o.Model.pk(e),a=t.Metadata.get(e,t.Metadata.key(c.DBKeys.COMPOSED,r)),s=a?.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)=>a?.separator?e.join(a.separator):e.join("")}}}function ne(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 a=this.log.for(this.forRoot);a.info("Generating controllers for flavour...");const o=s.Adapter.models(e);let i=[];r.autoServices&&(a.info("Auto-services enabled. Initializing service generation."),i=this.createModelServices(o),a.info(`Auto-services completed. ${i.length} services initialized.`));const n=o.map(ie.create);return a.info(`Generated ${n.length} controllers`),{module:t,controllers:n,providers:[...i]}}};return r=t=p.__decorate([a.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),a.Injectable({scope:t.singleton?a.Scope.DEFAULT:a.Scope.REQUEST,durable:!t.singleton||void 0}))}).apply(),t.Decoration.for(r.InjectablesKeys.INJECT).extend({decorator:(e,t)=>(t,r,o)=>a.Inject(e||t)(t,r,o)}).apply(),t.Decoration.for(o.ValidationKeys.REQUIRED).extend(O({required:!0})).apply(),t.Decoration.for(o.ValidationKeys.MAX).extend({decorator:e=>O({maximum:e,required:!1})}).apply(),t.Decoration.for(o.ValidationKeys.MIN).extend({decorator:e=>O({minimum:e,required:!1})}).apply(),t.Decoration.for(o.ValidationKeys.MAX_LENGTH).extend({decorator:e=>O({maxLength:e,required:!1})}).apply(),t.Decoration.for(o.ValidationKeys.MIN_LENGTH).extend({decorator:e=>O({minLength:e,required:!1})}).apply(),t.Decoration.for(o.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(o.ValidationKeys.DATE).extend({decorator:e=>O({type:String,format:"date-time",required:!1})}).apply(),t.Decoration.for(o.ValidationKeys.ENUM).extend({decorator:e=>O({enum:Array.isArray(e)?e:Object.values(e),required:!1})}).apply(),t.Decoration.for(o.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 ce extends s.ForbiddenError{constructor(e){super(e,ce.name)}}e.DecafExceptionFilter=class{catch(e,t){const r=t.switchToHttp(),o=r.getResponse(),i=r.getRequest(),n="production"===l.LoggedEnvironment.env;let p;e instanceof a.NotFoundException||e instanceof s.UnsupportedError?p=(e=new a.NotAcceptableException(e.message)).getStatus():e instanceof c.BaseError||(e=new c.InternalError(e.message)),o.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([a.Catch()],e.DecafExceptionFilter);const pe={path:"docs",auth:{type:"http",scheme:"bearer",bearerFormat:"JWT",name:"Authorization",description:"Enter JWT token",in:"header"},topbarBgColor:"#000000"};class de{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||pe.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=f.join(this.options.assetsPath||"",e),a=u.readFileSync(r,{encoding:"base64"});return t?"data:image/png;base64,"+a:a}}class le{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||pe.auth).build();return n.SwaggerModule.createDocument(this.app,t,{extraModels:this.options.extraModels||[]})}setupSwagger(){const e=this.createDocument(),t=new de({title:this.options.title,path:this.options.path||pe.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||pe.path,this.app,e,{...t.getCustomOptions()})}}var ue,he;e.DecafRequestHandlerInterceptor=ue=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 a of r)try{const r=s.Adapter.transformerFor(a),o=await r.from(e);Object.assign(t.overrides,o)}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(),a=e.switchToHttp().getResponse(),o=l.Logging.for(ue).for(this.intercept);o.debug(`CONTEXT ${this.requestContext.uuid} - request: ${r.method} ${r.url}`);const s=await this.contextualize(r);return o.debug(`CONTEXT ${this.requestContext.uuid} contextualized - request: ${r.method} ${r.url}`),this.requestContext.applyCtx(s),o.debug(`CONTEXT ${this.requestContext.uuid} applied - request: ${r.method} ${r.url}`),await this.executor.exec(r,a),o.debug(`CONTEXT ${this.requestContext.uuid} executors finished - request: ${r.method} ${r.url}`),t.handle()}},e.DecafRequestHandlerInterceptor=ue=p.__decorate([a.Injectable({scope:a.Scope.REQUEST}),p.__metadata("design:paramtypes",[e.DecafRequestContext,e.DecafHandlerExecutor])],e.DecafRequestHandlerInterceptor);class me{}function ye(e){return r=>(t.Metadata.set("transformers",e,r),"function"==typeof r?t.metadata("transformers",e)(r):r)}e.DecafCoreModule=class{static{he=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(he)),this._logger}constructor(e,t){this.options=e,this.moduleRef=t}static forRoot(t){const r=this.log.for(this.forRoot);return{module:he,providers:[{provide:I,useValue:t},{provide:$,useValue:this.persistence.client},{provide:k,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,$,k,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 a=this._persistence.client;for(let t=0;t<a.length;t++){const r=e.conf[t];let[,,o]=r;if(!o){const e=s.Adapter.transformerFor(a[t].flavour);if(!e)throw new c.InternalError(`No transformer found for flavour ${a[t].flavour}. you should either @requestToContextTransformer or provide a transformer in the config`);o=e instanceof me?e:new e}ye(a[t].flavour)(o)}t.info("persistence layer created successfully!")}return this.persistence.client}async onApplicationShutdown(){const e=he.log.for(this.onApplicationShutdown),t=this.moduleRef.get($);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=he=p.__decorate([a.Global(),a.Module({}),p.__param(0,a.Inject(I)),p.__metadata("design:paramtypes",[Object,d.ModuleRef])],e.DecafCoreModule);const fe=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 m.Observable(t=>{const r=new class{refresh(...e){return Promise.resolve().then(()=>{const r=(e=>{const[t,r,a,o]=e;return[t?.name??t,r,a,Array.isArray(o)?o.map(e=>e.serialize()):o?.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 m.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([a.Sse(),p.__metadata("design:type",Function),p.__metadata("design:paramtypes",[]),p.__metadata("design:returntype",m.Observable)],e.EventsController.prototype,"listen",null),p.__decorate([a.Sse("/:model"),p.__param(0,a.Query("model")),p.__metadata("design:type",Function),p.__metadata("design:paramtypes",[String]),p.__metadata("design:returntype",m.Observable)],e.EventsController.prototype,"listenForModel",null),e.EventsController=ge=p.__decorate([a.Controller(),p.__param(1,a.Inject(fe)),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:fe,useValue:t??[]}]}}},e.DecafStreamModule=_e=p.__decorate([a.Module({})],e.DecafStreamModule),e.DecafModule=Ae=class{static async forRootAsync(t){const{autoControllers:r,autoServices:a}=t,o=(await e.DecafCoreModule.bootPersistence(t)).map(e=>e.flavour),s=[e.DecafCoreModule.forRoot(t)];return r&&o.forEach(e=>{s.push(ne(e).forRoot(e,{autoServices:a}))}),t.observerOptions?.enableObserverEvents&&s.push(e.DecafStreamModule.forFlavours(o)),{module:Ae,imports:s}}},e.DecafModule=Ae=p.__decorate([a.Module({})],e.DecafModule);const Ee="##VERSION##",Pe="##PACKAGE##";t.Metadata.allowReregistration(!0),t.Metadata.registerLibrary(Pe,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,o)=>{const s={GET:[c.BulkCrudOperationKeys.READ_ALL,a.Get],POST:[c.BulkCrudOperationKeys.CREATE_ALL,a.Post],PUT:[c.BulkCrudOperationKeys.UPDATE_ALL,a.Put],PATCH:[c.BulkCrudOperationKeys.UPDATE_ALL,a.Patch],DELETE:[c.BulkCrudOperationKeys.DELETE_ALL,a.Delete]},[i,p]=s[r];return v(e,i)?t.apply(n.ApiExcludeEndpoint()):t.apply(p(o))},e.CorsError=ce,e.DECAF_ADAPTER_ID=$,e.DECAF_ADAPTER_OPTIONS=F,e.DECAF_CONTEXT_KEY=L,e.DECAF_HANDLERS=k,e.DECAF_MODULE_OPTIONS=I,e.DECAF_ROUTE=q,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 a=e.switchToHttp().getRequest(),i=this.parseRequest(a);if(!i)throw new s.AuthorizationError("Unauthenticated");const n=t.Metadata.get(o.Model.get(r),s.PersistenceKeys.AUTH_ROLE);if(!n.includes(i))throw new s.AuthorizationError("Missing role: "+i);return n}},e.DtoFor=Z,e.FromModelController=ie,e.HttpVerbToDecorator=M,e.NestBootstraper=class{static get logger(){return this._logger||(this._logger=new a.Logger("NestBootstrap")),this._logger}static initialize(e){return this.app=e,this}static enableLogger(e){return this._logger=e||new a.Logger("NestBootstrap"),this.app.useLogger(this._logger),this}static enableCors(e=[],t=["GET","POST","PUT","DELETE"]){const r="*"===e?"*":e.map(e=>e.trim().toLowerCase()),a={origin:(e,t)=>e?"*"===r||Array.isArray(r)&&r.includes(e.toLowerCase())?t(null,!0):void t(new ce(`Origin ${e} not allowed`)):t(null,!0),credentials:!0,methods:t.join(",")};return this.app.enableCors(a),this}static useHelmet(e){try{const t=require("helmet");this.app.use(t(e)),this.logger.log("Helmet middleware enabled successfully.")}catch(e){this.logger.warn("Helmet not installed. Skipping middleware.")}return this}static setupSwagger(e){return new le(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=Pe,e.RequestToContextTransformer=me,e.SwaggerBuilder=le,e.UseDecafFilter=()=>a.UseFilters(new e.DecafExceptionFilter),e.VERSION=Ee,e.createApiPropertyDecorator=R,e.createPropertyDecorator=b,e.getEnumType=P,e.getEnumValues=E,e.getModuleFor=ne,e.isOperationBlocked=v,e.isUndefined=A,e.repoForModel=e=>{const t=o.Model.get(e);if(!t)throw new c.InternalError("Failed to find repository for "+e);return s.Repository.forModel(t)},e.requestToContextTransformer=ye},"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("fs"),require("path"),require("rxjs")):"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","fs","path","rxjs"],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.fs,e.path,e.rxjs);
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/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/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/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],"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","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","ContextualLoggedClass","call","DecafModelController","_persistence","getService","Repository","forModel","certs","override","contextual","ctxArgs","repo","then","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","toResponse","pending","header","ModelBuilder","decorateClass","_classDecorators","__hasClassDecoratorSupport","originalBuild","build","result","decorated","FromModelController","getPersistence","ModelClazz","createQueryRoutesFromRepository","prefix","QUERY","queryMethods","routeMethods","QueryController","entries","replace","segment","trim","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","response","getResponse","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","config","DocumentBuilder","setTitle","setDescription","setVersion","version","addBearerAuth","SwaggerModule","setupSwagger","document","swaggerUI","faviconFilePath","topbarIconFilePath","setup","DecafRequestHandlerInterceptor","DecafRequestHandlerInterceptor_1","requestContext","executor","contextualize","flags","flavours","transformer","DefaultAdapterFlags","logger","RequestToContextTransformer","requestToContextTransformer","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","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/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/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/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],"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","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","ContextualLoggedClass","call","DecafModelController","_persistence","getService","Repository","forModel","certs","override","contextual","ctxArgs","repo","then","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","toResponse","pending","header","ModelBuilder","decorateClass","_classDecorators","__hasClassDecoratorSupport","originalBuild","build","result","decorated","FromModelController","getPersistence","ModelClazz","createQueryRoutesFromRepository","prefix","QUERY","queryMethods","routeMethods","QueryController","entries","replace","segment","trim","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","response","getResponse","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","config","DocumentBuilder","setTitle","setDescription","setVersion","version","addBearerAuth","SwaggerModule","setupSwagger","document","swaggerUI","faviconFilePath","topbarIconFilePath","setup","DecafRequestHandlerInterceptor","DecafRequestHandlerInterceptor_1","requestContext","executor","contextualize","flags","flavours","transformer","DefaultAdapterFlags","logger","RequestToContextTransformer","requestToContextTransformer","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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"}
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 E,Scope as w,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 S,Global as C,Sse as I}from"@nestjs/common";import{Model as k,ValidationKeys as q,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 Ee,BulkCrudOperationKeys as we,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 Se,APP_INTERCEPTOR as Ce,RouterModule as Ie}from"@nestjs/core";import{Logging as ke,toPascalCase as qe,toKebabCase as Ne,LoggedEnvironment as De}from"@decaf-ts/logging";import{readFileSync as Fe}from"fs";import*as Le from"path";import{Observable as je}from"rxjs";const Me="swagger",Ue={API_OPERATION:Me+"/apiOperation",API_RESPONSE:Me+"/apiResponse",API_PRODUCES:Me+"/apiProduces",API_CONSUMES:Me+"/apiConsumes",API_TAGS:Me+"/apiUseTags",API_CALLBACKS:Me+"/apiCallbacks",API_PARAMETERS:Me+"/apiParameters",API_HEADERS:Me+"/apiHeaders",API_MODEL_PROPERTIES:Me+"/apiModelProperties",API_MODEL_PROPERTIES_ARRAY:Me+"/apiModelPropertiesArray",API_SECURITY:Me+"/apiSecurity",API_EXCLUDE_ENDPOINT:Me+"/apiExcludeEndpoint",API_EXCLUDE_CONTROLLER:Me+"/apiExcludeController",API_EXTRA_MODELS:Me+"/apiExtraModels",API_EXTENSION:Me+"/apiExtension",API_SCHEMA:Me+"/apiSchema",API_DEFAULT_GETTER:Me+"/apiDefaultGetter",API_LINK:Me+"/apiLink"};function Be(e,t){if(!e)return[e,t];if(t)return[e,t];const r=W(e);return[r?e[0]:e,r]}const Ge=e=>void 0===e;function He(e){if("function"==typeof e)return He(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 ze(e){return e.filter(Z).length>0?"string":"number"}function Ye(e,t,r=!0){return(o,s)=>{const i=Reflect.getMetadata(Ue.API_MODEL_PROPERTIES_ARRAY,o)||[],n=":"+s;i.includes(n)||Reflect.defineMetadata(Ue.API_MODEL_PROPERTIES_ARRAY,[...i,":"+s],o);const a=Reflect.getMetadata(e,o,s);if(a){const i=ee(t,te(Ge)),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(Ge))},o,s)}}}function Xe(e={}){return Qe(e)}function Qe(e={},t=!0){const[r,o]=Be(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=He(e.enum);e.items={type:ze(t),enum:t},delete e.enum}else if("enum"in e&&void 0!==e.enum){const t=He(e.enum);e.enum=t,e.type=ze(t)}var s;return Array.isArray(e.type)&&(e.type="array",e.items={type:"array",items:{type:e.type[0]}}),Ye(Ue.API_MODEL_PROPERTIES,e,t)}function Je(e,r){const{handler:o,args:s}=t.get(e,Ee.REFLECT+Ee.BLOCK)||{};return!!o&&(o(...s,r)??!1)}function Ve(t,r,o){const s={GET:[Ee.READ,l],POST:[Ee.CREATE,d],PUT:[Ee.UPDATE,p],PATCH:[Ee.UPDATE,c],DELETE:[Ee.DELETE,a]},[i,n]=s[r];return Je(t,i)?e(re()):e(n(o))}function Ke(t,r,o){const s={GET:[we.READ_ALL,l],POST:[we.CREATE_ALL,d],PUT:[we.UPDATE_ALL,p],PATCH:[we.UPDATE_ALL,c],DELETE:[we.DELETE_ALL,a]},[i,n]=s[r];return Je(t,i)?e(re()):e(n(o))}function We(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 Ze=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}),et=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 tt(e=[]){const t=e.map(e=>e.name);return et(t)}const rt=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 ot(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 st="DecafModuleOptions",it="DecafAdapter",nt="DecafRoute",at=Symbol("DecafHandlers"),ct=Symbol("DecafAdapterForOptions"),pt=Symbol("AUTH_HANDLER"),dt="auth:meta",lt=Symbol("decaf:context");let ut=class{constructor(e,t){this.reflector=e,this.authHandler=t}async intercept(e,t){const r=ke.for(this).for(this.intercept),o=this.reflector.get(dt,e.getHandler())??this.reflector.get(dt,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 ht(e){const t=e?"string"==typeof e?e:e.name:void 0,r=[se(),b(ut)];return t&&r.push(E(dt,t)),u(...r)}ut=Oe([m(),Re(1,y()),Re(1,g(pt)),xe("design:paramtypes",[$e,Object])],ut);class ft{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(k.get(r),F.AUTH_ROLE).includes(s))throw new D("Missing role: "+s)}}class mt extends ft{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(k.get(r),F.AUTH_ROLE);if(!i.includes(s))throw new D("Missing role: "+s);return i}}let yt=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 gt;yt=Oe([m({scope:w.REQUEST}),Re(0,g(_e)),xe("design:paramtypes",[Request])],yt);let bt=gt=class{constructor(e,t){this.handlers=e,this.context=t}async exec(e,t){ke.for(gt.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)}};bt=gt=Oe([m({scope:w.REQUEST}),Re(0,g(at)),xe("design:paramtypes",[Array,yt])],bt);const Et=e=>({name:e,description:e+" parameter for the query",required:!0,type:String});function wt(e,t,r,o=!1){const s=ot(r),i=(e=>e.split("/").filter(e=>e.startsWith(":")).map(e=>e.slice(1)))(t).map(Et),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:[tt(i),A()]}}function At(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 vt(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 Pt(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 vt(this.persistence(),e,...t.valuesInOrder,s,i,n)}catch(t){throw o.error(`Custom query "${e}" failed`,t),t}}}function Tt(e,t,r){return Object.defineProperty(e.prototype||e,t,{value:r,writable:!1}),Object.getOwnPropertyDescriptor(e.prototype||e,t)}class Ot extends U{constructor(e,t){super(t),this.clientContext=e}logCtx(e,t,r=!1,o){const s=this.clientContext.ctx;return e=e.filter(e=>void 0!==e),G.logCtx.call(this,t,o||{},r,...e,s)}}class Rt extends Ot{persistence(e){if(!this._persistence)try{this._persistence=M.getService(this.class)}catch(e){try{this._persistence=U.get(this.class)}catch(e){this._persistence=B.forModel(this.class)}}const t=this.clientContext.request[ct]||{};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){const o=this.clientContext.ctx;let s={};try{s=o.get("overrides")}catch(e){}const i=this.persistence(o);let n,a;return i instanceof M?n=i.repo._adapter:i instanceof B?n=i._adapter:i.context&&(n=i),r?n.logCtx(e,t,!0,s).then(e=>e):(a=n.logCtx(e,t,!1,s),a)}}const xt=new Map;function $t(e,r){if(!H.includes(e))return r;const o=(e=>(xt.has(e)||xt.set(e,new WeakMap),xt.get(e)))(e),s=o.get(r);if(s)return s;const i=[Ee.UPDATE,we.UPDATE_ALL].includes(e);class n{}o.set(r,n),Object.defineProperty(n,"name",{value:`${qe(r.name)}${qe(e)}DTO`});const a=(()=>{try{return k.pk(r)}catch{return}})(),c=a?k.pkProps(r):void 0,p=a?Reflect.getMetadata("design:type",r.prototype,a):void 0,d=p===Number||p===BigInt,l=!!c?.generated||!!a&&(k.generatedBySequence(r,a)||Ct(r,a)||d),u=Array.from(new Set(t.properties(r)||[])),h=new Set(k.relations(r)||[]),f=[];for(const e of u)e&&(h.has(e)||e===a&&!i&&l||e!==a&&Ct(r,e)||f.push(e));for(const e of f){const t=It(r,e),o=!!t?.[q.REQUIRED],s=kt(r,e)??Reflect.getMetadata("design:type",r.prototype,e),i={required:o};s&&(i.type=s),Xe(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(!k.get(a.name))continue;const c=t.validationFor(r,o),p=!!c?.[q.LIST],d=!!c?.[q.REQUIRED],l=$t(e,a);i?St(n,o,a,l,p,d):_t(n,o,l,p,d)}return n}function _t(e,t,r,o,s){Xe({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 St(e,t,r,o,s,i){const n=Reflect.getMetadata(Ue.API_EXTRA_MODELS,e)||[];n.includes(o)||Reflect.defineMetadata(Ue.API_EXTRA_MODELS,[...n,o],e);const a="#/components/schemas/"+o.name,c=(e=>{try{const t=k.pkProps(e),r=t?.type;return r===Number||r===BigInt?"integer":"string"}catch{return"string"}})(r),p=[{$ref:a},{type:c}];Xe(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 Ct(e,t){let r=e;for(;r&&r!==Object&&r!==Function;){if(k.generated(r,t))return!0;r=Object.getPrototypeOf(r)}return!1}function It(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 kt(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 qt=N.prototype;if(qt.decorateClass||(qt.decorateClass=function(e){return this._classDecorators||(this._classDecorators=[]),this._classDecorators.push(e),this}),qt.Auth=function(e){return this.decorateClass(ht(e))},!qt.__hasClassDecoratorSupport){const e=qt.build;qt.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},qt.__hasClassDecoratorSupport=!0}class Nt{static{this.log=ke.for(Nt.name)}static getPersistence(e){try{return M.getService(e)}catch(t){return B.forModel(e)}}static createQueryRoutesFromRepository(e,r=F.QUERY){const o=Nt.log.for(Nt.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(nt))??{};class c extends Rt{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=Pt(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=Tt(c,e,s);n&&At(c,e,n,wt(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=Tt(c,e,Pt(e));s&&At(c,e,s,wt(e,o,"GET",!0))}return c}static create(e){const t=Nt.log.for(Nt.create),r=k.tableName(e),o=Ne(r),s=e.name,i=Nt.getPersistence(e),{description:n,getPK:a,apiProperties:c,path:p}=Nt.getRouteParametersFromModel(e);t.debug("Creating controller for model: "+s);const d=Nt.createQueryRoutesFromRepository(i);let l=class extends d{static get class(){return e}get class(){return e}constructor(r){super(r),this.pk=k.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 vt(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 vt(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([],we.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([],Ee.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([],we.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([],Ee.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([],we.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([],Ee.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([],we.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([],Ee.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([Ve(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,rt()),xe("design:type",Function),xe("design:paramtypes",[String,Object]),xe("design:returntype",Promise)],l.prototype,"listBy",null),Oe([Ve(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,rt()),xe("design:type",Function),xe("design:paramtypes",[String,Object]),xe("design:returntype",Promise)],l.prototype,"paginateBy",null),Oe([Ve(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,rt()),xe("design:type",Function),xe("design:paramtypes",[String,Object]),xe("design:returntype",Promise)],l.prototype,"find",null),Oe([Ve(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,rt()),xe("design:type",Function),xe("design:paramtypes",[String,Object]),xe("design:returntype",Promise)],l.prototype,"page",null),Oe([Ve(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([Ve(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,rt()),xe("design:type",Function),xe("design:paramtypes",[String,Object,Object]),xe("design:returntype",Promise)],l.prototype,"findBy",null),Oe([Ve(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,rt()),xe("design:type",Function),xe("design:paramtypes",[String,Array,Object]),xe("design:returntype",Promise)],l.prototype,"statement",null),Oe([Ve(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,Ze()),Re(1,P({passthrough:!0})),xe("design:type",Function),xe("design:paramtypes",[Array,Object]),xe("design:returntype",Promise)],l.prototype,"createAll",null),Oe([Ve(e,"POST"),ne({summary:`Create a new ${s}.`}),de({description:"Payload for "+s,type:$t(Ee.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,Ze()),Re(1,P({passthrough:!0})),xe("design:type",Function),xe("design:paramtypes",[Object,Object]),xe("design:returntype",Promise)],l.prototype,"create",null),Oe([Ve(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([Ve(e,"GET",p),We(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,tt(c)),xe("design:type",Function),xe("design:paramtypes",[Object]),xe("design:returntype",Promise)],l.prototype,"read",null),Oe([Ve(e,"PUT","bulk"),We(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($t(Ee.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,Ze()),Re(1,P({passthrough:!0})),xe("design:type",Function),xe("design:paramtypes",[Array,Object]),xe("design:returntype",Promise)],l.prototype,"updateAll",null),Oe([Ve(e,"PUT",p),We(c),ne({summary:`Replace an existing ${s} record with a new payload.`}),de({description:"Payload for replace a existing record of "+s,type:$t(Ee.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,tt(c)),Re(1,Ze()),Re(2,P({passthrough:!0})),xe("design:type",Function),xe("design:paramtypes",[Object,Object,Object]),xe("design:returntype",Promise)],l.prototype,"update",null),Oe([Ve(e,"DELETE","bulk"),We(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([Ve(e,"DELETE",p),We(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,tt(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),ht(e),xe("design:paramtypes",[yt])],l),l}static getRouteParametersFromModel(e){const r=k.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 Dt(e){var t;let r=class{static{t=this}static{this.log=ke.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(Nt.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?w.DEFAULT:w.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(q.REQUIRED).extend(Xe({required:!0})).apply(),r.for(q.MAX).extend({decorator:e=>Xe({maximum:e,required:!1})}).apply(),r.for(q.MIN).extend({decorator:e=>Xe({minimum:e,required:!1})}).apply(),r.for(q.MAX_LENGTH).extend({decorator:e=>Xe({maxLength:e,required:!1})}).apply(),r.for(q.MIN_LENGTH).extend({decorator:e=>Xe({minLength:e,required:!1})}).apply(),r.for(q.TYPE).extend({decorator:e=>(t,r)=>("function"!=typeof(e=Array.isArray(e)?e[0]:e)||e.name||(e=e()),Xe({type:e,required:!1})(t,r))}).apply(),r.for(q.DATE).extend({decorator:e=>Xe({type:String,format:"date-time",required:!1})}).apply(),r.for(q.ENUM).extend({decorator:e=>Xe({enum:Array.isArray(e)?e:Object.values(e),required:!1})}).apply(),r.for(q.PATTERN).extend({decorator:e=>Xe({pattern:"string"==typeof e?e:e.source,required:!1})}).apply(),r.for(F.COLUMN).extend({decorator:e=>Xe({name:e,required:!1})}).apply(),r.for(o.DESCRIPTION).extend({decorator:e=>Xe({description:e,required:!1})}).apply(),r.for(F.AUTH).extend({decorator:ht}).apply();class Ft extends Q{constructor(e){super(e,Ft.name)}}let Lt=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 jt(){return _(new Lt)}Lt=Oe([R()],Lt);const Mt={path:"docs",auth:{type:"http",scheme:"bearer",bearerFormat:"JWT",name:"Authorization",description:"Enter JWT token",in:"header"},topbarBgColor:"#000000"};class Ut{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||Mt.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=Le.join(this.options.assetsPath||"",e),o=Fe(r,{encoding:"base64"});return t?"data:image/png;base64,"+o:o}}class Bt{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||Mt.auth).build();return be.createDocument(this.app,t,{extraModels:this.options.extraModels||[]})}setupSwagger(){const e=this.createDocument(),t=new Ut({title:this.options.title,path:this.options.path||Mt.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||Mt.path,this.app,e,{...t.getCustomOptions()})}}class Gt{static get logger(){return this._logger||(this._logger=new S("NestBootstrap")),this._logger}static initialize(e){return this.app=e,this}static enableLogger(e){return this._logger=e||new S("NestBootstrap"),this.app.useLogger(this._logger),this}static enableCors(e=[],t=["GET","POST","PUT","DELETE"]){const r="*"===e?"*":e.map(e=>e.trim().toLowerCase()),o={origin:(e,t)=>e?"*"===r||Array.isArray(r)&&r.includes(e.toLowerCase())?t(null,!0):void t(new Ft(`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 Bt(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 Lt]),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 Ht;let zt=Ht=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:ke.get(),timestamp:new Date},t))}async intercept(e,t){const r=e.switchToHttp().getRequest(),o=e.switchToHttp().getResponse(),s=ke.for(Ht).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()}};zt=Ht=Oe([m({scope:w.REQUEST}),xe("design:paramtypes",[yt,bt])],zt);class Yt{}function Xt(e){return r=>(t.set("transformers",e,r),"function"==typeof r?s("transformers",e)(r):r)}var Qt;let Jt=class{static{Qt=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=ke.for(Qt)),this._logger}constructor(e,t){this.options=e,this.moduleRef=t}static forRoot(e){const t=this.log.for(this.forRoot);return{module:Qt,providers:[{provide:st,useValue:e},{provide:it,useValue:this.persistence.client},{provide:at,useFactory:()=>e.handlers?.map(e=>(t.info("Registered request handler: "+e.name),new e))??[]},ut,{provide:Ce,useExisting:ut},yt,bt,{provide:Ce,useClass:zt}],exports:[st,it,at,yt,bt]}}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;if(!s){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`);s=e instanceof Yt?e:new e}Xt(o[t].flavour)(s)}t.info("persistence layer created successfully!")}return this.persistence.client}async onApplicationShutdown(){const e=Qt.log.for(this.onApplicationShutdown),t=this.moduleRef.get(it);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)}}};Jt=Qt=Oe([C(),O({}),Re(0,g(st)),xe("design:paramtypes",[Object,Se])],Jt);const Vt=Symbol("LISTENING_ADAPTERS_FLAVOURS");var Kt;let Wt=Kt=class extends Ot{constructor(e,t){super(e,Kt.name),this.adapters=t.map(e=>z.get(e))}listen(){const e=ke.for(Kt.name);return new je(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=ke.for(Kt.name);return new je(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 Zt;Oe([I(),xe("design:type",Function),xe("design:paramtypes",[]),xe("design:returntype",je)],Wt.prototype,"listen",null),Oe([I("/:model"),Re(0,A("model")),xe("design:type",Function),xe("design:paramtypes",[String]),xe("design:returntype",je)],Wt.prototype,"listenForModel",null),Wt=Kt=Oe([T(),Re(1,g(Vt)),xe("design:paramtypes",[yt,Array])],Wt);let er=Zt=class{static forFlavours(e,t="events"){return{module:Zt,controllers:[Wt],imports:[Ie.register([{path:t.replace(/^\//,""),module:Zt}])],providers:[yt,{provide:Vt,useValue:e??[]}]}}};var tr;er=Zt=Oe([O({})],er);let rr=tr=class{static async forRootAsync(e){const{autoControllers:t,autoServices:r}=e,o=(await Jt.bootPersistence(e)).map(e=>e.flavour),s=[Jt.forRoot(e)];return t&&o.forEach(e=>{s.push(Dt(e).forRoot(e,{autoServices:r}))}),e.observerOptions?.enableObserverEvents&&s.push(er.forFlavours(o)),{module:tr,imports:s}}};function or(e){const t=k.get(e);if(!t)throw new Ae("Failed to find repository for "+e);return B.forModel(t)}rr=tr=Oe([O({})],rr);const sr="##VERSION##",ir="##PACKAGE##";t.registerLibrary(ir,sr);export{pt as AUTH_HANDLER,dt as AUTH_META_KEY,Ve as ApiOperationFromModel,We as ApiParamsFromModel,Xe as ApiProperty,ht as Auth,ut as AuthInterceptor,Ke as BulkApiOperationFromModel,Ft as CorsError,it as DECAF_ADAPTER_ID,ct as DECAF_ADAPTER_OPTIONS,lt as DECAF_CONTEXT_KEY,at as DECAF_HANDLERS,st as DECAF_MODULE_OPTIONS,nt as DECAF_ROUTE,Ue as DECORATORS,Me as DECORATORS_PREFIX,ft as DecafAuthHandler,Ze as DecafBody,Ot as DecafController,Lt as DecafExceptionFilter,bt as DecafHandlerExecutor,Rt as DecafModelController,rr as DecafModule,tt as DecafParams,rt as DecafQuery,yt as DecafRequestContext,zt as DecafRequestHandlerInterceptor,mt as DecafRoleAuthHandler,er as DecafStreamModule,$t as DtoFor,Wt as EventsController,Nt as FromModelController,ot as HttpVerbToDecorator,Gt as NestBootstraper,ir as PACKAGE_NAME,Yt as RequestToContextTransformer,Bt as SwaggerBuilder,jt as UseDecafFilter,sr as VERSION,Qe as createApiPropertyDecorator,Ye as createPropertyDecorator,ze as getEnumType,He as getEnumValues,Dt as getModuleFor,Je as isOperationBlocked,Ge as isUndefined,or as repoForModel,Xt 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 E,Scope as w,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 S,Global as C,Sse as I}from"@nestjs/common";import{Model as k,ValidationKeys as q,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 Ee,BulkCrudOperationKeys as we,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 Se,APP_INTERCEPTOR as Ce,RouterModule as Ie}from"@nestjs/core";import{Logging as ke,toPascalCase as qe,toKebabCase as Ne,LoggedEnvironment as De}from"@decaf-ts/logging";import{readFileSync as Fe}from"fs";import*as Le from"path";import{Observable as je}from"rxjs";const Me="swagger",Ue={API_OPERATION:Me+"/apiOperation",API_RESPONSE:Me+"/apiResponse",API_PRODUCES:Me+"/apiProduces",API_CONSUMES:Me+"/apiConsumes",API_TAGS:Me+"/apiUseTags",API_CALLBACKS:Me+"/apiCallbacks",API_PARAMETERS:Me+"/apiParameters",API_HEADERS:Me+"/apiHeaders",API_MODEL_PROPERTIES:Me+"/apiModelProperties",API_MODEL_PROPERTIES_ARRAY:Me+"/apiModelPropertiesArray",API_SECURITY:Me+"/apiSecurity",API_EXCLUDE_ENDPOINT:Me+"/apiExcludeEndpoint",API_EXCLUDE_CONTROLLER:Me+"/apiExcludeController",API_EXTRA_MODELS:Me+"/apiExtraModels",API_EXTENSION:Me+"/apiExtension",API_SCHEMA:Me+"/apiSchema",API_DEFAULT_GETTER:Me+"/apiDefaultGetter",API_LINK:Me+"/apiLink"};function Be(e,t){if(!e)return[e,t];if(t)return[e,t];const r=W(e);return[r?e[0]:e,r]}const Ge=e=>void 0===e;function He(e){if("function"==typeof e)return He(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 ze(e){return e.filter(Z).length>0?"string":"number"}function Ye(e,t,r=!0){return(o,s)=>{const i=Reflect.getMetadata(Ue.API_MODEL_PROPERTIES_ARRAY,o)||[],n=":"+s;i.includes(n)||Reflect.defineMetadata(Ue.API_MODEL_PROPERTIES_ARRAY,[...i,":"+s],o);const a=Reflect.getMetadata(e,o,s);if(a){const i=ee(t,te(Ge)),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(Ge))},o,s)}}}function Xe(e={}){return Qe(e)}function Qe(e={},t=!0){const[r,o]=Be(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=He(e.enum);e.items={type:ze(t),enum:t},delete e.enum}else if("enum"in e&&void 0!==e.enum){const t=He(e.enum);e.enum=t,e.type=ze(t)}var s;return Array.isArray(e.type)&&(e.type="array",e.items={type:"array",items:{type:e.type[0]}}),Ye(Ue.API_MODEL_PROPERTIES,e,t)}function Je(e,r){const{handler:o,args:s}=t.get(e,Ee.REFLECT+Ee.BLOCK)||{};return!!o&&(o(...s,r)??!1)}function Ve(t,r,o){const s={GET:[Ee.READ,l],POST:[Ee.CREATE,d],PUT:[Ee.UPDATE,p],PATCH:[Ee.UPDATE,c],DELETE:[Ee.DELETE,a]},[i,n]=s[r];return Je(t,i)?e(re()):e(n(o))}function Ke(t,r,o){const s={GET:[we.READ_ALL,l],POST:[we.CREATE_ALL,d],PUT:[we.UPDATE_ALL,p],PATCH:[we.UPDATE_ALL,c],DELETE:[we.DELETE_ALL,a]},[i,n]=s[r];return Je(t,i)?e(re()):e(n(o))}function We(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 Ze=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}),et=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 tt(e=[]){const t=e.map(e=>e.name);return et(t)}const rt=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 ot(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 st="DecafModuleOptions",it="DecafAdapter",nt="DecafRoute",at=Symbol("DecafHandlers"),ct=Symbol("DecafAdapterForOptions"),pt=Symbol("AUTH_HANDLER"),dt="auth:meta",lt=Symbol("decaf:context");let ut=class{constructor(e,t){this.reflector=e,this.authHandler=t}async intercept(e,t){const r=ke.for(this).for(this.intercept),o=this.reflector.get(dt,e.getHandler())??this.reflector.get(dt,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 ht(e){const t=e?"string"==typeof e?e:e.name:void 0,r=[se(),b(ut)];return t&&r.push(E(dt,t)),u(...r)}ut=Oe([m(),Re(1,y()),Re(1,g(pt)),xe("design:paramtypes",[$e,Object])],ut);class ft{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(k.get(r),F.AUTH_ROLE).includes(s))throw new D("Missing role: "+s)}}class mt extends ft{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(k.get(r),F.AUTH_ROLE);if(!i.includes(s))throw new D("Missing role: "+s);return i}}let yt=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 gt;yt=Oe([m({scope:w.REQUEST}),Re(0,g(_e)),xe("design:paramtypes",[Request])],yt);let bt=gt=class{constructor(e,t){this.handlers=e,this.context=t}async exec(e,t){ke.for(gt.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)}};bt=gt=Oe([m({scope:w.REQUEST}),Re(0,g(at)),xe("design:paramtypes",[Array,yt])],bt);const Et=e=>({name:e,description:e+" parameter for the query",required:!0,type:String});function wt(e,t,r,o=!1){const s=ot(r),i=(e=>e.split("/").filter(e=>e.startsWith(":")).map(e=>e.slice(1)))(t).map(Et),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:[tt(i),A()]}}function At(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 vt(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 Pt(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 vt(this.persistence(),e,...t.valuesInOrder,s,i,n)}catch(t){throw o.error(`Custom query "${e}" failed`,t),t}}}function Tt(e,t,r){return Object.defineProperty(e.prototype||e,t,{value:r,writable:!1}),Object.getOwnPropertyDescriptor(e.prototype||e,t)}class Ot extends U{constructor(e,t){super(t),this.clientContext=e}logCtx(e,t,r=!1,o){const s=this.clientContext.ctx;return e=e.filter(e=>void 0!==e),G.logCtx.call(this,t,o||{},r,...e,s)}}class Rt extends Ot{persistence(e){if(!this._persistence)try{this._persistence=M.getService(this.class)}catch(e){try{this._persistence=U.get(this.class)}catch(e){this._persistence=B.forModel(this.class)}}const t=this.clientContext.request[ct]||{};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){const o=this.clientContext.ctx;let s={};try{s=o.get("overrides")}catch(e){}const i=this.persistence(o);let n,a;return i instanceof M?n=i.repo._adapter:i instanceof B?n=i._adapter:i.context&&(n=i),r?n.logCtx(e,t,!0,s).then(e=>e):(a=n.logCtx(e,t,!1,s),a)}}const xt=new Map;function $t(e,r){if(!H.includes(e))return r;const o=(e=>(xt.has(e)||xt.set(e,new WeakMap),xt.get(e)))(e),s=o.get(r);if(s)return s;const i=[Ee.UPDATE,we.UPDATE_ALL].includes(e);class n{}o.set(r,n),Object.defineProperty(n,"name",{value:`${qe(r.name)}${qe(e)}DTO`});const a=(()=>{try{return k.pk(r)}catch{return}})(),c=a?k.pkProps(r):void 0,p=a?Reflect.getMetadata("design:type",r.prototype,a):void 0,d=p===Number||p===BigInt,l=!!c?.generated||!!a&&(k.generatedBySequence(r,a)||Ct(r,a)||d),u=Array.from(new Set(t.properties(r)||[])),h=new Set(k.relations(r)||[]),f=[];for(const e of u)e&&(h.has(e)||e===a&&!i&&l||e!==a&&Ct(r,e)||f.push(e));for(const e of f){const t=It(r,e),o=!!t?.[q.REQUIRED],s=kt(r,e)??Reflect.getMetadata("design:type",r.prototype,e),i={required:o};s&&(i.type=s),Xe(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(!k.get(a.name))continue;const c=t.validationFor(r,o),p=!!c?.[q.LIST],d=!!c?.[q.REQUIRED],l=$t(e,a);i?St(n,o,a,l,p,d):_t(n,o,l,p,d)}return n}function _t(e,t,r,o,s){Xe({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 St(e,t,r,o,s,i){const n=Reflect.getMetadata(Ue.API_EXTRA_MODELS,e)||[];n.includes(o)||Reflect.defineMetadata(Ue.API_EXTRA_MODELS,[...n,o],e);const a="#/components/schemas/"+o.name,c=(e=>{try{const t=k.pkProps(e),r=t?.type;return r===Number||r===BigInt?"integer":"string"}catch{return"string"}})(r),p=[{$ref:a},{type:c}];Xe(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 Ct(e,t){let r=e;for(;r&&r!==Object&&r!==Function;){if(k.generated(r,t))return!0;r=Object.getPrototypeOf(r)}return!1}function It(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 kt(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 qt=N.prototype;if(qt.decorateClass||(qt.decorateClass=function(e){return this._classDecorators||(this._classDecorators=[]),this._classDecorators.push(e),this}),qt.Auth=function(e){return this.decorateClass(ht(e))},!qt.__hasClassDecoratorSupport){const e=qt.build;qt.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},qt.__hasClassDecoratorSupport=!0}class Nt{static{this.log=ke.for(Nt.name)}static getPersistence(e){try{return M.getService(e)}catch(t){return B.forModel(e)}}static createQueryRoutesFromRepository(e,r=F.QUERY){const o=Nt.log.for(Nt.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(nt))??{};class c extends Rt{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=Pt(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=Tt(c,e,s);n&&At(c,e,n,wt(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=Tt(c,e,Pt(e));s&&At(c,e,s,wt(e,o,"GET",!0))}return c}static create(e){const t=Nt.log.for(Nt.create),r=k.tableName(e),o=Ne(r),s=e.name,i=Nt.getPersistence(e),{description:n,getPK:a,apiProperties:c,path:p}=Nt.getRouteParametersFromModel(e);t.debug("Creating controller for model: "+s);const d=Nt.createQueryRoutesFromRepository(i);let l=class extends d{static get class(){return e}get class(){return e}constructor(r){super(r),this.pk=k.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 vt(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 vt(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([],we.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([],Ee.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([],we.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([],Ee.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([],we.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([],Ee.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([],we.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([],Ee.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([Ve(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,rt()),xe("design:type",Function),xe("design:paramtypes",[String,Object]),xe("design:returntype",Promise)],l.prototype,"listBy",null),Oe([Ve(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,rt()),xe("design:type",Function),xe("design:paramtypes",[String,Object]),xe("design:returntype",Promise)],l.prototype,"paginateBy",null),Oe([Ve(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,rt()),xe("design:type",Function),xe("design:paramtypes",[String,Object]),xe("design:returntype",Promise)],l.prototype,"find",null),Oe([Ve(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,rt()),xe("design:type",Function),xe("design:paramtypes",[String,Object]),xe("design:returntype",Promise)],l.prototype,"page",null),Oe([Ve(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([Ve(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,rt()),xe("design:type",Function),xe("design:paramtypes",[String,Object,Object]),xe("design:returntype",Promise)],l.prototype,"findBy",null),Oe([Ve(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,rt()),xe("design:type",Function),xe("design:paramtypes",[String,Array,Object]),xe("design:returntype",Promise)],l.prototype,"statement",null),Oe([Ve(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,Ze()),Re(1,P({passthrough:!0})),xe("design:type",Function),xe("design:paramtypes",[Array,Object]),xe("design:returntype",Promise)],l.prototype,"createAll",null),Oe([Ve(e,"POST"),ne({summary:`Create a new ${s}.`}),de({description:"Payload for "+s,type:$t(Ee.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,Ze()),Re(1,P({passthrough:!0})),xe("design:type",Function),xe("design:paramtypes",[Object,Object]),xe("design:returntype",Promise)],l.prototype,"create",null),Oe([Ve(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([Ve(e,"GET",p),We(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,tt(c)),xe("design:type",Function),xe("design:paramtypes",[Object]),xe("design:returntype",Promise)],l.prototype,"read",null),Oe([Ve(e,"PUT","bulk"),We(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($t(Ee.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,Ze()),Re(1,P({passthrough:!0})),xe("design:type",Function),xe("design:paramtypes",[Array,Object]),xe("design:returntype",Promise)],l.prototype,"updateAll",null),Oe([Ve(e,"PUT",p),We(c),ne({summary:`Replace an existing ${s} record with a new payload.`}),de({description:"Payload for replace a existing record of "+s,type:$t(Ee.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,tt(c)),Re(1,Ze()),Re(2,P({passthrough:!0})),xe("design:type",Function),xe("design:paramtypes",[Object,Object,Object]),xe("design:returntype",Promise)],l.prototype,"update",null),Oe([Ve(e,"DELETE","bulk"),We(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([Ve(e,"DELETE",p),We(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,tt(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),ht(e),xe("design:paramtypes",[yt])],l),l}static getRouteParametersFromModel(e){const r=k.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 Dt(e){var t;let r=class{static{t=this}static{this.log=ke.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(Nt.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?w.DEFAULT:w.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(q.REQUIRED).extend(Xe({required:!0})).apply(),r.for(q.MAX).extend({decorator:e=>Xe({maximum:e,required:!1})}).apply(),r.for(q.MIN).extend({decorator:e=>Xe({minimum:e,required:!1})}).apply(),r.for(q.MAX_LENGTH).extend({decorator:e=>Xe({maxLength:e,required:!1})}).apply(),r.for(q.MIN_LENGTH).extend({decorator:e=>Xe({minLength:e,required:!1})}).apply(),r.for(q.TYPE).extend({decorator:e=>(t,r)=>("function"!=typeof(e=Array.isArray(e)?e[0]:e)||e.name||(e=e()),Xe({type:e,required:!1})(t,r))}).apply(),r.for(q.DATE).extend({decorator:e=>Xe({type:String,format:"date-time",required:!1})}).apply(),r.for(q.ENUM).extend({decorator:e=>Xe({enum:Array.isArray(e)?e:Object.values(e),required:!1})}).apply(),r.for(q.PATTERN).extend({decorator:e=>Xe({pattern:"string"==typeof e?e:e.source,required:!1})}).apply(),r.for(F.COLUMN).extend({decorator:e=>Xe({name:e,required:!1})}).apply(),r.for(o.DESCRIPTION).extend({decorator:e=>Xe({description:e,required:!1})}).apply(),r.for(F.AUTH).extend({decorator:ht}).apply();class Ft extends Q{constructor(e){super(e,Ft.name)}}let Lt=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 jt(){return _(new Lt)}Lt=Oe([R()],Lt);const Mt={path:"docs",auth:{type:"http",scheme:"bearer",bearerFormat:"JWT",name:"Authorization",description:"Enter JWT token",in:"header"},topbarBgColor:"#000000"};class Ut{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||Mt.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=Le.join(this.options.assetsPath||"",e),o=Fe(r,{encoding:"base64"});return t?"data:image/png;base64,"+o:o}}class Bt{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||Mt.auth).build();return be.createDocument(this.app,t,{extraModels:this.options.extraModels||[]})}setupSwagger(){const e=this.createDocument(),t=new Ut({title:this.options.title,path:this.options.path||Mt.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||Mt.path,this.app,e,{...t.getCustomOptions()})}}class Gt{static get logger(){return this._logger||(this._logger=new S("NestBootstrap")),this._logger}static initialize(e){return this.app=e,this}static enableLogger(e){return this._logger=e||new S("NestBootstrap"),this.app.useLogger(this._logger),this}static enableCors(e=[],t=["GET","POST","PUT","DELETE"]){const r="*"===e?"*":e.map(e=>e.trim().toLowerCase()),o={origin:(e,t)=>e?"*"===r||Array.isArray(r)&&r.includes(e.toLowerCase())?t(null,!0):void t(new Ft(`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 Bt(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 Lt]),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 Ht;let zt=Ht=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:ke.get(),timestamp:new Date},t))}async intercept(e,t){const r=e.switchToHttp().getRequest(),o=e.switchToHttp().getResponse(),s=ke.for(Ht).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()}};zt=Ht=Oe([m({scope:w.REQUEST}),xe("design:paramtypes",[yt,bt])],zt);class Yt{}function Xt(e){return r=>(t.set("transformers",e,r),"function"==typeof r?s("transformers",e)(r):r)}var Qt;let Jt=class{static{Qt=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=ke.for(Qt)),this._logger}constructor(e,t){this.options=e,this.moduleRef=t}static forRoot(e){const t=this.log.for(this.forRoot);return{module:Qt,providers:[{provide:st,useValue:e},{provide:it,useValue:this.persistence.client},{provide:at,useFactory:()=>e.handlers?.map(e=>(t.info("Registered request handler: "+e.name),new e))??[]},ut,{provide:Ce,useExisting:ut},yt,bt,{provide:Ce,useClass:zt}],exports:[st,it,at,yt,bt]}}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;if(!s){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`);s=e instanceof Yt?e:new e}Xt(o[t].flavour)(s)}t.info("persistence layer created successfully!")}return this.persistence.client}async onApplicationShutdown(){const e=Qt.log.for(this.onApplicationShutdown),t=this.moduleRef.get(it);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)}}};Jt=Qt=Oe([C(),O({}),Re(0,g(st)),xe("design:paramtypes",[Object,Se])],Jt);const Vt=Symbol("LISTENING_ADAPTERS_FLAVOURS");var Kt;let Wt=Kt=class extends Ot{constructor(e,t){super(e,Kt.name),this.adapters=t.map(e=>z.get(e))}listen(){const e=ke.for(Kt.name);return new je(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=ke.for(Kt.name);return new je(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 Zt;Oe([I(),xe("design:type",Function),xe("design:paramtypes",[]),xe("design:returntype",je)],Wt.prototype,"listen",null),Oe([I("/:model"),Re(0,A("model")),xe("design:type",Function),xe("design:paramtypes",[String]),xe("design:returntype",je)],Wt.prototype,"listenForModel",null),Wt=Kt=Oe([T(),Re(1,g(Vt)),xe("design:paramtypes",[yt,Array])],Wt);let er=Zt=class{static forFlavours(e,t="events"){return{module:Zt,controllers:[Wt],imports:[Ie.register([{path:t.replace(/^\//,""),module:Zt}])],providers:[yt,{provide:Vt,useValue:e??[]}]}}};var tr;er=Zt=Oe([O({})],er);let rr=tr=class{static async forRootAsync(e){const{autoControllers:t,autoServices:r}=e,o=(await Jt.bootPersistence(e)).map(e=>e.flavour),s=[Jt.forRoot(e)];return t&&o.forEach(e=>{s.push(Dt(e).forRoot(e,{autoServices:r}))}),e.observerOptions?.enableObserverEvents&&s.push(er.forFlavours(o)),{module:tr,imports:s}}};function or(e){const t=k.get(e);if(!t)throw new Ae("Failed to find repository for "+e);return B.forModel(t)}rr=tr=Oe([O({})],rr);const sr="##VERSION##",ir="##PACKAGE##";t.allowReregistration(!0),t.registerLibrary(ir,sr),t.allowReregistration(!1);export{pt as AUTH_HANDLER,dt as AUTH_META_KEY,Ve as ApiOperationFromModel,We as ApiParamsFromModel,Xe as ApiProperty,ht as Auth,ut as AuthInterceptor,Ke as BulkApiOperationFromModel,Ft as CorsError,it as DECAF_ADAPTER_ID,ct as DECAF_ADAPTER_OPTIONS,lt as DECAF_CONTEXT_KEY,at as DECAF_HANDLERS,st as DECAF_MODULE_OPTIONS,nt as DECAF_ROUTE,Ue as DECORATORS,Me as DECORATORS_PREFIX,ft as DecafAuthHandler,Ze as DecafBody,Ot as DecafController,Jt as DecafCoreModule,Lt as DecafExceptionFilter,bt as DecafHandlerExecutor,Rt as DecafModelController,rr as DecafModule,tt as DecafParams,rt as DecafQuery,yt as DecafRequestContext,zt as DecafRequestHandlerInterceptor,mt as DecafRoleAuthHandler,er as DecafStreamModule,$t as DtoFor,Wt as EventsController,Nt as FromModelController,ot as HttpVerbToDecorator,Gt as NestBootstraper,ir as PACKAGE_NAME,Yt as RequestToContextTransformer,Bt as SwaggerBuilder,jt as UseDecafFilter,sr as VERSION,Qe as createApiPropertyDecorator,Ye as createPropertyDecorator,ze as getEnumType,He as getEnumValues,Dt as getModuleFor,Je as isOperationBlocked,Ge as isUndefined,or as repoForModel,Xt 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/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],"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","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","ContextualLoggedClass","call","DecafModelController","_persistence","getService","Repository","forModel","certs","override","contextual","ctxArgs","repo","then","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","toResponse","pending","header","ModelBuilder","decorateClass","_classDecorators","__hasClassDecoratorSupport","originalBuild","build","result","decorated","FromModelController","getPersistence","ModelClazz","createQueryRoutesFromRepository","prefix","QUERY","queryMethods","routeMethods","QueryController","entries","replace","segment","trim","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","response","getResponse","isProduction","LoggedEnvironment","env","statusCode","NotFoundException","UnsupportedError","NotAcceptableException","getStatus","BaseError","status","code","json","timestamp","Date","toISOString","UseDecafFilter","UseFilters","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","config","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","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/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],"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","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","ContextualLoggedClass","call","DecafModelController","_persistence","getService","Repository","forModel","certs","override","contextual","ctxArgs","repo","then","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","toResponse","pending","header","ModelBuilder","decorateClass","_classDecorators","__hasClassDecoratorSupport","originalBuild","build","result","decorated","FromModelController","getPersistence","ModelClazz","createQueryRoutesFromRepository","prefix","QUERY","queryMethods","routeMethods","QueryController","entries","replace","segment","trim","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","response","getResponse","isProduction","LoggedEnvironment","env","statusCode","NotFoundException","UnsupportedError","NotAcceptableException","getStatus","BaseError","status","code","json","timestamp","Date","toISOString","UseDecafFilter","UseFilters","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","config","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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"}
@@ -29,6 +29,7 @@ export * from "./request";
29
29
  export * from "./constants";
30
30
  export * from "./controllers";
31
31
  export * from "./module";
32
+ export * from "./core-module";
32
33
  export * from "./types";
33
34
  export * from "./utils";
34
35
  export * from "./events-module";
@@ -38,5 +39,5 @@ export * from "./events-module";
38
39
  * @constant
39
40
  * @type {string}
40
41
  */
41
- export declare const VERSION = "0.2.40";
42
+ export declare const VERSION = "0.2.41";
42
43
  export declare const PACKAGE_NAME = "@decaf-ts/for-nest";
package/lib/esm/index.js CHANGED
@@ -30,6 +30,7 @@ export * from "./request/index.js";
30
30
  export * from "./constants.js";
31
31
  export * from "./controllers.js";
32
32
  export * from "./module.js";
33
+ export * from "./core-module.js";
33
34
  export * from "./types.js";
34
35
  export * from "./utils.js";
35
36
  export * from "./events-module/index.js";
@@ -39,7 +40,9 @@ export * from "./events-module/index.js";
39
40
  * @constant
40
41
  * @type {string}
41
42
  */
42
- export const VERSION = "0.2.40";
43
+ export const VERSION = "0.2.41";
43
44
  export const PACKAGE_NAME = "@decaf-ts/for-nest";
45
+ Metadata.allowReregistration(true);
44
46
  Metadata.registerLibrary(PACKAGE_NAME, VERSION);
47
+ Metadata.allowReregistration(false);
45
48
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAChD,yBAAsB;AAEtB,gCAA6B,CAAC,oBAAoB;AAClD,uCAA8B;AAC9B,mCAA0B;AAC1B,wCAA+B;AAC/B,qCAA4B;AAC5B,mCAA0B;AAC1B,+BAA4B;AAC5B,iCAA8B;AAC9B,4BAAyB;AACzB,2BAAwB;AACxB,2BAAwB;AACxB,yCAAgC;AAEhC;;;;;GAKG;AACH,MAAM,CAAC,MAAM,OAAO,GAAG,aAAa,CAAC;AACrC,MAAM,CAAC,MAAM,YAAY,GAAG,aAAa,CAAC;AAE1C,QAAQ,CAAC,eAAe,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAChD,yBAAsB;AAEtB,gCAA6B,CAAC,oBAAoB;AAClD,uCAA8B;AAC9B,mCAA0B;AAC1B,wCAA+B;AAC/B,qCAA4B;AAC5B,mCAA0B;AAC1B,+BAA4B;AAC5B,iCAA8B;AAC9B,4BAAyB;AACzB,iCAA8B;AAC9B,2BAAwB;AACxB,2BAAwB;AACxB,yCAAgC;AAEhC;;;;;GAKG;AACH,MAAM,CAAC,MAAM,OAAO,GAAG,aAAa,CAAC;AACrC,MAAM,CAAC,MAAM,YAAY,GAAG,aAAa,CAAC;AAE1C,QAAQ,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC;AACnC,QAAQ,CAAC,eAAe,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;AAChD,QAAQ,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC"}
package/lib/index.cjs CHANGED
@@ -47,6 +47,7 @@ __exportStar(require("./request/index.cjs"), exports);
47
47
  __exportStar(require("./constants.cjs"), exports);
48
48
  __exportStar(require("./controllers.cjs"), exports);
49
49
  __exportStar(require("./module.cjs"), exports);
50
+ __exportStar(require("./core-module.cjs"), exports);
50
51
  __exportStar(require("./types.cjs"), exports);
51
52
  __exportStar(require("./utils.cjs"), exports);
52
53
  __exportStar(require("./events-module/index.cjs"), exports);
@@ -56,7 +57,9 @@ __exportStar(require("./events-module/index.cjs"), exports);
56
57
  * @constant
57
58
  * @type {string}
58
59
  */
59
- exports.VERSION = "0.2.40";
60
+ exports.VERSION = "0.2.41";
60
61
  exports.PACKAGE_NAME = "@decaf-ts/for-nest";
62
+ decoration_1.Metadata.allowReregistration(true);
61
63
  decoration_1.Metadata.registerLibrary(exports.PACKAGE_NAME, exports.VERSION);
64
+ decoration_1.Metadata.allowReregistration(false);
62
65
  //# sourceMappingURL=index.js.map
package/lib/index.d.ts CHANGED
@@ -29,6 +29,7 @@ export * from "./request";
29
29
  export * from "./constants";
30
30
  export * from "./controllers";
31
31
  export * from "./module";
32
+ export * from "./core-module";
32
33
  export * from "./types";
33
34
  export * from "./utils";
34
35
  export * from "./events-module";
@@ -38,5 +39,5 @@ export * from "./events-module";
38
39
  * @constant
39
40
  * @type {string}
40
41
  */
41
- export declare const VERSION = "0.2.40";
42
+ export declare const VERSION = "0.2.41";
42
43
  export declare const PACKAGE_NAME = "@decaf-ts/for-nest";
package/lib/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;;;;;;;;;;;;;;;;;AAEH,qDAAgD;AAChD,4BAAsB;AAEtB,mDAA6B,CAAC,oBAAoB;AAClD,0DAA8B;AAC9B,sDAA0B;AAC1B,2DAA+B;AAC/B,wDAA4B;AAC5B,sDAA0B;AAC1B,kDAA4B;AAC5B,oDAA8B;AAC9B,+CAAyB;AACzB,8CAAwB;AACxB,8CAAwB;AACxB,4DAAgC;AAEhC;;;;;GAKG;AACU,QAAA,OAAO,GAAG,aAAa,CAAC;AACxB,QAAA,YAAY,GAAG,aAAa,CAAC;AAE1C,qBAAQ,CAAC,eAAe,CAAC,oBAAY,EAAE,eAAO,CAAC,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;;;;;;;;;;;;;;;;;AAEH,qDAAgD;AAChD,4BAAsB;AAEtB,mDAA6B,CAAC,oBAAoB;AAClD,0DAA8B;AAC9B,sDAA0B;AAC1B,2DAA+B;AAC/B,wDAA4B;AAC5B,sDAA0B;AAC1B,kDAA4B;AAC5B,oDAA8B;AAC9B,+CAAyB;AACzB,oDAA8B;AAC9B,8CAAwB;AACxB,8CAAwB;AACxB,4DAAgC;AAEhC;;;;;GAKG;AACU,QAAA,OAAO,GAAG,aAAa,CAAC;AACxB,QAAA,YAAY,GAAG,aAAa,CAAC;AAE1C,qBAAQ,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC;AACnC,qBAAQ,CAAC,eAAe,CAAC,oBAAY,EAAE,eAAO,CAAC,CAAC;AAChD,qBAAQ,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@decaf-ts/for-nest",
3
- "version": "0.2.41",
3
+ "version": "0.2.42",
4
4
  "description": "NestJS decaf integration",
5
5
  "type": "module",
6
6
  "exports": {
@@ -88,7 +88,7 @@
88
88
  },
89
89
  "homepage": "https://github.com/decaf-ts/for-nest#readme",
90
90
  "devDependencies": {
91
- "@decaf-ts/for-fabric": "latest",
91
+ "@decaf-ts/for-fabric": "^0.3.44",
92
92
  "@decaf-ts/for-http": "latest",
93
93
  "@decaf-ts/utils": "latest",
94
94
  "@eslint/js": "^9.25.1",