@decaf-ts/for-nest 0.2.14 → 0.2.16

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.
Files changed (52) hide show
  1. package/README.md +1 -1
  2. package/dist/for-nest.cjs +1 -1
  3. package/dist/for-nest.cjs.map +1 -1
  4. package/dist/for-nest.js +1 -1
  5. package/dist/for-nest.js.map +1 -1
  6. package/lib/decaf-model/FromModelController.cjs +157 -0
  7. package/lib/decaf-model/FromModelController.d.ts +1 -0
  8. package/lib/decaf-model/FromModelController.js.map +1 -1
  9. package/lib/esm/decaf-model/FromModelController.d.ts +1 -0
  10. package/lib/esm/decaf-model/FromModelController.js +157 -0
  11. package/lib/esm/decaf-model/FromModelController.js.map +1 -1
  12. package/lib/esm/events-module/DecafStreamModule.d.ts +4 -0
  13. package/lib/esm/events-module/DecafStreamModule.js +40 -0
  14. package/lib/esm/events-module/DecafStreamModule.js.map +1 -0
  15. package/lib/esm/events-module/constant.d.ts +1 -0
  16. package/lib/esm/events-module/constant.js +2 -0
  17. package/lib/esm/events-module/constant.js.map +1 -0
  18. package/lib/esm/events-module/events.controller.d.ts +10 -0
  19. package/lib/esm/events-module/events.controller.js +112 -0
  20. package/lib/esm/events-module/events.controller.js.map +1 -0
  21. package/lib/esm/events-module/index.d.ts +1 -0
  22. package/lib/esm/events-module/index.js +2 -0
  23. package/lib/esm/events-module/index.js.map +1 -0
  24. package/lib/esm/events-module/utils.d.ts +1 -0
  25. package/lib/esm/events-module/utils.js +9 -0
  26. package/lib/esm/events-module/utils.js.map +1 -0
  27. package/lib/esm/index.d.ts +1 -1
  28. package/lib/esm/index.js +1 -1
  29. package/lib/esm/module.js +4 -0
  30. package/lib/esm/module.js.map +1 -1
  31. package/lib/esm/types.d.ts +17 -0
  32. package/lib/events-module/DecafStreamModule.cjs +43 -0
  33. package/lib/events-module/DecafStreamModule.d.ts +4 -0
  34. package/lib/events-module/DecafStreamModule.js.map +1 -0
  35. package/lib/events-module/constant.cjs +5 -0
  36. package/lib/events-module/constant.d.ts +1 -0
  37. package/lib/events-module/constant.js.map +1 -0
  38. package/lib/events-module/events.controller.cjs +115 -0
  39. package/lib/events-module/events.controller.d.ts +10 -0
  40. package/lib/events-module/events.controller.js.map +1 -0
  41. package/lib/events-module/index.cjs +18 -0
  42. package/lib/events-module/index.d.ts +1 -0
  43. package/lib/events-module/index.js.map +1 -0
  44. package/lib/events-module/utils.cjs +12 -0
  45. package/lib/events-module/utils.d.ts +1 -0
  46. package/lib/events-module/utils.js.map +1 -0
  47. package/lib/index.cjs +1 -1
  48. package/lib/index.d.ts +1 -1
  49. package/lib/module.cjs +4 -0
  50. package/lib/module.js.map +1 -1
  51. package/lib/types.d.ts +17 -0
  52. package/package.json +2 -1
package/README.md CHANGED
@@ -28,7 +28,7 @@ This repository is meant to provide an enterprise template for any standard Type
28
28
 
