@overlordai/server 1.0.175 → 1.0.177
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/database/migrations/020-connectors.sql +48 -0
- package/database/migrations/021-task-design-context.sql +17 -0
- package/dist/adapters/command-parser.utils.d.ts +1 -0
- package/dist/adapters/command-parser.utils.d.ts.map +1 -1
- package/dist/adapters/command-parser.utils.js +9 -0
- package/dist/adapters/command-parser.utils.js.map +1 -1
- package/dist/adapters/nlu.service.d.ts.map +1 -1
- package/dist/adapters/nlu.service.js +4 -1
- package/dist/adapters/nlu.service.js.map +1 -1
- package/dist/app.module.d.ts.map +1 -1
- package/dist/app.module.js +2 -0
- package/dist/app.module.js.map +1 -1
- package/dist/connectors/connector-closure.service.d.ts +16 -0
- package/dist/connectors/connector-closure.service.d.ts.map +1 -0
- package/dist/connectors/connector-closure.service.js +97 -0
- package/dist/connectors/connector-closure.service.js.map +1 -0
- package/dist/connectors/connector-dispatch.service.d.ts +30 -0
- package/dist/connectors/connector-dispatch.service.d.ts.map +1 -0
- package/dist/connectors/connector-dispatch.service.js +226 -0
- package/dist/connectors/connector-dispatch.service.js.map +1 -0
- package/dist/connectors/connector.constants.d.ts +4 -0
- package/dist/connectors/connector.constants.d.ts.map +1 -0
- package/dist/connectors/connector.constants.js +12 -0
- package/dist/connectors/connector.constants.js.map +1 -0
- package/dist/connectors/connector.controller.d.ts +20 -0
- package/dist/connectors/connector.controller.d.ts.map +1 -0
- package/dist/connectors/connector.controller.js +166 -0
- package/dist/connectors/connector.controller.js.map +1 -0
- package/dist/connectors/connector.interface.d.ts +61 -0
- package/dist/connectors/connector.interface.d.ts.map +1 -0
- package/dist/connectors/connector.interface.js +3 -0
- package/dist/connectors/connector.interface.js.map +1 -0
- package/dist/connectors/connector.module.d.ts +3 -0
- package/dist/connectors/connector.module.d.ts.map +1 -0
- package/dist/connectors/connector.module.js +50 -0
- package/dist/connectors/connector.module.js.map +1 -0
- package/dist/connectors/connector.registry.d.ts +15 -0
- package/dist/connectors/connector.registry.d.ts.map +1 -0
- package/dist/connectors/connector.registry.js +48 -0
- package/dist/connectors/connector.registry.js.map +1 -0
- package/dist/connectors/design-context.service.d.ts +21 -0
- package/dist/connectors/design-context.service.d.ts.map +1 -0
- package/dist/connectors/design-context.service.js +77 -0
- package/dist/connectors/design-context.service.js.map +1 -0
- package/dist/connectors/design-review-trigger.service.d.ts +15 -0
- package/dist/connectors/design-review-trigger.service.d.ts.map +1 -0
- package/dist/connectors/design-review-trigger.service.js +98 -0
- package/dist/connectors/design-review-trigger.service.js.map +1 -0
- package/dist/connectors/figma/figma-url-parser.d.ts +12 -0
- package/dist/connectors/figma/figma-url-parser.d.ts.map +1 -0
- package/dist/connectors/figma/figma-url-parser.js +28 -0
- package/dist/connectors/figma/figma-url-parser.js.map +1 -0
- package/dist/connectors/figma/figma.client.d.ts +67 -0
- package/dist/connectors/figma/figma.client.d.ts.map +1 -0
- package/dist/connectors/figma/figma.client.js +67 -0
- package/dist/connectors/figma/figma.client.js.map +1 -0
- package/dist/connectors/figma/figma.connector.d.ts +29 -0
- package/dist/connectors/figma/figma.connector.d.ts.map +1 -0
- package/dist/connectors/figma/figma.connector.js +223 -0
- package/dist/connectors/figma/figma.connector.js.map +1 -0
- package/dist/connectors/figma/index.d.ts +4 -0
- package/dist/connectors/figma/index.d.ts.map +1 -0
- package/dist/connectors/figma/index.js +10 -0
- package/dist/connectors/figma/index.js.map +1 -0
- package/dist/connectors/issue-ref-helpers.d.ts +10 -0
- package/dist/connectors/issue-ref-helpers.d.ts.map +1 -0
- package/dist/connectors/issue-ref-helpers.js +24 -0
- package/dist/connectors/issue-ref-helpers.js.map +1 -0
- package/dist/connectors/issue-ref-parser.d.ts +22 -0
- package/dist/connectors/issue-ref-parser.d.ts.map +1 -0
- package/dist/connectors/issue-ref-parser.js +35 -0
- package/dist/connectors/issue-ref-parser.js.map +1 -0
- package/dist/connectors/issue-ref-resolver.service.d.ts +44 -0
- package/dist/connectors/issue-ref-resolver.service.d.ts.map +1 -0
- package/dist/connectors/issue-ref-resolver.service.js +226 -0
- package/dist/connectors/issue-ref-resolver.service.js.map +1 -0
- package/dist/connectors/jira/jira.client.d.ts +58 -0
- package/dist/connectors/jira/jira.client.d.ts.map +1 -0
- package/dist/connectors/jira/jira.client.js +70 -0
- package/dist/connectors/jira/jira.client.js.map +1 -0
- package/dist/connectors/jira/jira.connector.d.ts +17 -0
- package/dist/connectors/jira/jira.connector.d.ts.map +1 -0
- package/dist/connectors/jira/jira.connector.js +141 -0
- package/dist/connectors/jira/jira.connector.js.map +1 -0
- package/dist/connectors/sentry/sentry.client.d.ts +54 -0
- package/dist/connectors/sentry/sentry.client.d.ts.map +1 -0
- package/dist/connectors/sentry/sentry.client.js +69 -0
- package/dist/connectors/sentry/sentry.client.js.map +1 -0
- package/dist/connectors/sentry/sentry.connector.d.ts +17 -0
- package/dist/connectors/sentry/sentry.connector.d.ts.map +1 -0
- package/dist/connectors/sentry/sentry.connector.js +173 -0
- package/dist/connectors/sentry/sentry.connector.js.map +1 -0
- package/dist/connectors/webhook-comment-parser.d.ts +18 -0
- package/dist/connectors/webhook-comment-parser.d.ts.map +1 -0
- package/dist/connectors/webhook-comment-parser.js +28 -0
- package/dist/connectors/webhook-comment-parser.js.map +1 -0
- package/dist/database/repositories/connector.repository.d.ts +84 -0
- package/dist/database/repositories/connector.repository.d.ts.map +1 -0
- package/dist/database/repositories/connector.repository.js +222 -0
- package/dist/database/repositories/connector.repository.js.map +1 -0
- package/dist/database/repositories/developer.repository.d.ts +6 -1
- package/dist/database/repositories/developer.repository.d.ts.map +1 -1
- package/dist/database/repositories/developer.repository.js +19 -1
- package/dist/database/repositories/developer.repository.js.map +1 -1
- package/dist/database/repositories/external-issue-link.repository.d.ts +27 -0
- package/dist/database/repositories/external-issue-link.repository.d.ts.map +1 -0
- package/dist/database/repositories/external-issue-link.repository.js +85 -0
- package/dist/database/repositories/external-issue-link.repository.js.map +1 -0
- package/dist/database/repositories/task-design-context.repository.d.ts +33 -0
- package/dist/database/repositories/task-design-context.repository.d.ts.map +1 -0
- package/dist/database/repositories/task-design-context.repository.js +76 -0
- package/dist/database/repositories/task-design-context.repository.js.map +1 -0
- package/dist/database/repository.module.d.ts.map +1 -1
- package/dist/database/repository.module.js +6 -0
- package/dist/database/repository.module.js.map +1 -1
- package/dist/dispatcher/dedup.service.d.ts +1 -1
- package/dist/dispatcher/dedup.service.d.ts.map +1 -1
- package/dist/dispatcher/dedup.service.js +2 -2
- package/dist/dispatcher/dedup.service.js.map +1 -1
- package/dist/dispatcher/dispatcher.module.d.ts.map +1 -1
- package/dist/dispatcher/dispatcher.module.js +2 -1
- package/dist/dispatcher/dispatcher.module.js.map +1 -1
- package/dist/dispatcher/dispatcher.service.d.ts +7 -1
- package/dist/dispatcher/dispatcher.service.d.ts.map +1 -1
- package/dist/dispatcher/dispatcher.service.js +79 -8
- package/dist/dispatcher/dispatcher.service.js.map +1 -1
- package/dist/dispatcher/dispatcher.types.d.ts +26 -0
- package/dist/dispatcher/dispatcher.types.d.ts.map +1 -1
- package/dist/dispatcher/scheduler.service.d.ts +3 -1
- package/dist/dispatcher/scheduler.service.d.ts.map +1 -1
- package/dist/dispatcher/scheduler.service.js +16 -2
- package/dist/dispatcher/scheduler.service.js.map +1 -1
- package/dist/dispatcher/task-creation.service.d.ts +47 -3
- package/dist/dispatcher/task-creation.service.d.ts.map +1 -1
- package/dist/dispatcher/task-creation.service.js +26 -9
- package/dist/dispatcher/task-creation.service.js.map +1 -1
- package/dist/dispatcher/task-lifecycle.service.d.ts +5 -1
- package/dist/dispatcher/task-lifecycle.service.d.ts.map +1 -1
- package/dist/dispatcher/task-lifecycle.service.js +32 -3
- package/dist/dispatcher/task-lifecycle.service.js.map +1 -1
- package/dist/notifier/notification-consumer.d.ts +3 -1
- package/dist/notifier/notification-consumer.d.ts.map +1 -1
- package/dist/notifier/notification-consumer.js +26 -5
- package/dist/notifier/notification-consumer.js.map +1 -1
- package/dist/notifier/template.service.d.ts +6 -0
- package/dist/notifier/template.service.d.ts.map +1 -1
- package/dist/notifier/template.service.js +12 -0
- package/dist/notifier/template.service.js.map +1 -1
- package/dist/web/admin/admin-connector.controller.d.ts +58 -0
- package/dist/web/admin/admin-connector.controller.d.ts.map +1 -0
- package/dist/web/admin/admin-connector.controller.js +327 -0
- package/dist/web/admin/admin-connector.controller.js.map +1 -0
- package/dist/web/admin/admin-developer.controller.d.ts +1 -1
- package/dist/web/admin/admin-developer.controller.d.ts.map +1 -1
- package/dist/web/admin/admin-developer.controller.js +16 -5
- package/dist/web/admin/admin-developer.controller.js.map +1 -1
- package/dist/web/dashboard.controller.d.ts +1 -1
- package/dist/web/dashboard.service.d.ts +2 -7
- package/dist/web/dashboard.service.d.ts.map +1 -1
- package/dist/web/dashboard.service.js +16 -21
- package/dist/web/dashboard.service.js.map +1 -1
- package/dist/web/frame-handlers/review-report.handler.d.ts +3 -1
- package/dist/web/frame-handlers/review-report.handler.d.ts.map +1 -1
- package/dist/web/frame-handlers/review-report.handler.js +8 -3
- package/dist/web/frame-handlers/review-report.handler.js.map +1 -1
- package/dist/web/task.controller.d.ts +11 -1
- package/dist/web/task.controller.d.ts.map +1 -1
- package/dist/web/task.controller.js +118 -4
- package/dist/web/task.controller.js.map +1 -1
- package/dist/web/web.module.d.ts.map +1 -1
- package/dist/web/web.module.js +4 -1
- package/dist/web/web.module.js.map +1 -1
- package/dist/web/worker-channel.gateway.d.ts +3 -1
- package/dist/web/worker-channel.gateway.d.ts.map +1 -1
- package/dist/web/worker-channel.gateway.js +6 -3
- package/dist/web/worker-channel.gateway.js.map +1 -1
- package/package.json +4 -4
- package/public/assets/{AccessTokensPage-BlZBgj0-.js → AccessTokensPage-BhRmma33.js} +1 -1
- package/public/assets/{AdminPage-C0OFG0LC.js → AdminPage-ByfD-Bj7.js} +1 -1
- package/public/assets/{AgentCliPage-Ci2XVaN8.js → AgentCliPage-DyJnRmFm.js} +1 -1
- package/public/assets/{ApiReferencePage-Dm9y-zCM.js → ApiReferencePage-Wcyoo5XT.js} +1 -1
- package/public/assets/{ArchitecturePage-BetPO5Ws.js → ArchitecturePage-DgwFpJ3c.js} +1 -1
- package/public/assets/{AuditLogPage-Dbd27v1s.js → AuditLogPage-ByFVvlFb.js} +1 -1
- package/public/assets/{AutomationCreatePage-BvSw8KoZ.js → AutomationCreatePage-Cx-FCZEr.js} +1 -1
- package/public/assets/{AutomationDetailPage-1Y2tp1KP.js → AutomationDetailPage-BDh7SFeh.js} +1 -1
- package/public/assets/{AutomationEditPage-C9UO1XrW.js → AutomationEditPage-D76Ybtpz.js} +1 -1
- package/public/assets/{AutomationListPage-CJk8o3Vp.js → AutomationListPage-bNDDFN0Y.js} +1 -1
- package/public/assets/{AutomationRunDetailPage-h7T4V9Yq.js → AutomationRunDetailPage-BEWaGMai.js} +1 -1
- package/public/assets/{BindPlatformPage-DpzV1bpB.js → BindPlatformPage-CgfAbUal.js} +1 -1
- package/public/assets/{BotIntegrationPage-9kAG4BIL.js → BotIntegrationPage-D1A10L4d.js} +1 -1
- package/public/assets/{BotManage-BanZ5a5-.js → BotManage-IJm4jT-7.js} +1 -1
- package/public/assets/{BotSetupPage-BZIfJYqL.js → BotSetupPage-DIUSFgGv.js} +1 -1
- package/public/assets/{ChangelogPage-Da8n7_T3.js → ChangelogPage-D3R17QQT.js} +1 -1
- package/public/assets/{Checkbox-Dsj1BuTd.js → Checkbox-Drx9oKpj.js} +1 -1
- package/public/assets/{CliReferencePage-BDFsLYmx.js → CliReferencePage-BQ6Eyq2_.js} +1 -1
- package/public/assets/{ConfirmStageDialog-BUTA9YZ1.js → ConfirmStageDialog-BjjJNcLJ.js} +1 -1
- package/public/assets/ConnectorsPage-BgBXQlwq.js +48 -0
- package/public/assets/{DeploymentPage-B5TlN0FI.js → DeploymentPage-Cbmb8KKs.js} +1 -1
- package/public/assets/{DevWorkflowPage-Abvhng0F.js → DevWorkflowPage-Dur0zn7L.js} +1 -1
- package/public/assets/DeveloperManage-BmFhmcbZ.js +16 -0
- package/public/assets/{DeveloperSetupPage-QipfVSjp.js → DeveloperSetupPage-G9amle-q.js} +1 -1
- package/public/assets/{DocsIndexPage-Dw-saIXq.js → DocsIndexPage-CAPCKH_C.js} +11 -6
- package/public/assets/{DocsLayout-BsGaDVp1.js → DocsLayout-gVsQBlHm.js} +1 -1
- package/public/assets/{DocsPrimitives-Bv8TQpkc.js → DocsPrimitives-VBA7lZhS.js} +1 -1
- package/public/assets/{EditProjectPage-CtNCwK-z.js → EditProjectPage-Dn-MgU4f.js} +1 -1
- package/public/assets/{EmptyState-BpbqIJyG.js → EmptyState-B0pdsOsA.js} +1 -1
- package/public/assets/{EnvVariablesPage-D5Cn_E5P.js → EnvVariablesPage-DXaJ3Ejc.js} +1 -1
- package/public/assets/HomePage-B4ION8nK.js +1 -0
- package/public/assets/{InfoRow-BCDb21nt.js → InfoRow-DTHohr5Y.js} +1 -1
- package/public/assets/{InstallationPage-DLW6MXhs.js → InstallationPage-BVY5fIOG.js} +1 -1
- package/public/assets/{LandingPage-BLcQBvuD.js → LandingPage-DAP65IzR.js} +1 -1
- package/public/assets/{LocalDevelopmentPage-BnbdovKe.js → LocalDevelopmentPage-C9pD5y0c.js} +1 -1
- package/public/assets/{LoginPage-Bh-p4hP9.js → LoginPage-BToTW-qz.js} +1 -1
- package/public/assets/{MetricBar-DLR15rum.js → MetricBar-DA42IEeN.js} +1 -1
- package/public/assets/{MultiSelect-BKtGWYgt.js → MultiSelect-5hKAHK2N.js} +1 -1
- package/public/assets/{NotFoundPage-BpUwim1l.js → NotFoundPage-BQbQRjCC.js} +1 -1
- package/public/assets/{OnboardingGuide-BTsSW7Mq.js → OnboardingGuide-or_CwmfY.js} +1 -1
- package/public/assets/{PermissionsPage-A828G2ih.js → PermissionsPage-D867c8K5.js} +1 -1
- package/public/assets/{PipelineConfigPage-Cw1OxgKV.js → PipelineConfigPage-DYL-Eg8a.js} +1 -1
- package/public/assets/{PipelineEditorPage-tewviYrj.js → PipelineEditorPage-D6EpDvPI.js} +1 -1
- package/public/assets/{PlanPage-Bidp5iEn.js → PlanPage-Bfgn9hdf.js} +1 -1
- package/public/assets/{ProfilePage-DgFxZS6i.js → ProfilePage-DydZ_JO_.js} +1 -1
- package/public/assets/{ProjectDetailPage-BoIU1U3V.js → ProjectDetailPage-BLSkZmV0.js} +1 -1
- package/public/assets/{ProjectListPage-DMoN7Ghc.js → ProjectListPage-KWBq3v71.js} +1 -1
- package/public/assets/{PtyTerminal-QdM0LGge.js → PtyTerminal-DZ-tRh7i.js} +1 -1
- package/public/assets/{QuickAuth-CGnZQLaj.js → QuickAuth-D_2JnzxW.js} +1 -1
- package/public/assets/{RemoveMemberConfirmDialog-uFuATit4.js → RemoveMemberConfirmDialog-B1T8FRls.js} +1 -1
- package/public/assets/ReviewAggregatePage-D-sgcTHd.js +6 -0
- package/public/assets/ReviewPage-DLXr5nmf.js +1 -0
- package/public/assets/{Select-CC0FnszM.js → Select-PNbJCK1d.js} +1 -1
- package/public/assets/{SettingsPage-DiecpWAG.js → SettingsPage-DgNCPUzP.js} +1 -1
- package/public/assets/{Skeleton-WCDZdltv.js → Skeleton-C9OmZNVj.js} +1 -1
- package/public/assets/{SkillPage-ABYkJSop.js → SkillPage-jXi2VAvG.js} +1 -1
- package/public/assets/TaskDetailPage-Dy0CSg-i.js +21 -0
- package/public/assets/{TaskGuidePage-CFzoePPd.js → TaskGuidePage-C2VJEOGp.js} +1 -1
- package/public/assets/TaskListPage-63cj9-Gf.js +1 -0
- package/public/assets/{TaskStatusBadge-CzUIb3QQ.js → TaskStatusBadge-Ieecwysj.js} +1 -1
- package/public/assets/{TerminalHomePage-DP-gqkiq.js → TerminalHomePage-wxZHwphZ.js} +1 -1
- package/public/assets/{TokenManage-CbLsJbR9.js → TokenManage-D_fRhfSC.js} +1 -1
- package/public/assets/{Tooltip-Ds3lc4sS.js → Tooltip-hO7lE45q.js} +1 -1
- package/public/assets/{TotpSetupPage-Bakhx3kM.js → TotpSetupPage-DPv5zEkr.js} +1 -1
- package/public/assets/{WorkerDetailPage-W_1tf-Ng.js → WorkerDetailPage-BNHh3G4i.js} +1 -1
- package/public/assets/{WorkerListPage-DAgJojBW.js → WorkerListPage-CnUaksv5.js} +1 -1
- package/public/assets/{WorkerOperationsPage-BE8gDr3P.js → WorkerOperationsPage-BF-j3TGV.js} +1 -1
- package/public/assets/{WorkerSetupGuidePage-Cjwu7yCO.js → WorkerSetupGuidePage-CgoXTtvB.js} +1 -1
- package/public/assets/{WorkerSetupPage-C4F2PDWx.js → WorkerSetupPage-C9FJdEtx.js} +1 -1
- package/public/assets/{agent-type-options-BTd_pbKQ.js → agent-type-options-DPcGCrTV.js} +1 -1
- package/public/assets/{arrow-left-Czit8jGK.js → arrow-left-CMC8xPNU.js} +1 -1
- package/public/assets/{arrow-right-DUvU3ZSE.js → arrow-right-CzgMaKkq.js} +1 -1
- package/public/assets/{bot-xYitrdXz.js → bot-DZNbJaal.js} +1 -1
- package/public/assets/{chevron-down-DwSdaR46.js → chevron-down-Byw_H7qa.js} +1 -1
- package/public/assets/{chevron-left-DMFdbT8q.js → chevron-left-B9OwsObK.js} +1 -1
- package/public/assets/{chevron-right-BqoEBUXc.js → chevron-right-BDxmkY05.js} +1 -1
- package/public/assets/{chevron-up-4jZShvn6.js → chevron-up-qpQChOEd.js} +1 -1
- package/public/assets/{circle-alert-gAYg5DQY.js → circle-alert-qjGQBuvk.js} +1 -1
- package/public/assets/{clock-Bn8CRcdc.js → clock-RH0F7m7Y.js} +1 -1
- package/public/assets/{copy-_C7txolK.js → copy-sq8YNzps.js} +1 -1
- package/public/assets/{download-CGR9pdGa.js → download-BILbhyFl.js} +1 -1
- package/public/assets/{external-link-DGEar13h.js → external-link-6-aTSDMz.js} +1 -1
- package/public/assets/{git-fork-bd2vu3ng.js → git-fork-Tz0-ma48.js} +1 -1
- package/public/assets/{index-DAwsREkq.js → index-CqgRY3L6.js} +13 -13
- package/public/assets/{key-b6kn-A1T.js → key-D8a2ymYq.js} +1 -1
- package/public/assets/{loader-circle-vH-Hp_AS.js → loader-circle-CRxnDWNg.js} +1 -1
- package/public/assets/{pencil-Cxzh8oiw.js → pencil-BB-LZCT2.js} +1 -1
- package/public/assets/{play-bFi1k4eQ.js → play-DP6MNxNf.js} +1 -1
- package/public/assets/{plus-DJTaWh3N.js → plus-DSLmbw91.js} +1 -1
- package/public/assets/{rotate-ccw-CXFQ7046.js → rotate-ccw-DkPBqmSU.js} +1 -1
- package/public/assets/{scroll-text-UIbwyc0E.js → scroll-text-Cn9LA-xo.js} +1 -1
- package/public/assets/{settings-DA_C9Znv.js → settings-DQCRnFRi.js} +1 -1
- package/public/assets/{skip-forward-C71GgwGt.js → skip-forward-ZkknEL37.js} +1 -1
- package/public/assets/{status-colors-C14ffr9M.js → status-colors-CpKIU449.js} +1 -1
- package/public/assets/{task-agent-BasiQZ0L.js → task-agent-knUib-IL.js} +1 -1
- package/public/assets/{task-constants-DihuKtBw.js → task-constants-DiU1z_dP.js} +1 -1
- package/public/assets/{task.store-MpV9TV7z.js → task.store-BfdxbFUg.js} +1 -1
- package/public/assets/{timer-COkLkLUF.js → timer-BJw0BmGT.js} +1 -1
- package/public/assets/{trash-2-CDhJihtl.js → trash-2-DLdIg5hq.js} +1 -1
- package/public/assets/{useFetch-CgkGfhaP.js → useFetch-cT1ib8kh.js} +1 -1
- package/public/assets/{users-BwpIig9c.js → users-D2JV7gxB.js} +1 -1
- package/public/assets/{wifi-D5o6IWuC.js → wifi-Jy12B8KN.js} +1 -1
- package/public/assets/{workflow-DXTOpHef.js → workflow-BmBIBEn9.js} +1 -1
- package/public/assets/{zap-CEUF2oJs.js → zap-oNjSxQ6J.js} +1 -1
- package/public/index.html +1 -1
- package/public/sw.js +1 -1
- package/public/assets/DeveloperManage-DPSHCC6K.js +0 -16
- package/public/assets/HomePage-BFNO_Hk6.js +0 -1
- package/public/assets/ReviewAggregatePage-D5S57j51.js +0 -6
- package/public/assets/ReviewPage-tkUY7vrY.js +0 -1
- package/public/assets/TaskDetailPage-D6qSqsm0.js +0 -21
- package/public/assets/TaskListPage-rDPMfjmN.js +0 -1
|
@@ -0,0 +1,173 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
|
+
};
|
|
11
|
+
var SentryConnector_1;
|
|
12
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
13
|
+
exports.SentryConnector = void 0;
|
|
14
|
+
const common_1 = require("@nestjs/common");
|
|
15
|
+
const protocol_1 = require("@overlordai/protocol");
|
|
16
|
+
const sentry_client_1 = require("./sentry.client");
|
|
17
|
+
const crypto_service_1 = require("../../common/crypto.service");
|
|
18
|
+
let SentryConnector = SentryConnector_1 = class SentryConnector {
|
|
19
|
+
constructor(cryptoService) {
|
|
20
|
+
this.cryptoService = cryptoService;
|
|
21
|
+
this.platform = protocol_1.ConnectorPlatform.SENTRY;
|
|
22
|
+
this.logger = new common_1.Logger(SentryConnector_1.name);
|
|
23
|
+
}
|
|
24
|
+
async handleWebhook(req, instance) {
|
|
25
|
+
const payload = req.body;
|
|
26
|
+
const action = payload.action;
|
|
27
|
+
// Only handle 'triggered' actions (alert fired)
|
|
28
|
+
if (action !== 'triggered') {
|
|
29
|
+
this.logger.debug({ action }, 'Ignoring non-triggered Sentry webhook action');
|
|
30
|
+
return null;
|
|
31
|
+
}
|
|
32
|
+
const data = payload.data;
|
|
33
|
+
const issue = data?.issue;
|
|
34
|
+
if (!issue) {
|
|
35
|
+
this.logger.warn('Sentry webhook has no issue data');
|
|
36
|
+
return null;
|
|
37
|
+
}
|
|
38
|
+
if (!issue.id) {
|
|
39
|
+
this.logger.warn('Sentry webhook is missing the stable issue ID');
|
|
40
|
+
return null;
|
|
41
|
+
}
|
|
42
|
+
const issueId = String(issue.id);
|
|
43
|
+
const title = issue.title ?? 'Unknown error';
|
|
44
|
+
const culprit = issue.culprit ?? '';
|
|
45
|
+
const permalink = issue.permalink ?? '';
|
|
46
|
+
const shortId = issue.shortId ?? issueId;
|
|
47
|
+
const project = issue.project;
|
|
48
|
+
const projectSlug = project?.slug ?? '';
|
|
49
|
+
const level = issue.level ?? 'error';
|
|
50
|
+
const count = issue.count ?? '0';
|
|
51
|
+
const userCount = issue.userCount ?? 0;
|
|
52
|
+
const metadata = issue.metadata;
|
|
53
|
+
const errorType = metadata?.type ?? '';
|
|
54
|
+
const errorValue = metadata?.value ?? '';
|
|
55
|
+
const filename = metadata?.filename ?? '';
|
|
56
|
+
const descriptionParts = [
|
|
57
|
+
`**Sentry Alert: ${title}**`,
|
|
58
|
+
'',
|
|
59
|
+
`- Error: ${errorType}${errorValue ? `: ${errorValue}` : ''}`,
|
|
60
|
+
culprit ? `- Location: ${culprit}` : '',
|
|
61
|
+
filename ? `- File: ${filename}` : '',
|
|
62
|
+
`- Level: ${level}`,
|
|
63
|
+
`- Occurrences: ${count}`,
|
|
64
|
+
userCount > 0 ? `- Affected users: ${userCount}` : '',
|
|
65
|
+
'',
|
|
66
|
+
`Sentry Issue: [${shortId}](${permalink})`,
|
|
67
|
+
].filter(Boolean);
|
|
68
|
+
const context = {
|
|
69
|
+
title,
|
|
70
|
+
description: descriptionParts.join('\n'),
|
|
71
|
+
priority: level,
|
|
72
|
+
status: issue.status ?? undefined,
|
|
73
|
+
url: permalink,
|
|
74
|
+
extra: {
|
|
75
|
+
culprit,
|
|
76
|
+
errorType,
|
|
77
|
+
errorValue,
|
|
78
|
+
filename,
|
|
79
|
+
count,
|
|
80
|
+
userCount,
|
|
81
|
+
},
|
|
82
|
+
};
|
|
83
|
+
// Use the Sentry issue ID + action as eventId for dedup (Sentry can
|
|
84
|
+
// fire the same trigger multiple times for the same alert rule).
|
|
85
|
+
const triggeredRule = payload.triggered_rule;
|
|
86
|
+
const eventId = triggeredRule ? `${issueId}:${triggeredRule}` : issueId;
|
|
87
|
+
return {
|
|
88
|
+
action: 'create_task',
|
|
89
|
+
eventId,
|
|
90
|
+
issueRef: {
|
|
91
|
+
platform: protocol_1.ConnectorPlatform.SENTRY,
|
|
92
|
+
issueId,
|
|
93
|
+
displayIssueId: shortId || `SENTRY-${issueId}`,
|
|
94
|
+
issueUrl: permalink,
|
|
95
|
+
projectKey: projectSlug,
|
|
96
|
+
},
|
|
97
|
+
context,
|
|
98
|
+
description: `Investigate and fix Sentry error: ${title}\n\n${descriptionParts.join('\n')}`,
|
|
99
|
+
};
|
|
100
|
+
}
|
|
101
|
+
async fetchContext(instance, externalId) {
|
|
102
|
+
const client = this.createClient(instance);
|
|
103
|
+
const issue = await client.getIssue(externalId);
|
|
104
|
+
const event = await client.getLatestEvent(externalId);
|
|
105
|
+
let stacktrace;
|
|
106
|
+
if (event?.entries) {
|
|
107
|
+
const exceptionEntry = event.entries.find((e) => e.type === 'exception');
|
|
108
|
+
if (exceptionEntry) {
|
|
109
|
+
stacktrace = JSON.stringify(exceptionEntry.data, null, 2).slice(0, 2000);
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
return {
|
|
113
|
+
title: issue.title,
|
|
114
|
+
description: `${issue.culprit}\n\nOccurrences: ${issue.count}, Affected users: ${issue.userCount}`,
|
|
115
|
+
priority: issue.level,
|
|
116
|
+
status: issue.status,
|
|
117
|
+
url: issue.permalink,
|
|
118
|
+
extra: stacktrace ? { stacktrace } : undefined,
|
|
119
|
+
};
|
|
120
|
+
}
|
|
121
|
+
async addComment(instance, externalId, comment) {
|
|
122
|
+
const client = this.createClient(instance);
|
|
123
|
+
await client.addComment(externalId, comment);
|
|
124
|
+
}
|
|
125
|
+
async transitionStatus(instance, externalId, targetStatus) {
|
|
126
|
+
const client = this.createClient(instance);
|
|
127
|
+
try {
|
|
128
|
+
if (targetStatus === 'resolved' || targetStatus === 'done') {
|
|
129
|
+
await client.resolveIssue(externalId);
|
|
130
|
+
}
|
|
131
|
+
else if (targetStatus === 'unresolved' || targetStatus === 'open') {
|
|
132
|
+
await client.unresolveIssue(externalId);
|
|
133
|
+
}
|
|
134
|
+
else {
|
|
135
|
+
this.logger.warn({ externalId, targetStatus }, 'Unknown Sentry status, skipping transition');
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
catch (err) {
|
|
139
|
+
this.logger.warn({ externalId, targetStatus, err }, 'Failed to transition Sentry issue');
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
async linkMR(_instance, _externalId, _mrUrl) {
|
|
143
|
+
// Sentry doesn't have a native "link MR" API.
|
|
144
|
+
// The closure comment from ConnectorClosureService already includes the MR URL,
|
|
145
|
+
// so we skip posting a duplicate comment here.
|
|
146
|
+
}
|
|
147
|
+
async validateCredentials(credentials, baseUrl) {
|
|
148
|
+
try {
|
|
149
|
+
const client = new sentry_client_1.SentryClient(credentials, baseUrl);
|
|
150
|
+
await client.listOrganizationProjects();
|
|
151
|
+
return true;
|
|
152
|
+
}
|
|
153
|
+
catch {
|
|
154
|
+
return false;
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
createClient(instance) {
|
|
158
|
+
let credentials;
|
|
159
|
+
try {
|
|
160
|
+
credentials = JSON.parse(this.cryptoService.decryptAes(instance.credentials));
|
|
161
|
+
}
|
|
162
|
+
catch (err) {
|
|
163
|
+
throw new Error(`Failed to decrypt credentials for Sentry instance ${instance.id}: ${err instanceof Error ? err.message : String(err)}`);
|
|
164
|
+
}
|
|
165
|
+
return new sentry_client_1.SentryClient(credentials, instance.baseUrl ?? undefined);
|
|
166
|
+
}
|
|
167
|
+
};
|
|
168
|
+
exports.SentryConnector = SentryConnector;
|
|
169
|
+
exports.SentryConnector = SentryConnector = SentryConnector_1 = __decorate([
|
|
170
|
+
(0, common_1.Injectable)(),
|
|
171
|
+
__metadata("design:paramtypes", [crypto_service_1.CryptoService])
|
|
172
|
+
], SentryConnector);
|
|
173
|
+
//# sourceMappingURL=sentry.connector.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sentry.connector.js","sourceRoot":"","sources":["../../../src/connectors/sentry/sentry.connector.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared utility for parsing webhook comments from connectors (Jira, Figma).
|
|
3
|
+
*
|
|
4
|
+
* Extracts the mention keyword, --project flag, and returns the cleaned comment text.
|
|
5
|
+
*/
|
|
6
|
+
export interface ParsedWebhookComment {
|
|
7
|
+
/** Comment text with mention keyword and --project flag removed. */
|
|
8
|
+
cleanedText: string;
|
|
9
|
+
/** Explicit project key from --project flag, if present. */
|
|
10
|
+
explicitProjectKey?: string;
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Remove the mention keyword and extract a --project flag from a webhook comment.
|
|
14
|
+
*
|
|
15
|
+
* Used by Jira and Figma connectors to normalize comment text into a task description.
|
|
16
|
+
*/
|
|
17
|
+
export declare function parseWebhookComment(commentBody: string, mentionKeyword: string): ParsedWebhookComment;
|
|
18
|
+
//# sourceMappingURL=webhook-comment-parser.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"webhook-comment-parser.d.ts","sourceRoot":"","sources":["../../src/connectors/webhook-comment-parser.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,MAAM,WAAW,oBAAoB;IACnC,oEAAoE;IACpE,WAAW,EAAE,MAAM,CAAC;IACpB,4DAA4D;IAC5D,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED;;;;GAIG;AACH,wBAAgB,mBAAmB,CACjC,WAAW,EAAE,MAAM,EACnB,cAAc,EAAE,MAAM,GACrB,oBAAoB,CAetB"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Shared utility for parsing webhook comments from connectors (Jira, Figma).
|
|
4
|
+
*
|
|
5
|
+
* Extracts the mention keyword, --project flag, and returns the cleaned comment text.
|
|
6
|
+
*/
|
|
7
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
8
|
+
exports.parseWebhookComment = parseWebhookComment;
|
|
9
|
+
/**
|
|
10
|
+
* Remove the mention keyword and extract a --project flag from a webhook comment.
|
|
11
|
+
*
|
|
12
|
+
* Used by Jira and Figma connectors to normalize comment text into a task description.
|
|
13
|
+
*/
|
|
14
|
+
function parseWebhookComment(commentBody, mentionKeyword) {
|
|
15
|
+
let cleaned = commentBody
|
|
16
|
+
.replace(new RegExp(mentionKeyword.replace(/[.*+?^${}()|[\]\\]/g, '\\$&'), 'gi'), '');
|
|
17
|
+
let explicitProjectKey;
|
|
18
|
+
const projectMatch = cleaned.match(/--project\s+(\S+)/i);
|
|
19
|
+
if (projectMatch) {
|
|
20
|
+
explicitProjectKey = projectMatch[1];
|
|
21
|
+
cleaned = cleaned.replace(/--project\s+\S+/i, '');
|
|
22
|
+
}
|
|
23
|
+
return {
|
|
24
|
+
cleanedText: cleaned.trim(),
|
|
25
|
+
explicitProjectKey,
|
|
26
|
+
};
|
|
27
|
+
}
|
|
28
|
+
//# sourceMappingURL=webhook-comment-parser.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"webhook-comment-parser.js","sourceRoot":"","sources":["../../src/connectors/webhook-comment-parser.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;AAcH,kDAkBC;AAvBD;;;;GAIG;AACH,SAAgB,mBAAmB,CACjC,WAAmB,EACnB,cAAsB;IAEtB,IAAI,OAAO,GAAG,WAAW;SACtB,OAAO,CAAC,IAAI,MAAM,CAAC,cAAc,CAAC,OAAO,CAAC,qBAAqB,EAAE,MAAM,CAAC,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;IAExF,IAAI,kBAAsC,CAAC;IAC3C,MAAM,YAAY,GAAG,OAAO,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAC;IACzD,IAAI,YAAY,EAAE,CAAC;QACjB,kBAAkB,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC;QACrC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,kBAAkB,EAAE,EAAE,CAAC,CAAC;IACpD,CAAC;IAED,OAAO;QACL,WAAW,EAAE,OAAO,CAAC,IAAI,EAAE;QAC3B,kBAAkB;KACnB,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
import { DatabaseService } from '../database.service';
|
|
2
|
+
export interface ConnectorInstanceRow {
|
|
3
|
+
id: number;
|
|
4
|
+
platform: string;
|
|
5
|
+
name: string;
|
|
6
|
+
baseUrl: string | null;
|
|
7
|
+
credentials: string;
|
|
8
|
+
webhookSecret: string | null;
|
|
9
|
+
status: string;
|
|
10
|
+
scope: string;
|
|
11
|
+
mentionKeyword: string;
|
|
12
|
+
createdBy: number | null;
|
|
13
|
+
createdAt: string;
|
|
14
|
+
}
|
|
15
|
+
export interface ConnectorBindingRow {
|
|
16
|
+
id: number;
|
|
17
|
+
connectorInstanceId: number;
|
|
18
|
+
projectKey: string;
|
|
19
|
+
externalProjectKey: string | null;
|
|
20
|
+
isDefault: boolean;
|
|
21
|
+
statusMapping: Record<string, string> | null;
|
|
22
|
+
autoDesignReview: boolean;
|
|
23
|
+
createdAt: string;
|
|
24
|
+
}
|
|
25
|
+
export declare class ConnectorRepository {
|
|
26
|
+
private readonly database;
|
|
27
|
+
constructor(database: DatabaseService);
|
|
28
|
+
/** Strip credentials and webhook secret before returning in API responses. */
|
|
29
|
+
static stripSecrets<T extends {
|
|
30
|
+
credentials?: unknown;
|
|
31
|
+
webhookSecret?: unknown;
|
|
32
|
+
}>(instance: T): Omit<T, 'credentials' | 'webhookSecret'>;
|
|
33
|
+
findInstanceById(id: number): ConnectorInstanceRow | null;
|
|
34
|
+
findInstancesByPlatform(platform: string): ConnectorInstanceRow[];
|
|
35
|
+
findAllInstances(): ConnectorInstanceRow[];
|
|
36
|
+
createInstance(data: {
|
|
37
|
+
platform: string;
|
|
38
|
+
name: string;
|
|
39
|
+
baseUrl?: string;
|
|
40
|
+
credentials: string;
|
|
41
|
+
webhookSecret?: string;
|
|
42
|
+
scope?: string;
|
|
43
|
+
mentionKeyword?: string;
|
|
44
|
+
createdBy?: number;
|
|
45
|
+
}): ConnectorInstanceRow;
|
|
46
|
+
updateInstance(id: number, data: Record<string, unknown>): boolean;
|
|
47
|
+
deleteInstance(id: number): boolean;
|
|
48
|
+
findBindingById(id: number): ConnectorBindingRow | null;
|
|
49
|
+
findBindingsByInstanceId(instanceId: number): ConnectorBindingRow[];
|
|
50
|
+
findBindingsByProjectKey(projectKey: string): ConnectorBindingRow[];
|
|
51
|
+
/**
|
|
52
|
+
* Find a connector instance for a given platform and external project key.
|
|
53
|
+
* Resolution order:
|
|
54
|
+
* 1. Binding with matching external_project_key + scope='project'
|
|
55
|
+
* 2. Binding with matching external_project_key + scope='global'
|
|
56
|
+
* 3. Any active instance for the platform (fallback)
|
|
57
|
+
*/
|
|
58
|
+
resolveInstance(platform: string, externalProjectKey?: string): {
|
|
59
|
+
instance: ConnectorInstanceRow;
|
|
60
|
+
binding: ConnectorBindingRow | null;
|
|
61
|
+
} | null;
|
|
62
|
+
/**
|
|
63
|
+
* Find a binding for a connector instance and project key.
|
|
64
|
+
*/
|
|
65
|
+
findBinding(instanceId: number, projectKey: string): ConnectorBindingRow | null;
|
|
66
|
+
createBinding(data: {
|
|
67
|
+
connectorInstanceId: number;
|
|
68
|
+
projectKey: string;
|
|
69
|
+
externalProjectKey?: string;
|
|
70
|
+
isDefault?: boolean;
|
|
71
|
+
statusMapping?: Record<string, string>;
|
|
72
|
+
autoDesignReview?: boolean;
|
|
73
|
+
}): ConnectorBindingRow;
|
|
74
|
+
deleteBinding(id: number): boolean;
|
|
75
|
+
updateBinding(id: number, data: {
|
|
76
|
+
autoDesignReview?: boolean;
|
|
77
|
+
statusMapping?: Record<string, string> | null;
|
|
78
|
+
}): boolean;
|
|
79
|
+
findAllBindings(): Array<ConnectorBindingRow & {
|
|
80
|
+
connectorName: string;
|
|
81
|
+
platform: string;
|
|
82
|
+
}>;
|
|
83
|
+
}
|
|
84
|
+
//# sourceMappingURL=connector.repository.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"connector.repository.d.ts","sourceRoot":"","sources":["../../../src/database/repositories/connector.repository.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,222 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
|
+
};
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.ConnectorRepository = void 0;
|
|
13
|
+
const common_1 = require("@nestjs/common");
|
|
14
|
+
const database_service_1 = require("../database.service");
|
|
15
|
+
const base_repository_1 = require("../base.repository");
|
|
16
|
+
const INSTANCE_COLUMN_SCHEMA = {
|
|
17
|
+
id: { column: 'id', type: 'number' },
|
|
18
|
+
platform: { column: 'platform', type: 'string' },
|
|
19
|
+
name: { column: 'name', type: 'string' },
|
|
20
|
+
baseUrl: { column: 'base_url', type: 'string', nullable: true },
|
|
21
|
+
credentials: { column: 'credentials', type: 'string' },
|
|
22
|
+
webhookSecret: { column: 'webhook_secret', type: 'string', nullable: true },
|
|
23
|
+
status: { column: 'status', type: 'string' },
|
|
24
|
+
scope: { column: 'scope', type: 'string' },
|
|
25
|
+
mentionKeyword: { column: 'mention_keyword', type: 'string' },
|
|
26
|
+
createdBy: { column: 'created_by', type: 'number', nullable: true },
|
|
27
|
+
createdAt: { column: 'created_at', type: 'string' },
|
|
28
|
+
};
|
|
29
|
+
const BINDING_COLUMN_SCHEMA = {
|
|
30
|
+
id: { column: 'id', type: 'number' },
|
|
31
|
+
connectorInstanceId: { column: 'connector_instance_id', type: 'number' },
|
|
32
|
+
projectKey: { column: 'project_key', type: 'string' },
|
|
33
|
+
externalProjectKey: { column: 'external_project_key', type: 'string', nullable: true },
|
|
34
|
+
isDefault: { column: 'is_default', type: 'boolean' },
|
|
35
|
+
statusMapping: { column: 'status_mapping', type: 'json', nullable: true },
|
|
36
|
+
autoDesignReview: { column: 'auto_design_review', type: 'boolean' },
|
|
37
|
+
createdAt: { column: 'created_at', type: 'string' },
|
|
38
|
+
};
|
|
39
|
+
const INSTANCE_UPDATE_MAP = {
|
|
40
|
+
name: 'name',
|
|
41
|
+
baseUrl: 'base_url',
|
|
42
|
+
credentials: 'credentials',
|
|
43
|
+
webhookSecret: 'webhook_secret',
|
|
44
|
+
status: 'status',
|
|
45
|
+
scope: 'scope',
|
|
46
|
+
mentionKeyword: 'mention_keyword',
|
|
47
|
+
};
|
|
48
|
+
function mapInstanceRow(row) {
|
|
49
|
+
return (0, base_repository_1.mapRow)(row, INSTANCE_COLUMN_SCHEMA);
|
|
50
|
+
}
|
|
51
|
+
function mapBindingRow(row) {
|
|
52
|
+
return (0, base_repository_1.mapRow)(row, BINDING_COLUMN_SCHEMA);
|
|
53
|
+
}
|
|
54
|
+
let ConnectorRepository = class ConnectorRepository {
|
|
55
|
+
constructor(database) {
|
|
56
|
+
this.database = database;
|
|
57
|
+
}
|
|
58
|
+
/** Strip credentials and webhook secret before returning in API responses. */
|
|
59
|
+
static stripSecrets(instance) {
|
|
60
|
+
const { credentials, webhookSecret, ...safe } = instance;
|
|
61
|
+
return safe;
|
|
62
|
+
}
|
|
63
|
+
// --- Instance methods ---
|
|
64
|
+
findInstanceById(id) {
|
|
65
|
+
const row = this.database
|
|
66
|
+
.getDb()
|
|
67
|
+
.prepare('SELECT * FROM connector_instances WHERE id = ?')
|
|
68
|
+
.get(id);
|
|
69
|
+
return row ? mapInstanceRow(row) : null;
|
|
70
|
+
}
|
|
71
|
+
findInstancesByPlatform(platform) {
|
|
72
|
+
const rows = this.database
|
|
73
|
+
.getDb()
|
|
74
|
+
.prepare('SELECT * FROM connector_instances WHERE platform = ? AND status = ? ORDER BY created_at DESC')
|
|
75
|
+
.all(platform, 'active');
|
|
76
|
+
return rows.map(mapInstanceRow);
|
|
77
|
+
}
|
|
78
|
+
findAllInstances() {
|
|
79
|
+
const rows = this.database
|
|
80
|
+
.getDb()
|
|
81
|
+
.prepare('SELECT * FROM connector_instances ORDER BY created_at DESC')
|
|
82
|
+
.all();
|
|
83
|
+
return rows.map(mapInstanceRow);
|
|
84
|
+
}
|
|
85
|
+
createInstance(data) {
|
|
86
|
+
const result = this.database
|
|
87
|
+
.getDb()
|
|
88
|
+
.prepare(`INSERT INTO connector_instances (platform, name, base_url, credentials, webhook_secret, scope, mention_keyword, created_by)
|
|
89
|
+
VALUES (?, ?, ?, ?, ?, ?, ?, ?)`)
|
|
90
|
+
.run(data.platform, data.name, data.baseUrl ?? null, data.credentials, data.webhookSecret ?? null, data.scope ?? 'global', data.mentionKeyword ?? '@Overlord', data.createdBy ?? null);
|
|
91
|
+
return this.findInstanceById(Number(result.lastInsertRowid));
|
|
92
|
+
}
|
|
93
|
+
updateInstance(id, data) {
|
|
94
|
+
const result = (0, base_repository_1.buildUpdate)('connector_instances', 'id', id, data, INSTANCE_UPDATE_MAP);
|
|
95
|
+
if (!result)
|
|
96
|
+
return false;
|
|
97
|
+
return this.database.getDb().prepare(result.sql).run(result.params).changes > 0;
|
|
98
|
+
}
|
|
99
|
+
deleteInstance(id) {
|
|
100
|
+
const db = this.database.getDb();
|
|
101
|
+
const result = db.transaction(() => {
|
|
102
|
+
db.prepare('DELETE FROM connector_bindings WHERE connector_instance_id = ?').run(id);
|
|
103
|
+
db.prepare('DELETE FROM external_issue_links WHERE connector_instance_id = ?').run(id);
|
|
104
|
+
return db.prepare('DELETE FROM connector_instances WHERE id = ?').run(id);
|
|
105
|
+
})();
|
|
106
|
+
return result.changes > 0;
|
|
107
|
+
}
|
|
108
|
+
// --- Binding methods ---
|
|
109
|
+
findBindingById(id) {
|
|
110
|
+
const row = this.database
|
|
111
|
+
.getDb()
|
|
112
|
+
.prepare('SELECT * FROM connector_bindings WHERE id = ?')
|
|
113
|
+
.get(id);
|
|
114
|
+
return row ? mapBindingRow(row) : null;
|
|
115
|
+
}
|
|
116
|
+
findBindingsByInstanceId(instanceId) {
|
|
117
|
+
const rows = this.database
|
|
118
|
+
.getDb()
|
|
119
|
+
.prepare('SELECT * FROM connector_bindings WHERE connector_instance_id = ? ORDER BY created_at DESC')
|
|
120
|
+
.all(instanceId);
|
|
121
|
+
return rows.map(mapBindingRow);
|
|
122
|
+
}
|
|
123
|
+
findBindingsByProjectKey(projectKey) {
|
|
124
|
+
const rows = this.database
|
|
125
|
+
.getDb()
|
|
126
|
+
.prepare('SELECT * FROM connector_bindings WHERE project_key = ? ORDER BY is_default DESC, created_at DESC')
|
|
127
|
+
.all(projectKey);
|
|
128
|
+
return rows.map(mapBindingRow);
|
|
129
|
+
}
|
|
130
|
+
/**
|
|
131
|
+
* Find a connector instance for a given platform and external project key.
|
|
132
|
+
* Resolution order:
|
|
133
|
+
* 1. Binding with matching external_project_key + scope='project'
|
|
134
|
+
* 2. Binding with matching external_project_key + scope='global'
|
|
135
|
+
* 3. Any active instance for the platform (fallback)
|
|
136
|
+
*/
|
|
137
|
+
resolveInstance(platform, externalProjectKey) {
|
|
138
|
+
const db = this.database.getDb();
|
|
139
|
+
if (externalProjectKey) {
|
|
140
|
+
// Try exact external_project_key match, prioritize scope='project'
|
|
141
|
+
const row = db.prepare(`SELECT ci.id, ci.platform, ci.name, ci.base_url, ci.credentials,
|
|
142
|
+
ci.webhook_secret, ci.status, ci.scope, ci.mention_keyword,
|
|
143
|
+
ci.created_by, ci.created_at,
|
|
144
|
+
cb.id as binding_id
|
|
145
|
+
FROM connector_instances ci
|
|
146
|
+
JOIN connector_bindings cb ON cb.connector_instance_id = ci.id
|
|
147
|
+
WHERE ci.platform = ? AND ci.status = 'active'
|
|
148
|
+
AND cb.external_project_key = ?
|
|
149
|
+
ORDER BY
|
|
150
|
+
CASE ci.scope WHEN 'project' THEN 0 ELSE 1 END,
|
|
151
|
+
cb.is_default DESC,
|
|
152
|
+
cb.created_at DESC
|
|
153
|
+
LIMIT 1`).get(platform, externalProjectKey);
|
|
154
|
+
if (row) {
|
|
155
|
+
const instance = mapInstanceRow(row);
|
|
156
|
+
const binding = this.findBindingById(row.binding_id);
|
|
157
|
+
return { instance, binding };
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
// Fallback: any active instance for the platform
|
|
161
|
+
const fallback = db.prepare(`SELECT * FROM connector_instances WHERE platform = ? AND status = 'active' ORDER BY created_at ASC LIMIT 1`).get(platform);
|
|
162
|
+
return fallback ? { instance: mapInstanceRow(fallback), binding: null } : null;
|
|
163
|
+
}
|
|
164
|
+
/**
|
|
165
|
+
* Find a binding for a connector instance and project key.
|
|
166
|
+
*/
|
|
167
|
+
findBinding(instanceId, projectKey) {
|
|
168
|
+
const row = this.database
|
|
169
|
+
.getDb()
|
|
170
|
+
.prepare(`SELECT * FROM connector_bindings
|
|
171
|
+
WHERE connector_instance_id = ? AND project_key = ?`)
|
|
172
|
+
.get(instanceId, projectKey);
|
|
173
|
+
return row ? mapBindingRow(row) : null;
|
|
174
|
+
}
|
|
175
|
+
createBinding(data) {
|
|
176
|
+
const result = this.database
|
|
177
|
+
.getDb()
|
|
178
|
+
.prepare(`INSERT INTO connector_bindings (connector_instance_id, project_key, external_project_key, is_default, status_mapping, auto_design_review)
|
|
179
|
+
VALUES (?, ?, ?, ?, ?, ?)`)
|
|
180
|
+
.run(data.connectorInstanceId, data.projectKey, data.externalProjectKey ?? null, data.isDefault ? 1 : 0, data.statusMapping ? JSON.stringify(data.statusMapping) : null, data.autoDesignReview ? 1 : 0);
|
|
181
|
+
return this.findBindingById(Number(result.lastInsertRowid));
|
|
182
|
+
}
|
|
183
|
+
deleteBinding(id) {
|
|
184
|
+
return this.database.getDb().prepare('DELETE FROM connector_bindings WHERE id = ?').run(id).changes > 0;
|
|
185
|
+
}
|
|
186
|
+
updateBinding(id, data) {
|
|
187
|
+
const updates = [];
|
|
188
|
+
const params = [];
|
|
189
|
+
if (data.autoDesignReview !== undefined) {
|
|
190
|
+
updates.push('auto_design_review = ?');
|
|
191
|
+
params.push(data.autoDesignReview ? 1 : 0);
|
|
192
|
+
}
|
|
193
|
+
if (data.statusMapping !== undefined) {
|
|
194
|
+
updates.push('status_mapping = ?');
|
|
195
|
+
params.push(data.statusMapping ? JSON.stringify(data.statusMapping) : null);
|
|
196
|
+
}
|
|
197
|
+
if (updates.length === 0)
|
|
198
|
+
return false;
|
|
199
|
+
params.push(id);
|
|
200
|
+
return this.database.getDb().prepare(`UPDATE connector_bindings SET ${updates.join(', ')} WHERE id = ?`).run(...params).changes > 0;
|
|
201
|
+
}
|
|
202
|
+
findAllBindings() {
|
|
203
|
+
const rows = this.database
|
|
204
|
+
.getDb()
|
|
205
|
+
.prepare(`SELECT cb.*, ci.name as connector_name, ci.platform
|
|
206
|
+
FROM connector_bindings cb
|
|
207
|
+
JOIN connector_instances ci ON cb.connector_instance_id = ci.id
|
|
208
|
+
ORDER BY ci.name ASC, cb.project_key ASC`)
|
|
209
|
+
.all();
|
|
210
|
+
return rows.map((r) => ({
|
|
211
|
+
...mapBindingRow(r),
|
|
212
|
+
connectorName: r.connector_name,
|
|
213
|
+
platform: r.platform,
|
|
214
|
+
}));
|
|
215
|
+
}
|
|
216
|
+
};
|
|
217
|
+
exports.ConnectorRepository = ConnectorRepository;
|
|
218
|
+
exports.ConnectorRepository = ConnectorRepository = __decorate([
|
|
219
|
+
(0, common_1.Injectable)(),
|
|
220
|
+
__metadata("design:paramtypes", [database_service_1.DatabaseService])
|
|
221
|
+
], ConnectorRepository);
|
|
222
|
+
//# sourceMappingURL=connector.repository.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"connector.repository.js","sourceRoot":"","sources":["../../../src/database/repositories/connector.repository.ts"],"names":[],"mappings":"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"}
|
|
@@ -13,7 +13,12 @@ export declare class DeveloperRepository {
|
|
|
13
13
|
private static readonly ALLOWED_PLATFORMS;
|
|
14
14
|
findByPlatformUid(platform: string, uid: string): Developer | null;
|
|
15
15
|
findAll(): Developer[];
|
|
16
|
-
|
|
16
|
+
findAllActive(): Developer[];
|
|
17
|
+
findByStatus(status: string): Developer[];
|
|
18
|
+
findBySearch(query: string, options?: {
|
|
19
|
+
limit?: number;
|
|
20
|
+
status?: string;
|
|
21
|
+
}): Developer[];
|
|
17
22
|
countActiveAdmins(): number;
|
|
18
23
|
findByRole(role: DeveloperRole): Developer[];
|
|
19
24
|
create(data: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"developer.repository.d.ts","sourceRoot":"","sources":["../../../src/database/repositories/developer.repository.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvE,OAAO,EAAE,aAAa,EAAmB,MAAM,sBAAsB,CAAC;AACtE,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAgCtD,qBACa,mBAAmB;IAClB,OAAO,CAAC,QAAQ,CAAC,EAAE;gBAAF,EAAE,EAAE,eAAe;IAEhD,uFAAuF;IACvF,MAAM,CAAC,YAAY,CAAC,GAAG,EAAE,SAAS,GAAG,eAAe;IAKpD,mFAAmF;IACnF,oBAAoB,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,eAAe,GAAG,IAAI;IAK3E,QAAQ,CAAC,EAAE,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI;IAQtC,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI;IAQ1C,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,iBAAiB,CAAqD;IAE9F,iBAAiB,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI;IAkBlE,OAAO,IAAI,SAAS,EAAE;IAQtB,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,
|
|
1
|
+
{"version":3,"file":"developer.repository.d.ts","sourceRoot":"","sources":["../../../src/database/repositories/developer.repository.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvE,OAAO,EAAE,aAAa,EAAmB,MAAM,sBAAsB,CAAC;AACtE,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAgCtD,qBACa,mBAAmB;IAClB,OAAO,CAAC,QAAQ,CAAC,EAAE;gBAAF,EAAE,EAAE,eAAe;IAEhD,uFAAuF;IACvF,MAAM,CAAC,YAAY,CAAC,GAAG,EAAE,SAAS,GAAG,eAAe;IAKpD,mFAAmF;IACnF,oBAAoB,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,eAAe,GAAG,IAAI;IAK3E,QAAQ,CAAC,EAAE,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI;IAQtC,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI;IAQ1C,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,iBAAiB,CAAqD;IAE9F,iBAAiB,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI;IAkBlE,OAAO,IAAI,SAAS,EAAE;IAQtB,aAAa,IAAI,SAAS,EAAE;IAI5B,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,EAAE;IAQzC,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,SAAS,EAAE;IAqBvF,iBAAiB,IAAI,MAAM;IAU3B,UAAU,CAAC,IAAI,EAAE,aAAa,GAAG,SAAS,EAAE;IAQ5C,MAAM,CAAC,IAAI,EAAE;QACX,IAAI,EAAE,MAAM,CAAC;QACb,OAAO,EAAE,MAAM,CAAC;QAChB,QAAQ,EAAE,MAAM,CAAC;QACjB,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,IAAI,CAAC,EAAE,aAAa,CAAC;QACrB,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;KACvC,GAAG,SAAS;IAsBb,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO;CAW3D"}
|
|
@@ -90,8 +90,26 @@ let DeveloperRepository = class DeveloperRepository {
|
|
|
90
90
|
.all();
|
|
91
91
|
return rows.map(mapDeveloperRow);
|
|
92
92
|
}
|
|
93
|
-
|
|
93
|
+
findAllActive() {
|
|
94
|
+
return this.findByStatus(protocol_1.DeveloperStatus.ACTIVE);
|
|
95
|
+
}
|
|
96
|
+
findByStatus(status) {
|
|
97
|
+
const rows = this.db
|
|
98
|
+
.getDb()
|
|
99
|
+
.prepare('SELECT * FROM developers WHERE status = ? ORDER BY name')
|
|
100
|
+
.all(status);
|
|
101
|
+
return rows.map(mapDeveloperRow);
|
|
102
|
+
}
|
|
103
|
+
findBySearch(query, options) {
|
|
104
|
+
const limit = options?.limit ?? 50;
|
|
94
105
|
const pattern = (0, sql_utils_1.sanitizeForLike)(query);
|
|
106
|
+
if (options?.status) {
|
|
107
|
+
const rows = this.db
|
|
108
|
+
.getDb()
|
|
109
|
+
.prepare(`SELECT * FROM developers WHERE (name LIKE ? ESCAPE '\\' OR git_name LIKE ? ESCAPE '\\' OR git_email LIKE ? ESCAPE '\\') AND status = ? ORDER BY name LIMIT ?`)
|
|
110
|
+
.all(pattern, pattern, pattern, options.status, limit);
|
|
111
|
+
return rows.map(mapDeveloperRow);
|
|
112
|
+
}
|
|
95
113
|
const rows = this.db
|
|
96
114
|
.getDb()
|
|
97
115
|
.prepare(`SELECT * FROM developers WHERE name LIKE ? ESCAPE '\\' OR git_name LIKE ? ESCAPE '\\' OR git_email LIKE ? ESCAPE '\\' ORDER BY name LIMIT ?`)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"developer.repository.js","sourceRoot":"","sources":["../../../src/database/repositories/developer.repository.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"developer.repository.js","sourceRoot":"","sources":["../../../src/database/repositories/developer.repository.ts"],"names":[],"mappings":";;;;;;;;;;;;;AAAA,2CAA4C;AAE5C,mDAAsE;AACtE,0DAAsD;AACtD,wDAA4E;AAC5E,sDAAyD;AAEzD,MAAM,aAAa,GAAiB;IAClC,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE;IACpC,IAAI,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE;IACxC,OAAO,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE,QAAQ,EAAE;IAC/C,QAAQ,EAAE,EAAE,MAAM,EAAE,WAAW,EAAE,IAAI,EAAE,QAAQ,EAAE;IACjD,YAAY,EAAE,EAAE,MAAM,EAAE,eAAe,EAAE,IAAI,EAAE,MAAM,EAAE;IACvD,YAAY,EAAE,EAAE,MAAM,EAAE,eAAe,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE;IACzE,UAAU,EAAE,EAAE,MAAM,EAAE,aAAa,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE;IACrE,IAAI,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE;IACxC,MAAM,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE;IAC5C,SAAS,EAAE,EAAE,MAAM,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE;CACpD,CAAC;AAEF,MAAM,iBAAiB,GAA2B;IAChD,IAAI,EAAE,MAAM;IACZ,OAAO,EAAE,UAAU;IACnB,QAAQ,EAAE,WAAW;IACrB,YAAY,EAAE,eAAe;IAC7B,UAAU,EAAE,aAAa;IACzB,IAAI,EAAE,MAAM;IACZ,MAAM,EAAE,QAAQ;IAChB,YAAY,EAAE,eAAe;CAC9B,CAAC;AAEF,SAAS,eAAe,CAAC,GAA4B;IACnD,OAAO,IAAA,wBAAM,EAAY,GAAG,EAAE,aAAa,CAAC,CAAC;AAC/C,CAAC;AAGM,IAAM,mBAAmB,GAAzB,MAAM,mBAAmB;;IAC9B,YAA6B,EAAmB;QAAnB,OAAE,GAAF,EAAE,CAAiB;IAAG,CAAC;IAEpD,uFAAuF;IACvF,MAAM,CAAC,YAAY,CAAC,GAAc;QAChC,MAAM,EAAE,YAAY,EAAE,UAAU,EAAE,GAAG,IAAI,EAAE,GAAG,GAAG,CAAC;QAClD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,mFAAmF;IACnF,oBAAoB,CAAC,QAAgB,EAAE,GAAW;QAChD,MAAM,GAAG,GAAG,IAAI,CAAC,iBAAiB,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;QAClD,OAAO,GAAG,CAAC,CAAC,CAAC,qBAAmB,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAC5D,CAAC;IAED,QAAQ,CAAC,EAAU;QACjB,MAAM,GAAG,GAAG,IAAI,CAAC,EAAE;aAChB,KAAK,EAAE;aACP,OAAO,CAAC,uCAAuC,CAAC;aAChD,GAAG,CAAC,EAAE,CAAwC,CAAC;QAClD,OAAO,GAAG,CAAC,CAAC,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAC3C,CAAC;IAED,UAAU,CAAC,IAAY;QACrB,MAAM,GAAG,GAAG,IAAI,CAAC,EAAE;aAChB,KAAK,EAAE;aACP,OAAO,CAAC,yCAAyC,CAAC;aAClD,GAAG,CAAC,IAAI,CAAwC,CAAC;QACpD,OAAO,GAAG,CAAC,CAAC,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAC3C,CAAC;aAEuB,sBAAiB,GAAG,CAAC,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,UAAU,CAAU,AAApD,CAAqD;IAE9F,iBAAiB,CAAC,QAAgB,EAAE,GAAW;QAC7C,4EAA4E;QAC5E,8EAA8E;QAC9E,IACE,CAAE,qBAAmB,CAAC,iBAAuC,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAChF,CAAC;YACD,OAAO,IAAI,CAAC;QACd,CAAC;QAED,MAAM,GAAG,GAAG,IAAI,CAAC,EAAE;aAChB,KAAK,EAAE;aACP,OAAO,CACN,2EAA2E,CAC5E;aACA,GAAG,CAAC,QAAQ,EAAE,GAAG,CAAwC,CAAC;QAC7D,OAAO,GAAG,CAAC,CAAC,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAC3C,CAAC;IAED,OAAO;QACL,MAAM,IAAI,GAAG,IAAI,CAAC,EAAE;aACjB,KAAK,EAAE;aACP,OAAO,CAAC,wCAAwC,CAAC;aACjD,GAAG,EAA+B,CAAC;QACtC,OAAO,IAAI,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;IACnC,CAAC;IAED,aAAa;QACX,OAAO,IAAI,CAAC,YAAY,CAAC,0BAAe,CAAC,MAAM,CAAC,CAAC;IACnD,CAAC;IAED,YAAY,CAAC,MAAc;QACzB,MAAM,IAAI,GAAG,IAAI,CAAC,EAAE;aACjB,KAAK,EAAE;aACP,OAAO,CAAC,yDAAyD,CAAC;aAClE,GAAG,CAAC,MAAM,CAA8B,CAAC;QAC5C,OAAO,IAAI,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;IACnC,CAAC;IAED,YAAY,CAAC,KAAa,EAAE,OAA6C;QACvE,MAAM,KAAK,GAAG,OAAO,EAAE,KAAK,IAAI,EAAE,CAAC;QACnC,MAAM,OAAO,GAAG,IAAA,2BAAe,EAAC,KAAK,CAAC,CAAC;QACvC,IAAI,OAAO,EAAE,MAAM,EAAE,CAAC;YACpB,MAAM,IAAI,GAAG,IAAI,CAAC,EAAE;iBACjB,KAAK,EAAE;iBACP,OAAO,CACN,8JAA8J,CAC/J;iBACA,GAAG,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,MAAM,EAAE,KAAK,CAA8B,CAAC;YACtF,OAAO,IAAI,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;QACnC,CAAC;QACD,MAAM,IAAI,GAAG,IAAI,CAAC,EAAE;aACjB,KAAK,EAAE;aACP,OAAO,CACN,6IAA6I,CAC9I;aACA,GAAG,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,CAA8B,CAAC;QACtE,OAAO,IAAI,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;IACnC,CAAC;IAED,iBAAiB;QACf,MAAM,GAAG,GAAG,IAAI,CAAC,EAAE;aAChB,KAAK,EAAE;aACP,OAAO,CACN,sEAAsE,CACvE;aACA,GAAG,CAAC,wBAAa,CAAC,KAAK,EAAE,0BAAe,CAAC,MAAM,CAAgC,CAAC;QACnF,OAAQ,GAAmC,EAAE,GAAG,IAAI,CAAC,CAAC;IACxD,CAAC;IAED,UAAU,CAAC,IAAmB;QAC5B,MAAM,IAAI,GAAG,IAAI,CAAC,EAAE;aACjB,KAAK,EAAE;aACP,OAAO,CAAC,uDAAuD,CAAC;aAChE,GAAG,CAAC,IAAI,CAA8B,CAAC;QAC1C,OAAO,IAAI,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;IACnC,CAAC;IAED,MAAM,CAAC,IAON;QACC,MAAM,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC,OAAO,CAAC;;;;;;KAMpC,CAAC,CAAC;QAEH,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC;YACtB,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,YAAY,EAAE,IAAI,CAAC,YAAY,IAAI,IAAI;YACvC,IAAI,EAAE,IAAI,CAAC,IAAI,IAAI,wBAAa,CAAC,SAAS;YAC1C,YAAY,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,YAAY,IAAI,EAAE,CAAC;YACrD,MAAM,EAAE,0BAAe,CAAC,MAAM;SAC/B,CAAC,CAAC;QAEH,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,eAAyB,CAAE,CAAC;IAC1D,CAAC;IAED,MAAM,CAAC,EAAU,EAAE,IAA6B;QAC9C,MAAM,MAAM,GAAG,IAAA,6BAAW,EAAC,YAAY,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,iBAAiB,EAAE;YAC1E,SAAS,EAAE,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE,CACxB,GAAG,KAAK,cAAc,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS;SAC7D,CAAC,CAAC;QAEH,IAAI,CAAC,MAAM;YAAE,OAAO,KAAK,CAAC;QAE1B,MAAM,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACjD,OAAO,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC;IAC7C,CAAC;;AArJU,kDAAmB;8BAAnB,mBAAmB;IAD/B,IAAA,mBAAU,GAAE;qCAEsB,kCAAe;GADrC,mBAAmB,CAsJ/B"}
|