@decaf-ts/for-nest 0.0.6 → 0.0.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/for-nest.cjs +1 -1
- package/dist/for-nest.cjs.map +1 -1
- package/dist/for-nest.js +1 -1
- package/dist/for-nest.js.map +1 -1
- package/lib/decorators.cjs +1 -0
- package/lib/decorators.d.ts +2 -0
- package/lib/decorators.js.map +1 -1
- package/lib/esm/decorators.d.ts +2 -0
- package/lib/esm/decorators.js +1 -1
- package/lib/esm/decorators.js.map +1 -1
- package/lib/esm/index.d.ts +1 -1
- package/lib/esm/index.js +1 -1
- package/lib/index.cjs +1 -1
- package/lib/index.d.ts +1 -1
- package/package.json +1 -1
package/dist/for-nest.cjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
var t,e;t=this,e=function(t,e,o,s,r,a,i,n,c,p,d,l,u,h,g,m,y,f,E,_,A){"use strict";function R(t){if(t&&t.__esModule)return t;var e=Object.create(null);return t&&Object.keys(t).forEach(o=>{if("default"!==o){var s=Object.getOwnPropertyDescriptor(t,o);Object.defineProperty(e,o,s.get?s:{enumerable:!0,get:()=>t[o]})}}),e.default=t,Object.freeze(e)}var b=R(A);function w(t={}){return((t={},e=!0)=>{const[o,s]=a.getTypeIsArrayTuple(t.type,t.isArray);if((r=t={...t,type:o,isArray:s}).isArray&&"enum"in r&&void 0!==r.enum){t.type="array";const e=i.getEnumValues(t.enum);t.items={type:i.getEnumType(e),enum:e},delete t.enum}else if("enum"in t&&void 0!==t.enum){const e=i.getEnumValues(t.enum);t.enum=e,t.type=i.getEnumType(e)}var r;return Array.isArray(t.type)&&(t.type="array",t.items={type:"array",items:{type:t.type[0]}}),((t,e,o=!0)=>(s,r)=>{const a=Reflect.getMetadata(n.DECORATORS.API_MODEL_PROPERTIES_ARRAY,s)||[],i=":"+r;a.includes(i)||Reflect.defineMetadata(n.DECORATORS.API_MODEL_PROPERTIES_ARRAY,[...a,":"+r],s);const c=Reflect.getMetadata(t,s,r);if(c){const a=d.pickBy(e,d.negate(d.isUndefined)),i=o?{...c,...a}:{...a,...c};Reflect.defineMetadata(t,i,s,r)}else{const o=s?.constructor?.[l.METADATA_FACTORY_NAME]?.()[r]?.type??Reflect.getMetadata("design:type",s,r);Reflect.defineMetadata(t,{type:o,...d.pickBy(e,d.negate(d.isUndefined))},s,r)}})(n.DECORATORS.API_MODEL_PROPERTIES,t,e)})(t)}function O(t,o,r){const a={GET:[m.OperationKeys.READ,s.Get],POST:[m.OperationKeys.CREATE,s.Post],PUT:[m.OperationKeys.UPDATE,s.Put],PATCH:[m.OperationKeys.UPDATE,s.Patch],DELETE:[m.OperationKeys.DELETE,s.Delete]},[i,n]=a[o];return((t,o)=>{const{handler:s,args:r}=e.Metadata.get(t,m.OperationKeys.REFLECT+m.OperationKeys.BLOCK)||{};return!!s&&(s(...r,o)??!1)})(t,i)?g.apply(h.ApiExcludeEndpoint()):g.apply(n(r))}e.Decoration.for(o.InjectablesKeys.INJECTABLE).extend({decorator:(t,e)=>s.Injectable({scope:e.singleton?s.Scope.DEFAULT:s.Scope.REQUEST,durable:!e.singleton||void 0})}).apply(),e.Decoration.for(o.InjectablesKeys.INJECT).extend({decorator:(t,e)=>(e,o,r)=>s.Inject(t||e)(e,o,r)}).apply(),e.Decoration.for(r.ValidationKeys.REQUIRED).extend(w({required:!0})).apply(),e.Decoration.for(r.ValidationKeys.MAX).extend({decorator:t=>w({maximum:t})}).apply(),e.Decoration.for(r.ValidationKeys.MIN).extend({decorator:t=>w({minimum:t})}).apply(),e.Decoration.for(r.ValidationKeys.MAX_LENGTH).extend({decorator:t=>w({maxLength:t})}).apply(),e.Decoration.for(r.ValidationKeys.MIN_LENGTH).extend({decorator:t=>w({minLength:t})}).apply(),e.Decoration.for(r.ValidationKeys.LIST).extend({decorator:t=>w({type:[Array.isArray(t)?t[0]:t]})}).apply(),e.Decoration.for(r.ValidationKeys.PATTERN).extend({decorator:t=>w({pattern:"string"==typeof t?t:t.source})}).apply(),e.Decoration.for(u.PersistenceKeys.COLUMN).extend({decorator:t=>w({name:t})}).apply(),e.Decoration.for(e.DecorationKeys.DESCRIPTION).extend({decorator:t=>w({description:t})}).apply();const T="DecafModuleOptions",P="DecafAdapter";var F;let C=class{static{F=this}static{this._adapterInstance=null}static get log(){return this._logger||(this._logger=E.Logging.for(F)),this._logger}constructor(t,e){this.options=t,this.moduleRef=e}static async createAdapter(t){if(!this._adapterInstance){const e=this.log.for(this.createAdapter);e.info("Creating adapter instance..."),this._adapterInstance=new t.adapter(t.conf,t.alias),e.info("Adapter instance created successfully!")}return this._adapterInstance}static getAdapterInstance(){return this._adapterInstance}static forRoot(t){const e={provide:T,useValue:t},o={useFactory:async t=>F.createAdapter(t),provide:P,durable:!0,scope:s.Scope.DEFAULT,inject:[T]};return{module:F,providers:[o,e],exports:[o]}}async onApplicationShutdown(){const t=F.log.for(this.onApplicationShutdown),e=this.moduleRef.get(P);try{e&&(t.info("Shutting down"),await e.shutdown(),F._adapterInstance=null)}catch(e){t.error("Failed to shutdown application",e)}}};var S;C=F=y.__decorate([s.Global(),s.Module({}),y.__param(0,s.Inject(T)),y.__metadata("design:paramtypes",[Object,f.ModuleRef])],C),t.RepoFactory=class{for(t){if(!(t="string"==typeof t?r.Model.get(t):t))throw new m.InternalError("Failed to find repository for "+t);return u.Repository.forModel(t)}},t.RepoFactory=y.__decorate([s.Injectable()],t.RepoFactory);let I=class{static{S=this}static get log(){return this._logger||(this._logger=E.Logging.for(S)),this._logger}static toModelController(e){const o=this.log.for(this.toModelController),a=u.Repository.table(e),i=E.toKebabCase(a),n=e.name;o.debug("Creating controller for model: "+n);let c=class extends E.LoggedClass{constructor(t){super(),this.repoFactory=t,o.info(`Registering dynamic controller for model: ${n} route: /${i}`);try{this.repo=this.repoFactory.for(e.name),this.pk=this.repo.pk}catch(t){this.log.error(`Failed to initialize repository for model "${e.name}".`,t)}}async create(t){const e=this.log.for(this.create);let o;e.verbose("creating new "+n);try{o=await this.repo.create(t)}catch(t){throw e.error("Failed to create new "+n,t),t}return e.info(`created new ${n} with id ${o[this.pk]}`),o}async read(t){const e=this.log.for(this.read);let o;try{e.debug(`reading ${n} with ${this.pk} ${t}`),o=await this.repo.read(t)}catch(o){throw e.error(`Failed to read ${n} with id ${t}`,o),o}return e.info(`read ${n} with id ${o[this.pk]}`),o}async query(t){const e=this.log.for(this.read);let o;try{e.debug(`Querying ${n} using method "${t}"`),o=await this.repo[t]()}catch(o){throw e.error(`Failed to query ${n} using method "${t}"`,o),o}return e.info(`Successfully queried ${n} using method "${t}"`),o}async update(t){const e=this.log.for(this.update);let o;try{e.info(`updating ${n} with ${this.pk} ${t[this.pk]}`),o=await this.repo.create(t)}catch(t){throw e.error(t),t}return o}async delete(t){const e=this.log.for(this.delete);let o;try{e.debug(`deleting ${n} with ${this.pk} ${t}`),o=await this.repo.read(t)}catch(o){throw e.error(`Failed to delete ${n} with id ${t}`,o),o}return e.info(`deleted ${n} with id ${o[this.pk]}`),o}};return y.__decorate([O(e,"POST"),h.ApiOperation({summary:`Create a new ${n}.`}),h.ApiBody({description:"Payload for "+n,schema:{$ref:h.getSchemaPath(e)}}),h.ApiCreatedResponse({description:n+" created successfully."}),h.ApiBadRequestResponse({description:"Payload validation failed."}),h.ApiUnprocessableEntityResponse({description:"Repository rejected the provided payload."}),y.__param(0,s.Body()),y.__metadata("design:type",Function),y.__metadata("design:paramtypes",[Object]),y.__metadata("design:returntype",Promise)],c.prototype,"create",null),y.__decorate([O(e,"GET",":id"),h.ApiOperation({summary:`Retrieve a ${n} record by id.`}),h.ApiParam({name:"id",description:"Primary key"}),h.ApiOkResponse({description:n+" retrieved successfully."}),h.ApiNotFoundResponse({description:`No ${n} record matches the provided identifier.`}),y.__param(0,s.Param("id")),y.__metadata("design:type",Function),y.__metadata("design:paramtypes",[String]),y.__metadata("design:returntype",Promise)],c.prototype,"read",null),y.__decorate([O(e,"GET","query/:method"),h.ApiOperation({summary:`Retrieve ${n} records by query.`}),h.ApiParam({name:"method",description:"Query method to be called"}),h.ApiOkResponse({description:n+" retrieved successfully."}),h.ApiNotFoundResponse({description:`No ${n} records matches the query.`}),y.__param(0,s.Param("method")),y.__metadata("design:type",Function),y.__metadata("design:paramtypes",[String]),y.__metadata("design:returntype",Promise)],c.prototype,"query",null),y.__decorate([O(e,"PUT",":id"),h.ApiOperation({summary:`Replace an existing ${n} record with a new payload.`}),h.ApiBody({description:"Payload for replace a existing record of "+n,schema:{$ref:h.getSchemaPath(e)}}),h.ApiOkResponse({description:e+" record replaced successfully."}),h.ApiNotFoundResponse({description:`No ${n} record matches the provided identifier.`}),h.ApiBadRequestResponse({description:"Payload validation failed."}),y.__param(0,s.Body()),y.__metadata("design:type",Function),y.__metadata("design:paramtypes",[r.Model]),y.__metadata("design:returntype",Promise)],c.prototype,"update",null),y.__decorate([O(e,"DELETE",":id"),h.ApiOperation({summary:`Delete a ${n} record by id.`}),h.ApiParam({name:"id",description:`Primary key value of the ${n} record to delete.`}),h.ApiOkResponse({description:n+" record deleted successfully."}),h.ApiNotFoundResponse({description:`No ${n} record matches the provided identifier.`}),y.__param(0,s.Param("id")),y.__metadata("design:type",Function),y.__metadata("design:paramtypes",[String]),y.__metadata("design:returntype",Promise)],c.prototype,"delete",null),c=y.__decorate([s.Controller(i),h.ApiTags(n),h.ApiExtraModels(e),y.__metadata("design:paramtypes",[t.RepoFactory])],c),c}static forRoot(e){const o=this.log.for(this.forRoot);o.info("Generating controllers for flavour...");const s=u.Adapter.models(e).map(this.toModelController.bind(this));return o.info(`Generated ${s.length} controllers`),{module:S,controllers:s,providers:[t.RepoFactory]}}};var D;I=S=y.__decorate([s.Module({})],I),t.DecafModule=D=class{static async forRootAsync(t){const{autoControllers:e}=t,o=(await C.createAdapter(t)).flavour,s=[C.forRoot(t)];return e&&s.push(I.forRoot(o)),{module:D,imports:s}}},t.DecafModule=D=y.__decorate([s.Module({})],t.DecafModule);class j extends u.ForbiddenError{constructor(t){super(t,j.name)}}class x{constructor(t,e){const o=e?.status??s.HttpStatus.INTERNAL_SERVER_ERROR,r=e?.message??"Internal Server Error",a=(e?.error??s.HttpStatus[o]??"HTTP_EXCEPTION").toString().toUpperCase();Object.assign(this,{status:o,message:r,error:a,timestamp:(new Date).toISOString(),path:t.url,method:t.method})}}class N extends Error{constructor(t="Unauthorized"){super(t),this.name="AuthorizationError",this.status=401,this.code="UNAUTHORIZED",Object.setPrototypeOf(this,N.prototype)}}t.AuthorizationExceptionFilter=class{catch(t,e){const o=e.switchToHttp(),r=o.getRequest(),a=o.getResponse(),i=new x(r,{error:"UNAUTHORIZED",status:s.HttpStatus.UNAUTHORIZED,message:t.message});a.status(s.HttpStatus.UNAUTHORIZED).json(i)}},t.AuthorizationExceptionFilter=y.__decorate([s.Catch(N)],t.AuthorizationExceptionFilter);class v extends Error{constructor(t="Conflict"){super(t),this.name="ConflictError",this.status=409,this.code="CONFLICT",Object.setPrototypeOf(this,v.prototype)}}t.ConflictExceptionFilter=class{catch(t,e){const o=e.switchToHttp(),r=o.getResponse(),a=o.getRequest(),i=new x(a,{status:s.HttpStatus.CONFLICT,message:t.message,error:"CONFLICT"});r.status(i.status).json(i)}},t.ConflictExceptionFilter=y.__decorate([s.Catch(v)],t.ConflictExceptionFilter),t.GlobalExceptionFilter=class{catch(t,e){const o=e.switchToHttp(),r=o.getRequest(),a=o.getResponse();let i,n=s.HttpStatus.INTERNAL_SERVER_ERROR,c="Internal Server Error";if(t instanceof s.HttpException){const e=t.getResponse();n=t.getStatus(),c=(e?.message||t.message)??c,i=e?.error??t.name}else t instanceof Error&&(c=t.message,i=t.name);const p=new x(r,{status:n,message:c,error:i});a.status(p.status).json(p)}},t.GlobalExceptionFilter=y.__decorate([s.Catch()],t.GlobalExceptionFilter),t.HttpExceptionFilter=class{catch(t,e){const o=e.switchToHttp(),s=o.getResponse(),r=o.getRequest(),a=t.getStatus(),i=new x(r,{status:a,message:t.message,error:t.name});s.status(i.status).json(i)}},t.HttpExceptionFilter=y.__decorate([s.Catch(s.HttpException)],t.HttpExceptionFilter);class M extends Error{constructor(t="Resource not found"){super(t),this.name="NotFoundError",this.status=404,this.code="NOT_FOUND",Object.setPrototypeOf(this,M.prototype)}}t.NotFoundExceptionFilter=class{catch(t,e){const o=e.switchToHttp(),r=o.getResponse(),a=o.getRequest(),i=new x(a,{status:s.HttpStatus.NOT_FOUND,message:t.message,error:"NOT_FOUND"});r.status(i.status).json(i)}},t.NotFoundExceptionFilter=y.__decorate([s.Catch(M)],t.NotFoundExceptionFilter);class $ extends Error{constructor(t="Validation failed"){super(t),this.name="ValidationError",this.status=422,this.code="VALIDATION_ERROR",Object.setPrototypeOf(this,$.prototype)}}t.ValidationExceptionFilter=class{catch(t,e){const o=e.switchToHttp(),r=o.getResponse(),a=o.getRequest(),i=new x(a,{status:s.HttpStatus.UNPROCESSABLE_ENTITY,message:t.message,error:"VALIDATION_ERROR"});r.status(i.status).json(i)}},t.ValidationExceptionFilter=y.__decorate([s.Catch($)],t.ValidationExceptionFilter);const L={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 q{constructor(t){this.options={...t}}customCSS(){let t="";return this.options.topbarIconPath&&(t+=`.topbar-wrapper { content: url('data:image/png;base64,${this.b64(this.options.topbarIconPath)}'); width: 200px; height: auto; }\n`),t+`\n .topbar-wrapper svg { visibility: hidden; }\n .swagger-ui .topbar { background-color: ${this.options.topbarBgColor||L.topbarBgColor}; }\n `}getCustomOptions(){const t={};return this.options.faviconPath&&(t.customfavIcon=this.b64(this.options.faviconPath,!0)),{customSiteTitle:this.options.title,...t,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(t,e=!1){const o=b.join(this.options.assetsPath||"",t),s=_.readFileSync(o,{encoding:"base64"});return e?"data:image/png;base64,"+s:s}}class H{constructor(t,e){this.app=t,this.options=e}createDocument(){const t=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,e=(new h.DocumentBuilder).setTitle(this.options.title).setDescription(t).setVersion(this.options.version||"0.0.1").addBearerAuth(this.options.auth||L.auth).build();return h.SwaggerModule.createDocument(this.app,e,{extraModels:this.options.extraModels||[]})}setupSwagger(){const t=this.createDocument(),e=new q({title:this.options.title,path:this.options.path||L.path,persistAuthorization:this.options.persistAuthorization??!0,assetsPath:this.options.assetsPath,faviconPath:this.options.faviconFilePath,topbarIconPath:this.options.topbarIconFilePath,topbarBgColor:this.options.topbarBgColor});h.SwaggerModule.setup(this.options.path||L.path,this.app,t,{...e.getCustomOptions()})}}const U="##VERSION##",V="##PACKAGE_NAME##";e.Metadata.registerLibrary(V,U),t.ApiOperationFromModel=O,t.AuthorizationError=N,t.ConflictError=v,t.CorsError=j,t.DECAF_ADAPTER_ID=P,t.DECAF_MODULE_OPTIONS=T,t.HttpResponseError=x,t.NestBootstraper=class{static get logger(){return this._logger||(this._logger=new s.Logger("NestBootstrap")),this._logger}static initialize(t){return this.app=t,this}static enableLogger(t){return this._logger=t||new s.Logger("NestBootstrap"),this.app.useLogger(this._logger),this}static enableCors(t=[],e=["GET","POST","PUT","DELETE"]){const o="*"===t?"*":t.map(t=>t.trim().toLowerCase()),s={origin:(t,e)=>t?"*"===o||Array.isArray(o)&&o.includes(t.toLowerCase())?e(null,!0):void e(new j(`Origin ${t} not allowed`)):e(null,!0),credentials:!0,methods:e.join(",")};return this.app.enableCors(s),this}static useHelmet(t){try{const e=require("helmet");this.app.use(e(t)),this.logger.log("Helmet middleware enabled successfully.")}catch(t){this.logger.warn("Helmet not installed. Skipping middleware.")}return this}static setupSwagger(t){return new H(this.app,{title:t.title,description:t.description,version:t.version,path:t.path||"api",persistAuthorization:t.persistAuthorization??!0,assetsPath:t.assetsPath,faviconFilePath:t.faviconPath,topbarIconFilePath:t.topbarIconPath,topbarBgColor:t.topbarBgColor}).setupSwagger(),this}static useGlobalPipes(...t){return t.length>0&&this.app.useGlobalPipes(...t),this}static useGlobalFilters(...e){const o=[new t.HttpExceptionFilter,new t.ValidationExceptionFilter,new t.NotFoundExceptionFilter,new t.ConflictExceptionFilter,new t.AuthorizationExceptionFilter,new t.GlobalExceptionFilter];return this.app.useGlobalFilters(...e.length>0?e:o),this}static useGlobalInterceptors(...t){return t.length>0&&this.app.useGlobalInterceptors(...t),this}static async start(t=Number(process.env.PORT)||3e3,e=void 0,o=!0){this.app.listen(t,e).then(async()=>{if(o){const t=await this.app.getUrl();this.logger.log("\ud83d\ude80 Application is running at: "+t)}})}},t.NotFoundError=M,t.PACKAGE_NAME=V,t.SwaggerBuilder=H,t.VERSION=U,t.ValidationError=$,t.repoForModel=t=>{const e=r.Model.get(t);if(!e)throw new m.InternalError("Failed to find repository for "+t);return u.Repository.forModel(e)}},"object"==typeof exports&&"undefined"!=typeof module?e(exports,require("@decaf-ts/decoration"),require("@decaf-ts/injectable-decorators"),require("@nestjs/common"),require("@decaf-ts/decorator-validation"),require("@nestjs/swagger/dist/decorators/helpers"),require("@nestjs/swagger/dist/utils/enum.utils"),require("@nestjs/swagger/dist/constants"),require("@nestjs/common/constants"),require("@nestjs/common/utils/shared.utils"),require("lodash"),require("@nestjs/swagger/dist/plugin/plugin-constants"),require("@decaf-ts/core"),require("@nestjs/swagger"),require("@decaf-ts/reflection"),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","@nestjs/swagger/dist/decorators/helpers","@nestjs/swagger/dist/utils/enum.utils","@nestjs/swagger/dist/constants","@nestjs/common/constants","@nestjs/common/utils/shared.utils","lodash","@nestjs/swagger/dist/plugin/plugin-constants","@decaf-ts/core","@nestjs/swagger","@decaf-ts/reflection","@decaf-ts/db-decorators","tslib","@nestjs/core","@decaf-ts/logging","fs","path"],e):e((t="undefined"!=typeof globalThis?globalThis:t||self)["for-nest"]={},t.decafTsDecoration,t.decafTsInjectableDecorators,t.nestjsCommon,t.decafTsDecoratorValidation,t.helpers,t.enum_utils,t.constants,0,0,t.lodash,t.pluginConstants,t.decafTsCore,t.nestjsSwagger,t.decafTsReflection,t.decafTsDbDecorators,t.tslib,t.nestjsCore,t.decafTsLogging,t.fs,t.path);
|
|
1
|
+
var t,e;t=this,e=function(t,e,o,s,r,a,i,n,c,p,d,l,u,h,g,m,y,f,E,_,A){"use strict";function R(t){if(t&&t.__esModule)return t;var e=Object.create(null);return t&&Object.keys(t).forEach(o=>{if("default"!==o){var s=Object.getOwnPropertyDescriptor(t,o);Object.defineProperty(e,o,s.get?s:{enumerable:!0,get:()=>t[o]})}}),e.default=t,Object.freeze(e)}var b=R(A);function w(t={}){return((t={},e=!0)=>{const[o,s]=a.getTypeIsArrayTuple(t.type,t.isArray);if((r=t={...t,type:o,isArray:s}).isArray&&"enum"in r&&void 0!==r.enum){t.type="array";const e=i.getEnumValues(t.enum);t.items={type:i.getEnumType(e),enum:e},delete t.enum}else if("enum"in t&&void 0!==t.enum){const e=i.getEnumValues(t.enum);t.enum=e,t.type=i.getEnumType(e)}var r;return Array.isArray(t.type)&&(t.type="array",t.items={type:"array",items:{type:t.type[0]}}),((t,e,o=!0)=>(s,r)=>{const a=Reflect.getMetadata(n.DECORATORS.API_MODEL_PROPERTIES_ARRAY,s)||[],i=":"+r;a.includes(i)||Reflect.defineMetadata(n.DECORATORS.API_MODEL_PROPERTIES_ARRAY,[...a,":"+r],s);const c=Reflect.getMetadata(t,s,r);if(c){const a=d.pickBy(e,d.negate(d.isUndefined)),i=o?{...c,...a}:{...a,...c};Reflect.defineMetadata(t,i,s,r)}else{const o=s?.constructor?.[l.METADATA_FACTORY_NAME]?.()[r]?.type??Reflect.getMetadata("design:type",s,r);Reflect.defineMetadata(t,{type:o,...d.pickBy(e,d.negate(d.isUndefined))},s,r)}})(n.DECORATORS.API_MODEL_PROPERTIES,t,e)})(t)}function O(t,o){const{handler:s,args:r}=e.Metadata.get(t,m.OperationKeys.REFLECT+m.OperationKeys.BLOCK)||{};return!!s&&(s(...r,o)??!1)}function T(t,e,o){const r={GET:[m.OperationKeys.READ,s.Get],POST:[m.OperationKeys.CREATE,s.Post],PUT:[m.OperationKeys.UPDATE,s.Put],PATCH:[m.OperationKeys.UPDATE,s.Patch],DELETE:[m.OperationKeys.DELETE,s.Delete]},[a,i]=r[e];return O(t,a)?g.apply(h.ApiExcludeEndpoint()):g.apply(i(o))}e.Decoration.for(o.InjectablesKeys.INJECTABLE).extend({decorator:(t,e)=>s.Injectable({scope:e.singleton?s.Scope.DEFAULT:s.Scope.REQUEST,durable:!e.singleton||void 0})}).apply(),e.Decoration.for(o.InjectablesKeys.INJECT).extend({decorator:(t,e)=>(e,o,r)=>s.Inject(t||e)(e,o,r)}).apply(),e.Decoration.for(r.ValidationKeys.REQUIRED).extend(w({required:!0})).apply(),e.Decoration.for(r.ValidationKeys.MAX).extend({decorator:t=>w({maximum:t})}).apply(),e.Decoration.for(r.ValidationKeys.MIN).extend({decorator:t=>w({minimum:t})}).apply(),e.Decoration.for(r.ValidationKeys.MAX_LENGTH).extend({decorator:t=>w({maxLength:t})}).apply(),e.Decoration.for(r.ValidationKeys.MIN_LENGTH).extend({decorator:t=>w({minLength:t})}).apply(),e.Decoration.for(r.ValidationKeys.LIST).extend({decorator:t=>w({type:[Array.isArray(t)?t[0]:t]})}).apply(),e.Decoration.for(r.ValidationKeys.PATTERN).extend({decorator:t=>w({pattern:"string"==typeof t?t:t.source})}).apply(),e.Decoration.for(u.PersistenceKeys.COLUMN).extend({decorator:t=>w({name:t})}).apply(),e.Decoration.for(e.DecorationKeys.DESCRIPTION).extend({decorator:t=>w({description:t})}).apply();const P="DecafModuleOptions",F="DecafAdapter";var C;let S=class{static{C=this}static{this._adapterInstance=null}static get log(){return this._logger||(this._logger=E.Logging.for(C)),this._logger}constructor(t,e){this.options=t,this.moduleRef=e}static async createAdapter(t){if(!this._adapterInstance){const e=this.log.for(this.createAdapter);e.info("Creating adapter instance..."),this._adapterInstance=new t.adapter(t.conf,t.alias),e.info("Adapter instance created successfully!")}return this._adapterInstance}static getAdapterInstance(){return this._adapterInstance}static forRoot(t){const e={provide:P,useValue:t},o={useFactory:async t=>C.createAdapter(t),provide:F,durable:!0,scope:s.Scope.DEFAULT,inject:[P]};return{module:C,providers:[o,e],exports:[o]}}async onApplicationShutdown(){const t=C.log.for(this.onApplicationShutdown),e=this.moduleRef.get(F);try{e&&(t.info("Shutting down"),await e.shutdown(),C._adapterInstance=null)}catch(e){t.error("Failed to shutdown application",e)}}};var I;S=C=y.__decorate([s.Global(),s.Module({}),y.__param(0,s.Inject(P)),y.__metadata("design:paramtypes",[Object,f.ModuleRef])],S),t.RepoFactory=class{for(t){if(!(t="string"==typeof t?r.Model.get(t):t))throw new m.InternalError("Failed to find repository for "+t);return u.Repository.forModel(t)}},t.RepoFactory=y.__decorate([s.Injectable()],t.RepoFactory);let D=class{static{I=this}static get log(){return this._logger||(this._logger=E.Logging.for(I)),this._logger}static toModelController(e){const o=this.log.for(this.toModelController),a=u.Repository.table(e),i=E.toKebabCase(a),n=e.name;o.debug("Creating controller for model: "+n);let c=class extends E.LoggedClass{constructor(t){super(),this.repoFactory=t,o.info(`Registering dynamic controller for model: ${n} route: /${i}`);try{this.repo=this.repoFactory.for(e.name),this.pk=this.repo.pk}catch(t){this.log.error(`Failed to initialize repository for model "${e.name}".`,t)}}async create(t){const e=this.log.for(this.create);let o;e.verbose("creating new "+n);try{o=await this.repo.create(t)}catch(t){throw e.error("Failed to create new "+n,t),t}return e.info(`created new ${n} with id ${o[this.pk]}`),o}async read(t){const e=this.log.for(this.read);let o;try{e.debug(`reading ${n} with ${this.pk} ${t}`),o=await this.repo.read(t)}catch(o){throw e.error(`Failed to read ${n} with id ${t}`,o),o}return e.info(`read ${n} with id ${o[this.pk]}`),o}async query(t){const e=this.log.for(this.read);let o;try{e.debug(`Querying ${n} using method "${t}"`),o=await this.repo[t]()}catch(o){throw e.error(`Failed to query ${n} using method "${t}"`,o),o}return e.info(`Successfully queried ${n} using method "${t}"`),o}async update(t){const e=this.log.for(this.update);let o;try{e.info(`updating ${n} with ${this.pk} ${t[this.pk]}`),o=await this.repo.create(t)}catch(t){throw e.error(t),t}return o}async delete(t){const e=this.log.for(this.delete);let o;try{e.debug(`deleting ${n} with ${this.pk} ${t}`),o=await this.repo.read(t)}catch(o){throw e.error(`Failed to delete ${n} with id ${t}`,o),o}return e.info(`deleted ${n} with id ${o[this.pk]}`),o}};return y.__decorate([T(e,"POST"),h.ApiOperation({summary:`Create a new ${n}.`}),h.ApiBody({description:"Payload for "+n,schema:{$ref:h.getSchemaPath(e)}}),h.ApiCreatedResponse({description:n+" created successfully."}),h.ApiBadRequestResponse({description:"Payload validation failed."}),h.ApiUnprocessableEntityResponse({description:"Repository rejected the provided payload."}),y.__param(0,s.Body()),y.__metadata("design:type",Function),y.__metadata("design:paramtypes",[Object]),y.__metadata("design:returntype",Promise)],c.prototype,"create",null),y.__decorate([T(e,"GET",":id"),h.ApiOperation({summary:`Retrieve a ${n} record by id.`}),h.ApiParam({name:"id",description:"Primary key"}),h.ApiOkResponse({description:n+" retrieved successfully."}),h.ApiNotFoundResponse({description:`No ${n} record matches the provided identifier.`}),y.__param(0,s.Param("id")),y.__metadata("design:type",Function),y.__metadata("design:paramtypes",[String]),y.__metadata("design:returntype",Promise)],c.prototype,"read",null),y.__decorate([T(e,"GET","query/:method"),h.ApiOperation({summary:`Retrieve ${n} records by query.`}),h.ApiParam({name:"method",description:"Query method to be called"}),h.ApiOkResponse({description:n+" retrieved successfully."}),h.ApiNotFoundResponse({description:`No ${n} records matches the query.`}),y.__param(0,s.Param("method")),y.__metadata("design:type",Function),y.__metadata("design:paramtypes",[String]),y.__metadata("design:returntype",Promise)],c.prototype,"query",null),y.__decorate([T(e,"PUT",":id"),h.ApiOperation({summary:`Replace an existing ${n} record with a new payload.`}),h.ApiBody({description:"Payload for replace a existing record of "+n,schema:{$ref:h.getSchemaPath(e)}}),h.ApiOkResponse({description:e+" record replaced successfully."}),h.ApiNotFoundResponse({description:`No ${n} record matches the provided identifier.`}),h.ApiBadRequestResponse({description:"Payload validation failed."}),y.__param(0,s.Body()),y.__metadata("design:type",Function),y.__metadata("design:paramtypes",[r.Model]),y.__metadata("design:returntype",Promise)],c.prototype,"update",null),y.__decorate([T(e,"DELETE",":id"),h.ApiOperation({summary:`Delete a ${n} record by id.`}),h.ApiParam({name:"id",description:`Primary key value of the ${n} record to delete.`}),h.ApiOkResponse({description:n+" record deleted successfully."}),h.ApiNotFoundResponse({description:`No ${n} record matches the provided identifier.`}),y.__param(0,s.Param("id")),y.__metadata("design:type",Function),y.__metadata("design:paramtypes",[String]),y.__metadata("design:returntype",Promise)],c.prototype,"delete",null),c=y.__decorate([s.Controller(i),h.ApiTags(n),h.ApiExtraModels(e),y.__metadata("design:paramtypes",[t.RepoFactory])],c),c}static forRoot(e){const o=this.log.for(this.forRoot);o.info("Generating controllers for flavour...");const s=u.Adapter.models(e).map(this.toModelController.bind(this));return o.info(`Generated ${s.length} controllers`),{module:I,controllers:s,providers:[t.RepoFactory]}}};var j;D=I=y.__decorate([s.Module({})],D),t.DecafModule=j=class{static async forRootAsync(t){const{autoControllers:e}=t,o=(await S.createAdapter(t)).flavour,s=[S.forRoot(t)];return e&&s.push(D.forRoot(o)),{module:j,imports:s}}},t.DecafModule=j=y.__decorate([s.Module({})],t.DecafModule);class x extends u.ForbiddenError{constructor(t){super(t,x.name)}}class N{constructor(t,e){const o=e?.status??s.HttpStatus.INTERNAL_SERVER_ERROR,r=e?.message??"Internal Server Error",a=(e?.error??s.HttpStatus[o]??"HTTP_EXCEPTION").toString().toUpperCase();Object.assign(this,{status:o,message:r,error:a,timestamp:(new Date).toISOString(),path:t.url,method:t.method})}}class v extends Error{constructor(t="Unauthorized"){super(t),this.name="AuthorizationError",this.status=401,this.code="UNAUTHORIZED",Object.setPrototypeOf(this,v.prototype)}}t.AuthorizationExceptionFilter=class{catch(t,e){const o=e.switchToHttp(),r=o.getRequest(),a=o.getResponse(),i=new N(r,{error:"UNAUTHORIZED",status:s.HttpStatus.UNAUTHORIZED,message:t.message});a.status(s.HttpStatus.UNAUTHORIZED).json(i)}},t.AuthorizationExceptionFilter=y.__decorate([s.Catch(v)],t.AuthorizationExceptionFilter);class M extends Error{constructor(t="Conflict"){super(t),this.name="ConflictError",this.status=409,this.code="CONFLICT",Object.setPrototypeOf(this,M.prototype)}}t.ConflictExceptionFilter=class{catch(t,e){const o=e.switchToHttp(),r=o.getResponse(),a=o.getRequest(),i=new N(a,{status:s.HttpStatus.CONFLICT,message:t.message,error:"CONFLICT"});r.status(i.status).json(i)}},t.ConflictExceptionFilter=y.__decorate([s.Catch(M)],t.ConflictExceptionFilter),t.GlobalExceptionFilter=class{catch(t,e){const o=e.switchToHttp(),r=o.getRequest(),a=o.getResponse();let i,n=s.HttpStatus.INTERNAL_SERVER_ERROR,c="Internal Server Error";if(t instanceof s.HttpException){const e=t.getResponse();n=t.getStatus(),c=(e?.message||t.message)??c,i=e?.error??t.name}else t instanceof Error&&(c=t.message,i=t.name);const p=new N(r,{status:n,message:c,error:i});a.status(p.status).json(p)}},t.GlobalExceptionFilter=y.__decorate([s.Catch()],t.GlobalExceptionFilter),t.HttpExceptionFilter=class{catch(t,e){const o=e.switchToHttp(),s=o.getResponse(),r=o.getRequest(),a=t.getStatus(),i=new N(r,{status:a,message:t.message,error:t.name});s.status(i.status).json(i)}},t.HttpExceptionFilter=y.__decorate([s.Catch(s.HttpException)],t.HttpExceptionFilter);class $ extends Error{constructor(t="Resource not found"){super(t),this.name="NotFoundError",this.status=404,this.code="NOT_FOUND",Object.setPrototypeOf(this,$.prototype)}}t.NotFoundExceptionFilter=class{catch(t,e){const o=e.switchToHttp(),r=o.getResponse(),a=o.getRequest(),i=new N(a,{status:s.HttpStatus.NOT_FOUND,message:t.message,error:"NOT_FOUND"});r.status(i.status).json(i)}},t.NotFoundExceptionFilter=y.__decorate([s.Catch($)],t.NotFoundExceptionFilter);class L extends Error{constructor(t="Validation failed"){super(t),this.name="ValidationError",this.status=422,this.code="VALIDATION_ERROR",Object.setPrototypeOf(this,L.prototype)}}t.ValidationExceptionFilter=class{catch(t,e){const o=e.switchToHttp(),r=o.getResponse(),a=o.getRequest(),i=new N(a,{status:s.HttpStatus.UNPROCESSABLE_ENTITY,message:t.message,error:"VALIDATION_ERROR"});r.status(i.status).json(i)}},t.ValidationExceptionFilter=y.__decorate([s.Catch(L)],t.ValidationExceptionFilter);const q={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 H{constructor(t){this.options={...t}}customCSS(){let t="";return this.options.topbarIconPath&&(t+=`.topbar-wrapper { content: url('data:image/png;base64,${this.b64(this.options.topbarIconPath)}'); width: 200px; height: auto; }\n`),t+`\n .topbar-wrapper svg { visibility: hidden; }\n .swagger-ui .topbar { background-color: ${this.options.topbarBgColor||q.topbarBgColor}; }\n `}getCustomOptions(){const t={};return this.options.faviconPath&&(t.customfavIcon=this.b64(this.options.faviconPath,!0)),{customSiteTitle:this.options.title,...t,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(t,e=!1){const o=b.join(this.options.assetsPath||"",t),s=_.readFileSync(o,{encoding:"base64"});return e?"data:image/png;base64,"+s:s}}class U{constructor(t,e){this.app=t,this.options=e}createDocument(){const t=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,e=(new h.DocumentBuilder).setTitle(this.options.title).setDescription(t).setVersion(this.options.version||"0.0.1").addBearerAuth(this.options.auth||q.auth).build();return h.SwaggerModule.createDocument(this.app,e,{extraModels:this.options.extraModels||[]})}setupSwagger(){const t=this.createDocument(),e=new H({title:this.options.title,path:this.options.path||q.path,persistAuthorization:this.options.persistAuthorization??!0,assetsPath:this.options.assetsPath,faviconPath:this.options.faviconFilePath,topbarIconPath:this.options.topbarIconFilePath,topbarBgColor:this.options.topbarBgColor});h.SwaggerModule.setup(this.options.path||q.path,this.app,t,{...e.getCustomOptions()})}}const B="##VERSION##",V="##PACKAGE_NAME##";e.Metadata.registerLibrary(V,B),t.ApiOperationFromModel=T,t.AuthorizationError=v,t.ConflictError=M,t.CorsError=x,t.DECAF_ADAPTER_ID=F,t.DECAF_MODULE_OPTIONS=P,t.HttpResponseError=N,t.NestBootstraper=class{static get logger(){return this._logger||(this._logger=new s.Logger("NestBootstrap")),this._logger}static initialize(t){return this.app=t,this}static enableLogger(t){return this._logger=t||new s.Logger("NestBootstrap"),this.app.useLogger(this._logger),this}static enableCors(t=[],e=["GET","POST","PUT","DELETE"]){const o="*"===t?"*":t.map(t=>t.trim().toLowerCase()),s={origin:(t,e)=>t?"*"===o||Array.isArray(o)&&o.includes(t.toLowerCase())?e(null,!0):void e(new x(`Origin ${t} not allowed`)):e(null,!0),credentials:!0,methods:e.join(",")};return this.app.enableCors(s),this}static useHelmet(t){try{const e=require("helmet");this.app.use(e(t)),this.logger.log("Helmet middleware enabled successfully.")}catch(t){this.logger.warn("Helmet not installed. Skipping middleware.")}return this}static setupSwagger(t){return new U(this.app,{title:t.title,description:t.description,version:t.version,path:t.path||"api",persistAuthorization:t.persistAuthorization??!0,assetsPath:t.assetsPath,faviconFilePath:t.faviconPath,topbarIconFilePath:t.topbarIconPath,topbarBgColor:t.topbarBgColor}).setupSwagger(),this}static useGlobalPipes(...t){return t.length>0&&this.app.useGlobalPipes(...t),this}static useGlobalFilters(...e){const o=[new t.HttpExceptionFilter,new t.ValidationExceptionFilter,new t.NotFoundExceptionFilter,new t.ConflictExceptionFilter,new t.AuthorizationExceptionFilter,new t.GlobalExceptionFilter];return this.app.useGlobalFilters(...e.length>0?e:o),this}static useGlobalInterceptors(...t){return t.length>0&&this.app.useGlobalInterceptors(...t),this}static async start(t=Number(process.env.PORT)||3e3,e=void 0,o=!0){this.app.listen(t,e).then(async()=>{if(o){const t=await this.app.getUrl();this.logger.log("\ud83d\ude80 Application is running at: "+t)}})}},t.NotFoundError=$,t.PACKAGE_NAME=V,t.SwaggerBuilder=U,t.VERSION=B,t.ValidationError=L,t.isOperationBlocked=O,t.repoForModel=t=>{const e=r.Model.get(t);if(!e)throw new m.InternalError("Failed to find repository for "+t);return u.Repository.forModel(e)}},"object"==typeof exports&&"undefined"!=typeof module?e(exports,require("@decaf-ts/decoration"),require("@decaf-ts/injectable-decorators"),require("@nestjs/common"),require("@decaf-ts/decorator-validation"),require("@nestjs/swagger/dist/decorators/helpers"),require("@nestjs/swagger/dist/utils/enum.utils"),require("@nestjs/swagger/dist/constants"),require("@nestjs/common/constants"),require("@nestjs/common/utils/shared.utils"),require("lodash"),require("@nestjs/swagger/dist/plugin/plugin-constants"),require("@decaf-ts/core"),require("@nestjs/swagger"),require("@decaf-ts/reflection"),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","@nestjs/swagger/dist/decorators/helpers","@nestjs/swagger/dist/utils/enum.utils","@nestjs/swagger/dist/constants","@nestjs/common/constants","@nestjs/common/utils/shared.utils","lodash","@nestjs/swagger/dist/plugin/plugin-constants","@decaf-ts/core","@nestjs/swagger","@decaf-ts/reflection","@decaf-ts/db-decorators","tslib","@nestjs/core","@decaf-ts/logging","fs","path"],e):e((t="undefined"!=typeof globalThis?globalThis:t||self)["for-nest"]={},t.decafTsDecoration,t.decafTsInjectableDecorators,t.nestjsCommon,t.decafTsDecoratorValidation,t.helpers,t.enum_utils,t.constants,0,0,t.lodash,t.pluginConstants,t.decafTsCore,t.nestjsSwagger,t.decafTsReflection,t.decafTsDbDecorators,t.tslib,t.nestjsCore,t.decafTsLogging,t.fs,t.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/decorators/ApiProperty.ts","../src/decorators/helpers.ts","../src/decorators.ts","../src/decoration.ts","../src/constants.ts","../src/core-module.ts","../src/RepoFactory.ts","../src/model-module.ts","../src/module.ts","../src/factory/errors/cors.ts","../src/factory/exceptions/HttpResponseError.ts","../src/factory/exceptions/AuthorizationExceptionFilter.ts","../src/factory/exceptions/ConflictExceptionFilter.ts","../src/factory/exceptions/GlobalExceptionFilter.ts","../src/factory/exceptions/HttpExceptionFilter.ts","../src/factory/exceptions/NotFoundExceptionFilter.ts","../src/factory/exceptions/ValidationExceptionFilter.ts","../src/factory/openapi/constants.ts","../src/factory/openapi/SwaggerCustomUI.ts","../src/factory/openapi/SwaggerBuilder.ts","../src/index.ts","../src/factory/NestBootstraper.ts","../src/utils.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null],"names":["ApiProperty","options","overrideExisting","type","isArray","getTypeIsArrayTuple","opts","undefined","enum","enumValues","getEnumValues","items","getEnumType","Array","metakey","metadata","target","propertyKey","properties","Reflect","getMetadata","DECORATORS","API_MODEL_PROPERTIES_ARRAY","key","includes","defineMetadata","existingMetadata","newMetadata","pickBy","negate","isUndefined","metadataToSave","constructor","METADATA_FACTORY_NAME","createPropertyDecorator","API_MODEL_PROPERTIES","createApiPropertyDecorator","ApiOperationFromModel","ModelConstructor","verb","path","httpToCrud","GET","OperationKeys","READ","Get","POST","CREATE","Post","PUT","UPDATE","Put","PATCH","Patch","DELETE","Delete","crudOp","decorator","op","handler","args","Metadata","get","REFLECT","BLOCK","isOperationBlocked","apply","ApiExcludeEndpoint","Decoration","for","InjectablesKeys","INJECTABLE","extend","category","cfg","Injectable","scope","singleton","Scope","DEFAULT","REQUEST","durable","INJECT","descriptor","Inject","ValidationKeys","REQUIRED","required","MAX","max","maximum","MIN","min","minimum","MAX_LENGTH","maxLength","MIN_LENGTH","minLength","LIST","clazz","PATTERN","pat","pattern","source","PersistenceKeys","COLUMN","name","DecorationKeys","DESCRIPTION","description","DECAF_MODULE_OPTIONS","DECAF_ADAPTER_ID","DecafCoreModule","this","_adapterInstance","log","_logger","Logging","DecafCoreModule_1","moduleRef","createAdapter","info","adapter","conf","alias","getAdapterInstance","forRoot","typeOrmModuleOptions","provide","useValue","useFactory","async","inject","module","providers","exports","onApplicationShutdown","shutdown","e","error","__decorate","Global","Module","__param","ModuleRef","RepoFactory","model","Model","InternalError","Repository","forModel","DecafModelModule","DecafModelModule_1","toModelController","ModelClazz","tableName","table","routePath","toKebabCase","modelClazzName","debug","DynamicModelController","LoggedClass","repoFactory","super","repo","pk","create","data","created","verbose","read","id","query","method","results","update","updated","delete","ApiOperation","summary","ApiBody","schema","$ref","getSchemaPath","ApiCreatedResponse","ApiBadRequestResponse","ApiUnprocessableEntityResponse","Body","prototype","ApiParam","ApiOkResponse","ApiNotFoundResponse","Param","Controller","ApiTags","ApiExtraModels","flavour","controllers","Adapter","models","map","bind","length","DecafModule","DecafModule_1","forRootAsync","autoControllers","imports","push","CorsError","ForbiddenError","msg","HttpResponseError","request","responseError","status","HttpStatus","INTERNAL_SERVER_ERROR","message","toString","toUpperCase","Object","assign","timestamp","Date","toISOString","url","AuthorizationError","Error","code","setPrototypeOf","AuthorizationExceptionFilter","exception","host","ctx","switchToHttp","getRequest","response","getResponse","httpResponseError","UNAUTHORIZED","json","Catch","ConflictError","ConflictExceptionFilter","CONFLICT","GlobalExceptionFilter","HttpException","res","getStatus","HttpExceptionFilter","NotFoundError","NotFoundExceptionFilter","NOT_FOUND","ValidationError","ValidationExceptionFilter","UNPROCESSABLE_ENTITY","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","join","assetsPath","readFileSync","encoding","SwaggerBuilder","app","createDocument","config","DocumentBuilder","setTitle","setDescription","setVersion","addBearerAuth","build","SwaggerModule","extraModels","setupSwagger","document","swaggerUI","setup","VERSION","PACKAGE_NAME","registerLibrary","logger","Logger","initialize","enableLogger","customLogger","useLogger","enableCors","origins","allowMethods","allowedOrigins","o","trim","toLowerCase","corsOptions","origin","callback","credentials","methods","useHelmet","helmet","require","use","warn","useGlobalPipes","pipes","useGlobalFilters","filters","defaultFilters","useGlobalInterceptors","interceptors","start","port","Number","process","env","PORT","listen","then","getUrl","m"],"mappings":"mWAgDgB,SAAAA,EACdC,EAA8B,IAE9B,MAGI,EACJA,EAA8B,GAC9BC,GAAmB,KAEnB,MAAOC,EAAMC,GAAWC,EAAAA,oBACtBJ,EAAQE,KACRF,EAAQG,SAQV,IA/BAE,EAyBAL,EAAU,IACLA,EACHE,OACAC,YAtBOA,SAAW,SAAUE,QAAsBC,IAAdD,EAAKE,KAyBjB,CACxBP,EAAQE,KAAO,QAEf,MAAMM,EAAaC,EAAAA,cAAcT,EAAQO,MACzCP,EAAQU,MAAQ,CACdR,KAAMS,EAAWA,YAACH,GAClBD,KAAMC,UAGDR,EAAQO,IAChB,MAAM,GAAI,SAAUP,QAA4BM,IAAjBN,EAAQO,KAAoB,CAC1D,MAAMC,EAAaC,EAAAA,cAAcT,EAAQO,MAEzCP,EAAQO,KAAOC,EACfR,EAAQE,KAAOS,cAAYH,EAC5B,CA/CiB,IAClBH,EA0DA,OAVIO,MAAMT,QAAQH,EAAQE,QACxBF,EAAQE,KAAO,QACfF,EAAQU,MAAQ,CACdR,KAAM,QACNQ,MAAO,CACLR,KAAMF,EAAQE,KAAK,MC5CrB,EACJW,EACAC,EACAb,GAAmB,IAEZ,CAACc,EAAgBC,KACtB,MAAMC,EACJC,QAAQC,YAAYC,EAAUA,WAACC,2BAA4BN,IAAW,GAElEO,EAAM,IAAIN,EACXC,EAAWM,SAASD,IACvBJ,QAAQM,eACNJ,aAAWC,2BACX,IAAIJ,EAAY,IAAID,GACpBD,GAGJ,MAAMU,EAAmBP,QAAQC,YAAYN,EAASE,EAAQC,GAC9D,GAAIS,EAAkB,CACpB,MAAMC,EAAcC,EAAAA,OAAOb,EAAUc,EAAAA,OAAOC,EAAAA,cACtCC,EAAiB7B,EACnB,IACKwB,KACAC,GAEL,IACKA,KACAD,GAGTP,QAAQM,eAAeX,EAASiB,EAAgBf,EAAQC,EACzD,KAAM,CACL,MAAMd,EAEJa,GAAQgB,cAAcC,EAAAA,2BAA2BhB,IAAcd,MAC/DgB,QAAQC,YAAY,cAAeJ,EAAQC,GAE7CE,QAAQM,eACNX,EACA,CACEX,UACGyB,SAAOb,EAAUc,EAAMA,OAACC,EAAWA,eAExCd,EACAC,EAEH,GDGIiB,CACLb,EAAUA,WAACc,qBACXlC,EACAC,EAEJ,EAjDSkC,CAA2BnC,EACpC,UEnBgBoC,EACdC,EACAC,EACAC,GAEA,MAAMC,EAGF,CACFC,IAAK,CAACC,EAAAA,cAAcC,KAAMC,OAC1BC,KAAM,CAACH,EAAAA,cAAcI,OAAQC,QAC7BC,IAAK,CAACN,EAAAA,cAAcO,OAAQC,OAC5BC,MAAO,CAACT,EAAAA,cAAcO,OAAQG,SAC9BC,OAAQ,CAACX,EAAAA,cAAcW,OAAQC,YAG1BC,EAAQC,GAAahB,EAAWF,GACvC,MAzCF,EACED,EACAoB,KAEA,MAAMC,QAAEA,EAAOC,KAAEA,GAAUC,EAAAA,SAASC,IAClCxB,EACAK,EAAaA,cAACoB,QAAUpB,EAAaA,cAACqB,QACnC,CAAE,EASP,QAAQL,IAAmBA,KAAWC,EAAMF,KAAO,EACrD,EAwBSO,CAAmB3B,EAAkBkB,GACxCU,EAAKA,MAACC,EAAkBA,sBACxBD,QAAMT,EAAUjB,GACtB,CC1CA4B,EAAAA,WAAWC,IAAIC,EAAeA,gBAACC,YAC5BC,OAAO,CACNf,UAAW,CACTgB,EACAC,IAEOC,aAAW,CAChBC,MAAOF,EAAIG,UAAYC,EAAKA,MAACC,QAAUD,EAAKA,MAACE,QAC7CC,SAASP,EAAIG,gBAAYtE,MAI9B2D,QAEHE,EAAAA,WAAWC,IAAIC,EAAeA,gBAACY,QAC5BV,OAAO,CACNf,UAAW,CACTgB,EAEAC,IAEO,CACL1D,EACAC,EACAkE,IAEOC,EAAAA,OAAOX,GAAazD,EAApBoE,CACLpE,EACAC,EACAkE,KAKPjB,QAEHE,EAAAA,WAAWC,IAAIgB,EAAcA,eAACC,UAC3Bd,OACCxE,EAAY,CACVuF,UAAU,KAGbrB,QAEHE,EAAAA,WAAWC,IAAIgB,EAAcA,eAACG,KAC3BhB,OAAO,CACNf,UAA2BgC,GAClBzF,EAAY,CAAE0F,QAASD,MAGjCvB,QAEHE,EAAAA,WAAWC,IAAIgB,EAAcA,eAACM,KAC3BnB,OAAO,CACNf,UAA2BmC,GAClB5F,EAAY,CAAE6F,QAASD,MAGjC1B,QAEHE,EAAAA,WAAWC,IAAIgB,EAAcA,eAACS,YAC3BtB,OAAO,CACNf,UAAiCgC,GACxBzF,EAAY,CAAE+F,UAAWN,MAGnCvB,QAEHE,EAAAA,WAAWC,IAAIgB,EAAcA,eAACW,YAC3BxB,OAAO,CACNf,UAAiCmC,GACxB5F,EAAY,CAAEiG,UAAWL,MAGnC1B,QAkBHE,EAAAA,WAAWC,IAAIgB,EAAcA,eAACa,MAC3B1B,OAAO,CACNf,UACE0C,GAMOnG,EAAY,CAAEG,KAAM,CADjBU,MAAMT,QAAQ+F,GAASA,EAAM,GAAKA,OAI/CjC,QAYHE,EAAAA,WAAWC,IAAIgB,EAAcA,eAACe,SAC3B5B,OAAO,CACNf,UAA+B4C,GACtBrG,EAAY,CACjBsG,QAAwB,iBAARD,EAAmBA,EAAMA,EAAIE,WAIlDrC,QAEHE,EAAAA,WAAWC,IAAImC,EAAeA,gBAACC,QAC5BjC,OAAO,CACNf,UAA8BiD,GACrB1G,EAAY,CACjB0G,KAAMA,MAIXxC,QAEHE,EAAAA,WAAWC,IAAIsC,EAAcA,eAACC,aAC3BpC,OAAO,CACNf,UAAmCoD,GAC1B7G,EAAY,CACjB6G,YAAaA,MAIlB3C,QC3JU,MAAA4C,EAAuB,qBACvBC,EAAmB,qBCgBzB,IAAMC,EAAN,2BAMUC,KAAgBC,iBAC7B,IAAK,CAEG,cAAWC,GAEnB,OADKF,KAAKG,UAASH,KAAKG,QAAUC,EAAAA,QAAQhD,IAAIiD,IACvCL,KAAKG,OACb,CAED,WAAApF,CAEmB/B,EACAsH,GADAN,KAAOhH,QAAPA,EACAgH,KAASM,UAATA,CACf,CAEJ,0BAAaC,CACXvH,GAEA,IAAKgH,KAAKC,iBAAkB,CAC1B,MAAMC,EAAMF,KAAKE,IAAI9C,IAAI4C,KAAKO,eAC9BL,EAAIM,KAAK,gCACTR,KAAKC,iBAAmB,IAAIjH,EAAQyH,QAAQzH,EAAQ0H,KAAM1H,EAAQ2H,OAClET,EAAIM,KAAK,yCACV,CACD,OAAOR,KAAKC,gBACb,CAED,yBAAOW,GACL,OAAOZ,KAAKC,gBACb,CAED,cAAOY,CAAQ7H,GACb,MAAM8H,EAAuB,CAC3BC,QAASlB,EACTmB,SAAUhI,GAGNyH,EAAgC,CACpCQ,WAAYC,MAAO7H,GACVgH,EAAgBE,cAAclH,GAEvC0H,QAASjB,EACT9B,SAAS,EACTL,MAAOE,EAAKA,MAACC,QACbqD,OAAQ,CAACtB,IAMX,MAAO,CACLuB,OAAQf,EACRgB,UALgB,CAACZ,EAASK,GAM1BQ,QALc,CAACb,GAOlB,CAED,2BAAMc,GACJ,MAAMrB,EAAMG,EAAgBH,IAAI9C,IAAI4C,KAAKuB,uBACnCd,EAAUT,KAAKM,UAAUzD,IAAaiD,GAC5C,IACMW,IACFP,EAAIM,KAAK,uBACHC,EAAQe,WACdnB,EAAgBJ,iBAAmB,KAEtC,CAAC,MAAOwB,GACPvB,EAAIwB,MAAM,iCAAkCD,EAC7C,CACF,SA1EU1B,EAAeM,EAAAsB,EAAAA,WAAA,CAF3BC,WACAC,EAAAA,OAAO,CAAA,GAgBHC,EAAAA,QAAA,EAAA3D,SAAO0B,6CAEoBkC,EAASA,aAjB5BhC,GCVWuB,EAAAU,YAAjB,MACL,IAAqBC,GAEnB,KADAA,EAAyB,iBAAVA,EAAsBC,EAAKA,MAACrF,IAAIoF,GAAiBA,GAE9D,MAAM,IAAIE,EAAAA,cAAc,iCAAiCF,GAE3D,OAAOG,EAAUA,WAACC,SAASJ,EAC5B,GAPqBX,EAAAU,YAAAL,aAAA,CADvBjE,gBACYsE,eCcN,IAAMM,EAAN,oBAGK,cAAWpC,GAEnB,OADKF,KAAKG,UAASH,KAAKG,QAAUC,EAAAA,QAAQhD,IAAImF,IACvCvC,KAAKG,OACb,CAEO,wBAAOqC,CACbC,GAEA,MAAMvC,EAAMF,KAAKE,IAAI9C,IAAI4C,KAAKwC,mBACxBE,EAAYN,EAAAA,WAAWO,MAAMF,GAC7BG,EAAYC,cAAYH,GACxBI,EAAiBL,EAAWhD,KAElCS,EAAI6C,MAAM,kCAAkCD,GAE5C,IAGME,EAHN,cAGqCC,cAKnC,WAAAlI,CAA6BmI,GAC3BC,QAD2BnD,KAAWkD,YAAXA,EAE3BhD,EAAIM,KACF,6CAA6CsC,aAA0BF,KAGzE,IACE5C,KAAKoD,KAAOpD,KAAKkD,YAAY9F,IAAIqF,EAAWhD,MAC5CO,KAAKqD,GAAKrD,KAAKoD,KAAKC,EACrB,CAAC,MAAO5B,GACPzB,KAAKE,IAAIwB,MACP,8CAA8Ce,EAAWhD,SACzDgC,EAEH,CACF,CAeD,YAAM6B,CAAeC,GACnB,MAAMrD,EAAMF,KAAKE,IAAI9C,IAAI4C,KAAKsD,QAE9B,IAAIE,EADJtD,EAAIuD,QAAQ,gBAAgBX,GAE5B,IACEU,QAAgBxD,KAAKoD,KAAKE,OAAOC,EAClC,CAAC,MAAO9B,GAEP,MADAvB,EAAIwB,MAAM,wBAAwBoB,EAAkBrB,GAC9CA,CACP,CAID,OAHAvB,EAAIM,KACF,eAAesC,aAA2BU,EAAgBxD,KAAKqD,OAE1DG,CACR,CAWD,UAAME,CAAkBC,GACtB,MAAMzD,EAAMF,KAAKE,IAAI9C,IAAI4C,KAAK0D,MAC9B,IAAIA,EACJ,IACExD,EAAI6C,MAAM,WAAWD,UAAuB9C,KAAKqD,MAAMM,KACvDD,QAAa1D,KAAKoD,KAAKM,KAAKC,EAC7B,CAAC,MAAOlC,GAKP,MAJAvB,EAAIwB,MACF,kBAAkBoB,aAA0Ba,IAC5ClC,GAEIA,CACP,CAGD,OADAvB,EAAIM,KAAK,QAAQsC,aAA2BY,EAAa1D,KAAKqD,OACvDK,CACR,CAWD,WAAME,CAAuBC,GAC3B,MAAM3D,EAAMF,KAAKE,IAAI9C,IAAI4C,KAAK0D,MAC9B,IAAII,EAEJ,IACE5D,EAAI6C,MAAM,YAAYD,mBAAgCe,MACtDC,QAAiB9D,KAAKoD,KAAaS,IACpC,CAAC,MAAOpC,GAKP,MAJAvB,EAAIwB,MACF,mBAAmBoB,mBAAgCe,KACnDpC,GAEIA,CACP,CAKD,OAHAvB,EAAIM,KACF,wBAAwBsC,mBAAgCe,MAEnDC,CACR,CAiBD,YAAMC,CAAeR,GACnB,MAAMrD,EAAMF,KAAKE,IAAI9C,IAAI4C,KAAK+D,QAC9B,IAAIC,EACJ,IACE9D,EAAIM,KACF,YAAYsC,UAAuB9C,KAAKqD,MAAOE,EAAavD,KAAKqD,OAEnEW,QAAgBhE,KAAKoD,KAAKE,OAAOC,EAClC,CAAC,MAAO9B,GAEP,MADAvB,EAAIwB,MAAMD,GACJA,CACP,CACD,OAAOuC,CACR,CAcD,YAAM,CAAoBL,GACxB,MAAMzD,EAAMF,KAAKE,IAAI9C,IAAI4C,KAAKiE,QAC9B,IAAIP,EACJ,IACExD,EAAI6C,MACF,YAAYD,UAAuB9C,KAAKqD,MAAgBM,KAE1DD,QAAa1D,KAAKoD,KAAKM,KAAKC,EAC7B,CAAC,MAAOlC,GAKP,MAJAvB,EAAIwB,MACF,oBAAoBoB,aAA0Ba,IAC9ClC,GAEIA,CACP,CAED,OADAvB,EAAIM,KAAK,WAAWsC,aAA2BY,EAAa1D,KAAKqD,OAC1DK,CACR,GAGH,OAvIQ/B,aAAA,CAbLvG,EAAsBqH,EAAY,QAClCyB,EAAYA,aAAC,CAAEC,QAAS,gBAAgBrB,OACxCsB,UAAQ,CACPxE,YAAa,eAAekD,EAC5BuB,OAAQ,CAAEC,KAAMC,EAAaA,cAAC9B,MAE/B+B,qBAAmB,CAClB5E,YAAgBkD,EAAH,2BAEd2B,wBAAsB,CAAE7E,YAAa,+BACrC8E,iCAA+B,CAC9B9E,YAAa,8CAEDkC,UAAA,EAAA6C,EAAAA,mIAcb3B,EAAA4B,UAAA,SAAA,MAWKjD,aAAA,CATLvG,EAAsBqH,EAAY,MAAO,OACzCyB,EAAYA,aAAC,CAAEC,QAAS,cAAcrB,oBACtC+B,EAAAA,SAAS,CAAEpF,KAAM,KAAMG,YAAa,gBACpCkF,gBAAc,CACblF,YAAgBkD,EAAH,6BAEdiC,sBAAoB,CACnBnF,YAAa,MAAMkD,8CAEThB,EAAAA,QAAA,EAAAkD,QAAM,kIAgBjBhC,EAAA4B,UAAA,OAAA,MAWKjD,aAAA,CATLvG,EAAsBqH,EAAY,MAAO,iBACzCyB,EAAYA,aAAC,CAAEC,QAAS,YAAYrB,wBACpC+B,EAAAA,SAAS,CAAEpF,KAAM,SAAUG,YAAa,8BACxCkF,gBAAc,CACblF,YAAgBkD,EAAH,6BAEdiC,sBAAoB,CACnBnF,YAAa,MAAMkD,iCAERhB,EAAAA,QAAA,EAAAkD,QAAM,sIAmBlBhC,EAAA4B,UAAA,QAAA,MAiBKjD,aAAA,CAfLvG,EAAsBqH,EAAY,MAAO,OACzCyB,eAAa,CACZC,QAAS,uBAAuBrB,iCAEjCsB,UAAQ,CACPxE,YAAa,4CAA4CkD,EACzDuB,OAAQ,CAAEC,KAAMC,EAAaA,cAAC9B,MAE/BqC,gBAAc,CACblF,YAAgB6C,EAAH,mCAEdsC,sBAAoB,CACnBnF,YAAa,MAAMkD,8CAEpB2B,wBAAsB,CAAE7E,YAAa,+BACxBkC,UAAA,EAAA6C,EAAAA,+EAAazC,EAAAA,mDAa1Bc,EAAA4B,UAAA,SAAA,MAcKjD,aAAA,CAZLvG,EAAsBqH,EAAY,SAAU,OAC5CyB,EAAYA,aAAC,CAAEC,QAAS,YAAYrB,oBACpC+B,WAAS,CACRpF,KAAM,KACNG,YAAa,4BAA4BkD,wBAE1CgC,gBAAc,CACblF,YAAgBkD,EAAH,kCAEdiC,sBAAoB,CACnBnF,YAAa,MAAMkD,8CAEPhB,EAAAA,QAAA,EAAAkD,QAAM,kIAiBnBhC,EAAA4B,UAAA,SAAA,MAvKG5B,EAAsBrB,EAAAA,WAAA,CAH3BsD,EAAAA,WAAWrC,GACXsC,EAAAA,QAAQpC,GACRqC,EAAAA,eAAe1C,qCAM4BT,EAAAA,eALtCgB,GA0KCA,CACR,CAED,cAAOnC,CAAQuE,GACb,MAAMlF,EAAMF,KAAKE,IAAI9C,IAAI4C,KAAKa,SAC9BX,EAAIM,KAAK,yCAET,MACM6E,EADgBC,EAAAA,QAAQC,OAAOH,GACHI,IAAIxF,KAAKwC,kBAAkBiD,KAAKzF,OAIlE,OAFAE,EAAIM,KAAK,aAAa6E,EAAYK,sBAE3B,CACLtE,OAAQmB,EACR8C,cACAhE,UAAW,CAACW,EAAAA,aAEf,SAhNUM,EAAgBC,EAAAZ,EAAAA,WAAA,CAD5BE,EAAAA,OAAO,CAAA,IACKS,GCZAqD,EAAAA,YAANC,EAAA,MACL,yBAAaC,CACX7M,GAEA,MAAM8M,gBAAEA,GAAoB9M,EAGtBoM,SADgBrF,EAAgBQ,cAAcvH,IAC5BoM,QAElBW,EAOU,CAAChG,EAAgBc,QAAQ7H,IAMzC,OAJI8M,GACFC,EAAQC,KAAK1D,EAAiBzB,QAAQuE,IAGjC,CACLhE,OAAQwE,EACRG,QAASA,EAEZ,GA1BUJ,EAAAA,YAAWC,EAAAjE,EAAAA,WAAA,CADvBE,EAAAA,OAAO,CAAA,IACK8D,eCPP,MAAOM,UAAkBC,EAAAA,eAC7B,WAAAnL,CAAYoL,GACVhD,MAAMgD,EAAKF,EAAUxG,KACtB,QCHU2G,EAQX,WAAArL,CACEsL,EACAC,GAEA,MAAMC,EAASD,GAAeC,QAAUC,EAAAA,WAAWC,sBAC7CC,EAAUJ,GAAeI,SAAW,wBACpChF,GACJ4E,GAAe5E,OACf8E,EAAAA,WAAWD,IACX,kBAECI,WACAC,cAEHC,OAAOC,OAAO9G,KAAM,CAClBuG,SACAG,UACAhF,QACAqF,WAAW,IAAIC,MAAOC,cACtB1L,KAAM8K,EAAQa,IACdrD,OAAQwC,EAAQxC,QAEnB,ECxBG,MAAOsD,UAA2BC,MAItC,WAAArM,CAAY2L,EAAU,gBACpBvD,MAAMuD,GACN1G,KAAKP,KAAO,qBACZO,KAAKuG,OAAS,IACdvG,KAAKqH,KAAO,eACZR,OAAOS,eAAetH,KAAMmH,EAAmBvC,UAChD,EAIsCtD,EAAAiG,6BAAlC,MACL,MAAMC,EAA+BC,GACnC,MAAMC,EAAMD,EAAKE,eACXtB,EAAUqB,EAAIE,aACdC,EAAWH,EAAII,cAEfC,EAAoB,IAAI3B,EAAkBC,EAAS,CACvD3E,MAAO,eACP6E,OAAQC,EAAUA,WAACwB,aACnBtB,QAASc,EAAUd,UAGpBmB,EAAiBtB,OAAOC,EAAUA,WAACwB,cAAcC,KAAKF,EACxD,GAbsCzG,EAAAiG,6BAAA5F,aAAA,CADxCuG,EAAAA,MAAMf,IACMI,gCCdP,MAAOY,UAAsBf,MAIjC,WAAArM,CAAY2L,EAAU,YACpBvD,MAAMuD,GACN1G,KAAKP,KAAO,gBACZO,KAAKuG,OAAS,IACdvG,KAAKqH,KAAO,WAEZR,OAAOS,eAAetH,KAAMmI,EAAcvD,UAC3C,EAIiCtD,EAAA8G,wBAA7B,MACL,MAAMZ,EAA0BC,GAC9B,MAAMC,EAAMD,EAAKE,eACXE,EAAWH,EAAII,cACfzB,EAAUqB,EAAIE,aAEdG,EAAoB,IAAI3B,EAAkBC,EAAS,CACvDE,OAAQC,EAAUA,WAAC6B,SACnB3B,QAASc,EAAUd,QACnBhF,MAAO,aAGRmG,EAAiBtB,OAAOwB,EAAkBxB,QAAQ0B,KAAKF,EACzD,GAbiCzG,EAAA8G,wBAAAzG,aAAA,CADnCuG,EAAAA,MAAMC,IACMC,2BCbqB9G,EAAAgH,sBAA3B,MACL,MAAMd,EAAoBC,GACxB,MAAMC,EAAMD,EAAKE,eACXtB,EAAUqB,EAAIE,aACdC,EAAWH,EAAII,cAErB,IAEIpG,EAFA6E,EAASC,EAAUA,WAACC,sBACpBC,EAAU,wBAGd,GAAIc,aAAqBe,EAAAA,cAAe,CACtC,MAAMC,EAAWhB,EAAUM,cAC3BvB,EAASiB,EAAUiB,YACnB/B,GAAW8B,GAAK9B,SAAWc,EAAUd,UAAYA,EACjDhF,EAAQ8G,GAAK9G,OAAS8F,EAAU/H,IACjC,MAAU+H,aAAqBJ,QAC9BV,EAAUc,EAAUd,QACpBhF,EAAQ8F,EAAU/H,MAGpB,MAAMsI,EAAoB,IAAI3B,EAAkBC,EAAS,CACvDE,SACAG,UACAhF,UAEDmG,EAAiBtB,OAAOwB,EAAkBxB,QAAQ0B,KAAKF,EACzD,GA1B+BzG,EAAAgH,sBAAA3G,aAAA,CADjCuG,WACYI,yBCDmBhH,EAAAoH,oBAAzB,MACL,MAAMlB,EAA0BC,GAC9B,MAAMC,EAAMD,EAAKE,eACXE,EAAWH,EAAII,cACfzB,EAAUqB,EAAIE,aACdrB,EAASiB,EAAUiB,YAEnBV,EAAoB,IAAI3B,EAAkBC,EAAS,CACvDE,SACAG,QAASc,EAAUd,QACnBhF,MAAO8F,EAAU/H,OAGlBoI,EAAiBtB,OAAOwB,EAAkBxB,QAAQ0B,KAAKF,EACzD,GAd6BzG,EAAAoH,oBAAA/G,aAAA,CAD/BuG,EAAAA,MAAMK,EAAAA,gBACMG,uBCDP,MAAOC,UAAsBvB,MAIjC,WAAArM,CAAY2L,EAAU,sBACpBvD,MAAMuD,GACN1G,KAAKP,KAAO,gBACZO,KAAKuG,OAAS,IACdvG,KAAKqH,KAAO,YAEZR,OAAOS,eAAetH,KAAM2I,EAAc/D,UAC3C,EAIiCtD,EAAAsH,wBAA7B,MACL,MAAMpB,EAA0BC,GAC9B,MAAMC,EAAMD,EAAKE,eACXE,EAAWH,EAAII,cACfzB,EAAUqB,EAAIE,aAEdG,EAAoB,IAAI3B,EAAkBC,EAAS,CACvDE,OAAQC,EAAUA,WAACqC,UACnBnC,QAASc,EAAUd,QACnBhF,MAAO,cAGRmG,EAAiBtB,OAAOwB,EAAkBxB,QAAQ0B,KAAKF,EACzD,GAbiCzG,EAAAsH,wBAAAjH,aAAA,CADnCuG,EAAAA,MAAMS,IACMC,2BCfP,MAAOE,UAAwB1B,MAInC,WAAArM,CAAY2L,EAAU,qBACpBvD,MAAMuD,GACN1G,KAAKP,KAAO,kBACZO,KAAKuG,OAAS,IACdvG,KAAKqH,KAAO,mBAEZR,OAAOS,eAAetH,KAAM8I,EAAgBlE,UAC7C,EAImCtD,EAAAyH,0BAA/B,MACL,MAAMvB,EAA4BC,GAChC,MAAMC,EAAMD,EAAKE,eACXE,EAAWH,EAAII,cACfzB,EAAUqB,EAAIE,aAEdG,EAAoB,IAAI3B,EAAkBC,EAAS,CACvDE,OAAQC,EAAUA,WAACwC,qBACnBtC,QAASc,EAAUd,QACnBhF,MAAO,qBAGRmG,EAAiBtB,OAAOwB,EAAkBxB,QAAQ0B,KAAKF,EACzD,GAbmCzG,EAAAyH,0BAAApH,aAAA,CADrCuG,EAAAA,MAAMY,IACMC,6BCNN,MAAME,EAAuC,CAClDC,MAAO,wCACPtJ,YAAa,kDACbuJ,QAAS,QACT5N,KAAM,OACN6N,gBAAiB,GACjBC,mBAAoB,GACpBC,KAAM,CACJpQ,KAAM,OACNqQ,OAAQ,SACRC,aAAc,MACd/J,KAAM,gBACNG,YAAa,kBACb6J,GAAI,UAENC,sBAAsB,EACtBC,cAAe,iBCnBJC,EAUX,WAAA7O,CAAY/B,GACVgH,KAAKhH,QAAU,IACVA,EAEN,CAEO,SAAA6Q,GACN,IAAIC,EAAM,GAKV,OAJI9J,KAAKhH,QAAQ+Q,iBAEfD,GAAO,yDADK9J,KAAKgK,IAAIhK,KAAKhH,QAAQ+Q,sDAIlCD,EACA,0GAE4C9J,KAAKhH,QAAQ2Q,eAAiBV,EAAqBU,0BAGlG,CAED,gBAAAM,GACE,MAAMC,EAA+B,CAAA,EAKrC,OAJIlK,KAAKhH,QAAQmR,cACfD,EAAuB,cAAIlK,KAAKgK,IAAIhK,KAAKhH,QAAQmR,aAAa,IAGzD,CACLC,gBAAiBpK,KAAKhH,QAAQkQ,SAC3BgB,EACHG,UAAWrK,KAAK6J,YAChBS,eAAgB,CACdZ,qBAAsB1J,KAAKhH,QAAQ0Q,sBAErCa,gBAAiBvK,KAAKhH,QAAQuC,KACvByE,KAAKhH,QAAQuC,KAAhB,kBACAjC,EACJkR,gBAAiBxK,KAAKhH,QAAQuC,KACvByE,KAAKhH,QAAQuC,KAAhB,kBACAjC,EAEP,CAED,GAAA0Q,CAAIS,EAAcC,GAAe,GAC/B,MAAMC,EAAWpP,EAAKqP,KAAK5K,KAAKhH,QAAQ6R,YAAc,GAAIJ,GACpDT,EAAMc,EAAAA,aAAaH,EAAU,CAAEI,SAAU,WAC/C,OAAOL,EAAM,yBAA2BV,EAAMA,CAC/C,QClEUgB,EACX,WAAAjQ,CACmBkQ,EACAjS,GADAgH,KAAGiL,IAAHA,EACAjL,KAAOhH,QAAPA,CACf,CAEI,cAAAkS,GACN,MAAMtL,EAAcI,KAAKhH,QAAQuC,KAC7ByE,KAAKhH,QAAQ4G,YACb,GACA,oBAAoBI,KAAKhH,QAAQuC,2CACjC,YAAYyE,KAAKhH,QAAQuC,wCACzByE,KAAKhH,QAAQ4G,YAEXuL,GAAS,IAAIC,mBAChBC,SAASrL,KAAKhH,QAAQkQ,OACtBoC,eAAe1L,GACf2L,WAAWvL,KAAKhH,QAAQmQ,SAAW,SACnCqC,cAAcxL,KAAKhH,QAAQsQ,MAAQL,EAAqBK,MACxDmC,QAEH,OAAOC,EAAaA,cAACR,eAAelL,KAAKiL,IAAKE,EAAQ,CACpDQ,YAAa3L,KAAKhH,QAAQ2S,aAAe,IAE5C,CAEM,YAAAC,GACL,MAAMC,EAAW7L,KAAKkL,iBAChBY,EAAY,IAAIlC,EAAgB,CACpCV,MAAOlJ,KAAKhH,QAAQkQ,MACpB3N,KAAMyE,KAAKhH,QAAQuC,MAAQ0N,EAAqB1N,KAChDmO,qBAAsB1J,KAAKhH,QAAQ0Q,uBAAwB,EAC3DmB,WAAY7K,KAAKhH,QAAQ6R,WACzBV,YAAanK,KAAKhH,QAAQoQ,gBAC1BW,eAAgB/J,KAAKhH,QAAQqQ,mBAC7BM,cAAe3J,KAAKhH,QAAQ2Q,gBAE9B+B,gBAAcK,MACZ/L,KAAKhH,QAAQuC,MAAQ0N,EAAqB1N,KAC1CyE,KAAKiL,IACLY,EACA,IACKC,EAAU7B,oBAGlB,ECVU,MAAA+B,EAAU,cACVC,EAAe,mBAE5BrP,EAAAA,SAASsP,gBAAgBD,EAAcD,gLCoE7B,iBAAWG,GAKjB,OAJKnM,KAAKG,UAERH,KAAKG,QAAU,IAAIiM,EAAMA,OAAC,kBAErBpM,KAAKG,OACb,CAaD,iBAAOkM,CAAWpB,GAEhB,OADAjL,KAAKiL,IAAMA,EACJjL,IACR,CAcD,mBAAOsM,CAAaC,GAGlB,OAFAvM,KAAKG,QAAUoM,GAAgB,IAAIH,EAAMA,OAAC,iBAC1CpM,KAAKiL,IAAIuB,UAAUxM,KAAKG,SACjBH,IACR,CAgBD,iBAAOyM,CACLC,EAA0B,GAC1BC,EAAyB,CAAC,MAAO,OAAQ,MAAO,WAEhD,MAAMC,EACQ,MAAZF,EAAkB,IAAMA,EAAQlH,IAAKqH,GAAMA,EAAEC,OAAOC,eAEhDC,EAA2B,CAC/BC,OAAQ,CAACA,EAAQC,IAEVD,EAGgB,MAAnBL,GACChT,MAAMT,QAAQyT,IACbA,EAAerS,SAAS0S,EAAOF,eAE1BG,EAAS,MAAM,QAGxBA,EAAS,IAAIjH,EAAU,UAAUgH,kBAVbC,EAAS,MAAM,GAYrCC,aAAa,EACbC,QAAST,EAAa/B,KAAK,MAI7B,OADA5K,KAAKiL,IAAIwB,WAAWO,GACbhN,IACR,CAcD,gBAAOqN,CAAUrU,GACf,IAEE,MAAMsU,EAASC,QAAQ,UACvBvN,KAAKiL,IAAIuC,IAAIF,EAAOtU,IACpBgH,KAAKmM,OAAOjM,IAAI,0CAEjB,CAAC,MAAOuB,GACPzB,KAAKmM,OAAOsB,KAAK,6CAClB,CAED,OAAOzN,IACR,CAcD,mBAAO4L,CAAa5S,GAalB,OAZgB,IAAIgS,EAAehL,KAAKiL,IAAK,CAC3C/B,MAAOlQ,EAAQkQ,MACftJ,YAAa5G,EAAQ4G,YACrBuJ,QAASnQ,EAAQmQ,QACjB5N,KAAMvC,EAAQuC,MAAQ,MACtBmO,qBAAsB1Q,EAAQ0Q,uBAAwB,EACtDmB,WAAY7R,EAAQ6R,WACpBzB,gBAAiBpQ,EAAQmR,YACzBd,mBAAoBrQ,EAAQ+Q,eAC5BJ,cAAe3Q,EAAQ2Q,gBAEjBiC,eACD5L,IACR,CAcD,qBAAO0N,IAAkBC,GAEvB,OADIA,EAAMjI,OAAS,GAAG1F,KAAKiL,IAAIyC,kBAAkBC,GAC1C3N,IACR,CAaD,uBAAO4N,IAAoBC,GACzB,MAAMC,EAAiB,CACrB,IAAIpF,sBACJ,IAAIK,4BACJ,IAAIH,0BACJ,IAAIR,0BACJ,IAAIb,+BACJ,IAAIe,yBAMN,OAHAtI,KAAKiL,IAAI2C,oBACHC,EAAQnI,OAAS,EAAImI,EAAUC,GAE9B9N,IACR,CAcD,4BAAO+N,IAAyBC,GAG9B,OAFIA,EAAatI,OAAS,GACxB1F,KAAKiL,IAAI8C,yBAAyBC,GAC7BhO,IACR,CAgBD,kBAAaiO,CACXC,EAAeC,OAAOC,QAAQC,IAAIC,OAAS,IAC3C7G,OAA2BnO,EAC3B4G,GAAe,GAEfF,KAAKiL,IAAIsD,OAAOL,EAAMzG,GAAa+G,KAAKtN,UACtC,GAAIhB,EAAK,CACP,MAAMgH,QAAYlH,KAAKiL,IAAIwD,SAC3BzO,KAAKmM,OAAOjM,IAAI,2CAAiCgH,EAClD,GAEJ,wGC9U0BjF,IAC5B,MAAMyM,EAAIxM,EAAAA,MAAMrF,IAAIoF,GACpB,IAAKyM,EACJ,MAAM,IAAIvM,EAAAA,cAAc,iCAAiCF,GAE1D,OADaG,EAAAA,WAAWC,SAASqM,EAElC"}
|
|
1
|
+
{"version":3,"file":"for-nest.cjs","sources":["../src/decorators/ApiProperty.ts","../src/decorators/helpers.ts","../src/decorators.ts","../src/decoration.ts","../src/constants.ts","../src/core-module.ts","../src/RepoFactory.ts","../src/model-module.ts","../src/module.ts","../src/factory/errors/cors.ts","../src/factory/exceptions/HttpResponseError.ts","../src/factory/exceptions/AuthorizationExceptionFilter.ts","../src/factory/exceptions/ConflictExceptionFilter.ts","../src/factory/exceptions/GlobalExceptionFilter.ts","../src/factory/exceptions/HttpExceptionFilter.ts","../src/factory/exceptions/NotFoundExceptionFilter.ts","../src/factory/exceptions/ValidationExceptionFilter.ts","../src/factory/openapi/constants.ts","../src/factory/openapi/SwaggerCustomUI.ts","../src/factory/openapi/SwaggerBuilder.ts","../src/index.ts","../src/factory/NestBootstraper.ts","../src/utils.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null],"names":["ApiProperty","options","overrideExisting","type","isArray","getTypeIsArrayTuple","opts","undefined","enum","enumValues","getEnumValues","items","getEnumType","Array","metakey","metadata","target","propertyKey","properties","Reflect","getMetadata","DECORATORS","API_MODEL_PROPERTIES_ARRAY","key","includes","defineMetadata","existingMetadata","newMetadata","pickBy","negate","isUndefined","metadataToSave","constructor","METADATA_FACTORY_NAME","createPropertyDecorator","API_MODEL_PROPERTIES","createApiPropertyDecorator","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","decorator","apply","ApiExcludeEndpoint","Decoration","for","InjectablesKeys","INJECTABLE","extend","category","cfg","Injectable","scope","singleton","Scope","DEFAULT","REQUEST","durable","INJECT","descriptor","Inject","ValidationKeys","REQUIRED","required","MAX","max","maximum","MIN","min","minimum","MAX_LENGTH","maxLength","MIN_LENGTH","minLength","LIST","clazz","PATTERN","pat","pattern","source","PersistenceKeys","COLUMN","name","DecorationKeys","DESCRIPTION","description","DECAF_MODULE_OPTIONS","DECAF_ADAPTER_ID","DecafCoreModule","this","_adapterInstance","log","_logger","Logging","DecafCoreModule_1","moduleRef","createAdapter","info","adapter","conf","alias","getAdapterInstance","forRoot","typeOrmModuleOptions","provide","useValue","useFactory","async","inject","module","providers","exports","onApplicationShutdown","shutdown","e","error","__decorate","Global","Module","__param","ModuleRef","RepoFactory","model","Model","InternalError","Repository","forModel","DecafModelModule","DecafModelModule_1","toModelController","ModelClazz","tableName","table","routePath","toKebabCase","modelClazzName","debug","DynamicModelController","LoggedClass","repoFactory","super","repo","pk","create","data","created","verbose","read","id","query","method","results","update","updated","delete","ApiOperation","summary","ApiBody","schema","$ref","getSchemaPath","ApiCreatedResponse","ApiBadRequestResponse","ApiUnprocessableEntityResponse","Body","prototype","ApiParam","ApiOkResponse","ApiNotFoundResponse","Param","Controller","ApiTags","ApiExtraModels","flavour","controllers","Adapter","models","map","bind","length","DecafModule","DecafModule_1","forRootAsync","autoControllers","imports","push","CorsError","ForbiddenError","msg","HttpResponseError","request","responseError","status","HttpStatus","INTERNAL_SERVER_ERROR","message","toString","toUpperCase","Object","assign","timestamp","Date","toISOString","url","AuthorizationError","Error","code","setPrototypeOf","AuthorizationExceptionFilter","exception","host","ctx","switchToHttp","getRequest","response","getResponse","httpResponseError","UNAUTHORIZED","json","Catch","ConflictError","ConflictExceptionFilter","CONFLICT","GlobalExceptionFilter","HttpException","res","getStatus","HttpExceptionFilter","NotFoundError","NotFoundExceptionFilter","NOT_FOUND","ValidationError","ValidationExceptionFilter","UNPROCESSABLE_ENTITY","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","join","assetsPath","readFileSync","encoding","SwaggerBuilder","app","createDocument","config","DocumentBuilder","setTitle","setDescription","setVersion","addBearerAuth","build","SwaggerModule","extraModels","setupSwagger","document","swaggerUI","setup","VERSION","PACKAGE_NAME","registerLibrary","logger","Logger","initialize","enableLogger","customLogger","useLogger","enableCors","origins","allowMethods","allowedOrigins","o","trim","toLowerCase","corsOptions","origin","callback","credentials","methods","useHelmet","helmet","require","use","warn","useGlobalPipes","pipes","useGlobalFilters","filters","defaultFilters","useGlobalInterceptors","interceptors","start","port","Number","process","env","PORT","listen","then","getUrl","m"],"mappings":"mWAgDgB,SAAAA,EACdC,EAA8B,IAE9B,MAGI,EACJA,EAA8B,GAC9BC,GAAmB,KAEnB,MAAOC,EAAMC,GAAWC,EAAAA,oBACtBJ,EAAQE,KACRF,EAAQG,SAQV,IA/BAE,EAyBAL,EAAU,IACLA,EACHE,OACAC,YAtBOA,SAAW,SAAUE,QAAsBC,IAAdD,EAAKE,KAyBjB,CACxBP,EAAQE,KAAO,QAEf,MAAMM,EAAaC,EAAAA,cAAcT,EAAQO,MACzCP,EAAQU,MAAQ,CACdR,KAAMS,EAAWA,YAACH,GAClBD,KAAMC,UAGDR,EAAQO,IAChB,MAAM,GAAI,SAAUP,QAA4BM,IAAjBN,EAAQO,KAAoB,CAC1D,MAAMC,EAAaC,EAAAA,cAAcT,EAAQO,MAEzCP,EAAQO,KAAOC,EACfR,EAAQE,KAAOS,cAAYH,EAC5B,CA/CiB,IAClBH,EA0DA,OAVIO,MAAMT,QAAQH,EAAQE,QACxBF,EAAQE,KAAO,QACfF,EAAQU,MAAQ,CACdR,KAAM,QACNQ,MAAO,CACLR,KAAMF,EAAQE,KAAK,MC5CrB,EACJW,EACAC,EACAb,GAAmB,IAEZ,CAACc,EAAgBC,KACtB,MAAMC,EACJC,QAAQC,YAAYC,EAAUA,WAACC,2BAA4BN,IAAW,GAElEO,EAAM,IAAIN,EACXC,EAAWM,SAASD,IACvBJ,QAAQM,eACNJ,aAAWC,2BACX,IAAIJ,EAAY,IAAID,GACpBD,GAGJ,MAAMU,EAAmBP,QAAQC,YAAYN,EAASE,EAAQC,GAC9D,GAAIS,EAAkB,CACpB,MAAMC,EAAcC,EAAAA,OAAOb,EAAUc,EAAAA,OAAOC,EAAAA,cACtCC,EAAiB7B,EACnB,IACKwB,KACAC,GAEL,IACKA,KACAD,GAGTP,QAAQM,eAAeX,EAASiB,EAAgBf,EAAQC,EACzD,KAAM,CACL,MAAMd,EAEJa,GAAQgB,cAAcC,EAAAA,2BAA2BhB,IAAcd,MAC/DgB,QAAQC,YAAY,cAAeJ,EAAQC,GAE7CE,QAAQM,eACNX,EACA,CACEX,UACGyB,SAAOb,EAAUc,EAAMA,OAACC,EAAWA,eAExCd,EACAC,EAEH,GDGIiB,CACLb,EAAUA,WAACc,qBACXlC,EACAC,EAEJ,EAjDSkC,CAA2BnC,EACpC,CE3CgB,SAAAoC,EACdC,EACAC,GAEA,MAAMC,QAAEA,EAAOC,KAAEA,GAAUC,EAAAA,SAASC,IAClCL,EACAM,EAAaA,cAACC,QAAUD,EAAaA,cAACE,QACnC,CAAE,EASP,QAAQN,IAAmBA,KAAWC,EAAMF,KAAO,EACrD,UAOgBQ,EACdT,EACAU,EACAC,GAEA,MAAMC,EAGF,CACFC,IAAK,CAACP,EAAAA,cAAcQ,KAAMC,OAC1BC,KAAM,CAACV,EAAAA,cAAcW,OAAQC,QAC7BC,IAAK,CAACb,EAAAA,cAAcc,OAAQC,OAC5BC,MAAO,CAAChB,EAAAA,cAAcc,OAAQG,SAC9BC,OAAQ,CAAClB,EAAAA,cAAckB,OAAQC,YAG1BC,EAAQC,GAAaf,EAAWF,GACvC,OAAOX,EAAmBC,EAAkB0B,GACxCE,EAAKA,MAACC,EAAkBA,sBACxBD,QAAMD,EAAUhB,GACtB,CC1CAmB,EAAAA,WAAWC,IAAIC,EAAeA,gBAACC,YAC5BC,OAAO,CACNP,UAAW,CACTQ,EACAC,IAEOC,aAAW,CAChBC,MAAOF,EAAIG,UAAYC,EAAKA,MAACC,QAAUD,EAAKA,MAACE,QAC7CC,SAASP,EAAIG,gBAAYtE,MAI9B2D,QAEHE,EAAAA,WAAWC,IAAIC,EAAeA,gBAACY,QAC5BV,OAAO,CACNP,UAAW,CACTQ,EAEAC,IAEO,CACL1D,EACAC,EACAkE,IAEOC,EAAAA,OAAOX,GAAazD,EAApBoE,CACLpE,EACAC,EACAkE,KAKPjB,QAEHE,EAAAA,WAAWC,IAAIgB,EAAcA,eAACC,UAC3Bd,OACCxE,EAAY,CACVuF,UAAU,KAGbrB,QAEHE,EAAAA,WAAWC,IAAIgB,EAAcA,eAACG,KAC3BhB,OAAO,CACNP,UAA2BwB,GAClBzF,EAAY,CAAE0F,QAASD,MAGjCvB,QAEHE,EAAAA,WAAWC,IAAIgB,EAAcA,eAACM,KAC3BnB,OAAO,CACNP,UAA2B2B,GAClB5F,EAAY,CAAE6F,QAASD,MAGjC1B,QAEHE,EAAAA,WAAWC,IAAIgB,EAAcA,eAACS,YAC3BtB,OAAO,CACNP,UAAiCwB,GACxBzF,EAAY,CAAE+F,UAAWN,MAGnCvB,QAEHE,EAAAA,WAAWC,IAAIgB,EAAcA,eAACW,YAC3BxB,OAAO,CACNP,UAAiC2B,GACxB5F,EAAY,CAAEiG,UAAWL,MAGnC1B,QAkBHE,EAAAA,WAAWC,IAAIgB,EAAcA,eAACa,MAC3B1B,OAAO,CACNP,UACEkC,GAMOnG,EAAY,CAAEG,KAAM,CADjBU,MAAMT,QAAQ+F,GAASA,EAAM,GAAKA,OAI/CjC,QAYHE,EAAAA,WAAWC,IAAIgB,EAAcA,eAACe,SAC3B5B,OAAO,CACNP,UAA+BoC,GACtBrG,EAAY,CACjBsG,QAAwB,iBAARD,EAAmBA,EAAMA,EAAIE,WAIlDrC,QAEHE,EAAAA,WAAWC,IAAImC,EAAeA,gBAACC,QAC5BjC,OAAO,CACNP,UAA8ByC,GACrB1G,EAAY,CACjB0G,KAAMA,MAIXxC,QAEHE,EAAAA,WAAWC,IAAIsC,EAAcA,eAACC,aAC3BpC,OAAO,CACNP,UAAmC4C,GAC1B7G,EAAY,CACjB6G,YAAaA,MAIlB3C,QC3JU,MAAA4C,EAAuB,qBACvBC,EAAmB,qBCgBzB,IAAMC,EAAN,2BAMUC,KAAgBC,iBAC7B,IAAK,CAEG,cAAWC,GAEnB,OADKF,KAAKG,UAASH,KAAKG,QAAUC,EAAAA,QAAQhD,IAAIiD,IACvCL,KAAKG,OACb,CAED,WAAApF,CAEmB/B,EACAsH,GADAN,KAAOhH,QAAPA,EACAgH,KAASM,UAATA,CACf,CAEJ,0BAAaC,CACXvH,GAEA,IAAKgH,KAAKC,iBAAkB,CAC1B,MAAMC,EAAMF,KAAKE,IAAI9C,IAAI4C,KAAKO,eAC9BL,EAAIM,KAAK,gCACTR,KAAKC,iBAAmB,IAAIjH,EAAQyH,QAAQzH,EAAQ0H,KAAM1H,EAAQ2H,OAClET,EAAIM,KAAK,yCACV,CACD,OAAOR,KAAKC,gBACb,CAED,yBAAOW,GACL,OAAOZ,KAAKC,gBACb,CAED,cAAOY,CAAQ7H,GACb,MAAM8H,EAAuB,CAC3BC,QAASlB,EACTmB,SAAUhI,GAGNyH,EAAgC,CACpCQ,WAAYC,MAAO7H,GACVgH,EAAgBE,cAAclH,GAEvC0H,QAASjB,EACT9B,SAAS,EACTL,MAAOE,EAAKA,MAACC,QACbqD,OAAQ,CAACtB,IAMX,MAAO,CACLuB,OAAQf,EACRgB,UALgB,CAACZ,EAASK,GAM1BQ,QALc,CAACb,GAOlB,CAED,2BAAMc,GACJ,MAAMrB,EAAMG,EAAgBH,IAAI9C,IAAI4C,KAAKuB,uBACnCd,EAAUT,KAAKM,UAAU5E,IAAaoE,GAC5C,IACMW,IACFP,EAAIM,KAAK,uBACHC,EAAQe,WACdnB,EAAgBJ,iBAAmB,KAEtC,CAAC,MAAOwB,GACPvB,EAAIwB,MAAM,iCAAkCD,EAC7C,CACF,SA1EU1B,EAAeM,EAAAsB,EAAAA,WAAA,CAF3BC,WACAC,EAAAA,OAAO,CAAA,GAgBHC,EAAAA,QAAA,EAAA3D,SAAO0B,6CAEoBkC,EAASA,aAjB5BhC,GCVWuB,EAAAU,YAAjB,MACL,IAAqBC,GAEnB,KADAA,EAAyB,iBAAVA,EAAsBC,EAAKA,MAACxG,IAAIuG,GAAiBA,GAE9D,MAAM,IAAIE,EAAAA,cAAc,iCAAiCF,GAE3D,OAAOG,EAAUA,WAACC,SAASJ,EAC5B,GAPqBX,EAAAU,YAAAL,aAAA,CADvBjE,gBACYsE,eCcN,IAAMM,EAAN,oBAGK,cAAWpC,GAEnB,OADKF,KAAKG,UAASH,KAAKG,QAAUC,EAAAA,QAAQhD,IAAImF,IACvCvC,KAAKG,OACb,CAEO,wBAAOqC,CACbC,GAEA,MAAMvC,EAAMF,KAAKE,IAAI9C,IAAI4C,KAAKwC,mBACxBE,EAAYN,EAAAA,WAAWO,MAAMF,GAC7BG,EAAYC,cAAYH,GACxBI,EAAiBL,EAAWhD,KAElCS,EAAI6C,MAAM,kCAAkCD,GAE5C,IAGME,EAHN,cAGqCC,cAKnC,WAAAlI,CAA6BmI,GAC3BC,QAD2BnD,KAAWkD,YAAXA,EAE3BhD,EAAIM,KACF,6CAA6CsC,aAA0BF,KAGzE,IACE5C,KAAKoD,KAAOpD,KAAKkD,YAAY9F,IAAIqF,EAAWhD,MAC5CO,KAAKqD,GAAKrD,KAAKoD,KAAKC,EACrB,CAAC,MAAO5B,GACPzB,KAAKE,IAAIwB,MACP,8CAA8Ce,EAAWhD,SACzDgC,EAEH,CACF,CAeD,YAAM6B,CAAeC,GACnB,MAAMrD,EAAMF,KAAKE,IAAI9C,IAAI4C,KAAKsD,QAE9B,IAAIE,EADJtD,EAAIuD,QAAQ,gBAAgBX,GAE5B,IACEU,QAAgBxD,KAAKoD,KAAKE,OAAOC,EAClC,CAAC,MAAO9B,GAEP,MADAvB,EAAIwB,MAAM,wBAAwBoB,EAAkBrB,GAC9CA,CACP,CAID,OAHAvB,EAAIM,KACF,eAAesC,aAA2BU,EAAgBxD,KAAKqD,OAE1DG,CACR,CAWD,UAAME,CAAkBC,GACtB,MAAMzD,EAAMF,KAAKE,IAAI9C,IAAI4C,KAAK0D,MAC9B,IAAIA,EACJ,IACExD,EAAI6C,MAAM,WAAWD,UAAuB9C,KAAKqD,MAAMM,KACvDD,QAAa1D,KAAKoD,KAAKM,KAAKC,EAC7B,CAAC,MAAOlC,GAKP,MAJAvB,EAAIwB,MACF,kBAAkBoB,aAA0Ba,IAC5ClC,GAEIA,CACP,CAGD,OADAvB,EAAIM,KAAK,QAAQsC,aAA2BY,EAAa1D,KAAKqD,OACvDK,CACR,CAWD,WAAME,CAAuBC,GAC3B,MAAM3D,EAAMF,KAAKE,IAAI9C,IAAI4C,KAAK0D,MAC9B,IAAII,EAEJ,IACE5D,EAAI6C,MAAM,YAAYD,mBAAgCe,MACtDC,QAAiB9D,KAAKoD,KAAaS,IACpC,CAAC,MAAOpC,GAKP,MAJAvB,EAAIwB,MACF,mBAAmBoB,mBAAgCe,KACnDpC,GAEIA,CACP,CAKD,OAHAvB,EAAIM,KACF,wBAAwBsC,mBAAgCe,MAEnDC,CACR,CAiBD,YAAMC,CAAeR,GACnB,MAAMrD,EAAMF,KAAKE,IAAI9C,IAAI4C,KAAK+D,QAC9B,IAAIC,EACJ,IACE9D,EAAIM,KACF,YAAYsC,UAAuB9C,KAAKqD,MAAOE,EAAavD,KAAKqD,OAEnEW,QAAgBhE,KAAKoD,KAAKE,OAAOC,EAClC,CAAC,MAAO9B,GAEP,MADAvB,EAAIwB,MAAMD,GACJA,CACP,CACD,OAAOuC,CACR,CAcD,YAAM,CAAoBL,GACxB,MAAMzD,EAAMF,KAAKE,IAAI9C,IAAI4C,KAAKiE,QAC9B,IAAIP,EACJ,IACExD,EAAI6C,MACF,YAAYD,UAAuB9C,KAAKqD,MAAgBM,KAE1DD,QAAa1D,KAAKoD,KAAKM,KAAKC,EAC7B,CAAC,MAAOlC,GAKP,MAJAvB,EAAIwB,MACF,oBAAoBoB,aAA0Ba,IAC9ClC,GAEIA,CACP,CAED,OADAvB,EAAIM,KAAK,WAAWsC,aAA2BY,EAAa1D,KAAKqD,OAC1DK,CACR,GAGH,OAvIQ/B,aAAA,CAbL7F,EAAsB2G,EAAY,QAClCyB,EAAYA,aAAC,CAAEC,QAAS,gBAAgBrB,OACxCsB,UAAQ,CACPxE,YAAa,eAAekD,EAC5BuB,OAAQ,CAAEC,KAAMC,EAAaA,cAAC9B,MAE/B+B,qBAAmB,CAClB5E,YAAgBkD,EAAH,2BAEd2B,wBAAsB,CAAE7E,YAAa,+BACrC8E,iCAA+B,CAC9B9E,YAAa,8CAEDkC,UAAA,EAAA6C,EAAAA,mIAcb3B,EAAA4B,UAAA,SAAA,MAWKjD,aAAA,CATL7F,EAAsB2G,EAAY,MAAO,OACzCyB,EAAYA,aAAC,CAAEC,QAAS,cAAcrB,oBACtC+B,EAAAA,SAAS,CAAEpF,KAAM,KAAMG,YAAa,gBACpCkF,gBAAc,CACblF,YAAgBkD,EAAH,6BAEdiC,sBAAoB,CACnBnF,YAAa,MAAMkD,8CAEThB,EAAAA,QAAA,EAAAkD,QAAM,kIAgBjBhC,EAAA4B,UAAA,OAAA,MAWKjD,aAAA,CATL7F,EAAsB2G,EAAY,MAAO,iBACzCyB,EAAYA,aAAC,CAAEC,QAAS,YAAYrB,wBACpC+B,EAAAA,SAAS,CAAEpF,KAAM,SAAUG,YAAa,8BACxCkF,gBAAc,CACblF,YAAgBkD,EAAH,6BAEdiC,sBAAoB,CACnBnF,YAAa,MAAMkD,iCAERhB,EAAAA,QAAA,EAAAkD,QAAM,sIAmBlBhC,EAAA4B,UAAA,QAAA,MAiBKjD,aAAA,CAfL7F,EAAsB2G,EAAY,MAAO,OACzCyB,eAAa,CACZC,QAAS,uBAAuBrB,iCAEjCsB,UAAQ,CACPxE,YAAa,4CAA4CkD,EACzDuB,OAAQ,CAAEC,KAAMC,EAAaA,cAAC9B,MAE/BqC,gBAAc,CACblF,YAAgB6C,EAAH,mCAEdsC,sBAAoB,CACnBnF,YAAa,MAAMkD,8CAEpB2B,wBAAsB,CAAE7E,YAAa,+BACxBkC,UAAA,EAAA6C,EAAAA,+EAAazC,EAAAA,mDAa1Bc,EAAA4B,UAAA,SAAA,MAcKjD,aAAA,CAZL7F,EAAsB2G,EAAY,SAAU,OAC5CyB,EAAYA,aAAC,CAAEC,QAAS,YAAYrB,oBACpC+B,WAAS,CACRpF,KAAM,KACNG,YAAa,4BAA4BkD,wBAE1CgC,gBAAc,CACblF,YAAgBkD,EAAH,kCAEdiC,sBAAoB,CACnBnF,YAAa,MAAMkD,8CAEPhB,EAAAA,QAAA,EAAAkD,QAAM,kIAiBnBhC,EAAA4B,UAAA,SAAA,MAvKG5B,EAAsBrB,EAAAA,WAAA,CAH3BsD,EAAAA,WAAWrC,GACXsC,EAAAA,QAAQpC,GACRqC,EAAAA,eAAe1C,qCAM4BT,EAAAA,eALtCgB,GA0KCA,CACR,CAED,cAAOnC,CAAQuE,GACb,MAAMlF,EAAMF,KAAKE,IAAI9C,IAAI4C,KAAKa,SAC9BX,EAAIM,KAAK,yCAET,MACM6E,EADgBC,EAAAA,QAAQC,OAAOH,GACHI,IAAIxF,KAAKwC,kBAAkBiD,KAAKzF,OAIlE,OAFAE,EAAIM,KAAK,aAAa6E,EAAYK,sBAE3B,CACLtE,OAAQmB,EACR8C,cACAhE,UAAW,CAACW,EAAAA,aAEf,SAhNUM,EAAgBC,EAAAZ,EAAAA,WAAA,CAD5BE,EAAAA,OAAO,CAAA,IACKS,GCZAqD,EAAAA,YAANC,EAAA,MACL,yBAAaC,CACX7M,GAEA,MAAM8M,gBAAEA,GAAoB9M,EAGtBoM,SADgBrF,EAAgBQ,cAAcvH,IAC5BoM,QAElBW,EAOU,CAAChG,EAAgBc,QAAQ7H,IAMzC,OAJI8M,GACFC,EAAQC,KAAK1D,EAAiBzB,QAAQuE,IAGjC,CACLhE,OAAQwE,EACRG,QAASA,EAEZ,GA1BUJ,EAAAA,YAAWC,EAAAjE,EAAAA,WAAA,CADvBE,EAAAA,OAAO,CAAA,IACK8D,eCPP,MAAOM,UAAkBC,EAAAA,eAC7B,WAAAnL,CAAYoL,GACVhD,MAAMgD,EAAKF,EAAUxG,KACtB,QCHU2G,EAQX,WAAArL,CACEsL,EACAC,GAEA,MAAMC,EAASD,GAAeC,QAAUC,EAAAA,WAAWC,sBAC7CC,EAAUJ,GAAeI,SAAW,wBACpChF,GACJ4E,GAAe5E,OACf8E,EAAAA,WAAWD,IACX,kBAECI,WACAC,cAEHC,OAAOC,OAAO9G,KAAM,CAClBuG,SACAG,UACAhF,QACAqF,WAAW,IAAIC,MAAOC,cACtBjL,KAAMqK,EAAQa,IACdrD,OAAQwC,EAAQxC,QAEnB,ECxBG,MAAOsD,UAA2BC,MAItC,WAAArM,CAAY2L,EAAU,gBACpBvD,MAAMuD,GACN1G,KAAKP,KAAO,qBACZO,KAAKuG,OAAS,IACdvG,KAAKqH,KAAO,eACZR,OAAOS,eAAetH,KAAMmH,EAAmBvC,UAChD,EAIsCtD,EAAAiG,6BAAlC,MACL,MAAMC,EAA+BC,GACnC,MAAMC,EAAMD,EAAKE,eACXtB,EAAUqB,EAAIE,aACdC,EAAWH,EAAII,cAEfC,EAAoB,IAAI3B,EAAkBC,EAAS,CACvD3E,MAAO,eACP6E,OAAQC,EAAUA,WAACwB,aACnBtB,QAASc,EAAUd,UAGpBmB,EAAiBtB,OAAOC,EAAUA,WAACwB,cAAcC,KAAKF,EACxD,GAbsCzG,EAAAiG,6BAAA5F,aAAA,CADxCuG,EAAAA,MAAMf,IACMI,gCCdP,MAAOY,UAAsBf,MAIjC,WAAArM,CAAY2L,EAAU,YACpBvD,MAAMuD,GACN1G,KAAKP,KAAO,gBACZO,KAAKuG,OAAS,IACdvG,KAAKqH,KAAO,WAEZR,OAAOS,eAAetH,KAAMmI,EAAcvD,UAC3C,EAIiCtD,EAAA8G,wBAA7B,MACL,MAAMZ,EAA0BC,GAC9B,MAAMC,EAAMD,EAAKE,eACXE,EAAWH,EAAII,cACfzB,EAAUqB,EAAIE,aAEdG,EAAoB,IAAI3B,EAAkBC,EAAS,CACvDE,OAAQC,EAAUA,WAAC6B,SACnB3B,QAASc,EAAUd,QACnBhF,MAAO,aAGRmG,EAAiBtB,OAAOwB,EAAkBxB,QAAQ0B,KAAKF,EACzD,GAbiCzG,EAAA8G,wBAAAzG,aAAA,CADnCuG,EAAAA,MAAMC,IACMC,2BCbqB9G,EAAAgH,sBAA3B,MACL,MAAMd,EAAoBC,GACxB,MAAMC,EAAMD,EAAKE,eACXtB,EAAUqB,EAAIE,aACdC,EAAWH,EAAII,cAErB,IAEIpG,EAFA6E,EAASC,EAAUA,WAACC,sBACpBC,EAAU,wBAGd,GAAIc,aAAqBe,EAAAA,cAAe,CACtC,MAAMC,EAAWhB,EAAUM,cAC3BvB,EAASiB,EAAUiB,YACnB/B,GAAW8B,GAAK9B,SAAWc,EAAUd,UAAYA,EACjDhF,EAAQ8G,GAAK9G,OAAS8F,EAAU/H,IACjC,MAAU+H,aAAqBJ,QAC9BV,EAAUc,EAAUd,QACpBhF,EAAQ8F,EAAU/H,MAGpB,MAAMsI,EAAoB,IAAI3B,EAAkBC,EAAS,CACvDE,SACAG,UACAhF,UAEDmG,EAAiBtB,OAAOwB,EAAkBxB,QAAQ0B,KAAKF,EACzD,GA1B+BzG,EAAAgH,sBAAA3G,aAAA,CADjCuG,WACYI,yBCDmBhH,EAAAoH,oBAAzB,MACL,MAAMlB,EAA0BC,GAC9B,MAAMC,EAAMD,EAAKE,eACXE,EAAWH,EAAII,cACfzB,EAAUqB,EAAIE,aACdrB,EAASiB,EAAUiB,YAEnBV,EAAoB,IAAI3B,EAAkBC,EAAS,CACvDE,SACAG,QAASc,EAAUd,QACnBhF,MAAO8F,EAAU/H,OAGlBoI,EAAiBtB,OAAOwB,EAAkBxB,QAAQ0B,KAAKF,EACzD,GAd6BzG,EAAAoH,oBAAA/G,aAAA,CAD/BuG,EAAAA,MAAMK,EAAAA,gBACMG,uBCDP,MAAOC,UAAsBvB,MAIjC,WAAArM,CAAY2L,EAAU,sBACpBvD,MAAMuD,GACN1G,KAAKP,KAAO,gBACZO,KAAKuG,OAAS,IACdvG,KAAKqH,KAAO,YAEZR,OAAOS,eAAetH,KAAM2I,EAAc/D,UAC3C,EAIiCtD,EAAAsH,wBAA7B,MACL,MAAMpB,EAA0BC,GAC9B,MAAMC,EAAMD,EAAKE,eACXE,EAAWH,EAAII,cACfzB,EAAUqB,EAAIE,aAEdG,EAAoB,IAAI3B,EAAkBC,EAAS,CACvDE,OAAQC,EAAUA,WAACqC,UACnBnC,QAASc,EAAUd,QACnBhF,MAAO,cAGRmG,EAAiBtB,OAAOwB,EAAkBxB,QAAQ0B,KAAKF,EACzD,GAbiCzG,EAAAsH,wBAAAjH,aAAA,CADnCuG,EAAAA,MAAMS,IACMC,2BCfP,MAAOE,UAAwB1B,MAInC,WAAArM,CAAY2L,EAAU,qBACpBvD,MAAMuD,GACN1G,KAAKP,KAAO,kBACZO,KAAKuG,OAAS,IACdvG,KAAKqH,KAAO,mBAEZR,OAAOS,eAAetH,KAAM8I,EAAgBlE,UAC7C,EAImCtD,EAAAyH,0BAA/B,MACL,MAAMvB,EAA4BC,GAChC,MAAMC,EAAMD,EAAKE,eACXE,EAAWH,EAAII,cACfzB,EAAUqB,EAAIE,aAEdG,EAAoB,IAAI3B,EAAkBC,EAAS,CACvDE,OAAQC,EAAUA,WAACwC,qBACnBtC,QAASc,EAAUd,QACnBhF,MAAO,qBAGRmG,EAAiBtB,OAAOwB,EAAkBxB,QAAQ0B,KAAKF,EACzD,GAbmCzG,EAAAyH,0BAAApH,aAAA,CADrCuG,EAAAA,MAAMY,IACMC,6BCNN,MAAME,EAAuC,CAClDC,MAAO,wCACPtJ,YAAa,kDACbuJ,QAAS,QACTnN,KAAM,OACNoN,gBAAiB,GACjBC,mBAAoB,GACpBC,KAAM,CACJpQ,KAAM,OACNqQ,OAAQ,SACRC,aAAc,MACd/J,KAAM,gBACNG,YAAa,kBACb6J,GAAI,UAENC,sBAAsB,EACtBC,cAAe,iBCnBJC,EAUX,WAAA7O,CAAY/B,GACVgH,KAAKhH,QAAU,IACVA,EAEN,CAEO,SAAA6Q,GACN,IAAIC,EAAM,GAKV,OAJI9J,KAAKhH,QAAQ+Q,iBAEfD,GAAO,yDADK9J,KAAKgK,IAAIhK,KAAKhH,QAAQ+Q,sDAIlCD,EACA,0GAE4C9J,KAAKhH,QAAQ2Q,eAAiBV,EAAqBU,0BAGlG,CAED,gBAAAM,GACE,MAAMC,EAA+B,CAAA,EAKrC,OAJIlK,KAAKhH,QAAQmR,cACfD,EAAuB,cAAIlK,KAAKgK,IAAIhK,KAAKhH,QAAQmR,aAAa,IAGzD,CACLC,gBAAiBpK,KAAKhH,QAAQkQ,SAC3BgB,EACHG,UAAWrK,KAAK6J,YAChBS,eAAgB,CACdZ,qBAAsB1J,KAAKhH,QAAQ0Q,sBAErCa,gBAAiBvK,KAAKhH,QAAQgD,KACvBgE,KAAKhH,QAAQgD,KAAhB,kBACA1C,EACJkR,gBAAiBxK,KAAKhH,QAAQgD,KACvBgE,KAAKhH,QAAQgD,KAAhB,kBACA1C,EAEP,CAED,GAAA0Q,CAAIS,EAAcC,GAAe,GAC/B,MAAMC,EAAW3O,EAAK4O,KAAK5K,KAAKhH,QAAQ6R,YAAc,GAAIJ,GACpDT,EAAMc,EAAAA,aAAaH,EAAU,CAAEI,SAAU,WAC/C,OAAOL,EAAM,yBAA2BV,EAAMA,CAC/C,QClEUgB,EACX,WAAAjQ,CACmBkQ,EACAjS,GADAgH,KAAGiL,IAAHA,EACAjL,KAAOhH,QAAPA,CACf,CAEI,cAAAkS,GACN,MAAMtL,EAAcI,KAAKhH,QAAQgD,KAC7BgE,KAAKhH,QAAQ4G,YACb,GACA,oBAAoBI,KAAKhH,QAAQgD,2CACjC,YAAYgE,KAAKhH,QAAQgD,wCACzBgE,KAAKhH,QAAQ4G,YAEXuL,GAAS,IAAIC,mBAChBC,SAASrL,KAAKhH,QAAQkQ,OACtBoC,eAAe1L,GACf2L,WAAWvL,KAAKhH,QAAQmQ,SAAW,SACnCqC,cAAcxL,KAAKhH,QAAQsQ,MAAQL,EAAqBK,MACxDmC,QAEH,OAAOC,EAAaA,cAACR,eAAelL,KAAKiL,IAAKE,EAAQ,CACpDQ,YAAa3L,KAAKhH,QAAQ2S,aAAe,IAE5C,CAEM,YAAAC,GACL,MAAMC,EAAW7L,KAAKkL,iBAChBY,EAAY,IAAIlC,EAAgB,CACpCV,MAAOlJ,KAAKhH,QAAQkQ,MACpBlN,KAAMgE,KAAKhH,QAAQgD,MAAQiN,EAAqBjN,KAChD0N,qBAAsB1J,KAAKhH,QAAQ0Q,uBAAwB,EAC3DmB,WAAY7K,KAAKhH,QAAQ6R,WACzBV,YAAanK,KAAKhH,QAAQoQ,gBAC1BW,eAAgB/J,KAAKhH,QAAQqQ,mBAC7BM,cAAe3J,KAAKhH,QAAQ2Q,gBAE9B+B,gBAAcK,MACZ/L,KAAKhH,QAAQgD,MAAQiN,EAAqBjN,KAC1CgE,KAAKiL,IACLY,EACA,IACKC,EAAU7B,oBAGlB,ECVU,MAAA+B,EAAU,cACVC,EAAe,mBAE5BxQ,EAAAA,SAASyQ,gBAAgBD,EAAcD,gLCoE7B,iBAAWG,GAKjB,OAJKnM,KAAKG,UAERH,KAAKG,QAAU,IAAIiM,EAAMA,OAAC,kBAErBpM,KAAKG,OACb,CAaD,iBAAOkM,CAAWpB,GAEhB,OADAjL,KAAKiL,IAAMA,EACJjL,IACR,CAcD,mBAAOsM,CAAaC,GAGlB,OAFAvM,KAAKG,QAAUoM,GAAgB,IAAIH,EAAMA,OAAC,iBAC1CpM,KAAKiL,IAAIuB,UAAUxM,KAAKG,SACjBH,IACR,CAgBD,iBAAOyM,CACLC,EAA0B,GAC1BC,EAAyB,CAAC,MAAO,OAAQ,MAAO,WAEhD,MAAMC,EACQ,MAAZF,EAAkB,IAAMA,EAAQlH,IAAKqH,GAAMA,EAAEC,OAAOC,eAEhDC,EAA2B,CAC/BC,OAAQ,CAACA,EAAQC,IAEVD,EAGgB,MAAnBL,GACChT,MAAMT,QAAQyT,IACbA,EAAerS,SAAS0S,EAAOF,eAE1BG,EAAS,MAAM,QAGxBA,EAAS,IAAIjH,EAAU,UAAUgH,kBAVbC,EAAS,MAAM,GAYrCC,aAAa,EACbC,QAAST,EAAa/B,KAAK,MAI7B,OADA5K,KAAKiL,IAAIwB,WAAWO,GACbhN,IACR,CAcD,gBAAOqN,CAAUrU,GACf,IAEE,MAAMsU,EAASC,QAAQ,UACvBvN,KAAKiL,IAAIuC,IAAIF,EAAOtU,IACpBgH,KAAKmM,OAAOjM,IAAI,0CAEjB,CAAC,MAAOuB,GACPzB,KAAKmM,OAAOsB,KAAK,6CAClB,CAED,OAAOzN,IACR,CAcD,mBAAO4L,CAAa5S,GAalB,OAZgB,IAAIgS,EAAehL,KAAKiL,IAAK,CAC3C/B,MAAOlQ,EAAQkQ,MACftJ,YAAa5G,EAAQ4G,YACrBuJ,QAASnQ,EAAQmQ,QACjBnN,KAAMhD,EAAQgD,MAAQ,MACtB0N,qBAAsB1Q,EAAQ0Q,uBAAwB,EACtDmB,WAAY7R,EAAQ6R,WACpBzB,gBAAiBpQ,EAAQmR,YACzBd,mBAAoBrQ,EAAQ+Q,eAC5BJ,cAAe3Q,EAAQ2Q,gBAEjBiC,eACD5L,IACR,CAcD,qBAAO0N,IAAkBC,GAEvB,OADIA,EAAMjI,OAAS,GAAG1F,KAAKiL,IAAIyC,kBAAkBC,GAC1C3N,IACR,CAaD,uBAAO4N,IAAoBC,GACzB,MAAMC,EAAiB,CACrB,IAAIpF,sBACJ,IAAIK,4BACJ,IAAIH,0BACJ,IAAIR,0BACJ,IAAIb,+BACJ,IAAIe,yBAMN,OAHAtI,KAAKiL,IAAI2C,oBACHC,EAAQnI,OAAS,EAAImI,EAAUC,GAE9B9N,IACR,CAcD,4BAAO+N,IAAyBC,GAG9B,OAFIA,EAAatI,OAAS,GACxB1F,KAAKiL,IAAI8C,yBAAyBC,GAC7BhO,IACR,CAgBD,kBAAaiO,CACXC,EAAeC,OAAOC,QAAQC,IAAIC,OAAS,IAC3C7G,OAA2BnO,EAC3B4G,GAAe,GAEfF,KAAKiL,IAAIsD,OAAOL,EAAMzG,GAAa+G,KAAKtN,UACtC,GAAIhB,EAAK,CACP,MAAMgH,QAAYlH,KAAKiL,IAAIwD,SAC3BzO,KAAKmM,OAAOjM,IAAI,2CAAiCgH,EAClD,GAEJ,+HC9U0BjF,IAC5B,MAAMyM,EAAIxM,EAAAA,MAAMxG,IAAIuG,GACpB,IAAKyM,EACJ,MAAM,IAAIvM,EAAAA,cAAc,iCAAiCF,GAE1D,OADaG,EAAAA,WAAWC,SAASqM,EAElC"}
|
package/dist/for-nest.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{Decoration as t,DecorationKeys as e,Metadata as s}from"@decaf-ts/decoration";import{InjectablesKeys as o}from"@decaf-ts/injectable-decorators";import{Injectable as r,Scope as i,Inject as a,Get as n,Post as c,Put as p,Patch as l,Delete as d,Global as h,Module as u,Body as g,Param as m,Controller as f,HttpStatus as y,Catch as w,HttpException as E,Logger as R}from"@nestjs/common";import{ValidationKeys as A,Model as b}from"@decaf-ts/decorator-validation";import{getTypeIsArrayTuple as P}from"@nestjs/swagger/dist/decorators/helpers";import{getEnumValues as T,getEnumType as O}from"@nestjs/swagger/dist/utils/enum.utils";import{DECORATORS as I}from"@nestjs/swagger/dist/constants";import"@nestjs/common/constants";import"@nestjs/common/utils/shared.utils";import{pickBy as v,negate as $,isUndefined as S}from"lodash";import{METADATA_FACTORY_NAME as C}from"@nestjs/swagger/dist/plugin/plugin-constants";import{PersistenceKeys as N,Repository as _,Adapter as F,ForbiddenError as D}from"@decaf-ts/core";import{ApiExcludeEndpoint as L,ApiOperation as j,ApiBody as U,getSchemaPath as x,ApiCreatedResponse as M,ApiBadRequestResponse as H,ApiUnprocessableEntityResponse as q,ApiParam as G,ApiOkResponse as k,ApiNotFoundResponse as z,ApiTags as B,ApiExtraModels as V,DocumentBuilder as J,SwaggerModule as Q}from"@nestjs/swagger";import{apply as Y}from"@decaf-ts/reflection";import{OperationKeys as Z,InternalError as X}from"@decaf-ts/db-decorators";import{__decorate as K,__param as W,__metadata as tt}from"tslib";import{ModuleRef as et}from"@nestjs/core";import{Logging as st,toKebabCase as ot,LoggedClass as rt}from"@decaf-ts/logging";import{readFileSync as it}from"fs";import*as at from"path";function nt(t={}){return((t={},e=!0)=>{const[s,o]=P(t.type,t.isArray);if((r=t={...t,type:s,isArray:o}).isArray&&"enum"in r&&void 0!==r.enum){t.type="array";const e=T(t.enum);t.items={type:O(e),enum:e},delete t.enum}else if("enum"in t&&void 0!==t.enum){const e=T(t.enum);t.enum=e,t.type=O(e)}var r;return Array.isArray(t.type)&&(t.type="array",t.items={type:"array",items:{type:t.type[0]}}),((t,e,s=!0)=>(o,r)=>{const i=Reflect.getMetadata(I.API_MODEL_PROPERTIES_ARRAY,o)||[],a=":"+r;i.includes(a)||Reflect.defineMetadata(I.API_MODEL_PROPERTIES_ARRAY,[...i,":"+r],o);const n=Reflect.getMetadata(t,o,r);if(n){const i=v(e,$(S)),a=s?{...n,...i}:{...i,...n};Reflect.defineMetadata(t,a,o,r)}else{const s=o?.constructor?.[C]?.()[r]?.type??Reflect.getMetadata("design:type",o,r);Reflect.defineMetadata(t,{type:s,...v(e,$(S))},o,r)}})(I.API_MODEL_PROPERTIES,t,e)})(t)}function ct(t,e,o){const r={GET:[Z.READ,n],POST:[Z.CREATE,c],PUT:[Z.UPDATE,p],PATCH:[Z.UPDATE,l],DELETE:[Z.DELETE,d]},[i,a]=r[e];return((t,e)=>{const{handler:o,args:r}=s.get(t,Z.REFLECT+Z.BLOCK)||{};return!!o&&(o(...r,e)??!1)})(t,i)?Y(L()):Y(a(o))}t.for(o.INJECTABLE).extend({decorator:(t,e)=>r({scope:e.singleton?i.DEFAULT:i.REQUEST,durable:!e.singleton||void 0})}).apply(),t.for(o.INJECT).extend({decorator:(t,e)=>(e,s,o)=>a(t||e)(e,s,o)}).apply(),t.for(A.REQUIRED).extend(nt({required:!0})).apply(),t.for(A.MAX).extend({decorator:t=>nt({maximum:t})}).apply(),t.for(A.MIN).extend({decorator:t=>nt({minimum:t})}).apply(),t.for(A.MAX_LENGTH).extend({decorator:t=>nt({maxLength:t})}).apply(),t.for(A.MIN_LENGTH).extend({decorator:t=>nt({minLength:t})}).apply(),t.for(A.LIST).extend({decorator:t=>nt({type:[Array.isArray(t)?t[0]:t]})}).apply(),t.for(A.PATTERN).extend({decorator:t=>nt({pattern:"string"==typeof t?t:t.source})}).apply(),t.for(N.COLUMN).extend({decorator:t=>nt({name:t})}).apply(),t.for(e.DESCRIPTION).extend({decorator:t=>nt({description:t})}).apply();const pt="DecafModuleOptions",lt="DecafAdapter";var dt;let ht=class{static{dt=this}static{this._adapterInstance=null}static get log(){return this._logger||(this._logger=st.for(dt)),this._logger}constructor(t,e){this.options=t,this.moduleRef=e}static async createAdapter(t){if(!this._adapterInstance){const e=this.log.for(this.createAdapter);e.info("Creating adapter instance..."),this._adapterInstance=new t.adapter(t.conf,t.alias),e.info("Adapter instance created successfully!")}return this._adapterInstance}static getAdapterInstance(){return this._adapterInstance}static forRoot(t){const e={provide:pt,useValue:t},s={useFactory:async t=>dt.createAdapter(t),provide:lt,durable:!0,scope:i.DEFAULT,inject:[pt]};return{module:dt,providers:[s,e],exports:[s]}}async onApplicationShutdown(){const t=dt.log.for(this.onApplicationShutdown),e=this.moduleRef.get(lt);try{e&&(t.info("Shutting down"),await e.shutdown(),dt._adapterInstance=null)}catch(e){t.error("Failed to shutdown application",e)}}};ht=dt=K([h(),u({}),W(0,a(pt)),tt("design:paramtypes",[Object,et])],ht);let ut=class{for(t){if(!(t="string"==typeof t?b.get(t):t))throw new X("Failed to find repository for "+t);return _.forModel(t)}};var gt;ut=K([r()],ut);let mt=class{static{gt=this}static get log(){return this._logger||(this._logger=st.for(gt)),this._logger}static toModelController(t){const e=this.log.for(this.toModelController),s=_.table(t),o=ot(s),r=t.name;e.debug("Creating controller for model: "+r);let i=class extends rt{constructor(s){super(),this.repoFactory=s,e.info(`Registering dynamic controller for model: ${r} route: /${o}`);try{this.repo=this.repoFactory.for(t.name),this.pk=this.repo.pk}catch(e){this.log.error(`Failed to initialize repository for model "${t.name}".`,e)}}async create(t){const e=this.log.for(this.create);let s;e.verbose("creating new "+r);try{s=await this.repo.create(t)}catch(t){throw e.error("Failed to create new "+r,t),t}return e.info(`created new ${r} with id ${s[this.pk]}`),s}async read(t){const e=this.log.for(this.read);let s;try{e.debug(`reading ${r} with ${this.pk} ${t}`),s=await this.repo.read(t)}catch(s){throw e.error(`Failed to read ${r} with id ${t}`,s),s}return e.info(`read ${r} with id ${s[this.pk]}`),s}async query(t){const e=this.log.for(this.read);let s;try{e.debug(`Querying ${r} using method "${t}"`),s=await this.repo[t]()}catch(s){throw e.error(`Failed to query ${r} using method "${t}"`,s),s}return e.info(`Successfully queried ${r} using method "${t}"`),s}async update(t){const e=this.log.for(this.update);let s;try{e.info(`updating ${r} with ${this.pk} ${t[this.pk]}`),s=await this.repo.create(t)}catch(t){throw e.error(t),t}return s}async delete(t){const e=this.log.for(this.delete);let s;try{e.debug(`deleting ${r} with ${this.pk} ${t}`),s=await this.repo.read(t)}catch(s){throw e.error(`Failed to delete ${r} with id ${t}`,s),s}return e.info(`deleted ${r} with id ${s[this.pk]}`),s}};return K([ct(t,"POST"),j({summary:`Create a new ${r}.`}),U({description:"Payload for "+r,schema:{$ref:x(t)}}),M({description:r+" created successfully."}),H({description:"Payload validation failed."}),q({description:"Repository rejected the provided payload."}),W(0,g()),tt("design:type",Function),tt("design:paramtypes",[Object]),tt("design:returntype",Promise)],i.prototype,"create",null),K([ct(t,"GET",":id"),j({summary:`Retrieve a ${r} record by id.`}),G({name:"id",description:"Primary key"}),k({description:r+" retrieved successfully."}),z({description:`No ${r} record matches the provided identifier.`}),W(0,m("id")),tt("design:type",Function),tt("design:paramtypes",[String]),tt("design:returntype",Promise)],i.prototype,"read",null),K([ct(t,"GET","query/:method"),j({summary:`Retrieve ${r} records by query.`}),G({name:"method",description:"Query method to be called"}),k({description:r+" retrieved successfully."}),z({description:`No ${r} records matches the query.`}),W(0,m("method")),tt("design:type",Function),tt("design:paramtypes",[String]),tt("design:returntype",Promise)],i.prototype,"query",null),K([ct(t,"PUT",":id"),j({summary:`Replace an existing ${r} record with a new payload.`}),U({description:"Payload for replace a existing record of "+r,schema:{$ref:x(t)}}),k({description:t+" record replaced successfully."}),z({description:`No ${r} record matches the provided identifier.`}),H({description:"Payload validation failed."}),W(0,g()),tt("design:type",Function),tt("design:paramtypes",[b]),tt("design:returntype",Promise)],i.prototype,"update",null),K([ct(t,"DELETE",":id"),j({summary:`Delete a ${r} record by id.`}),G({name:"id",description:`Primary key value of the ${r} record to delete.`}),k({description:r+" record deleted successfully."}),z({description:`No ${r} record matches the provided identifier.`}),W(0,m("id")),tt("design:type",Function),tt("design:paramtypes",[String]),tt("design:returntype",Promise)],i.prototype,"delete",null),i=K([f(o),B(r),V(t),tt("design:paramtypes",[ut])],i),i}static forRoot(t){const e=this.log.for(this.forRoot);e.info("Generating controllers for flavour...");const s=F.models(t).map(this.toModelController.bind(this));return e.info(`Generated ${s.length} controllers`),{module:gt,controllers:s,providers:[ut]}}};var ft;mt=gt=K([u({})],mt);let yt=ft=class{static async forRootAsync(t){const{autoControllers:e}=t,s=(await ht.createAdapter(t)).flavour,o=[ht.forRoot(t)];return e&&o.push(mt.forRoot(s)),{module:ft,imports:o}}};function wt(t){const e=b.get(t);if(!e)throw new X("Failed to find repository for "+t);return _.forModel(e)}yt=ft=K([u({})],yt);class Et extends D{constructor(t){super(t,Et.name)}}class Rt{constructor(t,e){const s=e?.status??y.INTERNAL_SERVER_ERROR,o=e?.message??"Internal Server Error",r=(e?.error??y[s]??"HTTP_EXCEPTION").toString().toUpperCase();Object.assign(this,{status:s,message:o,error:r,timestamp:(new Date).toISOString(),path:t.url,method:t.method})}}class At extends Error{constructor(t="Unauthorized"){super(t),this.name="AuthorizationError",this.status=401,this.code="UNAUTHORIZED",Object.setPrototypeOf(this,At.prototype)}}let bt=class{catch(t,e){const s=e.switchToHttp(),o=s.getRequest(),r=s.getResponse(),i=new Rt(o,{error:"UNAUTHORIZED",status:y.UNAUTHORIZED,message:t.message});r.status(y.UNAUTHORIZED).json(i)}};bt=K([w(At)],bt);class Pt extends Error{constructor(t="Conflict"){super(t),this.name="ConflictError",this.status=409,this.code="CONFLICT",Object.setPrototypeOf(this,Pt.prototype)}}let Tt=class{catch(t,e){const s=e.switchToHttp(),o=s.getResponse(),r=s.getRequest(),i=new Rt(r,{status:y.CONFLICT,message:t.message,error:"CONFLICT"});o.status(i.status).json(i)}};Tt=K([w(Pt)],Tt);let Ot=class{catch(t,e){const s=e.switchToHttp(),o=s.getRequest(),r=s.getResponse();let i,a=y.INTERNAL_SERVER_ERROR,n="Internal Server Error";if(t instanceof E){const e=t.getResponse();a=t.getStatus(),n=(e?.message||t.message)??n,i=e?.error??t.name}else t instanceof Error&&(n=t.message,i=t.name);const c=new Rt(o,{status:a,message:n,error:i});r.status(c.status).json(c)}};Ot=K([w()],Ot);let It=class{catch(t,e){const s=e.switchToHttp(),o=s.getResponse(),r=s.getRequest(),i=t.getStatus(),a=new Rt(r,{status:i,message:t.message,error:t.name});o.status(a.status).json(a)}};It=K([w(E)],It);class vt extends Error{constructor(t="Resource not found"){super(t),this.name="NotFoundError",this.status=404,this.code="NOT_FOUND",Object.setPrototypeOf(this,vt.prototype)}}let $t=class{catch(t,e){const s=e.switchToHttp(),o=s.getResponse(),r=s.getRequest(),i=new Rt(r,{status:y.NOT_FOUND,message:t.message,error:"NOT_FOUND"});o.status(i.status).json(i)}};$t=K([w(vt)],$t);class St extends Error{constructor(t="Validation failed"){super(t),this.name="ValidationError",this.status=422,this.code="VALIDATION_ERROR",Object.setPrototypeOf(this,St.prototype)}}let Ct=class{catch(t,e){const s=e.switchToHttp(),o=s.getResponse(),r=s.getRequest(),i=new Rt(r,{status:y.UNPROCESSABLE_ENTITY,message:t.message,error:"VALIDATION_ERROR"});o.status(i.status).json(i)}};Ct=K([w(St)],Ct);const Nt={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(t){this.options={...t}}customCSS(){let t="";return this.options.topbarIconPath&&(t+=`.topbar-wrapper { content: url('data:image/png;base64,${this.b64(this.options.topbarIconPath)}'); width: 200px; height: auto; }\n`),t+`\n .topbar-wrapper svg { visibility: hidden; }\n .swagger-ui .topbar { background-color: ${this.options.topbarBgColor||Nt.topbarBgColor}; }\n `}getCustomOptions(){const t={};return this.options.faviconPath&&(t.customfavIcon=this.b64(this.options.faviconPath,!0)),{customSiteTitle:this.options.title,...t,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(t,e=!1){const s=at.join(this.options.assetsPath||"",t),o=it(s,{encoding:"base64"});return e?"data:image/png;base64,"+o:o}}class Ft{constructor(t,e){this.app=t,this.options=e}createDocument(){const t=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,e=(new J).setTitle(this.options.title).setDescription(t).setVersion(this.options.version||"0.0.1").addBearerAuth(this.options.auth||Nt.auth).build();return Q.createDocument(this.app,e,{extraModels:this.options.extraModels||[]})}setupSwagger(){const t=this.createDocument(),e=new _t({title:this.options.title,path:this.options.path||Nt.path,persistAuthorization:this.options.persistAuthorization??!0,assetsPath:this.options.assetsPath,faviconPath:this.options.faviconFilePath,topbarIconPath:this.options.topbarIconFilePath,topbarBgColor:this.options.topbarBgColor});Q.setup(this.options.path||Nt.path,this.app,t,{...e.getCustomOptions()})}}class Dt{static get logger(){return this._logger||(this._logger=new R("NestBootstrap")),this._logger}static initialize(t){return this.app=t,this}static enableLogger(t){return this._logger=t||new R("NestBootstrap"),this.app.useLogger(this._logger),this}static enableCors(t=[],e=["GET","POST","PUT","DELETE"]){const s="*"===t?"*":t.map(t=>t.trim().toLowerCase()),o={origin:(t,e)=>t?"*"===s||Array.isArray(s)&&s.includes(t.toLowerCase())?e(null,!0):void e(new Et(`Origin ${t} not allowed`)):e(null,!0),credentials:!0,methods:e.join(",")};return this.app.enableCors(o),this}static useHelmet(t){try{const e=require("helmet");this.app.use(e(t)),this.logger.log("Helmet middleware enabled successfully.")}catch(t){this.logger.warn("Helmet not installed. Skipping middleware.")}return this}static setupSwagger(t){return new Ft(this.app,{title:t.title,description:t.description,version:t.version,path:t.path||"api",persistAuthorization:t.persistAuthorization??!0,assetsPath:t.assetsPath,faviconFilePath:t.faviconPath,topbarIconFilePath:t.topbarIconPath,topbarBgColor:t.topbarBgColor}).setupSwagger(),this}static useGlobalPipes(...t){return t.length>0&&this.app.useGlobalPipes(...t),this}static useGlobalFilters(...t){const e=[new It,new Ct,new $t,new Tt,new bt,new Ot];return this.app.useGlobalFilters(...t.length>0?t:e),this}static useGlobalInterceptors(...t){return t.length>0&&this.app.useGlobalInterceptors(...t),this}static async start(t=Number(process.env.PORT)||3e3,e=void 0,s=!0){this.app.listen(t,e).then(async()=>{if(s){const t=await this.app.getUrl();this.logger.log("\ud83d\ude80 Application is running at: "+t)}})}}const Lt="##VERSION##",jt="##PACKAGE_NAME##";s.registerLibrary(jt,Lt);export{ct as ApiOperationFromModel,At as AuthorizationError,bt as AuthorizationExceptionFilter,Pt as ConflictError,Tt as ConflictExceptionFilter,Et as CorsError,lt as DECAF_ADAPTER_ID,pt as DECAF_MODULE_OPTIONS,yt as DecafModule,Ot as GlobalExceptionFilter,It as HttpExceptionFilter,Rt as HttpResponseError,Dt as NestBootstraper,vt as NotFoundError,$t as NotFoundExceptionFilter,jt as PACKAGE_NAME,ut as RepoFactory,Ft as SwaggerBuilder,Lt as VERSION,St as ValidationError,Ct as ValidationExceptionFilter,wt as repoForModel};
|
|
1
|
+
import{Decoration as t,DecorationKeys as e,Metadata as s}from"@decaf-ts/decoration";import{InjectablesKeys as o}from"@decaf-ts/injectable-decorators";import{Injectable as r,Scope as i,Inject as a,Get as n,Post as c,Put as p,Patch as l,Delete as d,Global as h,Module as u,Body as g,Param as m,Controller as f,HttpStatus as y,Catch as w,HttpException as E,Logger as R}from"@nestjs/common";import{ValidationKeys as A,Model as b}from"@decaf-ts/decorator-validation";import{getTypeIsArrayTuple as P}from"@nestjs/swagger/dist/decorators/helpers";import{getEnumValues as T,getEnumType as O}from"@nestjs/swagger/dist/utils/enum.utils";import{DECORATORS as I}from"@nestjs/swagger/dist/constants";import"@nestjs/common/constants";import"@nestjs/common/utils/shared.utils";import{pickBy as v,negate as $,isUndefined as S}from"lodash";import{METADATA_FACTORY_NAME as C}from"@nestjs/swagger/dist/plugin/plugin-constants";import{PersistenceKeys as N,Repository as _,Adapter as F,ForbiddenError as D}from"@decaf-ts/core";import{ApiExcludeEndpoint as L,ApiOperation as j,ApiBody as U,getSchemaPath as x,ApiCreatedResponse as M,ApiBadRequestResponse as H,ApiUnprocessableEntityResponse as q,ApiParam as G,ApiOkResponse as k,ApiNotFoundResponse as z,ApiTags as B,ApiExtraModels as V,DocumentBuilder as J,SwaggerModule as Q}from"@nestjs/swagger";import{apply as Y}from"@decaf-ts/reflection";import{OperationKeys as Z,InternalError as X}from"@decaf-ts/db-decorators";import{__decorate as K,__param as W,__metadata as tt}from"tslib";import{ModuleRef as et}from"@nestjs/core";import{Logging as st,toKebabCase as ot,LoggedClass as rt}from"@decaf-ts/logging";import{readFileSync as it}from"fs";import*as at from"path";function nt(t={}){return((t={},e=!0)=>{const[s,o]=P(t.type,t.isArray);if((r=t={...t,type:s,isArray:o}).isArray&&"enum"in r&&void 0!==r.enum){t.type="array";const e=T(t.enum);t.items={type:O(e),enum:e},delete t.enum}else if("enum"in t&&void 0!==t.enum){const e=T(t.enum);t.enum=e,t.type=O(e)}var r;return Array.isArray(t.type)&&(t.type="array",t.items={type:"array",items:{type:t.type[0]}}),((t,e,s=!0)=>(o,r)=>{const i=Reflect.getMetadata(I.API_MODEL_PROPERTIES_ARRAY,o)||[],a=":"+r;i.includes(a)||Reflect.defineMetadata(I.API_MODEL_PROPERTIES_ARRAY,[...i,":"+r],o);const n=Reflect.getMetadata(t,o,r);if(n){const i=v(e,$(S)),a=s?{...n,...i}:{...i,...n};Reflect.defineMetadata(t,a,o,r)}else{const s=o?.constructor?.[C]?.()[r]?.type??Reflect.getMetadata("design:type",o,r);Reflect.defineMetadata(t,{type:s,...v(e,$(S))},o,r)}})(I.API_MODEL_PROPERTIES,t,e)})(t)}function ct(t,e){const{handler:o,args:r}=s.get(t,Z.REFLECT+Z.BLOCK)||{};return!!o&&(o(...r,e)??!1)}function pt(t,e,s){const o={GET:[Z.READ,n],POST:[Z.CREATE,c],PUT:[Z.UPDATE,p],PATCH:[Z.UPDATE,l],DELETE:[Z.DELETE,d]},[r,i]=o[e];return ct(t,r)?Y(L()):Y(i(s))}t.for(o.INJECTABLE).extend({decorator:(t,e)=>r({scope:e.singleton?i.DEFAULT:i.REQUEST,durable:!e.singleton||void 0})}).apply(),t.for(o.INJECT).extend({decorator:(t,e)=>(e,s,o)=>a(t||e)(e,s,o)}).apply(),t.for(A.REQUIRED).extend(nt({required:!0})).apply(),t.for(A.MAX).extend({decorator:t=>nt({maximum:t})}).apply(),t.for(A.MIN).extend({decorator:t=>nt({minimum:t})}).apply(),t.for(A.MAX_LENGTH).extend({decorator:t=>nt({maxLength:t})}).apply(),t.for(A.MIN_LENGTH).extend({decorator:t=>nt({minLength:t})}).apply(),t.for(A.LIST).extend({decorator:t=>nt({type:[Array.isArray(t)?t[0]:t]})}).apply(),t.for(A.PATTERN).extend({decorator:t=>nt({pattern:"string"==typeof t?t:t.source})}).apply(),t.for(N.COLUMN).extend({decorator:t=>nt({name:t})}).apply(),t.for(e.DESCRIPTION).extend({decorator:t=>nt({description:t})}).apply();const lt="DecafModuleOptions",dt="DecafAdapter";var ht;let ut=class{static{ht=this}static{this._adapterInstance=null}static get log(){return this._logger||(this._logger=st.for(ht)),this._logger}constructor(t,e){this.options=t,this.moduleRef=e}static async createAdapter(t){if(!this._adapterInstance){const e=this.log.for(this.createAdapter);e.info("Creating adapter instance..."),this._adapterInstance=new t.adapter(t.conf,t.alias),e.info("Adapter instance created successfully!")}return this._adapterInstance}static getAdapterInstance(){return this._adapterInstance}static forRoot(t){const e={provide:lt,useValue:t},s={useFactory:async t=>ht.createAdapter(t),provide:dt,durable:!0,scope:i.DEFAULT,inject:[lt]};return{module:ht,providers:[s,e],exports:[s]}}async onApplicationShutdown(){const t=ht.log.for(this.onApplicationShutdown),e=this.moduleRef.get(dt);try{e&&(t.info("Shutting down"),await e.shutdown(),ht._adapterInstance=null)}catch(e){t.error("Failed to shutdown application",e)}}};ut=ht=K([h(),u({}),W(0,a(lt)),tt("design:paramtypes",[Object,et])],ut);let gt=class{for(t){if(!(t="string"==typeof t?b.get(t):t))throw new X("Failed to find repository for "+t);return _.forModel(t)}};var mt;gt=K([r()],gt);let ft=class{static{mt=this}static get log(){return this._logger||(this._logger=st.for(mt)),this._logger}static toModelController(t){const e=this.log.for(this.toModelController),s=_.table(t),o=ot(s),r=t.name;e.debug("Creating controller for model: "+r);let i=class extends rt{constructor(s){super(),this.repoFactory=s,e.info(`Registering dynamic controller for model: ${r} route: /${o}`);try{this.repo=this.repoFactory.for(t.name),this.pk=this.repo.pk}catch(e){this.log.error(`Failed to initialize repository for model "${t.name}".`,e)}}async create(t){const e=this.log.for(this.create);let s;e.verbose("creating new "+r);try{s=await this.repo.create(t)}catch(t){throw e.error("Failed to create new "+r,t),t}return e.info(`created new ${r} with id ${s[this.pk]}`),s}async read(t){const e=this.log.for(this.read);let s;try{e.debug(`reading ${r} with ${this.pk} ${t}`),s=await this.repo.read(t)}catch(s){throw e.error(`Failed to read ${r} with id ${t}`,s),s}return e.info(`read ${r} with id ${s[this.pk]}`),s}async query(t){const e=this.log.for(this.read);let s;try{e.debug(`Querying ${r} using method "${t}"`),s=await this.repo[t]()}catch(s){throw e.error(`Failed to query ${r} using method "${t}"`,s),s}return e.info(`Successfully queried ${r} using method "${t}"`),s}async update(t){const e=this.log.for(this.update);let s;try{e.info(`updating ${r} with ${this.pk} ${t[this.pk]}`),s=await this.repo.create(t)}catch(t){throw e.error(t),t}return s}async delete(t){const e=this.log.for(this.delete);let s;try{e.debug(`deleting ${r} with ${this.pk} ${t}`),s=await this.repo.read(t)}catch(s){throw e.error(`Failed to delete ${r} with id ${t}`,s),s}return e.info(`deleted ${r} with id ${s[this.pk]}`),s}};return K([pt(t,"POST"),j({summary:`Create a new ${r}.`}),U({description:"Payload for "+r,schema:{$ref:x(t)}}),M({description:r+" created successfully."}),H({description:"Payload validation failed."}),q({description:"Repository rejected the provided payload."}),W(0,g()),tt("design:type",Function),tt("design:paramtypes",[Object]),tt("design:returntype",Promise)],i.prototype,"create",null),K([pt(t,"GET",":id"),j({summary:`Retrieve a ${r} record by id.`}),G({name:"id",description:"Primary key"}),k({description:r+" retrieved successfully."}),z({description:`No ${r} record matches the provided identifier.`}),W(0,m("id")),tt("design:type",Function),tt("design:paramtypes",[String]),tt("design:returntype",Promise)],i.prototype,"read",null),K([pt(t,"GET","query/:method"),j({summary:`Retrieve ${r} records by query.`}),G({name:"method",description:"Query method to be called"}),k({description:r+" retrieved successfully."}),z({description:`No ${r} records matches the query.`}),W(0,m("method")),tt("design:type",Function),tt("design:paramtypes",[String]),tt("design:returntype",Promise)],i.prototype,"query",null),K([pt(t,"PUT",":id"),j({summary:`Replace an existing ${r} record with a new payload.`}),U({description:"Payload for replace a existing record of "+r,schema:{$ref:x(t)}}),k({description:t+" record replaced successfully."}),z({description:`No ${r} record matches the provided identifier.`}),H({description:"Payload validation failed."}),W(0,g()),tt("design:type",Function),tt("design:paramtypes",[b]),tt("design:returntype",Promise)],i.prototype,"update",null),K([pt(t,"DELETE",":id"),j({summary:`Delete a ${r} record by id.`}),G({name:"id",description:`Primary key value of the ${r} record to delete.`}),k({description:r+" record deleted successfully."}),z({description:`No ${r} record matches the provided identifier.`}),W(0,m("id")),tt("design:type",Function),tt("design:paramtypes",[String]),tt("design:returntype",Promise)],i.prototype,"delete",null),i=K([f(o),B(r),V(t),tt("design:paramtypes",[gt])],i),i}static forRoot(t){const e=this.log.for(this.forRoot);e.info("Generating controllers for flavour...");const s=F.models(t).map(this.toModelController.bind(this));return e.info(`Generated ${s.length} controllers`),{module:mt,controllers:s,providers:[gt]}}};var yt;ft=mt=K([u({})],ft);let wt=yt=class{static async forRootAsync(t){const{autoControllers:e}=t,s=(await ut.createAdapter(t)).flavour,o=[ut.forRoot(t)];return e&&o.push(ft.forRoot(s)),{module:yt,imports:o}}};function Et(t){const e=b.get(t);if(!e)throw new X("Failed to find repository for "+t);return _.forModel(e)}wt=yt=K([u({})],wt);class Rt extends D{constructor(t){super(t,Rt.name)}}class At{constructor(t,e){const s=e?.status??y.INTERNAL_SERVER_ERROR,o=e?.message??"Internal Server Error",r=(e?.error??y[s]??"HTTP_EXCEPTION").toString().toUpperCase();Object.assign(this,{status:s,message:o,error:r,timestamp:(new Date).toISOString(),path:t.url,method:t.method})}}class bt extends Error{constructor(t="Unauthorized"){super(t),this.name="AuthorizationError",this.status=401,this.code="UNAUTHORIZED",Object.setPrototypeOf(this,bt.prototype)}}let Pt=class{catch(t,e){const s=e.switchToHttp(),o=s.getRequest(),r=s.getResponse(),i=new At(o,{error:"UNAUTHORIZED",status:y.UNAUTHORIZED,message:t.message});r.status(y.UNAUTHORIZED).json(i)}};Pt=K([w(bt)],Pt);class Tt extends Error{constructor(t="Conflict"){super(t),this.name="ConflictError",this.status=409,this.code="CONFLICT",Object.setPrototypeOf(this,Tt.prototype)}}let Ot=class{catch(t,e){const s=e.switchToHttp(),o=s.getResponse(),r=s.getRequest(),i=new At(r,{status:y.CONFLICT,message:t.message,error:"CONFLICT"});o.status(i.status).json(i)}};Ot=K([w(Tt)],Ot);let It=class{catch(t,e){const s=e.switchToHttp(),o=s.getRequest(),r=s.getResponse();let i,a=y.INTERNAL_SERVER_ERROR,n="Internal Server Error";if(t instanceof E){const e=t.getResponse();a=t.getStatus(),n=(e?.message||t.message)??n,i=e?.error??t.name}else t instanceof Error&&(n=t.message,i=t.name);const c=new At(o,{status:a,message:n,error:i});r.status(c.status).json(c)}};It=K([w()],It);let vt=class{catch(t,e){const s=e.switchToHttp(),o=s.getResponse(),r=s.getRequest(),i=t.getStatus(),a=new At(r,{status:i,message:t.message,error:t.name});o.status(a.status).json(a)}};vt=K([w(E)],vt);class $t extends Error{constructor(t="Resource not found"){super(t),this.name="NotFoundError",this.status=404,this.code="NOT_FOUND",Object.setPrototypeOf(this,$t.prototype)}}let St=class{catch(t,e){const s=e.switchToHttp(),o=s.getResponse(),r=s.getRequest(),i=new At(r,{status:y.NOT_FOUND,message:t.message,error:"NOT_FOUND"});o.status(i.status).json(i)}};St=K([w($t)],St);class Ct extends Error{constructor(t="Validation failed"){super(t),this.name="ValidationError",this.status=422,this.code="VALIDATION_ERROR",Object.setPrototypeOf(this,Ct.prototype)}}let Nt=class{catch(t,e){const s=e.switchToHttp(),o=s.getResponse(),r=s.getRequest(),i=new At(r,{status:y.UNPROCESSABLE_ENTITY,message:t.message,error:"VALIDATION_ERROR"});o.status(i.status).json(i)}};Nt=K([w(Ct)],Nt);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 Ft{constructor(t){this.options={...t}}customCSS(){let t="";return this.options.topbarIconPath&&(t+=`.topbar-wrapper { content: url('data:image/png;base64,${this.b64(this.options.topbarIconPath)}'); width: 200px; height: auto; }\n`),t+`\n .topbar-wrapper svg { visibility: hidden; }\n .swagger-ui .topbar { background-color: ${this.options.topbarBgColor||_t.topbarBgColor}; }\n `}getCustomOptions(){const t={};return this.options.faviconPath&&(t.customfavIcon=this.b64(this.options.faviconPath,!0)),{customSiteTitle:this.options.title,...t,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(t,e=!1){const s=at.join(this.options.assetsPath||"",t),o=it(s,{encoding:"base64"});return e?"data:image/png;base64,"+o:o}}class Dt{constructor(t,e){this.app=t,this.options=e}createDocument(){const t=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,e=(new J).setTitle(this.options.title).setDescription(t).setVersion(this.options.version||"0.0.1").addBearerAuth(this.options.auth||_t.auth).build();return Q.createDocument(this.app,e,{extraModels:this.options.extraModels||[]})}setupSwagger(){const t=this.createDocument(),e=new Ft({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});Q.setup(this.options.path||_t.path,this.app,t,{...e.getCustomOptions()})}}class Lt{static get logger(){return this._logger||(this._logger=new R("NestBootstrap")),this._logger}static initialize(t){return this.app=t,this}static enableLogger(t){return this._logger=t||new R("NestBootstrap"),this.app.useLogger(this._logger),this}static enableCors(t=[],e=["GET","POST","PUT","DELETE"]){const s="*"===t?"*":t.map(t=>t.trim().toLowerCase()),o={origin:(t,e)=>t?"*"===s||Array.isArray(s)&&s.includes(t.toLowerCase())?e(null,!0):void e(new Rt(`Origin ${t} not allowed`)):e(null,!0),credentials:!0,methods:e.join(",")};return this.app.enableCors(o),this}static useHelmet(t){try{const e=require("helmet");this.app.use(e(t)),this.logger.log("Helmet middleware enabled successfully.")}catch(t){this.logger.warn("Helmet not installed. Skipping middleware.")}return this}static setupSwagger(t){return new Dt(this.app,{title:t.title,description:t.description,version:t.version,path:t.path||"api",persistAuthorization:t.persistAuthorization??!0,assetsPath:t.assetsPath,faviconFilePath:t.faviconPath,topbarIconFilePath:t.topbarIconPath,topbarBgColor:t.topbarBgColor}).setupSwagger(),this}static useGlobalPipes(...t){return t.length>0&&this.app.useGlobalPipes(...t),this}static useGlobalFilters(...t){const e=[new vt,new Nt,new St,new Ot,new Pt,new It];return this.app.useGlobalFilters(...t.length>0?t:e),this}static useGlobalInterceptors(...t){return t.length>0&&this.app.useGlobalInterceptors(...t),this}static async start(t=Number(process.env.PORT)||3e3,e=void 0,s=!0){this.app.listen(t,e).then(async()=>{if(s){const t=await this.app.getUrl();this.logger.log("\ud83d\ude80 Application is running at: "+t)}})}}const jt="##VERSION##",Ut="##PACKAGE_NAME##";s.registerLibrary(Ut,jt);export{pt as ApiOperationFromModel,bt as AuthorizationError,Pt as AuthorizationExceptionFilter,Tt as ConflictError,Ot as ConflictExceptionFilter,Rt as CorsError,dt as DECAF_ADAPTER_ID,lt as DECAF_MODULE_OPTIONS,wt as DecafModule,It as GlobalExceptionFilter,vt as HttpExceptionFilter,At as HttpResponseError,Lt as NestBootstraper,$t as NotFoundError,St as NotFoundExceptionFilter,Ut as PACKAGE_NAME,gt as RepoFactory,Dt as SwaggerBuilder,jt as VERSION,Ct as ValidationError,Nt as ValidationExceptionFilter,ct as isOperationBlocked,Et as repoForModel};
|
|
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/decorators/ApiProperty.ts","../src/decorators/helpers.ts","../src/decorators.ts","../src/decoration.ts","../src/constants.ts","../src/core-module.ts","../src/RepoFactory.ts","../src/model-module.ts","../src/module.ts","../src/utils.ts","../src/factory/errors/cors.ts","../src/factory/exceptions/HttpResponseError.ts","../src/factory/exceptions/AuthorizationExceptionFilter.ts","../src/factory/exceptions/ConflictExceptionFilter.ts","../src/factory/exceptions/GlobalExceptionFilter.ts","../src/factory/exceptions/HttpExceptionFilter.ts","../src/factory/exceptions/NotFoundExceptionFilter.ts","../src/factory/exceptions/ValidationExceptionFilter.ts","../src/factory/openapi/constants.ts","../src/factory/openapi/SwaggerCustomUI.ts","../src/factory/openapi/SwaggerBuilder.ts","../src/factory/NestBootstraper.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],"names":["ApiProperty","options","overrideExisting","type","isArray","getTypeIsArrayTuple","opts","undefined","enum","enumValues","getEnumValues","items","getEnumType","Array","metakey","metadata","target","propertyKey","properties","Reflect","getMetadata","DECORATORS","API_MODEL_PROPERTIES_ARRAY","key","includes","defineMetadata","existingMetadata","newMetadata","pickBy","negate","isUndefined","metadataToSave","constructor","METADATA_FACTORY_NAME","createPropertyDecorator","API_MODEL_PROPERTIES","createApiPropertyDecorator","ApiOperationFromModel","ModelConstructor","verb","path","httpToCrud","GET","OperationKeys","READ","Get","POST","CREATE","Post","PUT","UPDATE","Put","PATCH","Patch","DELETE","Delete","crudOp","decorator","op","handler","args","Metadata","get","REFLECT","BLOCK","isOperationBlocked","apply","ApiExcludeEndpoint","Decoration","for","InjectablesKeys","INJECTABLE","extend","category","cfg","Injectable","scope","singleton","Scope","DEFAULT","REQUEST","durable","INJECT","descriptor","Inject","ValidationKeys","REQUIRED","required","MAX","max","maximum","MIN","min","minimum","MAX_LENGTH","maxLength","MIN_LENGTH","minLength","LIST","clazz","PATTERN","pat","pattern","source","PersistenceKeys","COLUMN","name","DecorationKeys","DESCRIPTION","description","DECAF_MODULE_OPTIONS","DECAF_ADAPTER_ID","DecafCoreModule","this","_adapterInstance","log","_logger","Logging","DecafCoreModule_1","moduleRef","createAdapter","info","adapter","conf","alias","getAdapterInstance","forRoot","typeOrmModuleOptions","provide","useValue","useFactory","async","inject","module","providers","exports","onApplicationShutdown","shutdown","e","error","__decorate","Global","Module","__param","ModuleRef","RepoFactory","model","Model","InternalError","Repository","forModel","DecafModelModule","DecafModelModule_1","toModelController","ModelClazz","tableName","table","routePath","toKebabCase","modelClazzName","debug","DynamicModelController","LoggedClass","repoFactory","super","repo","pk","create","data","created","verbose","read","id","query","method","results","update","updated","delete","ApiOperation","summary","ApiBody","schema","$ref","getSchemaPath","ApiCreatedResponse","ApiBadRequestResponse","ApiUnprocessableEntityResponse","Body","prototype","ApiParam","ApiOkResponse","ApiNotFoundResponse","Param","Controller","ApiTags","ApiExtraModels","flavour","controllers","Adapter","models","map","bind","length","DecafModule","DecafModule_1","forRootAsync","autoControllers","imports","push","repoForModel","m","CorsError","ForbiddenError","msg","HttpResponseError","request","responseError","status","HttpStatus","INTERNAL_SERVER_ERROR","message","toString","toUpperCase","Object","assign","timestamp","Date","toISOString","url","AuthorizationError","Error","code","setPrototypeOf","AuthorizationExceptionFilter","exception","host","ctx","switchToHttp","getRequest","response","getResponse","httpResponseError","UNAUTHORIZED","json","Catch","ConflictError","ConflictExceptionFilter","CONFLICT","GlobalExceptionFilter","HttpException","res","getStatus","HttpExceptionFilter","NotFoundError","NotFoundExceptionFilter","NOT_FOUND","ValidationError","ValidationExceptionFilter","UNPROCESSABLE_ENTITY","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","join","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","trim","toLowerCase","corsOptions","origin","callback","credentials","methods","useHelmet","helmet","require","use","warn","useGlobalPipes","pipes","useGlobalFilters","filters","defaultFilters","useGlobalInterceptors","interceptors","start","port","Number","process","env","PORT","listen","then","getUrl","VERSION","PACKAGE_NAME","registerLibrary"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"for-nest.js","sources":["../src/decorators/ApiProperty.ts","../src/decorators/helpers.ts","../src/decorators.ts","../src/decoration.ts","../src/constants.ts","../src/core-module.ts","../src/RepoFactory.ts","../src/model-module.ts","../src/module.ts","../src/utils.ts","../src/factory/errors/cors.ts","../src/factory/exceptions/HttpResponseError.ts","../src/factory/exceptions/AuthorizationExceptionFilter.ts","../src/factory/exceptions/ConflictExceptionFilter.ts","../src/factory/exceptions/GlobalExceptionFilter.ts","../src/factory/exceptions/HttpExceptionFilter.ts","../src/factory/exceptions/NotFoundExceptionFilter.ts","../src/factory/exceptions/ValidationExceptionFilter.ts","../src/factory/openapi/constants.ts","../src/factory/openapi/SwaggerCustomUI.ts","../src/factory/openapi/SwaggerBuilder.ts","../src/factory/NestBootstraper.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],"names":["ApiProperty","options","overrideExisting","type","isArray","getTypeIsArrayTuple","opts","undefined","enum","enumValues","getEnumValues","items","getEnumType","Array","metakey","metadata","target","propertyKey","properties","Reflect","getMetadata","DECORATORS","API_MODEL_PROPERTIES_ARRAY","key","includes","defineMetadata","existingMetadata","newMetadata","pickBy","negate","isUndefined","metadataToSave","constructor","METADATA_FACTORY_NAME","createPropertyDecorator","API_MODEL_PROPERTIES","createApiPropertyDecorator","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","decorator","apply","ApiExcludeEndpoint","Decoration","for","InjectablesKeys","INJECTABLE","extend","category","cfg","Injectable","scope","singleton","Scope","DEFAULT","REQUEST","durable","INJECT","descriptor","Inject","ValidationKeys","REQUIRED","required","MAX","max","maximum","MIN","min","minimum","MAX_LENGTH","maxLength","MIN_LENGTH","minLength","LIST","clazz","PATTERN","pat","pattern","source","PersistenceKeys","COLUMN","name","DecorationKeys","DESCRIPTION","description","DECAF_MODULE_OPTIONS","DECAF_ADAPTER_ID","DecafCoreModule","this","_adapterInstance","log","_logger","Logging","DecafCoreModule_1","moduleRef","createAdapter","info","adapter","conf","alias","getAdapterInstance","forRoot","typeOrmModuleOptions","provide","useValue","useFactory","async","inject","module","providers","exports","onApplicationShutdown","shutdown","e","error","__decorate","Global","Module","__param","ModuleRef","RepoFactory","model","Model","InternalError","Repository","forModel","DecafModelModule","DecafModelModule_1","toModelController","ModelClazz","tableName","table","routePath","toKebabCase","modelClazzName","debug","DynamicModelController","LoggedClass","repoFactory","super","repo","pk","create","data","created","verbose","read","id","query","method","results","update","updated","delete","ApiOperation","summary","ApiBody","schema","$ref","getSchemaPath","ApiCreatedResponse","ApiBadRequestResponse","ApiUnprocessableEntityResponse","Body","prototype","ApiParam","ApiOkResponse","ApiNotFoundResponse","Param","Controller","ApiTags","ApiExtraModels","flavour","controllers","Adapter","models","map","bind","length","DecafModule","DecafModule_1","forRootAsync","autoControllers","imports","push","repoForModel","m","CorsError","ForbiddenError","msg","HttpResponseError","request","responseError","status","HttpStatus","INTERNAL_SERVER_ERROR","message","toString","toUpperCase","Object","assign","timestamp","Date","toISOString","url","AuthorizationError","Error","code","setPrototypeOf","AuthorizationExceptionFilter","exception","host","ctx","switchToHttp","getRequest","response","getResponse","httpResponseError","UNAUTHORIZED","json","Catch","ConflictError","ConflictExceptionFilter","CONFLICT","GlobalExceptionFilter","HttpException","res","getStatus","HttpExceptionFilter","NotFoundError","NotFoundExceptionFilter","NOT_FOUND","ValidationError","ValidationExceptionFilter","UNPROCESSABLE_ENTITY","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","join","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","trim","toLowerCase","corsOptions","origin","callback","credentials","methods","useHelmet","helmet","require","use","warn","useGlobalPipes","pipes","useGlobalFilters","filters","defaultFilters","useGlobalInterceptors","interceptors","start","port","Number","process","env","PORT","listen","then","getUrl","VERSION","PACKAGE_NAME","registerLibrary"],"mappings":"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"}
|
package/lib/decorators.cjs
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.isOperationBlocked = isOperationBlocked;
|
|
3
4
|
exports.ApiOperationFromModel = ApiOperationFromModel;
|
|
4
5
|
const decoration_1 = require("@decaf-ts/decoration");
|
|
5
6
|
const common_1 = require("@nestjs/common");
|
package/lib/decorators.d.ts
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
|
+
import { CrudOperations } from "@decaf-ts/db-decorators";
|
|
1
2
|
import { ModelConstructor } from "@decaf-ts/decorator-validation";
|
|
2
3
|
export type HttpVerb = "GET" | "POST" | "PUT" | "PATCH" | "DELETE";
|
|
4
|
+
export declare function isOperationBlocked(ModelConstructor: ModelConstructor<any>, op: CrudOperations): boolean;
|
|
3
5
|
/**
|
|
4
6
|
* Decorador de rota condicional:
|
|
5
7
|
* - Se bloqueado: aplica somente `@ApiExcludeEndpoint()` → Swagger oculta; e como NÃO aplica @Get/@Post/etc, Nest NÃO registra rota.
|
package/lib/decorators.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"decorators.js","sourceRoot":"","sources":["../src/decorators.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"decorators.js","sourceRoot":"","sources":["../src/decorators.ts"],"names":[],"mappings":";;AASA,gDAiBC;AAOD,sDAoBC;AArDD,qDAAgD;AAChD,2CAA+D;AAC/D,6CAAqD;AACrD,qDAA6C;AAC7C,2DAAwE;AAKxE,SAAgB,kBAAkB,CAChC,gBAAuC,EACvC,EAAkB;IAElB,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,CAAC,qBAAQ,CAAC,GAAG,CACrC,gBAAuB,EACvB,6BAAa,CAAC,OAAO,GAAG,6BAAa,CAAC,KAAK,CAC5C,IAAI,EAAE,CAMN,CAAC;IAEF,aAAa;IACb,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,IAAI,EAAE,EAAE,CAAC,IAAI,KAAK,CAAC,CAAC;AAC5D,CAAC;AAED;;;;GAIG;AACH,SAAgB,qBAAqB,CACnC,gBAAuC,EACvC,IAAc,EACd,IAAa;IAEb,MAAM,UAAU,GAGZ;QACF,GAAG,EAAE,CAAC,6BAAa,CAAC,IAAI,EAAE,YAAG,CAAC;QAC9B,IAAI,EAAE,CAAC,6BAAa,CAAC,MAAM,EAAE,aAAI,CAAC;QAClC,GAAG,EAAE,CAAC,6BAAa,CAAC,MAAM,EAAE,YAAG,CAAC;QAChC,KAAK,EAAE,CAAC,6BAAa,CAAC,MAAM,EAAE,cAAK,CAAC;QACpC,MAAM,EAAE,CAAC,6BAAa,CAAC,MAAM,EAAE,eAAM,CAAC;KACvC,CAAC;IAEF,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC;IAC7C,OAAO,kBAAkB,CAAC,gBAAgB,EAAE,MAAM,CAAC;QACjD,CAAC,CAAC,IAAA,kBAAK,EAAC,IAAA,4BAAkB,GAAE,CAAC;QAC7B,CAAC,CAAC,IAAA,kBAAK,EAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;AAC7B,CAAC"}
|
package/lib/esm/decorators.d.ts
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
|
+
import { CrudOperations } from "@decaf-ts/db-decorators";
|
|
1
2
|
import { ModelConstructor } from "@decaf-ts/decorator-validation";
|
|
2
3
|
export type HttpVerb = "GET" | "POST" | "PUT" | "PATCH" | "DELETE";
|
|
4
|
+
export declare function isOperationBlocked(ModelConstructor: ModelConstructor<any>, op: CrudOperations): boolean;
|
|
3
5
|
/**
|
|
4
6
|
* Decorador de rota condicional:
|
|
5
7
|
* - Se bloqueado: aplica somente `@ApiExcludeEndpoint()` → Swagger oculta; e como NÃO aplica @Get/@Post/etc, Nest NÃO registra rota.
|
package/lib/esm/decorators.js
CHANGED
|
@@ -3,7 +3,7 @@ import { Delete, Get, Patch, Post, Put } from "@nestjs/common";
|
|
|
3
3
|
import { ApiExcludeEndpoint } from "@nestjs/swagger";
|
|
4
4
|
import { apply } from "@decaf-ts/reflection";
|
|
5
5
|
import { OperationKeys } from "@decaf-ts/db-decorators";
|
|
6
|
-
function isOperationBlocked(ModelConstructor, op) {
|
|
6
|
+
export function isOperationBlocked(ModelConstructor, op) {
|
|
7
7
|
const { handler, args } = (Metadata.get(ModelConstructor, OperationKeys.REFLECT + OperationKeys.BLOCK) || {});
|
|
8
8
|
// @ts-ignore
|
|
9
9
|
return !handler ? false : (handler(...args, op) ?? false);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"decorators.js","sourceRoot":"","sources":["../../src/decorators.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAChD,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,gBAAgB,CAAC;AAC/D,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AACrD,OAAO,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAC7C,OAAO,EAAkB,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAKxE,
|
|
1
|
+
{"version":3,"file":"decorators.js","sourceRoot":"","sources":["../../src/decorators.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAChD,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,gBAAgB,CAAC;AAC/D,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AACrD,OAAO,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAC7C,OAAO,EAAkB,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAKxE,MAAM,UAAU,kBAAkB,CAChC,gBAAuC,EACvC,EAAkB;IAElB,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,CAAC,QAAQ,CAAC,GAAG,CACrC,gBAAuB,EACvB,aAAa,CAAC,OAAO,GAAG,aAAa,CAAC,KAAK,CAC5C,IAAI,EAAE,CAMN,CAAC;IAEF,aAAa;IACb,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,IAAI,EAAE,EAAE,CAAC,IAAI,KAAK,CAAC,CAAC;AAC5D,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,qBAAqB,CACnC,gBAAuC,EACvC,IAAc,EACd,IAAa;IAEb,MAAM,UAAU,GAGZ;QACF,GAAG,EAAE,CAAC,aAAa,CAAC,IAAI,EAAE,GAAG,CAAC;QAC9B,IAAI,EAAE,CAAC,aAAa,CAAC,MAAM,EAAE,IAAI,CAAC;QAClC,GAAG,EAAE,CAAC,aAAa,CAAC,MAAM,EAAE,GAAG,CAAC;QAChC,KAAK,EAAE,CAAC,aAAa,CAAC,MAAM,EAAE,KAAK,CAAC;QACpC,MAAM,EAAE,CAAC,aAAa,CAAC,MAAM,EAAE,MAAM,CAAC;KACvC,CAAC;IAEF,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC;IAC7C,OAAO,kBAAkB,CAAC,gBAAgB,EAAE,MAAM,CAAC;QACjD,CAAC,CAAC,KAAK,CAAC,kBAAkB,EAAE,CAAC;QAC7B,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;AAC7B,CAAC"}
|
package/lib/esm/index.d.ts
CHANGED
package/lib/esm/index.js
CHANGED
|
@@ -35,7 +35,7 @@ export * from "./factory/index.js";
|
|
|
35
35
|
* @constant
|
|
36
36
|
* @type {string}
|
|
37
37
|
*/
|
|
38
|
-
export const VERSION = "0.0.
|
|
38
|
+
export const VERSION = "0.0.7";
|
|
39
39
|
export const PACKAGE_NAME = "##PACKAGE_NAME##";
|
|
40
40
|
Metadata.registerLibrary(PACKAGE_NAME, VERSION);
|
|
41
41
|
//# sourceMappingURL=index.js.map
|
package/lib/index.cjs
CHANGED
|
@@ -52,7 +52,7 @@ __exportStar(require("./factory/index.cjs"), exports);
|
|
|
52
52
|
* @constant
|
|
53
53
|
* @type {string}
|
|
54
54
|
*/
|
|
55
|
-
exports.VERSION = "0.0.
|
|
55
|
+
exports.VERSION = "0.0.7";
|
|
56
56
|
exports.PACKAGE_NAME = "##PACKAGE_NAME##";
|
|
57
57
|
decoration_1.Metadata.registerLibrary(exports.PACKAGE_NAME, exports.VERSION);
|
|
58
58
|
//# sourceMappingURL=index.js.map
|
package/lib/index.d.ts
CHANGED