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