@decaf-ts/for-nest 0.2.29 → 0.2.30
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/package.json +17 -13
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",q=Symbol("DecafHandlers"),$=Symbol("DecafAdapterForOptions"),j=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(j)),p.__metadata("design:paramtypes",[d.Reflector,Object])],e.AuthInterceptor);class B{parseRequest(e){const t=e.headers.authorization?.split(" ")[1];return t}async authorize(e,r){const a=e.switchToHttp().getRequest(),i=this.parseRequest(a);if(!i)throw new s.AuthorizationError("Unauthenticated");if(!t.Metadata.get(o.Model.get(r),s.PersistenceKeys.AUTH_ROLE).includes(i))throw new s.AuthorizationError("Missing role: "+i)}}e.DecafRequestContext=class{constructor(e){this.req=e}get request(){return this.req}put(e){let t;try{t=this.ctx.get("overrides")}catch(e){t={}}this._ctx=this.ctx.accumulate({overrides:Object.assign(t,e)})}applyCtx(e){this._ctx=e}get ctx(){if(!this._ctx)throw new c.InternalError("Context not initialized for request");return this._ctx}},e.DecafRequestContext=p.__decorate([a.Injectable({scope:a.Scope.REQUEST}),p.__param(0,a.Inject(d.REQUEST)),p.__metadata("design:paramtypes",[Request])],e.DecafRequestContext),e.DecafHandlerExecutor=class{constructor(e,t){this.handlers=e,this.context=t}async exec(e,t){for(const r of this.handlers)await r.handle(this.context,e,t)}},e.DecafHandlerExecutor=p.__decorate([a.Injectable({scope:a.Scope.REQUEST}),p.__param(0,a.Inject(q)),p.__metadata("design:paramtypes",[Array,e.DecafRequestContext])],e.DecafHandlerExecutor);const U=e=>({name:e,description:e+" parameter for the query",required:!0,type:String});function H(e,t,r,o=!1){const i=M(r),c=(e=>e.split("/").filter(e=>e.startsWith(":")).map(e=>e.slice(1)))(t).map(U),p=[];return"GET"===r&&o&&p.push(n.ApiQuery({name:"direction",required:!1,enum:s.OrderDirection,description:"the sort order when applicable"}),n.ApiQuery({name:"limit",required:!1,description:"limit or page size when applicable"}),n.ApiQuery({name:"offset",required:!1,description:"offset or bookmark when applicable"})),{method:[i(t),...c.map(n.ApiParam),...p,n.ApiOperation({summary:`Retrieve records using according to "${e}".`}),n.ApiOkResponse({description:"Result successfully retrieved."}),n.ApiNoContentResponse({description:"No content returned by the method."})],params:[C(c),a.Query()]}}function G(e,t,r,a){const o=e?.prototype??e;a.method.forEach(e=>e(o,t,r)),a.params?.forEach((e,r)=>e(o,t,r))}function Q(e,t,...r){if(e instanceof s.ModelService)return"function"==typeof e[t]?e[t](...r):e.statement(t,...r);if("function"==typeof e[t])return e[t](...r);throw Error(`Persistence method "${t}" not found on ${e?.constructor?.name}`)}function z(e){return async function(t,r){const a=this.log.for(e);try{a.debug(`Invoking persistence method "${e}" given parameters: ${JSON.stringify(t.valuesInOrder)}`);const{direction:o,limit:s,offset:i}=r;return await Q(this.persistence(),e,...t.valuesInOrder,o,s,i)}catch(t){throw a.error(`Custom query "${e}" failed`,t),t}}}function V(e,t,r){return Object.defineProperty(e.prototype||e,t,{value:r,writable:!1}),Object.getOwnPropertyDescriptor(e.prototype||e,t)}class Y extends s.Service{constructor(e,t){super(t),this.clientContext=e}logCtx(e,t,r=!1,a){const o=this.clientContext.ctx;return e=e.filter(e=>void 0!==e),s.ContextualLoggedClass.logCtx.call(this,t,a||{},r,...e,o)}}class 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)}}const t=this.clientContext.request[$]||{};return e&&this.clientContext.put(t),e?this._persistence instanceof s.Repository?this._persistence.override(t):this._persistence.for(t):this._persistence}constructor(e,t){super(e,t)}logCtx(e,t,r=!1){const a=this.clientContext.ctx;let o={};try{o=a.get("overrides")}catch(e){}const i=this.persistence(a);let n,c;return i instanceof s.ModelService?n=i.repo.adapter:i instanceof s.Repository?n=i.adapter:i.context&&(n=i),r?n.logCtx(e,t,!0,o).then(e=>e):(c=n.logCtx(e,t,!1,o),c)}}const 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:q,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(),o=r.getResponse(),s=r.getRequest(),i="production"===l.LoggedEnvironment.env;let n;e instanceof a.NotFoundException?n=(e=new a.NotAcceptableException(e.message)).getStatus():e instanceof c.BaseError||(e=new c.InternalError(e.message)),o.status(e.code||n).json({status:e.code||n,error:i?e.name:e.message,timestamp:(new Date).toISOString(),path:s.url,method:s.method})}},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=j,e.AUTH_META_KEY=N,e.ApiOperationFromModel=w,e.ApiParamsFromModel=D,e.ApiProperty=O,e.Auth=K,e.BulkApiOperationFromModel=(e,r,o)=>{const s={GET:[c.BulkCrudOperationKeys.READ_ALL,a.Get],POST:[c.BulkCrudOperationKeys.CREATE_ALL,a.Post],PUT:[c.BulkCrudOperationKeys.UPDATE_ALL,a.Put],PATCH:[c.BulkCrudOperationKeys.UPDATE_ALL,a.Patch],DELETE:[c.BulkCrudOperationKeys.DELETE_ALL,a.Delete]},[i,p]=s[r];return v(e,i)?t.apply(n.ApiExcludeEndpoint()):t.apply(p(o))},e.CorsError=ae,e.DECAF_ADAPTER_ID=F,e.DECAF_ADAPTER_OPTIONS=$,e.DECAF_CONTEXT_KEY=L,e.DECAF_HANDLERS=q,e.DECAF_MODULE_OPTIONS=I,e.DECAF_ROUTE=k,e.DECORATORS=_,e.DECORATORS_PREFIX=g,e.DecafAuthHandler=B,e.DecafBody=S,e.DecafController=Y,e.DecafModelController=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){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",k="DecafAdapter",F="DecafRoute",q=Symbol("DecafHandlers"),$=Symbol("DecafAdapterForOptions"),j=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(j)),p.__metadata("design:paramtypes",[d.Reflector,Object])],e.AuthInterceptor);class B{parseRequest(e){const t=e.headers.authorization?.split(" ")[1];return t}async authorize(e,r){const a=e.switchToHttp().getRequest(),i=this.parseRequest(a);if(!i)throw new s.AuthorizationError("Unauthenticated");if(!t.Metadata.get(o.Model.get(r),s.PersistenceKeys.AUTH_ROLE).includes(i))throw new s.AuthorizationError("Missing role: "+i)}}e.DecafRequestContext=class{constructor(e){this.req=e}get request(){return this.req}put(e){let t;try{t=this.ctx.get("overrides")}catch(e){t={}}this._ctx=this.ctx.accumulate({overrides:Object.assign(t,e)})}applyCtx(e){this._ctx=e}get ctx(){if(!this._ctx)throw new c.InternalError("Context not initialized for request");return this._ctx}},e.DecafRequestContext=p.__decorate([a.Injectable({scope:a.Scope.REQUEST}),p.__param(0,a.Inject(d.REQUEST)),p.__metadata("design:paramtypes",[Request])],e.DecafRequestContext),e.DecafHandlerExecutor=class{constructor(e,t){this.handlers=e,this.context=t}async exec(e,t){for(const r of this.handlers)await r.handle(this.context,e,t)}},e.DecafHandlerExecutor=p.__decorate([a.Injectable({scope:a.Scope.REQUEST}),p.__param(0,a.Inject(q)),p.__metadata("design:paramtypes",[Array,e.DecafRequestContext])],e.DecafHandlerExecutor);const U=e=>({name:e,description:e+" parameter for the query",required:!0,type:String});function H(e,t,r,o=!1){const i=M(r),c=(e=>e.split("/").filter(e=>e.startsWith(":")).map(e=>e.slice(1)))(t).map(U),p=[];return"GET"===r&&o&&p.push(n.ApiQuery({name:"direction",required:!1,enum:s.OrderDirection,description:"the sort order when applicable"}),n.ApiQuery({name:"limit",required:!1,description:"limit or page size when applicable"}),n.ApiQuery({name:"offset",required:!1,description:"offset or bookmark when applicable"})),{method:[i(t),...c.map(n.ApiParam),...p,n.ApiOperation({summary:`Retrieve records using according to "${e}".`}),n.ApiOkResponse({description:"Result successfully retrieved."}),n.ApiNoContentResponse({description:"No content returned by the method."})],params:[C(c),a.Query()]}}function G(e,t,r,a){const o=e?.prototype??e;a.method.forEach(e=>e(o,t,r)),a.params?.forEach((e,r)=>e(o,t,r))}function Q(e,t,...r){if(e instanceof s.ModelService)return"function"==typeof e[t]?e[t](...r):e.statement(t,...r);if("function"==typeof e[t])return e[t](...r);throw Error(`Persistence method "${t}" not found on ${e?.constructor?.name}`)}function z(e){return async function(t,r){const a=this.log.for(e);try{a.debug(`Invoking persistence method "${e}" given parameters: ${JSON.stringify(t.valuesInOrder)}`);const{direction:o,limit:s,offset:i}=r;return await Q(this.persistence(),e,...t.valuesInOrder,o,s,i)}catch(t){throw a.error(`Custom query "${e}" failed`,t),t}}}function V(e,t,r){return Object.defineProperty(e.prototype||e,t,{value:r,writable:!1}),Object.getOwnPropertyDescriptor(e.prototype||e,t)}class Y extends s.Service{constructor(e,t){super(t),this.clientContext=e}logCtx(e,t,r=!1,a){const o=this.clientContext.ctx;return e=e.filter(e=>void 0!==e),s.ContextualLoggedClass.logCtx.call(this,t,a||{},r,...e,o)}}class 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)}}const t=this.clientContext.request[$]||{};return e&&this.clientContext.put(t),e?this._persistence instanceof s.Repository?this._persistence.override(t):this._persistence.for(t):this._persistence}constructor(e,t){super(e,t)}logCtx(e,t,r=!1){const a=this.clientContext.ctx;let o={};try{o=a.get("overrides")}catch(e){}const i=this.persistence(a);let n,c;return i instanceof s.ModelService?n=i.repo.adapter:i instanceof s.Repository?n=i.adapter:i.context&&(n=i),r?n.logCtx(e,t,!0,o).then(e=>e):(c=n.logCtx(e,t,!1,o),c)}}const 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(F))??{};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:q,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(),o=r.getResponse(),s=r.getRequest(),i="production"===l.LoggedEnvironment.env;let n;e instanceof a.NotFoundException?n=(e=new a.NotAcceptableException(e.message)).getStatus():e instanceof c.BaseError||(e=new c.InternalError(e.message)),o.status(e.code||n).json({status:e.code||n,error:i?e.name:e.message,timestamp:(new Date).toISOString(),path:s.url,method:s.method})}},e.DecafExceptionFilter=p.__decorate([a.Catch()],e.DecafExceptionFilter);const oe={path:"docs",auth:{type:"http",scheme:"bearer",bearerFormat:"JWT",name:"Authorization",description:"Enter JWT token",in:"header"},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:k,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(k);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=j,e.AUTH_META_KEY=N,e.ApiOperationFromModel=w,e.ApiParamsFromModel=D,e.ApiProperty=O,e.Auth=K,e.BulkApiOperationFromModel=(e,r,o)=>{const s={GET:[c.BulkCrudOperationKeys.READ_ALL,a.Get],POST:[c.BulkCrudOperationKeys.CREATE_ALL,a.Post],PUT:[c.BulkCrudOperationKeys.UPDATE_ALL,a.Put],PATCH:[c.BulkCrudOperationKeys.UPDATE_ALL,a.Patch],DELETE:[c.BulkCrudOperationKeys.DELETE_ALL,a.Delete]},[i,p]=s[r];return v(e,i)?t.apply(n.ApiExcludeEndpoint()):t.apply(p(o))},e.CorsError=ae,e.DECAF_ADAPTER_ID=k,e.DECAF_ADAPTER_OPTIONS=$,e.DECAF_CONTEXT_KEY=L,e.DECAF_HANDLERS=q,e.DECAF_MODULE_OPTIONS=I,e.DECAF_ROUTE=F,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","request","put","record","overrides","e","_ctx","accumulate","assign","applyCtx","InternalError","scope","Scope","REQUEST","Request","DecafHandlerExecutor","handlers","context","exec","res","apiParamSpec","getApiDecorators","methodName","routePath","httpVerb","includeQueryParams","NestHttpRouteDec","apiPathParams","startsWith","slice","extractPathParams","swaggerQueryParams","push","ApiQuery","OrderDirection","method","ApiParam","ApiOperation","summary","ApiOkResponse","ApiNoContentResponse","Query","applyApiDecorators","descriptor","proto","prototype","forEach","d","index","resolvePersistenceMethod","persistence","ModelService","statement","createRouteHandler","async","pathParams","queryParams","log","for","debug","JSON","stringify","direction","error","defineRouteMethod","ControllerClass","defineProperty","writable","getOwnPropertyDescriptor","DecafController","Service","clientContext","super","logCtx","operation","allowCreate","ContextualLoggedClass","call","DecafModelController","_persistence","getService","Repository","forModel","certs","override","contextual","ctxArgs","repo","then","dtoCache","Map","DtoFor","TransactionOperationKeys","cache","has","set","WeakMap","getDtoCache","cached","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","toOverrides","STATEMENT","pathDirection","a","parseInt","resolvedDirection","COUNT_OF","MAX_OF","MIN_OF","AVG_OF","SUM_OF","DISTINCT_OF","GROUP_OF","createAll","resp","CREATE_ALL","created","verbose","readAll","ids","READ_ALL","read","routeParams","id","ValidationError","updateAll","updated","update","payload","parse","deleteAll","DELETE_ALL","delete","del","Param","ApiNotFoundResponse","ApiBody","schema","$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","isProduction","LoggedEnvironment","env","statusCode","NotFoundException","NotAcceptableException","getStatus","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","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","request","put","record","overrides","e","_ctx","accumulate","assign","applyCtx","InternalError","scope","Scope","REQUEST","Request","DecafHandlerExecutor","handlers","context","exec","res","apiParamSpec","getApiDecorators","methodName","routePath","httpVerb","includeQueryParams","NestHttpRouteDec","apiPathParams","startsWith","slice","extractPathParams","swaggerQueryParams","push","ApiQuery","OrderDirection","method","ApiParam","ApiOperation","summary","ApiOkResponse","ApiNoContentResponse","Query","applyApiDecorators","descriptor","proto","prototype","forEach","d","index","resolvePersistenceMethod","persistence","ModelService","statement","createRouteHandler","async","pathParams","queryParams","log","for","debug","JSON","stringify","direction","error","defineRouteMethod","ControllerClass","defineProperty","writable","getOwnPropertyDescriptor","DecafController","Service","clientContext","super","logCtx","operation","allowCreate","ContextualLoggedClass","call","DecafModelController","_persistence","getService","Repository","forModel","certs","override","contextual","ctxArgs","repo","then","dtoCache","Map","DtoFor","TransactionOperationKeys","cache","has","set","WeakMap","getDtoCache","cached","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","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","toOverrides","STATEMENT","pathDirection","a","parseInt","resolvedDirection","COUNT_OF","MAX_OF","MIN_OF","AVG_OF","SUM_OF","DISTINCT_OF","GROUP_OF","createAll","resp","CREATE_ALL","created","verbose","readAll","ids","READ_ALL","read","routeParams","id","ValidationError","updateAll","updated","update","payload","parse","deleteAll","DELETE_ALL","delete","del","Param","ApiNotFoundResponse","ApiBody","schema","$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","isProduction","LoggedEnvironment","env","statusCode","NotFoundException","NotAcceptableException","getStatus","BaseError","status","code","json","toISOString","url","Catch","SWAGGER_UI_CONSTANTS","auth","scheme","bearerFormat","in","topbarBgColor","SwaggerCustomUI","customCSS","css","topbarIconPath","b64","getCustomOptions","favicon","faviconPath","customSiteTitle","title","customCss","swaggerOptions","persistAuthorization","jsonDocumentUrl","yamlDocumentUrl","file","img","filePath","assetsPath","readFileSync","encoding","SwaggerBuilder","app","createDocument","config","DocumentBuilder","setTitle","setDescription","setVersion","version","addBearerAuth","build","SwaggerModule","extraModels","setupSwagger","document","swaggerUI","faviconFilePath","topbarIconFilePath","setup","DecafCoreModule","_logger","DecafCoreModule_1","moduleRef","bootPersistence","trimmed","conf","contr","pop","PersistenceService","boot","clients","client","i","c","typeOrmModuleOptions","useValue","inject","onApplicationShutdown","adapters","shutdown","Global","ModuleRef","LISTENING_ADAPTERS_FLAVOURS","EventsController","EventsController_1","listen","Observable","observer","cb","refresh","Promise","resolve","modelConstr","serialize","normalizeEventResponse","observe","unObserve","listenForModel","Sse","DecafStreamModule","DecafStreamModule_1","forFlavours","imports","RouterModule","register","DecafModule","DecafModule_1","forRootAsync","autoControllers","observerOptions","enableObserverEvents","VERSION","PACKAGE_NAME","registerLibrary","roles","Logger","initialize","enableLogger","customLogger","useLogger","enableCors","origins","allowMethods","allowedOrigins","o","toLowerCase","corsOptions","origin","callback","credentials","methods","useHelmet","helmet","require","use","warn","useGlobalPipes","pipes","useGlobalFilters","filters","useGlobalInterceptors","interceptors","start","port","process","PORT","getUrl","UseFilters","m"],"mappings":"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"}
|
package/dist/for-nest.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{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 T,Module as O,Catch as R,NotFoundException as x,NotAcceptableException as S,UseFilters as $,Logger as _,Global as C,Sse as I}from"@nestjs/common";import{Model as k,ValidationKeys as F}from"@decaf-ts/decorator-validation";import{AuthorizationError as D,PersistenceKeys as N,OrderDirection as L,ModelService as q,Service as j,ContextualLoggedClass as M,Repository as U,TransactionOperationKeys as B,Adapter as G,Context as H,PreparedStatementKeys as z,DefaultAdapterFlags as Y,ForbiddenError as Q,PersistenceService as J}from"@decaf-ts/core";import{isArray as X,isString as K,pickBy as V,negate as W}from"lodash";import{ApiExcludeEndpoint as Z,ApiParam as ee,ApiBearerAuth as te,ApiQuery as re,ApiOperation as oe,ApiOkResponse as se,ApiNoContentResponse as ie,ApiNotFoundResponse as ne,ApiBody as ae,getSchemaPath as ce,ApiCreatedResponse as pe,ApiBadRequestResponse as de,ApiUnprocessableEntityResponse as le,ApiTags as ue,ApiExtraModels as he,DocumentBuilder as fe,SwaggerModule as me}from"@nestjs/swagger";import{OperationKeys as ye,BulkCrudOperationKeys as ge,InternalError as be,DBKeys as we,ValidationError as Ee,BaseError as Ae}from"@decaf-ts/db-decorators";import{__decorate as ve,__param as Pe,__metadata as Te}from"tslib";import{Reflector as Oe,REQUEST as Re,APP_INTERCEPTOR as xe,ModuleRef as Se,RouterModule as $e}from"@nestjs/core";import{toPascalCase as _e,Logging as Ce,toKebabCase as Ie,LoggedEnvironment as ke}from"@decaf-ts/logging";import{readFileSync as Fe}from"fs";import*as De from"path";import{Observable as Ne}from"rxjs";const Le="swagger",qe={API_OPERATION:Le+"/apiOperation",API_RESPONSE:Le+"/apiResponse",API_PRODUCES:Le+"/apiProduces",API_CONSUMES:Le+"/apiConsumes",API_TAGS:Le+"/apiUseTags",API_CALLBACKS:Le+"/apiCallbacks",API_PARAMETERS:Le+"/apiParameters",API_HEADERS:Le+"/apiHeaders",API_MODEL_PROPERTIES:Le+"/apiModelProperties",API_MODEL_PROPERTIES_ARRAY:Le+"/apiModelPropertiesArray",API_SECURITY:Le+"/apiSecurity",API_EXCLUDE_ENDPOINT:Le+"/apiExcludeEndpoint",API_EXCLUDE_CONTROLLER:Le+"/apiExcludeController",API_EXTRA_MODELS:Le+"/apiExtraModels",API_EXTENSION:Le+"/apiExtension",API_SCHEMA:Le+"/apiSchema",API_DEFAULT_GETTER:Le+"/apiDefaultGetter",API_LINK:Le+"/apiLink"};function je(e,t){if(!e)return[e,t];if(t)return[e,t];const r=X(e);return[r?e[0]:e,r]}const Me=e=>void 0===e;function Ue(e){if("function"==typeof e)return Ue(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 Be(e){return e.filter(K).length>0?"string":"number"}function Ge(e,t,r=!0){return(o,s)=>{const i=Reflect.getMetadata(qe.API_MODEL_PROPERTIES_ARRAY,o)||[],n=":"+s;i.includes(n)||Reflect.defineMetadata(qe.API_MODEL_PROPERTIES_ARRAY,[...i,":"+s],o);const a=Reflect.getMetadata(e,o,s);if(a){const i=V(t,W(Me)),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,...V(t,W(Me))},o,s)}}}function He(e={}){return ze(e)}function ze(e={},t=!0){const[r,o]=je(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=Ue(e.enum);e.items={type:Be(t),enum:t},delete e.enum}else if("enum"in e&&void 0!==e.enum){const t=Ue(e.enum);e.enum=t,e.type=Be(t)}var s;return Array.isArray(e.type)&&(e.type="array",e.items={type:"array",items:{type:e.type[0]}}),Ge(qe.API_MODEL_PROPERTIES,e,t)}function Ye(t,r){const{handler:o,args:s}=e.get(t,ye.REFLECT+ye.BLOCK)||{};return!!o&&(o(...s,r)??!1)}function Qe(e,r,o){const s={GET:[ye.READ,a],POST:[ye.CREATE,c],PUT:[ye.UPDATE,p],PATCH:[ye.UPDATE,d],DELETE:[ye.DELETE,l]},[i,n]=s[r];return Ye(e,i)?t(Z()):t(n(o))}function Je(e,r,o){const s={GET:[ge.READ_ALL,a],POST:[ge.CREATE_ALL,c],PUT:[ge.UPDATE_ALL,p],PATCH:[ge.UPDATE_ALL,d],DELETE:[ge.DELETE_ALL,l]},[i,n]=s[r];return Ye(e,i)?t(Z()):t(n(o))}function Xe(e=[]){const t=e.map(e=>ee({name:e.name,description:e.description??"Path parameter: "+e.name,required:e.required??!0,type:e.type??String}));return u(...t)}const Ke=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}),Ve=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 We(e=[]){const t=e.map(e=>e.name);return Ve(t)}const Ze=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 et(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 tt="DecafModuleOptions",rt="DecafAdapter",ot="DecafRoute",st=Symbol("DecafHandlers"),it=Symbol("DecafAdapterForOptions"),nt=Symbol("AUTH_HANDLER"),at="auth:meta",ct=Symbol("decaf:context");let pt=class{constructor(e,t){this.reflector=e,this.authHandler=t}async intercept(e,t){const r=this.reflector.get(at,e.getHandler())??this.reflector.get(at,e.getClass());return r&&this.authHandler&&await this.authHandler.authorize(e,r),t.handle()}};function dt(e){const t="string"==typeof e?e:e.name;return u(te(),b(at,t),w(pt))}pt=ve([m(),Pe(1,y()),Pe(1,g(nt)),Te("design:paramtypes",[Oe,Object])],pt);class lt{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 D("Unauthenticated");if(!e.get(k.get(r),N.AUTH_ROLE).includes(s))throw new D("Missing role: "+s)}}class ut extends lt{constructor(){super()}async authorize(t,r){const o=t.switchToHttp().getRequest(),s=this.parseRequest(o);if(!s)throw new D("Unauthenticated");const i=e.get(k.get(r),N.AUTH_ROLE);if(!i.includes(s))throw new D("Missing role: "+s);return i}}let ht=class{constructor(e){this.req=e}get request(){return this.req}put(e){let t;try{t=this.ctx.get("overrides")}catch(e){t={}}this._ctx=this.ctx.accumulate({overrides:Object.assign(t,e)})}applyCtx(e){this._ctx=e}get ctx(){if(!this._ctx)throw new be("Context not initialized for request");return this._ctx}};ht=ve([m({scope:E.REQUEST}),Pe(0,g(Re)),Te("design:paramtypes",[Request])],ht);let ft=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)}};ft=ve([m({scope:E.REQUEST}),Pe(0,g(st)),Te("design:paramtypes",[Array,ht])],ft);const mt=e=>({name:e,description:e+" parameter for the query",required:!0,type:String});function yt(e,t,r,o=!1){const s=et(r),i=(e=>e.split("/").filter(e=>e.startsWith(":")).map(e=>e.slice(1)))(t).map(mt),n=[];return"GET"===r&&o&&n.push(re({name:"direction",required:!1,enum:L,description:"the sort order when applicable"}),re({name:"limit",required:!1,description:"limit or page size when applicable"}),re({name:"offset",required:!1,description:"offset or bookmark when applicable"})),{method:[s(t),...i.map(ee),...n,oe({summary:`Retrieve records using according to "${e}".`}),se({description:"Result successfully retrieved."}),ie({description:"No content returned by the method."})],params:[We(i),A()]}}function gt(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 bt(e,t,...r){if(e instanceof q)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 wt(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 bt(this.persistence(),e,...t.valuesInOrder,s,i,n)}catch(t){throw o.error(`Custom query "${e}" failed`,t),t}}}function Et(e,t,r){return Object.defineProperty(e.prototype||e,t,{value:r,writable:!1}),Object.getOwnPropertyDescriptor(e.prototype||e,t)}class At extends j{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),M.logCtx.call(this,t,o||{},r,...e,s)}}class vt extends At{persistence(e){if(!this._persistence)try{this._persistence=q.getService(this.class)}catch(e){try{this._persistence=j.get(this.class)}catch(e){this._persistence=U.forModel(this.class)}}const t=this.clientContext.request[it]||{};return e&&this.clientContext.put(t),e?this._persistence instanceof U?this._persistence.override(t):this._persistence.for(t):this._persistence}constructor(e,t){super(e,t)}logCtx(e,t,r=!1){const o=this.clientContext.ctx;let s={};try{s=o.get("overrides")}catch(e){}const i=this.persistence(o);let n,a;return i instanceof q?n=i.repo.adapter:i instanceof U?n=i.adapter:i.context&&(n=i),r?n.logCtx(e,t,!0,s).then(e=>e):(a=n.logCtx(e,t,!1,s),a)}}const Pt=new Map;function Tt(t,r){if(!B.includes(t))return r;const o=(e=>(Pt.has(e)||Pt.set(e,new WeakMap),Pt.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)k.isModel(e)&&Tt(t,e);const n=i.at(-1),a=n&&k.isModel(n)?o.get(n)||Tt(t,n):k;class c extends a{}o.set(r,c),Object.defineProperty(c,"name",{value:`${_e(r.name)}${_e(t)}DTO`});const p=e.properties(r)||[],d=e.get(r,N.CREATED_BY),l=e.get(r,N.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=>k.relations(e)||[])(r),g=new Set(y),b=m.filter(e=>((e,t)=>{let r=e;for(;r&&r!==Object&&r!==Function;){if(k.generated(r,t))return!0;r=Object.getPrototypeOf(r)}return!1})(r,e)),w=new Set([...b,...f]),E=(()=>{try{return k.pk(r)}catch{return}})(),A=[ye.UPDATE,ge.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?.[F.REQUIRED],i=e.type(r,t),n={required:s};i&&(n.type=i),He(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){He({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 be(`Metadata for relation ${o} not found`);let i=s.class;if("function"!=typeof i||i.name||(i=i()),!i||"function"!=typeof i)throw new be(`Type for relation ${o} not found`);if(!k.get(i.name))continue;const n=e.validationFor(r,o);P(o,Tt(t,i),!!n[F.LIST],!!n[F.REQUIRED])}return c}G.transformerFor=(t=>{const r="string"==typeof t?t:t.alias;return e.innerGet(Symbol.for("transformers"),r)}).bind(G),G.flavoursToTransform=(()=>{const t=e.innerGet(Symbol.for("transformers"));if(t)return Object.keys(t)}).bind(G),H.prototype.toResponse=function(e){const t=this.pending();return t&&e.header("x-pending-task",JSON.stringify(t)),e};class Ot{static{this.log=Ce.for(Ot.name)}static getPersistence(e){try{return q.getService(e)}catch(t){return U.forModel(e)}}static createQueryRoutesFromRepository(t,r=N.QUERY){const o=Ot.log.for(Ot.createQueryRoutesFromRepository),s=t instanceof q?t.repo:t,i=s.class,n=e.get(s.constructor,e.key(N.QUERY))??{},a=e.get(t.constructor,e.key(ot))??{};class c extends vt{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=wt(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=Et(c,e,s);n&>(c,e,n,yt(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=Et(c,e,wt(e));s&>(c,e,s,yt(e,o,"GET",!0))}return c}static create(e){const t=Ot.log.for(Ot.create),r=k.tableName(e),o=Ie(r),s=e.name,i=Ot.getPersistence(e),{description:n,getPK:a,apiProperties:c,path:p}=Ot.getRouteParametersFromModel(e);t.debug("Creating controller for model: "+s);const d=Ot.createQueryRoutesFromRepository(i);let l=class extends d{static get class(){return e}get class(){return e}constructor(r){super(r),this.pk=k.pk(e),t.info(`Registering dynamic controller for model: ${this.class.name} route: /${o}`)}async listBy(e,t){const{ctx:r}=(await this.logCtx([],z.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([],z.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([],z.FIND,!0)).for(this.find),o=t.direction??L.ASC;return bt(this.persistence(r),this.find.name,e,o,r)}async page(e,t){const{ctx:r}=(await this.logCtx([],z.PAGE,!0)).for(this.page),{direction:o=L.ASC,limit:s,offset:i,bookmark:n}=t,a={offset:i??1,limit:s??10,bookmark:n};return bt(this.persistence(r),this.page.name,e,o,a,r)}async findOneBy(e,t){const{ctx:r}=(await this.logCtx([],z.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([],z.FIND_BY,!0)).for(this.findBy);return this.persistence(o).for(o.toOverrides()).findBy(e,t,o)}async statement(e,t,r){const{ctx:o}=(await this.logCtx([],N.STATEMENT,!0)).for(this.statement),{direction:s,offset:i,limit:n,bookmark:a}=r,c=(t=t.map(e=>("string"==typeof e?parseInt(e):e)||e)).length>1?t[1]:void 0,p=s??c;switch(p&&t.length>1&&(t[1]=p),e){case z.FIND:case z.FIND_BY:break;case z.LIST_BY:t.push(s);break;case z.PAGE:case z.PAGE_BY:t=[t[0],p,{limit:n,offset:i,bookmark:a}];case z.FIND_ONE_BY:case z.COUNT_OF:case z.MAX_OF:case z.MIN_OF:case z.AVG_OF:case z.SUM_OF:case z.DISTINCT_OF:case z.GROUP_OF:}return this.persistence(o).statement(e,...t,o)}async createAll(t,r){const{ctx:o,log:i}=(await this.logCtx([],ge.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([],ye.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([],ge.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([],ye.READ,!0)).for(this.read),o=a(...e.valuesInOrder);if(void 0===o)throw new Ee(`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([],ge.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([],ye.UPDATE,!0)).for(this.update),c=a(...t.valuesInOrder);if(void 0===c)throw new Ee(`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([],ge.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([],ye.DELETE,!0)).for(this.delete),i=a(...e.valuesInOrder);if(void 0===i)throw new Ee(`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 ve([Qe(e,"GET","listBy/:key"),oe({summary:`Retrieve ${s} records by query.`}),ee({name:"key",description:"the model key to sort by"}),re({name:"direction",required:!0,enum:L}),se({description:s+" listed successfully."}),Pe(0,v("key")),Pe(1,Ze()),Te("design:type",Function),Te("design:paramtypes",[String,Object]),Te("design:returntype",Promise)],l.prototype,"listBy",null),ve([Qe(e,"GET","paginateBy/:key/:page"),oe({summary:`Retrieve ${s} records by query.`}),ee({name:"key",description:"the model key to sort by"}),ee({name:"page",description:"the page to retrieve or the bookmark"}),re({name:"direction",required:!0,enum:L,description:"the sort order"}),re({name:"limit",required:!0,description:"the page size"}),re({name:"offset",description:"the bookmark when necessary"}),se({description:s+" listed paginated."}),Pe(0,v("key")),Pe(1,Ze()),Te("design:type",Function),Te("design:paramtypes",[String,Object]),Te("design:returntype",Promise)],l.prototype,"paginateBy",null),ve([Qe(e,"GET","find/:value"),oe({summary:`Find ${s} records using the default query attributes.`}),ee({name:"value",description:"The string to match against the default query attributes"}),re({name:"direction",required:!1,enum:L,description:"the sort order for the matching results"}),se({description:s+" records matching the provided prefix."}),Pe(0,v("value")),Pe(1,Ze()),Te("design:type",Function),Te("design:paramtypes",[String,Object]),Te("design:returntype",Promise)],l.prototype,"find",null),ve([Qe(e,"GET","page/:value"),oe({summary:`Page ${s} records using the default query attributes.`}),ee({name:"value",description:"The string to match against the default query attributes"}),re({name:"direction",required:!1,enum:L,description:"the sort order for the paged results"}),re({name:"limit",required:!1,description:"page size"}),re({name:"offset",required:!1,description:"page number"}),re({name:"bookmark",required:!1,description:"bookmark for cursor pagination"}),se({description:s+" records paged by the provided prefix."}),Pe(0,v("value")),Pe(1,Ze()),Te("design:type",Function),Te("design:paramtypes",[String,Object]),Te("design:returntype",Promise)],l.prototype,"page",null),ve([Qe(e,"GET","findOneBy/:key"),oe({summary:`Retrieve ${s} records by query.`}),ee({name:"key",description:"the model key to sort by"}),se({description:s+" listed found."}),ne({description:`No ${s} record matches the provided identifier.`}),Pe(0,v("key")),Pe(1,v("value")),Te("design:type",Function),Te("design:paramtypes",[String,Object]),Te("design:returntype",Promise)],l.prototype,"findOneBy",null),ve([Qe(e,"GET","findBy/:key/:value"),oe({summary:`Retrieve ${s} records by query.`}),ee({name:"key",description:"the model key to compare"}),ee({name:"value",description:"the value to match"}),re({name:"direction",required:!0,enum:L,description:"the sort order when applicable"}),se({description:s+" listed found."}),ne({description:`No ${s} record matches the provided identifier.`}),Pe(0,v("key")),Pe(1,v("value")),Pe(2,Ze()),Te("design:type",Function),Te("design:paramtypes",[String,Object,Object]),Te("design:returntype",Promise)],l.prototype,"findBy",null),ve([Qe(e,"GET","statement/:method/*args"),oe({summary:`Executes a prepared statement on ${s}.`}),ee({name:"method",description:"the prepared statement to execute"}),ee({name:"args",description:"concatenated list of arguments the prepared statement can accept"}),re({name:"direction",required:!0,enum:L,description:"the sort order when applicable"}),re({name:"limit",required:!0,description:"limit or page size when applicable"}),re({name:"offset",required:!0,description:"offset or bookmark when applicable"}),se({description:s+" listed found."}),ne({description:`No ${s} record matches the provided identifier.`}),Pe(0,v("method")),Pe(1,v("args")),Pe(2,Ze()),Te("design:type",Function),Te("design:paramtypes",[String,Array,Object]),Te("design:returntype",Promise)],l.prototype,"statement",null),ve([Qe(e,"POST","bulk"),oe({summary:`Create a new ${s}.`}),ae({description:"Payload for "+s,schema:{type:"array",items:{$ref:ce(e)}}}),pe({description:s+" created successfully.",schema:{type:"array",items:{$ref:ce(e)}}}),de({description:"Payload validation failed."}),le({description:"Repository rejected the provided payload."}),Pe(0,Ke()),Pe(1,P({passthrough:!0})),Te("design:type",Function),Te("design:paramtypes",[Array,Object]),Te("design:returntype",Promise)],l.prototype,"createAll",null),ve([Qe(e,"POST"),oe({summary:`Create a new ${s}.`}),ae({description:"Payload for "+s,type:Tt(ye.CREATE,e)}),pe({description:s+" created successfully.",schema:{$ref:ce(e)}}),de({description:"Payload validation failed."}),le({description:"Repository rejected the provided payload."}),Pe(0,Ke()),Pe(1,P({passthrough:!0})),Te("design:type",Function),Te("design:paramtypes",[Object,Object]),Te("design:returntype",Promise)],l.prototype,"create",null),ve([Qe(e,"GET","bulk"),oe({summary:`Retrieve a ${s} record by id.`}),re({name:"ids",required:!0,type:"array"}),se({description:s+" retrieved successfully.",schema:{type:"array",items:{$ref:ce(e)}}}),ne({description:`No ${s} record matches the provided identifier.`}),Pe(0,A("ids")),Te("design:type",Function),Te("design:paramtypes",[Array]),Te("design:returntype",Promise)],l.prototype,"readAll",null),ve([Qe(e,"GET",p),Xe(c),oe({summary:`Retrieve a ${s} record by id.`}),se({description:s+" retrieved successfully.",schema:{$ref:ce(e)}}),ne({description:`No ${s} record matches the provided identifier.`}),Pe(0,We(c)),Te("design:type",Function),Te("design:paramtypes",[Object]),Te("design:returntype",Promise)],l.prototype,"read",null),ve([Qe(e,"PUT","bulk"),Xe(c),oe({summary:`Replace an existing ${s} record with a new payload.`}),ae({description:"Payload for replace a existing record of "+s,schema:{type:"array",$ref:ce(Tt(ye.UPDATE,e))}}),se({description:s+" updated successfully.",schema:{type:"array",items:{$ref:ce(e)}}}),ne({description:`No ${s} record matches the provided identifier.`}),de({description:"Payload validation failed."}),Pe(0,Ke()),Pe(1,P({passthrough:!0})),Te("design:type",Function),Te("design:paramtypes",[Array,Object]),Te("design:returntype",Promise)],l.prototype,"updateAll",null),ve([Qe(e,"PUT",p),Xe(c),oe({summary:`Replace an existing ${s} record with a new payload.`}),ae({description:"Payload for replace a existing record of "+s,type:Tt(ye.UPDATE,e)}),se({description:s+" updated successfully.",schema:{$ref:ce(e)}}),ne({description:`No ${s} record matches the provided identifier.`}),de({description:"Payload validation failed."}),Pe(0,We(c)),Pe(1,Ke()),Pe(2,P({passthrough:!0})),Te("design:type",Function),Te("design:paramtypes",[Object,Object,Object]),Te("design:returntype",Promise)],l.prototype,"update",null),ve([Qe(e,"DELETE","bulk"),Xe(c),oe({summary:`Retrieve a ${s} record by id.`}),re({name:"ids",required:!0,type:"array"}),se({description:s+" deleted successfully.",schema:{type:"array",items:{$ref:ce(e)}}}),ne({description:`No ${s} record matches the provided identifier.`}),Pe(0,A("ids")),Pe(1,P({passthrough:!0})),Te("design:type",Function),Te("design:paramtypes",[Array,Object]),Te("design:returntype",Promise)],l.prototype,"deleteAll",null),ve([Qe(e,"DELETE",p),Xe(c),oe({summary:`Delete a ${s} record by id.`}),se({description:s+" deleted successfully.",schema:{$ref:ce(e)}}),ne({description:`No ${s} record matches the provided identifier.`}),Pe(0,We(c)),Pe(1,P({passthrough:!0})),Te("design:type",Function),Te("design:paramtypes",[Object,Object]),Te("design:returntype",Promise)],l.prototype,"delete",null),l=ve([T(o),ue(s),he(e),dt(e),Te("design:paramtypes",[ht])],l),l}static getRouteParametersFromModel(t){const r=k.pk(t),o=e.get(t,e.key(we.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 Rt=class{constructor(e,t){this.requestContext=e,this.executor=t}async contextualize(e){const t={headers:e.headers,overrides:{}},r=G.flavoursToTransform();if(r)for(const o of r)try{const r=G.transformerFor(o),s=await r.from(e);Object.assign(t.overrides,s)}catch(e){throw new be("Failed to contextualize request: "+e)}return(new H).accumulate(Object.assign({},Y,{logger:Ce.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()}};Rt=ve([m({scope:E.REQUEST}),Te("design:paramtypes",[ht,ft])],Rt);class xt{}function St(t){return o=>(e.set("transformers",t,o),"function"==typeof o?r("transformers",t)(o):o)}function $t(e){var t;let r=class{static{t=this}static{this.log=Ce.for(t.name).for(e)}static createModelServices(e){return e.map(e=>({provide:e.name+"Service",useFactory:()=>q.forModel(e)}))}static forRoot(e,r={}){const o=this.log.for(this.forRoot);o.info("Generating controllers for flavour...");const s=G.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(Ot.create);return o.info(`Generated ${n.length} controllers`),{module:t,controllers:n,providers:[{provide:st,useFactory:()=>r.handlers?.map(e=>(o.info("Registered request handler: "+e.name),new e))??[]},ht,ft,{provide:xe,useClass:Rt},...i]}}};return r=t=ve([O({})],r),Object.assign(r,"name",{value:"DecafModule"+e}),r}o.for(i.INJECTABLE).extend({decorator:(e,t)=>(t=t||("object"==typeof e?Object.assign(e,n):n),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(F.REQUIRED).extend(He({required:!0})).apply(),o.for(F.MAX).extend({decorator:e=>He({maximum:e,required:!1})}).apply(),o.for(F.MIN).extend({decorator:e=>He({minimum:e,required:!1})}).apply(),o.for(F.MAX_LENGTH).extend({decorator:e=>He({maxLength:e,required:!1})}).apply(),o.for(F.MIN_LENGTH).extend({decorator:e=>He({minLength:e,required:!1})}).apply(),o.for(F.TYPE).extend({decorator:e=>(t,r)=>("function"!=typeof(e=Array.isArray(e)?e[0]:e)||e.name||(e=e()),He({type:e,required:!1})(t,r))}).apply(),o.for(F.DATE).extend({decorator:e=>He({type:String,format:"date-time",required:!1})}).apply(),o.for(F.ENUM).extend({decorator:e=>He({enum:Array.isArray(e)?e:Object.values(e),required:!1})}).apply(),o.for(F.PATTERN).extend({decorator:e=>He({pattern:"string"==typeof e?e:e.source,required:!1})}).apply(),o.for(N.COLUMN).extend({decorator:e=>He({name:e,required:!1})}).apply(),o.for(s.DESCRIPTION).extend({decorator:e=>He({description:e,required:!1})}).apply(),o.for(N.AUTH).extend({decorator:dt}).apply();class _t extends Q{constructor(e){super(e,_t.name)}}let Ct=class{catch(e,t){const r=t.switchToHttp(),o=r.getResponse(),s=r.getRequest(),i="production"===ke.env;let n;e instanceof x?n=(e=new S(e.message)).getStatus():e instanceof Ae||(e=new be(e.message)),o.status(e.code||n).json({status:e.code||n,error:i?e.name:e.message,timestamp:(new Date).toISOString(),path:s.url,method:s.method})}};function It(){return $(new Ct)}Ct=ve([R()],Ct);const kt={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 Ft{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||kt.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=De.join(this.options.assetsPath||"",e),o=Fe(r,{encoding:"base64"});return t?"data:image/png;base64,"+o:o}}class Dt{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 fe).setTitle(this.options.title).setDescription(e).setVersion(this.options.version||"0.0.1").addBearerAuth(this.options.auth||kt.auth).build();return me.createDocument(this.app,t,{extraModels:this.options.extraModels||[]})}setupSwagger(){const e=this.createDocument(),t=new Ft({title:this.options.title,path:this.options.path||kt.path,persistAuthorization:this.options.persistAuthorization??!0,assetsPath:this.options.assetsPath,faviconPath:this.options.faviconFilePath,topbarIconPath:this.options.topbarIconFilePath,topbarBgColor:this.options.topbarBgColor});me.setup(this.options.path||kt.path,this.app,e,{...t.getCustomOptions()})}}class Nt{static get logger(){return this._logger||(this._logger=new _("NestBootstrap")),this._logger}static initialize(e){return this.app=e,this}static enableLogger(e){return this._logger=e||new _("NestBootstrap"),this.app.useLogger(this._logger),this}static enableCors(e=[],t=["GET","POST","PUT","DELETE"]){const r="*"===e?"*":e.map(e=>e.trim().toLowerCase()),o={origin:(e,t)=>e?"*"===r||Array.isArray(r)&&r.includes(e.toLowerCase())?t(null,!0):void t(new _t(`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 Dt(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 Ct]),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 Lt;let qt=class{static{Lt=this}static get persistence(){if(!this._persistence)throw new be("Persistence service not initialized");return this._persistence}static get log(){return this._logger||(this._logger=Ce.for(Lt)),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 J,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=G.transformerFor(o[t].flavour);if(!e)throw new be(`No transformer found for flavour ${o[t].flavour}. you should either @requestToContextTransformer or provide a transformer in the config`);s=e instanceof xt?e:new e}St(o[t].flavour)(s)}t.info("persistence layer created successfully!")}return this.persistence.client}static forRoot(e){const t={provide:tt,useValue:e},r={useFactory:async e=>Lt.bootPersistence(e),provide:rt,durable:!0,scope:E.DEFAULT,inject:[tt]};return{module:Lt,providers:[r,t],exports:[r]}}async onApplicationShutdown(){const e=Lt.log.for(this.onApplicationShutdown),t=this.moduleRef.get(rt);for(const r of t)try{r&&(e.info("Shutting down "+r.toString()),await r.shutdown())}catch(t){e.error("Failed to shutdown application",t)}}};qt=Lt=ve([C(),O({}),Pe(0,g(tt)),Te("design:paramtypes",[Object,Se])],qt);const jt=Symbol("LISTENING_ADAPTERS_FLAVOURS");var Mt;let Ut=Mt=class extends At{constructor(e,t){super(e,Mt.name),this.adapters=t.map(e=>G.get(e))}listen(){const e=Ce.for(Mt.name);return new Ne(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=Ce.for(Mt.name);return new Ne(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 Bt;ve([I(),Te("design:type",Function),Te("design:paramtypes",[]),Te("design:returntype",Ne)],Ut.prototype,"listen",null),ve([I("/:model"),Pe(0,A("model")),Te("design:type",Function),Te("design:paramtypes",[String]),Te("design:returntype",Ne)],Ut.prototype,"listenForModel",null),Ut=Mt=ve([T(),Pe(1,g(jt)),Te("design:paramtypes",[ht,Array])],Ut);let Gt=Bt=class{static forFlavours(e,t="events"){return{module:Bt,controllers:[Ut],imports:[$e.register([{path:t.replace(/^\//,""),module:Bt}])],providers:[ht,{provide:jt,useValue:e??[]}]}}};var Ht;Gt=Bt=ve([O({})],Gt);let zt=Ht=class{static async forRootAsync(e){const{autoControllers:t,autoServices:r,handlers:o}=e,s=(await qt.bootPersistence(e)).map(e=>e.flavour),i=[qt.forRoot(e)];return t&&s.forEach(e=>{i.push($t(e).forRoot(e,{autoServices:r,handlers:o}))}),e.observerOptions?.enableObserverEvents&&i.push(Gt.forFlavours(s)),{module:Ht,imports:i}}};function Yt(e){const t=k.get(e);if(!t)throw new be("Failed to find repository for "+e);return U.forModel(t)}zt=Ht=ve([O({})],zt);const Qt="##VERSION##",Jt="##PACKAGE##";e.registerLibrary(Jt,Qt);export{nt as AUTH_HANDLER,at as AUTH_META_KEY,Qe as ApiOperationFromModel,Xe as ApiParamsFromModel,He as ApiProperty,dt as Auth,pt as AuthInterceptor,Je as BulkApiOperationFromModel,_t as CorsError,rt as DECAF_ADAPTER_ID,it as DECAF_ADAPTER_OPTIONS,ct as DECAF_CONTEXT_KEY,st as DECAF_HANDLERS,tt as DECAF_MODULE_OPTIONS,ot as DECAF_ROUTE,qe as DECORATORS,Le as DECORATORS_PREFIX,lt as DecafAuthHandler,Ke as DecafBody,At as DecafController,Ct as DecafExceptionFilter,ft as DecafHandlerExecutor,vt as DecafModelController,zt as DecafModule,We as DecafParams,Ze as DecafQuery,ht as DecafRequestContext,Rt as DecafRequestHandlerInterceptor,ut as DecafRoleAuthHandler,Gt as DecafStreamModule,Tt as DtoFor,Ut as EventsController,Ot as FromModelController,et as HttpVerbToDecorator,Nt as NestBootstraper,Jt as PACKAGE_NAME,xt as RequestToContextTransformer,Dt as SwaggerBuilder,It as UseDecafFilter,Qt as VERSION,ze as createApiPropertyDecorator,Ge as createPropertyDecorator,Be as getEnumType,Ue as getEnumValues,$t as getModuleFor,Ye as isOperationBlocked,Me as isUndefined,Yt as repoForModel,St as requestToContextTransformer};
|
|
1
|
+
import{apply as e,Metadata as t,metadata as r,Decoration as o,DecorationKeys as s}from"@decaf-ts/decoration";import{InjectablesKeys as i,DefaultInjectablesConfig as n}from"@decaf-ts/injectable-decorators";import{Delete as a,Patch as c,Put as p,Post as d,Get as l,applyDecorators as u,createParamDecorator as h,InternalServerErrorException as f,Injectable as m,Optional as y,Inject as g,SetMetadata as b,UseInterceptors as w,Scope as E,Query as A,Param as v,Response as P,Controller as T,Module as O,Catch as R,NotFoundException as x,NotAcceptableException as S,UseFilters as $,Logger as _,Global as C,Sse as k}from"@nestjs/common";import{Model as I,ValidationKeys as F}from"@decaf-ts/decorator-validation";import{AuthorizationError as D,PersistenceKeys as N,OrderDirection as L,ModelService as q,Service as j,Repository as M,ContextualLoggedClass as U,TransactionOperationKeys as B,Adapter as G,Context as H,PreparedStatementKeys as z,DefaultAdapterFlags as Y,ForbiddenError as Q,PersistenceService as J}from"@decaf-ts/core";import{isArray as X,isString as K,pickBy as V,negate as W}from"lodash";import{ApiExcludeEndpoint as Z,ApiParam as ee,ApiBearerAuth as te,ApiQuery as re,ApiOperation as oe,ApiOkResponse as se,ApiNoContentResponse as ie,ApiNotFoundResponse as ne,ApiBody as ae,getSchemaPath as ce,ApiCreatedResponse as pe,ApiBadRequestResponse as de,ApiUnprocessableEntityResponse as le,ApiTags as ue,ApiExtraModels as he,DocumentBuilder as fe,SwaggerModule as me}from"@nestjs/swagger";import{OperationKeys as ye,BulkCrudOperationKeys as ge,InternalError as be,DBKeys as we,ValidationError as Ee,BaseError as Ae}from"@decaf-ts/db-decorators";import{__decorate as ve,__param as Pe,__metadata as Te}from"tslib";import{Reflector as Oe,REQUEST as Re,APP_INTERCEPTOR as xe,ModuleRef as Se,RouterModule as $e}from"@nestjs/core";import{toPascalCase as _e,Logging as Ce,toKebabCase as ke,LoggedEnvironment as Ie}from"@decaf-ts/logging";import{readFileSync as Fe}from"fs";import*as De from"path";import{Observable as Ne}from"rxjs";const Le="swagger",qe={API_OPERATION:Le+"/apiOperation",API_RESPONSE:Le+"/apiResponse",API_PRODUCES:Le+"/apiProduces",API_CONSUMES:Le+"/apiConsumes",API_TAGS:Le+"/apiUseTags",API_CALLBACKS:Le+"/apiCallbacks",API_PARAMETERS:Le+"/apiParameters",API_HEADERS:Le+"/apiHeaders",API_MODEL_PROPERTIES:Le+"/apiModelProperties",API_MODEL_PROPERTIES_ARRAY:Le+"/apiModelPropertiesArray",API_SECURITY:Le+"/apiSecurity",API_EXCLUDE_ENDPOINT:Le+"/apiExcludeEndpoint",API_EXCLUDE_CONTROLLER:Le+"/apiExcludeController",API_EXTRA_MODELS:Le+"/apiExtraModels",API_EXTENSION:Le+"/apiExtension",API_SCHEMA:Le+"/apiSchema",API_DEFAULT_GETTER:Le+"/apiDefaultGetter",API_LINK:Le+"/apiLink"};function je(e,t){if(!e)return[e,t];if(t)return[e,t];const r=X(e);return[r?e[0]:e,r]}const Me=e=>void 0===e;function Ue(e){if("function"==typeof e)return Ue(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 Be(e){return e.filter(K).length>0?"string":"number"}function Ge(e,t,r=!0){return(o,s)=>{const i=Reflect.getMetadata(qe.API_MODEL_PROPERTIES_ARRAY,o)||[],n=":"+s;i.includes(n)||Reflect.defineMetadata(qe.API_MODEL_PROPERTIES_ARRAY,[...i,":"+s],o);const a=Reflect.getMetadata(e,o,s);if(a){const i=V(t,W(Me)),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,...V(t,W(Me))},o,s)}}}function He(e={}){return ze(e)}function ze(e={},t=!0){const[r,o]=je(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=Ue(e.enum);e.items={type:Be(t),enum:t},delete e.enum}else if("enum"in e&&void 0!==e.enum){const t=Ue(e.enum);e.enum=t,e.type=Be(t)}var s;return Array.isArray(e.type)&&(e.type="array",e.items={type:"array",items:{type:e.type[0]}}),Ge(qe.API_MODEL_PROPERTIES,e,t)}function Ye(e,r){const{handler:o,args:s}=t.get(e,ye.REFLECT+ye.BLOCK)||{};return!!o&&(o(...s,r)??!1)}function Qe(t,r,o){const s={GET:[ye.READ,l],POST:[ye.CREATE,d],PUT:[ye.UPDATE,p],PATCH:[ye.UPDATE,c],DELETE:[ye.DELETE,a]},[i,n]=s[r];return Ye(t,i)?e(Z()):e(n(o))}function Je(t,r,o){const s={GET:[ge.READ_ALL,l],POST:[ge.CREATE_ALL,d],PUT:[ge.UPDATE_ALL,p],PATCH:[ge.UPDATE_ALL,c],DELETE:[ge.DELETE_ALL,a]},[i,n]=s[r];return Ye(t,i)?e(Z()):e(n(o))}function Xe(e=[]){const t=e.map(e=>ee({name:e.name,description:e.description??"Path parameter: "+e.name,required:e.required??!0,type:e.type??String}));return u(...t)}const Ke=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}),Ve=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 We(e=[]){const t=e.map(e=>e.name);return Ve(t)}const Ze=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 et(e){const t={GET:l,POST:d,PUT:p,PATCH:c,DELETE:a}[e];if(!t)throw Error(`Unsupported HTTP verb "${e}". No NestJS decorator mapping was found.`);return t}const tt="DecafModuleOptions",rt="DecafAdapter",ot="DecafRoute",st=Symbol("DecafHandlers"),it=Symbol("DecafAdapterForOptions"),nt=Symbol("AUTH_HANDLER"),at="auth:meta",ct=Symbol("decaf:context");let pt=class{constructor(e,t){this.reflector=e,this.authHandler=t}async intercept(e,t){const r=this.reflector.get(at,e.getHandler())??this.reflector.get(at,e.getClass());return r&&this.authHandler&&await this.authHandler.authorize(e,r),t.handle()}};function dt(e){const t="string"==typeof e?e:e.name;return u(te(),b(at,t),w(pt))}pt=ve([m(),Pe(1,y()),Pe(1,g(nt)),Te("design:paramtypes",[Oe,Object])],pt);class lt{parseRequest(e){const t=e.headers.authorization?.split(" ")[1];return t}async authorize(e,r){const o=e.switchToHttp().getRequest(),s=this.parseRequest(o);if(!s)throw new D("Unauthenticated");if(!t.get(I.get(r),N.AUTH_ROLE).includes(s))throw new D("Missing role: "+s)}}class ut extends lt{constructor(){super()}async authorize(e,r){const o=e.switchToHttp().getRequest(),s=this.parseRequest(o);if(!s)throw new D("Unauthenticated");const i=t.get(I.get(r),N.AUTH_ROLE);if(!i.includes(s))throw new D("Missing role: "+s);return i}}let ht=class{constructor(e){this.req=e}get request(){return this.req}put(e){let t;try{t=this.ctx.get("overrides")}catch(e){t={}}this._ctx=this.ctx.accumulate({overrides:Object.assign(t,e)})}applyCtx(e){this._ctx=e}get ctx(){if(!this._ctx)throw new be("Context not initialized for request");return this._ctx}};ht=ve([m({scope:E.REQUEST}),Pe(0,g(Re)),Te("design:paramtypes",[Request])],ht);let ft=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)}};ft=ve([m({scope:E.REQUEST}),Pe(0,g(st)),Te("design:paramtypes",[Array,ht])],ft);const mt=e=>({name:e,description:e+" parameter for the query",required:!0,type:String});function yt(e,t,r,o=!1){const s=et(r),i=(e=>e.split("/").filter(e=>e.startsWith(":")).map(e=>e.slice(1)))(t).map(mt),n=[];return"GET"===r&&o&&n.push(re({name:"direction",required:!1,enum:L,description:"the sort order when applicable"}),re({name:"limit",required:!1,description:"limit or page size when applicable"}),re({name:"offset",required:!1,description:"offset or bookmark when applicable"})),{method:[s(t),...i.map(ee),...n,oe({summary:`Retrieve records using according to "${e}".`}),se({description:"Result successfully retrieved."}),ie({description:"No content returned by the method."})],params:[We(i),A()]}}function gt(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 bt(e,t,...r){if(e instanceof q)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 wt(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 bt(this.persistence(),e,...t.valuesInOrder,s,i,n)}catch(t){throw o.error(`Custom query "${e}" failed`,t),t}}}function Et(e,t,r){return Object.defineProperty(e.prototype||e,t,{value:r,writable:!1}),Object.getOwnPropertyDescriptor(e.prototype||e,t)}class At extends j{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),U.logCtx.call(this,t,o||{},r,...e,s)}}class vt extends At{persistence(e){if(!this._persistence)try{this._persistence=q.getService(this.class)}catch(e){try{this._persistence=j.get(this.class)}catch(e){this._persistence=M.forModel(this.class)}}const t=this.clientContext.request[it]||{};return e&&this.clientContext.put(t),e?this._persistence instanceof M?this._persistence.override(t):this._persistence.for(t):this._persistence}constructor(e,t){super(e,t)}logCtx(e,t,r=!1){const o=this.clientContext.ctx;let s={};try{s=o.get("overrides")}catch(e){}const i=this.persistence(o);let n,a;return i instanceof q?n=i.repo.adapter:i instanceof M?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 Pt=new Map;function Tt(e,r){if(!B.includes(e))return r;const o=(e=>(Pt.has(e)||Pt.set(e,new WeakMap),Pt.get(e)))(e),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 t of i)I.isModel(t)&&Tt(e,t);const n=i.at(-1),a=n&&I.isModel(n)?o.get(n)||Tt(e,n):I;class c extends a{}o.set(r,c),Object.defineProperty(c,"name",{value:`${_e(r.name)}${_e(e)}DTO`});const p=t.properties(r)||[],d=t.get(r,N.CREATED_BY),l=t.get(r,N.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=>I.relations(e)||[])(r),g=new Set(y),b=m.filter(e=>((e,t)=>{let r=e;for(;r&&r!==Object&&r!==Function;){if(I.generated(r,t))return!0;r=Object.getPrototypeOf(r)}return!1})(r,e)),w=new Set([...b,...f]),E=(()=>{try{return I.pk(r)}catch{return}})(),A=[ye.UPDATE,ge.UPDATE_ALL].includes(e),v=m.filter(e=>!g.has(e)&&(!w.has(e)||A&&e===E));for(const e of v){const o=t.validationFor(r,e),s=!!o?.[F.REQUIRED],i=t.type(r,e),n={required:s};i&&(n.type=i),He(n)(c.prototype,e);const a=Reflect.getMetadata("design:type",r.prototype,e)??i;void 0!==a&&Reflect.defineMetadata("design:type",a,c.prototype,e),Object.defineProperty(c.prototype,e,{value:void 0,writable:!0,enumerable:!0,configurable:!0})}function P(e,t,r,o){He({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=t.relations(r,o);if(!s)throw new be(`Metadata for relation ${o} not found`);let i=s.class;if("function"!=typeof i||i.name||(i=i()),!i||"function"!=typeof i)throw new be(`Type for relation ${o} not found`);if(!I.get(i.name))continue;const n=t.validationFor(r,o);P(o,Tt(e,i),!!n[F.LIST],!!n[F.REQUIRED])}return c}G.transformerFor=(e=>{const r="string"==typeof e?e:e.alias;return t.innerGet(Symbol.for("transformers"),r)}).bind(G),G.flavoursToTransform=(()=>{const e=t.innerGet(Symbol.for("transformers"));if(e)return Object.keys(e)}).bind(G),H.prototype.toResponse=function(e){const t=this.pending();return t&&e.header("x-pending-task",JSON.stringify(t)),e};class Ot{static{this.log=Ce.for(Ot.name)}static getPersistence(e){try{return q.getService(e)}catch(t){return M.forModel(e)}}static createQueryRoutesFromRepository(e,r=N.QUERY){const o=Ot.log.for(Ot.createQueryRoutesFromRepository),s=e instanceof q?e.repo:e,i=s.class,n=t.get(s.constructor,t.key(N.QUERY))??{},a=t.get(e.constructor,t.key(ot))??{};class c extends vt{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=wt(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=Et(c,e,s);n&>(c,e,n,yt(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=Et(c,e,wt(e));s&>(c,e,s,yt(e,o,"GET",!0))}return c}static create(e){const t=Ot.log.for(Ot.create),r=I.tableName(e),o=ke(r),s=e.name,i=Ot.getPersistence(e),{description:n,getPK:a,apiProperties:c,path:p}=Ot.getRouteParametersFromModel(e);t.debug("Creating controller for model: "+s);const d=Ot.createQueryRoutesFromRepository(i);let l=class extends d{static get class(){return e}get class(){return e}constructor(r){super(r),this.pk=I.pk(e),t.info(`Registering dynamic controller for model: ${this.class.name} route: /${o}`)}async listBy(e,t){const{ctx:r}=(await this.logCtx([],z.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([],z.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([],z.FIND,!0)).for(this.find),o=t.direction??L.ASC;return bt(this.persistence(r),this.find.name,e,o,r)}async page(e,t){const{ctx:r}=(await this.logCtx([],z.PAGE,!0)).for(this.page),{direction:o=L.ASC,limit:s,offset:i,bookmark:n}=t,a={offset:i??1,limit:s??10,bookmark:n};return bt(this.persistence(r),this.page.name,e,o,a,r)}async findOneBy(e,t){const{ctx:r}=(await this.logCtx([],z.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([],z.FIND_BY,!0)).for(this.findBy);return this.persistence(o).for(o.toOverrides()).findBy(e,t,o)}async statement(e,t,r){const{ctx:o}=(await this.logCtx([],N.STATEMENT,!0)).for(this.statement),{direction:s,offset:i,limit:n,bookmark:a}=r,c=(t=t.map(e=>("string"==typeof e?parseInt(e):e)||e)).length>1?t[1]:void 0,p=s??c;switch(p&&t.length>1&&(t[1]=p),e){case z.FIND:case z.FIND_BY:break;case z.LIST_BY:t.push(s);break;case z.PAGE:case z.PAGE_BY:t=[t[0],p,{limit:n,offset:i,bookmark:a}];case z.FIND_ONE_BY:case z.COUNT_OF:case z.MAX_OF:case z.MIN_OF:case z.AVG_OF:case z.SUM_OF:case z.DISTINCT_OF:case z.GROUP_OF:}return this.persistence(o).statement(e,...t,o)}async createAll(t,r){const{ctx:o,log:i}=(await this.logCtx([],ge.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([],ye.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([],ge.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([],ye.READ,!0)).for(this.read),o=a(...e.valuesInOrder);if(void 0===o)throw new Ee(`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([],ge.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([],ye.UPDATE,!0)).for(this.update),c=a(...t.valuesInOrder);if(void 0===c)throw new Ee(`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([],ge.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([],ye.DELETE,!0)).for(this.delete),i=a(...e.valuesInOrder);if(void 0===i)throw new Ee(`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 ve([Qe(e,"GET","listBy/:key"),oe({summary:`Retrieve ${s} records by query.`}),ee({name:"key",description:"the model key to sort by"}),re({name:"direction",required:!0,enum:L}),se({description:s+" listed successfully."}),Pe(0,v("key")),Pe(1,Ze()),Te("design:type",Function),Te("design:paramtypes",[String,Object]),Te("design:returntype",Promise)],l.prototype,"listBy",null),ve([Qe(e,"GET","paginateBy/:key/:page"),oe({summary:`Retrieve ${s} records by query.`}),ee({name:"key",description:"the model key to sort by"}),ee({name:"page",description:"the page to retrieve or the bookmark"}),re({name:"direction",required:!0,enum:L,description:"the sort order"}),re({name:"limit",required:!0,description:"the page size"}),re({name:"offset",description:"the bookmark when necessary"}),se({description:s+" listed paginated."}),Pe(0,v("key")),Pe(1,Ze()),Te("design:type",Function),Te("design:paramtypes",[String,Object]),Te("design:returntype",Promise)],l.prototype,"paginateBy",null),ve([Qe(e,"GET","find/:value"),oe({summary:`Find ${s} records using the default query attributes.`}),ee({name:"value",description:"The string to match against the default query attributes"}),re({name:"direction",required:!1,enum:L,description:"the sort order for the matching results"}),se({description:s+" records matching the provided prefix."}),Pe(0,v("value")),Pe(1,Ze()),Te("design:type",Function),Te("design:paramtypes",[String,Object]),Te("design:returntype",Promise)],l.prototype,"find",null),ve([Qe(e,"GET","page/:value"),oe({summary:`Page ${s} records using the default query attributes.`}),ee({name:"value",description:"The string to match against the default query attributes"}),re({name:"direction",required:!1,enum:L,description:"the sort order for the paged results"}),re({name:"limit",required:!1,description:"page size"}),re({name:"offset",required:!1,description:"page number"}),re({name:"bookmark",required:!1,description:"bookmark for cursor pagination"}),se({description:s+" records paged by the provided prefix."}),Pe(0,v("value")),Pe(1,Ze()),Te("design:type",Function),Te("design:paramtypes",[String,Object]),Te("design:returntype",Promise)],l.prototype,"page",null),ve([Qe(e,"GET","findOneBy/:key"),oe({summary:`Retrieve ${s} records by query.`}),ee({name:"key",description:"the model key to sort by"}),se({description:s+" listed found."}),ne({description:`No ${s} record matches the provided identifier.`}),Pe(0,v("key")),Pe(1,v("value")),Te("design:type",Function),Te("design:paramtypes",[String,Object]),Te("design:returntype",Promise)],l.prototype,"findOneBy",null),ve([Qe(e,"GET","findBy/:key/:value"),oe({summary:`Retrieve ${s} records by query.`}),ee({name:"key",description:"the model key to compare"}),ee({name:"value",description:"the value to match"}),re({name:"direction",required:!0,enum:L,description:"the sort order when applicable"}),se({description:s+" listed found."}),ne({description:`No ${s} record matches the provided identifier.`}),Pe(0,v("key")),Pe(1,v("value")),Pe(2,Ze()),Te("design:type",Function),Te("design:paramtypes",[String,Object,Object]),Te("design:returntype",Promise)],l.prototype,"findBy",null),ve([Qe(e,"GET","statement/:method/*args"),oe({summary:`Executes a prepared statement on ${s}.`}),ee({name:"method",description:"the prepared statement to execute"}),ee({name:"args",description:"concatenated list of arguments the prepared statement can accept"}),re({name:"direction",required:!0,enum:L,description:"the sort order when applicable"}),re({name:"limit",required:!0,description:"limit or page size when applicable"}),re({name:"offset",required:!0,description:"offset or bookmark when applicable"}),se({description:s+" listed found."}),ne({description:`No ${s} record matches the provided identifier.`}),Pe(0,v("method")),Pe(1,v("args")),Pe(2,Ze()),Te("design:type",Function),Te("design:paramtypes",[String,Array,Object]),Te("design:returntype",Promise)],l.prototype,"statement",null),ve([Qe(e,"POST","bulk"),oe({summary:`Create a new ${s}.`}),ae({description:"Payload for "+s,schema:{type:"array",items:{$ref:ce(e)}}}),pe({description:s+" created successfully.",schema:{type:"array",items:{$ref:ce(e)}}}),de({description:"Payload validation failed."}),le({description:"Repository rejected the provided payload."}),Pe(0,Ke()),Pe(1,P({passthrough:!0})),Te("design:type",Function),Te("design:paramtypes",[Array,Object]),Te("design:returntype",Promise)],l.prototype,"createAll",null),ve([Qe(e,"POST"),oe({summary:`Create a new ${s}.`}),ae({description:"Payload for "+s,type:Tt(ye.CREATE,e)}),pe({description:s+" created successfully.",schema:{$ref:ce(e)}}),de({description:"Payload validation failed."}),le({description:"Repository rejected the provided payload."}),Pe(0,Ke()),Pe(1,P({passthrough:!0})),Te("design:type",Function),Te("design:paramtypes",[Object,Object]),Te("design:returntype",Promise)],l.prototype,"create",null),ve([Qe(e,"GET","bulk"),oe({summary:`Retrieve a ${s} record by id.`}),re({name:"ids",required:!0,type:"array"}),se({description:s+" retrieved successfully.",schema:{type:"array",items:{$ref:ce(e)}}}),ne({description:`No ${s} record matches the provided identifier.`}),Pe(0,A("ids")),Te("design:type",Function),Te("design:paramtypes",[Array]),Te("design:returntype",Promise)],l.prototype,"readAll",null),ve([Qe(e,"GET",p),Xe(c),oe({summary:`Retrieve a ${s} record by id.`}),se({description:s+" retrieved successfully.",schema:{$ref:ce(e)}}),ne({description:`No ${s} record matches the provided identifier.`}),Pe(0,We(c)),Te("design:type",Function),Te("design:paramtypes",[Object]),Te("design:returntype",Promise)],l.prototype,"read",null),ve([Qe(e,"PUT","bulk"),Xe(c),oe({summary:`Replace an existing ${s} record with a new payload.`}),ae({description:"Payload for replace a existing record of "+s,schema:{type:"array",$ref:ce(Tt(ye.UPDATE,e))}}),se({description:s+" updated successfully.",schema:{type:"array",items:{$ref:ce(e)}}}),ne({description:`No ${s} record matches the provided identifier.`}),de({description:"Payload validation failed."}),Pe(0,Ke()),Pe(1,P({passthrough:!0})),Te("design:type",Function),Te("design:paramtypes",[Array,Object]),Te("design:returntype",Promise)],l.prototype,"updateAll",null),ve([Qe(e,"PUT",p),Xe(c),oe({summary:`Replace an existing ${s} record with a new payload.`}),ae({description:"Payload for replace a existing record of "+s,type:Tt(ye.UPDATE,e)}),se({description:s+" updated successfully.",schema:{$ref:ce(e)}}),ne({description:`No ${s} record matches the provided identifier.`}),de({description:"Payload validation failed."}),Pe(0,We(c)),Pe(1,Ke()),Pe(2,P({passthrough:!0})),Te("design:type",Function),Te("design:paramtypes",[Object,Object,Object]),Te("design:returntype",Promise)],l.prototype,"update",null),ve([Qe(e,"DELETE","bulk"),Xe(c),oe({summary:`Retrieve a ${s} record by id.`}),re({name:"ids",required:!0,type:"array"}),se({description:s+" deleted successfully.",schema:{type:"array",items:{$ref:ce(e)}}}),ne({description:`No ${s} record matches the provided identifier.`}),Pe(0,A("ids")),Pe(1,P({passthrough:!0})),Te("design:type",Function),Te("design:paramtypes",[Array,Object]),Te("design:returntype",Promise)],l.prototype,"deleteAll",null),ve([Qe(e,"DELETE",p),Xe(c),oe({summary:`Delete a ${s} record by id.`}),se({description:s+" deleted successfully.",schema:{$ref:ce(e)}}),ne({description:`No ${s} record matches the provided identifier.`}),Pe(0,We(c)),Pe(1,P({passthrough:!0})),Te("design:type",Function),Te("design:paramtypes",[Object,Object]),Te("design:returntype",Promise)],l.prototype,"delete",null),l=ve([T(o),ue(s),he(e),dt(e),Te("design:paramtypes",[ht])],l),l}static getRouteParametersFromModel(e){const r=I.pk(e),o=t.get(e,t.key(we.COMPOSED,r)),s=o?.args??[],i=Array.isArray(s)&&s.length>0?Array.from(new Set([...s])):Array.from(new Set([r])),n=t.description(e);return{path:":"+i.join("/:"),description:n,apiProperties:i.map(r=>({name:r,description:t.description(e,r),required:!0,type:String})),getPK:(...e)=>o?.separator?e.join(o.separator):e.join("")}}}let Rt=class{constructor(e,t){this.requestContext=e,this.executor=t}async contextualize(e){const t={headers:e.headers,overrides:{}},r=G.flavoursToTransform();if(r)for(const o of r)try{const r=G.transformerFor(o),s=await r.from(e);Object.assign(t.overrides,s)}catch(e){throw new be("Failed to contextualize request: "+e)}return(new H).accumulate(Object.assign({},Y,{logger:Ce.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()}};Rt=ve([m({scope:E.REQUEST}),Te("design:paramtypes",[ht,ft])],Rt);class xt{}function St(e){return o=>(t.set("transformers",e,o),"function"==typeof o?r("transformers",e)(o):o)}function $t(e){var t;let r=class{static{t=this}static{this.log=Ce.for(t.name).for(e)}static createModelServices(e){return e.map(e=>({provide:e.name+"Service",useFactory:()=>q.forModel(e)}))}static forRoot(e,r={}){const o=this.log.for(this.forRoot);o.info("Generating controllers for flavour...");const s=G.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(Ot.create);return o.info(`Generated ${n.length} controllers`),{module:t,controllers:n,providers:[{provide:st,useFactory:()=>r.handlers?.map(e=>(o.info("Registered request handler: "+e.name),new e))??[]},ht,ft,{provide:xe,useClass:Rt},...i]}}};return r=t=ve([O({})],r),Object.assign(r,"name",{value:"DecafModule"+e}),r}o.for(i.INJECTABLE).extend({decorator:(e,t)=>(t=t||("object"==typeof e?Object.assign(e,n):n),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(F.REQUIRED).extend(He({required:!0})).apply(),o.for(F.MAX).extend({decorator:e=>He({maximum:e,required:!1})}).apply(),o.for(F.MIN).extend({decorator:e=>He({minimum:e,required:!1})}).apply(),o.for(F.MAX_LENGTH).extend({decorator:e=>He({maxLength:e,required:!1})}).apply(),o.for(F.MIN_LENGTH).extend({decorator:e=>He({minLength:e,required:!1})}).apply(),o.for(F.TYPE).extend({decorator:e=>(t,r)=>("function"!=typeof(e=Array.isArray(e)?e[0]:e)||e.name||(e=e()),He({type:e,required:!1})(t,r))}).apply(),o.for(F.DATE).extend({decorator:e=>He({type:String,format:"date-time",required:!1})}).apply(),o.for(F.ENUM).extend({decorator:e=>He({enum:Array.isArray(e)?e:Object.values(e),required:!1})}).apply(),o.for(F.PATTERN).extend({decorator:e=>He({pattern:"string"==typeof e?e:e.source,required:!1})}).apply(),o.for(N.COLUMN).extend({decorator:e=>He({name:e,required:!1})}).apply(),o.for(s.DESCRIPTION).extend({decorator:e=>He({description:e,required:!1})}).apply(),o.for(N.AUTH).extend({decorator:dt}).apply();class _t extends Q{constructor(e){super(e,_t.name)}}let Ct=class{catch(e,t){const r=t.switchToHttp(),o=r.getResponse(),s=r.getRequest(),i="production"===Ie.env;let n;e instanceof x?n=(e=new S(e.message)).getStatus():e instanceof Ae||(e=new be(e.message)),o.status(e.code||n).json({status:e.code||n,error:i?e.name:e.message,timestamp:(new Date).toISOString(),path:s.url,method:s.method})}};function kt(){return $(new Ct)}Ct=ve([R()],Ct);const It={path:"docs",auth:{type:"http",scheme:"bearer",bearerFormat:"JWT",name:"Authorization",description:"Enter JWT token",in:"header"},topbarBgColor:"#000000"};class Ft{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||It.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=De.join(this.options.assetsPath||"",e),o=Fe(r,{encoding:"base64"});return t?"data:image/png;base64,"+o:o}}class Dt{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 fe).setTitle(this.options.title).setDescription(e).setVersion(this.options.version||"0.0.1").addBearerAuth(this.options.auth||It.auth).build();return me.createDocument(this.app,t,{extraModels:this.options.extraModels||[]})}setupSwagger(){const e=this.createDocument(),t=new Ft({title:this.options.title,path:this.options.path||It.path,persistAuthorization:this.options.persistAuthorization??!0,assetsPath:this.options.assetsPath,faviconPath:this.options.faviconFilePath,topbarIconPath:this.options.topbarIconFilePath,topbarBgColor:this.options.topbarBgColor});me.setup(this.options.path||It.path,this.app,e,{...t.getCustomOptions()})}}class Nt{static get logger(){return this._logger||(this._logger=new _("NestBootstrap")),this._logger}static initialize(e){return this.app=e,this}static enableLogger(e){return this._logger=e||new _("NestBootstrap"),this.app.useLogger(this._logger),this}static enableCors(e=[],t=["GET","POST","PUT","DELETE"]){const r="*"===e?"*":e.map(e=>e.trim().toLowerCase()),o={origin:(e,t)=>e?"*"===r||Array.isArray(r)&&r.includes(e.toLowerCase())?t(null,!0):void t(new _t(`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 Dt(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 Ct]),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 Lt;let qt=class{static{Lt=this}static get persistence(){if(!this._persistence)throw new be("Persistence service not initialized");return this._persistence}static get log(){return this._logger||(this._logger=Ce.for(Lt)),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 J,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=G.transformerFor(o[t].flavour);if(!e)throw new be(`No transformer found for flavour ${o[t].flavour}. you should either @requestToContextTransformer or provide a transformer in the config`);s=e instanceof xt?e:new e}St(o[t].flavour)(s)}t.info("persistence layer created successfully!")}return this.persistence.client}static forRoot(e){const t={provide:tt,useValue:e},r={useFactory:async e=>Lt.bootPersistence(e),provide:rt,durable:!0,scope:E.DEFAULT,inject:[tt]};return{module:Lt,providers:[r,t],exports:[r]}}async onApplicationShutdown(){const e=Lt.log.for(this.onApplicationShutdown),t=this.moduleRef.get(rt);for(const r of t)try{r&&(e.info("Shutting down "+r.toString()),await r.shutdown())}catch(t){e.error("Failed to shutdown application",t)}}};qt=Lt=ve([C(),O({}),Pe(0,g(tt)),Te("design:paramtypes",[Object,Se])],qt);const jt=Symbol("LISTENING_ADAPTERS_FLAVOURS");var Mt;let Ut=Mt=class extends At{constructor(e,t){super(e,Mt.name),this.adapters=t.map(e=>G.get(e))}listen(){const e=Ce.for(Mt.name);return new Ne(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=Ce.for(Mt.name);return new Ne(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 Bt;ve([k(),Te("design:type",Function),Te("design:paramtypes",[]),Te("design:returntype",Ne)],Ut.prototype,"listen",null),ve([k("/:model"),Pe(0,A("model")),Te("design:type",Function),Te("design:paramtypes",[String]),Te("design:returntype",Ne)],Ut.prototype,"listenForModel",null),Ut=Mt=ve([T(),Pe(1,g(jt)),Te("design:paramtypes",[ht,Array])],Ut);let Gt=Bt=class{static forFlavours(e,t="events"){return{module:Bt,controllers:[Ut],imports:[$e.register([{path:t.replace(/^\//,""),module:Bt}])],providers:[ht,{provide:jt,useValue:e??[]}]}}};var Ht;Gt=Bt=ve([O({})],Gt);let zt=Ht=class{static async forRootAsync(e){const{autoControllers:t,autoServices:r,handlers:o}=e,s=(await qt.bootPersistence(e)).map(e=>e.flavour),i=[qt.forRoot(e)];return t&&s.forEach(e=>{i.push($t(e).forRoot(e,{autoServices:r,handlers:o}))}),e.observerOptions?.enableObserverEvents&&i.push(Gt.forFlavours(s)),{module:Ht,imports:i}}};function Yt(e){const t=I.get(e);if(!t)throw new be("Failed to find repository for "+e);return M.forModel(t)}zt=Ht=ve([O({})],zt);const Qt="##VERSION##",Jt="##PACKAGE##";t.registerLibrary(Jt,Qt);export{nt as AUTH_HANDLER,at as AUTH_META_KEY,Qe as ApiOperationFromModel,Xe as ApiParamsFromModel,He as ApiProperty,dt as Auth,pt as AuthInterceptor,Je as BulkApiOperationFromModel,_t as CorsError,rt as DECAF_ADAPTER_ID,it as DECAF_ADAPTER_OPTIONS,ct as DECAF_CONTEXT_KEY,st as DECAF_HANDLERS,tt as DECAF_MODULE_OPTIONS,ot as DECAF_ROUTE,qe as DECORATORS,Le as DECORATORS_PREFIX,lt as DecafAuthHandler,Ke as DecafBody,At as DecafController,Ct as DecafExceptionFilter,ft as DecafHandlerExecutor,vt as DecafModelController,zt as DecafModule,We as DecafParams,Ze as DecafQuery,ht as DecafRequestContext,Rt as DecafRequestHandlerInterceptor,ut as DecafRoleAuthHandler,Gt as DecafStreamModule,Tt as DtoFor,Ut as EventsController,Ot as FromModelController,et as HttpVerbToDecorator,Nt as NestBootstraper,Jt as PACKAGE_NAME,xt as RequestToContextTransformer,Dt as SwaggerBuilder,kt as UseDecafFilter,Qt as VERSION,ze as createApiPropertyDecorator,Ge as createPropertyDecorator,Be as getEnumType,Ue as getEnumValues,$t as getModuleFor,Ye as isOperationBlocked,Me as isUndefined,Yt as repoForModel,St 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","request","put","record","overrides","e","_ctx","accumulate","assign","applyCtx","InternalError","scope","Scope","REQUEST","Request","DecafHandlerExecutor","handlers","context","exec","res","apiParamSpec","getApiDecorators","methodName","routePath","httpVerb","includeQueryParams","NestHttpRouteDec","apiPathParams","startsWith","slice","extractPathParams","swaggerQueryParams","push","ApiQuery","OrderDirection","method","ApiParam","ApiOperation","summary","ApiOkResponse","ApiNoContentResponse","Query","applyApiDecorators","descriptor","proto","prototype","forEach","d","index","resolvePersistenceMethod","persistence","ModelService","statement","createRouteHandler","async","pathParams","queryParams","log","for","debug","JSON","stringify","direction","error","defineRouteMethod","ControllerClass","defineProperty","writable","getOwnPropertyDescriptor","DecafController","Service","clientContext","logCtx","operation","allowCreate","ContextualLoggedClass","call","DecafModelController","_persistence","getService","Repository","forModel","certs","override","contextual","ctxArgs","repo","then","dtoCache","Map","DtoFor","TransactionOperationKeys","cache","has","set","WeakMap","getDtoCache","cached","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","toOverrides","STATEMENT","pathDirection","a","parseInt","resolvedDirection","COUNT_OF","MAX_OF","MIN_OF","AVG_OF","SUM_OF","DISTINCT_OF","GROUP_OF","createAll","resp","created","verbose","readAll","ids","read","routeParams","id","ValidationError","updateAll","updated","update","payload","parse","deleteAll","delete","del","Param","ApiNotFoundResponse","ApiBody","schema","$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","isProduction","LoggedEnvironment","env","statusCode","NotFoundException","NotAcceptableException","getStatus","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","request","put","record","overrides","e","_ctx","accumulate","assign","applyCtx","InternalError","scope","Scope","REQUEST","Request","DecafHandlerExecutor","handlers","context","exec","res","apiParamSpec","getApiDecorators","methodName","routePath","httpVerb","includeQueryParams","NestHttpRouteDec","apiPathParams","startsWith","slice","extractPathParams","swaggerQueryParams","push","ApiQuery","OrderDirection","method","ApiParam","ApiOperation","summary","ApiOkResponse","ApiNoContentResponse","Query","applyApiDecorators","descriptor","proto","prototype","forEach","d","index","resolvePersistenceMethod","persistence","ModelService","statement","createRouteHandler","async","pathParams","queryParams","log","for","debug","JSON","stringify","direction","error","defineRouteMethod","ControllerClass","defineProperty","writable","getOwnPropertyDescriptor","DecafController","Service","clientContext","logCtx","operation","allowCreate","ContextualLoggedClass","call","DecafModelController","_persistence","getService","Repository","forModel","certs","override","contextual","ctxArgs","repo","then","dtoCache","Map","DtoFor","TransactionOperationKeys","cache","has","set","WeakMap","getDtoCache","cached","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","toOverrides","STATEMENT","pathDirection","a","parseInt","resolvedDirection","COUNT_OF","MAX_OF","MIN_OF","AVG_OF","SUM_OF","DISTINCT_OF","GROUP_OF","createAll","resp","created","verbose","readAll","ids","read","routeParams","id","ValidationError","updateAll","updated","update","payload","parse","deleteAll","delete","del","Param","ApiNotFoundResponse","ApiBody","schema","$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","isProduction","LoggedEnvironment","env","statusCode","NotFoundException","NotAcceptableException","getStatus","BaseError","status","code","json","toISOString","url","UseDecafFilter","UseFilters","Catch","SWAGGER_UI_CONSTANTS","auth","scheme","bearerFormat","in","topbarBgColor","SwaggerCustomUI","customCSS","css","topbarIconPath","b64","getCustomOptions","favicon","faviconPath","customSiteTitle","title","customCss","swaggerOptions","persistAuthorization","jsonDocumentUrl","yamlDocumentUrl","file","img","filePath","assetsPath","readFileSync","encoding","SwaggerBuilder","app","createDocument","config","DocumentBuilder","setTitle","setDescription","setVersion","version","addBearerAuth","build","SwaggerModule","extraModels","setupSwagger","document","swaggerUI","faviconFilePath","topbarIconFilePath","setup","NestBootstraper","_logger","Logger","initialize","enableLogger","customLogger","useLogger","enableCors","origins","allowMethods","allowedOrigins","o","toLowerCase","corsOptions","origin","callback","credentials","methods","useHelmet","helmet","require","use","warn","useGlobalPipes","pipes","useGlobalFilters","filters","useGlobalInterceptors","interceptors","start","port","process","PORT","listen","getUrl","DecafCoreModule","DecafCoreModule_1","moduleRef","bootPersistence","trimmed","conf","contr","pop","PersistenceService","boot","clients","client","i","c","typeOrmModuleOptions","useValue","inject","onApplicationShutdown","adapters","shutdown","Global","ModuleRef","LISTENING_ADAPTERS_FLAVOURS","EventsController","EventsController_1","Observable","observer","cb","refresh","Promise","resolve","modelConstr","serialize","normalizeEventResponse","observe","unObserve","listenForModel","Sse","DecafStreamModule","DecafStreamModule_1","forFlavours","imports","RouterModule","register","DecafModule","DecafModule_1","forRootAsync","autoControllers","observerOptions","enableObserverEvents","repoForModel","m","VERSION","PACKAGE_NAME","registerLibrary"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@decaf-ts/for-nest",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.30",
|
|
4
4
|
"description": "NestJS decaf integration",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"exports": {
|
|
@@ -30,15 +30,15 @@
|
|
|
30
30
|
"build": "npx build-scripts --dev",
|
|
31
31
|
"build:prod": "npx build-scripts --prod",
|
|
32
32
|
"test": "jest --runInBand --coverage --detectOpenHandles",
|
|
33
|
-
"test:unit": "jest --
|
|
34
|
-
"test:integration": "jest --
|
|
35
|
-
"test:all": "jest --
|
|
33
|
+
"test:unit": "jest --testPathPatterns=\"/tests/unit\" --passWithNoTests --detectOpenHandles",
|
|
34
|
+
"test:integration": "jest --testPathPatterns=\"/tests/(integration)\" --passWithNoTests --detectOpenHandles",
|
|
35
|
+
"test:all": "jest --testPathPatterns=\"/tests\" --passWithNoTests --detectOpenHandles",
|
|
36
36
|
"test:circular": "dpdm -T --no-warning --no-tree ./src/index.ts",
|
|
37
|
-
"coverage": "rimraf ./workdocs/reports/data/*.json && npm run test:all -- --coverage --config=./workdocs/reports/jest.coverage.config.
|
|
37
|
+
"coverage": "rimraf ./workdocs/reports/data/*.json && npm run test:all -- --coverage --config=./workdocs/reports/jest.coverage.config.cjs",
|
|
38
38
|
"lint": "eslint .",
|
|
39
39
|
"lint-fix": "eslint --fix .",
|
|
40
|
-
"prepare-pr": "npm run
|
|
41
|
-
"prepare-release": "npm run
|
|
40
|
+
"prepare-pr": "npm run build:prod && npm run coverage && npm run docs",
|
|
41
|
+
"prepare-release": "npm run build:prod && npm run coverage && npm run docs",
|
|
42
42
|
"release": "./bin/tag-release.sh",
|
|
43
43
|
"clean-publish": "npx clean-publish",
|
|
44
44
|
"drawings": "for FILE in workdocs/drawings/*.drawio; do echo \"converting $FILE to image...\" && docker run --rm -v $(pwd):/data rlespinasse/drawio-export --format png $FILE; done && cp -rf workdocs/drawings/export/* workdocs/resources/",
|
|
@@ -92,11 +92,12 @@
|
|
|
92
92
|
"@decaf-ts/for-http": "latest",
|
|
93
93
|
"@decaf-ts/utils": "latest",
|
|
94
94
|
"@eslint/js": "^9.25.1",
|
|
95
|
-
"@nestjs/cli": "^11.0.
|
|
96
|
-
"@nestjs/platform-express": "^11.1.
|
|
95
|
+
"@nestjs/cli": "^11.0.16",
|
|
96
|
+
"@nestjs/platform-express": "^11.1.14",
|
|
97
97
|
"@nestjs/schematics": "^11.0.9",
|
|
98
|
-
"@nestjs/swagger": "^11.2.
|
|
99
|
-
"@nestjs/testing": "^11.
|
|
98
|
+
"@nestjs/swagger": "^11.2.6",
|
|
99
|
+
"@nestjs/testing": "^11.1.14",
|
|
100
|
+
"@types/jest": "^30.0.0",
|
|
100
101
|
"@types/lodash": "^4.17.20",
|
|
101
102
|
"commander": "^13.1.0",
|
|
102
103
|
"eventsource": "^4.1.0",
|
|
@@ -110,7 +111,7 @@
|
|
|
110
111
|
"@decaf-ts/injectable-decorators": "latest",
|
|
111
112
|
"@decaf-ts/logging": "latest",
|
|
112
113
|
"@decaf-ts/transactional-decorators": "latest",
|
|
113
|
-
"@nestjs/common": "^11.
|
|
114
|
+
"@nestjs/common": "^11.1.14"
|
|
114
115
|
},
|
|
115
116
|
"overrides": {
|
|
116
117
|
"fabric-common": {
|
|
@@ -118,6 +119,9 @@
|
|
|
118
119
|
},
|
|
119
120
|
"fabric-ca-client": {
|
|
120
121
|
"jsrsasign": "^11.1.0"
|
|
121
|
-
}
|
|
122
|
+
},
|
|
123
|
+
"minimatch": "^10.2.2",
|
|
124
|
+
"test-exclude": "7.0.1",
|
|
125
|
+
"ajv": "^8.17.2"
|
|
122
126
|
}
|
|
123
127
|
}
|