29
29
  Documentation available [here](https://decaf-ts.github.io/for-nest/)
30
30
 
31
- Minimal size: 9.7 KB kb gzipped
31
+ Minimal size: 10.2 KB kb gzipped
32
32
 
33
33
 
34
34
  ### Description
package/dist/for-nest.cjs CHANGED
@@ -1,2 +1,2 @@
1
- var e,t;e=this,t=function(e,t,r,o,a,i,s,n,c,p,d,l,u,h){"use strict";function m(e){if(e&&e.__esModule)return e;var t=Object.create(null);return e&&Object.keys(e).forEach(r=>{if("default"!==r){var o=Object.getOwnPropertyDescriptor(e,r);Object.defineProperty(t,r,o.get?o:{enumerable:!0,get:()=>e[r]})}}),t.default=e,Object.freeze(t)}var y=m(h);const f="swagger",g={API_OPERATION:f+"/apiOperation",API_RESPONSE:f+"/apiResponse",API_PRODUCES:f+"/apiProduces",API_CONSUMES:f+"/apiConsumes",API_TAGS:f+"/apiUseTags",API_CALLBACKS:f+"/apiCallbacks",API_PARAMETERS:f+"/apiParameters",API_HEADERS:f+"/apiHeaders",API_MODEL_PROPERTIES:f+"/apiModelProperties",API_MODEL_PROPERTIES_ARRAY:f+"/apiModelPropertiesArray",API_SECURITY:f+"/apiSecurity",API_EXCLUDE_ENDPOINT:f+"/apiExcludeEndpoint",API_EXCLUDE_CONTROLLER:f+"/apiExcludeController",API_EXTRA_MODELS:f+"/apiExtraModels",API_EXTENSION:f+"/apiExtension",API_SCHEMA:f+"/apiSchema",API_DEFAULT_GETTER:f+"/apiDefaultGetter",API_LINK:f+"/apiLink"},_=e=>void 0===e;function A(e){if("function"==typeof e)return A(e());if(Array.isArray(e))return e;if("object"!=typeof e)return[];const t=Object.values(e).filter(e=>"number"==typeof e).map(e=>e.toString());return Object.keys(e).filter(e=>!t.includes(e)).map(t=>e[t])}function E(e){return e.filter(s.isString).length>0?"string":"number"}function P(e,t,r=!0){return(o,a)=>{const i=Reflect.getMetadata(g.API_MODEL_PROPERTIES_ARRAY,o)||[],n=":"+a;i.includes(n)||Reflect.defineMetadata(g.API_MODEL_PROPERTIES_ARRAY,[...i,":"+a],o);const c=Reflect.getMetadata(e,o,a);if(c){const i=s.pickBy(t,s.negate(_)),n=r?{...c,...i}:{...i,...c};Reflect.defineMetadata(e,n,o,a)}else{const r=o?.constructor?._OPENAPI_METADATA_FACTORY?.()[a]?.type??Reflect.getMetadata("design:type",o,a);Reflect.defineMetadata(e,{type:r,...s.pickBy(t,s.negate(_))},o,a)}}}function b(e={}){return O(e)}function O(e={},t=!0){const[r,o]=((e,t)=>{if(!e)return[e,t];if(t)return[e,t];const r=s.isArray(e);return[r?e[0]:e,r]})(e.type,e.isArray);if((a=e={...e,type:r,isArray:o}).isArray&&"enum"in a&&void 0!==a.enum){e.type="array";const t=A(e.enum);e.items={type:E(t),enum:t},delete e.enum}else if("enum"in e&&void 0!==e.enum){const t=A(e.enum);e.enum=t,e.type=E(t)}var a;return Array.isArray(e.type)&&(e.type="array",e.items={type:"array",items:{type:e.type[0]}}),P(g.API_MODEL_PROPERTIES,e,t)}function R(e,r){const{handler:o,args:a}=t.Metadata.get(e,c.OperationKeys.REFLECT+c.OperationKeys.BLOCK)||{};return!!o&&(o(...a,r)??!1)}function w(e,r,a){const i={GET:[c.OperationKeys.READ,o.Get],POST:[c.OperationKeys.CREATE,o.Post],PUT:[c.OperationKeys.UPDATE,o.Put],PATCH:[c.OperationKeys.UPDATE,o.Patch],DELETE:[c.OperationKeys.DELETE,o.Delete]},[s,p]=i[r];return R(e,s)?t.apply(n.ApiExcludeEndpoint()):t.apply(p(a))}function D(e=[]){const t=e.map(e=>n.ApiParam({name:e.name,description:e.description??"Path parameter: "+e.name,required:e.required??!0,type:e.type??String}));return o.applyDecorators(...t)}const T=o.createParamDecorator((e,t)=>{const r=t.switchToHttp().getRequest().body,a=t.getClass(),i=a.class;if(!i)throw new o.InternalServerErrorException(`ModelConstructor not found on controller ${a.name}. Ensure the controller was created via FromModelController.`);return r?Array.isArray(r)?r.map(e=>new i(e)):new i(r):r}),v=o.createParamDecorator((e,t)=>{const r=t.switchToHttp().getRequest(),o=r?.params??{},a=e??Object.keys(o),i=a.map(e=>o[e]);return{raw:o,valuesInOrder:i,keysInOrder:a}});function S(e=[]){const t=e.map(e=>e.name);return v(t)}const C=o.createParamDecorator((e,t)=>{const r={...t.switchToHttp().getRequest().query??{}};if(void 0!==r.limit){const e=Number(r.limit);Number.isNaN(e)||(r.limit=e)}if(void 0!==r.offset){const e=Number(r.offset);Number.isNaN(e)||(r.offset=e)}if(void 0!==r.bookmark){const e=Number(r.bookmark);r.bookmark=Number.isNaN(e)?r.bookmark:e}return r});function x(e){const t={GET:o.Get,POST:o.Post,PUT:o.Put,PATCH:o.Patch,DELETE:o.Delete}[e];if(!t)throw Error(`Unsupported HTTP verb "${e}". No NestJS decorator mapping was found.`);return t}const I="DecafModuleOptions",M="DecafAdapter",k="DecafRoute",$=Symbol("DecafHandlers"),F=Symbol("DecafAdapterForOptions"),N=Symbol("AUTH_HANDLER"),j="auth:meta",L=Symbol("decaf:context");function q(t){const r="string"==typeof t?t:t.name;return o.applyDecorators(n.ApiBearerAuth(),o.SetMetadata(j,r),o.UseInterceptors(e.AuthInterceptor))}e.AuthInterceptor=class{constructor(e,t){this.reflector=e,this.authHandler=t}async intercept(e,t){const r=this.reflector.get(j,e.getHandler())??this.reflector.get(j,e.getClass());return r&&this.authHandler&&await this.authHandler.authorize(e,r),t.handle()}},e.AuthInterceptor=p.__decorate([o.Injectable(),p.__param(1,o.Optional()),p.__param(1,o.Inject(N)),p.__metadata("design:paramtypes",[d.Reflector,Object])],e.AuthInterceptor);class B{parseRequest(e){const t=e.headers.authorization?.split(" ")[1];return t}async authorize(e,r){const o=e.switchToHttp().getRequest(),s=this.parseRequest(o);if(!s)throw new i.AuthorizationError("Unauthenticated");if(!t.Metadata.get(a.Model.get(r),i.PersistenceKeys.AUTH_ROLE).includes(s))throw new i.AuthorizationError("Missing role: "+s)}}e.DecafRequestContext=class{put(e){let t;try{t=this.ctx.get("overrides")}catch(e){t={}}this._ctx=this.ctx.accumulate({overrides:Object.assign(t,e)})}applyCtx(e){this._ctx=e}get ctx(){if(!this._ctx)throw new c.InternalError("Context not initialized for request");return this._ctx}},e.DecafRequestContext=p.__decorate([o.Injectable({scope:o.Scope.REQUEST})],e.DecafRequestContext),e.DecafHandlerExecutor=class{constructor(e,t){this.handlers=e,this.context=t}async exec(e,t){for(const r of this.handlers)await r.handle(this.context,e,t)}},e.DecafHandlerExecutor=p.__decorate([o.Injectable({scope:o.Scope.REQUEST}),p.__param(0,o.Inject($)),p.__metadata("design:paramtypes",[Array,e.DecafRequestContext])],e.DecafHandlerExecutor);const K=e=>({name:e,description:e+" parameter for the query",required:!0,type:String});function U(e,t,r,a=!1){const s=x(r),c=(e=>e.split("/").filter(e=>e.startsWith(":")).map(e=>e.slice(1)))(t).map(K),p=[];return"GET"===r&&a&&p.push(n.ApiQuery({name:"direction",required:!1,enum:i.OrderDirection,description:"the sort order when applicable"}),n.ApiQuery({name:"limit",required:!1,description:"limit or page size when applicable"}),n.ApiQuery({name:"offset",required:!1,description:"offset or bookmark when applicable"})),{method:[s(t),...c.map(n.ApiParam),...p,n.ApiOperation({summary:`Retrieve records using according to "${e}".`}),n.ApiOkResponse({description:"Result successfully retrieved."}),n.ApiNoContentResponse({description:"No content returned by the method."})],params:[S(c),o.Query()]}}function H(e,t,r,o){const a=e?.prototype??e;o.method.forEach(e=>e(a,t,r)),o.params?.forEach((e,r)=>e(a,t,r))}function G(e){return async function(t,r){const o=this.log.for(e);try{o.debug(`Invoking persistence method "${e}" given parameters: ${JSON.stringify(t.valuesInOrder)}`);const{direction:a,limit:s,offset:n}=r;return await((e,t,...r)=>{if(e instanceof i.ModelService)return"function"==typeof e[t]?e[t](...r):e.statement(t,...r);if("function"==typeof e[t])return e[t](...r);throw Error(`Persistence method "${t}" not found on ${e?.constructor?.name}`)})(this.persistence(),e,...t.valuesInOrder,a,s,n)}catch(t){throw o.error(`Custom query "${e}" failed`,t),t}}}function z(e,t,r){return Object.defineProperty(e.prototype||e,t,{value:r,writable:!1}),Object.getOwnPropertyDescriptor(e.prototype||e,t)}class Q extends i.Service{constructor(e,t){super(t),this.clientContext=e}logCtx(e,t,r=!1,o){const a=this.clientContext.ctx;return e=e.filter(e=>void 0!==e),i.ContextualLoggedClass.logCtx.call(this,t,o||{},r,...e,a)}}class V extends Q{persistence(e){if(!this._persistence)try{this._persistence=i.ModelService.getService(this.class)}catch(e){this._persistence=i.Repository.forModel(this.class)}return e?this._persistence instanceof i.Repository?this._persistence.override(e.toOverrides()):this._persistence.for(e.toOverrides()):this._persistence}constructor(e,t){super(e,t)}logCtx(e,t,r=!1){const o=this.clientContext.ctx;let a={};try{a=o.get("overrides")}catch(e){}const s=this.persistence(o);let n,c;return s instanceof i.ModelService?n=s.repo.adapter:s instanceof i.Repository?n=s.adapter:s.context&&(n=s),r?n.logCtx(e,t,!0,a).then(e=>e):(c=n.logCtx(e,t,!1,a),c)}}function Y(e,r){if(!i.TransactionOperationKeys.includes(e))return r;const o=[c.OperationKeys.UPDATE,c.BulkCrudOperationKeys.UPDATE_ALL].includes(e),s=t.Metadata.properties(r)||[],p=a.Model.relations(r)||[];let d=s.filter(e=>a.Model.generated(r,e));o&&(d=d.filter(e=>e!==a.Model.pk(r)));class u extends(n.OmitType(r,d)){}function h(e,t,r){r||(Object.defineProperty(u.prototype,e,{value:r?[t]:t,writable:!0,enumerable:!0,configurable:!0}),Reflect.defineMetadata("design:type",t,u.prototype,e))}Object.defineProperty(u,"name",{value:`${l.toPascalCase(r.name)}${l.toPascalCase(e)}DTO`});for(const o of p){let i=t.Metadata.allowedTypes(r,o);if(i=i?Array.isArray(i)?i[0]:i:void 0,i="function"!=typeof i||i.name?i:i(),!i)throw new c.InternalError(`Type for relation ${o} not found`);if(a.Model.get(i.name)){const s=t.Metadata.validationFor(r,o);h(o,Y(e,i),!!s[a.ValidationKeys.LIST])}}return u}i.Adapter.transformerFor=(e=>{const r="string"==typeof e?e:e.alias;return t.Metadata.innerGet(Symbol.for("transformers"),r)}).bind(i.Adapter),i.Adapter.flavoursToTransform=(()=>{const e=t.Metadata.innerGet(Symbol.for("transformers"));if(e)return Object.keys(e)}).bind(i.Adapter),i.Context.prototype.toResponse=function(e){const t=this.pending();return t&&e.header("x-pending-task",JSON.stringify(t)),e};class J{static{this.log=l.Logging.for(J.name)}static getPersistence(e){try{return i.ModelService.getService(e)}catch(t){return i.Repository.forModel(e)}}static createQueryRoutesFromRepository(e,r=i.PersistenceKeys.QUERY){const o=J.log.for(J.createQueryRoutesFromRepository),a=e instanceof i.ModelService?e.repo:e,s=a.class,n=t.Metadata.get(a.constructor,t.Metadata.key(i.PersistenceKeys.QUERY))??{},c=t.Metadata.get(e.constructor,t.Metadata.key(k))??{};class p extends V{get class(){throw Error("Method not implemented.")}constructor(e,t){super(e,t)}}for(const[e,t]of Object.entries(c)){const r=[t.path.replace(/^\/+|\/+$/g,"")].filter(e=>e&&e.trim()).join("/"),a=G(e);if(!a){const t=`Invalid or missing handler for model ${s.name} on decorated method ${e}`;throw o.error(t),Error(t)}const i=z(p,e,a);i&&H(p,e,i,U(e,r,t.httpMethod))}for(const[e,t]of Object.entries(n)){const o=[r,e,...(t.fields??[]).map(e=>":"+e)].filter(e=>e&&e.trim()).join("/"),a=z(p,e,G(e));a&&H(p,e,a,U(e,o,"GET",!0))}return p}static create(t){const r=J.log.for(J.create),s=a.Model.tableName(t),d=l.toKebabCase(s),u=t.name,h=J.getPersistence(t),{description:m,getPK:y,apiProperties:f,path:g}=J.getRouteParametersFromModel(t);r.debug("Creating controller for model: "+u);const _=J.createQueryRoutesFromRepository(h);let A=class extends _{static get class(){return t}get class(){return t}constructor(e){super(e),this.pk=a.Model.pk(t),r.info(`Registering dynamic controller for model: ${this.class.name} route: /${d}`)}async listBy(e,t){const{ctx:r}=(await this.logCtx([],i.PreparedStatementKeys.LIST_BY,!0)).for(this.listBy);return this.persistence(r).listBy(e,t.direction,r)}async paginateBy(e,t){const{ctx:r}=(await this.logCtx([],i.PreparedStatementKeys.PAGE_BY,!0)).for(this.paginateBy);return this.persistence(r).paginateBy(e,t.direction,t,r)}async findOneBy(e,t){const{ctx:r}=(await this.logCtx([],i.PreparedStatementKeys.FIND_ONE_BY,!0)).for(this.findOneBy);return this.persistence(r).findOneBy(e,t,r)}async findBy(e,t,r){const{ctx:o}=(await this.logCtx([],i.PreparedStatementKeys.FIND_BY,!0)).for(this.findBy);return this.persistence(o).for(o.toOverrides()).findBy(e,t,o)}async statement(e,t,r){const{ctx:o}=(await this.logCtx([],i.PersistenceKeys.STATEMENT,!0)).for(this.statement),{direction:a,offset:s,limit:n,bookmark:c}=r;switch(t=t.map(e=>("string"==typeof e?parseInt(e):e)||e),e){case i.PreparedStatementKeys.FIND_BY:break;case i.PreparedStatementKeys.LIST_BY:t.push(a);break;case i.PreparedStatementKeys.PAGE_BY:t=[t[0],a,{limit:n,offset:s,bookmark:c}];case i.PreparedStatementKeys.FIND_ONE_BY:}return this.persistence(o).statement(e,...t,o)}async createAll(e,r){const{ctx:o,log:a}=(await this.logCtx([],c.BulkCrudOperationKeys.CREATE_ALL,!0)).for(this.createAll);let i;a.verbose("creating new "+u);try{i=await this.persistence(o).createAll(e.map(e=>new t(e)),o)}catch(e){throw a.error("Failed to create new "+u,e),e}return a.info(`created new ${u} with id ${i[this.pk]}`),o.toResponse(r),i}async create(e,t){const{ctx:r,log:o}=(await this.logCtx([],c.OperationKeys.CREATE,!0)).for(this.create);let a;o.verbose("creating new "+u);try{const t=this.persistence(r);a=await t.create(e,r)}catch(e){throw o.error("Failed to create new "+u,e),e}return o.info(`created new ${u} with id ${a[this.pk]}`),r.toResponse(t),a}async readAll(e){const{ctx:t,log:r}=(await this.logCtx([],c.BulkCrudOperationKeys.READ_ALL,!0)).for(this.readAll);let o;try{r.debug(`reading ${e.length} ${u}: ${e}`);const a=this.persistence(t);o=await a.readAll(e,t)}catch(t){throw r.error(`Failed to ${u} with id ${e}`,t),t}return r.info(`read ${o.length} ${u}`),o}async read(e){const{ctx:t,log:r}=(await this.logCtx([],c.OperationKeys.READ,!0)).for(this.read),o=y(...e.valuesInOrder);if(void 0===o)throw new c.ValidationError(`No ${this.pk} provided`);let a;try{r.debug(`reading ${u} with ${this.pk} ${o}`);const e=this.persistence(t);a=await e.read(o,t)}catch(e){throw r.error(`Failed to read ${u} with id ${o}`,e),e}return r.info(`read ${u} with id ${a[this.pk]}`),a}async updateAll(e,t){const{ctx:r,log:o}=(await this.logCtx([],c.BulkCrudOperationKeys.UPDATE_ALL,!0)).for(this.updateAll);let a;try{o.info(`updating ${e.length} ${u}`),a=await this.persistence(r).updateAll(e,r)}catch(e){throw o.error(e),e}return r.toResponse(t),a}async update(e,r,o){const{ctx:a,log:i}=(await this.logCtx([],c.OperationKeys.UPDATE,!0)).for(this.update),s=y(...e.valuesInOrder);if(void 0===s)throw new c.ValidationError(`No ${this.pk} provided`);let n;try{i.info(`updating ${u} with ${this.pk} ${s}`);const e=JSON.parse(JSON.stringify(r)),o=this.persistence(a);n=await o.update(new t({...e,[this.pk]:s}),a)}catch(e){throw i.error(e),e}return a.toResponse(o),n}async deleteAll(e,t){const{ctx:r,log:o}=(await this.logCtx([],c.BulkCrudOperationKeys.DELETE_ALL,!0)).for(this.deleteAll);let a;try{o.debug(`deleting ${e.length} ${u}: ${e}`),a=await this.persistence(r).deleteAll(e,r)}catch(t){throw o.error(`Failed to delete ${u} with id ${e}`,t),t}return o.info(`deleted ${a.length} ${u}`),r.toResponse(t),a}async delete(e,t){const{ctx:r,log:o}=(await this.logCtx([],c.OperationKeys.DELETE,!0)).for(this.delete),a=y(...e.valuesInOrder);if(void 0===a)throw new c.ValidationError(`No ${this.pk} provided`);let i;try{o.debug(`deleting ${u} with ${this.pk} ${a}`),i=await this.persistence(r).delete(a,r)}catch(e){throw o.error(`Failed to delete ${u} with id ${a}`,e),e}return o.info(`deleted ${u} with id ${a}`),r.toResponse(t),i}};return p.__decorate([w(t,"GET","listBy/:key"),n.ApiOperation({summary:`Retrieve ${u} records by query.`}),n.ApiParam({name:"key",description:"the model key to sort by"}),n.ApiQuery({name:"direction",required:!0,enum:i.OrderDirection}),n.ApiOkResponse({description:u+" listed successfully."}),p.__param(1,C()),p.__metadata("design:type",Function),p.__metadata("design:paramtypes",[String,Object]),p.__metadata("design:returntype",Promise)],A.prototype,"listBy",null),p.__decorate([w(t,"GET","paginateBy/:key/:page"),n.ApiOperation({summary:`Retrieve ${u} records by query.`}),n.ApiParam({name:"key",description:"the model key to sort by"}),n.ApiParam({name:"page",description:"the page to retrieve or the bookmark"}),n.ApiQuery({name:"direction",required:!0,enum:i.OrderDirection,description:"the sort order"}),n.ApiQuery({name:"limit",required:!0,description:"the page size"}),n.ApiQuery({name:"offset",description:"the bookmark when necessary"}),n.ApiOkResponse({description:u+" listed paginated."}),p.__param(0,o.Param("key")),p.__param(1,C()),p.__metadata("design:type",Function),p.__metadata("design:paramtypes",[String,Object]),p.__metadata("design:returntype",Promise)],A.prototype,"paginateBy",null),p.__decorate([w(t,"GET","findOneBy/:key"),n.ApiOperation({summary:`Retrieve ${u} records by query.`}),n.ApiParam({name:"key",description:"the model key to sort by"}),n.ApiOkResponse({description:u+" listed found."}),n.ApiNotFoundResponse({description:`No ${u} record matches the provided identifier.`}),p.__param(0,o.Param("key")),p.__param(1,o.Param("value")),p.__metadata("design:type",Function),p.__metadata("design:paramtypes",[String,Object]),p.__metadata("design:returntype",Promise)],A.prototype,"findOneBy",null),p.__decorate([w(t,"GET","findBy/:key/:value"),n.ApiOperation({summary:`Retrieve ${u} records by query.`}),n.ApiParam({name:"key",description:"the model key to compare"}),n.ApiParam({name:"value",description:"the value to match"}),n.ApiQuery({name:"direction",required:!0,enum:i.OrderDirection,description:"the sort order when applicable"}),n.ApiOkResponse({description:u+" listed found."}),n.ApiNotFoundResponse({description:`No ${u} record matches the provided identifier.`}),p.__param(0,o.Param("key")),p.__param(1,o.Param("value")),p.__param(2,C()),p.__metadata("design:type",Function),p.__metadata("design:paramtypes",[String,Object,Object]),p.__metadata("design:returntype",Promise)],A.prototype,"findBy",null),p.__decorate([w(t,"GET","statement/:method/*args"),n.ApiOperation({summary:`Executes a prepared statement on ${u}.`}),n.ApiParam({name:"method",description:"the prepared statement to execute"}),n.ApiParam({name:"args",description:"concatenated list of arguments the prepared statement can accept"}),n.ApiQuery({name:"direction",required:!0,enum:i.OrderDirection,description:"the sort order when applicable"}),n.ApiQuery({name:"limit",required:!0,description:"limit or page size when applicable"}),n.ApiQuery({name:"offset",required:!0,description:"offset or bookmark when applicable"}),n.ApiOkResponse({description:u+" listed found."}),n.ApiNotFoundResponse({description:`No ${u} record matches the provided identifier.`}),p.__param(0,o.Param("method")),p.__param(1,o.Param("args")),p.__param(2,C()),p.__metadata("design:type",Function),p.__metadata("design:paramtypes",[String,Array,Object]),p.__metadata("design:returntype",Promise)],A.prototype,"statement",null),p.__decorate([w(t,"POST","bulk"),n.ApiOperation({summary:`Create a new ${u}.`}),n.ApiBody({description:"Payload for "+u,schema:{type:"array",items:{$ref:n.getSchemaPath(t)}}}),n.ApiCreatedResponse({description:u+" created successfully.",schema:{type:"array",items:{$ref:n.getSchemaPath(t)}}}),n.ApiBadRequestResponse({description:"Payload validation failed."}),n.ApiUnprocessableEntityResponse({description:"Repository rejected the provided payload."}),p.__param(0,T()),p.__param(1,o.Response({passthrough:!0})),p.__metadata("design:type",Function),p.__metadata("design:paramtypes",[Array,Object]),p.__metadata("design:returntype",Promise)],A.prototype,"createAll",null),p.__decorate([w(t,"POST"),n.ApiOperation({summary:`Create a new ${u}.`}),n.ApiBody({description:"Payload for "+u,type:Y(c.OperationKeys.CREATE,t)}),n.ApiCreatedResponse({description:u+" created successfully.",schema:{$ref:n.getSchemaPath(t)}}),n.ApiBadRequestResponse({description:"Payload validation failed."}),n.ApiUnprocessableEntityResponse({description:"Repository rejected the provided payload."}),p.__param(0,T()),p.__param(1,o.Response({passthrough:!0})),p.__metadata("design:type",Function),p.__metadata("design:paramtypes",[Object,Object]),p.__metadata("design:returntype",Promise)],A.prototype,"create",null),p.__decorate([w(t,"GET","bulk"),n.ApiOperation({summary:`Retrieve a ${u} record by id.`}),n.ApiQuery({name:"ids",required:!0,type:"array"}),n.ApiOkResponse({description:u+" retrieved successfully.",schema:{type:"array",items:{$ref:n.getSchemaPath(t)}}}),n.ApiNotFoundResponse({description:`No ${u} record matches the provided identifier.`}),p.__param(0,o.Query("ids")),p.__metadata("design:type",Function),p.__metadata("design:paramtypes",[Array]),p.__metadata("design:returntype",Promise)],A.prototype,"readAll",null),p.__decorate([w(t,"GET",g),D(f),n.ApiOperation({summary:`Retrieve a ${u} record by id.`}),n.ApiOkResponse({description:u+" retrieved successfully.",schema:{$ref:n.getSchemaPath(t)}}),n.ApiNotFoundResponse({description:`No ${u} record matches the provided identifier.`}),p.__param(0,S(f)),p.__metadata("design:type",Function),p.__metadata("design:paramtypes",[Object]),p.__metadata("design:returntype",Promise)],A.prototype,"read",null),p.__decorate([w(t,"PUT","bulk"),D(f),n.ApiOperation({summary:`Replace an existing ${u} record with a new payload.`}),n.ApiBody({description:"Payload for replace a existing record of "+u,schema:{type:"array",items:{$ref:n.getSchemaPath(t)}}}),n.ApiCreatedResponse({description:u+" updated successfully.",schema:{type:"array",items:{$ref:n.getSchemaPath(t)}}}),n.ApiNotFoundResponse({description:`No ${u} record matches the provided identifier.`}),n.ApiBadRequestResponse({description:"Payload validation failed."}),p.__param(0,T()),p.__param(1,o.Response({passthrough:!0})),p.__metadata("design:type",Function),p.__metadata("design:paramtypes",[Array,Object]),p.__metadata("design:returntype",Promise)],A.prototype,"updateAll",null),p.__decorate([w(t,"PUT",g),D(f),n.ApiOperation({summary:`Replace an existing ${u} record with a new payload.`}),n.ApiBody({description:"Payload for replace a existing record of "+u,schema:{$ref:n.getSchemaPath(t)}}),n.ApiOkResponse({description:u+" updated successfully."}),n.ApiNotFoundResponse({description:`No ${u} record matches the provided identifier.`}),n.ApiBadRequestResponse({description:"Payload validation failed."}),p.__param(0,S(f)),p.__param(1,T()),p.__param(2,o.Response({passthrough:!0})),p.__metadata("design:type",Function),p.__metadata("design:paramtypes",[Object,Object,Object]),p.__metadata("design:returntype",Promise)],A.prototype,"update",null),p.__decorate([w(t,"DELETE","bulk"),D(f),n.ApiOperation({summary:`Retrieve a ${u} record by id.`}),n.ApiQuery({name:"ids",required:!0,type:"array"}),n.ApiOkResponse({description:u+" retrieved successfully."}),n.ApiNotFoundResponse({description:`No ${u} record matches the provided identifier.`}),p.__param(0,o.Query("ids")),p.__param(1,o.Response({passthrough:!0})),p.__metadata("design:type",Function),p.__metadata("design:paramtypes",[Array,Object]),p.__metadata("design:returntype",Promise)],A.prototype,"deleteAll",null),p.__decorate([w(t,"DELETE",g),D(f),n.ApiOperation({summary:`Delete a ${u} record by id.`}),n.ApiOkResponse({description:u+" record deleted successfully."}),n.ApiNotFoundResponse({description:`No ${u} record matches the provided identifier.`}),p.__param(0,S(f)),p.__param(1,o.Response({passthrough:!0})),p.__metadata("design:type",Function),p.__metadata("design:paramtypes",[Object,Object]),p.__metadata("design:returntype",Promise)],A.prototype,"delete",null),A=p.__decorate([o.Controller(d),n.ApiTags(u),n.ApiExtraModels(t),q(t),p.__metadata("design:paramtypes",[e.DecafRequestContext])],A),A}static getRouteParametersFromModel(e){const r=a.Model.pk(e),o=t.Metadata.get(e,t.Metadata.key(c.DBKeys.COMPOSED,r)),i=o?.args??[],s=Array.isArray(i)&&i.length>0?Array.from(new Set([...i])):Array.from(new Set([r])),n=t.Metadata.description(e);return{path:":"+s.join("/:"),description:n,apiProperties:s.map(r=>({name:r,description:t.Metadata.description(e,r),required:!0,type:String})),getPK:(...e)=>o?.separator?e.join(o.separator):e.join("")}}}e.DecafRequestHandlerInterceptor=class{constructor(e,t){this.requestContext=e,this.executor=t}async contextualize(e){const t={headers:e.headers,overrides:{}},r=i.Adapter.flavoursToTransform();if(r)for(const o of r)try{const r=i.Adapter.transformerFor(o),a=await r.from(e);Object.assign(t.overrides,a)}catch(e){throw new c.InternalError("Failed to contextualize request: "+e)}return(new i.Context).accumulate(Object.assign({},i.DefaultAdapterFlags,{logger:l.Logging.get(),timestamp:new Date},t))}async intercept(e,t){const r=e.switchToHttp().getRequest(),o=e.switchToHttp().getResponse(),a=await this.contextualize(r);return this.requestContext.applyCtx(a),await this.executor.exec(r,o),t.handle()}},e.DecafRequestHandlerInterceptor=p.__decorate([o.Injectable({scope:o.Scope.REQUEST}),p.__metadata("design:paramtypes",[e.DecafRequestContext,e.DecafHandlerExecutor])],e.DecafRequestHandlerInterceptor);class X{}function W(e){return r=>(t.Metadata.set("transformers",e,r),"function"==typeof r?t.metadata("transformers",e)(r):r)}function Z(t){var r;let a=class{static{r=this}static{this.log=l.Logging.for(r.name).for(t)}static createModelServices(e){return e.map(e=>({provide:e.name+"Service",useFactory:()=>i.ModelService.forModel(e)}))}static forRoot(t,o={}){const a=this.log.for(this.forRoot);a.info("Generating controllers for flavour...");const s=i.Adapter.models(t);let n=[];o.autoServices&&(a.info("Auto-services enabled. Initializing service generation."),n=this.createModelServices(s),a.info(`Auto-services completed. ${n.length} services initialized.`));const c=s.map(J.create);return a.info(`Generated ${c.length} controllers`),{module:r,controllers:c,providers:[{provide:$,useFactory:()=>o.handlers?.map(e=>(a.info("Registered request handler: "+e.name),new e))??[]},e.DecafRequestContext,e.DecafHandlerExecutor,{provide:d.APP_INTERCEPTOR,useClass:e.DecafRequestHandlerInterceptor},...n]}}};return a=r=p.__decorate([o.Module({})],a),Object.assign(a,"name",{value:"DecafModule"+t}),a}t.Decoration.for(r.InjectablesKeys.INJECTABLE).extend({decorator:(e,t)=>(t=t||("object"==typeof e?Object.assign(e,r.DefaultInjectablesConfig):r.DefaultInjectablesConfig),o.Injectable({scope:t.singleton?o.Scope.DEFAULT:o.Scope.REQUEST,durable:!t.singleton||void 0}))}).apply(),t.Decoration.for(r.InjectablesKeys.INJECT).extend({decorator:(e,t)=>(t,r,a)=>o.Inject(e||t)(t,r,a)}).apply(),t.Decoration.for(a.ValidationKeys.REQUIRED).extend(b({required:!0})).apply(),t.Decoration.for(a.ValidationKeys.MAX).extend({decorator:e=>b({maximum:e})}).apply(),t.Decoration.for(a.ValidationKeys.MIN).extend({decorator:e=>b({minimum:e})}).apply(),t.Decoration.for(a.ValidationKeys.MAX_LENGTH).extend({decorator:e=>b({maxLength:e})}).apply(),t.Decoration.for(a.ValidationKeys.MIN_LENGTH).extend({decorator:e=>b({minLength:e})}).apply(),t.Decoration.for(a.ValidationKeys.TYPE).extend({decorator:e=>(t,r)=>("function"!=typeof(e=Array.isArray(e)?e[0]:e)||e.name||(e=e()),b({type:e})(t,r))}).apply(),t.Decoration.for(a.ValidationKeys.DATE).extend({decorator:e=>b({type:String,format:"date-time"})}).apply(),t.Decoration.for(a.ValidationKeys.ENUM).extend({decorator:e=>b({enum:Array.isArray(e)?e:Object.values(e)})}).apply(),t.Decoration.for(a.ValidationKeys.PATTERN).extend({decorator:e=>b({pattern:"string"==typeof e?e:e.source})}).apply(),t.Decoration.for(i.PersistenceKeys.COLUMN).extend({decorator:e=>b({name:e})}).apply(),t.Decoration.for(t.DecorationKeys.DESCRIPTION).extend({decorator:e=>b({description:e})}).apply(),t.Decoration.for(i.PersistenceKeys.AUTH).extend({decorator:q}).apply();class ee extends i.ForbiddenError{constructor(e){super(e,ee.name)}}e.DecafExceptionFilter=class{catch(e,t){const r=t.switchToHttp(),o=r.getResponse(),a=r.getRequest(),i="production"===l.LoggedEnvironment.env;e instanceof c.BaseError||(e=new c.InternalError(e.message)),o.status(e.code).json({status:e.code,error:i?e.name:e.message,timestamp:(new Date).toISOString(),path:a.url,method:a.method})}},e.DecafExceptionFilter=p.__decorate([o.Catch()],e.DecafExceptionFilter);const te={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 re{constructor(e){this.options={...e}}customCSS(){let e="";return this.options.topbarIconPath&&(e+=`.topbar-wrapper { content: url('data:image/png;base64,${this.b64(this.options.topbarIconPath)}'); width: 200px; height: auto; }\n`),e+`\n .topbar-wrapper svg { visibility: hidden; }\n .swagger-ui .topbar { background-color: ${this.options.topbarBgColor||te.topbarBgColor}; }\n `}getCustomOptions(){const e={};return this.options.faviconPath&&(e.customfavIcon=this.b64(this.options.faviconPath,!0)),{customSiteTitle:this.options.title,...e,customCss:this.customCSS(),swaggerOptions:{persistAuthorization:this.options.persistAuthorization},jsonDocumentUrl:this.options.path?this.options.path+"/spec.json":void 0,yamlDocumentUrl:this.options.path?this.options.path+"/spec.yaml":void 0}}b64(e,t=!1){const r=y.join(this.options.assetsPath||"",e),o=u.readFileSync(r,{encoding:"base64"});return t?"data:image/png;base64,"+o:o}}class oe{constructor(e,t){this.app=e,this.options=t}createDocument(){const e=this.options.path?this.options.description+""+`<br><br><a href="${this.options.path}/spec.json">OpenAPI JSON Spec</a> | `+`<a href="${this.options.path}/spec.yaml">OpenAPI YAML Spec</a>`:this.options.description,t=(new n.DocumentBuilder).setTitle(this.options.title).setDescription(e).setVersion(this.options.version||"0.0.1").addBearerAuth(this.options.auth||te.auth).build();return n.SwaggerModule.createDocument(this.app,t,{extraModels:this.options.extraModels||[]})}setupSwagger(){const e=this.createDocument(),t=new re({title:this.options.title,path:this.options.path||te.path,persistAuthorization:this.options.persistAuthorization??!0,assetsPath:this.options.assetsPath,faviconPath:this.options.faviconFilePath,topbarIconPath:this.options.topbarIconFilePath,topbarBgColor:this.options.topbarBgColor});n.SwaggerModule.setup(this.options.path||te.path,this.app,e,{...t.getCustomOptions()})}}var ae;let ie=class{static{ae=this}static get persistence(){if(!this._persistence)throw new c.InternalError("Persistence service not initialized");return this._persistence}static get log(){return this._logger||(this._logger=l.Logging.for(ae)),this._logger}constructor(e,t){this.options=e,this.moduleRef=t}static async bootPersistence(e){const t=this.log.for(this.bootPersistence);if(!this._persistence){const r=e.conf.map(([e,t,...r])=>r.pop()?[e,t,...r]:[e,t]);this._persistence=new i.PersistenceService,await this._persistence.boot(r);const o=this._persistence.client;for(let t=0;t<o.length;t++){const r=e.conf[t];let[,,a]=r;if(!a){const e=i.Adapter.transformerFor(o[t].flavour);if(!e)throw new c.InternalError(`No transformer found for flavour ${o[t].flavour}. you should either @requestToContextTransformer or provide a transformer in the config`);a=e instanceof X?e:new e}W(o[t].flavour)(a)}t.info("persistence layer created successfully!")}return this.persistence.client}static forRoot(e){const t={provide:I,useValue:e},r={useFactory:async e=>ae.bootPersistence(e),provide:M,durable:!0,scope:o.Scope.DEFAULT,inject:[I]};return{module:ae,providers:[r,t],exports:[r]}}async onApplicationShutdown(){const e=ae.log.for(this.onApplicationShutdown),t=this.moduleRef.get(M);for(const r of t)try{r&&(e.info("Shutting down "+r.toString()),await r.shutdown())}catch(t){e.error("Failed to shutdown application",t)}}};var se;ie=ae=p.__decorate([o.Global(),o.Module({}),p.__param(0,o.Inject(I)),p.__metadata("design:paramtypes",[Object,d.ModuleRef])],ie),e.DecafModule=se=class{static async forRootAsync(e){const{autoControllers:t,autoServices:r,handlers:o}=e,a=(await ie.bootPersistence(e)).map(e=>e.flavour),i=[ie.forRoot(e)];return t&&a.forEach(e=>{i.push(Z(e).forRoot(e,{autoServices:r,handlers:o}))}),{module:se,imports:i}}},e.DecafModule=se=p.__decorate([o.Module({})],e.DecafModule);const ne="##VERSION##",ce="##PACKAGE##";t.Metadata.registerLibrary(ce,ne),e.AUTH_HANDLER=N,e.AUTH_META_KEY=j,e.ApiOperationFromModel=w,e.ApiParamsFromModel=D,e.ApiProperty=b,e.Auth=q,e.BulkApiOperationFromModel=(e,r,a)=>{const i={GET:[c.BulkCrudOperationKeys.READ_ALL,o.Get],POST:[c.BulkCrudOperationKeys.CREATE_ALL,o.Post],PUT:[c.BulkCrudOperationKeys.UPDATE_ALL,o.Put],PATCH:[c.BulkCrudOperationKeys.UPDATE_ALL,o.Patch],DELETE:[c.BulkCrudOperationKeys.DELETE_ALL,o.Delete]},[s,p]=i[r];return R(e,s)?t.apply(n.ApiExcludeEndpoint()):t.apply(p(a))},e.CorsError=ee,e.DECAF_ADAPTER_ID=M,e.DECAF_ADAPTER_OPTIONS=F,e.DECAF_CONTEXT_KEY=L,e.DECAF_HANDLERS=$,e.DECAF_MODULE_OPTIONS=I,e.DECAF_ROUTE=k,e.DECORATORS=g,e.DECORATORS_PREFIX=f,e.DecafAuthHandler=B,e.DecafBody=T,e.DecafController=Q,e.DecafModelController=V,e.DecafParams=S,e.DecafQuery=C,e.DecafRoleAuthHandler=class extends B{constructor(){super()}async authorize(e,r){const o=e.switchToHttp().getRequest(),s=this.parseRequest(o);if(!s)throw new i.AuthorizationError("Unauthenticated");const n=t.Metadata.get(a.Model.get(r),i.PersistenceKeys.AUTH_ROLE);if(!n.includes(s))throw new i.AuthorizationError("Missing role: "+s);return n}},e.DtoFor=Y,e.FromModelController=J,e.HttpVerbToDecorator=x,e.NestBootstraper=class{static get logger(){return this._logger||(this._logger=new o.Logger("NestBootstrap")),this._logger}static initialize(e){return this.app=e,this}static enableLogger(e){return this._logger=e||new o.Logger("NestBootstrap"),this.app.useLogger(this._logger),this}static enableCors(e=[],t=["GET","POST","PUT","DELETE"]){const r="*"===e?"*":e.map(e=>e.trim().toLowerCase()),o={origin:(e,t)=>e?"*"===r||Array.isArray(r)&&r.includes(e.toLowerCase())?t(null,!0):void t(new ee(`Origin ${e} not allowed`)):t(null,!0),credentials:!0,methods:t.join(",")};return this.app.enableCors(o),this}static useHelmet(e){try{const t=require("helmet");this.app.use(t(e)),this.logger.log("Helmet middleware enabled successfully.")}catch(e){this.logger.warn("Helmet not installed. Skipping middleware.")}return this}static setupSwagger(e){return new oe(this.app,{title:e.title,description:e.description,version:e.version,path:e.path||"api",persistAuthorization:e.persistAuthorization??!0,assetsPath:e.assetsPath,faviconFilePath:e.faviconPath,topbarIconFilePath:e.topbarIconPath,topbarBgColor:e.topbarBgColor}).setupSwagger(),this}static useGlobalPipes(...e){return e.length>0&&this.app.useGlobalPipes(...e),this}static useGlobalFilters(...t){return this.app.useGlobalFilters(...t.length>0?t:[new e.DecafExceptionFilter]),this}static useGlobalInterceptors(...e){return e.length>0&&this.app.useGlobalInterceptors(...e),this}static async start(e=Number(process.env.PORT)||3e3,t=void 0,r=!0){this.app.listen(e,t).then(async()=>{if(r){const e=await this.app.getUrl();this.logger.log("\ud83d\ude80 Application is running at: "+e)}})}},e.PACKAGE_NAME=ce,e.RequestToContextTransformer=X,e.SwaggerBuilder=oe,e.UseDecafFilter=()=>o.UseFilters(new e.DecafExceptionFilter),e.VERSION=ne,e.createApiPropertyDecorator=O,e.createPropertyDecorator=P,e.getEnumType=E,e.getEnumValues=A,e.getModuleFor=Z,e.isOperationBlocked=R,e.isUndefined=_,e.repoForModel=e=>{const t=a.Model.get(e);if(!t)throw new c.InternalError("Failed to find repository for "+e);return i.Repository.forModel(t)},e.requestToContextTransformer=W},"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("@decaf-ts/decoration"),require("@decaf-ts/injectable-decorators"),require("@nestjs/common"),require("@decaf-ts/decorator-validation"),require("@decaf-ts/core"),require("lodash"),require("@nestjs/swagger"),require("@decaf-ts/db-decorators"),require("tslib"),require("@nestjs/core"),require("@decaf-ts/logging"),require("fs"),require("path")):"function"==typeof define&&define.amd?define(["exports","@decaf-ts/decoration","@decaf-ts/injectable-decorators","@nestjs/common","@decaf-ts/decorator-validation","@decaf-ts/core","lodash","@nestjs/swagger","@decaf-ts/db-decorators","tslib","@nestjs/core","@decaf-ts/logging","fs","path"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self)["for-nest"]={},e.decafTsDecoration,e.decafTsInjectableDecorators,e.nestjsCommon,e.decafTsDecoratorValidation,e.decafTsCore,e.lodash,e.nestjsSwagger,e.decafTsDbDecorators,e.tslib,e.nestjsCore,e.decafTsLogging,e.fs,e.path);
1
+ var e,t;e=this,t=function(e,t,r,a,o,s,i,n,c,p,d,l,u,m,y){"use strict";function f(e){if(e&&e.__esModule)return e;var t=Object.create(null);return e&&Object.keys(e).forEach(r=>{if("default"!==r){var a=Object.getOwnPropertyDescriptor(e,r);Object.defineProperty(t,r,a.get?a:{enumerable:!0,get:()=>e[r]})}}),t.default=e,Object.freeze(t)}var h=f(m);const g="swagger",_={API_OPERATION:g+"/apiOperation",API_RESPONSE:g+"/apiResponse",API_PRODUCES:g+"/apiProduces",API_CONSUMES:g+"/apiConsumes",API_TAGS:g+"/apiUseTags",API_CALLBACKS:g+"/apiCallbacks",API_PARAMETERS:g+"/apiParameters",API_HEADERS:g+"/apiHeaders",API_MODEL_PROPERTIES:g+"/apiModelProperties",API_MODEL_PROPERTIES_ARRAY:g+"/apiModelPropertiesArray",API_SECURITY:g+"/apiSecurity",API_EXCLUDE_ENDPOINT:g+"/apiExcludeEndpoint",API_EXCLUDE_CONTROLLER:g+"/apiExcludeController",API_EXTRA_MODELS:g+"/apiExtraModels",API_EXTENSION:g+"/apiExtension",API_SCHEMA:g+"/apiSchema",API_DEFAULT_GETTER:g+"/apiDefaultGetter",API_LINK:g+"/apiLink"},A=e=>void 0===e;function O(e){if("function"==typeof e)return O(e());if(Array.isArray(e))return e;if("object"!=typeof e)return[];const t=Object.values(e).filter(e=>"number"==typeof e).map(e=>e.toString());return Object.keys(e).filter(e=>!t.includes(e)).map(t=>e[t])}function P(e){return e.filter(i.isString).length>0?"string":"number"}function E(e,t,r=!0){return(a,o)=>{const s=Reflect.getMetadata(_.API_MODEL_PROPERTIES_ARRAY,a)||[],n=":"+o;s.includes(n)||Reflect.defineMetadata(_.API_MODEL_PROPERTIES_ARRAY,[...s,":"+o],a);const c=Reflect.getMetadata(e,a,o);if(c){const s=i.pickBy(t,i.negate(A)),n=r?{...c,...s}:{...s,...c};Reflect.defineMetadata(e,n,a,o)}else{const r=a?.constructor?._OPENAPI_METADATA_FACTORY?.()[o]?.type??Reflect.getMetadata("design:type",a,o);Reflect.defineMetadata(e,{type:r,...i.pickBy(t,i.negate(A))},a,o)}}}function b(e={}){return R(e)}function R(e={},t=!0){const[r,a]=((e,t)=>{if(!e)return[e,t];if(t)return[e,t];const r=i.isArray(e);return[r?e[0]:e,r]})(e.type,e.isArray);if((o=e={...e,type:r,isArray:a}).isArray&&"enum"in o&&void 0!==o.enum){e.type="array";const t=O(e.enum);e.items={type:P(t),enum:t},delete e.enum}else if("enum"in e&&void 0!==e.enum){const t=O(e.enum);e.enum=t,e.type=P(t)}var o;return Array.isArray(e.type)&&(e.type="array",e.items={type:"array",items:{type:e.type[0]}}),E(_.API_MODEL_PROPERTIES,e,t)}function v(e,r){const{handler:a,args:o}=t.Metadata.get(e,c.OperationKeys.REFLECT+c.OperationKeys.BLOCK)||{};return!!a&&(a(...o,r)??!1)}function S(e,r,o){const s={GET:[c.OperationKeys.READ,a.Get],POST:[c.OperationKeys.CREATE,a.Post],PUT:[c.OperationKeys.UPDATE,a.Put],PATCH:[c.OperationKeys.UPDATE,a.Patch],DELETE:[c.OperationKeys.DELETE,a.Delete]},[i,p]=s[r];return v(e,i)?t.apply(n.ApiExcludeEndpoint()):t.apply(p(o))}function T(e=[]){const t=e.map(e=>n.ApiParam({name:e.name,description:e.description??"Path parameter: "+e.name,required:e.required??!0,type:e.type??String}));return a.applyDecorators(...t)}const w=a.createParamDecorator((e,t)=>{const r=t.switchToHttp().getRequest().body,o=t.getClass(),s=o.class;if(!s)throw new a.InternalServerErrorException(`ModelConstructor not found on controller ${o.name}. Ensure the controller was created via FromModelController.`);return r?Array.isArray(r)?r.map(e=>new s(e)):new s(r):r}),C=a.createParamDecorator((e,t)=>{const r=t.switchToHttp().getRequest(),a=r?.params??{},o=e??Object.keys(a),s=o.map(e=>a[e]);return{raw:a,valuesInOrder:s,keysInOrder:o}});function D(e=[]){const t=e.map(e=>e.name);return C(t)}const x=a.createParamDecorator((e,t)=>{const r={...t.switchToHttp().getRequest().query??{}};if(void 0!==r.limit){const e=Number(r.limit);Number.isNaN(e)||(r.limit=e)}if(void 0!==r.offset){const e=Number(r.offset);Number.isNaN(e)||(r.offset=e)}if(void 0!==r.bookmark){const e=Number(r.bookmark);r.bookmark=Number.isNaN(e)?r.bookmark:e}return r});function F(e){const t={GET:a.Get,POST:a.Post,PUT:a.Put,PATCH:a.Patch,DELETE:a.Delete}[e];if(!t)throw Error(`Unsupported HTTP verb "${e}". No NestJS decorator mapping was found.`);return t}const I="DecafModuleOptions",M="DecafAdapter",$="DecafRoute",k=Symbol("DecafHandlers"),N=Symbol("DecafAdapterForOptions"),j=Symbol("AUTH_HANDLER"),K="auth:meta",L=Symbol("decaf:context");function q(t){const r="string"==typeof t?t:t.name;return a.applyDecorators(n.ApiBearerAuth(),a.SetMetadata(K,r),a.UseInterceptors(e.AuthInterceptor))}e.AuthInterceptor=class{constructor(e,t){this.reflector=e,this.authHandler=t}async intercept(e,t){const r=this.reflector.get(K,e.getHandler())??this.reflector.get(K,e.getClass());return r&&this.authHandler&&await this.authHandler.authorize(e,r),t.handle()}},e.AuthInterceptor=p.__decorate([a.Injectable(),p.__param(1,a.Optional()),p.__param(1,a.Inject(j)),p.__metadata("design:paramtypes",[d.Reflector,Object])],e.AuthInterceptor);class B{parseRequest(e){const t=e.headers.authorization?.split(" ")[1];return t}async authorize(e,r){const a=e.switchToHttp().getRequest(),i=this.parseRequest(a);if(!i)throw new s.AuthorizationError("Unauthenticated");if(!t.Metadata.get(o.Model.get(r),s.PersistenceKeys.AUTH_ROLE).includes(i))throw new s.AuthorizationError("Missing role: "+i)}}e.DecafRequestContext=class{put(e){let t;try{t=this.ctx.get("overrides")}catch(e){t={}}this._ctx=this.ctx.accumulate({overrides:Object.assign(t,e)})}applyCtx(e){this._ctx=e}get ctx(){if(!this._ctx)throw new c.InternalError("Context not initialized for request");return this._ctx}},e.DecafRequestContext=p.__decorate([a.Injectable({scope:a.Scope.REQUEST})],e.DecafRequestContext),e.DecafHandlerExecutor=class{constructor(e,t){this.handlers=e,this.context=t}async exec(e,t){for(const r of this.handlers)await r.handle(this.context,e,t)}},e.DecafHandlerExecutor=p.__decorate([a.Injectable({scope:a.Scope.REQUEST}),p.__param(0,a.Inject(k)),p.__metadata("design:paramtypes",[Array,e.DecafRequestContext])],e.DecafHandlerExecutor);const U=e=>({name:e,description:e+" parameter for the query",required:!0,type:String});function G(e,t,r,o=!1){const i=F(r),c=(e=>e.split("/").filter(e=>e.startsWith(":")).map(e=>e.slice(1)))(t).map(U),p=[];return"GET"===r&&o&&p.push(n.ApiQuery({name:"direction",required:!1,enum:s.OrderDirection,description:"the sort order when applicable"}),n.ApiQuery({name:"limit",required:!1,description:"limit or page size when applicable"}),n.ApiQuery({name:"offset",required:!1,description:"offset or bookmark when applicable"})),{method:[i(t),...c.map(n.ApiParam),...p,n.ApiOperation({summary:`Retrieve records using according to "${e}".`}),n.ApiOkResponse({description:"Result successfully retrieved."}),n.ApiNoContentResponse({description:"No content returned by the method."})],params:[D(c),a.Query()]}}function H(e,t,r,a){const o=e?.prototype??e;a.method.forEach(e=>e(o,t,r)),a.params?.forEach((e,r)=>e(o,t,r))}function z(e){return async function(t,r){const a=this.log.for(e);try{a.debug(`Invoking persistence method "${e}" given parameters: ${JSON.stringify(t.valuesInOrder)}`);const{direction:o,limit:i,offset:n}=r;return await((e,t,...r)=>{if(e instanceof s.ModelService)return"function"==typeof e[t]?e[t](...r):e.statement(t,...r);if("function"==typeof e[t])return e[t](...r);throw Error(`Persistence method "${t}" not found on ${e?.constructor?.name}`)})(this.persistence(),e,...t.valuesInOrder,o,i,n)}catch(t){throw a.error(`Custom query "${e}" failed`,t),t}}}function Q(e,t,r){return Object.defineProperty(e.prototype||e,t,{value:r,writable:!1}),Object.getOwnPropertyDescriptor(e.prototype||e,t)}class V extends s.Service{constructor(e,t){super(t),this.clientContext=e}logCtx(e,t,r=!1,a){const o=this.clientContext.ctx;return e=e.filter(e=>void 0!==e),s.ContextualLoggedClass.logCtx.call(this,t,a||{},r,...e,o)}}class Y extends V{persistence(e){if(!this._persistence)try{this._persistence=s.ModelService.getService(this.class)}catch(e){this._persistence=s.Repository.forModel(this.class)}return e?this._persistence instanceof s.Repository?this._persistence.override(e.toOverrides()):this._persistence.for(e.toOverrides()):this._persistence}constructor(e,t){super(e,t)}logCtx(e,t,r=!1){const a=this.clientContext.ctx;let o={};try{o=a.get("overrides")}catch(e){}const i=this.persistence(a);let n,c;return i instanceof s.ModelService?n=i.repo.adapter:i instanceof s.Repository?n=i.adapter:i.context&&(n=i),r?n.logCtx(e,t,!0,o).then(e=>e):(c=n.logCtx(e,t,!1,o),c)}}function X(e,r){if(!s.TransactionOperationKeys.includes(e))return r;const a=[c.OperationKeys.UPDATE,c.BulkCrudOperationKeys.UPDATE_ALL].includes(e),i=t.Metadata.properties(r)||[],p=o.Model.relations(r)||[];let d=i.filter(e=>o.Model.generated(r,e));a&&(d=d.filter(e=>e!==o.Model.pk(r)));class u extends(n.OmitType(r,d)){}function m(e,t,r){r||(Object.defineProperty(u.prototype,e,{value:r?[t]:t,writable:!0,enumerable:!0,configurable:!0}),Reflect.defineMetadata("design:type",t,u.prototype,e))}Object.defineProperty(u,"name",{value:`${l.toPascalCase(r.name)}${l.toPascalCase(e)}DTO`});for(const a of p){let s=t.Metadata.allowedTypes(r,a);if(s=s?Array.isArray(s)?s[0]:s:void 0,s="function"!=typeof s||s.name?s:s(),!s)throw new c.InternalError(`Type for relation ${a} not found`);if(o.Model.get(s.name)){const i=t.Metadata.validationFor(r,a);m(a,X(e,s),!!i[o.ValidationKeys.LIST])}}return u}s.Adapter.transformerFor=(e=>{const r="string"==typeof e?e:e.alias;return t.Metadata.innerGet(Symbol.for("transformers"),r)}).bind(s.Adapter),s.Adapter.flavoursToTransform=(()=>{const e=t.Metadata.innerGet(Symbol.for("transformers"));if(e)return Object.keys(e)}).bind(s.Adapter),s.Context.prototype.toResponse=function(e){const t=this.pending();return t&&e.header("x-pending-task",JSON.stringify(t)),e};class J{static{this.log=l.Logging.for(J.name)}static getPersistence(e){try{return s.ModelService.getService(e)}catch(t){return s.Repository.forModel(e)}}static createQueryRoutesFromRepository(e,r=s.PersistenceKeys.QUERY){const a=J.log.for(J.createQueryRoutesFromRepository),o=e instanceof s.ModelService?e.repo:e,i=o.class,n=t.Metadata.get(o.constructor,t.Metadata.key(s.PersistenceKeys.QUERY))??{},c=t.Metadata.get(e.constructor,t.Metadata.key($))??{};class p extends Y{get class(){throw Error("Method not implemented.")}constructor(e,t){super(e,t)}}for(const[e,t]of Object.entries(c)){const r=[t.path.replace(/^\/+|\/+$/g,"")].filter(e=>e&&e.trim()).join("/"),o=z(e);if(!o){const t=`Invalid or missing handler for model ${i.name} on decorated method ${e}`;throw a.error(t),Error(t)}const s=Q(p,e,o);s&&H(p,e,s,G(e,r,t.httpMethod))}for(const[e,t]of Object.entries(n)){const a=[r,e,...(t.fields??[]).map(e=>":"+e)].filter(e=>e&&e.trim()).join("/"),o=Q(p,e,z(e));o&&H(p,e,o,G(e,a,"GET",!0))}return p}static create(t){const r=J.log.for(J.create),i=o.Model.tableName(t),d=l.toKebabCase(i),u=t.name,m=J.getPersistence(t),{description:y,getPK:f,apiProperties:h,path:g}=J.getRouteParametersFromModel(t);r.debug("Creating controller for model: "+u);const _=J.createQueryRoutesFromRepository(m);let A=class extends _{static get class(){return t}get class(){return t}constructor(e){super(e),this.pk=o.Model.pk(t),r.info(`Registering dynamic controller for model: ${this.class.name} route: /${d}`)}async listBy(e,t){const{ctx:r}=(await this.logCtx([],s.PreparedStatementKeys.LIST_BY,!0)).for(this.listBy);return this.persistence(r).listBy(e,t.direction,r)}async paginateBy(e,t){const{ctx:r}=(await this.logCtx([],s.PreparedStatementKeys.PAGE_BY,!0)).for(this.paginateBy);return this.persistence(r).paginateBy(e,t.direction,t,r)}async findOneBy(e,t){const{ctx:r}=(await this.logCtx([],s.PreparedStatementKeys.FIND_ONE_BY,!0)).for(this.findOneBy);return this.persistence(r).findOneBy(e,t,r)}async findBy(e,t,r){const{ctx:a}=(await this.logCtx([],s.PreparedStatementKeys.FIND_BY,!0)).for(this.findBy);return this.persistence(a).for(a.toOverrides()).findBy(e,t,a)}async statement(e,t,r){const{ctx:a}=(await this.logCtx([],s.PersistenceKeys.STATEMENT,!0)).for(this.statement),{direction:o,offset:i,limit:n,bookmark:c}=r;switch(t=t.map(e=>("string"==typeof e?parseInt(e):e)||e),e){case s.PreparedStatementKeys.FIND_BY:break;case s.PreparedStatementKeys.LIST_BY:t.push(o);break;case s.PreparedStatementKeys.PAGE_BY:t=[t[0],o,{limit:n,offset:i,bookmark:c}];case s.PreparedStatementKeys.FIND_ONE_BY:case s.PreparedStatementKeys.COUNT_OF:case s.PreparedStatementKeys.MAX_OF:case s.PreparedStatementKeys.MIN_OF:case s.PreparedStatementKeys.AVG_OF:case s.PreparedStatementKeys.SUM_OF:case s.PreparedStatementKeys.DISTINCT_OF:case s.PreparedStatementKeys.GROUP_OF:}return this.persistence(a).statement(e,...t,a)}async countOf(){const{ctx:e}=(await this.logCtx([],s.PreparedStatementKeys.COUNT_OF,!0)).for(this.countOf);return this.persistence(e).statement(s.PreparedStatementKeys.COUNT_OF,e)}async countOfField(e){const{ctx:t}=(await this.logCtx([],s.PreparedStatementKeys.COUNT_OF,!0)).for(this.countOfField);return this.persistence(t).statement(s.PreparedStatementKeys.COUNT_OF,e,t)}async maxOf(e){const{ctx:t}=(await this.logCtx([],s.PreparedStatementKeys.MAX_OF,!0)).for(this.maxOf);return this.persistence(t).statement(s.PreparedStatementKeys.MAX_OF,e,t)}async minOf(e){const{ctx:t}=(await this.logCtx([],s.PreparedStatementKeys.MIN_OF,!0)).for(this.minOf);return this.persistence(t).statement(s.PreparedStatementKeys.MIN_OF,e,t)}async avgOf(e){const{ctx:t}=(await this.logCtx([],s.PreparedStatementKeys.AVG_OF,!0)).for(this.avgOf);return this.persistence(t).statement(s.PreparedStatementKeys.AVG_OF,e,t)}async sumOf(e){const{ctx:t}=(await this.logCtx([],s.PreparedStatementKeys.SUM_OF,!0)).for(this.sumOf);return this.persistence(t).statement(s.PreparedStatementKeys.SUM_OF,e,t)}async distinctOf(e){const{ctx:t}=(await this.logCtx([],s.PreparedStatementKeys.DISTINCT_OF,!0)).for(this.distinctOf);return this.persistence(t).statement(s.PreparedStatementKeys.DISTINCT_OF,e,t)}async groupOf(e){const{ctx:t}=(await this.logCtx([],s.PreparedStatementKeys.GROUP_OF,!0)).for(this.groupOf);return this.persistence(t).statement(s.PreparedStatementKeys.GROUP_OF,e,t)}async createAll(e,r){const{ctx:a,log:o}=(await this.logCtx([],c.BulkCrudOperationKeys.CREATE_ALL,!0)).for(this.createAll);let s;o.verbose("creating new "+u);try{s=await this.persistence(a).createAll(e.map(e=>new t(e)),a)}catch(e){throw o.error("Failed to create new "+u,e),e}return o.info(`created new ${u} with id ${s[this.pk]}`),a.toResponse(r),s}async create(e,t){const{ctx:r,log:a}=(await this.logCtx([],c.OperationKeys.CREATE,!0)).for(this.create);let o;a.verbose("creating new "+u);try{const t=this.persistence(r);o=await t.create(e,r)}catch(e){throw a.error("Failed to create new "+u,e),e}return a.info(`created new ${u} with id ${o[this.pk]}`),r.toResponse(t),o}async readAll(e){const{ctx:t,log:r}=(await this.logCtx([],c.BulkCrudOperationKeys.READ_ALL,!0)).for(this.readAll);let a;try{r.debug(`reading ${e.length} ${u}: ${e}`);const o=this.persistence(t);a=await o.readAll(e,t)}catch(t){throw r.error(`Failed to ${u} with id ${e}`,t),t}return r.info(`read ${a.length} ${u}`),a}async read(e){const{ctx:t,log:r}=(await this.logCtx([],c.OperationKeys.READ,!0)).for(this.read),a=f(...e.valuesInOrder);if(void 0===a)throw new c.ValidationError(`No ${this.pk} provided`);let o;try{r.debug(`reading ${u} with ${this.pk} ${a}`);const e=this.persistence(t);o=await e.read(a,t)}catch(e){throw r.error(`Failed to read ${u} with id ${a}`,e),e}return r.info(`read ${u} with id ${o[this.pk]}`),o}async updateAll(e,t){const{ctx:r,log:a}=(await this.logCtx([],c.BulkCrudOperationKeys.UPDATE_ALL,!0)).for(this.updateAll);let o;try{a.info(`updating ${e.length} ${u}`),o=await this.persistence(r).updateAll(e,r)}catch(e){throw a.error(e),e}return r.toResponse(t),o}async update(e,r,a){const{ctx:o,log:s}=(await this.logCtx([],c.OperationKeys.UPDATE,!0)).for(this.update),i=f(...e.valuesInOrder);if(void 0===i)throw new c.ValidationError(`No ${this.pk} provided`);let n;try{s.info(`updating ${u} with ${this.pk} ${i}`);const e=JSON.parse(JSON.stringify(r)),a=this.persistence(o);n=await a.update(new t({...e,[this.pk]:i}),o)}catch(e){throw s.error(e),e}return o.toResponse(a),n}async deleteAll(e,t){const{ctx:r,log:a}=(await this.logCtx([],c.BulkCrudOperationKeys.DELETE_ALL,!0)).for(this.deleteAll);let o;try{a.debug(`deleting ${e.length} ${u}: ${e}`),o=await this.persistence(r).deleteAll(e,r)}catch(t){throw a.error(`Failed to delete ${u} with id ${e}`,t),t}return a.info(`deleted ${o.length} ${u}`),r.toResponse(t),o}async delete(e,t){const{ctx:r,log:a}=(await this.logCtx([],c.OperationKeys.DELETE,!0)).for(this.delete),o=f(...e.valuesInOrder);if(void 0===o)throw new c.ValidationError(`No ${this.pk} provided`);let s;try{a.debug(`deleting ${u} with ${this.pk} ${o}`),s=await this.persistence(r).delete(o,r)}catch(e){throw a.error(`Failed to delete ${u} with id ${o}`,e),e}return a.info(`deleted ${u} with id ${o}`),r.toResponse(t),s}};return p.__decorate([S(t,"GET","listBy/:key"),n.ApiOperation({summary:`Retrieve ${u} records by query.`}),n.ApiParam({name:"key",description:"the model key to sort by"}),n.ApiQuery({name:"direction",required:!0,enum:s.OrderDirection}),n.ApiOkResponse({description:u+" listed successfully."}),p.__param(1,x()),p.__metadata("design:type",Function),p.__metadata("design:paramtypes",[String,Object]),p.__metadata("design:returntype",Promise)],A.prototype,"listBy",null),p.__decorate([S(t,"GET","paginateBy/:key/:page"),n.ApiOperation({summary:`Retrieve ${u} records by query.`}),n.ApiParam({name:"key",description:"the model key to sort by"}),n.ApiParam({name:"page",description:"the page to retrieve or the bookmark"}),n.ApiQuery({name:"direction",required:!0,enum:s.OrderDirection,description:"the sort order"}),n.ApiQuery({name:"limit",required:!0,description:"the page size"}),n.ApiQuery({name:"offset",description:"the bookmark when necessary"}),n.ApiOkResponse({description:u+" listed paginated."}),p.__param(0,a.Param("key")),p.__param(1,x()),p.__metadata("design:type",Function),p.__metadata("design:paramtypes",[String,Object]),p.__metadata("design:returntype",Promise)],A.prototype,"paginateBy",null),p.__decorate([S(t,"GET","findOneBy/:key"),n.ApiOperation({summary:`Retrieve ${u} records by query.`}),n.ApiParam({name:"key",description:"the model key to sort by"}),n.ApiOkResponse({description:u+" listed found."}),n.ApiNotFoundResponse({description:`No ${u} record matches the provided identifier.`}),p.__param(0,a.Param("key")),p.__param(1,a.Param("value")),p.__metadata("design:type",Function),p.__metadata("design:paramtypes",[String,Object]),p.__metadata("design:returntype",Promise)],A.prototype,"findOneBy",null),p.__decorate([S(t,"GET","findBy/:key/:value"),n.ApiOperation({summary:`Retrieve ${u} records by query.`}),n.ApiParam({name:"key",description:"the model key to compare"}),n.ApiParam({name:"value",description:"the value to match"}),n.ApiQuery({name:"direction",required:!0,enum:s.OrderDirection,description:"the sort order when applicable"}),n.ApiOkResponse({description:u+" listed found."}),n.ApiNotFoundResponse({description:`No ${u} record matches the provided identifier.`}),p.__param(0,a.Param("key")),p.__param(1,a.Param("value")),p.__param(2,x()),p.__metadata("design:type",Function),p.__metadata("design:paramtypes",[String,Object,Object]),p.__metadata("design:returntype",Promise)],A.prototype,"findBy",null),p.__decorate([S(t,"GET","statement/:method/*args"),n.ApiOperation({summary:`Executes a prepared statement on ${u}.`}),n.ApiParam({name:"method",description:"the prepared statement to execute"}),n.ApiParam({name:"args",description:"concatenated list of arguments the prepared statement can accept"}),n.ApiQuery({name:"direction",required:!0,enum:s.OrderDirection,description:"the sort order when applicable"}),n.ApiQuery({name:"limit",required:!0,description:"limit or page size when applicable"}),n.ApiQuery({name:"offset",required:!0,description:"offset or bookmark when applicable"}),n.ApiOkResponse({description:u+" listed found."}),n.ApiNotFoundResponse({description:`No ${u} record matches the provided identifier.`}),p.__param(0,a.Param("method")),p.__param(1,a.Param("args")),p.__param(2,x()),p.__metadata("design:type",Function),p.__metadata("design:paramtypes",[String,Array,Object]),p.__metadata("design:returntype",Promise)],A.prototype,"statement",null),p.__decorate([S(t,"GET","countOf"),n.ApiOperation({summary:`Count all ${u} records.`}),n.ApiOkResponse({description:`Count of ${u} records.`,type:Number}),p.__metadata("design:type",Function),p.__metadata("design:paramtypes",[]),p.__metadata("design:returntype",Promise)],A.prototype,"countOf",null),p.__decorate([S(t,"GET","countOf/:field"),n.ApiOperation({summary:`Count ${u} records by field.`}),n.ApiParam({name:"field",description:"The field to count"}),n.ApiOkResponse({description:`Count of ${u} records.`,type:Number}),p.__param(0,a.Param("field")),p.__metadata("design:type",Function),p.__metadata("design:paramtypes",[String]),p.__metadata("design:returntype",Promise)],A.prototype,"countOfField",null),p.__decorate([S(t,"GET","maxOf/:field"),n.ApiOperation({summary:`Find maximum value of a field in ${u}.`}),n.ApiParam({name:"field",description:"The field to find max of"}),n.ApiOkResponse({description:`Maximum value of the field in ${u}.`}),p.__param(0,a.Param("field")),p.__metadata("design:type",Function),p.__metadata("design:paramtypes",[String]),p.__metadata("design:returntype",Promise)],A.prototype,"maxOf",null),p.__decorate([S(t,"GET","minOf/:field"),n.ApiOperation({summary:`Find minimum value of a field in ${u}.`}),n.ApiParam({name:"field",description:"The field to find min of"}),n.ApiOkResponse({description:`Minimum value of the field in ${u}.`}),p.__param(0,a.Param("field")),p.__metadata("design:type",Function),p.__metadata("design:paramtypes",[String]),p.__metadata("design:returntype",Promise)],A.prototype,"minOf",null),p.__decorate([S(t,"GET","avgOf/:field"),n.ApiOperation({summary:`Calculate average of a field in ${u}.`}),n.ApiParam({name:"field",description:"The field to calculate average of"}),n.ApiOkResponse({description:`Average value of the field in ${u}.`,type:Number}),p.__param(0,a.Param("field")),p.__metadata("design:type",Function),p.__metadata("design:paramtypes",[String]),p.__metadata("design:returntype",Promise)],A.prototype,"avgOf",null),p.__decorate([S(t,"GET","sumOf/:field"),n.ApiOperation({summary:`Calculate sum of a field in ${u}.`}),n.ApiParam({name:"field",description:"The field to calculate sum of"}),n.ApiOkResponse({description:`Sum of the field in ${u}.`,type:Number}),p.__param(0,a.Param("field")),p.__metadata("design:type",Function),p.__metadata("design:paramtypes",[String]),p.__metadata("design:returntype",Promise)],A.prototype,"sumOf",null),p.__decorate([S(t,"GET","distinctOf/:field"),n.ApiOperation({summary:`Find distinct values of a field in ${u}.`}),n.ApiParam({name:"field",description:"The field to find distinct values of"}),n.ApiOkResponse({description:`Distinct values of the field in ${u}.`,type:[String]}),p.__param(0,a.Param("field")),p.__metadata("design:type",Function),p.__metadata("design:paramtypes",[String]),p.__metadata("design:returntype",Promise)],A.prototype,"distinctOf",null),p.__decorate([S(t,"GET","groupOf/:field"),n.ApiOperation({summary:`Group ${u} records by a field.`}),n.ApiParam({name:"field",description:"The field to group by"}),n.ApiOkResponse({description:u+" records grouped by the field."}),p.__param(0,a.Param("field")),p.__metadata("design:type",Function),p.__metadata("design:paramtypes",[String]),p.__metadata("design:returntype",Promise)],A.prototype,"groupOf",null),p.__decorate([S(t,"POST","bulk"),n.ApiOperation({summary:`Create a new ${u}.`}),n.ApiBody({description:"Payload for "+u,schema:{type:"array",items:{$ref:n.getSchemaPath(t)}}}),n.ApiCreatedResponse({description:u+" created successfully.",schema:{type:"array",items:{$ref:n.getSchemaPath(t)}}}),n.ApiBadRequestResponse({description:"Payload validation failed."}),n.ApiUnprocessableEntityResponse({description:"Repository rejected the provided payload."}),p.__param(0,w()),p.__param(1,a.Response({passthrough:!0})),p.__metadata("design:type",Function),p.__metadata("design:paramtypes",[Array,Object]),p.__metadata("design:returntype",Promise)],A.prototype,"createAll",null),p.__decorate([S(t,"POST"),n.ApiOperation({summary:`Create a new ${u}.`}),n.ApiBody({description:"Payload for "+u,type:X(c.OperationKeys.CREATE,t)}),n.ApiCreatedResponse({description:u+" created successfully.",schema:{$ref:n.getSchemaPath(t)}}),n.ApiBadRequestResponse({description:"Payload validation failed."}),n.ApiUnprocessableEntityResponse({description:"Repository rejected the provided payload."}),p.__param(0,w()),p.__param(1,a.Response({passthrough:!0})),p.__metadata("design:type",Function),p.__metadata("design:paramtypes",[Object,Object]),p.__metadata("design:returntype",Promise)],A.prototype,"create",null),p.__decorate([S(t,"GET","bulk"),n.ApiOperation({summary:`Retrieve a ${u} record by id.`}),n.ApiQuery({name:"ids",required:!0,type:"array"}),n.ApiOkResponse({description:u+" retrieved successfully.",schema:{type:"array",items:{$ref:n.getSchemaPath(t)}}}),n.ApiNotFoundResponse({description:`No ${u} record matches the provided identifier.`}),p.__param(0,a.Query("ids")),p.__metadata("design:type",Function),p.__metadata("design:paramtypes",[Array]),p.__metadata("design:returntype",Promise)],A.prototype,"readAll",null),p.__decorate([S(t,"GET",g),T(h),n.ApiOperation({summary:`Retrieve a ${u} record by id.`}),n.ApiOkResponse({description:u+" retrieved successfully.",schema:{$ref:n.getSchemaPath(t)}}),n.ApiNotFoundResponse({description:`No ${u} record matches the provided identifier.`}),p.__param(0,D(h)),p.__metadata("design:type",Function),p.__metadata("design:paramtypes",[Object]),p.__metadata("design:returntype",Promise)],A.prototype,"read",null),p.__decorate([S(t,"PUT","bulk"),T(h),n.ApiOperation({summary:`Replace an existing ${u} record with a new payload.`}),n.ApiBody({description:"Payload for replace a existing record of "+u,schema:{type:"array",items:{$ref:n.getSchemaPath(t)}}}),n.ApiCreatedResponse({description:u+" updated successfully.",schema:{type:"array",items:{$ref:n.getSchemaPath(t)}}}),n.ApiNotFoundResponse({description:`No ${u} record matches the provided identifier.`}),n.ApiBadRequestResponse({description:"Payload validation failed."}),p.__param(0,w()),p.__param(1,a.Response({passthrough:!0})),p.__metadata("design:type",Function),p.__metadata("design:paramtypes",[Array,Object]),p.__metadata("design:returntype",Promise)],A.prototype,"updateAll",null),p.__decorate([S(t,"PUT",g),T(h),n.ApiOperation({summary:`Replace an existing ${u} record with a new payload.`}),n.ApiBody({description:"Payload for replace a existing record of "+u,schema:{$ref:n.getSchemaPath(t)}}),n.ApiOkResponse({description:u+" updated successfully."}),n.ApiNotFoundResponse({description:`No ${u} record matches the provided identifier.`}),n.ApiBadRequestResponse({description:"Payload validation failed."}),p.__param(0,D(h)),p.__param(1,w()),p.__param(2,a.Response({passthrough:!0})),p.__metadata("design:type",Function),p.__metadata("design:paramtypes",[Object,Object,Object]),p.__metadata("design:returntype",Promise)],A.prototype,"update",null),p.__decorate([S(t,"DELETE","bulk"),T(h),n.ApiOperation({summary:`Retrieve a ${u} record by id.`}),n.ApiQuery({name:"ids",required:!0,type:"array"}),n.ApiOkResponse({description:u+" retrieved successfully."}),n.ApiNotFoundResponse({description:`No ${u} record matches the provided identifier.`}),p.__param(0,a.Query("ids")),p.__param(1,a.Response({passthrough:!0})),p.__metadata("design:type",Function),p.__metadata("design:paramtypes",[Array,Object]),p.__metadata("design:returntype",Promise)],A.prototype,"deleteAll",null),p.__decorate([S(t,"DELETE",g),T(h),n.ApiOperation({summary:`Delete a ${u} record by id.`}),n.ApiOkResponse({description:u+" record deleted successfully."}),n.ApiNotFoundResponse({description:`No ${u} record matches the provided identifier.`}),p.__param(0,D(h)),p.__param(1,a.Response({passthrough:!0})),p.__metadata("design:type",Function),p.__metadata("design:paramtypes",[Object,Object]),p.__metadata("design:returntype",Promise)],A.prototype,"delete",null),A=p.__decorate([a.Controller(d),n.ApiTags(u),n.ApiExtraModels(t),q(t),p.__metadata("design:paramtypes",[e.DecafRequestContext])],A),A}static createStreamedController(){}static getRouteParametersFromModel(e){const r=o.Model.pk(e),a=t.Metadata.get(e,t.Metadata.key(c.DBKeys.COMPOSED,r)),s=a?.args??[],i=Array.isArray(s)&&s.length>0?Array.from(new Set([...s])):Array.from(new Set([r])),n=t.Metadata.description(e);return{path:":"+i.join("/:"),description:n,apiProperties:i.map(r=>({name:r,description:t.Metadata.description(e,r),required:!0,type:String})),getPK:(...e)=>a?.separator?e.join(a.separator):e.join("")}}}e.DecafRequestHandlerInterceptor=class{constructor(e,t){this.requestContext=e,this.executor=t}async contextualize(e){const t={headers:e.headers,overrides:{}},r=s.Adapter.flavoursToTransform();if(r)for(const a of r)try{const r=s.Adapter.transformerFor(a),o=await r.from(e);Object.assign(t.overrides,o)}catch(e){throw new c.InternalError("Failed to contextualize request: "+e)}return(new s.Context).accumulate(Object.assign({},s.DefaultAdapterFlags,{logger:l.Logging.get(),timestamp:new Date},t))}async intercept(e,t){const r=e.switchToHttp().getRequest(),a=e.switchToHttp().getResponse(),o=await this.contextualize(r);return this.requestContext.applyCtx(o),await this.executor.exec(r,a),t.handle()}},e.DecafRequestHandlerInterceptor=p.__decorate([a.Injectable({scope:a.Scope.REQUEST}),p.__metadata("design:paramtypes",[e.DecafRequestContext,e.DecafHandlerExecutor])],e.DecafRequestHandlerInterceptor);class W{}function Z(e){return r=>(t.Metadata.set("transformers",e,r),"function"==typeof r?t.metadata("transformers",e)(r):r)}function ee(t){var r;let o=class{static{r=this}static{this.log=l.Logging.for(r.name).for(t)}static createModelServices(e){return e.map(e=>({provide:e.name+"Service",useFactory:()=>s.ModelService.forModel(e)}))}static forRoot(t,a={}){const o=this.log.for(this.forRoot);o.info("Generating controllers for flavour...");const i=s.Adapter.models(t);let n=[];a.autoServices&&(o.info("Auto-services enabled. Initializing service generation."),n=this.createModelServices(i),o.info(`Auto-services completed. ${n.length} services initialized.`));const c=i.map(J.create);return o.info(`Generated ${c.length} controllers`),{module:r,controllers:c,providers:[{provide:k,useFactory:()=>a.handlers?.map(e=>(o.info("Registered request handler: "+e.name),new e))??[]},e.DecafRequestContext,e.DecafHandlerExecutor,{provide:d.APP_INTERCEPTOR,useClass:e.DecafRequestHandlerInterceptor},...n]}}};return o=r=p.__decorate([a.Module({})],o),Object.assign(o,"name",{value:"DecafModule"+t}),o}t.Decoration.for(r.InjectablesKeys.INJECTABLE).extend({decorator:(e,t)=>(t=t||("object"==typeof e?Object.assign(e,r.DefaultInjectablesConfig):r.DefaultInjectablesConfig),a.Injectable({scope:t.singleton?a.Scope.DEFAULT:a.Scope.REQUEST,durable:!t.singleton||void 0}))}).apply(),t.Decoration.for(r.InjectablesKeys.INJECT).extend({decorator:(e,t)=>(t,r,o)=>a.Inject(e||t)(t,r,o)}).apply(),t.Decoration.for(o.ValidationKeys.REQUIRED).extend(b({required:!0})).apply(),t.Decoration.for(o.ValidationKeys.MAX).extend({decorator:e=>b({maximum:e})}).apply(),t.Decoration.for(o.ValidationKeys.MIN).extend({decorator:e=>b({minimum:e})}).apply(),t.Decoration.for(o.ValidationKeys.MAX_LENGTH).extend({decorator:e=>b({maxLength:e})}).apply(),t.Decoration.for(o.ValidationKeys.MIN_LENGTH).extend({decorator:e=>b({minLength:e})}).apply(),t.Decoration.for(o.ValidationKeys.TYPE).extend({decorator:e=>(t,r)=>("function"!=typeof(e=Array.isArray(e)?e[0]:e)||e.name||(e=e()),b({type:e})(t,r))}).apply(),t.Decoration.for(o.ValidationKeys.DATE).extend({decorator:e=>b({type:String,format:"date-time"})}).apply(),t.Decoration.for(o.ValidationKeys.ENUM).extend({decorator:e=>b({enum:Array.isArray(e)?e:Object.values(e)})}).apply(),t.Decoration.for(o.ValidationKeys.PATTERN).extend({decorator:e=>b({pattern:"string"==typeof e?e:e.source})}).apply(),t.Decoration.for(s.PersistenceKeys.COLUMN).extend({decorator:e=>b({name:e})}).apply(),t.Decoration.for(t.DecorationKeys.DESCRIPTION).extend({decorator:e=>b({description:e})}).apply(),t.Decoration.for(s.PersistenceKeys.AUTH).extend({decorator:q}).apply();class te extends s.ForbiddenError{constructor(e){super(e,te.name)}}e.DecafExceptionFilter=class{catch(e,t){const r=t.switchToHttp(),a=r.getResponse(),o=r.getRequest(),s="production"===l.LoggedEnvironment.env;e instanceof c.BaseError||(e=new c.InternalError(e.message)),a.status(e.code).json({status:e.code,error:s?e.name:e.message,timestamp:(new Date).toISOString(),path:o.url,method:o.method})}},e.DecafExceptionFilter=p.__decorate([a.Catch()],e.DecafExceptionFilter);const re={title:"Swagger | OpenAPI Specification (OAS)",description:"Standardized format for describing RESTful APIs",version:"0.0.1",path:"docs",faviconFilePath:"",topbarIconFilePath:"",auth:{type:"http",scheme:"bearer",bearerFormat:"JWT",name:"Authorization",description:"Enter JWT token",in:"header"},persistAuthorization:!0,topbarBgColor:"#000000"};class ae{constructor(e){this.options={...e}}customCSS(){let e="";return this.options.topbarIconPath&&(e+=`.topbar-wrapper { content: url('data:image/png;base64,${this.b64(this.options.topbarIconPath)}'); width: 200px; height: auto; }\n`),e+`\n .topbar-wrapper svg { visibility: hidden; }\n .swagger-ui .topbar { background-color: ${this.options.topbarBgColor||re.topbarBgColor}; }\n `}getCustomOptions(){const e={};return this.options.faviconPath&&(e.customfavIcon=this.b64(this.options.faviconPath,!0)),{customSiteTitle:this.options.title,...e,customCss:this.customCSS(),swaggerOptions:{persistAuthorization:this.options.persistAuthorization},jsonDocumentUrl:this.options.path?this.options.path+"/spec.json":void 0,yamlDocumentUrl:this.options.path?this.options.path+"/spec.yaml":void 0}}b64(e,t=!1){const r=h.join(this.options.assetsPath||"",e),a=u.readFileSync(r,{encoding:"base64"});return t?"data:image/png;base64,"+a:a}}class oe{constructor(e,t){this.app=e,this.options=t}createDocument(){const e=this.options.path?this.options.description+""+`<br><br><a href="${this.options.path}/spec.json">OpenAPI JSON Spec</a> | `+`<a href="${this.options.path}/spec.yaml">OpenAPI YAML Spec</a>`:this.options.description,t=(new n.DocumentBuilder).setTitle(this.options.title).setDescription(e).setVersion(this.options.version||"0.0.1").addBearerAuth(this.options.auth||re.auth).build();return n.SwaggerModule.createDocument(this.app,t,{extraModels:this.options.extraModels||[]})}setupSwagger(){const e=this.createDocument(),t=new ae({title:this.options.title,path:this.options.path||re.path,persistAuthorization:this.options.persistAuthorization??!0,assetsPath:this.options.assetsPath,faviconPath:this.options.faviconFilePath,topbarIconPath:this.options.topbarIconFilePath,topbarBgColor:this.options.topbarBgColor});n.SwaggerModule.setup(this.options.path||re.path,this.app,e,{...t.getCustomOptions()})}}var se;let ie=class{static{se=this}static get persistence(){if(!this._persistence)throw new c.InternalError("Persistence service not initialized");return this._persistence}static get log(){return this._logger||(this._logger=l.Logging.for(se)),this._logger}constructor(e,t){this.options=e,this.moduleRef=t}static async bootPersistence(e){const t=this.log.for(this.bootPersistence);if(!this._persistence){const r=e.conf.map(([e,t,...r])=>r.pop()?[e,t,...r]:[e,t]);this._persistence=new s.PersistenceService,await this._persistence.boot(r);const a=this._persistence.client;for(let t=0;t<a.length;t++){const r=e.conf[t];let[,,o]=r;if(!o){const e=s.Adapter.transformerFor(a[t].flavour);if(!e)throw new c.InternalError(`No transformer found for flavour ${a[t].flavour}. you should either @requestToContextTransformer or provide a transformer in the config`);o=e instanceof W?e:new e}Z(a[t].flavour)(o)}t.info("persistence layer created successfully!")}return this.persistence.client}static forRoot(e){const t={provide:I,useValue:e},r={useFactory:async e=>se.bootPersistence(e),provide:M,durable:!0,scope:a.Scope.DEFAULT,inject:[I]};return{module:se,providers:[r,t],exports:[r]}}async onApplicationShutdown(){const e=se.log.for(this.onApplicationShutdown),t=this.moduleRef.get(M);for(const r of t)try{r&&(e.info("Shutting down "+r.toString()),await r.shutdown())}catch(t){e.error("Failed to shutdown application",t)}}};ie=se=p.__decorate([a.Global(),a.Module({}),p.__param(0,a.Inject(I)),p.__metadata("design:paramtypes",[Object,d.ModuleRef])],ie);const ne=Symbol("LISTENING_ADAPTERS_FLAVOURS");var ce;let pe=ce=class extends V{constructor(e,t){super(e,ce.name),this.adapters=t.map(e=>s.Adapter.get(e))}listen(){const e=l.Logging.for(ce.name);return new y.Observable(t=>{const r=new class{refresh(...e){return Promise.resolve().then(()=>{const r=(e=>{const[t,r,a,o]=e;return[t?.name??t,r,a,Array.isArray(o)?o.map(e=>e.serialize()):o?.serialize()]})(e);t.next({data:r})})}};try{for(const e of this.adapters)e.observe(r)}catch(e){t.error("Failed to observe event: "+(e.message||e))}return()=>{try{for(const e of this.adapters)e.unObserve(r)}catch(t){e.error(t)}}})}listenForModel(e){const t=l.Logging.for(ce.name);return new y.Observable(e=>{const r=new class{refresh(...t){return Promise.resolve().then(()=>{e.next({data:t})})}};try{for(const e of this.adapters)e.observe(r)}catch(t){e.error("Failed to observe event: "+(t.message||t))}return()=>{try{for(const e of this.adapters)e.unObserve(r)}catch(e){t.error(e)}}})}};var de;p.__decorate([a.Sse(),p.__metadata("design:type",Function),p.__metadata("design:paramtypes",[]),p.__metadata("design:returntype",y.Observable)],pe.prototype,"listen",null),p.__decorate([a.Sse("/:model"),p.__param(0,a.Query("model")),p.__metadata("design:type",Function),p.__metadata("design:paramtypes",[String]),p.__metadata("design:returntype",y.Observable)],pe.prototype,"listenForModel",null),pe=ce=p.__decorate([a.Controller(),p.__param(1,a.Inject(ne)),p.__metadata("design:paramtypes",[e.DecafRequestContext,Array])],pe);let le=de=class{static forFlavours(t,r="events"){return{module:de,controllers:[pe],imports:[d.RouterModule.register([{path:r.replace(/^\//,""),module:de}])],providers:[e.DecafRequestContext,{provide:ne,useValue:t??[]}]}}};var ue;le=de=p.__decorate([a.Module({})],le),e.DecafModule=ue=class{static async forRootAsync(e){const{autoControllers:t,autoServices:r,handlers:a}=e,o=(await ie.bootPersistence(e)).map(e=>e.flavour),s=[ie.forRoot(e)];return t&&o.forEach(e=>{s.push(ee(e).forRoot(e,{autoServices:r,handlers:a}))}),e.observerOptions?.enableObserverEvents&&s.push(le.forFlavours(o)),{module:ue,imports:s}}},e.DecafModule=ue=p.__decorate([a.Module({})],e.DecafModule);const me="##VERSION##",ye="##PACKAGE##";t.Metadata.registerLibrary(ye,me),e.AUTH_HANDLER=j,e.AUTH_META_KEY=K,e.ApiOperationFromModel=S,e.ApiParamsFromModel=T,e.ApiProperty=b,e.Auth=q,e.BulkApiOperationFromModel=(e,r,o)=>{const s={GET:[c.BulkCrudOperationKeys.READ_ALL,a.Get],POST:[c.BulkCrudOperationKeys.CREATE_ALL,a.Post],PUT:[c.BulkCrudOperationKeys.UPDATE_ALL,a.Put],PATCH:[c.BulkCrudOperationKeys.UPDATE_ALL,a.Patch],DELETE:[c.BulkCrudOperationKeys.DELETE_ALL,a.Delete]},[i,p]=s[r];return v(e,i)?t.apply(n.ApiExcludeEndpoint()):t.apply(p(o))},e.CorsError=te,e.DECAF_ADAPTER_ID=M,e.DECAF_ADAPTER_OPTIONS=N,e.DECAF_CONTEXT_KEY=L,e.DECAF_HANDLERS=k,e.DECAF_MODULE_OPTIONS=I,e.DECAF_ROUTE=$,e.DECORATORS=_,e.DECORATORS_PREFIX=g,e.DecafAuthHandler=B,e.DecafBody=w,e.DecafController=V,e.DecafModelController=Y,e.DecafParams=D,e.DecafQuery=x,e.DecafRoleAuthHandler=class extends B{constructor(){super()}async authorize(e,r){const a=e.switchToHttp().getRequest(),i=this.parseRequest(a);if(!i)throw new s.AuthorizationError("Unauthenticated");const n=t.Metadata.get(o.Model.get(r),s.PersistenceKeys.AUTH_ROLE);if(!n.includes(i))throw new s.AuthorizationError("Missing role: "+i);return n}},e.DtoFor=X,e.FromModelController=J,e.HttpVerbToDecorator=F,e.NestBootstraper=class{static get logger(){return this._logger||(this._logger=new a.Logger("NestBootstrap")),this._logger}static initialize(e){return this.app=e,this}static enableLogger(e){return this._logger=e||new a.Logger("NestBootstrap"),this.app.useLogger(this._logger),this}static enableCors(e=[],t=["GET","POST","PUT","DELETE"]){const r="*"===e?"*":e.map(e=>e.trim().toLowerCase()),a={origin:(e,t)=>e?"*"===r||Array.isArray(r)&&r.includes(e.toLowerCase())?t(null,!0):void t(new te(`Origin ${e} not allowed`)):t(null,!0),credentials:!0,methods:t.join(",")};return this.app.enableCors(a),this}static useHelmet(e){try{const t=require("helmet");this.app.use(t(e)),this.logger.log("Helmet middleware enabled successfully.")}catch(e){this.logger.warn("Helmet not installed. Skipping middleware.")}return this}static setupSwagger(e){return new oe(this.app,{title:e.title,description:e.description,version:e.version,path:e.path||"api",persistAuthorization:e.persistAuthorization??!0,assetsPath:e.assetsPath,faviconFilePath:e.faviconPath,topbarIconFilePath:e.topbarIconPath,topbarBgColor:e.topbarBgColor}).setupSwagger(),this}static useGlobalPipes(...e){return e.length>0&&this.app.useGlobalPipes(...e),this}static useGlobalFilters(...t){return this.app.useGlobalFilters(...t.length>0?t:[new e.DecafExceptionFilter]),this}static useGlobalInterceptors(...e){return e.length>0&&this.app.useGlobalInterceptors(...e),this}static async start(e=Number(process.env.PORT)||3e3,t=void 0,r=!0){this.app.listen(e,t).then(async()=>{if(r){const e=await this.app.getUrl();this.logger.log("\ud83d\ude80 Application is running at: "+e)}})}},e.PACKAGE_NAME=ye,e.RequestToContextTransformer=W,e.SwaggerBuilder=oe,e.UseDecafFilter=()=>a.UseFilters(new e.DecafExceptionFilter),e.VERSION=me,e.createApiPropertyDecorator=R,e.createPropertyDecorator=E,e.getEnumType=P,e.getEnumValues=O,e.getModuleFor=ee,e.isOperationBlocked=v,e.isUndefined=A,e.repoForModel=e=>{const t=o.Model.get(e);if(!t)throw new c.InternalError("Failed to find repository for "+e);return s.Repository.forModel(t)},e.requestToContextTransformer=Z},"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("@decaf-ts/decoration"),require("@decaf-ts/injectable-decorators"),require("@nestjs/common"),require("@decaf-ts/decorator-validation"),require("@decaf-ts/core"),require("lodash"),require("@nestjs/swagger"),require("@decaf-ts/db-decorators"),require("tslib"),require("@nestjs/core"),require("@decaf-ts/logging"),require("fs"),require("path"),require("rxjs")):"function"==typeof define&&define.amd?define(["exports","@decaf-ts/decoration","@decaf-ts/injectable-decorators","@nestjs/common","@decaf-ts/decorator-validation","@decaf-ts/core","lodash","@nestjs/swagger","@decaf-ts/db-decorators","tslib","@nestjs/core","@decaf-ts/logging","fs","path","rxjs"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self)["for-nest"]={},e.decafTsDecoration,e.decafTsInjectableDecorators,e.nestjsCommon,e.decafTsDecoratorValidation,e.decafTsCore,e.lodash,e.nestjsSwagger,e.decafTsDbDecorators,e.tslib,e.nestjsCore,e.decafTsLogging,e.fs,e.path,e.rxjs);
2
2
  //# sourceMappingURL=for-nest.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"for-nest.cjs","sources":["../src/overrides/constants.ts","../src/overrides/decoration.ts","../src/overrides/helpers.ts","../src/decaf-model/decorators/ApiOperationFromModel.ts","../src/decaf-model/decorators/ApiParamsFromModel.ts","../src/decaf-model/decorators/DecafBody.ts","../src/decaf-model/decorators/DecafParams.ts","../src/decaf-model/decorators/utils.ts","../src/constants.ts","../src/decaf-model/decorators/decorators.ts","../src/interceptors/AuthInterceptor.ts","../src/request/DecafAuthHandler.ts","../src/request/DecafRequestContext.ts","../src/request/DecafHandlerExecutor.ts","../src/decaf-model/utils.ts","../src/controllers.ts","../src/factory/openapi/DtoBuilder.ts","../src/overrides/overrides.ts","../src/decaf-model/FromModelController.ts","../src/interceptors/DecafRequestHandlerInterceptor.ts","../src/interceptors/context.ts","../src/decaf-model/DecafModelModule.ts","../src/decoration.ts","../src/factory/errors/cors.ts","../src/factory/exceptions/DecafErrorFilter.ts","../src/factory/openapi/constants.ts","../src/factory/openapi/SwaggerCustomUI.ts","../src/factory/openapi/SwaggerBuilder.ts","../src/core-module.ts","../src/module.ts","../src/index.ts","../src/factory/NestBootstraper.ts","../src/factory/exceptions/decorators.ts","../src/utils.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null],"names":["DECORATORS_PREFIX","DECORATORS","API_OPERATION","API_RESPONSE","API_PRODUCES","API_CONSUMES","API_TAGS","API_CALLBACKS","API_PARAMETERS","API_HEADERS","API_MODEL_PROPERTIES","API_MODEL_PROPERTIES_ARRAY","API_SECURITY","API_EXCLUDE_ENDPOINT","API_EXCLUDE_CONTROLLER","API_EXTRA_MODELS","API_EXTENSION","API_SCHEMA","API_DEFAULT_GETTER","API_LINK","isUndefined","obj","getEnumValues","enumType","Array","isArray","numericValues","Object","values","filter","value","map","toString","keys","key","includes","getEnumType","isString","length","createPropertyDecorator","metakey","metadata","overrideExisting","target","propertyKey","properties","Reflect","getMetadata","defineMetadata","existingMetadata","newMetadata","pickBy","negate","metadataToSave","type","constructor","ApiProperty","options","createApiPropertyDecorator","input","isArrayFlag","isInputArray","getTypeIsArrayTuple","opts","undefined","enum","enumValues","items","isOperationBlocked","ModelConstructor","op","handler","args","Metadata","get","OperationKeys","REFLECT","BLOCK","ApiOperationFromModel","verb","path","httpToCrud","GET","READ","Get","POST","CREATE","Post","PUT","UPDATE","Put","PATCH","Patch","DELETE","Delete","crudOp","HttpMethodDecorator","apply","ApiExcludeEndpoint","ApiParamsFromModel","props","decorators","p","ApiParamDec","name","description","required","String","applyDecorators","DecafBody","createParamDecorator","data","ctx","body","switchToHttp","getRequest","controller","getClass","ModelConstr","class","InternalServerErrorException","item","OrderedParams","order","req","original","params","orderList","ordered","k","raw","valuesInOrder","keysInOrder","DecafParams","DecafQuery","_","parsed","query","limit","n","Number","isNaN","offset","bookmark","HttpVerbToDecorator","decorator","Error","DECAF_MODULE_OPTIONS","DECAF_ADAPTER_ID","DECAF_ROUTE","DECAF_HANDLERS","Symbol","DECAF_ADAPTER_OPTIONS","AUTH_HANDLER","AUTH_META_KEY","DECAF_CONTEXT_KEY","Auth","model","resource","ApiBearerAuth","SetMetadata","UseInterceptors","AuthInterceptor","exports","reflector","authHandler","this","intercept","next","modelName","getHandler","authorize","handle","__decorate","Injectable","__param","Optional","Inject","Reflector","DecafAuthHandler","parseRequest","userRole","headers","authorization","split","AuthorizationError","Model","PersistenceKeys","AUTH_ROLE","DecafRequestContext","put","record","overrides","e","_ctx","accumulate","assign","applyCtx","InternalError","scope","Scope","REQUEST","DecafHandlerExecutor","handlers","context","exec","res","apiParamSpec","getApiDecorators","methodName","routePath","httpVerb","includeQueryParams","NestHttpRouteDec","apiPathParams","startsWith","slice","extractPathParams","swaggerQueryParams","push","ApiQuery","OrderDirection","method","ApiParam","ApiOperation","summary","ApiOkResponse","ApiNoContentResponse","Query","applyApiDecorators","descriptor","proto","prototype","forEach","d","index","createRouteHandler","async","pathParams","queryParams","log","for","debug","JSON","stringify","direction","persistence","ModelService","statement","resolvePersistenceMethod","error","defineRouteMethod","ControllerClass","defineProperty","writable","getOwnPropertyDescriptor","DecafController","Service","clientContext","super","logCtx","operation","allowCreate","ContextualLoggedClass","call","DecafModelController","_persistence","getService","Repository","forModel","override","toOverrides","contextual","ctxArgs","repo","then","DtoFor","TransactionOperationKeys","isUpdate","BulkCrudOperationKeys","UPDATE_ALL","relations","exceptions","generated","pk","DynamicDTO","OmitType","addRelation","relation","relationDto","enumerable","configurable","toPascalCase","allowedTypes","meta","validationFor","ValidationKeys","LIST","Adapter","transformerFor","adapter","alias","bind","flavoursToTransform","core$1","Context","toResponse","pending","header","FromModelController","Logging","getPersistence","ModelClazz","createQueryRoutesFromRepository","prefix","QUERY","queryMethods","routeMethods","QueryController","entries","replace","segment","trim","join","message","httpMethod","objValues","fields","f","create","tableName","toKebabCase","modelClazzName","getPK","apiProperties","getRouteParametersFromModel","BaseController","DynamicModelController","info","listBy","details","PreparedStatementKeys","LIST_BY","paginateBy","PAGE_BY","findOneBy","FIND_ONE_BY","findBy","FIND_BY","STATEMENT","a","parseInt","createAll","resp","CREATE_ALL","created","verbose","readAll","ids","READ_ALL","read","routeParams","id","ValidationError","updateAll","updated","update","payload","parse","deleteAll","DELETE_ALL","delete","del","Param","ApiNotFoundResponse","ApiBody","schema","$ref","getSchemaPath","ApiCreatedResponse","ApiBadRequestResponse","ApiUnprocessableEntityResponse","Response","passthrough","Controller","ApiTags","ApiExtraModels","composed","DBKeys","COMPOSED","composedKeys","uniqueKeys","from","Set","separator","DecafRequestHandlerInterceptor","requestContext","executor","contextualize","flags","flavours","flavour","transformer","DefaultAdapterFlags","logger","timestamp","Date","getResponse","RequestToContextTransformer","requestToContextTransformer","set","getModuleFor","DecafModelModule","DecafModelModule_1","createModelServices","models","provide","useFactory","forRoot","trackedModels","modelServices","autoServices","controllers","module","providers","H","APP_INTERCEPTOR","useClass","Module","Decoration","InjectablesKeys","INJECTABLE","extend","category","cfg","DefaultInjectablesConfig","singleton","DEFAULT","durable","INJECT","REQUIRED","MAX","max","maximum","MIN","min","minimum","MAX_LENGTH","maxLength","MIN_LENGTH","minLength","TYPE","prop","DATE","format","ENUM","PATTERN","pat","pattern","source","COLUMN","DecorationKeys","DESCRIPTION","AUTH","CorsError","ForbiddenError","msg","DecafExceptionFilter","exception","host","response","request","isProduction","LoggedEnvironment","env","BaseError","status","code","json","toISOString","url","Catch","SWAGGER_UI_CONSTANTS","title","version","faviconFilePath","topbarIconFilePath","auth","scheme","bearerFormat","in","persistAuthorization","topbarBgColor","SwaggerCustomUI","customCSS","css","topbarIconPath","b64","getCustomOptions","favicon","faviconPath","customSiteTitle","customCss","swaggerOptions","jsonDocumentUrl","yamlDocumentUrl","file","img","filePath","assetsPath","readFileSync","encoding","SwaggerBuilder","app","createDocument","config","DocumentBuilder","setTitle","setDescription","setVersion","addBearerAuth","build","SwaggerModule","extraModels","setupSwagger","document","swaggerUI","setup","DecafCoreModule","_logger","DecafCoreModule_1","moduleRef","bootPersistence","trimmed","conf","contr","pop","PersistenceService","boot","clients","client","i","c","typeOrmModuleOptions","useValue","inject","onApplicationShutdown","adapters","shutdown","Global","ModuleRef","DecafModule","DecafModule_1","forRootAsync","autoControllers","imports","VERSION","PACKAGE_NAME","registerLibrary","roles","Logger","initialize","enableLogger","customLogger","useLogger","enableCors","origins","allowMethods","allowedOrigins","o","toLowerCase","corsOptions","origin","callback","credentials","methods","useHelmet","helmet","require","use","warn","useGlobalPipes","pipes","useGlobalFilters","filters","useGlobalInterceptors","interceptors","start","port","process","PORT","listen","getUrl","UseFilters","m"],"mappings":"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"}
1
+ {"version":3,"file":"for-nest.cjs","sources":["../src/overrides/constants.ts","../src/overrides/decoration.ts","../src/overrides/helpers.ts","../src/decaf-model/decorators/ApiOperationFromModel.ts","../src/decaf-model/decorators/ApiParamsFromModel.ts","../src/decaf-model/decorators/DecafBody.ts","../src/decaf-model/decorators/DecafParams.ts","../src/decaf-model/decorators/utils.ts","../src/constants.ts","../src/decaf-model/decorators/decorators.ts","../src/interceptors/AuthInterceptor.ts","../src/request/DecafAuthHandler.ts","../src/request/DecafRequestContext.ts","../src/request/DecafHandlerExecutor.ts","../src/decaf-model/utils.ts","../src/controllers.ts","../src/factory/openapi/DtoBuilder.ts","../src/overrides/overrides.ts","../src/decaf-model/FromModelController.ts","../src/interceptors/DecafRequestHandlerInterceptor.ts","../src/interceptors/context.ts","../src/decaf-model/DecafModelModule.ts","../src/decoration.ts","../src/factory/errors/cors.ts","../src/factory/exceptions/DecafErrorFilter.ts","../src/factory/openapi/constants.ts","../src/factory/openapi/SwaggerCustomUI.ts","../src/factory/openapi/SwaggerBuilder.ts","../src/core-module.ts","../src/events-module/constant.ts","../src/events-module/events.controller.ts","../src/events-module/utils.ts","../src/events-module/DecafStreamModule.ts","../src/module.ts","../src/index.ts","../src/factory/NestBootstraper.ts","../src/factory/exceptions/decorators.ts","../src/utils.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null],"names":["DECORATORS_PREFIX","DECORATORS","API_OPERATION","API_RESPONSE","API_PRODUCES","API_CONSUMES","API_TAGS","API_CALLBACKS","API_PARAMETERS","API_HEADERS","API_MODEL_PROPERTIES","API_MODEL_PROPERTIES_ARRAY","API_SECURITY","API_EXCLUDE_ENDPOINT","API_EXCLUDE_CONTROLLER","API_EXTRA_MODELS","API_EXTENSION","API_SCHEMA","API_DEFAULT_GETTER","API_LINK","isUndefined","obj","getEnumValues","enumType","Array","isArray","numericValues","Object","values","filter","value","map","toString","keys","key","includes","getEnumType","isString","length","createPropertyDecorator","metakey","metadata","overrideExisting","target","propertyKey","properties","Reflect","getMetadata","defineMetadata","existingMetadata","newMetadata","pickBy","negate","metadataToSave","type","constructor","ApiProperty","options","createApiPropertyDecorator","input","isArrayFlag","isInputArray","getTypeIsArrayTuple","opts","undefined","enum","enumValues","items","isOperationBlocked","ModelConstructor","op","handler","args","Metadata","get","OperationKeys","REFLECT","BLOCK","ApiOperationFromModel","verb","path","httpToCrud","GET","READ","Get","POST","CREATE","Post","PUT","UPDATE","Put","PATCH","Patch","DELETE","Delete","crudOp","HttpMethodDecorator","apply","ApiExcludeEndpoint","ApiParamsFromModel","props","decorators","p","ApiParamDec","name","description","required","String","applyDecorators","DecafBody","createParamDecorator","data","ctx","body","switchToHttp","getRequest","controller","getClass","ModelConstr","class","InternalServerErrorException","item","OrderedParams","order","req","original","params","orderList","ordered","k","raw","valuesInOrder","keysInOrder","DecafParams","DecafQuery","_","parsed","query","limit","n","Number","isNaN","offset","bookmark","HttpVerbToDecorator","decorator","Error","DECAF_MODULE_OPTIONS","DECAF_ADAPTER_ID","DECAF_ROUTE","DECAF_HANDLERS","Symbol","DECAF_ADAPTER_OPTIONS","AUTH_HANDLER","AUTH_META_KEY","DECAF_CONTEXT_KEY","Auth","model","resource","ApiBearerAuth","SetMetadata","UseInterceptors","AuthInterceptor","exports","reflector","authHandler","this","intercept","next","modelName","getHandler","authorize","handle","__decorate","Injectable","__param","Optional","Inject","Reflector","DecafAuthHandler","parseRequest","userRole","headers","authorization","split","AuthorizationError","Model","PersistenceKeys","AUTH_ROLE","DecafRequestContext","put","record","overrides","e","_ctx","accumulate","assign","applyCtx","InternalError","scope","Scope","REQUEST","DecafHandlerExecutor","handlers","context","exec","res","apiParamSpec","getApiDecorators","methodName","routePath","httpVerb","includeQueryParams","NestHttpRouteDec","apiPathParams","startsWith","slice","extractPathParams","swaggerQueryParams","push","ApiQuery","OrderDirection","method","ApiParam","ApiOperation","summary","ApiOkResponse","ApiNoContentResponse","Query","applyApiDecorators","descriptor","proto","prototype","forEach","d","index","createRouteHandler","async","pathParams","queryParams","log","for","debug","JSON","stringify","direction","persistence","ModelService","statement","resolvePersistenceMethod","error","defineRouteMethod","ControllerClass","defineProperty","writable","getOwnPropertyDescriptor","DecafController","Service","clientContext","super","logCtx","operation","allowCreate","ContextualLoggedClass","call","DecafModelController","_persistence","getService","Repository","forModel","override","toOverrides","contextual","ctxArgs","repo","then","DtoFor","TransactionOperationKeys","isUpdate","BulkCrudOperationKeys","UPDATE_ALL","relations","exceptions","generated","pk","DynamicDTO","OmitType","addRelation","relation","relationDto","enumerable","configurable","toPascalCase","allowedTypes","meta","validationFor","ValidationKeys","LIST","Adapter","transformerFor","adapter","alias","bind","flavoursToTransform","core$1","Context","toResponse","pending","header","FromModelController","Logging","getPersistence","ModelClazz","createQueryRoutesFromRepository","prefix","QUERY","queryMethods","routeMethods","QueryController","entries","replace","segment","trim","join","message","httpMethod","objValues","fields","f","create","tableName","toKebabCase","modelClazzName","getPK","apiProperties","getRouteParametersFromModel","BaseController","DynamicModelController","info","listBy","details","PreparedStatementKeys","LIST_BY","paginateBy","PAGE_BY","findOneBy","FIND_ONE_BY","findBy","FIND_BY","STATEMENT","a","parseInt","COUNT_OF","MAX_OF","MIN_OF","AVG_OF","SUM_OF","DISTINCT_OF","GROUP_OF","countOf","countOfField","field","maxOf","minOf","avgOf","sumOf","distinctOf","groupOf","createAll","resp","CREATE_ALL","created","verbose","readAll","ids","READ_ALL","read","routeParams","id","ValidationError","updateAll","updated","update","payload","parse","deleteAll","DELETE_ALL","delete","del","Param","ApiNotFoundResponse","ApiBody","schema","$ref","getSchemaPath","ApiCreatedResponse","ApiBadRequestResponse","ApiUnprocessableEntityResponse","Response","passthrough","Controller","ApiTags","ApiExtraModels","createStreamedController","composed","DBKeys","COMPOSED","composedKeys","uniqueKeys","from","Set","separator","DecafRequestHandlerInterceptor","requestContext","executor","contextualize","flags","flavours","flavour","transformer","DefaultAdapterFlags","logger","timestamp","Date","getResponse","RequestToContextTransformer","requestToContextTransformer","set","getModuleFor","DecafModelModule","DecafModelModule_1","createModelServices","models","provide","useFactory","forRoot","trackedModels","modelServices","autoServices","controllers","module","providers","H","APP_INTERCEPTOR","useClass","Module","Decoration","InjectablesKeys","INJECTABLE","extend","category","cfg","DefaultInjectablesConfig","singleton","DEFAULT","durable","INJECT","REQUIRED","MAX","max","maximum","MIN","min","minimum","MAX_LENGTH","maxLength","MIN_LENGTH","minLength","TYPE","prop","DATE","format","ENUM","PATTERN","pat","pattern","source","COLUMN","DecorationKeys","DESCRIPTION","AUTH","CorsError","ForbiddenError","msg","DecafExceptionFilter","exception","host","response","request","isProduction","LoggedEnvironment","env","BaseError","status","code","json","toISOString","url","Catch","SWAGGER_UI_CONSTANTS","title","version","faviconFilePath","topbarIconFilePath","auth","scheme","bearerFormat","in","persistAuthorization","topbarBgColor","SwaggerCustomUI","customCSS","css","topbarIconPath","b64","getCustomOptions","favicon","faviconPath","customSiteTitle","customCss","swaggerOptions","jsonDocumentUrl","yamlDocumentUrl","file","img","filePath","assetsPath","readFileSync","encoding","SwaggerBuilder","app","createDocument","config","DocumentBuilder","setTitle","setDescription","setVersion","addBearerAuth","build","SwaggerModule","extraModels","setupSwagger","document","swaggerUI","setup","DecafCoreModule","_logger","DecafCoreModule_1","moduleRef","bootPersistence","trimmed","conf","contr","pop","PersistenceService","boot","clients","client","i","c","typeOrmModuleOptions","useValue","inject","onApplicationShutdown","adapters","shutdown","Global","ModuleRef","LISTENING_ADAPTERS_FLAVOURS","EventsController","EventsController_1","listen","Observable","observer","cb","refresh","Promise","resolve","modelConstr","serialize","normalizeEventResponse","observe","unObserve","listenForModel","Sse","DecafStreamModule","DecafStreamModule_1","forFlavours","imports","RouterModule","register","DecafModule","DecafModule_1","forRootAsync","autoControllers","observerOptions","enableObserverEvents","VERSION","PACKAGE_NAME","registerLibrary","roles","Logger","initialize","enableLogger","customLogger","useLogger","enableCors","origins","allowMethods","allowedOrigins","o","toLowerCase","corsOptions","origin","callback","credentials","methods","useHelmet","helmet","require","use","warn","useGlobalPipes","pipes","useGlobalFilters","filters","useGlobalInterceptors","interceptors","start","port","process","PORT","getUrl","UseFilters","m"],"mappings":"uVAAa,MAAAA,EAAoB,UACpBC,EAAa,CACxBC,cAAkBF,EAAH,gBACfG,aAAiBH,EAAH,eACdI,aAAiBJ,EAAH,eACdK,aAAiBL,EAAH,eACdM,SAAaN,EAAH,cACVO,cAAkBP,EAAH,gBACfQ,eAAmBR,EAAH,iBAChBS,YAAgBT,EAAH,cACbU,qBAAyBV,EAAH,sBACtBW,2BAA+BX,EAAH,2BAC5BY,aAAiBZ,EAAH,eACda,qBAAyBb,EAAH,sBACtBc,uBAA2Bd,EAAH,wBACxBe,iBAAqBf,EAAH,kBAClBgB,cAAkBhB,EAAH,gBACfiB,WAAejB,EAAH,aACZkB,mBAAuBlB,EAAH,oBACpBmB,SAAanB,EAAH,YCRCoB,EAAeC,QACX,IAARA,EAEH,SAAUC,EACdC,GAEA,GAAwB,mBAAbA,EACT,OAAOD,EAAcC,KAGvB,GAAIC,MAAMC,QAAQF,GAChB,OAAOA,EAET,GAAwB,iBAAbA,EACT,MAAO,GAcT,MAAMG,EAAgBC,OAAOC,OAAOL,GACjCM,OAAQC,GAA2B,iBAAVA,GACzBC,IAAKD,GAAeA,EAAME,YAE7B,OAAOL,OAAOM,KAAKV,GAChBM,OAAQK,IAASR,EAAcS,SAASD,IACxCH,IAAKG,GAAQX,EAASW,GAC3B,CAEM,SAAUE,EAAYR,GAE1B,OADkBA,EAAOC,OAAOQ,EAAAA,UAAUC,OAAS,EAChC,SAAW,QAChC,CAEM,SAAUC,EACdC,EACAC,EACAC,GAAmB,GAEnB,MAAQ,CAACC,EAAgBC,KACvB,MAAMC,EACJC,QAAQC,YAAY9C,EAAWU,2BAA4BgC,IAAW,GAElET,EAAM,IAAIU,EACXC,EAAWV,SAASD,IACvBY,QAAQE,eACN/C,EAAWU,2BACX,IAAIkC,EAAY,IAAID,GACpBD,GAGJ,MAAMM,EAAmBH,QAAQC,YAAYP,EAASG,EAAQC,GAC9D,GAAIK,EAAkB,CACpB,MAAMC,EAAcC,EAAAA,OAAOV,EAAUW,EAAAA,OAAOhC,IACtCiC,EAAiBX,EACnB,IACKO,KACAC,GAEL,IACKA,KACAD,GAGTH,QAAQE,eAAeR,EAASa,EAAgBV,EAAQC,EACzD,KAAM,CACL,MAAMU,EAEJX,GAAQY,aAAmC,8BAAMX,IAAcU,MAC/DR,QAAQC,YAAY,cAAeJ,EAAQC,GAE7CE,QAAQE,eACNR,EACA,CACEc,UACGH,SAAOV,EAAUW,EAAMA,OAAChC,KAE7BuB,EACAC,EAEH,CACF,CACH,CAoCgB,SAAAY,EACdC,EAA8B,IAE9B,OAAOC,EAA2BD,EACpC,CAEM,SAAUC,EACdD,EAA8B,GAC9Bf,GAAmB,GAEnB,MAAOY,EAAM7B,KCyDbkC,EACAC,KAGA,IAAKD,EACH,MAAO,CAACA,EAAoBC,GAE9B,GAAIA,EAEF,MAAO,CAACD,EAAmBC,GAE7B,MAAMC,EAAepC,UAAQkC,GAG7B,MAAO,CAFME,EAAeF,EAAM,GAAKA,EAEbE,EAC5B,EDxE0BC,CACtBL,EAAQH,KACRG,EAAQhC,SAQV,IA/BAsC,EAyBAN,EAAU,IACLA,EACHH,OACA7B,YAtBOA,SAAW,SAAUsC,QAAsBC,IAAdD,EAAKE,KAyBjB,CACxBR,EAAQH,KAAO,QAEf,MAAMY,EAAa5C,EAAcmC,EAAQQ,MACzCR,EAAQU,MAAQ,CACdb,KAAMlB,EAAY8B,GAClBD,KAAMC,UAGDT,EAAQQ,IAChB,MAAM,GAAI,SAAUR,QAA4BO,IAAjBP,EAAQQ,KAAoB,CAC1D,MAAMC,EAAa5C,EAAcmC,EAAQQ,MAEzCR,EAAQQ,KAAOC,EACfT,EAAQH,KAAOlB,EAAY8B,EAC5B,CA/CiB,IAClBH,EA0DA,OAVIvC,MAAMC,QAAQgC,EAAQH,QACxBG,EAAQH,KAAO,QACfG,EAAQU,MAAQ,CACdb,KAAM,QACNa,MAAO,CACLb,KAAMG,EAAQH,KAAK,MAKlBf,EACLtC,EAAWS,qBACX+C,EACAf,EAEJ,CEzKgB,SAAA0B,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,UAUgBQ,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,GAAuBf,EAAWF,GACjD,OAAOX,EAAmBC,EAAkB0B,GACxCE,EAAKA,MAACC,EAAkBA,sBACxBD,QAAMD,EAAoBhB,GAChC,CCpDgB,SAAAmB,EACdC,EAA4B,IAE5B,MAAMC,EAAaD,EAAMrE,IAAKuE,GAC5BC,EAAAA,SAAY,CACVC,KAAMF,EAAEE,KACRC,YAAaH,EAAEG,aAAe,mBAAmBH,EAAEE,KACnDE,SAAUJ,EAAEI,WAAY,EAExBpD,KAAMgD,EAAEhD,MAAQqD,UAGpB,OAAOC,EAAeA,mBAAIP,EAC5B,CClBa,MAAAQ,EAAYC,EAAoBA,qBAC3C,CAACC,EAAeC,KACd,MACMC,EADUD,EAAIE,eAAeC,aACdF,KAGfG,EAAaJ,EAAIK,WAEjBC,EAAeF,EAAmBG,MAExC,IAAKD,EACH,MAAM,IAAIE,EAA4BA,6BACpC,4CAA4CJ,EAAWZ,oEAI3D,OAAKS,EAEDzF,MAAMC,QAAQwF,GACTA,EAAKlF,IAAK0F,GAAS,IAAIH,EAAYG,IAGrC,IAAIH,EAAYL,GANLA,ICZhBS,EAAgBZ,EAAoBA,qBACxC,CAACa,EAA6BX,KAC5B,MAAMY,EAAMZ,EAAIE,eAAeC,aACzBU,EAAYD,GAAKE,QAAU,CAAE,EAC7BC,EAAYJ,GAAShG,OAAOM,KAAK4F,GACjCG,EAAUD,EAAUhG,IAAKkG,GAAMJ,EAASI,IAC9C,MAAO,CAAEC,IAAKL,EAAUM,cAAeH,EAASI,YAAaL,KAUjD,SAAAM,EACdjC,EAA4B,IAE5B,MAAMuB,EAAQvB,EAAMrE,IAAKuE,GAAMA,EAAEE,MACjC,OAAOkB,EAAcC,EACvB,CAEa,MAAAW,EAAaxB,EAAoBA,qBAC5C,CAACyB,EAAYvB,KACX,MAGMwB,EAAc,IAHRxB,EAAIE,eAAeC,aACbsB,OAAS,IAK3B,QAAqBzE,IAAjBwE,EAAOE,MAAqB,CAC9B,MAAMC,EAAIC,OAAOJ,EAAOE,OACnBE,OAAOC,MAAMF,KAAIH,EAAOE,MAAQC,EACtC,CAED,QAAsB3E,IAAlBwE,EAAOM,OAAsB,CAC/B,MAAMH,EAAIC,OAAOJ,EAAOM,QACnBF,OAAOC,MAAMF,KAAIH,EAAOM,OAASH,EACvC,CAGD,QAAwB3E,IAApBwE,EAAOO,SAAwB,CACjC,MAAMJ,EAAIC,OAAOJ,EAAOO,UACxBP,EAAOO,SAAWH,OAAOC,MAAMF,GAAKH,EAAOO,SAAWJ,CACvD,CAED,OAAOH,ICjDL,SAAUQ,EACdjE,GAEA,MAQMkE,EARoE,CACxE/D,IAAKE,EAAGA,IACRC,KAAME,EAAIA,KACVC,IAAKE,EAAGA,IACRC,MAAOC,EAAKA,MACZC,OAAQC,EAAMA,QAGaf,GAE7B,IAAKkE,EACH,MAAUC,MACR,0BAA0BnE,8CAI9B,OAAOkE,CACT,CC7Ba,MAAAE,EAAuB,qBACvBC,EAAmB,eAEnBC,EAAc,aACdC,EAAiBC,OAAO,iBACxBC,EAAwBD,OAAO,0BAE/BE,EAAeF,OAAO,gBACtBG,EAAgB,YAEhBC,EAAoBJ,OAAO,iBCoBlC,SAAUK,EAAKC,GACnB,MAAMC,EAA4B,iBAAVD,EAAqBA,EAAQA,EAAMrD,KAE3D,OAAOI,EAAeA,gBACpBmD,kBACAC,cAAYN,EAAeI,GAC3BG,EAAAA,gBAAgBC,EAAeA,iBAEnC,CCzB4BC,EAAAD,gBAArB,MACL,WAAA3G,CACmB6G,EACkCC,GADlCC,KAASF,UAATA,EACkCE,KAAWD,YAAXA,CACjD,CAEJ,eAAME,CACJvD,EACAwD,GAEA,MAAMC,EACJH,KAAKF,UAAU1F,IACbgF,EACA1C,EAAI0D,eAENJ,KAAKF,UAAU1F,IAA0BgF,EAAe1C,EAAIK,YAM9D,OAJIoD,GAAaH,KAAKD,mBACdC,KAAKD,YAAYM,UAAU3D,EAAKyD,GAGjCD,EAAKI,QACb,GAtByBT,EAAAD,gBAAAW,aAAA,CAD3BC,eAIIC,UAAA,EAAAC,EAAAA,YAAYD,EAAAA,QAAA,EAAAE,SAAOxB,sCADQyB,EAASA,UAAAvJ,UAF5BuI,yBCVAiB,EACD,YAAAC,CAAaxD,GACrB,MAAMyD,EAAWzD,EAAI0D,QAAQC,eAAeC,MAAM,KAAK,GACvD,OAAOH,CACR,CAED,eAAMV,CAAU3D,EAAuB8C,GACrC,MAAMlC,EAAMZ,EAAIE,eAAeC,aAEzBkE,EAAWf,KAAKc,aAAaxD,GACnC,IAAKyD,EAAU,MAAM,IAAII,EAAAA,mBAAmB,mBAI5C,IAFchH,WAASC,IAAIgH,EAAKA,MAAChH,IAAIoF,GAAY6B,kBAAgBC,WAEtDzJ,SAASkJ,GAClB,MAAM,IAAII,EAAAA,mBAAmB,iBAAiBJ,EAEjD,ECG6BlB,EAAA0B,oBAAzB,MAGL,GAAAC,CAAIC,GACF,IAAIC,EACJ,IACEA,EAAY1B,KAAKtD,IAAItC,IAAI,YAE1B,CAAC,MAAOuH,GACPD,EAAY,CAAA,CACb,CAED1B,KAAK4B,KAAO5B,KAAKtD,IAAImF,WAAW,CAC9BH,UAAWrK,OAAOyK,OAAOJ,EAAWD,IAEvC,CAED,QAAAM,CAASrF,GACPsD,KAAK4B,KAAOlF,CACb,CAED,OAAIA,GACF,IAAKsD,KAAK4B,KACR,MAAM,IAAII,EAAaA,cAAC,uCAC1B,OAAOhC,KAAK4B,IACb,GAzB6B/B,EAAA0B,oBAAAhB,aAAA,CAD/BC,EAAAA,WAAW,CAAEyB,MAAOC,EAAKA,MAACC,WACdZ,uBCwBoB1B,EAAAuC,qBAA1B,MACL,WAAAnJ,CAC2CoJ,EACxBC,GADwBtC,KAAQqC,SAARA,EACxBrC,KAAOsC,QAAPA,CACf,CAEJ,UAAMC,CAAKjF,EAAckF,GACvB,IAAK,MAAMvI,KAAW+F,KAAKqC,eACnBpI,EAAQqG,OAAON,KAAKsC,QAAShF,EAAKkF,EAE3C,GAV8B3C,EAAAuC,qBAAA7B,aAAA,CADhCC,EAAAA,WAAW,CAAEyB,MAAOC,EAAKA,MAACC,UAGtB1B,EAAAA,QAAA,EAAAE,SAAO3B,4CACkBuC,EAAmBA,uBAHpCa,wBCxBb,MAOMK,EAAgBvG,IAAoC,CACxDA,OACAC,YAAgBD,EAAH,2BACbE,UAAU,EACVpD,KAAMqD,SAGF,SAAUqG,EACdC,EACAC,EACAC,EACAC,GAA8B,GAE9B,MAAMC,EAAmBrE,EAAoBmE,GACvCG,EArBkB,CAACJ,GAClBA,EACJ1B,MAAM,KACN3J,OAAQyE,GAAMA,EAAEiH,WAAW,MAC3BxL,IAAKuE,GAAMA,EAAEkH,MAAM,IAiBAC,CAAkBP,GAAWnL,IAAIgL,GAEjDW,EAAqB,GAsB3B,MArBiB,QAAbP,GAAsBC,GACxBM,EAAmBC,KACjBC,WAAS,CACPpH,KAAM,YACNE,UAAU,EACVzC,KAAM4J,EAAcA,eACpBpH,YAAa,mCAEfmH,EAAAA,SAAS,CACPpH,KAAM,QACNE,UAAU,EACVD,YAAa,uCAEfmH,EAAAA,SAAS,CACPpH,KAAM,SACNE,UAAU,EACVD,YAAa,wCAKZ,CACLqH,OAAQ,CACNT,EAAiBH,MACdI,EAAcvL,IAAIgM,eAClBL,EACHM,eAAa,CACXC,QAAS,wCAAwChB,QAEnDiB,gBAAc,CACZzH,YAAa,mCAEf0H,uBAAqB,CACnB1H,YAAa,wCAGjBqB,OAAQ,CAACO,EAAYiF,GAAgBc,EAAKA,SAE9C,CAEM,SAAUC,EACd1L,EACAsK,EACAqB,EACAjI,GAEA,MAAMkI,EAAQ5L,GAAQ6L,WAAa7L,EACnC0D,EAAWyH,OAAOW,QAASC,GAAMA,EAAEH,EAAOtB,EAAYqB,IACtDjI,EAAWyB,QAAQ2G,QAAQ,CAACC,EAAGC,IAAUD,EAAEH,EAAOtB,EAAY0B,GAChE,CAqBM,SAAUC,EAAsB3B,GACpC,OAAO4B,eAELC,EACAC,GAEA,MAAMC,EAAc1E,KAAK0E,IAAIC,IAAIhC,GAEjC,IACE+B,EAAIE,MACF,gCAAgCjC,wBAAiCkC,KAAKC,UAAUN,EAAW3G,kBAE7F,MAAMkH,UAAEA,EAAS3G,MAAEA,EAAKI,OAAEA,GAAWiG,EACrC,YAhCA,EACJO,EACArC,KACGzI,KAEH,GAAI8K,aAAuBC,EAAAA,aACzB,MAAmD,mBAApCD,EAAoBrC,GAC9BqC,EAAoBrC,MAAezI,GACpC8K,EAAYE,UAAUvC,KAAezI,GAG3C,GAAgD,mBAApC8K,EAAoBrC,GAC9B,OAAQqC,EAAoBrC,MAAezI,GAE7C,MAAU0E,MACR,uBAAuB+D,mBAA4BqC,GAAa/L,aAAaiD,OAEjF,EAemBiJ,CACXnF,KAAKgF,cACLrC,KACG6B,EAAW3G,cACdkH,EACA3G,EACAI,EAEH,CAAC,MAAOmD,GAEP,MADA+C,EAAIU,MAAM,iBAAiBzC,YAAsBhB,GAC3CA,CACP,CACH,CACF,UAEgB0D,EACdC,EACA3C,EACA1I,GAWA,OATA5C,OAAOkO,eACLD,EAAgBpB,WAAaoB,EAC7B3C,EACA,CACEnL,MAAOyC,EACPuL,UAAU,IAIPnO,OAAOoO,yBACZH,EAAgBpB,WAAaoB,EAC7B3C,EAEJ,CCnJM,MAAgB+C,UAEZC,EAAAA,QACR,WAAA1M,CACqB2M,EACnB1J,GAEA2J,MAAM3J,GAHa8D,KAAa4F,cAAbA,CAIpB,CA4BkB,MAAAE,CAKjB5L,EACA6L,EACAC,GAAsB,EACtBtE,GAMA,MAAMhF,EAAMsD,KAAK4F,cAAclJ,IAE/B,OADAxC,EAAOA,EAAK3C,OAAQoK,QAAmB,IAANA,GAC1BsE,EAAqBA,sBAACH,OAAOI,KAClClG,KACA+F,EACArE,GAAa,CAAE,EACfsE,KACO9L,EAAMwC,EAEhB,EAGG,MAAgByJ,UAGZT,EAKR,WAAAV,CAAYtI,GACV,IAAKsD,KAAKoG,aACR,IACEpG,KAAKoG,aAAenB,EAAYA,aAACoB,WAC/BrG,KAAK/C,MAGR,CAAC,MAAO0E,GACP3B,KAAKoG,aAAeE,EAAUA,WAACC,SAASvG,KAAK/C,MAC9C,CAEH,OAAOP,EACHsD,KAAKoG,wBAAwBE,EAAUA,WACrCtG,KAAKoG,aAAaI,SAAS9J,EAAI+J,eAC/BzG,KAAKoG,aAAazB,IAAIjI,EAAI+J,eAC5BzG,KAAKoG,YACV,CAED,WAAAnN,CAAsB2M,EAAoC1J,GACxD2J,MAAMD,EAAe1J,EACtB,CAuCkB,MAAA4J,CAIjB5L,EACA6L,EACAC,GAAuB,GAgBvB,MAAMtJ,EAAMsD,KAAK4F,cAAclJ,IAC/B,IAAIgF,EAAiC,CAAA,EACrC,IACEA,EAAYhF,EAAItC,IAAI,YAErB,CAAC,MAAOuH,GAER,CACD,MAAMqD,EAAchF,KAAKgF,YAAYtI,GACrC,IAAIgK,EASAC,EAEJ,OAVI3B,aAAuBC,EAAYA,aACrCyB,EAAa1B,EAAY4B,KAAc,QAChC5B,aAAuBsB,EAAUA,WACxCI,EAAa1B,EAAqB,QAC1BA,EAA2C1C,UACnDoE,EAAa1B,GAKVgB,EAYDU,EAAmD,OACnDxM,EACA6L,GACA,EACArE,GAEFmF,KAAMF,GACCA,IAlBPA,EAAYD,EAAmD,OAC7DxM,EACA6L,GACA,EACArE,GAGKiF,EAaV,EC1Ka,SAAAG,EACd9M,EACAuF,GAEA,IAAKwH,EAAwBA,yBAAClP,SAASmC,GACrC,OAAOuF,EAET,MAAMyH,EAAW,CACf3M,EAAAA,cAAcc,OACd8L,EAAAA,sBAAsBC,YACtBrP,SAASmC,GACL8B,EAAQ3B,EAAQA,SAAC5B,WAAWgH,IAAU,GACtC4H,EAAY/F,EAAKA,MAAC+F,UAAU5H,IAAU,GAC5C,IAAI6H,EAAatL,EAAMvE,OAAQyE,GAAMoF,EAAKA,MAACiG,UAAU9H,EAAOvD,IAExDgL,IAAUI,EAAaA,EAAW7P,OAAQyE,GAAMA,IAAMoF,QAAMkG,GAAG/H,KAEnE,MAAMgI,UAAmBC,EAAAA,SAASjI,EAAc6H,KAMhD,SAASK,EAAYC,EAAkBC,EAAkBxQ,GAGlDA,IACHE,OAAOkO,eAAegC,EAAWrD,UAAWwD,EAAU,CACpDlQ,MAJWL,EAAU,CAACwQ,GAAeA,EAKrCnC,UAAU,EACVoC,YAAY,EACZC,cAAc,IAEhBrP,QAAQE,eACN,cACAiP,EACAJ,EAAWrD,UACXwD,GAQL,CA1BDrQ,OAAOkO,eAAegC,EAAY,OAAQ,CACxC/P,MAAO,GAAGsQ,EAAYA,aAACvI,EAAMrD,QAAQ4L,EAAYA,aAAC9N,UA4BpD,IAAK,MAAM0N,KAAYP,EAAW,CAChC,IAAInO,EAAoBmB,EAAQA,SAAC4N,aAAaxI,EAAOmI,GAIrD,GAHA1O,EAAOA,EAAQ9B,MAAMC,QAAQ6B,GAAQA,EAAK,GAAKA,OAAQU,EACvDV,EAAuB,mBAATA,GAAwBA,EAAKkD,KAAgBlD,EAATA,KAE7CA,EACH,MAAM,IAAIgJ,EAAaA,cAAC,qBAAqB0F,eAE/C,GAAItG,QAAMhH,IAAIpB,EAAKkD,MAAO,CACxB,MAAM8L,EAAO7N,EAAQA,SAAC8N,cAAc1I,EAAOmI,GAE3CD,EAAYC,EADQZ,EAAO9M,EAAIhB,KACOgP,EAAaE,EAAcA,eAACC,MACnE,CACF,CAED,OAAOZ,CACT,CCrGCa,EAAAA,QAAgBC,gBAEfC,IACA,MAAMC,EACe,iBAAZD,EAAuBA,EAAWA,EAAQC,MACnD,OAAOpO,EAAAA,SAAmB,SAAE8E,OAAO0F,IAAI,gBAAiB4D,EAC1D,GAAEC,KAAKJ,EAAAA,SAENA,EAAAA,QAAgBK,qBAAsB,KAGrC,MAAMT,EAAO7N,EAAAA,SAAmB,SAAE8E,OAAO0F,IAAI,iBAC7C,GAAKqD,EACL,OAAO3Q,OAAOM,KAAKqQ,EACrB,GAAEQ,KAAKJ,EAAAA,SAESM,EAAAC,QAACzE,UAAU0E,WAAa,SAEvBpG,GACf,MAAMqG,EAAU7I,KAAK6I,UAErB,OADIA,GAASrG,EAAIsG,OAAO,iBAAkBjE,KAAKC,UAAU+D,IAClDrG,CACT,QCiFauG,SACa/I,KAAG0E,IAAGsE,EAAOA,QAACrE,IAAIoE,EAAoB7M,KAAM,CAEpE,qBAAO+M,CACLC,GAEA,IACE,OAAOjE,EAAYA,aAACoB,WAAW6C,EAEhC,CAAC,MAAOvH,GACP,OAAO2E,EAAUA,WAACC,SAAS2C,EAC5B,CACF,CAED,sCAAOC,CACLnE,EACAoE,EAAiB/H,EAAAA,gBAAgBgI,OAEjC,MAAM3E,EAAMqE,EAAoBrE,IAAIC,IAClCoE,EAAoBI,iCAEhBvC,EACJ5B,aAAuBC,EAAAA,aAAeD,EAAY4B,KAAO5B,EACrDhI,EAA2B4J,EAAK3J,MAChCqM,EACJnP,EAAAA,SAASC,IACPwM,EAAK3N,YACLkB,WAASvC,IAAIyJ,EAAeA,gBAACgI,SAC1B,CAAA,EAEDE,EACJpP,EAAAA,SAASC,IACP4K,EAAY/L,YACZkB,EAAQA,SAACvC,IAAImH,KACV,GAGP,MAAMyK,UAAwBrD,EAC5B,SAAa,GACX,MAAUvH,MAAM,0BACjB,CACD,WAAA3F,CAAY2M,EAAoC1J,GAC9C2J,MAAMD,EAAe1J,EACtB,EAGH,IAAK,MAAOyG,EAAYnF,KAAWnG,OAAOoS,QAAQF,GAAe,CAE/D,MAAM3G,EAAY,CAACpF,EAAO9C,KAAKgP,QAAQ,aAAc,KAClDnS,OAAQoS,GAAYA,GAAWA,EAAQC,QACvCC,KAAK,KAGF5P,EAAUqK,EAAmB3B,GACnC,IAAK1I,EAAS,CACZ,MAAM6P,EAAU,wCAAwC9M,EAAYd,4BAA4ByG,IAEhG,MADA+B,EAAIU,MAAM0E,GACAlL,MAAMkL,EACjB,CAED,MAAM9F,EAAaqB,EACjBmE,EACA7G,EACA1I,GAGE+J,GAMFD,EAAmByF,EAAiB7G,EAAYqB,EAL7BtB,EACjBC,EACAC,EACApF,EAAOuM,YAIZ,CAED,IAAK,MAAOpH,EAAYqH,KAAc3S,OAAOoS,QAAQH,GAAe,CAClE,MACM1G,EAAY,CAACwG,EAAQzG,MADZqH,EAAUC,QAAU,IACcxS,IAAKyS,GAAM,IAAIA,IAC7D3S,OAAQoS,GAAYA,GAAWA,EAAQC,QACvCC,KAAK,KAGF7F,EAAaqB,EACjBmE,EACA7G,EAHc2B,EAAmB3B,IAO/BqB,GAEFD,EAAmByF,EAAiB7G,EAAYqB,EAD7BtB,EAAiBC,EAAYC,EAAW,OAAO,GAGrE,CAED,OAAO4G,CACR,CAED,aAAOW,CAA6BnN,GAClC,MAAM0H,EAAMqE,EAAoBrE,IAAIC,IAAIoE,EAAoBoB,QACtDC,EAAYhJ,EAAAA,MAAMgJ,UAAUpN,GAC5B4F,EAAYyH,cAAYD,GACxBE,EAAiBtN,EAAYd,KAC7B8I,EAAc+D,EAAoBE,eAAejM,IAGjDb,YAAEA,EAAWoO,MAAEA,EAAKC,cAAEA,EAAa9P,KAAEA,GACzCqO,EAAoB0B,4BAA4BzN,GAElD0H,EAAIE,MAAM,kCAAkC0F,GAE5C,MAAMI,EAAiB3B,EAAoBI,gCACzCnE,GAGF,IAIM2F,EAJN,cAIqCD,EAGzB,gBAAW,GACnB,OAAO1N,CACR,CAED,SAAa,GACX,OAAOA,CAER,CAED,WAAA/D,CAAY2M,GACVC,MAAMD,GAZS5F,KAAAsH,GAAalG,EAAAA,MAAMkG,GAAGtK,GAarC0H,EAAIkG,KACF,6CAA6C5K,KAAK/C,MAAMf,gBAAgB0G,IAE3E,CA4BD,YAAMiI,CAAOjT,EAA2BkT,GACtC,MAAMpO,IAAEA,UACAsD,KAAK8F,OAAO,GAAIiF,wBAAsBC,SAAS,IACrDrG,IAAI3E,KAAK6K,QACX,OAAO7K,KAAKgF,YAAYtI,GAAKmO,OAC3BjT,EACAkT,EAAQ/F,UACRrI,EAEH,CAoBD,gBAAMuO,CACUrT,EACAkT,GAEd,MAAMpO,IAAEA,UACAsD,KAAK8F,OAAO,GAAIiF,wBAAsBG,SAAS,IACrDvG,IAAI3E,KAAKiL,YACX,OAAOjL,KAAKgF,YAAYtI,GAAKuO,WAC3BrT,EACAkT,EAAQ/F,UACR+F,EACApO,EAEH,CAWD,eAAMyO,CAAwBvT,EAA6BJ,GACzD,MAAMkF,IAAEA,UACAsD,KAAK8F,OAAO,GAAIiF,wBAAsBK,aAAa,IACzDzG,IAAI3E,KAAKmL,WACX,OAAOnL,KAAKgF,YAAYtI,GAAKyO,UAAUvT,EAAgBJ,EAAOkF,EAC/D,CAkBK,YAAA2O,CACUzT,EACEJ,EAEFsT,GAEd,MAAMpO,IAAEA,UACAsD,KAAK8F,OAAO,GAAIiF,wBAAsBO,SAAS,IACrD3G,IAAI3E,KAAKqL,QACX,OAAOrL,KAAKgF,YAAYtI,GACrBiI,IAAIjI,EAAI+J,eACR4E,OAAOzT,EAAgBJ,EAAOkF,EAClC,CAqCK,eAAAwI,CACahJ,EACFhC,EACD4Q,GAEd,MAAMpO,IAAEA,UACAsD,KAAK8F,OAAO,GAAIzE,kBAAgBkK,WAAW,IACjD5G,IAAI3E,KAAKkF,YACLH,UAAEA,EAASvG,OAAEA,EAAMJ,MAAEA,EAAKK,SAAEA,GAAaqM,EAI/C,OAHA5Q,EAAOA,EAAKzC,IACT+T,IAAoB,iBAANA,EAAiBC,SAASD,GAAKA,IAAMA,GAE9CtP,GACN,KAAK6O,EAAqBA,sBAACO,QACzB,MACF,KAAKP,EAAqBA,sBAACC,QACzB9Q,EAAKmJ,KAAK0B,GACV,MACF,KAAKgG,EAAqBA,sBAACG,QACzBhR,EAAO,CACLA,EAAK,GACL6K,EACA,CACE3G,MAAOA,EACPI,OAAQA,EACRC,SAAUA,IAIhB,KAAKsM,EAAqBA,sBAACK,YAE3B,KAAKL,EAAAA,sBAAsBW,SAC3B,KAAKX,EAAAA,sBAAsBY,OAC3B,KAAKZ,EAAAA,sBAAsBa,OAC3B,KAAKb,EAAAA,sBAAsBc,OAC3B,KAAKd,EAAAA,sBAAsBe,OAC3B,KAAKf,EAAAA,sBAAsBgB,YAC3B,KAAKhB,EAAqBA,sBAACiB,UAI7B,OAAOhM,KAAKgF,YAAYtI,GAAKwI,UAAUhJ,KAAShC,EAAMwC,EACvD,CAQK,aAAAuP,GACJ,MAAMvP,IAAEA,UACAsD,KAAK8F,OAAO,GAAIiF,wBAAsBW,UAAU,IACtD/G,IAAI3E,KAAKiM,SACX,OAAOjM,KAAKgF,YAAYtI,GAAKwI,UAC3B6F,wBAAsBW,SACtBhP,EAEH,CASD,kBAAMwP,CAA6BC,GACjC,MAAMzP,IAAEA,UACAsD,KAAK8F,OAAO,GAAIiF,wBAAsBW,UAAU,IACtD/G,IAAI3E,KAAKkM,cACX,OAAOlM,KAAKgF,YAAYtI,GAAKwI,UAC3B6F,EAAAA,sBAAsBW,SACtBS,EACAzP,EAEH,CAUD,WAAM0P,CAAsBD,GAC1B,MAAMzP,IAAEA,UACAsD,KAAK8F,OAAO,GAAIiF,wBAAsBY,QAAQ,IACpDhH,IAAI3E,KAAKoM,OACX,OAAOpM,KAAKgF,YAAYtI,GAAKwI,UAC3B6F,EAAAA,sBAAsBY,OACtBQ,EACAzP,EAEH,CAUD,WAAM2P,CAAsBF,GAC1B,MAAMzP,IAAEA,UACAsD,KAAK8F,OAAO,GAAIiF,wBAAsBa,QAAQ,IACpDjH,IAAI3E,KAAKqM,OACX,OAAOrM,KAAKgF,YAAYtI,GAAKwI,UAC3B6F,EAAAA,sBAAsBa,OACtBO,EACAzP,EAEH,CAcD,WAAM4P,CAAsBH,GAC1B,MAAMzP,IAAEA,UACAsD,KAAK8F,OAAO,GAAIiF,wBAAsBc,QAAQ,IACpDlH,IAAI3E,KAAKsM,OACX,OAAOtM,KAAKgF,YAAYtI,GAAKwI,UAC3B6F,EAAAA,sBAAsBc,OACtBM,EACAzP,EAEH,CASD,WAAM6P,CAAsBJ,GAC1B,MAAMzP,IAAEA,UACAsD,KAAK8F,OAAO,GAAIiF,wBAAsBe,QAAQ,IACpDnH,IAAI3E,KAAKuM,OACX,OAAOvM,KAAKgF,YAAYtI,GAAKwI,UAC3B6F,EAAAA,sBAAsBe,OACtBK,EACAzP,EAEH,CAcD,gBAAM8P,CAA2BL,GAC/B,MAAMzP,IAAEA,UACAsD,KAAK8F,OAAO,GAAIiF,wBAAsBgB,aAAa,IACzDpH,IAAI3E,KAAKwM,YACX,OAAOxM,KAAKgF,YAAYtI,GAAKwI,UAC3B6F,EAAAA,sBAAsBgB,YACtBI,EACAzP,EAEH,CAUD,aAAM+P,CAAwBN,GAC5B,MAAMzP,IAAEA,UACAsD,KAAK8F,OAAO,GAAIiF,wBAAsBiB,UAAU,IACtDrH,IAAI3E,KAAKyM,SACX,OAAOzM,KAAKgF,YAAYtI,GAAKwI,UAC3B6F,EAAAA,sBAAsBiB,SACtBG,EACAzP,EAEH,CA2BD,eAAMgQ,CACSjQ,EACoBkQ,GAEjC,MAAMjQ,IAAEA,EAAGgI,IAAEA,UACL1E,KAAK8F,OAAO,GAAImB,EAAAA,sBAAsB2F,YAAY,IACxDjI,IAAI3E,KAAK0M,WAEX,IAAIG,EADJnI,EAAIoI,QAAQ,gBAAgBxC,GAE5B,IACEuC,QAAgB7M,KAAKgF,YAAYtI,GAAKgQ,UACpCjQ,EAAKhF,IAAK2M,GAAM,IAAIpH,EAAYoH,IAChC1H,EAEH,CAAC,MAAOiF,GAEP,MADA+C,EAAIU,MAAM,wBAAwBkF,EAAkB3I,GAC9CA,CACP,CAMD,OALA+C,EAAIkG,KACF,eAAeN,aAA2BuC,EAAgB7M,KAAKsH,OAGjE5K,EAAIkM,WAAW+D,GACRE,CACR,CAkBD,YAAM1C,CACS1N,EACoBkQ,GAEjC,MAAMjQ,IAAEA,EAAGgI,IAAEA,UACL1E,KAAK8F,OAAO,GAAIzL,EAAAA,cAAcW,QAAQ,IAC5C2J,IAAI3E,KAAKmK,QAEX,IAAI0C,EADJnI,EAAIoI,QAAQ,gBAAgBxC,GAE5B,IACE,MAAMtF,EAAchF,KAAKgF,YAAYtI,GACrCmQ,QAAgB7H,EAAYmF,OAAO1N,EAAMC,EAC1C,CAAC,MAAOiF,GAEP,MADA+C,EAAIU,MAAM,wBAAwBkF,EAAkB3I,GAC9CA,CACP,CAKD,OAJA+C,EAAIkG,KACF,eAAeN,aAA2BuC,EAAgB7M,KAAKsH,OAEjE5K,EAAIkM,WAAW+D,GACRE,CACR,CAiBD,aAAME,CAAsBC,GAC1B,MAAMtQ,IAAEA,EAAGgI,IAAEA,UACL1E,KAAK8F,OAAO,GAAImB,EAAAA,sBAAsBgG,UAAU,IACtDtI,IAAI3E,KAAK+M,SACX,IAAIG,EACJ,IACExI,EAAIE,MAAM,WAAWoI,EAAIhV,UAAUsS,MAAmB0C,KACtD,MAAMhI,EAAchF,KAAKgF,YAAYtI,GACrCwQ,QAAalI,EAAY+H,QAAQC,EAAYtQ,EAC9C,CAAC,MAAOiF,GAEP,MADA+C,EAAIU,MAAM,aAAakF,aAA0B0C,IAAOrL,GAClDA,CACP,CAGD,OADA+C,EAAIkG,KAAK,QAAQsC,EAAKlV,UAAUsS,KACzB4C,CACR,CAcD,UAAMA,CAAiCC,GACrC,MAAMzQ,IAAEA,EAAGgI,IAAEA,UACL1E,KAAK8F,OAAO,GAAIzL,EAAAA,cAAcQ,MAAM,IAC1C8J,IAAI3E,KAAKkN,MACLE,EAAK7C,KAAS4C,EAAYtP,eAChC,QAAkB,IAAPuP,EACT,MAAM,IAAIC,EAAeA,gBAAC,MAAMrN,KAAKsH,eAEvC,IAAI4F,EACJ,IACExI,EAAIE,MAAM,WAAW0F,UAAuBtK,KAAKsH,MAAM8F,KACvD,MAAMpI,EAAchF,KAAKgF,YAAYtI,GACrCwQ,QAAalI,EAAYkI,KAAKE,EAAI1Q,EACnC,CAAC,MAAOiF,GAKP,MAJA+C,EAAIU,MACF,kBAAkBkF,aAA0B8C,IAC5CzL,GAEIA,CACP,CAGD,OADA+C,EAAIkG,KAAK,QAAQN,aAA2B4C,EAAalN,KAAKsH,OACvD4F,CACR,CA8BD,eAAMI,CACS3Q,EACoBgQ,GAEjC,MAAMjQ,IAAEA,EAAGgI,IAAEA,UACL1E,KAAK8F,OAAO,GAAImB,EAAAA,sBAAsBC,YAAY,IACxDvC,IAAI3E,KAAKsN,WAEX,IAAIC,EACJ,IACE7I,EAAIkG,KAAK,YAAYjO,EAAK3E,UAAUsS,KACpCiD,QAAgBvN,KAAKgF,YAAYtI,GAAK4Q,UAAU3Q,EAAMD,EACvD,CAAC,MAAOiF,GAEP,MADA+C,EAAIU,MAAMzD,GACJA,CACP,CAED,OADAjF,EAAIkM,WAAW+D,GACRY,CACR,CAqBK,YAAAC,CACwBL,EACfxQ,EACoBgQ,GAEjC,MAAMjQ,IAAEA,EAAGgI,IAAEA,UACL1E,KAAK8F,OAAO,GAAIzL,EAAAA,cAAcc,QAAQ,IAC5CwJ,IAAI3E,KAAKwN,QAELJ,EAAK7C,KAAS4C,EAAYtP,eAChC,QAAkB,IAAPuP,EACT,MAAM,IAAIC,EAAeA,gBAAC,MAAMrN,KAAKsH,eAEvC,IAAIiG,EACJ,IACE7I,EAAIkG,KAAK,YAAYN,UAAuBtK,KAAKsH,MAAM8F,KACvD,MAAMK,EAAU5I,KAAK6I,MAAM7I,KAAKC,UAAUnI,IACpCqI,EAAchF,KAAKgF,YAAYtI,GACrC6Q,QAAgBvI,EAAYwI,OAC1B,IAAIxQ,EAAY,IACXyQ,EACH,CAACzN,KAAKsH,IAAK8F,IAEb1Q,EAEH,CAAC,MAAOiF,GAEP,MADA+C,EAAIU,MAAMzD,GACJA,CACP,CAED,OADAjF,EAAIkM,WAAW+D,GACRY,CACR,CAYD,eAAMI,CACUX,EACmBL,GAEjC,MAAMjQ,IAAEA,EAAGgI,IAAEA,UACL1E,KAAK8F,OAAO,GAAImB,EAAAA,sBAAsB2G,YAAY,IACxDjJ,IAAI3E,KAAK2N,WACX,IAAIT,EACJ,IACExI,EAAIE,MAAM,YAAYoI,EAAIhV,UAAUsS,MAAmB0C,KACvDE,QAAalN,KAAKgF,YAAYtI,GAAKiR,UAAUX,EAAKtQ,EACnD,CAAC,MAAOiF,GAKP,MAJA+C,EAAIU,MACF,oBAAoBkF,aAA0B0C,IAC9CrL,GAEIA,CACP,CAID,OAFA+C,EAAIkG,KAAK,WAAWsC,EAAKlV,UAAUsS,KACnC5N,EAAIkM,WAAW+D,GACRO,CACR,CAWD,YAAM,CACwBC,EACKR,GAEjC,MAAMjQ,IAAEA,EAAGgI,IAAEA,UACL1E,KAAK8F,OAAO,GAAIzL,EAAAA,cAAckB,QAAQ,IAC5CoJ,IAAI3E,KAAK6N,QAELT,EAAK7C,KAAS4C,EAAYtP,eAChC,QAAkB,IAAPuP,EACT,MAAM,IAAIC,EAAeA,gBAAC,MAAMrN,KAAKsH,eAEvC,IAAIwG,EACJ,IACEpJ,EAAIE,MACF,YAAY0F,UAAuBtK,KAAKsH,MAAgB8F,KAE1DU,QAAY9N,KAAKgF,YAAYtI,GAAKmR,OAAOT,EAAI1Q,EAC9C,CAAC,MAAOiF,GAKP,MAJA+C,EAAIU,MACF,oBAAoBkF,aAA0B8C,IAC9CzL,GAEIA,CACP,CAGD,OAFA+C,EAAIkG,KAAK,WAAWN,aAA0B8C,KAC9C1Q,EAAIkM,WAAW+D,GACRmB,CACR,GAGH,OAlpBQvN,aAAA,CAPL/F,EAAsBwC,EAAa,MAAO,eAC1C0G,EAAYA,aAAC,CAAEC,QAAS,YAAY2G,wBACpC7G,EAAAA,SAAS,CAAEvH,KAAM,MAAOC,YAAa,6BACrCmH,EAAQA,SAAC,CAAEpH,KAAM,YAAaE,UAAU,EAAMzC,KAAM4J,EAAAA,iBACpDK,gBAAc,CACbzH,YAAgBmO,EAAH,0BAEY7J,UAAA,EAAAzC,uIAS1B2M,EAAAzG,UAAA,SAAA,MAoBK3D,aAAA,CAlBL/F,EAAsBwC,EAAa,MAAO,yBAC1C0G,EAAYA,aAAC,CAAEC,QAAS,YAAY2G,wBACpC7G,EAAAA,SAAS,CAAEvH,KAAM,MAAOC,YAAa,6BACrCsH,WAAS,CACRvH,KAAM,OACNC,YAAa,yCAEdmH,WAAS,CACRpH,KAAM,YACNE,UAAU,EACVzC,KAAM4J,EAAcA,eACpBpH,YAAa,mBAEdmH,EAAQA,SAAC,CAAEpH,KAAM,QAASE,UAAU,EAAMD,YAAa,kBACvDmH,EAAAA,SAAS,CAAEpH,KAAM,SAAUC,YAAa,gCACxCyH,gBAAc,CACbzH,YAAgBmO,EAAH,uBAGZ7J,EAAAA,QAAA,EAAAsN,QAAM,QACNtN,UAAA,EAAAzC,uIAWF2M,EAAAzG,UAAA,aAAA,MAWK3D,aAAA,CATL/F,EAAsBwC,EAAa,MAAO,kBAC1C0G,EAAYA,aAAC,CAAEC,QAAS,YAAY2G,wBACpC7G,EAAAA,SAAS,CAAEvH,KAAM,MAAOC,YAAa,6BACrCyH,gBAAc,CACbzH,YAAgBmO,EAAH,mBAEd0D,sBAAoB,CACnB7R,YAAa,MAAMmO,8CAEJ7J,EAAAA,QAAA,EAAAsN,QAAM,QAAqBtN,EAAAA,QAAA,EAAAsN,QAAM,4IAKjDpD,EAAAzG,UAAA,YAAA,MAkBK3D,aAAA,CAhBL/F,EAAsBwC,EAAa,MAAO,sBAC1C0G,EAAYA,aAAC,CAAEC,QAAS,YAAY2G,wBACpC7G,EAAAA,SAAS,CAAEvH,KAAM,MAAOC,YAAa,6BACrCsH,EAAAA,SAAS,CAAEvH,KAAM,QAASC,YAAa,uBACvCmH,WAAS,CACRpH,KAAM,YACNE,UAAU,EACVzC,KAAM4J,EAAcA,eACpBpH,YAAa,oCAEdyH,gBAAc,CACbzH,YAAgBmO,EAAH,mBAEd0D,sBAAoB,CACnB7R,YAAa,MAAMmO,8CAGlB7J,EAAAA,QAAA,EAAAsN,QAAM,QACNtN,EAAAA,QAAA,EAAAsN,QAAM,UAENtN,UAAA,EAAAzC,8IAQF2M,EAAAzG,UAAA,SAAA,MAqCK3D,aAAA,CAnCL/F,EAAsBwC,EAAa,MAAO,2BAC1C0G,eAAa,CACZC,QAAS,oCAAoC2G,OAE9C7G,WAAS,CACRvH,KAAM,SACNC,YAAa,sCAEdsH,WAAS,CACRvH,KAAM,OACNC,YACE,qEAEHmH,WAAS,CACRpH,KAAM,YACNE,UAAU,EACVzC,KAAM4J,EAAcA,eACpBpH,YAAa,oCAEdmH,WAAS,CACRpH,KAAM,QACNE,UAAU,EACVD,YAAa,uCAEdmH,WAAS,CACRpH,KAAM,SACNE,UAAU,EACVD,YAAa,uCAEdyH,gBAAc,CACbzH,YAAgBmO,EAAH,mBAEd0D,sBAAoB,CACnB7R,YAAa,MAAMmO,8CAGlB7J,EAAAA,QAAA,EAAAsN,QAAM,WACNtN,EAAAA,QAAA,EAAAsN,QAAM,SACNtN,UAAA,EAAAzC,6IAuCF2M,EAAAzG,UAAA,YAAA,MAQK3D,aAAA,CANL/F,EAAsBwC,EAAa,MAAO,WAC1C0G,EAAYA,aAAC,CAAEC,QAAS,aAAa2G,eACrC1G,gBAAc,CACbzH,YAAa,YAAYmO,aACzBtR,KAAMsF,8HAUPqM,EAAAzG,UAAA,UAAA,MASK3D,aAAA,CAPL/F,EAAsBwC,EAAa,MAAO,kBAC1C0G,EAAYA,aAAC,CAAEC,QAAS,SAAS2G,wBACjC7G,EAAAA,SAAS,CAAEvH,KAAM,QAASC,YAAa,uBACvCyH,gBAAc,CACbzH,YAAa,YAAYmO,aACzBtR,KAAMsF,SAEYmC,EAAAA,QAAA,EAAAsN,QAAM,qIASzBpD,EAAAzG,UAAA,eAAA,MAUK3D,aAAA,CARL/F,EAAsBwC,EAAa,MAAO,gBAC1C0G,eAAa,CACZC,QAAS,oCAAoC2G,OAE9C7G,EAAAA,SAAS,CAAEvH,KAAM,QAASC,YAAa,6BACvCyH,gBAAc,CACbzH,YAAa,iCAAiCmO,OAEnC7J,EAAAA,QAAA,EAAAsN,QAAM,qIASlBpD,EAAAzG,UAAA,QAAA,MAUK3D,aAAA,CARL/F,EAAsBwC,EAAa,MAAO,gBAC1C0G,eAAa,CACZC,QAAS,oCAAoC2G,OAE9C7G,EAAAA,SAAS,CAAEvH,KAAM,QAASC,YAAa,6BACvCyH,gBAAc,CACbzH,YAAa,iCAAiCmO,OAEnC7J,EAAAA,QAAA,EAAAsN,QAAM,qIASlBpD,EAAAzG,UAAA,QAAA,MAcK3D,aAAA,CAZL/F,EAAsBwC,EAAa,MAAO,gBAC1C0G,eAAa,CACZC,QAAS,mCAAmC2G,OAE7C7G,WAAS,CACRvH,KAAM,QACNC,YAAa,sCAEdyH,gBAAc,CACbzH,YAAa,iCAAiCmO,KAC9CtR,KAAMsF,SAEKmC,EAAAA,QAAA,EAAAsN,QAAM,qIASlBpD,EAAAzG,UAAA,QAAA,MASK3D,aAAA,CAPL/F,EAAsBwC,EAAa,MAAO,gBAC1C0G,EAAYA,aAAC,CAAEC,QAAS,+BAA+B2G,OACvD7G,EAAAA,SAAS,CAAEvH,KAAM,QAASC,YAAa,kCACvCyH,gBAAc,CACbzH,YAAa,uBAAuBmO,KACpCtR,KAAMsF,SAEKmC,EAAAA,QAAA,EAAAsN,QAAM,qIASlBpD,EAAAzG,UAAA,QAAA,MAcK3D,aAAA,CAZL/F,EAAsBwC,EAAa,MAAO,qBAC1C0G,eAAa,CACZC,QAAS,sCAAsC2G,OAEhD7G,WAAS,CACRvH,KAAM,QACNC,YAAa,yCAEdyH,gBAAc,CACbzH,YAAa,mCAAmCmO,KAChDtR,KAAM,CAACqD,UAESoE,EAAAA,QAAA,EAAAsN,QAAM,qIASvBpD,EAAAzG,UAAA,aAAA,MAUK3D,aAAA,CARL/F,EAAsBwC,EAAa,MAAO,kBAC1C0G,eAAa,CACZC,QAAS,SAAS2G,0BAEnB7G,EAAAA,SAAS,CAAEvH,KAAM,QAASC,YAAa,0BACvCyH,gBAAc,CACbzH,YAAgBmO,EAAH,mCAEA7J,EAAAA,QAAA,EAAAsN,QAAM,qIASpBpD,EAAAzG,UAAA,UAAA,MA2BK3D,aAAA,CAzBL/F,EAAsBwC,EAAa,OAAQ,QAC3C0G,EAAYA,aAAC,CAAEC,QAAS,gBAAgB2G,OACxC2D,UAAQ,CACP9R,YAAa,eAAemO,EAC5B4D,OAAQ,CACNlV,KAAM,QACNa,MAAO,CACLsU,KAAMC,EAAaA,cAACpR,OAKzBqR,qBAAmB,CAClBlS,YAAgBmO,EAAH,yBACb4D,OAAQ,CACNlV,KAAM,QACNa,MAAO,CACLsU,KAAMC,EAAaA,cAACpR,OAIzBsR,wBAAsB,CAAEnS,YAAa,+BACrCoS,iCAA+B,CAC9BpS,YAAa,8CAGZsE,UAAA,EAAAlE,KACAkE,EAAAA,QAAA,EAAA+N,EAAQA,SAAC,CAAEC,aAAa,sIAsB1B9D,EAAAzG,UAAA,YAAA,MAkBK3D,aAAA,CAhBL/F,EAAsBwC,EAAa,QACnC0G,EAAYA,aAAC,CAAEC,QAAS,gBAAgB2G,OACxC2D,UAAQ,CACP9R,YAAa,eAAemO,EAC5BtR,KAAM8N,EAAOzM,gBAAcW,OAAQgC,KAEpCqR,qBAAmB,CAClBlS,YAAgBmO,EAAH,yBACb4D,OAAQ,CACNC,KAAMC,EAAaA,cAACpR,MAGvBsR,wBAAsB,CAAEnS,YAAa,+BACrCoS,iCAA+B,CAC9BpS,YAAa,8CAGZsE,UAAA,EAAAlE,KACAkE,EAAAA,QAAA,EAAA+N,EAAQA,SAAC,CAAEC,aAAa,uIAmB1B9D,EAAAzG,UAAA,SAAA,MAiBK3D,aAAA,CAfL/F,EAAsBwC,EAAa,MAAO,QAC1C0G,EAAYA,aAAC,CAAEC,QAAS,cAAc2G,oBACtChH,EAAQA,SAAC,CAAEpH,KAAM,MAAOE,UAAU,EAAMpD,KAAM,UAC9C4K,gBAAc,CACbzH,YAAgBmO,EAAH,2BACb4D,OAAQ,CACNlV,KAAM,QACNa,MAAO,CACLsU,KAAMC,EAAaA,cAACpR,OAIzBgR,sBAAoB,CACnB7R,YAAa,MAAMmO,8CAEN7J,EAAAA,QAAA,EAAAqD,QAAM,kIAgBpB6G,EAAAzG,UAAA,UAAA,MAcK3D,aAAA,CAZL/F,EAAsBwC,EAAa,MAAOtC,GAC1CmB,EAAmB2O,GACnB9G,EAAYA,aAAC,CAAEC,QAAS,cAAc2G,oBACtC1G,gBAAc,CACbzH,YAAgBmO,EAAH,2BACb4D,OAAQ,CACNC,KAAMC,EAAaA,cAACpR,MAGvBgR,sBAAoB,CACnB7R,YAAa,MAAMmO,8CAET7J,EAAAA,QAAA,EAAA1C,EAAYyM,+HAuBvBG,EAAAzG,UAAA,OAAA,MA8BK3D,aAAA,CA5BL/F,EAAsBwC,EAAa,MAAO,QAC1CnB,EAAmB2O,GACnB9G,eAAa,CACZC,QAAS,uBAAuB2G,iCAEjC2D,UAAQ,CACP9R,YAAa,4CAA4CmO,EACzD4D,OAAQ,CACNlV,KAAM,QACNa,MAAO,CACLsU,KAAMC,EAAaA,cAACpR,OAKzBqR,qBAAmB,CAClBlS,YAAgBmO,EAAH,yBACb4D,OAAQ,CACNlV,KAAM,QACNa,MAAO,CACLsU,KAAMC,EAAaA,cAACpR,OAIzBgR,sBAAoB,CACnB7R,YAAa,MAAMmO,8CAEpBgE,wBAAsB,CAAEnS,YAAa,+BAEnCsE,UAAA,EAAAlE,KACAkE,EAAAA,QAAA,EAAA+N,EAAQA,SAAC,CAAEC,aAAa,sIAgB1B9D,EAAAzG,UAAA,YAAA,MAqBK3D,aAAA,CAnBL/F,EAAsBwC,EAAa,MAAOtC,GAC1CmB,EAAmB2O,GACnB9G,eAAa,CACZC,QAAS,uBAAuB2G,iCAEjC2D,UAAQ,CACP9R,YAAa,4CAA4CmO,EACzD4D,OAAQ,CACNC,KAAMC,EAAaA,cAACpR,MAIvB4G,gBAAc,CACbzH,YAAgBmO,EAAH,2BAEd0D,sBAAoB,CACnB7R,YAAa,MAAMmO,8CAEpBgE,wBAAsB,CAAEnS,YAAa,+BAEnCsE,EAAAA,QAAA,EAAA1C,EAAYyM,IACZ/J,UAAA,EAAAlE,KACAkE,EAAAA,QAAA,EAAA+N,EAAQA,SAAC,CAAEC,aAAa,8IA4B1B9D,EAAAzG,UAAA,SAAA,MAYK3D,aAAA,CAVL/F,EAAsBwC,EAAa,SAAU,QAC7CnB,EAAmB2O,GACnB9G,EAAYA,aAAC,CAAEC,QAAS,cAAc2G,oBACtChH,EAAQA,SAAC,CAAEpH,KAAM,MAAOE,UAAU,EAAMpD,KAAM,UAC9C4K,gBAAc,CACbzH,YAAgBmO,EAAH,6BAEd0D,sBAAoB,CACnB7R,YAAa,MAAMmO,8CAGlB7J,EAAAA,QAAA,EAAAqD,QAAM,QACNrD,EAAAA,QAAA,EAAA+N,EAAQA,SAAC,CAAEC,aAAa,sIAoB1B9D,EAAAzG,UAAA,YAAA,MAWK3D,aAAA,CATL/F,EAAsBwC,EAAa,SAAUtC,GAC7CmB,EAAmB2O,GACnB9G,EAAYA,aAAC,CAAEC,QAAS,YAAY2G,oBACpC1G,gBAAc,CACbzH,YAAgBmO,EAAH,kCAEd0D,sBAAoB,CACnB7R,YAAa,MAAMmO,8CAGlB7J,EAAAA,QAAA,EAAA1C,EAAYyM,IACZ/J,EAAAA,QAAA,EAAA+N,EAAQA,SAAC,CAAEC,aAAa,uIA0B1B9D,EAAAzG,UAAA,SAAA,MA5rBGyG,EAAsBpK,EAAAA,WAAA,CAJ3BmO,EAAAA,WAAW9L,GACX+L,EAAAA,QAAQrE,GACRsE,EAAAA,eAAe5R,GACfsC,EAAKtC,qCAauBuE,EAAAA,uBAZvBoJ,GA+rBCA,CACR,CAED,+BAAOkE,GAAmD,CAE1D,kCAAOpE,CACLvB,GAEA,MAAM5B,EAAKlG,EAAAA,MAAMkG,GAAG4B,GACd4F,EAAW3U,EAAAA,SAASC,IACxB8O,EACA/O,EAAAA,SAASvC,IAAImX,SAAOC,SAAU1H,IAE1B2H,EAAeH,GAAU5U,MAAQ,GAGjCgV,EACJhY,MAAMC,QAAQ8X,IAAiBA,EAAajX,OAAS,EACjDd,MAAMiY,KAAK,IAAIC,IAAI,IAAIH,KACvB/X,MAAMiY,KAAK,IAAIC,IAAI,CAAC9H,KAEpBnL,EAAchC,EAAAA,SAASgC,YAAY+M,GAWzC,MAAO,CACLxO,KAXW,IAAIwU,EAAWrF,KAAK,MAY/B1N,cACAqO,cAZwC0E,EAAWzX,IAAKG,IACjD,CACLsE,KAAMtE,EACNuE,YAAahC,EAAQA,SAACgC,YAAY+M,EAAYtR,GAC9CwE,UAAU,EACVpD,KAAMqD,UAQRkO,MAAO,IAAI/M,IACTsR,GAAUO,UAAY7R,EAAOqM,KAAKiF,EAASO,WAAa7R,EAAOqM,KAAK,IAEzE,EC14BwChK,EAAAyP,+BAApC,MACL,WAAArW,CACqBsW,EACAC,GADAxP,KAAcuP,eAAdA,EACAvP,KAAQwP,SAARA,CACjB,CAEM,mBAAMC,CAAcnS,GAC5B,MACMoS,EAA0B,CAC9B1O,QAFc1D,EAAI0D,QAGlBU,UAAW,CAAE,GAGTiO,EAAWvH,UAAQK,sBACzB,GAAIkH,EACF,IAAK,MAAMC,KAAWD,EACpB,IACE,MAAME,EAAczH,EAAAA,QAAQC,eAC1BuH,GAEIT,QAAaU,EAAYV,KAAK7R,GACpCjG,OAAOyK,OAAO4N,EAAMhO,UAAWyN,EAChC,CAAC,MAAOxN,GACP,MAAM,IAAIK,EAAAA,cAAc,oCAAoCL,EAC7D,CAaL,OAXY,IAAIgH,EAAAA,SAAU9G,WACxBxK,OAAOyK,OACL,CAAE,EACFgO,sBACA,CACEC,OAAQ/G,EAAOA,QAAC5O,MAChB4V,UAAW,IAAIC,MAEjBP,GAIL,CAED,eAAMzP,CAAUqC,EAA2BpC,GACzC,MAAM5C,EAAMgF,EAAQ1F,eAAeC,aAC7B2F,EAAMF,EAAQ1F,eAAesT,cAC7BxT,QAAYsD,KAAKyP,cAAcnS,GAGrC,OAFA0C,KAAKuP,eAAexN,SAASrF,SACvBsD,KAAKwP,SAASjN,KAAKjF,EAAKkF,GACvBtC,EAAKI,QACb,GA/CwCT,EAAAyP,+BAAA/O,aAAA,CAD1CC,EAAAA,WAAW,CAAEyB,MAAOC,EAAKA,MAACC,4CAGYZ,EAAmBA,oBACzBa,EAAAA,wBAHpBkN,wCC1DSa,GAIhB,SAAUC,EAA4BR,GAC1C,OAA4CrS,IAC1CpD,EAAAA,SAASkW,IAAI,eAAgBT,EAASrS,GACd,mBAAbA,EACFpF,EAAQA,SAAC,eAAgByX,EAAzBzX,CAAkCoF,GACpCA,EAEX,CCJM,SAAU+S,GAAaV,SAE3B,IAAMW,EAAN,2BACkBvQ,KAAA0E,IAAMsE,EAAAA,QAAQrE,IAAI6L,EAAiBtU,MAAMyI,IAAIiL,EAAS,CAEtE,0BAAOa,CACLC,GAEA,OAAOA,EAAOjZ,IAAK8H,IAAW,CAC5BoR,QAAYpR,EAAMrD,KAAT,UACT0U,WAAY,IAAM3L,EAAAA,aAAasB,SAAShH,KAE3C,CAED,cAAOsR,CACLjB,EACAzW,EAAuC,IAEvC,MAAMuL,EAAM1E,KAAK0E,IAAIC,IAAI3E,KAAK6Q,SAC9BnM,EAAIkG,KAAK,yCAET,MAAMkG,EAAgB1I,EAAAA,QAAQsI,OAAOd,GAErC,IAAImB,EAA4B,GAC5B5X,EAAQ6X,eACVtM,EAAIkG,KAAK,2DACTmG,EAAgB/Q,KAAKyQ,oBAAoBK,GACzCpM,EAAIkG,KACF,4BAA4BmG,EAAc/Y,iCAI9C,MAAMiZ,EAAcH,EAAcrZ,IAAIsR,EAAoBoB,QAG1D,OAFAzF,EAAIkG,KAAK,aAAaqG,EAAYjZ,sBAE3B,CACLkZ,OAAQV,EACRS,cACAE,UAAW,CACT,CACER,QAAS3R,EACT4R,WAAY,IAERzX,EAAQkJ,UAAU5K,IAAK2Z,IACrB1M,EAAIkG,KAAK,+BAA+BwG,EAAElV,MACnC,IAAIkV,KACP,IAIZ7P,EAAmBA,oBACnBa,EAAoBA,qBACpB,CACEuO,QAASU,EAAeA,gBACxBC,SAAUhC,EAA8BA,mCAEvCyB,GAGR,GAKH,OA9DMR,EAAgBC,EAAAjQ,aAAA,CADrBgR,EAAAA,OAAO,CAAA,IACFhB,GA2DNlZ,OAAOyK,OAAOyO,EAAkB,OAAQ,CACtC/Y,MAAO,cAAcoY,IAEhBW,CACT,CC/DAiB,EAAAA,WAAW7M,IAAI8M,EAAeA,gBAACC,YAC5BC,OAAO,CACNhT,UAAW,CACTiT,EACAC,KAEAA,EACEA,IACqB,iBAAbD,EACJva,OAAOyK,OACL8P,EACAE,4BAEFA,EAAAA,0BACCtR,aAAW,CAChByB,MAAO4P,EAAIE,UAAY7P,EAAKA,MAAC8P,QAAU9P,EAAKA,MAACC,QAC7C8P,SAASJ,EAAIE,gBAAYrY,OAI9BiC,QAEH6V,EAAAA,WAAW7M,IAAI8M,EAAeA,gBAACS,QAC5BP,OAAO,CACNhT,UAAW,CACTiT,EAEAC,IAEO,CACLxZ,EACAC,EACA0L,IAEOrD,EAAAA,OAAOiR,GAAavZ,EAApBsI,CACLtI,EACAC,EACA0L,KAKPrI,QAEH6V,EAAAA,WAAW7M,IAAIuD,EAAcA,eAACiK,UAC3BR,OACCzY,EAAY,CACVkD,UAAU,KAGbT,QAEH6V,EAAAA,WAAW7M,IAAIuD,EAAcA,eAACkK,KAC3BT,OAAO,CACNhT,UAA2B0T,GAClBnZ,EAAY,CAAEoZ,QAASD,MAGjC1W,QAEH6V,EAAAA,WAAW7M,IAAIuD,EAAcA,eAACqK,KAC3BZ,OAAO,CACNhT,UAA2B6T,GAClBtZ,EAAY,CAAEuZ,QAASD,MAGjC7W,QAEH6V,EAAAA,WAAW7M,IAAIuD,EAAcA,eAACwK,YAC3Bf,OAAO,CACNhT,UAAiC0T,GACxBnZ,EAAY,CAAEyZ,UAAWN,MAGnC1W,QAEH6V,EAAAA,WAAW7M,IAAIuD,EAAcA,eAAC0K,YAC3BjB,OAAO,CACNhT,UAAiC6T,GACxBtZ,EAAY,CAAE2Z,UAAWL,MAGnC7W,QAEH6V,EAAAA,WAAW7M,IAAIuD,EAAcA,eAAC4K,MAC3BnB,OAAO,CACNhT,UACE3F,GAKO,CAACX,EAAgB0a,KAEF,mBADpB/Z,EAAO9B,MAAMC,QAAQ6B,GAAQA,EAAK,GAAKA,IACJA,EAAKkD,OACtClD,EAAQA,KACHE,EAAY,CAAEF,KAAMA,GAApBE,CAAmCb,EAAQ0a,MAIvDpX,QAsBH6V,EAAAA,WAAW7M,IAAIuD,EAAcA,eAAC8K,MAC3BrB,OAAO,CAENhT,UAA4BsU,GACnB/Z,EAAY,CACjBF,KAAMqD,OACN4W,OAAQ,gBAKbtX,QAEH6V,EAAAA,WAAW7M,IAAIuD,EAAcA,eAACgL,MAC3BvB,OAAO,CACNhT,UAA8BxF,GAErBD,EAAY,CAAES,KADRzC,MAAMC,QAAQgC,GAAWA,EAAU9B,OAAOC,OAAO6B,OAIjEwC,QAEH6V,EAAAA,WAAW7M,IAAIuD,EAAcA,eAACiL,SAC3BxB,OAAO,CACNhT,UAA+ByU,GACtBla,EAAY,CACjBma,QAAwB,iBAARD,EAAmBA,EAAMA,EAAIE,WAIlD3X,QAEH6V,EAAAA,WAAW7M,IAAItD,EAAeA,gBAACkS,QAC5B5B,OAAO,CACNhT,UAA8BzC,GACrBhD,EAAY,CACjBgD,KAAMA,MAIXP,QAEH6V,EAAAA,WAAW7M,IAAI6O,EAAcA,eAACC,aAC3B9B,OAAO,CACNhT,UAAmCxC,GAC1BjD,EAAY,CACjBiD,YAAaA,MAIlBR,QAED6V,EAAAA,WAAW7M,IAAItD,kBAAgBqS,MAAM/B,OAAO,CAAChT,UAAUW,IAAO3D,QCzL1D,MAAOgY,WAAkBC,EAAAA,eAC7B,WAAA3a,CAAY4a,GACVhO,MAAMgO,EAAKF,GAAUzX,KACtB,ECA8B2D,EAAAiU,qBAA1B,MACL,MAAMC,EAAkBC,GACtB,MAAMtX,EAAMsX,EAAKpX,eACXqX,EAAWvX,EAAIwT,cACfgE,EAAUxX,EAAIG,aAEdsX,EAAyC,eAA1BC,EAAAA,kBAAkBC,IACjCN,aAAqBO,EAAAA,YACzBP,EAAY,IAAI/R,EAAAA,cAAc+R,EAAUjK,UAG1CmK,EAASM,OAAQR,EAAwBS,MAAMC,KAAK,CAClDF,OAASR,EAAwBS,KACjCpP,MAAO+O,EAAeJ,EAAU7X,KAAO6X,EAAUjK,QACjDkG,WAAW,IAAIC,MAAOyE,cACtBha,KAAMwZ,EAAQS,IACdnR,OAAQ0Q,EAAQ1Q,QAEnB,GAlB8B3D,EAAAiU,qBAAAvT,aAAA,CADhCqU,WACYd,wBCYN,MAAMe,GAAuC,CAClDC,MAAO,wCACP3Y,YAAa,kDACb4Y,QAAS,QACTra,KAAM,OACNsa,gBAAiB,GACjBC,mBAAoB,GACpBC,KAAM,CACJlc,KAAM,OACNmc,OAAQ,SACRC,aAAc,MACdlZ,KAAM,gBACNC,YAAa,kBACbkZ,GAAI,UAENC,sBAAsB,EACtBC,cAAe,iBCnBJC,GAUX,WAAAvc,CAAYE,GACV6G,KAAK7G,QAAU,IACVA,EAEN,CAEO,SAAAsc,GACN,IAAIC,EAAM,GAKV,OAJI1V,KAAK7G,QAAQwc,iBAEfD,GAAO,yDADK1V,KAAK4V,IAAI5V,KAAK7G,QAAQwc,sDAIlCD,EACA,0GAE4C1V,KAAK7G,QAAQoc,eAAiBV,GAAqBU,0BAGlG,CAED,gBAAAM,GACE,MAAMC,EAA+B,CAAA,EAKrC,OAJI9V,KAAK7G,QAAQ4c,cACfD,EAAuB,cAAI9V,KAAK4V,IAAI5V,KAAK7G,QAAQ4c,aAAa,IAGzD,CACLC,gBAAiBhW,KAAK7G,QAAQ2b,SAC3BgB,EACHG,UAAWjW,KAAKyV,YAChBS,eAAgB,CACdZ,qBAAsBtV,KAAK7G,QAAQmc,sBAErCa,gBAAiBnW,KAAK7G,QAAQuB,KACvBsF,KAAK7G,QAAQuB,KAAhB,kBACAhB,EACJ0c,gBAAiBpW,KAAK7G,QAAQuB,KACvBsF,KAAK7G,QAAQuB,KAAhB,kBACAhB,EAEP,CAED,GAAAkc,CAAIS,EAAcC,GAAe,GAC/B,MAAMC,EAAW7b,EAAKmP,KAAK7J,KAAK7G,QAAQqd,YAAc,GAAIH,GACpDT,EAAMa,EAAAA,aAAaF,EAAU,CAAEG,SAAU,WAC/C,OAAOJ,EAAM,yBAA2BV,EAAMA,CAC/C,QClEUe,GACX,WAAA1d,CACmB2d,EACAzd,GADA6G,KAAG4W,IAAHA,EACA5W,KAAO7G,QAAPA,CACf,CAEI,cAAA0d,GACN,MAAM1a,EAAc6D,KAAK7G,QAAQuB,KAC7BsF,KAAK7G,QAAQgD,YACb,GACA,oBAAoB6D,KAAK7G,QAAQuB,2CACjC,YAAYsF,KAAK7G,QAAQuB,wCACzBsF,KAAK7G,QAAQgD,YAEX2a,GAAS,IAAIC,mBAChBC,SAAShX,KAAK7G,QAAQ2b,OACtBmC,eAAe9a,GACf+a,WAAWlX,KAAK7G,QAAQ4b,SAAW,SACnCoC,cAAcnX,KAAK7G,QAAQ+b,MAAQL,GAAqBK,MACxDkC,QAEH,OAAOC,EAAaA,cAACR,eAAe7W,KAAK4W,IAAKE,EAAQ,CACpDQ,YAAatX,KAAK7G,QAAQme,aAAe,IAE5C,CAEM,YAAAC,GACL,MAAMC,EAAWxX,KAAK6W,iBAChBY,EAAY,IAAIjC,GAAgB,CACpCV,MAAO9U,KAAK7G,QAAQ2b,MACpBpa,KAAMsF,KAAK7G,QAAQuB,MAAQma,GAAqBna,KAChD4a,qBAAsBtV,KAAK7G,QAAQmc,uBAAwB,EAC3DkB,WAAYxW,KAAK7G,QAAQqd,WACzBT,YAAa/V,KAAK7G,QAAQ6b,gBAC1BW,eAAgB3V,KAAK7G,QAAQ8b,mBAC7BM,cAAevV,KAAK7G,QAAQoc,gBAE9B8B,gBAAcK,MACZ1X,KAAK7G,QAAQuB,MAAQma,GAAqBna,KAC1CsF,KAAK4W,IACLY,EACA,IACKC,EAAU5B,oBAGlB,SC5BI,IAAM8B,GAAN,qBAOK,sBAAW3S,GACnB,IAAKhF,KAAKoG,aACR,MAAM,IAAIpE,EAAAA,cAAc,uCAC1B,OAAOhC,KAAKoG,YACb,CAES,cAAW1B,GAEnB,OADK1E,KAAK4X,UAAS5X,KAAK4X,QAAU5O,EAAAA,QAAQrE,IAAIkT,KACvC7X,KAAK4X,OACb,CAED,WAAA3e,CAEmBE,EACA2e,GADA9X,KAAO7G,QAAPA,EACA6G,KAAS8X,UAATA,CACf,CAEJ,4BAAaC,CACX5e,GAEA,MAAMuL,EAAM1E,KAAK0E,IAAIC,IAAI3E,KAAK+X,iBAE9B,IAAK/X,KAAKoG,aAAc,CACtB,MAAM4R,EAAU7e,EAAQ8e,KAAKxgB,IAAI,EAAEygB,EAAOrG,KAAQ3X,KAC/BA,EAAKie,MAEf,CAACD,EAAOrG,KAAQ3X,GADD,CAACge,EAAOrG,IAGhC7R,KAAKoG,aAAe,IAAIgS,EAAAA,yBAClBpY,KAAKoG,aAAaiS,KAAKL,GAC7B,MAAMM,EAAUtY,KAAKoG,aAAamS,OAClC,IAAK,IAAIC,EAAI,EAAGA,EAAIF,EAAQtgB,OAAQwgB,IAAK,CACvC,MAAMC,EAAItf,EAAQ8e,KAAKO,GACvB,IAAS,CAAA,CAAA3I,GAAe4I,EACxB,IAAK5I,EAAa,CAChB,MAAMqI,EAAQ9P,EAAAA,QAAQC,eAAeiQ,EAAQE,GAAG5I,SAChD,IAAKsI,EACH,MAAM,IAAIlW,EAAAA,cACR,oCAAoCsW,EAAQE,GAAG5I,kGAEnDC,EACEqI,aAAiB/H,EAA8B+H,EAAQ,IAAIA,CAC9D,CACD9H,EAA4BkI,EAAQE,GAAG5I,QAAvCQ,CAAgDP,EACjD,CACDnL,EAAIkG,KAAK,0CACV,CAED,OAAO5K,KAAKgF,YAAYuT,MAezB,CAED,cAAO1H,CAAQ1X,GACb,MAAMuf,EAAuB,CAC3B/H,QAAS9R,EACT8Z,SAAUxf,GAGNmP,EAAgC,CACpCsI,WAAYrM,MAAO9K,GACVoe,GAAgBE,gBAAgBte,GAEzCkX,QAAS7R,EACTmT,SAAS,EACThQ,MAAOC,EAAKA,MAAC8P,QACb4G,OAAQ,CAAC/Z,IAMX,MAAO,CACLqS,OAAQ2G,GACR1G,UALgB,CAAC7I,EAASoQ,GAM1B7Y,QALc,CAACyI,GAOlB,CAED,2BAAMuQ,GACJ,MAAMnU,EAAMmT,GAAgBnT,IAAIC,IAAI3E,KAAK6Y,uBACnCC,EACJ9Y,KAAK8X,UAAU1d,IAAS0E,GAC1B,IAAK,MAAMwJ,KAAWwQ,EACpB,IACMxQ,IACF5D,EAAIkG,KAAK,iBAAiBtC,EAAQ5Q,kBAC5B4Q,EAAQyQ,WAEjB,CAAC,MAAOpX,GACP+C,EAAIU,MAAM,iCAAkCzD,EAC7C,CACJ,GA/GUgW,GAAeE,GAAAtX,EAAAA,WAAA,CAF3ByY,WACAzH,EAAAA,OAAO,CAAA,GAoBH9Q,EAAAA,QAAA,EAAAE,SAAO9B,6CAEoBoa,EAASA,aArB5BtB,ICtBN,MAAMuB,GAA8Bja,OACzC,sCCUK,IAAMka,GAAgBC,GAAtB,cAA+B1T,EAGpC,WAAAzM,CACE2M,EACqC+J,GAErC9J,MAAMD,EAAewT,GAAiBld,MACtC8D,KAAK8Y,SAAWnJ,EAASlY,IAAKmY,GAAaxH,UAAgBhO,IAAIwV,GAChE,CAGD,MAAAyJ,GACE,MAAMtJ,EAAS/G,EAAOA,QAACrE,IAAIyU,GAAiBld,MAE5C,OAAO,IAAIod,EAAAA,WAA0BC,IACnC,MAAMC,EAAK,IAAA,MACT,OAAAC,IAAWvf,GACT,OAAOwf,QAAQC,UAAU9S,KAAK,KAC5B,MAAMpK,EC9BZ,CAAiCvC,IACrC,MAAO0f,EAAa7T,EAAWqH,EAAIK,GAAWvT,EAQ9C,MAAO,CANW0f,GAAa1d,MAAQ0d,EAMpB7T,EAAWqH,EAJJlW,MAAMC,QAAQsW,GACpCA,EAAQhW,IAAKkK,GAAMA,EAAEkY,aACrBpM,GAASoM,YAGf,EDoByBC,CAAuB5f,GACpCqf,EAASrZ,KAAK,CAAEzD,UAEnB,GAQH,IACE,IAAK,MAAM6L,KAAWtI,KAAK8Y,SACzBxQ,EAAQyR,QAAQP,EAEnB,CAAC,MAAO7X,GACP4X,EAASnU,MAAM,6BAA4BzD,EAAEmI,SAAWnI,GACzD,CAED,MAAO,KACL,IACE,IAAK,MAAM2G,KAAWtI,KAAK8Y,SACzBxQ,EAAQ0R,UAAUR,EAErB,CAAC,MAAO7X,GACPoO,EAAO3K,MAAMzD,EACd,IAGN,CAGD,cAAAsY,CAA+B1a,GAC7B,MAAMwQ,EAAS/G,EAAOA,QAACrE,IAAIyU,GAAiBld,MAE5C,OAAO,IAAIod,EAAAA,WAA0BC,IACnC,MAAMC,EAAK,IAAA,MACT,OAAAC,IAAWvf,GACT,OAAOwf,QAAQC,UAAU9S,KAAK,KAC5B0S,EAASrZ,KAAK,CAAEzD,KAAMvC,KAEzB,GAGH,IACE,IAAK,MAAMoO,KAAWtI,KAAK8Y,SACzBxQ,EAAQyR,QAAQP,EAEnB,CAAC,MAAO7X,GACP4X,EAASnU,MAAM,6BAA4BzD,EAAEmI,SAAWnI,GACzD,CAED,MAAO,KACL,IACE,IAAK,MAAM2G,KAAWtI,KAAK8Y,SACzBxQ,EAAQ0R,UAAUR,EAErB,CAAC,MAAO7X,GACPoO,EAAO3K,MAAMzD,EACd,IAGN,UArEDpB,EAAAA,WAAA,CADC2Z,mHACSZ,eAoCTH,GAAAjV,UAAA,SAAA,MAGD3D,EAAAA,WAAA,CADC2Z,EAAAA,IAAI,WACWzZ,EAAAA,QAAA,EAAAqD,QAAM,2HAAyBwV,eA8B9CH,GAAAjV,UAAA,iBAAA,MAjFUiV,GAAgBC,GAAA7Y,EAAAA,WAAA,CAD5BmO,eAMIjO,EAAAA,QAAA,EAAAE,SAAOuY,uCADO3X,EAAmBA,oBAAArK,SAJzBiiB,IEJN,IAAMgB,GAANC,GAAA,MACL,kBAAOC,CACL1K,EACAjV,EAAe,UAEf,MAAO,CACLwW,OAAQkJ,GACRnJ,YAAa,CAACkI,IACdmB,QAAS,CACPC,EAAAA,aAAaC,SAAS,CACpB,CACE9f,KAAMA,EAAKgP,QAAQ,MAAO,IAC1BwH,OAAQkJ,OAIdjJ,UAAW,CACT5P,EAAmBA,oBACnB,CACEoP,QAASuI,GACTP,SAAUhJ,GAAY,KAI7B,UAxBUwK,GAAiBC,GAAA7Z,EAAAA,WAAA,CAD7BgR,EAAAA,OAAO,CAAA,IACK4I,ICIAM,EAAAA,YAANC,GAAA,MACL,yBAAaC,CACXxhB,GAEA,MAAMyhB,gBAAEA,EAAe5J,aAAEA,EAAY3O,SAAEA,GAAalJ,EAI9CwW,SADEgI,GAAgBI,gBAAgB5e,IACd1B,IAAK6Q,GAAYA,EAAQsH,SAE7C0K,EAOU,CAAC3C,GAAgB9G,QAAQ1X,IAiBzC,OAfIyhB,GACFjL,EAASxL,QAASyL,IAChB0K,EAAQjX,KACNiN,GAAaV,GAASiB,QAAQjB,EAAS,CACrCoB,eACA3O,gBAMJlJ,EAAQ0hB,iBAAiBC,sBAC3BR,EAAQjX,KAAK8W,GAAkBE,YAAY1K,IAGtC,CACLuB,OAAQwJ,GACRJ,QAASA,EAEZ,GAtCUG,EAAAA,YAAWC,GAAAna,EAAAA,WAAA,CADvBgR,EAAAA,OAAO,CAAA,IACKkJ,eCgCA,MAAAM,GAAU,cACVC,GAAe,cAE5B7gB,EAAAA,SAAS8gB,gBAAgBD,GAAcD,8I/B+BrChhB,EACAU,EACAC,KAEA,MAAMC,EAGF,CACFC,IAAK,CAACqM,EAAAA,sBAAsBgG,SAAUnS,OACtCC,KAAM,CAACkM,EAAAA,sBAAsB2F,WAAY3R,QACzCC,IAAK,CAAC+L,EAAAA,sBAAsBC,WAAY9L,OACxCC,MAAO,CAAC4L,EAAAA,sBAAsBC,WAAY5L,SAC1CC,OAAQ,CAAC0L,EAAAA,sBAAsB2G,WAAYpS,YAGtCC,EAAQC,GAAuBf,EAAWF,GACjD,OAAOX,EAAmBC,EAAkB0B,GACxCE,EAAKA,MAACC,EAAkBA,sBACxBD,QAAMD,EAAoBhB,GAChC,6TQtEM,cAAoCmG,EACxC,WAAA5H,GACE4M,OACD,CAEQ,eAAMxF,CAAU3D,EAAuB8C,GAC9C,MAAMlC,EAAMZ,EAAIE,eAAeC,aAEzBkE,EAAWf,KAAKc,aAAaxD,GACnC,IAAKyD,EAAU,MAAM,IAAII,EAAAA,mBAAmB,mBAE5C,MAAM+Z,EAAQ/gB,WAASC,IAAIgH,EAAKA,MAAChH,IAAIoF,GAAY6B,kBAAgBC,WAEjE,IAAK4Z,EAAMrjB,SAASkJ,GAClB,MAAM,IAAII,EAAAA,mBAAmB,iBAAiBJ,GAEhD,OAAOma,CACR,sFwB6DO,iBAAWnL,GAKjB,OAJK/P,KAAK4X,UAER5X,KAAK4X,QAAU,IAAIuD,EAAMA,OAAC,kBAErBnb,KAAK4X,OACb,CAaD,iBAAOwD,CAAWxE,GAEhB,OADA5W,KAAK4W,IAAMA,EACJ5W,IACR,CAcD,mBAAOqb,CAAaC,GAGlB,OAFAtb,KAAK4X,QAAU0D,GAAgB,IAAIH,EAAMA,OAAC,iBAC1Cnb,KAAK4W,IAAI2E,UAAUvb,KAAK4X,SACjB5X,IACR,CAgBD,iBAAOwb,CACLC,EAA0B,GAC1BC,EAAyB,CAAC,MAAO,OAAQ,MAAO,WAEhD,MAAMC,EACQ,MAAZF,EAAkB,IAAMA,EAAQhkB,IAAKmkB,GAAMA,EAAEhS,OAAOiS,eAEhDC,EAA2B,CAC/BC,OAAQ,CAACA,EAAQC,IAEVD,EAGgB,MAAnBJ,GACCzkB,MAAMC,QAAQwkB,IACbA,EAAe9jB,SAASkkB,EAAOF,eAE1BG,EAAS,MAAM,QAGxBA,EAAS,IAAIrI,GAAU,UAAUoI,kBAVbC,EAAS,MAAM,GAYrCC,aAAa,EACbC,QAASR,EAAa7R,KAAK,MAI7B,OADA7J,KAAK4W,IAAI4E,WAAWM,GACb9b,IACR,CAcD,gBAAOmc,CAAUhjB,GACf,IAEE,MAAMijB,EAASC,QAAQ,UACvBrc,KAAK4W,IAAI0F,IAAIF,EAAOjjB,IACpB6G,KAAK+P,OAAOrL,IAAI,0CAEjB,CAAC,MAAO/C,GACP3B,KAAK+P,OAAOwM,KAAK,6CAClB,CAED,OAAOvc,IACR,CAcD,mBAAOuX,CAAape,GAalB,OAZgB,IAAIwd,GAAe3W,KAAK4W,IAAK,CAC3C9B,MAAO3b,EAAQ2b,MACf3Y,YAAahD,EAAQgD,YACrB4Y,QAAS5b,EAAQ4b,QACjBra,KAAMvB,EAAQuB,MAAQ,MACtB4a,qBAAsBnc,EAAQmc,uBAAwB,EACtDkB,WAAYrd,EAAQqd,WACpBxB,gBAAiB7b,EAAQ4c,YACzBd,mBAAoB9b,EAAQwc,eAC5BJ,cAAepc,EAAQoc,gBAEjBgC,eACDvX,IACR,CAcD,qBAAOwc,IAAkBC,GAEvB,OADIA,EAAMzkB,OAAS,GAAGgI,KAAK4W,IAAI4F,kBAAkBC,GAC1Czc,IACR,CAaD,uBAAO0c,IAAoBC,GAIzB,OAHA3c,KAAK4W,IAAI8F,oBACHC,EAAQ3kB,OAAS,EAAI2kB,EAAU,CAAC,IAAI7I,yBAEnC9T,IACR,CAcD,4BAAO4c,IAAyBC,GAG9B,OAFIA,EAAa7kB,OAAS,GACxBgI,KAAK4W,IAAIgG,yBAAyBC,GAC7B7c,IACR,CAgBD,kBAAa8c,CACXC,EAAeze,OAAO0e,QAAQ3I,IAAI4I,OAAS,IAC3CjJ,OAA2Bta,EAC3BgL,GAAe,GAEf1E,KAAK4W,IAAIyC,OAAO0D,EAAM/I,GAAanN,KAAKtC,UACtC,GAAIG,EAAK,CACP,MAAMiQ,QAAY3U,KAAK4W,IAAIsG,SAC3Bld,KAAK+P,OAAOrL,IAAI,2CAAiCiQ,EAClD,GAEJ,8FC9TMwI,EAAUA,WAAC,IAAIrJ,EAAoBA,wMCAfvU,IAC5B,MAAM6d,EAAIhc,EAAAA,MAAMhH,IAAImF,GACpB,IAAK6d,EACJ,MAAM,IAAIpb,EAAAA,cAAc,iCAAiCzC,GAE1D,OADa+G,EAAAA,WAAWC,SAAS6W,EAElC"}