@decaf-ts/for-nest 0.2.21 → 0.2.23

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/for-nest.cjs CHANGED
@@ -1,2 +1,2 @@
1
- var e,t;e=this,t=function(e,t,r,a,o,s,i,n,c,p,d,l,u,h,m){"use strict";function y(e){if(e&&e.__esModule)return e;var t=Object.create(null);return e&&Object.keys(e).forEach((r=>{if("default"!==r){var a=Object.getOwnPropertyDescriptor(e,r);Object.defineProperty(t,r,a.get?a:{enumerable:!0,get:()=>e[r]})}})),t.default=e,Object.freeze(t)}var 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 w(e,r){const{handler:a,args:o}=t.Metadata.get(e,c.OperationKeys.REFLECT+c.OperationKeys.BLOCK)||{};return!!a&&(a(...o,r)??!1)}function v(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 w(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",j=Symbol("DecafHandlers"),$=Symbol("DecafAdapterForOptions"),N=Symbol("AUTH_HANDLER"),q="auth:meta",L=Symbol("decaf:context");function B(t){const r="string"==typeof t?t:t.name;return a.applyDecorators(n.ApiBearerAuth(),a.SetMetadata(q,r),a.UseInterceptors(e.AuthInterceptor))}e.AuthInterceptor=class{constructor(e,t){this.reflector=e,this.authHandler=t}async intercept(e,t){const r=this.reflector.get(q,e.getHandler())??this.reflector.get(q,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(N)),p.__metadata("design:paramtypes",[d.Reflector,Object])],e.AuthInterceptor);class K{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{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){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})],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(j)),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 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:i,offset:n}=r;return await((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}`)})(this.persistence(),e,...t.valuesInOrder,o,i,n)}catch(t){throw a.error(`Custom query "${e}" failed`,t),t}}}function Q(e,t,r){return Object.defineProperty(e.prototype||e,t,{value:r,writable:!1}),Object.getOwnPropertyDescriptor(e.prototype||e,t)}class V 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 Y extends V{persistence(e){if(!this._persistence)try{this._persistence=s.ModelService.getService(this.class)}catch(e){this._persistence=s.Repository.forModel(this.class)}return e?this._persistence instanceof s.Repository?this._persistence.override(e.toOverrides()):this._persistence.for(e.toOverrides()):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 X(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 p=t.Metadata.getAttributes(r)||[],d=(e=>{const r=new Set;let a=e;for(;a&&a!==Object&&a!==Function;){const e=t.Metadata.get(a);(e?.properties?Object.keys(e.properties):[]).forEach((e=>r.add(e))),a=Object.getPrototypeOf(a)}return Array.from(r)})(r),u=t.Metadata.get(r,s.PersistenceKeys.CREATED_BY),h=t.Metadata.get(r,s.PersistenceKeys.UPDATED_BY),m=[...Object.keys(u||{}),...Object.keys(h||{})],y=["createdBy","updatedBy"].filter((e=>d.includes(e)||p.includes(e))),f=Array.from(new Set([...m,...y])),g=Array.from(new Set([...d,...p,...f])),_=(e=>{const t=new Set;let r=e;for(;r&&r!==Object&&r!==Function;)(o.Model.relations(r)||[]).forEach((e=>t.add(e))),r=Object.getPrototypeOf(r);return Array.from(t)})(r),A=new Set(_),E=g.filter((e=>((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})(r,e))),P=Array.from(new Set([...E,...f]));class b extends(n.OmitType(r,P)){}a.set(r,b),Object.defineProperty(b,"name",{value:`${l.toPascalCase(r.name)}${l.toPascalCase(e)}DTO`});for(const e of g){if(P.includes(e))continue;if(A.has(e))continue;const a=t.Metadata.validationFor(r,e),s=!!a?.[o.ValidationKeys.REQUIRED],i=t.Metadata.type(r,e),n={required:s};i&&(n.type=i),O(n)(b.prototype,e)}function R(e,t,r,a){O({type:t,required:a,isArray:r})(b.prototype,e),Object.defineProperty(b.prototype,e,{value:void 0,writable:!0,enumerable:!0,configurable:!0}),Reflect.defineMetadata("design:type",r?Array:t,b.prototype,e)}for(const a of _){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 n=t.Metadata.validationFor(r,a);R(a,X(e,i),!!n[o.ValidationKeys.LIST],!!n[o.ValidationKeys.REQUIRED])}return b}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};class W{static{this.log=l.Logging.for(W.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=W.log.for(W.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 Y{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=Q(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=Q(p,e,z(e));o&&G(p,e,o,H(e,a,"GET",!0))}return p}static create(t){const r=W.log.for(W.create),i=o.Model.tableName(t),d=l.toKebabCase(i),u=t.name,h=W.getPersistence(t),{description:m,getPK:y,apiProperties:f,path:g}=W.getRouteParametersFromModel(t);r.debug("Creating controller for model: "+u);const _=W.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 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;switch(t=t.map((e=>("string"==typeof e?parseInt(e):e)||e)),e){case s.PreparedStatementKeys.FIND_BY:break;case s.PreparedStatementKeys.LIST_BY:t.push(o);break;case s.PreparedStatementKeys.PAGE_BY:t=[t[0],o,{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([v(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([v(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([v(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([v(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([v(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([v(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([v(t,"POST"),n.ApiOperation({summary:`Create a new ${u}.`}),n.ApiBody({description:"Payload for "+u,type:X(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([v(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([v(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([v(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",items:{$ref:n.getSchemaPath(t)}}}),n.ApiCreatedResponse({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([v(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,schema:{$ref:n.getSchemaPath(t)}}),n.ApiOkResponse({description:u+" updated successfully."}),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([v(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+" retrieved successfully."}),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([v(t,"DELETE",g),D(f),n.ApiOperation({summary:`Delete a ${u} record by id.`}),n.ApiOkResponse({description:u+" record deleted successfully."}),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),B(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 Z{}function ee(e){return r=>(t.Metadata.set("transformers",e,r),"function"==typeof r?t.metadata("transformers",e)(r):r)}function te(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(W.create);return o.info(`Generated ${c.length} controllers`),{module:r,controllers:c,providers:[{provide:j,useFactory:()=>a.handlers?.map((e=>(o.info("Registered request handler: "+e.name),new e)))??[]},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:B}).apply();class re extends s.ForbiddenError{constructor(e){super(e,re.name)}}e.DecafExceptionFilter=class{catch(e,t){const r=t.switchToHttp(),a=r.getResponse(),o=r.getRequest(),s="production"===l.LoggedEnvironment.env;e instanceof c.BaseError||(e=new c.InternalError(e.message)),a.status(e.code).json({status:e.code,error:s?e.name:e.message,timestamp:(new Date).toISOString(),path:o.url,method:o.method})}},e.DecafExceptionFilter=p.__decorate([a.Catch()],e.DecafExceptionFilter);const ae={title:"Swagger | OpenAPI Specification (OAS)",description:"Standardized format for describing RESTful APIs",version:"0.0.1",path:"docs",faviconFilePath:"",topbarIconFilePath:"",auth:{type:"http",scheme:"bearer",bearerFormat:"JWT",name:"Authorization",description:"Enter JWT token",in:"header"},persistAuthorization:!0,topbarBgColor:"#000000"};class oe{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||ae.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 se{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||ae.auth).build();return n.SwaggerModule.createDocument(this.app,t,{extraModels:this.options.extraModels||[]})}setupSwagger(){const e=this.createDocument(),t=new oe({title:this.options.title,path:this.options.path||ae.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||ae.path,this.app,e,{...t.getCustomOptions()})}}var ie;let ne=class{static{ie=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(ie)),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 Z?e:new e}ee(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=>ie.bootPersistence(e),provide:F,durable:!0,scope:a.Scope.DEFAULT,inject:[I]};return{module:ie,providers:[r,t],exports:[r]}}async onApplicationShutdown(){const e=ie.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)}}};ne=ie=p.__decorate([a.Global(),a.Module({}),p.__param(0,a.Inject(I)),p.__metadata("design:paramtypes",[Object,d.ModuleRef])],ne);const ce=Symbol("LISTENING_ADAPTERS_FLAVOURS");var pe,de,le;e.EventsController=pe=class extends V{constructor(e,t){super(e,pe.name),this.adapters=t.map((e=>s.Adapter.get(e)))}listen(){const e=l.Logging.for(pe.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(pe.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=pe=p.__decorate([a.Controller(),p.__param(1,a.Inject(ce)),p.__metadata("design:paramtypes",[e.DecafRequestContext,Array])],e.EventsController),e.DecafStreamModule=de=class{static forFlavours(t,r="events"){return{module:de,controllers:[e.EventsController],imports:[d.RouterModule.register([{path:r.replace(/^\//,""),module:de}])],providers:[e.DecafRequestContext,{provide:ce,useValue:t??[]}]}}},e.DecafStreamModule=de=p.__decorate([a.Module({})],e.DecafStreamModule),e.DecafModule=le=class{static async forRootAsync(t){const{autoControllers:r,autoServices:a,handlers:o}=t,s=(await ne.bootPersistence(t)).map((e=>e.flavour)),i=[ne.forRoot(t)];return r&&s.forEach((e=>{i.push(te(e).forRoot(e,{autoServices:a,handlers:o}))})),t.observerOptions?.enableObserverEvents&&i.push(e.DecafStreamModule.forFlavours(s)),{module:le,imports:i}}},e.DecafModule=le=p.__decorate([a.Module({})],e.DecafModule);const ue="##VERSION##",he="##PACKAGE##";t.Metadata.registerLibrary(he,ue),e.AUTH_HANDLER=N,e.AUTH_META_KEY=q,e.ApiOperationFromModel=v,e.ApiParamsFromModel=D,e.ApiProperty=O,e.Auth=B,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 w(e,i)?t.apply(n.ApiExcludeEndpoint()):t.apply(p(o))},e.CorsError=re,e.DECAF_ADAPTER_ID=F,e.DECAF_ADAPTER_OPTIONS=$,e.DECAF_CONTEXT_KEY=L,e.DECAF_HANDLERS=j,e.DECAF_MODULE_OPTIONS=I,e.DECAF_ROUTE=k,e.DECORATORS=_,e.DECORATORS_PREFIX=g,e.DecafAuthHandler=K,e.DecafBody=S,e.DecafController=V,e.DecafModelController=Y,e.DecafParams=C,e.DecafQuery=x,e.DecafRoleAuthHandler=class extends K{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=X,e.FromModelController=W,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 re(`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 se(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=he,e.RequestToContextTransformer=Z,e.SwaggerBuilder=se,e.UseDecafFilter=()=>a.UseFilters(new e.DecafExceptionFilter),e.VERSION=ue,e.createApiPropertyDecorator=R,e.createPropertyDecorator=b,e.getEnumType=P,e.getEnumValues=E,e.getModuleFor=te,e.isOperationBlocked=w,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=ee},"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("@decaf-ts/decoration"),require("@decaf-ts/injectable-decorators"),require("@nestjs/common"),require("@decaf-ts/decorator-validation"),require("@decaf-ts/core"),require("lodash"),require("@nestjs/swagger"),require("@decaf-ts/db-decorators"),require("tslib"),require("@nestjs/core"),require("@decaf-ts/logging"),require("fs"),require("path"),require("rxjs")):"function"==typeof define&&define.amd?define(["exports","@decaf-ts/decoration","@decaf-ts/injectable-decorators","@nestjs/common","@decaf-ts/decorator-validation","@decaf-ts/core","lodash","@nestjs/swagger","@decaf-ts/db-decorators","tslib","@nestjs/core","@decaf-ts/logging","fs","path","rxjs"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self)["for-nest"]={},e.decafTsDecoration,e.decafTsInjectableDecorators,e.nestjsCommon,e.decafTsDecoratorValidation,e.decafTsCore,e.lodash,e.nestjsSwagger,e.decafTsDbDecorators,e.tslib,e.nestjsCore,e.decafTsLogging,e.fs,e.path,e.rxjs);
1
+ var e,t;e=this,t=function(e,t,r,a,o,s,i,n,c,p,d,l,u,h,m){"use strict";function y(e){if(e&&e.__esModule)return e;var t=Object.create(null);return e&&Object.keys(e).forEach((r=>{if("default"!==r){var a=Object.getOwnPropertyDescriptor(e,r);Object.defineProperty(t,r,a.get?a:{enumerable:!0,get:()=>e[r]})}})),t.default=e,Object.freeze(t)}var 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 w(e,r){const{handler:a,args:o}=t.Metadata.get(e,c.OperationKeys.REFLECT+c.OperationKeys.BLOCK)||{};return!!a&&(a(...o,r)??!1)}function v(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 w(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",$=Symbol("DecafHandlers"),j=Symbol("DecafAdapterForOptions"),N=Symbol("AUTH_HANDLER"),q="auth:meta",L=Symbol("decaf:context");function K(t){const r="string"==typeof t?t:t.name;return a.applyDecorators(n.ApiBearerAuth(),a.SetMetadata(q,r),a.UseInterceptors(e.AuthInterceptor))}e.AuthInterceptor=class{constructor(e,t){this.reflector=e,this.authHandler=t}async intercept(e,t){const r=this.reflector.get(q,e.getHandler())??this.reflector.get(q,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(N)),p.__metadata("design:paramtypes",[d.Reflector,Object])],e.AuthInterceptor);class B{parseRequest(e){const t=e.headers.authorization?.split(" ")[1];return t}async authorize(e,r){const a=e.switchToHttp().getRequest(),i=this.parseRequest(a);if(!i)throw new s.AuthorizationError("Unauthenticated");if(!t.Metadata.get(o.Model.get(r),s.PersistenceKeys.AUTH_ROLE).includes(i))throw new s.AuthorizationError("Missing role: "+i)}}e.DecafRequestContext=class{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){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})],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($)),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 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:i,offset:n}=r;return await((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}`)})(this.persistence(),e,...t.valuesInOrder,o,i,n)}catch(t){throw a.error(`Custom query "${e}" failed`,t),t}}}function Q(e,t,r){return Object.defineProperty(e.prototype||e,t,{value:r,writable:!1}),Object.getOwnPropertyDescriptor(e.prototype||e,t)}class V 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 Y extends V{persistence(e){if(!this._persistence)try{this._persistence=s.ModelService.getService(this.class)}catch(e){this._persistence=s.Repository.forModel(this.class)}return e?this._persistence instanceof s.Repository?this._persistence.override(e.toOverrides()):this._persistence.for(e.toOverrides()):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 X(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=(e=>{const t=[];let r=Object.getPrototypeOf(e);for(;r&&r!==Object&&r!==Function;)t.push(r),r=Object.getPrototypeOf(r);return t.reverse()})(r);for(const t of n)o.Model.isModel(t)&&X(e,t);const p=n.at(-1),d=p&&o.Model.isModel(p)?a.get(p)||X(e,p):o.Model;class u extends d{}a.set(r,u),Object.defineProperty(u,"name",{value:`${l.toPascalCase(r.name)}${l.toPascalCase(e)}DTO`});const h=t.Metadata.properties(r)||[],m=t.Metadata.get(r,s.PersistenceKeys.CREATED_BY),y=t.Metadata.get(r,s.PersistenceKeys.UPDATED_BY),f=[...Object.keys(m||{}),...Object.keys(y||{})],g=["createdBy","updatedBy"].filter((e=>h.includes(e))),_=Array.from(new Set([...f,...g])),A=Array.from(new Set([...h,..._])),E=(e=>o.Model.relations(e)||[])(r),P=new Set(E),b=A.filter((e=>((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})(r,e))),R=new Set([...b,..._]),w=(()=>{try{return o.Model.pk(r)}catch{return}})(),v=[c.OperationKeys.UPDATE,c.BulkCrudOperationKeys.UPDATE_ALL].includes(e),D=A.filter((e=>!P.has(e)&&(!R.has(e)||v&&e===w)));for(const e of D){const a=t.Metadata.validationFor(r,e),s=!!a?.[o.ValidationKeys.REQUIRED],i=t.Metadata.type(r,e),n={required:s};i&&(n.type=i),O(n)(u.prototype,e);const c=Reflect.getMetadata("design:type",r.prototype,e)??i;void 0!==c&&Reflect.defineMetadata("design:type",c,u.prototype,e),Object.defineProperty(u.prototype,e,{value:void 0,writable:!0,enumerable:!0,configurable:!0})}function S(e,t,r,a){O({type:t,required:a,isArray:r})(u.prototype,e),Object.defineProperty(u.prototype,e,{value:void 0,writable:!0,enumerable:!0,configurable:!0}),Reflect.defineMetadata("design:type",r?Array:t,u.prototype,e)}for(const a of E){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 n=t.Metadata.validationFor(r,a);S(a,X(e,i),!!n[o.ValidationKeys.LIST],!!n[o.ValidationKeys.REQUIRED])}return u}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};class W{static{this.log=l.Logging.for(W.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=W.log.for(W.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 Y{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=Q(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=Q(p,e,z(e));o&&G(p,e,o,H(e,a,"GET",!0))}return p}static create(t){const r=W.log.for(W.create),i=o.Model.tableName(t),d=l.toKebabCase(i),u=t.name,h=W.getPersistence(t),{description:m,getPK:y,apiProperties:f,path:g}=W.getRouteParametersFromModel(t);r.debug("Creating controller for model: "+u);const _=W.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 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;switch(t=t.map((e=>("string"==typeof e?parseInt(e):e)||e)),e){case s.PreparedStatementKeys.FIND_BY:break;case s.PreparedStatementKeys.LIST_BY:t.push(o);break;case s.PreparedStatementKeys.PAGE_BY:t=[t[0],o,{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([v(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([v(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([v(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([v(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([v(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([v(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([v(t,"POST"),n.ApiOperation({summary:`Create a new ${u}.`}),n.ApiBody({description:"Payload for "+u,type:X(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([v(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([v(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([v(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(X(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([v(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:X(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([v(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([v(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 Z{}function ee(e){return r=>(t.Metadata.set("transformers",e,r),"function"==typeof r?t.metadata("transformers",e)(r):r)}function te(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(W.create);return o.info(`Generated ${c.length} controllers`),{module:r,controllers:c,providers:[{provide:$,useFactory:()=>a.handlers?.map((e=>(o.info("Registered request handler: "+e.name),new e)))??[]},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 re extends s.ForbiddenError{constructor(e){super(e,re.name)}}e.DecafExceptionFilter=class{catch(e,t){const r=t.switchToHttp(),a=r.getResponse(),o=r.getRequest(),s="production"===l.LoggedEnvironment.env;e instanceof c.BaseError||(e=new c.InternalError(e.message)),a.status(e.code).json({status:e.code,error:s?e.name:e.message,timestamp:(new Date).toISOString(),path:o.url,method:o.method})}},e.DecafExceptionFilter=p.__decorate([a.Catch()],e.DecafExceptionFilter);const ae={title:"Swagger | OpenAPI Specification (OAS)",description:"Standardized format for describing RESTful APIs",version:"0.0.1",path:"docs",faviconFilePath:"",topbarIconFilePath:"",auth:{type:"http",scheme:"bearer",bearerFormat:"JWT",name:"Authorization",description:"Enter JWT token",in:"header"},persistAuthorization:!0,topbarBgColor:"#000000"};class oe{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||ae.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 se{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||ae.auth).build();return n.SwaggerModule.createDocument(this.app,t,{extraModels:this.options.extraModels||[]})}setupSwagger(){const e=this.createDocument(),t=new oe({title:this.options.title,path:this.options.path||ae.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||ae.path,this.app,e,{...t.getCustomOptions()})}}var ie;let ne=class{static{ie=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(ie)),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 Z?e:new e}ee(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=>ie.bootPersistence(e),provide:F,durable:!0,scope:a.Scope.DEFAULT,inject:[I]};return{module:ie,providers:[r,t],exports:[r]}}async onApplicationShutdown(){const e=ie.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)}}};ne=ie=p.__decorate([a.Global(),a.Module({}),p.__param(0,a.Inject(I)),p.__metadata("design:paramtypes",[Object,d.ModuleRef])],ne);const ce=Symbol("LISTENING_ADAPTERS_FLAVOURS");var pe,de,le;e.EventsController=pe=class extends V{constructor(e,t){super(e,pe.name),this.adapters=t.map((e=>s.Adapter.get(e)))}listen(){const e=l.Logging.for(pe.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(pe.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=pe=p.__decorate([a.Controller(),p.__param(1,a.Inject(ce)),p.__metadata("design:paramtypes",[e.DecafRequestContext,Array])],e.EventsController),e.DecafStreamModule=de=class{static forFlavours(t,r="events"){return{module:de,controllers:[e.EventsController],imports:[d.RouterModule.register([{path:r.replace(/^\//,""),module:de}])],providers:[e.DecafRequestContext,{provide:ce,useValue:t??[]}]}}},e.DecafStreamModule=de=p.__decorate([a.Module({})],e.DecafStreamModule),e.DecafModule=le=class{static async forRootAsync(t){const{autoControllers:r,autoServices:a,handlers:o}=t,s=(await ne.bootPersistence(t)).map((e=>e.flavour)),i=[ne.forRoot(t)];return r&&s.forEach((e=>{i.push(te(e).forRoot(e,{autoServices:a,handlers:o}))})),t.observerOptions?.enableObserverEvents&&i.push(e.DecafStreamModule.forFlavours(s)),{module:le,imports:i}}},e.DecafModule=le=p.__decorate([a.Module({})],e.DecafModule);const ue="##VERSION##",he="##PACKAGE##";t.Metadata.registerLibrary(he,ue),e.AUTH_HANDLER=N,e.AUTH_META_KEY=q,e.ApiOperationFromModel=v,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 w(e,i)?t.apply(n.ApiExcludeEndpoint()):t.apply(p(o))},e.CorsError=re,e.DECAF_ADAPTER_ID=F,e.DECAF_ADAPTER_OPTIONS=j,e.DECAF_CONTEXT_KEY=L,e.DECAF_HANDLERS=$,e.DECAF_MODULE_OPTIONS=I,e.DECAF_ROUTE=k,e.DECORATORS=_,e.DECORATORS_PREFIX=g,e.DecafAuthHandler=B,e.DecafBody=S,e.DecafController=V,e.DecafModelController=Y,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=X,e.FromModelController=W,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 re(`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 se(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=he,e.RequestToContextTransformer=Z,e.SwaggerBuilder=se,e.UseDecafFilter=()=>a.UseFilters(new e.DecafExceptionFilter),e.VERSION=ue,e.createApiPropertyDecorator=R,e.createPropertyDecorator=b,e.getEnumType=P,e.getEnumValues=E,e.getModuleFor=te,e.isOperationBlocked=w,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=ee},"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("@decaf-ts/decoration"),require("@decaf-ts/injectable-decorators"),require("@nestjs/common"),require("@decaf-ts/decorator-validation"),require("@decaf-ts/core"),require("lodash"),require("@nestjs/swagger"),require("@decaf-ts/db-decorators"),require("tslib"),require("@nestjs/core"),require("@decaf-ts/logging"),require("fs"),require("path"),require("rxjs")):"function"==typeof define&&define.amd?define(["exports","@decaf-ts/decoration","@decaf-ts/injectable-decorators","@nestjs/common","@decaf-ts/decorator-validation","@decaf-ts/core","lodash","@nestjs/swagger","@decaf-ts/db-decorators","tslib","@nestjs/core","@decaf-ts/logging","fs","path","rxjs"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self)["for-nest"]={},e.decafTsDecoration,e.decafTsInjectableDecorators,e.nestjsCommon,e.decafTsDecoratorValidation,e.decafTsCore,e.lodash,e.nestjsSwagger,e.decafTsDbDecorators,e.tslib,e.nestjsCore,e.decafTsLogging,e.fs,e.path,e.rxjs);
2
2
  //# sourceMappingURL=for-nest.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"for-nest.cjs","sources":["../src/overrides/constants.ts","../src/overrides/decoration.ts","../src/overrides/helpers.ts","../src/decaf-model/decorators/ApiOperationFromModel.ts","../src/decaf-model/decorators/ApiParamsFromModel.ts","../src/decaf-model/decorators/DecafBody.ts","../src/decaf-model/decorators/DecafParams.ts","../src/decaf-model/decorators/utils.ts","../src/constants.ts","../src/decaf-model/decorators/decorators.ts","../src/interceptors/AuthInterceptor.ts","../src/request/DecafAuthHandler.ts","../src/request/DecafRequestContext.ts","../src/request/DecafHandlerExecutor.ts","../src/decaf-model/utils.ts","../src/controllers.ts","../src/factory/openapi/DtoBuilder.ts","../src/overrides/overrides.ts","../src/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],"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","UseInterceptors","AuthInterceptor","exports","reflector","authHandler","this","intercept","next","modelName","getHandler","authorize","handle","__decorate","Injectable","__param","Optional","Inject","Reflector","DecafAuthHandler","parseRequest","userRole","headers","authorization","split","AuthorizationError","Model","PersistenceKeys","AUTH_ROLE","DecafRequestContext","put","record","overrides","e","_ctx","accumulate","assign","applyCtx","InternalError","scope","Scope","REQUEST","DecafHandlerExecutor","handlers","context","exec","res","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","createRouteHandler","async","pathParams","queryParams","log","for","debug","JSON","stringify","direction","persistence","ModelService","statement","resolvePersistenceMethod","error","defineRouteMethod","ControllerClass","defineProperty","writable","getOwnPropertyDescriptor","DecafController","Service","clientContext","super","logCtx","operation","allowCreate","ContextualLoggedClass","call","DecafModelController","_persistence","getService","Repository","forModel","override","toOverrides","contextual","ctxArgs","repo","then","dtoCache","Map","DtoFor","TransactionOperationKeys","cache","has","set","WeakMap","getDtoCache","cached","attributeProps","getAttributes","schemaProps","collected","Set","current","Function","prop","add","getPrototypeOf","from","collectSchemaProperties","createdByMetadata","CREATED_BY","updatedByMetadata","UPDATED_BY","metadataOwnershipProps","manualOwnershipProps","ownershipProps","relations","collectRelations","relationProps","generatedProps","generated","isGeneratedAcrossInheritance","exceptions","DynamicDTO","OmitType","toPascalCase","validation","validationFor","isRequired","ValidationKeys","REQUIRED","typeHint","apiOptions","addRelation","relation","relationDto","enumerable","configurable","relationMeta","relationType","meta","LIST","Adapter","transformerFor","adapter","alias","bind","flavoursToTransform","core$1","Context","toResponse","pending","header","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","pk","info","listBy","details","PreparedStatementKeys","LIST_BY","paginateBy","PAGE_BY","findOneBy","FIND_ONE_BY","findBy","FIND_BY","STATEMENT","a","parseInt","COUNT_OF","MAX_OF","MIN_OF","AVG_OF","SUM_OF","DISTINCT_OF","GROUP_OF","createAll","resp","BulkCrudOperationKeys","CREATE_ALL","created","verbose","readAll","ids","READ_ALL","read","routeParams","id","ValidationError","updateAll","UPDATE_ALL","updated","update","payload","parse","deleteAll","DELETE_ALL","delete","del","Param","ApiNotFoundResponse","ApiBody","schema","$ref","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","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","request","isProduction","LoggedEnvironment","env","BaseError","status","code","json","toISOString","url","Catch","SWAGGER_UI_CONSTANTS","title","version","faviconFilePath","topbarIconFilePath","auth","scheme","bearerFormat","in","persistAuthorization","topbarBgColor","SwaggerCustomUI","customCSS","css","topbarIconPath","b64","getCustomOptions","favicon","faviconPath","customSiteTitle","customCss","swaggerOptions","jsonDocumentUrl","yamlDocumentUrl","file","img","filePath","assetsPath","readFileSync","encoding","SwaggerBuilder","app","createDocument","config","DocumentBuilder","setTitle","setDescription","setVersion","addBearerAuth","build","SwaggerModule","extraModels","setupSwagger","document","swaggerUI","setup","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/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],"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","UseInterceptors","AuthInterceptor","exports","reflector","authHandler","this","intercept","next","modelName","getHandler","authorize","handle","__decorate","Injectable","__param","Optional","Inject","Reflector","DecafAuthHandler","parseRequest","userRole","headers","authorization","split","AuthorizationError","Model","PersistenceKeys","AUTH_ROLE","DecafRequestContext","put","record","overrides","e","_ctx","accumulate","assign","applyCtx","InternalError","scope","Scope","REQUEST","DecafHandlerExecutor","handlers","context","exec","res","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","createRouteHandler","async","pathParams","queryParams","log","for","debug","JSON","stringify","direction","persistence","ModelService","statement","resolvePersistenceMethod","error","defineRouteMethod","ControllerClass","defineProperty","writable","getOwnPropertyDescriptor","DecafController","Service","clientContext","super","logCtx","operation","allowCreate","ContextualLoggedClass","call","DecafModelController","_persistence","getService","Repository","forModel","override","toOverrides","contextual","ctxArgs","repo","then","dtoCache","Map","DtoFor","TransactionOperationKeys","cache","has","set","WeakMap","getDtoCache","cached","ancestors","current","getPrototypeOf","Function","reverse","collectInheritance","ancestor","isModel","parentModel","at","parentDto","DynamicDTO","toPascalCase","schemaProps","createdByMetadata","CREATED_BY","updatedByMetadata","UPDATED_BY","metadataOwnershipProps","manualOwnershipProps","prop","ownershipProps","from","Set","relations","collectRelations","relationProps","generatedProps","generated","isGeneratedAcrossInheritance","exceptions","pkProp","pk","isUpdateOp","BulkCrudOperationKeys","UPDATE_ALL","allowedProps","validation","validationFor","isRequired","ValidationKeys","REQUIRED","typeHint","apiOptions","designType","enumerable","configurable","addRelation","relation","relationDto","relationMeta","relationType","meta","LIST","Adapter","transformerFor","adapter","alias","bind","flavoursToTransform","core$1","Context","toResponse","pending","header","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","findOneBy","FIND_ONE_BY","findBy","FIND_BY","STATEMENT","a","parseInt","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","$ref","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","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","request","isProduction","LoggedEnvironment","env","BaseError","status","code","json","toISOString","url","Catch","SWAGGER_UI_CONSTANTS","title","version","faviconFilePath","topbarIconFilePath","auth","scheme","bearerFormat","in","persistAuthorization","topbarBgColor","SwaggerCustomUI","customCSS","css","topbarIconPath","b64","getCustomOptions","favicon","faviconPath","customSiteTitle","customCss","swaggerOptions","jsonDocumentUrl","yamlDocumentUrl","file","img","filePath","assetsPath","readFileSync","encoding","SwaggerBuilder","app","createDocument","config","DocumentBuilder","setTitle","setDescription","setVersion","addBearerAuth","build","SwaggerModule","extraModels","setupSwagger","document","swaggerUI","setup","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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"}