@decaf-ts/for-nest 0.2.25 → 0.2.26
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 +1 -1
- package/dist/for-nest.cjs.map +1 -1
- package/dist/for-nest.js +1 -1
- package/dist/for-nest.js.map +1 -1
- package/lib/controllers.cjs +1 -1
- package/lib/controllers.js.map +1 -1
- package/lib/esm/controllers.js +1 -1
- package/lib/esm/controllers.js.map +1 -1
- package/lib/esm/index.d.ts +1 -1
- package/lib/esm/index.js +1 -1
- package/lib/index.cjs +1 -1
- package/lib/index.d.ts +1 -1
- package/package.json +1 -1
package/dist/for-nest.cjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
var e,t;e=this,t=function(e,t,r,a,o,s,i,n,c,p,d,l,u,m,h){"use strict";function y(e){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(m);const g="swagger",_={API_OPERATION:g+"/apiOperation",API_RESPONSE:g+"/apiResponse",API_PRODUCES:g+"/apiProduces",API_CONSUMES:g+"/apiConsumes",API_TAGS:g+"/apiUseTags",API_CALLBACKS:g+"/apiCallbacks",API_PARAMETERS:g+"/apiParameters",API_HEADERS:g+"/apiHeaders",API_MODEL_PROPERTIES:g+"/apiModelProperties",API_MODEL_PROPERTIES_ARRAY:g+"/apiModelPropertiesArray",API_SECURITY:g+"/apiSecurity",API_EXCLUDE_ENDPOINT:g+"/apiExcludeEndpoint",API_EXCLUDE_CONTROLLER:g+"/apiExcludeController",API_EXTRA_MODELS:g+"/apiExtraModels",API_EXTENSION:g+"/apiExtension",API_SCHEMA:g+"/apiSchema",API_DEFAULT_GETTER:g+"/apiDefaultGetter",API_LINK:g+"/apiLink"},A=e=>void 0===e;function E(e){if("function"==typeof e)return E(e());if(Array.isArray(e))return e;if("object"!=typeof e)return[];const t=Object.values(e).filter(e=>"number"==typeof e).map(e=>e.toString());return Object.keys(e).filter(e=>!t.includes(e)).map(t=>e[t])}function P(e){return e.filter(i.isString).length>0?"string":"number"}function b(e,t,r=!0){return(a,o)=>{const s=Reflect.getMetadata(_.API_MODEL_PROPERTIES_ARRAY,a)||[],n=":"+o;s.includes(n)||Reflect.defineMetadata(_.API_MODEL_PROPERTIES_ARRAY,[...s,":"+o],a);const c=Reflect.getMetadata(e,a,o);if(c){const s=i.pickBy(t,i.negate(A)),n=r?{...c,...s}:{...s,...c};Reflect.defineMetadata(e,n,a,o)}else{const r=a?.constructor?._OPENAPI_METADATA_FACTORY?.()[o]?.type??Reflect.getMetadata("design:type",a,o);Reflect.defineMetadata(e,{type:r,required:!1,...i.pickBy(t,i.negate(A))},a,o)}}}function O(e={}){return R(e)}function R(e={},t=!0){const[r,a]=((e,t)=>{if(!e)return[e,t];if(t)return[e,t];const r=i.isArray(e);return[r?e[0]:e,r]})(e.type,e.isArray);if((o=e={...e,type:r,isArray:a}).isArray&&"enum"in o&&void 0!==o.enum){e.type="array";const t=E(e.enum);e.items={type:P(t),enum:t},delete e.enum}else if("enum"in e&&void 0!==e.enum){const t=E(e.enum);e.enum=t,e.type=P(t)}var o;return Array.isArray(e.type)&&(e.type="array",e.items={type:"array",items:{type:e.type[0]}}),b(_.API_MODEL_PROPERTIES,e,t)}function v(e,r){const{handler:a,args:o}=t.Metadata.get(e,c.OperationKeys.REFLECT+c.OperationKeys.BLOCK)||{};return!!a&&(a(...o,r)??!1)}function w(e,r,o){const s={GET:[c.OperationKeys.READ,a.Get],POST:[c.OperationKeys.CREATE,a.Post],PUT:[c.OperationKeys.UPDATE,a.Put],PATCH:[c.OperationKeys.UPDATE,a.Patch],DELETE:[c.OperationKeys.DELETE,a.Delete]},[i,p]=s[r];return v(e,i)?t.apply(n.ApiExcludeEndpoint()):t.apply(p(o))}function D(e=[]){const t=e.map(e=>n.ApiParam({name:e.name,description:e.description??"Path parameter: "+e.name,required:e.required??!0,type:e.type??String}));return a.applyDecorators(...t)}const S=a.createParamDecorator((e,t)=>{const r=t.switchToHttp().getRequest().body,o=t.getClass(),s=o.class;if(!s)throw new a.InternalServerErrorException(`ModelConstructor not found on controller ${o.name}. Ensure the controller was created via FromModelController.`);return r?Array.isArray(r)?r.map(e=>new s(e)):new s(r):r}),T=a.createParamDecorator((e,t)=>{const r=t.switchToHttp().getRequest(),a=r?.params??{},o=e??Object.keys(a),s=o.map(e=>a[e]);return{raw:a,valuesInOrder:s,keysInOrder:o}});function C(e=[]){const t=e.map(e=>e.name);return T(t)}const x=a.createParamDecorator((e,t)=>{const r={...t.switchToHttp().getRequest().query??{}};if(void 0!==r.limit){const e=Number(r.limit);Number.isNaN(e)||(r.limit=e)}if(void 0!==r.offset){const e=Number(r.offset);Number.isNaN(e)||(r.offset=e)}if(void 0!==r.bookmark){const e=Number(r.bookmark);r.bookmark=Number.isNaN(e)?r.bookmark:e}return r});function M(e){const t={GET:a.Get,POST:a.Post,PUT:a.Put,PATCH:a.Patch,DELETE:a.Delete}[e];if(!t)throw Error(`Unsupported HTTP verb "${e}". No NestJS decorator mapping was found.`);return t}const I="DecafModuleOptions",F="DecafAdapter",k="DecafRoute",$=Symbol("DecafHandlers"),j=Symbol("DecafAdapterForOptions"),q=Symbol("AUTH_HANDLER"),N="auth:meta",L=Symbol("decaf:context");function K(t){const r="string"==typeof t?t:t.name;return a.applyDecorators(n.ApiBearerAuth(),a.SetMetadata(N,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(N,e.getHandler())??this.reflector.get(N,e.getClass());return r&&this.authHandler&&await this.authHandler.authorize(e,r),t.handle()}},e.AuthInterceptor=p.__decorate([a.Injectable(),p.__param(1,a.Optional()),p.__param(1,a.Inject(q)),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 Q(e,t,...r){if(e instanceof s.ModelService)return"function"==typeof e[t]?e[t](...r):e.statement(t,...r);if("function"==typeof e[t])return e[t](...r);throw Error(`Persistence method "${t}" not found on ${e?.constructor?.name}`)}function z(e){return async function(t,r){const a=this.log.for(e);try{a.debug(`Invoking persistence method "${e}" given parameters: ${JSON.stringify(t.valuesInOrder)}`);const{direction:o,limit:s,offset:i}=r;return await Q(this.persistence(),e,...t.valuesInOrder,o,s,i)}catch(t){throw a.error(`Custom query "${e}" failed`,t),t}}}function V(e,t,r){return Object.defineProperty(e.prototype||e,t,{value:r,writable:!1}),Object.getOwnPropertyDescriptor(e.prototype||e,t)}class Y extends s.Service{constructor(e,t){super(t),this.clientContext=e}logCtx(e,t,r=!1,a){const o=this.clientContext.ctx;return e=e.filter(e=>void 0!==e),s.ContextualLoggedClass.logCtx.call(this,t,a||{},r,...e,o)}}class J extends Y{persistence(e){if(!this._persistence)try{this._persistence=s.ModelService.getService(this.class)}catch(e){try{this._persistence=s.Service.get(this.class.name)}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 X=new Map;function W(e,r){if(!s.TransactionOperationKeys.includes(e))return r;const a=(e=>(X.has(e)||X.set(e,new WeakMap),X.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)&&W(e,t);const p=n.at(-1),d=p&&o.Model.isModel(p)?a.get(p)||W(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 m=t.Metadata.properties(r)||[],h=t.Metadata.get(r,s.PersistenceKeys.CREATED_BY),y=t.Metadata.get(r,s.PersistenceKeys.UPDATED_BY),f=[...Object.keys(h||{}),...Object.keys(y||{})],g=["createdBy","updatedBy"].filter(e=>m.includes(e)),_=Array.from(new Set([...f,...g])),A=Array.from(new Set([...m,..._])),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,..._]),v=(()=>{try{return o.Model.pk(r)}catch{return}})(),w=[c.OperationKeys.UPDATE,c.BulkCrudOperationKeys.UPDATE_ALL].includes(e),D=A.filter(e=>!P.has(e)&&(!R.has(e)||w&&e===v));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,W(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 Z{static{this.log=l.Logging.for(Z.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=Z.log.for(Z.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 J{get class(){throw Error("Method not implemented.")}constructor(e,t){super(e,t)}}for(const[e,t]of Object.entries(c)){const r=[t.path.replace(/^\/+|\/+$/g,"")].filter(e=>e&&e.trim()).join("/"),o=z(e);if(!o){const t=`Invalid or missing handler for model ${i.name} on decorated method ${e}`;throw a.error(t),Error(t)}const s=V(p,e,o);s&&G(p,e,s,H(e,r,t.httpMethod))}for(const[e,t]of Object.entries(n)){const a=[r,e,...(t.fields??[]).map(e=>":"+e)].filter(e=>e&&e.trim()).join("/"),o=V(p,e,z(e));o&&G(p,e,o,H(e,a,"GET",!0))}return p}static create(t){const r=Z.log.for(Z.create),i=o.Model.tableName(t),d=l.toKebabCase(i),u=t.name,m=Z.getPersistence(t),{description:h,getPK:y,apiProperties:f,path:g}=Z.getRouteParametersFromModel(t);r.debug("Creating controller for model: "+u);const _=Z.createQueryRoutesFromRepository(m);let A=class extends _{static get class(){return t}get class(){return t}constructor(e){super(e),this.pk=o.Model.pk(t),r.info(`Registering dynamic controller for model: ${this.class.name} route: /${d}`)}async listBy(e,t){const{ctx:r}=(await this.logCtx([],s.PreparedStatementKeys.LIST_BY,!0)).for(this.listBy);return this.persistence(r).listBy(e,t.direction,r)}async paginateBy(e,t){const{ctx:r}=(await this.logCtx([],s.PreparedStatementKeys.PAGE_BY,!0)).for(this.paginateBy);return this.persistence(r).paginateBy(e,t.direction,t,r)}async find(e,t){const{ctx:r}=(await this.logCtx([],s.PreparedStatementKeys.FIND,!0)).for(this.find),a=t.direction??s.OrderDirection.ASC;return Q(this.persistence(r),this.find.name,e,a,r)}async page(e,t){const{ctx:r}=(await this.logCtx([],s.PreparedStatementKeys.PAGE,!0)).for(this.page),{direction:a=s.OrderDirection.ASC,limit:o,offset:i,bookmark:n}=t,c={offset:i??1,limit:o??10,bookmark:n};return Q(this.persistence(r),this.page.name,e,a,c,r)}async findOneBy(e,t){const{ctx:r}=(await this.logCtx([],s.PreparedStatementKeys.FIND_ONE_BY,!0)).for(this.findOneBy);return this.persistence(r).findOneBy(e,t,r)}async findBy(e,t,r){const{ctx:a}=(await this.logCtx([],s.PreparedStatementKeys.FIND_BY,!0)).for(this.findBy);return this.persistence(a).for(a.toOverrides()).findBy(e,t,a)}async statement(e,t,r){const{ctx:a}=(await this.logCtx([],s.PersistenceKeys.STATEMENT,!0)).for(this.statement),{direction:o,offset:i,limit:n,bookmark:c}=r,p=(t=t.map(e=>("string"==typeof e?parseInt(e):e)||e)).length>1?t[1]:void 0,d=o??p;switch(d&&t.length>1&&(t[1]=d),e){case s.PreparedStatementKeys.FIND:case s.PreparedStatementKeys.FIND_BY:break;case s.PreparedStatementKeys.LIST_BY:t.push(o);break;case s.PreparedStatementKeys.PAGE:case s.PreparedStatementKeys.PAGE_BY:t=[t[0],d,{limit:n,offset:i,bookmark:c}];case s.PreparedStatementKeys.FIND_ONE_BY:case s.PreparedStatementKeys.COUNT_OF:case s.PreparedStatementKeys.MAX_OF:case s.PreparedStatementKeys.MIN_OF:case s.PreparedStatementKeys.AVG_OF:case s.PreparedStatementKeys.SUM_OF:case s.PreparedStatementKeys.DISTINCT_OF:case s.PreparedStatementKeys.GROUP_OF:}return this.persistence(a).statement(e,...t,a)}async createAll(e,r){const{ctx:a,log:o}=(await this.logCtx([],c.BulkCrudOperationKeys.CREATE_ALL,!0)).for(this.createAll);let s;o.verbose("creating new "+u);try{s=await this.persistence(a).createAll(e.map(e=>new t(e)),a)}catch(e){throw o.error("Failed to create new "+u,e),e}return o.info(`created new ${u} with id ${s[this.pk]}`),a.toResponse(r),s}async create(e,t){const{ctx:r,log:a}=(await this.logCtx([],c.OperationKeys.CREATE,!0)).for(this.create);let o;a.verbose("creating new "+u);try{const t=this.persistence(r);o=await t.create(e,r)}catch(e){throw a.error("Failed to create new "+u,e),e}return a.info(`created new ${u} with id ${o[this.pk]}`),r.toResponse(t),o}async readAll(e){const{ctx:t,log:r}=(await this.logCtx([],c.BulkCrudOperationKeys.READ_ALL,!0)).for(this.readAll);let a;try{r.debug(`reading ${e.length} ${u}: ${e}`);const o=this.persistence(t);a=await o.readAll(e,t)}catch(t){throw r.error(`Failed to ${u} with id ${e}`,t),t}return r.info(`read ${a.length} ${u}`),a}async read(e){const{ctx:t,log:r}=(await this.logCtx([],c.OperationKeys.READ,!0)).for(this.read),a=y(...e.valuesInOrder);if(void 0===a)throw new c.ValidationError(`No ${this.pk} provided`);let o;try{r.debug(`reading ${u} with ${this.pk} ${a}`);const e=this.persistence(t);o=await e.read(a,t)}catch(e){throw r.error(`Failed to read ${u} with id ${a}`,e),e}return r.info(`read ${u} with id ${o[this.pk]}`),o}async updateAll(e,t){const{ctx:r,log:a}=(await this.logCtx([],c.BulkCrudOperationKeys.UPDATE_ALL,!0)).for(this.updateAll);let o;try{a.info(`updating ${e.length} ${u}`),o=await this.persistence(r).updateAll(e,r)}catch(e){throw a.error(e),e}return r.toResponse(t),o}async update(e,r,a){const{ctx:o,log:s}=(await this.logCtx([],c.OperationKeys.UPDATE,!0)).for(this.update),i=y(...e.valuesInOrder);if(void 0===i)throw new c.ValidationError(`No ${this.pk} provided`);let n;try{s.info(`updating ${u} with ${this.pk} ${i}`);const e=JSON.parse(JSON.stringify(r)),a=this.persistence(o);n=await a.update(new t({...e,[this.pk]:i}),o)}catch(e){throw s.error(e),e}return o.toResponse(a),n}async deleteAll(e,t){const{ctx:r,log:a}=(await this.logCtx([],c.BulkCrudOperationKeys.DELETE_ALL,!0)).for(this.deleteAll);let o;try{a.debug(`deleting ${e.length} ${u}: ${e}`),o=await this.persistence(r).deleteAll(e,r)}catch(t){throw a.error(`Failed to delete ${u} with id ${e}`,t),t}return a.info(`deleted ${o.length} ${u}`),r.toResponse(t),o}async delete(e,t){const{ctx:r,log:a}=(await this.logCtx([],c.OperationKeys.DELETE,!0)).for(this.delete),o=y(...e.valuesInOrder);if(void 0===o)throw new c.ValidationError(`No ${this.pk} provided`);let s;try{a.debug(`deleting ${u} with ${this.pk} ${o}`),s=await this.persistence(r).delete(o,r)}catch(e){throw a.error(`Failed to delete ${u} with id ${o}`,e),e}return a.info(`deleted ${u} with id ${o}`),r.toResponse(t),s}};return p.__decorate([w(t,"GET","listBy/:key"),n.ApiOperation({summary:`Retrieve ${u} records by query.`}),n.ApiParam({name:"key",description:"the model key to sort by"}),n.ApiQuery({name:"direction",required:!0,enum:s.OrderDirection}),n.ApiOkResponse({description:u+" listed successfully."}),p.__param(0,a.Param("key")),p.__param(1,x()),p.__metadata("design:type",Function),p.__metadata("design:paramtypes",[String,Object]),p.__metadata("design:returntype",Promise)],A.prototype,"listBy",null),p.__decorate([w(t,"GET","paginateBy/:key/:page"),n.ApiOperation({summary:`Retrieve ${u} records by query.`}),n.ApiParam({name:"key",description:"the model key to sort by"}),n.ApiParam({name:"page",description:"the page to retrieve or the bookmark"}),n.ApiQuery({name:"direction",required:!0,enum:s.OrderDirection,description:"the sort order"}),n.ApiQuery({name:"limit",required:!0,description:"the page size"}),n.ApiQuery({name:"offset",description:"the bookmark when necessary"}),n.ApiOkResponse({description:u+" listed paginated."}),p.__param(0,a.Param("key")),p.__param(1,x()),p.__metadata("design:type",Function),p.__metadata("design:paramtypes",[String,Object]),p.__metadata("design:returntype",Promise)],A.prototype,"paginateBy",null),p.__decorate([w(t,"GET","find/:value"),n.ApiOperation({summary:`Find ${u} records using the default query attributes.`}),n.ApiParam({name:"value",description:"The string to match against the default query attributes"}),n.ApiQuery({name:"direction",required:!1,enum:s.OrderDirection,description:"the sort order for the matching results"}),n.ApiOkResponse({description:u+" records matching the provided prefix."}),p.__param(0,a.Param("value")),p.__param(1,x()),p.__metadata("design:type",Function),p.__metadata("design:paramtypes",[String,Object]),p.__metadata("design:returntype",Promise)],A.prototype,"find",null),p.__decorate([w(t,"GET","page/:value"),n.ApiOperation({summary:`Page ${u} records using the default query attributes.`}),n.ApiParam({name:"value",description:"The string to match against the default query attributes"}),n.ApiQuery({name:"direction",required:!1,enum:s.OrderDirection,description:"the sort order for the paged results"}),n.ApiQuery({name:"limit",required:!1,description:"page size"}),n.ApiQuery({name:"offset",required:!1,description:"page number"}),n.ApiQuery({name:"bookmark",required:!1,description:"bookmark for cursor pagination"}),n.ApiOkResponse({description:u+" records paged by the provided prefix."}),p.__param(0,a.Param("value")),p.__param(1,x()),p.__metadata("design:type",Function),p.__metadata("design:paramtypes",[String,Object]),p.__metadata("design:returntype",Promise)],A.prototype,"page",null),p.__decorate([w(t,"GET","findOneBy/:key"),n.ApiOperation({summary:`Retrieve ${u} records by query.`}),n.ApiParam({name:"key",description:"the model key to sort by"}),n.ApiOkResponse({description:u+" listed found."}),n.ApiNotFoundResponse({description:`No ${u} record matches the provided identifier.`}),p.__param(0,a.Param("key")),p.__param(1,a.Param("value")),p.__metadata("design:type",Function),p.__metadata("design:paramtypes",[String,Object]),p.__metadata("design:returntype",Promise)],A.prototype,"findOneBy",null),p.__decorate([w(t,"GET","findBy/:key/:value"),n.ApiOperation({summary:`Retrieve ${u} records by query.`}),n.ApiParam({name:"key",description:"the model key to compare"}),n.ApiParam({name:"value",description:"the value to match"}),n.ApiQuery({name:"direction",required:!0,enum:s.OrderDirection,description:"the sort order when applicable"}),n.ApiOkResponse({description:u+" listed found."}),n.ApiNotFoundResponse({description:`No ${u} record matches the provided identifier.`}),p.__param(0,a.Param("key")),p.__param(1,a.Param("value")),p.__param(2,x()),p.__metadata("design:type",Function),p.__metadata("design:paramtypes",[String,Object,Object]),p.__metadata("design:returntype",Promise)],A.prototype,"findBy",null),p.__decorate([w(t,"GET","statement/:method/*args"),n.ApiOperation({summary:`Executes a prepared statement on ${u}.`}),n.ApiParam({name:"method",description:"the prepared statement to execute"}),n.ApiParam({name:"args",description:"concatenated list of arguments the prepared statement can accept"}),n.ApiQuery({name:"direction",required:!0,enum:s.OrderDirection,description:"the sort order when applicable"}),n.ApiQuery({name:"limit",required:!0,description:"limit or page size when applicable"}),n.ApiQuery({name:"offset",required:!0,description:"offset or bookmark when applicable"}),n.ApiOkResponse({description:u+" listed found."}),n.ApiNotFoundResponse({description:`No ${u} record matches the provided identifier.`}),p.__param(0,a.Param("method")),p.__param(1,a.Param("args")),p.__param(2,x()),p.__metadata("design:type",Function),p.__metadata("design:paramtypes",[String,Array,Object]),p.__metadata("design:returntype",Promise)],A.prototype,"statement",null),p.__decorate([w(t,"POST","bulk"),n.ApiOperation({summary:`Create a new ${u}.`}),n.ApiBody({description:"Payload for "+u,schema:{type:"array",items:{$ref:n.getSchemaPath(t)}}}),n.ApiCreatedResponse({description:u+" created successfully.",schema:{type:"array",items:{$ref:n.getSchemaPath(t)}}}),n.ApiBadRequestResponse({description:"Payload validation failed."}),n.ApiUnprocessableEntityResponse({description:"Repository rejected the provided payload."}),p.__param(0,S()),p.__param(1,a.Response({passthrough:!0})),p.__metadata("design:type",Function),p.__metadata("design:paramtypes",[Array,Object]),p.__metadata("design:returntype",Promise)],A.prototype,"createAll",null),p.__decorate([w(t,"POST"),n.ApiOperation({summary:`Create a new ${u}.`}),n.ApiBody({description:"Payload for "+u,type:W(c.OperationKeys.CREATE,t)}),n.ApiCreatedResponse({description:u+" created successfully.",schema:{$ref:n.getSchemaPath(t)}}),n.ApiBadRequestResponse({description:"Payload validation failed."}),n.ApiUnprocessableEntityResponse({description:"Repository rejected the provided payload."}),p.__param(0,S()),p.__param(1,a.Response({passthrough:!0})),p.__metadata("design:type",Function),p.__metadata("design:paramtypes",[Object,Object]),p.__metadata("design:returntype",Promise)],A.prototype,"create",null),p.__decorate([w(t,"GET","bulk"),n.ApiOperation({summary:`Retrieve a ${u} record by id.`}),n.ApiQuery({name:"ids",required:!0,type:"array"}),n.ApiOkResponse({description:u+" retrieved successfully.",schema:{type:"array",items:{$ref:n.getSchemaPath(t)}}}),n.ApiNotFoundResponse({description:`No ${u} record matches the provided identifier.`}),p.__param(0,a.Query("ids")),p.__metadata("design:type",Function),p.__metadata("design:paramtypes",[Array]),p.__metadata("design:returntype",Promise)],A.prototype,"readAll",null),p.__decorate([w(t,"GET",g),D(f),n.ApiOperation({summary:`Retrieve a ${u} record by id.`}),n.ApiOkResponse({description:u+" retrieved successfully.",schema:{$ref:n.getSchemaPath(t)}}),n.ApiNotFoundResponse({description:`No ${u} record matches the provided identifier.`}),p.__param(0,C(f)),p.__metadata("design:type",Function),p.__metadata("design:paramtypes",[Object]),p.__metadata("design:returntype",Promise)],A.prototype,"read",null),p.__decorate([w(t,"PUT","bulk"),D(f),n.ApiOperation({summary:`Replace an existing ${u} record with a new payload.`}),n.ApiBody({description:"Payload for replace a existing record of "+u,schema:{type:"array",$ref:n.getSchemaPath(W(c.OperationKeys.UPDATE,t))}}),n.ApiOkResponse({description:u+" updated successfully.",schema:{type:"array",items:{$ref:n.getSchemaPath(t)}}}),n.ApiNotFoundResponse({description:`No ${u} record matches the provided identifier.`}),n.ApiBadRequestResponse({description:"Payload validation failed."}),p.__param(0,S()),p.__param(1,a.Response({passthrough:!0})),p.__metadata("design:type",Function),p.__metadata("design:paramtypes",[Array,Object]),p.__metadata("design:returntype",Promise)],A.prototype,"updateAll",null),p.__decorate([w(t,"PUT",g),D(f),n.ApiOperation({summary:`Replace an existing ${u} record with a new payload.`}),n.ApiBody({description:"Payload for replace a existing record of "+u,type:W(c.OperationKeys.UPDATE,t)}),n.ApiOkResponse({description:u+" updated successfully.",schema:{$ref:n.getSchemaPath(t)}}),n.ApiNotFoundResponse({description:`No ${u} record matches the provided identifier.`}),n.ApiBadRequestResponse({description:"Payload validation failed."}),p.__param(0,C(f)),p.__param(1,S()),p.__param(2,a.Response({passthrough:!0})),p.__metadata("design:type",Function),p.__metadata("design:paramtypes",[Object,Object,Object]),p.__metadata("design:returntype",Promise)],A.prototype,"update",null),p.__decorate([w(t,"DELETE","bulk"),D(f),n.ApiOperation({summary:`Retrieve a ${u} record by id.`}),n.ApiQuery({name:"ids",required:!0,type:"array"}),n.ApiOkResponse({description:u+" deleted successfully.",schema:{type:"array",items:{$ref:n.getSchemaPath(t)}}}),n.ApiNotFoundResponse({description:`No ${u} record matches the provided identifier.`}),p.__param(0,a.Query("ids")),p.__param(1,a.Response({passthrough:!0})),p.__metadata("design:type",Function),p.__metadata("design:paramtypes",[Array,Object]),p.__metadata("design:returntype",Promise)],A.prototype,"deleteAll",null),p.__decorate([w(t,"DELETE",g),D(f),n.ApiOperation({summary:`Delete a ${u} record by id.`}),n.ApiOkResponse({description:u+" deleted successfully.",schema:{$ref:n.getSchemaPath(t)}}),n.ApiNotFoundResponse({description:`No ${u} record matches the provided identifier.`}),p.__param(0,C(f)),p.__param(1,a.Response({passthrough:!0})),p.__metadata("design:type",Function),p.__metadata("design:paramtypes",[Object,Object]),p.__metadata("design:returntype",Promise)],A.prototype,"delete",null),A=p.__decorate([a.Controller(d),n.ApiTags(u),n.ApiExtraModels(t),K(t),p.__metadata("design:paramtypes",[e.DecafRequestContext])],A),A}static getRouteParametersFromModel(e){const r=o.Model.pk(e),a=t.Metadata.get(e,t.Metadata.key(c.DBKeys.COMPOSED,r)),s=a?.args??[],i=Array.isArray(s)&&s.length>0?Array.from(new Set([...s])):Array.from(new Set([r])),n=t.Metadata.description(e);return{path:":"+i.join("/:"),description:n,apiProperties:i.map(r=>({name:r,description:t.Metadata.description(e,r),required:!0,type:String})),getPK:(...e)=>a?.separator?e.join(a.separator):e.join("")}}}e.DecafRequestHandlerInterceptor=class{constructor(e,t){this.requestContext=e,this.executor=t}async contextualize(e){const t={headers:e.headers,overrides:{}},r=s.Adapter.flavoursToTransform();if(r)for(const a of r)try{const r=s.Adapter.transformerFor(a),o=await r.from(e);Object.assign(t.overrides,o)}catch(e){throw new c.InternalError("Failed to contextualize request: "+e)}return(new s.Context).accumulate(Object.assign({},s.DefaultAdapterFlags,{logger:l.Logging.get(),timestamp:new Date},t))}async intercept(e,t){const r=e.switchToHttp().getRequest(),a=e.switchToHttp().getResponse(),o=await this.contextualize(r);return this.requestContext.applyCtx(o),await this.executor.exec(r,a),t.handle()}},e.DecafRequestHandlerInterceptor=p.__decorate([a.Injectable({scope:a.Scope.REQUEST}),p.__metadata("design:paramtypes",[e.DecafRequestContext,e.DecafHandlerExecutor])],e.DecafRequestHandlerInterceptor);class ee{}function te(e){return r=>(t.Metadata.set("transformers",e,r),"function"==typeof r?t.metadata("transformers",e)(r):r)}function re(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(Z.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 ae extends s.ForbiddenError{constructor(e){super(e,ae.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 oe={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 se{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||oe.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 ie{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||oe.auth).build();return n.SwaggerModule.createDocument(this.app,t,{extraModels:this.options.extraModels||[]})}setupSwagger(){const e=this.createDocument(),t=new se({title:this.options.title,path:this.options.path||oe.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||oe.path,this.app,e,{...t.getCustomOptions()})}}var ne;let ce=class{static{ne=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(ne)),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 ee?e:new e}te(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=>ne.bootPersistence(e),provide:F,durable:!0,scope:a.Scope.DEFAULT,inject:[I]};return{module:ne,providers:[r,t],exports:[r]}}async onApplicationShutdown(){const e=ne.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)}}};ce=ne=p.__decorate([a.Global(),a.Module({}),p.__param(0,a.Inject(I)),p.__metadata("design:paramtypes",[Object,d.ModuleRef])],ce);const pe=Symbol("LISTENING_ADAPTERS_FLAVOURS");var de,le,ue;e.EventsController=de=class extends Y{constructor(e,t){super(e,de.name),this.adapters=t.map(e=>s.Adapter.get(e))}listen(){const e=l.Logging.for(de.name);return new h.Observable(t=>{const r=new class{refresh(...e){return Promise.resolve().then(()=>{const r=(e=>{const[t,r,a,o]=e;return[t?.name??t,r,a,Array.isArray(o)?o.map(e=>e.serialize()):o?.serialize()]})(e);t.next({data:r})})}};try{for(const e of this.adapters)e.observe(r)}catch(e){t.error("Failed to observe event: "+(e.message||e))}return()=>{try{for(const e of this.adapters)e.unObserve(r)}catch(t){e.error(t)}}})}listenForModel(e){const t=l.Logging.for(de.name);return new h.Observable(e=>{const r=new class{refresh(...t){return Promise.resolve().then(()=>{e.next({data:t})})}};try{for(const e of this.adapters)e.observe(r)}catch(t){e.error("Failed to observe event: "+(t.message||t))}return()=>{try{for(const e of this.adapters)e.unObserve(r)}catch(e){t.error(e)}}})}},p.__decorate([a.Sse(),p.__metadata("design:type",Function),p.__metadata("design:paramtypes",[]),p.__metadata("design:returntype",h.Observable)],e.EventsController.prototype,"listen",null),p.__decorate([a.Sse("/:model"),p.__param(0,a.Query("model")),p.__metadata("design:type",Function),p.__metadata("design:paramtypes",[String]),p.__metadata("design:returntype",h.Observable)],e.EventsController.prototype,"listenForModel",null),e.EventsController=de=p.__decorate([a.Controller(),p.__param(1,a.Inject(pe)),p.__metadata("design:paramtypes",[e.DecafRequestContext,Array])],e.EventsController),e.DecafStreamModule=le=class{static forFlavours(t,r="events"){return{module:le,controllers:[e.EventsController],imports:[d.RouterModule.register([{path:r.replace(/^\//,""),module:le}])],providers:[e.DecafRequestContext,{provide:pe,useValue:t??[]}]}}},e.DecafStreamModule=le=p.__decorate([a.Module({})],e.DecafStreamModule),e.DecafModule=ue=class{static async forRootAsync(t){const{autoControllers:r,autoServices:a,handlers:o}=t,s=(await ce.bootPersistence(t)).map(e=>e.flavour),i=[ce.forRoot(t)];return r&&s.forEach(e=>{i.push(re(e).forRoot(e,{autoServices:a,handlers:o}))}),t.observerOptions?.enableObserverEvents&&i.push(e.DecafStreamModule.forFlavours(s)),{module:ue,imports:i}}},e.DecafModule=ue=p.__decorate([a.Module({})],e.DecafModule);const me="##VERSION##",he="##PACKAGE##";t.Metadata.registerLibrary(he,me),e.AUTH_HANDLER=q,e.AUTH_META_KEY=N,e.ApiOperationFromModel=w,e.ApiParamsFromModel=D,e.ApiProperty=O,e.Auth=K,e.BulkApiOperationFromModel=(e,r,o)=>{const s={GET:[c.BulkCrudOperationKeys.READ_ALL,a.Get],POST:[c.BulkCrudOperationKeys.CREATE_ALL,a.Post],PUT:[c.BulkCrudOperationKeys.UPDATE_ALL,a.Put],PATCH:[c.BulkCrudOperationKeys.UPDATE_ALL,a.Patch],DELETE:[c.BulkCrudOperationKeys.DELETE_ALL,a.Delete]},[i,p]=s[r];return v(e,i)?t.apply(n.ApiExcludeEndpoint()):t.apply(p(o))},e.CorsError=ae,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=Y,e.DecafModelController=J,e.DecafParams=C,e.DecafQuery=x,e.DecafRoleAuthHandler=class extends B{constructor(){super()}async authorize(e,r){const a=e.switchToHttp().getRequest(),i=this.parseRequest(a);if(!i)throw new s.AuthorizationError("Unauthenticated");const n=t.Metadata.get(o.Model.get(r),s.PersistenceKeys.AUTH_ROLE);if(!n.includes(i))throw new s.AuthorizationError("Missing role: "+i);return n}},e.DtoFor=W,e.FromModelController=Z,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 ae(`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 ie(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=ee,e.SwaggerBuilder=ie,e.UseDecafFilter=()=>a.UseFilters(new e.DecafExceptionFilter),e.VERSION=me,e.createApiPropertyDecorator=R,e.createPropertyDecorator=b,e.getEnumType=P,e.getEnumValues=E,e.getModuleFor=re,e.isOperationBlocked=v,e.isUndefined=A,e.repoForModel=e=>{const t=o.Model.get(e);if(!t)throw new c.InternalError("Failed to find repository for "+e);return s.Repository.forModel(t)},e.requestToContextTransformer=te},"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,m,h){"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(m);const g="swagger",_={API_OPERATION:g+"/apiOperation",API_RESPONSE:g+"/apiResponse",API_PRODUCES:g+"/apiProduces",API_CONSUMES:g+"/apiConsumes",API_TAGS:g+"/apiUseTags",API_CALLBACKS:g+"/apiCallbacks",API_PARAMETERS:g+"/apiParameters",API_HEADERS:g+"/apiHeaders",API_MODEL_PROPERTIES:g+"/apiModelProperties",API_MODEL_PROPERTIES_ARRAY:g+"/apiModelPropertiesArray",API_SECURITY:g+"/apiSecurity",API_EXCLUDE_ENDPOINT:g+"/apiExcludeEndpoint",API_EXCLUDE_CONTROLLER:g+"/apiExcludeController",API_EXTRA_MODELS:g+"/apiExtraModels",API_EXTENSION:g+"/apiExtension",API_SCHEMA:g+"/apiSchema",API_DEFAULT_GETTER:g+"/apiDefaultGetter",API_LINK:g+"/apiLink"},A=e=>void 0===e;function E(e){if("function"==typeof e)return E(e());if(Array.isArray(e))return e;if("object"!=typeof e)return[];const t=Object.values(e).filter(e=>"number"==typeof e).map(e=>e.toString());return Object.keys(e).filter(e=>!t.includes(e)).map(t=>e[t])}function P(e){return e.filter(i.isString).length>0?"string":"number"}function b(e,t,r=!0){return(a,o)=>{const s=Reflect.getMetadata(_.API_MODEL_PROPERTIES_ARRAY,a)||[],n=":"+o;s.includes(n)||Reflect.defineMetadata(_.API_MODEL_PROPERTIES_ARRAY,[...s,":"+o],a);const c=Reflect.getMetadata(e,a,o);if(c){const s=i.pickBy(t,i.negate(A)),n=r?{...c,...s}:{...s,...c};Reflect.defineMetadata(e,n,a,o)}else{const r=a?.constructor?._OPENAPI_METADATA_FACTORY?.()[o]?.type??Reflect.getMetadata("design:type",a,o);Reflect.defineMetadata(e,{type:r,required:!1,...i.pickBy(t,i.negate(A))},a,o)}}}function O(e={}){return R(e)}function R(e={},t=!0){const[r,a]=((e,t)=>{if(!e)return[e,t];if(t)return[e,t];const r=i.isArray(e);return[r?e[0]:e,r]})(e.type,e.isArray);if((o=e={...e,type:r,isArray:a}).isArray&&"enum"in o&&void 0!==o.enum){e.type="array";const t=E(e.enum);e.items={type:P(t),enum:t},delete e.enum}else if("enum"in e&&void 0!==e.enum){const t=E(e.enum);e.enum=t,e.type=P(t)}var o;return Array.isArray(e.type)&&(e.type="array",e.items={type:"array",items:{type:e.type[0]}}),b(_.API_MODEL_PROPERTIES,e,t)}function v(e,r){const{handler:a,args:o}=t.Metadata.get(e,c.OperationKeys.REFLECT+c.OperationKeys.BLOCK)||{};return!!a&&(a(...o,r)??!1)}function w(e,r,o){const s={GET:[c.OperationKeys.READ,a.Get],POST:[c.OperationKeys.CREATE,a.Post],PUT:[c.OperationKeys.UPDATE,a.Put],PATCH:[c.OperationKeys.UPDATE,a.Patch],DELETE:[c.OperationKeys.DELETE,a.Delete]},[i,p]=s[r];return v(e,i)?t.apply(n.ApiExcludeEndpoint()):t.apply(p(o))}function D(e=[]){const t=e.map(e=>n.ApiParam({name:e.name,description:e.description??"Path parameter: "+e.name,required:e.required??!0,type:e.type??String}));return a.applyDecorators(...t)}const S=a.createParamDecorator((e,t)=>{const r=t.switchToHttp().getRequest().body,o=t.getClass(),s=o.class;if(!s)throw new a.InternalServerErrorException(`ModelConstructor not found on controller ${o.name}. Ensure the controller was created via FromModelController.`);return r?Array.isArray(r)?r.map(e=>new s(e)):new s(r):r}),T=a.createParamDecorator((e,t)=>{const r=t.switchToHttp().getRequest(),a=r?.params??{},o=e??Object.keys(a),s=o.map(e=>a[e]);return{raw:a,valuesInOrder:s,keysInOrder:o}});function C(e=[]){const t=e.map(e=>e.name);return T(t)}const x=a.createParamDecorator((e,t)=>{const r={...t.switchToHttp().getRequest().query??{}};if(void 0!==r.limit){const e=Number(r.limit);Number.isNaN(e)||(r.limit=e)}if(void 0!==r.offset){const e=Number(r.offset);Number.isNaN(e)||(r.offset=e)}if(void 0!==r.bookmark){const e=Number(r.bookmark);r.bookmark=Number.isNaN(e)?r.bookmark:e}return r});function M(e){const t={GET:a.Get,POST:a.Post,PUT:a.Put,PATCH:a.Patch,DELETE:a.Delete}[e];if(!t)throw Error(`Unsupported HTTP verb "${e}". No NestJS decorator mapping was found.`);return t}const I="DecafModuleOptions",F="DecafAdapter",k="DecafRoute",$=Symbol("DecafHandlers"),j=Symbol("DecafAdapterForOptions"),q=Symbol("AUTH_HANDLER"),N="auth:meta",L=Symbol("decaf:context");function K(t){const r="string"==typeof t?t:t.name;return a.applyDecorators(n.ApiBearerAuth(),a.SetMetadata(N,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(N,e.getHandler())??this.reflector.get(N,e.getClass());return r&&this.authHandler&&await this.authHandler.authorize(e,r),t.handle()}},e.AuthInterceptor=p.__decorate([a.Injectable(),p.__param(1,a.Optional()),p.__param(1,a.Inject(q)),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 Q(e,t,...r){if(e instanceof s.ModelService)return"function"==typeof e[t]?e[t](...r):e.statement(t,...r);if("function"==typeof e[t])return e[t](...r);throw Error(`Persistence method "${t}" not found on ${e?.constructor?.name}`)}function z(e){return async function(t,r){const a=this.log.for(e);try{a.debug(`Invoking persistence method "${e}" given parameters: ${JSON.stringify(t.valuesInOrder)}`);const{direction:o,limit:s,offset:i}=r;return await Q(this.persistence(),e,...t.valuesInOrder,o,s,i)}catch(t){throw a.error(`Custom query "${e}" failed`,t),t}}}function V(e,t,r){return Object.defineProperty(e.prototype||e,t,{value:r,writable:!1}),Object.getOwnPropertyDescriptor(e.prototype||e,t)}class Y extends s.Service{constructor(e,t){super(t),this.clientContext=e}logCtx(e,t,r=!1,a){const o=this.clientContext.ctx;return e=e.filter(e=>void 0!==e),s.ContextualLoggedClass.logCtx.call(this,t,a||{},r,...e,o)}}class J extends Y{persistence(e){if(!this._persistence)try{this._persistence=s.ModelService.getService(this.class)}catch(e){try{this._persistence=s.Service.get(this.class)}catch(e){this._persistence=s.Repository.forModel(this.class)}}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 X=new Map;function W(e,r){if(!s.TransactionOperationKeys.includes(e))return r;const a=(e=>(X.has(e)||X.set(e,new WeakMap),X.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)&&W(e,t);const p=n.at(-1),d=p&&o.Model.isModel(p)?a.get(p)||W(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 m=t.Metadata.properties(r)||[],h=t.Metadata.get(r,s.PersistenceKeys.CREATED_BY),y=t.Metadata.get(r,s.PersistenceKeys.UPDATED_BY),f=[...Object.keys(h||{}),...Object.keys(y||{})],g=["createdBy","updatedBy"].filter(e=>m.includes(e)),_=Array.from(new Set([...f,...g])),A=Array.from(new Set([...m,..._])),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,..._]),v=(()=>{try{return o.Model.pk(r)}catch{return}})(),w=[c.OperationKeys.UPDATE,c.BulkCrudOperationKeys.UPDATE_ALL].includes(e),D=A.filter(e=>!P.has(e)&&(!R.has(e)||w&&e===v));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,W(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 Z{static{this.log=l.Logging.for(Z.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=Z.log.for(Z.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 J{get class(){throw Error("Method not implemented.")}constructor(e,t){super(e,t)}}for(const[e,t]of Object.entries(c)){const r=[t.path.replace(/^\/+|\/+$/g,"")].filter(e=>e&&e.trim()).join("/"),o=z(e);if(!o){const t=`Invalid or missing handler for model ${i.name} on decorated method ${e}`;throw a.error(t),Error(t)}const s=V(p,e,o);s&&G(p,e,s,H(e,r,t.httpMethod))}for(const[e,t]of Object.entries(n)){const a=[r,e,...(t.fields??[]).map(e=>":"+e)].filter(e=>e&&e.trim()).join("/"),o=V(p,e,z(e));o&&G(p,e,o,H(e,a,"GET",!0))}return p}static create(t){const r=Z.log.for(Z.create),i=o.Model.tableName(t),d=l.toKebabCase(i),u=t.name,m=Z.getPersistence(t),{description:h,getPK:y,apiProperties:f,path:g}=Z.getRouteParametersFromModel(t);r.debug("Creating controller for model: "+u);const _=Z.createQueryRoutesFromRepository(m);let A=class extends _{static get class(){return t}get class(){return t}constructor(e){super(e),this.pk=o.Model.pk(t),r.info(`Registering dynamic controller for model: ${this.class.name} route: /${d}`)}async listBy(e,t){const{ctx:r}=(await this.logCtx([],s.PreparedStatementKeys.LIST_BY,!0)).for(this.listBy);return this.persistence(r).listBy(e,t.direction,r)}async paginateBy(e,t){const{ctx:r}=(await this.logCtx([],s.PreparedStatementKeys.PAGE_BY,!0)).for(this.paginateBy);return this.persistence(r).paginateBy(e,t.direction,t,r)}async find(e,t){const{ctx:r}=(await this.logCtx([],s.PreparedStatementKeys.FIND,!0)).for(this.find),a=t.direction??s.OrderDirection.ASC;return Q(this.persistence(r),this.find.name,e,a,r)}async page(e,t){const{ctx:r}=(await this.logCtx([],s.PreparedStatementKeys.PAGE,!0)).for(this.page),{direction:a=s.OrderDirection.ASC,limit:o,offset:i,bookmark:n}=t,c={offset:i??1,limit:o??10,bookmark:n};return Q(this.persistence(r),this.page.name,e,a,c,r)}async findOneBy(e,t){const{ctx:r}=(await this.logCtx([],s.PreparedStatementKeys.FIND_ONE_BY,!0)).for(this.findOneBy);return this.persistence(r).findOneBy(e,t,r)}async findBy(e,t,r){const{ctx:a}=(await this.logCtx([],s.PreparedStatementKeys.FIND_BY,!0)).for(this.findBy);return this.persistence(a).for(a.toOverrides()).findBy(e,t,a)}async statement(e,t,r){const{ctx:a}=(await this.logCtx([],s.PersistenceKeys.STATEMENT,!0)).for(this.statement),{direction:o,offset:i,limit:n,bookmark:c}=r,p=(t=t.map(e=>("string"==typeof e?parseInt(e):e)||e)).length>1?t[1]:void 0,d=o??p;switch(d&&t.length>1&&(t[1]=d),e){case s.PreparedStatementKeys.FIND:case s.PreparedStatementKeys.FIND_BY:break;case s.PreparedStatementKeys.LIST_BY:t.push(o);break;case s.PreparedStatementKeys.PAGE:case s.PreparedStatementKeys.PAGE_BY:t=[t[0],d,{limit:n,offset:i,bookmark:c}];case s.PreparedStatementKeys.FIND_ONE_BY:case s.PreparedStatementKeys.COUNT_OF:case s.PreparedStatementKeys.MAX_OF:case s.PreparedStatementKeys.MIN_OF:case s.PreparedStatementKeys.AVG_OF:case s.PreparedStatementKeys.SUM_OF:case s.PreparedStatementKeys.DISTINCT_OF:case s.PreparedStatementKeys.GROUP_OF:}return this.persistence(a).statement(e,...t,a)}async createAll(e,r){const{ctx:a,log:o}=(await this.logCtx([],c.BulkCrudOperationKeys.CREATE_ALL,!0)).for(this.createAll);let s;o.verbose("creating new "+u);try{s=await this.persistence(a).createAll(e.map(e=>new t(e)),a)}catch(e){throw o.error("Failed to create new "+u,e),e}return o.info(`created new ${u} with id ${s[this.pk]}`),a.toResponse(r),s}async create(e,t){const{ctx:r,log:a}=(await this.logCtx([],c.OperationKeys.CREATE,!0)).for(this.create);let o;a.verbose("creating new "+u);try{const t=this.persistence(r);o=await t.create(e,r)}catch(e){throw a.error("Failed to create new "+u,e),e}return a.info(`created new ${u} with id ${o[this.pk]}`),r.toResponse(t),o}async readAll(e){const{ctx:t,log:r}=(await this.logCtx([],c.BulkCrudOperationKeys.READ_ALL,!0)).for(this.readAll);let a;try{r.debug(`reading ${e.length} ${u}: ${e}`);const o=this.persistence(t);a=await o.readAll(e,t)}catch(t){throw r.error(`Failed to ${u} with id ${e}`,t),t}return r.info(`read ${a.length} ${u}`),a}async read(e){const{ctx:t,log:r}=(await this.logCtx([],c.OperationKeys.READ,!0)).for(this.read),a=y(...e.valuesInOrder);if(void 0===a)throw new c.ValidationError(`No ${this.pk} provided`);let o;try{r.debug(`reading ${u} with ${this.pk} ${a}`);const e=this.persistence(t);o=await e.read(a,t)}catch(e){throw r.error(`Failed to read ${u} with id ${a}`,e),e}return r.info(`read ${u} with id ${o[this.pk]}`),o}async updateAll(e,t){const{ctx:r,log:a}=(await this.logCtx([],c.BulkCrudOperationKeys.UPDATE_ALL,!0)).for(this.updateAll);let o;try{a.info(`updating ${e.length} ${u}`),o=await this.persistence(r).updateAll(e,r)}catch(e){throw a.error(e),e}return r.toResponse(t),o}async update(e,r,a){const{ctx:o,log:s}=(await this.logCtx([],c.OperationKeys.UPDATE,!0)).for(this.update),i=y(...e.valuesInOrder);if(void 0===i)throw new c.ValidationError(`No ${this.pk} provided`);let n;try{s.info(`updating ${u} with ${this.pk} ${i}`);const e=JSON.parse(JSON.stringify(r)),a=this.persistence(o);n=await a.update(new t({...e,[this.pk]:i}),o)}catch(e){throw s.error(e),e}return o.toResponse(a),n}async deleteAll(e,t){const{ctx:r,log:a}=(await this.logCtx([],c.BulkCrudOperationKeys.DELETE_ALL,!0)).for(this.deleteAll);let o;try{a.debug(`deleting ${e.length} ${u}: ${e}`),o=await this.persistence(r).deleteAll(e,r)}catch(t){throw a.error(`Failed to delete ${u} with id ${e}`,t),t}return a.info(`deleted ${o.length} ${u}`),r.toResponse(t),o}async delete(e,t){const{ctx:r,log:a}=(await this.logCtx([],c.OperationKeys.DELETE,!0)).for(this.delete),o=y(...e.valuesInOrder);if(void 0===o)throw new c.ValidationError(`No ${this.pk} provided`);let s;try{a.debug(`deleting ${u} with ${this.pk} ${o}`),s=await this.persistence(r).delete(o,r)}catch(e){throw a.error(`Failed to delete ${u} with id ${o}`,e),e}return a.info(`deleted ${u} with id ${o}`),r.toResponse(t),s}};return p.__decorate([w(t,"GET","listBy/:key"),n.ApiOperation({summary:`Retrieve ${u} records by query.`}),n.ApiParam({name:"key",description:"the model key to sort by"}),n.ApiQuery({name:"direction",required:!0,enum:s.OrderDirection}),n.ApiOkResponse({description:u+" listed successfully."}),p.__param(0,a.Param("key")),p.__param(1,x()),p.__metadata("design:type",Function),p.__metadata("design:paramtypes",[String,Object]),p.__metadata("design:returntype",Promise)],A.prototype,"listBy",null),p.__decorate([w(t,"GET","paginateBy/:key/:page"),n.ApiOperation({summary:`Retrieve ${u} records by query.`}),n.ApiParam({name:"key",description:"the model key to sort by"}),n.ApiParam({name:"page",description:"the page to retrieve or the bookmark"}),n.ApiQuery({name:"direction",required:!0,enum:s.OrderDirection,description:"the sort order"}),n.ApiQuery({name:"limit",required:!0,description:"the page size"}),n.ApiQuery({name:"offset",description:"the bookmark when necessary"}),n.ApiOkResponse({description:u+" listed paginated."}),p.__param(0,a.Param("key")),p.__param(1,x()),p.__metadata("design:type",Function),p.__metadata("design:paramtypes",[String,Object]),p.__metadata("design:returntype",Promise)],A.prototype,"paginateBy",null),p.__decorate([w(t,"GET","find/:value"),n.ApiOperation({summary:`Find ${u} records using the default query attributes.`}),n.ApiParam({name:"value",description:"The string to match against the default query attributes"}),n.ApiQuery({name:"direction",required:!1,enum:s.OrderDirection,description:"the sort order for the matching results"}),n.ApiOkResponse({description:u+" records matching the provided prefix."}),p.__param(0,a.Param("value")),p.__param(1,x()),p.__metadata("design:type",Function),p.__metadata("design:paramtypes",[String,Object]),p.__metadata("design:returntype",Promise)],A.prototype,"find",null),p.__decorate([w(t,"GET","page/:value"),n.ApiOperation({summary:`Page ${u} records using the default query attributes.`}),n.ApiParam({name:"value",description:"The string to match against the default query attributes"}),n.ApiQuery({name:"direction",required:!1,enum:s.OrderDirection,description:"the sort order for the paged results"}),n.ApiQuery({name:"limit",required:!1,description:"page size"}),n.ApiQuery({name:"offset",required:!1,description:"page number"}),n.ApiQuery({name:"bookmark",required:!1,description:"bookmark for cursor pagination"}),n.ApiOkResponse({description:u+" records paged by the provided prefix."}),p.__param(0,a.Param("value")),p.__param(1,x()),p.__metadata("design:type",Function),p.__metadata("design:paramtypes",[String,Object]),p.__metadata("design:returntype",Promise)],A.prototype,"page",null),p.__decorate([w(t,"GET","findOneBy/:key"),n.ApiOperation({summary:`Retrieve ${u} records by query.`}),n.ApiParam({name:"key",description:"the model key to sort by"}),n.ApiOkResponse({description:u+" listed found."}),n.ApiNotFoundResponse({description:`No ${u} record matches the provided identifier.`}),p.__param(0,a.Param("key")),p.__param(1,a.Param("value")),p.__metadata("design:type",Function),p.__metadata("design:paramtypes",[String,Object]),p.__metadata("design:returntype",Promise)],A.prototype,"findOneBy",null),p.__decorate([w(t,"GET","findBy/:key/:value"),n.ApiOperation({summary:`Retrieve ${u} records by query.`}),n.ApiParam({name:"key",description:"the model key to compare"}),n.ApiParam({name:"value",description:"the value to match"}),n.ApiQuery({name:"direction",required:!0,enum:s.OrderDirection,description:"the sort order when applicable"}),n.ApiOkResponse({description:u+" listed found."}),n.ApiNotFoundResponse({description:`No ${u} record matches the provided identifier.`}),p.__param(0,a.Param("key")),p.__param(1,a.Param("value")),p.__param(2,x()),p.__metadata("design:type",Function),p.__metadata("design:paramtypes",[String,Object,Object]),p.__metadata("design:returntype",Promise)],A.prototype,"findBy",null),p.__decorate([w(t,"GET","statement/:method/*args"),n.ApiOperation({summary:`Executes a prepared statement on ${u}.`}),n.ApiParam({name:"method",description:"the prepared statement to execute"}),n.ApiParam({name:"args",description:"concatenated list of arguments the prepared statement can accept"}),n.ApiQuery({name:"direction",required:!0,enum:s.OrderDirection,description:"the sort order when applicable"}),n.ApiQuery({name:"limit",required:!0,description:"limit or page size when applicable"}),n.ApiQuery({name:"offset",required:!0,description:"offset or bookmark when applicable"}),n.ApiOkResponse({description:u+" listed found."}),n.ApiNotFoundResponse({description:`No ${u} record matches the provided identifier.`}),p.__param(0,a.Param("method")),p.__param(1,a.Param("args")),p.__param(2,x()),p.__metadata("design:type",Function),p.__metadata("design:paramtypes",[String,Array,Object]),p.__metadata("design:returntype",Promise)],A.prototype,"statement",null),p.__decorate([w(t,"POST","bulk"),n.ApiOperation({summary:`Create a new ${u}.`}),n.ApiBody({description:"Payload for "+u,schema:{type:"array",items:{$ref:n.getSchemaPath(t)}}}),n.ApiCreatedResponse({description:u+" created successfully.",schema:{type:"array",items:{$ref:n.getSchemaPath(t)}}}),n.ApiBadRequestResponse({description:"Payload validation failed."}),n.ApiUnprocessableEntityResponse({description:"Repository rejected the provided payload."}),p.__param(0,S()),p.__param(1,a.Response({passthrough:!0})),p.__metadata("design:type",Function),p.__metadata("design:paramtypes",[Array,Object]),p.__metadata("design:returntype",Promise)],A.prototype,"createAll",null),p.__decorate([w(t,"POST"),n.ApiOperation({summary:`Create a new ${u}.`}),n.ApiBody({description:"Payload for "+u,type:W(c.OperationKeys.CREATE,t)}),n.ApiCreatedResponse({description:u+" created successfully.",schema:{$ref:n.getSchemaPath(t)}}),n.ApiBadRequestResponse({description:"Payload validation failed."}),n.ApiUnprocessableEntityResponse({description:"Repository rejected the provided payload."}),p.__param(0,S()),p.__param(1,a.Response({passthrough:!0})),p.__metadata("design:type",Function),p.__metadata("design:paramtypes",[Object,Object]),p.__metadata("design:returntype",Promise)],A.prototype,"create",null),p.__decorate([w(t,"GET","bulk"),n.ApiOperation({summary:`Retrieve a ${u} record by id.`}),n.ApiQuery({name:"ids",required:!0,type:"array"}),n.ApiOkResponse({description:u+" retrieved successfully.",schema:{type:"array",items:{$ref:n.getSchemaPath(t)}}}),n.ApiNotFoundResponse({description:`No ${u} record matches the provided identifier.`}),p.__param(0,a.Query("ids")),p.__metadata("design:type",Function),p.__metadata("design:paramtypes",[Array]),p.__metadata("design:returntype",Promise)],A.prototype,"readAll",null),p.__decorate([w(t,"GET",g),D(f),n.ApiOperation({summary:`Retrieve a ${u} record by id.`}),n.ApiOkResponse({description:u+" retrieved successfully.",schema:{$ref:n.getSchemaPath(t)}}),n.ApiNotFoundResponse({description:`No ${u} record matches the provided identifier.`}),p.__param(0,C(f)),p.__metadata("design:type",Function),p.__metadata("design:paramtypes",[Object]),p.__metadata("design:returntype",Promise)],A.prototype,"read",null),p.__decorate([w(t,"PUT","bulk"),D(f),n.ApiOperation({summary:`Replace an existing ${u} record with a new payload.`}),n.ApiBody({description:"Payload for replace a existing record of "+u,schema:{type:"array",$ref:n.getSchemaPath(W(c.OperationKeys.UPDATE,t))}}),n.ApiOkResponse({description:u+" updated successfully.",schema:{type:"array",items:{$ref:n.getSchemaPath(t)}}}),n.ApiNotFoundResponse({description:`No ${u} record matches the provided identifier.`}),n.ApiBadRequestResponse({description:"Payload validation failed."}),p.__param(0,S()),p.__param(1,a.Response({passthrough:!0})),p.__metadata("design:type",Function),p.__metadata("design:paramtypes",[Array,Object]),p.__metadata("design:returntype",Promise)],A.prototype,"updateAll",null),p.__decorate([w(t,"PUT",g),D(f),n.ApiOperation({summary:`Replace an existing ${u} record with a new payload.`}),n.ApiBody({description:"Payload for replace a existing record of "+u,type:W(c.OperationKeys.UPDATE,t)}),n.ApiOkResponse({description:u+" updated successfully.",schema:{$ref:n.getSchemaPath(t)}}),n.ApiNotFoundResponse({description:`No ${u} record matches the provided identifier.`}),n.ApiBadRequestResponse({description:"Payload validation failed."}),p.__param(0,C(f)),p.__param(1,S()),p.__param(2,a.Response({passthrough:!0})),p.__metadata("design:type",Function),p.__metadata("design:paramtypes",[Object,Object,Object]),p.__metadata("design:returntype",Promise)],A.prototype,"update",null),p.__decorate([w(t,"DELETE","bulk"),D(f),n.ApiOperation({summary:`Retrieve a ${u} record by id.`}),n.ApiQuery({name:"ids",required:!0,type:"array"}),n.ApiOkResponse({description:u+" deleted successfully.",schema:{type:"array",items:{$ref:n.getSchemaPath(t)}}}),n.ApiNotFoundResponse({description:`No ${u} record matches the provided identifier.`}),p.__param(0,a.Query("ids")),p.__param(1,a.Response({passthrough:!0})),p.__metadata("design:type",Function),p.__metadata("design:paramtypes",[Array,Object]),p.__metadata("design:returntype",Promise)],A.prototype,"deleteAll",null),p.__decorate([w(t,"DELETE",g),D(f),n.ApiOperation({summary:`Delete a ${u} record by id.`}),n.ApiOkResponse({description:u+" deleted successfully.",schema:{$ref:n.getSchemaPath(t)}}),n.ApiNotFoundResponse({description:`No ${u} record matches the provided identifier.`}),p.__param(0,C(f)),p.__param(1,a.Response({passthrough:!0})),p.__metadata("design:type",Function),p.__metadata("design:paramtypes",[Object,Object]),p.__metadata("design:returntype",Promise)],A.prototype,"delete",null),A=p.__decorate([a.Controller(d),n.ApiTags(u),n.ApiExtraModels(t),K(t),p.__metadata("design:paramtypes",[e.DecafRequestContext])],A),A}static getRouteParametersFromModel(e){const r=o.Model.pk(e),a=t.Metadata.get(e,t.Metadata.key(c.DBKeys.COMPOSED,r)),s=a?.args??[],i=Array.isArray(s)&&s.length>0?Array.from(new Set([...s])):Array.from(new Set([r])),n=t.Metadata.description(e);return{path:":"+i.join("/:"),description:n,apiProperties:i.map(r=>({name:r,description:t.Metadata.description(e,r),required:!0,type:String})),getPK:(...e)=>a?.separator?e.join(a.separator):e.join("")}}}e.DecafRequestHandlerInterceptor=class{constructor(e,t){this.requestContext=e,this.executor=t}async contextualize(e){const t={headers:e.headers,overrides:{}},r=s.Adapter.flavoursToTransform();if(r)for(const a of r)try{const r=s.Adapter.transformerFor(a),o=await r.from(e);Object.assign(t.overrides,o)}catch(e){throw new c.InternalError("Failed to contextualize request: "+e)}return(new s.Context).accumulate(Object.assign({},s.DefaultAdapterFlags,{logger:l.Logging.get(),timestamp:new Date},t))}async intercept(e,t){const r=e.switchToHttp().getRequest(),a=e.switchToHttp().getResponse(),o=await this.contextualize(r);return this.requestContext.applyCtx(o),await this.executor.exec(r,a),t.handle()}},e.DecafRequestHandlerInterceptor=p.__decorate([a.Injectable({scope:a.Scope.REQUEST}),p.__metadata("design:paramtypes",[e.DecafRequestContext,e.DecafHandlerExecutor])],e.DecafRequestHandlerInterceptor);class ee{}function te(e){return r=>(t.Metadata.set("transformers",e,r),"function"==typeof r?t.metadata("transformers",e)(r):r)}function re(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(Z.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 ae extends s.ForbiddenError{constructor(e){super(e,ae.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 oe={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 se{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||oe.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 ie{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||oe.auth).build();return n.SwaggerModule.createDocument(this.app,t,{extraModels:this.options.extraModels||[]})}setupSwagger(){const e=this.createDocument(),t=new se({title:this.options.title,path:this.options.path||oe.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||oe.path,this.app,e,{...t.getCustomOptions()})}}var ne;let ce=class{static{ne=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(ne)),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 ee?e:new e}te(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=>ne.bootPersistence(e),provide:F,durable:!0,scope:a.Scope.DEFAULT,inject:[I]};return{module:ne,providers:[r,t],exports:[r]}}async onApplicationShutdown(){const e=ne.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)}}};ce=ne=p.__decorate([a.Global(),a.Module({}),p.__param(0,a.Inject(I)),p.__metadata("design:paramtypes",[Object,d.ModuleRef])],ce);const pe=Symbol("LISTENING_ADAPTERS_FLAVOURS");var de,le,ue;e.EventsController=de=class extends Y{constructor(e,t){super(e,de.name),this.adapters=t.map(e=>s.Adapter.get(e))}listen(){const e=l.Logging.for(de.name);return new h.Observable(t=>{const r=new class{refresh(...e){return Promise.resolve().then(()=>{const r=(e=>{const[t,r,a,o]=e;return[t?.name??t,r,a,Array.isArray(o)?o.map(e=>e.serialize()):o?.serialize()]})(e);t.next({data:r})})}};try{for(const e of this.adapters)e.observe(r)}catch(e){t.error("Failed to observe event: "+(e.message||e))}return()=>{try{for(const e of this.adapters)e.unObserve(r)}catch(t){e.error(t)}}})}listenForModel(e){const t=l.Logging.for(de.name);return new h.Observable(e=>{const r=new class{refresh(...t){return Promise.resolve().then(()=>{e.next({data:t})})}};try{for(const e of this.adapters)e.observe(r)}catch(t){e.error("Failed to observe event: "+(t.message||t))}return()=>{try{for(const e of this.adapters)e.unObserve(r)}catch(e){t.error(e)}}})}},p.__decorate([a.Sse(),p.__metadata("design:type",Function),p.__metadata("design:paramtypes",[]),p.__metadata("design:returntype",h.Observable)],e.EventsController.prototype,"listen",null),p.__decorate([a.Sse("/:model"),p.__param(0,a.Query("model")),p.__metadata("design:type",Function),p.__metadata("design:paramtypes",[String]),p.__metadata("design:returntype",h.Observable)],e.EventsController.prototype,"listenForModel",null),e.EventsController=de=p.__decorate([a.Controller(),p.__param(1,a.Inject(pe)),p.__metadata("design:paramtypes",[e.DecafRequestContext,Array])],e.EventsController),e.DecafStreamModule=le=class{static forFlavours(t,r="events"){return{module:le,controllers:[e.EventsController],imports:[d.RouterModule.register([{path:r.replace(/^\//,""),module:le}])],providers:[e.DecafRequestContext,{provide:pe,useValue:t??[]}]}}},e.DecafStreamModule=le=p.__decorate([a.Module({})],e.DecafStreamModule),e.DecafModule=ue=class{static async forRootAsync(t){const{autoControllers:r,autoServices:a,handlers:o}=t,s=(await ce.bootPersistence(t)).map(e=>e.flavour),i=[ce.forRoot(t)];return r&&s.forEach(e=>{i.push(re(e).forRoot(e,{autoServices:a,handlers:o}))}),t.observerOptions?.enableObserverEvents&&i.push(e.DecafStreamModule.forFlavours(s)),{module:ue,imports:i}}},e.DecafModule=ue=p.__decorate([a.Module({})],e.DecafModule);const me="##VERSION##",he="##PACKAGE##";t.Metadata.registerLibrary(he,me),e.AUTH_HANDLER=q,e.AUTH_META_KEY=N,e.ApiOperationFromModel=w,e.ApiParamsFromModel=D,e.ApiProperty=O,e.Auth=K,e.BulkApiOperationFromModel=(e,r,o)=>{const s={GET:[c.BulkCrudOperationKeys.READ_ALL,a.Get],POST:[c.BulkCrudOperationKeys.CREATE_ALL,a.Post],PUT:[c.BulkCrudOperationKeys.UPDATE_ALL,a.Put],PATCH:[c.BulkCrudOperationKeys.UPDATE_ALL,a.Patch],DELETE:[c.BulkCrudOperationKeys.DELETE_ALL,a.Delete]},[i,p]=s[r];return v(e,i)?t.apply(n.ApiExcludeEndpoint()):t.apply(p(o))},e.CorsError=ae,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=Y,e.DecafModelController=J,e.DecafParams=C,e.DecafQuery=x,e.DecafRoleAuthHandler=class extends B{constructor(){super()}async authorize(e,r){const a=e.switchToHttp().getRequest(),i=this.parseRequest(a);if(!i)throw new s.AuthorizationError("Unauthenticated");const n=t.Metadata.get(o.Model.get(r),s.PersistenceKeys.AUTH_ROLE);if(!n.includes(i))throw new s.AuthorizationError("Missing role: "+i);return n}},e.DtoFor=W,e.FromModelController=Z,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 ae(`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 ie(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=ee,e.SwaggerBuilder=ie,e.UseDecafFilter=()=>a.UseFilters(new e.DecafExceptionFilter),e.VERSION=me,e.createApiPropertyDecorator=R,e.createPropertyDecorator=b,e.getEnumType=P,e.getEnumValues=E,e.getModuleFor=re,e.isOperationBlocked=v,e.isUndefined=A,e.repoForModel=e=>{const t=o.Model.get(e);if(!t)throw new c.InternalError("Failed to find repository for "+e);return s.Repository.forModel(t)},e.requestToContextTransformer=te},"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("@decaf-ts/decoration"),require("@decaf-ts/injectable-decorators"),require("@nestjs/common"),require("@decaf-ts/decorator-validation"),require("@decaf-ts/core"),require("lodash"),require("@nestjs/swagger"),require("@decaf-ts/db-decorators"),require("tslib"),require("@nestjs/core"),require("@decaf-ts/logging"),require("fs"),require("path"),require("rxjs")):"function"==typeof define&&define.amd?define(["exports","@decaf-ts/decoration","@decaf-ts/injectable-decorators","@nestjs/common","@decaf-ts/decorator-validation","@decaf-ts/core","lodash","@nestjs/swagger","@decaf-ts/db-decorators","tslib","@nestjs/core","@decaf-ts/logging","fs","path","rxjs"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self)["for-nest"]={},e.decafTsDecoration,e.decafTsInjectableDecorators,e.nestjsCommon,e.decafTsDecoratorValidation,e.decafTsCore,e.lodash,e.nestjsSwagger,e.decafTsDbDecorators,e.tslib,e.nestjsCore,e.decafTsLogging,e.fs,e.path,e.rxjs);
|
|
2
2
|
//# sourceMappingURL=for-nest.cjs.map
|
package/dist/for-nest.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"for-nest.cjs","sources":["../src/overrides/constants.ts","../src/overrides/decoration.ts","../src/overrides/helpers.ts","../src/decaf-model/decorators/ApiOperationFromModel.ts","../src/decaf-model/decorators/ApiParamsFromModel.ts","../src/decaf-model/decorators/DecafBody.ts","../src/decaf-model/decorators/DecafParams.ts","../src/decaf-model/decorators/utils.ts","../src/constants.ts","../src/decaf-model/decorators/decorators.ts","../src/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","resolvePersistenceMethod","persistence","ModelService","statement","createRouteHandler","async","pathParams","queryParams","log","for","debug","JSON","stringify","direction","error","defineRouteMethod","ControllerClass","defineProperty","writable","getOwnPropertyDescriptor","DecafController","Service","clientContext","super","logCtx","operation","allowCreate","ContextualLoggedClass","call","DecafModelController","_persistence","getService","Repository","forModel","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","find","FIND","ASC","page","PAGE","ref","findOneBy","FIND_ONE_BY","findBy","FIND_BY","STATEMENT","pathDirection","a","parseInt","resolvedDirection","COUNT_OF","MAX_OF","MIN_OF","AVG_OF","SUM_OF","DISTINCT_OF","GROUP_OF","createAll","resp","CREATE_ALL","created","verbose","readAll","ids","READ_ALL","read","routeParams","id","ValidationError","updateAll","updated","update","payload","parse","deleteAll","DELETE_ALL","delete","del","Param","ApiNotFoundResponse","ApiBody","schema","$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","resolvePersistenceMethod","persistence","ModelService","statement","createRouteHandler","async","pathParams","queryParams","log","for","debug","JSON","stringify","direction","error","defineRouteMethod","ControllerClass","defineProperty","writable","getOwnPropertyDescriptor","DecafController","Service","clientContext","super","logCtx","operation","allowCreate","ContextualLoggedClass","call","DecafModelController","_persistence","getService","Repository","forModel","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","find","FIND","ASC","page","PAGE","ref","findOneBy","FIND_ONE_BY","findBy","FIND_BY","STATEMENT","pathDirection","a","parseInt","resolvedDirection","COUNT_OF","MAX_OF","MIN_OF","AVG_OF","SUM_OF","DISTINCT_OF","GROUP_OF","createAll","resp","CREATE_ALL","created","verbose","readAll","ids","READ_ALL","read","routeParams","id","ValidationError","updateAll","updated","update","payload","parse","deleteAll","DELETE_ALL","delete","del","Param","ApiNotFoundResponse","ApiBody","schema","$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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"}
|
package/dist/for-nest.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{Metadata as e,apply as t,metadata as r,Decoration as o,DecorationKeys as s}from"@decaf-ts/decoration";import{InjectablesKeys as i,DefaultInjectablesConfig as n}from"@decaf-ts/injectable-decorators";import{Get as a,Post as c,Put as p,Patch as d,Delete as l,applyDecorators as u,createParamDecorator as h,InternalServerErrorException as f,Injectable as m,Optional as y,Inject as g,SetMetadata as b,UseInterceptors as w,Scope as E,Query as A,Param as v,Response as P,Controller as O,Module as T,Catch as R,UseFilters as x,Logger as S,Global as $,Sse as _}from"@nestjs/common";import{Model as C,ValidationKeys as I}from"@decaf-ts/decorator-validation";import{AuthorizationError as k,PersistenceKeys as F,OrderDirection as D,ModelService as N,Service as L,ContextualLoggedClass as j,Repository as q,TransactionOperationKeys as M,Adapter as U,Context as B,PreparedStatementKeys as G,DefaultAdapterFlags as H,ForbiddenError as z,PersistenceService as Y}from"@decaf-ts/core";import{isArray as Q,isString as J,pickBy as X,negate as K}from"lodash";import{ApiExcludeEndpoint as V,ApiParam as W,ApiBearerAuth as Z,ApiQuery as ee,ApiOperation as te,ApiOkResponse as re,ApiNoContentResponse as oe,ApiNotFoundResponse as se,ApiBody as ie,getSchemaPath as ne,ApiCreatedResponse as ae,ApiBadRequestResponse as ce,ApiUnprocessableEntityResponse as pe,ApiTags as de,ApiExtraModels as le,DocumentBuilder as ue,SwaggerModule as he}from"@nestjs/swagger";import{OperationKeys as fe,BulkCrudOperationKeys as me,InternalError as ye,DBKeys as ge,ValidationError as be,BaseError as we}from"@decaf-ts/db-decorators";import{__decorate as Ee,__param as Ae,__metadata as ve}from"tslib";import{Reflector as Pe,APP_INTERCEPTOR as Oe,ModuleRef as Te,RouterModule as Re}from"@nestjs/core";import{toPascalCase as xe,Logging as Se,toKebabCase as $e,LoggedEnvironment as _e}from"@decaf-ts/logging";import{readFileSync as Ce}from"fs";import*as Ie from"path";import{Observable as ke}from"rxjs";const Fe="swagger",De={API_OPERATION:Fe+"/apiOperation",API_RESPONSE:Fe+"/apiResponse",API_PRODUCES:Fe+"/apiProduces",API_CONSUMES:Fe+"/apiConsumes",API_TAGS:Fe+"/apiUseTags",API_CALLBACKS:Fe+"/apiCallbacks",API_PARAMETERS:Fe+"/apiParameters",API_HEADERS:Fe+"/apiHeaders",API_MODEL_PROPERTIES:Fe+"/apiModelProperties",API_MODEL_PROPERTIES_ARRAY:Fe+"/apiModelPropertiesArray",API_SECURITY:Fe+"/apiSecurity",API_EXCLUDE_ENDPOINT:Fe+"/apiExcludeEndpoint",API_EXCLUDE_CONTROLLER:Fe+"/apiExcludeController",API_EXTRA_MODELS:Fe+"/apiExtraModels",API_EXTENSION:Fe+"/apiExtension",API_SCHEMA:Fe+"/apiSchema",API_DEFAULT_GETTER:Fe+"/apiDefaultGetter",API_LINK:Fe+"/apiLink"};function Ne(e,t){if(!e)return[e,t];if(t)return[e,t];const r=Q(e);return[r?e[0]:e,r]}const Le=e=>void 0===e;function je(e){if("function"==typeof e)return je(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 qe(e){return e.filter(J).length>0?"string":"number"}function Me(e,t,r=!0){return(o,s)=>{const i=Reflect.getMetadata(De.API_MODEL_PROPERTIES_ARRAY,o)||[],n=":"+s;i.includes(n)||Reflect.defineMetadata(De.API_MODEL_PROPERTIES_ARRAY,[...i,":"+s],o);const a=Reflect.getMetadata(e,o,s);if(a){const i=X(t,K(Le)),n=r?{...a,...i}:{...i,...a};Reflect.defineMetadata(e,n,o,s)}else{const r=o?.constructor?._OPENAPI_METADATA_FACTORY?.()[s]?.type??Reflect.getMetadata("design:type",o,s);Reflect.defineMetadata(e,{type:r,required:!1,...X(t,K(Le))},o,s)}}}function Ue(e={}){return Be(e)}function Be(e={},t=!0){const[r,o]=Ne(e.type,e.isArray);if((s=e={...e,type:r,isArray:o}).isArray&&"enum"in s&&void 0!==s.enum){e.type="array";const t=je(e.enum);e.items={type:qe(t),enum:t},delete e.enum}else if("enum"in e&&void 0!==e.enum){const t=je(e.enum);e.enum=t,e.type=qe(t)}var s;return Array.isArray(e.type)&&(e.type="array",e.items={type:"array",items:{type:e.type[0]}}),Me(De.API_MODEL_PROPERTIES,e,t)}function Ge(t,r){const{handler:o,args:s}=e.get(t,fe.REFLECT+fe.BLOCK)||{};return!!o&&(o(...s,r)??!1)}function He(e,r,o){const s={GET:[fe.READ,a],POST:[fe.CREATE,c],PUT:[fe.UPDATE,p],PATCH:[fe.UPDATE,d],DELETE:[fe.DELETE,l]},[i,n]=s[r];return Ge(e,i)?t(V()):t(n(o))}function ze(e,r,o){const s={GET:[me.READ_ALL,a],POST:[me.CREATE_ALL,c],PUT:[me.UPDATE_ALL,p],PATCH:[me.UPDATE_ALL,d],DELETE:[me.DELETE_ALL,l]},[i,n]=s[r];return Ge(e,i)?t(V()):t(n(o))}function Ye(e=[]){const t=e.map(e=>W({name:e.name,description:e.description??"Path parameter: "+e.name,required:e.required??!0,type:e.type??String}));return u(...t)}const Qe=h((e,t)=>{const r=t.switchToHttp().getRequest().body,o=t.getClass(),s=o.class;if(!s)throw new f(`ModelConstructor not found on controller ${o.name}. Ensure the controller was created via FromModelController.`);return r?Array.isArray(r)?r.map(e=>new s(e)):new s(r):r}),Je=h((e,t)=>{const r=t.switchToHttp().getRequest(),o=r?.params??{},s=e??Object.keys(o),i=s.map(e=>o[e]);return{raw:o,valuesInOrder:i,keysInOrder:s}});function Xe(e=[]){const t=e.map(e=>e.name);return Je(t)}const Ke=h((e,t)=>{const r={...t.switchToHttp().getRequest().query??{}};if(void 0!==r.limit){const e=Number(r.limit);Number.isNaN(e)||(r.limit=e)}if(void 0!==r.offset){const e=Number(r.offset);Number.isNaN(e)||(r.offset=e)}if(void 0!==r.bookmark){const e=Number(r.bookmark);r.bookmark=Number.isNaN(e)?r.bookmark:e}return r});function Ve(e){const t={GET:a,POST:c,PUT:p,PATCH:d,DELETE:l}[e];if(!t)throw Error(`Unsupported HTTP verb "${e}". No NestJS decorator mapping was found.`);return t}const We="DecafModuleOptions",Ze="DecafAdapter",et="DecafRoute",tt=Symbol("DecafHandlers"),rt=Symbol("DecafAdapterForOptions"),ot=Symbol("AUTH_HANDLER"),st="auth:meta",it=Symbol("decaf:context");let nt=class{constructor(e,t){this.reflector=e,this.authHandler=t}async intercept(e,t){const r=this.reflector.get(st,e.getHandler())??this.reflector.get(st,e.getClass());return r&&this.authHandler&&await this.authHandler.authorize(e,r),t.handle()}};function at(e){const t="string"==typeof e?e:e.name;return u(Z(),b(st,t),w(nt))}nt=Ee([m(),Ae(1,y()),Ae(1,g(ot)),ve("design:paramtypes",[Pe,Object])],nt);class ct{parseRequest(e){const t=e.headers.authorization?.split(" ")[1];return t}async authorize(t,r){const o=t.switchToHttp().getRequest(),s=this.parseRequest(o);if(!s)throw new k("Unauthenticated");if(!e.get(C.get(r),F.AUTH_ROLE).includes(s))throw new k("Missing role: "+s)}}class pt extends ct{constructor(){super()}async authorize(t,r){const o=t.switchToHttp().getRequest(),s=this.parseRequest(o);if(!s)throw new k("Unauthenticated");const i=e.get(C.get(r),F.AUTH_ROLE);if(!i.includes(s))throw new k("Missing role: "+s);return i}}let dt=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 ye("Context not initialized for request");return this._ctx}};dt=Ee([m({scope:E.REQUEST})],dt);let lt=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)}};lt=Ee([m({scope:E.REQUEST}),Ae(0,g(tt)),ve("design:paramtypes",[Array,dt])],lt);const ut=e=>({name:e,description:e+" parameter for the query",required:!0,type:String});function ht(e,t,r,o=!1){const s=Ve(r),i=(e=>e.split("/").filter(e=>e.startsWith(":")).map(e=>e.slice(1)))(t).map(ut),n=[];return"GET"===r&&o&&n.push(ee({name:"direction",required:!1,enum:D,description:"the sort order when applicable"}),ee({name:"limit",required:!1,description:"limit or page size when applicable"}),ee({name:"offset",required:!1,description:"offset or bookmark when applicable"})),{method:[s(t),...i.map(W),...n,te({summary:`Retrieve records using according to "${e}".`}),re({description:"Result successfully retrieved."}),oe({description:"No content returned by the method."})],params:[Xe(i),A()]}}function ft(e,t,r,o){const s=e?.prototype??e;o.method.forEach(e=>e(s,t,r)),o.params?.forEach((e,r)=>e(s,t,r))}function mt(e,t,...r){if(e instanceof N)return"function"==typeof e[t]?e[t](...r):e.statement(t,...r);if("function"==typeof e[t])return e[t](...r);throw Error(`Persistence method "${t}" not found on ${e?.constructor?.name}`)}function yt(e){return async function(t,r){const o=this.log.for(e);try{o.debug(`Invoking persistence method "${e}" given parameters: ${JSON.stringify(t.valuesInOrder)}`);const{direction:s,limit:i,offset:n}=r;return await mt(this.persistence(),e,...t.valuesInOrder,s,i,n)}catch(t){throw o.error(`Custom query "${e}" failed`,t),t}}}function gt(e,t,r){return Object.defineProperty(e.prototype||e,t,{value:r,writable:!1}),Object.getOwnPropertyDescriptor(e.prototype||e,t)}class bt extends L{constructor(e,t){super(t),this.clientContext=e}logCtx(e,t,r=!1,o){const s=this.clientContext.ctx;return e=e.filter(e=>void 0!==e),j.logCtx.call(this,t,o||{},r,...e,s)}}class wt extends bt{persistence(e){if(!this._persistence)try{this._persistence=N.getService(this.class)}catch(e){try{this._persistence=L.get(this.class.name)}catch(e){this._persistence=q.forModel(this.class)}}return e?this._persistence instanceof q?this._persistence.override(e.toOverrides()):this._persistence.for(e.toOverrides()):this._persistence}constructor(e,t){super(e,t)}logCtx(e,t,r=!1){const o=this.clientContext.ctx;let s={};try{s=o.get("overrides")}catch(e){}const i=this.persistence(o);let n,a;return i instanceof N?n=i.repo.adapter:i instanceof q?n=i.adapter:i.context&&(n=i),r?n.logCtx(e,t,!0,s).then(e=>e):(a=n.logCtx(e,t,!1,s),a)}}const Et=new Map;function At(t,r){if(!M.includes(t))return r;const o=(e=>(Et.has(e)||Et.set(e,new WeakMap),Et.get(e)))(t),s=o.get(r);if(s)return s;const i=(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 e of i)C.isModel(e)&&At(t,e);const n=i.at(-1),a=n&&C.isModel(n)?o.get(n)||At(t,n):C;class c extends a{}o.set(r,c),Object.defineProperty(c,"name",{value:`${xe(r.name)}${xe(t)}DTO`});const p=e.properties(r)||[],d=e.get(r,F.CREATED_BY),l=e.get(r,F.UPDATED_BY),u=[...Object.keys(d||{}),...Object.keys(l||{})],h=["createdBy","updatedBy"].filter(e=>p.includes(e)),f=Array.from(new Set([...u,...h])),m=Array.from(new Set([...p,...f])),y=(e=>C.relations(e)||[])(r),g=new Set(y),b=m.filter(e=>((e,t)=>{let r=e;for(;r&&r!==Object&&r!==Function;){if(C.generated(r,t))return!0;r=Object.getPrototypeOf(r)}return!1})(r,e)),w=new Set([...b,...f]),E=(()=>{try{return C.pk(r)}catch{return}})(),A=[fe.UPDATE,me.UPDATE_ALL].includes(t),v=m.filter(e=>!g.has(e)&&(!w.has(e)||A&&e===E));for(const t of v){const o=e.validationFor(r,t),s=!!o?.[I.REQUIRED],i=e.type(r,t),n={required:s};i&&(n.type=i),Ue(n)(c.prototype,t);const a=Reflect.getMetadata("design:type",r.prototype,t)??i;void 0!==a&&Reflect.defineMetadata("design:type",a,c.prototype,t),Object.defineProperty(c.prototype,t,{value:void 0,writable:!0,enumerable:!0,configurable:!0})}function P(e,t,r,o){Ue({type:t,required:o,isArray:r})(c.prototype,e),Object.defineProperty(c.prototype,e,{value:void 0,writable:!0,enumerable:!0,configurable:!0}),Reflect.defineMetadata("design:type",r?Array:t,c.prototype,e)}for(const o of y){const s=e.relations(r,o);if(!s)throw new ye(`Metadata for relation ${o} not found`);let i=s.class;if("function"!=typeof i||i.name||(i=i()),!i||"function"!=typeof i)throw new ye(`Type for relation ${o} not found`);if(!C.get(i.name))continue;const n=e.validationFor(r,o);P(o,At(t,i),!!n[I.LIST],!!n[I.REQUIRED])}return c}U.transformerFor=(t=>{const r="string"==typeof t?t:t.alias;return e.innerGet(Symbol.for("transformers"),r)}).bind(U),U.flavoursToTransform=(()=>{const t=e.innerGet(Symbol.for("transformers"));if(t)return Object.keys(t)}).bind(U),B.prototype.toResponse=function(e){const t=this.pending();return t&&e.header("x-pending-task",JSON.stringify(t)),e};class vt{static{this.log=Se.for(vt.name)}static getPersistence(e){try{return N.getService(e)}catch(t){return q.forModel(e)}}static createQueryRoutesFromRepository(t,r=F.QUERY){const o=vt.log.for(vt.createQueryRoutesFromRepository),s=t instanceof N?t.repo:t,i=s.class,n=e.get(s.constructor,e.key(F.QUERY))??{},a=e.get(t.constructor,e.key(et))??{};class c extends wt{get class(){throw Error("Method not implemented.")}constructor(e,t){super(e,t)}}for(const[e,t]of Object.entries(a)){const r=[t.path.replace(/^\/+|\/+$/g,"")].filter(e=>e&&e.trim()).join("/"),s=yt(e);if(!s){const t=`Invalid or missing handler for model ${i.name} on decorated method ${e}`;throw o.error(t),Error(t)}const n=gt(c,e,s);n&&ft(c,e,n,ht(e,r,t.httpMethod))}for(const[e,t]of Object.entries(n)){const o=[r,e,...(t.fields??[]).map(e=>":"+e)].filter(e=>e&&e.trim()).join("/"),s=gt(c,e,yt(e));s&&ft(c,e,s,ht(e,o,"GET",!0))}return c}static create(e){const t=vt.log.for(vt.create),r=C.tableName(e),o=$e(r),s=e.name,i=vt.getPersistence(e),{description:n,getPK:a,apiProperties:c,path:p}=vt.getRouteParametersFromModel(e);t.debug("Creating controller for model: "+s);const d=vt.createQueryRoutesFromRepository(i);let l=class extends d{static get class(){return e}get class(){return e}constructor(r){super(r),this.pk=C.pk(e),t.info(`Registering dynamic controller for model: ${this.class.name} route: /${o}`)}async listBy(e,t){const{ctx:r}=(await this.logCtx([],G.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([],G.PAGE_BY,!0)).for(this.paginateBy);return this.persistence(r).paginateBy(e,t.direction,t,r)}async find(e,t){const{ctx:r}=(await this.logCtx([],G.FIND,!0)).for(this.find),o=t.direction??D.ASC;return mt(this.persistence(r),this.find.name,e,o,r)}async page(e,t){const{ctx:r}=(await this.logCtx([],G.PAGE,!0)).for(this.page),{direction:o=D.ASC,limit:s,offset:i,bookmark:n}=t,a={offset:i??1,limit:s??10,bookmark:n};return mt(this.persistence(r),this.page.name,e,o,a,r)}async findOneBy(e,t){const{ctx:r}=(await this.logCtx([],G.FIND_ONE_BY,!0)).for(this.findOneBy);return this.persistence(r).findOneBy(e,t,r)}async findBy(e,t,r){const{ctx:o}=(await this.logCtx([],G.FIND_BY,!0)).for(this.findBy);return this.persistence(o).for(o.toOverrides()).findBy(e,t,o)}async statement(e,t,r){const{ctx:o}=(await this.logCtx([],F.STATEMENT,!0)).for(this.statement),{direction:s,offset:i,limit:n,bookmark:a}=r,c=(t=t.map(e=>("string"==typeof e?parseInt(e):e)||e)).length>1?t[1]:void 0,p=s??c;switch(p&&t.length>1&&(t[1]=p),e){case G.FIND:case G.FIND_BY:break;case G.LIST_BY:t.push(s);break;case G.PAGE:case G.PAGE_BY:t=[t[0],p,{limit:n,offset:i,bookmark:a}];case G.FIND_ONE_BY:case G.COUNT_OF:case G.MAX_OF:case G.MIN_OF:case G.AVG_OF:case G.SUM_OF:case G.DISTINCT_OF:case G.GROUP_OF:}return this.persistence(o).statement(e,...t,o)}async createAll(t,r){const{ctx:o,log:i}=(await this.logCtx([],me.CREATE_ALL,!0)).for(this.createAll);let n;i.verbose("creating new "+s);try{n=await this.persistence(o).createAll(t.map(t=>new e(t)),o)}catch(e){throw i.error("Failed to create new "+s,e),e}return i.info(`created new ${s} with id ${n[this.pk]}`),o.toResponse(r),n}async create(e,t){const{ctx:r,log:o}=(await this.logCtx([],fe.CREATE,!0)).for(this.create);let i;o.verbose("creating new "+s);try{const t=this.persistence(r);i=await t.create(e,r)}catch(e){throw o.error("Failed to create new "+s,e),e}return o.info(`created new ${s} with id ${i[this.pk]}`),r.toResponse(t),i}async readAll(e){const{ctx:t,log:r}=(await this.logCtx([],me.READ_ALL,!0)).for(this.readAll);let o;try{r.debug(`reading ${e.length} ${s}: ${e}`);const i=this.persistence(t);o=await i.readAll(e,t)}catch(t){throw r.error(`Failed to ${s} with id ${e}`,t),t}return r.info(`read ${o.length} ${s}`),o}async read(e){const{ctx:t,log:r}=(await this.logCtx([],fe.READ,!0)).for(this.read),o=a(...e.valuesInOrder);if(void 0===o)throw new be(`No ${this.pk} provided`);let i;try{r.debug(`reading ${s} with ${this.pk} ${o}`);const e=this.persistence(t);i=await e.read(o,t)}catch(e){throw r.error(`Failed to read ${s} with id ${o}`,e),e}return r.info(`read ${s} with id ${i[this.pk]}`),i}async updateAll(e,t){const{ctx:r,log:o}=(await this.logCtx([],me.UPDATE_ALL,!0)).for(this.updateAll);let i;try{o.info(`updating ${e.length} ${s}`),i=await this.persistence(r).updateAll(e,r)}catch(e){throw o.error(e),e}return r.toResponse(t),i}async update(t,r,o){const{ctx:i,log:n}=(await this.logCtx([],fe.UPDATE,!0)).for(this.update),c=a(...t.valuesInOrder);if(void 0===c)throw new be(`No ${this.pk} provided`);let p;try{n.info(`updating ${s} with ${this.pk} ${c}`);const t=JSON.parse(JSON.stringify(r)),o=this.persistence(i);p=await o.update(new e({...t,[this.pk]:c}),i)}catch(e){throw n.error(e),e}return i.toResponse(o),p}async deleteAll(e,t){const{ctx:r,log:o}=(await this.logCtx([],me.DELETE_ALL,!0)).for(this.deleteAll);let i;try{o.debug(`deleting ${e.length} ${s}: ${e}`),i=await this.persistence(r).deleteAll(e,r)}catch(t){throw o.error(`Failed to delete ${s} with id ${e}`,t),t}return o.info(`deleted ${i.length} ${s}`),r.toResponse(t),i}async delete(e,t){const{ctx:r,log:o}=(await this.logCtx([],fe.DELETE,!0)).for(this.delete),i=a(...e.valuesInOrder);if(void 0===i)throw new be(`No ${this.pk} provided`);let n;try{o.debug(`deleting ${s} with ${this.pk} ${i}`),n=await this.persistence(r).delete(i,r)}catch(e){throw o.error(`Failed to delete ${s} with id ${i}`,e),e}return o.info(`deleted ${s} with id ${i}`),r.toResponse(t),n}};return Ee([He(e,"GET","listBy/:key"),te({summary:`Retrieve ${s} records by query.`}),W({name:"key",description:"the model key to sort by"}),ee({name:"direction",required:!0,enum:D}),re({description:s+" listed successfully."}),Ae(0,v("key")),Ae(1,Ke()),ve("design:type",Function),ve("design:paramtypes",[String,Object]),ve("design:returntype",Promise)],l.prototype,"listBy",null),Ee([He(e,"GET","paginateBy/:key/:page"),te({summary:`Retrieve ${s} records by query.`}),W({name:"key",description:"the model key to sort by"}),W({name:"page",description:"the page to retrieve or the bookmark"}),ee({name:"direction",required:!0,enum:D,description:"the sort order"}),ee({name:"limit",required:!0,description:"the page size"}),ee({name:"offset",description:"the bookmark when necessary"}),re({description:s+" listed paginated."}),Ae(0,v("key")),Ae(1,Ke()),ve("design:type",Function),ve("design:paramtypes",[String,Object]),ve("design:returntype",Promise)],l.prototype,"paginateBy",null),Ee([He(e,"GET","find/:value"),te({summary:`Find ${s} records using the default query attributes.`}),W({name:"value",description:"The string to match against the default query attributes"}),ee({name:"direction",required:!1,enum:D,description:"the sort order for the matching results"}),re({description:s+" records matching the provided prefix."}),Ae(0,v("value")),Ae(1,Ke()),ve("design:type",Function),ve("design:paramtypes",[String,Object]),ve("design:returntype",Promise)],l.prototype,"find",null),Ee([He(e,"GET","page/:value"),te({summary:`Page ${s} records using the default query attributes.`}),W({name:"value",description:"The string to match against the default query attributes"}),ee({name:"direction",required:!1,enum:D,description:"the sort order for the paged results"}),ee({name:"limit",required:!1,description:"page size"}),ee({name:"offset",required:!1,description:"page number"}),ee({name:"bookmark",required:!1,description:"bookmark for cursor pagination"}),re({description:s+" records paged by the provided prefix."}),Ae(0,v("value")),Ae(1,Ke()),ve("design:type",Function),ve("design:paramtypes",[String,Object]),ve("design:returntype",Promise)],l.prototype,"page",null),Ee([He(e,"GET","findOneBy/:key"),te({summary:`Retrieve ${s} records by query.`}),W({name:"key",description:"the model key to sort by"}),re({description:s+" listed found."}),se({description:`No ${s} record matches the provided identifier.`}),Ae(0,v("key")),Ae(1,v("value")),ve("design:type",Function),ve("design:paramtypes",[String,Object]),ve("design:returntype",Promise)],l.prototype,"findOneBy",null),Ee([He(e,"GET","findBy/:key/:value"),te({summary:`Retrieve ${s} records by query.`}),W({name:"key",description:"the model key to compare"}),W({name:"value",description:"the value to match"}),ee({name:"direction",required:!0,enum:D,description:"the sort order when applicable"}),re({description:s+" listed found."}),se({description:`No ${s} record matches the provided identifier.`}),Ae(0,v("key")),Ae(1,v("value")),Ae(2,Ke()),ve("design:type",Function),ve("design:paramtypes",[String,Object,Object]),ve("design:returntype",Promise)],l.prototype,"findBy",null),Ee([He(e,"GET","statement/:method/*args"),te({summary:`Executes a prepared statement on ${s}.`}),W({name:"method",description:"the prepared statement to execute"}),W({name:"args",description:"concatenated list of arguments the prepared statement can accept"}),ee({name:"direction",required:!0,enum:D,description:"the sort order when applicable"}),ee({name:"limit",required:!0,description:"limit or page size when applicable"}),ee({name:"offset",required:!0,description:"offset or bookmark when applicable"}),re({description:s+" listed found."}),se({description:`No ${s} record matches the provided identifier.`}),Ae(0,v("method")),Ae(1,v("args")),Ae(2,Ke()),ve("design:type",Function),ve("design:paramtypes",[String,Array,Object]),ve("design:returntype",Promise)],l.prototype,"statement",null),Ee([He(e,"POST","bulk"),te({summary:`Create a new ${s}.`}),ie({description:"Payload for "+s,schema:{type:"array",items:{$ref:ne(e)}}}),ae({description:s+" created successfully.",schema:{type:"array",items:{$ref:ne(e)}}}),ce({description:"Payload validation failed."}),pe({description:"Repository rejected the provided payload."}),Ae(0,Qe()),Ae(1,P({passthrough:!0})),ve("design:type",Function),ve("design:paramtypes",[Array,Object]),ve("design:returntype",Promise)],l.prototype,"createAll",null),Ee([He(e,"POST"),te({summary:`Create a new ${s}.`}),ie({description:"Payload for "+s,type:At(fe.CREATE,e)}),ae({description:s+" created successfully.",schema:{$ref:ne(e)}}),ce({description:"Payload validation failed."}),pe({description:"Repository rejected the provided payload."}),Ae(0,Qe()),Ae(1,P({passthrough:!0})),ve("design:type",Function),ve("design:paramtypes",[Object,Object]),ve("design:returntype",Promise)],l.prototype,"create",null),Ee([He(e,"GET","bulk"),te({summary:`Retrieve a ${s} record by id.`}),ee({name:"ids",required:!0,type:"array"}),re({description:s+" retrieved successfully.",schema:{type:"array",items:{$ref:ne(e)}}}),se({description:`No ${s} record matches the provided identifier.`}),Ae(0,A("ids")),ve("design:type",Function),ve("design:paramtypes",[Array]),ve("design:returntype",Promise)],l.prototype,"readAll",null),Ee([He(e,"GET",p),Ye(c),te({summary:`Retrieve a ${s} record by id.`}),re({description:s+" retrieved successfully.",schema:{$ref:ne(e)}}),se({description:`No ${s} record matches the provided identifier.`}),Ae(0,Xe(c)),ve("design:type",Function),ve("design:paramtypes",[Object]),ve("design:returntype",Promise)],l.prototype,"read",null),Ee([He(e,"PUT","bulk"),Ye(c),te({summary:`Replace an existing ${s} record with a new payload.`}),ie({description:"Payload for replace a existing record of "+s,schema:{type:"array",$ref:ne(At(fe.UPDATE,e))}}),re({description:s+" updated successfully.",schema:{type:"array",items:{$ref:ne(e)}}}),se({description:`No ${s} record matches the provided identifier.`}),ce({description:"Payload validation failed."}),Ae(0,Qe()),Ae(1,P({passthrough:!0})),ve("design:type",Function),ve("design:paramtypes",[Array,Object]),ve("design:returntype",Promise)],l.prototype,"updateAll",null),Ee([He(e,"PUT",p),Ye(c),te({summary:`Replace an existing ${s} record with a new payload.`}),ie({description:"Payload for replace a existing record of "+s,type:At(fe.UPDATE,e)}),re({description:s+" updated successfully.",schema:{$ref:ne(e)}}),se({description:`No ${s} record matches the provided identifier.`}),ce({description:"Payload validation failed."}),Ae(0,Xe(c)),Ae(1,Qe()),Ae(2,P({passthrough:!0})),ve("design:type",Function),ve("design:paramtypes",[Object,Object,Object]),ve("design:returntype",Promise)],l.prototype,"update",null),Ee([He(e,"DELETE","bulk"),Ye(c),te({summary:`Retrieve a ${s} record by id.`}),ee({name:"ids",required:!0,type:"array"}),re({description:s+" deleted successfully.",schema:{type:"array",items:{$ref:ne(e)}}}),se({description:`No ${s} record matches the provided identifier.`}),Ae(0,A("ids")),Ae(1,P({passthrough:!0})),ve("design:type",Function),ve("design:paramtypes",[Array,Object]),ve("design:returntype",Promise)],l.prototype,"deleteAll",null),Ee([He(e,"DELETE",p),Ye(c),te({summary:`Delete a ${s} record by id.`}),re({description:s+" deleted successfully.",schema:{$ref:ne(e)}}),se({description:`No ${s} record matches the provided identifier.`}),Ae(0,Xe(c)),Ae(1,P({passthrough:!0})),ve("design:type",Function),ve("design:paramtypes",[Object,Object]),ve("design:returntype",Promise)],l.prototype,"delete",null),l=Ee([O(o),de(s),le(e),at(e),ve("design:paramtypes",[dt])],l),l}static getRouteParametersFromModel(t){const r=C.pk(t),o=e.get(t,e.key(ge.COMPOSED,r)),s=o?.args??[],i=Array.isArray(s)&&s.length>0?Array.from(new Set([...s])):Array.from(new Set([r])),n=e.description(t);return{path:":"+i.join("/:"),description:n,apiProperties:i.map(r=>({name:r,description:e.description(t,r),required:!0,type:String})),getPK:(...e)=>o?.separator?e.join(o.separator):e.join("")}}}let Pt=class{constructor(e,t){this.requestContext=e,this.executor=t}async contextualize(e){const t={headers:e.headers,overrides:{}},r=U.flavoursToTransform();if(r)for(const o of r)try{const r=U.transformerFor(o),s=await r.from(e);Object.assign(t.overrides,s)}catch(e){throw new ye("Failed to contextualize request: "+e)}return(new B).accumulate(Object.assign({},H,{logger:Se.get(),timestamp:new Date},t))}async intercept(e,t){const r=e.switchToHttp().getRequest(),o=e.switchToHttp().getResponse(),s=await this.contextualize(r);return this.requestContext.applyCtx(s),await this.executor.exec(r,o),t.handle()}};Pt=Ee([m({scope:E.REQUEST}),ve("design:paramtypes",[dt,lt])],Pt);class Ot{}function Tt(t){return o=>(e.set("transformers",t,o),"function"==typeof o?r("transformers",t)(o):o)}function Rt(e){var t;let r=class{static{t=this}static{this.log=Se.for(t.name).for(e)}static createModelServices(e){return e.map(e=>({provide:e.name+"Service",useFactory:()=>N.forModel(e)}))}static forRoot(e,r={}){const o=this.log.for(this.forRoot);o.info("Generating controllers for flavour...");const s=U.models(e);let i=[];r.autoServices&&(o.info("Auto-services enabled. Initializing service generation."),i=this.createModelServices(s),o.info(`Auto-services completed. ${i.length} services initialized.`));const n=s.map(vt.create);return o.info(`Generated ${n.length} controllers`),{module:t,controllers:n,providers:[{provide:tt,useFactory:()=>r.handlers?.map(e=>(o.info("Registered request handler: "+e.name),new e))??[]},dt,lt,{provide:Oe,useClass:Pt},...i]}}};return r=t=Ee([T({})],r),Object.assign(r,"name",{value:"DecafModule"+e}),r}o.for(i.INJECTABLE).extend({decorator:(e,t)=>(t=t||("object"==typeof e?Object.assign(e,n):n),m({scope:t.singleton?E.DEFAULT:E.REQUEST,durable:!t.singleton||void 0}))}).apply(),o.for(i.INJECT).extend({decorator:(e,t)=>(t,r,o)=>g(e||t)(t,r,o)}).apply(),o.for(I.REQUIRED).extend(Ue({required:!0})).apply(),o.for(I.MAX).extend({decorator:e=>Ue({maximum:e,required:!1})}).apply(),o.for(I.MIN).extend({decorator:e=>Ue({minimum:e,required:!1})}).apply(),o.for(I.MAX_LENGTH).extend({decorator:e=>Ue({maxLength:e,required:!1})}).apply(),o.for(I.MIN_LENGTH).extend({decorator:e=>Ue({minLength:e,required:!1})}).apply(),o.for(I.TYPE).extend({decorator:e=>(t,r)=>("function"!=typeof(e=Array.isArray(e)?e[0]:e)||e.name||(e=e()),Ue({type:e,required:!1})(t,r))}).apply(),o.for(I.DATE).extend({decorator:e=>Ue({type:String,format:"date-time",required:!1})}).apply(),o.for(I.ENUM).extend({decorator:e=>Ue({enum:Array.isArray(e)?e:Object.values(e),required:!1})}).apply(),o.for(I.PATTERN).extend({decorator:e=>Ue({pattern:"string"==typeof e?e:e.source,required:!1})}).apply(),o.for(F.COLUMN).extend({decorator:e=>Ue({name:e,required:!1})}).apply(),o.for(s.DESCRIPTION).extend({decorator:e=>Ue({description:e,required:!1})}).apply(),o.for(F.AUTH).extend({decorator:at}).apply();class xt extends z{constructor(e){super(e,xt.name)}}let St=class{catch(e,t){const r=t.switchToHttp(),o=r.getResponse(),s=r.getRequest(),i="production"===_e.env;e instanceof we||(e=new ye(e.message)),o.status(e.code).json({status:e.code,error:i?e.name:e.message,timestamp:(new Date).toISOString(),path:s.url,method:s.method})}};function $t(){return x(new St)}St=Ee([R()],St);const _t={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 Ct{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||_t.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=Ie.join(this.options.assetsPath||"",e),o=Ce(r,{encoding:"base64"});return t?"data:image/png;base64,"+o:o}}class It{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 ue).setTitle(this.options.title).setDescription(e).setVersion(this.options.version||"0.0.1").addBearerAuth(this.options.auth||_t.auth).build();return he.createDocument(this.app,t,{extraModels:this.options.extraModels||[]})}setupSwagger(){const e=this.createDocument(),t=new Ct({title:this.options.title,path:this.options.path||_t.path,persistAuthorization:this.options.persistAuthorization??!0,assetsPath:this.options.assetsPath,faviconPath:this.options.faviconFilePath,topbarIconPath:this.options.topbarIconFilePath,topbarBgColor:this.options.topbarBgColor});he.setup(this.options.path||_t.path,this.app,e,{...t.getCustomOptions()})}}class kt{static get logger(){return this._logger||(this._logger=new S("NestBootstrap")),this._logger}static initialize(e){return this.app=e,this}static enableLogger(e){return this._logger=e||new S("NestBootstrap"),this.app.useLogger(this._logger),this}static enableCors(e=[],t=["GET","POST","PUT","DELETE"]){const r="*"===e?"*":e.map(e=>e.trim().toLowerCase()),o={origin:(e,t)=>e?"*"===r||Array.isArray(r)&&r.includes(e.toLowerCase())?t(null,!0):void t(new xt(`Origin ${e} not allowed`)):t(null,!0),credentials:!0,methods:t.join(",")};return this.app.enableCors(o),this}static useHelmet(e){try{const t=require("helmet");this.app.use(t(e)),this.logger.log("Helmet middleware enabled successfully.")}catch(e){this.logger.warn("Helmet not installed. Skipping middleware.")}return this}static setupSwagger(e){return new It(this.app,{title:e.title,description:e.description,version:e.version,path:e.path||"api",persistAuthorization:e.persistAuthorization??!0,assetsPath:e.assetsPath,faviconFilePath:e.faviconPath,topbarIconFilePath:e.topbarIconPath,topbarBgColor:e.topbarBgColor}).setupSwagger(),this}static useGlobalPipes(...e){return e.length>0&&this.app.useGlobalPipes(...e),this}static useGlobalFilters(...e){return this.app.useGlobalFilters(...e.length>0?e:[new St]),this}static useGlobalInterceptors(...e){return e.length>0&&this.app.useGlobalInterceptors(...e),this}static async start(e=Number(process.env.PORT)||3e3,t=void 0,r=!0){this.app.listen(e,t).then(async()=>{if(r){const e=await this.app.getUrl();this.logger.log("\ud83d\ude80 Application is running at: "+e)}})}}var Ft;let Dt=class{static{Ft=this}static get persistence(){if(!this._persistence)throw new ye("Persistence service not initialized");return this._persistence}static get log(){return this._logger||(this._logger=Se.for(Ft)),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 Y,await this._persistence.boot(r);const o=this._persistence.client;for(let t=0;t<o.length;t++){const r=e.conf[t];let[,,s]=r;if(!s){const e=U.transformerFor(o[t].flavour);if(!e)throw new ye(`No transformer found for flavour ${o[t].flavour}. you should either @requestToContextTransformer or provide a transformer in the config`);s=e instanceof Ot?e:new e}Tt(o[t].flavour)(s)}t.info("persistence layer created successfully!")}return this.persistence.client}static forRoot(e){const t={provide:We,useValue:e},r={useFactory:async e=>Ft.bootPersistence(e),provide:Ze,durable:!0,scope:E.DEFAULT,inject:[We]};return{module:Ft,providers:[r,t],exports:[r]}}async onApplicationShutdown(){const e=Ft.log.for(this.onApplicationShutdown),t=this.moduleRef.get(Ze);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)}}};Dt=Ft=Ee([$(),T({}),Ae(0,g(We)),ve("design:paramtypes",[Object,Te])],Dt);const Nt=Symbol("LISTENING_ADAPTERS_FLAVOURS");var Lt;let jt=Lt=class extends bt{constructor(e,t){super(e,Lt.name),this.adapters=t.map(e=>U.get(e))}listen(){const e=Se.for(Lt.name);return new ke(t=>{const r=new class{refresh(...e){return Promise.resolve().then(()=>{const r=(e=>{const[t,r,o,s]=e;return[t?.name??t,r,o,Array.isArray(s)?s.map(e=>e.serialize()):s?.serialize()]})(e);t.next({data:r})})}};try{for(const e of this.adapters)e.observe(r)}catch(e){t.error("Failed to observe event: "+(e.message||e))}return()=>{try{for(const e of this.adapters)e.unObserve(r)}catch(t){e.error(t)}}})}listenForModel(e){const t=Se.for(Lt.name);return new ke(e=>{const r=new class{refresh(...t){return Promise.resolve().then(()=>{e.next({data:t})})}};try{for(const e of this.adapters)e.observe(r)}catch(t){e.error("Failed to observe event: "+(t.message||t))}return()=>{try{for(const e of this.adapters)e.unObserve(r)}catch(e){t.error(e)}}})}};var qt;Ee([_(),ve("design:type",Function),ve("design:paramtypes",[]),ve("design:returntype",ke)],jt.prototype,"listen",null),Ee([_("/:model"),Ae(0,A("model")),ve("design:type",Function),ve("design:paramtypes",[String]),ve("design:returntype",ke)],jt.prototype,"listenForModel",null),jt=Lt=Ee([O(),Ae(1,g(Nt)),ve("design:paramtypes",[dt,Array])],jt);let Mt=qt=class{static forFlavours(e,t="events"){return{module:qt,controllers:[jt],imports:[Re.register([{path:t.replace(/^\//,""),module:qt}])],providers:[dt,{provide:Nt,useValue:e??[]}]}}};var Ut;Mt=qt=Ee([T({})],Mt);let Bt=Ut=class{static async forRootAsync(e){const{autoControllers:t,autoServices:r,handlers:o}=e,s=(await Dt.bootPersistence(e)).map(e=>e.flavour),i=[Dt.forRoot(e)];return t&&s.forEach(e=>{i.push(Rt(e).forRoot(e,{autoServices:r,handlers:o}))}),e.observerOptions?.enableObserverEvents&&i.push(Mt.forFlavours(s)),{module:Ut,imports:i}}};function Gt(e){const t=C.get(e);if(!t)throw new ye("Failed to find repository for "+e);return q.forModel(t)}Bt=Ut=Ee([T({})],Bt);const Ht="##VERSION##",zt="##PACKAGE##";e.registerLibrary(zt,Ht);export{ot as AUTH_HANDLER,st as AUTH_META_KEY,He as ApiOperationFromModel,Ye as ApiParamsFromModel,Ue as ApiProperty,at as Auth,nt as AuthInterceptor,ze as BulkApiOperationFromModel,xt as CorsError,Ze as DECAF_ADAPTER_ID,rt as DECAF_ADAPTER_OPTIONS,it as DECAF_CONTEXT_KEY,tt as DECAF_HANDLERS,We as DECAF_MODULE_OPTIONS,et as DECAF_ROUTE,De as DECORATORS,Fe as DECORATORS_PREFIX,ct as DecafAuthHandler,Qe as DecafBody,bt as DecafController,St as DecafExceptionFilter,lt as DecafHandlerExecutor,wt as DecafModelController,Bt as DecafModule,Xe as DecafParams,Ke as DecafQuery,dt as DecafRequestContext,Pt as DecafRequestHandlerInterceptor,pt as DecafRoleAuthHandler,Mt as DecafStreamModule,At as DtoFor,jt as EventsController,vt as FromModelController,Ve as HttpVerbToDecorator,kt as NestBootstraper,zt as PACKAGE_NAME,Ot as RequestToContextTransformer,It as SwaggerBuilder,$t as UseDecafFilter,Ht as VERSION,Be as createApiPropertyDecorator,Me as createPropertyDecorator,qe as getEnumType,je as getEnumValues,Rt as getModuleFor,Ge as isOperationBlocked,Le as isUndefined,Gt as repoForModel,Tt as requestToContextTransformer};
|
|
1
|
+
import{Metadata as e,apply as t,metadata as r,Decoration as o,DecorationKeys as s}from"@decaf-ts/decoration";import{InjectablesKeys as i,DefaultInjectablesConfig as n}from"@decaf-ts/injectable-decorators";import{Get as a,Post as c,Put as p,Patch as d,Delete as l,applyDecorators as u,createParamDecorator as h,InternalServerErrorException as f,Injectable as m,Optional as y,Inject as g,SetMetadata as b,UseInterceptors as w,Scope as E,Query as A,Param as v,Response as P,Controller as O,Module as T,Catch as R,UseFilters as x,Logger as S,Global as $,Sse as _}from"@nestjs/common";import{Model as C,ValidationKeys as I}from"@decaf-ts/decorator-validation";import{AuthorizationError as k,PersistenceKeys as F,OrderDirection as D,ModelService as N,Service as L,ContextualLoggedClass as j,Repository as q,TransactionOperationKeys as M,Adapter as U,Context as B,PreparedStatementKeys as G,DefaultAdapterFlags as H,ForbiddenError as z,PersistenceService as Y}from"@decaf-ts/core";import{isArray as Q,isString as J,pickBy as X,negate as K}from"lodash";import{ApiExcludeEndpoint as V,ApiParam as W,ApiBearerAuth as Z,ApiQuery as ee,ApiOperation as te,ApiOkResponse as re,ApiNoContentResponse as oe,ApiNotFoundResponse as se,ApiBody as ie,getSchemaPath as ne,ApiCreatedResponse as ae,ApiBadRequestResponse as ce,ApiUnprocessableEntityResponse as pe,ApiTags as de,ApiExtraModels as le,DocumentBuilder as ue,SwaggerModule as he}from"@nestjs/swagger";import{OperationKeys as fe,BulkCrudOperationKeys as me,InternalError as ye,DBKeys as ge,ValidationError as be,BaseError as we}from"@decaf-ts/db-decorators";import{__decorate as Ee,__param as Ae,__metadata as ve}from"tslib";import{Reflector as Pe,APP_INTERCEPTOR as Oe,ModuleRef as Te,RouterModule as Re}from"@nestjs/core";import{toPascalCase as xe,Logging as Se,toKebabCase as $e,LoggedEnvironment as _e}from"@decaf-ts/logging";import{readFileSync as Ce}from"fs";import*as Ie from"path";import{Observable as ke}from"rxjs";const Fe="swagger",De={API_OPERATION:Fe+"/apiOperation",API_RESPONSE:Fe+"/apiResponse",API_PRODUCES:Fe+"/apiProduces",API_CONSUMES:Fe+"/apiConsumes",API_TAGS:Fe+"/apiUseTags",API_CALLBACKS:Fe+"/apiCallbacks",API_PARAMETERS:Fe+"/apiParameters",API_HEADERS:Fe+"/apiHeaders",API_MODEL_PROPERTIES:Fe+"/apiModelProperties",API_MODEL_PROPERTIES_ARRAY:Fe+"/apiModelPropertiesArray",API_SECURITY:Fe+"/apiSecurity",API_EXCLUDE_ENDPOINT:Fe+"/apiExcludeEndpoint",API_EXCLUDE_CONTROLLER:Fe+"/apiExcludeController",API_EXTRA_MODELS:Fe+"/apiExtraModels",API_EXTENSION:Fe+"/apiExtension",API_SCHEMA:Fe+"/apiSchema",API_DEFAULT_GETTER:Fe+"/apiDefaultGetter",API_LINK:Fe+"/apiLink"};function Ne(e,t){if(!e)return[e,t];if(t)return[e,t];const r=Q(e);return[r?e[0]:e,r]}const Le=e=>void 0===e;function je(e){if("function"==typeof e)return je(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 qe(e){return e.filter(J).length>0?"string":"number"}function Me(e,t,r=!0){return(o,s)=>{const i=Reflect.getMetadata(De.API_MODEL_PROPERTIES_ARRAY,o)||[],n=":"+s;i.includes(n)||Reflect.defineMetadata(De.API_MODEL_PROPERTIES_ARRAY,[...i,":"+s],o);const a=Reflect.getMetadata(e,o,s);if(a){const i=X(t,K(Le)),n=r?{...a,...i}:{...i,...a};Reflect.defineMetadata(e,n,o,s)}else{const r=o?.constructor?._OPENAPI_METADATA_FACTORY?.()[s]?.type??Reflect.getMetadata("design:type",o,s);Reflect.defineMetadata(e,{type:r,required:!1,...X(t,K(Le))},o,s)}}}function Ue(e={}){return Be(e)}function Be(e={},t=!0){const[r,o]=Ne(e.type,e.isArray);if((s=e={...e,type:r,isArray:o}).isArray&&"enum"in s&&void 0!==s.enum){e.type="array";const t=je(e.enum);e.items={type:qe(t),enum:t},delete e.enum}else if("enum"in e&&void 0!==e.enum){const t=je(e.enum);e.enum=t,e.type=qe(t)}var s;return Array.isArray(e.type)&&(e.type="array",e.items={type:"array",items:{type:e.type[0]}}),Me(De.API_MODEL_PROPERTIES,e,t)}function Ge(t,r){const{handler:o,args:s}=e.get(t,fe.REFLECT+fe.BLOCK)||{};return!!o&&(o(...s,r)??!1)}function He(e,r,o){const s={GET:[fe.READ,a],POST:[fe.CREATE,c],PUT:[fe.UPDATE,p],PATCH:[fe.UPDATE,d],DELETE:[fe.DELETE,l]},[i,n]=s[r];return Ge(e,i)?t(V()):t(n(o))}function ze(e,r,o){const s={GET:[me.READ_ALL,a],POST:[me.CREATE_ALL,c],PUT:[me.UPDATE_ALL,p],PATCH:[me.UPDATE_ALL,d],DELETE:[me.DELETE_ALL,l]},[i,n]=s[r];return Ge(e,i)?t(V()):t(n(o))}function Ye(e=[]){const t=e.map(e=>W({name:e.name,description:e.description??"Path parameter: "+e.name,required:e.required??!0,type:e.type??String}));return u(...t)}const Qe=h((e,t)=>{const r=t.switchToHttp().getRequest().body,o=t.getClass(),s=o.class;if(!s)throw new f(`ModelConstructor not found on controller ${o.name}. Ensure the controller was created via FromModelController.`);return r?Array.isArray(r)?r.map(e=>new s(e)):new s(r):r}),Je=h((e,t)=>{const r=t.switchToHttp().getRequest(),o=r?.params??{},s=e??Object.keys(o),i=s.map(e=>o[e]);return{raw:o,valuesInOrder:i,keysInOrder:s}});function Xe(e=[]){const t=e.map(e=>e.name);return Je(t)}const Ke=h((e,t)=>{const r={...t.switchToHttp().getRequest().query??{}};if(void 0!==r.limit){const e=Number(r.limit);Number.isNaN(e)||(r.limit=e)}if(void 0!==r.offset){const e=Number(r.offset);Number.isNaN(e)||(r.offset=e)}if(void 0!==r.bookmark){const e=Number(r.bookmark);r.bookmark=Number.isNaN(e)?r.bookmark:e}return r});function Ve(e){const t={GET:a,POST:c,PUT:p,PATCH:d,DELETE:l}[e];if(!t)throw Error(`Unsupported HTTP verb "${e}". No NestJS decorator mapping was found.`);return t}const We="DecafModuleOptions",Ze="DecafAdapter",et="DecafRoute",tt=Symbol("DecafHandlers"),rt=Symbol("DecafAdapterForOptions"),ot=Symbol("AUTH_HANDLER"),st="auth:meta",it=Symbol("decaf:context");let nt=class{constructor(e,t){this.reflector=e,this.authHandler=t}async intercept(e,t){const r=this.reflector.get(st,e.getHandler())??this.reflector.get(st,e.getClass());return r&&this.authHandler&&await this.authHandler.authorize(e,r),t.handle()}};function at(e){const t="string"==typeof e?e:e.name;return u(Z(),b(st,t),w(nt))}nt=Ee([m(),Ae(1,y()),Ae(1,g(ot)),ve("design:paramtypes",[Pe,Object])],nt);class ct{parseRequest(e){const t=e.headers.authorization?.split(" ")[1];return t}async authorize(t,r){const o=t.switchToHttp().getRequest(),s=this.parseRequest(o);if(!s)throw new k("Unauthenticated");if(!e.get(C.get(r),F.AUTH_ROLE).includes(s))throw new k("Missing role: "+s)}}class pt extends ct{constructor(){super()}async authorize(t,r){const o=t.switchToHttp().getRequest(),s=this.parseRequest(o);if(!s)throw new k("Unauthenticated");const i=e.get(C.get(r),F.AUTH_ROLE);if(!i.includes(s))throw new k("Missing role: "+s);return i}}let dt=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 ye("Context not initialized for request");return this._ctx}};dt=Ee([m({scope:E.REQUEST})],dt);let lt=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)}};lt=Ee([m({scope:E.REQUEST}),Ae(0,g(tt)),ve("design:paramtypes",[Array,dt])],lt);const ut=e=>({name:e,description:e+" parameter for the query",required:!0,type:String});function ht(e,t,r,o=!1){const s=Ve(r),i=(e=>e.split("/").filter(e=>e.startsWith(":")).map(e=>e.slice(1)))(t).map(ut),n=[];return"GET"===r&&o&&n.push(ee({name:"direction",required:!1,enum:D,description:"the sort order when applicable"}),ee({name:"limit",required:!1,description:"limit or page size when applicable"}),ee({name:"offset",required:!1,description:"offset or bookmark when applicable"})),{method:[s(t),...i.map(W),...n,te({summary:`Retrieve records using according to "${e}".`}),re({description:"Result successfully retrieved."}),oe({description:"No content returned by the method."})],params:[Xe(i),A()]}}function ft(e,t,r,o){const s=e?.prototype??e;o.method.forEach(e=>e(s,t,r)),o.params?.forEach((e,r)=>e(s,t,r))}function mt(e,t,...r){if(e instanceof N)return"function"==typeof e[t]?e[t](...r):e.statement(t,...r);if("function"==typeof e[t])return e[t](...r);throw Error(`Persistence method "${t}" not found on ${e?.constructor?.name}`)}function yt(e){return async function(t,r){const o=this.log.for(e);try{o.debug(`Invoking persistence method "${e}" given parameters: ${JSON.stringify(t.valuesInOrder)}`);const{direction:s,limit:i,offset:n}=r;return await mt(this.persistence(),e,...t.valuesInOrder,s,i,n)}catch(t){throw o.error(`Custom query "${e}" failed`,t),t}}}function gt(e,t,r){return Object.defineProperty(e.prototype||e,t,{value:r,writable:!1}),Object.getOwnPropertyDescriptor(e.prototype||e,t)}class bt extends L{constructor(e,t){super(t),this.clientContext=e}logCtx(e,t,r=!1,o){const s=this.clientContext.ctx;return e=e.filter(e=>void 0!==e),j.logCtx.call(this,t,o||{},r,...e,s)}}class wt extends bt{persistence(e){if(!this._persistence)try{this._persistence=N.getService(this.class)}catch(e){try{this._persistence=L.get(this.class)}catch(e){this._persistence=q.forModel(this.class)}}return e?this._persistence instanceof q?this._persistence.override(e.toOverrides()):this._persistence.for(e.toOverrides()):this._persistence}constructor(e,t){super(e,t)}logCtx(e,t,r=!1){const o=this.clientContext.ctx;let s={};try{s=o.get("overrides")}catch(e){}const i=this.persistence(o);let n,a;return i instanceof N?n=i.repo.adapter:i instanceof q?n=i.adapter:i.context&&(n=i),r?n.logCtx(e,t,!0,s).then(e=>e):(a=n.logCtx(e,t,!1,s),a)}}const Et=new Map;function At(t,r){if(!M.includes(t))return r;const o=(e=>(Et.has(e)||Et.set(e,new WeakMap),Et.get(e)))(t),s=o.get(r);if(s)return s;const i=(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 e of i)C.isModel(e)&&At(t,e);const n=i.at(-1),a=n&&C.isModel(n)?o.get(n)||At(t,n):C;class c extends a{}o.set(r,c),Object.defineProperty(c,"name",{value:`${xe(r.name)}${xe(t)}DTO`});const p=e.properties(r)||[],d=e.get(r,F.CREATED_BY),l=e.get(r,F.UPDATED_BY),u=[...Object.keys(d||{}),...Object.keys(l||{})],h=["createdBy","updatedBy"].filter(e=>p.includes(e)),f=Array.from(new Set([...u,...h])),m=Array.from(new Set([...p,...f])),y=(e=>C.relations(e)||[])(r),g=new Set(y),b=m.filter(e=>((e,t)=>{let r=e;for(;r&&r!==Object&&r!==Function;){if(C.generated(r,t))return!0;r=Object.getPrototypeOf(r)}return!1})(r,e)),w=new Set([...b,...f]),E=(()=>{try{return C.pk(r)}catch{return}})(),A=[fe.UPDATE,me.UPDATE_ALL].includes(t),v=m.filter(e=>!g.has(e)&&(!w.has(e)||A&&e===E));for(const t of v){const o=e.validationFor(r,t),s=!!o?.[I.REQUIRED],i=e.type(r,t),n={required:s};i&&(n.type=i),Ue(n)(c.prototype,t);const a=Reflect.getMetadata("design:type",r.prototype,t)??i;void 0!==a&&Reflect.defineMetadata("design:type",a,c.prototype,t),Object.defineProperty(c.prototype,t,{value:void 0,writable:!0,enumerable:!0,configurable:!0})}function P(e,t,r,o){Ue({type:t,required:o,isArray:r})(c.prototype,e),Object.defineProperty(c.prototype,e,{value:void 0,writable:!0,enumerable:!0,configurable:!0}),Reflect.defineMetadata("design:type",r?Array:t,c.prototype,e)}for(const o of y){const s=e.relations(r,o);if(!s)throw new ye(`Metadata for relation ${o} not found`);let i=s.class;if("function"!=typeof i||i.name||(i=i()),!i||"function"!=typeof i)throw new ye(`Type for relation ${o} not found`);if(!C.get(i.name))continue;const n=e.validationFor(r,o);P(o,At(t,i),!!n[I.LIST],!!n[I.REQUIRED])}return c}U.transformerFor=(t=>{const r="string"==typeof t?t:t.alias;return e.innerGet(Symbol.for("transformers"),r)}).bind(U),U.flavoursToTransform=(()=>{const t=e.innerGet(Symbol.for("transformers"));if(t)return Object.keys(t)}).bind(U),B.prototype.toResponse=function(e){const t=this.pending();return t&&e.header("x-pending-task",JSON.stringify(t)),e};class vt{static{this.log=Se.for(vt.name)}static getPersistence(e){try{return N.getService(e)}catch(t){return q.forModel(e)}}static createQueryRoutesFromRepository(t,r=F.QUERY){const o=vt.log.for(vt.createQueryRoutesFromRepository),s=t instanceof N?t.repo:t,i=s.class,n=e.get(s.constructor,e.key(F.QUERY))??{},a=e.get(t.constructor,e.key(et))??{};class c extends wt{get class(){throw Error("Method not implemented.")}constructor(e,t){super(e,t)}}for(const[e,t]of Object.entries(a)){const r=[t.path.replace(/^\/+|\/+$/g,"")].filter(e=>e&&e.trim()).join("/"),s=yt(e);if(!s){const t=`Invalid or missing handler for model ${i.name} on decorated method ${e}`;throw o.error(t),Error(t)}const n=gt(c,e,s);n&&ft(c,e,n,ht(e,r,t.httpMethod))}for(const[e,t]of Object.entries(n)){const o=[r,e,...(t.fields??[]).map(e=>":"+e)].filter(e=>e&&e.trim()).join("/"),s=gt(c,e,yt(e));s&&ft(c,e,s,ht(e,o,"GET",!0))}return c}static create(e){const t=vt.log.for(vt.create),r=C.tableName(e),o=$e(r),s=e.name,i=vt.getPersistence(e),{description:n,getPK:a,apiProperties:c,path:p}=vt.getRouteParametersFromModel(e);t.debug("Creating controller for model: "+s);const d=vt.createQueryRoutesFromRepository(i);let l=class extends d{static get class(){return e}get class(){return e}constructor(r){super(r),this.pk=C.pk(e),t.info(`Registering dynamic controller for model: ${this.class.name} route: /${o}`)}async listBy(e,t){const{ctx:r}=(await this.logCtx([],G.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([],G.PAGE_BY,!0)).for(this.paginateBy);return this.persistence(r).paginateBy(e,t.direction,t,r)}async find(e,t){const{ctx:r}=(await this.logCtx([],G.FIND,!0)).for(this.find),o=t.direction??D.ASC;return mt(this.persistence(r),this.find.name,e,o,r)}async page(e,t){const{ctx:r}=(await this.logCtx([],G.PAGE,!0)).for(this.page),{direction:o=D.ASC,limit:s,offset:i,bookmark:n}=t,a={offset:i??1,limit:s??10,bookmark:n};return mt(this.persistence(r),this.page.name,e,o,a,r)}async findOneBy(e,t){const{ctx:r}=(await this.logCtx([],G.FIND_ONE_BY,!0)).for(this.findOneBy);return this.persistence(r).findOneBy(e,t,r)}async findBy(e,t,r){const{ctx:o}=(await this.logCtx([],G.FIND_BY,!0)).for(this.findBy);return this.persistence(o).for(o.toOverrides()).findBy(e,t,o)}async statement(e,t,r){const{ctx:o}=(await this.logCtx([],F.STATEMENT,!0)).for(this.statement),{direction:s,offset:i,limit:n,bookmark:a}=r,c=(t=t.map(e=>("string"==typeof e?parseInt(e):e)||e)).length>1?t[1]:void 0,p=s??c;switch(p&&t.length>1&&(t[1]=p),e){case G.FIND:case G.FIND_BY:break;case G.LIST_BY:t.push(s);break;case G.PAGE:case G.PAGE_BY:t=[t[0],p,{limit:n,offset:i,bookmark:a}];case G.FIND_ONE_BY:case G.COUNT_OF:case G.MAX_OF:case G.MIN_OF:case G.AVG_OF:case G.SUM_OF:case G.DISTINCT_OF:case G.GROUP_OF:}return this.persistence(o).statement(e,...t,o)}async createAll(t,r){const{ctx:o,log:i}=(await this.logCtx([],me.CREATE_ALL,!0)).for(this.createAll);let n;i.verbose("creating new "+s);try{n=await this.persistence(o).createAll(t.map(t=>new e(t)),o)}catch(e){throw i.error("Failed to create new "+s,e),e}return i.info(`created new ${s} with id ${n[this.pk]}`),o.toResponse(r),n}async create(e,t){const{ctx:r,log:o}=(await this.logCtx([],fe.CREATE,!0)).for(this.create);let i;o.verbose("creating new "+s);try{const t=this.persistence(r);i=await t.create(e,r)}catch(e){throw o.error("Failed to create new "+s,e),e}return o.info(`created new ${s} with id ${i[this.pk]}`),r.toResponse(t),i}async readAll(e){const{ctx:t,log:r}=(await this.logCtx([],me.READ_ALL,!0)).for(this.readAll);let o;try{r.debug(`reading ${e.length} ${s}: ${e}`);const i=this.persistence(t);o=await i.readAll(e,t)}catch(t){throw r.error(`Failed to ${s} with id ${e}`,t),t}return r.info(`read ${o.length} ${s}`),o}async read(e){const{ctx:t,log:r}=(await this.logCtx([],fe.READ,!0)).for(this.read),o=a(...e.valuesInOrder);if(void 0===o)throw new be(`No ${this.pk} provided`);let i;try{r.debug(`reading ${s} with ${this.pk} ${o}`);const e=this.persistence(t);i=await e.read(o,t)}catch(e){throw r.error(`Failed to read ${s} with id ${o}`,e),e}return r.info(`read ${s} with id ${i[this.pk]}`),i}async updateAll(e,t){const{ctx:r,log:o}=(await this.logCtx([],me.UPDATE_ALL,!0)).for(this.updateAll);let i;try{o.info(`updating ${e.length} ${s}`),i=await this.persistence(r).updateAll(e,r)}catch(e){throw o.error(e),e}return r.toResponse(t),i}async update(t,r,o){const{ctx:i,log:n}=(await this.logCtx([],fe.UPDATE,!0)).for(this.update),c=a(...t.valuesInOrder);if(void 0===c)throw new be(`No ${this.pk} provided`);let p;try{n.info(`updating ${s} with ${this.pk} ${c}`);const t=JSON.parse(JSON.stringify(r)),o=this.persistence(i);p=await o.update(new e({...t,[this.pk]:c}),i)}catch(e){throw n.error(e),e}return i.toResponse(o),p}async deleteAll(e,t){const{ctx:r,log:o}=(await this.logCtx([],me.DELETE_ALL,!0)).for(this.deleteAll);let i;try{o.debug(`deleting ${e.length} ${s}: ${e}`),i=await this.persistence(r).deleteAll(e,r)}catch(t){throw o.error(`Failed to delete ${s} with id ${e}`,t),t}return o.info(`deleted ${i.length} ${s}`),r.toResponse(t),i}async delete(e,t){const{ctx:r,log:o}=(await this.logCtx([],fe.DELETE,!0)).for(this.delete),i=a(...e.valuesInOrder);if(void 0===i)throw new be(`No ${this.pk} provided`);let n;try{o.debug(`deleting ${s} with ${this.pk} ${i}`),n=await this.persistence(r).delete(i,r)}catch(e){throw o.error(`Failed to delete ${s} with id ${i}`,e),e}return o.info(`deleted ${s} with id ${i}`),r.toResponse(t),n}};return Ee([He(e,"GET","listBy/:key"),te({summary:`Retrieve ${s} records by query.`}),W({name:"key",description:"the model key to sort by"}),ee({name:"direction",required:!0,enum:D}),re({description:s+" listed successfully."}),Ae(0,v("key")),Ae(1,Ke()),ve("design:type",Function),ve("design:paramtypes",[String,Object]),ve("design:returntype",Promise)],l.prototype,"listBy",null),Ee([He(e,"GET","paginateBy/:key/:page"),te({summary:`Retrieve ${s} records by query.`}),W({name:"key",description:"the model key to sort by"}),W({name:"page",description:"the page to retrieve or the bookmark"}),ee({name:"direction",required:!0,enum:D,description:"the sort order"}),ee({name:"limit",required:!0,description:"the page size"}),ee({name:"offset",description:"the bookmark when necessary"}),re({description:s+" listed paginated."}),Ae(0,v("key")),Ae(1,Ke()),ve("design:type",Function),ve("design:paramtypes",[String,Object]),ve("design:returntype",Promise)],l.prototype,"paginateBy",null),Ee([He(e,"GET","find/:value"),te({summary:`Find ${s} records using the default query attributes.`}),W({name:"value",description:"The string to match against the default query attributes"}),ee({name:"direction",required:!1,enum:D,description:"the sort order for the matching results"}),re({description:s+" records matching the provided prefix."}),Ae(0,v("value")),Ae(1,Ke()),ve("design:type",Function),ve("design:paramtypes",[String,Object]),ve("design:returntype",Promise)],l.prototype,"find",null),Ee([He(e,"GET","page/:value"),te({summary:`Page ${s} records using the default query attributes.`}),W({name:"value",description:"The string to match against the default query attributes"}),ee({name:"direction",required:!1,enum:D,description:"the sort order for the paged results"}),ee({name:"limit",required:!1,description:"page size"}),ee({name:"offset",required:!1,description:"page number"}),ee({name:"bookmark",required:!1,description:"bookmark for cursor pagination"}),re({description:s+" records paged by the provided prefix."}),Ae(0,v("value")),Ae(1,Ke()),ve("design:type",Function),ve("design:paramtypes",[String,Object]),ve("design:returntype",Promise)],l.prototype,"page",null),Ee([He(e,"GET","findOneBy/:key"),te({summary:`Retrieve ${s} records by query.`}),W({name:"key",description:"the model key to sort by"}),re({description:s+" listed found."}),se({description:`No ${s} record matches the provided identifier.`}),Ae(0,v("key")),Ae(1,v("value")),ve("design:type",Function),ve("design:paramtypes",[String,Object]),ve("design:returntype",Promise)],l.prototype,"findOneBy",null),Ee([He(e,"GET","findBy/:key/:value"),te({summary:`Retrieve ${s} records by query.`}),W({name:"key",description:"the model key to compare"}),W({name:"value",description:"the value to match"}),ee({name:"direction",required:!0,enum:D,description:"the sort order when applicable"}),re({description:s+" listed found."}),se({description:`No ${s} record matches the provided identifier.`}),Ae(0,v("key")),Ae(1,v("value")),Ae(2,Ke()),ve("design:type",Function),ve("design:paramtypes",[String,Object,Object]),ve("design:returntype",Promise)],l.prototype,"findBy",null),Ee([He(e,"GET","statement/:method/*args"),te({summary:`Executes a prepared statement on ${s}.`}),W({name:"method",description:"the prepared statement to execute"}),W({name:"args",description:"concatenated list of arguments the prepared statement can accept"}),ee({name:"direction",required:!0,enum:D,description:"the sort order when applicable"}),ee({name:"limit",required:!0,description:"limit or page size when applicable"}),ee({name:"offset",required:!0,description:"offset or bookmark when applicable"}),re({description:s+" listed found."}),se({description:`No ${s} record matches the provided identifier.`}),Ae(0,v("method")),Ae(1,v("args")),Ae(2,Ke()),ve("design:type",Function),ve("design:paramtypes",[String,Array,Object]),ve("design:returntype",Promise)],l.prototype,"statement",null),Ee([He(e,"POST","bulk"),te({summary:`Create a new ${s}.`}),ie({description:"Payload for "+s,schema:{type:"array",items:{$ref:ne(e)}}}),ae({description:s+" created successfully.",schema:{type:"array",items:{$ref:ne(e)}}}),ce({description:"Payload validation failed."}),pe({description:"Repository rejected the provided payload."}),Ae(0,Qe()),Ae(1,P({passthrough:!0})),ve("design:type",Function),ve("design:paramtypes",[Array,Object]),ve("design:returntype",Promise)],l.prototype,"createAll",null),Ee([He(e,"POST"),te({summary:`Create a new ${s}.`}),ie({description:"Payload for "+s,type:At(fe.CREATE,e)}),ae({description:s+" created successfully.",schema:{$ref:ne(e)}}),ce({description:"Payload validation failed."}),pe({description:"Repository rejected the provided payload."}),Ae(0,Qe()),Ae(1,P({passthrough:!0})),ve("design:type",Function),ve("design:paramtypes",[Object,Object]),ve("design:returntype",Promise)],l.prototype,"create",null),Ee([He(e,"GET","bulk"),te({summary:`Retrieve a ${s} record by id.`}),ee({name:"ids",required:!0,type:"array"}),re({description:s+" retrieved successfully.",schema:{type:"array",items:{$ref:ne(e)}}}),se({description:`No ${s} record matches the provided identifier.`}),Ae(0,A("ids")),ve("design:type",Function),ve("design:paramtypes",[Array]),ve("design:returntype",Promise)],l.prototype,"readAll",null),Ee([He(e,"GET",p),Ye(c),te({summary:`Retrieve a ${s} record by id.`}),re({description:s+" retrieved successfully.",schema:{$ref:ne(e)}}),se({description:`No ${s} record matches the provided identifier.`}),Ae(0,Xe(c)),ve("design:type",Function),ve("design:paramtypes",[Object]),ve("design:returntype",Promise)],l.prototype,"read",null),Ee([He(e,"PUT","bulk"),Ye(c),te({summary:`Replace an existing ${s} record with a new payload.`}),ie({description:"Payload for replace a existing record of "+s,schema:{type:"array",$ref:ne(At(fe.UPDATE,e))}}),re({description:s+" updated successfully.",schema:{type:"array",items:{$ref:ne(e)}}}),se({description:`No ${s} record matches the provided identifier.`}),ce({description:"Payload validation failed."}),Ae(0,Qe()),Ae(1,P({passthrough:!0})),ve("design:type",Function),ve("design:paramtypes",[Array,Object]),ve("design:returntype",Promise)],l.prototype,"updateAll",null),Ee([He(e,"PUT",p),Ye(c),te({summary:`Replace an existing ${s} record with a new payload.`}),ie({description:"Payload for replace a existing record of "+s,type:At(fe.UPDATE,e)}),re({description:s+" updated successfully.",schema:{$ref:ne(e)}}),se({description:`No ${s} record matches the provided identifier.`}),ce({description:"Payload validation failed."}),Ae(0,Xe(c)),Ae(1,Qe()),Ae(2,P({passthrough:!0})),ve("design:type",Function),ve("design:paramtypes",[Object,Object,Object]),ve("design:returntype",Promise)],l.prototype,"update",null),Ee([He(e,"DELETE","bulk"),Ye(c),te({summary:`Retrieve a ${s} record by id.`}),ee({name:"ids",required:!0,type:"array"}),re({description:s+" deleted successfully.",schema:{type:"array",items:{$ref:ne(e)}}}),se({description:`No ${s} record matches the provided identifier.`}),Ae(0,A("ids")),Ae(1,P({passthrough:!0})),ve("design:type",Function),ve("design:paramtypes",[Array,Object]),ve("design:returntype",Promise)],l.prototype,"deleteAll",null),Ee([He(e,"DELETE",p),Ye(c),te({summary:`Delete a ${s} record by id.`}),re({description:s+" deleted successfully.",schema:{$ref:ne(e)}}),se({description:`No ${s} record matches the provided identifier.`}),Ae(0,Xe(c)),Ae(1,P({passthrough:!0})),ve("design:type",Function),ve("design:paramtypes",[Object,Object]),ve("design:returntype",Promise)],l.prototype,"delete",null),l=Ee([O(o),de(s),le(e),at(e),ve("design:paramtypes",[dt])],l),l}static getRouteParametersFromModel(t){const r=C.pk(t),o=e.get(t,e.key(ge.COMPOSED,r)),s=o?.args??[],i=Array.isArray(s)&&s.length>0?Array.from(new Set([...s])):Array.from(new Set([r])),n=e.description(t);return{path:":"+i.join("/:"),description:n,apiProperties:i.map(r=>({name:r,description:e.description(t,r),required:!0,type:String})),getPK:(...e)=>o?.separator?e.join(o.separator):e.join("")}}}let Pt=class{constructor(e,t){this.requestContext=e,this.executor=t}async contextualize(e){const t={headers:e.headers,overrides:{}},r=U.flavoursToTransform();if(r)for(const o of r)try{const r=U.transformerFor(o),s=await r.from(e);Object.assign(t.overrides,s)}catch(e){throw new ye("Failed to contextualize request: "+e)}return(new B).accumulate(Object.assign({},H,{logger:Se.get(),timestamp:new Date},t))}async intercept(e,t){const r=e.switchToHttp().getRequest(),o=e.switchToHttp().getResponse(),s=await this.contextualize(r);return this.requestContext.applyCtx(s),await this.executor.exec(r,o),t.handle()}};Pt=Ee([m({scope:E.REQUEST}),ve("design:paramtypes",[dt,lt])],Pt);class Ot{}function Tt(t){return o=>(e.set("transformers",t,o),"function"==typeof o?r("transformers",t)(o):o)}function Rt(e){var t;let r=class{static{t=this}static{this.log=Se.for(t.name).for(e)}static createModelServices(e){return e.map(e=>({provide:e.name+"Service",useFactory:()=>N.forModel(e)}))}static forRoot(e,r={}){const o=this.log.for(this.forRoot);o.info("Generating controllers for flavour...");const s=U.models(e);let i=[];r.autoServices&&(o.info("Auto-services enabled. Initializing service generation."),i=this.createModelServices(s),o.info(`Auto-services completed. ${i.length} services initialized.`));const n=s.map(vt.create);return o.info(`Generated ${n.length} controllers`),{module:t,controllers:n,providers:[{provide:tt,useFactory:()=>r.handlers?.map(e=>(o.info("Registered request handler: "+e.name),new e))??[]},dt,lt,{provide:Oe,useClass:Pt},...i]}}};return r=t=Ee([T({})],r),Object.assign(r,"name",{value:"DecafModule"+e}),r}o.for(i.INJECTABLE).extend({decorator:(e,t)=>(t=t||("object"==typeof e?Object.assign(e,n):n),m({scope:t.singleton?E.DEFAULT:E.REQUEST,durable:!t.singleton||void 0}))}).apply(),o.for(i.INJECT).extend({decorator:(e,t)=>(t,r,o)=>g(e||t)(t,r,o)}).apply(),o.for(I.REQUIRED).extend(Ue({required:!0})).apply(),o.for(I.MAX).extend({decorator:e=>Ue({maximum:e,required:!1})}).apply(),o.for(I.MIN).extend({decorator:e=>Ue({minimum:e,required:!1})}).apply(),o.for(I.MAX_LENGTH).extend({decorator:e=>Ue({maxLength:e,required:!1})}).apply(),o.for(I.MIN_LENGTH).extend({decorator:e=>Ue({minLength:e,required:!1})}).apply(),o.for(I.TYPE).extend({decorator:e=>(t,r)=>("function"!=typeof(e=Array.isArray(e)?e[0]:e)||e.name||(e=e()),Ue({type:e,required:!1})(t,r))}).apply(),o.for(I.DATE).extend({decorator:e=>Ue({type:String,format:"date-time",required:!1})}).apply(),o.for(I.ENUM).extend({decorator:e=>Ue({enum:Array.isArray(e)?e:Object.values(e),required:!1})}).apply(),o.for(I.PATTERN).extend({decorator:e=>Ue({pattern:"string"==typeof e?e:e.source,required:!1})}).apply(),o.for(F.COLUMN).extend({decorator:e=>Ue({name:e,required:!1})}).apply(),o.for(s.DESCRIPTION).extend({decorator:e=>Ue({description:e,required:!1})}).apply(),o.for(F.AUTH).extend({decorator:at}).apply();class xt extends z{constructor(e){super(e,xt.name)}}let St=class{catch(e,t){const r=t.switchToHttp(),o=r.getResponse(),s=r.getRequest(),i="production"===_e.env;e instanceof we||(e=new ye(e.message)),o.status(e.code).json({status:e.code,error:i?e.name:e.message,timestamp:(new Date).toISOString(),path:s.url,method:s.method})}};function $t(){return x(new St)}St=Ee([R()],St);const _t={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 Ct{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||_t.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=Ie.join(this.options.assetsPath||"",e),o=Ce(r,{encoding:"base64"});return t?"data:image/png;base64,"+o:o}}class It{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 ue).setTitle(this.options.title).setDescription(e).setVersion(this.options.version||"0.0.1").addBearerAuth(this.options.auth||_t.auth).build();return he.createDocument(this.app,t,{extraModels:this.options.extraModels||[]})}setupSwagger(){const e=this.createDocument(),t=new Ct({title:this.options.title,path:this.options.path||_t.path,persistAuthorization:this.options.persistAuthorization??!0,assetsPath:this.options.assetsPath,faviconPath:this.options.faviconFilePath,topbarIconPath:this.options.topbarIconFilePath,topbarBgColor:this.options.topbarBgColor});he.setup(this.options.path||_t.path,this.app,e,{...t.getCustomOptions()})}}class kt{static get logger(){return this._logger||(this._logger=new S("NestBootstrap")),this._logger}static initialize(e){return this.app=e,this}static enableLogger(e){return this._logger=e||new S("NestBootstrap"),this.app.useLogger(this._logger),this}static enableCors(e=[],t=["GET","POST","PUT","DELETE"]){const r="*"===e?"*":e.map(e=>e.trim().toLowerCase()),o={origin:(e,t)=>e?"*"===r||Array.isArray(r)&&r.includes(e.toLowerCase())?t(null,!0):void t(new xt(`Origin ${e} not allowed`)):t(null,!0),credentials:!0,methods:t.join(",")};return this.app.enableCors(o),this}static useHelmet(e){try{const t=require("helmet");this.app.use(t(e)),this.logger.log("Helmet middleware enabled successfully.")}catch(e){this.logger.warn("Helmet not installed. Skipping middleware.")}return this}static setupSwagger(e){return new It(this.app,{title:e.title,description:e.description,version:e.version,path:e.path||"api",persistAuthorization:e.persistAuthorization??!0,assetsPath:e.assetsPath,faviconFilePath:e.faviconPath,topbarIconFilePath:e.topbarIconPath,topbarBgColor:e.topbarBgColor}).setupSwagger(),this}static useGlobalPipes(...e){return e.length>0&&this.app.useGlobalPipes(...e),this}static useGlobalFilters(...e){return this.app.useGlobalFilters(...e.length>0?e:[new St]),this}static useGlobalInterceptors(...e){return e.length>0&&this.app.useGlobalInterceptors(...e),this}static async start(e=Number(process.env.PORT)||3e3,t=void 0,r=!0){this.app.listen(e,t).then(async()=>{if(r){const e=await this.app.getUrl();this.logger.log("\ud83d\ude80 Application is running at: "+e)}})}}var Ft;let Dt=class{static{Ft=this}static get persistence(){if(!this._persistence)throw new ye("Persistence service not initialized");return this._persistence}static get log(){return this._logger||(this._logger=Se.for(Ft)),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 Y,await this._persistence.boot(r);const o=this._persistence.client;for(let t=0;t<o.length;t++){const r=e.conf[t];let[,,s]=r;if(!s){const e=U.transformerFor(o[t].flavour);if(!e)throw new ye(`No transformer found for flavour ${o[t].flavour}. you should either @requestToContextTransformer or provide a transformer in the config`);s=e instanceof Ot?e:new e}Tt(o[t].flavour)(s)}t.info("persistence layer created successfully!")}return this.persistence.client}static forRoot(e){const t={provide:We,useValue:e},r={useFactory:async e=>Ft.bootPersistence(e),provide:Ze,durable:!0,scope:E.DEFAULT,inject:[We]};return{module:Ft,providers:[r,t],exports:[r]}}async onApplicationShutdown(){const e=Ft.log.for(this.onApplicationShutdown),t=this.moduleRef.get(Ze);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)}}};Dt=Ft=Ee([$(),T({}),Ae(0,g(We)),ve("design:paramtypes",[Object,Te])],Dt);const Nt=Symbol("LISTENING_ADAPTERS_FLAVOURS");var Lt;let jt=Lt=class extends bt{constructor(e,t){super(e,Lt.name),this.adapters=t.map(e=>U.get(e))}listen(){const e=Se.for(Lt.name);return new ke(t=>{const r=new class{refresh(...e){return Promise.resolve().then(()=>{const r=(e=>{const[t,r,o,s]=e;return[t?.name??t,r,o,Array.isArray(s)?s.map(e=>e.serialize()):s?.serialize()]})(e);t.next({data:r})})}};try{for(const e of this.adapters)e.observe(r)}catch(e){t.error("Failed to observe event: "+(e.message||e))}return()=>{try{for(const e of this.adapters)e.unObserve(r)}catch(t){e.error(t)}}})}listenForModel(e){const t=Se.for(Lt.name);return new ke(e=>{const r=new class{refresh(...t){return Promise.resolve().then(()=>{e.next({data:t})})}};try{for(const e of this.adapters)e.observe(r)}catch(t){e.error("Failed to observe event: "+(t.message||t))}return()=>{try{for(const e of this.adapters)e.unObserve(r)}catch(e){t.error(e)}}})}};var qt;Ee([_(),ve("design:type",Function),ve("design:paramtypes",[]),ve("design:returntype",ke)],jt.prototype,"listen",null),Ee([_("/:model"),Ae(0,A("model")),ve("design:type",Function),ve("design:paramtypes",[String]),ve("design:returntype",ke)],jt.prototype,"listenForModel",null),jt=Lt=Ee([O(),Ae(1,g(Nt)),ve("design:paramtypes",[dt,Array])],jt);let Mt=qt=class{static forFlavours(e,t="events"){return{module:qt,controllers:[jt],imports:[Re.register([{path:t.replace(/^\//,""),module:qt}])],providers:[dt,{provide:Nt,useValue:e??[]}]}}};var Ut;Mt=qt=Ee([T({})],Mt);let Bt=Ut=class{static async forRootAsync(e){const{autoControllers:t,autoServices:r,handlers:o}=e,s=(await Dt.bootPersistence(e)).map(e=>e.flavour),i=[Dt.forRoot(e)];return t&&s.forEach(e=>{i.push(Rt(e).forRoot(e,{autoServices:r,handlers:o}))}),e.observerOptions?.enableObserverEvents&&i.push(Mt.forFlavours(s)),{module:Ut,imports:i}}};function Gt(e){const t=C.get(e);if(!t)throw new ye("Failed to find repository for "+e);return q.forModel(t)}Bt=Ut=Ee([T({})],Bt);const Ht="##VERSION##",zt="##PACKAGE##";e.registerLibrary(zt,Ht);export{ot as AUTH_HANDLER,st as AUTH_META_KEY,He as ApiOperationFromModel,Ye as ApiParamsFromModel,Ue as ApiProperty,at as Auth,nt as AuthInterceptor,ze as BulkApiOperationFromModel,xt as CorsError,Ze as DECAF_ADAPTER_ID,rt as DECAF_ADAPTER_OPTIONS,it as DECAF_CONTEXT_KEY,tt as DECAF_HANDLERS,We as DECAF_MODULE_OPTIONS,et as DECAF_ROUTE,De as DECORATORS,Fe as DECORATORS_PREFIX,ct as DecafAuthHandler,Qe as DecafBody,bt as DecafController,St as DecafExceptionFilter,lt as DecafHandlerExecutor,wt as DecafModelController,Bt as DecafModule,Xe as DecafParams,Ke as DecafQuery,dt as DecafRequestContext,Pt as DecafRequestHandlerInterceptor,pt as DecafRoleAuthHandler,Mt as DecafStreamModule,At as DtoFor,jt as EventsController,vt as FromModelController,Ve as HttpVerbToDecorator,kt as NestBootstraper,zt as PACKAGE_NAME,Ot as RequestToContextTransformer,It as SwaggerBuilder,$t as UseDecafFilter,Ht as VERSION,Be as createApiPropertyDecorator,Me as createPropertyDecorator,qe as getEnumType,je as getEnumValues,Rt as getModuleFor,Ge as isOperationBlocked,Le as isUndefined,Gt as repoForModel,Tt as requestToContextTransformer};
|
|
2
2
|
//# sourceMappingURL=for-nest.js.map
|
package/dist/for-nest.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"for-nest.js","sources":["../src/overrides/constants.ts","../src/overrides/helpers.ts","../src/overrides/decoration.ts","../src/decaf-model/decorators/ApiOperationFromModel.ts","../src/decaf-model/decorators/ApiParamsFromModel.ts","../src/decaf-model/decorators/DecafBody.ts","../src/decaf-model/decorators/DecafParams.ts","../src/decaf-model/decorators/utils.ts","../src/constants.ts","../src/interceptors/AuthInterceptor.ts","../src/decaf-model/decorators/decorators.ts","../src/request/DecafAuthHandler.ts","../src/request/DecafRequestContext.ts","../src/request/DecafHandlerExecutor.ts","../src/decaf-model/utils.ts","../src/controllers.ts","../src/factory/openapi/DtoBuilder.ts","../src/overrides/overrides.ts","../src/decaf-model/FromModelController.ts","../src/interceptors/DecafRequestHandlerInterceptor.ts","../src/interceptors/context.ts","../src/decaf-model/DecafModelModule.ts","../src/decoration.ts","../src/factory/errors/cors.ts","../src/factory/exceptions/DecafErrorFilter.ts","../src/factory/exceptions/decorators.ts","../src/factory/openapi/constants.ts","../src/factory/openapi/SwaggerCustomUI.ts","../src/factory/openapi/SwaggerBuilder.ts","../src/factory/NestBootstraper.ts","../src/core-module.ts","../src/events-module/constant.ts","../src/events-module/EventsController.ts","../src/events-module/utils.ts","../src/events-module/DecafStreamModule.ts","../src/module.ts","../src/utils.ts","../src/index.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null],"names":["DECORATORS_PREFIX","DECORATORS","API_OPERATION","API_RESPONSE","API_PRODUCES","API_CONSUMES","API_TAGS","API_CALLBACKS","API_PARAMETERS","API_HEADERS","API_MODEL_PROPERTIES","API_MODEL_PROPERTIES_ARRAY","API_SECURITY","API_EXCLUDE_ENDPOINT","API_EXCLUDE_CONTROLLER","API_EXTRA_MODELS","API_EXTENSION","API_SCHEMA","API_DEFAULT_GETTER","API_LINK","getTypeIsArrayTuple","input","isArrayFlag","isInputArray","isArray","isUndefined","obj","getEnumValues","enumType","Array","numericValues","Object","values","filter","value","map","toString","keys","key","includes","getEnumType","isString","length","createPropertyDecorator","metakey","metadata","overrideExisting","target","propertyKey","properties","Reflect","getMetadata","defineMetadata","existingMetadata","newMetadata","pickBy","negate","metadataToSave","type","constructor","required","ApiProperty","options","createApiPropertyDecorator","opts","undefined","enum","enumValues","items","isOperationBlocked","ModelConstructor","op","handler","args","Metadata","get","OperationKeys","REFLECT","BLOCK","ApiOperationFromModel","verb","path","httpToCrud","GET","READ","Get","POST","CREATE","Post","PUT","UPDATE","Put","PATCH","Patch","DELETE","Delete","crudOp","HttpMethodDecorator","apply","ApiExcludeEndpoint","BulkApiOperationFromModel","BulkCrudOperationKeys","READ_ALL","CREATE_ALL","UPDATE_ALL","DELETE_ALL","ApiParamsFromModel","props","decorators","p","ApiParamDec","name","description","String","applyDecorators","DecafBody","createParamDecorator","data","ctx","body","switchToHttp","getRequest","controller","getClass","ModelConstr","class","InternalServerErrorException","item","OrderedParams","order","req","original","params","orderList","ordered","k","raw","valuesInOrder","keysInOrder","DecafParams","DecafQuery","_","parsed","query","limit","n","Number","isNaN","offset","bookmark","HttpVerbToDecorator","decorator","Error","DECAF_MODULE_OPTIONS","DECAF_ADAPTER_ID","DECAF_ROUTE","DECAF_HANDLERS","Symbol","DECAF_ADAPTER_OPTIONS","AUTH_HANDLER","AUTH_META_KEY","DECAF_CONTEXT_KEY","AuthInterceptor","reflector","authHandler","this","intercept","next","modelName","getHandler","authorize","handle","Auth","model","resource","ApiBearerAuth","SetMetadata","UseInterceptors","__decorate","Injectable","__param","Optional","Inject","Reflector","DecafAuthHandler","parseRequest","userRole","headers","authorization","split","AuthorizationError","Model","PersistenceKeys","AUTH_ROLE","DecafRoleAuthHandler","super","roles","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","resolvePersistenceMethod","persistence","ModelService","statement","createRouteHandler","async","pathParams","queryParams","log","for","debug","JSON","stringify","direction","error","defineRouteMethod","ControllerClass","defineProperty","writable","getOwnPropertyDescriptor","DecafController","Service","clientContext","logCtx","operation","allowCreate","ContextualLoggedClass","call","DecafModelController","_persistence","getService","Repository","forModel","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","allowedProps","validation","validationFor","isRequired","ValidationKeys","REQUIRED","typeHint","apiOptions","designType","enumerable","configurable","addRelation","relation","relationDto","relationMeta","relationType","meta","LIST","Adapter","transformerFor","adapter","alias","bind","flavoursToTransform","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","find","FIND","ASC","page","PAGE","ref","findOneBy","FIND_ONE_BY","findBy","FIND_BY","STATEMENT","pathDirection","a","parseInt","resolvedDirection","COUNT_OF","MAX_OF","MIN_OF","AVG_OF","SUM_OF","DISTINCT_OF","GROUP_OF","createAll","resp","created","verbose","readAll","ids","read","routeParams","id","ValidationError","updateAll","updated","update","payload","parse","deleteAll","delete","del","Param","ApiNotFoundResponse","ApiBody","schema","$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","UseDecafFilter","UseFilters","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","NestBootstraper","_logger","Logger","initialize","enableLogger","customLogger","useLogger","enableCors","origins","allowMethods","allowedOrigins","o","toLowerCase","corsOptions","origin","callback","credentials","methods","useHelmet","helmet","require","use","warn","useGlobalPipes","pipes","useGlobalFilters","filters","useGlobalInterceptors","interceptors","start","port","process","PORT","listen","getUrl","DecafCoreModule","DecafCoreModule_1","moduleRef","bootPersistence","trimmed","conf","contr","pop","PersistenceService","boot","clients","client","i","c","typeOrmModuleOptions","useValue","inject","exports","onApplicationShutdown","adapters","shutdown","Global","ModuleRef","LISTENING_ADAPTERS_FLAVOURS","EventsController","EventsController_1","Observable","observer","cb","refresh","Promise","resolve","modelConstr","serialize","normalizeEventResponse","observe","unObserve","listenForModel","Sse","DecafStreamModule","DecafStreamModule_1","forFlavours","imports","RouterModule","register","DecafModule","DecafModule_1","forRootAsync","autoControllers","observerOptions","enableObserverEvents","repoForModel","m","VERSION","PACKAGE_NAME","registerLibrary"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"for-nest.js","sources":["../src/overrides/constants.ts","../src/overrides/helpers.ts","../src/overrides/decoration.ts","../src/decaf-model/decorators/ApiOperationFromModel.ts","../src/decaf-model/decorators/ApiParamsFromModel.ts","../src/decaf-model/decorators/DecafBody.ts","../src/decaf-model/decorators/DecafParams.ts","../src/decaf-model/decorators/utils.ts","../src/constants.ts","../src/interceptors/AuthInterceptor.ts","../src/decaf-model/decorators/decorators.ts","../src/request/DecafAuthHandler.ts","../src/request/DecafRequestContext.ts","../src/request/DecafHandlerExecutor.ts","../src/decaf-model/utils.ts","../src/controllers.ts","../src/factory/openapi/DtoBuilder.ts","../src/overrides/overrides.ts","../src/decaf-model/FromModelController.ts","../src/interceptors/DecafRequestHandlerInterceptor.ts","../src/interceptors/context.ts","../src/decaf-model/DecafModelModule.ts","../src/decoration.ts","../src/factory/errors/cors.ts","../src/factory/exceptions/DecafErrorFilter.ts","../src/factory/exceptions/decorators.ts","../src/factory/openapi/constants.ts","../src/factory/openapi/SwaggerCustomUI.ts","../src/factory/openapi/SwaggerBuilder.ts","../src/factory/NestBootstraper.ts","../src/core-module.ts","../src/events-module/constant.ts","../src/events-module/EventsController.ts","../src/events-module/utils.ts","../src/events-module/DecafStreamModule.ts","../src/module.ts","../src/utils.ts","../src/index.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null],"names":["DECORATORS_PREFIX","DECORATORS","API_OPERATION","API_RESPONSE","API_PRODUCES","API_CONSUMES","API_TAGS","API_CALLBACKS","API_PARAMETERS","API_HEADERS","API_MODEL_PROPERTIES","API_MODEL_PROPERTIES_ARRAY","API_SECURITY","API_EXCLUDE_ENDPOINT","API_EXCLUDE_CONTROLLER","API_EXTRA_MODELS","API_EXTENSION","API_SCHEMA","API_DEFAULT_GETTER","API_LINK","getTypeIsArrayTuple","input","isArrayFlag","isInputArray","isArray","isUndefined","obj","getEnumValues","enumType","Array","numericValues","Object","values","filter","value","map","toString","keys","key","includes","getEnumType","isString","length","createPropertyDecorator","metakey","metadata","overrideExisting","target","propertyKey","properties","Reflect","getMetadata","defineMetadata","existingMetadata","newMetadata","pickBy","negate","metadataToSave","type","constructor","required","ApiProperty","options","createApiPropertyDecorator","opts","undefined","enum","enumValues","items","isOperationBlocked","ModelConstructor","op","handler","args","Metadata","get","OperationKeys","REFLECT","BLOCK","ApiOperationFromModel","verb","path","httpToCrud","GET","READ","Get","POST","CREATE","Post","PUT","UPDATE","Put","PATCH","Patch","DELETE","Delete","crudOp","HttpMethodDecorator","apply","ApiExcludeEndpoint","BulkApiOperationFromModel","BulkCrudOperationKeys","READ_ALL","CREATE_ALL","UPDATE_ALL","DELETE_ALL","ApiParamsFromModel","props","decorators","p","ApiParamDec","name","description","String","applyDecorators","DecafBody","createParamDecorator","data","ctx","body","switchToHttp","getRequest","controller","getClass","ModelConstr","class","InternalServerErrorException","item","OrderedParams","order","req","original","params","orderList","ordered","k","raw","valuesInOrder","keysInOrder","DecafParams","DecafQuery","_","parsed","query","limit","n","Number","isNaN","offset","bookmark","HttpVerbToDecorator","decorator","Error","DECAF_MODULE_OPTIONS","DECAF_ADAPTER_ID","DECAF_ROUTE","DECAF_HANDLERS","Symbol","DECAF_ADAPTER_OPTIONS","AUTH_HANDLER","AUTH_META_KEY","DECAF_CONTEXT_KEY","AuthInterceptor","reflector","authHandler","this","intercept","next","modelName","getHandler","authorize","handle","Auth","model","resource","ApiBearerAuth","SetMetadata","UseInterceptors","__decorate","Injectable","__param","Optional","Inject","Reflector","DecafAuthHandler","parseRequest","userRole","headers","authorization","split","AuthorizationError","Model","PersistenceKeys","AUTH_ROLE","DecafRoleAuthHandler","super","roles","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","resolvePersistenceMethod","persistence","ModelService","statement","createRouteHandler","async","pathParams","queryParams","log","for","debug","JSON","stringify","direction","error","defineRouteMethod","ControllerClass","defineProperty","writable","getOwnPropertyDescriptor","DecafController","Service","clientContext","logCtx","operation","allowCreate","ContextualLoggedClass","call","DecafModelController","_persistence","getService","Repository","forModel","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","allowedProps","validation","validationFor","isRequired","ValidationKeys","REQUIRED","typeHint","apiOptions","designType","enumerable","configurable","addRelation","relation","relationDto","relationMeta","relationType","meta","LIST","Adapter","transformerFor","adapter","alias","bind","flavoursToTransform","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","find","FIND","ASC","page","PAGE","ref","findOneBy","FIND_ONE_BY","findBy","FIND_BY","STATEMENT","pathDirection","a","parseInt","resolvedDirection","COUNT_OF","MAX_OF","MIN_OF","AVG_OF","SUM_OF","DISTINCT_OF","GROUP_OF","createAll","resp","created","verbose","readAll","ids","read","routeParams","id","ValidationError","updateAll","updated","update","payload","parse","deleteAll","delete","del","Param","ApiNotFoundResponse","ApiBody","schema","$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","UseDecafFilter","UseFilters","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","NestBootstraper","_logger","Logger","initialize","enableLogger","customLogger","useLogger","enableCors","origins","allowMethods","allowedOrigins","o","toLowerCase","corsOptions","origin","callback","credentials","methods","useHelmet","helmet","require","use","warn","useGlobalPipes","pipes","useGlobalFilters","filters","useGlobalInterceptors","interceptors","start","port","process","PORT","listen","getUrl","DecafCoreModule","DecafCoreModule_1","moduleRef","bootPersistence","trimmed","conf","contr","pop","PersistenceService","boot","clients","client","i","c","typeOrmModuleOptions","useValue","inject","exports","onApplicationShutdown","adapters","shutdown","Global","ModuleRef","LISTENING_ADAPTERS_FLAVOURS","EventsController","EventsController_1","Observable","observer","cb","refresh","Promise","resolve","modelConstr","serialize","normalizeEventResponse","observe","unObserve","listenForModel","Sse","DecafStreamModule","DecafStreamModule_1","forFlavours","imports","RouterModule","register","DecafModule","DecafModule_1","forRootAsync","autoControllers","observerOptions","enableObserverEvents","repoForModel","m","VERSION","PACKAGE_NAME","registerLibrary"],"mappings":"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"}
|
package/lib/controllers.cjs
CHANGED
|
@@ -23,7 +23,7 @@ class DecafModelController extends DecafController {
|
|
|
23
23
|
}
|
|
24
24
|
catch (e) {
|
|
25
25
|
try {
|
|
26
|
-
this._persistence = core_1.Service.get(this.class
|
|
26
|
+
this._persistence = core_1.Service.get(this.class);
|
|
27
27
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
28
28
|
}
|
|
29
29
|
catch (e) {
|
package/lib/controllers.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"controllers.js","sourceRoot":"","sources":["../src/controllers.ts"],"names":[],"mappings":";;;AAAA,yCAawB;
|
|
1
|
+
{"version":3,"file":"controllers.js","sourceRoot":"","sources":["../src/controllers.ts"],"names":[],"mappings":";;;AAAA,yCAawB;AAOxB,MAAsB,eAEpB,SAAQ,cAAgB;IACxB,YACqB,aAAkC,EACrD,IAAY;QAEZ,KAAK,CAAC,IAAI,CAAC,CAAC;QAHO,kBAAa,GAAb,aAAa,CAAqB;IAIvD,CAAC;IA4BkB,MAAM,CAKvB,IAAuC,EACvC,SAAiB,EACjB,cAAsB,KAAe,EACrC,SAAqC;QAMrC,MAAM,GAAG,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC;QACnC,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,WAAW,CAAC,CAAC;QACpD,OAAO,4BAAqB,CAAC,MAAM,CAAC,IAAI,CACtC,IAAI,EACJ,SAAS,EACT,SAAS,IAAI,EAAE,EACf,WAAW,EACX,GAAG,CAAC,GAAG,IAAI,EAAE,GAAG,CAAC,CACX,CAAC;IACX,CAAC;CACF;AA5DD,0CA4DC;AAED,MAAsB,oBAGpB,SAAQ,eAAkB;IAK1B,WAAW,CAAC,GAAkB;QAC5B,IAAI,CAAC,IAAI,CAAC,YAAY;YACpB,IAAI,CAAC;gBACH,IAAI,CAAC,YAAY,GAAG,mBAAY,CAAC,UAAU,CACzC,IAAI,CAAC,KAAK,CACQ,CAAC;gBACrB,6DAA6D;YAC/D,CAAC;YAAC,OAAO,CAAU,EAAE,CAAC;gBACnB,IAAI,CAAC;oBACJ,IAAI,CAAC,YAAY,GAAG,cAAO,CAAC,GAAG,CAAC,IAAI,CAAC,KAAoB,CAAoB,CAAC;oBAC9E,6DAA6D;gBAC7D,CAAC;gBAAC,OAAO,CAAU,EAAE,CAAC;oBACpB,IAAI,CAAC,YAAY,GAAG,iBAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAY,CAAC;gBACjE,CAAC;YACL,CAAC;QAEH,OAAO,GAAG;YACR,CAAC,CAAC,IAAI,CAAC,YAAY,YAAY,iBAAU;gBACvC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC;gBAC/C,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC;YAC5C,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC;IACxB,CAAC;IAED,YAAsB,aAAkC,EAAE,IAAY;QACpE,KAAK,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC;IAC7B,CAAC;IAuCkB,MAAM,CAIvB,IAA0E,EAC1E,SAAiB,EACjB,cAAuB,KAAK;QAc5B,0BAA0B;QAE1B,MAAM,GAAG,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC;QACnC,IAAI,SAAS,GAAwB,EAAE,CAAC;QACxC,IAAI,CAAC;YACH,SAAS,GAAG,GAAG,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;YACjC,6DAA6D;QAC/D,CAAC;QAAC,OAAO,CAAU,EAAE,CAAC;YACpB,aAAa;QACf,CAAC;QACD,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;QAC1C,IAAI,UAAU,GAA2B,SAAS,CAAC;QACnD,IAAI,WAAW,YAAY,mBAAY;YACrC,UAAU,GAAG,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;aACtC,IAAI,WAAW,YAAY,iBAAU;YACxC,UAAU,GAAG,WAAW,CAAC,SAAS,CAAC,CAAC;aACjC,IAAK,WAA0C,CAAC,OAAO,EAAE,CAAC;YAC7D,UAAU,GAAG,WAAW,CAAC;QAC3B,CAAC;QAED,IAAI,OAAgC,CAAC;QAErC,IAAI,CAAC,WAAW,EAAE,CAAC;YACjB,OAAO,GAAK,UAA0C,CAAC,QAAQ,CAAS,CACtE,IAAI,EACJ,SAAS,EACT,KAAK,EACL,SAAS,CACV,CAAC;YAEF,OAAO,OAAc,CAAC;QACxB,CAAC;QAED,OACI,UAA0C,CAAC,QAAQ,CAAS,CAC5D,IAAI,EACJ,SAAS,EACT,IAAI,EACJ,SAAS,CAEZ,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE;YACjB,OAAO,OAAO,CAAC;QACjB,CAAC,CAAQ,CAAC;IACZ,CAAC;CACF;AAxID,oDAwIC"}
|
package/lib/esm/controllers.js
CHANGED
|
@@ -19,7 +19,7 @@ export class DecafModelController extends DecafController {
|
|
|
19
19
|
}
|
|
20
20
|
catch (e) {
|
|
21
21
|
try {
|
|
22
|
-
this._persistence = Service.get(this.class
|
|
22
|
+
this._persistence = Service.get(this.class);
|
|
23
23
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
24
24
|
}
|
|
25
25
|
catch (e) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"controllers.js","sourceRoot":"","sources":["../../src/controllers.ts"],"names":[],"mappings":"AAAA,OAAO,EAKL,qBAAqB,EAIrB,YAAY,EAEZ,UAAU,EACV,OAAO,GACR,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"controllers.js","sourceRoot":"","sources":["../../src/controllers.ts"],"names":[],"mappings":"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"}
|
package/lib/esm/index.d.ts
CHANGED
package/lib/esm/index.js
CHANGED
|
@@ -39,7 +39,7 @@ export * from "./events-module/index.js";
|
|
|
39
39
|
* @constant
|
|
40
40
|
* @type {string}
|
|
41
41
|
*/
|
|
42
|
-
export const VERSION = "0.2.
|
|
42
|
+
export const VERSION = "0.2.26";
|
|
43
43
|
export const PACKAGE_NAME = "@decaf-ts/for-nest";
|
|
44
44
|
Metadata.registerLibrary(PACKAGE_NAME, VERSION);
|
|
45
45
|
//# sourceMappingURL=index.js.map
|
package/lib/index.cjs
CHANGED
|
@@ -56,7 +56,7 @@ __exportStar(require("./events-module/index.cjs"), exports);
|
|
|
56
56
|
* @constant
|
|
57
57
|
* @type {string}
|
|
58
58
|
*/
|
|
59
|
-
exports.VERSION = "0.2.
|
|
59
|
+
exports.VERSION = "0.2.26";
|
|
60
60
|
exports.PACKAGE_NAME = "@decaf-ts/for-nest";
|
|
61
61
|
decoration_1.Metadata.registerLibrary(exports.PACKAGE_NAME, exports.VERSION);
|
|
62
62
|
//# sourceMappingURL=index.js.map
|
package/lib/index.d.ts
CHANGED