@decaf-ts/for-nest 0.11.0 → 0.11.1

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.
@@ -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/request/DecafResponseInterceptor.ts","../src/decaf-model/utils.ts","../src/controllers.ts","../src/factory/openapi/DtoBuilder.ts","../src/overrides/overrides.ts","../src/overrides/ModelBuilderExtensions.ts","../src/decaf-model/FromModelController.ts","../src/decaf-model/DecafModelModule.ts","../src/decoration.ts","../src/factory/errors/cors.ts","../src/factory/errors/throttling.ts","../src/factory/exceptions/DecafErrorFilter.ts","../src/factory/openapi/constants.ts","../src/factory/openapi/SwaggerCustomUI.ts","../src/factory/openapi/SwaggerBuilder.ts","../src/interceptors/context.ts","../src/interceptors/DecafRequestHandlerInterceptor.ts","../src/core-module.ts","../src/events-module/constant.ts","../src/events-module/EventsController.ts","../src/events-module/utils.ts","../src/events-module/DecafStreamModule.ts","../src/module.ts","../src/migrations/migration-module.ts","../src/webhooks/controllers.ts","../src/webhooks/DecafWebhookModule.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,null,null,null,null,null,null],"names":["DECORATORS_PREFIX","DECORATORS","API_OPERATION","API_RESPONSE","API_PRODUCES","API_CONSUMES","API_TAGS","API_CALLBACKS","API_PARAMETERS","API_HEADERS","API_MODEL_PROPERTIES","API_MODEL_PROPERTIES_ARRAY","API_SECURITY","API_EXCLUDE_ENDPOINT","API_EXCLUDE_CONTROLLER","API_EXTRA_MODELS","API_EXTENSION","API_SCHEMA","API_DEFAULT_GETTER","API_LINK","isUndefined","obj","getEnumValues","enumType","Array","isArray","numericValues","Object","values","filter","value","map","toString","keys","key","includes","getEnumType","isString","length","createPropertyDecorator","metakey","metadata","overrideExisting","target","propertyKey","properties","Reflect","getMetadata","defineMetadata","existingMetadata","newMetadata","pickBy","negate","metadataToSave","type","constructor","required","ApiProperty","options","createApiPropertyDecorator","input","isArrayFlag","isInputArray","getTypeIsArrayTuple","opts","undefined","enum","enumValues","items","isOperationBlocked","ModelConstructor","op","handler","args","Metadata","get","OperationKeys","REFLECT","BLOCK","ApiOperationFromModel","verb","path","httpToCrud","GET","READ","Get","POST","CREATE","Post","PUT","UPDATE","Put","PATCH","Patch","DELETE","Delete","crudOp","HttpMethodDecorator","apply","ApiExcludeEndpoint","ApiParamsFromModel","props","decorators","p","ApiParamDec","name","description","String","applyDecorators","DecafBody","createParamDecorator","data","ctx","body","switchToHttp","getRequest","controller","getClass","ModelConstr","class","InternalServerErrorException","item","OrderedParams","order","req","original","params","orderList","ordered","k","raw","valuesInOrder","keysInOrder","DecafParams","DecafQuery","_","parsed","query","limit","n","Number","isNaN","offset","bookmark","HttpVerbToDecorator","decorator","Error","DECAF_MODULE_OPTIONS","DECAF_ADAPTER_ID","DECAF_ROUTE","DECAF_HANDLERS","Symbol","DECAF_ADAPTER_OPTIONS","AUTH_HANDLER","AUTH_META_KEY","DECAF_CONTEXT_KEY","Auth","model","resource","decs","ApiBearerAuth","UseInterceptors","AuthInterceptor","push","SetMetadata","reflector","authHandler","this","intercept","next","log","Logging","for","modelName","getHandler","verbose","authorize","debug","handle","__decorate","Injectable","__param","Optional","Inject","Reflector","DecafAuthHandler","parseRequest","userRole","headers","authorization","split","AuthorizationError","Model","PersistenceKeys","AUTH_ROLE","DecafRequestContext","uuid","UUID","instance","generate","request","put","record","overrides","e","_ctx","accumulate","assign","applyCtx","InternalError","scope","Scope","REQUEST","Request","DecafHandlerExecutor","DecafHandlerExecutor_1","handlers","context","exec","res","method","url","DecafResponseInterceptor","response","getResponse","pipe","tap","toResponse","apiParamSpec","getApiDecorators","methodName","routePath","httpVerb","includeQueryParams","NestHttpRouteDec","apiPathParams","startsWith","slice","extractPathParams","swaggerQueryParams","ApiQuery","OrderDirection","ApiParam","ApiOperation","summary","ApiOkResponse","ApiNoContentResponse","Query","applyApiDecorators","descriptor","proto","prototype","forEach","d","index","resolvePersistenceMethod","persistence","ModelService","statement","createRouteHandler","async","pathParams","queryParams","JSON","stringify","direction","error","defineRouteMethod","ControllerClass","defineProperty","writable","getOwnPropertyDescriptor","DecafController","Service","clientContext","super","logCtx","operation","allowCreate","ip","result","ContextualLoggedClass","call","bindLoggerToRequest","self","applyRequestIp","ctxArgs","forwarded","parseIpHeader","socket","connection","remoteAddress","extractRequestIp","config","decorateLoggerWithIp","then","isPromise","DecafModelController","_persistence","getService","Repository","forModel","certs","override","contextual","repo","segment","trim","Boolean","dtoCache","Map","DtoFor","TransactionOperationKeys","cache","has","set","WeakMap","getDtoCache","cached","isUpdateOp","BulkCrudOperationKeys","UPDATE_ALL","DynamicDTO","toPascalCase","pkProp","pk","pkPropsMetadata","pkProps","pkDesignType","pkTypeIsNumeric","BigInt","pkIsGenerated","generated","generatedBySequence","isPropertyGeneratedAcrossInheritance","allProps","from","Set","relations","scalarProps","prop","validation","getValidationAcrossInheritance","isRequired","ValidationKeys","REQUIRED","typeHint","getTypeAcrossInheritance","apiOptions","designType","enumerable","configurable","relation","relationMeta","relationType","meta","validationFor","LIST","relationDto","addRelationUpdate","addRelation","DtoClass","extraModels","dtoRef","pkTypeName","pkType","getPkOpenApiType","oneOfItems","$ref","oneOf","current","Function","getPrototypeOf","Adapter","transformerFor","adapter","alias","bind","flavoursToTransform","Context","pending","header","ModelBuilder","decorateClass","_classDecorators","__hasClassDecoratorSupport","originalBuild","build","decorated","FromModelController","getPersistence","ModelClazz","createQueryRoutesFromRepository","prefix","QUERY","queryMethods","routeMethods","QueryController","entries","replace","join","message","httpMethod","objValues","fields","f","create","tableName","toKebabCase","modelClazzName","getPK","apiProperties","getRouteParametersFromModel","BaseController","DynamicModelController","info","listBy","details","PreparedStatementKeys","LIST_BY","paginateBy","PAGE_BY","find","FIND","ASC","page","PAGE","ref","findOneBy","FIND_ONE_BY","findBy","FIND_BY","toOverrides","STATEMENT","pathDirection","a","parseInt","resolvedDirection","COUNT_OF","MAX_OF","MIN_OF","AVG_OF","SUM_OF","DISTINCT_OF","GROUP_OF","createAll","resp","CREATE_ALL","created","readAll","ids","READ_ALL","read","routeParams","id","ValidationError","updateAll","updated","update","payload","parse","deleteAll","DELETE_ALL","delete","del","Param","ApiNotFoundResponse","ApiBody","schema","getSchemaPath","ApiCreatedResponse","ApiBadRequestResponse","ApiUnprocessableEntityResponse","Response","passthrough","Controller","ApiTags","ApiExtraModels","composed","DBKeys","COMPOSED","composedKeys","uniqueKeys","separator","getModuleFor","flavour","DecafModelModule","DecafModelModule_1","createModelServices","models","provide","useFactory","forRoot","trackedModels","modelServices","autoServices","controllers","module","providers","Module","Decoration","InjectablesKeys","INJECTABLE","extend","category","cfg","DefaultInjectablesConfig","singleton","DEFAULT","durable","INJECT","MAX","max","maximum","MIN","min","minimum","MAX_LENGTH","maxLength","MIN_LENGTH","minLength","TYPE","DATE","format","ENUM","PATTERN","pat","pattern","source","COLUMN","DecorationKeys","DESCRIPTION","AUTH","CorsError","ForbiddenError","msg","ToManyRequestsError","BaseError","DecafExceptionFilter","exception","host","isProduction","LoggedEnvironment","env","statusCode","NotFoundException","UnsupportedError","NotAcceptableException","getStatus","status","code","json","timestamp","Date","toISOString","Catch","SWAGGER_UI_CONSTANTS","auth","scheme","bearerFormat","in","topbarBgColor","SwaggerCustomUI","customCSS","css","topbarIconPath","b64","getCustomOptions","favicon","faviconPath","customSiteTitle","title","customCss","swaggerOptions","persistAuthorization","file","img","filePath","assetsPath","readFileSync","encoding","SwaggerBuilder","app","createDocument","openApiJsonPath","openApiYamlPath","DocumentBuilder","setTitle","setDescription","setVersion","version","addBearerAuth","SwaggerModule","registerOpenApiRoute","contentType","bodyFactory","httpAdapter","getHttpAdapter","_req","reply","setupSwagger","document","swaggerUI","faviconFilePath","topbarIconFilePath","setup","jsonDocumentUrl","yamlDocumentUrl","YAML","requestToContextTransformer","DecafRequestHandlerInterceptor","DecafRequestHandlerInterceptor_1","requestContext","executor","contextualize","flags","flavours","transformer","DefaultAdapterFlags","logger","DecafCoreModule","_logger","DecafCoreModule_1","moduleRef","useValue","client","H","APP_INTERCEPTOR","useExisting","useClass","exports","bootPersistence","trimmed","conf","contr","pop","PersistenceService","boot","clients","i","c","initialization","onApplicationShutdown","adapters","shutdown","Global","ModuleRef","LISTENING_ADAPTERS_FLAVOURS","EventsController","EventsController_1","listen","events$","Observable","observer","observerId","Math","random","toUpperCase","cb","refresh","Promise","resolve","modelConstr","serialize","err","normalizeEventResponse","adapterName","observe","unObserve","heartbeat$","interval","ts","merge","listenForModel","Sse","DecafStreamModule","DecafStreamModule_1","forFlavours","imports","RouterModule","register","DecafModule","DecafModule_1","forRootAsync","autoControllers","observerOptions","enableObserverEvents","observerFlavours","DecafMigrationModule","DecafMigrationModule_1","migrate","MigrationService","migrateAdapters","inject","WebhookSubscriptionActionsController","WebhookSubscriptionActionsController_1","deactivate","WebhookSubscription","active","reactivate","WebhookEventActionsController","WebhookEventActionsController_1","replay","eventRepo","WebhookEventRecord","deliveryRepo","WebhookDelivery","event","events","select","where","attr","eq","execute","deliveries","collectPagedResults","orderBy","thenBy","paginate","now","delivery","WebhookStatus","PENDING","attempts","nextAttemptAt","lastAttemptAt","errorMessage","responseStatus","responseBody","deliveriesSucceeded","deliveriesFailed","updatedAt","applyUpdateValidation","DecafWebhookModule","DecafWebhookModule_1","_cache","webhookKeys","uses","webhookApiPath","DecafWebhooksModule","VERSION","PACKAGE_NAME","allowReregistration","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":"mUAAO,MAAMA,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,MAAA,CAASC,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,EAC1D,KAAO,CACL,MAAMU,EAEJX,GAAQY,aAAmC,8BAAMX,IAAcU,MAC/DR,QAAQC,YAAY,cAAeJ,EAAQC,GAE7CE,QAAQE,eACNR,EACA,CACEc,OACAE,UAAU,KACPL,SAAOV,EAAUW,EAAAA,OAAOhC,KAE7BuB,EACAC,EAEJ,CACD,CACH,CAoCM,SAAUa,EACdC,EAA8B,IAE9B,OAAOC,EAA2BD,EACpC,CAEM,SAAUC,EACdD,EAA8B,GAC9BhB,GAAmB,GAEnB,MAAOY,EAAM7B,KCwDbmC,EACAC,KAGA,IAAKD,EACH,MAAO,CAACA,EAAoBC,GAE9B,GAAIA,EAEF,MAAO,CAACD,EAAmBC,GAE7B,MAAMC,EAAerC,EAAAA,QAAQmC,GAG7B,MAAO,CAFME,EAAeF,EAAM,GAAKA,EAEbE,EAC5B,EDvE0BC,CACtBL,EAAQJ,KACRI,EAAQjC,SAQV,IA/BAuC,EAyBAN,EAAU,IACLA,EACHJ,OACA7B,YAtBOA,SAAW,SAAUuC,QAAsBC,IAAdD,EAAKE,KAyBjB,CACxBR,EAAQJ,KAAO,QAEf,MAAMa,EAAa7C,EAAcoC,EAAQQ,MACzCR,EAAQU,MAAQ,CACdd,KAAMlB,EAAY+B,GAClBD,KAAMC,UAGDT,EAAQQ,IACjB,MAAO,GAAI,SAAUR,QAA4BO,IAAjBP,EAAQQ,KAAoB,CAC1D,MAAMC,EAAa7C,EAAcoC,EAAQQ,MAEzCR,EAAQQ,KAAOC,EACfT,EAAQJ,KAAOlB,EAAY+B,EAC7B,CA/CkB,IAClBH,EA0DA,OAVIxC,MAAMC,QAAQiC,EAAQJ,QACxBI,EAAQJ,KAAO,QACfI,EAAQU,MAAQ,CACdd,KAAM,QACNc,MAAO,CACLd,KAAMI,EAAQJ,KAAK,MAKlBf,EACLtC,EAAWS,qBACXgD,EACAhB,EAEJ,CE1KM,SAAU2B,EACdC,EACAC,GAEA,MAAMC,QAAEA,EAAOC,KAAEA,GAAUC,EAAAA,SAASC,IAClCL,EACAM,EAAAA,cAAcC,QAAUD,EAAAA,cAAcE,QACnC,CAAA,EASL,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,EAAAA,MAAMC,EAAAA,sBACND,QAAMD,EAAoBhB,GAChC,CCpDM,SAAUmB,EACdC,EAA4B,IAE5B,MAAMC,EAAaD,EAAMtE,IAAKwE,GAC5BC,EAAAA,SAAY,CACVC,KAAMF,EAAEE,KACRC,YAAaH,EAAEG,aAAe,mBAAmBH,EAAEE,KACnDjD,SAAU+C,EAAE/C,WAAY,EAExBF,KAAMiD,EAAEjD,MAAQqD,UAGpB,OAAOC,EAAAA,mBAAmBN,EAC5B,CClBO,MAAMO,EAAYC,EAAAA,qBACvB,CAACC,EAAeC,KACd,MACMC,EADUD,EAAIE,eAAeC,aACdF,KAGfG,EAAaJ,EAAIK,WAEjBC,EAAeF,EAAmBG,MAExC,IAAKD,EACH,MAAM,IAAIE,EAAAA,6BACR,4CAA4CJ,EAAWX,oEAI3D,OAAKQ,EAEDzF,MAAMC,QAAQwF,GACTA,EAAKlF,IAAK0F,GAAS,IAAIH,EAAYG,IAGrC,IAAIH,EAAYL,GANLA,ICZhBS,EAAgBZ,EAAAA,qBACpB,CAACa,EAA6BX,KAC5B,MAAMY,EAAMZ,EAAIE,eAAeC,aACzBU,EAAYD,GAAKE,QAAU,GAC3BC,EAAYJ,GAAShG,OAAOM,KAAK4F,GACjCG,EAAUD,EAAUhG,IAAKkG,GAAMJ,EAASI,IAC9C,MAAO,CAAEC,IAAKL,EAAUM,cAAeH,EAASI,YAAaL,KAU3D,SAAUM,EACdhC,EAA4B,IAE5B,MAAMsB,EAAQtB,EAAMtE,IAAKwE,GAAMA,EAAEE,MACjC,OAAOiB,EAAcC,EACvB,CAEO,MAAMW,EAAaxB,EAAAA,qBACxB,CAACyB,EAAYvB,KACX,MAGMwB,EAAc,IAHRxB,EAAIE,eAAeC,aACbsB,OAAS,CAAA,GAK3B,QAAqBxE,IAAjBuE,EAAOE,MAAqB,CAC9B,MAAMC,EAAIC,OAAOJ,EAAOE,OACnBE,OAAOC,MAAMF,KAAIH,EAAOE,MAAQC,EACvC,CAEA,QAAsB1E,IAAlBuE,EAAOM,OAAsB,CAC/B,MAAMH,EAAIC,OAAOJ,EAAOM,QACnBF,OAAOC,MAAMF,KAAIH,EAAOM,OAASH,EACxC,CAGA,QAAwB1E,IAApBuE,EAAOO,SAAwB,CACjC,MAAMJ,EAAIC,OAAOJ,EAAOO,UACxBP,EAAOO,SAAWH,OAAOC,MAAMF,GAAKH,EAAOO,SAAWJ,CACxD,CAEA,OAAOH,ICjDL,SAAUQ,EACdhE,GAEA,MAQMiE,EARoE,CACxE9D,IAAKE,EAAAA,IACLC,KAAME,EAAAA,KACNC,IAAKE,EAAAA,IACLC,MAAOC,EAAAA,MACPC,OAAQC,EAAAA,QAGmBf,GAE7B,IAAKiE,EACH,MAAUC,MACR,0BAA0BlE,8CAI9B,OAAOiE,CACT,CC7BO,MAAME,EAAuB,qBACvBC,EAAmB,eAGnBC,EAAc,aACdC,EAAiBC,OAAO,iBACxBC,EAAwBD,OAAO,0BAE/BE,EAAeF,OAAO,gBACtBG,EAAgB,YAEhBC,EAAoBJ,OAAO,iBCmBlC,SAAUK,EAAKC,GACnB,MAAMC,EAAWD,EACI,iBAAVA,EACLA,EACAA,EAAMpD,UACRxC,EACE8F,EAAO,CAACC,EAAAA,gBAAiBC,EAAAA,gBAAgBC,EAAAA,kBAE/C,OADIJ,GAAUC,EAAKI,KAAKC,EAAAA,YAAYV,EAAeI,IAC5ClD,EAAAA,mBAAmBmD,EAC5B,CCzBaG,EAAAA,gBAAN,MACL,WAAA3G,CACmB8G,EACkCC,GADlCC,KAAAF,UAAAA,EACkCE,KAAAD,YAAAA,CAClD,CAEH,eAAME,CACJxD,EACAyD,GAEA,MAAMC,EAAMC,EAAAA,QAAQC,IAAIL,MAAaK,IAAIL,KAAKC,WACxCK,EACJN,KAAKF,UAAU1F,IACb+E,EACA1C,EAAI8D,eAENP,KAAKF,UAAU1F,IAA0B+E,EAAe1C,EAAIK,YAS9D,OAPAqD,EAAIK,QAAQ,uBAAsBF,EAAY,QAAQA,EAAc,KAChEN,KAAKD,kBACDC,KAAKD,YAAYU,UAAUhE,EAAK6D,GAEtCH,EAAIO,MAAM,yBAGLR,EAAKS,QACd,GA1BWhB,EAAAA,gBAAeiB,aAAA,CAD3BC,eAIIC,UAAA,EAAAC,EAAAA,YAAYD,EAAAA,QAAA,EAAAE,SAAO9B,sCADQ+B,EAAAA,UAAS7J,UAF5BuI,yBCXAuB,EACD,YAAAC,CAAa9D,GACrB,MAAM+D,EAAW/D,EAAIgE,QAAQC,eAAeC,MAAM,KAAK,GACvD,OAAOH,CACT,CAEA,eAAMX,CAAUhE,EAAuB8C,GACrC,MAAMlC,EAAMZ,EAAIE,eAAeC,aAEzBwE,EAAWpB,KAAKmB,aAAa9D,GACnC,IAAK+D,EAAU,MAAM,IAAII,EAAAA,mBAAmB,mBAI5C,IAFcrH,EAAAA,SAASC,IAAIqH,EAAAA,MAAMrH,IAAImF,GAAYmC,EAAAA,gBAAgBC,WAEtD/J,SAASwJ,GAClB,MAAM,IAAII,EAAAA,mBAAmB,iBAAiBJ,EAElD,QChBWQ,EAAAA,oBAAN,MAKL,WAAA5I,CAA6BqE,GAAiB2C,KAAA3C,IAAAA,EAF9C2C,KAAA6B,KAAOC,OAAKC,SAASC,UAEwC,CAE7D,WAAIC,GACF,OAAOjC,KAAK3C,GACd,CAEA,GAAA6E,CAAIC,GACF,IAAIC,EACJ,IACEA,EAAYpC,KAAKvD,IAAIrC,IAAI,YAE3B,CAAE,MAAOiI,GACPD,EAAY,CAAA,CACd,CAEApC,KAAKsC,KAAOtC,KAAKvD,IAAI8F,WAAW,CAC9BH,UAAWhL,OAAOoL,OAAOJ,EAAWD,IAExC,CAEA,QAAAM,CAAShG,GACP,GAAIuD,KAAKsC,KAAM,MAAM,IAAII,EAAAA,cAAc,+BACvC1C,KAAKsC,KAAO7F,CACd,CAEA,OAAIA,GACF,IAAKuD,KAAKsC,KACR,MAAM,IAAII,EAAAA,cAAc,uCAC1B,OAAO1C,KAAKsC,IACd,GAlCWV,EAAAA,oBAAmBhB,aAAA,CAD/BC,EAAAA,WAAW,CAAE8B,MAAOC,EAAAA,MAAMC,UAMZ/B,EAAAA,QAAA,EAAAE,SAAO6B,EAAAA,4CAA+BC,WALxClB,uBC4CAmB,EAAAA,qBAAoBC,EAA1B,MACL,WAAAhK,CAC2CiK,EACxBC,GADwBlD,KAAAiD,SAAAA,EACxBjD,KAAAkD,QAAAA,CAChB,CAEH,UAAMC,CAAK9F,EAAc+F,GACXhD,EAAAA,QAAQC,IAAI2C,EAAqB9G,MAAMmE,IAAIL,KAAKmD,MACxDzC,MACF,WAAWV,KAAKkD,QAAQrB,gBAAgB7B,KAAKiD,SAASlL,+BAA+BsF,EAAIgG,UAAUhG,EAAIiG,OAEzG,IAAK,MAAMrJ,KAAW+F,KAAKiD,eACnBhJ,EAAQ0G,OAAOX,KAAKkD,QAAS7F,EAAK+F,EAE5C,GAdWL,EAAAA,qBAAoBC,EAAApC,EAAAA,WAAA,CADhCC,EAAAA,WAAW,CAAE8B,MAAOC,EAAAA,MAAMC,UAGtB/B,EAAAA,QAAA,EAAAE,SAAOjC,4CACkB6C,yBAHjBmB,wBCzCAQ,EAAAA,yBAAN,MACL,WAAAvK,CAAsByD,GAAAuD,KAAAvD,IAAAA,CAA2B,CAEjD,SAAAwD,CAAUiD,EAA2BhD,GACnC,IAAIsD,EAAWN,EAAQvG,eAAe8G,cAEtC,OAAOvD,EAAKS,SAAS+C,KACnBC,EAAAA,IAAKnH,IACHgH,EAAWxD,KAAKvD,IAAIA,IAAImH,WAAWJ,KAGzC,GAXWD,EAAAA,yBAAwB3C,aAAA,CADpCC,iDAE4Be,yBADhB2B,4BCgBb,MAOMM,EAAgB3H,IAAY,CAChCA,OACAC,YAAgBD,EAAH,2BACbjD,UAAU,EACVF,KAAMqD,SAGF,SAAU0H,EACdC,EACAC,EACAC,EACAC,GAA8B,GAE9B,MAAMC,EAAmB1F,EAAoBwF,GACvCG,EArBkB,CAACJ,GAClBA,EACJzC,MAAM,KACNjK,OAAQ0E,GAAMA,EAAEqI,WAAW,MAC3B7M,IAAKwE,GAAMA,EAAEsI,MAAM,IAiBAC,CAAkBP,GAAWxM,IAAIqM,GAEjDW,EAAqB,GAsB3B,MArBiB,QAAbP,GAAsBC,GACxBM,EAAmB5E,KACjB6E,WAAS,CACPvI,KAAM,YACNjD,UAAU,EACVU,KAAM+K,EAAAA,eACNvI,YAAa,mCAEfsI,EAAAA,SAAS,CACPvI,KAAM,QACNjD,UAAU,EACVkD,YAAa,uCAEfsI,EAAAA,SAAS,CACPvI,KAAM,SACNjD,UAAU,EACVkD,YAAa,wCAKZ,CACLkH,OAAQ,CACNc,EAAiBH,MACdI,EAAc5M,IAAImN,eAClBH,EACHI,eAAa,CACXC,QAAS,wCAAwCd,QAEnDe,gBAAc,CACZ3I,YAAa,mCAEf4I,uBAAqB,CACnB5I,YAAa,wCAGjBoB,OAAQ,CAACO,EAAYsG,GAAgBY,EAAAA,SAEzC,CAEM,SAAUC,EACd7M,EACA2L,EACAmB,EACAnJ,GAEA,MAAMoJ,EAAQ/M,GAAQgN,WAAahN,EACnC2D,EAAWsH,OAAOgC,QAASC,GAAMA,EAAEH,EAAOpB,EAAYmB,IACtDnJ,EAAWwB,QAAQ8H,QAAQ,CAACC,EAAGC,IAAUD,EAAEH,EAAOpB,EAAYwB,GAChE,CAEM,SAAUC,EACdC,EACA1B,KACG7J,GAEH,GAAIuL,aAAuBC,EAAAA,aACzB,MAAmD,mBAApCD,EAAoB1B,GAC9B0B,EAAoB1B,MAAe7J,GACpCuL,EAAYE,UAAU5B,KAAe7J,GAG3C,GAAgD,mBAApCuL,EAAoB1B,GAC9B,OAAQ0B,EAAoB1B,MAAe7J,GAE7C,MAAUyE,MACR,uBAAuBoF,mBAA4B0B,GAAazM,aAAakD,OAEjF,CAEM,SAAU0J,EAAsB7B,GACpC,OAAO8B,eAELC,EACAC,GAEA,MAAM5F,EAAcH,KAAKG,IAAIE,IAAI0D,GAEjC,IACE5D,EAAIO,MACF,gCAAgCqD,wBAAiCiC,KAAKC,UAAUH,EAAWlI,kBAE7F,MAAMsI,UAAEA,EAAS/H,MAAEA,EAAKI,OAAEA,GAAWwH,EACrC,aAAaP,EACXxF,KAAKyF,cACL1B,KACG+B,EAAWlI,cACdsI,EACA/H,EACAI,EAEJ,CAAE,MAAO8D,GAEP,MADAlC,EAAIgG,MAAM,iBAAiBpC,YAAsB1B,GAC3CA,CACR,CACF,CACF,UAEgB+D,EACdC,EACAtC,EACA9J,GAWA,OATA7C,OAAOkP,eACLD,EAAgBjB,WAAaiB,EAC7BtC,EACA,CACExM,MAAO0C,EACPsM,UAAU,IAIPnP,OAAOoP,yBACZH,EAAgBjB,WAAaiB,EAC7BtC,EAEJ,CChJM,MAAgB0C,WAEZC,EAAAA,QACR,WAAA1N,CACqB2N,EACnBzK,GAEA0K,QAHmB5G,KAAA2G,cAAAA,CAIrB,CA4BmB,MAAAE,CAKjB3M,EACA4M,EACAC,GAAsB,EACtB3E,GAMA,MAAM3F,EAAMuD,KAAK2G,cAAclK,IAG/B,IAAIwF,EAFJ/H,EAAOA,EAAK5C,OAAQ+K,QAAmB,IAANA,GAG7BD,IAAcA,EAAUf,SAAYe,EAAkB4E,MACxD/E,EAAUG,EACVA,EAAY,CAAA,GAGd,MAAM6E,EAASC,EAAAA,sBAAsBL,OAAOM,KAC1CnH,KACA8G,EACA1E,GAAa,CAAA,EACb2E,KACO7M,EAAMuC,GAEf,OAAOuD,KAAKoH,oBAAoBH,EAAQhF,EAC1C,CAEU,mBAAAmF,CACR7P,EACA0K,GAEA,MAAMoF,EAAOrH,KACb,SAASsH,EACPC,EACAtF,GAGA,OADAsF,EAAQpH,IAIV,EAA8BA,EAAa8B,KACzC,MAAM+E,EA8KZ,CAA0B3J,IACxB,IAAKA,EAAK,OACV,MAAMgE,EAAWhE,EAAgBgE,QAI3BmG,EACJC,GAAcpG,IAAU,qBACxBoG,GAAcpG,IAAU,eACxBoG,GAAcpG,IAAU,qBACxBoG,GAAcpG,IAAU,cAC1B,GAAImG,EAAW,OAAOA,EACtB,GACiC,iBAAvBnK,EAAgB2J,IACtB3J,EAAgB2J,GAAWjP,OAE7B,OAAQsF,EAAgB2J,GAC1B,MAAMU,EAAUrK,EAAgBqK,QAAWrK,EAAYsK,WACvD,OACED,GACgC,iBAAzBA,EAAOE,eACdF,EAAOE,cAAc7P,OAEd2P,EAAOE,mBAChB,CACF,EAvMiBC,CACT5F,GAAYoF,EAAKV,cAAc1E,SAEjC,IAAK+E,EAAI,OAAO7G,EAChB,MAAM2H,EAAS,CAAEd,MACjB,OAAO7G,EAAIE,IAAIyH,EACjB,EAXgBC,CAAqBR,EAAQpH,IAAK8B,GACzCsF,CACT,CAWA,MAiMJ,CAAmBhQ,GAEE,iBAAVA,GACG,OAAVA,GACwC,mBAAhCA,EAAuByQ,KArM3BC,CAAU1Q,GACLA,EAAMyQ,KAAMT,GAAYD,EAAeC,EAAStF,IAElDqF,EAAe/P,EAAO0K,EAC/B,EAGI,MAAgBiG,WAGZzB,GAKR,WAAAhB,CAAYhJ,GACV,IAAKuD,KAAKmI,aACR,IACEnI,KAAKmI,aAAezB,EAAAA,QAAQtM,IAAqB4F,KAAKhD,MAExD,CAAE,MAAOqF,GACP,IACErC,KAAKmI,aAAezC,EAAAA,aAAa0C,WAC/BpI,KAAKhD,MAGT,CAAE,MAAOqF,GACPrC,KAAKmI,aAAeE,EAAAA,WAAWC,SAAStI,KAAKhD,MAC/C,CACF,CAEF,MAAMuL,EAAQvI,KAAK2G,cAAc1E,QAAQhD,IAA0B,CAAA,EAKnE,OAJIxC,GACFuD,KAAK2G,cAAczE,IAAIqG,GAGlB9L,EACHuD,KAAKmI,wBAAwBE,EAAAA,WAC3BrI,KAAKmI,aAAaK,SAASD,GAC3BvI,KAAKmI,aAAa9H,IAAIkI,GACxBvI,KAAKmI,YACX,CAEA,WAAAnP,CAAsB2N,EAAoCzK,GACxD0K,MAAMD,EAAezK,EACvB,CAyCmB,MAAA2K,CAIjB3M,EACA4M,EACAC,GAAuB,EACvB3E,GAgBA,MAAM3F,EAAMuD,KAAK2G,cAAclK,IAE/B,IAAIwF,EACAG,IAAeA,EAAkBf,SAAYe,EAAkB4E,MACjE/E,EAAUG,EACVA,EAAY,CAAA,GAGd,IACEA,EAAY3F,EAAIrC,IAAI,YAEtB,CAAE,MAAOiI,GAET,CACA,MAAMoD,EAAczF,KAAKyF,YAAYhJ,GACrC,IAAIgM,EASAlB,EAEJ,OAVI9B,aAAuBC,EAAAA,aACzB+C,EAAahD,EAAYiD,KAAe,SACjCjD,aAAuB4C,EAAAA,WAC9BI,EAAahD,EAAsB,SAC3BA,EAA2CvC,UACnDuF,EAAahD,GAKVsB,EAYD0B,EAAmD,OACnDvO,EACA4M,GACA,EACA1E,GAEF4F,KAAMT,GAAYvH,KAAKoH,oBAAoBG,EAAStF,KAjBpDsF,EAAYkB,EAAmD,OAC7DvO,EACA4M,GACA,EACA1E,GAGKpC,KAAKoH,oBAAoBG,EAAStF,GAW7C,EAGF,SAASwF,GAAclQ,GACrB,GAAKA,EAEL,OADkBN,MAAMC,QAAQK,GAASA,EAAM,GAAKA,GAEjDgK,MAAM,KACN/J,IAAKmR,GAAYA,EAAQC,QACzBtR,OAAOuR,SAAS,EACrB,CCzQA,MAAMC,GAAW,IAAIC,IA0Bf,SAAUC,GACdhP,EACAsF,GAEA,IAAK2J,EAAAA,yBAAyBrR,SAASoC,GACrC,OAAOsF,EAGT,MAAM4J,EAgPR,CACElP,IAEK8O,GAASK,IAAInP,IAChB8O,GAASM,IAAIpP,EAAI,IAAIqP,SAEhBP,GAAS1O,IAAIJ,IAtPNsP,CAAYtP,GACpBuP,EAASL,EAAM9O,IAAIkF,GACzB,GAAIiK,EAAQ,OAAOA,EAEnB,MAAMC,EAAa,CACjBnP,EAAAA,cAAcc,OACdsO,EAAAA,sBAAsBC,YACtB9R,SAASoC,GAEX,MAAM2P,GACNT,EAAME,IAAI9J,EAAOqK,GAEjBvS,OAAOkP,eAAeqD,EAAY,OAAQ,CACxCpS,MAAO,GAAGqS,EAAAA,aAAatK,EAAMpD,QAAQ0N,EAAAA,aAAa5P,UAGpD,MAAM6P,EAAS,MACb,IACE,OAAOpI,EAAAA,MAAMqI,GAAGxK,EAClB,CAAE,MACA,MACF,CACD,EANc,GAQTyK,EAAkBF,EAASpI,EAAAA,MAAMuI,QAAQ1K,QAAgB5F,EACzDuQ,EAAeJ,EACjBtR,QAAQC,YAAY,cAAe8G,EAAM8F,UAAWyE,QACpDnQ,EACEwQ,EACJD,IAAiB5L,QAAU4L,IAAiBE,OACxCC,IACFL,GAAiBM,aAClBR,IACGpI,QAAM6I,oBAAoBhL,EAAcuK,IACxCU,GAAqCjL,EAAOuK,IAC5CK,GAGAM,EAAWvT,MAAMwT,KAAK,IAAIC,IAAIvQ,EAAAA,SAAS7B,WAAWgH,IAAU,KAC5DqL,EAAY,IAAID,IAAajJ,EAAAA,MAAMkJ,UAAUrL,IAAuB,IACpEsL,EAAwB,GAE9B,IAAK,MAAMC,KAAQL,EACZK,IACDF,EAAUxB,IAAI0B,IAEdA,IAAShB,IAAWL,GAAcY,GAClCS,IAAShB,GAAUU,GAAqCjL,EAAOuL,IAGnED,EAAYhL,KAAKiL,IAGnB,IAAK,MAAMA,KAAQD,EAAa,CAC9B,MAAME,EAAaC,GAA+BzL,EAAOuL,GACnDG,IAAeF,IAAaG,EAAAA,eAAeC,UAC3CC,EACJC,GAAyB9L,EAAOuL,IAChCtS,QAAQC,YAAY,cAAe8G,EAAM8F,UAAWyF,GAEhDQ,EAAgD,CACpDpS,SAAU+R,GAERG,IAAUE,EAAWtS,KAAOoS,GAEhCjS,EAAYmS,EAAZnS,CAAwByQ,EAAWvE,UAAWyF,GAE9C,MAAMS,EACJ/S,QAAQC,YAAY,cAAe8G,EAAM8F,UAAWyF,IAASM,OACrC,IAAfG,GACT/S,QAAQE,eACN,cACA6S,EACA3B,EAAWvE,UACXyF,GAIJzT,OAAOkP,eAAeqD,EAAWvE,UAAWyF,EAAM,CAChDtT,WAAOmC,EACP6M,UAAU,EACVgF,YAAY,EACZC,cAAc,GAElB,CAEA,IAAK,MAAMC,KAAYd,EAAW,CAChC,MAAMe,EAAevR,EAAAA,SAASwQ,UAAUrL,EAAOmM,GAC/C,IAAKC,EACH,MAAM,IAAIhJ,EAAAA,cAAc,yBAAyB+I,eAGnD,IAAIE,EACFD,EAAa1O,MAIf,GAH4B,mBAAjB2O,GAAgCA,EAAazP,OACtDyP,EAAgBA,MAEbA,GAAwC,mBAAjBA,EAC1B,MAAM,IAAIjJ,EAAAA,cAAc,qBAAqB+I,eAE/C,IAAKhK,EAAAA,MAAMrH,IAAIuR,EAAazP,MAC1B,SAGF,MAAM0P,EAAOzR,EAAAA,SAAS0R,cAAcvM,EAAOmM,GACrCvU,IAAa0U,IAAeX,EAAAA,eAAea,MAC3Cd,IAAgBY,IAAeX,EAAAA,eAAeC,UAC9Ca,EAAc/C,GAAOhP,EAAI2R,GAE3BnC,EACFwC,GACErC,EACA8B,EACAE,EACAI,EACA7U,EACA8T,GAGFiB,GAAYtC,EAAY8B,EAAUM,EAAa7U,EAAS8T,EAE5D,CAEA,OAAOrB,CACT,CAEA,SAASsC,GACPC,EACAT,EACAM,EACA7U,EACA8T,GAOA9R,EALsD,CACpDH,KAAMgT,EACN9S,SAAU+R,EACV9T,WAEFgC,CAAwBgT,EAAS9G,UAAWqG,GAC5ClT,QAAQE,eACN,cACAvB,EAAUD,MAAQ8U,EAClBG,EAAS9G,UACTqG,GAEFrU,OAAOkP,eAAe4F,EAAS9G,UAAWqG,EAAU,CAClDlU,WAAOmC,EACP6M,UAAU,EACVgF,YAAY,EACZC,cAAc,GAElB,CAEA,SAASQ,GACPE,EACAT,EACAE,EACAI,EACA7U,EACA8T,GAEA,MAAMmB,EACJ5T,QAAQC,YAAY9C,EAAWc,iBAAkB0V,IAAa,GAC3DC,EAAYvU,SAASmU,IACxBxT,QAAQE,eACN/C,EAAWc,iBACX,IAAI2V,EAAaJ,GACjBG,GAIJ,MAAME,EAAS,wBAAwBL,EAAY7P,KAC7CmQ,EAsBR,CAA0BV,IACxB,IACE,MAAM5B,EAAkBtI,EAAAA,MAAMuI,QAAQ2B,GAChCW,EAASvC,GAAiBhR,KAChC,OAAIuT,IAAWjO,QAAUiO,IAAWnC,OAAe,UAC5C,QACT,CAAE,MACA,MAAO,QACT,CACF,EA/BqBoC,CAAiBZ,GAC9Ba,EAAa,CAAC,CAAEC,KAAML,GAAU,CAAErT,KAAMsT,IAM9CnT,EAJsDhC,EACjD,CAAE6B,KAAM,QAASE,SAAU+R,EAAY0B,MAAOF,GAC9C,CAAEzT,KAAM3B,OAAQ6B,SAAU+R,EAAY0B,MAAOF,GAElDtT,CAAwBgT,EAAS9G,UAAWqG,GAC5ClT,QAAQE,eACN,cACAvB,EAAUD,MAAQG,OAClB8U,EAAS9G,UACTqG,GAEFrU,OAAOkP,eAAe4F,EAAS9G,UAAWqG,EAAU,CAClDlU,WAAOmC,EACP6M,UAAU,EACVgF,YAAY,EACZC,cAAc,GAElB,CAaA,SAASjB,GACPjL,EACAuL,GAEA,IAAI8B,EAAerN,EACnB,KAAOqN,GAAWA,IAAYvV,QAAUuV,IAAYC,UAAU,CAC5D,GAAInL,QAAM4I,UAAUsC,EAAS9B,GAAc,OAAO,EAClD8B,EAAUvV,OAAOyV,eAAeF,EAClC,CACA,OAAO,CACT,CAEA,SAAS5B,GACPzL,EACAuL,GAEA,IAAI8B,EAAerN,EACnB,KAAOqN,GAAWA,IAAYvV,QAAUuV,IAAYC,UAAU,CAC5D,MAAM9B,EAAa3Q,EAAAA,SAAS0R,cAAcc,EAAS9B,GACnD,GAAIC,EAAY,OAAOA,EACvB6B,EAAUvV,OAAOyV,eAAeF,EAClC,CAEF,CAEA,SAASvB,GAAyB9L,EAAyBuL,GACzD,IAAI8B,EAAerN,EACnB,KAAOqN,GAAWA,IAAYvV,QAAUuV,IAAYC,UAAU,CAC5D,MAAM7T,EAAOoB,EAAAA,SAASpB,KAAK4T,EAAS9B,GACpC,GAAI9R,EAAM,OAAOA,EACjB4T,EAAUvV,OAAOyV,eAAeF,EAClC,CAEF,CCxRCG,EAAAA,QAAgBC,gBAEfC,IACA,MAAMC,EACe,iBAAZD,EAAuBA,EAAWA,EAAQC,MACnD,OAAO9S,EAAAA,SAAmB,SAAE6E,OAAOqB,IAAI,gBAAiB4M,EAC1D,GAAEC,KAAKJ,EAAAA,SAENA,EAAAA,QAAgBK,qBAAsB,KAGrC,MAAMvB,EAAOzR,EAAAA,SAAmB,SAAE6E,OAAOqB,IAAI,iBAC7C,GAAKuL,EACL,OAAOxU,OAAOM,KAAKkU,EACrB,GAAEsB,KAAKJ,EAAAA,SAENM,EAAAA,QAAgBhI,UAAUxB,WAAa,SAEvBR,GACf,MAAMiK,EAAUrN,KAAKqN,UAErB,OADIA,GAASjK,EAAIkK,OAAO,iBAAkBtH,KAAKC,UAAUoH,IAClDjK,CACT,ECdA,MAAMgC,GAAYmI,EAAAA,aAAanI,UAkB/B,GAdKA,GAAUoI,gBACbpI,GAAUoI,cAAgB,SAAU9O,GAKlC,OAJMsB,KAAayN,mBAChBzN,KAAayN,iBAAmB,IAElCzN,KAAayN,iBAAiB7N,KAAKlB,GAC7BsB,IACT,GAGFoF,GAAU/F,KAAO,SAAUC,GACzB,OAAOU,KAAKwN,cAAcnO,EAAKC,GACjC,GAEM8F,GAAkBsI,2BAA4B,CAClD,MAAMC,EAAgBvI,GAAUwI,MAChCxI,GAAUwI,MAAQ,WAChB,IAAI3G,EAAS0G,EAAcxG,KAAKnH,MAChC,MAAMjE,EAAciE,KAAayN,iBACjC,GAAI1R,GAAYhE,OACd,IAAK,MAAM2G,KAAa3C,EAAY,CAClC,MAAM8R,EAAYnP,EAAUuI,GACxB4G,IACF5G,EAAS4G,EAEb,CAEF,OAAO5G,CACT,EACC7B,GAAkBsI,4BAA6B,CAClD,OC+DaI,UACa9N,KAAAG,IAAMC,EAAAA,QAAQC,IAAIyN,GAAoB5R,KAAM,CAEpE,qBAAO6R,CACLC,GAEA,IACE,OAAOtH,EAAAA,QAAQtM,IAAqB4T,EACtC,CAAE,MAAO3L,GACP,IACE,OAAOqD,EAAAA,aAAa0C,WAAW4F,EAEjC,CAAE,MAAO3L,GACP,OAAOgG,EAAAA,WAAWC,SAAS0F,EAC7B,CACF,CACF,CAEA,sCAAOC,CACLxI,EACAyI,EAAiBxM,EAAAA,gBAAgByM,OAEjC,MAAMhO,EAAM2N,GAAoB3N,IAAIE,IAClCyN,GAAoBG,iCAEhBvF,EACJjD,aAAuBC,EAAAA,aAAeD,EAAYiD,KAAOjD,EACrD1I,EAA2B2L,EAAK1L,MAChCoR,EACJjU,EAAAA,SAASC,IACPsO,EAAK1P,YACLmB,EAAAA,SAASxC,IAAI+J,EAAAA,gBAAgByM,SAC1B,CAAA,EAEDE,EACJlU,WAASC,IACPqL,EAAYzM,YACZmB,EAAAA,SAASxC,IAAImH,KACV,CAAA,EAGP,MAAMwP,UAAwBpG,GAC5B,SAAa,GACX,MAAUvJ,MAAM,0BAClB,CACA,WAAA3F,CAAY2N,EAAoCzK,GAC9C0K,MAAMD,EAAezK,EACvB,EAGF,IAAK,MAAO6H,EAAYxG,KAAWnG,OAAOmX,QAAQF,GAAe,CAE/D,MAAMrK,EAAY,CAACzG,EAAO7C,KAAK8T,QAAQ,aAAc,KAClDlX,OAAQqR,GAAYA,GAAWA,EAAQC,QACvC6F,KAAK,KAGFxU,EAAU2L,EAAmB7B,GACnC,IAAK9J,EAAS,CACZ,MAAMyU,EAAU,wCAAwC3R,EAAYb,4BAA4B6H,IAEhG,MADA5D,EAAIgG,MAAMuI,GACA/P,MAAM+P,EAClB,CAEA,MAAMxJ,EAAakB,EACjBkI,EACAvK,EACA9J,GAGEiL,GAMFD,EAAmBqJ,EAAiBvK,EAAYmB,EAL7BpB,EACjBC,EACAC,EACAzG,EAAOoR,YAIb,CAEA,IAAK,MAAO5K,EAAY6K,KAAcxX,OAAOmX,QAAQH,GAAe,CAClE,MACMpK,EAAY,CAACkK,EAAQnK,MADZ6K,EAAUC,QAAU,IACcrX,IAAKsX,GAAM,IAAIA,IAC7DxX,OAAQqR,GAAYA,GAAWA,EAAQC,QACvC6F,KAAK,KAGFvJ,EAAakB,EACjBkI,EACAvK,EAHc6B,EAAmB7B,IAO/BmB,GAEFD,EAAmBqJ,EAAiBvK,EAAYmB,EAD7BpB,EAAiBC,EAAYC,EAAW,OAAO,GAGtE,CAEA,OAAOsK,CACT,CAEA,aAAOS,CAA6BhS,GAClC,MAAMoD,EAAM2N,GAAoB3N,IAAIE,IAAIyN,GAAoBiB,QACtDC,EAAYvN,EAAAA,MAAMuN,UAAUjS,GAC5BiH,EAAYiL,EAAAA,YAAYD,GACxBE,EAAiBnS,EAAYb,KAC7BuJ,EAAcqI,GAAoBC,eAAehR,IAGjDZ,YAAEA,EAAWgT,MAAEA,EAAKC,cAAEA,EAAa1U,KAAEA,GACzCoT,GAAoBuB,4BAA4BtS,GAElDoD,EAAIO,MAAM,kCAAkCwO,GAE5C,MAAMI,EAAiBxB,GAAoBG,gCACzCxI,GAGF,IAIM8J,EAJN,cAIqCD,EAGzB,gBAAW,GACnB,OAAOvS,CACT,CAEA,SAAa,GACX,OAAOA,CAET,CAEA,WAAA/D,CAAY2N,GACVC,MAAMD,GAZS3G,KAAA8J,GAAarI,QAAMqI,GAAG/M,GAarCoD,EAAIqP,KACF,6CAA6CxP,KAAKhD,MAAMd,gBAAgB8H,IAE5E,CA4BA,YAAMyL,CACU9X,EACA+X,GAEd,MAAMjT,IAAEA,UACAuD,KAAK6G,OAAO,GAAI8I,EAAAA,sBAAsBC,SAAS,IACrDvP,IAAIL,KAAKyP,QACX,OAAOzP,KAAKyF,YAAYhJ,GAAKgT,OAC3B9X,EACA+X,EAAQxJ,UACRzJ,EAEJ,CAoBA,gBAAMoT,CACUlY,EACA+X,GAEd,MAAMjT,IAAEA,UACAuD,KAAK6G,OAAO,GAAI8I,EAAAA,sBAAsBG,SAAS,IACrDzP,IAAIL,KAAK6P,YACX,OAAO7P,KAAKyF,YAAYhJ,GAAKoT,WAC3BlY,EACA+X,EAAQxJ,UACRwJ,EACAjT,EAEJ,CAmBA,UAAMsT,CACYxY,EACFmY,GAEd,MAAMjT,IAAEA,UACAuD,KAAK6G,OAAO,GAAI8I,EAAAA,sBAAsBK,MAAM,IAClD3P,IAAIL,KAAK+P,MACL7J,EAAawJ,EAAQxJ,WACzBxB,EAAAA,eAAeuL,IACjB,OAAOzK,EACLxF,KAAKyF,YAAYhJ,GACjBuD,KAAK+P,KAAK7T,KACV3E,EACA2O,EACAzJ,EAEJ,CAkCA,UAAMyT,CACY3Y,EACFmY,GAEd,MAAMjT,IAAEA,UACAuD,KAAK6G,OAAO,GAAI8I,EAAAA,sBAAsBQ,MAAM,IAClD9P,IAAIL,KAAKkQ,OACLhK,UACJA,EAAYxB,iBAAeuL,IAAG9R,MAC9BA,EAAKI,OACLA,EAAMC,SACNA,GACEkR,EACEU,EAA+C,CACnD7R,OAAQA,GAAU,EAClBJ,MAAOA,GAAS,GAChBK,YAEF,OAAOgH,EACLxF,KAAKyF,YAAYhJ,GACjBuD,KAAKkQ,KAAKhU,KACV3E,EACA2O,EACAkK,EACA3T,EAEJ,CAWA,eAAM4T,CAAwB1Y,EAA6BJ,GACzD,MAAMkF,IAAEA,UACAuD,KAAK6G,OAAO,GAAI8I,EAAAA,sBAAsBW,aAAa,IACzDjQ,IAAIL,KAAKqQ,WACX,OAAOrQ,KAAKyF,YAAYhJ,GAAK4T,UAAU1Y,EAAgBJ,EAAOkF,EAChE,CAkBM,YAAA8T,CACU5Y,EACEJ,EAEFmY,GAEd,MAAMjT,IAAEA,UACAuD,KAAK6G,OAAO,GAAI8I,EAAAA,sBAAsBa,SAAS,IACrDnQ,IAAIL,KAAKuQ,QACX,OAAOvQ,KAAKyF,YAAYhJ,GACrB4D,IAAI5D,EAAIgU,eACRF,OAAO5Y,EAAgBJ,EAAOkF,EACnC,CAqCM,eAAAkJ,CACazJ,EACFhC,EACDwV,GAEd,MAAMjT,IAAEA,UACAuD,KAAK6G,OAAO,GAAInF,EAAAA,gBAAgBgP,WAAW,IACjDrQ,IAAIL,KAAK2F,YACLO,UAAEA,EAAS3H,OAAEA,EAAMJ,MAAEA,EAAKK,SAAEA,GAAakR,EAIzCiB,GAHNzW,EAAOA,EAAK1C,IACToZ,IAAoB,iBAANA,EAAiBC,SAASD,GAAKA,IAAMA,IAE3B7Y,OAAS,EAAImC,EAAK,QAAKR,EAC5CoX,EAAqB5K,GAAayK,EAIxC,OADIG,GAAqB5W,EAAKnC,OAAS,IAAGmC,EAAK,GAAK4W,GAC5C5U,GACN,KAAKyT,EAAAA,sBAAsBK,KAC3B,KAAKL,EAAAA,sBAAsBa,QACzB,MACF,KAAKb,EAAAA,sBAAsBC,QACzB1V,EAAK0F,KAAKsG,GACV,MACF,KAAKyJ,EAAAA,sBAAsBQ,KAC3B,KAAKR,EAAAA,sBAAsBG,QACzB5V,EAAO,CACLA,EAAK,GACL4W,EACA,CACE3S,MAAOA,EACPI,OAAQA,EACRC,SAAUA,IAIhB,KAAKmR,EAAAA,sBAAsBW,YAE3B,KAAKX,EAAAA,sBAAsBoB,SAC3B,KAAKpB,EAAAA,sBAAsBqB,OAC3B,KAAKrB,EAAAA,sBAAsBsB,OAC3B,KAAKtB,EAAAA,sBAAsBuB,OAC3B,KAAKvB,EAAAA,sBAAsBwB,OAC3B,KAAKxB,EAAAA,sBAAsByB,YAC3B,KAAKzB,EAAAA,sBAAsB0B,UAI7B,OAAOrR,KAAKyF,YAAYhJ,GAAKkJ,UAAUzJ,KAAShC,EAAMuC,EACxD,CAwLA,eAAM6U,CACS9U,EACoB+U,GAEjC,MAAM9U,IAAEA,EAAG0D,IAAEA,UACLH,KAAK6G,OAAO,GAAI4C,EAAAA,sBAAsB+H,YAAY,IACxDnR,IAAIL,KAAKsR,WAEX,IAAIG,EADJtR,EAAIK,QAAQ,gBAAgB0O,GAE5B,IACEuC,QAAgBzR,KAAKyF,YAAYhJ,GAAK6U,UACpC9U,EAAKhF,IAAK8N,GAAM,IAAIvI,EAAYuI,IAChC7I,EAEJ,CAAE,MAAO4F,GAEP,MADAlC,EAAIgG,MAAM,wBAAwB+I,EAAkB7M,GAC9CA,CACR,CAMA,OALAlC,EAAIqP,KACF,eAAeN,aAA2BuC,EAAgBzR,KAAK8J,OAGjErN,EAAImH,WAAW2N,GACRE,CACT,CAkBA,YAAM1C,CACSvS,EACoB+U,GAEjC,MAAM9U,IAAEA,EAAG0D,IAAEA,UACLH,KAAK6G,OAAO,GAAIxM,EAAAA,cAAcW,QAAQ,IAC5CqF,IAAIL,KAAK+O,QAEX,IAAI0C,EADJtR,EAAIK,QAAQ,gBAAgB0O,GAE5B,IACE,MAAMzJ,EAAczF,KAAKyF,YAAYhJ,GACrCgV,QAAgBhM,EAAYsJ,OAAOvS,EAAMC,EAC3C,CAAE,MAAO4F,GAEP,MADAlC,EAAIgG,MAAM,wBAAwB+I,EAAkB7M,GAC9CA,CACR,CAKA,OAJAlC,EAAIqP,KACF,eAAeN,aAA2BuC,EAAgBzR,KAAK8J,OAEjErN,EAAImH,WAAW2N,GACRE,CACT,CAiBA,aAAMC,CAAsBC,GAC1B,MAAMlV,IAAEA,EAAG0D,IAAEA,UACLH,KAAK6G,OAAO,GAAI4C,EAAAA,sBAAsBmI,UAAU,IACtDvR,IAAIL,KAAK0R,SACX,IAAIG,EACJ,IACE1R,EAAIO,MAAM,WAAWiR,EAAI5Z,UAAUmX,MAAmByC,KACtD,MAAMlM,EAAczF,KAAKyF,YAAYhJ,GACrCoV,QAAapM,EAAYiM,QAAQC,EAAYlV,EAC/C,CAAE,MAAO4F,GAEP,MADAlC,EAAIgG,MAAM,aAAa+I,aAA0ByC,IAAOtP,GAClDA,CACR,CAGA,OADAlC,EAAIqP,KAAK,QAAQqC,EAAK9Z,UAAUmX,KACzB2C,CACT,CAcA,UAAMA,CAAiCC,GACrC,MAAMrV,IAAEA,EAAG0D,IAAEA,UACLH,KAAK6G,OAAO,GAAIxM,EAAAA,cAAcQ,MAAM,IAC1CwF,IAAIL,KAAK6R,MACLE,EAAK5C,KAAS2C,EAAYlU,eAChC,QAAkB,IAAPmU,EACT,MAAM,IAAIC,EAAAA,gBAAgB,MAAMhS,KAAK8J,eAEvC,IAAI+H,EACJ,IACE1R,EAAIO,MAAM,WAAWwO,UAAuBlP,KAAK8J,MAAMiI,KACvD,MAAMtM,EAAczF,KAAKyF,YAAYhJ,GACrCoV,QAAapM,EAAYoM,KAAKE,EAAItV,EACpC,CAAE,MAAO4F,GAKP,MAJAlC,EAAIgG,MACF,kBAAkB+I,aAA0B6C,IAC5C1P,GAEIA,CACR,CAGA,OADAlC,EAAIqP,KAAK,QAAQN,aAA2B2C,EAAa7R,KAAK8J,OACvD+H,CACT,CA2BA,eAAMI,CACSvV,EACoB6U,GAEjC,MAAM9U,IAAEA,EAAG0D,IAAEA,UACLH,KAAK6G,OAAO,GAAI4C,EAAAA,sBAAsBC,YAAY,IACxDrJ,IAAIL,KAAKiS,WAEX,IAAIC,EACJ,IACE/R,EAAIqP,KAAK,YAAY9S,EAAK3E,UAAUmX,KACpCgD,QAAgBlS,KAAKyF,YAAYhJ,GAAKwV,UAAUvV,EAAMD,EACxD,CAAE,MAAO4F,GAEP,MADAlC,EAAIgG,MAAM9D,GACJA,CACR,CAEA,OADA5F,EAAImH,WAAW2N,GACRW,CACT,CAqBM,YAAAC,CACwBL,EACfpV,EACoB6U,GAEjC,MAAM9U,IAAEA,EAAG0D,IAAEA,UACLH,KAAK6G,OAAO,GAAIxM,EAAAA,cAAcc,QAAQ,IAC5CkF,IAAIL,KAAKmS,QAELJ,EAAK5C,KAAS2C,EAAYlU,eAChC,QAAkB,IAAPmU,EACT,MAAM,IAAIC,EAAAA,gBAAgB,MAAMhS,KAAK8J,eAEvC,IAAIoI,EACJ,IACE/R,EAAIqP,KAAK,YAAYN,UAAuBlP,KAAK8J,MAAMiI,KACvD,MAAMK,EAAUpM,KAAKqM,MAAMrM,KAAKC,UAAUvJ,IACpC+I,EAAczF,KAAKyF,YAAYhJ,GACrCyV,QAAgBzM,EAAY0M,OAC1B,IAAIpV,EAAY,IACXqV,EACH,CAACpS,KAAK8J,IAAKiI,IAEbtV,EAEJ,CAAE,MAAO4F,GAEP,MADAlC,EAAIgG,MAAM9D,GACJA,CACR,CAEA,OADA5F,EAAImH,WAAW2N,GACRW,CACT,CAkBA,eAAMI,CACUX,EACmBJ,GAEjC,MAAM9U,IAAEA,EAAG0D,IAAEA,UACLH,KAAK6G,OAAO,GAAI4C,EAAAA,sBAAsB8I,YAAY,IACxDlS,IAAIL,KAAKsS,WACX,IAAIT,EACJ,IACE1R,EAAIO,MAAM,YAAYiR,EAAI5Z,UAAUmX,MAAmByC,KACvDE,QAAa7R,KAAKyF,YAAYhJ,GAAK6V,UAAUX,EAAKlV,EACpD,CAAE,MAAO4F,GAKP,MAJAlC,EAAIgG,MACF,oBAAoB+I,aAA0ByC,IAC9CtP,GAEIA,CACR,CAIA,OAFAlC,EAAIqP,KAAK,WAAWqC,EAAK9Z,UAAUmX,KACnCzS,EAAImH,WAAW2N,GACRM,CACT,CAcA,YAAM,CACwBC,EACKP,GAEjC,MAAM9U,IAAEA,EAAG0D,IAAEA,UACLH,KAAK6G,OAAO,GAAIxM,EAAAA,cAAckB,QAAQ,IAC5C8E,IAAIL,KAAKwS,QAELT,EAAK5C,KAAS2C,EAAYlU,eAChC,QAAkB,IAAPmU,EACT,MAAM,IAAIC,EAAAA,gBAAgB,MAAMhS,KAAK8J,eAEvC,IAAI2I,EACJ,IACEtS,EAAIO,MACF,YAAYwO,UAAuBlP,KAAK8J,MAAgBiI,KAE1DU,QAAYzS,KAAKyF,YAAYhJ,GAAK+V,OAAOT,EAAItV,EAC/C,CAAE,MAAO4F,GAKP,MAJAlC,EAAIgG,MACF,oBAAoB+I,aAA0B6C,IAC9C1P,GAEIA,CACR,CAGA,OAFAlC,EAAIqP,KAAK,WAAWN,aAA0B6C,KAC9CtV,EAAImH,WAAW2N,GACRkB,CACT,GAGF,OAnwBQ7R,aAAA,CAPLpG,EAAsBuC,EAAa,MAAO,eAC1C6H,EAAAA,aAAa,CAAEC,QAAS,YAAYqK,wBACpCvK,EAAAA,SAAS,CAAEzI,KAAM,MAAOC,YAAa,6BACrCsI,EAAAA,SAAS,CAAEvI,KAAM,YAAajD,UAAU,EAAMU,KAAM+K,EAAAA,iBACpDI,gBAAc,CACb3I,YAAgB+S,EAAH,0BAGZpO,EAAAA,QAAA,EAAA4R,QAAM,QACN5R,UAAA,EAAA/C,uIAUFwR,EAAAnK,UAAA,SAAA,MAoBKxE,aAAA,CAlBLpG,EAAsBuC,EAAa,MAAO,yBAC1C6H,EAAAA,aAAa,CAAEC,QAAS,YAAYqK,wBACpCvK,EAAAA,SAAS,CAAEzI,KAAM,MAAOC,YAAa,6BACrCwI,WAAS,CACRzI,KAAM,OACNC,YAAa,yCAEdsI,WAAS,CACRvI,KAAM,YACNjD,UAAU,EACVU,KAAM+K,EAAAA,eACNvI,YAAa,mBAEdsI,EAAAA,SAAS,CAAEvI,KAAM,QAASjD,UAAU,EAAMkD,YAAa,kBACvDsI,EAAAA,SAAS,CAAEvI,KAAM,SAAUC,YAAa,gCACxC2I,gBAAc,CACb3I,YAAgB+S,EAAH,uBAGZpO,EAAAA,QAAA,EAAA4R,QAAM,QACN5R,UAAA,EAAA/C,uIAWFwR,EAAAnK,UAAA,aAAA,MAmBKxE,aAAA,CAjBLpG,EAAsBuC,EAAa,MAAO,eAC1C6H,eAAa,CACZC,QAAS,QAAQqK,kDAElBvK,WAAS,CACRzI,KAAM,QACNC,YAAa,6DAEdsI,WAAS,CACRvI,KAAM,YACNjD,UAAU,EACVU,KAAM+K,EAAAA,eACNvI,YAAa,4CAEd2I,gBAAc,CACb3I,YAAgB+S,EAAH,2CAGZpO,EAAAA,QAAA,EAAA4R,QAAM,UACN5R,UAAA,EAAA/C,uIAcFwR,EAAAnK,UAAA,OAAA,MAkCKxE,aAAA,CAhCLpG,EAAsBuC,EAAa,MAAO,eAC1C6H,eAAa,CACZC,QAAS,QAAQqK,kDAElBvK,WAAS,CACRzI,KAAM,QACNC,YAAa,6DAEdsI,WAAS,CACRvI,KAAM,YACNjD,UAAU,EACVU,KAAM+K,EAAAA,eACNvI,YAAa,yCAEdsI,WAAS,CACRvI,KAAM,QACNjD,UAAU,EACVkD,YAAa,cAEdsI,WAAS,CACRvI,KAAM,SACNjD,UAAU,EACVkD,YAAa,gBAEdsI,WAAS,CACRvI,KAAM,WACNjD,UAAU,EACVkD,YAAa,mCAEd2I,gBAAc,CACb3I,YAAgB+S,EAAH,2CAGZpO,EAAAA,QAAA,EAAA4R,QAAM,UACN5R,UAAA,EAAA/C,uIAwBFwR,EAAAnK,UAAA,OAAA,MAWKxE,aAAA,CATLpG,EAAsBuC,EAAa,MAAO,kBAC1C6H,EAAAA,aAAa,CAAEC,QAAS,YAAYqK,wBACpCvK,EAAAA,SAAS,CAAEzI,KAAM,MAAOC,YAAa,6BACrC2I,gBAAc,CACb3I,YAAgB+S,EAAH,mBAEdyD,sBAAoB,CACnBxW,YAAa,MAAM+S,8CAEJpO,EAAAA,QAAA,EAAA4R,QAAM,QAAqB5R,EAAAA,QAAA,EAAA4R,QAAM,4IAKjDnD,EAAAnK,UAAA,YAAA,MAkBKxE,aAAA,CAhBLpG,EAAsBuC,EAAa,MAAO,sBAC1C6H,EAAAA,aAAa,CAAEC,QAAS,YAAYqK,wBACpCvK,EAAAA,SAAS,CAAEzI,KAAM,MAAOC,YAAa,6BACrCwI,EAAAA,SAAS,CAAEzI,KAAM,QAASC,YAAa,uBACvCsI,WAAS,CACRvI,KAAM,YACNjD,UAAU,EACVU,KAAM+K,EAAAA,eACNvI,YAAa,oCAEd2I,gBAAc,CACb3I,YAAgB+S,EAAH,mBAEdyD,sBAAoB,CACnBxW,YAAa,MAAM+S,8CAGlBpO,EAAAA,QAAA,EAAA4R,QAAM,QACN5R,EAAAA,QAAA,EAAA4R,QAAM,UAEN5R,UAAA,EAAA/C,8IAQFwR,EAAAnK,UAAA,SAAA,MAqCKxE,aAAA,CAnCLpG,EAAsBuC,EAAa,MAAO,2BAC1C6H,eAAa,CACZC,QAAS,oCAAoCqK,OAE9CvK,WAAS,CACRzI,KAAM,SACNC,YAAa,sCAEdwI,WAAS,CACRzI,KAAM,OACNC,YACE,qEAEHsI,WAAS,CACRvI,KAAM,YACNjD,UAAU,EACVU,KAAM+K,EAAAA,eACNvI,YAAa,oCAEdsI,WAAS,CACRvI,KAAM,QACNjD,UAAU,EACVkD,YAAa,uCAEdsI,WAAS,CACRvI,KAAM,SACNjD,UAAU,EACVkD,YAAa,uCAEd2I,gBAAc,CACb3I,YAAgB+S,EAAH,mBAEdyD,sBAAoB,CACnBxW,YAAa,MAAM+S,8CAGlBpO,EAAAA,QAAA,EAAA4R,QAAM,WACN5R,EAAAA,QAAA,EAAA4R,QAAM,SACN5R,UAAA,EAAA/C,6IA8CFwR,EAAAnK,UAAA,YAAA,MAwLKxE,aAAA,CAzBLpG,EAAsBuC,EAAa,OAAQ,QAC3C6H,EAAAA,aAAa,CAAEC,QAAS,gBAAgBqK,OACxC0D,UAAQ,CACPzW,YAAa,eAAe+S,EAC5B2D,OAAQ,CACN9Z,KAAM,QACNc,MAAO,CACL4S,KAAMqG,EAAAA,cAAc/V,OAKzBgW,qBAAmB,CAClB5W,YAAgB+S,EAAH,yBACb2D,OAAQ,CACN9Z,KAAM,QACNc,MAAO,CACL4S,KAAMqG,EAAAA,cAAc/V,OAIzBiW,wBAAsB,CAAE7W,YAAa,+BACrC8W,iCAA+B,CAC9B9W,YAAa,8CAGZ2E,UAAA,EAAAxE,KACAwE,EAAAA,QAAA,EAAAoS,EAAAA,SAAS,CAAEC,aAAa,sIAsB1B5D,EAAAnK,UAAA,YAAA,MAkBKxE,aAAA,CAhBLpG,EAAsBuC,EAAa,QACnC6H,EAAAA,aAAa,CAAEC,QAAS,gBAAgBqK,OACxC0D,UAAQ,CACPzW,YAAa,eAAe+S,EAC5BnW,KAAMiQ,GAAO3O,gBAAcW,OAAQ+B,KAEpCgW,qBAAmB,CAClB5W,YAAgB+S,EAAH,yBACb2D,OAAQ,CACNpG,KAAMqG,EAAAA,cAAc/V,MAGvBiW,wBAAsB,CAAE7W,YAAa,+BACrC8W,iCAA+B,CAC9B9W,YAAa,8CAGZ2E,UAAA,EAAAxE,KACAwE,EAAAA,QAAA,EAAAoS,EAAAA,SAAS,CAAEC,aAAa,uIAmB1B5D,EAAAnK,UAAA,SAAA,MAiBKxE,aAAA,CAfLpG,EAAsBuC,EAAa,MAAO,QAC1C6H,EAAAA,aAAa,CAAEC,QAAS,cAAcqK,oBACtCzK,EAAAA,SAAS,CAAEvI,KAAM,MAAOjD,UAAU,EAAMF,KAAM,UAC9C+L,gBAAc,CACb3I,YAAgB+S,EAAH,2BACb2D,OAAQ,CACN9Z,KAAM,QACNc,MAAO,CACL4S,KAAMqG,EAAAA,cAAc/V,OAIzB4V,sBAAoB,CACnBxW,YAAa,MAAM+S,8CAENpO,EAAAA,QAAA,EAAAkE,QAAM,kIAgBpBuK,EAAAnK,UAAA,UAAA,MAcKxE,aAAA,CAZLpG,EAAsBuC,EAAa,MAAOrC,GAC1CmB,EAAmBuT,GACnBxK,EAAAA,aAAa,CAAEC,QAAS,cAAcqK,oBACtCpK,gBAAc,CACb3I,YAAgB+S,EAAH,2BACb2D,OAAQ,CACNpG,KAAMqG,EAAAA,cAAc/V,MAGvB4V,sBAAoB,CACnBxW,YAAa,MAAM+S,8CAETpO,EAAAA,QAAA,EAAAhD,EAAYsR,+HAuBvBG,EAAAnK,UAAA,OAAA,MA2BKxE,aAAA,CAzBLpG,EAAsBuC,EAAa,MAAO,QAC1ClB,EAAmBuT,GACnBxK,eAAa,CACZC,QAAS,uBAAuBqK,iCAEjC0D,UAAQ,CACPzW,YAAa,4CAA4C+S,EACzD2D,OAAQ,CACN9Z,KAAM,QACN0T,KAAMqG,EAAAA,cAAc9J,GAAO3O,EAAAA,cAAcc,OAAQ4B,OAGpD+H,gBAAc,CACb3I,YAAgB+S,EAAH,yBACb2D,OAAQ,CACN9Z,KAAM,QACNc,MAAO,CACL4S,KAAMqG,EAAAA,cAAc/V,OAIzB4V,sBAAoB,CACnBxW,YAAa,MAAM+S,8CAEpB8D,wBAAsB,CAAE7W,YAAa,+BAEnC2E,UAAA,EAAAxE,KACAwE,EAAAA,QAAA,EAAAoS,EAAAA,SAAS,CAAEC,aAAa,sIAgB1B5D,EAAAnK,UAAA,YAAA,MAqBKxE,aAAA,CAnBLpG,EAAsBuC,EAAa,MAAOrC,GAC1CmB,EAAmBuT,GACnBxK,eAAa,CACZC,QAAS,uBAAuBqK,iCAEjC0D,UAAQ,CACPzW,YAAa,4CAA4C+S,EACzDnW,KAAMiQ,GAAO3O,gBAAcc,OAAQ4B,KAEpC+H,gBAAc,CACb3I,YAAgB+S,EAAH,yBACb2D,OAAQ,CACNpG,KAAMqG,EAAAA,cAAc/V,MAGvB4V,sBAAoB,CACnBxW,YAAa,MAAM+S,8CAEpB8D,wBAAsB,CAAE7W,YAAa,+BAEnC2E,EAAAA,QAAA,EAAAhD,EAAYsR,IACZtO,UAAA,EAAAxE,KACAwE,EAAAA,QAAA,EAAAoS,EAAAA,SAAS,CAAEC,aAAa,8IA4B1B5D,EAAAnK,UAAA,SAAA,MAkBKxE,aAAA,CAhBLpG,EAAsBuC,EAAa,SAAU,QAC7ClB,EAAmBuT,GACnBxK,EAAAA,aAAa,CAAEC,QAAS,cAAcqK,oBACtCzK,EAAAA,SAAS,CAAEvI,KAAM,MAAOjD,UAAU,EAAMF,KAAM,UAC9C+L,gBAAc,CACb3I,YAAgB+S,EAAH,yBACb2D,OAAQ,CACN9Z,KAAM,QACNc,MAAO,CACL4S,KAAMqG,EAAAA,cAAc/V,OAIzB4V,sBAAoB,CACnBxW,YAAa,MAAM+S,8CAGlBpO,EAAAA,QAAA,EAAAkE,QAAM,QACNlE,EAAAA,QAAA,EAAAoS,EAAAA,SAAS,CAAEC,aAAa,sIAoB1B5D,EAAAnK,UAAA,YAAA,MAcKxE,aAAA,CAZLpG,EAAsBuC,EAAa,SAAUrC,GAC7CmB,EAAmBuT,GACnBxK,EAAAA,aAAa,CAAEC,QAAS,YAAYqK,oBACpCpK,gBAAc,CACb3I,YAAgB+S,EAAH,yBACb2D,OAAQ,CACNpG,KAAMqG,EAAAA,cAAc/V,MAGvB4V,sBAAoB,CACnBxW,YAAa,MAAM+S,8CAGlBpO,EAAAA,QAAA,EAAAhD,EAAYsR,IACZtO,EAAAA,QAAA,EAAAoS,EAAAA,SAAS,CAAEC,aAAa,uIA0B1B5D,EAAAnK,UAAA,SAAA,MA7yBGmK,EAAsB3O,EAAAA,WAAA,CAJ3BwS,EAAAA,WAAWpP,GACXqP,EAAAA,QAAQnE,GACRoE,EAAAA,eAAevW,GACfsC,EAAKtC,qCAauB6E,yBAZvB2N,GAgzBCA,CACT,CAEA,kCAAOF,CACLrB,GAEA,MAAMlE,EAAKrI,EAAAA,MAAMqI,GAAGkE,GACduF,EAAWpZ,WAASC,IACxB4T,EACA7T,WAASxC,IAAI6b,EAAAA,OAAOC,SAAU3J,IAE1B4J,EAAeH,GAAUrZ,MAAQ,GAGjCyZ,EACJ1c,MAAMC,QAAQwc,IAAiBA,EAAa3b,OAAS,EACjDd,MAAMwT,KAAK,IAAIC,IAAI,IAAIgJ,KACvBzc,MAAMwT,KAAK,IAAIC,IAAI,CAACZ,KAEpB3N,EAAchC,EAAAA,SAASgC,YAAY6R,GAWzC,MAAO,CACLtT,KAXW,IAAIiZ,EAAWlF,KAAK,MAY/BtS,cACAiT,cAZwCuE,EAAWnc,IAAKG,IACjD,CACLuE,KAAMvE,EACNwE,YAAahC,EAAAA,SAASgC,YAAY6R,EAAYrW,GAC9CsB,UAAU,EACVF,KAAMqD,UAQR+S,MAAO,IAAI5R,IACTgW,GAAUK,UAAYrW,EAAOkR,KAAK8E,EAASK,WAAarW,EAAOkR,KAAK,IAE1E,ECtjCI,SAAUoF,GAAaC,SAE3B,IAAMC,EAAN,2BACkB/T,KAAAG,IAAMC,EAAAA,QAAQC,IAAI2T,EAAiB9X,MAAMmE,IAAIyT,EAAS,CAEtE,0BAAOG,CACLC,GAEA,OAAOA,EAAO1c,IAAK8H,IAAK,CACtB6U,QAAY7U,EAAMpD,KAAT,UACTkY,WAAY,IAAM1O,EAAAA,aAAa4C,SAAShJ,KAE5C,CAEA,cAAO+U,CACLP,EACA3a,EAAuC,IAEvC,MAAMgH,EAAMH,KAAKG,IAAIE,IAAIL,KAAKqU,SAC9BlU,EAAIqP,KAAK,yCAET,MAAM8E,EAAgBxH,EAAAA,QAAQoH,OAAOJ,GAErC,IAAIS,EAA4B,GAC5Bpb,EAAQqb,eACVrU,EAAIqP,KAAK,2DACT+E,EAAgBvU,KAAKiU,oBAAoBK,GACzCnU,EAAIqP,KACF,4BAA4B+E,EAAcxc,iCAI9C,MAAM0c,EAAcH,EAAc9c,IAAIsW,GAAoBiB,QAG1D,OAFA5O,EAAIqP,KAAK,aAAaiF,EAAY1c,sBAE3B,CACL2c,OAAQV,EACRS,cACAE,UAAW,IACNJ,GAGT,GAKF,OA7CMR,EAAgBC,EAAApT,aAAA,CADrBgU,EAAAA,OAAO,CAAA,IACFb,GA0CN3c,OAAOoL,OAAOuR,EAAkB,OAAQ,CACtCxc,MAAO,cAAcuc,IAEhBC,CACT,CC1CAc,EAAAA,WAAWxU,IAAIyU,EAAAA,gBAAgBC,YAC5BC,OAAO,CACNtW,UAAW,CACTuW,EACAC,KAEAA,EACEA,IACqB,iBAAbD,EACJ7d,OAAOoL,OACLyS,EACAE,EAAAA,0BAEFA,4BACCtU,aAAW,CAChB8B,MAAOuS,EAAIE,UAAYxS,EAAAA,MAAMyS,QAAUzS,EAAAA,MAAMC,QAC7CyS,SAASJ,EAAIE,gBAAY1b,OAI9BiC,QAEHkZ,EAAAA,WAAWxU,IAAIyU,EAAAA,gBAAgBS,QAC5BP,OAAO,CACNtW,UAAW,CACTuW,EAEAC,IAEO,CACL9c,EACAC,EACA6M,IAEOlE,EAAAA,OAAOiU,GAAa7c,EAApB4I,CACL5I,EACAC,EACA6M,KAKPvJ,QAEHkZ,EAAAA,WAAWxU,IAAI4K,EAAAA,eAAeC,UAC3B8J,OACC9b,EAAY,CACVD,UAAU,KAGb0C,QAEHkZ,EAAAA,WAAWxU,IAAI4K,EAAAA,eAAeuK,KAC3BR,OAAO,CACNtW,UAA2B+W,GAClBvc,EAAY,CAAEwc,QAASD,EAAKxc,UAAU,MAGhD0C,QAEHkZ,EAAAA,WAAWxU,IAAI4K,EAAAA,eAAe0K,KAC3BX,OAAO,CACNtW,UAA2BkX,GAClB1c,EAAY,CAAE2c,QAASD,EAAK3c,UAAU,MAGhD0C,QAEHkZ,EAAAA,WAAWxU,IAAI4K,EAAAA,eAAe6K,YAC3Bd,OAAO,CACNtW,UAAiC+W,GACxBvc,EAAY,CAAE6c,UAAWN,EAAKxc,UAAU,MAGlD0C,QAEHkZ,EAAAA,WAAWxU,IAAI4K,EAAAA,eAAe+K,YAC3BhB,OAAO,CACNtW,UAAiCkX,GACxB1c,EAAY,CAAE+c,UAAWL,EAAK3c,UAAU,MAGlD0C,QAEHkZ,EAAAA,WAAWxU,IAAI4K,EAAAA,eAAeiL,MAC3BlB,OAAO,CACNtW,UACE3F,GAKO,CAACX,EAAgByS,KAEF,mBADpB9R,EAAO9B,MAAMC,QAAQ6B,GAAQA,EAAK,GAAKA,IACJA,EAAKmD,OACtCnD,EAAQA,KACHG,EAAY,CACjBH,KAAMA,EACNE,UAAU,GAFLC,CAGJd,EAAQyS,MAIhBlP,QAsBHkZ,EAAAA,WAAWxU,IAAI4K,EAAAA,eAAekL,MAC3BnB,OAAO,CAENtW,UAA4B0X,GACnBld,EAAY,CACjBH,KAAMqD,OACNga,OAAQ,YACRnd,UAAU,MAKf0C,QAEHkZ,EAAAA,WAAWxU,IAAI4K,EAAAA,eAAeoL,MAC3BrB,OAAO,CACNtW,UAA8BvF,GAErBD,EAAY,CACjBS,KAFW1C,MAAMC,QAAQiC,GAAWA,EAAU/B,OAAOC,OAAO8B,GAG5DF,UAAU,MAIf0C,QAEHkZ,EAAAA,WAAWxU,IAAI4K,EAAAA,eAAeqL,SAC3BtB,OAAO,CACNtW,UAA+B6X,GACtBrd,EAAY,CACjBsd,QAAwB,iBAARD,EAAmBA,EAAMA,EAAIE,OAC7Cxd,UAAU,MAIf0C,QAEHkZ,EAAAA,WAAWxU,IAAIqB,EAAAA,gBAAgBgV,QAC5B1B,OAAO,CACNtW,UAA8BxC,GACrBhD,EAAY,CACjBgD,KAAMA,EACNjD,UAAU,MAIf0C,QAEHkZ,EAAAA,WAAWxU,IAAIsW,EAAAA,eAAeC,aAC3B5B,OAAO,CACNtW,UAAmCvC,GAC1BjD,EAAY,CACjBiD,YAAaA,EACblD,UAAU,MAIf0C,QAEHkZ,EAAAA,WAAWxU,IAAIqB,kBAAgBmV,MAAM7B,OAAO,CAAEtW,UAAWW,IAAQ1D,QCnM3D,MAAOmb,WAAkBC,EAAAA,eAC7B,WAAA/d,CAAYge,GACVpQ,MAAMoQ,EAAKF,GAAU5a,KACvB,ECHI,MAAO+a,WAA4BC,EAAAA,UACvC,WAAAle,CAAYge,GACVpQ,MAAMqQ,GAAoB/a,KAAM8a,EAAM,IACxC,ECQWG,EAAAA,qBAAN,MACL,MAAMC,EAAkBC,GACtB,MAAM5a,EAAM4a,EAAK1a,eACX6G,EAAW/G,EAAIgH,cACfxB,EAAUxF,EAAIG,aAEd0a,EAAyC,eAA1BC,oBAAkBC,IACvC,IAAIC,EAGFL,aAAqBM,EAAAA,mBACrBN,aAAqBO,EAAAA,iBAGrBF,GADAL,EAAY,IAAIQ,EAAAA,uBAAuBR,EAAU1I,UACEmJ,YACxCT,aAAqBF,EAAAA,YAE9BE,EAD+B,MAA7BA,EAAkBU,OACR,IAAIb,GAAoBG,EAAU1I,SAElC,IAAIhM,EAAAA,cAAc0U,EAAU1I,UAI5ClL,EAASsU,OAAQV,EAAwBW,MAAQN,GAAYO,KAAK,CAChEF,OAASV,EAAwBW,MAAQN,EACzCtR,MAAOmR,EAAeF,EAAUlb,KAAOkb,EAAU1I,QACjDuJ,WAAW,IAAIC,MAAOC,cACtBzd,KAAMuH,EAAQqB,IACdD,OAAQpB,EAAQoB,QAEpB,GA9BW8T,EAAAA,qBAAoBvW,aAAA,CADhCwX,EAAAA,SACYjB,wBCiBN,MAAMkB,GAAuC,CAIlD3d,KAAM,OAGN4d,KAAM,CACJvf,KAAM,OACNwf,OAAQ,SACRC,aAAc,MACdtc,KAAM,gBACNC,YAAa,kBACbsc,GAAI,UAGNC,cAAe,iBChCJC,GAUX,WAAA3f,CAAYG,GACV6G,KAAK7G,QAAU,IACVA,EAEP,CAEQ,SAAAyf,GACN,IAAIC,EAAM,GAKV,OAJI7Y,KAAK7G,QAAQ2f,iBAEfD,GAAO,yDADK7Y,KAAK+Y,IAAI/Y,KAAK7G,QAAQ2f,sDAIlCD,EACA,0GAE4C7Y,KAAK7G,QAAQuf,eAAiBL,GAAqBK,0BAGnG,CAEA,gBAAAM,GACE,MAAMC,EAA+B,CAAA,EAKrC,OAJIjZ,KAAK7G,QAAQ+f,cACfD,EAAuB,cAAIjZ,KAAK+Y,IAAI/Y,KAAK7G,QAAQ+f,aAAa,IAGzD,CACLC,gBAAiBnZ,KAAK7G,QAAQigB,SAC3BH,EACHI,UAAWrZ,KAAK4Y,YAChBU,eAAgB,CACdC,qBAAsBvZ,KAAK7G,QAAQogB,sBAGzC,CAEA,GAAAR,CAAIS,EAAcC,GAAe,GAC/B,MAAMC,EAAWhf,EAAK+T,KAAKzO,KAAK7G,QAAQwgB,YAAc,GAAIH,GACpDT,EAAMa,EAAAA,aAAaF,EAAU,CAAEG,SAAU,WAC/C,OAAOJ,EAAM,yBAA2BV,EAAMA,CAChD,QC3DWe,GACX,WAAA9gB,CACmB+gB,EACA5gB,GADA6G,KAAA+Z,IAAAA,EACA/Z,KAAA7G,QAAAA,CAChB,CAEK,cAAA6gB,GACN,MAAM7d,EAAc6D,KAAK7G,QAAQuB,KAC7BsF,KAAK7G,QAAQgD,YACb,GACA,oBAAoB6D,KAAK7G,QAAQ8gB,4CACjC,YAAYja,KAAK7G,QAAQ+gB,yCACzBla,KAAK7G,QAAQgD,YAEX2L,GAAS,IAAIqS,EAAAA,iBAChBC,SAASpa,KAAK7G,QAAQigB,OACtBiB,eAAele,GACfme,WAAWta,KAAK7G,QAAQohB,SAAW,SACnCC,cAAcxa,KAAK7G,QAAQmf,MAAQD,GAAqBC,MACxD1K,QAEH,OAAO6M,EAAAA,cAAcT,eAAeha,KAAK+Z,IAAKjS,EAAQ,CACpDqE,YAAanM,KAAK7G,QAAQgT,aAAe,IAE7C,CAEQ,oBAAAuO,CACNhgB,EACAigB,EACAC,GAEA,IAAKlgB,EAAM,OAEX,MAAMmgB,EAAc7a,KAAK+Z,IAAIe,iBAC7BpgB,EAAOA,EAAK2J,WAAW,KAAO3J,EAAO,IAAIA,EACzCmgB,EAAYzgB,IAAIM,EAAM,CAACqgB,EAAW3X,KAChCyX,EAAYG,MAAM5X,EAAKwX,IAAe,IAAK,CACzC,eAAgBD,KAGtB,CAEO,YAAAM,GACL,MAAMC,EAAWlb,KAAKga,iBAChBmB,EAAY,IAAIxC,GAAgB,CACpCS,MAAOpZ,KAAK7G,QAAQigB,MACpB1e,KAAMsF,KAAK7G,QAAQuB,MAAQ2d,GAAqB3d,KAChD6e,qBAAsBvZ,KAAK7G,QAAQogB,uBAAwB,EAC3DI,WAAY3Z,KAAK7G,QAAQwgB,WACzBT,YAAalZ,KAAK7G,QAAQiiB,gBAC1BtC,eAAgB9Y,KAAK7G,QAAQkiB,mBAC7B3C,cAAe1Y,KAAK7G,QAAQuf,gBAE9B+B,gBAAca,MACZtb,KAAK7G,QAAQuB,MAAQ2d,GAAqB3d,KAC1CsF,KAAK+Z,IACLmB,EACA,IACKC,EAAUnC,mBACbuC,gBAAiBvb,KAAK7G,QAAQ8gB,gBAC1B,GAAGja,KAAK7G,QAAQ8gB,qBAChBvgB,EACJ8hB,gBAAiBxb,KAAK7G,QAAQ+gB,gBAC1B,GAAGla,KAAK7G,QAAQ+gB,qBAChBxgB,IAIRsG,KAAK0a,qBACH1a,KAAK7G,QAAQ8gB,gBACb,mBACA,IAAMiB,GAGRlb,KAAK0a,qBACH1a,KAAK7G,QAAQ+gB,gBACb,qBACA,IAAMuB,EAAKxV,UAAUiV,GAEzB,YC7EI,SAAUQ,GAA4B5H,GAC1C,OAA4CxW,IAC1CnD,EAAAA,SAASiP,IAAI,eAAgB0K,EAASxW,GACd,mBAAbA,EACFpF,WAAS,eAAgB4b,EAAzB5b,CAAkCoF,GACpCA,EAEX,CC+Caqe,EAAAA,+BAA8BC,GAApC,MACL,WAAA5iB,CACqB6iB,EACAC,GADA9b,KAAA6b,eAAAA,EACA7b,KAAA8b,SAAAA,CAClB,CAEO,mBAAMC,CAAc1e,GAC5B,MACM2e,EAA0B,CAC9B3a,QAFchE,EAAIgE,QAGlBe,UAAW,CAAA,GAGP6Z,EAAWnP,EAAAA,QAAQK,sBACzB,GAAI8O,EACF,IAAK,MAAMnI,KAAWmI,EACpB,IACE,MAAMC,EAAcpP,EAAAA,QAAQC,eAC1B+G,GAEIrJ,QAAayR,EAAYzR,KAAKpN,GACpCjG,OAAOoL,OAAOwZ,EAAM5Z,UAAWqI,EACjC,CAAE,MAAOpI,GACP,MAAM,IAAIK,EAAAA,cAAc,oCAAoCL,EAC9D,CAaJ,OAXY,IAAI+K,EAAAA,SAAU7K,WACxBnL,OAAOoL,OACL,CAAA,EACA2Z,sBACA,CACEC,OAAQhc,EAAAA,QAAQhG,MAChB6d,UAAW,IAAIC,MAEjB8D,GAIN,CAEA,eAAM/b,CAAUiD,EAA2BhD,GACzC,MAAM7C,EAAM6F,EAAQvG,eAAeC,aAC7BwG,EAAMF,EAAQvG,eAAe8G,cAC7BtD,EAAMC,EAAAA,QAAQC,IAAIub,IAAgCvb,IAAIL,KAAKC,WACjEE,EAAIO,MACF,WAAWV,KAAK6b,eAAeha,mBAAmBxE,EAAIgG,UAAUhG,EAAIiG,OAEtE,MAAM7G,QAAYuD,KAAK+b,cAAc1e,GAcrC,OAbA8C,EAAIO,MACF,WAAWV,KAAK6b,eAAeha,kCAAkCxE,EAAIgG,UAAUhG,EAAIiG,OAGrFtD,KAAK6b,eAAepZ,SAAShG,GAC7B0D,EAAIO,MACF,WAAWV,KAAK6b,eAAeha,2BAA2BxE,EAAIgG,UAAUhG,EAAIiG,aAGxEtD,KAAK8b,SAAS3Y,KAAK9F,EAAK+F,GAC9BjD,EAAIO,MACF,WAAWV,KAAK6b,eAAeha,sCAAsCxE,EAAIgG,UAAUhG,EAAIiG,OAElFpD,EAAKS,QACd,GA9DWgb,EAAAA,+BAA8BC,GAAAhb,EAAAA,WAAA,CAD1CC,EAAAA,WAAW,CAAE8B,MAAOC,EAAAA,MAAMC,4CAGYjB,EAAAA,oBACNmB,0BAHpB4Y,kCClCAU,EAAAA,gBAAN,qBAOK,sBAAW5W,GACnB,IAAKzF,KAAKmI,aACR,MAAM,IAAIzF,EAAAA,cAAc,uCAC1B,OAAO1C,KAAKmI,YACd,CAEU,cAAWhI,GAEnB,OADKH,KAAKsc,UAAStc,KAAKsc,QAAUlc,UAAQC,IAAIkc,KACvCvc,KAAKsc,OACd,CAEA,WAAAtjB,CAEmBG,EACAqjB,GADAxc,KAAA7G,QAAAA,EACA6G,KAAAwc,UAAAA,CAChB,CAEH,cAAOnI,CAAQlb,GACb,MAAMgH,EAAMH,KAAKG,IAAIE,IAAIL,KAAKqU,SAC9B,MAAO,CACLK,OAAQ6H,GACR5H,UAAW,CACT,CAAER,QAASvV,EAAsB6d,SAAUtjB,GAC3C,CAAEgb,QAAStV,EAAkB4d,SAAUzc,KAAKyF,aAAaiX,QACzD,CACEvI,QAASpV,EACTqV,WAAY,IACVjb,EAAQ8J,UAAUzL,IAAKmlB,IACrBxc,EAAIqP,KAAK,+BAA+BmN,EAAEzgB,MACnC,IAAIygB,KACP,IAEVhd,EAAAA,gBACA,CACEwU,QAASyI,EAAAA,gBACTC,YAAald,EAAAA,iBAEfiC,EAAAA,oBACAmB,EAAAA,qBACA,CACEoR,QAASyI,EAAAA,gBACTE,SAAUnB,EAAAA,iCAGdoB,QAAS,CACPne,EACAC,EACAE,EACA6C,EAAAA,oBACAmB,EAAAA,sBAGN,CAEA,4BAAaia,CACX7jB,GAEA,MAAMgH,EAAMH,KAAKG,IAAIE,IAAIL,KAAKgd,iBAE9B,IAAKhd,KAAKmI,aAAc,CACtB,MAAM8U,EAAU9jB,EAAQ+jB,KAAK1lB,IAAI,EAAE2lB,EAAOjI,KAAQhb,KAC/BA,EAAKkjB,MAEf,CAACD,EAAOjI,KAAQhb,GADD,CAACijB,EAAOjI,IAGhClV,KAAKmI,aAAe,IAAIkV,2BAClBrd,KAAKmI,aAAamV,KAAKL,GAC7B,MAAMM,EAAUvd,KAAKmI,aAAauU,OAClC,IAAK,IAAIc,EAAI,EAAGA,EAAID,EAAQxlB,OAAQylB,IAAK,CACvC,MAAMC,EAAItkB,EAAQ+jB,KAAKM,GAEvB,IAAItB,EADmBuB,EAAEnZ,MAAM,EAAGmZ,EAAE1lB,QACHqlB,MACjC,IACGlB,IACCA,EAAiDzR,KACnD,CACA,MAAM0S,EAAQrQ,EAAAA,QAAQC,eAAewQ,EAAQC,GAAG1J,SAChD,IAAKqJ,EACH,MAAM,IAAIza,EAAAA,cACR,oCAAoC6a,EAAQC,GAAG1J,kGAEnD,IACEoI,EAAeiB,EAA2C1S,KACtD0S,EACA,IAAKA,CACX,CAAE,MAAO9a,GACP,MAAM,IAAIK,EAAAA,cACR,kCAAkC6a,EAAQC,GAAG1J,YAAYzR,IAE7D,CACF,CACAqZ,GAA4B6B,EAAQC,GAAG1J,QAAvC4H,CAAgDQ,EAClD,CAGA,GAFA/b,EAAIqP,KAAK,2CAELrW,EAAQukB,eACV,UACQvkB,EAAQukB,gBAChB,CAAE,MAAOrb,GACP,MAAM,IAAIK,EAAAA,cAAc,qCAAqCL,EAC/D,CAEJ,CAEA,OAAOrC,KAAKyF,YAAYiX,MAC1B,CAEA,2BAAMiB,GACJ,MAAMxd,EAAMoc,GAAgBpc,IAAIE,IAAIL,KAAK2d,uBACnCC,EACJ5d,KAAKwc,UAAUpiB,IAASyE,GAC1B,IAAK,MAAMmO,KAAW4Q,EACpB,IACM5Q,IACF7M,EAAIqP,KAAK,iBAAiBxC,EAAQvV,kBAC5BuV,EAAQ6Q,WAElB,CAAE,MAAOxb,GACPlC,EAAIgG,MAAM,iCAAkC9D,EAC9C,CACF,UACQqE,EAAAA,QAAQmX,UAChB,CAAE,MAAOxb,GACPlC,EAAIgG,MAAM,8BAA+B9D,EAC3C,CACF,GApIWga,EAAAA,gBAAeE,GAAA3b,EAAAA,WAAA,CAF3Bkd,WACAlJ,EAAAA,OAAO,CAAA,GAoBH9T,EAAAA,QAAA,EAAAE,SAAOpC,6CAEoBmf,eArBnB1B,mBC5BN,MAAM2B,GAA8Bhf,OACzC,+CCWWif,EAAAA,iBAAgBC,GAAtB,cAA+BzX,GAGpC,WAAAzN,CACE2N,EACqCsV,GAErCrV,MAAMD,EAAeuX,GAAiBhiB,MACtC8D,KAAK4d,SAAW3B,EAASzkB,IAAKsc,GAAahH,UAAgB1S,IAAI0Z,GACjE,CAGA,MAAAqK,GACE,MAAM/B,EAAShc,EAAAA,QAAQC,IAAI6d,GAAiBhiB,MAEtCkiB,EAAU,IAAIC,aAA0BC,IAC5C,MAAMC,GACJ,KAAKC,KAAKC,SAAShnB,SAAS,IAAI6M,MAAM,EAAG,IAAKoa,cAEhDtC,EAAO5M,KACL,0BAA0B+O,gBAAyBve,KAAK2G,cAAc9E,QAExE,MAAM8c,EAAK,IAAA,MAAK,WAAA3lB,GACdgH,KAAAue,WAAaA,CAaf,CAZE,OAAAK,IAAW1kB,GAIT,OAHAkiB,EAAO1b,MACL,gBAAgBV,KAAKue,qCAEhBM,QAAQC,UAAU9W,KAAK,KAC5B,MAAMxL,ECvCZ,CAAiCtC,IACrC,MAAO6kB,EAAajY,EAAWiL,EAAIK,GAAWlY,EA6B9C,MAAO,CA3BW6kB,GAAa7iB,MAAQ6iB,EA2BpBjY,EAAWiL,EAzBJ9a,MAAMC,QAAQkb,GACpCA,EAAQ5a,IAAK6K,IACX,IACE,MAA2B,mBAAhBA,EAAE2c,UAAiC3c,EAAE2c,YAK5B,iBAAN3c,EAAiBA,EAAI2D,KAAKC,UAAU5D,EACpD,CAAE,MAAO4c,GAEP,MACF,IAEF7M,GAAwC,mBAAtBA,EAAQ4M,UACxB5M,EAAQ4M,YACW,iBAAZ5M,EACLA,EACApM,KAAKC,UAAUmM,GAQzB,EDQyB8M,CAAuBhlB,GACpCokB,EAASpe,KAAK,CAAEnH,KAAM,UAAWyD,SACjC4f,EAAO1b,MACL,gBAAgBV,KAAKue,sCAG3B,GAGFnC,EAAO5b,QACL,wBAAwB+d,YAAqBve,KAAK4d,SAAS7lB,qBAE7D,IAAK,MAAMiV,KAAWhN,KAAK4d,SAAU,CACnC,MAAMuB,EAAcnS,GAAShU,aAAakD,MAAQ,iBAClD,IACEkgB,EAAO1b,MACL,wBAAwB6d,gBAAyBY,KAEnDnS,EAAQoS,QAAQT,EAClB,CAAE,MAAOtc,GACP+Z,EAAO1b,MACL,+BAA+B6d,gBAAyBY,MAAgB9c,GAAGqM,SAAWrM,KAExF+Z,EAAOjW,MAAM9D,EACf,CACF,CAEA,MAAO,KACL+Z,EAAO1b,MAAM,4BAA4B6d,GAEzC,IAAK,MAAMvR,KAAWhN,KAAK4d,SAAU,CACnC,MAAMuB,EAAcnS,GAAShU,aAAakD,MAAQ,iBAClD,IACEkgB,EAAO1b,MACL,0BAA0B6d,kBAA2BY,KAEvDnS,EAAQqS,UAAUV,EACpB,CAAE,MAAOtc,GACP+Z,EAAO1b,MACL,qCAAqC6d,gBAAyBY,MAAgB9c,GAAGqM,SAAWrM,KAE9F+Z,EAAOjW,MAAM9D,EACf,CACF,KAKEid,EAAaC,EAAAA,SADW,MACqB7b,KACjDC,EAAAA,IAAI,KACFyY,EAAO1b,MAAM,uBAEflJ,EAAAA,IACE,KAAA,CACEuB,KAAM,YACNyD,KAAM,CACJgjB,IAAI,IAAItH,MAAOC,mBAMvB,OAAOsH,EAAAA,MAAMrB,EAASkB,EACxB,CAIA,cAAAI,CAA+BpgB,GAC7B,MAAM8c,EAAShc,EAAAA,QAAQC,IAAI6d,GAAiBhiB,MAE5C,OAAO,IAAImiB,EAAAA,WAA0BC,IACnC,MAAMK,EAAK,IAAA,MACT,OAAAC,IAAW1kB,GACT,OAAO2kB,QAAQC,UAAU9W,KAAK,KAC5BsW,EAASpe,KAAK,CAAE1D,KAAMtC,KAE1B,GAGF,IACE,IAAK,MAAM8S,KAAWhN,KAAK4d,SACzB5Q,EAAQoS,QAAQT,EAEpB,CAAE,MAAOtc,GACPic,EAASnY,MAAM,6BAA4B9D,EAAEqM,SAAWrM,GAC1D,CAEA,MAAO,KACL,IACE,IAAK,MAAM2K,KAAWhN,KAAK4d,SACzB5Q,EAAQqS,UAAUV,EAEtB,CAAE,MAAOtc,GACP+Z,EAAOjW,MAAM9D,EACf,IAGN,GAlHAzB,EAAAA,WAAA,CADC+e,mHACStB,EAAAA,aAgFTJ,mBAAA7Y,UAAA,SAAA,MAIDxE,EAAAA,WAAA,CAFC+e,EAAAA,IAAI,WAEW7e,EAAAA,QAAA,EAAAkE,QAAM,2HAAyBqZ,EAAAA,aA8B9CJ,mBAAA7Y,UAAA,iBAAA,MA9HU6Y,EAAAA,iBAAgBC,GAAAtd,EAAAA,WAAA,CAD5BwS,eAMItS,EAAAA,QAAA,EAAAE,SAAOgd,uCADOpc,EAAAA,oBAAmB3K,SAJzBgnB,oBELA2B,EAAAA,kBAAiBC,GAAvB,MACL,kBAAOC,CACL7D,EACAvhB,EAAe,UAEf,MAAO,CACLga,OAAQmL,GACRpL,YAAa,CAACwJ,EAAAA,kBACd8B,QAAS,CACPC,EAAAA,aAAaC,SAAS,CACpB,CACEvlB,KAAMA,EAAK8T,QAAQ,MAAO,IAC1BkG,OAAQmL,OAIdlL,UAAW,CACT/S,EAAAA,oBACA,CACEuS,QAAS6J,GACTvB,SAAUR,GAAY,KAI9B,GAxBW2D,EAAAA,kBAAiBC,GAAAjf,EAAAA,WAAA,CAD7BgU,EAAAA,OAAO,CAAA,IACKgL,qBCIAM,EAAAA,YAAWC,GAAjB,MACL,yBAAaC,CACXjnB,GAEA,MAAMknB,gBAAEA,EAAe7L,aAAEA,GAAiBrb,EAIpC8iB,SADEI,kBAAgBW,gBAAgB7jB,IACd3B,IAAKwV,GAAYA,EAAQ8G,SAE7CiM,EAOU,CAAC1D,EAAAA,gBAAgBhI,QAAQlb,IAoBzC,OAlBIknB,GACFpE,EAAS5W,QAASyO,IAChBiM,EAAQngB,KACNiU,GAAaC,GAASO,QAAQP,EAAS,CACrCU,oBAMJrb,EAAQmnB,iBAAiBC,sBAC3BR,EAAQngB,KACNggB,EAAAA,kBAAkBE,YAChB3mB,EAAQmnB,gBAAgBE,kBAAoBvE,IAK3C,CACLvH,OAAQyL,GACRJ,QAASA,EAEb,GAzCWG,EAAAA,YAAWC,GAAAvf,EAAAA,WAAA,CADvBgU,EAAAA,OAAO,CAAA,IACKsL,eCCb,MAAM9D,GAAShc,EAAAA,QAAQC,IAAI,qCAkBdogB,EAAAA,qBAAoBC,GAA1B,MACL,cAAOrM,GACL,MAAO,CACLK,OAAQgM,GAEZ,CAEA,oBAAaC,CACX7Y,EACA8V,GAEA,MAAMzd,EAAMic,GAAO/b,IAAIL,KAAK2gB,SAE5B,IAAK/C,GAAgC,IAApBA,EAAS7lB,OACxB,MAAM,IAAI2K,EAAAA,cACR,6FAMJ,OAFAvC,EAAIqP,KAAK,mCAAmCxJ,KAAKC,UAAU6B,IAEpD8Y,EAAAA,iBAAiBC,gBAAgBjD,EAAU9V,GAAU,CAAA,EAC9D,GAtBW2Y,EAAAA,qBAAoBC,GAAA9f,EAAAA,WAAA,CAXhCkd,WACAlJ,SAAO,CACND,UAAW,CACT,CACER,QAAS,qBACTC,WAAawJ,GAA4CA,EACzDkD,OAAQ,CAACjiB,KAGbke,QAAS,CAAC,yBAEC0D,wBChBAM,EAAAA,qCAAoCC,GAA1C,cAAmDva,GACxD,WAAAzN,CAAY2N,GACVC,MAAMD,EAAeqa,GAAqC9kB,KAC5D,CAGA,gBAAM+kB,CAAwBlP,GAC5B,MAAMtV,IAAEA,UAAeuD,KAAK6G,OAAO,GAAI,cAAc,IAAOxG,IAC1DL,KAAKihB,YAEDvY,EAAOL,EAAAA,WAAWC,SACtB4Y,uBAEIvU,QAAgBjE,EAAKmJ,KAAKE,EAAItV,GAEpC,OADAkQ,EAAQwU,QAAS,EACVzY,EAAKyJ,OAAOxF,EAASlQ,EAC9B,CAGA,gBAAM2kB,CAAwBrP,GAC5B,MAAMtV,IAAEA,UAAeuD,KAAK6G,OAAO,GAAI,cAAc,IAAOxG,IAC1DL,KAAKohB,YAED1Y,EAAOL,EAAAA,WAAWC,SACtB4Y,uBAEIvU,QAAgBjE,EAAKmJ,KAAKE,EAAItV,GAEpC,OADAkQ,EAAQwU,QAAS,EACVzY,EAAKyJ,OAAOxF,EAASlQ,EAC9B,GAvBMmE,EAAAA,WAAA,CADL3F,EAAAA,KAAK,kBACY6F,EAAAA,QAAA,EAAA4R,QAAM,kIAUvBqO,uCAAA3b,UAAA,aAAA,MAGKxE,EAAAA,WAAA,CADL3F,EAAAA,KAAK,kBACY6F,EAAAA,QAAA,EAAA4R,QAAM,kIAUvBqO,uCAAA3b,UAAA,aAAA,MA7BU2b,EAAAA,qCAAoCC,GAAApgB,EAAAA,WAAA,CADhDwS,EAAAA,WAAW,2DAEiBxR,yBADhBmf,wCAiCAM,EAAAA,8BAA6BC,GAAnC,cAA4C7a,GACjD,WAAAzN,CAAY2N,GACVC,MAAMD,EAAe2a,GAA8BplB,KACrD,CAGA,YAAMqlB,CAAoBxP,GACxB,MAAMtV,IAAEA,UAAeuD,KAAK6G,OAAO,GAAI,UAAU,IAAOxG,IAAIL,KAAKuhB,QAC3DC,EAAYnZ,EAAAA,WAAWC,SAG3BmZ,sBACIC,EAAerZ,EAAAA,WAAWC,SAG9BqZ,mBACF,IACE,IAAIC,EACJ,IACEA,QAAcJ,EAAU3P,KAAKE,EAAItV,EACnC,CAAE,MAAO0J,GACP,MAAM0b,QAAeL,EAClBM,SACAC,MAAMP,EAAUQ,KAAK,MAAMC,GAAGlQ,IAC9B5T,MAAM,GACN+jB,QAAQzlB,GACX,IAAKolB,EAAO9pB,OAAQ,MAAMoO,EAC1Byb,EAAQC,EAAO,EACjB,CACA,IAAIM,EAAoB,GACxB,IACEA,QAAmBC,EAAAA,oBACjB,IACEV,EACGI,SACAC,MAAML,EAAaM,KAAK,WAAWC,GAAGL,EAAM7P,KAC5CsQ,QAAQ,YAAa3d,EAAAA,eAAeuL,KACpCqS,OAAO,KAAM5d,EAAAA,eAAeuL,KAC5BsS,SAAS,IAAK9lB,GACnB,IACAA,EAEJ,CAAE,MACA,IACE0lB,QAAmBT,EAChBI,SACAC,MAAML,EAAaM,KAAK,WAAWC,GAAGL,EAAM7P,KAC5CmQ,QAAQzlB,EACb,CAAE,MACA0lB,EAAa,EACf,CACF,CACA,MAAMK,EAAM,IAAItK,KAEhB,IAAK,MAAMuK,KAAYN,EACrBM,EAAS3K,OAAS4K,EAAAA,cAAcC,QAChCF,EAASG,SAAW,EACpBH,EAASI,cAAgBL,EACzBC,EAASK,cAAgB,KACzBL,EAASM,kBAAerpB,EACxB+oB,EAASO,oBAAiBtpB,EAC1B+oB,EAASQ,kBAAevpB,EAS1B,GANAkoB,EAAM9J,OAAS4K,EAAAA,cAAcC,QAC7Bf,EAAMsB,oBAAsB,EAC5BtB,EAAMuB,iBAAmB,EACzBvB,EAAMiB,cAAgBL,EACtBZ,EAAMwB,UAAYZ,EAEdL,EAAWpqB,OACb,UACQ2pB,EAAazP,UACjBkQ,EACA1lB,EAAI+L,SAAS,CAAE6a,uBAAuB,IAE1C,CAAE,MAEF,CAEF,OAAO7B,EAAUrP,OAAOyP,EAAOnlB,EACjC,CAAE,MAAO0J,GACP,MAAMA,CACR,CACF,GA9EMvF,EAAAA,WAAA,CADL3F,EAAAA,KAAK,cACQ6F,EAAAA,QAAA,EAAA4R,QAAM,kIA8EnB2O,gCAAAjc,UAAA,SAAA,MApFUic,EAAAA,8BAA6BC,GAAA1gB,EAAAA,WAAA,CADzCwS,EAAAA,WAAW,oDAEiBxR,yBADhByf,iCCnBAiC,EAAAA,mBAAN,4BACUtjB,KAAAsc,QAAUlc,EAAAA,QAAQC,IAAIkjB,GAAoB,CAKjD,cAAWpjB,GACjB,OAAOH,KAAKsc,OACd,CAEA,4BAAaU,CACX7jB,GAEA,MAAMgH,EAAMH,KAAKG,IAAIE,IAAIL,KAAKgd,iBAC9B,IAAKhd,KAAKmI,aAAc,CACtB,MAAM8U,EAAU9jB,EAAQ+jB,KAAK1lB,IAAI,EAAE2lB,EAAOjI,KAAQhb,KAC/BA,EAAKkjB,MAEf,CAACD,EAAOjI,KAAQhb,GADD,CAACijB,EAAOjI,IAGhClV,KAAKmI,aAAe,IAAIkV,2BAClBrd,KAAKmI,aAAamV,KAAKL,GAE7B,MAAMM,EAAUvd,KAAKmI,aAAauU,OAClC,IAAK,IAAIc,EAAI,EAAGA,EAAID,EAAQxlB,OAAQylB,IAAK,CACvC,MAAMtU,EAAS4D,EAAAA,QAAgB0W,SAAY1W,EAAAA,QAAgB0W,OAAS,CAAA,GAC9DC,EAAc,CAClBlG,EAAQC,GAAG1J,QACXyJ,EAAQC,GAAGvQ,MACX,qBACA,iBACA,yBACA3V,OAAQC,KAA6BA,GACvC,IAAK,MAAMI,KAAO8rB,EAChBva,EAAMvR,GAAO4lB,EAAQC,GAGvB,MAAMC,EAAItkB,EAAQ+jB,KAAKM,GAEvB,IAAItB,EADmBuB,EAAEnZ,MAAM,EAAGmZ,EAAE1lB,QACHqlB,MACjC,IACGlB,IACCA,EAAmCzR,KACrC,CACA,MAAM0S,EAAQrQ,EAAAA,QAAQC,eAAewQ,EAAQC,GAAG1J,SAChD,IAAKqJ,EACH,MAAM,IAAIza,EAAAA,cACR,oCAAoC6a,EAAQC,GAAG1J,YAEnD,IACEoI,EAAeiB,EAAc1S,KACzB0S,EACA,IAAKA,CACX,CAAE,MAAO9a,GACP,MAAM,IAAIK,EAAAA,cACR,kCAAkC6a,EAAQC,GAAG1J,YAAYzR,IAE7D,CACF,CACAqZ,GAA4B6B,EAAQC,GAAG1J,QAAvC4H,CAAgDQ,GAEhDwH,EAAAA,KAAKnG,EAAQC,GAAG1J,QAAhB4P,CAAyBxC,EAAAA,qBACzBwC,EAAAA,KAAKnG,EAAQC,GAAG1J,QAAhB4P,CAAyBjC,EAAAA,oBACzBiC,EAAAA,KAAKnG,EAAQC,GAAG1J,QAAhB4P,CAAyB/B,EAAAA,gBAC3B,CAGA,GAFAxhB,EAAIqP,KAAK,2CAELrW,EAAQukB,eACV,UACQvkB,EAAQukB,gBAChB,CAAE,MAAOrb,GACP,MAAM,IAAIK,EAAAA,cAAc,wCAAwCL,EAClE,CAEJ,CAEA,OAAOrC,KAAKmI,aAAauU,MAC3B,CAEA,oBAAarI,CACXlb,GAEA,OAAO6G,KAAKogB,aAAajnB,EAC3B,CAEA,yBAAainB,CACXjnB,SAEuB6G,KAAKgd,gBAAgB7jB,GAC5C,MAAMsb,EAAc,CAClB3G,GAAoBiB,OAAOmS,uBAC3BpT,GAAoBiB,OAAO0S,sBAC3B3T,GAAoBiB,OAAO4S,mBAC3BZ,EAAAA,qCACAM,EAAAA,+BAGF,MAAO,CACL3M,OAAQ6O,GACR9O,cACAsL,QAAS,CACPC,EAAAA,aAAaC,SAAS,CACpB,CACEvlB,MAAOvB,EAAQwqB,gBAAkB,YAAYnV,QAAQ,MAAO,IAC5DkG,OAAQ6O,OAId5O,UAAW,CACT/S,EAAAA,oBACAmB,EAAAA,qBACA,CACEoR,QAASpV,EACTqV,WAAY,IAAMjb,EAAQ8J,UAAUzL,IAAKmlB,GAAM,IAAIA,IAAQ,IAE7D,CACExI,QAASyI,EAAAA,gBACTE,SAAUnB,EAAAA,iCAGdoB,QAAS,CAACnb,EAAAA,oBAAqBmB,wBAEnC,GA1HWugB,EAAAA,mBAAkBC,GAAA3iB,EAAAA,WAAA,CAD9BgU,EAAAA,OAAO,CAAA,IACK0O,sBA6HN,MAAMM,GAAsBN,EAAAA,mBC1GtBO,GAAU,cAkBVC,GAAe,cAE5B3pB,EAAAA,SAAS4pB,qBAAoB,GAC7B5pB,EAAAA,SAAS6pB,gBAAgBF,GAAcD,IACvC1pB,EAAAA,SAAS4pB,qBAAoB,kqCrCQ3BhqB,EACAU,EACAC,KAEA,MAAMC,EAGF,CACFC,IAAK,CAAC6O,EAAAA,sBAAsBmI,SAAU9W,OACtCC,KAAM,CAAC0O,EAAAA,sBAAsB+H,WAAYvW,QACzCC,IAAK,CAACuO,EAAAA,sBAAsBC,WAAYtO,OACxCC,MAAO,CAACoO,EAAAA,sBAAsBC,WAAYpO,SAC1CC,OAAQ,CAACkO,EAAAA,sBAAsB8I,WAAY/W,YAGtCC,EAAQC,GAAuBf,EAAWF,GACjD,OAAOX,EAAmBC,EAAkB0B,GACxCE,EAAAA,MAAMC,EAAAA,sBACND,QAAMD,EAAoBhB,GAChC,WqCzCsB,qLhClDe,gMGqB/B,cAAoCwG,EACxC,WAAAlI,GACE4N,OACF,CAES,eAAMnG,CAAUhE,EAAuB8C,GAC9C,MAAMlC,EAAMZ,EAAIE,eAAeC,aAEzBwE,EAAWpB,KAAKmB,aAAa9D,GACnC,IAAK+D,EAAU,MAAM,IAAII,EAAAA,mBAAmB,mBAE5C,MAAMyiB,EAAQ9pB,EAAAA,SAASC,IAAIqH,EAAAA,MAAMrH,IAAImF,GAAYmC,EAAAA,gBAAgBC,WAEjE,IAAKsiB,EAAMrsB,SAASwJ,GAClB,MAAM,IAAII,EAAAA,mBAAmB,iBAAiBJ,GAEhD,OAAO6iB,CACT,uD6BoB0B,4FCoDlB,iBAAW7H,GAKjB,OAJKpc,KAAKsc,UAERtc,KAAKsc,QAAU,IAAI4H,EAAAA,OAAO,kBAErBlkB,KAAKsc,OACd,CAaA,iBAAO6H,CAAWpK,GAEhB,OADA/Z,KAAK+Z,IAAMA,EACJ/Z,IACT,CAcA,mBAAOokB,CAAaC,GAGlB,OAFArkB,KAAKsc,QAAU+H,GAAgB,IAAIH,EAAAA,OAAO,iBAC1ClkB,KAAK+Z,IAAIuK,UAAUtkB,KAAKsc,SACjBtc,IACT,CAgBA,iBAAOukB,CACLC,EAA0B,GAC1BC,EAAyB,CAAC,MAAO,OAAQ,MAAO,WAEhD,MAAMC,EACQ,MAAZF,EAAkB,IAAMA,EAAQhtB,IAAKmtB,GAAMA,EAAE/b,OAAOgc,eAEhDC,EAA2B,CAC/BC,OAAQ,CAACA,EAAQC,IAEVD,EAGgB,MAAnBJ,GACCztB,MAAMC,QAAQwtB,IACbA,EAAe9sB,SAASktB,EAAOF,eAE1BG,EAAS,MAAM,QAGxBA,EAAS,IAAIjO,GAAU,UAAUgO,kBAVbC,EAAS,MAAM,GAYrCC,aAAa,EACbC,QAASR,EAAahW,KAAK,MAI7B,OADAzO,KAAK+Z,IAAIwK,WAAWM,GACb7kB,IACT,CAcA,gBAAOklB,CAAU/rB,GACf,IAEE,MAAMgsB,EAASC,QAAQ,UACvBplB,KAAK+Z,IAAIsL,IAAIF,EAAOhsB,IACpB6G,KAAKoc,OAAOjc,IAAI,0CAElB,CAAE,MAAOkC,GACPrC,KAAKoc,OAAOkJ,KAAK,6CACnB,CAEA,OAAOtlB,IACT,CAcA,mBAAOib,CAAa9hB,GAelB,OAdgB,IAAI2gB,GAAe9Z,KAAK+Z,IAAK,CAC3CX,MAAOjgB,EAAQigB,MACfjd,YAAahD,EAAQgD,YACrBoe,QAASphB,EAAQohB,QACjB7f,KAAMvB,EAAQuB,MAAQ,MACtB6e,qBAAsBpgB,EAAQogB,uBAAwB,EACtDI,WAAYxgB,EAAQwgB,WACpByB,gBAAiBjiB,EAAQ+f,YACzBmC,mBAAoBliB,EAAQ2f,eAC5BJ,cAAevf,EAAQuf,cACvBuB,gBAAiB9gB,EAAQ8gB,gBACzBC,gBAAiB/gB,EAAQ+gB,kBAEnBe,eACDjb,IACT,CAcA,qBAAOulB,IAAkBC,GAEvB,OADIA,EAAMztB,OAAS,GAAGiI,KAAK+Z,IAAIwL,kBAAkBC,GAC1CxlB,IACT,CAaA,uBAAOylB,IAAoBC,GAIzB,OAHA1lB,KAAK+Z,IAAI0L,oBACHC,EAAQ3tB,OAAS,EAAI2tB,EAAU,CAAC,IAAIvO,EAAAA,uBAEnCnX,IACT,CAcA,4BAAO2lB,IAAyBC,GAG9B,OAFIA,EAAa7tB,OAAS,GACxBiI,KAAK+Z,IAAI4L,yBAAyBC,GAC7B5lB,IACT,CAgBA,kBAAa6lB,CACXC,EAAeznB,OAAO0nB,QAAQvO,IAAIwO,OAAS,IAC3C3O,OAA2B3d,EAC3ByG,GAAe,GAEfH,KAAK+Z,IAAIoE,OAAO2H,EAAMzO,GAAarP,KAAKnC,UACtC,GAAI1F,EAAK,CACP,MAAMmD,QAAYtD,KAAK+Z,IAAIkM,SAC3BjmB,KAAKoc,OAAOjc,IAAI,2CAAiCmD,EACnD,GAEJ,oGC1UO4iB,EAAAA,WAAW,IAAI/O,EAAAA,4CAIfzX,EAAAA,gBAAgB6D,EAAAA,4MCLIjE,IAC5B,MAAM6mB,EAAI1kB,EAAAA,MAAMrH,IAAIkF,GACpB,IAAK6mB,EACJ,MAAM,IAAIzjB,EAAAA,cAAc,iCAAiCpD,GAE1D,OADa+I,EAAAA,WAAWC,SAAS6d,EAElC,mDP6COtgB,UAA+C,0BGoG/CA,UAAuD"}
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/request/DecafResponseInterceptor.ts","../src/decaf-model/utils.ts","../src/controllers.ts","../src/factory/openapi/DtoBuilder.ts","../src/overrides/overrides.ts","../src/overrides/ModelBuilderExtensions.ts","../src/decaf-model/FromModelController.ts","../src/decaf-model/DecafModelModule.ts","../src/decoration.ts","../src/factory/errors/cors.ts","../src/factory/errors/throttling.ts","../src/factory/exceptions/DecafErrorFilter.ts","../src/factory/openapi/constants.ts","../src/factory/openapi/SwaggerCustomUI.ts","../src/factory/openapi/SwaggerBuilder.ts","../src/interceptors/context.ts","../src/interceptors/DecafRequestHandlerInterceptor.ts","../src/core-module.ts","../src/events-module/constant.ts","../src/events-module/EventsController.ts","../src/events-module/utils.ts","../src/events-module/DecafStreamModule.ts","../src/module.ts","../src/migrations/migration-module.ts","../src/webhooks/controllers.ts","../src/webhooks/DecafWebhookModule.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,null,null,null,null,null,null],"names":["DECORATORS_PREFIX","DECORATORS","API_OPERATION","API_RESPONSE","API_PRODUCES","API_CONSUMES","API_TAGS","API_CALLBACKS","API_PARAMETERS","API_HEADERS","API_MODEL_PROPERTIES","API_MODEL_PROPERTIES_ARRAY","API_SECURITY","API_EXCLUDE_ENDPOINT","API_EXCLUDE_CONTROLLER","API_EXTRA_MODELS","API_EXTENSION","API_SCHEMA","API_DEFAULT_GETTER","API_LINK","isUndefined","obj","getEnumValues","enumType","Array","isArray","numericValues","Object","values","filter","value","map","toString","keys","key","includes","getEnumType","isString","length","createPropertyDecorator","metakey","metadata","overrideExisting","target","propertyKey","properties","Reflect","getMetadata","defineMetadata","existingMetadata","newMetadata","pickBy","negate","metadataToSave","type","constructor","required","ApiProperty","options","createApiPropertyDecorator","input","isArrayFlag","isInputArray","getTypeIsArrayTuple","opts","undefined","enum","enumValues","items","isOperationBlocked","ModelConstructor","op","handler","args","Metadata","get","OperationKeys","REFLECT","BLOCK","ApiOperationFromModel","verb","path","httpToCrud","GET","READ","Get","POST","CREATE","Post","PUT","UPDATE","Put","PATCH","Patch","DELETE","Delete","crudOp","HttpMethodDecorator","apply","ApiExcludeEndpoint","ApiParamsFromModel","props","decorators","p","ApiParamDec","name","description","String","applyDecorators","DecafBody","createParamDecorator","data","ctx","body","switchToHttp","getRequest","controller","getClass","ModelConstr","class","InternalServerErrorException","item","OrderedParams","order","req","original","params","orderList","ordered","k","raw","valuesInOrder","keysInOrder","DecafParams","DecafQuery","_","parsed","query","limit","n","Number","isNaN","offset","bookmark","HttpVerbToDecorator","decorator","Error","DECAF_MODULE_OPTIONS","DECAF_ADAPTER_ID","DECAF_ROUTE","DECAF_HANDLERS","Symbol","DECAF_ADAPTER_OPTIONS","AUTH_HANDLER","AUTH_META_KEY","DECAF_CONTEXT_KEY","Auth","model","resource","decs","ApiBearerAuth","UseInterceptors","AuthInterceptor","push","SetMetadata","reflector","authHandler","this","intercept","next","log","Logging","for","modelName","getHandler","verbose","authorize","debug","handle","__decorate","Injectable","__param","Optional","Inject","Reflector","DecafAuthHandler","parseRequest","userRole","headers","authorization","split","AuthorizationError","Model","PersistenceKeys","AUTH_ROLE","DecafRequestContext","uuid","UUID","instance","generate","request","put","record","overrides","e","_ctx","accumulate","assign","applyCtx","InternalError","scope","Scope","REQUEST","Request","DecafHandlerExecutor","DecafHandlerExecutor_1","handlers","context","exec","res","method","url","DecafResponseInterceptor","response","getResponse","pipe","tap","toResponse","apiParamSpec","getApiDecorators","methodName","routePath","httpVerb","includeQueryParams","NestHttpRouteDec","apiPathParams","startsWith","slice","extractPathParams","swaggerQueryParams","ApiQuery","OrderDirection","ApiParam","ApiOperation","summary","ApiOkResponse","ApiNoContentResponse","Query","applyApiDecorators","descriptor","proto","prototype","forEach","d","index","resolvePersistenceMethod","persistence","ModelService","statement","createRouteHandler","async","pathParams","queryParams","JSON","stringify","direction","error","defineRouteMethod","ControllerClass","defineProperty","writable","getOwnPropertyDescriptor","DecafController","Service","clientContext","super","logCtx","operation","allowCreate","ip","result","ContextualLoggedClass","call","bindLoggerToRequest","self","applyRequestIp","ctxArgs","forwarded","parseIpHeader","socket","connection","remoteAddress","extractRequestIp","config","decorateLoggerWithIp","then","isPromise","DecafModelController","_persistence","getService","Repository","forModel","certs","override","contextual","repo","segment","trim","Boolean","dtoCache","Map","DtoFor","TransactionOperationKeys","cache","has","set","WeakMap","getDtoCache","cached","isUpdateOp","BulkCrudOperationKeys","UPDATE_ALL","DynamicDTO","toPascalCase","pkProp","pk","pkPropsMetadata","pkProps","pkDesignType","pkTypeIsNumeric","BigInt","pkIsGenerated","generated","generatedBySequence","isPropertyGeneratedAcrossInheritance","allProps","from","Set","relations","scalarProps","prop","validation","getValidationAcrossInheritance","isRequired","ValidationKeys","REQUIRED","typeHint","getTypeAcrossInheritance","apiOptions","designType","enumerable","configurable","relation","relationMeta","relationType","meta","validationFor","LIST","relationDto","addRelationUpdate","addRelation","DtoClass","extraModels","dtoRef","pkTypeName","pkType","getPkOpenApiType","oneOfItems","$ref","oneOf","current","Function","getPrototypeOf","Adapter","transformerFor","adapter","alias","bind","flavoursToTransform","Context","pending","header","ModelBuilder","decorateClass","_classDecorators","__hasClassDecoratorSupport","originalBuild","build","decorated","FromModelController","getPersistence","ModelClazz","createQueryRoutesFromRepository","prefix","QUERY","queryMethods","routeMethods","QueryController","entries","replace","join","message","httpMethod","objValues","fields","f","create","tableName","toKebabCase","modelClazzName","getPK","apiProperties","getRouteParametersFromModel","BaseController","DynamicModelController","info","listBy","details","PreparedStatementKeys","LIST_BY","paginateBy","PAGE_BY","find","FIND","ASC","page","PAGE","ref","findOneBy","FIND_ONE_BY","findBy","FIND_BY","toOverrides","STATEMENT","pathDirection","a","parseInt","resolvedDirection","COUNT_OF","MAX_OF","MIN_OF","AVG_OF","SUM_OF","DISTINCT_OF","GROUP_OF","createAll","resp","CREATE_ALL","created","readAll","ids","READ_ALL","normalizedIds","read","routeParams","id","ValidationError","updateAll","updated","update","payload","parse","deleteAll","DELETE_ALL","delete","del","Param","ApiNotFoundResponse","ApiBody","schema","getSchemaPath","ApiCreatedResponse","ApiBadRequestResponse","ApiUnprocessableEntityResponse","Response","passthrough","Controller","ApiTags","ApiExtraModels","composed","DBKeys","COMPOSED","composedKeys","uniqueKeys","separator","getModuleFor","flavour","DecafModelModule","DecafModelModule_1","createModelServices","models","provide","useFactory","forRoot","trackedModels","modelServices","autoServices","controllers","module","providers","Module","Decoration","InjectablesKeys","INJECTABLE","extend","category","cfg","DefaultInjectablesConfig","singleton","DEFAULT","durable","INJECT","MAX","max","maximum","MIN","min","minimum","MAX_LENGTH","maxLength","MIN_LENGTH","minLength","TYPE","DATE","format","ENUM","PATTERN","pat","pattern","source","COLUMN","DecorationKeys","DESCRIPTION","AUTH","CorsError","ForbiddenError","msg","ToManyRequestsError","BaseError","DecafExceptionFilter","exception","host","isProduction","LoggedEnvironment","env","statusCode","NotFoundException","UnsupportedError","NotAcceptableException","getStatus","status","code","json","timestamp","Date","toISOString","Catch","SWAGGER_UI_CONSTANTS","auth","scheme","bearerFormat","in","topbarBgColor","SwaggerCustomUI","customCSS","css","topbarIconPath","b64","getCustomOptions","favicon","faviconPath","customSiteTitle","title","customCss","swaggerOptions","persistAuthorization","file","img","filePath","assetsPath","readFileSync","encoding","SwaggerBuilder","app","createDocument","openApiJsonPath","openApiYamlPath","DocumentBuilder","setTitle","setDescription","setVersion","version","addBearerAuth","SwaggerModule","registerOpenApiRoute","contentType","bodyFactory","httpAdapter","getHttpAdapter","_req","reply","setupSwagger","document","swaggerUI","faviconFilePath","topbarIconFilePath","setup","jsonDocumentUrl","yamlDocumentUrl","YAML","requestToContextTransformer","DecafRequestHandlerInterceptor","DecafRequestHandlerInterceptor_1","requestContext","executor","contextualize","flags","flavours","transformer","DefaultAdapterFlags","logger","DecafCoreModule","_logger","DecafCoreModule_1","moduleRef","useValue","client","H","APP_INTERCEPTOR","useExisting","useClass","exports","bootPersistence","trimmed","conf","contr","pop","PersistenceService","boot","clients","i","c","initialization","onApplicationShutdown","adapters","shutdown","Global","ModuleRef","LISTENING_ADAPTERS_FLAVOURS","EventsController","EventsController_1","listen","events$","Observable","observer","observerId","Math","random","toUpperCase","cb","refresh","Promise","resolve","modelConstr","serialize","err","normalizeEventResponse","adapterName","observe","unObserve","heartbeat$","interval","ts","merge","listenForModel","Sse","DecafStreamModule","DecafStreamModule_1","forFlavours","imports","RouterModule","register","DecafModule","DecafModule_1","forRootAsync","autoControllers","observerOptions","enableObserverEvents","observerFlavours","DecafMigrationModule","DecafMigrationModule_1","migrate","MigrationService","migrateAdapters","inject","WebhookSubscriptionActionsController","WebhookSubscriptionActionsController_1","deactivate","WebhookSubscription","active","reactivate","WebhookEventActionsController","WebhookEventActionsController_1","replay","eventRepo","WebhookEventRecord","deliveryRepo","WebhookDelivery","event","events","select","where","attr","eq","execute","deliveries","collectPagedResults","orderBy","thenBy","paginate","now","delivery","WebhookStatus","PENDING","attempts","nextAttemptAt","lastAttemptAt","errorMessage","responseStatus","responseBody","deliveriesSucceeded","deliveriesFailed","updatedAt","applyUpdateValidation","DecafWebhookModule","DecafWebhookModule_1","_cache","webhookKeys","uses","webhookApiPath","DecafWebhooksModule","VERSION","PACKAGE_NAME","allowReregistration","registerLibrary","roles","Logger","initialize","enableLogger","customLogger","useLogger","enableCors","origins","allowMethods","allowedOrigins","o","toLowerCase","corsOptions","origin","callback","credentials","methods","useHelmet","helmet","require","use","warn","useGlobalPipes","pipes","useGlobalFilters","filters","useGlobalInterceptors","interceptors","start","port","process","PORT","getUrl","UseFilters","m"],"mappings":"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"}
package/dist/for-nest.js CHANGED
@@ -1,2 +1,2 @@
1
- import{apply as e,Metadata as t,Decoration as r,DecorationKeys as o,metadata as s,uses as i}from"@decaf-ts/decoration";import{InjectablesKeys as n,DefaultInjectablesConfig as a}from"@decaf-ts/injectable-decorators";import{Delete as c,Patch as p,Put as d,Post as l,Get as u,applyDecorators as h,createParamDecorator as f,InternalServerErrorException as g,Injectable as m,Optional as y,Inject as b,UseInterceptors as v,SetMetadata as w,Scope as A,Query as E,Param as P,Response as R,Controller as T,Module as O,Catch as x,NotFoundException as S,NotAcceptableException as $,UseFilters as _,Logger as C,Global as k,Sse as I}from"@nestjs/common";import{Model as N,ValidationKeys as F,ModelBuilder as D}from"@decaf-ts/decorator-validation";import{AuthorizationError as q,PersistenceKeys as M,UUID as L,OrderDirection as j,ModelService as U,Service as B,Repository as G,ContextualLoggedClass as z,TransactionOperationKeys as H,Adapter as Y,Context as J,PreparedStatementKeys as X,ForbiddenError as W,UnsupportedError as Q,DefaultAdapterFlags as V,PersistenceService as K}from"@decaf-ts/core";import{isArray as Z,isString as ee,pickBy as te,negate as re}from"lodash";import{ApiExcludeEndpoint as oe,ApiParam as se,ApiBearerAuth as ie,ApiQuery as ne,ApiOperation as ae,ApiOkResponse as ce,ApiNoContentResponse as pe,ApiNotFoundResponse as de,ApiBody as le,getSchemaPath as ue,ApiCreatedResponse as he,ApiBadRequestResponse as fe,ApiUnprocessableEntityResponse as ge,ApiTags as me,ApiExtraModels as ye,DocumentBuilder as be,SwaggerModule as ve}from"@nestjs/swagger";import{OperationKeys as we,BulkCrudOperationKeys as Ae,InternalError as Ee,DBKeys as Pe,ValidationError as Re,BaseError as Te}from"@decaf-ts/db-decorators";import{__decorate as Oe,__param as xe,__metadata as Se}from"tslib";import{Reflector as $e,REQUEST as _e,ModuleRef as Ce,APP_INTERCEPTOR as ke,RouterModule as Ie}from"@nestjs/core";import{Logging as Ne,toPascalCase as Fe,toKebabCase as De,LoggedEnvironment as qe}from"@decaf-ts/logging";import{tap as Me,Observable as Le,interval as je,merge as Ue}from"rxjs";import{readFileSync as Be}from"fs";import*as Ge from"path";import ze from"yaml";import{tap as He,map as Ye}from"rxjs/operators";import{MigrationService as Je}from"@decaf-ts/core/migrations";import{WebhookSubscription as Xe,WebhookEventRecord as We,WebhookDelivery as Qe,collectPagedResults as Ve,WebhookStatus as Ke}from"@decaf-ts/for-http/server";export{WebhookDelivery,WebhookDeliveryService,WebhookEventRecord,WebhookPublisherService,WebhookSignatureMiddleware,WebhookStatus,WebhookSubscription,WebhookSubscriptionService,computeNextAttempt,signWebhookPayload,verifyWebhookSignature}from"@decaf-ts/for-http/server";const Ze="swagger",et={API_OPERATION:Ze+"/apiOperation",API_RESPONSE:Ze+"/apiResponse",API_PRODUCES:Ze+"/apiProduces",API_CONSUMES:Ze+"/apiConsumes",API_TAGS:Ze+"/apiUseTags",API_CALLBACKS:Ze+"/apiCallbacks",API_PARAMETERS:Ze+"/apiParameters",API_HEADERS:Ze+"/apiHeaders",API_MODEL_PROPERTIES:Ze+"/apiModelProperties",API_MODEL_PROPERTIES_ARRAY:Ze+"/apiModelPropertiesArray",API_SECURITY:Ze+"/apiSecurity",API_EXCLUDE_ENDPOINT:Ze+"/apiExcludeEndpoint",API_EXCLUDE_CONTROLLER:Ze+"/apiExcludeController",API_EXTRA_MODELS:Ze+"/apiExtraModels",API_EXTENSION:Ze+"/apiExtension",API_SCHEMA:Ze+"/apiSchema",API_DEFAULT_GETTER:Ze+"/apiDefaultGetter",API_LINK:Ze+"/apiLink"};function tt(e,t){if(!e)return[e,t];if(t)return[e,t];const r=Z(e);return[r?e[0]:e,r]}const rt=e=>void 0===e;function ot(e){if("function"==typeof e)return ot(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 st(e){return e.filter(ee).length>0?"string":"number"}function it(e,t,r=!0){return(o,s)=>{const i=Reflect.getMetadata(et.API_MODEL_PROPERTIES_ARRAY,o)||[],n=":"+s;i.includes(n)||Reflect.defineMetadata(et.API_MODEL_PROPERTIES_ARRAY,[...i,":"+s],o);const a=Reflect.getMetadata(e,o,s);if(a){const i=te(t,re(rt)),n=r?{...a,...i}:{...i,...a};Reflect.defineMetadata(e,n,o,s)}else{const r=o?.constructor?._OPENAPI_METADATA_FACTORY?.()[s]?.type??Reflect.getMetadata("design:type",o,s);Reflect.defineMetadata(e,{type:r,required:!1,...te(t,re(rt))},o,s)}}}function nt(e={}){return at(e)}function at(e={},t=!0){const[r,o]=tt(e.type,e.isArray);if((s=e={...e,type:r,isArray:o}).isArray&&"enum"in s&&void 0!==s.enum){e.type="array";const t=ot(e.enum);e.items={type:st(t),enum:t},delete e.enum}else if("enum"in e&&void 0!==e.enum){const t=ot(e.enum);e.enum=t,e.type=st(t)}var s;return Array.isArray(e.type)&&(e.type="array",e.items={type:"array",items:{type:e.type[0]}}),it(et.API_MODEL_PROPERTIES,e,t)}function ct(e,r){const{handler:o,args:s}=t.get(e,we.REFLECT+we.BLOCK)||{};return!!o&&(o(...s,r)??!1)}function pt(t,r,o){const s={GET:[we.READ,u],POST:[we.CREATE,l],PUT:[we.UPDATE,d],PATCH:[we.UPDATE,p],DELETE:[we.DELETE,c]},[i,n]=s[r];return ct(t,i)?e(oe()):e(n(o))}function dt(t,r,o){const s={GET:[Ae.READ_ALL,u],POST:[Ae.CREATE_ALL,l],PUT:[Ae.UPDATE_ALL,d],PATCH:[Ae.UPDATE_ALL,p],DELETE:[Ae.DELETE_ALL,c]},[i,n]=s[r];return ct(t,i)?e(oe()):e(n(o))}function lt(e=[]){const t=e.map(e=>se({name:e.name,description:e.description??"Path parameter: "+e.name,required:e.required??!0,type:e.type??String}));return h(...t)}const ut=f((e,t)=>{const r=t.switchToHttp().getRequest().body,o=t.getClass(),s=o.class;if(!s)throw new g(`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}),ht=f((e,t)=>{const r=t.switchToHttp().getRequest(),o=r?.params??{},s=e??Object.keys(o),i=s.map(e=>o[e]);return{raw:o,valuesInOrder:i,keysInOrder:s}});function ft(e=[]){const t=e.map(e=>e.name);return ht(t)}const gt=f((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 mt(e){const t={GET:u,POST:l,PUT:d,PATCH:p,DELETE:c}[e];if(!t)throw Error(`Unsupported HTTP verb "${e}". No NestJS decorator mapping was found.`);return t}const yt="DecafModuleOptions",bt="DecafAdapter",vt="DecafTaskService",wt="DecafRoute",At=Symbol("DecafHandlers"),Et=Symbol("DecafAdapterForOptions"),Pt=Symbol("AUTH_HANDLER"),Rt="auth:meta",Tt=Symbol("decaf:context");let Ot=class{constructor(e,t){this.reflector=e,this.authHandler=t}async intercept(e,t){const r=Ne.for(this).for(this.intercept),o=this.reflector.get(Rt,e.getHandler())??this.reflector.get(Rt,e.getClass());return r.verbose("Intercepted request"+(o?" for "+o:"")),this.authHandler?await this.authHandler.authorize(e,o):r.debug("No auth handler/model"),t.handle()}};function xt(e){const t=e?"string"==typeof e?e:e.name:void 0,r=[ie(),v(Ot)];return t&&r.push(w(Rt,t)),h(...r)}Ot=Oe([m(),xe(1,y()),xe(1,b(Pt)),Se("design:paramtypes",[$e,Object])],Ot);class St{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 q("Unauthenticated");if(!t.get(N.get(r),M.AUTH_ROLE).includes(s))throw new q("Missing role: "+s)}}class $t extends St{constructor(){super()}async authorize(e,r){const o=e.switchToHttp().getRequest(),s=this.parseRequest(o);if(!s)throw new q("Unauthenticated");const i=t.get(N.get(r),M.AUTH_ROLE);if(!i.includes(s))throw new q("Missing role: "+s);return i}}let _t=class{constructor(e){this.req=e,this.uuid=L.instance.generate()}get request(){return this.req}put(e){let t;try{t=this.ctx.get("overrides")}catch(e){t={}}this._ctx=this.ctx.accumulate({overrides:Object.assign(t,e)})}applyCtx(e){if(this._ctx)throw new Ee("Trying to overwrite context");this._ctx=e}get ctx(){if(!this._ctx)throw new Ee("Context not initialized for request");return this._ctx}};var Ct;_t=Oe([m({scope:A.REQUEST}),xe(0,b(_e)),Se("design:paramtypes",[Request])],_t);let kt=Ct=class{constructor(e,t){this.handlers=e,this.context=t}async exec(e,t){Ne.for(Ct.name).for(this.exec).debug(`CONTEXT ${this.context.uuid} running ${this.handlers.length} handlers for request ${e.method} ${e.url}`);for(const r of this.handlers)await r.handle(this.context,e,t)}};kt=Ct=Oe([m({scope:A.REQUEST}),xe(0,b(At)),Se("design:paramtypes",[Array,_t])],kt);let It=class{constructor(e){this.ctx=e}intercept(e,t){let r=e.switchToHttp().getResponse();return t.handle().pipe(Me(e=>{r=this.ctx.ctx.toResponse(r)}))}};It=Oe([m(),Se("design:paramtypes",[_t])],It);const Nt=e=>({name:e,description:e+" parameter for the query",required:!0,type:String});function Ft(e,t,r,o=!1){const s=mt(r),i=(e=>e.split("/").filter(e=>e.startsWith(":")).map(e=>e.slice(1)))(t).map(Nt),n=[];return"GET"===r&&o&&n.push(ne({name:"direction",required:!1,enum:j,description:"the sort order when applicable"}),ne({name:"limit",required:!1,description:"limit or page size when applicable"}),ne({name:"offset",required:!1,description:"offset or bookmark when applicable"})),{method:[s(t),...i.map(se),...n,ae({summary:`Retrieve records using according to "${e}".`}),ce({description:"Result successfully retrieved."}),pe({description:"No content returned by the method."})],params:[ft(i),E()]}}function Dt(e,t,r,o){const s=e?.prototype??e;o.method.forEach(e=>e(s,t,r)),o.params?.forEach((e,r)=>e(s,t,r))}function qt(e,t,...r){if(e instanceof U)return"function"==typeof e[t]?e[t](...r):e.statement(t,...r);if("function"==typeof e[t])return e[t](...r);throw Error(`Persistence method "${t}" not found on ${e?.constructor?.name}`)}function Mt(e){return async function(t,r){const o=this.log.for(e);try{o.debug(`Invoking persistence method "${e}" given parameters: ${JSON.stringify(t.valuesInOrder)}`);const{direction:s,limit:i,offset:n}=r;return await qt(this.persistence(),e,...t.valuesInOrder,s,i,n)}catch(t){throw o.error(`Custom query "${e}" failed`,t),t}}}function Lt(e,t,r){return Object.defineProperty(e.prototype||e,t,{value:r,writable:!1}),Object.getOwnPropertyDescriptor(e.prototype||e,t)}class jt extends B{constructor(e,t){super(),this.clientContext=e}logCtx(e,t,r=!1,o){const s=this.clientContext.ctx;let i;e=e.filter(e=>void 0!==e),o&&(o.headers||o.ip)&&(i=o,o={});const n=z.logCtx.call(this,t,o||{},r,...e,s);return this.bindLoggerToRequest(n,i)}bindLoggerToRequest(e,t){const r=this;function o(e,t){return e.log=((e,t)=>{const o=(e=>{if(!e)return;const t=e.headers,r=Bt(t?.["x-forwarded-for"])??Bt(t?.["x-real-ip"])??Bt(t?.["X-Forwarded-For"])??Bt(t?.["X-Real-IP"]);if(r)return r;if("string"==typeof e.ip&&e.ip.length)return e.ip;const o=e.socket||e.connection;return o&&"string"==typeof o.remoteAddress&&o.remoteAddress.length?o.remoteAddress:void 0})(t??r.clientContext.request);if(!o)return e;const s={ip:o};return e.for(s)})(e.log,t),e}return(e=>"object"==typeof e&&null!==e&&"function"==typeof e.then)(e)?e.then(e=>o(e,t)):o(e,t)}}class Ut extends jt{persistence(e){if(!this._persistence)try{this._persistence=B.get(this.class)}catch(e){try{this._persistence=U.getService(this.class)}catch(e){this._persistence=G.forModel(this.class)}}const t=this.clientContext.request[Et]||{};return e&&this.clientContext.put(t),e?this._persistence instanceof G?this._persistence.override(t):this._persistence.for(t):this._persistence}constructor(e,t){super(e,t)}logCtx(e,t,r=!1,o){const s=this.clientContext.ctx;let i;o&&(o.headers||o.ip)&&(i=o,o={});try{o=s.get("overrides")}catch(e){}const n=this.persistence(s);let a,c;return n instanceof U?a=n.repo._adapter:n instanceof G?a=n._adapter:n.context&&(a=n),r?a.logCtx(e,t,!0,o).then(e=>this.bindLoggerToRequest(e,i)):(c=a.logCtx(e,t,!1,o),this.bindLoggerToRequest(c,i))}}function Bt(e){if(e)return(Array.isArray(e)?e[0]:e).split(",").map(e=>e.trim()).filter(Boolean)[0]}const Gt=new Map;function zt(e,r){if(!H.includes(e))return r;const o=(e=>(Gt.has(e)||Gt.set(e,new WeakMap),Gt.get(e)))(e),s=o.get(r);if(s)return s;const i=[we.UPDATE,Ae.UPDATE_ALL].includes(e);class n{}o.set(r,n),Object.defineProperty(n,"name",{value:`${Fe(r.name)}${Fe(e)}DTO`});const a=(()=>{try{return N.pk(r)}catch{return}})(),c=a?N.pkProps(r):void 0,p=a?Reflect.getMetadata("design:type",r.prototype,a):void 0,d=p===Number||p===BigInt,l=!!c?.generated||!!a&&(N.generatedBySequence(r,a)||Jt(r,a)||d),u=Array.from(new Set(t.properties(r)||[])),h=new Set(N.relations(r)||[]),f=[];for(const e of u)e&&(h.has(e)||e===a&&!i&&l||e!==a&&Jt(r,e)||f.push(e));for(const e of f){const t=Xt(r,e),o=!!t?.[F.REQUIRED],s=Wt(r,e)??Reflect.getMetadata("design:type",r.prototype,e),i={required:o};s&&(i.type=s),nt(i)(n.prototype,e);const a=Reflect.getMetadata("design:type",r.prototype,e)??s;void 0!==a&&Reflect.defineMetadata("design:type",a,n.prototype,e),Object.defineProperty(n.prototype,e,{value:void 0,writable:!0,enumerable:!0,configurable:!0})}for(const o of h){const s=t.relations(r,o);if(!s)throw new Ee(`Metadata for relation ${o} not found`);let a=s.class;if("function"!=typeof a||a.name||(a=a()),!a||"function"!=typeof a)throw new Ee(`Type for relation ${o} not found`);if(!N.get(a.name))continue;const c=t.validationFor(r,o),p=!!c?.[F.LIST],d=!!c?.[F.REQUIRED],l=zt(e,a);i?Yt(n,o,a,l,p,d):Ht(n,o,l,p,d)}return n}function Ht(e,t,r,o,s){nt({type:r,required:s,isArray:o})(e.prototype,t),Reflect.defineMetadata("design:type",o?Array:r,e.prototype,t),Object.defineProperty(e.prototype,t,{value:void 0,writable:!0,enumerable:!0,configurable:!0})}function Yt(e,t,r,o,s,i){const n=Reflect.getMetadata(et.API_EXTRA_MODELS,e)||[];n.includes(o)||Reflect.defineMetadata(et.API_EXTRA_MODELS,[...n,o],e);const a="#/components/schemas/"+o.name,c=(e=>{try{const t=N.pkProps(e),r=t?.type;return r===Number||r===BigInt?"integer":"string"}catch{return"string"}})(r),p=[{$ref:a},{type:c}];nt(s?{type:"array",required:i,oneOf:p}:{type:Object,required:i,oneOf:p})(e.prototype,t),Reflect.defineMetadata("design:type",s?Array:Object,e.prototype,t),Object.defineProperty(e.prototype,t,{value:void 0,writable:!0,enumerable:!0,configurable:!0})}function Jt(e,t){let r=e;for(;r&&r!==Object&&r!==Function;){if(N.generated(r,t))return!0;r=Object.getPrototypeOf(r)}return!1}function Xt(e,r){let o=e;for(;o&&o!==Object&&o!==Function;){const e=t.validationFor(o,r);if(e)return e;o=Object.getPrototypeOf(o)}}function Wt(e,r){let o=e;for(;o&&o!==Object&&o!==Function;){const e=t.type(o,r);if(e)return e;o=Object.getPrototypeOf(o)}}Y.transformerFor=(e=>{const r="string"==typeof e?e:e.alias;return t.innerGet(Symbol.for("transformers"),r)}).bind(Y),Y.flavoursToTransform=(()=>{const e=t.innerGet(Symbol.for("transformers"));if(e)return Object.keys(e)}).bind(Y),J.prototype.toResponse=function(e){const t=this.pending();return t&&e.header("x-pending-task",JSON.stringify(t)),e};const Qt=D.prototype;if(Qt.decorateClass||(Qt.decorateClass=function(e){return this._classDecorators||(this._classDecorators=[]),this._classDecorators.push(e),this}),Qt.Auth=function(e){return this.decorateClass(xt(e))},!Qt.__hasClassDecoratorSupport){const e=Qt.build;Qt.build=function(){let t=e.call(this);const r=this._classDecorators;if(r?.length)for(const e of r){const r=e(t);r&&(t=r)}return t},Qt.__hasClassDecoratorSupport=!0}class Vt{static{this.log=Ne.for(Vt.name)}static getPersistence(e){try{return B.get(e)}catch(t){try{return U.getService(e)}catch(t){return G.forModel(e)}}}static createQueryRoutesFromRepository(e,r=M.QUERY){const o=Vt.log.for(Vt.createQueryRoutesFromRepository),s=e instanceof U?e.repo:e,i=s.class,n=t.get(s.constructor,t.key(M.QUERY))??{},a=t.get(e.constructor,t.key(wt))??{};class c extends Ut{get class(){throw Error("Method not implemented.")}constructor(e,t){super(e,t)}}for(const[e,t]of Object.entries(a)){const r=[t.path.replace(/^\/+|\/+$/g,"")].filter(e=>e&&e.trim()).join("/"),s=Mt(e);if(!s){const t=`Invalid or missing handler for model ${i.name} on decorated method ${e}`;throw o.error(t),Error(t)}const n=Lt(c,e,s);n&&Dt(c,e,n,Ft(e,r,t.httpMethod))}for(const[e,t]of Object.entries(n)){const o=[r,e,...(t.fields??[]).map(e=>":"+e)].filter(e=>e&&e.trim()).join("/"),s=Lt(c,e,Mt(e));s&&Dt(c,e,s,Ft(e,o,"GET",!0))}return c}static create(e){const t=Vt.log.for(Vt.create),r=N.tableName(e),o=De(r),s=e.name,i=Vt.getPersistence(e),{description:n,getPK:a,apiProperties:c,path:p}=Vt.getRouteParametersFromModel(e);t.debug("Creating controller for model: "+s);const d=Vt.createQueryRoutesFromRepository(i);let l=class extends d{static get class(){return e}get class(){return e}constructor(r){super(r),this.pk=N.pk(e),t.info(`Registering dynamic controller for model: ${this.class.name} route: /${o}`)}async listBy(e,t){const{ctx:r}=(await this.logCtx([],X.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([],X.PAGE_BY,!0)).for(this.paginateBy);return this.persistence(r).paginateBy(e,t.direction,t,r)}async find(e,t){const{ctx:r}=(await this.logCtx([],X.FIND,!0)).for(this.find),o=t.direction??j.ASC;return qt(this.persistence(r),this.find.name,e,o,r)}async page(e,t){const{ctx:r}=(await this.logCtx([],X.PAGE,!0)).for(this.page),{direction:o=j.ASC,limit:s,offset:i,bookmark:n}=t,a={offset:i??1,limit:s??10,bookmark:n};return qt(this.persistence(r),this.page.name,e,o,a,r)}async findOneBy(e,t){const{ctx:r}=(await this.logCtx([],X.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([],X.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([],M.STATEMENT,!0)).for(this.statement),{direction:s,offset:i,limit:n,bookmark:a}=r,c=(t=t.map(e=>("string"==typeof e?parseInt(e):e)||e)).length>1?t[1]:void 0,p=s??c;switch(p&&t.length>1&&(t[1]=p),e){case X.FIND:case X.FIND_BY:break;case X.LIST_BY:t.push(s);break;case X.PAGE:case X.PAGE_BY:t=[t[0],p,{limit:n,offset:i,bookmark:a}];case X.FIND_ONE_BY:case X.COUNT_OF:case X.MAX_OF:case X.MIN_OF:case X.AVG_OF:case X.SUM_OF:case X.DISTINCT_OF:case X.GROUP_OF:}return this.persistence(o).statement(e,...t,o)}async createAll(t,r){const{ctx:o,log:i}=(await this.logCtx([],Ae.CREATE_ALL,!0)).for(this.createAll);let n;i.verbose("creating new "+s);try{n=await this.persistence(o).createAll(t.map(t=>new e(t)),o)}catch(e){throw i.error("Failed to create new "+s,e),e}return i.info(`created new ${s} with id ${n[this.pk]}`),o.toResponse(r),n}async create(e,t){const{ctx:r,log:o}=(await this.logCtx([],we.CREATE,!0)).for(this.create);let i;o.verbose("creating new "+s);try{const t=this.persistence(r);i=await t.create(e,r)}catch(e){throw o.error("Failed to create new "+s,e),e}return o.info(`created new ${s} with id ${i[this.pk]}`),r.toResponse(t),i}async readAll(e){const{ctx:t,log:r}=(await this.logCtx([],Ae.READ_ALL,!0)).for(this.readAll);let o;try{r.debug(`reading ${e.length} ${s}: ${e}`);const i=this.persistence(t);o=await i.readAll(e,t)}catch(t){throw r.error(`Failed to ${s} with id ${e}`,t),t}return r.info(`read ${o.length} ${s}`),o}async read(e){const{ctx:t,log:r}=(await this.logCtx([],we.READ,!0)).for(this.read),o=a(...e.valuesInOrder);if(void 0===o)throw new Re(`No ${this.pk} provided`);let i;try{r.debug(`reading ${s} with ${this.pk} ${o}`);const e=this.persistence(t);i=await e.read(o,t)}catch(e){throw r.error(`Failed to read ${s} with id ${o}`,e),e}return r.info(`read ${s} with id ${i[this.pk]}`),i}async updateAll(e,t){const{ctx:r,log:o}=(await this.logCtx([],Ae.UPDATE_ALL,!0)).for(this.updateAll);let i;try{o.info(`updating ${e.length} ${s}`),i=await this.persistence(r).updateAll(e,r)}catch(e){throw o.error(e),e}return r.toResponse(t),i}async update(t,r,o){const{ctx:i,log:n}=(await this.logCtx([],we.UPDATE,!0)).for(this.update),c=a(...t.valuesInOrder);if(void 0===c)throw new Re(`No ${this.pk} provided`);let p;try{n.info(`updating ${s} with ${this.pk} ${c}`);const t=JSON.parse(JSON.stringify(r)),o=this.persistence(i);p=await o.update(new e({...t,[this.pk]:c}),i)}catch(e){throw n.error(e),e}return i.toResponse(o),p}async deleteAll(e,t){const{ctx:r,log:o}=(await this.logCtx([],Ae.DELETE_ALL,!0)).for(this.deleteAll);let i;try{o.debug(`deleting ${e.length} ${s}: ${e}`),i=await this.persistence(r).deleteAll(e,r)}catch(t){throw o.error(`Failed to delete ${s} with id ${e}`,t),t}return o.info(`deleted ${i.length} ${s}`),r.toResponse(t),i}async delete(e,t){const{ctx:r,log:o}=(await this.logCtx([],we.DELETE,!0)).for(this.delete),i=a(...e.valuesInOrder);if(void 0===i)throw new Re(`No ${this.pk} provided`);let n;try{o.debug(`deleting ${s} with ${this.pk} ${i}`),n=await this.persistence(r).delete(i,r)}catch(e){throw o.error(`Failed to delete ${s} with id ${i}`,e),e}return o.info(`deleted ${s} with id ${i}`),r.toResponse(t),n}};return Oe([pt(e,"GET","listBy/:key"),ae({summary:`Retrieve ${s} records by query.`}),se({name:"key",description:"the model key to sort by"}),ne({name:"direction",required:!0,enum:j}),ce({description:s+" listed successfully."}),xe(0,P("key")),xe(1,gt()),Se("design:type",Function),Se("design:paramtypes",[String,Object]),Se("design:returntype",Promise)],l.prototype,"listBy",null),Oe([pt(e,"GET","paginateBy/:key/:page"),ae({summary:`Retrieve ${s} records by query.`}),se({name:"key",description:"the model key to sort by"}),se({name:"page",description:"the page to retrieve or the bookmark"}),ne({name:"direction",required:!0,enum:j,description:"the sort order"}),ne({name:"limit",required:!0,description:"the page size"}),ne({name:"offset",description:"the bookmark when necessary"}),ce({description:s+" listed paginated."}),xe(0,P("key")),xe(1,gt()),Se("design:type",Function),Se("design:paramtypes",[String,Object]),Se("design:returntype",Promise)],l.prototype,"paginateBy",null),Oe([pt(e,"GET","find/:value"),ae({summary:`Find ${s} records using the default query attributes.`}),se({name:"value",description:"The string to match against the default query attributes"}),ne({name:"direction",required:!1,enum:j,description:"the sort order for the matching results"}),ce({description:s+" records matching the provided prefix."}),xe(0,P("value")),xe(1,gt()),Se("design:type",Function),Se("design:paramtypes",[String,Object]),Se("design:returntype",Promise)],l.prototype,"find",null),Oe([pt(e,"GET","page/:value"),ae({summary:`Page ${s} records using the default query attributes.`}),se({name:"value",description:"The string to match against the default query attributes"}),ne({name:"direction",required:!1,enum:j,description:"the sort order for the paged results"}),ne({name:"limit",required:!1,description:"page size"}),ne({name:"offset",required:!1,description:"page number"}),ne({name:"bookmark",required:!1,description:"bookmark for cursor pagination"}),ce({description:s+" records paged by the provided prefix."}),xe(0,P("value")),xe(1,gt()),Se("design:type",Function),Se("design:paramtypes",[String,Object]),Se("design:returntype",Promise)],l.prototype,"page",null),Oe([pt(e,"GET","findOneBy/:key"),ae({summary:`Retrieve ${s} records by query.`}),se({name:"key",description:"the model key to sort by"}),ce({description:s+" listed found."}),de({description:`No ${s} record matches the provided identifier.`}),xe(0,P("key")),xe(1,P("value")),Se("design:type",Function),Se("design:paramtypes",[String,Object]),Se("design:returntype",Promise)],l.prototype,"findOneBy",null),Oe([pt(e,"GET","findBy/:key/:value"),ae({summary:`Retrieve ${s} records by query.`}),se({name:"key",description:"the model key to compare"}),se({name:"value",description:"the value to match"}),ne({name:"direction",required:!0,enum:j,description:"the sort order when applicable"}),ce({description:s+" listed found."}),de({description:`No ${s} record matches the provided identifier.`}),xe(0,P("key")),xe(1,P("value")),xe(2,gt()),Se("design:type",Function),Se("design:paramtypes",[String,Object,Object]),Se("design:returntype",Promise)],l.prototype,"findBy",null),Oe([pt(e,"GET","statement/:method/*args"),ae({summary:`Executes a prepared statement on ${s}.`}),se({name:"method",description:"the prepared statement to execute"}),se({name:"args",description:"concatenated list of arguments the prepared statement can accept"}),ne({name:"direction",required:!0,enum:j,description:"the sort order when applicable"}),ne({name:"limit",required:!0,description:"limit or page size when applicable"}),ne({name:"offset",required:!0,description:"offset or bookmark when applicable"}),ce({description:s+" listed found."}),de({description:`No ${s} record matches the provided identifier.`}),xe(0,P("method")),xe(1,P("args")),xe(2,gt()),Se("design:type",Function),Se("design:paramtypes",[String,Array,Object]),Se("design:returntype",Promise)],l.prototype,"statement",null),Oe([pt(e,"POST","bulk"),ae({summary:`Create a new ${s}.`}),le({description:"Payload for "+s,schema:{type:"array",items:{$ref:ue(e)}}}),he({description:s+" created successfully.",schema:{type:"array",items:{$ref:ue(e)}}}),fe({description:"Payload validation failed."}),ge({description:"Repository rejected the provided payload."}),xe(0,ut()),xe(1,R({passthrough:!0})),Se("design:type",Function),Se("design:paramtypes",[Array,Object]),Se("design:returntype",Promise)],l.prototype,"createAll",null),Oe([pt(e,"POST"),ae({summary:`Create a new ${s}.`}),le({description:"Payload for "+s,type:zt(we.CREATE,e)}),he({description:s+" created successfully.",schema:{$ref:ue(e)}}),fe({description:"Payload validation failed."}),ge({description:"Repository rejected the provided payload."}),xe(0,ut()),xe(1,R({passthrough:!0})),Se("design:type",Function),Se("design:paramtypes",[Object,Object]),Se("design:returntype",Promise)],l.prototype,"create",null),Oe([pt(e,"GET","bulk"),ae({summary:`Retrieve a ${s} record by id.`}),ne({name:"ids",required:!0,type:"array"}),ce({description:s+" retrieved successfully.",schema:{type:"array",items:{$ref:ue(e)}}}),de({description:`No ${s} record matches the provided identifier.`}),xe(0,E("ids")),Se("design:type",Function),Se("design:paramtypes",[Array]),Se("design:returntype",Promise)],l.prototype,"readAll",null),Oe([pt(e,"GET",p),lt(c),ae({summary:`Retrieve a ${s} record by id.`}),ce({description:s+" retrieved successfully.",schema:{$ref:ue(e)}}),de({description:`No ${s} record matches the provided identifier.`}),xe(0,ft(c)),Se("design:type",Function),Se("design:paramtypes",[Object]),Se("design:returntype",Promise)],l.prototype,"read",null),Oe([pt(e,"PUT","bulk"),lt(c),ae({summary:`Replace an existing ${s} record with a new payload.`}),le({description:"Payload for replace a existing record of "+s,schema:{type:"array",$ref:ue(zt(we.UPDATE,e))}}),ce({description:s+" updated successfully.",schema:{type:"array",items:{$ref:ue(e)}}}),de({description:`No ${s} record matches the provided identifier.`}),fe({description:"Payload validation failed."}),xe(0,ut()),xe(1,R({passthrough:!0})),Se("design:type",Function),Se("design:paramtypes",[Array,Object]),Se("design:returntype",Promise)],l.prototype,"updateAll",null),Oe([pt(e,"PUT",p),lt(c),ae({summary:`Replace an existing ${s} record with a new payload.`}),le({description:"Payload for replace a existing record of "+s,type:zt(we.UPDATE,e)}),ce({description:s+" updated successfully.",schema:{$ref:ue(e)}}),de({description:`No ${s} record matches the provided identifier.`}),fe({description:"Payload validation failed."}),xe(0,ft(c)),xe(1,ut()),xe(2,R({passthrough:!0})),Se("design:type",Function),Se("design:paramtypes",[Object,Object,Object]),Se("design:returntype",Promise)],l.prototype,"update",null),Oe([pt(e,"DELETE","bulk"),lt(c),ae({summary:`Retrieve a ${s} record by id.`}),ne({name:"ids",required:!0,type:"array"}),ce({description:s+" deleted successfully.",schema:{type:"array",items:{$ref:ue(e)}}}),de({description:`No ${s} record matches the provided identifier.`}),xe(0,E("ids")),xe(1,R({passthrough:!0})),Se("design:type",Function),Se("design:paramtypes",[Array,Object]),Se("design:returntype",Promise)],l.prototype,"deleteAll",null),Oe([pt(e,"DELETE",p),lt(c),ae({summary:`Delete a ${s} record by id.`}),ce({description:s+" deleted successfully.",schema:{$ref:ue(e)}}),de({description:`No ${s} record matches the provided identifier.`}),xe(0,ft(c)),xe(1,R({passthrough:!0})),Se("design:type",Function),Se("design:paramtypes",[Object,Object]),Se("design:returntype",Promise)],l.prototype,"delete",null),l=Oe([T(o),me(s),ye(e),xt(e),Se("design:paramtypes",[_t])],l),l}static getRouteParametersFromModel(e){const r=N.pk(e),o=t.get(e,t.key(Pe.COMPOSED,r)),s=o?.args??[],i=Array.isArray(s)&&s.length>0?Array.from(new Set([...s])):Array.from(new Set([r])),n=t.description(e);return{path:":"+i.join("/:"),description:n,apiProperties:i.map(r=>({name:r,description:t.description(e,r),required:!0,type:String})),getPK:(...e)=>o?.separator?e.join(o.separator):e.join("")}}}function Kt(e){var t;let r=class{static{t=this}static{this.log=Ne.for(t.name).for(e)}static createModelServices(e){return e.map(e=>({provide:e.name+"Service",useFactory:()=>U.forModel(e)}))}static forRoot(e,r={}){const o=this.log.for(this.forRoot);o.info("Generating controllers for flavour...");const s=Y.models(e);let i=[];r.autoServices&&(o.info("Auto-services enabled. Initializing service generation."),i=this.createModelServices(s),o.info(`Auto-services completed. ${i.length} services initialized.`));const n=s.map(Vt.create);return o.info(`Generated ${n.length} controllers`),{module:t,controllers:n,providers:[...i]}}};return r=t=Oe([O({})],r),Object.assign(r,"name",{value:"DecafModule"+e}),r}r.for(n.INJECTABLE).extend({decorator:(e,t)=>(t=t||("object"==typeof e?Object.assign(e,a):a),m({scope:t.singleton?A.DEFAULT:A.REQUEST,durable:!t.singleton||void 0}))}).apply(),r.for(n.INJECT).extend({decorator:(e,t)=>(t,r,o)=>b(e||t)(t,r,o)}).apply(),r.for(F.REQUIRED).extend(nt({required:!0})).apply(),r.for(F.MAX).extend({decorator:e=>nt({maximum:e,required:!1})}).apply(),r.for(F.MIN).extend({decorator:e=>nt({minimum:e,required:!1})}).apply(),r.for(F.MAX_LENGTH).extend({decorator:e=>nt({maxLength:e,required:!1})}).apply(),r.for(F.MIN_LENGTH).extend({decorator:e=>nt({minLength:e,required:!1})}).apply(),r.for(F.TYPE).extend({decorator:e=>(t,r)=>("function"!=typeof(e=Array.isArray(e)?e[0]:e)||e.name||(e=e()),nt({type:e,required:!1})(t,r))}).apply(),r.for(F.DATE).extend({decorator:e=>nt({type:String,format:"date-time",required:!1})}).apply(),r.for(F.ENUM).extend({decorator:e=>nt({enum:Array.isArray(e)?e:Object.values(e),required:!1})}).apply(),r.for(F.PATTERN).extend({decorator:e=>nt({pattern:"string"==typeof e?e:e.source,required:!1})}).apply(),r.for(M.COLUMN).extend({decorator:e=>nt({name:e,required:!1})}).apply(),r.for(o.DESCRIPTION).extend({decorator:e=>nt({description:e,required:!1})}).apply(),r.for(M.AUTH).extend({decorator:xt}).apply();class Zt extends W{constructor(e){super(e,Zt.name)}}class er extends Te{constructor(e){super(er.name,e,429)}}let tr=class{catch(e,t){const r=t.switchToHttp(),o=r.getResponse(),s=r.getRequest(),i="production"===qe.env;let n;e instanceof S||e instanceof Q?n=(e=new $(e.message)).getStatus():e instanceof Te||(e=429===e.status?new er(e.message):new Ee(e.message)),o.status(e.code||n).json({status:e.code||n,error:i?e.name:e.message,timestamp:(new Date).toISOString(),path:s.url,method:s.method})}};function rr(){return _(new tr)}function or(){return v(It)}tr=Oe([x()],tr);const sr={path:"docs",auth:{type:"http",scheme:"bearer",bearerFormat:"JWT",name:"Authorization",description:"Enter JWT token",in:"header"},topbarBgColor:"#000000"};class ir{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||sr.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}}}b64(e,t=!1){const r=Ge.join(this.options.assetsPath||"",e),o=Be(r,{encoding:"base64"});return t?"data:image/png;base64,"+o:o}}class nr{constructor(e,t){this.app=e,this.options=t}createDocument(){const e=this.options.path?this.options.description+""+`<br><br><a href="${this.options.openApiJsonPath}">OpenAPI JSON Spec</a> | `+`<a href="${this.options.openApiYamlPath}">OpenAPI YAML Spec</a>`:this.options.description,t=(new be).setTitle(this.options.title).setDescription(e).setVersion(this.options.version||"0.0.1").addBearerAuth(this.options.auth||sr.auth).build();return ve.createDocument(this.app,t,{extraModels:this.options.extraModels||[]})}registerOpenApiRoute(e,t,r){if(!e)return;const o=this.app.getHttpAdapter();e=e.startsWith("/")?e:"/"+e,o.get(e,(e,s)=>{o.reply(s,r(),200,{"Content-Type":t})})}setupSwagger(){const e=this.createDocument(),t=new ir({title:this.options.title,path:this.options.path||sr.path,persistAuthorization:this.options.persistAuthorization??!0,assetsPath:this.options.assetsPath,faviconPath:this.options.faviconFilePath,topbarIconPath:this.options.topbarIconFilePath,topbarBgColor:this.options.topbarBgColor});ve.setup(this.options.path||sr.path,this.app,e,{...t.getCustomOptions(),jsonDocumentUrl:this.options.openApiJsonPath?""+this.options.openApiJsonPath:void 0,yamlDocumentUrl:this.options.openApiYamlPath?""+this.options.openApiYamlPath:void 0}),this.registerOpenApiRoute(this.options.openApiJsonPath,"application/json",()=>e),this.registerOpenApiRoute(this.options.openApiYamlPath,"application/x-yaml",()=>ze.stringify(e))}}class ar{static get logger(){return this._logger||(this._logger=new C("NestBootstrap")),this._logger}static initialize(e){return this.app=e,this}static enableLogger(e){return this._logger=e||new C("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 Zt(`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 nr(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,openApiJsonPath:e.openApiJsonPath,openApiYamlPath:e.openApiYamlPath}).setupSwagger(),this}static useGlobalPipes(...e){return e.length>0&&this.app.useGlobalPipes(...e),this}static useGlobalFilters(...e){return this.app.useGlobalFilters(...e.length>0?e:[new tr]),this}static useGlobalInterceptors(...e){return e.length>0&&this.app.useGlobalInterceptors(...e),this}static async start(e=Number(process.env.PORT)||3e3,t=void 0,r=!0){this.app.listen(e,t).then(async()=>{if(r){const e=await this.app.getUrl();this.logger.log("\ud83d\ude80 Application is running at: "+e)}})}}var cr;let pr=cr=class{constructor(e,t){this.requestContext=e,this.executor=t}async contextualize(e){const t={headers:e.headers,overrides:{}},r=Y.flavoursToTransform();if(r)for(const o of r)try{const r=Y.transformerFor(o),s=await r.from(e);Object.assign(t.overrides,s)}catch(e){throw new Ee("Failed to contextualize request: "+e)}return(new J).accumulate(Object.assign({},V,{logger:Ne.get(),timestamp:new Date},t))}async intercept(e,t){const r=e.switchToHttp().getRequest(),o=e.switchToHttp().getResponse(),s=Ne.for(cr).for(this.intercept);s.debug(`CONTEXT ${this.requestContext.uuid} - request: ${r.method} ${r.url}`);const i=await this.contextualize(r);return s.debug(`CONTEXT ${this.requestContext.uuid} contextualized - request: ${r.method} ${r.url}`),this.requestContext.applyCtx(i),s.debug(`CONTEXT ${this.requestContext.uuid} applied - request: ${r.method} ${r.url}`),await this.executor.exec(r,o),s.debug(`CONTEXT ${this.requestContext.uuid} executors finished - request: ${r.method} ${r.url}`),t.handle()}};pr=cr=Oe([m({scope:A.REQUEST}),Se("design:paramtypes",[_t,kt])],pr);class dr{}function lr(e){return r=>(t.set("transformers",e,r),"function"==typeof r?s("transformers",e)(r):r)}var ur;let hr=class{static{ur=this}static get persistence(){if(!this._persistence)throw new Ee("Persistence service not initialized");return this._persistence}static get log(){return this._logger||(this._logger=Ne.for(ur)),this._logger}constructor(e,t){this.options=e,this.moduleRef=t}static forRoot(e){const t=this.log.for(this.forRoot);return{module:ur,providers:[{provide:yt,useValue:e},{provide:bt,useValue:this.persistence?.client},{provide:At,useFactory:()=>e.handlers?.map(e=>(t.info("Registered request handler: "+e.name),new e))??[]},Ot,{provide:ke,useExisting:Ot},_t,kt,{provide:ke,useClass:pr}],exports:[yt,bt,At,_t,kt]}}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 K,await this._persistence.boot(r);const o=this._persistence.client;for(let t=0;t<o.length;t++){const r=e.conf[t];let s=r.slice(2,r.length).pop();if(!s||!s.from){const e=Y.transformerFor(o[t].flavour);if(!e)throw new Ee(`No transformer found for flavour ${o[t].flavour}. you should either @requestToContextTransformer or provide a transformer in the config`);try{s=e.from?e:new e}catch(e){throw new Ee(`Failed to boot transformer for ${o[t].flavour}: ${e}`)}}lr(o[t].flavour)(s)}if(t.info("persistence layer created successfully!"),e.initialization)try{await e.initialization()}catch(e){throw new Ee("Failed to initialize application: "+e)}}return this.persistence.client}async onApplicationShutdown(){const e=ur.log.for(this.onApplicationShutdown),t=this.moduleRef.get(bt);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)}try{await B.shutdown()}catch(t){e.error("Failed to shutdown services",t)}}};hr=ur=Oe([k(),O({}),xe(0,b(yt)),Se("design:paramtypes",[Object,Ce])],hr);const fr=Symbol("LISTENING_ADAPTERS_FLAVOURS");var gr;let mr=gr=class extends jt{constructor(e,t){super(e,gr.name),this.adapters=t.map(e=>Y.get(e))}listen(){const e=Ne.for(gr.name),t=new Le(t=>{const r=("B-"+Math.random().toString(36).slice(2,8)).toUpperCase();e.info(`Creating SSE observer: ${r} for client ${this.clientContext.uuid}`);const o=new class{constructor(){this.observerId=r}refresh(...r){return e.debug(`SSE observer ${this.observerId} received refresh event`),Promise.resolve().then(()=>{const o=(e=>{const[t,r,o,s]=e;return[t?.name??t,r,o,Array.isArray(s)?s.map(e=>{try{return"function"==typeof e.serialize?e.serialize():"string"==typeof e?e:JSON.stringify(e)}catch(e){return}}):s&&"function"==typeof s.serialize?s.serialize():"string"==typeof s?s:JSON.stringify(s)]})(r);t.next({type:"message",data:o}),e.debug(`SSE observer ${this.observerId} event pushed to client`)})}};e.verbose(`Registering observer ${r} across ${this.adapters.length} adapter(s)`);for(const t of this.adapters){const s=t?.constructor?.name??"UnknownAdapter";try{e.debug(`Registering observer ${r} in adapter ${s}`),t.observe(o)}catch(t){e.debug(`Failed to register observer ${r} in adapter ${s}: ${t?.message||t}`),e.error(t)}}return()=>{e.debug("Cleaning up SSE observer "+r);for(const t of this.adapters){const s=t?.constructor?.name??"UnknownAdapter";try{e.debug(`Unregistering observer ${r} from adapter ${s}`),t.unObserve(o)}catch(t){e.debug(`Failed during cleanup of observer ${r} in adapter ${s}: ${t?.message||t}`),e.error(t)}}}}),r=je(15e3).pipe(He(()=>{e.debug("Sending heartbeat")}),Ye(()=>({type:"heartbeat",data:{ts:(new Date).toISOString()}})));return Ue(t,r)}listenForModel(e){const t=Ne.for(gr.name);return new Le(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 yr;Oe([I(),Se("design:type",Function),Se("design:paramtypes",[]),Se("design:returntype",Le)],mr.prototype,"listen",null),Oe([I("/:model"),xe(0,E("model")),Se("design:type",Function),Se("design:paramtypes",[String]),Se("design:returntype",Le)],mr.prototype,"listenForModel",null),mr=gr=Oe([T(),xe(1,b(fr)),Se("design:paramtypes",[_t,Array])],mr);let br=yr=class{static forFlavours(e,t="events"){return{module:yr,controllers:[mr],imports:[Ie.register([{path:t.replace(/^\//,""),module:yr}])],providers:[_t,{provide:fr,useValue:e??[]}]}}};var vr;br=yr=Oe([O({})],br);let wr=vr=class{static async forRootAsync(e){const{autoControllers:t,autoServices:r}=e,o=(await hr.bootPersistence(e)).map(e=>e.flavour),s=[hr.forRoot(e)];return t&&o.forEach(e=>{s.push(Kt(e).forRoot(e,{autoServices:r}))}),e.observerOptions?.enableObserverEvents&&s.push(br.forFlavours(e.observerOptions.observerFlavours||o)),{module:vr,imports:s}}};async function Ar(){}var Er;wr=vr=Oe([O({})],wr);const Pr=Ne.for("DecafMigrationModule");let Rr=Er=class{static forRoot(){return{module:Er}}static async migrate(e,t){const r=Pr.for(this.migrate);if(!t||0===t.length)throw new Ee("No adapters provided. Make sure DecafCoreModule is configured and adapters are available.");return r.info("Running migrations with config: "+JSON.stringify(e)),Je.migrateAdapters(t,e||{})}};function Tr(e){const t=N.get(e);if(!t)throw new Ee("Failed to find repository for "+e);return G.forModel(t)}var Or,xr;Rr=Er=Oe([k(),O({providers:[{provide:"MIGRATION_ADAPTERS",useFactory:e=>e,inject:[bt]}],exports:["MIGRATION_ADAPTERS"]})],Rr);let Sr=Or=class extends jt{constructor(e){super(e,Or.name)}async deactivate(e){const{ctx:t}=(await this.logCtx([],"deactivate",!0)).for(this.deactivate),r=G.forModel(Xe),o=await r.read(e,t);return o.active=!1,r.update(o,t)}async reactivate(e){const{ctx:t}=(await this.logCtx([],"reactivate",!0)).for(this.reactivate),r=G.forModel(Xe),o=await r.read(e,t);return o.active=!0,r.update(o,t)}};Oe([l(":id/deactivate"),xe(0,P("id")),Se("design:type",Function),Se("design:paramtypes",[String]),Se("design:returntype",Promise)],Sr.prototype,"deactivate",null),Oe([l(":id/reactivate"),xe(0,P("id")),Se("design:type",Function),Se("design:paramtypes",[String]),Se("design:returntype",Promise)],Sr.prototype,"reactivate",null),Sr=Or=Oe([T("webhook-subscriptions"),Se("design:paramtypes",[_t])],Sr);let $r=xr=class extends jt{constructor(e){super(e,xr.name)}async replay(e){const{ctx:t}=(await this.logCtx([],"replay",!0)).for(this.replay),r=G.forModel(We),o=G.forModel(Qe);try{let s;try{s=await r.read(e,t)}catch(o){const i=await r.select().where(r.attr("id").eq(e)).limit(1).execute(t);if(!i.length)throw o;s=i[0]}let i=[];try{i=await Ve(()=>o.select().where(o.attr("eventId").eq(s.id)).orderBy("createdAt",j.ASC).thenBy("id",j.ASC).paginate(250,t),250,t)}catch{try{i=await o.select().where(o.attr("eventId").eq(s.id)).execute(t)}catch{i=[]}}const n=new Date;for(const e of i)e.status=Ke.PENDING,e.attempts=0,e.nextAttemptAt=n,e.lastAttemptAt=null,e.errorMessage=void 0,e.responseStatus=void 0,e.responseBody=void 0;if(s.status=Ke.PENDING,s.deliveriesSucceeded=0,s.deliveriesFailed=0,s.nextAttemptAt=n,s.updatedAt=n,i.length)try{await o.updateAll(i,t.override({applyUpdateValidation:!1}))}catch{}return r.update(s,t)}catch(e){throw e}}};var _r;Oe([l(":id/replay"),xe(0,P("id")),Se("design:type",Function),Se("design:paramtypes",[String]),Se("design:returntype",Promise)],$r.prototype,"replay",null),$r=xr=Oe([T("webhook-events"),Se("design:paramtypes",[_t])],$r);let Cr=class{static{_r=this}static{this._logger=Ne.for(_r)}static get log(){return this._logger}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 K,await this._persistence.boot(r);const o=this._persistence.client;for(let t=0;t<o.length;t++){const r=Y._cache||(Y._cache={}),s=[o[t].flavour,o[t].alias,"webhook_deliveries","webhook_events","webhook_subscriptions"].filter(e=>!!e);for(const e of s)r[e]=o[t];const n=e.conf[t];let a=n.slice(2,n.length).pop();if(!a||!a.from){const e=Y.transformerFor(o[t].flavour);if(!e)throw new Ee(`No transformer found for flavour ${o[t].flavour}.`);try{a=e.from?e:new e}catch(e){throw new Ee(`Failed to boot transformer for ${o[t].flavour}: ${e}`)}}lr(o[t].flavour)(a),i(o[t].flavour)(Xe),i(o[t].flavour)(We),i(o[t].flavour)(Qe)}if(t.info("persistence layer created successfully!"),e.initialization)try{await e.initialization()}catch(e){throw new Ee("Failed to initialize webhook module: "+e)}}return this._persistence.client}static async forRoot(e){return this.forRootAsync(e)}static async forRootAsync(e){await this.bootPersistence(e);const t=[Vt.create(Xe),Vt.create(We),Vt.create(Qe),Sr,$r];return{module:_r,controllers:t,imports:[Ie.register([{path:(e.webhookApiPath||"webhooks").replace(/^\//,""),module:_r}])],providers:[_t,kt,{provide:At,useFactory:()=>e.handlers?.map(e=>new e)??[]},{provide:ke,useClass:pr}],exports:[_t,kt]}}};Cr=_r=Oe([O({})],Cr);const kr=Cr;async function Ir(){}const Nr="##VERSION##",Fr="##COMMIT##",Dr="##FULL_VERSION##",qr="##PACKAGE##";t.allowReregistration(!0),t.registerLibrary(qr,Nr),t.allowReregistration(!1);export{Pt as AUTH_HANDLER,Rt as AUTH_META_KEY,pt as ApiOperationFromModel,lt as ApiParamsFromModel,nt as ApiProperty,xt as Auth,Ot as AuthInterceptor,dt as BulkApiOperationFromModel,Fr as COMMIT,Zt as CorsError,bt as DECAF_ADAPTER_ID,Et as DECAF_ADAPTER_OPTIONS,Tt as DECAF_CONTEXT_KEY,At as DECAF_HANDLERS,yt as DECAF_MODULE_OPTIONS,wt as DECAF_ROUTE,vt as DECAF_TASK_SERVICE_ID,et as DECORATORS,Ze as DECORATORS_PREFIX,St as DecafAuthHandler,ut as DecafBody,jt as DecafController,hr as DecafCoreModule,tr as DecafExceptionFilter,kt as DecafHandlerExecutor,Rr as DecafMigrationModule,Ut as DecafModelController,wr as DecafModule,ft as DecafParams,gt as DecafQuery,_t as DecafRequestContext,pr as DecafRequestHandlerInterceptor,It as DecafResponseInterceptor,$t as DecafRoleAuthHandler,br as DecafStreamModule,Cr as DecafWebhookModule,kr as DecafWebhooksModule,zt as DtoFor,mr as EventsController,Dr as FULL_VERSION,Vt as FromModelController,mt as HttpVerbToDecorator,ar as NestBootstraper,qr as PACKAGE_NAME,dr as RequestToContextTransformer,nr as SwaggerBuilder,rr as UseDecafFilter,or as UseDecafHeaders,Nr as VERSION,$r as WebhookEventActionsController,Sr as WebhookSubscriptionActionsController,at as createApiPropertyDecorator,it as createPropertyDecorator,st as getEnumType,ot as getEnumValues,Kt as getModuleFor,ct as isOperationBlocked,rt as isUndefined,Tr as repoForModel,lr as requestToContextTransformer,Ar as runMigrations,Ir as runWebhooksMigrations};
1
+ import{apply as e,Metadata as t,Decoration as r,DecorationKeys as o,metadata as s,uses as i}from"@decaf-ts/decoration";import{InjectablesKeys as n,DefaultInjectablesConfig as a}from"@decaf-ts/injectable-decorators";import{Delete as c,Patch as p,Put as d,Post as l,Get as u,applyDecorators as h,createParamDecorator as f,InternalServerErrorException as g,Injectable as m,Optional as y,Inject as b,UseInterceptors as v,SetMetadata as w,Scope as A,Query as E,Param as P,Response as R,Controller as T,Module as O,Catch as x,NotFoundException as S,NotAcceptableException as $,UseFilters as _,Logger as C,Global as k,Sse as I}from"@nestjs/common";import{Model as N,ValidationKeys as F,ModelBuilder as D}from"@decaf-ts/decorator-validation";import{AuthorizationError as q,PersistenceKeys as M,UUID as L,OrderDirection as j,ModelService as U,Service as B,Repository as G,ContextualLoggedClass as z,TransactionOperationKeys as H,Adapter as Y,Context as J,PreparedStatementKeys as X,ForbiddenError as W,UnsupportedError as Q,DefaultAdapterFlags as V,PersistenceService as K}from"@decaf-ts/core";import{isArray as Z,isString as ee,pickBy as te,negate as re}from"lodash";import{ApiExcludeEndpoint as oe,ApiParam as se,ApiBearerAuth as ie,ApiQuery as ne,ApiOperation as ae,ApiOkResponse as ce,ApiNoContentResponse as pe,ApiNotFoundResponse as de,ApiBody as le,getSchemaPath as ue,ApiCreatedResponse as he,ApiBadRequestResponse as fe,ApiUnprocessableEntityResponse as ge,ApiTags as me,ApiExtraModels as ye,DocumentBuilder as be,SwaggerModule as ve}from"@nestjs/swagger";import{OperationKeys as we,BulkCrudOperationKeys as Ae,InternalError as Ee,DBKeys as Pe,ValidationError as Re,BaseError as Te}from"@decaf-ts/db-decorators";import{__decorate as Oe,__param as xe,__metadata as Se}from"tslib";import{Reflector as $e,REQUEST as _e,ModuleRef as Ce,APP_INTERCEPTOR as ke,RouterModule as Ie}from"@nestjs/core";import{Logging as Ne,toPascalCase as Fe,toKebabCase as De,LoggedEnvironment as qe}from"@decaf-ts/logging";import{tap as Me,Observable as Le,interval as je,merge as Ue}from"rxjs";import{readFileSync as Be}from"fs";import*as Ge from"path";import ze from"yaml";import{tap as He,map as Ye}from"rxjs/operators";import{MigrationService as Je}from"@decaf-ts/core/migrations";import{WebhookSubscription as Xe,WebhookEventRecord as We,WebhookDelivery as Qe,collectPagedResults as Ve,WebhookStatus as Ke}from"@decaf-ts/for-http/server";export{WebhookDelivery,WebhookDeliveryService,WebhookEventRecord,WebhookPublisherService,WebhookSignatureMiddleware,WebhookStatus,WebhookSubscription,WebhookSubscriptionService,computeNextAttempt,signWebhookPayload,verifyWebhookSignature}from"@decaf-ts/for-http/server";const Ze="swagger",et={API_OPERATION:Ze+"/apiOperation",API_RESPONSE:Ze+"/apiResponse",API_PRODUCES:Ze+"/apiProduces",API_CONSUMES:Ze+"/apiConsumes",API_TAGS:Ze+"/apiUseTags",API_CALLBACKS:Ze+"/apiCallbacks",API_PARAMETERS:Ze+"/apiParameters",API_HEADERS:Ze+"/apiHeaders",API_MODEL_PROPERTIES:Ze+"/apiModelProperties",API_MODEL_PROPERTIES_ARRAY:Ze+"/apiModelPropertiesArray",API_SECURITY:Ze+"/apiSecurity",API_EXCLUDE_ENDPOINT:Ze+"/apiExcludeEndpoint",API_EXCLUDE_CONTROLLER:Ze+"/apiExcludeController",API_EXTRA_MODELS:Ze+"/apiExtraModels",API_EXTENSION:Ze+"/apiExtension",API_SCHEMA:Ze+"/apiSchema",API_DEFAULT_GETTER:Ze+"/apiDefaultGetter",API_LINK:Ze+"/apiLink"};function tt(e,t){if(!e)return[e,t];if(t)return[e,t];const r=Z(e);return[r?e[0]:e,r]}const rt=e=>void 0===e;function ot(e){if("function"==typeof e)return ot(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 st(e){return e.filter(ee).length>0?"string":"number"}function it(e,t,r=!0){return(o,s)=>{const i=Reflect.getMetadata(et.API_MODEL_PROPERTIES_ARRAY,o)||[],n=":"+s;i.includes(n)||Reflect.defineMetadata(et.API_MODEL_PROPERTIES_ARRAY,[...i,":"+s],o);const a=Reflect.getMetadata(e,o,s);if(a){const i=te(t,re(rt)),n=r?{...a,...i}:{...i,...a};Reflect.defineMetadata(e,n,o,s)}else{const r=o?.constructor?._OPENAPI_METADATA_FACTORY?.()[s]?.type??Reflect.getMetadata("design:type",o,s);Reflect.defineMetadata(e,{type:r,required:!1,...te(t,re(rt))},o,s)}}}function nt(e={}){return at(e)}function at(e={},t=!0){const[r,o]=tt(e.type,e.isArray);if((s=e={...e,type:r,isArray:o}).isArray&&"enum"in s&&void 0!==s.enum){e.type="array";const t=ot(e.enum);e.items={type:st(t),enum:t},delete e.enum}else if("enum"in e&&void 0!==e.enum){const t=ot(e.enum);e.enum=t,e.type=st(t)}var s;return Array.isArray(e.type)&&(e.type="array",e.items={type:"array",items:{type:e.type[0]}}),it(et.API_MODEL_PROPERTIES,e,t)}function ct(e,r){const{handler:o,args:s}=t.get(e,we.REFLECT+we.BLOCK)||{};return!!o&&(o(...s,r)??!1)}function pt(t,r,o){const s={GET:[we.READ,u],POST:[we.CREATE,l],PUT:[we.UPDATE,d],PATCH:[we.UPDATE,p],DELETE:[we.DELETE,c]},[i,n]=s[r];return ct(t,i)?e(oe()):e(n(o))}function dt(t,r,o){const s={GET:[Ae.READ_ALL,u],POST:[Ae.CREATE_ALL,l],PUT:[Ae.UPDATE_ALL,d],PATCH:[Ae.UPDATE_ALL,p],DELETE:[Ae.DELETE_ALL,c]},[i,n]=s[r];return ct(t,i)?e(oe()):e(n(o))}function lt(e=[]){const t=e.map(e=>se({name:e.name,description:e.description??"Path parameter: "+e.name,required:e.required??!0,type:e.type??String}));return h(...t)}const ut=f((e,t)=>{const r=t.switchToHttp().getRequest().body,o=t.getClass(),s=o.class;if(!s)throw new g(`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}),ht=f((e,t)=>{const r=t.switchToHttp().getRequest(),o=r?.params??{},s=e??Object.keys(o),i=s.map(e=>o[e]);return{raw:o,valuesInOrder:i,keysInOrder:s}});function ft(e=[]){const t=e.map(e=>e.name);return ht(t)}const gt=f((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 mt(e){const t={GET:u,POST:l,PUT:d,PATCH:p,DELETE:c}[e];if(!t)throw Error(`Unsupported HTTP verb "${e}". No NestJS decorator mapping was found.`);return t}const yt="DecafModuleOptions",bt="DecafAdapter",vt="DecafTaskService",wt="DecafRoute",At=Symbol("DecafHandlers"),Et=Symbol("DecafAdapterForOptions"),Pt=Symbol("AUTH_HANDLER"),Rt="auth:meta",Tt=Symbol("decaf:context");let Ot=class{constructor(e,t){this.reflector=e,this.authHandler=t}async intercept(e,t){const r=Ne.for(this).for(this.intercept),o=this.reflector.get(Rt,e.getHandler())??this.reflector.get(Rt,e.getClass());return r.verbose("Intercepted request"+(o?" for "+o:"")),this.authHandler?await this.authHandler.authorize(e,o):r.debug("No auth handler/model"),t.handle()}};function xt(e){const t=e?"string"==typeof e?e:e.name:void 0,r=[ie(),v(Ot)];return t&&r.push(w(Rt,t)),h(...r)}Ot=Oe([m(),xe(1,y()),xe(1,b(Pt)),Se("design:paramtypes",[$e,Object])],Ot);class St{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 q("Unauthenticated");if(!t.get(N.get(r),M.AUTH_ROLE).includes(s))throw new q("Missing role: "+s)}}class $t extends St{constructor(){super()}async authorize(e,r){const o=e.switchToHttp().getRequest(),s=this.parseRequest(o);if(!s)throw new q("Unauthenticated");const i=t.get(N.get(r),M.AUTH_ROLE);if(!i.includes(s))throw new q("Missing role: "+s);return i}}let _t=class{constructor(e){this.req=e,this.uuid=L.instance.generate()}get request(){return this.req}put(e){let t;try{t=this.ctx.get("overrides")}catch(e){t={}}this._ctx=this.ctx.accumulate({overrides:Object.assign(t,e)})}applyCtx(e){if(this._ctx)throw new Ee("Trying to overwrite context");this._ctx=e}get ctx(){if(!this._ctx)throw new Ee("Context not initialized for request");return this._ctx}};var Ct;_t=Oe([m({scope:A.REQUEST}),xe(0,b(_e)),Se("design:paramtypes",[Request])],_t);let kt=Ct=class{constructor(e,t){this.handlers=e,this.context=t}async exec(e,t){Ne.for(Ct.name).for(this.exec).debug(`CONTEXT ${this.context.uuid} running ${this.handlers.length} handlers for request ${e.method} ${e.url}`);for(const r of this.handlers)await r.handle(this.context,e,t)}};kt=Ct=Oe([m({scope:A.REQUEST}),xe(0,b(At)),Se("design:paramtypes",[Array,_t])],kt);let It=class{constructor(e){this.ctx=e}intercept(e,t){let r=e.switchToHttp().getResponse();return t.handle().pipe(Me(e=>{r=this.ctx.ctx.toResponse(r)}))}};It=Oe([m(),Se("design:paramtypes",[_t])],It);const Nt=e=>({name:e,description:e+" parameter for the query",required:!0,type:String});function Ft(e,t,r,o=!1){const s=mt(r),i=(e=>e.split("/").filter(e=>e.startsWith(":")).map(e=>e.slice(1)))(t).map(Nt),n=[];return"GET"===r&&o&&n.push(ne({name:"direction",required:!1,enum:j,description:"the sort order when applicable"}),ne({name:"limit",required:!1,description:"limit or page size when applicable"}),ne({name:"offset",required:!1,description:"offset or bookmark when applicable"})),{method:[s(t),...i.map(se),...n,ae({summary:`Retrieve records using according to "${e}".`}),ce({description:"Result successfully retrieved."}),pe({description:"No content returned by the method."})],params:[ft(i),E()]}}function Dt(e,t,r,o){const s=e?.prototype??e;o.method.forEach(e=>e(s,t,r)),o.params?.forEach((e,r)=>e(s,t,r))}function qt(e,t,...r){if(e instanceof U)return"function"==typeof e[t]?e[t](...r):e.statement(t,...r);if("function"==typeof e[t])return e[t](...r);throw Error(`Persistence method "${t}" not found on ${e?.constructor?.name}`)}function Mt(e){return async function(t,r){const o=this.log.for(e);try{o.debug(`Invoking persistence method "${e}" given parameters: ${JSON.stringify(t.valuesInOrder)}`);const{direction:s,limit:i,offset:n}=r;return await qt(this.persistence(),e,...t.valuesInOrder,s,i,n)}catch(t){throw o.error(`Custom query "${e}" failed`,t),t}}}function Lt(e,t,r){return Object.defineProperty(e.prototype||e,t,{value:r,writable:!1}),Object.getOwnPropertyDescriptor(e.prototype||e,t)}class jt extends B{constructor(e,t){super(),this.clientContext=e}logCtx(e,t,r=!1,o){const s=this.clientContext.ctx;let i;e=e.filter(e=>void 0!==e),o&&(o.headers||o.ip)&&(i=o,o={});const n=z.logCtx.call(this,t,o||{},r,...e,s);return this.bindLoggerToRequest(n,i)}bindLoggerToRequest(e,t){const r=this;function o(e,t){return e.log=((e,t)=>{const o=(e=>{if(!e)return;const t=e.headers,r=Bt(t?.["x-forwarded-for"])??Bt(t?.["x-real-ip"])??Bt(t?.["X-Forwarded-For"])??Bt(t?.["X-Real-IP"]);if(r)return r;if("string"==typeof e.ip&&e.ip.length)return e.ip;const o=e.socket||e.connection;return o&&"string"==typeof o.remoteAddress&&o.remoteAddress.length?o.remoteAddress:void 0})(t??r.clientContext.request);if(!o)return e;const s={ip:o};return e.for(s)})(e.log,t),e}return(e=>"object"==typeof e&&null!==e&&"function"==typeof e.then)(e)?e.then(e=>o(e,t)):o(e,t)}}class Ut extends jt{persistence(e){if(!this._persistence)try{this._persistence=B.get(this.class)}catch(e){try{this._persistence=U.getService(this.class)}catch(e){this._persistence=G.forModel(this.class)}}const t=this.clientContext.request[Et]||{};return e&&this.clientContext.put(t),e?this._persistence instanceof G?this._persistence.override(t):this._persistence.for(t):this._persistence}constructor(e,t){super(e,t)}logCtx(e,t,r=!1,o){const s=this.clientContext.ctx;let i;o&&(o.headers||o.ip)&&(i=o,o={});try{o=s.get("overrides")}catch(e){}const n=this.persistence(s);let a,c;return n instanceof U?a=n.repo._adapter:n instanceof G?a=n._adapter:n.context&&(a=n),r?a.logCtx(e,t,!0,o).then(e=>this.bindLoggerToRequest(e,i)):(c=a.logCtx(e,t,!1,o),this.bindLoggerToRequest(c,i))}}function Bt(e){if(e)return(Array.isArray(e)?e[0]:e).split(",").map(e=>e.trim()).filter(Boolean)[0]}const Gt=new Map;function zt(e,r){if(!H.includes(e))return r;const o=(e=>(Gt.has(e)||Gt.set(e,new WeakMap),Gt.get(e)))(e),s=o.get(r);if(s)return s;const i=[we.UPDATE,Ae.UPDATE_ALL].includes(e);class n{}o.set(r,n),Object.defineProperty(n,"name",{value:`${Fe(r.name)}${Fe(e)}DTO`});const a=(()=>{try{return N.pk(r)}catch{return}})(),c=a?N.pkProps(r):void 0,p=a?Reflect.getMetadata("design:type",r.prototype,a):void 0,d=p===Number||p===BigInt,l=!!c?.generated||!!a&&(N.generatedBySequence(r,a)||Jt(r,a)||d),u=Array.from(new Set(t.properties(r)||[])),h=new Set(N.relations(r)||[]),f=[];for(const e of u)e&&(h.has(e)||e===a&&!i&&l||e!==a&&Jt(r,e)||f.push(e));for(const e of f){const t=Xt(r,e),o=!!t?.[F.REQUIRED],s=Wt(r,e)??Reflect.getMetadata("design:type",r.prototype,e),i={required:o};s&&(i.type=s),nt(i)(n.prototype,e);const a=Reflect.getMetadata("design:type",r.prototype,e)??s;void 0!==a&&Reflect.defineMetadata("design:type",a,n.prototype,e),Object.defineProperty(n.prototype,e,{value:void 0,writable:!0,enumerable:!0,configurable:!0})}for(const o of h){const s=t.relations(r,o);if(!s)throw new Ee(`Metadata for relation ${o} not found`);let a=s.class;if("function"!=typeof a||a.name||(a=a()),!a||"function"!=typeof a)throw new Ee(`Type for relation ${o} not found`);if(!N.get(a.name))continue;const c=t.validationFor(r,o),p=!!c?.[F.LIST],d=!!c?.[F.REQUIRED],l=zt(e,a);i?Yt(n,o,a,l,p,d):Ht(n,o,l,p,d)}return n}function Ht(e,t,r,o,s){nt({type:r,required:s,isArray:o})(e.prototype,t),Reflect.defineMetadata("design:type",o?Array:r,e.prototype,t),Object.defineProperty(e.prototype,t,{value:void 0,writable:!0,enumerable:!0,configurable:!0})}function Yt(e,t,r,o,s,i){const n=Reflect.getMetadata(et.API_EXTRA_MODELS,e)||[];n.includes(o)||Reflect.defineMetadata(et.API_EXTRA_MODELS,[...n,o],e);const a="#/components/schemas/"+o.name,c=(e=>{try{const t=N.pkProps(e),r=t?.type;return r===Number||r===BigInt?"integer":"string"}catch{return"string"}})(r),p=[{$ref:a},{type:c}];nt(s?{type:"array",required:i,oneOf:p}:{type:Object,required:i,oneOf:p})(e.prototype,t),Reflect.defineMetadata("design:type",s?Array:Object,e.prototype,t),Object.defineProperty(e.prototype,t,{value:void 0,writable:!0,enumerable:!0,configurable:!0})}function Jt(e,t){let r=e;for(;r&&r!==Object&&r!==Function;){if(N.generated(r,t))return!0;r=Object.getPrototypeOf(r)}return!1}function Xt(e,r){let o=e;for(;o&&o!==Object&&o!==Function;){const e=t.validationFor(o,r);if(e)return e;o=Object.getPrototypeOf(o)}}function Wt(e,r){let o=e;for(;o&&o!==Object&&o!==Function;){const e=t.type(o,r);if(e)return e;o=Object.getPrototypeOf(o)}}Y.transformerFor=(e=>{const r="string"==typeof e?e:e.alias;return t.innerGet(Symbol.for("transformers"),r)}).bind(Y),Y.flavoursToTransform=(()=>{const e=t.innerGet(Symbol.for("transformers"));if(e)return Object.keys(e)}).bind(Y),J.prototype.toResponse=function(e){const t=this.pending();return t&&e.header("x-pending-task",JSON.stringify(t)),e};const Qt=D.prototype;if(Qt.decorateClass||(Qt.decorateClass=function(e){return this._classDecorators||(this._classDecorators=[]),this._classDecorators.push(e),this}),Qt.Auth=function(e){return this.decorateClass(xt(e))},!Qt.__hasClassDecoratorSupport){const e=Qt.build;Qt.build=function(){let t=e.call(this);const r=this._classDecorators;if(r?.length)for(const e of r){const r=e(t);r&&(t=r)}return t},Qt.__hasClassDecoratorSupport=!0}class Vt{static{this.log=Ne.for(Vt.name)}static getPersistence(e){try{return B.get(e)}catch(t){try{return U.getService(e)}catch(t){return G.forModel(e)}}}static createQueryRoutesFromRepository(e,r=M.QUERY){const o=Vt.log.for(Vt.createQueryRoutesFromRepository),s=e instanceof U?e.repo:e,i=s.class,n=t.get(s.constructor,t.key(M.QUERY))??{},a=t.get(e.constructor,t.key(wt))??{};class c extends Ut{get class(){throw Error("Method not implemented.")}constructor(e,t){super(e,t)}}for(const[e,t]of Object.entries(a)){const r=[t.path.replace(/^\/+|\/+$/g,"")].filter(e=>e&&e.trim()).join("/"),s=Mt(e);if(!s){const t=`Invalid or missing handler for model ${i.name} on decorated method ${e}`;throw o.error(t),Error(t)}const n=Lt(c,e,s);n&&Dt(c,e,n,Ft(e,r,t.httpMethod))}for(const[e,t]of Object.entries(n)){const o=[r,e,...(t.fields??[]).map(e=>":"+e)].filter(e=>e&&e.trim()).join("/"),s=Lt(c,e,Mt(e));s&&Dt(c,e,s,Ft(e,o,"GET",!0))}return c}static create(e){const t=Vt.log.for(Vt.create),r=N.tableName(e),o=De(r),s=e.name,i=Vt.getPersistence(e),{description:n,getPK:a,apiProperties:c,path:p}=Vt.getRouteParametersFromModel(e);t.debug("Creating controller for model: "+s);const d=Vt.createQueryRoutesFromRepository(i);let l=class extends d{static get class(){return e}get class(){return e}constructor(r){super(r),this.pk=N.pk(e),t.info(`Registering dynamic controller for model: ${this.class.name} route: /${o}`)}async listBy(e,t){const{ctx:r}=(await this.logCtx([],X.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([],X.PAGE_BY,!0)).for(this.paginateBy);return this.persistence(r).paginateBy(e,t.direction,t,r)}async find(e,t){const{ctx:r}=(await this.logCtx([],X.FIND,!0)).for(this.find),o=t.direction??j.ASC;return qt(this.persistence(r),this.find.name,e,o,r)}async page(e,t){const{ctx:r}=(await this.logCtx([],X.PAGE,!0)).for(this.page),{direction:o=j.ASC,limit:s,offset:i,bookmark:n}=t,a={offset:i??1,limit:s??10,bookmark:n};return qt(this.persistence(r),this.page.name,e,o,a,r)}async findOneBy(e,t){const{ctx:r}=(await this.logCtx([],X.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([],X.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([],M.STATEMENT,!0)).for(this.statement),{direction:s,offset:i,limit:n,bookmark:a}=r,c=(t=t.map(e=>("string"==typeof e?parseInt(e):e)||e)).length>1?t[1]:void 0,p=s??c;switch(p&&t.length>1&&(t[1]=p),e){case X.FIND:case X.FIND_BY:break;case X.LIST_BY:t.push(s);break;case X.PAGE:case X.PAGE_BY:t=[t[0],p,{limit:n,offset:i,bookmark:a}];case X.FIND_ONE_BY:case X.COUNT_OF:case X.MAX_OF:case X.MIN_OF:case X.AVG_OF:case X.SUM_OF:case X.DISTINCT_OF:case X.GROUP_OF:}return this.persistence(o).statement(e,...t,o)}async createAll(t,r){const{ctx:o,log:i}=(await this.logCtx([],Ae.CREATE_ALL,!0)).for(this.createAll);let n;i.verbose("creating new "+s);try{n=await this.persistence(o).createAll(t.map(t=>new e(t)),o)}catch(e){throw i.error("Failed to create new "+s,e),e}return i.info(`created new ${s} with id ${n[this.pk]}`),o.toResponse(r),n}async create(e,t){const{ctx:r,log:o}=(await this.logCtx([],we.CREATE,!0)).for(this.create);let i;o.verbose("creating new "+s);try{const t=this.persistence(r);i=await t.create(e,r)}catch(e){throw o.error("Failed to create new "+s,e),e}return o.info(`created new ${s} with id ${i[this.pk]}`),r.toResponse(t),i}async readAll(e){const{ctx:t,log:r}=(await this.logCtx([],Ae.READ_ALL,!0)).for(this.readAll),o=Array.isArray(e)?e:[e];let i;try{r.debug(`reading ${o} ${s}: ${o}`);const e=this.persistence(t);i=await e.readAll(o,t)}catch(e){throw r.error(`Failed to ${s} with id ${o}`,e),e}return r.info(`read ${i.length} ${s}`),i}async read(e){const{ctx:t,log:r}=(await this.logCtx([],we.READ,!0)).for(this.read),o=a(...e.valuesInOrder);if(void 0===o)throw new Re(`No ${this.pk} provided`);let i;try{r.debug(`reading ${s} with ${this.pk} ${o}`);const e=this.persistence(t);i=await e.read(o,t)}catch(e){throw r.error(`Failed to read ${s} with id ${o}`,e),e}return r.info(`read ${s} with id ${i[this.pk]}`),i}async updateAll(e,t){const{ctx:r,log:o}=(await this.logCtx([],Ae.UPDATE_ALL,!0)).for(this.updateAll);let i;try{o.info(`updating ${e.length} ${s}`),i=await this.persistence(r).updateAll(e,r)}catch(e){throw o.error(e),e}return r.toResponse(t),i}async update(t,r,o){const{ctx:i,log:n}=(await this.logCtx([],we.UPDATE,!0)).for(this.update),c=a(...t.valuesInOrder);if(void 0===c)throw new Re(`No ${this.pk} provided`);let p;try{n.info(`updating ${s} with ${this.pk} ${c}`);const t=JSON.parse(JSON.stringify(r)),o=this.persistence(i);p=await o.update(new e({...t,[this.pk]:c}),i)}catch(e){throw n.error(e),e}return i.toResponse(o),p}async deleteAll(e,t){const{ctx:r,log:o}=(await this.logCtx([],Ae.DELETE_ALL,!0)).for(this.deleteAll),i=Array.isArray(e)?e:[e];let n;try{o.debug(`deleting ${i.length} ${s}: ${i}`),n=await this.persistence(r).deleteAll(i,r)}catch(e){throw o.error(`Failed to delete ${s} with id ${i}`,e),e}return o.info(`deleted ${n.length} ${s}`),r.toResponse(t),n}async delete(e,t){const{ctx:r,log:o}=(await this.logCtx([],we.DELETE,!0)).for(this.delete),i=a(...e.valuesInOrder);if(void 0===i)throw new Re(`No ${this.pk} provided`);let n;try{o.debug(`deleting ${s} with ${this.pk} ${i}`),n=await this.persistence(r).delete(i,r)}catch(e){throw o.error(`Failed to delete ${s} with id ${i}`,e),e}return o.info(`deleted ${s} with id ${i}`),r.toResponse(t),n}};return Oe([pt(e,"GET","listBy/:key"),ae({summary:`Retrieve ${s} records by query.`}),se({name:"key",description:"the model key to sort by"}),ne({name:"direction",required:!0,enum:j}),ce({description:s+" listed successfully."}),xe(0,P("key")),xe(1,gt()),Se("design:type",Function),Se("design:paramtypes",[String,Object]),Se("design:returntype",Promise)],l.prototype,"listBy",null),Oe([pt(e,"GET","paginateBy/:key/:page"),ae({summary:`Retrieve ${s} records by query.`}),se({name:"key",description:"the model key to sort by"}),se({name:"page",description:"the page to retrieve or the bookmark"}),ne({name:"direction",required:!0,enum:j,description:"the sort order"}),ne({name:"limit",required:!0,description:"the page size"}),ne({name:"offset",description:"the bookmark when necessary"}),ce({description:s+" listed paginated."}),xe(0,P("key")),xe(1,gt()),Se("design:type",Function),Se("design:paramtypes",[String,Object]),Se("design:returntype",Promise)],l.prototype,"paginateBy",null),Oe([pt(e,"GET","find/:value"),ae({summary:`Find ${s} records using the default query attributes.`}),se({name:"value",description:"The string to match against the default query attributes"}),ne({name:"direction",required:!1,enum:j,description:"the sort order for the matching results"}),ce({description:s+" records matching the provided prefix."}),xe(0,P("value")),xe(1,gt()),Se("design:type",Function),Se("design:paramtypes",[String,Object]),Se("design:returntype",Promise)],l.prototype,"find",null),Oe([pt(e,"GET","page/:value"),ae({summary:`Page ${s} records using the default query attributes.`}),se({name:"value",description:"The string to match against the default query attributes"}),ne({name:"direction",required:!1,enum:j,description:"the sort order for the paged results"}),ne({name:"limit",required:!1,description:"page size"}),ne({name:"offset",required:!1,description:"page number"}),ne({name:"bookmark",required:!1,description:"bookmark for cursor pagination"}),ce({description:s+" records paged by the provided prefix."}),xe(0,P("value")),xe(1,gt()),Se("design:type",Function),Se("design:paramtypes",[String,Object]),Se("design:returntype",Promise)],l.prototype,"page",null),Oe([pt(e,"GET","findOneBy/:key"),ae({summary:`Retrieve ${s} records by query.`}),se({name:"key",description:"the model key to sort by"}),ce({description:s+" listed found."}),de({description:`No ${s} record matches the provided identifier.`}),xe(0,P("key")),xe(1,P("value")),Se("design:type",Function),Se("design:paramtypes",[String,Object]),Se("design:returntype",Promise)],l.prototype,"findOneBy",null),Oe([pt(e,"GET","findBy/:key/:value"),ae({summary:`Retrieve ${s} records by query.`}),se({name:"key",description:"the model key to compare"}),se({name:"value",description:"the value to match"}),ne({name:"direction",required:!0,enum:j,description:"the sort order when applicable"}),ce({description:s+" listed found."}),de({description:`No ${s} record matches the provided identifier.`}),xe(0,P("key")),xe(1,P("value")),xe(2,gt()),Se("design:type",Function),Se("design:paramtypes",[String,Object,Object]),Se("design:returntype",Promise)],l.prototype,"findBy",null),Oe([pt(e,"GET","statement/:method/*args"),ae({summary:`Executes a prepared statement on ${s}.`}),se({name:"method",description:"the prepared statement to execute"}),se({name:"args",description:"concatenated list of arguments the prepared statement can accept"}),ne({name:"direction",required:!0,enum:j,description:"the sort order when applicable"}),ne({name:"limit",required:!0,description:"limit or page size when applicable"}),ne({name:"offset",required:!0,description:"offset or bookmark when applicable"}),ce({description:s+" listed found."}),de({description:`No ${s} record matches the provided identifier.`}),xe(0,P("method")),xe(1,P("args")),xe(2,gt()),Se("design:type",Function),Se("design:paramtypes",[String,Array,Object]),Se("design:returntype",Promise)],l.prototype,"statement",null),Oe([pt(e,"POST","bulk"),ae({summary:`Create a new ${s}.`}),le({description:"Payload for "+s,schema:{type:"array",items:{$ref:ue(e)}}}),he({description:s+" created successfully.",schema:{type:"array",items:{$ref:ue(e)}}}),fe({description:"Payload validation failed."}),ge({description:"Repository rejected the provided payload."}),xe(0,ut()),xe(1,R({passthrough:!0})),Se("design:type",Function),Se("design:paramtypes",[Array,Object]),Se("design:returntype",Promise)],l.prototype,"createAll",null),Oe([pt(e,"POST"),ae({summary:`Create a new ${s}.`}),le({description:"Payload for "+s,type:zt(we.CREATE,e)}),he({description:s+" created successfully.",schema:{$ref:ue(e)}}),fe({description:"Payload validation failed."}),ge({description:"Repository rejected the provided payload."}),xe(0,ut()),xe(1,R({passthrough:!0})),Se("design:type",Function),Se("design:paramtypes",[Object,Object]),Se("design:returntype",Promise)],l.prototype,"create",null),Oe([pt(e,"GET","bulk"),ae({summary:`Retrieve a ${s} record by id.`}),ne({name:"ids",required:!0,type:"array"}),ce({description:s+" retrieved successfully.",schema:{type:"array",items:{$ref:ue(e)}}}),de({description:`No ${s} record matches the provided identifier.`}),xe(0,E("ids")),Se("design:type",Function),Se("design:paramtypes",[Array]),Se("design:returntype",Promise)],l.prototype,"readAll",null),Oe([pt(e,"GET",p),lt(c),ae({summary:`Retrieve a ${s} record by id.`}),ce({description:s+" retrieved successfully.",schema:{$ref:ue(e)}}),de({description:`No ${s} record matches the provided identifier.`}),xe(0,ft(c)),Se("design:type",Function),Se("design:paramtypes",[Object]),Se("design:returntype",Promise)],l.prototype,"read",null),Oe([pt(e,"PUT","bulk"),lt(c),ae({summary:`Replace an existing ${s} record with a new payload.`}),le({description:"Payload for replace a existing record of "+s,schema:{type:"array",$ref:ue(zt(we.UPDATE,e))}}),ce({description:s+" updated successfully.",schema:{type:"array",items:{$ref:ue(e)}}}),de({description:`No ${s} record matches the provided identifier.`}),fe({description:"Payload validation failed."}),xe(0,ut()),xe(1,R({passthrough:!0})),Se("design:type",Function),Se("design:paramtypes",[Array,Object]),Se("design:returntype",Promise)],l.prototype,"updateAll",null),Oe([pt(e,"PUT",p),lt(c),ae({summary:`Replace an existing ${s} record with a new payload.`}),le({description:"Payload for replace a existing record of "+s,type:zt(we.UPDATE,e)}),ce({description:s+" updated successfully.",schema:{$ref:ue(e)}}),de({description:`No ${s} record matches the provided identifier.`}),fe({description:"Payload validation failed."}),xe(0,ft(c)),xe(1,ut()),xe(2,R({passthrough:!0})),Se("design:type",Function),Se("design:paramtypes",[Object,Object,Object]),Se("design:returntype",Promise)],l.prototype,"update",null),Oe([pt(e,"DELETE","bulk"),lt(c),ae({summary:`Retrieve a ${s} record by id.`}),ne({name:"ids",required:!0,type:"array"}),ce({description:s+" deleted successfully.",schema:{type:"array",items:{$ref:ue(e)}}}),de({description:`No ${s} record matches the provided identifier.`}),xe(0,E("ids")),xe(1,R({passthrough:!0})),Se("design:type",Function),Se("design:paramtypes",[Array,Object]),Se("design:returntype",Promise)],l.prototype,"deleteAll",null),Oe([pt(e,"DELETE",p),lt(c),ae({summary:`Delete a ${s} record by id.`}),ce({description:s+" deleted successfully.",schema:{$ref:ue(e)}}),de({description:`No ${s} record matches the provided identifier.`}),xe(0,ft(c)),xe(1,R({passthrough:!0})),Se("design:type",Function),Se("design:paramtypes",[Object,Object]),Se("design:returntype",Promise)],l.prototype,"delete",null),l=Oe([T(o),me(s),ye(e),xt(e),Se("design:paramtypes",[_t])],l),l}static getRouteParametersFromModel(e){const r=N.pk(e),o=t.get(e,t.key(Pe.COMPOSED,r)),s=o?.args??[],i=Array.isArray(s)&&s.length>0?Array.from(new Set([...s])):Array.from(new Set([r])),n=t.description(e);return{path:":"+i.join("/:"),description:n,apiProperties:i.map(r=>({name:r,description:t.description(e,r),required:!0,type:String})),getPK:(...e)=>o?.separator?e.join(o.separator):e.join("")}}}function Kt(e){var t;let r=class{static{t=this}static{this.log=Ne.for(t.name).for(e)}static createModelServices(e){return e.map(e=>({provide:e.name+"Service",useFactory:()=>U.forModel(e)}))}static forRoot(e,r={}){const o=this.log.for(this.forRoot);o.info("Generating controllers for flavour...");const s=Y.models(e);let i=[];r.autoServices&&(o.info("Auto-services enabled. Initializing service generation."),i=this.createModelServices(s),o.info(`Auto-services completed. ${i.length} services initialized.`));const n=s.map(Vt.create);return o.info(`Generated ${n.length} controllers`),{module:t,controllers:n,providers:[...i]}}};return r=t=Oe([O({})],r),Object.assign(r,"name",{value:"DecafModule"+e}),r}r.for(n.INJECTABLE).extend({decorator:(e,t)=>(t=t||("object"==typeof e?Object.assign(e,a):a),m({scope:t.singleton?A.DEFAULT:A.REQUEST,durable:!t.singleton||void 0}))}).apply(),r.for(n.INJECT).extend({decorator:(e,t)=>(t,r,o)=>b(e||t)(t,r,o)}).apply(),r.for(F.REQUIRED).extend(nt({required:!0})).apply(),r.for(F.MAX).extend({decorator:e=>nt({maximum:e,required:!1})}).apply(),r.for(F.MIN).extend({decorator:e=>nt({minimum:e,required:!1})}).apply(),r.for(F.MAX_LENGTH).extend({decorator:e=>nt({maxLength:e,required:!1})}).apply(),r.for(F.MIN_LENGTH).extend({decorator:e=>nt({minLength:e,required:!1})}).apply(),r.for(F.TYPE).extend({decorator:e=>(t,r)=>("function"!=typeof(e=Array.isArray(e)?e[0]:e)||e.name||(e=e()),nt({type:e,required:!1})(t,r))}).apply(),r.for(F.DATE).extend({decorator:e=>nt({type:String,format:"date-time",required:!1})}).apply(),r.for(F.ENUM).extend({decorator:e=>nt({enum:Array.isArray(e)?e:Object.values(e),required:!1})}).apply(),r.for(F.PATTERN).extend({decorator:e=>nt({pattern:"string"==typeof e?e:e.source,required:!1})}).apply(),r.for(M.COLUMN).extend({decorator:e=>nt({name:e,required:!1})}).apply(),r.for(o.DESCRIPTION).extend({decorator:e=>nt({description:e,required:!1})}).apply(),r.for(M.AUTH).extend({decorator:xt}).apply();class Zt extends W{constructor(e){super(e,Zt.name)}}class er extends Te{constructor(e){super(er.name,e,429)}}let tr=class{catch(e,t){const r=t.switchToHttp(),o=r.getResponse(),s=r.getRequest(),i="production"===qe.env;let n;e instanceof S||e instanceof Q?n=(e=new $(e.message)).getStatus():e instanceof Te||(e=429===e.status?new er(e.message):new Ee(e.message)),o.status(e.code||n).json({status:e.code||n,error:i?e.name:e.message,timestamp:(new Date).toISOString(),path:s.url,method:s.method})}};function rr(){return _(new tr)}function or(){return v(It)}tr=Oe([x()],tr);const sr={path:"docs",auth:{type:"http",scheme:"bearer",bearerFormat:"JWT",name:"Authorization",description:"Enter JWT token",in:"header"},topbarBgColor:"#000000"};class ir{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||sr.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}}}b64(e,t=!1){const r=Ge.join(this.options.assetsPath||"",e),o=Be(r,{encoding:"base64"});return t?"data:image/png;base64,"+o:o}}class nr{constructor(e,t){this.app=e,this.options=t}createDocument(){const e=this.options.path?this.options.description+""+`<br><br><a href="${this.options.openApiJsonPath}">OpenAPI JSON Spec</a> | `+`<a href="${this.options.openApiYamlPath}">OpenAPI YAML Spec</a>`:this.options.description,t=(new be).setTitle(this.options.title).setDescription(e).setVersion(this.options.version||"0.0.1").addBearerAuth(this.options.auth||sr.auth).build();return ve.createDocument(this.app,t,{extraModels:this.options.extraModels||[]})}registerOpenApiRoute(e,t,r){if(!e)return;const o=this.app.getHttpAdapter();e=e.startsWith("/")?e:"/"+e,o.get(e,(e,s)=>{o.reply(s,r(),200,{"Content-Type":t})})}setupSwagger(){const e=this.createDocument(),t=new ir({title:this.options.title,path:this.options.path||sr.path,persistAuthorization:this.options.persistAuthorization??!0,assetsPath:this.options.assetsPath,faviconPath:this.options.faviconFilePath,topbarIconPath:this.options.topbarIconFilePath,topbarBgColor:this.options.topbarBgColor});ve.setup(this.options.path||sr.path,this.app,e,{...t.getCustomOptions(),jsonDocumentUrl:this.options.openApiJsonPath?""+this.options.openApiJsonPath:void 0,yamlDocumentUrl:this.options.openApiYamlPath?""+this.options.openApiYamlPath:void 0}),this.registerOpenApiRoute(this.options.openApiJsonPath,"application/json",()=>e),this.registerOpenApiRoute(this.options.openApiYamlPath,"application/x-yaml",()=>ze.stringify(e))}}class ar{static get logger(){return this._logger||(this._logger=new C("NestBootstrap")),this._logger}static initialize(e){return this.app=e,this}static enableLogger(e){return this._logger=e||new C("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 Zt(`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 nr(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,openApiJsonPath:e.openApiJsonPath,openApiYamlPath:e.openApiYamlPath}).setupSwagger(),this}static useGlobalPipes(...e){return e.length>0&&this.app.useGlobalPipes(...e),this}static useGlobalFilters(...e){return this.app.useGlobalFilters(...e.length>0?e:[new tr]),this}static useGlobalInterceptors(...e){return e.length>0&&this.app.useGlobalInterceptors(...e),this}static async start(e=Number(process.env.PORT)||3e3,t=void 0,r=!0){this.app.listen(e,t).then(async()=>{if(r){const e=await this.app.getUrl();this.logger.log("\ud83d\ude80 Application is running at: "+e)}})}}var cr;let pr=cr=class{constructor(e,t){this.requestContext=e,this.executor=t}async contextualize(e){const t={headers:e.headers,overrides:{}},r=Y.flavoursToTransform();if(r)for(const o of r)try{const r=Y.transformerFor(o),s=await r.from(e);Object.assign(t.overrides,s)}catch(e){throw new Ee("Failed to contextualize request: "+e)}return(new J).accumulate(Object.assign({},V,{logger:Ne.get(),timestamp:new Date},t))}async intercept(e,t){const r=e.switchToHttp().getRequest(),o=e.switchToHttp().getResponse(),s=Ne.for(cr).for(this.intercept);s.debug(`CONTEXT ${this.requestContext.uuid} - request: ${r.method} ${r.url}`);const i=await this.contextualize(r);return s.debug(`CONTEXT ${this.requestContext.uuid} contextualized - request: ${r.method} ${r.url}`),this.requestContext.applyCtx(i),s.debug(`CONTEXT ${this.requestContext.uuid} applied - request: ${r.method} ${r.url}`),await this.executor.exec(r,o),s.debug(`CONTEXT ${this.requestContext.uuid} executors finished - request: ${r.method} ${r.url}`),t.handle()}};pr=cr=Oe([m({scope:A.REQUEST}),Se("design:paramtypes",[_t,kt])],pr);class dr{}function lr(e){return r=>(t.set("transformers",e,r),"function"==typeof r?s("transformers",e)(r):r)}var ur;let hr=class{static{ur=this}static get persistence(){if(!this._persistence)throw new Ee("Persistence service not initialized");return this._persistence}static get log(){return this._logger||(this._logger=Ne.for(ur)),this._logger}constructor(e,t){this.options=e,this.moduleRef=t}static forRoot(e){const t=this.log.for(this.forRoot);return{module:ur,providers:[{provide:yt,useValue:e},{provide:bt,useValue:this.persistence?.client},{provide:At,useFactory:()=>e.handlers?.map(e=>(t.info("Registered request handler: "+e.name),new e))??[]},Ot,{provide:ke,useExisting:Ot},_t,kt,{provide:ke,useClass:pr}],exports:[yt,bt,At,_t,kt]}}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 K,await this._persistence.boot(r);const o=this._persistence.client;for(let t=0;t<o.length;t++){const r=e.conf[t];let s=r.slice(2,r.length).pop();if(!s||!s.from){const e=Y.transformerFor(o[t].flavour);if(!e)throw new Ee(`No transformer found for flavour ${o[t].flavour}. you should either @requestToContextTransformer or provide a transformer in the config`);try{s=e.from?e:new e}catch(e){throw new Ee(`Failed to boot transformer for ${o[t].flavour}: ${e}`)}}lr(o[t].flavour)(s)}if(t.info("persistence layer created successfully!"),e.initialization)try{await e.initialization()}catch(e){throw new Ee("Failed to initialize application: "+e)}}return this.persistence.client}async onApplicationShutdown(){const e=ur.log.for(this.onApplicationShutdown),t=this.moduleRef.get(bt);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)}try{await B.shutdown()}catch(t){e.error("Failed to shutdown services",t)}}};hr=ur=Oe([k(),O({}),xe(0,b(yt)),Se("design:paramtypes",[Object,Ce])],hr);const fr=Symbol("LISTENING_ADAPTERS_FLAVOURS");var gr;let mr=gr=class extends jt{constructor(e,t){super(e,gr.name),this.adapters=t.map(e=>Y.get(e))}listen(){const e=Ne.for(gr.name),t=new Le(t=>{const r=("B-"+Math.random().toString(36).slice(2,8)).toUpperCase();e.info(`Creating SSE observer: ${r} for client ${this.clientContext.uuid}`);const o=new class{constructor(){this.observerId=r}refresh(...r){return e.debug(`SSE observer ${this.observerId} received refresh event`),Promise.resolve().then(()=>{const o=(e=>{const[t,r,o,s]=e;return[t?.name??t,r,o,Array.isArray(s)?s.map(e=>{try{return"function"==typeof e.serialize?e.serialize():"string"==typeof e?e:JSON.stringify(e)}catch(e){return}}):s&&"function"==typeof s.serialize?s.serialize():"string"==typeof s?s:JSON.stringify(s)]})(r);t.next({type:"message",data:o}),e.debug(`SSE observer ${this.observerId} event pushed to client`)})}};e.verbose(`Registering observer ${r} across ${this.adapters.length} adapter(s)`);for(const t of this.adapters){const s=t?.constructor?.name??"UnknownAdapter";try{e.debug(`Registering observer ${r} in adapter ${s}`),t.observe(o)}catch(t){e.debug(`Failed to register observer ${r} in adapter ${s}: ${t?.message||t}`),e.error(t)}}return()=>{e.debug("Cleaning up SSE observer "+r);for(const t of this.adapters){const s=t?.constructor?.name??"UnknownAdapter";try{e.debug(`Unregistering observer ${r} from adapter ${s}`),t.unObserve(o)}catch(t){e.debug(`Failed during cleanup of observer ${r} in adapter ${s}: ${t?.message||t}`),e.error(t)}}}}),r=je(15e3).pipe(He(()=>{e.debug("Sending heartbeat")}),Ye(()=>({type:"heartbeat",data:{ts:(new Date).toISOString()}})));return Ue(t,r)}listenForModel(e){const t=Ne.for(gr.name);return new Le(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 yr;Oe([I(),Se("design:type",Function),Se("design:paramtypes",[]),Se("design:returntype",Le)],mr.prototype,"listen",null),Oe([I("/:model"),xe(0,E("model")),Se("design:type",Function),Se("design:paramtypes",[String]),Se("design:returntype",Le)],mr.prototype,"listenForModel",null),mr=gr=Oe([T(),xe(1,b(fr)),Se("design:paramtypes",[_t,Array])],mr);let br=yr=class{static forFlavours(e,t="events"){return{module:yr,controllers:[mr],imports:[Ie.register([{path:t.replace(/^\//,""),module:yr}])],providers:[_t,{provide:fr,useValue:e??[]}]}}};var vr;br=yr=Oe([O({})],br);let wr=vr=class{static async forRootAsync(e){const{autoControllers:t,autoServices:r}=e,o=(await hr.bootPersistence(e)).map(e=>e.flavour),s=[hr.forRoot(e)];return t&&o.forEach(e=>{s.push(Kt(e).forRoot(e,{autoServices:r}))}),e.observerOptions?.enableObserverEvents&&s.push(br.forFlavours(e.observerOptions.observerFlavours||o)),{module:vr,imports:s}}};async function Ar(){}var Er;wr=vr=Oe([O({})],wr);const Pr=Ne.for("DecafMigrationModule");let Rr=Er=class{static forRoot(){return{module:Er}}static async migrate(e,t){const r=Pr.for(this.migrate);if(!t||0===t.length)throw new Ee("No adapters provided. Make sure DecafCoreModule is configured and adapters are available.");return r.info("Running migrations with config: "+JSON.stringify(e)),Je.migrateAdapters(t,e||{})}};function Tr(e){const t=N.get(e);if(!t)throw new Ee("Failed to find repository for "+e);return G.forModel(t)}var Or,xr;Rr=Er=Oe([k(),O({providers:[{provide:"MIGRATION_ADAPTERS",useFactory:e=>e,inject:[bt]}],exports:["MIGRATION_ADAPTERS"]})],Rr);let Sr=Or=class extends jt{constructor(e){super(e,Or.name)}async deactivate(e){const{ctx:t}=(await this.logCtx([],"deactivate",!0)).for(this.deactivate),r=G.forModel(Xe),o=await r.read(e,t);return o.active=!1,r.update(o,t)}async reactivate(e){const{ctx:t}=(await this.logCtx([],"reactivate",!0)).for(this.reactivate),r=G.forModel(Xe),o=await r.read(e,t);return o.active=!0,r.update(o,t)}};Oe([l(":id/deactivate"),xe(0,P("id")),Se("design:type",Function),Se("design:paramtypes",[String]),Se("design:returntype",Promise)],Sr.prototype,"deactivate",null),Oe([l(":id/reactivate"),xe(0,P("id")),Se("design:type",Function),Se("design:paramtypes",[String]),Se("design:returntype",Promise)],Sr.prototype,"reactivate",null),Sr=Or=Oe([T("webhook-subscriptions"),Se("design:paramtypes",[_t])],Sr);let $r=xr=class extends jt{constructor(e){super(e,xr.name)}async replay(e){const{ctx:t}=(await this.logCtx([],"replay",!0)).for(this.replay),r=G.forModel(We),o=G.forModel(Qe);try{let s;try{s=await r.read(e,t)}catch(o){const i=await r.select().where(r.attr("id").eq(e)).limit(1).execute(t);if(!i.length)throw o;s=i[0]}let i=[];try{i=await Ve(()=>o.select().where(o.attr("eventId").eq(s.id)).orderBy("createdAt",j.ASC).thenBy("id",j.ASC).paginate(250,t),250,t)}catch{try{i=await o.select().where(o.attr("eventId").eq(s.id)).execute(t)}catch{i=[]}}const n=new Date;for(const e of i)e.status=Ke.PENDING,e.attempts=0,e.nextAttemptAt=n,e.lastAttemptAt=null,e.errorMessage=void 0,e.responseStatus=void 0,e.responseBody=void 0;if(s.status=Ke.PENDING,s.deliveriesSucceeded=0,s.deliveriesFailed=0,s.nextAttemptAt=n,s.updatedAt=n,i.length)try{await o.updateAll(i,t.override({applyUpdateValidation:!1}))}catch{}return r.update(s,t)}catch(e){throw e}}};var _r;Oe([l(":id/replay"),xe(0,P("id")),Se("design:type",Function),Se("design:paramtypes",[String]),Se("design:returntype",Promise)],$r.prototype,"replay",null),$r=xr=Oe([T("webhook-events"),Se("design:paramtypes",[_t])],$r);let Cr=class{static{_r=this}static{this._logger=Ne.for(_r)}static get log(){return this._logger}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 K,await this._persistence.boot(r);const o=this._persistence.client;for(let t=0;t<o.length;t++){const r=Y._cache||(Y._cache={}),s=[o[t].flavour,o[t].alias,"webhook_deliveries","webhook_events","webhook_subscriptions"].filter(e=>!!e);for(const e of s)r[e]=o[t];const n=e.conf[t];let a=n.slice(2,n.length).pop();if(!a||!a.from){const e=Y.transformerFor(o[t].flavour);if(!e)throw new Ee(`No transformer found for flavour ${o[t].flavour}.`);try{a=e.from?e:new e}catch(e){throw new Ee(`Failed to boot transformer for ${o[t].flavour}: ${e}`)}}lr(o[t].flavour)(a),i(o[t].flavour)(Xe),i(o[t].flavour)(We),i(o[t].flavour)(Qe)}if(t.info("persistence layer created successfully!"),e.initialization)try{await e.initialization()}catch(e){throw new Ee("Failed to initialize webhook module: "+e)}}return this._persistence.client}static async forRoot(e){return this.forRootAsync(e)}static async forRootAsync(e){await this.bootPersistence(e);const t=[Vt.create(Xe),Vt.create(We),Vt.create(Qe),Sr,$r];return{module:_r,controllers:t,imports:[Ie.register([{path:(e.webhookApiPath||"webhooks").replace(/^\//,""),module:_r}])],providers:[_t,kt,{provide:At,useFactory:()=>e.handlers?.map(e=>new e)??[]},{provide:ke,useClass:pr}],exports:[_t,kt]}}};Cr=_r=Oe([O({})],Cr);const kr=Cr;async function Ir(){}const Nr="##VERSION##",Fr="##COMMIT##",Dr="##FULL_VERSION##",qr="##PACKAGE##";t.allowReregistration(!0),t.registerLibrary(qr,Nr),t.allowReregistration(!1);export{Pt as AUTH_HANDLER,Rt as AUTH_META_KEY,pt as ApiOperationFromModel,lt as ApiParamsFromModel,nt as ApiProperty,xt as Auth,Ot as AuthInterceptor,dt as BulkApiOperationFromModel,Fr as COMMIT,Zt as CorsError,bt as DECAF_ADAPTER_ID,Et as DECAF_ADAPTER_OPTIONS,Tt as DECAF_CONTEXT_KEY,At as DECAF_HANDLERS,yt as DECAF_MODULE_OPTIONS,wt as DECAF_ROUTE,vt as DECAF_TASK_SERVICE_ID,et as DECORATORS,Ze as DECORATORS_PREFIX,St as DecafAuthHandler,ut as DecafBody,jt as DecafController,hr as DecafCoreModule,tr as DecafExceptionFilter,kt as DecafHandlerExecutor,Rr as DecafMigrationModule,Ut as DecafModelController,wr as DecafModule,ft as DecafParams,gt as DecafQuery,_t as DecafRequestContext,pr as DecafRequestHandlerInterceptor,It as DecafResponseInterceptor,$t as DecafRoleAuthHandler,br as DecafStreamModule,Cr as DecafWebhookModule,kr as DecafWebhooksModule,zt as DtoFor,mr as EventsController,Dr as FULL_VERSION,Vt as FromModelController,mt as HttpVerbToDecorator,ar as NestBootstraper,qr as PACKAGE_NAME,dr as RequestToContextTransformer,nr as SwaggerBuilder,rr as UseDecafFilter,or as UseDecafHeaders,Nr as VERSION,$r as WebhookEventActionsController,Sr as WebhookSubscriptionActionsController,at as createApiPropertyDecorator,it as createPropertyDecorator,st as getEnumType,ot as getEnumValues,Kt as getModuleFor,ct as isOperationBlocked,rt as isUndefined,Tr as repoForModel,lr as requestToContextTransformer,Ar as runMigrations,Ir as runWebhooksMigrations};
2
2
  //# sourceMappingURL=for-nest.js.map