@cat-factory/server 0.170.1 → 0.172.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/agents/ContainerAgentExecutor.d.ts +0 -8
- package/dist/agents/ContainerAgentExecutor.d.ts.map +1 -1
- package/dist/agents/ContainerAgentExecutor.js +51 -129
- package/dist/agents/ContainerAgentExecutor.js.map +1 -1
- package/dist/agents/ContainerEnvConfigRepairer.d.ts.map +1 -1
- package/dist/agents/ContainerEnvConfigRepairer.js +6 -0
- package/dist/agents/ContainerEnvConfigRepairer.js.map +1 -1
- package/dist/agents/ContainerRepoBootstrapper.d.ts.map +1 -1
- package/dist/agents/ContainerRepoBootstrapper.js +8 -0
- package/dist/agents/ContainerRepoBootstrapper.js.map +1 -1
- package/dist/agents/agentContextRecord.d.ts +31 -0
- package/dist/agents/agentContextRecord.d.ts.map +1 -0
- package/dist/agents/agentContextRecord.js +113 -0
- package/dist/agents/agentContextRecord.js.map +1 -0
- package/dist/agents/containerAgentBody.d.ts.map +1 -1
- package/dist/agents/containerAgentBody.js +8 -0
- package/dist/agents/containerAgentBody.js.map +1 -1
- package/dist/agents/containerAgentLogging.d.ts +44 -0
- package/dist/agents/containerAgentLogging.d.ts.map +1 -0
- package/dist/agents/containerAgentLogging.js +28 -0
- package/dist/agents/containerAgentLogging.js.map +1 -0
- package/dist/config/misconfiguredApp.d.ts +2 -1
- package/dist/config/misconfiguredApp.d.ts.map +1 -1
- package/dist/config/misconfiguredApp.js +11 -2
- package/dist/config/misconfiguredApp.js.map +1 -1
- package/dist/http/cors.d.ts +10 -0
- package/dist/http/cors.d.ts.map +1 -1
- package/dist/http/cors.js +11 -0
- package/dist/http/cors.js.map +1 -1
- package/dist/http/env.d.ts +19 -1
- package/dist/http/env.d.ts.map +1 -1
- package/dist/http/errorHandler.d.ts +10 -2
- package/dist/http/errorHandler.d.ts.map +1 -1
- package/dist/http/errorHandler.js +28 -12
- package/dist/http/errorHandler.js.map +1 -1
- package/dist/http/guards.d.ts +46 -0
- package/dist/http/guards.d.ts.map +1 -0
- package/dist/http/guards.js +57 -0
- package/dist/http/guards.js.map +1 -0
- package/dist/http/requestLogging.d.ts +32 -0
- package/dist/http/requestLogging.d.ts.map +1 -0
- package/dist/http/requestLogging.js +117 -0
- package/dist/http/requestLogging.js.map +1 -0
- package/dist/index.d.ts +3 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -2
- package/dist/index.js.map +1 -1
- package/dist/modules/accounts/AccountController.d.ts +0 -10
- package/dist/modules/accounts/AccountController.d.ts.map +1 -1
- package/dist/modules/accounts/AccountController.js +56 -101
- package/dist/modules/accounts/AccountController.js.map +1 -1
- package/dist/modules/agentRuns/AgentRunController.d.ts +0 -6
- package/dist/modules/agentRuns/AgentRunController.d.ts.map +1 -1
- package/dist/modules/agentRuns/AgentRunController.js +19 -16
- package/dist/modules/agentRuns/AgentRunController.js.map +1 -1
- package/dist/modules/artifacts/ArtifactController.d.ts.map +1 -1
- package/dist/modules/artifacts/ArtifactController.js +4 -15
- package/dist/modules/artifacts/ArtifactController.js.map +1 -1
- package/dist/modules/auth/AuthController.d.ts.map +1 -1
- package/dist/modules/auth/AuthController.js +14 -9
- package/dist/modules/auth/AuthController.js.map +1 -1
- package/dist/modules/bootstrap/BootstrapController.d.ts.map +1 -1
- package/dist/modules/bootstrap/BootstrapController.js +6 -20
- package/dist/modules/bootstrap/BootstrapController.js.map +1 -1
- package/dist/modules/brainstorm/BrainstormController.d.ts.map +1 -1
- package/dist/modules/brainstorm/BrainstormController.js +17 -27
- package/dist/modules/brainstorm/BrainstormController.js.map +1 -1
- package/dist/modules/bugHunt/BugHuntController.d.ts.map +1 -1
- package/dist/modules/bugHunt/BugHuntController.js +4 -12
- package/dist/modules/bugHunt/BugHuntController.js.map +1 -1
- package/dist/modules/clarity/ClarityReviewController.d.ts.map +1 -1
- package/dist/modules/clarity/ClarityReviewController.js +18 -27
- package/dist/modules/clarity/ClarityReviewController.js.map +1 -1
- package/dist/modules/docInterview/DocInterviewController.d.ts.map +1 -1
- package/dist/modules/docInterview/DocInterviewController.js +6 -17
- package/dist/modules/docInterview/DocInterviewController.js.map +1 -1
- package/dist/modules/documents/DocumentSourceController.d.ts.map +1 -1
- package/dist/modules/documents/DocumentSourceController.js +4 -32
- package/dist/modules/documents/DocumentSourceController.js.map +1 -1
- package/dist/modules/environments/EnvironmentController.d.ts.map +1 -1
- package/dist/modules/environments/EnvironmentController.js +10 -63
- package/dist/modules/environments/EnvironmentController.js.map +1 -1
- package/dist/modules/environments/EnvironmentUserHandlerController.d.ts.map +1 -1
- package/dist/modules/environments/EnvironmentUserHandlerController.js +16 -25
- package/dist/modules/environments/EnvironmentUserHandlerController.js.map +1 -1
- package/dist/modules/fragmentLibrary/FragmentLibraryController.d.ts.map +1 -1
- package/dist/modules/fragmentLibrary/FragmentLibraryController.js +26 -60
- package/dist/modules/fragmentLibrary/FragmentLibraryController.js.map +1 -1
- package/dist/modules/github/GitHubController.d.ts.map +1 -1
- package/dist/modules/github/GitHubController.js +14 -48
- package/dist/modules/github/GitHubController.js.map +1 -1
- package/dist/modules/gitlab/GitLabController.d.ts.map +1 -1
- package/dist/modules/gitlab/GitLabController.js +3 -12
- package/dist/modules/gitlab/GitLabController.js.map +1 -1
- package/dist/modules/incidentEnrichment/IncidentEnrichmentController.d.ts.map +1 -1
- package/dist/modules/incidentEnrichment/IncidentEnrichmentController.js +3 -12
- package/dist/modules/incidentEnrichment/IncidentEnrichmentController.js.map +1 -1
- package/dist/modules/initiatives/InitiativeController.d.ts.map +1 -1
- package/dist/modules/initiatives/InitiativeController.js +4 -39
- package/dist/modules/initiatives/InitiativeController.js.map +1 -1
- package/dist/modules/kaizen/KaizenController.d.ts.map +1 -1
- package/dist/modules/kaizen/KaizenController.js +3 -10
- package/dist/modules/kaizen/KaizenController.js.map +1 -1
- package/dist/modules/localModels/LocalModelEndpointController.d.ts.map +1 -1
- package/dist/modules/localModels/LocalModelEndpointController.js +21 -31
- package/dist/modules/localModels/LocalModelEndpointController.js.map +1 -1
- package/dist/modules/localSettings/LocalSettingsController.d.ts +0 -9
- package/dist/modules/localSettings/LocalSettingsController.d.ts.map +1 -1
- package/dist/modules/localSettings/LocalSettingsController.js +9 -12
- package/dist/modules/localSettings/LocalSettingsController.js.map +1 -1
- package/dist/modules/merge/MergeTrackRecordController.d.ts.map +1 -1
- package/dist/modules/merge/MergeTrackRecordController.js +3 -10
- package/dist/modules/merge/MergeTrackRecordController.js.map +1 -1
- package/dist/modules/merge/RiskPolicyController.d.ts.map +1 -1
- package/dist/modules/merge/RiskPolicyController.js +3 -16
- package/dist/modules/merge/RiskPolicyController.js.map +1 -1
- package/dist/modules/modelPresets/ModelPresetController.d.ts.map +1 -1
- package/dist/modules/modelPresets/ModelPresetController.js +3 -16
- package/dist/modules/modelPresets/ModelPresetController.js.map +1 -1
- package/dist/modules/notificationWebhook/NotificationWebhookController.d.ts.map +1 -1
- package/dist/modules/notificationWebhook/NotificationWebhookController.js +3 -12
- package/dist/modules/notificationWebhook/NotificationWebhookController.js.map +1 -1
- package/dist/modules/notifications/NotificationController.d.ts.map +1 -1
- package/dist/modules/notifications/NotificationController.js +3 -12
- package/dist/modules/notifications/NotificationController.js.map +1 -1
- package/dist/modules/observability/PlatformObservabilityController.d.ts.map +1 -1
- package/dist/modules/observability/PlatformObservabilityController.js +7 -11
- package/dist/modules/observability/PlatformObservabilityController.js.map +1 -1
- package/dist/modules/openrouter/OpenRouterCatalogController.d.ts.map +1 -1
- package/dist/modules/openrouter/OpenRouterCatalogController.js +19 -23
- package/dist/modules/openrouter/OpenRouterCatalogController.js.map +1 -1
- package/dist/modules/packageRegistries/PackageRegistriesController.d.ts.map +1 -1
- package/dist/modules/packageRegistries/PackageRegistriesController.js +3 -12
- package/dist/modules/packageRegistries/PackageRegistriesController.js.map +1 -1
- package/dist/modules/preflight/PreflightController.d.ts.map +1 -1
- package/dist/modules/preflight/PreflightController.js +3 -8
- package/dist/modules/preflight/PreflightController.js.map +1 -1
- package/dist/modules/preview/PreviewController.d.ts.map +1 -1
- package/dist/modules/preview/PreviewController.js +4 -14
- package/dist/modules/preview/PreviewController.js.map +1 -1
- package/dist/modules/providers/ApiKeyController.d.ts +0 -1
- package/dist/modules/providers/ApiKeyController.d.ts.map +1 -1
- package/dist/modules/providers/ApiKeyController.js +21 -43
- package/dist/modules/providers/ApiKeyController.js.map +1 -1
- package/dist/modules/providers/PersonalSubscriptionController.d.ts.map +1 -1
- package/dist/modules/providers/PersonalSubscriptionController.js +15 -25
- package/dist/modules/providers/PersonalSubscriptionController.js.map +1 -1
- package/dist/modules/providers/UserSecretController.d.ts.map +1 -1
- package/dist/modules/providers/UserSecretController.js +23 -37
- package/dist/modules/providers/UserSecretController.js.map +1 -1
- package/dist/modules/providers/VendorCredentialController.d.ts.map +1 -1
- package/dist/modules/providers/VendorCredentialController.js +9 -16
- package/dist/modules/providers/VendorCredentialController.js.map +1 -1
- package/dist/modules/provisioningLogs/ProvisioningLogController.d.ts.map +1 -1
- package/dist/modules/provisioningLogs/ProvisioningLogController.js +3 -8
- package/dist/modules/provisioningLogs/ProvisioningLogController.js.map +1 -1
- package/dist/modules/publicApi/PublicApiKeyController.d.ts +0 -1
- package/dist/modules/publicApi/PublicApiKeyController.d.ts.map +1 -1
- package/dist/modules/publicApi/PublicApiKeyController.js +8 -13
- package/dist/modules/publicApi/PublicApiKeyController.js.map +1 -1
- package/dist/modules/recurring/RecurringPipelineController.d.ts.map +1 -1
- package/dist/modules/recurring/RecurringPipelineController.js +3 -18
- package/dist/modules/recurring/RecurringPipelineController.js.map +1 -1
- package/dist/modules/recurring/TrackerSettingsController.d.ts.map +1 -1
- package/dist/modules/recurring/TrackerSettingsController.js +3 -10
- package/dist/modules/recurring/TrackerSettingsController.js.map +1 -1
- package/dist/modules/releaseHealth/ReleaseHealthController.d.ts.map +1 -1
- package/dist/modules/releaseHealth/ReleaseHealthController.js +3 -18
- package/dist/modules/releaseHealth/ReleaseHealthController.js.map +1 -1
- package/dist/modules/reports/ReportsController.d.ts.map +1 -1
- package/dist/modules/reports/ReportsController.js +7 -11
- package/dist/modules/reports/ReportsController.js.map +1 -1
- package/dist/modules/requirements/RequirementReviewController.d.ts.map +1 -1
- package/dist/modules/requirements/RequirementReviewController.js +18 -36
- package/dist/modules/requirements/RequirementReviewController.js.map +1 -1
- package/dist/modules/runners/RunnerPoolController.d.ts.map +1 -1
- package/dist/modules/runners/RunnerPoolController.js +3 -18
- package/dist/modules/runners/RunnerPoolController.js.map +1 -1
- package/dist/modules/sandbox/SandboxController.d.ts.map +1 -1
- package/dist/modules/sandbox/SandboxController.js +3 -32
- package/dist/modules/sandbox/SandboxController.js.map +1 -1
- package/dist/modules/serviceFragmentDefaults/ServiceFragmentDefaultsController.d.ts.map +1 -1
- package/dist/modules/serviceFragmentDefaults/ServiceFragmentDefaultsController.js +3 -10
- package/dist/modules/serviceFragmentDefaults/ServiceFragmentDefaultsController.js.map +1 -1
- package/dist/modules/services/ServiceMountController.d.ts.map +1 -1
- package/dist/modules/services/ServiceMountController.js +3 -16
- package/dist/modules/services/ServiceMountController.js.map +1 -1
- package/dist/modules/settings/WorkspaceSettingsController.d.ts.map +1 -1
- package/dist/modules/settings/WorkspaceSettingsController.js +3 -10
- package/dist/modules/settings/WorkspaceSettingsController.js.map +1 -1
- package/dist/modules/sharedStack/SharedStackController.d.ts.map +1 -1
- package/dist/modules/sharedStack/SharedStackController.js +3 -20
- package/dist/modules/sharedStack/SharedStackController.js.map +1 -1
- package/dist/modules/skillLibrary/SkillLibraryController.d.ts.map +1 -1
- package/dist/modules/skillLibrary/SkillLibraryController.js +21 -44
- package/dist/modules/skillLibrary/SkillLibraryController.js.map +1 -1
- package/dist/modules/slack/SlackController.d.ts.map +1 -1
- package/dist/modules/slack/SlackController.js +4 -26
- package/dist/modules/slack/SlackController.js.map +1 -1
- package/dist/modules/tasks/TaskSourceController.d.ts.map +1 -1
- package/dist/modules/tasks/TaskSourceController.js +5 -47
- package/dist/modules/tasks/TaskSourceController.js.map +1 -1
- package/dist/modules/testSecrets/TestSecretsController.d.ts.map +1 -1
- package/dist/modules/testSecrets/TestSecretsController.js +3 -12
- package/dist/modules/testSecrets/TestSecretsController.js.map +1 -1
- package/dist/modules/userSettings/UserSettingsController.d.ts.map +1 -1
- package/dist/modules/userSettings/UserSettingsController.js +13 -19
- package/dist/modules/userSettings/UserSettingsController.js.map +1 -1
- package/dist/modules/validation/ValidationConfigController.d.ts.map +1 -1
- package/dist/modules/validation/ValidationConfigController.js +3 -14
- package/dist/modules/validation/ValidationConfigController.js.map +1 -1
- package/dist/modules/workspaces/WorkspaceController.d.ts.map +1 -1
- package/dist/modules/workspaces/WorkspaceController.js +9 -4
- package/dist/modules/workspaces/WorkspaceController.js.map +1 -1
- package/dist/modules/workspaces/WorkspaceMemberController.d.ts.map +1 -1
- package/dist/modules/workspaces/WorkspaceMemberController.js +10 -19
- package/dist/modules/workspaces/WorkspaceMemberController.js.map +1 -1
- package/package.json +6 -6
- package/dist/agents/storeAgentContextGate.d.ts +0 -36
- package/dist/agents/storeAgentContextGate.d.ts.map +0 -1
- package/dist/agents/storeAgentContextGate.js +0 -36
- package/dist/agents/storeAgentContextGate.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ApiKeyController.js","sourceRoot":"","sources":["../../../src/modules/providers/ApiKeyController.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,qBAAqB,EACrB,0BAA0B,EAC1B,uBAAuB,EACvB,4BAA4B,EAC5B,wBAAwB,EACxB,6BAA6B,EAC7B,wBAAwB,EACxB,6BAA6B,GAE9B,MAAM,wBAAwB,CAAA;AAE/B,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AACrD,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAA;
|
|
1
|
+
{"version":3,"file":"ApiKeyController.js","sourceRoot":"","sources":["../../../src/modules/providers/ApiKeyController.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,qBAAqB,EACrB,0BAA0B,EAC1B,uBAAuB,EACvB,4BAA4B,EAC5B,wBAAwB,EACxB,6BAA6B,EAC7B,wBAAwB,EACxB,6BAA6B,GAE9B,MAAM,wBAAwB,CAAA;AAE/B,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AACrD,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAA;AAG3B,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAA;AAC1E,OAAO,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAA;AAC5C,OAAO,EAAE,iBAAiB,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAA;AAErE,oFAAoF;AACpF,oFAAoF;AACpF,iFAAiF;AACjF,EAAE;AACF,wFAAwF;AACxF,qFAAqF;AACrF,qEAAqE;AAErE,4EAA4E;AAC5E,+EAA+E;AAC/E,SAAS,cAAc,CAAmB,CAAa;IACrD,OAAO,iBAAiB,CAAC,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,OAAO,EAAE,mCAAmC,CAAC,CAAA;AAC3F,CAAC;AAED,0FAA0F;AAC1F,SAAS,eAAe,CAAmB,CAAa;IACtD,OAAO,WAAW,CAAC,CAAC,EAAE,iCAAiC,CAAC,CAAA;AAC1D,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,OAAsB;IACjD,OAAO;QACL,EAAE,EAAE,OAAO,CAAC,EAAE;QACd,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,OAAO,EAAE,OAAO,CAAC,OAAO;QACxB,QAAQ,EAAE,OAAO,CAAC,QAAQ;QAC1B,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,SAAS,EAAE,OAAO,CAAC,SAAS;QAC5B,UAAU,EAAE,OAAO,CAAC,UAAU;QAC9B,WAAW,EAAE,OAAO,CAAC,WAAW;QAChC,YAAY,EAAE,OAAO,CAAC,YAAY;QAClC,YAAY,EAAE,OAAO,CAAC,YAAY;QAClC,OAAO,EAAE,OAAO,CAAC,OAAO;QACxB,SAAS,EAAE,OAAO,CAAC,SAAS;KAC7B,CAAA;AACH,CAAC;AAED,iFAAiF;AACjF,MAAM,UAAU,yBAAyB;IACvC,MAAM,GAAG,GAAG,IAAI,IAAI,EAAU,CAAA;IAC9B,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,0BAA0B,CAAC,gBAAgB,CAAC,CAAC,CAAA;IAE1D,cAAc,CAAC,GAAG,EAAE,4BAA4B,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;QAC5D,MAAM,OAAO,GAAG,cAAc,CAAC,CAAC,CAAC,CAAA;QACjC,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,QAAQ,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC,EAAE,aAAa,CAAC,CAAC,CAAA;QACzE,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE,EAAE,GAAG,CAAC,CAAA;IACtD,CAAC,CAAC,CAAA;IAEF,cAAc,CAAC,GAAG,EAAE,0BAA0B,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;QAC1D,MAAM,OAAO,GAAG,cAAc,CAAC,CAAC,CAAC,CAAA;QACjC,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,MAAM,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC,EAAE,aAAa,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAA;QAC/F,OAAO,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,EAAE,GAAG,CAAC,CAAA;IAC3C,CAAC,CAAC,CAAA;IAEF,cAAc,CAAC,GAAG,EAAE,6BAA6B,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;QAC7D,MAAM,OAAO,GAAG,cAAc,CAAC,CAAC,CAAC,CAAA;QACjC,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,SAAS,CACrC,WAAW,EACX,KAAK,CAAC,CAAC,EAAE,aAAa,CAAC,EACvB,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,EAAE,EACvB,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CACpB,CAAA;QACD,OAAO,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,EAAE,GAAG,CAAC,CAAA;IAC3C,CAAC,CAAC,CAAA;IAEF,cAAc,CAAC,GAAG,EAAE,6BAA6B,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;QAC7D,MAAM,OAAO,GAAG,cAAc,CAAC,CAAC,CAAC,CAAA;QACjC,MAAM,OAAO,CAAC,SAAS,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC,EAAE,aAAa,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,CAAA;QACtF,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,CAAA;IAC1B,CAAC,CAAC,CAAA;IAEF,OAAO,GAAG,CAAA;AACZ,CAAC;AAED,+EAA+E;AAC/E,MAAM,UAAU,oBAAoB;IAClC,MAAM,GAAG,GAAG,IAAI,IAAI,EAAU,CAAA;IAE9B,cAAc,CAAC,GAAG,EAAE,uBAAuB,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;QACvD,MAAM,OAAO,GAAG,cAAc,CAAC,CAAC,CAAC,CAAA;QACjC,MAAM,IAAI,GAAG,eAAe,CAAC,CAAC,CAAC,CAAA;QAC/B,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,QAAQ,CAAC,MAAM,EAAE,IAAI,CAAC,EAAE,CAAC,CAAA;QACpD,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE,EAAE,GAAG,CAAC,CAAA;IACtD,CAAC,CAAC,CAAA;IAEF,cAAc,CAAC,GAAG,EAAE,qBAAqB,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;QACrD,MAAM,OAAO,GAAG,cAAc,CAAC,CAAC,CAAC,CAAA;QACjC,MAAM,IAAI,GAAG,eAAe,CAAC,CAAC,CAAC,CAAA;QAC/B,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAA;QAC1E,OAAO,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,EAAE,GAAG,CAAC,CAAA;IAC3C,CAAC,CAAC,CAAA;IAEF,cAAc,CAAC,GAAG,EAAE,wBAAwB,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;QACxD,MAAM,OAAO,GAAG,cAAc,CAAC,CAAC,CAAC,CAAA;QACjC,MAAM,IAAI,GAAG,eAAe,CAAC,CAAC,CAAC,CAAA;QAC/B,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,SAAS,CACrC,MAAM,EACN,IAAI,CAAC,EAAE,EACP,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,EAAE,EACvB,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CACpB,CAAA;QACD,OAAO,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,EAAE,GAAG,CAAC,CAAA;IAC3C,CAAC,CAAC,CAAA;IAEF,cAAc,CAAC,GAAG,EAAE,wBAAwB,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;QACxD,MAAM,OAAO,GAAG,cAAc,CAAC,CAAC,CAAC,CAAA;QACjC,MAAM,IAAI,GAAG,eAAe,CAAC,CAAC,CAAC,CAAA;QAC/B,MAAM,OAAO,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,CAAA;QACjE,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,CAAA;IAC1B,CAAC,CAAC,CAAA;IAEF,OAAO,GAAG,CAAA;AACZ,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PersonalSubscriptionController.d.ts","sourceRoot":"","sources":["../../../src/modules/providers/PersonalSubscriptionController.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAA;
|
|
1
|
+
{"version":3,"file":"PersonalSubscriptionController.d.ts","sourceRoot":"","sources":["../../../src/modules/providers/PersonalSubscriptionController.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAA;AAE3B,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAuB/C,wBAAgB,8BAA8B,IAAI,IAAI,CAAC,MAAM,CAAC,CAyB7D"}
|
|
@@ -2,47 +2,37 @@ import { listPersonalSubscriptionsContract, removePersonalSubscriptionContract,
|
|
|
2
2
|
import * as v from 'valibot';
|
|
3
3
|
import { buildHonoRoute } from '@toad-contracts/hono';
|
|
4
4
|
import { Hono } from 'hono';
|
|
5
|
-
import {
|
|
5
|
+
import { requireCapability, requireUser } from '../../http/guards.js';
|
|
6
6
|
// Per-USER individual-usage subscription endpoints (Claude). Unlike the workspace
|
|
7
7
|
// vendor-credential pool, these are scoped to the signed-in user: a personal
|
|
8
8
|
// subscription is licensed for that individual only, stored DOUBLE-encrypted (a
|
|
9
9
|
// personal-password layer inside the system layer), and never shared. Mounted at the
|
|
10
10
|
// root (not under a workspace) and require a signed-in user — with auth disabled there
|
|
11
11
|
// is no individual to own a personal credential.
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
12
|
+
/** Resolve the personal-subscription store, or refuse with a 503 naming what isn't wired. */
|
|
13
|
+
function requirePersonalSubscriptions(c) {
|
|
14
|
+
return requireCapability(c.get('container').personalSubscriptions, 'Personal subscription storage is not configured');
|
|
15
|
+
}
|
|
16
|
+
/** The signed-in caller, or a 401 wording the prompt for what this controller manages. */
|
|
17
|
+
function requireSignedIn(c) {
|
|
18
|
+
return requireUser(c, 'Sign in to manage personal subscriptions');
|
|
19
|
+
}
|
|
18
20
|
export function personalSubscriptionController() {
|
|
19
21
|
const app = new Hono();
|
|
20
22
|
buildHonoRoute(app, listPersonalSubscriptionsContract, async (c) => {
|
|
21
|
-
const personal = c
|
|
22
|
-
|
|
23
|
-
return unavailable();
|
|
24
|
-
const user = c.get('user');
|
|
25
|
-
if (!user)
|
|
26
|
-
return signInRequired();
|
|
23
|
+
const personal = requirePersonalSubscriptions(c);
|
|
24
|
+
const user = requireSignedIn(c);
|
|
27
25
|
return c.json({ subscriptions: await personal.list(user.id) }, 200);
|
|
28
26
|
});
|
|
29
27
|
buildHonoRoute(app, storePersonalSubscriptionContract, async (c) => {
|
|
30
|
-
const personal = c
|
|
31
|
-
|
|
32
|
-
return unavailable();
|
|
33
|
-
const user = c.get('user');
|
|
34
|
-
if (!user)
|
|
35
|
-
return signInRequired();
|
|
28
|
+
const personal = requirePersonalSubscriptions(c);
|
|
29
|
+
const user = requireSignedIn(c);
|
|
36
30
|
const status = await personal.store(user.id, c.req.valid('json'));
|
|
37
31
|
return c.json(status, 201);
|
|
38
32
|
});
|
|
39
33
|
buildHonoRoute(app, removePersonalSubscriptionContract, async (c) => {
|
|
40
|
-
const personal = c
|
|
41
|
-
|
|
42
|
-
return unavailable();
|
|
43
|
-
const user = c.get('user');
|
|
44
|
-
if (!user)
|
|
45
|
-
return signInRequired();
|
|
34
|
+
const personal = requirePersonalSubscriptions(c);
|
|
35
|
+
const user = requireSignedIn(c);
|
|
46
36
|
const vendor = v.parse(subscriptionVendorSchema, c.req.valid('param').vendor);
|
|
47
37
|
await personal.remove(user.id, vendor);
|
|
48
38
|
return c.body(null, 204);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PersonalSubscriptionController.js","sourceRoot":"","sources":["../../../src/modules/providers/PersonalSubscriptionController.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,iCAAiC,EACjC,kCAAkC,EAClC,iCAAiC,EACjC,wBAAwB,GACzB,MAAM,wBAAwB,CAAA;AAC/B,OAAO,KAAK,CAAC,MAAM,SAAS,CAAA;AAC5B,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AACrD,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAA;
|
|
1
|
+
{"version":3,"file":"PersonalSubscriptionController.js","sourceRoot":"","sources":["../../../src/modules/providers/PersonalSubscriptionController.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,iCAAiC,EACjC,kCAAkC,EAClC,iCAAiC,EACjC,wBAAwB,GACzB,MAAM,wBAAwB,CAAA;AAC/B,OAAO,KAAK,CAAC,MAAM,SAAS,CAAA;AAC5B,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AACrD,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAA;AAG3B,OAAO,EAAE,iBAAiB,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAA;AAErE,kFAAkF;AAClF,6EAA6E;AAC7E,gFAAgF;AAChF,qFAAqF;AACrF,uFAAuF;AACvF,iDAAiD;AAEjD,6FAA6F;AAC7F,SAAS,4BAA4B,CAAmB,CAAa;IACnE,OAAO,iBAAiB,CACtB,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,qBAAqB,EACxC,iDAAiD,CAClD,CAAA;AACH,CAAC;AAED,0FAA0F;AAC1F,SAAS,eAAe,CAAmB,CAAa;IACtD,OAAO,WAAW,CAAC,CAAC,EAAE,0CAA0C,CAAC,CAAA;AACnE,CAAC;AAED,MAAM,UAAU,8BAA8B;IAC5C,MAAM,GAAG,GAAG,IAAI,IAAI,EAAU,CAAA;IAE9B,cAAc,CAAC,GAAG,EAAE,iCAAiC,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;QACjE,MAAM,QAAQ,GAAG,4BAA4B,CAAC,CAAC,CAAC,CAAA;QAChD,MAAM,IAAI,GAAG,eAAe,CAAC,CAAC,CAAC,CAAA;QAC/B,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,aAAa,EAAE,MAAM,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,GAAG,CAAC,CAAA;IACrE,CAAC,CAAC,CAAA;IAEF,cAAc,CAAC,GAAG,EAAE,iCAAiC,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;QACjE,MAAM,QAAQ,GAAG,4BAA4B,CAAC,CAAC,CAAC,CAAA;QAChD,MAAM,IAAI,GAAG,eAAe,CAAC,CAAC,CAAC,CAAA;QAC/B,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAA;QACjE,OAAO,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;IAC5B,CAAC,CAAC,CAAA;IAEF,cAAc,CAAC,GAAG,EAAE,kCAAkC,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;QAClE,MAAM,QAAQ,GAAG,4BAA4B,CAAC,CAAC,CAAC,CAAA;QAChD,MAAM,IAAI,GAAG,eAAe,CAAC,CAAC,CAAC,CAAA;QAC/B,MAAM,MAAM,GAAG,CAAC,CAAC,KAAK,CAAC,wBAAwB,EAAE,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAA;QAC7E,MAAM,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,EAAE,MAAM,CAAC,CAAA;QACtC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,CAAA;IAC1B,CAAC,CAAC,CAAA;IAEF,OAAO,GAAG,CAAA;AACZ,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"UserSecretController.d.ts","sourceRoot":"","sources":["../../../src/modules/providers/UserSecretController.ts"],"names":[],"mappings":"AAUA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAA;
|
|
1
|
+
{"version":3,"file":"UserSecretController.d.ts","sourceRoot":"","sources":["../../../src/modules/providers/UserSecretController.ts"],"names":[],"mappings":"AAUA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAA;AAE3B,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAuB/C,wBAAgB,oBAAoB,IAAI,IAAI,CAAC,MAAM,CAAC,CA8CnD"}
|
|
@@ -2,35 +2,33 @@ import { getUserSecretDescriptorContract, listUserSecretsContract, removeUserSec
|
|
|
2
2
|
import * as v from 'valibot';
|
|
3
3
|
import { buildHonoRoute } from '@toad-contracts/hono';
|
|
4
4
|
import { Hono } from 'hono';
|
|
5
|
-
import {
|
|
5
|
+
import { requireCapability, requireUser } from '../../http/guards.js';
|
|
6
6
|
// Per-USER generic secrets (a GitHub PAT today; future repository/provider tokens as
|
|
7
7
|
// new kinds). Scoped to the signed-in user — mounted at the root (not under a
|
|
8
8
|
// workspace) and require a signed-in user, like personal subscriptions / local model
|
|
9
9
|
// runners. The secret is write-only; only status metadata is returned.
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
10
|
+
/** Resolve the per-user secret store, or refuse with a 503 naming what isn't wired. */
|
|
11
|
+
function requireUserSecrets(c) {
|
|
12
|
+
return requireCapability(c.get('container').userSecrets, 'User secret storage is not configured');
|
|
13
|
+
}
|
|
14
|
+
/** The signed-in caller, or a 401 wording the prompt for what this controller manages. */
|
|
15
|
+
function requireSignedIn(c) {
|
|
16
|
+
return requireUser(c, 'Sign in to manage your secrets');
|
|
17
|
+
}
|
|
18
|
+
/** The same 401, for a route that needs a signed-in caller but reads nothing off them. */
|
|
19
|
+
function assertSignedIn(c) {
|
|
20
|
+
requireSignedIn(c);
|
|
21
|
+
}
|
|
16
22
|
export function userSecretController() {
|
|
17
23
|
const app = new Hono();
|
|
18
24
|
buildHonoRoute(app, listUserSecretsContract, async (c) => {
|
|
19
|
-
const store = c
|
|
20
|
-
|
|
21
|
-
return unavailable();
|
|
22
|
-
const user = c.get('user');
|
|
23
|
-
if (!user)
|
|
24
|
-
return signInRequired();
|
|
25
|
+
const store = requireUserSecrets(c);
|
|
26
|
+
const user = requireSignedIn(c);
|
|
25
27
|
return c.json({ secrets: await store.list(user.id), descriptors: store.describeAll() }, 200);
|
|
26
28
|
});
|
|
27
29
|
buildHonoRoute(app, getUserSecretDescriptorContract, async (c) => {
|
|
28
|
-
const store = c
|
|
29
|
-
|
|
30
|
-
return unavailable();
|
|
31
|
-
const user = c.get('user');
|
|
32
|
-
if (!user)
|
|
33
|
-
return signInRequired();
|
|
30
|
+
const store = requireUserSecrets(c);
|
|
31
|
+
assertSignedIn(c);
|
|
34
32
|
const kind = v.parse(userSecretKindSchema, c.req.valid('param').kind);
|
|
35
33
|
const descriptor = store.describe(kind);
|
|
36
34
|
if (!descriptor)
|
|
@@ -38,22 +36,14 @@ export function userSecretController() {
|
|
|
38
36
|
return c.json(descriptor, 200);
|
|
39
37
|
});
|
|
40
38
|
buildHonoRoute(app, storeUserSecretContract, async (c) => {
|
|
41
|
-
const store = c
|
|
42
|
-
|
|
43
|
-
return unavailable();
|
|
44
|
-
const user = c.get('user');
|
|
45
|
-
if (!user)
|
|
46
|
-
return signInRequired();
|
|
39
|
+
const store = requireUserSecrets(c);
|
|
40
|
+
const user = requireSignedIn(c);
|
|
47
41
|
const kind = v.parse(userSecretKindSchema, c.req.valid('param').kind);
|
|
48
42
|
return c.json(await store.store(user.id, kind, c.req.valid('json')), 201);
|
|
49
43
|
});
|
|
50
44
|
buildHonoRoute(app, removeUserSecretContract, async (c) => {
|
|
51
|
-
const store = c
|
|
52
|
-
|
|
53
|
-
return unavailable();
|
|
54
|
-
const user = c.get('user');
|
|
55
|
-
if (!user)
|
|
56
|
-
return signInRequired();
|
|
45
|
+
const store = requireUserSecrets(c);
|
|
46
|
+
const user = requireSignedIn(c);
|
|
57
47
|
const kind = v.parse(userSecretKindSchema, c.req.valid('param').kind);
|
|
58
48
|
await store.remove(user.id, kind);
|
|
59
49
|
// Revoke the fail-closed access cache too: without their PAT the user no longer has
|
|
@@ -64,12 +54,8 @@ export function userSecretController() {
|
|
|
64
54
|
});
|
|
65
55
|
// Probe a (not-yet-saved) secret server-side so the UI can validate before save.
|
|
66
56
|
buildHonoRoute(app, testUserSecretContract, async (c) => {
|
|
67
|
-
const store = c
|
|
68
|
-
|
|
69
|
-
return unavailable();
|
|
70
|
-
const user = c.get('user');
|
|
71
|
-
if (!user)
|
|
72
|
-
return signInRequired();
|
|
57
|
+
const store = requireUserSecrets(c);
|
|
58
|
+
assertSignedIn(c);
|
|
73
59
|
const kind = v.parse(userSecretKindSchema, c.req.valid('param').kind);
|
|
74
60
|
return c.json(await store.testConnection(kind, c.req.valid('json')), 200);
|
|
75
61
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"UserSecretController.js","sourceRoot":"","sources":["../../../src/modules/providers/UserSecretController.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,+BAA+B,EAC/B,uBAAuB,EACvB,wBAAwB,EACxB,uBAAuB,EACvB,sBAAsB,EACtB,oBAAoB,GACrB,MAAM,wBAAwB,CAAA;AAC/B,OAAO,KAAK,CAAC,MAAM,SAAS,CAAA;AAC5B,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AACrD,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAA;
|
|
1
|
+
{"version":3,"file":"UserSecretController.js","sourceRoot":"","sources":["../../../src/modules/providers/UserSecretController.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"VendorCredentialController.d.ts","sourceRoot":"","sources":["../../../src/modules/providers/VendorCredentialController.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAA;
|
|
1
|
+
{"version":3,"file":"VendorCredentialController.d.ts","sourceRoot":"","sources":["../../../src/modules/providers/VendorCredentialController.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAA;AAE3B,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAmC/C,wBAAgB,0BAA0B,IAAI,IAAI,CAAC,MAAM,CAAC,CAkCzD"}
|
|
@@ -3,15 +3,12 @@ import { buildHonoRoute } from '@toad-contracts/hono';
|
|
|
3
3
|
import { Hono } from 'hono';
|
|
4
4
|
import { requireWorkspacePermission } from '../../http/workspaceAccess.js';
|
|
5
5
|
import { param } from '../../http/params.js';
|
|
6
|
-
import {
|
|
6
|
+
import { requireCapability } from '../../http/guards.js';
|
|
7
7
|
// Workspace-scoped vendor-credential (subscription token pool) endpoints. A user
|
|
8
8
|
// connects one or more Claude Pro/Max OAuth tokens or ChatGPT auth.json bundles;
|
|
9
9
|
// the Claude Code / Codex harnesses lease them with usage-aware rotation. Tokens
|
|
10
10
|
// are write-only — only metadata + rolling-window usage is ever returned. Mounted
|
|
11
11
|
// under `/workspaces/:workspaceId`.
|
|
12
|
-
const unavailable = () => {
|
|
13
|
-
throw new UnavailableError('Subscription credential storage is not configured');
|
|
14
|
-
};
|
|
15
12
|
/** Project the service summary onto the wire type (already secret-free). */
|
|
16
13
|
function toWire(summary) {
|
|
17
14
|
return {
|
|
@@ -27,35 +24,31 @@ function toWire(summary) {
|
|
|
27
24
|
isDefault: summary.isDefault,
|
|
28
25
|
};
|
|
29
26
|
}
|
|
27
|
+
/** Resolve the subscription-credential store, or refuse with a 503 naming what isn't wired. */
|
|
28
|
+
function requireSubscriptions(c) {
|
|
29
|
+
return requireCapability(c.get('container').subscriptions, 'Subscription credential storage is not configured');
|
|
30
|
+
}
|
|
30
31
|
export function vendorCredentialController() {
|
|
31
32
|
const app = new Hono();
|
|
32
33
|
app.use('*', requireWorkspacePermission('secrets.manage'));
|
|
33
34
|
buildHonoRoute(app, listVendorCredentialsContract, async (c) => {
|
|
34
|
-
const subscriptions = c
|
|
35
|
-
if (!subscriptions)
|
|
36
|
-
return unavailable();
|
|
35
|
+
const subscriptions = requireSubscriptions(c);
|
|
37
36
|
const tokens = await subscriptions.listTokens(param(c, 'workspaceId'));
|
|
38
37
|
return c.json({ credentials: tokens.map(toWire) }, 200);
|
|
39
38
|
});
|
|
40
39
|
buildHonoRoute(app, addVendorCredentialContract, async (c) => {
|
|
41
|
-
const subscriptions = c
|
|
42
|
-
if (!subscriptions)
|
|
43
|
-
return unavailable();
|
|
40
|
+
const subscriptions = requireSubscriptions(c);
|
|
44
41
|
const input = c.req.valid('json');
|
|
45
42
|
const summary = await subscriptions.addToken(param(c, 'workspaceId'), input);
|
|
46
43
|
return c.json(toWire(summary), 201);
|
|
47
44
|
});
|
|
48
45
|
buildHonoRoute(app, updateVendorCredentialContract, async (c) => {
|
|
49
|
-
const subscriptions = c
|
|
50
|
-
if (!subscriptions)
|
|
51
|
-
return unavailable();
|
|
46
|
+
const subscriptions = requireSubscriptions(c);
|
|
52
47
|
const summary = await subscriptions.updateToken(param(c, 'workspaceId'), c.req.valid('param').id, c.req.valid('json'));
|
|
53
48
|
return c.json(toWire(summary), 200);
|
|
54
49
|
});
|
|
55
50
|
buildHonoRoute(app, removeVendorCredentialContract, async (c) => {
|
|
56
|
-
const subscriptions = c
|
|
57
|
-
if (!subscriptions)
|
|
58
|
-
return unavailable();
|
|
51
|
+
const subscriptions = requireSubscriptions(c);
|
|
59
52
|
await subscriptions.removeToken(param(c, 'workspaceId'), c.req.valid('param').id);
|
|
60
53
|
return c.body(null, 204);
|
|
61
54
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"VendorCredentialController.js","sourceRoot":"","sources":["../../../src/modules/providers/VendorCredentialController.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,2BAA2B,EAC3B,6BAA6B,EAC7B,8BAA8B,EAC9B,8BAA8B,GAE/B,MAAM,wBAAwB,CAAA;AAE/B,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AACrD,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAA;
|
|
1
|
+
{"version":3,"file":"VendorCredentialController.js","sourceRoot":"","sources":["../../../src/modules/providers/VendorCredentialController.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ProvisioningLogController.d.ts","sourceRoot":"","sources":["../../../src/modules/provisioningLogs/ProvisioningLogController.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAA;AAG3B,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;
|
|
1
|
+
{"version":3,"file":"ProvisioningLogController.d.ts","sourceRoot":"","sources":["../../../src/modules/provisioningLogs/ProvisioningLogController.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAA;AAG3B,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAsB/C;;;;;GAKG;AACH,wBAAgB,yBAAyB,IAAI,IAAI,CAAC,MAAM,CAAC,CAexD"}
|
|
@@ -3,14 +3,11 @@ import { validate } from '@toad-contracts/core';
|
|
|
3
3
|
import { buildHonoRoute } from '@toad-contracts/hono';
|
|
4
4
|
import { Hono } from 'hono';
|
|
5
5
|
import { param } from '../../http/params.js';
|
|
6
|
-
import {
|
|
7
|
-
/** Resolve the provisioning-log module or
|
|
6
|
+
import { requireCapability } from '../../http/guards.js';
|
|
7
|
+
/** Resolve the provisioning-log module, or refuse with a 503 naming what isn't wired. */
|
|
8
8
|
function requireProvisioningLogs(c) {
|
|
9
|
-
return c.get('container').provisioningLogs
|
|
9
|
+
return requireCapability(c.get('container').provisioningLogs, 'Provisioning log is not configured');
|
|
10
10
|
}
|
|
11
|
-
const unavailable = () => {
|
|
12
|
-
throw new UnavailableError('Provisioning log is not configured');
|
|
13
|
-
};
|
|
14
11
|
/** Drop undefined query params so valibot's optionals don't see empty strings. */
|
|
15
12
|
function presentQuery(c) {
|
|
16
13
|
const out = {};
|
|
@@ -31,8 +28,6 @@ export function provisioningLogController() {
|
|
|
31
28
|
const app = new Hono();
|
|
32
29
|
buildHonoRoute(app, listProvisioningLogsContract, async (c) => {
|
|
33
30
|
const logs = requireProvisioningLogs(c);
|
|
34
|
-
if (!logs)
|
|
35
|
-
return unavailable();
|
|
36
31
|
// Validate through the contract schema so an invalid query yields the same central
|
|
37
32
|
// `{ code: 'validation' }` 400 every other route does (via `handleError`), instead of a
|
|
38
33
|
// one-off envelope. `presentQuery` still drops empty/absent params so the optionals
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ProvisioningLogController.js","sourceRoot":"","sources":["../../../src/modules/provisioningLogs/ProvisioningLogController.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,4BAA4B,EAAE,0BAA0B,EAAE,MAAM,wBAAwB,CAAA;AACjG,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAA;AAC/C,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AACrD,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAA;AAI3B,OAAO,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAA;AAC5C,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"ProvisioningLogController.js","sourceRoot":"","sources":["../../../src/modules/provisioningLogs/ProvisioningLogController.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,4BAA4B,EAAE,0BAA0B,EAAE,MAAM,wBAAwB,CAAA;AACjG,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAA;AAC/C,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AACrD,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAA;AAI3B,OAAO,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAA;AAC5C,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAA;AAExD,yFAAyF;AACzF,SAAS,uBAAuB,CAAmB,CAAa;IAC9D,OAAO,iBAAiB,CACtB,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,gBAAgB,EACnC,oCAAoC,CACrC,CAAA;AACH,CAAC;AAED,kFAAkF;AAClF,SAAS,YAAY,CAAmB,CAAa;IACnD,MAAM,GAAG,GAA2B,EAAE,CAAA;IACtC,KAAK,MAAM,GAAG,IAAI,CAAC,WAAW,EAAE,aAAa,EAAE,UAAU,EAAE,OAAO,CAAC,EAAE,CAAC;QACpE,MAAM,KAAK,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;QAC9B,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,EAAE;YAAE,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK,CAAA;IAC3D,CAAC;IACD,OAAO,GAAG,CAAA;AACZ,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,yBAAyB;IACvC,MAAM,GAAG,GAAG,IAAI,IAAI,EAAU,CAAA;IAE9B,cAAc,CAAC,GAAG,EAAE,4BAA4B,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;QAC5D,MAAM,IAAI,GAAG,uBAAuB,CAAC,CAAC,CAAC,CAAA;QACvC,mFAAmF;QACnF,wFAAwF;QACxF,oFAAoF;QACpF,4BAA4B;QAC5B,MAAM,KAAK,GAAG,MAAM,QAAQ,CAAC,0BAA0B,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC,CAAA;QACzE,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,aAAa,CAAC,EAAE,KAAK,CAAC,CAAA;QACvE,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,EAAE,GAAG,CAAC,CAAA;IACjC,CAAC,CAAC,CAAA;IAEF,OAAO,GAAG,CAAA;AACZ,CAAC"}
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import { Hono } from 'hono';
|
|
2
2
|
import type { AppEnv } from '../../http/env.js';
|
|
3
|
-
/** Public-API-key management routes, mounted under `/workspaces/:workspaceId`. */
|
|
4
3
|
export declare function publicApiKeyController(): Hono<AppEnv>;
|
|
5
4
|
//# sourceMappingURL=PublicApiKeyController.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PublicApiKeyController.d.ts","sourceRoot":"","sources":["../../../src/modules/publicApi/PublicApiKeyController.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAA;
|
|
1
|
+
{"version":3,"file":"PublicApiKeyController.d.ts","sourceRoot":"","sources":["../../../src/modules/publicApi/PublicApiKeyController.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAA;AAE3B,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAgC/C,wBAAgB,sBAAsB,IAAI,IAAI,CAAC,MAAM,CAAC,CA0CrD"}
|
|
@@ -3,15 +3,12 @@ import { buildHonoRoute } from '@toad-contracts/hono';
|
|
|
3
3
|
import { Hono } from 'hono';
|
|
4
4
|
import { requireWorkspacePermission } from '../../http/workspaceAccess.js';
|
|
5
5
|
import { param } from '../../http/params.js';
|
|
6
|
-
import {
|
|
6
|
+
import { requireCapability } from '../../http/guards.js';
|
|
7
7
|
// Management of INBOUND public-API keys, mounted under `/workspaces/:workspaceId` — so these
|
|
8
8
|
// routes are session-authed and pass through the per-workspace authorization gate (only a member
|
|
9
9
|
// of the workspace's account reaches them). A workspace owner mints/lists/revokes the keys an
|
|
10
10
|
// external system then presents to the `/api/v1` surface (see PublicApiController). The raw key is
|
|
11
11
|
// returned exactly once, on create; thereafter only metadata is exposed.
|
|
12
|
-
const unavailable = () => {
|
|
13
|
-
throw new UnavailableError('Public API keys are not configured');
|
|
14
|
-
};
|
|
15
12
|
/** Project a stored record onto the secret-free wire type. */
|
|
16
13
|
function publicApiKeyToWire(record) {
|
|
17
14
|
return {
|
|
@@ -27,21 +24,21 @@ function publicApiKeyToWire(record) {
|
|
|
27
24
|
};
|
|
28
25
|
}
|
|
29
26
|
/** Public-API-key management routes, mounted under `/workspaces/:workspaceId`. */
|
|
27
|
+
/** Resolve the public API-key store, or refuse with a 503 naming what isn't wired. */
|
|
28
|
+
function requirePublicApiKeys(c) {
|
|
29
|
+
return requireCapability(c.get('container').publicApiKeys, 'Public API keys are not configured');
|
|
30
|
+
}
|
|
30
31
|
export function publicApiKeyController() {
|
|
31
32
|
const app = new Hono();
|
|
32
33
|
app.use('*', requireWorkspacePermission('secrets.manage'));
|
|
33
34
|
buildHonoRoute(app, listPublicApiKeysContract, async (c) => {
|
|
34
|
-
const publicApiKeys = c
|
|
35
|
-
if (!publicApiKeys)
|
|
36
|
-
return unavailable();
|
|
35
|
+
const publicApiKeys = requirePublicApiKeys(c);
|
|
37
36
|
const keys = await publicApiKeys.list(param(c, 'workspaceId'));
|
|
38
37
|
return c.json({ keys: keys.map(publicApiKeyToWire) }, 200);
|
|
39
38
|
});
|
|
40
39
|
buildHonoRoute(app, createPublicApiKeyContract, async (c) => {
|
|
41
40
|
const container = c.get('container');
|
|
42
|
-
const publicApiKeys = container.publicApiKeys;
|
|
43
|
-
if (!publicApiKeys)
|
|
44
|
-
return unavailable();
|
|
41
|
+
const publicApiKeys = requireCapability(container.publicApiKeys, 'Public API keys are not configured');
|
|
45
42
|
const workspaceId = param(c, 'workspaceId');
|
|
46
43
|
// Resolve the owning account; the public API is an account-scoped feature, so refuse to mint a
|
|
47
44
|
// key for a missing workspace (`undefined`) or a legacy account-less board (`null`) rather than
|
|
@@ -57,9 +54,7 @@ export function publicApiKeyController() {
|
|
|
57
54
|
return c.json({ key: publicApiKeyToWire(record), secret }, 201);
|
|
58
55
|
});
|
|
59
56
|
buildHonoRoute(app, revokePublicApiKeyContract, async (c) => {
|
|
60
|
-
const publicApiKeys = c
|
|
61
|
-
if (!publicApiKeys)
|
|
62
|
-
return unavailable();
|
|
57
|
+
const publicApiKeys = requirePublicApiKeys(c);
|
|
63
58
|
await publicApiKeys.revoke(param(c, 'workspaceId'), c.req.valid('param').id);
|
|
64
59
|
return c.body(null, 204);
|
|
65
60
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PublicApiKeyController.js","sourceRoot":"","sources":["../../../src/modules/publicApi/PublicApiKeyController.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,0BAA0B,EAC1B,yBAAyB,EACzB,0BAA0B,GAE3B,MAAM,wBAAwB,CAAA;AAE/B,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AACrD,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAA;
|
|
1
|
+
{"version":3,"file":"PublicApiKeyController.js","sourceRoot":"","sources":["../../../src/modules/publicApi/PublicApiKeyController.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RecurringPipelineController.d.ts","sourceRoot":"","sources":["../../../src/modules/recurring/RecurringPipelineController.ts"],"names":[],"mappings":"AAUA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAA;AAE3B,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;
|
|
1
|
+
{"version":3,"file":"RecurringPipelineController.d.ts","sourceRoot":"","sources":["../../../src/modules/recurring/RecurringPipelineController.ts"],"names":[],"mappings":"AAUA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAA;AAE3B,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAU/C;;;GAGG;AACH,wBAAgB,2BAA2B,IAAI,IAAI,CAAC,MAAM,CAAC,CA4E1D"}
|
|
@@ -3,14 +3,11 @@ import { buildHonoRoute } from '@toad-contracts/hono';
|
|
|
3
3
|
import { Hono } from 'hono';
|
|
4
4
|
import { param } from '../../http/params.js';
|
|
5
5
|
import { personalGateForBlock, readPersonalPassword } from '../providers/personalCredentialGate.js';
|
|
6
|
-
import {
|
|
7
|
-
/** Resolve the recurring-pipeline module or
|
|
6
|
+
import { requireCapability } from '../../http/guards.js';
|
|
7
|
+
/** Resolve the recurring-pipeline module, or refuse with a 503 naming what isn't wired. */
|
|
8
8
|
function requireRecurring(c) {
|
|
9
|
-
return c.get('container').recurring
|
|
9
|
+
return requireCapability(c.get('container').recurring, 'Recurring pipelines are not configured');
|
|
10
10
|
}
|
|
11
|
-
const unavailable = () => {
|
|
12
|
-
throw new UnavailableError('Recurring pipelines are not configured');
|
|
13
|
-
};
|
|
14
11
|
/**
|
|
15
12
|
* CRUD + run history for a workspace's recurring pipelines (schedules that re-run a
|
|
16
13
|
* pipeline against a service on a cadence). Mounted under `/workspaces/:workspaceId`.
|
|
@@ -19,41 +16,29 @@ export function recurringPipelineController() {
|
|
|
19
16
|
const app = new Hono();
|
|
20
17
|
buildHonoRoute(app, listSchedulesContract, async (c) => {
|
|
21
18
|
const recurring = requireRecurring(c);
|
|
22
|
-
if (!recurring)
|
|
23
|
-
return unavailable();
|
|
24
19
|
return c.json(await recurring.service.list(param(c, 'workspaceId')), 200);
|
|
25
20
|
});
|
|
26
21
|
buildHonoRoute(app, createScheduleContract, async (c) => {
|
|
27
22
|
const recurring = requireRecurring(c);
|
|
28
|
-
if (!recurring)
|
|
29
|
-
return unavailable();
|
|
30
23
|
const schedule = await recurring.service.create(param(c, 'workspaceId'), c.req.valid('json'));
|
|
31
24
|
return c.json(schedule, 201);
|
|
32
25
|
});
|
|
33
26
|
buildHonoRoute(app, updateScheduleContract, async (c) => {
|
|
34
27
|
const recurring = requireRecurring(c);
|
|
35
|
-
if (!recurring)
|
|
36
|
-
return unavailable();
|
|
37
28
|
const schedule = await recurring.service.update(param(c, 'workspaceId'), c.req.valid('param').scheduleId, c.req.valid('json'));
|
|
38
29
|
return c.json(schedule, 200);
|
|
39
30
|
});
|
|
40
31
|
buildHonoRoute(app, deleteScheduleContract, async (c) => {
|
|
41
32
|
const recurring = requireRecurring(c);
|
|
42
|
-
if (!recurring)
|
|
43
|
-
return unavailable();
|
|
44
33
|
await recurring.service.remove(param(c, 'workspaceId'), c.req.valid('param').scheduleId);
|
|
45
34
|
return c.body(null, 204);
|
|
46
35
|
});
|
|
47
36
|
buildHonoRoute(app, listScheduleRunsContract, async (c) => {
|
|
48
37
|
const recurring = requireRecurring(c);
|
|
49
|
-
if (!recurring)
|
|
50
|
-
return unavailable();
|
|
51
38
|
return c.json(await recurring.service.listRuns(param(c, 'workspaceId'), c.req.valid('param').scheduleId), 200);
|
|
52
39
|
});
|
|
53
40
|
buildHonoRoute(app, runScheduleNowContract, async (c) => {
|
|
54
41
|
const recurring = requireRecurring(c);
|
|
55
|
-
if (!recurring)
|
|
56
|
-
return unavailable();
|
|
57
42
|
const container = c.get('container');
|
|
58
43
|
const workspaceId = param(c, 'workspaceId');
|
|
59
44
|
const scheduleId = c.req.valid('param').scheduleId;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RecurringPipelineController.js","sourceRoot":"","sources":["../../../src/modules/recurring/RecurringPipelineController.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,sBAAsB,EACtB,sBAAsB,EACtB,wBAAwB,EACxB,qBAAqB,EACrB,sBAAsB,EACtB,sBAAsB,GACvB,MAAM,wBAAwB,CAAA;AAE/B,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AACrD,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAA;AAG3B,OAAO,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAA;AAC5C,OAAO,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,MAAM,wCAAwC,CAAA;AACnG,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"RecurringPipelineController.js","sourceRoot":"","sources":["../../../src/modules/recurring/RecurringPipelineController.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TrackerSettingsController.d.ts","sourceRoot":"","sources":["../../../src/modules/recurring/TrackerSettingsController.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAA;AAE3B,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;
|
|
1
|
+
{"version":3,"file":"TrackerSettingsController.d.ts","sourceRoot":"","sources":["../../../src/modules/recurring/TrackerSettingsController.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAA;AAE3B,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAU/C;;;GAGG;AACH,wBAAgB,yBAAyB,IAAI,IAAI,CAAC,MAAM,CAAC,CAexD"}
|
|
@@ -3,14 +3,11 @@ import { buildHonoRoute } from '@toad-contracts/hono';
|
|
|
3
3
|
import { Hono } from 'hono';
|
|
4
4
|
import { requireWorkspacePermission } from '../../http/workspaceAccess.js';
|
|
5
5
|
import { param } from '../../http/params.js';
|
|
6
|
-
import {
|
|
7
|
-
/** Resolve the tracker-settings module or
|
|
6
|
+
import { requireCapability } from '../../http/guards.js';
|
|
7
|
+
/** Resolve the tracker-settings module, or refuse with a 503 naming what isn't wired. */
|
|
8
8
|
function requireTracker(c) {
|
|
9
|
-
return c.get('container').tracker
|
|
9
|
+
return requireCapability(c.get('container').tracker, 'Issue tracker is not configured');
|
|
10
10
|
}
|
|
11
|
-
const unavailable = () => {
|
|
12
|
-
throw new UnavailableError('Issue tracker is not configured');
|
|
13
|
-
};
|
|
14
11
|
/**
|
|
15
12
|
* Read/write a workspace's issue-tracker selection (GitHub Issues or Jira). Mounted
|
|
16
13
|
* under `/workspaces/:workspaceId`.
|
|
@@ -20,14 +17,10 @@ export function trackerSettingsController() {
|
|
|
20
17
|
app.use('*', requireWorkspacePermission('settings.manage'));
|
|
21
18
|
buildHonoRoute(app, getTrackerSettingsContract, async (c) => {
|
|
22
19
|
const tracker = requireTracker(c);
|
|
23
|
-
if (!tracker)
|
|
24
|
-
return unavailable();
|
|
25
20
|
return c.json(await tracker.service.get(param(c, 'workspaceId')), 200);
|
|
26
21
|
});
|
|
27
22
|
buildHonoRoute(app, putTrackerSettingsContract, async (c) => {
|
|
28
23
|
const tracker = requireTracker(c);
|
|
29
|
-
if (!tracker)
|
|
30
|
-
return unavailable();
|
|
31
24
|
return c.json(await tracker.service.put(param(c, 'workspaceId'), c.req.valid('json')), 200);
|
|
32
25
|
});
|
|
33
26
|
return app;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TrackerSettingsController.js","sourceRoot":"","sources":["../../../src/modules/recurring/TrackerSettingsController.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,0BAA0B,EAAE,0BAA0B,EAAE,MAAM,wBAAwB,CAAA;AAE/F,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AACrD,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAA;AAG3B,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAA;AAC1E,OAAO,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAA;AAC5C,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"TrackerSettingsController.js","sourceRoot":"","sources":["../../../src/modules/recurring/TrackerSettingsController.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,0BAA0B,EAAE,0BAA0B,EAAE,MAAM,wBAAwB,CAAA;AAE/F,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AACrD,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAA;AAG3B,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAA;AAC1E,OAAO,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAA;AAC5C,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAA;AAExD,yFAAyF;AACzF,SAAS,cAAc,CAAmB,CAAa;IACrD,OAAO,iBAAiB,CAAC,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,OAAO,EAAE,iCAAiC,CAAC,CAAA;AACzF,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,yBAAyB;IACvC,MAAM,GAAG,GAAG,IAAI,IAAI,EAAU,CAAA;IAC9B,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,0BAA0B,CAAC,iBAAiB,CAAC,CAAC,CAAA;IAE3D,cAAc,CAAC,GAAG,EAAE,0BAA0B,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;QAC1D,MAAM,OAAO,GAAG,cAAc,CAAC,CAAC,CAAC,CAAA;QACjC,OAAO,CAAC,CAAC,IAAI,CAAC,MAAM,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,aAAa,CAAC,CAAC,EAAE,GAAG,CAAC,CAAA;IACxE,CAAC,CAAC,CAAA;IAEF,cAAc,CAAC,GAAG,EAAE,0BAA0B,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;QAC1D,MAAM,OAAO,GAAG,cAAc,CAAC,CAAC,CAAC,CAAA;QACjC,OAAO,CAAC,CAAC,IAAI,CAAC,MAAM,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,aAAa,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,EAAE,GAAG,CAAC,CAAA;IAC7F,CAAC,CAAC,CAAA;IAEF,OAAO,GAAG,CAAA;AACZ,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ReleaseHealthController.d.ts","sourceRoot":"","sources":["../../../src/modules/releaseHealth/ReleaseHealthController.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAA;AAG3B,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;
|
|
1
|
+
{"version":3,"file":"ReleaseHealthController.d.ts","sourceRoot":"","sources":["../../../src/modules/releaseHealth/ReleaseHealthController.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAA;AAG3B,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAa/C;;;;GAIG;AACH,wBAAgB,uBAAuB,IAAI,IAAI,CAAC,MAAM,CAAC,CA0CtD"}
|