@decaf-ts/for-nest 0.10.2 → 0.11.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/dist/for-nest.cjs +1 -1
- package/dist/for-nest.cjs.map +1 -1
- package/dist/for-nest.js +1 -1
- package/dist/for-nest.js.map +1 -1
- package/lib/cjs/decaf-model/FromModelController.cjs +8 -6
- package/lib/cjs/decaf-model/FromModelController.cjs.map +1 -1
- package/lib/cjs/index.cjs +4 -3
- package/lib/cjs/index.cjs.map +1 -1
- package/lib/cjs/webhooks/DecafWebhookModule.cjs +141 -0
- package/lib/cjs/webhooks/DecafWebhookModule.cjs.map +1 -0
- package/lib/cjs/webhooks/controllers.cjs +151 -0
- package/lib/cjs/webhooks/controllers.cjs.map +1 -0
- package/lib/cjs/webhooks/index.cjs +34 -0
- package/lib/cjs/webhooks/index.cjs.map +1 -0
- package/lib/cjs/webhooks/types.cjs +4 -0
- package/lib/cjs/webhooks/types.cjs.map +1 -0
- package/lib/esm/decaf-model/FromModelController.js +8 -6
- package/lib/esm/decaf-model/FromModelController.js.map +1 -1
- package/lib/esm/index.js +4 -3
- package/lib/esm/index.js.map +1 -1
- package/lib/esm/webhooks/DecafWebhookModule.js +132 -0
- package/lib/esm/webhooks/DecafWebhookModule.js.map +1 -0
- package/lib/esm/webhooks/controllers.js +142 -0
- package/lib/esm/webhooks/controllers.js.map +1 -0
- package/lib/esm/webhooks/index.js +5 -0
- package/lib/esm/webhooks/index.js.map +1 -0
- package/lib/esm/webhooks/types.js +2 -0
- package/lib/esm/webhooks/types.js.map +1 -0
- package/lib/types/index.d.cts +4 -3
- package/lib/types/index.d.mts +4 -3
- package/lib/types/webhooks/DecafWebhookModule.d.cts +13 -0
- package/lib/types/webhooks/DecafWebhookModule.d.mts +13 -0
- package/lib/types/webhooks/controllers.d.cts +13 -0
- package/lib/types/webhooks/controllers.d.mts +13 -0
- package/lib/types/webhooks/index.d.cts +4 -0
- package/lib/types/webhooks/index.d.mts +4 -0
- package/lib/types/webhooks/types.d.cts +21 -0
- package/lib/types/webhooks/types.d.mts +21 -0
- package/package.json +13 -1
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 g,Inject as y,UseInterceptors as b,SetMetadata as A,Scope as w,Query as v,Param as E,Response as P,Controller as T,Module as O,Catch as R,NotFoundException as $,NotAcceptableException as x,UseFilters as S,Logger as _,Global as C,Sse as I}from"@nestjs/common";import{Model as N,ValidationKeys as k,ModelBuilder as q}from"@decaf-ts/decorator-validation";import{AuthorizationError as D,PersistenceKeys as F,UUID as L,OrderDirection as M,ModelService as j,Service as U,Repository as B,ContextualLoggedClass as G,TransactionOperationKeys as H,Adapter as z,Context as Y,PreparedStatementKeys as J,ForbiddenError as X,UnsupportedError as Q,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 ge,DocumentBuilder as ye,SwaggerModule as be}from"@nestjs/swagger";import{OperationKeys as Ae,BulkCrudOperationKeys as we,InternalError as ve,DBKeys as Ee,ValidationError as Pe,BaseError as Te}from"@decaf-ts/db-decorators";import{__decorate as Oe,__param as Re,__metadata as $e}from"tslib";import{Reflector as xe,REQUEST as Se,ModuleRef as _e,APP_INTERCEPTOR as Ce,RouterModule as Ie}from"@nestjs/core";import{Logging as Ne,toPascalCase as ke,toKebabCase as qe,LoggedEnvironment as De}from"@decaf-ts/logging";import{tap as Fe,Observable as Le,interval as Me,merge as je}from"rxjs";import{readFileSync as Ue}from"fs";import*as Be from"path";import Ge from"yaml";import{tap as He,map as ze}from"rxjs/operators";import{MigrationService as Ye}from"@decaf-ts/core/migrations";const Je="swagger",Xe={API_OPERATION:Je+"/apiOperation",API_RESPONSE:Je+"/apiResponse",API_PRODUCES:Je+"/apiProduces",API_CONSUMES:Je+"/apiConsumes",API_TAGS:Je+"/apiUseTags",API_CALLBACKS:Je+"/apiCallbacks",API_PARAMETERS:Je+"/apiParameters",API_HEADERS:Je+"/apiHeaders",API_MODEL_PROPERTIES:Je+"/apiModelProperties",API_MODEL_PROPERTIES_ARRAY:Je+"/apiModelPropertiesArray",API_SECURITY:Je+"/apiSecurity",API_EXCLUDE_ENDPOINT:Je+"/apiExcludeEndpoint",API_EXCLUDE_CONTROLLER:Je+"/apiExcludeController",API_EXTRA_MODELS:Je+"/apiExtraModels",API_EXTENSION:Je+"/apiExtension",API_SCHEMA:Je+"/apiSchema",API_DEFAULT_GETTER:Je+"/apiDefaultGetter",API_LINK:Je+"/apiLink"};function Qe(e,t){if(!e)return[e,t];if(t)return[e,t];const r=W(e);return[r?e[0]:e,r]}const Ve=e=>void 0===e;function Ke(e){if("function"==typeof e)return Ke(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 We(e){return e.filter(Z).length>0?"string":"number"}function Ze(e,t,r=!0){return(o,s)=>{const i=Reflect.getMetadata(Xe.API_MODEL_PROPERTIES_ARRAY,o)||[],n=":"+s;i.includes(n)||Reflect.defineMetadata(Xe.API_MODEL_PROPERTIES_ARRAY,[...i,":"+s],o);const a=Reflect.getMetadata(e,o,s);if(a){const i=ee(t,te(Ve)),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(Ve))},o,s)}}}function et(e={}){return tt(e)}function tt(e={},t=!0){const[r,o]=Qe(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=Ke(e.enum);e.items={type:We(t),enum:t},delete e.enum}else if("enum"in e&&void 0!==e.enum){const t=Ke(e.enum);e.enum=t,e.type=We(t)}var s;return Array.isArray(e.type)&&(e.type="array",e.items={type:"array",items:{type:e.type[0]}}),Ze(Xe.API_MODEL_PROPERTIES,e,t)}function rt(e,r){const{handler:o,args:s}=t.get(e,Ae.REFLECT+Ae.BLOCK)||{};return!!o&&(o(...s,r)??!1)}function ot(t,r,o){const s={GET:[Ae.READ,l],POST:[Ae.CREATE,d],PUT:[Ae.UPDATE,p],PATCH:[Ae.UPDATE,c],DELETE:[Ae.DELETE,a]},[i,n]=s[r];return rt(t,i)?e(re()):e(n(o))}function st(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 rt(t,i)?e(re()):e(n(o))}function it(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 nt=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}),at=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 ct(e=[]){const t=e.map(e=>e.name);return at(t)}const pt=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 dt(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 lt="DecafModuleOptions",ut="DecafAdapter",ht="DecafTaskService",ft="DecafRoute",mt=Symbol("DecafHandlers"),gt=Symbol("DecafAdapterForOptions"),yt=Symbol("AUTH_HANDLER"),bt="auth:meta",At=Symbol("decaf:context");let wt=class{constructor(e,t){this.reflector=e,this.authHandler=t}async intercept(e,t){const r=Ne.for(this).for(this.intercept),o=this.reflector.get(bt,e.getHandler())??this.reflector.get(bt,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 vt(e){const t=e?"string"==typeof e?e:e.name:void 0,r=[se(),b(wt)];return t&&r.push(A(bt,t)),u(...r)}wt=Oe([m(),Re(1,g()),Re(1,y(yt)),$e("design:paramtypes",[xe,Object])],wt);class Et{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(N.get(r),F.AUTH_ROLE).includes(s))throw new D("Missing role: "+s)}}class Pt extends Et{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(N.get(r),F.AUTH_ROLE);if(!i.includes(s))throw new D("Missing role: "+s);return i}}let Tt=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 ve("Trying to overwrite context");this._ctx=e}get ctx(){if(!this._ctx)throw new ve("Context not initialized for request");return this._ctx}};var Ot;Tt=Oe([m({scope:w.REQUEST}),Re(0,y(Se)),$e("design:paramtypes",[Request])],Tt);let Rt=Ot=class{constructor(e,t){this.handlers=e,this.context=t}async exec(e,t){Ne.for(Ot.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)}};Rt=Ot=Oe([m({scope:w.REQUEST}),Re(0,y(mt)),$e("design:paramtypes",[Array,Tt])],Rt);let $t=class{constructor(e){this.ctx=e}intercept(e,t){let r=e.switchToHttp().getResponse();return t.handle().pipe(Fe(e=>{r=this.ctx.ctx.toResponse(r)}))}};$t=Oe([m(),$e("design:paramtypes",[Tt])],$t);const xt=e=>({name:e,description:e+" parameter for the query",required:!0,type:String});function St(e,t,r,o=!1){const s=dt(r),i=(e=>e.split("/").filter(e=>e.startsWith(":")).map(e=>e.slice(1)))(t).map(xt),n=[];return"GET"===r&&o&&n.push(ie({name:"direction",required:!1,enum:M,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:[ct(i),v()]}}function _t(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 Ct(e,t,...r){if(e instanceof j)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 It(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 Ct(this.persistence(),e,...t.valuesInOrder,s,i,n)}catch(t){throw o.error(`Custom query "${e}" failed`,t),t}}}function Nt(e,t,r){return Object.defineProperty(e.prototype||e,t,{value:r,writable:!1}),Object.getOwnPropertyDescriptor(e.prototype||e,t)}class kt extends U{constructor(e,t){super(),this.clientContext=e}logCtx(e,t,r=!1,o){const s=this.clientContext.ctx;let i;e=e.filter(e=>void 0!==e),o&&(o.headers||o.ip)&&(i=o,o={});const n=G.logCtx.call(this,t,o||{},r,...e,s);return this.bindLoggerToRequest(n,i)}bindLoggerToRequest(e,t){const r=this;function o(e,t){return e.log=((e,t)=>{const o=(e=>{if(!e)return;const t=e.headers,r=Dt(t?.["x-forwarded-for"])??Dt(t?.["x-real-ip"])??Dt(t?.["X-Forwarded-For"])??Dt(t?.["X-Real-IP"]);if(r)return r;if("string"==typeof e.ip&&e.ip.length)return e.ip;const o=e.socket||e.connection;return o&&"string"==typeof o.remoteAddress&&o.remoteAddress.length?o.remoteAddress:void 0})(t??r.clientContext.request);if(!o)return e;const s={ip:o};return e.for(s)})(e.log,t),e}return(e=>"object"==typeof e&&null!==e&&"function"==typeof e.then)(e)?e.then(e=>o(e,t)):o(e,t)}}class qt extends kt{persistence(e){if(!this._persistence)try{this._persistence=U.get(this.class)}catch(e){try{this._persistence=j.getService(this.class)}catch(e){this._persistence=B.forModel(this.class)}}const t=this.clientContext.request[gt]||{};return e&&this.clientContext.put(t),e?this._persistence instanceof B?this._persistence.override(t):this._persistence.for(t):this._persistence}constructor(e,t){super(e,t)}logCtx(e,t,r=!1,o){const s=this.clientContext.ctx;let i;o&&(o.headers||o.ip)&&(i=o,o={});try{o=s.get("overrides")}catch(e){}const n=this.persistence(s);let a,c;return n instanceof j?a=n.repo._adapter:n instanceof B?a=n._adapter:n.context&&(a=n),r?a.logCtx(e,t,!0,o).then(e=>this.bindLoggerToRequest(e,i)):(c=a.logCtx(e,t,!1,o),this.bindLoggerToRequest(c,i))}}function Dt(e){if(e)return(Array.isArray(e)?e[0]:e).split(",").map(e=>e.trim()).filter(Boolean)[0]}const Ft=new Map;function Lt(e,r){if(!H.includes(e))return r;const o=(e=>(Ft.has(e)||Ft.set(e,new WeakMap),Ft.get(e)))(e),s=o.get(r);if(s)return s;const i=[Ae.UPDATE,we.UPDATE_ALL].includes(e);class n{}o.set(r,n),Object.defineProperty(n,"name",{value:`${ke(r.name)}${ke(e)}DTO`});const a=(()=>{try{return N.pk(r)}catch{return}})(),c=a?N.pkProps(r):void 0,p=a?Reflect.getMetadata("design:type",r.prototype,a):void 0,d=p===Number||p===BigInt,l=!!c?.generated||!!a&&(N.generatedBySequence(r,a)||Ut(r,a)||d),u=Array.from(new Set(t.properties(r)||[])),h=new Set(N.relations(r)||[]),f=[];for(const e of u)e&&(h.has(e)||e===a&&!i&&l||e!==a&&Ut(r,e)||f.push(e));for(const e of f){const t=Bt(r,e),o=!!t?.[k.REQUIRED],s=Gt(r,e)??Reflect.getMetadata("design:type",r.prototype,e),i={required:o};s&&(i.type=s),et(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 ve(`Metadata for relation ${o} not found`);let a=s.class;if("function"!=typeof a||a.name||(a=a()),!a||"function"!=typeof a)throw new ve(`Type for relation ${o} not found`);if(!N.get(a.name))continue;const c=t.validationFor(r,o),p=!!c?.[k.LIST],d=!!c?.[k.REQUIRED],l=Lt(e,a);i?jt(n,o,a,l,p,d):Mt(n,o,l,p,d)}return n}function Mt(e,t,r,o,s){et({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 jt(e,t,r,o,s,i){const n=Reflect.getMetadata(Xe.API_EXTRA_MODELS,e)||[];n.includes(o)||Reflect.defineMetadata(Xe.API_EXTRA_MODELS,[...n,o],e);const a="#/components/schemas/"+o.name,c=(e=>{try{const t=N.pkProps(e),r=t?.type;return r===Number||r===BigInt?"integer":"string"}catch{return"string"}})(r),p=[{$ref:a},{type:c}];et(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 Ut(e,t){let r=e;for(;r&&r!==Object&&r!==Function;){if(N.generated(r,t))return!0;r=Object.getPrototypeOf(r)}return!1}function Bt(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 Gt(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 Ht=q.prototype;if(Ht.decorateClass||(Ht.decorateClass=function(e){return this._classDecorators||(this._classDecorators=[]),this._classDecorators.push(e),this}),Ht.Auth=function(e){return this.decorateClass(vt(e))},!Ht.__hasClassDecoratorSupport){const e=Ht.build;Ht.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},Ht.__hasClassDecoratorSupport=!0}class zt{static{this.log=Ne.for(zt.name)}static getPersistence(e){try{return U.get(e)}catch(t){try{return j.getService(e)}catch(t){return B.forModel(e)}}}static createQueryRoutesFromRepository(e,r=F.QUERY){const o=zt.log.for(zt.createQueryRoutesFromRepository),s=e instanceof j?e.repo:e,i=s.class,n=t.get(s.constructor,t.key(F.QUERY))??{},a=t.get(e.constructor,t.key(ft))??{};class c extends qt{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=It(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=Nt(c,e,s);n&&_t(c,e,n,St(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=Nt(c,e,It(e));s&&_t(c,e,s,St(e,o,"GET",!0))}return c}static create(e){const t=zt.log.for(zt.create),r=N.tableName(e),o=qe(r),s=e.name,i=zt.getPersistence(e),{description:n,getPK:a,apiProperties:c,path:p}=zt.getRouteParametersFromModel(e);t.debug("Creating controller for model: "+s);const d=zt.createQueryRoutesFromRepository(i);let l=class extends d{static get class(){return e}get class(){return e}constructor(r){super(r),this.pk=N.pk(e),t.info(`Registering dynamic controller for model: ${this.class.name} route: /${o}`)}async listBy(e,t){const{ctx:r}=(await this.logCtx([],J.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([],J.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([],J.FIND,!0)).for(this.find),o=t.direction??M.ASC;return Ct(this.persistence(r),this.find.name,e,o,r)}async page(e,t){const{ctx:r}=(await this.logCtx([],J.PAGE,!0)).for(this.page),{direction:o=M.ASC,limit:s,offset:i,bookmark:n}=t,a={offset:i??1,limit:s??10,bookmark:n};return Ct(this.persistence(r),this.page.name,e,o,a,r)}async findOneBy(e,t){const{ctx:r}=(await this.logCtx([],J.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([],J.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 J.FIND:case J.FIND_BY:break;case J.LIST_BY:t.push(s);break;case J.PAGE:case J.PAGE_BY:t=[t[0],p,{limit:n,offset:i,bookmark:a}];case J.FIND_ONE_BY:case J.COUNT_OF:case J.MAX_OF:case J.MIN_OF:case J.AVG_OF:case J.SUM_OF:case J.DISTINCT_OF:case J.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([],Ae.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([],Ae.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([],Ae.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([],Ae.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([ot(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:M}),ae({description:s+" listed successfully."}),Re(0,E("key")),Re(1,pt()),$e("design:type",Function),$e("design:paramtypes",[String,Object]),$e("design:returntype",Promise)],l.prototype,"listBy",null),Oe([ot(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:M,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,E("key")),Re(1,pt()),$e("design:type",Function),$e("design:paramtypes",[String,Object]),$e("design:returntype",Promise)],l.prototype,"paginateBy",null),Oe([ot(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:M,description:"the sort order for the matching results"}),ae({description:s+" records matching the provided prefix."}),Re(0,E("value")),Re(1,pt()),$e("design:type",Function),$e("design:paramtypes",[String,Object]),$e("design:returntype",Promise)],l.prototype,"find",null),Oe([ot(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:M,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,E("value")),Re(1,pt()),$e("design:type",Function),$e("design:paramtypes",[String,Object]),$e("design:returntype",Promise)],l.prototype,"page",null),Oe([ot(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,E("key")),Re(1,E("value")),$e("design:type",Function),$e("design:paramtypes",[String,Object]),$e("design:returntype",Promise)],l.prototype,"findOneBy",null),Oe([ot(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:M,description:"the sort order when applicable"}),ae({description:s+" listed found."}),pe({description:`No ${s} record matches the provided identifier.`}),Re(0,E("key")),Re(1,E("value")),Re(2,pt()),$e("design:type",Function),$e("design:paramtypes",[String,Object,Object]),$e("design:returntype",Promise)],l.prototype,"findBy",null),Oe([ot(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:M,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,E("method")),Re(1,E("args")),Re(2,pt()),$e("design:type",Function),$e("design:paramtypes",[String,Array,Object]),$e("design:returntype",Promise)],l.prototype,"statement",null),Oe([ot(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,nt()),Re(1,P({passthrough:!0})),$e("design:type",Function),$e("design:paramtypes",[Array,Object]),$e("design:returntype",Promise)],l.prototype,"createAll",null),Oe([ot(e,"POST"),ne({summary:`Create a new ${s}.`}),de({description:"Payload for "+s,type:Lt(Ae.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,nt()),Re(1,P({passthrough:!0})),$e("design:type",Function),$e("design:paramtypes",[Object,Object]),$e("design:returntype",Promise)],l.prototype,"create",null),Oe([ot(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,v("ids")),$e("design:type",Function),$e("design:paramtypes",[Array]),$e("design:returntype",Promise)],l.prototype,"readAll",null),Oe([ot(e,"GET",p),it(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,ct(c)),$e("design:type",Function),$e("design:paramtypes",[Object]),$e("design:returntype",Promise)],l.prototype,"read",null),Oe([ot(e,"PUT","bulk"),it(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(Lt(Ae.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,nt()),Re(1,P({passthrough:!0})),$e("design:type",Function),$e("design:paramtypes",[Array,Object]),$e("design:returntype",Promise)],l.prototype,"updateAll",null),Oe([ot(e,"PUT",p),it(c),ne({summary:`Replace an existing ${s} record with a new payload.`}),de({description:"Payload for replace a existing record of "+s,type:Lt(Ae.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,ct(c)),Re(1,nt()),Re(2,P({passthrough:!0})),$e("design:type",Function),$e("design:paramtypes",[Object,Object,Object]),$e("design:returntype",Promise)],l.prototype,"update",null),Oe([ot(e,"DELETE","bulk"),it(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,v("ids")),Re(1,P({passthrough:!0})),$e("design:type",Function),$e("design:paramtypes",[Array,Object]),$e("design:returntype",Promise)],l.prototype,"deleteAll",null),Oe([ot(e,"DELETE",p),it(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,ct(c)),Re(1,P({passthrough:!0})),$e("design:type",Function),$e("design:paramtypes",[Object,Object]),$e("design:returntype",Promise)],l.prototype,"delete",null),l=Oe([T(o),me(s),ge(e),vt(e),$e("design:paramtypes",[Tt])],l),l}static getRouteParametersFromModel(e){const r=N.pk(e),o=t.get(e,t.key(Ee.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 Yt(e){var t;let r=class{static{t=this}static{this.log=Ne.for(t.name).for(e)}static createModelServices(e){return e.map(e=>({provide:e.name+"Service",useFactory:()=>j.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(zt.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)=>y(e||t)(t,r,o)}).apply(),r.for(k.REQUIRED).extend(et({required:!0})).apply(),r.for(k.MAX).extend({decorator:e=>et({maximum:e,required:!1})}).apply(),r.for(k.MIN).extend({decorator:e=>et({minimum:e,required:!1})}).apply(),r.for(k.MAX_LENGTH).extend({decorator:e=>et({maxLength:e,required:!1})}).apply(),r.for(k.MIN_LENGTH).extend({decorator:e=>et({minLength:e,required:!1})}).apply(),r.for(k.TYPE).extend({decorator:e=>(t,r)=>("function"!=typeof(e=Array.isArray(e)?e[0]:e)||e.name||(e=e()),et({type:e,required:!1})(t,r))}).apply(),r.for(k.DATE).extend({decorator:e=>et({type:String,format:"date-time",required:!1})}).apply(),r.for(k.ENUM).extend({decorator:e=>et({enum:Array.isArray(e)?e:Object.values(e),required:!1})}).apply(),r.for(k.PATTERN).extend({decorator:e=>et({pattern:"string"==typeof e?e:e.source,required:!1})}).apply(),r.for(F.COLUMN).extend({decorator:e=>et({name:e,required:!1})}).apply(),r.for(o.DESCRIPTION).extend({decorator:e=>et({description:e,required:!1})}).apply(),r.for(F.AUTH).extend({decorator:vt}).apply();class Jt extends X{constructor(e){super(e,Jt.name)}}class Xt extends Te{constructor(e){super(Xt.name,e,429)}}let Qt=class{catch(e,t){const r=t.switchToHttp(),o=r.getResponse(),s=r.getRequest(),i="production"===De.env;let n;e instanceof $||e instanceof Q?n=(e=new x(e.message)).getStatus():e instanceof Te||(e=429===e.status?new Xt(e.message):new ve(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 Vt(){return S(new Qt)}function Kt(){return b($t)}Qt=Oe([R()],Qt);const Wt={path:"docs",auth:{type:"http",scheme:"bearer",bearerFormat:"JWT",name:"Authorization",description:"Enter JWT token",in:"header"},topbarBgColor:"#000000"};class Zt{constructor(e){this.options={...e}}customCSS(){let e="";return this.options.topbarIconPath&&(e+=`.topbar-wrapper { content: url('data:image/png;base64,${this.b64(this.options.topbarIconPath)}'); width: 200px; height: auto; }\n`),e+`\n .topbar-wrapper svg { visibility: hidden; }\n .swagger-ui .topbar { background-color: ${this.options.topbarBgColor||Wt.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}}}b64(e,t=!1){const r=Be.join(this.options.assetsPath||"",e),o=Ue(r,{encoding:"base64"});return t?"data:image/png;base64,"+o:o}}class er{constructor(e,t){this.app=e,this.options=t}createDocument(){const e=this.options.path?this.options.description+""+`<br><br><a href="${this.options.openApiJsonPath}">OpenAPI JSON Spec</a> | `+`<a href="${this.options.openApiYamlPath}">OpenAPI YAML Spec</a>`:this.options.description,t=(new ye).setTitle(this.options.title).setDescription(e).setVersion(this.options.version||"0.0.1").addBearerAuth(this.options.auth||Wt.auth).build();return be.createDocument(this.app,t,{extraModels:this.options.extraModels||[]})}registerOpenApiRoute(e,t,r){if(!e)return;const o=this.app.getHttpAdapter();e=e.startsWith("/")?e:"/"+e,o.get(e,(e,s)=>{o.reply(s,r(),200,{"Content-Type":t})})}setupSwagger(){const e=this.createDocument(),t=new Zt({title:this.options.title,path:this.options.path||Wt.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||Wt.path,this.app,e,{...t.getCustomOptions(),jsonDocumentUrl:this.options.openApiJsonPath?""+this.options.openApiJsonPath:void 0,yamlDocumentUrl:this.options.openApiYamlPath?""+this.options.openApiYamlPath:void 0}),this.registerOpenApiRoute(this.options.openApiJsonPath,"application/json",()=>e),this.registerOpenApiRoute(this.options.openApiYamlPath,"application/x-yaml",()=>Ge.stringify(e))}}class tr{static get logger(){return this._logger||(this._logger=new _("NestBootstrap")),this._logger}static initialize(e){return this.app=e,this}static enableLogger(e){return this._logger=e||new _("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 Jt(`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 er(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,openApiJsonPath:e.openApiJsonPath,openApiYamlPath:e.openApiYamlPath}).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 Qt]),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 rr;let or=rr=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 ve("Failed to contextualize request: "+e)}return(new Y).accumulate(Object.assign({},V,{logger:Ne.get(),timestamp:new Date},t))}async intercept(e,t){const r=e.switchToHttp().getRequest(),o=e.switchToHttp().getResponse(),s=Ne.for(rr).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()}};or=rr=Oe([m({scope:w.REQUEST}),$e("design:paramtypes",[Tt,Rt])],or);class sr{}function ir(e){return r=>(t.set("transformers",e,r),"function"==typeof r?s("transformers",e)(r):r)}var nr;let ar=class{static{nr=this}static get persistence(){if(!this._persistence)throw new ve("Persistence service not initialized");return this._persistence}static get log(){return this._logger||(this._logger=Ne.for(nr)),this._logger}constructor(e,t){this.options=e,this.moduleRef=t}static forRoot(e){const t=this.log.for(this.forRoot);return{module:nr,providers:[{provide:lt,useValue:e},{provide:ut,useValue:this.persistence?.client},{provide:mt,useFactory:()=>e.handlers?.map(e=>(t.info("Registered request handler: "+e.name),new e))??[]},wt,{provide:Ce,useExisting:wt},Tt,Rt,{provide:Ce,useClass:or}],exports:[lt,ut,mt,Tt,Rt]}}static async bootPersistence(e){const t=this.log.for(this.bootPersistence);if(!this._persistence){const r=e.conf.map(([e,t,...r])=>r.pop()?[e,t,...r]:[e,t]);this._persistence=new K,await this._persistence.boot(r);const o=this._persistence.client;for(let t=0;t<o.length;t++){const r=e.conf[t];let s=r.slice(2,r.length).pop();if(!s||!s.from){const e=z.transformerFor(o[t].flavour);if(!e)throw new ve(`No transformer found for flavour ${o[t].flavour}. you should either @requestToContextTransformer or provide a transformer in the config`);try{s=e.from?e:new e}catch(e){throw new ve(`Failed to boot transformer for ${o[t].flavour}: ${e}`)}}ir(o[t].flavour)(s)}if(t.info("persistence layer created successfully!"),e.initialization)try{await e.initialization()}catch(e){throw new ve("Failed to initialize application: "+e)}}return this.persistence.client}async onApplicationShutdown(){const e=nr.log.for(this.onApplicationShutdown),t=this.moduleRef.get(ut);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)}try{await U.shutdown()}catch(t){e.error("Failed to shutdown services",t)}}};ar=nr=Oe([C(),O({}),Re(0,y(lt)),$e("design:paramtypes",[Object,_e])],ar);const cr=Symbol("LISTENING_ADAPTERS_FLAVOURS");var pr;let dr=pr=class extends kt{constructor(e,t){super(e,pr.name),this.adapters=t.map(e=>z.get(e))}listen(){const e=Ne.for(pr.name),t=new Le(t=>{const r=("B-"+Math.random().toString(36).slice(2,8)).toUpperCase();e.info(`Creating SSE observer: ${r} for client ${this.clientContext.uuid}`);const o=new class{constructor(){this.observerId=r}refresh(...r){return e.debug(`SSE observer ${this.observerId} received refresh event`),Promise.resolve().then(()=>{const o=(e=>{const[t,r,o,s]=e;return[t?.name??t,r,o,Array.isArray(s)?s.map(e=>{try{return"function"==typeof e.serialize?e.serialize():"string"==typeof e?e:JSON.stringify(e)}catch(e){return}}):s&&"function"==typeof s.serialize?s.serialize():"string"==typeof s?s:JSON.stringify(s)]})(r);t.next({type:"message",data:o}),e.debug(`SSE observer ${this.observerId} event pushed to client`)})}};e.verbose(`Registering observer ${r} across ${this.adapters.length} adapter(s)`);for(const t of this.adapters){const s=t?.constructor?.name??"UnknownAdapter";try{e.debug(`Registering observer ${r} in adapter ${s}`),t.observe(o)}catch(t){e.debug(`Failed to register observer ${r} in adapter ${s}: ${t?.message||t}`),e.error(t)}}return()=>{e.debug("Cleaning up SSE observer "+r);for(const t of this.adapters){const s=t?.constructor?.name??"UnknownAdapter";try{e.debug(`Unregistering observer ${r} from adapter ${s}`),t.unObserve(o)}catch(t){e.debug(`Failed during cleanup of observer ${r} in adapter ${s}: ${t?.message||t}`),e.error(t)}}}}),r=Me(15e3).pipe(He(()=>{e.debug("Sending heartbeat")}),ze(()=>({type:"heartbeat",data:{ts:(new Date).toISOString()}})));return je(t,r)}listenForModel(e){const t=Ne.for(pr.name);return new Le(e=>{const r=new class{refresh(...t){return Promise.resolve().then(()=>{e.next({data:t})})}};try{for(const e of this.adapters)e.observe(r)}catch(t){e.error("Failed to observe event: "+(t.message||t))}return()=>{try{for(const e of this.adapters)e.unObserve(r)}catch(e){t.error(e)}}})}};var lr;Oe([I(),$e("design:type",Function),$e("design:paramtypes",[]),$e("design:returntype",Le)],dr.prototype,"listen",null),Oe([I("/:model"),Re(0,v("model")),$e("design:type",Function),$e("design:paramtypes",[String]),$e("design:returntype",Le)],dr.prototype,"listenForModel",null),dr=pr=Oe([T(),Re(1,y(cr)),$e("design:paramtypes",[Tt,Array])],dr);let ur=lr=class{static forFlavours(e,t="events"){return{module:lr,controllers:[dr],imports:[Ie.register([{path:t.replace(/^\//,""),module:lr}])],providers:[Tt,{provide:cr,useValue:e??[]}]}}};var hr;ur=lr=Oe([O({})],ur);let fr=hr=class{static async forRootAsync(e){const{autoControllers:t,autoServices:r}=e,o=(await ar.bootPersistence(e)).map(e=>e.flavour),s=[ar.forRoot(e)];return t&&o.forEach(e=>{s.push(Yt(e).forRoot(e,{autoServices:r}))}),e.observerOptions?.enableObserverEvents&&s.push(ur.forFlavours(e.observerOptions.observerFlavours||o)),{module:hr,imports:s}}};async function mr(){}var gr;fr=hr=Oe([O({})],fr);const yr=Ne.for("DecafMigrationModule");let br=gr=class{static forRoot(){return{module:gr}}static async migrate(e,t){const r=yr.for(this.migrate);if(!t||0===t.length)throw new ve("No adapters provided. Make sure DecafCoreModule is configured and adapters are available.");return r.info("Running migrations with config: "+JSON.stringify(e)),Ye.migrateAdapters(t,e||{})}};function Ar(e){const t=N.get(e);if(!t)throw new ve("Failed to find repository for "+e);return B.forModel(t)}br=gr=Oe([C(),O({providers:[{provide:"MIGRATION_ADAPTERS",useFactory:e=>e,inject:[ut]}],exports:["MIGRATION_ADAPTERS"]})],br);const wr="##VERSION##",vr="##COMMIT##",Er="##FULL_VERSION##",Pr="##PACKAGE##";t.allowReregistration(!0),t.registerLibrary(Pr,wr),t.allowReregistration(!1);export{yt as AUTH_HANDLER,bt as AUTH_META_KEY,ot as ApiOperationFromModel,it as ApiParamsFromModel,et as ApiProperty,vt as Auth,wt as AuthInterceptor,st as BulkApiOperationFromModel,vr as COMMIT,Jt as CorsError,ut as DECAF_ADAPTER_ID,gt as DECAF_ADAPTER_OPTIONS,At as DECAF_CONTEXT_KEY,mt as DECAF_HANDLERS,lt as DECAF_MODULE_OPTIONS,ft as DECAF_ROUTE,ht as DECAF_TASK_SERVICE_ID,Xe as DECORATORS,Je as DECORATORS_PREFIX,Et as DecafAuthHandler,nt as DecafBody,kt as DecafController,ar as DecafCoreModule,Qt as DecafExceptionFilter,Rt as DecafHandlerExecutor,br as DecafMigrationModule,qt as DecafModelController,fr as DecafModule,ct as DecafParams,pt as DecafQuery,Tt as DecafRequestContext,or as DecafRequestHandlerInterceptor,$t as DecafResponseInterceptor,Pt as DecafRoleAuthHandler,ur as DecafStreamModule,Lt as DtoFor,dr as EventsController,Er as FULL_VERSION,zt as FromModelController,dt as HttpVerbToDecorator,tr as NestBootstraper,Pr as PACKAGE_NAME,sr as RequestToContextTransformer,er as SwaggerBuilder,Vt as UseDecafFilter,Kt as UseDecafHeaders,wr as VERSION,tt as createApiPropertyDecorator,Ze as createPropertyDecorator,We as getEnumType,Ke as getEnumValues,Yt as getModuleFor,rt as isOperationBlocked,Ve as isUndefined,Ar as repoForModel,ir as requestToContextTransformer,mr as runMigrations};
|
|
1
|
+
import{apply as e,Metadata as t,Decoration as r,DecorationKeys as o,metadata as s,uses as i}from"@decaf-ts/decoration";import{InjectablesKeys as n,DefaultInjectablesConfig as a}from"@decaf-ts/injectable-decorators";import{Delete as c,Patch as p,Put as d,Post as l,Get as u,applyDecorators as h,createParamDecorator as f,InternalServerErrorException as g,Injectable as m,Optional as y,Inject as b,UseInterceptors as v,SetMetadata as w,Scope as A,Query as E,Param as P,Response as R,Controller as T,Module as O,Catch as x,NotFoundException as S,NotAcceptableException as $,UseFilters as _,Logger as C,Global as k,Sse as I}from"@nestjs/common";import{Model as N,ValidationKeys as F,ModelBuilder as D}from"@decaf-ts/decorator-validation";import{AuthorizationError as q,PersistenceKeys as M,UUID as L,OrderDirection as j,ModelService as U,Service as B,Repository as G,ContextualLoggedClass as z,TransactionOperationKeys as H,Adapter as Y,Context as J,PreparedStatementKeys as X,ForbiddenError as W,UnsupportedError as Q,DefaultAdapterFlags as V,PersistenceService as K}from"@decaf-ts/core";import{isArray as Z,isString as ee,pickBy as te,negate as re}from"lodash";import{ApiExcludeEndpoint as oe,ApiParam as se,ApiBearerAuth as ie,ApiQuery as ne,ApiOperation as ae,ApiOkResponse as ce,ApiNoContentResponse as pe,ApiNotFoundResponse as de,ApiBody as le,getSchemaPath as ue,ApiCreatedResponse as he,ApiBadRequestResponse as fe,ApiUnprocessableEntityResponse as ge,ApiTags as me,ApiExtraModels as ye,DocumentBuilder as be,SwaggerModule as ve}from"@nestjs/swagger";import{OperationKeys as we,BulkCrudOperationKeys as Ae,InternalError as Ee,DBKeys as Pe,ValidationError as Re,BaseError as Te}from"@decaf-ts/db-decorators";import{__decorate as Oe,__param as xe,__metadata as Se}from"tslib";import{Reflector as $e,REQUEST as _e,ModuleRef as Ce,APP_INTERCEPTOR as ke,RouterModule as Ie}from"@nestjs/core";import{Logging as Ne,toPascalCase as Fe,toKebabCase as De,LoggedEnvironment as qe}from"@decaf-ts/logging";import{tap as Me,Observable as Le,interval as je,merge as Ue}from"rxjs";import{readFileSync as Be}from"fs";import*as Ge from"path";import ze from"yaml";import{tap as He,map as Ye}from"rxjs/operators";import{MigrationService as Je}from"@decaf-ts/core/migrations";import{WebhookSubscription as Xe,WebhookEventRecord as We,WebhookDelivery as Qe,collectPagedResults as Ve,WebhookStatus as Ke}from"@decaf-ts/for-http/server";export{WebhookDelivery,WebhookDeliveryService,WebhookEventRecord,WebhookPublisherService,WebhookSignatureMiddleware,WebhookStatus,WebhookSubscription,WebhookSubscriptionService,computeNextAttempt,signWebhookPayload,verifyWebhookSignature}from"@decaf-ts/for-http/server";const Ze="swagger",et={API_OPERATION:Ze+"/apiOperation",API_RESPONSE:Ze+"/apiResponse",API_PRODUCES:Ze+"/apiProduces",API_CONSUMES:Ze+"/apiConsumes",API_TAGS:Ze+"/apiUseTags",API_CALLBACKS:Ze+"/apiCallbacks",API_PARAMETERS:Ze+"/apiParameters",API_HEADERS:Ze+"/apiHeaders",API_MODEL_PROPERTIES:Ze+"/apiModelProperties",API_MODEL_PROPERTIES_ARRAY:Ze+"/apiModelPropertiesArray",API_SECURITY:Ze+"/apiSecurity",API_EXCLUDE_ENDPOINT:Ze+"/apiExcludeEndpoint",API_EXCLUDE_CONTROLLER:Ze+"/apiExcludeController",API_EXTRA_MODELS:Ze+"/apiExtraModels",API_EXTENSION:Ze+"/apiExtension",API_SCHEMA:Ze+"/apiSchema",API_DEFAULT_GETTER:Ze+"/apiDefaultGetter",API_LINK:Ze+"/apiLink"};function tt(e,t){if(!e)return[e,t];if(t)return[e,t];const r=Z(e);return[r?e[0]:e,r]}const rt=e=>void 0===e;function ot(e){if("function"==typeof e)return ot(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 st(e){return e.filter(ee).length>0?"string":"number"}function it(e,t,r=!0){return(o,s)=>{const i=Reflect.getMetadata(et.API_MODEL_PROPERTIES_ARRAY,o)||[],n=":"+s;i.includes(n)||Reflect.defineMetadata(et.API_MODEL_PROPERTIES_ARRAY,[...i,":"+s],o);const a=Reflect.getMetadata(e,o,s);if(a){const i=te(t,re(rt)),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,...te(t,re(rt))},o,s)}}}function nt(e={}){return at(e)}function at(e={},t=!0){const[r,o]=tt(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=ot(e.enum);e.items={type:st(t),enum:t},delete e.enum}else if("enum"in e&&void 0!==e.enum){const t=ot(e.enum);e.enum=t,e.type=st(t)}var s;return Array.isArray(e.type)&&(e.type="array",e.items={type:"array",items:{type:e.type[0]}}),it(et.API_MODEL_PROPERTIES,e,t)}function ct(e,r){const{handler:o,args:s}=t.get(e,we.REFLECT+we.BLOCK)||{};return!!o&&(o(...s,r)??!1)}function pt(t,r,o){const s={GET:[we.READ,u],POST:[we.CREATE,l],PUT:[we.UPDATE,d],PATCH:[we.UPDATE,p],DELETE:[we.DELETE,c]},[i,n]=s[r];return ct(t,i)?e(oe()):e(n(o))}function dt(t,r,o){const s={GET:[Ae.READ_ALL,u],POST:[Ae.CREATE_ALL,l],PUT:[Ae.UPDATE_ALL,d],PATCH:[Ae.UPDATE_ALL,p],DELETE:[Ae.DELETE_ALL,c]},[i,n]=s[r];return ct(t,i)?e(oe()):e(n(o))}function lt(e=[]){const t=e.map(e=>se({name:e.name,description:e.description??"Path parameter: "+e.name,required:e.required??!0,type:e.type??String}));return h(...t)}const ut=f((e,t)=>{const r=t.switchToHttp().getRequest().body,o=t.getClass(),s=o.class;if(!s)throw new g(`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}),ht=f((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 ft(e=[]){const t=e.map(e=>e.name);return ht(t)}const gt=f((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 mt(e){const t={GET:u,POST:l,PUT:d,PATCH:p,DELETE:c}[e];if(!t)throw Error(`Unsupported HTTP verb "${e}". No NestJS decorator mapping was found.`);return t}const yt="DecafModuleOptions",bt="DecafAdapter",vt="DecafTaskService",wt="DecafRoute",At=Symbol("DecafHandlers"),Et=Symbol("DecafAdapterForOptions"),Pt=Symbol("AUTH_HANDLER"),Rt="auth:meta",Tt=Symbol("decaf:context");let Ot=class{constructor(e,t){this.reflector=e,this.authHandler=t}async intercept(e,t){const r=Ne.for(this).for(this.intercept),o=this.reflector.get(Rt,e.getHandler())??this.reflector.get(Rt,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 xt(e){const t=e?"string"==typeof e?e:e.name:void 0,r=[ie(),v(Ot)];return t&&r.push(w(Rt,t)),h(...r)}Ot=Oe([m(),xe(1,y()),xe(1,b(Pt)),Se("design:paramtypes",[$e,Object])],Ot);class St{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 q("Unauthenticated");if(!t.get(N.get(r),M.AUTH_ROLE).includes(s))throw new q("Missing role: "+s)}}class $t extends St{constructor(){super()}async authorize(e,r){const o=e.switchToHttp().getRequest(),s=this.parseRequest(o);if(!s)throw new q("Unauthenticated");const i=t.get(N.get(r),M.AUTH_ROLE);if(!i.includes(s))throw new q("Missing role: "+s);return i}}let _t=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 Ee("Trying to overwrite context");this._ctx=e}get ctx(){if(!this._ctx)throw new Ee("Context not initialized for request");return this._ctx}};var Ct;_t=Oe([m({scope:A.REQUEST}),xe(0,b(_e)),Se("design:paramtypes",[Request])],_t);let kt=Ct=class{constructor(e,t){this.handlers=e,this.context=t}async exec(e,t){Ne.for(Ct.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)}};kt=Ct=Oe([m({scope:A.REQUEST}),xe(0,b(At)),Se("design:paramtypes",[Array,_t])],kt);let It=class{constructor(e){this.ctx=e}intercept(e,t){let r=e.switchToHttp().getResponse();return t.handle().pipe(Me(e=>{r=this.ctx.ctx.toResponse(r)}))}};It=Oe([m(),Se("design:paramtypes",[_t])],It);const Nt=e=>({name:e,description:e+" parameter for the query",required:!0,type:String});function Ft(e,t,r,o=!1){const s=mt(r),i=(e=>e.split("/").filter(e=>e.startsWith(":")).map(e=>e.slice(1)))(t).map(Nt),n=[];return"GET"===r&&o&&n.push(ne({name:"direction",required:!1,enum:j,description:"the sort order when applicable"}),ne({name:"limit",required:!1,description:"limit or page size when applicable"}),ne({name:"offset",required:!1,description:"offset or bookmark when applicable"})),{method:[s(t),...i.map(se),...n,ae({summary:`Retrieve records using according to "${e}".`}),ce({description:"Result successfully retrieved."}),pe({description:"No content returned by the method."})],params:[ft(i),E()]}}function Dt(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 qt(e,t,...r){if(e instanceof U)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 Mt(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 qt(this.persistence(),e,...t.valuesInOrder,s,i,n)}catch(t){throw o.error(`Custom query "${e}" failed`,t),t}}}function Lt(e,t,r){return Object.defineProperty(e.prototype||e,t,{value:r,writable:!1}),Object.getOwnPropertyDescriptor(e.prototype||e,t)}class jt extends B{constructor(e,t){super(),this.clientContext=e}logCtx(e,t,r=!1,o){const s=this.clientContext.ctx;let i;e=e.filter(e=>void 0!==e),o&&(o.headers||o.ip)&&(i=o,o={});const n=z.logCtx.call(this,t,o||{},r,...e,s);return this.bindLoggerToRequest(n,i)}bindLoggerToRequest(e,t){const r=this;function o(e,t){return e.log=((e,t)=>{const o=(e=>{if(!e)return;const t=e.headers,r=Bt(t?.["x-forwarded-for"])??Bt(t?.["x-real-ip"])??Bt(t?.["X-Forwarded-For"])??Bt(t?.["X-Real-IP"]);if(r)return r;if("string"==typeof e.ip&&e.ip.length)return e.ip;const o=e.socket||e.connection;return o&&"string"==typeof o.remoteAddress&&o.remoteAddress.length?o.remoteAddress:void 0})(t??r.clientContext.request);if(!o)return e;const s={ip:o};return e.for(s)})(e.log,t),e}return(e=>"object"==typeof e&&null!==e&&"function"==typeof e.then)(e)?e.then(e=>o(e,t)):o(e,t)}}class Ut extends jt{persistence(e){if(!this._persistence)try{this._persistence=B.get(this.class)}catch(e){try{this._persistence=U.getService(this.class)}catch(e){this._persistence=G.forModel(this.class)}}const t=this.clientContext.request[Et]||{};return e&&this.clientContext.put(t),e?this._persistence instanceof G?this._persistence.override(t):this._persistence.for(t):this._persistence}constructor(e,t){super(e,t)}logCtx(e,t,r=!1,o){const s=this.clientContext.ctx;let i;o&&(o.headers||o.ip)&&(i=o,o={});try{o=s.get("overrides")}catch(e){}const n=this.persistence(s);let a,c;return n instanceof U?a=n.repo._adapter:n instanceof G?a=n._adapter:n.context&&(a=n),r?a.logCtx(e,t,!0,o).then(e=>this.bindLoggerToRequest(e,i)):(c=a.logCtx(e,t,!1,o),this.bindLoggerToRequest(c,i))}}function Bt(e){if(e)return(Array.isArray(e)?e[0]:e).split(",").map(e=>e.trim()).filter(Boolean)[0]}const Gt=new Map;function zt(e,r){if(!H.includes(e))return r;const o=(e=>(Gt.has(e)||Gt.set(e,new WeakMap),Gt.get(e)))(e),s=o.get(r);if(s)return s;const i=[we.UPDATE,Ae.UPDATE_ALL].includes(e);class n{}o.set(r,n),Object.defineProperty(n,"name",{value:`${Fe(r.name)}${Fe(e)}DTO`});const a=(()=>{try{return N.pk(r)}catch{return}})(),c=a?N.pkProps(r):void 0,p=a?Reflect.getMetadata("design:type",r.prototype,a):void 0,d=p===Number||p===BigInt,l=!!c?.generated||!!a&&(N.generatedBySequence(r,a)||Jt(r,a)||d),u=Array.from(new Set(t.properties(r)||[])),h=new Set(N.relations(r)||[]),f=[];for(const e of u)e&&(h.has(e)||e===a&&!i&&l||e!==a&&Jt(r,e)||f.push(e));for(const e of f){const t=Xt(r,e),o=!!t?.[F.REQUIRED],s=Wt(r,e)??Reflect.getMetadata("design:type",r.prototype,e),i={required:o};s&&(i.type=s),nt(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 Ee(`Metadata for relation ${o} not found`);let a=s.class;if("function"!=typeof a||a.name||(a=a()),!a||"function"!=typeof a)throw new Ee(`Type for relation ${o} not found`);if(!N.get(a.name))continue;const c=t.validationFor(r,o),p=!!c?.[F.LIST],d=!!c?.[F.REQUIRED],l=zt(e,a);i?Yt(n,o,a,l,p,d):Ht(n,o,l,p,d)}return n}function Ht(e,t,r,o,s){nt({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 Yt(e,t,r,o,s,i){const n=Reflect.getMetadata(et.API_EXTRA_MODELS,e)||[];n.includes(o)||Reflect.defineMetadata(et.API_EXTRA_MODELS,[...n,o],e);const a="#/components/schemas/"+o.name,c=(e=>{try{const t=N.pkProps(e),r=t?.type;return r===Number||r===BigInt?"integer":"string"}catch{return"string"}})(r),p=[{$ref:a},{type:c}];nt(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 Jt(e,t){let r=e;for(;r&&r!==Object&&r!==Function;){if(N.generated(r,t))return!0;r=Object.getPrototypeOf(r)}return!1}function Xt(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 Wt(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)}}Y.transformerFor=(e=>{const r="string"==typeof e?e:e.alias;return t.innerGet(Symbol.for("transformers"),r)}).bind(Y),Y.flavoursToTransform=(()=>{const e=t.innerGet(Symbol.for("transformers"));if(e)return Object.keys(e)}).bind(Y),J.prototype.toResponse=function(e){const t=this.pending();return t&&e.header("x-pending-task",JSON.stringify(t)),e};const Qt=D.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(xt(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 Vt{static{this.log=Ne.for(Vt.name)}static getPersistence(e){try{return B.get(e)}catch(t){try{return U.getService(e)}catch(t){return G.forModel(e)}}}static createQueryRoutesFromRepository(e,r=M.QUERY){const o=Vt.log.for(Vt.createQueryRoutesFromRepository),s=e instanceof U?e.repo:e,i=s.class,n=t.get(s.constructor,t.key(M.QUERY))??{},a=t.get(e.constructor,t.key(wt))??{};class c extends Ut{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=Mt(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=Lt(c,e,s);n&&Dt(c,e,n,Ft(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=Lt(c,e,Mt(e));s&&Dt(c,e,s,Ft(e,o,"GET",!0))}return c}static create(e){const t=Vt.log.for(Vt.create),r=N.tableName(e),o=De(r),s=e.name,i=Vt.getPersistence(e),{description:n,getPK:a,apiProperties:c,path:p}=Vt.getRouteParametersFromModel(e);t.debug("Creating controller for model: "+s);const d=Vt.createQueryRoutesFromRepository(i);let l=class extends d{static get class(){return e}get class(){return e}constructor(r){super(r),this.pk=N.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 qt(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 qt(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([],M.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([],Ae.CREATE_ALL,!0)).for(this.createAll);let n;i.verbose("creating new "+s);try{n=await this.persistence(o).createAll(t.map(t=>new e(t)),o)}catch(e){throw i.error("Failed to create new "+s,e),e}return i.info(`created new ${s} with id ${n[this.pk]}`),o.toResponse(r),n}async create(e,t){const{ctx:r,log:o}=(await this.logCtx([],we.CREATE,!0)).for(this.create);let i;o.verbose("creating new "+s);try{const t=this.persistence(r);i=await t.create(e,r)}catch(e){throw o.error("Failed to create new "+s,e),e}return o.info(`created new ${s} with id ${i[this.pk]}`),r.toResponse(t),i}async readAll(e){const{ctx:t,log:r}=(await this.logCtx([],Ae.READ_ALL,!0)).for(this.readAll),o=Array.isArray(e)?e:[e];let i;try{r.debug(`reading ${o} ${s}: ${o}`);const e=this.persistence(t);i=await e.readAll(o,t)}catch(e){throw r.error(`Failed to ${s} with id ${o}`,e),e}return r.info(`read ${i.length} ${s}`),i}async read(e){const{ctx:t,log:r}=(await this.logCtx([],we.READ,!0)).for(this.read),o=a(...e.valuesInOrder);if(void 0===o)throw new Re(`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([],Ae.UPDATE_ALL,!0)).for(this.updateAll);let i;try{o.info(`updating ${e.length} ${s}`),i=await this.persistence(r).updateAll(e,r)}catch(e){throw o.error(e),e}return r.toResponse(t),i}async update(t,r,o){const{ctx:i,log:n}=(await this.logCtx([],we.UPDATE,!0)).for(this.update),c=a(...t.valuesInOrder);if(void 0===c)throw new Re(`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([],Ae.DELETE_ALL,!0)).for(this.deleteAll),i=Array.isArray(e)?e:[e];let n;try{o.debug(`deleting ${i.length} ${s}: ${i}`),n=await this.persistence(r).deleteAll(i,r)}catch(e){throw o.error(`Failed to delete ${s} with id ${i}`,e),e}return o.info(`deleted ${n.length} ${s}`),r.toResponse(t),n}async delete(e,t){const{ctx:r,log:o}=(await this.logCtx([],we.DELETE,!0)).for(this.delete),i=a(...e.valuesInOrder);if(void 0===i)throw new Re(`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([pt(e,"GET","listBy/:key"),ae({summary:`Retrieve ${s} records by query.`}),se({name:"key",description:"the model key to sort by"}),ne({name:"direction",required:!0,enum:j}),ce({description:s+" listed successfully."}),xe(0,P("key")),xe(1,gt()),Se("design:type",Function),Se("design:paramtypes",[String,Object]),Se("design:returntype",Promise)],l.prototype,"listBy",null),Oe([pt(e,"GET","paginateBy/:key/:page"),ae({summary:`Retrieve ${s} records by query.`}),se({name:"key",description:"the model key to sort by"}),se({name:"page",description:"the page to retrieve or the bookmark"}),ne({name:"direction",required:!0,enum:j,description:"the sort order"}),ne({name:"limit",required:!0,description:"the page size"}),ne({name:"offset",description:"the bookmark when necessary"}),ce({description:s+" listed paginated."}),xe(0,P("key")),xe(1,gt()),Se("design:type",Function),Se("design:paramtypes",[String,Object]),Se("design:returntype",Promise)],l.prototype,"paginateBy",null),Oe([pt(e,"GET","find/:value"),ae({summary:`Find ${s} records using the default query attributes.`}),se({name:"value",description:"The string to match against the default query attributes"}),ne({name:"direction",required:!1,enum:j,description:"the sort order for the matching results"}),ce({description:s+" records matching the provided prefix."}),xe(0,P("value")),xe(1,gt()),Se("design:type",Function),Se("design:paramtypes",[String,Object]),Se("design:returntype",Promise)],l.prototype,"find",null),Oe([pt(e,"GET","page/:value"),ae({summary:`Page ${s} records using the default query attributes.`}),se({name:"value",description:"The string to match against the default query attributes"}),ne({name:"direction",required:!1,enum:j,description:"the sort order for the paged results"}),ne({name:"limit",required:!1,description:"page size"}),ne({name:"offset",required:!1,description:"page number"}),ne({name:"bookmark",required:!1,description:"bookmark for cursor pagination"}),ce({description:s+" records paged by the provided prefix."}),xe(0,P("value")),xe(1,gt()),Se("design:type",Function),Se("design:paramtypes",[String,Object]),Se("design:returntype",Promise)],l.prototype,"page",null),Oe([pt(e,"GET","findOneBy/:key"),ae({summary:`Retrieve ${s} records by query.`}),se({name:"key",description:"the model key to sort by"}),ce({description:s+" listed found."}),de({description:`No ${s} record matches the provided identifier.`}),xe(0,P("key")),xe(1,P("value")),Se("design:type",Function),Se("design:paramtypes",[String,Object]),Se("design:returntype",Promise)],l.prototype,"findOneBy",null),Oe([pt(e,"GET","findBy/:key/:value"),ae({summary:`Retrieve ${s} records by query.`}),se({name:"key",description:"the model key to compare"}),se({name:"value",description:"the value to match"}),ne({name:"direction",required:!0,enum:j,description:"the sort order when applicable"}),ce({description:s+" listed found."}),de({description:`No ${s} record matches the provided identifier.`}),xe(0,P("key")),xe(1,P("value")),xe(2,gt()),Se("design:type",Function),Se("design:paramtypes",[String,Object,Object]),Se("design:returntype",Promise)],l.prototype,"findBy",null),Oe([pt(e,"GET","statement/:method/*args"),ae({summary:`Executes a prepared statement on ${s}.`}),se({name:"method",description:"the prepared statement to execute"}),se({name:"args",description:"concatenated list of arguments the prepared statement can accept"}),ne({name:"direction",required:!0,enum:j,description:"the sort order when applicable"}),ne({name:"limit",required:!0,description:"limit or page size when applicable"}),ne({name:"offset",required:!0,description:"offset or bookmark when applicable"}),ce({description:s+" listed found."}),de({description:`No ${s} record matches the provided identifier.`}),xe(0,P("method")),xe(1,P("args")),xe(2,gt()),Se("design:type",Function),Se("design:paramtypes",[String,Array,Object]),Se("design:returntype",Promise)],l.prototype,"statement",null),Oe([pt(e,"POST","bulk"),ae({summary:`Create a new ${s}.`}),le({description:"Payload for "+s,schema:{type:"array",items:{$ref:ue(e)}}}),he({description:s+" created successfully.",schema:{type:"array",items:{$ref:ue(e)}}}),fe({description:"Payload validation failed."}),ge({description:"Repository rejected the provided payload."}),xe(0,ut()),xe(1,R({passthrough:!0})),Se("design:type",Function),Se("design:paramtypes",[Array,Object]),Se("design:returntype",Promise)],l.prototype,"createAll",null),Oe([pt(e,"POST"),ae({summary:`Create a new ${s}.`}),le({description:"Payload for "+s,type:zt(we.CREATE,e)}),he({description:s+" created successfully.",schema:{$ref:ue(e)}}),fe({description:"Payload validation failed."}),ge({description:"Repository rejected the provided payload."}),xe(0,ut()),xe(1,R({passthrough:!0})),Se("design:type",Function),Se("design:paramtypes",[Object,Object]),Se("design:returntype",Promise)],l.prototype,"create",null),Oe([pt(e,"GET","bulk"),ae({summary:`Retrieve a ${s} record by id.`}),ne({name:"ids",required:!0,type:"array"}),ce({description:s+" retrieved successfully.",schema:{type:"array",items:{$ref:ue(e)}}}),de({description:`No ${s} record matches the provided identifier.`}),xe(0,E("ids")),Se("design:type",Function),Se("design:paramtypes",[Array]),Se("design:returntype",Promise)],l.prototype,"readAll",null),Oe([pt(e,"GET",p),lt(c),ae({summary:`Retrieve a ${s} record by id.`}),ce({description:s+" retrieved successfully.",schema:{$ref:ue(e)}}),de({description:`No ${s} record matches the provided identifier.`}),xe(0,ft(c)),Se("design:type",Function),Se("design:paramtypes",[Object]),Se("design:returntype",Promise)],l.prototype,"read",null),Oe([pt(e,"PUT","bulk"),lt(c),ae({summary:`Replace an existing ${s} record with a new payload.`}),le({description:"Payload for replace a existing record of "+s,schema:{type:"array",$ref:ue(zt(we.UPDATE,e))}}),ce({description:s+" updated successfully.",schema:{type:"array",items:{$ref:ue(e)}}}),de({description:`No ${s} record matches the provided identifier.`}),fe({description:"Payload validation failed."}),xe(0,ut()),xe(1,R({passthrough:!0})),Se("design:type",Function),Se("design:paramtypes",[Array,Object]),Se("design:returntype",Promise)],l.prototype,"updateAll",null),Oe([pt(e,"PUT",p),lt(c),ae({summary:`Replace an existing ${s} record with a new payload.`}),le({description:"Payload for replace a existing record of "+s,type:zt(we.UPDATE,e)}),ce({description:s+" updated successfully.",schema:{$ref:ue(e)}}),de({description:`No ${s} record matches the provided identifier.`}),fe({description:"Payload validation failed."}),xe(0,ft(c)),xe(1,ut()),xe(2,R({passthrough:!0})),Se("design:type",Function),Se("design:paramtypes",[Object,Object,Object]),Se("design:returntype",Promise)],l.prototype,"update",null),Oe([pt(e,"DELETE","bulk"),lt(c),ae({summary:`Retrieve a ${s} record by id.`}),ne({name:"ids",required:!0,type:"array"}),ce({description:s+" deleted successfully.",schema:{type:"array",items:{$ref:ue(e)}}}),de({description:`No ${s} record matches the provided identifier.`}),xe(0,E("ids")),xe(1,R({passthrough:!0})),Se("design:type",Function),Se("design:paramtypes",[Array,Object]),Se("design:returntype",Promise)],l.prototype,"deleteAll",null),Oe([pt(e,"DELETE",p),lt(c),ae({summary:`Delete a ${s} record by id.`}),ce({description:s+" deleted successfully.",schema:{$ref:ue(e)}}),de({description:`No ${s} record matches the provided identifier.`}),xe(0,ft(c)),xe(1,R({passthrough:!0})),Se("design:type",Function),Se("design:paramtypes",[Object,Object]),Se("design:returntype",Promise)],l.prototype,"delete",null),l=Oe([T(o),me(s),ye(e),xt(e),Se("design:paramtypes",[_t])],l),l}static getRouteParametersFromModel(e){const r=N.pk(e),o=t.get(e,t.key(Pe.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 Kt(e){var t;let r=class{static{t=this}static{this.log=Ne.for(t.name).for(e)}static createModelServices(e){return e.map(e=>({provide:e.name+"Service",useFactory:()=>U.forModel(e)}))}static forRoot(e,r={}){const o=this.log.for(this.forRoot);o.info("Generating controllers for flavour...");const s=Y.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(Vt.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(n.INJECTABLE).extend({decorator:(e,t)=>(t=t||("object"==typeof e?Object.assign(e,a):a),m({scope:t.singleton?A.DEFAULT:A.REQUEST,durable:!t.singleton||void 0}))}).apply(),r.for(n.INJECT).extend({decorator:(e,t)=>(t,r,o)=>b(e||t)(t,r,o)}).apply(),r.for(F.REQUIRED).extend(nt({required:!0})).apply(),r.for(F.MAX).extend({decorator:e=>nt({maximum:e,required:!1})}).apply(),r.for(F.MIN).extend({decorator:e=>nt({minimum:e,required:!1})}).apply(),r.for(F.MAX_LENGTH).extend({decorator:e=>nt({maxLength:e,required:!1})}).apply(),r.for(F.MIN_LENGTH).extend({decorator:e=>nt({minLength:e,required:!1})}).apply(),r.for(F.TYPE).extend({decorator:e=>(t,r)=>("function"!=typeof(e=Array.isArray(e)?e[0]:e)||e.name||(e=e()),nt({type:e,required:!1})(t,r))}).apply(),r.for(F.DATE).extend({decorator:e=>nt({type:String,format:"date-time",required:!1})}).apply(),r.for(F.ENUM).extend({decorator:e=>nt({enum:Array.isArray(e)?e:Object.values(e),required:!1})}).apply(),r.for(F.PATTERN).extend({decorator:e=>nt({pattern:"string"==typeof e?e:e.source,required:!1})}).apply(),r.for(M.COLUMN).extend({decorator:e=>nt({name:e,required:!1})}).apply(),r.for(o.DESCRIPTION).extend({decorator:e=>nt({description:e,required:!1})}).apply(),r.for(M.AUTH).extend({decorator:xt}).apply();class Zt extends W{constructor(e){super(e,Zt.name)}}class er extends Te{constructor(e){super(er.name,e,429)}}let tr=class{catch(e,t){const r=t.switchToHttp(),o=r.getResponse(),s=r.getRequest(),i="production"===qe.env;let n;e instanceof S||e instanceof Q?n=(e=new $(e.message)).getStatus():e instanceof Te||(e=429===e.status?new er(e.message):new Ee(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 rr(){return _(new tr)}function or(){return v(It)}tr=Oe([x()],tr);const sr={path:"docs",auth:{type:"http",scheme:"bearer",bearerFormat:"JWT",name:"Authorization",description:"Enter JWT token",in:"header"},topbarBgColor:"#000000"};class ir{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||sr.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}}}b64(e,t=!1){const r=Ge.join(this.options.assetsPath||"",e),o=Be(r,{encoding:"base64"});return t?"data:image/png;base64,"+o:o}}class nr{constructor(e,t){this.app=e,this.options=t}createDocument(){const e=this.options.path?this.options.description+""+`<br><br><a href="${this.options.openApiJsonPath}">OpenAPI JSON Spec</a> | `+`<a href="${this.options.openApiYamlPath}">OpenAPI YAML Spec</a>`:this.options.description,t=(new be).setTitle(this.options.title).setDescription(e).setVersion(this.options.version||"0.0.1").addBearerAuth(this.options.auth||sr.auth).build();return ve.createDocument(this.app,t,{extraModels:this.options.extraModels||[]})}registerOpenApiRoute(e,t,r){if(!e)return;const o=this.app.getHttpAdapter();e=e.startsWith("/")?e:"/"+e,o.get(e,(e,s)=>{o.reply(s,r(),200,{"Content-Type":t})})}setupSwagger(){const e=this.createDocument(),t=new ir({title:this.options.title,path:this.options.path||sr.path,persistAuthorization:this.options.persistAuthorization??!0,assetsPath:this.options.assetsPath,faviconPath:this.options.faviconFilePath,topbarIconPath:this.options.topbarIconFilePath,topbarBgColor:this.options.topbarBgColor});ve.setup(this.options.path||sr.path,this.app,e,{...t.getCustomOptions(),jsonDocumentUrl:this.options.openApiJsonPath?""+this.options.openApiJsonPath:void 0,yamlDocumentUrl:this.options.openApiYamlPath?""+this.options.openApiYamlPath:void 0}),this.registerOpenApiRoute(this.options.openApiJsonPath,"application/json",()=>e),this.registerOpenApiRoute(this.options.openApiYamlPath,"application/x-yaml",()=>ze.stringify(e))}}class ar{static get logger(){return this._logger||(this._logger=new C("NestBootstrap")),this._logger}static initialize(e){return this.app=e,this}static enableLogger(e){return this._logger=e||new C("NestBootstrap"),this.app.useLogger(this._logger),this}static enableCors(e=[],t=["GET","POST","PUT","DELETE"]){const r="*"===e?"*":e.map(e=>e.trim().toLowerCase()),o={origin:(e,t)=>e?"*"===r||Array.isArray(r)&&r.includes(e.toLowerCase())?t(null,!0):void t(new Zt(`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 nr(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,openApiJsonPath:e.openApiJsonPath,openApiYamlPath:e.openApiYamlPath}).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 tr]),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 cr;let pr=cr=class{constructor(e,t){this.requestContext=e,this.executor=t}async contextualize(e){const t={headers:e.headers,overrides:{}},r=Y.flavoursToTransform();if(r)for(const o of r)try{const r=Y.transformerFor(o),s=await r.from(e);Object.assign(t.overrides,s)}catch(e){throw new Ee("Failed to contextualize request: "+e)}return(new J).accumulate(Object.assign({},V,{logger:Ne.get(),timestamp:new Date},t))}async intercept(e,t){const r=e.switchToHttp().getRequest(),o=e.switchToHttp().getResponse(),s=Ne.for(cr).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()}};pr=cr=Oe([m({scope:A.REQUEST}),Se("design:paramtypes",[_t,kt])],pr);class dr{}function lr(e){return r=>(t.set("transformers",e,r),"function"==typeof r?s("transformers",e)(r):r)}var ur;let hr=class{static{ur=this}static get persistence(){if(!this._persistence)throw new Ee("Persistence service not initialized");return this._persistence}static get log(){return this._logger||(this._logger=Ne.for(ur)),this._logger}constructor(e,t){this.options=e,this.moduleRef=t}static forRoot(e){const t=this.log.for(this.forRoot);return{module:ur,providers:[{provide:yt,useValue:e},{provide:bt,useValue:this.persistence?.client},{provide:At,useFactory:()=>e.handlers?.map(e=>(t.info("Registered request handler: "+e.name),new e))??[]},Ot,{provide:ke,useExisting:Ot},_t,kt,{provide:ke,useClass:pr}],exports:[yt,bt,At,_t,kt]}}static async bootPersistence(e){const t=this.log.for(this.bootPersistence);if(!this._persistence){const r=e.conf.map(([e,t,...r])=>r.pop()?[e,t,...r]:[e,t]);this._persistence=new K,await this._persistence.boot(r);const o=this._persistence.client;for(let t=0;t<o.length;t++){const r=e.conf[t];let s=r.slice(2,r.length).pop();if(!s||!s.from){const e=Y.transformerFor(o[t].flavour);if(!e)throw new Ee(`No transformer found for flavour ${o[t].flavour}. you should either @requestToContextTransformer or provide a transformer in the config`);try{s=e.from?e:new e}catch(e){throw new Ee(`Failed to boot transformer for ${o[t].flavour}: ${e}`)}}lr(o[t].flavour)(s)}if(t.info("persistence layer created successfully!"),e.initialization)try{await e.initialization()}catch(e){throw new Ee("Failed to initialize application: "+e)}}return this.persistence.client}async onApplicationShutdown(){const e=ur.log.for(this.onApplicationShutdown),t=this.moduleRef.get(bt);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)}try{await B.shutdown()}catch(t){e.error("Failed to shutdown services",t)}}};hr=ur=Oe([k(),O({}),xe(0,b(yt)),Se("design:paramtypes",[Object,Ce])],hr);const fr=Symbol("LISTENING_ADAPTERS_FLAVOURS");var gr;let mr=gr=class extends jt{constructor(e,t){super(e,gr.name),this.adapters=t.map(e=>Y.get(e))}listen(){const e=Ne.for(gr.name),t=new Le(t=>{const r=("B-"+Math.random().toString(36).slice(2,8)).toUpperCase();e.info(`Creating SSE observer: ${r} for client ${this.clientContext.uuid}`);const o=new class{constructor(){this.observerId=r}refresh(...r){return e.debug(`SSE observer ${this.observerId} received refresh event`),Promise.resolve().then(()=>{const o=(e=>{const[t,r,o,s]=e;return[t?.name??t,r,o,Array.isArray(s)?s.map(e=>{try{return"function"==typeof e.serialize?e.serialize():"string"==typeof e?e:JSON.stringify(e)}catch(e){return}}):s&&"function"==typeof s.serialize?s.serialize():"string"==typeof s?s:JSON.stringify(s)]})(r);t.next({type:"message",data:o}),e.debug(`SSE observer ${this.observerId} event pushed to client`)})}};e.verbose(`Registering observer ${r} across ${this.adapters.length} adapter(s)`);for(const t of this.adapters){const s=t?.constructor?.name??"UnknownAdapter";try{e.debug(`Registering observer ${r} in adapter ${s}`),t.observe(o)}catch(t){e.debug(`Failed to register observer ${r} in adapter ${s}: ${t?.message||t}`),e.error(t)}}return()=>{e.debug("Cleaning up SSE observer "+r);for(const t of this.adapters){const s=t?.constructor?.name??"UnknownAdapter";try{e.debug(`Unregistering observer ${r} from adapter ${s}`),t.unObserve(o)}catch(t){e.debug(`Failed during cleanup of observer ${r} in adapter ${s}: ${t?.message||t}`),e.error(t)}}}}),r=je(15e3).pipe(He(()=>{e.debug("Sending heartbeat")}),Ye(()=>({type:"heartbeat",data:{ts:(new Date).toISOString()}})));return Ue(t,r)}listenForModel(e){const t=Ne.for(gr.name);return new Le(e=>{const r=new class{refresh(...t){return Promise.resolve().then(()=>{e.next({data:t})})}};try{for(const e of this.adapters)e.observe(r)}catch(t){e.error("Failed to observe event: "+(t.message||t))}return()=>{try{for(const e of this.adapters)e.unObserve(r)}catch(e){t.error(e)}}})}};var yr;Oe([I(),Se("design:type",Function),Se("design:paramtypes",[]),Se("design:returntype",Le)],mr.prototype,"listen",null),Oe([I("/:model"),xe(0,E("model")),Se("design:type",Function),Se("design:paramtypes",[String]),Se("design:returntype",Le)],mr.prototype,"listenForModel",null),mr=gr=Oe([T(),xe(1,b(fr)),Se("design:paramtypes",[_t,Array])],mr);let br=yr=class{static forFlavours(e,t="events"){return{module:yr,controllers:[mr],imports:[Ie.register([{path:t.replace(/^\//,""),module:yr}])],providers:[_t,{provide:fr,useValue:e??[]}]}}};var vr;br=yr=Oe([O({})],br);let wr=vr=class{static async forRootAsync(e){const{autoControllers:t,autoServices:r}=e,o=(await hr.bootPersistence(e)).map(e=>e.flavour),s=[hr.forRoot(e)];return t&&o.forEach(e=>{s.push(Kt(e).forRoot(e,{autoServices:r}))}),e.observerOptions?.enableObserverEvents&&s.push(br.forFlavours(e.observerOptions.observerFlavours||o)),{module:vr,imports:s}}};async function Ar(){}var Er;wr=vr=Oe([O({})],wr);const Pr=Ne.for("DecafMigrationModule");let Rr=Er=class{static forRoot(){return{module:Er}}static async migrate(e,t){const r=Pr.for(this.migrate);if(!t||0===t.length)throw new Ee("No adapters provided. Make sure DecafCoreModule is configured and adapters are available.");return r.info("Running migrations with config: "+JSON.stringify(e)),Je.migrateAdapters(t,e||{})}};function Tr(e){const t=N.get(e);if(!t)throw new Ee("Failed to find repository for "+e);return G.forModel(t)}var Or,xr;Rr=Er=Oe([k(),O({providers:[{provide:"MIGRATION_ADAPTERS",useFactory:e=>e,inject:[bt]}],exports:["MIGRATION_ADAPTERS"]})],Rr);let Sr=Or=class extends jt{constructor(e){super(e,Or.name)}async deactivate(e){const{ctx:t}=(await this.logCtx([],"deactivate",!0)).for(this.deactivate),r=G.forModel(Xe),o=await r.read(e,t);return o.active=!1,r.update(o,t)}async reactivate(e){const{ctx:t}=(await this.logCtx([],"reactivate",!0)).for(this.reactivate),r=G.forModel(Xe),o=await r.read(e,t);return o.active=!0,r.update(o,t)}};Oe([l(":id/deactivate"),xe(0,P("id")),Se("design:type",Function),Se("design:paramtypes",[String]),Se("design:returntype",Promise)],Sr.prototype,"deactivate",null),Oe([l(":id/reactivate"),xe(0,P("id")),Se("design:type",Function),Se("design:paramtypes",[String]),Se("design:returntype",Promise)],Sr.prototype,"reactivate",null),Sr=Or=Oe([T("webhook-subscriptions"),Se("design:paramtypes",[_t])],Sr);let $r=xr=class extends jt{constructor(e){super(e,xr.name)}async replay(e){const{ctx:t}=(await this.logCtx([],"replay",!0)).for(this.replay),r=G.forModel(We),o=G.forModel(Qe);try{let s;try{s=await r.read(e,t)}catch(o){const i=await r.select().where(r.attr("id").eq(e)).limit(1).execute(t);if(!i.length)throw o;s=i[0]}let i=[];try{i=await Ve(()=>o.select().where(o.attr("eventId").eq(s.id)).orderBy("createdAt",j.ASC).thenBy("id",j.ASC).paginate(250,t),250,t)}catch{try{i=await o.select().where(o.attr("eventId").eq(s.id)).execute(t)}catch{i=[]}}const n=new Date;for(const e of i)e.status=Ke.PENDING,e.attempts=0,e.nextAttemptAt=n,e.lastAttemptAt=null,e.errorMessage=void 0,e.responseStatus=void 0,e.responseBody=void 0;if(s.status=Ke.PENDING,s.deliveriesSucceeded=0,s.deliveriesFailed=0,s.nextAttemptAt=n,s.updatedAt=n,i.length)try{await o.updateAll(i,t.override({applyUpdateValidation:!1}))}catch{}return r.update(s,t)}catch(e){throw e}}};var _r;Oe([l(":id/replay"),xe(0,P("id")),Se("design:type",Function),Se("design:paramtypes",[String]),Se("design:returntype",Promise)],$r.prototype,"replay",null),$r=xr=Oe([T("webhook-events"),Se("design:paramtypes",[_t])],$r);let Cr=class{static{_r=this}static{this._logger=Ne.for(_r)}static get log(){return this._logger}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=Y._cache||(Y._cache={}),s=[o[t].flavour,o[t].alias,"webhook_deliveries","webhook_events","webhook_subscriptions"].filter(e=>!!e);for(const e of s)r[e]=o[t];const n=e.conf[t];let a=n.slice(2,n.length).pop();if(!a||!a.from){const e=Y.transformerFor(o[t].flavour);if(!e)throw new Ee(`No transformer found for flavour ${o[t].flavour}.`);try{a=e.from?e:new e}catch(e){throw new Ee(`Failed to boot transformer for ${o[t].flavour}: ${e}`)}}lr(o[t].flavour)(a),i(o[t].flavour)(Xe),i(o[t].flavour)(We),i(o[t].flavour)(Qe)}if(t.info("persistence layer created successfully!"),e.initialization)try{await e.initialization()}catch(e){throw new Ee("Failed to initialize webhook module: "+e)}}return this._persistence.client}static async forRoot(e){return this.forRootAsync(e)}static async forRootAsync(e){await this.bootPersistence(e);const t=[Vt.create(Xe),Vt.create(We),Vt.create(Qe),Sr,$r];return{module:_r,controllers:t,imports:[Ie.register([{path:(e.webhookApiPath||"webhooks").replace(/^\//,""),module:_r}])],providers:[_t,kt,{provide:At,useFactory:()=>e.handlers?.map(e=>new e)??[]},{provide:ke,useClass:pr}],exports:[_t,kt]}}};Cr=_r=Oe([O({})],Cr);const kr=Cr;async function Ir(){}const Nr="##VERSION##",Fr="##COMMIT##",Dr="##FULL_VERSION##",qr="##PACKAGE##";t.allowReregistration(!0),t.registerLibrary(qr,Nr),t.allowReregistration(!1);export{Pt as AUTH_HANDLER,Rt as AUTH_META_KEY,pt as ApiOperationFromModel,lt as ApiParamsFromModel,nt as ApiProperty,xt as Auth,Ot as AuthInterceptor,dt as BulkApiOperationFromModel,Fr as COMMIT,Zt as CorsError,bt as DECAF_ADAPTER_ID,Et as DECAF_ADAPTER_OPTIONS,Tt as DECAF_CONTEXT_KEY,At as DECAF_HANDLERS,yt as DECAF_MODULE_OPTIONS,wt as DECAF_ROUTE,vt as DECAF_TASK_SERVICE_ID,et as DECORATORS,Ze as DECORATORS_PREFIX,St as DecafAuthHandler,ut as DecafBody,jt as DecafController,hr as DecafCoreModule,tr as DecafExceptionFilter,kt as DecafHandlerExecutor,Rr as DecafMigrationModule,Ut as DecafModelController,wr as DecafModule,ft as DecafParams,gt as DecafQuery,_t as DecafRequestContext,pr as DecafRequestHandlerInterceptor,It as DecafResponseInterceptor,$t as DecafRoleAuthHandler,br as DecafStreamModule,Cr as DecafWebhookModule,kr as DecafWebhooksModule,zt as DtoFor,mr as EventsController,Dr as FULL_VERSION,Vt as FromModelController,mt as HttpVerbToDecorator,ar as NestBootstraper,qr as PACKAGE_NAME,dr as RequestToContextTransformer,nr as SwaggerBuilder,rr as UseDecafFilter,or as UseDecafHeaders,Nr as VERSION,$r as WebhookEventActionsController,Sr as WebhookSubscriptionActionsController,at as createApiPropertyDecorator,it as createPropertyDecorator,st as getEnumType,ot as getEnumValues,Kt as getModuleFor,ct as isOperationBlocked,rt as isUndefined,Tr as repoForModel,lr as requestToContextTransformer,Ar as runMigrations,Ir as runWebhooksMigrations};
|
|
2
2
|
//# sourceMappingURL=for-nest.js.map
|
package/dist/for-nest.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"for-nest.js","sources":["../src/overrides/constants.ts","../src/overrides/helpers.ts","../src/overrides/decoration.ts","../src/decaf-model/decorators/ApiOperationFromModel.ts","../src/decaf-model/decorators/ApiParamsFromModel.ts","../src/decaf-model/decorators/DecafBody.ts","../src/decaf-model/decorators/DecafParams.ts","../src/decaf-model/decorators/utils.ts","../src/constants.ts","../src/interceptors/AuthInterceptor.ts","../src/decaf-model/decorators/decorators.ts","../src/request/DecafAuthHandler.ts","../src/request/DecafRequestContext.ts","../src/request/DecafHandlerExecutor.ts","../src/request/DecafResponseInterceptor.ts","../src/decaf-model/utils.ts","../src/controllers.ts","../src/factory/openapi/DtoBuilder.ts","../src/overrides/overrides.ts","../src/overrides/ModelBuilderExtensions.ts","../src/decaf-model/FromModelController.ts","../src/decaf-model/DecafModelModule.ts","../src/decoration.ts","../src/factory/errors/cors.ts","../src/factory/errors/throttling.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/migrations/migration-module.ts","../src/utils.ts","../src/index.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,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_TASK_SERVICE_ID","DECAF_ROUTE","DECAF_HANDLERS","Symbol","DECAF_ADAPTER_OPTIONS","AUTH_HANDLER","AUTH_META_KEY","DECAF_CONTEXT_KEY","AuthInterceptor","reflector","authHandler","this","intercept","next","log","Logging","for","modelName","getHandler","verbose","authorize","debug","handle","Auth","model","resource","decs","ApiBearerAuth","UseInterceptors","push","SetMetadata","__decorate","Injectable","__param","Optional","Inject","Reflector","DecafAuthHandler","parseRequest","userRole","headers","authorization","split","AuthorizationError","Model","PersistenceKeys","AUTH_ROLE","DecafRoleAuthHandler","super","roles","DecafRequestContext","uuid","UUID","instance","generate","request","put","record","overrides","e","_ctx","accumulate","assign","applyCtx","InternalError","scope","Scope","REQUEST","Request","DecafHandlerExecutor","DecafHandlerExecutor_1","handlers","context","exec","res","method","url","DecafResponseInterceptor","response","getResponse","pipe","tap","toResponse","apiParamSpec","getApiDecorators","methodName","routePath","httpVerb","includeQueryParams","NestHttpRouteDec","apiPathParams","startsWith","slice","extractPathParams","swaggerQueryParams","ApiQuery","OrderDirection","ApiParam","ApiOperation","summary","ApiOkResponse","ApiNoContentResponse","Query","applyApiDecorators","descriptor","proto","prototype","forEach","d","index","resolvePersistenceMethod","persistence","ModelService","statement","createRouteHandler","async","pathParams","queryParams","JSON","stringify","direction","error","defineRouteMethod","ControllerClass","defineProperty","writable","getOwnPropertyDescriptor","DecafController","Service","clientContext","logCtx","operation","allowCreate","ip","result","ContextualLoggedClass","call","bindLoggerToRequest","self","applyRequestIp","ctxArgs","forwarded","parseIpHeader","socket","connection","remoteAddress","extractRequestIp","config","decorateLoggerWithIp","then","isPromise","DecafModelController","_persistence","getService","Repository","forModel","certs","override","contextual","repo","segment","trim","Boolean","dtoCache","Map","DtoFor","TransactionOperationKeys","cache","has","set","WeakMap","getDtoCache","cached","isUpdateOp","DynamicDTO","toPascalCase","pkProp","pk","pkPropsMetadata","pkProps","pkDesignType","pkTypeIsNumeric","BigInt","pkIsGenerated","generated","generatedBySequence","isPropertyGeneratedAcrossInheritance","allProps","from","Set","relations","scalarProps","prop","validation","getValidationAcrossInheritance","isRequired","ValidationKeys","REQUIRED","typeHint","getTypeAcrossInheritance","apiOptions","designType","enumerable","configurable","relation","relationMeta","relationType","meta","validationFor","LIST","relationDto","addRelationUpdate","addRelation","DtoClass","extraModels","dtoRef","pkTypeName","pkType","getPkOpenApiType","oneOfItems","$ref","oneOf","current","Function","getPrototypeOf","Adapter","transformerFor","adapter","alias","bind","flavoursToTransform","Context","pending","header","ModelBuilder","decorateClass","_classDecorators","__hasClassDecoratorSupport","originalBuild","build","decorated","FromModelController","getPersistence","ModelClazz","createQueryRoutesFromRepository","prefix","QUERY","queryMethods","routeMethods","QueryController","entries","replace","join","message","httpMethod","objValues","fields","f","create","tableName","toKebabCase","modelClazzName","getPK","apiProperties","getRouteParametersFromModel","BaseController","DynamicModelController","info","listBy","details","PreparedStatementKeys","LIST_BY","paginateBy","PAGE_BY","find","FIND","ASC","page","PAGE","ref","findOneBy","FIND_ONE_BY","findBy","FIND_BY","toOverrides","STATEMENT","pathDirection","a","parseInt","resolvedDirection","COUNT_OF","MAX_OF","MIN_OF","AVG_OF","SUM_OF","DISTINCT_OF","GROUP_OF","createAll","resp","created","readAll","ids","read","routeParams","id","ValidationError","updateAll","updated","update","payload","parse","deleteAll","delete","del","Param","ApiNotFoundResponse","ApiBody","schema","getSchemaPath","ApiCreatedResponse","ApiBadRequestResponse","ApiUnprocessableEntityResponse","Response","passthrough","Controller","ApiTags","ApiExtraModels","composed","DBKeys","COMPOSED","composedKeys","uniqueKeys","separator","getModuleFor","flavour","DecafModelModule","DecafModelModule_1","createModelServices","models","provide","useFactory","forRoot","trackedModels","modelServices","autoServices","controllers","module","providers","Module","Decoration","InjectablesKeys","INJECTABLE","extend","category","cfg","DefaultInjectablesConfig","singleton","DEFAULT","durable","INJECT","MAX","max","maximum","MIN","min","minimum","MAX_LENGTH","maxLength","MIN_LENGTH","minLength","TYPE","DATE","format","ENUM","PATTERN","pat","pattern","source","COLUMN","DecorationKeys","DESCRIPTION","AUTH","CorsError","ForbiddenError","msg","ToManyRequestsError","BaseError","DecafExceptionFilter","exception","host","isProduction","LoggedEnvironment","env","statusCode","NotFoundException","UnsupportedError","NotAcceptableException","getStatus","status","code","json","timestamp","Date","toISOString","UseDecafFilter","UseFilters","UseDecafHeaders","Catch","SWAGGER_UI_CONSTANTS","auth","scheme","bearerFormat","in","topbarBgColor","SwaggerCustomUI","customCSS","css","topbarIconPath","b64","getCustomOptions","favicon","faviconPath","customSiteTitle","title","customCss","swaggerOptions","persistAuthorization","file","img","filePath","assetsPath","readFileSync","encoding","SwaggerBuilder","app","createDocument","openApiJsonPath","openApiYamlPath","DocumentBuilder","setTitle","setDescription","setVersion","version","addBearerAuth","SwaggerModule","registerOpenApiRoute","contentType","bodyFactory","httpAdapter","getHttpAdapter","_req","reply","setupSwagger","document","swaggerUI","faviconFilePath","topbarIconFilePath","setup","jsonDocumentUrl","yamlDocumentUrl","YAML","NestBootstraper","logger","_logger","Logger","initialize","enableLogger","customLogger","useLogger","enableCors","origins","allowMethods","allowedOrigins","o","toLowerCase","corsOptions","origin","callback","credentials","methods","useHelmet","helmet","require","use","warn","useGlobalPipes","pipes","useGlobalFilters","filters","useGlobalInterceptors","interceptors","start","port","process","PORT","listen","getUrl","DecafRequestHandlerInterceptor","DecafRequestHandlerInterceptor_1","requestContext","executor","contextualize","flags","flavours","transformer","DefaultAdapterFlags","RequestToContextTransformer","requestToContextTransformer","DecafCoreModule","DecafCoreModule_1","moduleRef","useValue","client","H","APP_INTERCEPTOR","useExisting","useClass","exports","bootPersistence","trimmed","conf","contr","pop","PersistenceService","boot","clients","i","c","initialization","onApplicationShutdown","adapters","shutdown","Global","ModuleRef","LISTENING_ADAPTERS_FLAVOURS","EventsController","EventsController_1","events$","Observable","observer","observerId","Math","random","toUpperCase","cb","refresh","Promise","resolve","modelConstr","serialize","err","normalizeEventResponse","adapterName","observe","unObserve","heartbeat$","interval","ts","merge","listenForModel","Sse","DecafStreamModule","DecafStreamModule_1","forFlavours","imports","RouterModule","register","DecafModule","DecafModule_1","forRootAsync","autoControllers","observerOptions","enableObserverEvents","observerFlavours","runMigrations","DecafMigrationModule","DecafMigrationModule_1","migrate","MigrationService","migrateAdapters","repoForModel","m","inject","VERSION","COMMIT","FULL_VERSION","PACKAGE_NAME","allowReregistration","registerLibrary"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"for-nest.js","sources":["../src/overrides/constants.ts","../src/overrides/helpers.ts","../src/overrides/decoration.ts","../src/decaf-model/decorators/ApiOperationFromModel.ts","../src/decaf-model/decorators/ApiParamsFromModel.ts","../src/decaf-model/decorators/DecafBody.ts","../src/decaf-model/decorators/DecafParams.ts","../src/decaf-model/decorators/utils.ts","../src/constants.ts","../src/interceptors/AuthInterceptor.ts","../src/decaf-model/decorators/decorators.ts","../src/request/DecafAuthHandler.ts","../src/request/DecafRequestContext.ts","../src/request/DecafHandlerExecutor.ts","../src/request/DecafResponseInterceptor.ts","../src/decaf-model/utils.ts","../src/controllers.ts","../src/factory/openapi/DtoBuilder.ts","../src/overrides/overrides.ts","../src/overrides/ModelBuilderExtensions.ts","../src/decaf-model/FromModelController.ts","../src/decaf-model/DecafModelModule.ts","../src/decoration.ts","../src/factory/errors/cors.ts","../src/factory/errors/throttling.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/migrations/migration-module.ts","../src/utils.ts","../src/webhooks/controllers.ts","../src/webhooks/DecafWebhookModule.ts","../src/index.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,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_TASK_SERVICE_ID","DECAF_ROUTE","DECAF_HANDLERS","Symbol","DECAF_ADAPTER_OPTIONS","AUTH_HANDLER","AUTH_META_KEY","DECAF_CONTEXT_KEY","AuthInterceptor","reflector","authHandler","this","intercept","next","log","Logging","for","modelName","getHandler","verbose","authorize","debug","handle","Auth","model","resource","decs","ApiBearerAuth","UseInterceptors","push","SetMetadata","__decorate","Injectable","__param","Optional","Inject","Reflector","DecafAuthHandler","parseRequest","userRole","headers","authorization","split","AuthorizationError","Model","PersistenceKeys","AUTH_ROLE","DecafRoleAuthHandler","super","roles","DecafRequestContext","uuid","UUID","instance","generate","request","put","record","overrides","e","_ctx","accumulate","assign","applyCtx","InternalError","scope","Scope","REQUEST","Request","DecafHandlerExecutor","DecafHandlerExecutor_1","handlers","context","exec","res","method","url","DecafResponseInterceptor","response","getResponse","pipe","tap","toResponse","apiParamSpec","getApiDecorators","methodName","routePath","httpVerb","includeQueryParams","NestHttpRouteDec","apiPathParams","startsWith","slice","extractPathParams","swaggerQueryParams","ApiQuery","OrderDirection","ApiParam","ApiOperation","summary","ApiOkResponse","ApiNoContentResponse","Query","applyApiDecorators","descriptor","proto","prototype","forEach","d","index","resolvePersistenceMethod","persistence","ModelService","statement","createRouteHandler","async","pathParams","queryParams","JSON","stringify","direction","error","defineRouteMethod","ControllerClass","defineProperty","writable","getOwnPropertyDescriptor","DecafController","Service","clientContext","logCtx","operation","allowCreate","ip","result","ContextualLoggedClass","call","bindLoggerToRequest","self","applyRequestIp","ctxArgs","forwarded","parseIpHeader","socket","connection","remoteAddress","extractRequestIp","config","decorateLoggerWithIp","then","isPromise","DecafModelController","_persistence","getService","Repository","forModel","certs","override","contextual","repo","segment","trim","Boolean","dtoCache","Map","DtoFor","TransactionOperationKeys","cache","has","set","WeakMap","getDtoCache","cached","isUpdateOp","DynamicDTO","toPascalCase","pkProp","pk","pkPropsMetadata","pkProps","pkDesignType","pkTypeIsNumeric","BigInt","pkIsGenerated","generated","generatedBySequence","isPropertyGeneratedAcrossInheritance","allProps","from","Set","relations","scalarProps","prop","validation","getValidationAcrossInheritance","isRequired","ValidationKeys","REQUIRED","typeHint","getTypeAcrossInheritance","apiOptions","designType","enumerable","configurable","relation","relationMeta","relationType","meta","validationFor","LIST","relationDto","addRelationUpdate","addRelation","DtoClass","extraModels","dtoRef","pkTypeName","pkType","getPkOpenApiType","oneOfItems","$ref","oneOf","current","Function","getPrototypeOf","Adapter","transformerFor","adapter","alias","bind","flavoursToTransform","Context","pending","header","ModelBuilder","decorateClass","_classDecorators","__hasClassDecoratorSupport","originalBuild","build","decorated","FromModelController","getPersistence","ModelClazz","createQueryRoutesFromRepository","prefix","QUERY","queryMethods","routeMethods","QueryController","entries","replace","join","message","httpMethod","objValues","fields","f","create","tableName","toKebabCase","modelClazzName","getPK","apiProperties","getRouteParametersFromModel","BaseController","DynamicModelController","info","listBy","details","PreparedStatementKeys","LIST_BY","paginateBy","PAGE_BY","find","FIND","ASC","page","PAGE","ref","findOneBy","FIND_ONE_BY","findBy","FIND_BY","toOverrides","STATEMENT","pathDirection","a","parseInt","resolvedDirection","COUNT_OF","MAX_OF","MIN_OF","AVG_OF","SUM_OF","DISTINCT_OF","GROUP_OF","createAll","resp","created","readAll","ids","normalizedIds","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","ToManyRequestsError","BaseError","DecafExceptionFilter","exception","host","isProduction","LoggedEnvironment","env","statusCode","NotFoundException","UnsupportedError","NotAcceptableException","getStatus","status","code","json","timestamp","Date","toISOString","UseDecafFilter","UseFilters","UseDecafHeaders","Catch","SWAGGER_UI_CONSTANTS","auth","scheme","bearerFormat","in","topbarBgColor","SwaggerCustomUI","customCSS","css","topbarIconPath","b64","getCustomOptions","favicon","faviconPath","customSiteTitle","title","customCss","swaggerOptions","persistAuthorization","file","img","filePath","assetsPath","readFileSync","encoding","SwaggerBuilder","app","createDocument","openApiJsonPath","openApiYamlPath","DocumentBuilder","setTitle","setDescription","setVersion","version","addBearerAuth","SwaggerModule","registerOpenApiRoute","contentType","bodyFactory","httpAdapter","getHttpAdapter","_req","reply","setupSwagger","document","swaggerUI","faviconFilePath","topbarIconFilePath","setup","jsonDocumentUrl","yamlDocumentUrl","YAML","NestBootstraper","logger","_logger","Logger","initialize","enableLogger","customLogger","useLogger","enableCors","origins","allowMethods","allowedOrigins","o","toLowerCase","corsOptions","origin","callback","credentials","methods","useHelmet","helmet","require","use","warn","useGlobalPipes","pipes","useGlobalFilters","filters","useGlobalInterceptors","interceptors","start","port","process","PORT","listen","getUrl","DecafRequestHandlerInterceptor","DecafRequestHandlerInterceptor_1","requestContext","executor","contextualize","flags","flavours","transformer","DefaultAdapterFlags","RequestToContextTransformer","requestToContextTransformer","DecafCoreModule","DecafCoreModule_1","moduleRef","useValue","client","H","APP_INTERCEPTOR","useExisting","useClass","exports","bootPersistence","trimmed","conf","contr","pop","PersistenceService","boot","clients","i","c","initialization","onApplicationShutdown","adapters","shutdown","Global","ModuleRef","LISTENING_ADAPTERS_FLAVOURS","EventsController","EventsController_1","events$","Observable","observer","observerId","Math","random","toUpperCase","cb","refresh","Promise","resolve","modelConstr","serialize","err","normalizeEventResponse","adapterName","observe","unObserve","heartbeat$","interval","ts","merge","listenForModel","Sse","DecafStreamModule","DecafStreamModule_1","forFlavours","imports","RouterModule","register","DecafModule","DecafModule_1","forRootAsync","autoControllers","observerOptions","enableObserverEvents","observerFlavours","runMigrations","DecafMigrationModule","DecafMigrationModule_1","migrate","MigrationService","migrateAdapters","repoForModel","m","inject","WebhookSubscriptionActionsController","WebhookSubscriptionActionsController_1","deactivate","WebhookSubscription","active","reactivate","WebhookEventActionsController","WebhookEventActionsController_1","replay","eventRepo","WebhookEventRecord","deliveryRepo","WebhookDelivery","event","events","select","where","attr","eq","execute","deliveries","collectPagedResults","orderBy","thenBy","paginate","now","delivery","WebhookStatus","PENDING","attempts","nextAttemptAt","lastAttemptAt","errorMessage","responseStatus","responseBody","deliveriesSucceeded","deliveriesFailed","updatedAt","applyUpdateValidation","DecafWebhookModule","DecafWebhookModule_1","_cache","webhookKeys","uses","webhookApiPath","DecafWebhooksModule","runWebhooksMigrations","VERSION","COMMIT","FULL_VERSION","PACKAGE_NAME","allowReregistration","registerLibrary"],"mappings":"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"}
|
|
@@ -452,14 +452,15 @@ class FromModelController {
|
|
|
452
452
|
}
|
|
453
453
|
async readAll(ids) {
|
|
454
454
|
const { ctx, log } = (await this.logCtx([], db_decorators_1.BulkCrudOperationKeys.READ_ALL, true)).for(this.readAll);
|
|
455
|
+
const normalizedIds = Array.isArray(ids) ? ids : [ids];
|
|
455
456
|
let read;
|
|
456
457
|
try {
|
|
457
|
-
log.debug(`reading ${
|
|
458
|
+
log.debug(`reading ${normalizedIds} ${modelClazzName}: ${normalizedIds}`);
|
|
458
459
|
const persistence = this.persistence(ctx);
|
|
459
|
-
read = await persistence.readAll(
|
|
460
|
+
read = await persistence.readAll(normalizedIds, ctx);
|
|
460
461
|
}
|
|
461
462
|
catch (e) {
|
|
462
|
-
log.error(`Failed to ${modelClazzName} with id ${
|
|
463
|
+
log.error(`Failed to ${modelClazzName} with id ${normalizedIds}`, e);
|
|
463
464
|
throw e;
|
|
464
465
|
}
|
|
465
466
|
log.info(`read ${read.length} ${modelClazzName}`);
|
|
@@ -521,13 +522,14 @@ class FromModelController {
|
|
|
521
522
|
}
|
|
522
523
|
async deleteAll(ids, resp) {
|
|
523
524
|
const { ctx, log } = (await this.logCtx([], db_decorators_1.BulkCrudOperationKeys.DELETE_ALL, true)).for(this.deleteAll);
|
|
525
|
+
const normalizedIds = Array.isArray(ids) ? ids : [ids];
|
|
524
526
|
let read;
|
|
525
527
|
try {
|
|
526
|
-
log.debug(`deleting ${
|
|
527
|
-
read = await this.persistence(ctx).deleteAll(
|
|
528
|
+
log.debug(`deleting ${normalizedIds.length} ${modelClazzName}: ${normalizedIds}`);
|
|
529
|
+
read = await this.persistence(ctx).deleteAll(normalizedIds, ctx);
|
|
528
530
|
}
|
|
529
531
|
catch (e) {
|
|
530
|
-
log.error(`Failed to delete ${modelClazzName} with id ${
|
|
532
|
+
log.error(`Failed to delete ${modelClazzName} with id ${normalizedIds}`, e);
|
|
531
533
|
throw e;
|
|
532
534
|
}
|
|
533
535
|
log.info(`deleted ${read.length} ${modelClazzName}`);
|