@decaf-ts/for-nest 0.2.4 → 0.2.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/dist/for-nest.cjs +1 -1
- package/dist/for-nest.cjs.map +1 -1
- package/dist/for-nest.js +1 -1
- package/dist/for-nest.js.map +1 -1
- package/lib/esm/index.d.ts +1 -1
- package/lib/esm/index.js +1 -1
- package/lib/esm/interceptors/index.d.ts +1 -0
- package/lib/esm/interceptors/index.js +1 -0
- package/lib/esm/interceptors/index.js.map +1 -1
- package/lib/esm/ram/RamRequestTransformer.js.map +1 -0
- package/lib/esm/ram/index.d.ts +1 -0
- package/lib/esm/ram/index.js +2 -0
- package/lib/esm/ram/index.js.map +1 -0
- package/lib/esm/request/index.d.ts +0 -1
- package/lib/esm/request/index.js +0 -1
- package/lib/esm/request/index.js.map +1 -1
- package/lib/index.cjs +1 -1
- package/lib/index.d.ts +1 -1
- package/lib/interceptors/index.cjs +1 -0
- package/lib/interceptors/index.d.ts +1 -0
- package/lib/interceptors/index.js.map +1 -1
- package/lib/ram/RamRequestTransformer.js.map +1 -0
- package/lib/ram/index.cjs +18 -0
- package/lib/ram/index.d.ts +1 -0
- package/lib/ram/index.js.map +1 -0
- package/lib/request/index.cjs +0 -1
- package/lib/request/index.d.ts +0 -1
- package/lib/request/index.js.map +1 -1
- package/package.json +11 -3
- package/lib/esm/request/RamRequestTransformer.js.map +0 -1
- package/lib/request/RamRequestTransformer.js.map +0 -1
- /package/lib/esm/{request → ram}/RamRequestTransformer.d.ts +0 -0
- /package/lib/esm/{request → ram}/RamRequestTransformer.js +0 -0
- /package/lib/{request → ram}/RamRequestTransformer.cjs +0 -0
- /package/lib/{request → ram}/RamRequestTransformer.d.ts +0 -0
package/README.md
CHANGED
package/dist/for-nest.cjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
var e,t;e=this,t=function(e,t,r,a,o,i,s,n,c,p,d,l,u,h){"use strict";function m(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 y=m(h);const f="swagger",g={API_OPERATION:f+"/apiOperation",API_RESPONSE:f+"/apiResponse",API_PRODUCES:f+"/apiProduces",API_CONSUMES:f+"/apiConsumes",API_TAGS:f+"/apiUseTags",API_CALLBACKS:f+"/apiCallbacks",API_PARAMETERS:f+"/apiParameters",API_HEADERS:f+"/apiHeaders",API_MODEL_PROPERTIES:f+"/apiModelProperties",API_MODEL_PROPERTIES_ARRAY:f+"/apiModelPropertiesArray",API_SECURITY:f+"/apiSecurity",API_EXCLUDE_ENDPOINT:f+"/apiExcludeEndpoint",API_EXCLUDE_CONTROLLER:f+"/apiExcludeController",API_EXTRA_MODELS:f+"/apiExtraModels",API_EXTENSION:f+"/apiExtension",API_SCHEMA:f+"/apiSchema",API_DEFAULT_GETTER:f+"/apiDefaultGetter",API_LINK:f+"/apiLink"},_=e=>void 0===e;function A(e){if("function"==typeof e)return A(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 E(e){return e.filter(s.isString).length>0?"string":"number"}function P(e,t,r=!0){return(a,o)=>{const i=Reflect.getMetadata(g.API_MODEL_PROPERTIES_ARRAY,a)||[],n=":"+o;i.includes(n)||Reflect.defineMetadata(g.API_MODEL_PROPERTIES_ARRAY,[...i,":"+o],a);const c=Reflect.getMetadata(e,a,o);if(c){const i=s.pickBy(t,s.negate(_)),n=r?{...c,...i}:{...i,...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,...s.pickBy(t,s.negate(_))},a,o)}}}function b(e={}){return O(e)}function O(e={},t=!0){const[r,a]=((e,t)=>{if(!e)return[e,t];if(t)return[e,t];const r=s.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=A(e.enum);e.items={type:E(t),enum:t},delete e.enum}else if("enum"in e&&void 0!==e.enum){const t=A(e.enum);e.enum=t,e.type=E(t)}var o;return Array.isArray(e.type)&&(e.type="array",e.items={type:"array",items:{type:e.type[0]}}),P(g.API_MODEL_PROPERTIES,e,t)}function R(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 i={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]},[s,p]=i[r];return R(e,s)?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)}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(b({required:!0})).apply(),t.Decoration.for(o.ValidationKeys.MAX).extend({decorator:e=>b({maximum:e})}).apply(),t.Decoration.for(o.ValidationKeys.MIN).extend({decorator:e=>b({minimum:e})}).apply(),t.Decoration.for(o.ValidationKeys.MAX_LENGTH).extend({decorator:e=>b({maxLength:e})}).apply(),t.Decoration.for(o.ValidationKeys.MIN_LENGTH).extend({decorator:e=>b({minLength:e})}).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()),b({type:e})(t,r))}).apply(),t.Decoration.for(o.ValidationKeys.DATE).extend({decorator:e=>b({type:String,format:"date-time"})}).apply(),t.Decoration.for(o.ValidationKeys.ENUM).extend({decorator:e=>b({enum:Array.isArray(e)?e:Object.values(e)})}).apply(),t.Decoration.for(o.ValidationKeys.PATTERN).extend({decorator:e=>b({pattern:"string"==typeof e?e:e.source})}).apply(),t.Decoration.for(i.PersistenceKeys.COLUMN).extend({decorator:e=>b({name:e})}).apply(),t.Decoration.for(t.DecorationKeys.DESCRIPTION).extend({decorator:e=>b({description:e})}).apply();const T=a.createParamDecorator((e,t)=>{const r=t.switchToHttp().getRequest().body,o=t.getClass(),i=o.class;if(!i)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 i(e)):new i(r):r}),v=a.createParamDecorator((e,t)=>{const r=t.switchToHttp().getRequest(),a=r?.params??{},o=e??Object.keys(a),i=o.map(e=>a[e]);return{raw:a,valuesInOrder:i,keysInOrder:o}});function S(e=[]){const t=e.map(e=>e.name);return v(t)}const C=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 x(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",M="DecafAdapter",k="DecafRoute",$=Symbol("DecafHandlers"),F=Symbol("DecafAdapterForOptions"),N=Symbol("AUTH_HANDLER"),L="auth:meta",j="AuthRole",q=Symbol("decaf:context");function B(t){const r="string"==typeof t?t:t.name;return a.applyDecorators(a.SetMetadata(L,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(L,e.getHandler())??this.reflector.get(L,e.getClass());return r&&this.authHandler&&await this.authHandler.authorize(e,r),t.handle()}},e.AuthInterceptor=p.__decorate([a.Injectable(),p.__param(1,a.Optional()),p.__param(1,a.Inject(N)),p.__metadata("design:paramtypes",[d.Reflector,Object])],e.AuthInterceptor);class K{parseRequest(e){const t=e.headers.authorization?.split(" ")[1];return t}async authorize(e,r){const a=e.switchToHttp().getRequest(),s=this.parseRequest(a);if(!s)throw new i.AuthorizationError("Unauthenticated");if(!t.Metadata.get(o.Model.get(r),j).includes(s))throw new i.AuthorizationError("Missing role: "+s)}}e.DecafRequestContext=class{put(e){let t;try{t=this.ctx.get("overrides")}catch(e){t={}}this._ctx=this.ctx.accumulate({overrides:Object.assign(t,e)})}applyCtx(e){this._ctx=e}get ctx(){if(!this._ctx)throw new c.InternalError("Context not initialized for request");return this._ctx}},e.DecafRequestContext=p.__decorate([a.Injectable({scope:a.Scope.REQUEST})],e.DecafRequestContext),e.DecafHandlerExecutor=class{constructor(e,t){this.handlers=e,this.context=t}async exec(e,t){for(const r of this.handlers)await r.handle(this.context,e,t)}},e.DecafHandlerExecutor=p.__decorate([a.Injectable({scope:a.Scope.REQUEST}),p.__param(0,a.Inject($)),p.__metadata("design:paramtypes",[Array,e.DecafRequestContext])],e.DecafHandlerExecutor);class U{}function H(e){return r=>(t.Metadata.set("transformers",e,r),"function"==typeof r?t.metadata("transformers",e)(r):r)}e.RamTransformer=class{async from(e){const t=e.headers.authorization?e.headers.authorization.split(" ")[1]:void 0;return t?{UUID:t}:{}}},e.RamTransformer=p.__decorate([H("ram")],e.RamTransformer);const G=e=>({name:e,description:e+" parameter for the query",required:!0,type:String});function z(e,t,r,o=!1){const s=x(r),c=(e=>e.split("/").filter(e=>e.startsWith(":")).map(e=>e.slice(1)))(t).map(G),p=[];return"GET"===r&&o&&p.push(n.ApiQuery({name:"direction",required:!1,enum:i.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:[s(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:[S(c),a.Query()]}}function Q(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 V(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:n}=r;return await((e,t,...r)=>{if(e instanceof i.ModelService)return"function"==typeof e[t]?e[t](...r):e.statement(t,...r);if("function"==typeof e[t])return e[t](...r);throw Error(`Persistence method "${t}" not found on ${e?.constructor?.name}`)})(this.persistence(),e,...t.valuesInOrder,o,s,n)}catch(t){throw a.error(`Custom query "${e}" failed`,t),t}}}function Y(e,t,r){return Object.defineProperty(e.prototype||e,t,{value:r,writable:!1}),Object.getOwnPropertyDescriptor(e.prototype||e,t)}class J extends i.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),i.ContextualLoggedClass.logCtx.call(this,t,a||{},r,...e,o)}}class X extends J{persistence(e){if(!this._persistence)try{this._persistence=i.ModelService.getService(this.class)}catch(e){this._persistence=i.Repository.forModel(this.class)}return e?this._persistence instanceof i.Repository?this._persistence.override(e.toOverrides()):this._persistence.for(e.toOverrides()):this._persistence}constructor(e,t){super(e,t)}logCtx(e,t,r=!1){const a=this.clientContext.ctx;let o={};try{o=a.get("overrides")}catch(e){}const s=this.persistence(a);let n,c;return s instanceof i.ModelService?n=s.repo.adapter:s instanceof i.Repository?n=s.adapter:s.context&&(n=s),r?n.logCtx(e,t,!0,o).then(e=>e):(c=n.logCtx(e,t,!1,o),c)}}function W(e,r){if(!i.TransactionOperationKeys.includes(e))return r;const a=[c.OperationKeys.UPDATE,c.BulkCrudOperationKeys.UPDATE_ALL].includes(e),s=t.Metadata.properties(r)||[],p=o.Model.relations(r)||[];let d=s.filter(e=>o.Model.generated(r,e));a&&(d=d.filter(e=>e!==o.Model.pk(r)));class u extends(n.OmitType(r,d)){}function h(e,t,r){r||(Object.defineProperty(u.prototype,e,{value:r?[t]:t,writable:!0,enumerable:!0,configurable:!0}),Reflect.defineMetadata("design:type",t,u.prototype,e))}Object.defineProperty(u,"name",{value:`${l.toPascalCase(r.name)}${l.toPascalCase(e)}DTO`});for(const a of p){let i=t.Metadata.allowedTypes(r,a);if(i=i?Array.isArray(i)?i[0]:i:void 0,i="function"!=typeof i||i.name?i:i(),!i)throw new c.InternalError(`Type for relation ${a} not found`);if(o.Model.get(i.name)){const s=t.Metadata.validationFor(r,a);h(a,W(e,i),!!s[o.ValidationKeys.LIST])}}return u}class Z{static{this.log=l.Logging.for(Z.name)}static getPersistence(e){try{return i.ModelService.getService(e)}catch(t){return i.Repository.forModel(e)}}static createQueryRoutesFromRepository(e,r=i.PersistenceKeys.QUERY){const a=Z.log.for(Z.createQueryRoutesFromRepository),o=e instanceof i.ModelService?e.repo:e,s=o.class,n=t.Metadata.get(o.constructor,t.Metadata.key(i.PersistenceKeys.QUERY))??{},c=t.Metadata.get(e.constructor,t.Metadata.key(k))??{};class p extends X{get class(){throw Error("Method not implemented.")}constructor(e,t){super(e,t)}}for(const[e,t]of Object.entries(c)){const r=[t.path.replace(/^\/+|\/+$/g,"")].filter(e=>e&&e.trim()).join("/"),o=V(e);if(!o){const t=`Invalid or missing handler for model ${s.name} on decorated method ${e}`;throw a.error(t),Error(t)}const i=Y(p,e,o);i&&Q(p,e,i,z(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=Y(p,e,V(e));o&&Q(p,e,o,z(e,a,"GET",!0))}return p}static create(t){const r=Z.log.for(Z.create),s=o.Model.tableName(t),d=l.toKebabCase(s),u=t.name,h=Z.getPersistence(t),{description:m,getPK:y,apiProperties:f,path:g}=Z.getRouteParametersFromModel(t);r.debug("Creating controller for model: "+u);const _=Z.createQueryRoutesFromRepository(h);let A=class extends _{static get class(){return t}get class(){return t}constructor(e){super(e),this.pk=o.Model.pk(t),r.info(`Registering dynamic controller for model: ${this.class.name} route: /${d}`)}async listBy(e,t){const{ctx:r}=(await this.logCtx([],i.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([],i.PreparedStatementKeys.PAGE_BY,!0)).for(this.paginateBy);return this.persistence(r).paginateBy(e,t.direction,t,r)}async findOneBy(e,t){const{ctx:r}=(await this.logCtx([],i.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([],i.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([],i.PersistenceKeys.STATEMENT,!0)).for(this.statement),{direction:o,offset:s,limit:n,bookmark:c}=r;switch(t=t.map(e=>("string"==typeof e?parseInt(e):e)||e),e){case i.PreparedStatementKeys.FIND_BY:break;case i.PreparedStatementKeys.LIST_BY:t.push(o);break;case i.PreparedStatementKeys.PAGE_BY:t=[t[0],o,{limit:n,offset:s,bookmark:c}];case i.PreparedStatementKeys.FIND_ONE_BY:}return this.persistence(a).statement(e,...t,a)}async createAll(e){const{ctx:r,log:a}=(await this.logCtx([],c.BulkCrudOperationKeys.CREATE_ALL,!0)).for(this.createAll);let o;a.verbose("creating new "+u);try{o=await this.persistence(r).createAll(e.map(e=>new t(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]}`),o}async create(e){const{ctx:t,log:r}=(await this.logCtx([],c.OperationKeys.CREATE,!0)).for(this.create);let a;r.verbose("creating new "+u);try{a=await this.persistence(t).create(e,t)}catch(e){throw r.error("Failed to create new "+u,e),e}return r.info(`created new ${u} with id ${a[this.pk]}`),a}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}`),a=await this.persistence(t).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}`),o=await this.persistence(t).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){const{ctx:t,log:r}=(await this.logCtx([],c.BulkCrudOperationKeys.UPDATE_ALL,!0)).for(this.updateAll);let a;try{r.info(`updating ${e.length} ${u}`);const o=e.map(e=>JSON.parse(JSON.stringify(e)));a=await this.persistence(t).updateAll(o,t)}catch(e){throw r.error(e),e}return a}async update(e,r){const{ctx:a,log:o}=(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 s;try{o.info(`updating ${u} with ${this.pk} ${i}`);const e=JSON.parse(JSON.stringify(r));s=await this.persistence(a).update(new t({...e,[this.pk]:i}),a)}catch(e){throw o.error(e),e}return s}async deleteAll(e){const{ctx:t,log:r}=(await this.logCtx([],c.BulkCrudOperationKeys.DELETE_ALL,!0)).for(this.deleteAll);let a;try{r.debug(`deleting ${e.length} ${u}: ${e}`),a=await this.persistence(t).deleteAll(e,t)}catch(t){throw r.error(`Failed to delete ${u} with id ${e}`,t),t}return r.info(`deleted ${a.length} ${u}`),a}async delete(e){const{ctx:t,log:r}=(await this.logCtx([],c.OperationKeys.DELETE,!0)).for(this.delete),a=y(...e.valuesInOrder);if(void 0===a)throw new c.ValidationError(`No ${this.pk} provided`);let o;try{r.debug(`deleting ${u} with ${this.pk} ${a}`),o=await this.persistence(t).delete(a,t)}catch(e){throw r.error(`Failed to delete ${u} with id ${a}`,e),e}return r.info(`deleted ${u} with id ${a}`),o}};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:i.OrderDirection}),n.ApiOkResponse({description:u+" listed successfully."}),p.__param(1,C()),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:i.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,C()),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","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:i.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,C()),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:i.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,C()),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,T()),p.__metadata("design:type",Function),p.__metadata("design:paramtypes",[Array]),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,T()),p.__metadata("design:type",Function),p.__metadata("design:paramtypes",[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,S(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",items:{$ref:n.getSchemaPath(t)}}}),n.ApiCreatedResponse({description:u+" updated successfully.",schema:{type:"array",items:{$ref:n.getSchemaPath(t)}}}),n.ApiNotFoundResponse({description:`No ${u} record matches the provided identifier.`}),n.ApiBadRequestResponse({description:"Payload validation failed."}),p.__param(0,T()),p.__metadata("design:type",Function),p.__metadata("design:paramtypes",[Array]),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,schema:{$ref:n.getSchemaPath(t)}}),n.ApiOkResponse({description:u+" updated successfully."}),n.ApiNotFoundResponse({description:`No ${u} record matches the provided identifier.`}),n.ApiBadRequestResponse({description:"Payload validation failed."}),p.__param(0,S(f)),p.__param(1,T()),p.__metadata("design:type",Function),p.__metadata("design:paramtypes",[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+" retrieved successfully."}),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,"deleteAll",null),p.__decorate([w(t,"DELETE",g),D(f),n.ApiOperation({summary:`Delete a ${u} record by id.`}),n.ApiOkResponse({description:u+" record deleted successfully."}),n.ApiNotFoundResponse({description:`No ${u} record matches the provided identifier.`}),p.__param(0,S(f)),p.__metadata("design:type",Function),p.__metadata("design:paramtypes",[Object]),p.__metadata("design:returntype",Promise)],A.prototype,"delete",null),A=p.__decorate([a.Controller(d),n.ApiTags(u),n.ApiExtraModels(t),B(t),p.__metadata("design:paramtypes",[e.DecafRequestContext])],A),A}static getRouteParametersFromModel(e){const r=o.Model.pk(e),a=t.Metadata.get(e,t.Metadata.key(c.DBKeys.COMPOSED,r)),i=a?.args??[],s=Array.isArray(i)&&i.length>0?Array.from(new Set([...i])):Array.from(new Set([r])),n=t.Metadata.description(e);return{path:":"+s.join("/:"),description:n,apiProperties:s.map(r=>({name:r,description:t.Metadata.description(e,r),required:!0,type:String})),getPK:(...e)=>a?.separator?e.join(a.separator):e.join("")}}}function ee(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:()=>i.ModelService.forModel(e)}))}static forRoot(t,a={}){const o=this.log.for(this.forRoot);o.info("Generating controllers for flavour...");const s=i.Adapter.models(t);let n=[];a.autoServices&&(o.info("Auto-services enabled. Initializing service generation."),n=this.createModelServices(s),o.info(`Auto-services completed. ${n.length} services initialized.`));const c=s.map(Z.create);return o.info(`Generated ${c.length} controllers`),{module:r,controllers:c,providers:[{provide:$,useFactory:()=>a.handlers?.map(e=>(o.info("Registered request handler: "+e.name),new e))??[]},e.DecafRequestContext,e.DecafHandlerExecutor,{provide:d.APP_INTERCEPTOR,useClass:e.DecafRequestHandlerInterceptor},...n]}}};return o=r=p.__decorate([a.Module({})],o),Object.assign(o,"name",{value:"DecafModule"+t}),o}i.Adapter.transformerFor=(e=>{const r="string"==typeof e?e:e.alias;return t.Metadata.innerGet(Symbol.for("transformers"),r)}).bind(i.Adapter),i.Adapter.flavoursToTransform=(()=>{const e=t.Metadata.innerGet(Symbol.for("transformers"));if(e)return Object.keys(e)}).bind(i.Adapter),e.DecafRequestHandlerInterceptor=class{constructor(e,t){this.requestContext=e,this.executor=t}async contextualize(e){const t={headers:e.headers,overrides:{}},r=i.Adapter.flavoursToTransform();if(r)for(const a of r)try{const r=i.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 i.Context).accumulate(Object.assign({},i.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 te extends i.ForbiddenError{constructor(e){super(e,te.name)}}e.DecafExceptionFilter=class{catch(e,t){const r=t.switchToHttp(),a=r.getResponse(),o=r.getRequest(),i="production"===l.LoggedEnvironment.env;e instanceof c.BaseError||(e=new c.InternalError(e.message)),a.status(e.code).json({status:e.code,error:i?e.name:e.message,timestamp:(new Date).toISOString(),path:o.url,method:o.method})}},e.DecafExceptionFilter=p.__decorate([a.Catch()],e.DecafExceptionFilter);const re={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 ae{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||re.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=y.join(this.options.assetsPath||"",e),a=u.readFileSync(r,{encoding:"base64"});return t?"data:image/png;base64,"+a:a}}class oe{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||re.auth).build();return n.SwaggerModule.createDocument(this.app,t,{extraModels:this.options.extraModels||[]})}setupSwagger(){const e=this.createDocument(),t=new ae({title:this.options.title,path:this.options.path||re.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||re.path,this.app,e,{...t.getCustomOptions()})}}var ie;let se=class{static{ie=this}static get persistence(){if(!this._persistence)throw new c.InternalError("Persistence service not initialized");return this._persistence}static get log(){return this._logger||(this._logger=l.Logging.for(ie)),this._logger}constructor(e,t){this.options=e,this.moduleRef=t}static async bootPersistence(e){const t=this.log.for(this.bootPersistence);if(!this._persistence){const r=e.conf.map(([e,t,...r])=>r.pop()?[e,t,...r]:[e,t]);this._persistence=new i.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=i.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 U?e:new e}H(a[t].flavour)(o)}t.info("persistence layer created successfully!")}return this.persistence.client}static forRoot(e){const t={provide:I,useValue:e},r={useFactory:async e=>ie.bootPersistence(e),provide:M,durable:!0,scope:a.Scope.DEFAULT,inject:[I]};return{module:ie,providers:[r,t],exports:[r]}}async onApplicationShutdown(){const e=ie.log.for(this.onApplicationShutdown),t=this.moduleRef.get(M);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)}}};var ne;se=ie=p.__decorate([a.Global(),a.Module({}),p.__param(0,a.Inject(I)),p.__metadata("design:paramtypes",[Object,d.ModuleRef])],se),e.DecafModule=ne=class{static async forRootAsync(e){const{autoControllers:t,autoServices:r,handlers:a}=e,o=(await se.bootPersistence(e)).map(e=>e.flavour),i=[se.forRoot(e)];return t&&o.forEach(e=>{i.push(ee(e).forRoot(e,{autoServices:r,handlers:a}))}),{module:ne,imports:i}}},e.DecafModule=ne=p.__decorate([a.Module({})],e.DecafModule);const ce="##VERSION##",pe="##PACKAGE##";t.Metadata.registerLibrary(pe,ce),e.AUTH_HANDLER=N,e.AUTH_META_KEY=L,e.ApiOperationFromModel=w,e.ApiParamsFromModel=D,e.ApiProperty=b,e.Auth=B,e.AuthRole=j,e.BulkApiOperationFromModel=(e,r,o)=>{const i={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]},[s,p]=i[r];return R(e,s)?t.apply(n.ApiExcludeEndpoint()):t.apply(p(o))},e.CorsError=te,e.DECAF_ADAPTER_ID=M,e.DECAF_ADAPTER_OPTIONS=F,e.DECAF_CONTEXT_KEY=q,e.DECAF_HANDLERS=$,e.DECAF_MODULE_OPTIONS=I,e.DECAF_ROUTE=k,e.DECORATORS=g,e.DECORATORS_PREFIX=f,e.DecafAuthHandler=K,e.DecafBody=T,e.DecafController=J,e.DecafModelController=X,e.DecafParams=S,e.DecafQuery=C,e.DecafRoleAuthHandler=class extends K{constructor(){super()}async authorize(e,r){const a=e.switchToHttp().getRequest(),s=this.parseRequest(a);if(!s)throw new i.AuthorizationError("Unauthenticated");const n=t.Metadata.get(o.Model.get(r),j);if(!n.includes(s))throw new i.AuthorizationError("Missing role: "+s);return n}},e.DtoFor=W,e.FromModelController=Z,e.HttpVerbToDecorator=x,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 te(`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 oe(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=pe,e.Roles=e=>t.metadata(j,e),e.SwaggerBuilder=oe,e.UseDecafFilter=()=>a.UseFilters(new e.DecafExceptionFilter),e.VERSION=ce,e.createApiPropertyDecorator=O,e.createPropertyDecorator=P,e.getEnumType=E,e.getEnumValues=A,e.getModuleFor=ee,e.isOperationBlocked=R,e.isUndefined=_,e.repoForModel=e=>{const t=o.Model.get(e);if(!t)throw new c.InternalError("Failed to find repository for "+e);return i.Repository.forModel(t)},e.route=(e,r)=>{const a=k;return t.Decoration.for(a).define({decorator:()=>(o,i,s)=>{const n={path:r,httpMethod:e,handler:s};return t.apply(t.methodMetadata(t.Metadata.key(a,i),n))(o,i,s)},args:[]}).apply()}},"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")):"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"],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);
|
|
1
|
+
var e,t;e=this,t=function(e,t,r,a,o,i,s,n,c,p,d,l,u,h){"use strict";function m(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 y=m(h);const f="swagger",g={API_OPERATION:f+"/apiOperation",API_RESPONSE:f+"/apiResponse",API_PRODUCES:f+"/apiProduces",API_CONSUMES:f+"/apiConsumes",API_TAGS:f+"/apiUseTags",API_CALLBACKS:f+"/apiCallbacks",API_PARAMETERS:f+"/apiParameters",API_HEADERS:f+"/apiHeaders",API_MODEL_PROPERTIES:f+"/apiModelProperties",API_MODEL_PROPERTIES_ARRAY:f+"/apiModelPropertiesArray",API_SECURITY:f+"/apiSecurity",API_EXCLUDE_ENDPOINT:f+"/apiExcludeEndpoint",API_EXCLUDE_CONTROLLER:f+"/apiExcludeController",API_EXTRA_MODELS:f+"/apiExtraModels",API_EXTENSION:f+"/apiExtension",API_SCHEMA:f+"/apiSchema",API_DEFAULT_GETTER:f+"/apiDefaultGetter",API_LINK:f+"/apiLink"},_=e=>void 0===e;function A(e){if("function"==typeof e)return A(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 E(e){return e.filter(s.isString).length>0?"string":"number"}function P(e,t,r=!0){return(a,o)=>{const i=Reflect.getMetadata(g.API_MODEL_PROPERTIES_ARRAY,a)||[],n=":"+o;i.includes(n)||Reflect.defineMetadata(g.API_MODEL_PROPERTIES_ARRAY,[...i,":"+o],a);const c=Reflect.getMetadata(e,a,o);if(c){const i=s.pickBy(t,s.negate(_)),n=r?{...c,...i}:{...i,...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,...s.pickBy(t,s.negate(_))},a,o)}}}function b(e={}){return O(e)}function O(e={},t=!0){const[r,a]=((e,t)=>{if(!e)return[e,t];if(t)return[e,t];const r=s.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=A(e.enum);e.items={type:E(t),enum:t},delete e.enum}else if("enum"in e&&void 0!==e.enum){const t=A(e.enum);e.enum=t,e.type=E(t)}var o;return Array.isArray(e.type)&&(e.type="array",e.items={type:"array",items:{type:e.type[0]}}),P(g.API_MODEL_PROPERTIES,e,t)}function R(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 i={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]},[s,p]=i[r];return R(e,s)?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)}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(b({required:!0})).apply(),t.Decoration.for(o.ValidationKeys.MAX).extend({decorator:e=>b({maximum:e})}).apply(),t.Decoration.for(o.ValidationKeys.MIN).extend({decorator:e=>b({minimum:e})}).apply(),t.Decoration.for(o.ValidationKeys.MAX_LENGTH).extend({decorator:e=>b({maxLength:e})}).apply(),t.Decoration.for(o.ValidationKeys.MIN_LENGTH).extend({decorator:e=>b({minLength:e})}).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()),b({type:e})(t,r))}).apply(),t.Decoration.for(o.ValidationKeys.DATE).extend({decorator:e=>b({type:String,format:"date-time"})}).apply(),t.Decoration.for(o.ValidationKeys.ENUM).extend({decorator:e=>b({enum:Array.isArray(e)?e:Object.values(e)})}).apply(),t.Decoration.for(o.ValidationKeys.PATTERN).extend({decorator:e=>b({pattern:"string"==typeof e?e:e.source})}).apply(),t.Decoration.for(i.PersistenceKeys.COLUMN).extend({decorator:e=>b({name:e})}).apply(),t.Decoration.for(t.DecorationKeys.DESCRIPTION).extend({decorator:e=>b({description:e})}).apply();const T=a.createParamDecorator((e,t)=>{const r=t.switchToHttp().getRequest().body,o=t.getClass(),i=o.class;if(!i)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 i(e)):new i(r):r}),v=a.createParamDecorator((e,t)=>{const r=t.switchToHttp().getRequest(),a=r?.params??{},o=e??Object.keys(a),i=o.map(e=>a[e]);return{raw:a,valuesInOrder:i,keysInOrder:o}});function S(e=[]){const t=e.map(e=>e.name);return v(t)}const C=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 x(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",M="DecafAdapter",k="DecafRoute",$=Symbol("DecafHandlers"),F=Symbol("DecafAdapterForOptions"),N=Symbol("AUTH_HANDLER"),L="auth:meta",j="AuthRole",q=Symbol("decaf:context");function B(t){const r="string"==typeof t?t:t.name;return a.applyDecorators(a.SetMetadata(L,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(L,e.getHandler())??this.reflector.get(L,e.getClass());return r&&this.authHandler&&await this.authHandler.authorize(e,r),t.handle()}},e.AuthInterceptor=p.__decorate([a.Injectable(),p.__param(1,a.Optional()),p.__param(1,a.Inject(N)),p.__metadata("design:paramtypes",[d.Reflector,Object])],e.AuthInterceptor);class K{parseRequest(e){const t=e.headers.authorization?.split(" ")[1];return t}async authorize(e,r){const a=e.switchToHttp().getRequest(),s=this.parseRequest(a);if(!s)throw new i.AuthorizationError("Unauthenticated");if(!t.Metadata.get(o.Model.get(r),j).includes(s))throw new i.AuthorizationError("Missing role: "+s)}}e.DecafRequestContext=class{put(e){let t;try{t=this.ctx.get("overrides")}catch(e){t={}}this._ctx=this.ctx.accumulate({overrides:Object.assign(t,e)})}applyCtx(e){this._ctx=e}get ctx(){if(!this._ctx)throw new c.InternalError("Context not initialized for request");return this._ctx}},e.DecafRequestContext=p.__decorate([a.Injectable({scope:a.Scope.REQUEST})],e.DecafRequestContext),e.DecafHandlerExecutor=class{constructor(e,t){this.handlers=e,this.context=t}async exec(e,t){for(const r of this.handlers)await r.handle(this.context,e,t)}},e.DecafHandlerExecutor=p.__decorate([a.Injectable({scope:a.Scope.REQUEST}),p.__param(0,a.Inject($)),p.__metadata("design:paramtypes",[Array,e.DecafRequestContext])],e.DecafHandlerExecutor);const U=e=>({name:e,description:e+" parameter for the query",required:!0,type:String});function H(e,t,r,o=!1){const s=x(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:i.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:[s(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:[S(c),a.Query()]}}function G(e,t,r,a){const o=e?.prototype??e;a.method.forEach(e=>e(o,t,r)),a.params?.forEach((e,r)=>e(o,t,r))}function z(e){return async function(t,r){const a=this.log.for(e);try{a.debug(`Invoking persistence method "${e}" given parameters: ${JSON.stringify(t.valuesInOrder)}`);const{direction:o,limit:s,offset:n}=r;return await((e,t,...r)=>{if(e instanceof i.ModelService)return"function"==typeof e[t]?e[t](...r):e.statement(t,...r);if("function"==typeof e[t])return e[t](...r);throw Error(`Persistence method "${t}" not found on ${e?.constructor?.name}`)})(this.persistence(),e,...t.valuesInOrder,o,s,n)}catch(t){throw a.error(`Custom query "${e}" failed`,t),t}}}function Q(e,t,r){return Object.defineProperty(e.prototype||e,t,{value:r,writable:!1}),Object.getOwnPropertyDescriptor(e.prototype||e,t)}class V extends i.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),i.ContextualLoggedClass.logCtx.call(this,t,a||{},r,...e,o)}}class Y extends V{persistence(e){if(!this._persistence)try{this._persistence=i.ModelService.getService(this.class)}catch(e){this._persistence=i.Repository.forModel(this.class)}return e?this._persistence instanceof i.Repository?this._persistence.override(e.toOverrides()):this._persistence.for(e.toOverrides()):this._persistence}constructor(e,t){super(e,t)}logCtx(e,t,r=!1){const a=this.clientContext.ctx;let o={};try{o=a.get("overrides")}catch(e){}const s=this.persistence(a);let n,c;return s instanceof i.ModelService?n=s.repo.adapter:s instanceof i.Repository?n=s.adapter:s.context&&(n=s),r?n.logCtx(e,t,!0,o).then(e=>e):(c=n.logCtx(e,t,!1,o),c)}}function J(e,r){if(!i.TransactionOperationKeys.includes(e))return r;const a=[c.OperationKeys.UPDATE,c.BulkCrudOperationKeys.UPDATE_ALL].includes(e),s=t.Metadata.properties(r)||[],p=o.Model.relations(r)||[];let d=s.filter(e=>o.Model.generated(r,e));a&&(d=d.filter(e=>e!==o.Model.pk(r)));class u extends(n.OmitType(r,d)){}function h(e,t,r){r||(Object.defineProperty(u.prototype,e,{value:r?[t]:t,writable:!0,enumerable:!0,configurable:!0}),Reflect.defineMetadata("design:type",t,u.prototype,e))}Object.defineProperty(u,"name",{value:`${l.toPascalCase(r.name)}${l.toPascalCase(e)}DTO`});for(const a of p){let i=t.Metadata.allowedTypes(r,a);if(i=i?Array.isArray(i)?i[0]:i:void 0,i="function"!=typeof i||i.name?i:i(),!i)throw new c.InternalError(`Type for relation ${a} not found`);if(o.Model.get(i.name)){const s=t.Metadata.validationFor(r,a);h(a,J(e,i),!!s[o.ValidationKeys.LIST])}}return u}class X{static{this.log=l.Logging.for(X.name)}static getPersistence(e){try{return i.ModelService.getService(e)}catch(t){return i.Repository.forModel(e)}}static createQueryRoutesFromRepository(e,r=i.PersistenceKeys.QUERY){const a=X.log.for(X.createQueryRoutesFromRepository),o=e instanceof i.ModelService?e.repo:e,s=o.class,n=t.Metadata.get(o.constructor,t.Metadata.key(i.PersistenceKeys.QUERY))??{},c=t.Metadata.get(e.constructor,t.Metadata.key(k))??{};class p extends Y{get class(){throw Error("Method not implemented.")}constructor(e,t){super(e,t)}}for(const[e,t]of Object.entries(c)){const r=[t.path.replace(/^\/+|\/+$/g,"")].filter(e=>e&&e.trim()).join("/"),o=z(e);if(!o){const t=`Invalid or missing handler for model ${s.name} on decorated method ${e}`;throw a.error(t),Error(t)}const i=Q(p,e,o);i&&G(p,e,i,H(e,r,t.httpMethod))}for(const[e,t]of Object.entries(n)){const a=[r,e,...(t.fields??[]).map(e=>":"+e)].filter(e=>e&&e.trim()).join("/"),o=Q(p,e,z(e));o&&G(p,e,o,H(e,a,"GET",!0))}return p}static create(t){const r=X.log.for(X.create),s=o.Model.tableName(t),d=l.toKebabCase(s),u=t.name,h=X.getPersistence(t),{description:m,getPK:y,apiProperties:f,path:g}=X.getRouteParametersFromModel(t);r.debug("Creating controller for model: "+u);const _=X.createQueryRoutesFromRepository(h);let A=class extends _{static get class(){return t}get class(){return t}constructor(e){super(e),this.pk=o.Model.pk(t),r.info(`Registering dynamic controller for model: ${this.class.name} route: /${d}`)}async listBy(e,t){const{ctx:r}=(await this.logCtx([],i.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([],i.PreparedStatementKeys.PAGE_BY,!0)).for(this.paginateBy);return this.persistence(r).paginateBy(e,t.direction,t,r)}async findOneBy(e,t){const{ctx:r}=(await this.logCtx([],i.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([],i.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([],i.PersistenceKeys.STATEMENT,!0)).for(this.statement),{direction:o,offset:s,limit:n,bookmark:c}=r;switch(t=t.map(e=>("string"==typeof e?parseInt(e):e)||e),e){case i.PreparedStatementKeys.FIND_BY:break;case i.PreparedStatementKeys.LIST_BY:t.push(o);break;case i.PreparedStatementKeys.PAGE_BY:t=[t[0],o,{limit:n,offset:s,bookmark:c}];case i.PreparedStatementKeys.FIND_ONE_BY:}return this.persistence(a).statement(e,...t,a)}async createAll(e){const{ctx:r,log:a}=(await this.logCtx([],c.BulkCrudOperationKeys.CREATE_ALL,!0)).for(this.createAll);let o;a.verbose("creating new "+u);try{o=await this.persistence(r).createAll(e.map(e=>new t(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]}`),o}async create(e){const{ctx:t,log:r}=(await this.logCtx([],c.OperationKeys.CREATE,!0)).for(this.create);let a;r.verbose("creating new "+u);try{a=await this.persistence(t).create(e,t)}catch(e){throw r.error("Failed to create new "+u,e),e}return r.info(`created new ${u} with id ${a[this.pk]}`),a}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}`),a=await this.persistence(t).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}`),o=await this.persistence(t).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){const{ctx:t,log:r}=(await this.logCtx([],c.BulkCrudOperationKeys.UPDATE_ALL,!0)).for(this.updateAll);let a;try{r.info(`updating ${e.length} ${u}`);const o=e.map(e=>JSON.parse(JSON.stringify(e)));a=await this.persistence(t).updateAll(o,t)}catch(e){throw r.error(e),e}return a}async update(e,r){const{ctx:a,log:o}=(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 s;try{o.info(`updating ${u} with ${this.pk} ${i}`);const e=JSON.parse(JSON.stringify(r));s=await this.persistence(a).update(new t({...e,[this.pk]:i}),a)}catch(e){throw o.error(e),e}return s}async deleteAll(e){const{ctx:t,log:r}=(await this.logCtx([],c.BulkCrudOperationKeys.DELETE_ALL,!0)).for(this.deleteAll);let a;try{r.debug(`deleting ${e.length} ${u}: ${e}`),a=await this.persistence(t).deleteAll(e,t)}catch(t){throw r.error(`Failed to delete ${u} with id ${e}`,t),t}return r.info(`deleted ${a.length} ${u}`),a}async delete(e){const{ctx:t,log:r}=(await this.logCtx([],c.OperationKeys.DELETE,!0)).for(this.delete),a=y(...e.valuesInOrder);if(void 0===a)throw new c.ValidationError(`No ${this.pk} provided`);let o;try{r.debug(`deleting ${u} with ${this.pk} ${a}`),o=await this.persistence(t).delete(a,t)}catch(e){throw r.error(`Failed to delete ${u} with id ${a}`,e),e}return r.info(`deleted ${u} with id ${a}`),o}};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:i.OrderDirection}),n.ApiOkResponse({description:u+" listed successfully."}),p.__param(1,C()),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:i.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,C()),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","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:i.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,C()),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:i.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,C()),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,T()),p.__metadata("design:type",Function),p.__metadata("design:paramtypes",[Array]),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:J(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,T()),p.__metadata("design:type",Function),p.__metadata("design:paramtypes",[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,S(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",items:{$ref:n.getSchemaPath(t)}}}),n.ApiCreatedResponse({description:u+" updated successfully.",schema:{type:"array",items:{$ref:n.getSchemaPath(t)}}}),n.ApiNotFoundResponse({description:`No ${u} record matches the provided identifier.`}),n.ApiBadRequestResponse({description:"Payload validation failed."}),p.__param(0,T()),p.__metadata("design:type",Function),p.__metadata("design:paramtypes",[Array]),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,schema:{$ref:n.getSchemaPath(t)}}),n.ApiOkResponse({description:u+" updated successfully."}),n.ApiNotFoundResponse({description:`No ${u} record matches the provided identifier.`}),n.ApiBadRequestResponse({description:"Payload validation failed."}),p.__param(0,S(f)),p.__param(1,T()),p.__metadata("design:type",Function),p.__metadata("design:paramtypes",[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+" retrieved successfully."}),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,"deleteAll",null),p.__decorate([w(t,"DELETE",g),D(f),n.ApiOperation({summary:`Delete a ${u} record by id.`}),n.ApiOkResponse({description:u+" record deleted successfully."}),n.ApiNotFoundResponse({description:`No ${u} record matches the provided identifier.`}),p.__param(0,S(f)),p.__metadata("design:type",Function),p.__metadata("design:paramtypes",[Object]),p.__metadata("design:returntype",Promise)],A.prototype,"delete",null),A=p.__decorate([a.Controller(d),n.ApiTags(u),n.ApiExtraModels(t),B(t),p.__metadata("design:paramtypes",[e.DecafRequestContext])],A),A}static getRouteParametersFromModel(e){const r=o.Model.pk(e),a=t.Metadata.get(e,t.Metadata.key(c.DBKeys.COMPOSED,r)),i=a?.args??[],s=Array.isArray(i)&&i.length>0?Array.from(new Set([...i])):Array.from(new Set([r])),n=t.Metadata.description(e);return{path:":"+s.join("/:"),description:n,apiProperties:s.map(r=>({name:r,description:t.Metadata.description(e,r),required:!0,type:String})),getPK:(...e)=>a?.separator?e.join(a.separator):e.join("")}}}i.Adapter.transformerFor=(e=>{const r="string"==typeof e?e:e.alias;return t.Metadata.innerGet(Symbol.for("transformers"),r)}).bind(i.Adapter),i.Adapter.flavoursToTransform=(()=>{const e=t.Metadata.innerGet(Symbol.for("transformers"));if(e)return Object.keys(e)}).bind(i.Adapter),e.DecafRequestHandlerInterceptor=class{constructor(e,t){this.requestContext=e,this.executor=t}async contextualize(e){const t={headers:e.headers,overrides:{}},r=i.Adapter.flavoursToTransform();if(r)for(const a of r)try{const r=i.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 i.Context).accumulate(Object.assign({},i.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 W{}function Z(e){return r=>(t.Metadata.set("transformers",e,r),"function"==typeof r?t.metadata("transformers",e)(r):r)}function ee(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:()=>i.ModelService.forModel(e)}))}static forRoot(t,a={}){const o=this.log.for(this.forRoot);o.info("Generating controllers for flavour...");const s=i.Adapter.models(t);let n=[];a.autoServices&&(o.info("Auto-services enabled. Initializing service generation."),n=this.createModelServices(s),o.info(`Auto-services completed. ${n.length} services initialized.`));const c=s.map(X.create);return o.info(`Generated ${c.length} controllers`),{module:r,controllers:c,providers:[{provide:$,useFactory:()=>a.handlers?.map(e=>(o.info("Registered request handler: "+e.name),new e))??[]},e.DecafRequestContext,e.DecafHandlerExecutor,{provide:d.APP_INTERCEPTOR,useClass:e.DecafRequestHandlerInterceptor},...n]}}};return o=r=p.__decorate([a.Module({})],o),Object.assign(o,"name",{value:"DecafModule"+t}),o}class te extends i.ForbiddenError{constructor(e){super(e,te.name)}}e.DecafExceptionFilter=class{catch(e,t){const r=t.switchToHttp(),a=r.getResponse(),o=r.getRequest(),i="production"===l.LoggedEnvironment.env;e instanceof c.BaseError||(e=new c.InternalError(e.message)),a.status(e.code).json({status:e.code,error:i?e.name:e.message,timestamp:(new Date).toISOString(),path:o.url,method:o.method})}},e.DecafExceptionFilter=p.__decorate([a.Catch()],e.DecafExceptionFilter);const re={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 ae{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||re.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=y.join(this.options.assetsPath||"",e),a=u.readFileSync(r,{encoding:"base64"});return t?"data:image/png;base64,"+a:a}}class oe{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||re.auth).build();return n.SwaggerModule.createDocument(this.app,t,{extraModels:this.options.extraModels||[]})}setupSwagger(){const e=this.createDocument(),t=new ae({title:this.options.title,path:this.options.path||re.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||re.path,this.app,e,{...t.getCustomOptions()})}}var ie;let se=class{static{ie=this}static get persistence(){if(!this._persistence)throw new c.InternalError("Persistence service not initialized");return this._persistence}static get log(){return this._logger||(this._logger=l.Logging.for(ie)),this._logger}constructor(e,t){this.options=e,this.moduleRef=t}static async bootPersistence(e){const t=this.log.for(this.bootPersistence);if(!this._persistence){const r=e.conf.map(([e,t,...r])=>r.pop()?[e,t,...r]:[e,t]);this._persistence=new i.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=i.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 W?e:new e}Z(a[t].flavour)(o)}t.info("persistence layer created successfully!")}return this.persistence.client}static forRoot(e){const t={provide:I,useValue:e},r={useFactory:async e=>ie.bootPersistence(e),provide:M,durable:!0,scope:a.Scope.DEFAULT,inject:[I]};return{module:ie,providers:[r,t],exports:[r]}}async onApplicationShutdown(){const e=ie.log.for(this.onApplicationShutdown),t=this.moduleRef.get(M);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)}}};var ne;se=ie=p.__decorate([a.Global(),a.Module({}),p.__param(0,a.Inject(I)),p.__metadata("design:paramtypes",[Object,d.ModuleRef])],se),e.DecafModule=ne=class{static async forRootAsync(e){const{autoControllers:t,autoServices:r,handlers:a}=e,o=(await se.bootPersistence(e)).map(e=>e.flavour),i=[se.forRoot(e)];return t&&o.forEach(e=>{i.push(ee(e).forRoot(e,{autoServices:r,handlers:a}))}),{module:ne,imports:i}}},e.DecafModule=ne=p.__decorate([a.Module({})],e.DecafModule);const ce="##VERSION##",pe="##PACKAGE##";t.Metadata.registerLibrary(pe,ce),e.AUTH_HANDLER=N,e.AUTH_META_KEY=L,e.ApiOperationFromModel=w,e.ApiParamsFromModel=D,e.ApiProperty=b,e.Auth=B,e.AuthRole=j,e.BulkApiOperationFromModel=(e,r,o)=>{const i={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]},[s,p]=i[r];return R(e,s)?t.apply(n.ApiExcludeEndpoint()):t.apply(p(o))},e.CorsError=te,e.DECAF_ADAPTER_ID=M,e.DECAF_ADAPTER_OPTIONS=F,e.DECAF_CONTEXT_KEY=q,e.DECAF_HANDLERS=$,e.DECAF_MODULE_OPTIONS=I,e.DECAF_ROUTE=k,e.DECORATORS=g,e.DECORATORS_PREFIX=f,e.DecafAuthHandler=K,e.DecafBody=T,e.DecafController=V,e.DecafModelController=Y,e.DecafParams=S,e.DecafQuery=C,e.DecafRoleAuthHandler=class extends K{constructor(){super()}async authorize(e,r){const a=e.switchToHttp().getRequest(),s=this.parseRequest(a);if(!s)throw new i.AuthorizationError("Unauthenticated");const n=t.Metadata.get(o.Model.get(r),j);if(!n.includes(s))throw new i.AuthorizationError("Missing role: "+s);return n}},e.DtoFor=J,e.FromModelController=X,e.HttpVerbToDecorator=x,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 te(`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 oe(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=pe,e.RequestToContextTransformer=W,e.Roles=e=>t.metadata(j,e),e.SwaggerBuilder=oe,e.UseDecafFilter=()=>a.UseFilters(new e.DecafExceptionFilter),e.VERSION=ce,e.createApiPropertyDecorator=O,e.createPropertyDecorator=P,e.getEnumType=E,e.getEnumValues=A,e.getModuleFor=ee,e.isOperationBlocked=R,e.isUndefined=_,e.repoForModel=e=>{const t=o.Model.get(e);if(!t)throw new c.InternalError("Failed to find repository for "+e);return i.Repository.forModel(t)},e.requestToContextTransformer=Z,e.route=(e,r)=>{const a=k;return t.Decoration.for(a).define({decorator:()=>(o,i,s)=>{const n={path:r,httpMethod:e,handler:s};return t.apply(t.methodMetadata(t.Metadata.key(a,i),n))(o,i,s)},args:[]}).apply()}},"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")):"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"],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);
|
|
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/decoration.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/interceptors/context.ts","../src/request/RamRequestTransformer.ts","../src/decaf-model/utils.ts","../src/controllers.ts","../src/factory/openapi/DtoBuilder.ts","../src/decaf-model/FromModelController.ts","../src/decaf-model/DecafModelModule.ts","../src/overrides/overrides.ts","../src/interceptors/DecafRequestHandlerInterceptor.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/module.ts","../src/index.ts","../src/factory/NestBootstraper.ts","../src/factory/exceptions/decorators.ts","../src/utils.ts","../src/decaf-model/decorators/route.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],"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","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","required","String","applyDecorators","Decoration","for","InjectablesKeys","INJECTABLE","extend","decorator","category","cfg","assign","DefaultInjectablesConfig","Injectable","scope","singleton","Scope","DEFAULT","REQUEST","durable","INJECT","descriptor","Inject","ValidationKeys","REQUIRED","MAX","max","maximum","MIN","min","minimum","MAX_LENGTH","maxLength","MIN_LENGTH","minLength","TYPE","prop","DATE","format","ENUM","PATTERN","pat","pattern","source","PersistenceKeys","COLUMN","DecorationKeys","DESCRIPTION","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","Error","DECAF_MODULE_OPTIONS","DECAF_ADAPTER_ID","DECAF_ROUTE","DECAF_HANDLERS","Symbol","DECAF_ADAPTER_OPTIONS","AUTH_HANDLER","AUTH_META_KEY","AuthRole","DECAF_CONTEXT_KEY","Auth","model","resource","SetMetadata","UseInterceptors","AuthInterceptor","exports","reflector","authHandler","this","intercept","next","modelName","getHandler","authorize","handle","__decorate","__param","Optional","Reflector","DecafAuthHandler","parseRequest","userRole","headers","authorization","split","AuthorizationError","Model","DecafRequestContext","put","record","overrides","e","_ctx","accumulate","applyCtx","InternalError","DecafHandlerExecutor","handlers","context","exec","res","RequestToContextTransformer","requestToContextTransformer","flavour","set","RamTransformer","from","user","UUID","apiParamSpec","getApiDecorators","methodName","routePath","httpVerb","includeQueryParams","NestHttpRouteDec","apiPathParams","startsWith","slice","extractPathParams","swaggerQueryParams","push","ApiQuery","OrderDirection","method","ApiParam","ApiOperation","summary","ApiOkResponse","ApiNoContentResponse","Query","applyApiDecorators","proto","prototype","forEach","d","index","createRouteHandler","async","pathParams","queryParams","log","debug","JSON","stringify","direction","persistence","ModelService","statement","resolvePersistenceMethod","error","defineRouteMethod","ControllerClass","defineProperty","writable","getOwnPropertyDescriptor","DecafController","Service","clientContext","super","logCtx","operation","allowCreate","ContextualLoggedClass","call","DecafModelController","_persistence","getService","Repository","forModel","override","toOverrides","contextual","ctxArgs","repo","then","DtoFor","TransactionOperationKeys","isUpdate","BulkCrudOperationKeys","UPDATE_ALL","relations","exceptions","generated","pk","DynamicDTO","OmitType","addRelation","relation","relationDto","enumerable","configurable","toPascalCase","allowedTypes","meta","validationFor","LIST","FromModelController","Logging","getPersistence","ModelClazz","createQueryRoutesFromRepository","prefix","QUERY","queryMethods","routeMethods","QueryController","entries","replace","segment","trim","join","message","httpMethod","objValues","fields","f","create","tableName","toKebabCase","modelClazzName","getPK","apiProperties","getRouteParametersFromModel","BaseController","DynamicModelController","info","listBy","details","PreparedStatementKeys","LIST_BY","paginateBy","PAGE_BY","findOneBy","FIND_ONE_BY","findBy","FIND_BY","STATEMENT","a","parseInt","createAll","CREATE_ALL","created","verbose","readAll","ids","READ_ALL","read","routeParams","id","ValidationError","updateAll","updated","payloads","entry","parse","update","payload","deleteAll","DELETE_ALL","delete","del","Param","ApiNotFoundResponse","ApiBody","schema","$ref","getSchemaPath","ApiCreatedResponse","ApiBadRequestResponse","ApiUnprocessableEntityResponse","Controller","ApiTags","ApiExtraModels","composed","DBKeys","COMPOSED","composedKeys","uniqueKeys","Set","separator","getModuleFor","DecafModelModule","DecafModelModule_1","createModelServices","models","provide","useFactory","forRoot","trackedModels","Adapter","modelServices","autoServices","controllers","module","providers","H","APP_INTERCEPTOR","useClass","DecafRequestHandlerInterceptor","Module","transformerFor","adapter","alias","bind","flavoursToTransform","requestContext","executor","contextualize","flags","flavours","transformer","Context","DefaultAdapterFlags","logger","timestamp","Date","getResponse","CorsError","ForbiddenError","msg","DecafExceptionFilter","exception","host","response","request","isProduction","LoggedEnvironment","env","BaseError","status","code","json","toISOString","url","Catch","SWAGGER_UI_CONSTANTS","title","version","faviconFilePath","topbarIconFilePath","auth","scheme","bearerFormat","in","persistAuthorization","topbarBgColor","SwaggerCustomUI","customCSS","css","topbarIconPath","b64","getCustomOptions","favicon","faviconPath","customSiteTitle","customCss","swaggerOptions","jsonDocumentUrl","yamlDocumentUrl","file","img","filePath","assetsPath","readFileSync","encoding","SwaggerBuilder","app","createDocument","config","DocumentBuilder","setTitle","setDescription","setVersion","addBearerAuth","build","SwaggerModule","extraModels","setupSwagger","document","swaggerUI","setup","DecafCoreModule","_logger","DecafCoreModule_1","moduleRef","bootPersistence","trimmed","conf","contr","pop","PersistenceService","boot","clients","client","i","c","typeOrmModuleOptions","useValue","inject","onApplicationShutdown","adapters","shutdown","Global","ModuleRef","DecafModule","DecafModule_1","forRootAsync","autoControllers","imports","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","listen","getUrl","UseFilters","m","define","methodMetadata"],"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/decoration.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/decaf-model/FromModelController.ts","../src/overrides/overrides.ts","../src/interceptors/DecafRequestHandlerInterceptor.ts","../src/interceptors/context.ts","../src/decaf-model/DecafModelModule.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/module.ts","../src/index.ts","../src/factory/NestBootstraper.ts","../src/factory/exceptions/decorators.ts","../src/utils.ts","../src/decaf-model/decorators/route.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],"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","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","required","String","applyDecorators","Decoration","for","InjectablesKeys","INJECTABLE","extend","decorator","category","cfg","assign","DefaultInjectablesConfig","Injectable","scope","singleton","Scope","DEFAULT","REQUEST","durable","INJECT","descriptor","Inject","ValidationKeys","REQUIRED","MAX","max","maximum","MIN","min","minimum","MAX_LENGTH","maxLength","MIN_LENGTH","minLength","TYPE","prop","DATE","format","ENUM","PATTERN","pat","pattern","source","PersistenceKeys","COLUMN","DecorationKeys","DESCRIPTION","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","Error","DECAF_MODULE_OPTIONS","DECAF_ADAPTER_ID","DECAF_ROUTE","DECAF_HANDLERS","Symbol","DECAF_ADAPTER_OPTIONS","AUTH_HANDLER","AUTH_META_KEY","AuthRole","DECAF_CONTEXT_KEY","Auth","model","resource","SetMetadata","UseInterceptors","AuthInterceptor","exports","reflector","authHandler","this","intercept","next","modelName","getHandler","authorize","handle","__decorate","__param","Optional","Reflector","DecafAuthHandler","parseRequest","userRole","headers","authorization","split","AuthorizationError","Model","DecafRequestContext","put","record","overrides","e","_ctx","accumulate","applyCtx","InternalError","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","proto","prototype","forEach","d","index","createRouteHandler","async","pathParams","queryParams","log","debug","JSON","stringify","direction","persistence","ModelService","statement","resolvePersistenceMethod","error","defineRouteMethod","ControllerClass","defineProperty","writable","getOwnPropertyDescriptor","DecafController","Service","clientContext","super","logCtx","operation","allowCreate","ContextualLoggedClass","call","DecafModelController","_persistence","getService","Repository","forModel","override","toOverrides","contextual","ctxArgs","repo","then","DtoFor","TransactionOperationKeys","isUpdate","BulkCrudOperationKeys","UPDATE_ALL","relations","exceptions","generated","pk","DynamicDTO","OmitType","addRelation","relation","relationDto","enumerable","configurable","toPascalCase","allowedTypes","meta","validationFor","LIST","FromModelController","Logging","getPersistence","ModelClazz","createQueryRoutesFromRepository","prefix","QUERY","queryMethods","routeMethods","QueryController","entries","replace","segment","trim","join","message","httpMethod","objValues","fields","f","create","tableName","toKebabCase","modelClazzName","getPK","apiProperties","getRouteParametersFromModel","BaseController","DynamicModelController","info","listBy","details","PreparedStatementKeys","LIST_BY","paginateBy","PAGE_BY","findOneBy","FIND_ONE_BY","findBy","FIND_BY","STATEMENT","a","parseInt","createAll","CREATE_ALL","created","verbose","readAll","ids","READ_ALL","read","routeParams","id","ValidationError","updateAll","updated","payloads","entry","parse","update","payload","deleteAll","DELETE_ALL","delete","del","Param","ApiNotFoundResponse","ApiBody","schema","$ref","getSchemaPath","ApiCreatedResponse","ApiBadRequestResponse","ApiUnprocessableEntityResponse","Controller","ApiTags","ApiExtraModels","composed","DBKeys","COMPOSED","composedKeys","uniqueKeys","from","Set","separator","Adapter","transformerFor","adapter","alias","bind","flavoursToTransform","DecafRequestHandlerInterceptor","requestContext","executor","contextualize","flags","flavours","flavour","transformer","Context","DefaultAdapterFlags","logger","timestamp","Date","getResponse","RequestToContextTransformer","requestToContextTransformer","set","getModuleFor","DecafModelModule","DecafModelModule_1","createModelServices","models","provide","useFactory","forRoot","trackedModels","modelServices","autoServices","controllers","module","providers","H","APP_INTERCEPTOR","useClass","Module","CorsError","ForbiddenError","msg","DecafExceptionFilter","exception","host","response","request","isProduction","LoggedEnvironment","env","BaseError","status","code","json","toISOString","url","Catch","SWAGGER_UI_CONSTANTS","title","version","faviconFilePath","topbarIconFilePath","auth","scheme","bearerFormat","in","persistAuthorization","topbarBgColor","SwaggerCustomUI","customCSS","css","topbarIconPath","b64","getCustomOptions","favicon","faviconPath","customSiteTitle","customCss","swaggerOptions","jsonDocumentUrl","yamlDocumentUrl","file","img","filePath","assetsPath","readFileSync","encoding","SwaggerBuilder","app","createDocument","config","DocumentBuilder","setTitle","setDescription","setVersion","addBearerAuth","build","SwaggerModule","extraModels","setupSwagger","document","swaggerUI","setup","DecafCoreModule","_logger","DecafCoreModule_1","moduleRef","bootPersistence","trimmed","conf","contr","pop","PersistenceService","boot","clients","client","i","c","typeOrmModuleOptions","useValue","inject","onApplicationShutdown","adapters","shutdown","Global","ModuleRef","DecafModule","DecafModule_1","forRootAsync","autoControllers","imports","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","listen","getUrl","UseFilters","m","define","methodMetadata"],"mappings":"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"}
|
package/dist/for-nest.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{Decoration as e,DecorationKeys as t,Metadata as r,apply as o,methodMetadata as i,metadata as s}from"@decaf-ts/decoration";import{InjectablesKeys as n,DefaultInjectablesConfig as a}from"@decaf-ts/injectable-decorators";import{Injectable as c,Scope as p,Inject as d,Get as l,Post as u,Put as h,Patch as f,Delete as m,applyDecorators as y,createParamDecorator as g,InternalServerErrorException as w,Optional as E,SetMetadata as A,UseInterceptors as b,Query as P,Param as v,Controller as T,Module as R,Catch as O,UseFilters as x,Logger as $,Global as S}from"@nestjs/common";import{ValidationKeys as _,Model as C}from"@decaf-ts/decorator-validation";import{PersistenceKeys as I,AuthorizationError as k,OrderDirection as N,ModelService as D,Service as L,ContextualLoggedClass as F,Repository as j,TransactionOperationKeys as M,PreparedStatementKeys as q,Adapter as B,Context as U,DefaultAdapterFlags as G,ForbiddenError as H,PersistenceService as z}from"@decaf-ts/core";import{isArray as Y,isString as J,pickBy as Q,negate as K}from"lodash";import{ApiExcludeEndpoint as X,ApiParam as V,ApiQuery as W,ApiOperation as Z,ApiOkResponse as ee,ApiNoContentResponse as te,OmitType as re,ApiNotFoundResponse as oe,ApiBody as ie,getSchemaPath as se,ApiCreatedResponse as ne,ApiBadRequestResponse as ae,ApiUnprocessableEntityResponse as ce,ApiTags as pe,ApiExtraModels as de,DocumentBuilder as le,SwaggerModule as ue}from"@nestjs/swagger";import{OperationKeys as he,BulkCrudOperationKeys as fe,InternalError as me,DBKeys as ye,ValidationError as ge,BaseError as we}from"@decaf-ts/db-decorators";import{__decorate as Ee,__param as Ae,__metadata as be}from"tslib";import{Reflector as Pe,APP_INTERCEPTOR as ve,ModuleRef as Te}from"@nestjs/core";import{toPascalCase as Re,Logging as Oe,toKebabCase as xe,LoggedEnvironment as $e}from"@decaf-ts/logging";import{readFileSync as Se}from"fs";import*as _e from"path";const Ce="swagger",Ie={API_OPERATION:Ce+"/apiOperation",API_RESPONSE:Ce+"/apiResponse",API_PRODUCES:Ce+"/apiProduces",API_CONSUMES:Ce+"/apiConsumes",API_TAGS:Ce+"/apiUseTags",API_CALLBACKS:Ce+"/apiCallbacks",API_PARAMETERS:Ce+"/apiParameters",API_HEADERS:Ce+"/apiHeaders",API_MODEL_PROPERTIES:Ce+"/apiModelProperties",API_MODEL_PROPERTIES_ARRAY:Ce+"/apiModelPropertiesArray",API_SECURITY:Ce+"/apiSecurity",API_EXCLUDE_ENDPOINT:Ce+"/apiExcludeEndpoint",API_EXCLUDE_CONTROLLER:Ce+"/apiExcludeController",API_EXTRA_MODELS:Ce+"/apiExtraModels",API_EXTENSION:Ce+"/apiExtension",API_SCHEMA:Ce+"/apiSchema",API_DEFAULT_GETTER:Ce+"/apiDefaultGetter",API_LINK:Ce+"/apiLink"};function ke(e,t){if(!e)return[e,t];if(t)return[e,t];const r=Y(e);return[r?e[0]:e,r]}const Ne=e=>void 0===e;function De(e){if("function"==typeof e)return De(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 Le(e){return e.filter(J).length>0?"string":"number"}function Fe(e,t,r=!0){return(o,i)=>{const s=Reflect.getMetadata(Ie.API_MODEL_PROPERTIES_ARRAY,o)||[],n=":"+i;s.includes(n)||Reflect.defineMetadata(Ie.API_MODEL_PROPERTIES_ARRAY,[...s,":"+i],o);const a=Reflect.getMetadata(e,o,i);if(a){const s=Q(t,K(Ne)),n=r?{...a,...s}:{...s,...a};Reflect.defineMetadata(e,n,o,i)}else{const r=o?.constructor?._OPENAPI_METADATA_FACTORY?.()[i]?.type??Reflect.getMetadata("design:type",o,i);Reflect.defineMetadata(e,{type:r,...Q(t,K(Ne))},o,i)}}}function je(e={}){return Me(e)}function Me(e={},t=!0){const[r,o]=ke(e.type,e.isArray);if((i=e={...e,type:r,isArray:o}).isArray&&"enum"in i&&void 0!==i.enum){e.type="array";const t=De(e.enum);e.items={type:Le(t),enum:t},delete e.enum}else if("enum"in e&&void 0!==e.enum){const t=De(e.enum);e.enum=t,e.type=Le(t)}var i;return Array.isArray(e.type)&&(e.type="array",e.items={type:"array",items:{type:e.type[0]}}),Fe(Ie.API_MODEL_PROPERTIES,e,t)}function qe(e,t){const{handler:o,args:i}=r.get(e,he.REFLECT+he.BLOCK)||{};return!!o&&(o(...i,t)??!1)}function Be(e,t,r){const i={GET:[he.READ,l],POST:[he.CREATE,u],PUT:[he.UPDATE,h],PATCH:[he.UPDATE,f],DELETE:[he.DELETE,m]},[s,n]=i[t];return qe(e,s)?o(X()):o(n(r))}function Ue(e,t,r){const i={GET:[fe.READ_ALL,l],POST:[fe.CREATE_ALL,u],PUT:[fe.UPDATE_ALL,h],PATCH:[fe.UPDATE_ALL,f],DELETE:[fe.DELETE_ALL,m]},[s,n]=i[t];return qe(e,s)?o(X()):o(n(r))}function Ge(e=[]){const t=e.map(e=>V({name:e.name,description:e.description??"Path parameter: "+e.name,required:e.required??!0,type:e.type??String}));return y(...t)}e.for(n.INJECTABLE).extend({decorator:(e,t)=>(t=t||("object"==typeof e?Object.assign(e,a):a),c({scope:t.singleton?p.DEFAULT:p.REQUEST,durable:!t.singleton||void 0}))}).apply(),e.for(n.INJECT).extend({decorator:(e,t)=>(t,r,o)=>d(e||t)(t,r,o)}).apply(),e.for(_.REQUIRED).extend(je({required:!0})).apply(),e.for(_.MAX).extend({decorator:e=>je({maximum:e})}).apply(),e.for(_.MIN).extend({decorator:e=>je({minimum:e})}).apply(),e.for(_.MAX_LENGTH).extend({decorator:e=>je({maxLength:e})}).apply(),e.for(_.MIN_LENGTH).extend({decorator:e=>je({minLength:e})}).apply(),e.for(_.TYPE).extend({decorator:e=>(t,r)=>("function"!=typeof(e=Array.isArray(e)?e[0]:e)||e.name||(e=e()),je({type:e})(t,r))}).apply(),e.for(_.DATE).extend({decorator:e=>je({type:String,format:"date-time"})}).apply(),e.for(_.ENUM).extend({decorator:e=>je({enum:Array.isArray(e)?e:Object.values(e)})}).apply(),e.for(_.PATTERN).extend({decorator:e=>je({pattern:"string"==typeof e?e:e.source})}).apply(),e.for(I.COLUMN).extend({decorator:e=>je({name:e})}).apply(),e.for(t.DESCRIPTION).extend({decorator:e=>je({description:e})}).apply();const He=g((e,t)=>{const r=t.switchToHttp().getRequest().body,o=t.getClass(),i=o.class;if(!i)throw new w(`ModelConstructor not found on controller ${o.name}. Ensure the controller was created via FromModelController.`);return r?Array.isArray(r)?r.map(e=>new i(e)):new i(r):r}),ze=g((e,t)=>{const r=t.switchToHttp().getRequest(),o=r?.params??{},i=e??Object.keys(o),s=i.map(e=>o[e]);return{raw:o,valuesInOrder:s,keysInOrder:i}});function Ye(e=[]){const t=e.map(e=>e.name);return ze(t)}const Je=g((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 Qe(e){const t={GET:l,POST:u,PUT:h,PATCH:f,DELETE:m}[e];if(!t)throw Error(`Unsupported HTTP verb "${e}". No NestJS decorator mapping was found.`);return t}const Ke="DecafModuleOptions",Xe="DecafAdapter",Ve="DecafRoute",We=Symbol("DecafHandlers"),Ze=Symbol("DecafAdapterForOptions"),et=Symbol("AUTH_HANDLER"),tt="auth:meta",rt="AuthRole",ot=Symbol("decaf:context");function it(t,s){const n=Ve;return e.for(n).define({decorator:()=>(e,a,c)=>{const p={path:s,httpMethod:t,handler:c};return o(i(r.key(n,a),p))(e,a,c)},args:[]}).apply()}let st=class{constructor(e,t){this.reflector=e,this.authHandler=t}async intercept(e,t){const r=this.reflector.get(tt,e.getHandler())??this.reflector.get(tt,e.getClass());return r&&this.authHandler&&await this.authHandler.authorize(e,r),t.handle()}};function nt(e){const t="string"==typeof e?e:e.name;return y(A(tt,t),b(st))}st=Ee([c(),Ae(1,E()),Ae(1,d(et)),be("design:paramtypes",[Pe,Object])],st);const at=e=>s(rt,e);class ct{parseRequest(e){const t=e.headers.authorization?.split(" ")[1];return t}async authorize(e,t){const o=e.switchToHttp().getRequest(),i=this.parseRequest(o);if(!i)throw new k("Unauthenticated");if(!r.get(C.get(t),rt).includes(i))throw new k("Missing role: "+i)}}class pt extends ct{constructor(){super()}async authorize(e,t){const o=e.switchToHttp().getRequest(),i=this.parseRequest(o);if(!i)throw new k("Unauthenticated");const s=r.get(C.get(t),rt);if(!s.includes(i))throw new k("Missing role: "+i);return s}}let dt=class{put(e){let t;try{t=this.ctx.get("overrides")}catch(e){t={}}this._ctx=this.ctx.accumulate({overrides:Object.assign(t,e)})}applyCtx(e){this._ctx=e}get ctx(){if(!this._ctx)throw new me("Context not initialized for request");return this._ctx}};dt=Ee([c({scope:p.REQUEST})],dt);let lt=class{constructor(e,t){this.handlers=e,this.context=t}async exec(e,t){for(const r of this.handlers)await r.handle(this.context,e,t)}};lt=Ee([c({scope:p.REQUEST}),Ae(0,d(We)),be("design:paramtypes",[Array,dt])],lt);class ut{}function ht(e){return t=>(r.set("transformers",e,t),"function"==typeof t?s("transformers",e)(t):t)}let ft=class{async from(e){const t=e.headers.authorization?e.headers.authorization.split(" ")[1]:void 0;return t?{UUID:t}:{}}};ft=Ee([ht("ram")],ft);const mt=e=>({name:e,description:e+" parameter for the query",required:!0,type:String});function yt(e,t,r,o=!1){const i=Qe(r),s=(e=>e.split("/").filter(e=>e.startsWith(":")).map(e=>e.slice(1)))(t).map(mt),n=[];return"GET"===r&&o&&n.push(W({name:"direction",required:!1,enum:N,description:"the sort order when applicable"}),W({name:"limit",required:!1,description:"limit or page size when applicable"}),W({name:"offset",required:!1,description:"offset or bookmark when applicable"})),{method:[i(t),...s.map(V),...n,Z({summary:`Retrieve records using according to "${e}".`}),ee({description:"Result successfully retrieved."}),te({description:"No content returned by the method."})],params:[Ye(s),P()]}}function gt(e,t,r,o){const i=e?.prototype??e;o.method.forEach(e=>e(i,t,r)),o.params?.forEach((e,r)=>e(i,t,r))}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:i,limit:s,offset:n}=r;return await((e,t,...r)=>{if(e instanceof D)return"function"==typeof e[t]?e[t](...r):e.statement(t,...r);if("function"==typeof e[t])return e[t](...r);throw Error(`Persistence method "${t}" not found on ${e?.constructor?.name}`)})(this.persistence(),e,...t.valuesInOrder,i,s,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 L{constructor(e,t){super(t),this.clientContext=e}logCtx(e,t,r=!1,o){const i=this.clientContext.ctx;return e=e.filter(e=>void 0!==e),F.logCtx.call(this,t,o||{},r,...e,i)}}class bt extends At{persistence(e){if(!this._persistence)try{this._persistence=D.getService(this.class)}catch(e){this._persistence=j.forModel(this.class)}return e?this._persistence instanceof j?this._persistence.override(e.toOverrides()):this._persistence.for(e.toOverrides()):this._persistence}constructor(e,t){super(e,t)}logCtx(e,t,r=!1){const o=this.clientContext.ctx;let i={};try{i=o.get("overrides")}catch(e){}const s=this.persistence(o);let n,a;return s instanceof D?n=s.repo.adapter:s instanceof j?n=s.adapter:s.context&&(n=s),r?n.logCtx(e,t,!0,i).then(e=>e):(a=n.logCtx(e,t,!1,i),a)}}function Pt(e,t){if(!M.includes(e))return t;const o=[he.UPDATE,fe.UPDATE_ALL].includes(e),i=r.properties(t)||[],s=C.relations(t)||[];let n=i.filter(e=>C.generated(t,e));o&&(n=n.filter(e=>e!==C.pk(t)));class a extends(re(t,n)){}function c(e,t,r){r||(Object.defineProperty(a.prototype,e,{value:r?[t]:t,writable:!0,enumerable:!0,configurable:!0}),Reflect.defineMetadata("design:type",t,a.prototype,e))}Object.defineProperty(a,"name",{value:`${Re(t.name)}${Re(e)}DTO`});for(const o of s){let i=r.allowedTypes(t,o);if(i=i?Array.isArray(i)?i[0]:i:void 0,i="function"!=typeof i||i.name?i:i(),!i)throw new me(`Type for relation ${o} not found`);if(C.get(i.name)){const s=r.validationFor(t,o);c(o,Pt(e,i),!!s[_.LIST])}}return a}class vt{static{this.log=Oe.for(vt.name)}static getPersistence(e){try{return D.getService(e)}catch(t){return j.forModel(e)}}static createQueryRoutesFromRepository(e,t=I.QUERY){const o=vt.log.for(vt.createQueryRoutesFromRepository),i=e instanceof D?e.repo:e,s=i.class,n=r.get(i.constructor,r.key(I.QUERY))??{},a=r.get(e.constructor,r.key(Ve))??{};class c extends bt{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("/"),i=wt(e);if(!i){const t=`Invalid or missing handler for model ${s.name} on decorated method ${e}`;throw o.error(t),Error(t)}const n=Et(c,e,i);n&>(c,e,n,yt(e,r,t.httpMethod))}for(const[e,r]of Object.entries(n)){const o=[t,e,...(r.fields??[]).map(e=>":"+e)].filter(e=>e&&e.trim()).join("/"),i=Et(c,e,wt(e));i&>(c,e,i,yt(e,o,"GET",!0))}return c}static create(e){const t=vt.log.for(vt.create),r=C.tableName(e),o=xe(r),i=e.name,s=vt.getPersistence(e),{description:n,getPK:a,apiProperties:c,path:p}=vt.getRouteParametersFromModel(e);t.debug("Creating controller for model: "+i);const d=vt.createQueryRoutesFromRepository(s);let l=class extends d{static get class(){return e}get class(){return e}constructor(r){super(r),this.pk=C.pk(e),t.info(`Registering dynamic controller for model: ${this.class.name} route: /${o}`)}async listBy(e,t){const{ctx:r}=(await this.logCtx([],q.LIST_BY,!0)).for(this.listBy);return this.persistence(r).listBy(e,t.direction,r)}async paginateBy(e,t){const{ctx:r}=(await this.logCtx([],q.PAGE_BY,!0)).for(this.paginateBy);return this.persistence(r).paginateBy(e,t.direction,t,r)}async findOneBy(e,t){const{ctx:r}=(await this.logCtx([],q.FIND_ONE_BY,!0)).for(this.findOneBy);return this.persistence(r).findOneBy(e,t,r)}async findBy(e,t,r){const{ctx:o}=(await this.logCtx([],q.FIND_BY,!0)).for(this.findBy);return this.persistence(o).for(o.toOverrides()).findBy(e,t,o)}async statement(e,t,r){const{ctx:o}=(await this.logCtx([],I.STATEMENT,!0)).for(this.statement),{direction:i,offset:s,limit:n,bookmark:a}=r;switch(t=t.map(e=>("string"==typeof e?parseInt(e):e)||e),e){case q.FIND_BY:break;case q.LIST_BY:t.push(i);break;case q.PAGE_BY:t=[t[0],i,{limit:n,offset:s,bookmark:a}];case q.FIND_ONE_BY:}return this.persistence(o).statement(e,...t,o)}async createAll(t){const{ctx:r,log:o}=(await this.logCtx([],fe.CREATE_ALL,!0)).for(this.createAll);let s;o.verbose("creating new "+i);try{s=await this.persistence(r).createAll(t.map(t=>new e(t)),r)}catch(e){throw o.error("Failed to create new "+i,e),e}return o.info(`created new ${i} with id ${s[this.pk]}`),s}async create(e){const{ctx:t,log:r}=(await this.logCtx([],he.CREATE,!0)).for(this.create);let o;r.verbose("creating new "+i);try{o=await this.persistence(t).create(e,t)}catch(e){throw r.error("Failed to create new "+i,e),e}return r.info(`created new ${i} with id ${o[this.pk]}`),o}async readAll(e){const{ctx:t,log:r}=(await this.logCtx([],fe.READ_ALL,!0)).for(this.readAll);let o;try{r.debug(`reading ${e.length} ${i}: ${e}`),o=await this.persistence(t).readAll(e,t)}catch(t){throw r.error(`Failed to ${i} with id ${e}`,t),t}return r.info(`read ${o.length} ${i}`),o}async read(e){const{ctx:t,log:r}=(await this.logCtx([],he.READ,!0)).for(this.read),o=a(...e.valuesInOrder);if(void 0===o)throw new ge(`No ${this.pk} provided`);let s;try{r.debug(`reading ${i} with ${this.pk} ${o}`),s=await this.persistence(t).read(o,t)}catch(e){throw r.error(`Failed to read ${i} with id ${o}`,e),e}return r.info(`read ${i} with id ${s[this.pk]}`),s}async updateAll(e){const{ctx:t,log:r}=(await this.logCtx([],fe.UPDATE_ALL,!0)).for(this.updateAll);let o;try{r.info(`updating ${e.length} ${i}`);const s=e.map(e=>JSON.parse(JSON.stringify(e)));o=await this.persistence(t).updateAll(s,t)}catch(e){throw r.error(e),e}return o}async update(t,r){const{ctx:o,log:s}=(await this.logCtx([],he.UPDATE,!0)).for(this.update),n=a(...t.valuesInOrder);if(void 0===n)throw new ge(`No ${this.pk} provided`);let c;try{s.info(`updating ${i} with ${this.pk} ${n}`);const t=JSON.parse(JSON.stringify(r));c=await this.persistence(o).update(new e({...t,[this.pk]:n}),o)}catch(e){throw s.error(e),e}return c}async deleteAll(e){const{ctx:t,log:r}=(await this.logCtx([],fe.DELETE_ALL,!0)).for(this.deleteAll);let o;try{r.debug(`deleting ${e.length} ${i}: ${e}`),o=await this.persistence(t).deleteAll(e,t)}catch(t){throw r.error(`Failed to delete ${i} with id ${e}`,t),t}return r.info(`deleted ${o.length} ${i}`),o}async delete(e){const{ctx:t,log:r}=(await this.logCtx([],he.DELETE,!0)).for(this.delete),o=a(...e.valuesInOrder);if(void 0===o)throw new ge(`No ${this.pk} provided`);let s;try{r.debug(`deleting ${i} with ${this.pk} ${o}`),s=await this.persistence(t).delete(o,t)}catch(e){throw r.error(`Failed to delete ${i} with id ${o}`,e),e}return r.info(`deleted ${i} with id ${o}`),s}};return Ee([Be(e,"GET","listBy/:key"),Z({summary:`Retrieve ${i} records by query.`}),V({name:"key",description:"the model key to sort by"}),W({name:"direction",required:!0,enum:N}),ee({description:i+" listed successfully."}),Ae(1,Je()),be("design:type",Function),be("design:paramtypes",[String,Object]),be("design:returntype",Promise)],l.prototype,"listBy",null),Ee([Be(e,"GET","paginateBy/:key/:page"),Z({summary:`Retrieve ${i} records by query.`}),V({name:"key",description:"the model key to sort by"}),V({name:"page",description:"the page to retrieve or the bookmark"}),W({name:"direction",required:!0,enum:N,description:"the sort order"}),W({name:"limit",required:!0,description:"the page size"}),W({name:"offset",description:"the bookmark when necessary"}),ee({description:i+" listed paginated."}),Ae(0,v("key")),Ae(1,Je()),be("design:type",Function),be("design:paramtypes",[String,Object]),be("design:returntype",Promise)],l.prototype,"paginateBy",null),Ee([Be(e,"GET","findOneBy/:key"),Z({summary:`Retrieve ${i} records by query.`}),V({name:"key",description:"the model key to sort by"}),ee({description:i+" listed found."}),oe({description:`No ${i} record matches the provided identifier.`}),Ae(0,v("key")),Ae(1,v("value")),be("design:type",Function),be("design:paramtypes",[String,Object]),be("design:returntype",Promise)],l.prototype,"findOneBy",null),Ee([Be(e,"GET","findBy/:key/:value"),Z({summary:`Retrieve ${i} records by query.`}),V({name:"key",description:"the model key to compare"}),V({name:"value",description:"the value to match"}),W({name:"direction",required:!0,enum:N,description:"the sort order when applicable"}),ee({description:i+" listed found."}),oe({description:`No ${i} record matches the provided identifier.`}),Ae(0,v("key")),Ae(1,v("value")),Ae(2,Je()),be("design:type",Function),be("design:paramtypes",[String,Object,Object]),be("design:returntype",Promise)],l.prototype,"findBy",null),Ee([Be(e,"GET","statement/:method/*args"),Z({summary:`Executes a prepared statement on ${i}.`}),V({name:"method",description:"the prepared statement to execute"}),V({name:"args",description:"concatenated list of arguments the prepared statement can accept"}),W({name:"direction",required:!0,enum:N,description:"the sort order when applicable"}),W({name:"limit",required:!0,description:"limit or page size when applicable"}),W({name:"offset",required:!0,description:"offset or bookmark when applicable"}),ee({description:i+" listed found."}),oe({description:`No ${i} record matches the provided identifier.`}),Ae(0,v("method")),Ae(1,v("args")),Ae(2,Je()),be("design:type",Function),be("design:paramtypes",[String,Array,Object]),be("design:returntype",Promise)],l.prototype,"statement",null),Ee([Be(e,"POST","bulk"),Z({summary:`Create a new ${i}.`}),ie({description:"Payload for "+i,schema:{type:"array",items:{$ref:se(e)}}}),ne({description:i+" created successfully.",schema:{type:"array",items:{$ref:se(e)}}}),ae({description:"Payload validation failed."}),ce({description:"Repository rejected the provided payload."}),Ae(0,He()),be("design:type",Function),be("design:paramtypes",[Array]),be("design:returntype",Promise)],l.prototype,"createAll",null),Ee([Be(e,"POST"),Z({summary:`Create a new ${i}.`}),ie({description:"Payload for "+i,type:Pt(he.CREATE,e)}),ne({description:i+" created successfully.",schema:{$ref:se(e)}}),ae({description:"Payload validation failed."}),ce({description:"Repository rejected the provided payload."}),Ae(0,He()),be("design:type",Function),be("design:paramtypes",[Object]),be("design:returntype",Promise)],l.prototype,"create",null),Ee([Be(e,"GET","bulk"),Z({summary:`Retrieve a ${i} record by id.`}),W({name:"ids",required:!0,type:"array"}),ee({description:i+" retrieved successfully.",schema:{type:"array",items:{$ref:se(e)}}}),oe({description:`No ${i} record matches the provided identifier.`}),Ae(0,P("ids")),be("design:type",Function),be("design:paramtypes",[Array]),be("design:returntype",Promise)],l.prototype,"readAll",null),Ee([Be(e,"GET",p),Ge(c),Z({summary:`Retrieve a ${i} record by id.`}),ee({description:i+" retrieved successfully.",schema:{$ref:se(e)}}),oe({description:`No ${i} record matches the provided identifier.`}),Ae(0,Ye(c)),be("design:type",Function),be("design:paramtypes",[Object]),be("design:returntype",Promise)],l.prototype,"read",null),Ee([Be(e,"PUT","bulk"),Ge(c),Z({summary:`Replace an existing ${i} record with a new payload.`}),ie({description:"Payload for replace a existing record of "+i,schema:{type:"array",items:{$ref:se(e)}}}),ne({description:i+" updated successfully.",schema:{type:"array",items:{$ref:se(e)}}}),oe({description:`No ${i} record matches the provided identifier.`}),ae({description:"Payload validation failed."}),Ae(0,He()),be("design:type",Function),be("design:paramtypes",[Array]),be("design:returntype",Promise)],l.prototype,"updateAll",null),Ee([Be(e,"PUT",p),Ge(c),Z({summary:`Replace an existing ${i} record with a new payload.`}),ie({description:"Payload for replace a existing record of "+i,schema:{$ref:se(e)}}),ee({description:i+" updated successfully."}),oe({description:`No ${i} record matches the provided identifier.`}),ae({description:"Payload validation failed."}),Ae(0,Ye(c)),Ae(1,He()),be("design:type",Function),be("design:paramtypes",[Object,Object]),be("design:returntype",Promise)],l.prototype,"update",null),Ee([Be(e,"DELETE","bulk"),Ge(c),Z({summary:`Retrieve a ${i} record by id.`}),W({name:"ids",required:!0,type:"array"}),ee({description:i+" retrieved successfully."}),oe({description:`No ${i} record matches the provided identifier.`}),Ae(0,P("ids")),be("design:type",Function),be("design:paramtypes",[Array]),be("design:returntype",Promise)],l.prototype,"deleteAll",null),Ee([Be(e,"DELETE",p),Ge(c),Z({summary:`Delete a ${i} record by id.`}),ee({description:i+" record deleted successfully."}),oe({description:`No ${i} record matches the provided identifier.`}),Ae(0,Ye(c)),be("design:type",Function),be("design:paramtypes",[Object]),be("design:returntype",Promise)],l.prototype,"delete",null),l=Ee([T(o),pe(i),de(e),nt(e),be("design:paramtypes",[dt])],l),l}static getRouteParametersFromModel(e){const t=C.pk(e),o=r.get(e,r.key(ye.COMPOSED,t)),i=o?.args??[],s=Array.isArray(i)&&i.length>0?Array.from(new Set([...i])):Array.from(new Set([t])),n=r.description(e);return{path:":"+s.join("/:"),description:n,apiProperties:s.map(t=>({name:t,description:r.description(e,t),required:!0,type:String})),getPK:(...e)=>o?.separator?e.join(o.separator):e.join("")}}}B.transformerFor=(e=>{const t="string"==typeof e?e:e.alias;return r.innerGet(Symbol.for("transformers"),t)}).bind(B),B.flavoursToTransform=(()=>{const e=r.innerGet(Symbol.for("transformers"));if(e)return Object.keys(e)}).bind(B);let Tt=class{constructor(e,t){this.requestContext=e,this.executor=t}async contextualize(e){const t={headers:e.headers,overrides:{}},r=B.flavoursToTransform();if(r)for(const o of r)try{const r=B.transformerFor(o),i=await r.from(e);Object.assign(t.overrides,i)}catch(e){throw new me("Failed to contextualize request: "+e)}return(new U).accumulate(Object.assign({},G,{logger:Oe.get(),timestamp:new Date},t))}async intercept(e,t){const r=e.switchToHttp().getRequest(),o=e.switchToHttp().getResponse(),i=await this.contextualize(r);return this.requestContext.applyCtx(i),await this.executor.exec(r,o),t.handle()}};function Rt(e){var t;let r=class{static{t=this}static{this.log=Oe.for(t.name).for(e)}static createModelServices(e){return e.map(e=>({provide:e.name+"Service",useFactory:()=>D.forModel(e)}))}static forRoot(e,r={}){const o=this.log.for(this.forRoot);o.info("Generating controllers for flavour...");const i=B.models(e);let s=[];r.autoServices&&(o.info("Auto-services enabled. Initializing service generation."),s=this.createModelServices(i),o.info(`Auto-services completed. ${s.length} services initialized.`));const n=i.map(vt.create);return o.info(`Generated ${n.length} controllers`),{module:t,controllers:n,providers:[{provide:We,useFactory:()=>r.handlers?.map(e=>(o.info("Registered request handler: "+e.name),new e))??[]},dt,lt,{provide:ve,useClass:Tt},...s]}}};return r=t=Ee([R({})],r),Object.assign(r,"name",{value:"DecafModule"+e}),r}Tt=Ee([c({scope:p.REQUEST}),be("design:paramtypes",[dt,lt])],Tt);class Ot extends H{constructor(e){super(e,Ot.name)}}let xt=class{catch(e,t){const r=t.switchToHttp(),o=r.getResponse(),i=r.getRequest(),s="production"===$e.env;e instanceof we||(e=new me(e.message)),o.status(e.code).json({status:e.code,error:s?e.name:e.message,timestamp:(new Date).toISOString(),path:i.url,method:i.method})}};function $t(){return x(new xt)}xt=Ee([O()],xt);const St={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 _t{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||St.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=_e.join(this.options.assetsPath||"",e),o=Se(r,{encoding:"base64"});return t?"data:image/png;base64,"+o:o}}class Ct{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 le).setTitle(this.options.title).setDescription(e).setVersion(this.options.version||"0.0.1").addBearerAuth(this.options.auth||St.auth).build();return ue.createDocument(this.app,t,{extraModels:this.options.extraModels||[]})}setupSwagger(){const e=this.createDocument(),t=new _t({title:this.options.title,path:this.options.path||St.path,persistAuthorization:this.options.persistAuthorization??!0,assetsPath:this.options.assetsPath,faviconPath:this.options.faviconFilePath,topbarIconPath:this.options.topbarIconFilePath,topbarBgColor:this.options.topbarBgColor});ue.setup(this.options.path||St.path,this.app,e,{...t.getCustomOptions()})}}class It{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 Ot(`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 Ct(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 xt]),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 kt;let Nt=class{static{kt=this}static get persistence(){if(!this._persistence)throw new me("Persistence service not initialized");return this._persistence}static get log(){return this._logger||(this._logger=Oe.for(kt)),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 z,await this._persistence.boot(r);const o=this._persistence.client;for(let t=0;t<o.length;t++){const r=e.conf[t];let[,,i]=r;if(!i){const e=B.transformerFor(o[t].flavour);if(!e)throw new me(`No transformer found for flavour ${o[t].flavour}. you should either @requestToContextTransformer or provide a transformer in the config`);i=e instanceof ut?e:new e}ht(o[t].flavour)(i)}t.info("persistence layer created successfully!")}return this.persistence.client}static forRoot(e){const t={provide:Ke,useValue:e},r={useFactory:async e=>kt.bootPersistence(e),provide:Xe,durable:!0,scope:p.DEFAULT,inject:[Ke]};return{module:kt,providers:[r,t],exports:[r]}}async onApplicationShutdown(){const e=kt.log.for(this.onApplicationShutdown),t=this.moduleRef.get(Xe);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)}}};var Dt;Nt=kt=Ee([S(),R({}),Ae(0,d(Ke)),be("design:paramtypes",[Object,Te])],Nt);let Lt=Dt=class{static async forRootAsync(e){const{autoControllers:t,autoServices:r,handlers:o}=e,i=(await Nt.bootPersistence(e)).map(e=>e.flavour),s=[Nt.forRoot(e)];return t&&i.forEach(e=>{s.push(Rt(e).forRoot(e,{autoServices:r,handlers:o}))}),{module:Dt,imports:s}}};function Ft(e){const t=C.get(e);if(!t)throw new me("Failed to find repository for "+e);return j.forModel(t)}Lt=Dt=Ee([R({})],Lt);const jt="##VERSION##",Mt="##PACKAGE##";r.registerLibrary(Mt,jt);export{et as AUTH_HANDLER,tt as AUTH_META_KEY,Be as ApiOperationFromModel,Ge as ApiParamsFromModel,je as ApiProperty,nt as Auth,st as AuthInterceptor,rt as AuthRole,Ue as BulkApiOperationFromModel,Ot as CorsError,Xe as DECAF_ADAPTER_ID,Ze as DECAF_ADAPTER_OPTIONS,ot as DECAF_CONTEXT_KEY,We as DECAF_HANDLERS,Ke as DECAF_MODULE_OPTIONS,Ve as DECAF_ROUTE,Ie as DECORATORS,Ce as DECORATORS_PREFIX,ct as DecafAuthHandler,He as DecafBody,At as DecafController,xt as DecafExceptionFilter,lt as DecafHandlerExecutor,bt as DecafModelController,Lt as DecafModule,Ye as DecafParams,Je as DecafQuery,dt as DecafRequestContext,Tt as DecafRequestHandlerInterceptor,pt as DecafRoleAuthHandler,Pt as DtoFor,vt as FromModelController,Qe as HttpVerbToDecorator,It as NestBootstraper,Mt as PACKAGE_NAME,ft as RamTransformer,at as Roles,Ct as SwaggerBuilder,$t as UseDecafFilter,jt as VERSION,Me as createApiPropertyDecorator,Fe as createPropertyDecorator,Le as getEnumType,De as getEnumValues,Rt as getModuleFor,qe as isOperationBlocked,Ne as isUndefined,Ft as repoForModel,it as route};
|
|
1
|
+
import{Decoration as e,DecorationKeys as t,Metadata as r,apply as o,methodMetadata as i,metadata as s}from"@decaf-ts/decoration";import{InjectablesKeys as n,DefaultInjectablesConfig as a}from"@decaf-ts/injectable-decorators";import{Injectable as c,Scope as p,Inject as d,Get as l,Post as u,Put as h,Patch as f,Delete as m,applyDecorators as y,createParamDecorator as g,InternalServerErrorException as w,Optional as E,SetMetadata as A,UseInterceptors as b,Query as P,Param as v,Controller as T,Module as R,Catch as O,UseFilters as x,Logger as $,Global as S}from"@nestjs/common";import{ValidationKeys as _,Model as C}from"@decaf-ts/decorator-validation";import{PersistenceKeys as I,AuthorizationError as k,OrderDirection as N,ModelService as L,Service as D,ContextualLoggedClass as F,Repository as j,TransactionOperationKeys as M,PreparedStatementKeys as q,Adapter as B,Context as U,DefaultAdapterFlags as G,ForbiddenError as H,PersistenceService as z}from"@decaf-ts/core";import{isArray as Y,isString as J,pickBy as Q,negate as K}from"lodash";import{ApiExcludeEndpoint as X,ApiParam as V,ApiQuery as W,ApiOperation as Z,ApiOkResponse as ee,ApiNoContentResponse as te,OmitType as re,ApiNotFoundResponse as oe,ApiBody as ie,getSchemaPath as se,ApiCreatedResponse as ne,ApiBadRequestResponse as ae,ApiUnprocessableEntityResponse as ce,ApiTags as pe,ApiExtraModels as de,DocumentBuilder as le,SwaggerModule as ue}from"@nestjs/swagger";import{OperationKeys as he,BulkCrudOperationKeys as fe,InternalError as me,DBKeys as ye,ValidationError as ge,BaseError as we}from"@decaf-ts/db-decorators";import{__decorate as Ee,__param as Ae,__metadata as be}from"tslib";import{Reflector as Pe,APP_INTERCEPTOR as ve,ModuleRef as Te}from"@nestjs/core";import{toPascalCase as Re,Logging as Oe,toKebabCase as xe,LoggedEnvironment as $e}from"@decaf-ts/logging";import{readFileSync as Se}from"fs";import*as _e from"path";const Ce="swagger",Ie={API_OPERATION:Ce+"/apiOperation",API_RESPONSE:Ce+"/apiResponse",API_PRODUCES:Ce+"/apiProduces",API_CONSUMES:Ce+"/apiConsumes",API_TAGS:Ce+"/apiUseTags",API_CALLBACKS:Ce+"/apiCallbacks",API_PARAMETERS:Ce+"/apiParameters",API_HEADERS:Ce+"/apiHeaders",API_MODEL_PROPERTIES:Ce+"/apiModelProperties",API_MODEL_PROPERTIES_ARRAY:Ce+"/apiModelPropertiesArray",API_SECURITY:Ce+"/apiSecurity",API_EXCLUDE_ENDPOINT:Ce+"/apiExcludeEndpoint",API_EXCLUDE_CONTROLLER:Ce+"/apiExcludeController",API_EXTRA_MODELS:Ce+"/apiExtraModels",API_EXTENSION:Ce+"/apiExtension",API_SCHEMA:Ce+"/apiSchema",API_DEFAULT_GETTER:Ce+"/apiDefaultGetter",API_LINK:Ce+"/apiLink"};function ke(e,t){if(!e)return[e,t];if(t)return[e,t];const r=Y(e);return[r?e[0]:e,r]}const Ne=e=>void 0===e;function Le(e){if("function"==typeof e)return Le(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 De(e){return e.filter(J).length>0?"string":"number"}function Fe(e,t,r=!0){return(o,i)=>{const s=Reflect.getMetadata(Ie.API_MODEL_PROPERTIES_ARRAY,o)||[],n=":"+i;s.includes(n)||Reflect.defineMetadata(Ie.API_MODEL_PROPERTIES_ARRAY,[...s,":"+i],o);const a=Reflect.getMetadata(e,o,i);if(a){const s=Q(t,K(Ne)),n=r?{...a,...s}:{...s,...a};Reflect.defineMetadata(e,n,o,i)}else{const r=o?.constructor?._OPENAPI_METADATA_FACTORY?.()[i]?.type??Reflect.getMetadata("design:type",o,i);Reflect.defineMetadata(e,{type:r,...Q(t,K(Ne))},o,i)}}}function je(e={}){return Me(e)}function Me(e={},t=!0){const[r,o]=ke(e.type,e.isArray);if((i=e={...e,type:r,isArray:o}).isArray&&"enum"in i&&void 0!==i.enum){e.type="array";const t=Le(e.enum);e.items={type:De(t),enum:t},delete e.enum}else if("enum"in e&&void 0!==e.enum){const t=Le(e.enum);e.enum=t,e.type=De(t)}var i;return Array.isArray(e.type)&&(e.type="array",e.items={type:"array",items:{type:e.type[0]}}),Fe(Ie.API_MODEL_PROPERTIES,e,t)}function qe(e,t){const{handler:o,args:i}=r.get(e,he.REFLECT+he.BLOCK)||{};return!!o&&(o(...i,t)??!1)}function Be(e,t,r){const i={GET:[he.READ,l],POST:[he.CREATE,u],PUT:[he.UPDATE,h],PATCH:[he.UPDATE,f],DELETE:[he.DELETE,m]},[s,n]=i[t];return qe(e,s)?o(X()):o(n(r))}function Ue(e,t,r){const i={GET:[fe.READ_ALL,l],POST:[fe.CREATE_ALL,u],PUT:[fe.UPDATE_ALL,h],PATCH:[fe.UPDATE_ALL,f],DELETE:[fe.DELETE_ALL,m]},[s,n]=i[t];return qe(e,s)?o(X()):o(n(r))}function Ge(e=[]){const t=e.map(e=>V({name:e.name,description:e.description??"Path parameter: "+e.name,required:e.required??!0,type:e.type??String}));return y(...t)}e.for(n.INJECTABLE).extend({decorator:(e,t)=>(t=t||("object"==typeof e?Object.assign(e,a):a),c({scope:t.singleton?p.DEFAULT:p.REQUEST,durable:!t.singleton||void 0}))}).apply(),e.for(n.INJECT).extend({decorator:(e,t)=>(t,r,o)=>d(e||t)(t,r,o)}).apply(),e.for(_.REQUIRED).extend(je({required:!0})).apply(),e.for(_.MAX).extend({decorator:e=>je({maximum:e})}).apply(),e.for(_.MIN).extend({decorator:e=>je({minimum:e})}).apply(),e.for(_.MAX_LENGTH).extend({decorator:e=>je({maxLength:e})}).apply(),e.for(_.MIN_LENGTH).extend({decorator:e=>je({minLength:e})}).apply(),e.for(_.TYPE).extend({decorator:e=>(t,r)=>("function"!=typeof(e=Array.isArray(e)?e[0]:e)||e.name||(e=e()),je({type:e})(t,r))}).apply(),e.for(_.DATE).extend({decorator:e=>je({type:String,format:"date-time"})}).apply(),e.for(_.ENUM).extend({decorator:e=>je({enum:Array.isArray(e)?e:Object.values(e)})}).apply(),e.for(_.PATTERN).extend({decorator:e=>je({pattern:"string"==typeof e?e:e.source})}).apply(),e.for(I.COLUMN).extend({decorator:e=>je({name:e})}).apply(),e.for(t.DESCRIPTION).extend({decorator:e=>je({description:e})}).apply();const He=g((e,t)=>{const r=t.switchToHttp().getRequest().body,o=t.getClass(),i=o.class;if(!i)throw new w(`ModelConstructor not found on controller ${o.name}. Ensure the controller was created via FromModelController.`);return r?Array.isArray(r)?r.map(e=>new i(e)):new i(r):r}),ze=g((e,t)=>{const r=t.switchToHttp().getRequest(),o=r?.params??{},i=e??Object.keys(o),s=i.map(e=>o[e]);return{raw:o,valuesInOrder:s,keysInOrder:i}});function Ye(e=[]){const t=e.map(e=>e.name);return ze(t)}const Je=g((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 Qe(e){const t={GET:l,POST:u,PUT:h,PATCH:f,DELETE:m}[e];if(!t)throw Error(`Unsupported HTTP verb "${e}". No NestJS decorator mapping was found.`);return t}const Ke="DecafModuleOptions",Xe="DecafAdapter",Ve="DecafRoute",We=Symbol("DecafHandlers"),Ze=Symbol("DecafAdapterForOptions"),et=Symbol("AUTH_HANDLER"),tt="auth:meta",rt="AuthRole",ot=Symbol("decaf:context");function it(t,s){const n=Ve;return e.for(n).define({decorator:()=>(e,a,c)=>{const p={path:s,httpMethod:t,handler:c};return o(i(r.key(n,a),p))(e,a,c)},args:[]}).apply()}let st=class{constructor(e,t){this.reflector=e,this.authHandler=t}async intercept(e,t){const r=this.reflector.get(tt,e.getHandler())??this.reflector.get(tt,e.getClass());return r&&this.authHandler&&await this.authHandler.authorize(e,r),t.handle()}};function nt(e){const t="string"==typeof e?e:e.name;return y(A(tt,t),b(st))}st=Ee([c(),Ae(1,E()),Ae(1,d(et)),be("design:paramtypes",[Pe,Object])],st);const at=e=>s(rt,e);class ct{parseRequest(e){const t=e.headers.authorization?.split(" ")[1];return t}async authorize(e,t){const o=e.switchToHttp().getRequest(),i=this.parseRequest(o);if(!i)throw new k("Unauthenticated");if(!r.get(C.get(t),rt).includes(i))throw new k("Missing role: "+i)}}class pt extends ct{constructor(){super()}async authorize(e,t){const o=e.switchToHttp().getRequest(),i=this.parseRequest(o);if(!i)throw new k("Unauthenticated");const s=r.get(C.get(t),rt);if(!s.includes(i))throw new k("Missing role: "+i);return s}}let dt=class{put(e){let t;try{t=this.ctx.get("overrides")}catch(e){t={}}this._ctx=this.ctx.accumulate({overrides:Object.assign(t,e)})}applyCtx(e){this._ctx=e}get ctx(){if(!this._ctx)throw new me("Context not initialized for request");return this._ctx}};dt=Ee([c({scope:p.REQUEST})],dt);let lt=class{constructor(e,t){this.handlers=e,this.context=t}async exec(e,t){for(const r of this.handlers)await r.handle(this.context,e,t)}};lt=Ee([c({scope:p.REQUEST}),Ae(0,d(We)),be("design:paramtypes",[Array,dt])],lt);const ut=e=>({name:e,description:e+" parameter for the query",required:!0,type:String});function ht(e,t,r,o=!1){const i=Qe(r),s=(e=>e.split("/").filter(e=>e.startsWith(":")).map(e=>e.slice(1)))(t).map(ut),n=[];return"GET"===r&&o&&n.push(W({name:"direction",required:!1,enum:N,description:"the sort order when applicable"}),W({name:"limit",required:!1,description:"limit or page size when applicable"}),W({name:"offset",required:!1,description:"offset or bookmark when applicable"})),{method:[i(t),...s.map(V),...n,Z({summary:`Retrieve records using according to "${e}".`}),ee({description:"Result successfully retrieved."}),te({description:"No content returned by the method."})],params:[Ye(s),P()]}}function ft(e,t,r,o){const i=e?.prototype??e;o.method.forEach(e=>e(i,t,r)),o.params?.forEach((e,r)=>e(i,t,r))}function mt(e){return async function(t,r){const o=this.log.for(e);try{o.debug(`Invoking persistence method "${e}" given parameters: ${JSON.stringify(t.valuesInOrder)}`);const{direction:i,limit:s,offset:n}=r;return await((e,t,...r)=>{if(e instanceof L)return"function"==typeof e[t]?e[t](...r):e.statement(t,...r);if("function"==typeof e[t])return e[t](...r);throw Error(`Persistence method "${t}" not found on ${e?.constructor?.name}`)})(this.persistence(),e,...t.valuesInOrder,i,s,n)}catch(t){throw o.error(`Custom query "${e}" failed`,t),t}}}function yt(e,t,r){return Object.defineProperty(e.prototype||e,t,{value:r,writable:!1}),Object.getOwnPropertyDescriptor(e.prototype||e,t)}class gt extends D{constructor(e,t){super(t),this.clientContext=e}logCtx(e,t,r=!1,o){const i=this.clientContext.ctx;return e=e.filter(e=>void 0!==e),F.logCtx.call(this,t,o||{},r,...e,i)}}class wt extends gt{persistence(e){if(!this._persistence)try{this._persistence=L.getService(this.class)}catch(e){this._persistence=j.forModel(this.class)}return e?this._persistence instanceof j?this._persistence.override(e.toOverrides()):this._persistence.for(e.toOverrides()):this._persistence}constructor(e,t){super(e,t)}logCtx(e,t,r=!1){const o=this.clientContext.ctx;let i={};try{i=o.get("overrides")}catch(e){}const s=this.persistence(o);let n,a;return s instanceof L?n=s.repo.adapter:s instanceof j?n=s.adapter:s.context&&(n=s),r?n.logCtx(e,t,!0,i).then(e=>e):(a=n.logCtx(e,t,!1,i),a)}}function Et(e,t){if(!M.includes(e))return t;const o=[he.UPDATE,fe.UPDATE_ALL].includes(e),i=r.properties(t)||[],s=C.relations(t)||[];let n=i.filter(e=>C.generated(t,e));o&&(n=n.filter(e=>e!==C.pk(t)));class a extends(re(t,n)){}function c(e,t,r){r||(Object.defineProperty(a.prototype,e,{value:r?[t]:t,writable:!0,enumerable:!0,configurable:!0}),Reflect.defineMetadata("design:type",t,a.prototype,e))}Object.defineProperty(a,"name",{value:`${Re(t.name)}${Re(e)}DTO`});for(const o of s){let i=r.allowedTypes(t,o);if(i=i?Array.isArray(i)?i[0]:i:void 0,i="function"!=typeof i||i.name?i:i(),!i)throw new me(`Type for relation ${o} not found`);if(C.get(i.name)){const s=r.validationFor(t,o);c(o,Et(e,i),!!s[_.LIST])}}return a}class At{static{this.log=Oe.for(At.name)}static getPersistence(e){try{return L.getService(e)}catch(t){return j.forModel(e)}}static createQueryRoutesFromRepository(e,t=I.QUERY){const o=At.log.for(At.createQueryRoutesFromRepository),i=e instanceof L?e.repo:e,s=i.class,n=r.get(i.constructor,r.key(I.QUERY))??{},a=r.get(e.constructor,r.key(Ve))??{};class c extends wt{get class(){throw Error("Method not implemented.")}constructor(e,t){super(e,t)}}for(const[e,t]of Object.entries(a)){const r=[t.path.replace(/^\/+|\/+$/g,"")].filter(e=>e&&e.trim()).join("/"),i=mt(e);if(!i){const t=`Invalid or missing handler for model ${s.name} on decorated method ${e}`;throw o.error(t),Error(t)}const n=yt(c,e,i);n&&ft(c,e,n,ht(e,r,t.httpMethod))}for(const[e,r]of Object.entries(n)){const o=[t,e,...(r.fields??[]).map(e=>":"+e)].filter(e=>e&&e.trim()).join("/"),i=yt(c,e,mt(e));i&&ft(c,e,i,ht(e,o,"GET",!0))}return c}static create(e){const t=At.log.for(At.create),r=C.tableName(e),o=xe(r),i=e.name,s=At.getPersistence(e),{description:n,getPK:a,apiProperties:c,path:p}=At.getRouteParametersFromModel(e);t.debug("Creating controller for model: "+i);const d=At.createQueryRoutesFromRepository(s);let l=class extends d{static get class(){return e}get class(){return e}constructor(r){super(r),this.pk=C.pk(e),t.info(`Registering dynamic controller for model: ${this.class.name} route: /${o}`)}async listBy(e,t){const{ctx:r}=(await this.logCtx([],q.LIST_BY,!0)).for(this.listBy);return this.persistence(r).listBy(e,t.direction,r)}async paginateBy(e,t){const{ctx:r}=(await this.logCtx([],q.PAGE_BY,!0)).for(this.paginateBy);return this.persistence(r).paginateBy(e,t.direction,t,r)}async findOneBy(e,t){const{ctx:r}=(await this.logCtx([],q.FIND_ONE_BY,!0)).for(this.findOneBy);return this.persistence(r).findOneBy(e,t,r)}async findBy(e,t,r){const{ctx:o}=(await this.logCtx([],q.FIND_BY,!0)).for(this.findBy);return this.persistence(o).for(o.toOverrides()).findBy(e,t,o)}async statement(e,t,r){const{ctx:o}=(await this.logCtx([],I.STATEMENT,!0)).for(this.statement),{direction:i,offset:s,limit:n,bookmark:a}=r;switch(t=t.map(e=>("string"==typeof e?parseInt(e):e)||e),e){case q.FIND_BY:break;case q.LIST_BY:t.push(i);break;case q.PAGE_BY:t=[t[0],i,{limit:n,offset:s,bookmark:a}];case q.FIND_ONE_BY:}return this.persistence(o).statement(e,...t,o)}async createAll(t){const{ctx:r,log:o}=(await this.logCtx([],fe.CREATE_ALL,!0)).for(this.createAll);let s;o.verbose("creating new "+i);try{s=await this.persistence(r).createAll(t.map(t=>new e(t)),r)}catch(e){throw o.error("Failed to create new "+i,e),e}return o.info(`created new ${i} with id ${s[this.pk]}`),s}async create(e){const{ctx:t,log:r}=(await this.logCtx([],he.CREATE,!0)).for(this.create);let o;r.verbose("creating new "+i);try{o=await this.persistence(t).create(e,t)}catch(e){throw r.error("Failed to create new "+i,e),e}return r.info(`created new ${i} with id ${o[this.pk]}`),o}async readAll(e){const{ctx:t,log:r}=(await this.logCtx([],fe.READ_ALL,!0)).for(this.readAll);let o;try{r.debug(`reading ${e.length} ${i}: ${e}`),o=await this.persistence(t).readAll(e,t)}catch(t){throw r.error(`Failed to ${i} with id ${e}`,t),t}return r.info(`read ${o.length} ${i}`),o}async read(e){const{ctx:t,log:r}=(await this.logCtx([],he.READ,!0)).for(this.read),o=a(...e.valuesInOrder);if(void 0===o)throw new ge(`No ${this.pk} provided`);let s;try{r.debug(`reading ${i} with ${this.pk} ${o}`),s=await this.persistence(t).read(o,t)}catch(e){throw r.error(`Failed to read ${i} with id ${o}`,e),e}return r.info(`read ${i} with id ${s[this.pk]}`),s}async updateAll(e){const{ctx:t,log:r}=(await this.logCtx([],fe.UPDATE_ALL,!0)).for(this.updateAll);let o;try{r.info(`updating ${e.length} ${i}`);const s=e.map(e=>JSON.parse(JSON.stringify(e)));o=await this.persistence(t).updateAll(s,t)}catch(e){throw r.error(e),e}return o}async update(t,r){const{ctx:o,log:s}=(await this.logCtx([],he.UPDATE,!0)).for(this.update),n=a(...t.valuesInOrder);if(void 0===n)throw new ge(`No ${this.pk} provided`);let c;try{s.info(`updating ${i} with ${this.pk} ${n}`);const t=JSON.parse(JSON.stringify(r));c=await this.persistence(o).update(new e({...t,[this.pk]:n}),o)}catch(e){throw s.error(e),e}return c}async deleteAll(e){const{ctx:t,log:r}=(await this.logCtx([],fe.DELETE_ALL,!0)).for(this.deleteAll);let o;try{r.debug(`deleting ${e.length} ${i}: ${e}`),o=await this.persistence(t).deleteAll(e,t)}catch(t){throw r.error(`Failed to delete ${i} with id ${e}`,t),t}return r.info(`deleted ${o.length} ${i}`),o}async delete(e){const{ctx:t,log:r}=(await this.logCtx([],he.DELETE,!0)).for(this.delete),o=a(...e.valuesInOrder);if(void 0===o)throw new ge(`No ${this.pk} provided`);let s;try{r.debug(`deleting ${i} with ${this.pk} ${o}`),s=await this.persistence(t).delete(o,t)}catch(e){throw r.error(`Failed to delete ${i} with id ${o}`,e),e}return r.info(`deleted ${i} with id ${o}`),s}};return Ee([Be(e,"GET","listBy/:key"),Z({summary:`Retrieve ${i} records by query.`}),V({name:"key",description:"the model key to sort by"}),W({name:"direction",required:!0,enum:N}),ee({description:i+" listed successfully."}),Ae(1,Je()),be("design:type",Function),be("design:paramtypes",[String,Object]),be("design:returntype",Promise)],l.prototype,"listBy",null),Ee([Be(e,"GET","paginateBy/:key/:page"),Z({summary:`Retrieve ${i} records by query.`}),V({name:"key",description:"the model key to sort by"}),V({name:"page",description:"the page to retrieve or the bookmark"}),W({name:"direction",required:!0,enum:N,description:"the sort order"}),W({name:"limit",required:!0,description:"the page size"}),W({name:"offset",description:"the bookmark when necessary"}),ee({description:i+" listed paginated."}),Ae(0,v("key")),Ae(1,Je()),be("design:type",Function),be("design:paramtypes",[String,Object]),be("design:returntype",Promise)],l.prototype,"paginateBy",null),Ee([Be(e,"GET","findOneBy/:key"),Z({summary:`Retrieve ${i} records by query.`}),V({name:"key",description:"the model key to sort by"}),ee({description:i+" listed found."}),oe({description:`No ${i} record matches the provided identifier.`}),Ae(0,v("key")),Ae(1,v("value")),be("design:type",Function),be("design:paramtypes",[String,Object]),be("design:returntype",Promise)],l.prototype,"findOneBy",null),Ee([Be(e,"GET","findBy/:key/:value"),Z({summary:`Retrieve ${i} records by query.`}),V({name:"key",description:"the model key to compare"}),V({name:"value",description:"the value to match"}),W({name:"direction",required:!0,enum:N,description:"the sort order when applicable"}),ee({description:i+" listed found."}),oe({description:`No ${i} record matches the provided identifier.`}),Ae(0,v("key")),Ae(1,v("value")),Ae(2,Je()),be("design:type",Function),be("design:paramtypes",[String,Object,Object]),be("design:returntype",Promise)],l.prototype,"findBy",null),Ee([Be(e,"GET","statement/:method/*args"),Z({summary:`Executes a prepared statement on ${i}.`}),V({name:"method",description:"the prepared statement to execute"}),V({name:"args",description:"concatenated list of arguments the prepared statement can accept"}),W({name:"direction",required:!0,enum:N,description:"the sort order when applicable"}),W({name:"limit",required:!0,description:"limit or page size when applicable"}),W({name:"offset",required:!0,description:"offset or bookmark when applicable"}),ee({description:i+" listed found."}),oe({description:`No ${i} record matches the provided identifier.`}),Ae(0,v("method")),Ae(1,v("args")),Ae(2,Je()),be("design:type",Function),be("design:paramtypes",[String,Array,Object]),be("design:returntype",Promise)],l.prototype,"statement",null),Ee([Be(e,"POST","bulk"),Z({summary:`Create a new ${i}.`}),ie({description:"Payload for "+i,schema:{type:"array",items:{$ref:se(e)}}}),ne({description:i+" created successfully.",schema:{type:"array",items:{$ref:se(e)}}}),ae({description:"Payload validation failed."}),ce({description:"Repository rejected the provided payload."}),Ae(0,He()),be("design:type",Function),be("design:paramtypes",[Array]),be("design:returntype",Promise)],l.prototype,"createAll",null),Ee([Be(e,"POST"),Z({summary:`Create a new ${i}.`}),ie({description:"Payload for "+i,type:Et(he.CREATE,e)}),ne({description:i+" created successfully.",schema:{$ref:se(e)}}),ae({description:"Payload validation failed."}),ce({description:"Repository rejected the provided payload."}),Ae(0,He()),be("design:type",Function),be("design:paramtypes",[Object]),be("design:returntype",Promise)],l.prototype,"create",null),Ee([Be(e,"GET","bulk"),Z({summary:`Retrieve a ${i} record by id.`}),W({name:"ids",required:!0,type:"array"}),ee({description:i+" retrieved successfully.",schema:{type:"array",items:{$ref:se(e)}}}),oe({description:`No ${i} record matches the provided identifier.`}),Ae(0,P("ids")),be("design:type",Function),be("design:paramtypes",[Array]),be("design:returntype",Promise)],l.prototype,"readAll",null),Ee([Be(e,"GET",p),Ge(c),Z({summary:`Retrieve a ${i} record by id.`}),ee({description:i+" retrieved successfully.",schema:{$ref:se(e)}}),oe({description:`No ${i} record matches the provided identifier.`}),Ae(0,Ye(c)),be("design:type",Function),be("design:paramtypes",[Object]),be("design:returntype",Promise)],l.prototype,"read",null),Ee([Be(e,"PUT","bulk"),Ge(c),Z({summary:`Replace an existing ${i} record with a new payload.`}),ie({description:"Payload for replace a existing record of "+i,schema:{type:"array",items:{$ref:se(e)}}}),ne({description:i+" updated successfully.",schema:{type:"array",items:{$ref:se(e)}}}),oe({description:`No ${i} record matches the provided identifier.`}),ae({description:"Payload validation failed."}),Ae(0,He()),be("design:type",Function),be("design:paramtypes",[Array]),be("design:returntype",Promise)],l.prototype,"updateAll",null),Ee([Be(e,"PUT",p),Ge(c),Z({summary:`Replace an existing ${i} record with a new payload.`}),ie({description:"Payload for replace a existing record of "+i,schema:{$ref:se(e)}}),ee({description:i+" updated successfully."}),oe({description:`No ${i} record matches the provided identifier.`}),ae({description:"Payload validation failed."}),Ae(0,Ye(c)),Ae(1,He()),be("design:type",Function),be("design:paramtypes",[Object,Object]),be("design:returntype",Promise)],l.prototype,"update",null),Ee([Be(e,"DELETE","bulk"),Ge(c),Z({summary:`Retrieve a ${i} record by id.`}),W({name:"ids",required:!0,type:"array"}),ee({description:i+" retrieved successfully."}),oe({description:`No ${i} record matches the provided identifier.`}),Ae(0,P("ids")),be("design:type",Function),be("design:paramtypes",[Array]),be("design:returntype",Promise)],l.prototype,"deleteAll",null),Ee([Be(e,"DELETE",p),Ge(c),Z({summary:`Delete a ${i} record by id.`}),ee({description:i+" record deleted successfully."}),oe({description:`No ${i} record matches the provided identifier.`}),Ae(0,Ye(c)),be("design:type",Function),be("design:paramtypes",[Object]),be("design:returntype",Promise)],l.prototype,"delete",null),l=Ee([T(o),pe(i),de(e),nt(e),be("design:paramtypes",[dt])],l),l}static getRouteParametersFromModel(e){const t=C.pk(e),o=r.get(e,r.key(ye.COMPOSED,t)),i=o?.args??[],s=Array.isArray(i)&&i.length>0?Array.from(new Set([...i])):Array.from(new Set([t])),n=r.description(e);return{path:":"+s.join("/:"),description:n,apiProperties:s.map(t=>({name:t,description:r.description(e,t),required:!0,type:String})),getPK:(...e)=>o?.separator?e.join(o.separator):e.join("")}}}B.transformerFor=(e=>{const t="string"==typeof e?e:e.alias;return r.innerGet(Symbol.for("transformers"),t)}).bind(B),B.flavoursToTransform=(()=>{const e=r.innerGet(Symbol.for("transformers"));if(e)return Object.keys(e)}).bind(B);let bt=class{constructor(e,t){this.requestContext=e,this.executor=t}async contextualize(e){const t={headers:e.headers,overrides:{}},r=B.flavoursToTransform();if(r)for(const o of r)try{const r=B.transformerFor(o),i=await r.from(e);Object.assign(t.overrides,i)}catch(e){throw new me("Failed to contextualize request: "+e)}return(new U).accumulate(Object.assign({},G,{logger:Oe.get(),timestamp:new Date},t))}async intercept(e,t){const r=e.switchToHttp().getRequest(),o=e.switchToHttp().getResponse(),i=await this.contextualize(r);return this.requestContext.applyCtx(i),await this.executor.exec(r,o),t.handle()}};bt=Ee([c({scope:p.REQUEST}),be("design:paramtypes",[dt,lt])],bt);class Pt{}function vt(e){return t=>(r.set("transformers",e,t),"function"==typeof t?s("transformers",e)(t):t)}function Tt(e){var t;let r=class{static{t=this}static{this.log=Oe.for(t.name).for(e)}static createModelServices(e){return e.map(e=>({provide:e.name+"Service",useFactory:()=>L.forModel(e)}))}static forRoot(e,r={}){const o=this.log.for(this.forRoot);o.info("Generating controllers for flavour...");const i=B.models(e);let s=[];r.autoServices&&(o.info("Auto-services enabled. Initializing service generation."),s=this.createModelServices(i),o.info(`Auto-services completed. ${s.length} services initialized.`));const n=i.map(At.create);return o.info(`Generated ${n.length} controllers`),{module:t,controllers:n,providers:[{provide:We,useFactory:()=>r.handlers?.map(e=>(o.info("Registered request handler: "+e.name),new e))??[]},dt,lt,{provide:ve,useClass:bt},...s]}}};return r=t=Ee([R({})],r),Object.assign(r,"name",{value:"DecafModule"+e}),r}class Rt extends H{constructor(e){super(e,Rt.name)}}let Ot=class{catch(e,t){const r=t.switchToHttp(),o=r.getResponse(),i=r.getRequest(),s="production"===$e.env;e instanceof we||(e=new me(e.message)),o.status(e.code).json({status:e.code,error:s?e.name:e.message,timestamp:(new Date).toISOString(),path:i.url,method:i.method})}};function xt(){return x(new Ot)}Ot=Ee([O()],Ot);const $t={title:"Swagger | OpenAPI Specification (OAS)",description:"Standardized format for describing RESTful APIs",version:"0.0.1",path:"docs",faviconFilePath:"",topbarIconFilePath:"",auth:{type:"http",scheme:"bearer",bearerFormat:"JWT",name:"Authorization",description:"Enter JWT token",in:"header"},persistAuthorization:!0,topbarBgColor:"#000000"};class St{constructor(e){this.options={...e}}customCSS(){let e="";return this.options.topbarIconPath&&(e+=`.topbar-wrapper { content: url('data:image/png;base64,${this.b64(this.options.topbarIconPath)}'); width: 200px; height: auto; }\n`),e+`\n .topbar-wrapper svg { visibility: hidden; }\n .swagger-ui .topbar { background-color: ${this.options.topbarBgColor||$t.topbarBgColor}; }\n `}getCustomOptions(){const e={};return this.options.faviconPath&&(e.customfavIcon=this.b64(this.options.faviconPath,!0)),{customSiteTitle:this.options.title,...e,customCss:this.customCSS(),swaggerOptions:{persistAuthorization:this.options.persistAuthorization},jsonDocumentUrl:this.options.path?this.options.path+"/spec.json":void 0,yamlDocumentUrl:this.options.path?this.options.path+"/spec.yaml":void 0}}b64(e,t=!1){const r=_e.join(this.options.assetsPath||"",e),o=Se(r,{encoding:"base64"});return t?"data:image/png;base64,"+o:o}}class _t{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 le).setTitle(this.options.title).setDescription(e).setVersion(this.options.version||"0.0.1").addBearerAuth(this.options.auth||$t.auth).build();return ue.createDocument(this.app,t,{extraModels:this.options.extraModels||[]})}setupSwagger(){const e=this.createDocument(),t=new St({title:this.options.title,path:this.options.path||$t.path,persistAuthorization:this.options.persistAuthorization??!0,assetsPath:this.options.assetsPath,faviconPath:this.options.faviconFilePath,topbarIconPath:this.options.topbarIconFilePath,topbarBgColor:this.options.topbarBgColor});ue.setup(this.options.path||$t.path,this.app,e,{...t.getCustomOptions()})}}class Ct{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 Rt(`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 _t(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 Ot]),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 It;let kt=class{static{It=this}static get persistence(){if(!this._persistence)throw new me("Persistence service not initialized");return this._persistence}static get log(){return this._logger||(this._logger=Oe.for(It)),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 z,await this._persistence.boot(r);const o=this._persistence.client;for(let t=0;t<o.length;t++){const r=e.conf[t];let[,,i]=r;if(!i){const e=B.transformerFor(o[t].flavour);if(!e)throw new me(`No transformer found for flavour ${o[t].flavour}. you should either @requestToContextTransformer or provide a transformer in the config`);i=e instanceof Pt?e:new e}vt(o[t].flavour)(i)}t.info("persistence layer created successfully!")}return this.persistence.client}static forRoot(e){const t={provide:Ke,useValue:e},r={useFactory:async e=>It.bootPersistence(e),provide:Xe,durable:!0,scope:p.DEFAULT,inject:[Ke]};return{module:It,providers:[r,t],exports:[r]}}async onApplicationShutdown(){const e=It.log.for(this.onApplicationShutdown),t=this.moduleRef.get(Xe);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)}}};var Nt;kt=It=Ee([S(),R({}),Ae(0,d(Ke)),be("design:paramtypes",[Object,Te])],kt);let Lt=Nt=class{static async forRootAsync(e){const{autoControllers:t,autoServices:r,handlers:o}=e,i=(await kt.bootPersistence(e)).map(e=>e.flavour),s=[kt.forRoot(e)];return t&&i.forEach(e=>{s.push(Tt(e).forRoot(e,{autoServices:r,handlers:o}))}),{module:Nt,imports:s}}};function Dt(e){const t=C.get(e);if(!t)throw new me("Failed to find repository for "+e);return j.forModel(t)}Lt=Nt=Ee([R({})],Lt);const Ft="##VERSION##",jt="##PACKAGE##";r.registerLibrary(jt,Ft);export{et as AUTH_HANDLER,tt as AUTH_META_KEY,Be as ApiOperationFromModel,Ge as ApiParamsFromModel,je as ApiProperty,nt as Auth,st as AuthInterceptor,rt as AuthRole,Ue as BulkApiOperationFromModel,Rt as CorsError,Xe as DECAF_ADAPTER_ID,Ze as DECAF_ADAPTER_OPTIONS,ot as DECAF_CONTEXT_KEY,We as DECAF_HANDLERS,Ke as DECAF_MODULE_OPTIONS,Ve as DECAF_ROUTE,Ie as DECORATORS,Ce as DECORATORS_PREFIX,ct as DecafAuthHandler,He as DecafBody,gt as DecafController,Ot as DecafExceptionFilter,lt as DecafHandlerExecutor,wt as DecafModelController,Lt as DecafModule,Ye as DecafParams,Je as DecafQuery,dt as DecafRequestContext,bt as DecafRequestHandlerInterceptor,pt as DecafRoleAuthHandler,Et as DtoFor,At as FromModelController,Qe as HttpVerbToDecorator,Ct as NestBootstraper,jt as PACKAGE_NAME,Pt as RequestToContextTransformer,at as Roles,_t as SwaggerBuilder,xt as UseDecafFilter,Ft as VERSION,Me as createApiPropertyDecorator,Fe as createPropertyDecorator,De as getEnumType,Le as getEnumValues,Tt as getModuleFor,qe as isOperationBlocked,Ne as isUndefined,Dt as repoForModel,vt as requestToContextTransformer,it as route};
|
|
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/decoration.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/route.ts","../src/interceptors/AuthInterceptor.ts","../src/decaf-model/decorators/decorators.ts","../src/request/DecafAuthHandler.ts","../src/request/DecafRequestContext.ts","../src/request/DecafHandlerExecutor.ts","../src/interceptors/context.ts","../src/request/RamRequestTransformer.ts","../src/decaf-model/utils.ts","../src/controllers.ts","../src/factory/openapi/DtoBuilder.ts","../src/decaf-model/FromModelController.ts","../src/overrides/overrides.ts","../src/interceptors/DecafRequestHandlerInterceptor.ts","../src/decaf-model/DecafModelModule.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/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],"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","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","required","String","applyDecorators","Decoration","for","InjectablesKeys","INJECTABLE","extend","decorator","category","cfg","assign","DefaultInjectablesConfig","Injectable","scope","singleton","Scope","DEFAULT","REQUEST","durable","INJECT","descriptor","Inject","ValidationKeys","REQUIRED","MAX","max","maximum","MIN","min","minimum","MAX_LENGTH","maxLength","MIN_LENGTH","minLength","TYPE","prop","DATE","format","ENUM","PATTERN","pat","pattern","source","PersistenceKeys","COLUMN","DecorationKeys","DESCRIPTION","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","Error","DECAF_MODULE_OPTIONS","DECAF_ADAPTER_ID","DECAF_ROUTE","DECAF_HANDLERS","Symbol","DECAF_ADAPTER_OPTIONS","AUTH_HANDLER","AUTH_META_KEY","AuthRole","DECAF_CONTEXT_KEY","route","httpMethod","define","methodMetadata","AuthInterceptor","reflector","authHandler","this","intercept","next","modelName","getHandler","authorize","handle","Auth","model","resource","SetMetadata","UseInterceptors","__decorate","__param","Optional","Reflector","Roles","roles","DecafAuthHandler","parseRequest","userRole","headers","authorization","split","AuthorizationError","Model","DecafRoleAuthHandler","super","DecafRequestContext","put","record","overrides","e","_ctx","accumulate","applyCtx","InternalError","DecafHandlerExecutor","handlers","context","exec","res","RequestToContextTransformer","requestToContextTransformer","flavour","set","RamTransformer","from","user","UUID","apiParamSpec","getApiDecorators","methodName","routePath","httpVerb","includeQueryParams","NestHttpRouteDec","apiPathParams","startsWith","slice","extractPathParams","swaggerQueryParams","push","ApiQuery","OrderDirection","method","ApiParam","ApiOperation","summary","ApiOkResponse","ApiNoContentResponse","Query","applyApiDecorators","proto","prototype","forEach","d","index","createRouteHandler","async","pathParams","queryParams","log","debug","JSON","stringify","direction","persistence","ModelService","statement","resolvePersistenceMethod","error","defineRouteMethod","ControllerClass","defineProperty","writable","getOwnPropertyDescriptor","DecafController","Service","clientContext","logCtx","operation","allowCreate","ContextualLoggedClass","call","DecafModelController","_persistence","getService","Repository","forModel","override","toOverrides","contextual","ctxArgs","repo","then","DtoFor","TransactionOperationKeys","isUpdate","relations","exceptions","generated","pk","DynamicDTO","OmitType","addRelation","relation","relationDto","enumerable","configurable","toPascalCase","allowedTypes","meta","validationFor","LIST","FromModelController","Logging","getPersistence","ModelClazz","createQueryRoutesFromRepository","prefix","QUERY","queryMethods","routeMethods","QueryController","entries","replace","segment","trim","join","message","objValues","fields","f","create","tableName","toKebabCase","modelClazzName","getPK","apiProperties","getRouteParametersFromModel","BaseController","DynamicModelController","info","listBy","details","PreparedStatementKeys","LIST_BY","paginateBy","PAGE_BY","findOneBy","FIND_ONE_BY","findBy","FIND_BY","STATEMENT","a","parseInt","createAll","created","verbose","readAll","ids","read","routeParams","id","ValidationError","updateAll","updated","payloads","entry","parse","update","payload","deleteAll","delete","del","Param","ApiNotFoundResponse","ApiBody","schema","$ref","getSchemaPath","ApiCreatedResponse","ApiBadRequestResponse","ApiUnprocessableEntityResponse","Controller","ApiTags","ApiExtraModels","composed","DBKeys","COMPOSED","composedKeys","uniqueKeys","Set","separator","Adapter","transformerFor","adapter","alias","bind","flavoursToTransform","DecafRequestHandlerInterceptor","requestContext","executor","contextualize","flags","flavours","transformer","Context","DefaultAdapterFlags","logger","timestamp","Date","getResponse","getModuleFor","DecafModelModule","DecafModelModule_1","createModelServices","models","provide","useFactory","forRoot","trackedModels","modelServices","autoServices","controllers","module","providers","H","APP_INTERCEPTOR","useClass","Module","CorsError","ForbiddenError","msg","DecafExceptionFilter","exception","host","response","request","isProduction","LoggedEnvironment","env","BaseError","status","code","json","toISOString","url","UseDecafFilter","UseFilters","Catch","SWAGGER_UI_CONSTANTS","title","version","faviconFilePath","topbarIconFilePath","auth","scheme","bearerFormat","in","persistAuthorization","topbarBgColor","SwaggerCustomUI","customCSS","css","topbarIconPath","b64","getCustomOptions","favicon","faviconPath","customSiteTitle","customCss","swaggerOptions","jsonDocumentUrl","yamlDocumentUrl","file","img","filePath","assetsPath","readFileSync","encoding","SwaggerBuilder","app","createDocument","config","DocumentBuilder","setTitle","setDescription","setVersion","addBearerAuth","build","SwaggerModule","extraModels","setupSwagger","document","swaggerUI","setup","NestBootstraper","_logger","Logger","initialize","enableLogger","customLogger","useLogger","enableCors","origins","allowMethods","allowedOrigins","o","toLowerCase","corsOptions","origin","callback","credentials","methods","useHelmet","helmet","require","use","warn","useGlobalPipes","pipes","useGlobalFilters","filters","useGlobalInterceptors","interceptors","start","port","process","PORT","listen","getUrl","DecafCoreModule","DecafCoreModule_1","moduleRef","bootPersistence","trimmed","conf","contr","pop","PersistenceService","boot","clients","client","i","c","typeOrmModuleOptions","useValue","inject","exports","onApplicationShutdown","adapters","shutdown","Global","ModuleRef","DecafModule","DecafModule_1","forRootAsync","autoControllers","imports","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/decoration.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/route.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/decaf-model/FromModelController.ts","../src/overrides/overrides.ts","../src/interceptors/DecafRequestHandlerInterceptor.ts","../src/interceptors/context.ts","../src/decaf-model/DecafModelModule.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/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],"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","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","required","String","applyDecorators","Decoration","for","InjectablesKeys","INJECTABLE","extend","decorator","category","cfg","assign","DefaultInjectablesConfig","Injectable","scope","singleton","Scope","DEFAULT","REQUEST","durable","INJECT","descriptor","Inject","ValidationKeys","REQUIRED","MAX","max","maximum","MIN","min","minimum","MAX_LENGTH","maxLength","MIN_LENGTH","minLength","TYPE","prop","DATE","format","ENUM","PATTERN","pat","pattern","source","PersistenceKeys","COLUMN","DecorationKeys","DESCRIPTION","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","Error","DECAF_MODULE_OPTIONS","DECAF_ADAPTER_ID","DECAF_ROUTE","DECAF_HANDLERS","Symbol","DECAF_ADAPTER_OPTIONS","AUTH_HANDLER","AUTH_META_KEY","AuthRole","DECAF_CONTEXT_KEY","route","httpMethod","define","methodMetadata","AuthInterceptor","reflector","authHandler","this","intercept","next","modelName","getHandler","authorize","handle","Auth","model","resource","SetMetadata","UseInterceptors","__decorate","__param","Optional","Reflector","Roles","roles","DecafAuthHandler","parseRequest","userRole","headers","authorization","split","AuthorizationError","Model","DecafRoleAuthHandler","super","DecafRequestContext","put","record","overrides","e","_ctx","accumulate","applyCtx","InternalError","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","proto","prototype","forEach","d","index","createRouteHandler","async","pathParams","queryParams","log","debug","JSON","stringify","direction","persistence","ModelService","statement","resolvePersistenceMethod","error","defineRouteMethod","ControllerClass","defineProperty","writable","getOwnPropertyDescriptor","DecafController","Service","clientContext","logCtx","operation","allowCreate","ContextualLoggedClass","call","DecafModelController","_persistence","getService","Repository","forModel","override","toOverrides","contextual","ctxArgs","repo","then","DtoFor","TransactionOperationKeys","isUpdate","relations","exceptions","generated","pk","DynamicDTO","OmitType","addRelation","relation","relationDto","enumerable","configurable","toPascalCase","allowedTypes","meta","validationFor","LIST","FromModelController","Logging","getPersistence","ModelClazz","createQueryRoutesFromRepository","prefix","QUERY","queryMethods","routeMethods","QueryController","entries","replace","segment","trim","join","message","objValues","fields","f","create","tableName","toKebabCase","modelClazzName","getPK","apiProperties","getRouteParametersFromModel","BaseController","DynamicModelController","info","listBy","details","PreparedStatementKeys","LIST_BY","paginateBy","PAGE_BY","findOneBy","FIND_ONE_BY","findBy","FIND_BY","STATEMENT","a","parseInt","createAll","created","verbose","readAll","ids","read","routeParams","id","ValidationError","updateAll","updated","payloads","entry","parse","update","payload","deleteAll","delete","del","Param","ApiNotFoundResponse","ApiBody","schema","$ref","getSchemaPath","ApiCreatedResponse","ApiBadRequestResponse","ApiUnprocessableEntityResponse","Controller","ApiTags","ApiExtraModels","composed","DBKeys","COMPOSED","composedKeys","uniqueKeys","from","Set","separator","Adapter","transformerFor","adapter","alias","bind","flavoursToTransform","DecafRequestHandlerInterceptor","requestContext","executor","contextualize","flags","flavours","flavour","transformer","Context","DefaultAdapterFlags","logger","timestamp","Date","getResponse","RequestToContextTransformer","requestToContextTransformer","set","getModuleFor","DecafModelModule","DecafModelModule_1","createModelServices","models","provide","useFactory","forRoot","trackedModels","modelServices","autoServices","controllers","module","providers","H","APP_INTERCEPTOR","useClass","Module","CorsError","ForbiddenError","msg","DecafExceptionFilter","exception","host","response","request","isProduction","LoggedEnvironment","env","BaseError","status","code","json","toISOString","url","UseDecafFilter","UseFilters","Catch","SWAGGER_UI_CONSTANTS","title","version","faviconFilePath","topbarIconFilePath","auth","scheme","bearerFormat","in","persistAuthorization","topbarBgColor","SwaggerCustomUI","customCSS","css","topbarIconPath","b64","getCustomOptions","favicon","faviconPath","customSiteTitle","customCss","swaggerOptions","jsonDocumentUrl","yamlDocumentUrl","file","img","filePath","assetsPath","readFileSync","encoding","SwaggerBuilder","app","createDocument","config","DocumentBuilder","setTitle","setDescription","setVersion","addBearerAuth","build","SwaggerModule","extraModels","setupSwagger","document","swaggerUI","setup","NestBootstraper","_logger","Logger","initialize","enableLogger","customLogger","useLogger","enableCors","origins","allowMethods","allowedOrigins","o","toLowerCase","corsOptions","origin","callback","credentials","methods","useHelmet","helmet","require","use","warn","useGlobalPipes","pipes","useGlobalFilters","filters","useGlobalInterceptors","interceptors","start","port","process","PORT","listen","getUrl","DecafCoreModule","DecafCoreModule_1","moduleRef","bootPersistence","trimmed","conf","contr","pop","PersistenceService","boot","clients","client","i","c","typeOrmModuleOptions","useValue","inject","exports","onApplicationShutdown","adapters","shutdown","Global","ModuleRef","DecafModule","DecafModule_1","forRootAsync","autoControllers","imports","repoForModel","m","VERSION","PACKAGE_NAME","registerLibrary"],"mappings":"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"}
|
package/lib/esm/index.d.ts
CHANGED
package/lib/esm/index.js
CHANGED
|
@@ -38,7 +38,7 @@ export * from "./utils.js";
|
|
|
38
38
|
* @constant
|
|
39
39
|
* @type {string}
|
|
40
40
|
*/
|
|
41
|
-
export const VERSION = "0.2.
|
|
41
|
+
export const VERSION = "0.2.5";
|
|
42
42
|
export const PACKAGE_NAME = "@decaf-ts/for-nest";
|
|
43
43
|
Metadata.registerLibrary(PACKAGE_NAME, VERSION);
|
|
44
44
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/interceptors/index.ts"],"names":[],"mappings":"AAAA,oDAAiD;AACjD,qCAAkC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/interceptors/index.ts"],"names":[],"mappings":"AAAA,oDAAiD;AACjD,qCAAkC;AAClC,6BAA0B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RamRequestTransformer.js","sourceRoot":"","sources":["../../../src/ram/RamRequestTransformer.ts"],"names":[],"mappings":";;;;;;AAEA,OAAO,EACL,2BAA2B,GAE5B,qCAAgC;AAG1B,IAAM,cAAc,GAApB,MAAM,cAAc;IACzB,KAAK,CAAC,IAAI,CAAC,GAAQ;QACjB,MAAM,IAAI,GAAG,GAAG,CAAC,OAAO,CAAC,aAAa;YACpC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,aAAa,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YACzC,CAAC,CAAC,SAAS,CAAC;QACd,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,OAAO,EAAE,CAAC;QACZ,CAAC;QACD,OAAO;YACL,IAAI,EAAE,IAAI;SACX,CAAC;IACJ,CAAC;CACF,CAAA;AAZY,cAAc;IAD1B,2BAA2B,CAAC,KAAK,CAAC;GACtB,cAAc,CAY1B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from "./RamRequestTransformer";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/ram/index.ts"],"names":[],"mappings":"AAAA,2CAAwC"}
|
package/lib/esm/request/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/request/index.ts"],"names":[],"mappings":"AAAA,sCAAmC;AACnC,yCAAsC;AACtC,0CAAuC
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/request/index.ts"],"names":[],"mappings":"AAAA,sCAAmC;AACnC,yCAAsC;AACtC,0CAAuC"}
|
package/lib/index.cjs
CHANGED
|
@@ -55,7 +55,7 @@ __exportStar(require("./utils.cjs"), exports);
|
|
|
55
55
|
* @constant
|
|
56
56
|
* @type {string}
|
|
57
57
|
*/
|
|
58
|
-
exports.VERSION = "0.2.
|
|
58
|
+
exports.VERSION = "0.2.5";
|
|
59
59
|
exports.PACKAGE_NAME = "@decaf-ts/for-nest";
|
|
60
60
|
decoration_1.Metadata.registerLibrary(exports.PACKAGE_NAME, exports.VERSION);
|
|
61
61
|
//# sourceMappingURL=index.js.map
|
package/lib/index.d.ts
CHANGED
|
@@ -16,4 +16,5 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
17
|
__exportStar(require("./DecafRequestHandlerInterceptor.cjs"), exports);
|
|
18
18
|
__exportStar(require("./AuthInterceptor.cjs"), exports);
|
|
19
|
+
__exportStar(require("./context.cjs"), exports);
|
|
19
20
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/interceptors/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,uEAAiD;AACjD,wDAAkC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/interceptors/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,uEAAiD;AACjD,wDAAkC;AAClC,gDAA0B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RamRequestTransformer.js","sourceRoot":"","sources":["../../src/ram/RamRequestTransformer.ts"],"names":[],"mappings":";;;;;;;;;AAEA,2DAGiC;AAG1B,IAAM,cAAc,GAApB,MAAM,cAAc;IACzB,KAAK,CAAC,IAAI,CAAC,GAAQ;QACjB,MAAM,IAAI,GAAG,GAAG,CAAC,OAAO,CAAC,aAAa;YACpC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,aAAa,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YACzC,CAAC,CAAC,SAAS,CAAC;QACd,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,OAAO,EAAE,CAAC;QACZ,CAAC;QACD,OAAO;YACL,IAAI,EAAE,IAAI;SACX,CAAC;IACJ,CAAC;CACF,CAAA;AAZY,wCAAc;yBAAd,cAAc;IAD1B,IAAA,qCAA2B,EAAC,KAAK,CAAC;GACtB,cAAc,CAY1B"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./RamRequestTransformer.cjs"), exports);
|
|
18
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from "./RamRequestTransformer";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/ram/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,8DAAwC"}
|
package/lib/request/index.cjs
CHANGED
|
@@ -17,5 +17,4 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
17
17
|
__exportStar(require("./DecafAuthHandler.cjs"), exports);
|
|
18
18
|
__exportStar(require("./DecafRequestContext.cjs"), exports);
|
|
19
19
|
__exportStar(require("./DecafHandlerExecutor.cjs"), exports);
|
|
20
|
-
__exportStar(require("./RamRequestTransformer.cjs"), exports);
|
|
21
20
|
//# sourceMappingURL=index.js.map
|
package/lib/request/index.d.ts
CHANGED
package/lib/request/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/request/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,yDAAmC;AACnC,4DAAsC;AACtC,6DAAuC
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/request/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,yDAAmC;AACnC,4DAAsC;AACtC,6DAAuC"}
|
package/package.json
CHANGED
|
@@ -1,11 +1,19 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@decaf-ts/for-nest",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.6",
|
|
4
4
|
"description": "NestJS decaf integration",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"exports": {
|
|
7
|
-
"
|
|
8
|
-
|
|
7
|
+
".": {
|
|
8
|
+
"require": "./lib/index.cjs",
|
|
9
|
+
"import": "./lib/esm/index.js",
|
|
10
|
+
"types": "./lib/index.d.ts"
|
|
11
|
+
},
|
|
12
|
+
"./ram": {
|
|
13
|
+
"require": "./lib/ram/index.cjs",
|
|
14
|
+
"import": "./lib/esm/ram/index.js",
|
|
15
|
+
"types": "./lib/ram/index.d.ts"
|
|
16
|
+
}
|
|
9
17
|
},
|
|
10
18
|
"bin": {
|
|
11
19
|
"for-nest": "lib/bin/cli.cjs"
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"RamRequestTransformer.js","sourceRoot":"","sources":["../../../src/request/RamRequestTransformer.ts"],"names":[],"mappings":";;;;;;AAEA,OAAO,EACL,2BAA2B,GAE5B,qCAAgC;AAG1B,IAAM,cAAc,GAApB,MAAM,cAAc;IACzB,KAAK,CAAC,IAAI,CAAC,GAAQ;QACjB,MAAM,IAAI,GAAG,GAAG,CAAC,OAAO,CAAC,aAAa;YACpC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,aAAa,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YACzC,CAAC,CAAC,SAAS,CAAC;QACd,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,OAAO,EAAE,CAAC;QACZ,CAAC;QACD,OAAO;YACL,IAAI,EAAE,IAAI;SACX,CAAC;IACJ,CAAC;CACF,CAAA;AAZY,cAAc;IAD1B,2BAA2B,CAAC,KAAK,CAAC;GACtB,cAAc,CAY1B"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"RamRequestTransformer.js","sourceRoot":"","sources":["../../src/request/RamRequestTransformer.ts"],"names":[],"mappings":";;;;;;;;;AAEA,2DAGiC;AAG1B,IAAM,cAAc,GAApB,MAAM,cAAc;IACzB,KAAK,CAAC,IAAI,CAAC,GAAQ;QACjB,MAAM,IAAI,GAAG,GAAG,CAAC,OAAO,CAAC,aAAa;YACpC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,aAAa,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YACzC,CAAC,CAAC,SAAS,CAAC;QACd,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,OAAO,EAAE,CAAC;QACZ,CAAC;QACD,OAAO;YACL,IAAI,EAAE,IAAI;SACX,CAAC;IACJ,CAAC;CACF,CAAA;AAZY,wCAAc;yBAAd,cAAc;IAD1B,IAAA,qCAA2B,EAAC,KAAK,CAAC;GACtB,cAAc,CAY1B"}
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|