@codemation/host 0.8.0 → 0.9.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/CHANGELOG.md +37 -0
- package/dist/{ApiPaths-Dv1dcHu_.js → ApiPaths-DCvrlIjg.js} +12 -1
- package/dist/{ApiPaths-Dv1dcHu_.js.map → ApiPaths-DCvrlIjg.js.map} +1 -1
- package/dist/{AppConfigFactory-Cx4qQvRk.js → AppConfigFactory-D4LL1aOR.js} +77 -297
- package/dist/AppConfigFactory-D4LL1aOR.js.map +1 -0
- package/dist/{AppConfigFactory-BT0y0LVC.d.ts → AppConfigFactory-DncmwCD1.d.ts} +2918 -199
- package/dist/{AppContainerFactory-DRTjG7nG.js → AppContainerFactory-jpYXGZGe.js} +1724 -474
- package/dist/AppContainerFactory-jpYXGZGe.js.map +1 -0
- package/dist/{CodemationAppContext-CGFYVcSb.d.ts → CodemationAppContext-K51b7oXe.d.ts} +3 -3
- package/dist/{CodemationAuthoring.types-DiKKogum.d.ts → CodemationAuthoring.types-BXlXIl4K.d.ts} +4 -4
- package/dist/{CodemationConfigNormalizer-48f-T66P.d.ts → CodemationConfigNormalizer-B4rDYC9h.d.ts} +3 -3
- package/dist/{CodemationConsumerConfigLoader-_PIYqwVx.d.ts → CodemationConsumerConfigLoader-Dt4jyLx6.d.ts} +2 -2
- package/dist/{CodemationPluginListMerger-DP7djJ9S.d.ts → CodemationPluginListMerger-DS6I3Xe0.d.ts} +24 -12
- package/dist/{persistenceServer-C-hH4z6l.js → CodemationPostgresPrismaClientFactory-C7156Fe-.js} +2 -2
- package/dist/CodemationPostgresPrismaClientFactory-C7156Fe-.js.map +1 -0
- package/dist/CodemationPostgresPrismaClientFactory-CTNTPnDr.d.ts +9 -0
- package/dist/{CredentialContractsRegistry-Bq2bq28t.d.ts → CredentialContractsRegistry-Dgu-rEXi.d.ts} +16 -3
- package/dist/{CredentialServices-BLloBztI.d.ts → CredentialServices-B3wPyp2y.d.ts} +4 -4
- package/dist/{CredentialServices-Dk8yypeL.js → CredentialServices-Bios0dM8.js} +10 -4
- package/dist/CredentialServices-Bios0dM8.js.map +1 -0
- package/dist/{InternalHonoApiRouteRegistrar-c7t3KnV_.d.ts → InternalHonoApiRouteRegistrar-Ce1yxpnO.d.ts} +1 -1
- package/dist/{InternalPingRegistrar-DY3kSfxP.js → InternalPingRegistrar-BavAAnvk.js} +19 -16
- package/dist/InternalPingRegistrar-BavAAnvk.js.map +1 -0
- package/dist/{ItemsInputNormalizer-_RwIfRIQ.d.ts → ItemsInputNormalizer-CFkfNMLt.d.ts} +1434 -1225
- package/dist/PrismaMigrationDeployer-DdEcXXVi.d.ts +14 -0
- package/dist/{PublicFrontendBootstrapFactory-Dv04tJ-6.d.ts → PublicFrontendBootstrapFactory-ClEjZP74.d.ts} +2 -2
- package/dist/{PublicFrontendBootstrapJsonCodec-CXG9Dxft.d.ts → PublicFrontendBootstrapJsonCodec-HNItQ7ol.d.ts} +6 -1
- package/dist/{TelemetryContracts-BtDx84Cp.d.ts → TelemetryContracts-DpZEODQM.d.ts} +2 -2
- package/dist/{WorkflowPolicyUiPresentationFactory-6MyjCvBO.d.ts → WorkflowPolicyUiPresentationFactory-BNn2fvR_.d.ts} +2 -2
- package/dist/{WorkflowPolicyUiPresentationFactory-Bb-ae_Zh.js → WorkflowPolicyUiPresentationFactory-DfvD2VHk.js} +1 -1
- package/dist/{WorkflowPolicyUiPresentationFactory-Bb-ae_Zh.js.map → WorkflowPolicyUiPresentationFactory-DfvD2VHk.js.map} +1 -1
- package/dist/authoring.d.ts +4 -4
- package/dist/client.d.ts +1 -1
- package/dist/client.js +1 -1
- package/dist/consumer.d.ts +5 -5
- package/dist/credentials.d.ts +5 -5
- package/dist/credentials.js +1 -1
- package/dist/devServerSidecar.d.ts +2 -2
- package/dist/dto.d.ts +5 -5
- package/dist/{index-DilAYwnH.d.ts → index-ChIfeWzk.d.ts} +71 -28
- package/dist/index.d.ts +17 -16
- package/dist/index.js +8 -8
- package/dist/infrastructure/persistence/PrismaMigrationOperations.d.ts +44 -0
- package/dist/infrastructure/persistence/PrismaMigrationOperations.js +302 -0
- package/dist/infrastructure/persistence/PrismaMigrationOperations.js.map +1 -0
- package/dist/mapping.d.ts +2 -2
- package/dist/mapping.js +1 -1
- package/dist/nextServer.d.ts +15 -13
- package/dist/nextServer.js +6 -6
- package/dist/pairing.d.ts +28 -9
- package/dist/pairing.js +19 -3
- package/dist/pairing.js.map +1 -0
- package/dist/{pairing.types-snfZ_OzB.d.ts → pairing.types-D9Bjn98U.d.ts} +1 -1
- package/dist/persistenceServer.d.ts +31 -7
- package/dist/persistenceServer.js +2 -2
- package/dist/{server-09PKasWR.d.ts → server-B5trn7y4.d.ts} +5 -5
- package/dist/{server-vtRCPgRJ.js → server-BlG9qV5S.js} +4 -4
- package/dist/{server-vtRCPgRJ.js.map → server-BlG9qV5S.js.map} +1 -1
- package/dist/server.d.ts +10 -10
- package/dist/server.js +8 -8
- package/package.json +10 -9
- package/playwright.config.ts +8 -2
- package/playwright.scaffolded-dev.config.ts +8 -2
- package/prisma/migrations/20260526120000_credential_material_pointer/migration.sql +18 -0
- package/prisma/migrations/20260527120000_add_human_task/migration.sql +32 -0
- package/prisma/migrations/20260527130000_add_hitl_state_json/migration.sql +6 -0
- package/prisma/migrations/20260527130000_add_hmac_nonce/migration.sql +12 -0
- package/prisma/migrations.sqlite/20260526120000_credential_material_pointer/migration.sql +13 -0
- package/prisma/migrations.sqlite/20260527120000_add_human_task/migration.sql +30 -0
- package/prisma/migrations.sqlite/20260527130000_add_hitl_state_json/migration.sql +6 -0
- package/prisma/migrations.sqlite/20260527130000_add_hmac_nonce/migration.sql +9 -0
- package/prisma/schema.postgresql.prisma +48 -0
- package/prisma/schema.sqlite.prisma +48 -0
- package/prisma-generated/prisma-postgresql-client/edge.js +40 -6
- package/prisma-generated/prisma-postgresql-client/index-browser.js +36 -2
- package/prisma-generated/prisma-postgresql-client/index.d.ts +3179 -163
- package/prisma-generated/prisma-postgresql-client/index.js +40 -6
- package/prisma-generated/prisma-postgresql-client/package.json +1 -1
- package/prisma-generated/prisma-postgresql-client/schema.prisma +48 -0
- package/prisma-generated/prisma-sqlite-client/edge.js +40 -6
- package/prisma-generated/prisma-sqlite-client/index-browser.js +36 -2
- package/prisma-generated/prisma-sqlite-client/index.d.ts +3175 -163
- package/prisma-generated/prisma-sqlite-client/index.js +40 -6
- package/prisma-generated/prisma-sqlite-client/package.json +1 -1
- package/prisma-generated/prisma-sqlite-client/schema.prisma +48 -0
- package/src/application/contracts/CredentialContractsRegistry.ts +15 -0
- package/src/application/credentials/AppGalleryProjector.ts +69 -0
- package/src/application/hitl/DecideHumanTaskCommandHandler.ts +149 -0
- package/src/application/hitl/DecisionSchemaValidator.ts +22 -0
- package/src/application/hitl/HitlCallbackHandler.ts +96 -0
- package/src/application/mapping/WorkflowDefinitionMapper.ts +1 -3
- package/src/application/queries/CredentialQueryHandlers.ts +2 -0
- package/src/application/queries/GetCredentialAppsQuery.ts +4 -0
- package/src/application/queries/GetCredentialAppsQueryHandler.ts +27 -0
- package/src/application/telemetry/ResumeTelemetryContextForRun.ts +53 -0
- package/src/application/telemetry/TelemetryRetentionTimestampFactory.ts +9 -8
- package/src/applicationTokens.ts +11 -1
- package/src/auth/managed/ManagedCorsMiddleware.ts +20 -5
- package/src/bootstrap/AppContainerFactory.ts +100 -0
- package/src/credentials/CachingCredentialMaterialProvider.ts +96 -0
- package/src/credentials/CompositeCredentialMaterialProvider.ts +47 -0
- package/src/credentials/ControlPlaneCatalogFetcher.ts +4 -24
- package/src/credentials/ControlPlaneCredentialMaterialProvider.ts +79 -0
- package/src/credentials/CredentialOAuth2MaterialReader.ts +2 -7
- package/src/credentials/InternalCredentialsBindingRegistrar.ts +83 -0
- package/src/credentials/LocalCredentialMaterialProvider.ts +92 -0
- package/src/domain/credentials/CredentialInstanceService.ts +5 -1
- package/src/domain/credentials/CredentialTypeRegistryImpl.ts +18 -4
- package/src/domain/workflows/WorkflowActivationPreflightRules.ts +7 -4
- package/src/dto.ts +2 -0
- package/src/hitl/ControlPlaneInboxChannel.ts +102 -0
- package/src/hitl/HitlResumeTokenSigner.ts +80 -0
- package/src/hitl/HitlTimeoutJobScheduler.ts +77 -0
- package/src/hitl/HitlTimeoutWorker.ts +138 -0
- package/src/hitl/InboxChannelResolver.ts +49 -0
- package/src/hitl/LocalInboxChannel.ts +37 -0
- package/src/infrastructure/persistence/PrismaCredentialStore.ts +10 -0
- package/src/infrastructure/persistence/PrismaHmacNonceStore.ts +29 -0
- package/src/infrastructure/persistence/PrismaHumanTaskStore.ts +156 -0
- package/src/infrastructure/persistence/PrismaMigrationDeployer.ts +53 -383
- package/src/infrastructure/persistence/PrismaMigrationOperations.ts +401 -0
- package/src/infrastructure/persistence/PrismaWorkflowRunRepository.ts +39 -0
- package/src/mcp/AgentMcpIntegrationImpl.ts +5 -1
- package/src/pairing/HmacNonceStore.ts +14 -0
- package/src/pairing/HmacNonceStoreToken.ts +4 -0
- package/src/pairing/HmacRequestSigner.ts +10 -1
- package/src/pairing/InMemoryHmacNonceStore.ts +24 -0
- package/src/pairing/IncomingHmacVerifier.ts +28 -12
- package/src/pairing/InternalHmacAuthMiddleware.ts +1 -1
- package/src/pairing/index.ts +3 -0
- package/src/presentation/http/ApiPaths.ts +14 -0
- package/src/presentation/http/hono/HonoHttpAnonymousRoutePolicyRegistry.ts +4 -0
- package/src/presentation/http/hono/registrars/CredentialHonoApiRouteRegistrar.ts +1 -0
- package/src/presentation/http/hono/registrars/HitlDecideHonoApiRouteRegistrar.ts +54 -0
- package/src/presentation/http/hono/registrars/HitlInternalCallbackHonoApiRouteRegistrar.ts +33 -0
- package/src/presentation/http/hono/registrars/HitlResumeHonoApiRouteRegistrar.ts +43 -0
- package/src/presentation/http/routeHandlers/CredentialHttpRouteHandler.ts +9 -0
- package/src/presentation/http/routeHandlers/OAuth2HttpRouteHandlerFactory.ts +1 -1
- package/src/server.ts +7 -2
- package/src/workflows/InternalWorkflowTestRunRegistrar.ts +9 -0
- package/tsconfig.json +1 -0
- package/dist/AppConfigFactory-Cx4qQvRk.js.map +0 -1
- package/dist/AppContainerFactory-DRTjG7nG.js.map +0 -1
- package/dist/CredentialServices-Dk8yypeL.js.map +0 -1
- package/dist/InternalPingRegistrar-DY3kSfxP.js.map +0 -1
- package/dist/persistenceServer-B71RGvSj.d.ts +0 -30
- package/dist/persistenceServer-C-hH4z6l.js.map +0 -1
- package/src/credentials/catalogTypes.ts +0 -4
|
@@ -1,21 +1,21 @@
|
|
|
1
1
|
import { i as __toESM, r as __require, t as __commonJS } from "./chunk-7V6ThxGB.js";
|
|
2
2
|
import { n as logLevelPolicyFactory, t as LogLevelPolicyFactory } from "./LogLevelPolicyFactory-DCUzIN6G.js";
|
|
3
|
-
import { n as InAppCallbackUrlPolicy, t as ApiPaths } from "./ApiPaths-
|
|
3
|
+
import { n as InAppCallbackUrlPolicy, t as ApiPaths } from "./ApiPaths-DCvrlIjg.js";
|
|
4
4
|
import { o as BootTimer, t as ServerLoggerFactory } from "./ServerLoggerFactory-Ckk52S3w.js";
|
|
5
5
|
import { n as __decorateMetadata, t as __decorateParam } from "./decorateParam-BWxkAUSj.js";
|
|
6
6
|
import { t as __decorate } from "./decorate-CXWmflG_.js";
|
|
7
|
-
import { a as CredentialInstanceService, c as CredentialSecretCipher, d as McpServerCatalog, f as ApplicationRequestError, g as OpenAiApiKeyCredentialHealthTester, h as OpenAiApiKeyCredentialTypeFactory, i as CredentialBindingService, l as CredentialFieldEnvOverlayService, m as ApplicationTokens, n as CredentialSessionServiceImpl, o as CredentialOAuth2ScopeResolver, p as CredentialTypeRegistryImpl, r as CredentialRuntimeMaterialService, s as CredentialMaterialResolver, t as CredentialTestService, u as WorkflowCredentialNodeResolver } from "./CredentialServices-
|
|
7
|
+
import { a as CredentialInstanceService, c as CredentialSecretCipher, d as McpServerCatalog, f as ApplicationRequestError, g as OpenAiApiKeyCredentialHealthTester, h as OpenAiApiKeyCredentialTypeFactory, i as CredentialBindingService, l as CredentialFieldEnvOverlayService, m as ApplicationTokens, n as CredentialSessionServiceImpl, o as CredentialOAuth2ScopeResolver, p as CredentialTypeRegistryImpl, r as CredentialRuntimeMaterialService, s as CredentialMaterialResolver, t as CredentialTestService, u as WorkflowCredentialNodeResolver } from "./CredentialServices-Bios0dM8.js";
|
|
8
8
|
import { t as CodemationTsyringeTypeInfoRegistrar } from "./CodemationTsyringeTypeInfoRegistrar-Bj6FJYFz.js";
|
|
9
|
-
import { t as
|
|
10
|
-
import {
|
|
11
|
-
import { a as require_client$2, i as PrismaMigrationDeployer } from "./AppConfigFactory-
|
|
9
|
+
import { a as PairingConfigFactory, c as PairingConfigToken, i as HmacNonceStoreToken, n as InternalHmacAuthMiddleware, o as PairedFetch, r as IncomingHmacVerifier, s as HmacRequestSigner, t as InternalPingRegistrar } from "./InternalPingRegistrar-BavAAnvk.js";
|
|
10
|
+
import { t as WorkflowPolicyUiPresentationFactory } from "./WorkflowPolicyUiPresentationFactory-DfvD2VHk.js";
|
|
11
|
+
import { a as require_client$2, i as PrismaMigrationDeployer } from "./AppConfigFactory-D4LL1aOR.js";
|
|
12
12
|
import { AIAgentConnectionWorkflowExpander, ConnectionCredentialNodeConfigFactory, ManualTriggerNode, apiKeyCredentialType, basicAuthCredentialType, bearerTokenCredentialType, oauth2ClientCredentialsType } from "@codemation/core-nodes";
|
|
13
|
-
import { AgentBindError, AgentConfigInspector, AgentConnectionNodeCollector, CodemationTelemetryAttributeNames, ConnectionInvocationIdFactory, ConnectionNodeIdFactory, CoreTokens, CostTrackingTelemetryAttributeNames, CostTrackingTelemetryMetricNames, DefaultExecutionBinaryService, EventPublishingWorkflowExecutionRepository, GenAiTelemetryAttributeNames, InMemoryLiveWorkflowRepository, InMemoryRunEventBus, ItemsInputNormalizer, NoOpTelemetryArtifactReference, RunFinishedAtFactory, SystemClock, container, deriveAssertionPassed, getPersistedRuntimeTypeMetadata, inject, injectAll, injectable, instanceCachingFactory } from "@codemation/core";
|
|
13
|
+
import { AgentBindError, AgentConfigInspector, AgentConnectionNodeCollector, CodemationTelemetryAttributeNames, ConnectionInvocationIdFactory, ConnectionNodeIdFactory, ControlPlaneInboxChannelToken, CoreTokens, CostTrackingTelemetryAttributeNames, CostTrackingTelemetryMetricNames, DefaultExecutionBinaryService, EventPublishingWorkflowExecutionRepository, GenAiTelemetryAttributeNames, HitlResumeTokenSignerToken, HitlTimeoutJobSchedulerToken, HitlWorkspaceIdToken, HumanTaskStoreToken, IllegalMaterialSourceError, InMemoryLiveWorkflowRepository, InMemoryRunEventBus, InboxChannelResolverToken, ItemsInputNormalizer, LocalInboxChannelToken, ManagedCredentialMaterialWriteError, ManagedMaterialFetchError, NoOpTelemetryArtifactReference, RunFinishedAtFactory, SystemClock, container, deriveAssertionPassed, getPersistedRuntimeTypeMetadata, inject, injectAll, injectable, instanceCachingFactory } from "@codemation/core";
|
|
14
14
|
import { mkdir, readdir, rm, stat } from "node:fs/promises";
|
|
15
15
|
import path from "node:path";
|
|
16
16
|
import { pathToFileURL } from "node:url";
|
|
17
17
|
import { createReadStream, createWriteStream, existsSync } from "node:fs";
|
|
18
|
-
import { createHash, randomBytes, randomUUID } from "node:crypto";
|
|
18
|
+
import { createHash, createHmac, randomBytes, randomUUID, timingSafeEqual } from "node:crypto";
|
|
19
19
|
import "reflect-metadata";
|
|
20
20
|
import { AbortControllerFactory, CatalogBackedCostTrackingTelemetryFactory, ConfigDrivenOffloadPolicy, CredentialResolverFactory, DefaultDrivingScheduler, DefaultExecutionContextFactory, Engine, EngineRuntimeRegistrar, InMemoryBinaryStorage, InMemoryRunDataFactory, InlineDrivingScheduler, MissingRuntimeTriggerToken, PersistedWorkflowTokenRegistry, RunIntentService, RunSummaryMapper, StaticCostCatalog, TestSuiteOrchestrator, TestSuiteRunIdFactory, WorkflowRepositoryWebhookTriggerMatcher } from "@codemation/core/bootstrap";
|
|
21
21
|
import { compare, hash } from "bcryptjs";
|
|
@@ -40,6 +40,7 @@ import { RedisRunEventBus } from "@codemation/eventbus-redis";
|
|
|
40
40
|
import { experimental_createMCPClient } from "@ai-sdk/mcp";
|
|
41
41
|
import { Queue, Worker } from "bullmq";
|
|
42
42
|
import { JwksCache, ManagedJwtVerifier } from "@codemation/managed-auth";
|
|
43
|
+
import Ajv from "ajv/dist/2020.js";
|
|
43
44
|
|
|
44
45
|
//#region src/application/bus/Query.ts
|
|
45
46
|
var Query = class {
|
|
@@ -93,7 +94,7 @@ var HandlesCommand = class {
|
|
|
93
94
|
|
|
94
95
|
//#endregion
|
|
95
96
|
//#region src/application/commands/CreateCredentialInstanceCommandHandler.ts
|
|
96
|
-
var _ref$
|
|
97
|
+
var _ref$119;
|
|
97
98
|
let CreateCredentialInstanceCommandHandler = class CreateCredentialInstanceCommandHandler$1 extends CommandHandler {
|
|
98
99
|
constructor(credentialInstanceService) {
|
|
99
100
|
super();
|
|
@@ -106,7 +107,7 @@ let CreateCredentialInstanceCommandHandler = class CreateCredentialInstanceComma
|
|
|
106
107
|
CreateCredentialInstanceCommandHandler = __decorate([
|
|
107
108
|
HandlesCommand.forCommand(CreateCredentialInstanceCommand),
|
|
108
109
|
__decorateParam(0, inject(CredentialInstanceService)),
|
|
109
|
-
__decorateMetadata("design:paramtypes", [typeof (_ref$
|
|
110
|
+
__decorateMetadata("design:paramtypes", [typeof (_ref$119 = typeof CredentialInstanceService !== "undefined" && CredentialInstanceService) === "function" ? _ref$119 : Object])
|
|
110
111
|
], CreateCredentialInstanceCommandHandler);
|
|
111
112
|
|
|
112
113
|
//#endregion
|
|
@@ -120,7 +121,7 @@ var DeleteCredentialInstanceCommand = class extends Command {
|
|
|
120
121
|
|
|
121
122
|
//#endregion
|
|
122
123
|
//#region src/application/commands/DeleteCredentialInstanceCommandHandler.ts
|
|
123
|
-
var _ref$
|
|
124
|
+
var _ref$118;
|
|
124
125
|
let DeleteCredentialInstanceCommandHandler = class DeleteCredentialInstanceCommandHandler$1 extends CommandHandler {
|
|
125
126
|
constructor(credentialInstanceService) {
|
|
126
127
|
super();
|
|
@@ -134,7 +135,7 @@ let DeleteCredentialInstanceCommandHandler = class DeleteCredentialInstanceComma
|
|
|
134
135
|
DeleteCredentialInstanceCommandHandler = __decorate([
|
|
135
136
|
HandlesCommand.forCommand(DeleteCredentialInstanceCommand),
|
|
136
137
|
__decorateParam(0, inject(CredentialInstanceService)),
|
|
137
|
-
__decorateMetadata("design:paramtypes", [typeof (_ref$
|
|
138
|
+
__decorateMetadata("design:paramtypes", [typeof (_ref$118 = typeof CredentialInstanceService !== "undefined" && CredentialInstanceService) === "function" ? _ref$118 : Object])
|
|
138
139
|
], DeleteCredentialInstanceCommandHandler);
|
|
139
140
|
|
|
140
141
|
//#endregion
|
|
@@ -148,7 +149,7 @@ var TestCredentialInstanceCommand = class extends Command {
|
|
|
148
149
|
|
|
149
150
|
//#endregion
|
|
150
151
|
//#region src/application/commands/TestCredentialInstanceCommandHandler.ts
|
|
151
|
-
var _ref$
|
|
152
|
+
var _ref$117;
|
|
152
153
|
let TestCredentialInstanceCommandHandler = class TestCredentialInstanceCommandHandler$1 extends CommandHandler {
|
|
153
154
|
constructor(credentialTestService) {
|
|
154
155
|
super();
|
|
@@ -161,7 +162,7 @@ let TestCredentialInstanceCommandHandler = class TestCredentialInstanceCommandHa
|
|
|
161
162
|
TestCredentialInstanceCommandHandler = __decorate([
|
|
162
163
|
HandlesCommand.forCommand(TestCredentialInstanceCommand),
|
|
163
164
|
__decorateParam(0, inject(CredentialTestService)),
|
|
164
|
-
__decorateMetadata("design:paramtypes", [typeof (_ref$
|
|
165
|
+
__decorateMetadata("design:paramtypes", [typeof (_ref$117 = typeof CredentialTestService !== "undefined" && CredentialTestService) === "function" ? _ref$117 : Object])
|
|
165
166
|
], TestCredentialInstanceCommandHandler);
|
|
166
167
|
|
|
167
168
|
//#endregion
|
|
@@ -176,7 +177,7 @@ var UpdateCredentialInstanceCommand = class extends Command {
|
|
|
176
177
|
|
|
177
178
|
//#endregion
|
|
178
179
|
//#region src/application/commands/UpdateCredentialInstanceCommandHandler.ts
|
|
179
|
-
var _ref$
|
|
180
|
+
var _ref$116;
|
|
180
181
|
let UpdateCredentialInstanceCommandHandler = class UpdateCredentialInstanceCommandHandler$1 extends CommandHandler {
|
|
181
182
|
constructor(credentialInstanceService) {
|
|
182
183
|
super();
|
|
@@ -189,7 +190,7 @@ let UpdateCredentialInstanceCommandHandler = class UpdateCredentialInstanceComma
|
|
|
189
190
|
UpdateCredentialInstanceCommandHandler = __decorate([
|
|
190
191
|
HandlesCommand.forCommand(UpdateCredentialInstanceCommand),
|
|
191
192
|
__decorateParam(0, inject(CredentialInstanceService)),
|
|
192
|
-
__decorateMetadata("design:paramtypes", [typeof (_ref$
|
|
193
|
+
__decorateMetadata("design:paramtypes", [typeof (_ref$116 = typeof CredentialInstanceService !== "undefined" && CredentialInstanceService) === "function" ? _ref$116 : Object])
|
|
193
194
|
], UpdateCredentialInstanceCommandHandler);
|
|
194
195
|
|
|
195
196
|
//#endregion
|
|
@@ -203,7 +204,7 @@ var UpsertCredentialBindingCommand = class extends Command {
|
|
|
203
204
|
|
|
204
205
|
//#endregion
|
|
205
206
|
//#region src/application/commands/UpsertCredentialBindingCommandHandler.ts
|
|
206
|
-
var _ref$
|
|
207
|
+
var _ref$115;
|
|
207
208
|
let UpsertCredentialBindingCommandHandler = class UpsertCredentialBindingCommandHandler$1 extends CommandHandler {
|
|
208
209
|
constructor(credentialBindingService) {
|
|
209
210
|
super();
|
|
@@ -216,7 +217,7 @@ let UpsertCredentialBindingCommandHandler = class UpsertCredentialBindingCommand
|
|
|
216
217
|
UpsertCredentialBindingCommandHandler = __decorate([
|
|
217
218
|
HandlesCommand.forCommand(UpsertCredentialBindingCommand),
|
|
218
219
|
__decorateParam(0, inject(CredentialBindingService)),
|
|
219
|
-
__decorateMetadata("design:paramtypes", [typeof (_ref$
|
|
220
|
+
__decorateMetadata("design:paramtypes", [typeof (_ref$115 = typeof CredentialBindingService !== "undefined" && CredentialBindingService) === "function" ? _ref$115 : Object])
|
|
220
221
|
], UpsertCredentialBindingCommandHandler);
|
|
221
222
|
|
|
222
223
|
//#endregion
|
|
@@ -537,7 +538,7 @@ var UserAccountService = class UserAccountService {
|
|
|
537
538
|
|
|
538
539
|
//#endregion
|
|
539
540
|
//#region src/application/commands/AcceptUserInviteCommandHandler.ts
|
|
540
|
-
var _ref$
|
|
541
|
+
var _ref$114;
|
|
541
542
|
let AcceptUserInviteCommandHandler = class AcceptUserInviteCommandHandler$1 extends CommandHandler {
|
|
542
543
|
constructor(userAccounts) {
|
|
543
544
|
super();
|
|
@@ -550,7 +551,7 @@ let AcceptUserInviteCommandHandler = class AcceptUserInviteCommandHandler$1 exte
|
|
|
550
551
|
AcceptUserInviteCommandHandler = __decorate([
|
|
551
552
|
HandlesCommand.forCommand(AcceptUserInviteCommand),
|
|
552
553
|
__decorateParam(0, inject(UserAccountService)),
|
|
553
|
-
__decorateMetadata("design:paramtypes", [typeof (_ref$
|
|
554
|
+
__decorateMetadata("design:paramtypes", [typeof (_ref$114 = typeof UserAccountService !== "undefined" && UserAccountService) === "function" ? _ref$114 : Object])
|
|
554
555
|
], AcceptUserInviteCommandHandler);
|
|
555
556
|
|
|
556
557
|
//#endregion
|
|
@@ -565,7 +566,7 @@ var InviteUserCommand = class extends Command {
|
|
|
565
566
|
|
|
566
567
|
//#endregion
|
|
567
568
|
//#region src/application/commands/InviteUserCommandHandler.ts
|
|
568
|
-
var _ref$
|
|
569
|
+
var _ref$113;
|
|
569
570
|
let InviteUserCommandHandler = class InviteUserCommandHandler$1 extends CommandHandler {
|
|
570
571
|
constructor(userAccounts) {
|
|
571
572
|
super();
|
|
@@ -578,7 +579,7 @@ let InviteUserCommandHandler = class InviteUserCommandHandler$1 extends CommandH
|
|
|
578
579
|
InviteUserCommandHandler = __decorate([
|
|
579
580
|
HandlesCommand.forCommand(InviteUserCommand),
|
|
580
581
|
__decorateParam(0, inject(UserAccountService)),
|
|
581
|
-
__decorateMetadata("design:paramtypes", [typeof (_ref$
|
|
582
|
+
__decorateMetadata("design:paramtypes", [typeof (_ref$113 = typeof UserAccountService !== "undefined" && UserAccountService) === "function" ? _ref$113 : Object])
|
|
582
583
|
], InviteUserCommandHandler);
|
|
583
584
|
|
|
584
585
|
//#endregion
|
|
@@ -593,7 +594,7 @@ var RegenerateUserInviteCommand = class extends Command {
|
|
|
593
594
|
|
|
594
595
|
//#endregion
|
|
595
596
|
//#region src/application/commands/RegenerateUserInviteCommandHandler.ts
|
|
596
|
-
var _ref$
|
|
597
|
+
var _ref$112;
|
|
597
598
|
let RegenerateUserInviteCommandHandler = class RegenerateUserInviteCommandHandler$1 extends CommandHandler {
|
|
598
599
|
constructor(userAccounts) {
|
|
599
600
|
super();
|
|
@@ -606,7 +607,7 @@ let RegenerateUserInviteCommandHandler = class RegenerateUserInviteCommandHandle
|
|
|
606
607
|
RegenerateUserInviteCommandHandler = __decorate([
|
|
607
608
|
HandlesCommand.forCommand(RegenerateUserInviteCommand),
|
|
608
609
|
__decorateParam(0, inject(UserAccountService)),
|
|
609
|
-
__decorateMetadata("design:paramtypes", [typeof (_ref$
|
|
610
|
+
__decorateMetadata("design:paramtypes", [typeof (_ref$112 = typeof UserAccountService !== "undefined" && UserAccountService) === "function" ? _ref$112 : Object])
|
|
610
611
|
], RegenerateUserInviteCommandHandler);
|
|
611
612
|
|
|
612
613
|
//#endregion
|
|
@@ -621,7 +622,7 @@ var UpdateUserAccountStatusCommand = class extends Command {
|
|
|
621
622
|
|
|
622
623
|
//#endregion
|
|
623
624
|
//#region src/application/commands/UpdateUserAccountStatusCommandHandler.ts
|
|
624
|
-
var _ref$
|
|
625
|
+
var _ref$111;
|
|
625
626
|
let UpdateUserAccountStatusCommandHandler = class UpdateUserAccountStatusCommandHandler$1 extends CommandHandler {
|
|
626
627
|
constructor(userAccounts) {
|
|
627
628
|
super();
|
|
@@ -634,12 +635,12 @@ let UpdateUserAccountStatusCommandHandler = class UpdateUserAccountStatusCommand
|
|
|
634
635
|
UpdateUserAccountStatusCommandHandler = __decorate([
|
|
635
636
|
HandlesCommand.forCommand(UpdateUserAccountStatusCommand),
|
|
636
637
|
__decorateParam(0, inject(UserAccountService)),
|
|
637
|
-
__decorateMetadata("design:paramtypes", [typeof (_ref$
|
|
638
|
+
__decorateMetadata("design:paramtypes", [typeof (_ref$111 = typeof UserAccountService !== "undefined" && UserAccountService) === "function" ? _ref$111 : Object])
|
|
638
639
|
], UpdateUserAccountStatusCommandHandler);
|
|
639
640
|
|
|
640
641
|
//#endregion
|
|
641
642
|
//#region src/application/commands/UpsertLocalBootstrapUserCommandHandler.ts
|
|
642
|
-
var _ref$
|
|
643
|
+
var _ref$110;
|
|
643
644
|
let UpsertLocalBootstrapUserCommandHandler = class UpsertLocalBootstrapUserCommandHandler$1 extends CommandHandler {
|
|
644
645
|
constructor(userAccounts) {
|
|
645
646
|
super();
|
|
@@ -652,7 +653,7 @@ let UpsertLocalBootstrapUserCommandHandler = class UpsertLocalBootstrapUserComma
|
|
|
652
653
|
UpsertLocalBootstrapUserCommandHandler = __decorate([
|
|
653
654
|
HandlesCommand.forCommand(UpsertLocalBootstrapUserCommand),
|
|
654
655
|
__decorateParam(0, inject(UserAccountService)),
|
|
655
|
-
__decorateMetadata("design:paramtypes", [typeof (_ref$
|
|
656
|
+
__decorateMetadata("design:paramtypes", [typeof (_ref$110 = typeof UserAccountService !== "undefined" && UserAccountService) === "function" ? _ref$110 : Object])
|
|
656
657
|
], UpsertLocalBootstrapUserCommandHandler);
|
|
657
658
|
|
|
658
659
|
//#endregion
|
|
@@ -787,7 +788,7 @@ var HandleWebhookInvocationCommand = class extends Command {
|
|
|
787
788
|
|
|
788
789
|
//#endregion
|
|
789
790
|
//#region src/application/commands/HandleWebhookInvocationCommandHandler.ts
|
|
790
|
-
var _ref$
|
|
791
|
+
var _ref$109;
|
|
791
792
|
let HandleWebhookInvocationCommandHandler = class HandleWebhookInvocationCommandHandler$1 extends CommandHandler {
|
|
792
793
|
constructor(runIntentService) {
|
|
793
794
|
super();
|
|
@@ -816,7 +817,7 @@ let HandleWebhookInvocationCommandHandler = class HandleWebhookInvocationCommand
|
|
|
816
817
|
HandleWebhookInvocationCommandHandler = __decorate([
|
|
817
818
|
HandlesCommand.forCommand(HandleWebhookInvocationCommand),
|
|
818
819
|
__decorateParam(0, inject(RunIntentService)),
|
|
819
|
-
__decorateMetadata("design:paramtypes", [typeof (_ref$
|
|
820
|
+
__decorateMetadata("design:paramtypes", [typeof (_ref$109 = typeof RunIntentService !== "undefined" && RunIntentService) === "function" ? _ref$109 : Object])
|
|
820
821
|
], HandleWebhookInvocationCommandHandler);
|
|
821
822
|
|
|
822
823
|
//#endregion
|
|
@@ -907,7 +908,7 @@ var ReplayWorkflowNodeCommand = class extends Command {
|
|
|
907
908
|
|
|
908
909
|
//#endregion
|
|
909
910
|
//#region src/application/commands/ReplayWorkflowNodeCommandHandler.ts
|
|
910
|
-
var _ref$
|
|
911
|
+
var _ref$108, _ref2$41, _ref3$18;
|
|
911
912
|
let ReplayWorkflowNodeCommandHandler = class ReplayWorkflowNodeCommandHandler$1 extends CommandHandler {
|
|
912
913
|
constructor(engine, itemsInputNormalizer, runIntentService, workflowRunRepository) {
|
|
913
914
|
super();
|
|
@@ -994,9 +995,9 @@ ReplayWorkflowNodeCommandHandler = __decorate([
|
|
|
994
995
|
__decorateParam(2, inject(RunIntentService)),
|
|
995
996
|
__decorateParam(3, inject(ApplicationTokens.WorkflowRunRepository)),
|
|
996
997
|
__decorateMetadata("design:paramtypes", [
|
|
997
|
-
typeof (_ref$
|
|
998
|
-
typeof (_ref2$
|
|
999
|
-
typeof (_ref3$
|
|
998
|
+
typeof (_ref$108 = typeof Engine !== "undefined" && Engine) === "function" ? _ref$108 : Object,
|
|
999
|
+
typeof (_ref2$41 = typeof ItemsInputNormalizer !== "undefined" && ItemsInputNormalizer) === "function" ? _ref2$41 : Object,
|
|
1000
|
+
typeof (_ref3$18 = typeof RunIntentService !== "undefined" && RunIntentService) === "function" ? _ref3$18 : Object,
|
|
1000
1001
|
Object
|
|
1001
1002
|
])
|
|
1002
1003
|
], ReplayWorkflowNodeCommandHandler);
|
|
@@ -1014,7 +1015,7 @@ var SetPinnedNodeInputCommand = class extends Command {
|
|
|
1014
1015
|
|
|
1015
1016
|
//#endregion
|
|
1016
1017
|
//#region src/application/commands/SetPinnedNodeInputCommandHandler.ts
|
|
1017
|
-
var _ref$
|
|
1018
|
+
var _ref$107;
|
|
1018
1019
|
let SetPinnedNodeInputCommandHandler = class SetPinnedNodeInputCommandHandler$1 extends CommandHandler {
|
|
1019
1020
|
constructor(workflowRunRepository, itemsInputNormalizer) {
|
|
1020
1021
|
super();
|
|
@@ -1047,7 +1048,7 @@ SetPinnedNodeInputCommandHandler = __decorate([
|
|
|
1047
1048
|
HandlesCommand.forCommand(SetPinnedNodeInputCommand),
|
|
1048
1049
|
__decorateParam(0, inject(ApplicationTokens.WorkflowRunRepository)),
|
|
1049
1050
|
__decorateParam(1, inject(ItemsInputNormalizer)),
|
|
1050
|
-
__decorateMetadata("design:paramtypes", [Object, typeof (_ref$
|
|
1051
|
+
__decorateMetadata("design:paramtypes", [Object, typeof (_ref$107 = typeof ItemsInputNormalizer !== "undefined" && ItemsInputNormalizer) === "function" ? _ref$107 : Object])
|
|
1051
1052
|
], SetPinnedNodeInputCommandHandler);
|
|
1052
1053
|
|
|
1053
1054
|
//#endregion
|
|
@@ -1117,7 +1118,7 @@ WorkflowActivationPreflightRules = __decorate([injectable(), __decorateMetadata(
|
|
|
1117
1118
|
|
|
1118
1119
|
//#endregion
|
|
1119
1120
|
//#region src/domain/workflows/WorkflowActivationPreflight.ts
|
|
1120
|
-
var _ref$
|
|
1121
|
+
var _ref$106, _ref2$40, _ref3$17;
|
|
1121
1122
|
let WorkflowActivationPreflight = class WorkflowActivationPreflight$1 {
|
|
1122
1123
|
constructor(workflowRepository, credentialBindingService, rules, credentialTypeRegistry, credentialStore, credentialOAuth2ScopeResolver) {
|
|
1123
1124
|
this.workflowRepository = workflowRepository;
|
|
@@ -1160,11 +1161,11 @@ WorkflowActivationPreflight = __decorate([
|
|
|
1160
1161
|
__decorateParam(5, inject(CredentialOAuth2ScopeResolver)),
|
|
1161
1162
|
__decorateMetadata("design:paramtypes", [
|
|
1162
1163
|
Object,
|
|
1163
|
-
typeof (_ref$
|
|
1164
|
-
typeof (_ref2$
|
|
1164
|
+
typeof (_ref$106 = typeof CredentialBindingService !== "undefined" && CredentialBindingService) === "function" ? _ref$106 : Object,
|
|
1165
|
+
typeof (_ref2$40 = typeof WorkflowActivationPreflightRules !== "undefined" && WorkflowActivationPreflightRules) === "function" ? _ref2$40 : Object,
|
|
1165
1166
|
Object,
|
|
1166
1167
|
Object,
|
|
1167
|
-
typeof (_ref3$
|
|
1168
|
+
typeof (_ref3$17 = typeof CredentialOAuth2ScopeResolver !== "undefined" && CredentialOAuth2ScopeResolver) === "function" ? _ref3$17 : Object
|
|
1168
1169
|
])
|
|
1169
1170
|
], WorkflowActivationPreflight);
|
|
1170
1171
|
|
|
@@ -1198,7 +1199,7 @@ var SetWorkflowActivationCommand = class extends Command {
|
|
|
1198
1199
|
|
|
1199
1200
|
//#endregion
|
|
1200
1201
|
//#region src/application/commands/SetWorkflowActivationCommandHandler.ts
|
|
1201
|
-
var _ref$
|
|
1202
|
+
var _ref$105, _ref2$39, _ref3$16;
|
|
1202
1203
|
let SetWorkflowActivationCommandHandler = class SetWorkflowActivationCommandHandler$1 extends CommandHandler {
|
|
1203
1204
|
constructor(workflowActivationRepository, workflowActivationPolicy, engine, workflowActivationPreflight) {
|
|
1204
1205
|
super();
|
|
@@ -1224,9 +1225,9 @@ SetWorkflowActivationCommandHandler = __decorate([
|
|
|
1224
1225
|
__decorateParam(3, inject(WorkflowActivationPreflight)),
|
|
1225
1226
|
__decorateMetadata("design:paramtypes", [
|
|
1226
1227
|
Object,
|
|
1227
|
-
typeof (_ref$
|
|
1228
|
-
typeof (_ref2$
|
|
1229
|
-
typeof (_ref3$
|
|
1228
|
+
typeof (_ref$105 = typeof RuntimeWorkflowActivationPolicy !== "undefined" && RuntimeWorkflowActivationPolicy) === "function" ? _ref$105 : Object,
|
|
1229
|
+
typeof (_ref2$39 = typeof Engine !== "undefined" && Engine) === "function" ? _ref2$39 : Object,
|
|
1230
|
+
typeof (_ref3$16 = typeof WorkflowActivationPreflight !== "undefined" && WorkflowActivationPreflight) === "function" ? _ref3$16 : Object
|
|
1230
1231
|
])
|
|
1231
1232
|
], SetWorkflowActivationCommandHandler);
|
|
1232
1233
|
|
|
@@ -1241,7 +1242,7 @@ var StartWorkflowRunCommand = class extends Command {
|
|
|
1241
1242
|
|
|
1242
1243
|
//#endregion
|
|
1243
1244
|
//#region src/application/commands/StartWorkflowRunCommandHandler.ts
|
|
1244
|
-
var _ref$
|
|
1245
|
+
var _ref$104, _ref2$38, _ref3$15, _ref4$8;
|
|
1245
1246
|
let StartWorkflowRunCommandHandler = class StartWorkflowRunCommandHandler$1 extends CommandHandler {
|
|
1246
1247
|
routesLog;
|
|
1247
1248
|
constructor(engine, itemsInputNormalizer, runIntentService, workflowDefinitionRepository, workflowRunRepository, workflowDebuggerOverlayRepository, credentialBindingService, loggerFactory) {
|
|
@@ -1417,13 +1418,13 @@ StartWorkflowRunCommandHandler = __decorate([
|
|
|
1417
1418
|
__decorateParam(6, inject(CredentialBindingService)),
|
|
1418
1419
|
__decorateParam(7, inject(ApplicationTokens.LoggerFactory)),
|
|
1419
1420
|
__decorateMetadata("design:paramtypes", [
|
|
1420
|
-
typeof (_ref$
|
|
1421
|
-
typeof (_ref2$
|
|
1422
|
-
typeof (_ref3$
|
|
1421
|
+
typeof (_ref$104 = typeof Engine !== "undefined" && Engine) === "function" ? _ref$104 : Object,
|
|
1422
|
+
typeof (_ref2$38 = typeof ItemsInputNormalizer !== "undefined" && ItemsInputNormalizer) === "function" ? _ref2$38 : Object,
|
|
1423
|
+
typeof (_ref3$15 = typeof RunIntentService !== "undefined" && RunIntentService) === "function" ? _ref3$15 : Object,
|
|
1423
1424
|
Object,
|
|
1424
1425
|
Object,
|
|
1425
1426
|
Object,
|
|
1426
|
-
typeof (_ref4$
|
|
1427
|
+
typeof (_ref4$8 = typeof CredentialBindingService !== "undefined" && CredentialBindingService) === "function" ? _ref4$8 : Object,
|
|
1427
1428
|
Object
|
|
1428
1429
|
])
|
|
1429
1430
|
], StartWorkflowRunCommandHandler);
|
|
@@ -1524,7 +1525,7 @@ var UploadOverlayPinnedBinaryCommand = class extends Command {
|
|
|
1524
1525
|
|
|
1525
1526
|
//#endregion
|
|
1526
1527
|
//#region src/application/commands/UploadOverlayPinnedBinaryCommandHandler.ts
|
|
1527
|
-
var _ref$
|
|
1528
|
+
var _ref$103;
|
|
1528
1529
|
let UploadOverlayPinnedBinaryCommandHandler = class UploadOverlayPinnedBinaryCommandHandler$1 extends CommandHandler {
|
|
1529
1530
|
constructor(overlayPinnedBinaryUpload) {
|
|
1530
1531
|
super();
|
|
@@ -1545,7 +1546,7 @@ let UploadOverlayPinnedBinaryCommandHandler = class UploadOverlayPinnedBinaryCom
|
|
|
1545
1546
|
UploadOverlayPinnedBinaryCommandHandler = __decorate([
|
|
1546
1547
|
HandlesCommand.forCommand(UploadOverlayPinnedBinaryCommand),
|
|
1547
1548
|
__decorateParam(0, inject(OverlayPinnedBinaryUploadService)),
|
|
1548
|
-
__decorateMetadata("design:paramtypes", [typeof (_ref$
|
|
1549
|
+
__decorateMetadata("design:paramtypes", [typeof (_ref$103 = typeof OverlayPinnedBinaryUploadService !== "undefined" && OverlayPinnedBinaryUploadService) === "function" ? _ref$103 : Object])
|
|
1549
1550
|
], UploadOverlayPinnedBinaryCommandHandler);
|
|
1550
1551
|
|
|
1551
1552
|
//#endregion
|
|
@@ -1575,7 +1576,7 @@ var HandlesQuery = class {
|
|
|
1575
1576
|
|
|
1576
1577
|
//#endregion
|
|
1577
1578
|
//#region src/application/queries/GetCredentialInstanceQueryHandler.ts
|
|
1578
|
-
var _ref$
|
|
1579
|
+
var _ref$102;
|
|
1579
1580
|
let GetCredentialInstanceQueryHandler = class GetCredentialInstanceQueryHandler$1 extends QueryHandler {
|
|
1580
1581
|
constructor(credentialInstanceService) {
|
|
1581
1582
|
super();
|
|
@@ -1588,7 +1589,7 @@ let GetCredentialInstanceQueryHandler = class GetCredentialInstanceQueryHandler$
|
|
|
1588
1589
|
GetCredentialInstanceQueryHandler = __decorate([
|
|
1589
1590
|
HandlesQuery.for(GetCredentialInstanceQuery),
|
|
1590
1591
|
__decorateParam(0, inject(CredentialInstanceService)),
|
|
1591
|
-
__decorateMetadata("design:paramtypes", [typeof (_ref$
|
|
1592
|
+
__decorateMetadata("design:paramtypes", [typeof (_ref$102 = typeof CredentialInstanceService !== "undefined" && CredentialInstanceService) === "function" ? _ref$102 : Object])
|
|
1592
1593
|
], GetCredentialInstanceQueryHandler);
|
|
1593
1594
|
|
|
1594
1595
|
//#endregion
|
|
@@ -1602,7 +1603,7 @@ var GetCredentialInstanceWithSecretsQuery = class extends Query {
|
|
|
1602
1603
|
|
|
1603
1604
|
//#endregion
|
|
1604
1605
|
//#region src/application/queries/GetCredentialInstanceWithSecretsQueryHandler.ts
|
|
1605
|
-
var _ref$
|
|
1606
|
+
var _ref$101;
|
|
1606
1607
|
let GetCredentialInstanceWithSecretsQueryHandler = class GetCredentialInstanceWithSecretsQueryHandler$1 extends QueryHandler {
|
|
1607
1608
|
constructor(credentialInstanceService) {
|
|
1608
1609
|
super();
|
|
@@ -1615,7 +1616,7 @@ let GetCredentialInstanceWithSecretsQueryHandler = class GetCredentialInstanceWi
|
|
|
1615
1616
|
GetCredentialInstanceWithSecretsQueryHandler = __decorate([
|
|
1616
1617
|
HandlesQuery.for(GetCredentialInstanceWithSecretsQuery),
|
|
1617
1618
|
__decorateParam(0, inject(CredentialInstanceService)),
|
|
1618
|
-
__decorateMetadata("design:paramtypes", [typeof (_ref$
|
|
1619
|
+
__decorateMetadata("design:paramtypes", [typeof (_ref$101 = typeof CredentialInstanceService !== "undefined" && CredentialInstanceService) === "function" ? _ref$101 : Object])
|
|
1619
1620
|
], GetCredentialInstanceWithSecretsQueryHandler);
|
|
1620
1621
|
|
|
1621
1622
|
//#endregion
|
|
@@ -1629,7 +1630,7 @@ var GetWorkflowCredentialHealthQuery = class extends Query {
|
|
|
1629
1630
|
|
|
1630
1631
|
//#endregion
|
|
1631
1632
|
//#region src/application/queries/GetWorkflowCredentialHealthQueryHandler.ts
|
|
1632
|
-
var _ref$
|
|
1633
|
+
var _ref$100;
|
|
1633
1634
|
let GetWorkflowCredentialHealthQueryHandler = class GetWorkflowCredentialHealthQueryHandler$1 extends QueryHandler {
|
|
1634
1635
|
constructor(credentialBindingService) {
|
|
1635
1636
|
super();
|
|
@@ -1642,7 +1643,7 @@ let GetWorkflowCredentialHealthQueryHandler = class GetWorkflowCredentialHealthQ
|
|
|
1642
1643
|
GetWorkflowCredentialHealthQueryHandler = __decorate([
|
|
1643
1644
|
HandlesQuery.for(GetWorkflowCredentialHealthQuery),
|
|
1644
1645
|
__decorateParam(0, inject(CredentialBindingService)),
|
|
1645
|
-
__decorateMetadata("design:paramtypes", [typeof (_ref$
|
|
1646
|
+
__decorateMetadata("design:paramtypes", [typeof (_ref$100 = typeof CredentialBindingService !== "undefined" && CredentialBindingService) === "function" ? _ref$100 : Object])
|
|
1646
1647
|
], GetWorkflowCredentialHealthQueryHandler);
|
|
1647
1648
|
|
|
1648
1649
|
//#endregion
|
|
@@ -1651,7 +1652,7 @@ var ListCredentialInstancesQuery = class extends Query {};
|
|
|
1651
1652
|
|
|
1652
1653
|
//#endregion
|
|
1653
1654
|
//#region src/application/queries/ListCredentialInstancesQueryHandler.ts
|
|
1654
|
-
var _ref$
|
|
1655
|
+
var _ref$99;
|
|
1655
1656
|
let ListCredentialInstancesQueryHandler = class ListCredentialInstancesQueryHandler$1 extends QueryHandler {
|
|
1656
1657
|
constructor(credentialInstanceService) {
|
|
1657
1658
|
super();
|
|
@@ -1664,7 +1665,7 @@ let ListCredentialInstancesQueryHandler = class ListCredentialInstancesQueryHand
|
|
|
1664
1665
|
ListCredentialInstancesQueryHandler = __decorate([
|
|
1665
1666
|
HandlesQuery.for(ListCredentialInstancesQuery),
|
|
1666
1667
|
__decorateParam(0, inject(CredentialInstanceService)),
|
|
1667
|
-
__decorateMetadata("design:paramtypes", [typeof (_ref$
|
|
1668
|
+
__decorateMetadata("design:paramtypes", [typeof (_ref$99 = typeof CredentialInstanceService !== "undefined" && CredentialInstanceService) === "function" ? _ref$99 : Object])
|
|
1668
1669
|
], ListCredentialInstancesQueryHandler);
|
|
1669
1670
|
|
|
1670
1671
|
//#endregion
|
|
@@ -1673,7 +1674,7 @@ var ListCredentialTypesQuery = class extends Query {};
|
|
|
1673
1674
|
|
|
1674
1675
|
//#endregion
|
|
1675
1676
|
//#region src/application/queries/ListCredentialTypesQueryHandler.ts
|
|
1676
|
-
var _ref$
|
|
1677
|
+
var _ref$98;
|
|
1677
1678
|
let ListCredentialTypesQueryHandler = class ListCredentialTypesQueryHandler$1 extends QueryHandler {
|
|
1678
1679
|
constructor(credentialTypeRegistry) {
|
|
1679
1680
|
super();
|
|
@@ -1686,7 +1687,7 @@ let ListCredentialTypesQueryHandler = class ListCredentialTypesQueryHandler$1 ex
|
|
|
1686
1687
|
ListCredentialTypesQueryHandler = __decorate([
|
|
1687
1688
|
HandlesQuery.for(ListCredentialTypesQuery),
|
|
1688
1689
|
__decorateParam(0, inject(CredentialTypeRegistryImpl)),
|
|
1689
|
-
__decorateMetadata("design:paramtypes", [typeof (_ref$
|
|
1690
|
+
__decorateMetadata("design:paramtypes", [typeof (_ref$98 = typeof CredentialTypeRegistryImpl !== "undefined" && CredentialTypeRegistryImpl) === "function" ? _ref$98 : Object])
|
|
1690
1691
|
], ListCredentialTypesQueryHandler);
|
|
1691
1692
|
|
|
1692
1693
|
//#endregion
|
|
@@ -1695,7 +1696,7 @@ var GetCredentialFieldEnvStatusQuery = class extends Query {};
|
|
|
1695
1696
|
|
|
1696
1697
|
//#endregion
|
|
1697
1698
|
//#region src/application/queries/GetCredentialFieldEnvStatusQueryHandler.ts
|
|
1698
|
-
var _ref$
|
|
1699
|
+
var _ref$97;
|
|
1699
1700
|
let GetCredentialFieldEnvStatusQueryHandler = class GetCredentialFieldEnvStatusQueryHandler$1 extends QueryHandler {
|
|
1700
1701
|
constructor(credentialTypeRegistry, appConfig) {
|
|
1701
1702
|
super();
|
|
@@ -1724,12 +1725,230 @@ GetCredentialFieldEnvStatusQueryHandler = __decorate([
|
|
|
1724
1725
|
HandlesQuery.for(GetCredentialFieldEnvStatusQuery),
|
|
1725
1726
|
__decorateParam(0, inject(CredentialTypeRegistryImpl)),
|
|
1726
1727
|
__decorateParam(1, inject(ApplicationTokens.AppConfig)),
|
|
1727
|
-
__decorateMetadata("design:paramtypes", [typeof (_ref$
|
|
1728
|
+
__decorateMetadata("design:paramtypes", [typeof (_ref$97 = typeof CredentialTypeRegistryImpl !== "undefined" && CredentialTypeRegistryImpl) === "function" ? _ref$97 : Object, Object])
|
|
1728
1729
|
], GetCredentialFieldEnvStatusQueryHandler);
|
|
1729
1730
|
|
|
1731
|
+
//#endregion
|
|
1732
|
+
//#region src/application/queries/GetCredentialAppsQuery.ts
|
|
1733
|
+
var GetCredentialAppsQuery = class extends Query {};
|
|
1734
|
+
|
|
1735
|
+
//#endregion
|
|
1736
|
+
//#region src/application/credentials/AppGalleryProjector.ts
|
|
1737
|
+
var _ref$96;
|
|
1738
|
+
let AppGalleryProjector = class AppGalleryProjector$1 {
|
|
1739
|
+
constructor(credentialTypeRegistry) {
|
|
1740
|
+
this.credentialTypeRegistry = credentialTypeRegistry;
|
|
1741
|
+
}
|
|
1742
|
+
project(mcpServers, instances) {
|
|
1743
|
+
if (mcpServers === null) return {
|
|
1744
|
+
apps: [],
|
|
1745
|
+
customInstances: [...instances]
|
|
1746
|
+
};
|
|
1747
|
+
const mcpInstancedSetIds = /* @__PURE__ */ new Set();
|
|
1748
|
+
return {
|
|
1749
|
+
apps: mcpServers.map((mcp) => {
|
|
1750
|
+
const accepted = mcp.acceptedCredentialTypes ?? [];
|
|
1751
|
+
const acceptedSet = new Set(accepted);
|
|
1752
|
+
const mcpInstances = instances.filter((i) => acceptedSet.has(i.typeId));
|
|
1753
|
+
for (const i of mcpInstances) mcpInstancedSetIds.add(i.instanceId);
|
|
1754
|
+
const primaryOAuthTypeId = this.findPrimaryOAuthTypeId(accepted);
|
|
1755
|
+
return {
|
|
1756
|
+
mcpId: mcp.id,
|
|
1757
|
+
displayName: mcp.displayName,
|
|
1758
|
+
description: mcp.description,
|
|
1759
|
+
iconUrl: null,
|
|
1760
|
+
acceptedCredentialTypes: [...accepted],
|
|
1761
|
+
primaryOAuthTypeId,
|
|
1762
|
+
instances: mcpInstances
|
|
1763
|
+
};
|
|
1764
|
+
}),
|
|
1765
|
+
customInstances: instances.filter((i) => !mcpInstancedSetIds.has(i.instanceId))
|
|
1766
|
+
};
|
|
1767
|
+
}
|
|
1768
|
+
findPrimaryOAuthTypeId(acceptedTypes) {
|
|
1769
|
+
for (const typeId of acceptedTypes) if (this.credentialTypeRegistry.getCredentialType(typeId)?.definition.auth?.kind === "oauth2") return typeId;
|
|
1770
|
+
return null;
|
|
1771
|
+
}
|
|
1772
|
+
};
|
|
1773
|
+
AppGalleryProjector = __decorate([
|
|
1774
|
+
injectable(),
|
|
1775
|
+
__decorateParam(0, inject(CredentialTypeRegistryImpl)),
|
|
1776
|
+
__decorateMetadata("design:paramtypes", [typeof (_ref$96 = typeof CredentialTypeRegistryImpl !== "undefined" && CredentialTypeRegistryImpl) === "function" ? _ref$96 : Object])
|
|
1777
|
+
], AppGalleryProjector);
|
|
1778
|
+
|
|
1779
|
+
//#endregion
|
|
1780
|
+
//#region src/credentials/ControlPlaneCatalogFetcher.ts
|
|
1781
|
+
var _ref$95;
|
|
1782
|
+
let ControlPlaneCatalogFetcher = class ControlPlaneCatalogFetcher$1 {
|
|
1783
|
+
config;
|
|
1784
|
+
timerHandle = null;
|
|
1785
|
+
stopped = false;
|
|
1786
|
+
/** Tracks in-flight refresh so stop() can safely await it. */
|
|
1787
|
+
inFlight = null;
|
|
1788
|
+
_mcpServers = null;
|
|
1789
|
+
_credentialTypeOverrides = null;
|
|
1790
|
+
mcpServersState = {
|
|
1791
|
+
consecutiveFailures: 0,
|
|
1792
|
+
lastSuccessAt: null
|
|
1793
|
+
};
|
|
1794
|
+
credentialTypesState = {
|
|
1795
|
+
consecutiveFailures: 0,
|
|
1796
|
+
lastSuccessAt: null
|
|
1797
|
+
};
|
|
1798
|
+
/**
|
|
1799
|
+
* Called after each successful full fetch, before the next poll is scheduled.
|
|
1800
|
+
* Set by AppContainerFactory to re-apply overrides on each refresh cycle.
|
|
1801
|
+
*/
|
|
1802
|
+
onRefresh = null;
|
|
1803
|
+
constructor(pairedFetch, pairingConfig, loggers, appConfig) {
|
|
1804
|
+
this.pairedFetch = pairedFetch;
|
|
1805
|
+
this.pairingConfig = pairingConfig;
|
|
1806
|
+
this.loggers = loggers;
|
|
1807
|
+
const env = appConfig.env;
|
|
1808
|
+
const pollSec = Number(env["CODEMATION_CATALOG_POLL_INTERVAL_SECONDS"] ?? 300);
|
|
1809
|
+
const staleFailures = Number(env["CODEMATION_CATALOG_STALE_FAILURES"] ?? 5);
|
|
1810
|
+
const staleHours = Number(env["CODEMATION_CATALOG_STALE_HOURS"] ?? 24);
|
|
1811
|
+
this.config = {
|
|
1812
|
+
pollIntervalMs: Number.isFinite(pollSec) ? pollSec * 1e3 : 3e5,
|
|
1813
|
+
staleFailuresThreshold: Number.isFinite(staleFailures) ? staleFailures : 5,
|
|
1814
|
+
staleHoursThreshold: Number.isFinite(staleHours) ? staleHours : 24
|
|
1815
|
+
};
|
|
1816
|
+
}
|
|
1817
|
+
/** Latest fetched MCP server declarations; null until first successful fetch. */
|
|
1818
|
+
get mcpServers() {
|
|
1819
|
+
return this._mcpServers;
|
|
1820
|
+
}
|
|
1821
|
+
/** Latest fetched credential type overrides; null until first successful fetch. */
|
|
1822
|
+
get credentialTypeOverrides() {
|
|
1823
|
+
return this._credentialTypeOverrides;
|
|
1824
|
+
}
|
|
1825
|
+
/**
|
|
1826
|
+
* Fires the first fetch (non-blocking — failure is logged, not thrown) and
|
|
1827
|
+
* schedules the periodic poll if `pollIntervalMs > 0`.
|
|
1828
|
+
* No-ops immediately when pairing config is absent.
|
|
1829
|
+
*/
|
|
1830
|
+
async start() {
|
|
1831
|
+
if (!this.pairingConfig) return;
|
|
1832
|
+
try {
|
|
1833
|
+
await this.refresh();
|
|
1834
|
+
} catch {}
|
|
1835
|
+
this.scheduleNext();
|
|
1836
|
+
}
|
|
1837
|
+
/**
|
|
1838
|
+
* Cancels the poll timer. Awaits any in-flight fetch before resolving.
|
|
1839
|
+
*/
|
|
1840
|
+
async stop() {
|
|
1841
|
+
this.stopped = true;
|
|
1842
|
+
if (this.timerHandle !== null) {
|
|
1843
|
+
clearTimeout(this.timerHandle);
|
|
1844
|
+
this.timerHandle = null;
|
|
1845
|
+
}
|
|
1846
|
+
if (this.inFlight) await this.inFlight;
|
|
1847
|
+
}
|
|
1848
|
+
/**
|
|
1849
|
+
* Manual one-shot fetch. Same code path as the periodic tick.
|
|
1850
|
+
* Errors are caught and logged internally; this method never rejects.
|
|
1851
|
+
*/
|
|
1852
|
+
async refresh() {
|
|
1853
|
+
const run = this.fetchAll();
|
|
1854
|
+
this.inFlight = run;
|
|
1855
|
+
try {
|
|
1856
|
+
await run;
|
|
1857
|
+
} finally {
|
|
1858
|
+
if (this.inFlight === run) this.inFlight = null;
|
|
1859
|
+
}
|
|
1860
|
+
}
|
|
1861
|
+
scheduleNext() {
|
|
1862
|
+
if (this.stopped || this.config.pollIntervalMs <= 0) return;
|
|
1863
|
+
this.timerHandle = setTimeout(() => {
|
|
1864
|
+
if (this.stopped) return;
|
|
1865
|
+
this.refresh().finally(() => this.scheduleNext());
|
|
1866
|
+
}, this.config.pollIntervalMs);
|
|
1867
|
+
}
|
|
1868
|
+
async fetchAll() {
|
|
1869
|
+
if (!this.pairingConfig) return;
|
|
1870
|
+
const logger = this.loggers.create("ControlPlaneCatalogFetcher");
|
|
1871
|
+
const base = this.pairingConfig.controlPlaneUrl;
|
|
1872
|
+
const [mcpResult, credTypesResult] = await Promise.allSettled([this.pairedFetch.get(`${base}/internal/catalog/mcp-servers`), this.pairedFetch.get(`${base}/internal/catalog/credential-types`)]);
|
|
1873
|
+
await this.handleEndpointResult(mcpResult, this.mcpServersState, "mcp-servers", (data) => {
|
|
1874
|
+
this._mcpServers = data;
|
|
1875
|
+
}, logger);
|
|
1876
|
+
await this.handleEndpointResult(credTypesResult, this.credentialTypesState, "credential-types", (data) => {
|
|
1877
|
+
this._credentialTypeOverrides = data;
|
|
1878
|
+
}, logger);
|
|
1879
|
+
this.onRefresh?.();
|
|
1880
|
+
}
|
|
1881
|
+
async handleEndpointResult(result, state, endpointName, onSuccess, logger) {
|
|
1882
|
+
if (result.status === "fulfilled") {
|
|
1883
|
+
const res = result.value;
|
|
1884
|
+
if (res.ok) try {
|
|
1885
|
+
const data = await res.json();
|
|
1886
|
+
onSuccess(data);
|
|
1887
|
+
state.consecutiveFailures = 0;
|
|
1888
|
+
state.lastSuccessAt = /* @__PURE__ */ new Date();
|
|
1889
|
+
logger.info(`ControlPlaneCatalogFetcher: fetched ${endpointName} (count=${data.length})`);
|
|
1890
|
+
return;
|
|
1891
|
+
} catch (err) {
|
|
1892
|
+
this.logEndpointFailure(state, endpointName, err, logger);
|
|
1893
|
+
return;
|
|
1894
|
+
}
|
|
1895
|
+
this.logEndpointFailure(state, endpointName, /* @__PURE__ */ new Error(`HTTP ${res.status} ${res.statusText}`), logger);
|
|
1896
|
+
} else this.logEndpointFailure(state, endpointName, result.reason, logger);
|
|
1897
|
+
}
|
|
1898
|
+
logEndpointFailure(state, endpointName, err, logger) {
|
|
1899
|
+
state.consecutiveFailures++;
|
|
1900
|
+
const staleHours = state.lastSuccessAt ? (Date.now() - state.lastSuccessAt.getTime()) / 36e5 : null;
|
|
1901
|
+
const errMsg = err instanceof Error ? err.message : String(err);
|
|
1902
|
+
if (state.consecutiveFailures >= this.config.staleFailuresThreshold || staleHours !== null && staleHours >= this.config.staleHoursThreshold) {
|
|
1903
|
+
const staleLabel = staleHours !== null ? `${staleHours.toFixed(1)}h` : "never-succeeded";
|
|
1904
|
+
logger.error(`ControlPlaneCatalogFetcher: ${endpointName} is stale — control plane unreachable (failures=${state.consecutiveFailures}, stale=${staleLabel}): ${errMsg}`, err instanceof Error ? err : void 0);
|
|
1905
|
+
} else logger.warn(`ControlPlaneCatalogFetcher: ${endpointName} fetch failed, retaining prior cached value (failures=${state.consecutiveFailures}): ${errMsg}`, err instanceof Error ? err : void 0);
|
|
1906
|
+
}
|
|
1907
|
+
};
|
|
1908
|
+
ControlPlaneCatalogFetcher = __decorate([
|
|
1909
|
+
injectable(),
|
|
1910
|
+
__decorateParam(0, inject(PairedFetch)),
|
|
1911
|
+
__decorateParam(1, inject(PairingConfigToken, { isOptional: true })),
|
|
1912
|
+
__decorateParam(2, inject(ApplicationTokens.LoggerFactory)),
|
|
1913
|
+
__decorateParam(3, inject(ApplicationTokens.AppConfig)),
|
|
1914
|
+
__decorateMetadata("design:paramtypes", [
|
|
1915
|
+
typeof (_ref$95 = typeof PairedFetch !== "undefined" && PairedFetch) === "function" ? _ref$95 : Object,
|
|
1916
|
+
Object,
|
|
1917
|
+
Object,
|
|
1918
|
+
Object
|
|
1919
|
+
])
|
|
1920
|
+
], ControlPlaneCatalogFetcher);
|
|
1921
|
+
|
|
1922
|
+
//#endregion
|
|
1923
|
+
//#region src/application/queries/GetCredentialAppsQueryHandler.ts
|
|
1924
|
+
var _ref$94, _ref2$37, _ref3$14;
|
|
1925
|
+
let GetCredentialAppsQueryHandler = class GetCredentialAppsQueryHandler$1 extends QueryHandler {
|
|
1926
|
+
constructor(credentialInstanceService, appGalleryProjector, catalogFetcher) {
|
|
1927
|
+
super();
|
|
1928
|
+
this.credentialInstanceService = credentialInstanceService;
|
|
1929
|
+
this.appGalleryProjector = appGalleryProjector;
|
|
1930
|
+
this.catalogFetcher = catalogFetcher;
|
|
1931
|
+
}
|
|
1932
|
+
async execute() {
|
|
1933
|
+
const instances = await this.credentialInstanceService.listInstances();
|
|
1934
|
+
return this.appGalleryProjector.project(this.catalogFetcher.mcpServers, instances);
|
|
1935
|
+
}
|
|
1936
|
+
};
|
|
1937
|
+
GetCredentialAppsQueryHandler = __decorate([
|
|
1938
|
+
HandlesQuery.for(GetCredentialAppsQuery),
|
|
1939
|
+
__decorateParam(0, inject(CredentialInstanceService)),
|
|
1940
|
+
__decorateParam(1, inject(AppGalleryProjector)),
|
|
1941
|
+
__decorateParam(2, inject(ControlPlaneCatalogFetcher)),
|
|
1942
|
+
__decorateMetadata("design:paramtypes", [
|
|
1943
|
+
typeof (_ref$94 = typeof CredentialInstanceService !== "undefined" && CredentialInstanceService) === "function" ? _ref$94 : Object,
|
|
1944
|
+
typeof (_ref2$37 = typeof AppGalleryProjector !== "undefined" && AppGalleryProjector) === "function" ? _ref2$37 : Object,
|
|
1945
|
+
typeof (_ref3$14 = typeof ControlPlaneCatalogFetcher !== "undefined" && ControlPlaneCatalogFetcher) === "function" ? _ref3$14 : Object
|
|
1946
|
+
])
|
|
1947
|
+
], GetCredentialAppsQueryHandler);
|
|
1948
|
+
|
|
1730
1949
|
//#endregion
|
|
1731
1950
|
//#region src/application/queries/ListUserAccountsQueryHandler.ts
|
|
1732
|
-
var _ref$
|
|
1951
|
+
var _ref$93;
|
|
1733
1952
|
let ListUserAccountsQueryHandler = class ListUserAccountsQueryHandler$1 extends QueryHandler {
|
|
1734
1953
|
constructor(userAccounts) {
|
|
1735
1954
|
super();
|
|
@@ -1742,7 +1961,7 @@ let ListUserAccountsQueryHandler = class ListUserAccountsQueryHandler$1 extends
|
|
|
1742
1961
|
ListUserAccountsQueryHandler = __decorate([
|
|
1743
1962
|
HandlesQuery.for(ListUserAccountsQuery),
|
|
1744
1963
|
__decorateParam(0, inject(UserAccountService)),
|
|
1745
|
-
__decorateMetadata("design:paramtypes", [typeof (_ref$
|
|
1964
|
+
__decorateMetadata("design:paramtypes", [typeof (_ref$93 = typeof UserAccountService !== "undefined" && UserAccountService) === "function" ? _ref$93 : Object])
|
|
1746
1965
|
], ListUserAccountsQueryHandler);
|
|
1747
1966
|
|
|
1748
1967
|
//#endregion
|
|
@@ -1756,7 +1975,7 @@ var VerifyUserInviteQuery = class extends Query {
|
|
|
1756
1975
|
|
|
1757
1976
|
//#endregion
|
|
1758
1977
|
//#region src/application/queries/VerifyUserInviteQueryHandler.ts
|
|
1759
|
-
var _ref$
|
|
1978
|
+
var _ref$92;
|
|
1760
1979
|
let VerifyUserInviteQueryHandler = class VerifyUserInviteQueryHandler$1 extends QueryHandler {
|
|
1761
1980
|
constructor(userAccounts) {
|
|
1762
1981
|
super();
|
|
@@ -1769,7 +1988,7 @@ let VerifyUserInviteQueryHandler = class VerifyUserInviteQueryHandler$1 extends
|
|
|
1769
1988
|
VerifyUserInviteQueryHandler = __decorate([
|
|
1770
1989
|
HandlesQuery.for(VerifyUserInviteQuery),
|
|
1771
1990
|
__decorateParam(0, inject(UserAccountService)),
|
|
1772
|
-
__decorateMetadata("design:paramtypes", [typeof (_ref$
|
|
1991
|
+
__decorateMetadata("design:paramtypes", [typeof (_ref$92 = typeof UserAccountService !== "undefined" && UserAccountService) === "function" ? _ref$92 : Object])
|
|
1773
1992
|
], VerifyUserInviteQueryHandler);
|
|
1774
1993
|
|
|
1775
1994
|
//#endregion
|
|
@@ -1862,7 +2081,7 @@ var GetRunBinaryAttachmentQuery = class extends Query {
|
|
|
1862
2081
|
|
|
1863
2082
|
//#endregion
|
|
1864
2083
|
//#region src/application/queries/GetRunBinaryAttachmentQueryHandler.ts
|
|
1865
|
-
var _ref$
|
|
2084
|
+
var _ref$91;
|
|
1866
2085
|
let GetRunBinaryAttachmentQueryHandler = class GetRunBinaryAttachmentQueryHandler$1 extends QueryHandler {
|
|
1867
2086
|
constructor(lookupService) {
|
|
1868
2087
|
super();
|
|
@@ -1875,7 +2094,7 @@ let GetRunBinaryAttachmentQueryHandler = class GetRunBinaryAttachmentQueryHandle
|
|
|
1875
2094
|
GetRunBinaryAttachmentQueryHandler = __decorate([
|
|
1876
2095
|
HandlesQuery.for(GetRunBinaryAttachmentQuery),
|
|
1877
2096
|
__decorateParam(0, inject(RunBinaryAttachmentLookupService)),
|
|
1878
|
-
__decorateMetadata("design:paramtypes", [typeof (_ref$
|
|
2097
|
+
__decorateMetadata("design:paramtypes", [typeof (_ref$91 = typeof RunBinaryAttachmentLookupService !== "undefined" && RunBinaryAttachmentLookupService) === "function" ? _ref$91 : Object])
|
|
1879
2098
|
], GetRunBinaryAttachmentQueryHandler);
|
|
1880
2099
|
|
|
1881
2100
|
//#endregion
|
|
@@ -1938,7 +2157,7 @@ OtelIdentityFactory = __decorate([injectable()], OtelIdentityFactory);
|
|
|
1938
2157
|
|
|
1939
2158
|
//#endregion
|
|
1940
2159
|
//#region src/application/telemetry/TelemetryQueryService.ts
|
|
1941
|
-
var _ref$
|
|
2160
|
+
var _ref$90, _TelemetryQueryService;
|
|
1942
2161
|
let TelemetryQueryService = class TelemetryQueryService$1 {
|
|
1943
2162
|
static {
|
|
1944
2163
|
_TelemetryQueryService = this;
|
|
@@ -2430,7 +2649,7 @@ TelemetryQueryService = _TelemetryQueryService = __decorate([
|
|
|
2430
2649
|
Object,
|
|
2431
2650
|
Object,
|
|
2432
2651
|
Object,
|
|
2433
|
-
typeof (_ref$
|
|
2652
|
+
typeof (_ref$90 = typeof OtelIdentityFactory !== "undefined" && OtelIdentityFactory) === "function" ? _ref$90 : Object
|
|
2434
2653
|
])
|
|
2435
2654
|
], TelemetryQueryService);
|
|
2436
2655
|
|
|
@@ -2445,7 +2664,7 @@ var GetTelemetryDashboardDimensionsQuery = class extends Query {
|
|
|
2445
2664
|
|
|
2446
2665
|
//#endregion
|
|
2447
2666
|
//#region src/application/queries/GetTelemetryDashboardDimensionsQueryHandler.ts
|
|
2448
|
-
var _ref$
|
|
2667
|
+
var _ref$89;
|
|
2449
2668
|
let GetTelemetryDashboardDimensionsQueryHandler = class GetTelemetryDashboardDimensionsQueryHandler$1 extends QueryHandler {
|
|
2450
2669
|
constructor(telemetryQueryService) {
|
|
2451
2670
|
super();
|
|
@@ -2458,7 +2677,7 @@ let GetTelemetryDashboardDimensionsQueryHandler = class GetTelemetryDashboardDim
|
|
|
2458
2677
|
GetTelemetryDashboardDimensionsQueryHandler = __decorate([
|
|
2459
2678
|
HandlesQuery.for(GetTelemetryDashboardDimensionsQuery),
|
|
2460
2679
|
__decorateParam(0, inject(TelemetryQueryService)),
|
|
2461
|
-
__decorateMetadata("design:paramtypes", [typeof (_ref$
|
|
2680
|
+
__decorateMetadata("design:paramtypes", [typeof (_ref$89 = typeof TelemetryQueryService !== "undefined" && TelemetryQueryService) === "function" ? _ref$89 : Object])
|
|
2462
2681
|
], GetTelemetryDashboardDimensionsQueryHandler);
|
|
2463
2682
|
|
|
2464
2683
|
//#endregion
|
|
@@ -2472,7 +2691,7 @@ var GetTelemetryDashboardRunsQuery = class extends Query {
|
|
|
2472
2691
|
|
|
2473
2692
|
//#endregion
|
|
2474
2693
|
//#region src/application/queries/GetTelemetryDashboardRunsQueryHandler.ts
|
|
2475
|
-
var _ref$
|
|
2694
|
+
var _ref$88;
|
|
2476
2695
|
let GetTelemetryDashboardRunsQueryHandler = class GetTelemetryDashboardRunsQueryHandler$1 extends QueryHandler {
|
|
2477
2696
|
constructor(telemetryQueryService) {
|
|
2478
2697
|
super();
|
|
@@ -2485,7 +2704,7 @@ let GetTelemetryDashboardRunsQueryHandler = class GetTelemetryDashboardRunsQuery
|
|
|
2485
2704
|
GetTelemetryDashboardRunsQueryHandler = __decorate([
|
|
2486
2705
|
HandlesQuery.for(GetTelemetryDashboardRunsQuery),
|
|
2487
2706
|
__decorateParam(0, inject(TelemetryQueryService)),
|
|
2488
|
-
__decorateMetadata("design:paramtypes", [typeof (_ref$
|
|
2707
|
+
__decorateMetadata("design:paramtypes", [typeof (_ref$88 = typeof TelemetryQueryService !== "undefined" && TelemetryQueryService) === "function" ? _ref$88 : Object])
|
|
2489
2708
|
], GetTelemetryDashboardRunsQueryHandler);
|
|
2490
2709
|
|
|
2491
2710
|
//#endregion
|
|
@@ -2499,7 +2718,7 @@ var GetTelemetryRunTraceQuery = class extends Query {
|
|
|
2499
2718
|
|
|
2500
2719
|
//#endregion
|
|
2501
2720
|
//#region src/application/queries/GetTelemetryRunTraceQueryHandler.ts
|
|
2502
|
-
var _ref$
|
|
2721
|
+
var _ref$87;
|
|
2503
2722
|
let GetTelemetryRunTraceQueryHandler = class GetTelemetryRunTraceQueryHandler$1 extends QueryHandler {
|
|
2504
2723
|
constructor(telemetryQueryService) {
|
|
2505
2724
|
super();
|
|
@@ -2512,7 +2731,7 @@ let GetTelemetryRunTraceQueryHandler = class GetTelemetryRunTraceQueryHandler$1
|
|
|
2512
2731
|
GetTelemetryRunTraceQueryHandler = __decorate([
|
|
2513
2732
|
HandlesQuery.for(GetTelemetryRunTraceQuery),
|
|
2514
2733
|
__decorateParam(0, inject(TelemetryQueryService)),
|
|
2515
|
-
__decorateMetadata("design:paramtypes", [typeof (_ref$
|
|
2734
|
+
__decorateMetadata("design:paramtypes", [typeof (_ref$87 = typeof TelemetryQueryService !== "undefined" && TelemetryQueryService) === "function" ? _ref$87 : Object])
|
|
2516
2735
|
], GetTelemetryRunTraceQueryHandler);
|
|
2517
2736
|
|
|
2518
2737
|
//#endregion
|
|
@@ -2526,7 +2745,7 @@ var GetTelemetryDashboardSummaryQuery = class extends Query {
|
|
|
2526
2745
|
|
|
2527
2746
|
//#endregion
|
|
2528
2747
|
//#region src/application/queries/GetTelemetryDashboardSummaryQueryHandler.ts
|
|
2529
|
-
var _ref$
|
|
2748
|
+
var _ref$86;
|
|
2530
2749
|
let GetTelemetryDashboardSummaryQueryHandler = class GetTelemetryDashboardSummaryQueryHandler$1 extends QueryHandler {
|
|
2531
2750
|
constructor(telemetryQueryService) {
|
|
2532
2751
|
super();
|
|
@@ -2548,7 +2767,7 @@ let GetTelemetryDashboardSummaryQueryHandler = class GetTelemetryDashboardSummar
|
|
|
2548
2767
|
GetTelemetryDashboardSummaryQueryHandler = __decorate([
|
|
2549
2768
|
HandlesQuery.for(GetTelemetryDashboardSummaryQuery),
|
|
2550
2769
|
__decorateParam(0, inject(TelemetryQueryService)),
|
|
2551
|
-
__decorateMetadata("design:paramtypes", [typeof (_ref$
|
|
2770
|
+
__decorateMetadata("design:paramtypes", [typeof (_ref$86 = typeof TelemetryQueryService !== "undefined" && TelemetryQueryService) === "function" ? _ref$86 : Object])
|
|
2552
2771
|
], GetTelemetryDashboardSummaryQueryHandler);
|
|
2553
2772
|
|
|
2554
2773
|
//#endregion
|
|
@@ -2562,7 +2781,7 @@ var GetTelemetryDashboardTimeseriesQuery = class extends Query {
|
|
|
2562
2781
|
|
|
2563
2782
|
//#endregion
|
|
2564
2783
|
//#region src/application/queries/GetTelemetryDashboardTimeseriesQueryHandler.ts
|
|
2565
|
-
var _ref$
|
|
2784
|
+
var _ref$85;
|
|
2566
2785
|
let GetTelemetryDashboardTimeseriesQueryHandler = class GetTelemetryDashboardTimeseriesQueryHandler$1 extends QueryHandler {
|
|
2567
2786
|
constructor(telemetryQueryService) {
|
|
2568
2787
|
super();
|
|
@@ -2591,7 +2810,7 @@ let GetTelemetryDashboardTimeseriesQueryHandler = class GetTelemetryDashboardTim
|
|
|
2591
2810
|
GetTelemetryDashboardTimeseriesQueryHandler = __decorate([
|
|
2592
2811
|
HandlesQuery.for(GetTelemetryDashboardTimeseriesQuery),
|
|
2593
2812
|
__decorateParam(0, inject(TelemetryQueryService)),
|
|
2594
|
-
__decorateMetadata("design:paramtypes", [typeof (_ref$
|
|
2813
|
+
__decorateMetadata("design:paramtypes", [typeof (_ref$85 = typeof TelemetryQueryService !== "undefined" && TelemetryQueryService) === "function" ? _ref$85 : Object])
|
|
2595
2814
|
], GetTelemetryDashboardTimeseriesQueryHandler);
|
|
2596
2815
|
|
|
2597
2816
|
//#endregion
|
|
@@ -2753,7 +2972,7 @@ RunIterationProjectionFactory = __decorate([injectable()], RunIterationProjectio
|
|
|
2753
2972
|
|
|
2754
2973
|
//#endregion
|
|
2755
2974
|
//#region src/application/queries/GetWorkflowRunDetailQueryHandler.ts
|
|
2756
|
-
var _ref$
|
|
2975
|
+
var _ref$84, _ref2$36;
|
|
2757
2976
|
let GetWorkflowRunDetailQueryHandler = class GetWorkflowRunDetailQueryHandler$1 extends QueryHandler {
|
|
2758
2977
|
constructor(workflowRunRepository, runIterationProjectionFactory, getIterationCostQueryHandler) {
|
|
2759
2978
|
super();
|
|
@@ -2795,8 +3014,8 @@ GetWorkflowRunDetailQueryHandler = __decorate([
|
|
|
2795
3014
|
__decorateParam(2, inject(GetIterationCostQueryHandler)),
|
|
2796
3015
|
__decorateMetadata("design:paramtypes", [
|
|
2797
3016
|
Object,
|
|
2798
|
-
typeof (_ref$
|
|
2799
|
-
typeof (_ref2$
|
|
3017
|
+
typeof (_ref$84 = typeof RunIterationProjectionFactory !== "undefined" && RunIterationProjectionFactory) === "function" ? _ref$84 : Object,
|
|
3018
|
+
typeof (_ref2$36 = typeof GetIterationCostQueryHandler !== "undefined" && GetIterationCostQueryHandler) === "function" ? _ref2$36 : Object
|
|
2800
3019
|
])
|
|
2801
3020
|
], GetWorkflowRunDetailQueryHandler);
|
|
2802
3021
|
|
|
@@ -2864,7 +3083,7 @@ var GetWorkflowOverlayBinaryAttachmentQuery = class extends Query {
|
|
|
2864
3083
|
|
|
2865
3084
|
//#endregion
|
|
2866
3085
|
//#region src/application/queries/GetWorkflowOverlayBinaryAttachmentQueryHandler.ts
|
|
2867
|
-
var _ref$
|
|
3086
|
+
var _ref$83;
|
|
2868
3087
|
let GetWorkflowOverlayBinaryAttachmentQueryHandler = class GetWorkflowOverlayBinaryAttachmentQueryHandler$1 extends QueryHandler {
|
|
2869
3088
|
constructor(lookupService) {
|
|
2870
3089
|
super();
|
|
@@ -2877,7 +3096,7 @@ let GetWorkflowOverlayBinaryAttachmentQueryHandler = class GetWorkflowOverlayBin
|
|
|
2877
3096
|
GetWorkflowOverlayBinaryAttachmentQueryHandler = __decorate([
|
|
2878
3097
|
HandlesQuery.for(GetWorkflowOverlayBinaryAttachmentQuery),
|
|
2879
3098
|
__decorateParam(0, inject(RunBinaryAttachmentLookupService)),
|
|
2880
|
-
__decorateMetadata("design:paramtypes", [typeof (_ref$
|
|
3099
|
+
__decorateMetadata("design:paramtypes", [typeof (_ref$83 = typeof RunBinaryAttachmentLookupService !== "undefined" && RunBinaryAttachmentLookupService) === "function" ? _ref$83 : Object])
|
|
2881
3100
|
], GetWorkflowOverlayBinaryAttachmentQueryHandler);
|
|
2882
3101
|
|
|
2883
3102
|
//#endregion
|
|
@@ -3144,7 +3363,7 @@ const FrameworkCostCatalogEntries = [
|
|
|
3144
3363
|
|
|
3145
3364
|
//#endregion
|
|
3146
3365
|
//#region src/application/telemetry/CompositeTelemetryExporter.ts
|
|
3147
|
-
var _ref$
|
|
3366
|
+
var _ref$82;
|
|
3148
3367
|
let CompositeTelemetryExporter = class CompositeTelemetryExporter$1 {
|
|
3149
3368
|
constructor(exporters) {
|
|
3150
3369
|
this.exporters = exporters;
|
|
@@ -3153,7 +3372,7 @@ let CompositeTelemetryExporter = class CompositeTelemetryExporter$1 {
|
|
|
3153
3372
|
for (const exporter of this.exporters) await exporter.exportSpans(spans);
|
|
3154
3373
|
}
|
|
3155
3374
|
};
|
|
3156
|
-
CompositeTelemetryExporter = __decorate([injectable(), __decorateMetadata("design:paramtypes", [typeof (_ref$
|
|
3375
|
+
CompositeTelemetryExporter = __decorate([injectable(), __decorateMetadata("design:paramtypes", [typeof (_ref$82 = typeof ReadonlyArray !== "undefined" && ReadonlyArray) === "function" ? _ref$82 : Object])], CompositeTelemetryExporter);
|
|
3157
3376
|
|
|
3158
3377
|
//#endregion
|
|
3159
3378
|
//#region src/application/telemetry/LazyExecutionTelemetryFactory.ts
|
|
@@ -3564,7 +3783,7 @@ TelemetryRetentionTimestampFactory = _TelemetryRetentionTimestampFactory = __dec
|
|
|
3564
3783
|
|
|
3565
3784
|
//#endregion
|
|
3566
3785
|
//#region src/application/telemetry/OtelExecutionTelemetryFactory.ts
|
|
3567
|
-
var _ref$
|
|
3786
|
+
var _ref$81, _ref2$35, _ref3$13, _ref4$7;
|
|
3568
3787
|
let OtelExecutionTelemetryFactory = class OtelExecutionTelemetryFactory$1 {
|
|
3569
3788
|
constructor(runTraceContextRepository, telemetrySpanStore, telemetryArtifactStore, telemetryMetricPointStore, telemetryEnricherChain, telemetryPrivacyPolicy, telemetryRetentionTimestampFactory, otelIdentityFactory, telemetrySpanPublisher) {
|
|
3570
3789
|
this.runTraceContextRepository = runTraceContextRepository;
|
|
@@ -3612,17 +3831,17 @@ OtelExecutionTelemetryFactory = __decorate([
|
|
|
3612
3831
|
Object,
|
|
3613
3832
|
Object,
|
|
3614
3833
|
Object,
|
|
3615
|
-
typeof (_ref$
|
|
3616
|
-
typeof (_ref2$
|
|
3617
|
-
typeof (_ref3$
|
|
3618
|
-
typeof (_ref4$
|
|
3834
|
+
typeof (_ref$81 = typeof TelemetryEnricherChain !== "undefined" && TelemetryEnricherChain) === "function" ? _ref$81 : Object,
|
|
3835
|
+
typeof (_ref2$35 = typeof TelemetryPrivacyPolicy !== "undefined" && TelemetryPrivacyPolicy) === "function" ? _ref2$35 : Object,
|
|
3836
|
+
typeof (_ref3$13 = typeof TelemetryRetentionTimestampFactory !== "undefined" && TelemetryRetentionTimestampFactory) === "function" ? _ref3$13 : Object,
|
|
3837
|
+
typeof (_ref4$7 = typeof OtelIdentityFactory !== "undefined" && OtelIdentityFactory) === "function" ? _ref4$7 : Object,
|
|
3619
3838
|
Object
|
|
3620
3839
|
])
|
|
3621
3840
|
], OtelExecutionTelemetryFactory);
|
|
3622
3841
|
|
|
3623
3842
|
//#endregion
|
|
3624
3843
|
//#region src/application/telemetry/RunEventBusTelemetryReporter.ts
|
|
3625
|
-
var _ref$
|
|
3844
|
+
var _ref$80, _ref2$34, _ref3$12;
|
|
3626
3845
|
let RunEventBusTelemetryReporter = class RunEventBusTelemetryReporter$1 {
|
|
3627
3846
|
subscription = null;
|
|
3628
3847
|
constructor(runEventBus, runTraceContextRepository, workflowRunRepository, telemetrySpanStore, telemetryEnricherChain, telemetryRetentionTimestampFactory, otelIdentityFactory) {
|
|
@@ -3779,9 +3998,9 @@ RunEventBusTelemetryReporter = __decorate([
|
|
|
3779
3998
|
Object,
|
|
3780
3999
|
Object,
|
|
3781
4000
|
Object,
|
|
3782
|
-
typeof (_ref$
|
|
3783
|
-
typeof (_ref2$
|
|
3784
|
-
typeof (_ref3$
|
|
4001
|
+
typeof (_ref$80 = typeof TelemetryEnricherChain !== "undefined" && TelemetryEnricherChain) === "function" ? _ref$80 : Object,
|
|
4002
|
+
typeof (_ref2$34 = typeof TelemetryRetentionTimestampFactory !== "undefined" && TelemetryRetentionTimestampFactory) === "function" ? _ref2$34 : Object,
|
|
4003
|
+
typeof (_ref3$12 = typeof OtelIdentityFactory !== "undefined" && OtelIdentityFactory) === "function" ? _ref3$12 : Object
|
|
3785
4004
|
])
|
|
3786
4005
|
], RunEventBusTelemetryReporter);
|
|
3787
4006
|
|
|
@@ -4085,7 +4304,7 @@ BootRuntimeSnapshotHolder = __decorate([injectable()], BootRuntimeSnapshotHolder
|
|
|
4085
4304
|
|
|
4086
4305
|
//#endregion
|
|
4087
4306
|
//#region src/application/dev/DevBootstrapSummaryAssembler.ts
|
|
4088
|
-
var _ref$
|
|
4307
|
+
var _ref$79, _ref2$33, _ref3$11;
|
|
4089
4308
|
let DevBootstrapSummaryAssembler = class DevBootstrapSummaryAssembler$1 {
|
|
4090
4309
|
constructor(bootRuntimeSnapshot, logLevelPolicyFactory$1, workflowActivationPolicy, workflowRepository) {
|
|
4091
4310
|
this.bootRuntimeSnapshot = bootRuntimeSnapshot;
|
|
@@ -4149,16 +4368,16 @@ DevBootstrapSummaryAssembler = __decorate([
|
|
|
4149
4368
|
__decorateParam(2, inject(RuntimeWorkflowActivationPolicy)),
|
|
4150
4369
|
__decorateParam(3, inject(CoreTokens.WorkflowRepository)),
|
|
4151
4370
|
__decorateMetadata("design:paramtypes", [
|
|
4152
|
-
typeof (_ref$
|
|
4153
|
-
typeof (_ref2$
|
|
4154
|
-
typeof (_ref3$
|
|
4371
|
+
typeof (_ref$79 = typeof BootRuntimeSnapshotHolder !== "undefined" && BootRuntimeSnapshotHolder) === "function" ? _ref$79 : Object,
|
|
4372
|
+
typeof (_ref2$33 = typeof LogLevelPolicyFactory !== "undefined" && LogLevelPolicyFactory) === "function" ? _ref2$33 : Object,
|
|
4373
|
+
typeof (_ref3$11 = typeof RuntimeWorkflowActivationPolicy !== "undefined" && RuntimeWorkflowActivationPolicy) === "function" ? _ref3$11 : Object,
|
|
4155
4374
|
Object
|
|
4156
4375
|
])
|
|
4157
4376
|
], DevBootstrapSummaryAssembler);
|
|
4158
4377
|
|
|
4159
4378
|
//#endregion
|
|
4160
4379
|
//#region src/application/mapping/WorkflowDefinitionMapper.ts
|
|
4161
|
-
var _ref$
|
|
4380
|
+
var _ref$78, _ref2$32;
|
|
4162
4381
|
let WorkflowDefinitionMapper = class WorkflowDefinitionMapper$1 {
|
|
4163
4382
|
constructor(policyUi, workflowActivationPolicy, mcpCatalog) {
|
|
4164
4383
|
this.policyUi = policyUi;
|
|
@@ -4404,9 +4623,9 @@ WorkflowDefinitionMapper = __decorate([
|
|
|
4404
4623
|
__decorateParam(1, inject(CoreTokens.WorkflowActivationPolicy)),
|
|
4405
4624
|
__decorateParam(2, inject(McpServerCatalog)),
|
|
4406
4625
|
__decorateMetadata("design:paramtypes", [
|
|
4407
|
-
typeof (_ref$
|
|
4626
|
+
typeof (_ref$78 = typeof WorkflowPolicyUiPresentationFactory !== "undefined" && WorkflowPolicyUiPresentationFactory) === "function" ? _ref$78 : Object,
|
|
4408
4627
|
Object,
|
|
4409
|
-
typeof (_ref2$
|
|
4628
|
+
typeof (_ref2$32 = typeof McpServerCatalog !== "undefined" && McpServerCatalog) === "function" ? _ref2$32 : Object
|
|
4410
4629
|
])
|
|
4411
4630
|
], WorkflowDefinitionMapper);
|
|
4412
4631
|
|
|
@@ -4630,7 +4849,7 @@ CodemationFrontendAuthSnapshotFactory = __decorate([injectable()], CodemationFro
|
|
|
4630
4849
|
|
|
4631
4850
|
//#endregion
|
|
4632
4851
|
//#region src/presentation/frontend/FrontendAppConfigFactory.ts
|
|
4633
|
-
var _ref$
|
|
4852
|
+
var _ref$77;
|
|
4634
4853
|
let FrontendAppConfigFactory = class FrontendAppConfigFactory$1 {
|
|
4635
4854
|
constructor(appConfig, authSnapshotFactory) {
|
|
4636
4855
|
this.appConfig = appConfig;
|
|
@@ -4650,12 +4869,12 @@ FrontendAppConfigFactory = __decorate([
|
|
|
4650
4869
|
injectable(),
|
|
4651
4870
|
__decorateParam(0, inject(ApplicationTokens.AppConfig)),
|
|
4652
4871
|
__decorateParam(1, inject(CodemationFrontendAuthSnapshotFactory)),
|
|
4653
|
-
__decorateMetadata("design:paramtypes", [Object, typeof (_ref$
|
|
4872
|
+
__decorateMetadata("design:paramtypes", [Object, typeof (_ref$77 = typeof CodemationFrontendAuthSnapshotFactory !== "undefined" && CodemationFrontendAuthSnapshotFactory) === "function" ? _ref$77 : Object])
|
|
4654
4873
|
], FrontendAppConfigFactory);
|
|
4655
4874
|
|
|
4656
4875
|
//#endregion
|
|
4657
4876
|
//#region src/presentation/frontend/InternalAuthBootstrapFactory.ts
|
|
4658
|
-
var _ref$
|
|
4877
|
+
var _ref$76;
|
|
4659
4878
|
let InternalAuthBootstrapFactory = class InternalAuthBootstrapFactory$1 {
|
|
4660
4879
|
constructor(appConfig, authSnapshotFactory) {
|
|
4661
4880
|
this.appConfig = appConfig;
|
|
@@ -4675,12 +4894,12 @@ InternalAuthBootstrapFactory = __decorate([
|
|
|
4675
4894
|
injectable(),
|
|
4676
4895
|
__decorateParam(0, inject(ApplicationTokens.AppConfig)),
|
|
4677
4896
|
__decorateParam(1, inject(CodemationFrontendAuthSnapshotFactory)),
|
|
4678
|
-
__decorateMetadata("design:paramtypes", [Object, typeof (_ref$
|
|
4897
|
+
__decorateMetadata("design:paramtypes", [Object, typeof (_ref$76 = typeof CodemationFrontendAuthSnapshotFactory !== "undefined" && CodemationFrontendAuthSnapshotFactory) === "function" ? _ref$76 : Object])
|
|
4679
4898
|
], InternalAuthBootstrapFactory);
|
|
4680
4899
|
|
|
4681
4900
|
//#endregion
|
|
4682
4901
|
//#region src/presentation/frontend/PublicFrontendBootstrapFactory.ts
|
|
4683
|
-
var _ref$
|
|
4902
|
+
var _ref$75;
|
|
4684
4903
|
let PublicFrontendBootstrapFactory = class PublicFrontendBootstrapFactory$1 {
|
|
4685
4904
|
constructor(frontendAppConfigFactory) {
|
|
4686
4905
|
this.frontendAppConfigFactory = frontendAppConfigFactory;
|
|
@@ -4704,7 +4923,7 @@ let PublicFrontendBootstrapFactory = class PublicFrontendBootstrapFactory$1 {
|
|
|
4704
4923
|
PublicFrontendBootstrapFactory = __decorate([
|
|
4705
4924
|
injectable(),
|
|
4706
4925
|
__decorateParam(0, inject(FrontendAppConfigFactory)),
|
|
4707
|
-
__decorateMetadata("design:paramtypes", [typeof (_ref$
|
|
4926
|
+
__decorateMetadata("design:paramtypes", [typeof (_ref$75 = typeof FrontendAppConfigFactory !== "undefined" && FrontendAppConfigFactory) === "function" ? _ref$75 : Object])
|
|
4708
4927
|
], PublicFrontendBootstrapFactory);
|
|
4709
4928
|
|
|
4710
4929
|
//#endregion
|
|
@@ -4719,7 +4938,7 @@ SecureRequestDetector = __decorate([injectable()], SecureRequestDetector);
|
|
|
4719
4938
|
|
|
4720
4939
|
//#endregion
|
|
4721
4940
|
//#region src/infrastructure/auth/AuthSessionCookieFactory.ts
|
|
4722
|
-
var _ref$
|
|
4941
|
+
var _ref$74, _AuthSessionCookieFactory;
|
|
4723
4942
|
let AuthSessionCookieFactory = class AuthSessionCookieFactory$1 {
|
|
4724
4943
|
static {
|
|
4725
4944
|
_AuthSessionCookieFactory = this;
|
|
@@ -4821,7 +5040,7 @@ AuthSessionCookieFactory = _AuthSessionCookieFactory = __decorate([
|
|
|
4821
5040
|
injectable(),
|
|
4822
5041
|
__decorateParam(0, inject(ApplicationTokens.AppConfig)),
|
|
4823
5042
|
__decorateParam(1, inject(SecureRequestDetector)),
|
|
4824
|
-
__decorateMetadata("design:paramtypes", [Object, typeof (_ref$
|
|
5043
|
+
__decorateMetadata("design:paramtypes", [Object, typeof (_ref$74 = typeof SecureRequestDetector !== "undefined" && SecureRequestDetector) === "function" ? _ref$74 : Object])
|
|
4825
5044
|
], AuthSessionCookieFactory);
|
|
4826
5045
|
|
|
4827
5046
|
//#endregion
|
|
@@ -5022,7 +5241,7 @@ var ServerHttpErrorResponseFactory = class {
|
|
|
5022
5241
|
|
|
5023
5242
|
//#endregion
|
|
5024
5243
|
//#region src/presentation/http/routeHandlers/AuthHttpRouteHandlerFactory.ts
|
|
5025
|
-
var _ref$
|
|
5244
|
+
var _ref$73, _ref2$31, _ref3$10;
|
|
5026
5245
|
let AuthHttpRouteHandler = class AuthHttpRouteHandler$1 {
|
|
5027
5246
|
constructor(sessionVerifier, appConfig, authSessionCookieFactory, betterAuthRuntime, inAppCallbackUrlPolicy) {
|
|
5028
5247
|
this.sessionVerifier = sessionVerifier;
|
|
@@ -5196,15 +5415,15 @@ AuthHttpRouteHandler = __decorate([
|
|
|
5196
5415
|
__decorateMetadata("design:paramtypes", [
|
|
5197
5416
|
Object,
|
|
5198
5417
|
Object,
|
|
5199
|
-
typeof (_ref$
|
|
5200
|
-
typeof (_ref2$
|
|
5201
|
-
typeof (_ref3$
|
|
5418
|
+
typeof (_ref$73 = typeof AuthSessionCookieFactory !== "undefined" && AuthSessionCookieFactory) === "function" ? _ref$73 : Object,
|
|
5419
|
+
typeof (_ref2$31 = typeof CodemationBetterAuthRuntime !== "undefined" && CodemationBetterAuthRuntime) === "function" ? _ref2$31 : Object,
|
|
5420
|
+
typeof (_ref3$10 = typeof InAppCallbackUrlPolicy !== "undefined" && InAppCallbackUrlPolicy) === "function" ? _ref3$10 : Object
|
|
5202
5421
|
])
|
|
5203
5422
|
], AuthHttpRouteHandler);
|
|
5204
5423
|
|
|
5205
5424
|
//#endregion
|
|
5206
5425
|
//#region src/presentation/http/routeHandlers/DevBootstrapSummaryHttpRouteHandler.ts
|
|
5207
|
-
var _ref$
|
|
5426
|
+
var _ref$72;
|
|
5208
5427
|
let DevBootstrapSummaryHttpRouteHandler = class DevBootstrapSummaryHttpRouteHandler$1 {
|
|
5209
5428
|
constructor(assembler) {
|
|
5210
5429
|
this.assembler = assembler;
|
|
@@ -5224,12 +5443,12 @@ let DevBootstrapSummaryHttpRouteHandler = class DevBootstrapSummaryHttpRouteHand
|
|
|
5224
5443
|
DevBootstrapSummaryHttpRouteHandler = __decorate([
|
|
5225
5444
|
injectable(),
|
|
5226
5445
|
__decorateParam(0, inject(DevBootstrapSummaryAssembler)),
|
|
5227
|
-
__decorateMetadata("design:paramtypes", [typeof (_ref$
|
|
5446
|
+
__decorateMetadata("design:paramtypes", [typeof (_ref$72 = typeof DevBootstrapSummaryAssembler !== "undefined" && DevBootstrapSummaryAssembler) === "function" ? _ref$72 : Object])
|
|
5228
5447
|
], DevBootstrapSummaryHttpRouteHandler);
|
|
5229
5448
|
|
|
5230
5449
|
//#endregion
|
|
5231
5450
|
//#region src/presentation/http/routeHandlers/InternalAuthBootstrapHttpRouteHandler.ts
|
|
5232
|
-
var _ref$
|
|
5451
|
+
var _ref$71;
|
|
5233
5452
|
let InternalAuthBootstrapHttpRouteHandler = class InternalAuthBootstrapHttpRouteHandler$1 {
|
|
5234
5453
|
constructor(bootstrapFactory) {
|
|
5235
5454
|
this.bootstrapFactory = bootstrapFactory;
|
|
@@ -5244,12 +5463,12 @@ let InternalAuthBootstrapHttpRouteHandler = class InternalAuthBootstrapHttpRoute
|
|
|
5244
5463
|
InternalAuthBootstrapHttpRouteHandler = __decorate([
|
|
5245
5464
|
injectable(),
|
|
5246
5465
|
__decorateParam(0, inject(InternalAuthBootstrapFactory)),
|
|
5247
|
-
__decorateMetadata("design:paramtypes", [typeof (_ref$
|
|
5466
|
+
__decorateMetadata("design:paramtypes", [typeof (_ref$71 = typeof InternalAuthBootstrapFactory !== "undefined" && InternalAuthBootstrapFactory) === "function" ? _ref$71 : Object])
|
|
5248
5467
|
], InternalAuthBootstrapHttpRouteHandler);
|
|
5249
5468
|
|
|
5250
5469
|
//#endregion
|
|
5251
5470
|
//#region src/presentation/http/routeHandlers/PublicFrontendBootstrapHttpRouteHandler.ts
|
|
5252
|
-
var _ref$
|
|
5471
|
+
var _ref$70;
|
|
5253
5472
|
let PublicFrontendBootstrapHttpRouteHandler = class PublicFrontendBootstrapHttpRouteHandler$1 {
|
|
5254
5473
|
constructor(bootstrapFactory) {
|
|
5255
5474
|
this.bootstrapFactory = bootstrapFactory;
|
|
@@ -5264,7 +5483,7 @@ let PublicFrontendBootstrapHttpRouteHandler = class PublicFrontendBootstrapHttpR
|
|
|
5264
5483
|
PublicFrontendBootstrapHttpRouteHandler = __decorate([
|
|
5265
5484
|
injectable(),
|
|
5266
5485
|
__decorateParam(0, inject(PublicFrontendBootstrapFactory)),
|
|
5267
|
-
__decorateMetadata("design:paramtypes", [typeof (_ref$
|
|
5486
|
+
__decorateMetadata("design:paramtypes", [typeof (_ref$70 = typeof PublicFrontendBootstrapFactory !== "undefined" && PublicFrontendBootstrapFactory) === "function" ? _ref$70 : Object])
|
|
5268
5487
|
], PublicFrontendBootstrapHttpRouteHandler);
|
|
5269
5488
|
|
|
5270
5489
|
//#endregion
|
|
@@ -5436,13 +5655,14 @@ var HonoHttpAnonymousRoutePolicy = class {
|
|
|
5436
5655
|
}
|
|
5437
5656
|
if (pathname === ApiPaths.userInviteVerify() || pathname === ApiPaths.userInviteAccept()) return true;
|
|
5438
5657
|
if (pathname === ApiPaths.whitelabelLogo()) return true;
|
|
5658
|
+
if (/^\/api\/hitl\/tasks\/[^/]+\/resume$/.test(pathname)) return true;
|
|
5439
5659
|
return false;
|
|
5440
5660
|
}
|
|
5441
5661
|
};
|
|
5442
5662
|
|
|
5443
5663
|
//#endregion
|
|
5444
5664
|
//#region src/presentation/http/hono/CodemationHonoApiAppFactory.ts
|
|
5445
|
-
var _ref$
|
|
5665
|
+
var _ref$69, _ref2$30, _ref3$9, _ref4$6;
|
|
5446
5666
|
let CodemationHonoApiApp = class CodemationHonoApiApp$1 {
|
|
5447
5667
|
app;
|
|
5448
5668
|
constructor(sessionVerifier, registrars, binaryHttpRouteHandler, internalRegistrars, corsMiddlewareList) {
|
|
@@ -5494,16 +5714,16 @@ CodemationHonoApiApp = __decorate([
|
|
|
5494
5714
|
__decorateParam(4, injectAll(ApplicationTokens.ManagedCorsMiddleware, { isOptional: true })),
|
|
5495
5715
|
__decorateMetadata("design:paramtypes", [
|
|
5496
5716
|
Object,
|
|
5497
|
-
typeof (_ref$
|
|
5498
|
-
typeof (_ref2$
|
|
5499
|
-
typeof (_ref3$
|
|
5500
|
-
typeof (_ref4$
|
|
5717
|
+
typeof (_ref$69 = typeof ReadonlyArray !== "undefined" && ReadonlyArray) === "function" ? _ref$69 : Object,
|
|
5718
|
+
typeof (_ref2$30 = typeof BinaryHttpRouteHandler !== "undefined" && BinaryHttpRouteHandler) === "function" ? _ref2$30 : Object,
|
|
5719
|
+
typeof (_ref3$9 = typeof ReadonlyArray !== "undefined" && ReadonlyArray) === "function" ? _ref3$9 : Object,
|
|
5720
|
+
typeof (_ref4$6 = typeof ReadonlyArray !== "undefined" && ReadonlyArray) === "function" ? _ref4$6 : Object
|
|
5501
5721
|
])
|
|
5502
5722
|
], CodemationHonoApiApp);
|
|
5503
5723
|
|
|
5504
5724
|
//#endregion
|
|
5505
5725
|
//#region src/presentation/http/hono/registrars/AuthHonoApiRouteRegistrar.ts
|
|
5506
|
-
var _ref$
|
|
5726
|
+
var _ref$68, _ref2$29;
|
|
5507
5727
|
let AuthHonoApiRouteRegistrar = class AuthHonoApiRouteRegistrar$1 {
|
|
5508
5728
|
constructor(handler, betterAuthRuntime) {
|
|
5509
5729
|
this.handler = handler;
|
|
@@ -5525,12 +5745,12 @@ AuthHonoApiRouteRegistrar = __decorate([
|
|
|
5525
5745
|
injectable(),
|
|
5526
5746
|
__decorateParam(0, inject(AuthHttpRouteHandler)),
|
|
5527
5747
|
__decorateParam(1, inject(CodemationBetterAuthRuntime)),
|
|
5528
|
-
__decorateMetadata("design:paramtypes", [typeof (_ref$
|
|
5748
|
+
__decorateMetadata("design:paramtypes", [typeof (_ref$68 = typeof AuthHttpRouteHandler !== "undefined" && AuthHttpRouteHandler) === "function" ? _ref$68 : Object, typeof (_ref2$29 = typeof CodemationBetterAuthRuntime !== "undefined" && CodemationBetterAuthRuntime) === "function" ? _ref2$29 : Object])
|
|
5529
5749
|
], AuthHonoApiRouteRegistrar);
|
|
5530
5750
|
|
|
5531
5751
|
//#endregion
|
|
5532
5752
|
//#region src/presentation/http/hono/registrars/BinaryHonoApiRouteRegistrar.ts
|
|
5533
|
-
var _ref$
|
|
5753
|
+
var _ref$67;
|
|
5534
5754
|
let BinaryHonoApiRouteRegistrar = class BinaryHonoApiRouteRegistrar$1 {
|
|
5535
5755
|
constructor(handler) {
|
|
5536
5756
|
this.handler = handler;
|
|
@@ -5545,12 +5765,12 @@ let BinaryHonoApiRouteRegistrar = class BinaryHonoApiRouteRegistrar$1 {
|
|
|
5545
5765
|
BinaryHonoApiRouteRegistrar = __decorate([
|
|
5546
5766
|
injectable(),
|
|
5547
5767
|
__decorateParam(0, inject(BinaryHttpRouteHandler)),
|
|
5548
|
-
__decorateMetadata("design:paramtypes", [typeof (_ref$
|
|
5768
|
+
__decorateMetadata("design:paramtypes", [typeof (_ref$67 = typeof BinaryHttpRouteHandler !== "undefined" && BinaryHttpRouteHandler) === "function" ? _ref$67 : Object])
|
|
5549
5769
|
], BinaryHonoApiRouteRegistrar);
|
|
5550
5770
|
|
|
5551
5771
|
//#endregion
|
|
5552
5772
|
//#region src/presentation/http/hono/registrars/BootstrapHonoApiRouteRegistrar.ts
|
|
5553
|
-
var _ref$
|
|
5773
|
+
var _ref$66, _ref2$28;
|
|
5554
5774
|
let BootstrapHonoApiRouteRegistrar = class BootstrapHonoApiRouteRegistrar$1 {
|
|
5555
5775
|
constructor(publicFrontendBootstrapHttpRouteHandler, internalAuthBootstrapHttpRouteHandler) {
|
|
5556
5776
|
this.publicFrontendBootstrapHttpRouteHandler = publicFrontendBootstrapHttpRouteHandler;
|
|
@@ -5568,7 +5788,7 @@ BootstrapHonoApiRouteRegistrar = __decorate([
|
|
|
5568
5788
|
injectable(),
|
|
5569
5789
|
__decorateParam(0, inject(PublicFrontendBootstrapHttpRouteHandler)),
|
|
5570
5790
|
__decorateParam(1, inject(InternalAuthBootstrapHttpRouteHandler)),
|
|
5571
|
-
__decorateMetadata("design:paramtypes", [typeof (_ref$
|
|
5791
|
+
__decorateMetadata("design:paramtypes", [typeof (_ref$66 = typeof PublicFrontendBootstrapHttpRouteHandler !== "undefined" && PublicFrontendBootstrapHttpRouteHandler) === "function" ? _ref$66 : Object, typeof (_ref2$28 = typeof InternalAuthBootstrapHttpRouteHandler !== "undefined" && InternalAuthBootstrapHttpRouteHandler) === "function" ? _ref2$28 : Object])
|
|
5572
5792
|
], BootstrapHonoApiRouteRegistrar);
|
|
5573
5793
|
|
|
5574
5794
|
//#endregion
|
|
@@ -5613,6 +5833,13 @@ let CredentialHttpRouteHandler = class CredentialHttpRouteHandler$1 {
|
|
|
5613
5833
|
return ServerHttpErrorResponseFactory.fromUnknown(error);
|
|
5614
5834
|
}
|
|
5615
5835
|
}
|
|
5836
|
+
async getCredentialApps() {
|
|
5837
|
+
try {
|
|
5838
|
+
return Response.json(await this.queryBus.execute(new GetCredentialAppsQuery()));
|
|
5839
|
+
} catch (error) {
|
|
5840
|
+
return ServerHttpErrorResponseFactory.fromUnknown(error);
|
|
5841
|
+
}
|
|
5842
|
+
}
|
|
5616
5843
|
async getCredentialInstance(request, params) {
|
|
5617
5844
|
try {
|
|
5618
5845
|
const withSecrets = new URL(request.url).searchParams.get("withSecrets") === "1";
|
|
@@ -5691,12 +5918,13 @@ CredentialHttpRouteHandler = __decorate([
|
|
|
5691
5918
|
|
|
5692
5919
|
//#endregion
|
|
5693
5920
|
//#region src/presentation/http/hono/registrars/CredentialHonoApiRouteRegistrar.ts
|
|
5694
|
-
var _ref$
|
|
5921
|
+
var _ref$65;
|
|
5695
5922
|
let CredentialHonoApiRouteRegistrar = class CredentialHonoApiRouteRegistrar$1 {
|
|
5696
5923
|
constructor(handler) {
|
|
5697
5924
|
this.handler = handler;
|
|
5698
5925
|
}
|
|
5699
5926
|
register(app) {
|
|
5927
|
+
app.get("/credentials/apps", (_c$1) => this.handler.getCredentialApps());
|
|
5700
5928
|
app.get("/credentials/types", (_c$1) => this.handler.getCredentialTypes());
|
|
5701
5929
|
app.get("/credentials/env-status", (_c$1) => this.handler.getCredentialFieldEnvStatus());
|
|
5702
5930
|
app.get("/credentials/instances", (_c$1) => this.handler.getCredentialInstances());
|
|
@@ -5712,12 +5940,12 @@ let CredentialHonoApiRouteRegistrar = class CredentialHonoApiRouteRegistrar$1 {
|
|
|
5712
5940
|
CredentialHonoApiRouteRegistrar = __decorate([
|
|
5713
5941
|
injectable(),
|
|
5714
5942
|
__decorateParam(0, inject(CredentialHttpRouteHandler)),
|
|
5715
|
-
__decorateMetadata("design:paramtypes", [typeof (_ref$
|
|
5943
|
+
__decorateMetadata("design:paramtypes", [typeof (_ref$65 = typeof CredentialHttpRouteHandler !== "undefined" && CredentialHttpRouteHandler) === "function" ? _ref$65 : Object])
|
|
5716
5944
|
], CredentialHonoApiRouteRegistrar);
|
|
5717
5945
|
|
|
5718
5946
|
//#endregion
|
|
5719
5947
|
//#region src/presentation/http/hono/registrars/DevHonoApiRouteRegistrar.ts
|
|
5720
|
-
var _ref$
|
|
5948
|
+
var _ref$64;
|
|
5721
5949
|
let DevHonoApiRouteRegistrar = class DevHonoApiRouteRegistrar$1 {
|
|
5722
5950
|
constructor(handler) {
|
|
5723
5951
|
this.handler = handler;
|
|
@@ -5729,12 +5957,12 @@ let DevHonoApiRouteRegistrar = class DevHonoApiRouteRegistrar$1 {
|
|
|
5729
5957
|
DevHonoApiRouteRegistrar = __decorate([
|
|
5730
5958
|
injectable(),
|
|
5731
5959
|
__decorateParam(0, inject(DevBootstrapSummaryHttpRouteHandler)),
|
|
5732
|
-
__decorateMetadata("design:paramtypes", [typeof (_ref$
|
|
5960
|
+
__decorateMetadata("design:paramtypes", [typeof (_ref$64 = typeof DevBootstrapSummaryHttpRouteHandler !== "undefined" && DevBootstrapSummaryHttpRouteHandler) === "function" ? _ref$64 : Object])
|
|
5733
5961
|
], DevHonoApiRouteRegistrar);
|
|
5734
5962
|
|
|
5735
5963
|
//#endregion
|
|
5736
5964
|
//#region src/presentation/http/routeHandlers/OAuth2HttpRouteHandlerFactory.ts
|
|
5737
|
-
var _ref$
|
|
5965
|
+
var _ref$63, _ref2$27, _ref3$8, _OAuth2HttpRouteHandler;
|
|
5738
5966
|
let OAuth2HttpRouteHandler = _OAuth2HttpRouteHandler = class OAuth2HttpRouteHandler$1 {
|
|
5739
5967
|
constructor(redirectUriResolver, credentialInstanceService, oauthFlowExecutor, credentialStore, credentialSecretCipher) {
|
|
5740
5968
|
this.redirectUriResolver = redirectUriResolver;
|
|
@@ -5786,7 +6014,7 @@ let OAuth2HttpRouteHandler = _OAuth2HttpRouteHandler = class OAuth2HttpRouteHand
|
|
|
5786
6014
|
const stateToken = url.searchParams.get("state")?.trim();
|
|
5787
6015
|
if (!code || !stateToken) return new Response(this.createPopupHtml({
|
|
5788
6016
|
kind: "oauth2.error",
|
|
5789
|
-
message: "Missing code
|
|
6017
|
+
message: "Missing code and state parameters."
|
|
5790
6018
|
}), {
|
|
5791
6019
|
status: 400,
|
|
5792
6020
|
headers: { "content-type": "text/html; charset=utf-8" }
|
|
@@ -5887,17 +6115,17 @@ OAuth2HttpRouteHandler = _OAuth2HttpRouteHandler = __decorate([
|
|
|
5887
6115
|
__decorateParam(3, inject(ApplicationTokens.CredentialStore)),
|
|
5888
6116
|
__decorateParam(4, inject(CredentialSecretCipher)),
|
|
5889
6117
|
__decorateMetadata("design:paramtypes", [
|
|
5890
|
-
typeof (_ref$
|
|
5891
|
-
typeof (_ref2$
|
|
6118
|
+
typeof (_ref$63 = typeof OAuth2RedirectUriResolver !== "undefined" && OAuth2RedirectUriResolver) === "function" ? _ref$63 : Object,
|
|
6119
|
+
typeof (_ref2$27 = typeof CredentialInstanceService !== "undefined" && CredentialInstanceService) === "function" ? _ref2$27 : Object,
|
|
5892
6120
|
Object,
|
|
5893
6121
|
Object,
|
|
5894
|
-
typeof (_ref3$
|
|
6122
|
+
typeof (_ref3$8 = typeof CredentialSecretCipher !== "undefined" && CredentialSecretCipher) === "function" ? _ref3$8 : Object
|
|
5895
6123
|
])
|
|
5896
6124
|
], OAuth2HttpRouteHandler);
|
|
5897
6125
|
|
|
5898
6126
|
//#endregion
|
|
5899
6127
|
//#region src/presentation/http/hono/registrars/OAuth2HonoApiRouteRegistrar.ts
|
|
5900
|
-
var _ref$
|
|
6128
|
+
var _ref$62;
|
|
5901
6129
|
let OAuth2HonoApiRouteRegistrar = class OAuth2HonoApiRouteRegistrar$1 {
|
|
5902
6130
|
constructor(handler) {
|
|
5903
6131
|
this.handler = handler;
|
|
@@ -5912,7 +6140,7 @@ let OAuth2HonoApiRouteRegistrar = class OAuth2HonoApiRouteRegistrar$1 {
|
|
|
5912
6140
|
OAuth2HonoApiRouteRegistrar = __decorate([
|
|
5913
6141
|
injectable(),
|
|
5914
6142
|
__decorateParam(0, inject(OAuth2HttpRouteHandler)),
|
|
5915
|
-
__decorateMetadata("design:paramtypes", [typeof (_ref$
|
|
6143
|
+
__decorateMetadata("design:paramtypes", [typeof (_ref$62 = typeof OAuth2HttpRouteHandler !== "undefined" && OAuth2HttpRouteHandler) === "function" ? _ref$62 : Object])
|
|
5916
6144
|
], OAuth2HonoApiRouteRegistrar);
|
|
5917
6145
|
|
|
5918
6146
|
//#endregion
|
|
@@ -5982,7 +6210,7 @@ RunHttpRouteHandler = __decorate([
|
|
|
5982
6210
|
|
|
5983
6211
|
//#endregion
|
|
5984
6212
|
//#region src/presentation/http/hono/registrars/RunHonoApiRouteRegistrar.ts
|
|
5985
|
-
var _ref$
|
|
6213
|
+
var _ref$61;
|
|
5986
6214
|
let RunHonoApiRouteRegistrar = class RunHonoApiRouteRegistrar$1 {
|
|
5987
6215
|
constructor(handler) {
|
|
5988
6216
|
this.handler = handler;
|
|
@@ -6005,7 +6233,7 @@ let RunHonoApiRouteRegistrar = class RunHonoApiRouteRegistrar$1 {
|
|
|
6005
6233
|
RunHonoApiRouteRegistrar = __decorate([
|
|
6006
6234
|
injectable(),
|
|
6007
6235
|
__decorateParam(0, inject(RunHttpRouteHandler)),
|
|
6008
|
-
__decorateMetadata("design:paramtypes", [typeof (_ref$
|
|
6236
|
+
__decorateMetadata("design:paramtypes", [typeof (_ref$61 = typeof RunHttpRouteHandler !== "undefined" && RunHttpRouteHandler) === "function" ? _ref$61 : Object])
|
|
6009
6237
|
], RunHonoApiRouteRegistrar);
|
|
6010
6238
|
|
|
6011
6239
|
//#endregion
|
|
@@ -6128,7 +6356,7 @@ TelemetryHttpRouteHandler = __decorate([
|
|
|
6128
6356
|
|
|
6129
6357
|
//#endregion
|
|
6130
6358
|
//#region src/presentation/http/hono/registrars/TelemetryHonoApiRouteRegistrar.ts
|
|
6131
|
-
var _ref$
|
|
6359
|
+
var _ref$60;
|
|
6132
6360
|
let TelemetryHonoApiRouteRegistrar = class TelemetryHonoApiRouteRegistrar$1 {
|
|
6133
6361
|
constructor(handler) {
|
|
6134
6362
|
this.handler = handler;
|
|
@@ -6144,7 +6372,7 @@ let TelemetryHonoApiRouteRegistrar = class TelemetryHonoApiRouteRegistrar$1 {
|
|
|
6144
6372
|
TelemetryHonoApiRouteRegistrar = __decorate([
|
|
6145
6373
|
injectable(),
|
|
6146
6374
|
__decorateParam(0, inject(TelemetryHttpRouteHandler)),
|
|
6147
|
-
__decorateMetadata("design:paramtypes", [typeof (_ref$
|
|
6375
|
+
__decorateMetadata("design:paramtypes", [typeof (_ref$60 = typeof TelemetryHttpRouteHandler !== "undefined" && TelemetryHttpRouteHandler) === "function" ? _ref$60 : Object])
|
|
6148
6376
|
], TelemetryHonoApiRouteRegistrar);
|
|
6149
6377
|
|
|
6150
6378
|
//#endregion
|
|
@@ -6228,7 +6456,7 @@ UserHttpRouteHandler = __decorate([
|
|
|
6228
6456
|
|
|
6229
6457
|
//#endregion
|
|
6230
6458
|
//#region src/presentation/http/hono/registrars/UserHonoApiRouteRegistrar.ts
|
|
6231
|
-
var _ref$
|
|
6459
|
+
var _ref$59;
|
|
6232
6460
|
let UserHonoApiRouteRegistrar = class UserHonoApiRouteRegistrar$1 {
|
|
6233
6461
|
constructor(handler) {
|
|
6234
6462
|
this.handler = handler;
|
|
@@ -6245,7 +6473,7 @@ let UserHonoApiRouteRegistrar = class UserHonoApiRouteRegistrar$1 {
|
|
|
6245
6473
|
UserHonoApiRouteRegistrar = __decorate([
|
|
6246
6474
|
injectable(),
|
|
6247
6475
|
__decorateParam(0, inject(UserHttpRouteHandler)),
|
|
6248
|
-
__decorateMetadata("design:paramtypes", [typeof (_ref$
|
|
6476
|
+
__decorateMetadata("design:paramtypes", [typeof (_ref$59 = typeof UserHttpRouteHandler !== "undefined" && UserHttpRouteHandler) === "function" ? _ref$59 : Object])
|
|
6249
6477
|
], UserHonoApiRouteRegistrar);
|
|
6250
6478
|
|
|
6251
6479
|
//#endregion
|
|
@@ -6346,7 +6574,7 @@ RequestToWebhookItemMapper = __decorate([
|
|
|
6346
6574
|
|
|
6347
6575
|
//#endregion
|
|
6348
6576
|
//#region src/presentation/http/routeHandlers/WebhookHttpRouteHandler.ts
|
|
6349
|
-
var _ref$
|
|
6577
|
+
var _ref$58, _ref2$26;
|
|
6350
6578
|
let WebhookHttpRouteHandler = class WebhookHttpRouteHandler$1 {
|
|
6351
6579
|
constructor(commandBus, runIntentService, requestToWebhookItemMapper) {
|
|
6352
6580
|
this.commandBus = commandBus;
|
|
@@ -6377,14 +6605,14 @@ WebhookHttpRouteHandler = __decorate([
|
|
|
6377
6605
|
__decorateParam(2, inject(RequestToWebhookItemMapper)),
|
|
6378
6606
|
__decorateMetadata("design:paramtypes", [
|
|
6379
6607
|
Object,
|
|
6380
|
-
typeof (_ref$
|
|
6381
|
-
typeof (_ref2$
|
|
6608
|
+
typeof (_ref$58 = typeof RunIntentService !== "undefined" && RunIntentService) === "function" ? _ref$58 : Object,
|
|
6609
|
+
typeof (_ref2$26 = typeof RequestToWebhookItemMapper !== "undefined" && RequestToWebhookItemMapper) === "function" ? _ref2$26 : Object
|
|
6382
6610
|
])
|
|
6383
6611
|
], WebhookHttpRouteHandler);
|
|
6384
6612
|
|
|
6385
6613
|
//#endregion
|
|
6386
6614
|
//#region src/presentation/http/hono/registrars/WebhookHonoApiRouteRegistrar.ts
|
|
6387
|
-
var _ref$
|
|
6615
|
+
var _ref$57;
|
|
6388
6616
|
let WebhookHonoApiRouteRegistrar = class WebhookHonoApiRouteRegistrar$1 {
|
|
6389
6617
|
constructor(handler) {
|
|
6390
6618
|
this.handler = handler;
|
|
@@ -6402,12 +6630,12 @@ let WebhookHonoApiRouteRegistrar = class WebhookHonoApiRouteRegistrar$1 {
|
|
|
6402
6630
|
WebhookHonoApiRouteRegistrar = __decorate([
|
|
6403
6631
|
injectable(),
|
|
6404
6632
|
__decorateParam(0, inject(WebhookHttpRouteHandler)),
|
|
6405
|
-
__decorateMetadata("design:paramtypes", [typeof (_ref$
|
|
6633
|
+
__decorateMetadata("design:paramtypes", [typeof (_ref$57 = typeof WebhookHttpRouteHandler !== "undefined" && WebhookHttpRouteHandler) === "function" ? _ref$57 : Object])
|
|
6406
6634
|
], WebhookHonoApiRouteRegistrar);
|
|
6407
6635
|
|
|
6408
6636
|
//#endregion
|
|
6409
6637
|
//#region src/presentation/http/hono/registrars/WhitelabelHonoApiRouteRegistrar.ts
|
|
6410
|
-
var _ref$
|
|
6638
|
+
var _ref$56;
|
|
6411
6639
|
let WhitelabelHonoApiRouteRegistrar = class WhitelabelHonoApiRouteRegistrar$1 {
|
|
6412
6640
|
constructor(whitelabelLogoHttpRouteHandler) {
|
|
6413
6641
|
this.whitelabelLogoHttpRouteHandler = whitelabelLogoHttpRouteHandler;
|
|
@@ -6419,7 +6647,7 @@ let WhitelabelHonoApiRouteRegistrar = class WhitelabelHonoApiRouteRegistrar$1 {
|
|
|
6419
6647
|
WhitelabelHonoApiRouteRegistrar = __decorate([
|
|
6420
6648
|
injectable(),
|
|
6421
6649
|
__decorateParam(0, inject(WhitelabelLogoHttpRouteHandler)),
|
|
6422
|
-
__decorateMetadata("design:paramtypes", [typeof (_ref$
|
|
6650
|
+
__decorateMetadata("design:paramtypes", [typeof (_ref$56 = typeof WhitelabelLogoHttpRouteHandler !== "undefined" && WhitelabelLogoHttpRouteHandler) === "function" ? _ref$56 : Object])
|
|
6423
6651
|
], WhitelabelHonoApiRouteRegistrar);
|
|
6424
6652
|
|
|
6425
6653
|
//#endregion
|
|
@@ -6624,7 +6852,7 @@ var TestSuiteRunTracker = class {
|
|
|
6624
6852
|
|
|
6625
6853
|
//#endregion
|
|
6626
6854
|
//#region src/application/runs/TestSuiteRunTrackerFactory.ts
|
|
6627
|
-
var _ref$
|
|
6855
|
+
var _ref$55, _ref2$25;
|
|
6628
6856
|
const TestSuiteRunRepositoryToken = Symbol.for("codemation.application.testing.TestSuiteRunRepository");
|
|
6629
6857
|
const TestAssertionRepositoryToken = Symbol.for("codemation.application.testing.TestAssertionRepository");
|
|
6630
6858
|
let TestSuiteRunTrackerFactory = class TestSuiteRunTrackerFactory$1 {
|
|
@@ -6657,8 +6885,8 @@ TestSuiteRunTrackerFactory = __decorate([
|
|
|
6657
6885
|
Object,
|
|
6658
6886
|
Object,
|
|
6659
6887
|
Object,
|
|
6660
|
-
typeof (_ref$
|
|
6661
|
-
typeof (_ref2$
|
|
6888
|
+
typeof (_ref$55 = typeof TestAssertionIdFactory !== "undefined" && TestAssertionIdFactory) === "function" ? _ref$55 : Object,
|
|
6889
|
+
typeof (_ref2$25 = typeof AssertionResultGuard !== "undefined" && AssertionResultGuard) === "function" ? _ref2$25 : Object
|
|
6662
6890
|
])
|
|
6663
6891
|
], TestSuiteRunTrackerFactory);
|
|
6664
6892
|
|
|
@@ -6719,7 +6947,7 @@ TestAssertionAggregator = __decorate([
|
|
|
6719
6947
|
|
|
6720
6948
|
//#endregion
|
|
6721
6949
|
//#region src/application/runs/TestRunnerService.ts
|
|
6722
|
-
var _ref$
|
|
6950
|
+
var _ref$54, _ref2$24;
|
|
6723
6951
|
const TestRunnerWorkflowLookupToken = Symbol.for("codemation.application.testing.TestRunnerWorkflowLookup");
|
|
6724
6952
|
const TestRunnerEventBusToken = Symbol.for("codemation.application.testing.TestRunnerEventBus");
|
|
6725
6953
|
let TestRunnerService = class TestRunnerService$1 {
|
|
@@ -6800,11 +7028,11 @@ TestRunnerService = __decorate([
|
|
|
6800
7028
|
__decorateParam(3, inject(TestSuiteRunRepositoryToken)),
|
|
6801
7029
|
__decorateParam(4, inject(TestSuiteRunTrackerFactory)),
|
|
6802
7030
|
__decorateMetadata("design:paramtypes", [
|
|
6803
|
-
typeof (_ref$
|
|
7031
|
+
typeof (_ref$54 = typeof TestSuiteOrchestrator !== "undefined" && TestSuiteOrchestrator) === "function" ? _ref$54 : Object,
|
|
6804
7032
|
Object,
|
|
6805
7033
|
Object,
|
|
6806
7034
|
Object,
|
|
6807
|
-
typeof (_ref2$
|
|
7035
|
+
typeof (_ref2$24 = typeof TestSuiteRunTrackerFactory !== "undefined" && TestSuiteRunTrackerFactory) === "function" ? _ref2$24 : Object
|
|
6808
7036
|
])
|
|
6809
7037
|
], TestRunnerService);
|
|
6810
7038
|
|
|
@@ -6891,7 +7119,7 @@ TestSuiteRunSummaryMapper = __decorate([injectable()], TestSuiteRunSummaryMapper
|
|
|
6891
7119
|
|
|
6892
7120
|
//#endregion
|
|
6893
7121
|
//#region src/presentation/http/routeHandlers/TestSuiteHttpRouteHandler.ts
|
|
6894
|
-
var _ref$
|
|
7122
|
+
var _ref$53, _ref2$23, _ref3$7, _ref4$5, _ref5$3;
|
|
6895
7123
|
let TestSuiteHttpRouteHandler = class TestSuiteHttpRouteHandler$1 {
|
|
6896
7124
|
constructor(testRunner, suiteRepo, assertionRepo, assertionAggregator, summaryMapper, assertionMapper, childRunMapper) {
|
|
6897
7125
|
this.testRunner = testRunner;
|
|
@@ -6992,19 +7220,19 @@ TestSuiteHttpRouteHandler = __decorate([
|
|
|
6992
7220
|
__decorateParam(5, inject(TestAssertionMapper)),
|
|
6993
7221
|
__decorateParam(6, inject(TestSuiteChildRunMapper)),
|
|
6994
7222
|
__decorateMetadata("design:paramtypes", [
|
|
6995
|
-
typeof (_ref$
|
|
7223
|
+
typeof (_ref$53 = typeof TestRunnerService !== "undefined" && TestRunnerService) === "function" ? _ref$53 : Object,
|
|
6996
7224
|
Object,
|
|
6997
7225
|
Object,
|
|
6998
|
-
typeof (_ref2$
|
|
6999
|
-
typeof (_ref3$
|
|
7000
|
-
typeof (_ref4$
|
|
7001
|
-
typeof (_ref5$
|
|
7226
|
+
typeof (_ref2$23 = typeof TestAssertionAggregator !== "undefined" && TestAssertionAggregator) === "function" ? _ref2$23 : Object,
|
|
7227
|
+
typeof (_ref3$7 = typeof TestSuiteRunSummaryMapper !== "undefined" && TestSuiteRunSummaryMapper) === "function" ? _ref3$7 : Object,
|
|
7228
|
+
typeof (_ref4$5 = typeof TestAssertionMapper !== "undefined" && TestAssertionMapper) === "function" ? _ref4$5 : Object,
|
|
7229
|
+
typeof (_ref5$3 = typeof TestSuiteChildRunMapper !== "undefined" && TestSuiteChildRunMapper) === "function" ? _ref5$3 : Object
|
|
7002
7230
|
])
|
|
7003
7231
|
], TestSuiteHttpRouteHandler);
|
|
7004
7232
|
|
|
7005
7233
|
//#endregion
|
|
7006
7234
|
//#region src/presentation/http/hono/registrars/TestSuiteHonoApiRouteRegistrar.ts
|
|
7007
|
-
var _ref$
|
|
7235
|
+
var _ref$52;
|
|
7008
7236
|
let TestSuiteHonoApiRouteRegistrar = class TestSuiteHonoApiRouteRegistrar$1 {
|
|
7009
7237
|
constructor(handler) {
|
|
7010
7238
|
this.handler = handler;
|
|
@@ -7022,12 +7250,12 @@ let TestSuiteHonoApiRouteRegistrar = class TestSuiteHonoApiRouteRegistrar$1 {
|
|
|
7022
7250
|
TestSuiteHonoApiRouteRegistrar = __decorate([
|
|
7023
7251
|
injectable(),
|
|
7024
7252
|
__decorateParam(0, inject(TestSuiteHttpRouteHandler)),
|
|
7025
|
-
__decorateMetadata("design:paramtypes", [typeof (_ref$
|
|
7253
|
+
__decorateMetadata("design:paramtypes", [typeof (_ref$52 = typeof TestSuiteHttpRouteHandler !== "undefined" && TestSuiteHttpRouteHandler) === "function" ? _ref$52 : Object])
|
|
7026
7254
|
], TestSuiteHonoApiRouteRegistrar);
|
|
7027
7255
|
|
|
7028
7256
|
//#endregion
|
|
7029
7257
|
//#region src/presentation/http/routeHandlers/WorkflowHttpRouteHandler.ts
|
|
7030
|
-
var _ref$
|
|
7258
|
+
var _ref$51;
|
|
7031
7259
|
let WorkflowHttpRouteHandler = class WorkflowHttpRouteHandler$1 {
|
|
7032
7260
|
constructor(queryBus, commandBus, workflowDefinitionMapper) {
|
|
7033
7261
|
this.queryBus = queryBus;
|
|
@@ -7101,13 +7329,13 @@ WorkflowHttpRouteHandler = __decorate([
|
|
|
7101
7329
|
__decorateMetadata("design:paramtypes", [
|
|
7102
7330
|
Object,
|
|
7103
7331
|
Object,
|
|
7104
|
-
typeof (_ref$
|
|
7332
|
+
typeof (_ref$51 = typeof WorkflowDefinitionMapper !== "undefined" && WorkflowDefinitionMapper) === "function" ? _ref$51 : Object
|
|
7105
7333
|
])
|
|
7106
7334
|
], WorkflowHttpRouteHandler);
|
|
7107
7335
|
|
|
7108
7336
|
//#endregion
|
|
7109
7337
|
//#region src/presentation/http/hono/registrars/WorkflowHonoApiRouteRegistrar.ts
|
|
7110
|
-
var _ref$
|
|
7338
|
+
var _ref$50;
|
|
7111
7339
|
let WorkflowHonoApiRouteRegistrar = class WorkflowHonoApiRouteRegistrar$1 {
|
|
7112
7340
|
constructor(handler) {
|
|
7113
7341
|
this.handler = handler;
|
|
@@ -7125,7 +7353,7 @@ let WorkflowHonoApiRouteRegistrar = class WorkflowHonoApiRouteRegistrar$1 {
|
|
|
7125
7353
|
WorkflowHonoApiRouteRegistrar = __decorate([
|
|
7126
7354
|
injectable(),
|
|
7127
7355
|
__decorateParam(0, inject(WorkflowHttpRouteHandler)),
|
|
7128
|
-
__decorateMetadata("design:paramtypes", [typeof (_ref$
|
|
7356
|
+
__decorateMetadata("design:paramtypes", [typeof (_ref$50 = typeof WorkflowHttpRouteHandler !== "undefined" && WorkflowHttpRouteHandler) === "function" ? _ref$50 : Object])
|
|
7129
7357
|
], WorkflowHonoApiRouteRegistrar);
|
|
7130
7358
|
|
|
7131
7359
|
//#endregion
|
|
@@ -7182,7 +7410,7 @@ CodemationIdFactory = __decorate([injectable()], CodemationIdFactory);
|
|
|
7182
7410
|
|
|
7183
7411
|
//#endregion
|
|
7184
7412
|
//#region src/infrastructure/di/InMemoryCommandBus.ts
|
|
7185
|
-
var _ref$
|
|
7413
|
+
var _ref$49;
|
|
7186
7414
|
let InMemoryCommandBus = class InMemoryCommandBus$1 {
|
|
7187
7415
|
handlersByCommandType;
|
|
7188
7416
|
constructor(handlers) {
|
|
@@ -7207,7 +7435,7 @@ let InMemoryCommandBus = class InMemoryCommandBus$1 {
|
|
|
7207
7435
|
InMemoryCommandBus = __decorate([
|
|
7208
7436
|
injectable(),
|
|
7209
7437
|
__decorateParam(0, injectAll(ApplicationTokens.CommandHandler)),
|
|
7210
|
-
__decorateMetadata("design:paramtypes", [typeof (_ref$
|
|
7438
|
+
__decorateMetadata("design:paramtypes", [typeof (_ref$49 = typeof ReadonlyArray !== "undefined" && ReadonlyArray) === "function" ? _ref$49 : Object])
|
|
7211
7439
|
], InMemoryCommandBus);
|
|
7212
7440
|
|
|
7213
7441
|
//#endregion
|
|
@@ -7216,7 +7444,7 @@ const domainEventHandlerMetadataKey = Symbol.for("codemation.infrastructure.di.D
|
|
|
7216
7444
|
|
|
7217
7445
|
//#endregion
|
|
7218
7446
|
//#region src/infrastructure/di/InMemoryDomainEventBus.ts
|
|
7219
|
-
var _ref$
|
|
7447
|
+
var _ref$48;
|
|
7220
7448
|
let InMemoryDomainEventBus = class InMemoryDomainEventBus$1 {
|
|
7221
7449
|
handlersByEventType;
|
|
7222
7450
|
constructor(handlers) {
|
|
@@ -7241,12 +7469,12 @@ let InMemoryDomainEventBus = class InMemoryDomainEventBus$1 {
|
|
|
7241
7469
|
InMemoryDomainEventBus = __decorate([
|
|
7242
7470
|
injectable(),
|
|
7243
7471
|
__decorateParam(0, injectAll(ApplicationTokens.DomainEventHandler)),
|
|
7244
|
-
__decorateMetadata("design:paramtypes", [typeof (_ref$
|
|
7472
|
+
__decorateMetadata("design:paramtypes", [typeof (_ref$48 = typeof ReadonlyArray !== "undefined" && ReadonlyArray) === "function" ? _ref$48 : Object])
|
|
7245
7473
|
], InMemoryDomainEventBus);
|
|
7246
7474
|
|
|
7247
7475
|
//#endregion
|
|
7248
7476
|
//#region src/infrastructure/di/InMemoryQueryBus.ts
|
|
7249
|
-
var _ref$
|
|
7477
|
+
var _ref$47;
|
|
7250
7478
|
let InMemoryQueryBus = class InMemoryQueryBus$1 {
|
|
7251
7479
|
handlersByQueryType;
|
|
7252
7480
|
constructor(handlers) {
|
|
@@ -7271,7 +7499,7 @@ let InMemoryQueryBus = class InMemoryQueryBus$1 {
|
|
|
7271
7499
|
InMemoryQueryBus = __decorate([
|
|
7272
7500
|
injectable(),
|
|
7273
7501
|
__decorateParam(0, injectAll(ApplicationTokens.QueryHandler)),
|
|
7274
|
-
__decorateMetadata("design:paramtypes", [typeof (_ref$
|
|
7502
|
+
__decorateMetadata("design:paramtypes", [typeof (_ref$47 = typeof ReadonlyArray !== "undefined" && ReadonlyArray) === "function" ? _ref$47 : Object])
|
|
7275
7503
|
], InMemoryQueryBus);
|
|
7276
7504
|
|
|
7277
7505
|
//#endregion
|
|
@@ -7482,7 +7710,7 @@ var CodemationBetterAuthBaseUrlPolicy = class {
|
|
|
7482
7710
|
|
|
7483
7711
|
//#endregion
|
|
7484
7712
|
//#region src/infrastructure/auth/CodemationSessionVerifier.ts
|
|
7485
|
-
var _ref$
|
|
7713
|
+
var _ref$46;
|
|
7486
7714
|
let CodemationSessionVerifier = class CodemationSessionVerifier$1 {
|
|
7487
7715
|
constructor(betterAuthApiSessionVerifier) {
|
|
7488
7716
|
this.betterAuthApiSessionVerifier = betterAuthApiSessionVerifier;
|
|
@@ -7494,7 +7722,7 @@ let CodemationSessionVerifier = class CodemationSessionVerifier$1 {
|
|
|
7494
7722
|
CodemationSessionVerifier = __decorate([
|
|
7495
7723
|
injectable(),
|
|
7496
7724
|
__decorateParam(0, inject(BetterAuthApiSessionVerifier)),
|
|
7497
|
-
__decorateMetadata("design:paramtypes", [typeof (_ref$
|
|
7725
|
+
__decorateMetadata("design:paramtypes", [typeof (_ref$46 = typeof BetterAuthApiSessionVerifier !== "undefined" && BetterAuthApiSessionVerifier) === "function" ? _ref$46 : Object])
|
|
7498
7726
|
], CodemationSessionVerifier);
|
|
7499
7727
|
|
|
7500
7728
|
//#endregion
|
|
@@ -7536,7 +7764,9 @@ let PrismaCredentialStore = class PrismaCredentialStore$1 {
|
|
|
7536
7764
|
tagsJson: JSON.stringify(args.instance.tags),
|
|
7537
7765
|
setupStatus: args.instance.setupStatus,
|
|
7538
7766
|
createdAt: args.instance.createdAt,
|
|
7539
|
-
updatedAt: args.instance.updatedAt
|
|
7767
|
+
updatedAt: args.instance.updatedAt,
|
|
7768
|
+
materialSource: args.instance.material.source,
|
|
7769
|
+
materialRef: args.instance.material.ref
|
|
7540
7770
|
},
|
|
7541
7771
|
update: {
|
|
7542
7772
|
typeId: args.instance.typeId,
|
|
@@ -7546,7 +7776,9 @@ let PrismaCredentialStore = class PrismaCredentialStore$1 {
|
|
|
7546
7776
|
secretRefJson: JSON.stringify(args.instance.secretRef),
|
|
7547
7777
|
tagsJson: JSON.stringify(args.instance.tags),
|
|
7548
7778
|
setupStatus: args.instance.setupStatus,
|
|
7549
|
-
updatedAt: args.instance.updatedAt
|
|
7779
|
+
updatedAt: args.instance.updatedAt,
|
|
7780
|
+
materialSource: args.instance.material.source,
|
|
7781
|
+
materialRef: args.instance.material.ref
|
|
7550
7782
|
}
|
|
7551
7783
|
});
|
|
7552
7784
|
if (args.secretMaterial) await transaction.credentialSecretMaterial.upsert({
|
|
@@ -7746,7 +7978,11 @@ let PrismaCredentialStore = class PrismaCredentialStore$1 {
|
|
|
7746
7978
|
tags: JSON.parse(row.tagsJson),
|
|
7747
7979
|
setupStatus: row.setupStatus,
|
|
7748
7980
|
createdAt: row.createdAt,
|
|
7749
|
-
updatedAt: row.updatedAt
|
|
7981
|
+
updatedAt: row.updatedAt,
|
|
7982
|
+
material: {
|
|
7983
|
+
source: row.materialSource,
|
|
7984
|
+
ref: row.materialRef === "" ? row.instanceId : row.materialRef
|
|
7985
|
+
}
|
|
7750
7986
|
};
|
|
7751
7987
|
}
|
|
7752
7988
|
toTestRecord(row) {
|
|
@@ -7875,7 +8111,7 @@ InMemoryTriggerSetupStateRepository = __decorate([injectable()], InMemoryTrigger
|
|
|
7875
8111
|
|
|
7876
8112
|
//#endregion
|
|
7877
8113
|
//#region src/infrastructure/persistence/InMemoryRunTraceContextRepository.ts
|
|
7878
|
-
var _ref$
|
|
8114
|
+
var _ref$45;
|
|
7879
8115
|
let InMemoryRunTraceContextRepository = class InMemoryRunTraceContextRepository$1 {
|
|
7880
8116
|
rows = /* @__PURE__ */ new Map();
|
|
7881
8117
|
constructor(otelIdentityFactory) {
|
|
@@ -7917,12 +8153,12 @@ let InMemoryRunTraceContextRepository = class InMemoryRunTraceContextRepository$
|
|
|
7917
8153
|
InMemoryRunTraceContextRepository = __decorate([
|
|
7918
8154
|
injectable(),
|
|
7919
8155
|
__decorateParam(0, inject(OtelIdentityFactory)),
|
|
7920
|
-
__decorateMetadata("design:paramtypes", [typeof (_ref$
|
|
8156
|
+
__decorateMetadata("design:paramtypes", [typeof (_ref$45 = typeof OtelIdentityFactory !== "undefined" && OtelIdentityFactory) === "function" ? _ref$45 : Object])
|
|
7921
8157
|
], InMemoryRunTraceContextRepository);
|
|
7922
8158
|
|
|
7923
8159
|
//#endregion
|
|
7924
8160
|
//#region src/infrastructure/persistence/InMemoryTelemetryArtifactStore.ts
|
|
7925
|
-
var _ref$
|
|
8161
|
+
var _ref$44;
|
|
7926
8162
|
let InMemoryTelemetryArtifactStore = class InMemoryTelemetryArtifactStore$1 {
|
|
7927
8163
|
rows = /* @__PURE__ */ new Map();
|
|
7928
8164
|
constructor(otelIdentityFactory) {
|
|
@@ -7971,12 +8207,12 @@ let InMemoryTelemetryArtifactStore = class InMemoryTelemetryArtifactStore$1 {
|
|
|
7971
8207
|
InMemoryTelemetryArtifactStore = __decorate([
|
|
7972
8208
|
injectable(),
|
|
7973
8209
|
__decorateParam(0, inject(OtelIdentityFactory)),
|
|
7974
|
-
__decorateMetadata("design:paramtypes", [typeof (_ref$
|
|
8210
|
+
__decorateMetadata("design:paramtypes", [typeof (_ref$44 = typeof OtelIdentityFactory !== "undefined" && OtelIdentityFactory) === "function" ? _ref$44 : Object])
|
|
7975
8211
|
], InMemoryTelemetryArtifactStore);
|
|
7976
8212
|
|
|
7977
8213
|
//#endregion
|
|
7978
8214
|
//#region src/infrastructure/persistence/InMemoryTelemetryMetricPointStore.ts
|
|
7979
|
-
var _ref$
|
|
8215
|
+
var _ref$43;
|
|
7980
8216
|
let InMemoryTelemetryMetricPointStore = class InMemoryTelemetryMetricPointStore$1 {
|
|
7981
8217
|
rows = /* @__PURE__ */ new Map();
|
|
7982
8218
|
constructor(otelIdentityFactory) {
|
|
@@ -8037,7 +8273,7 @@ let InMemoryTelemetryMetricPointStore = class InMemoryTelemetryMetricPointStore$
|
|
|
8037
8273
|
InMemoryTelemetryMetricPointStore = __decorate([
|
|
8038
8274
|
injectable(),
|
|
8039
8275
|
__decorateParam(0, inject(OtelIdentityFactory)),
|
|
8040
|
-
__decorateMetadata("design:paramtypes", [typeof (_ref$
|
|
8276
|
+
__decorateMetadata("design:paramtypes", [typeof (_ref$43 = typeof OtelIdentityFactory !== "undefined" && OtelIdentityFactory) === "function" ? _ref$43 : Object])
|
|
8041
8277
|
], InMemoryTelemetryMetricPointStore);
|
|
8042
8278
|
|
|
8043
8279
|
//#endregion
|
|
@@ -16237,6 +16473,7 @@ var require_prisma_sqlite_client = /* @__PURE__ */ __commonJS({ "prisma-generate
|
|
|
16237
16473
|
policySnapshotJson: "policySnapshotJson",
|
|
16238
16474
|
engineCountersJson: "engineCountersJson",
|
|
16239
16475
|
mutableStateJson: "mutableStateJson",
|
|
16476
|
+
hitlStateJson: "hitlStateJson",
|
|
16240
16477
|
outputsByNodeJson: "outputsByNodeJson",
|
|
16241
16478
|
updatedAt: "updatedAt",
|
|
16242
16479
|
testSuiteRunId: "testSuiteRunId",
|
|
@@ -16463,7 +16700,9 @@ var require_prisma_sqlite_client = /* @__PURE__ */ __commonJS({ "prisma-generate
|
|
|
16463
16700
|
tagsJson: "tagsJson",
|
|
16464
16701
|
setupStatus: "setupStatus",
|
|
16465
16702
|
createdAt: "createdAt",
|
|
16466
|
-
updatedAt: "updatedAt"
|
|
16703
|
+
updatedAt: "updatedAt",
|
|
16704
|
+
materialSource: "materialSource",
|
|
16705
|
+
materialRef: "materialRef"
|
|
16467
16706
|
};
|
|
16468
16707
|
exports.Prisma.CredentialSecretMaterialScalarFieldEnum = {
|
|
16469
16708
|
instanceId: "instanceId",
|
|
@@ -16579,9 +16818,36 @@ var require_prisma_sqlite_client = /* @__PURE__ */ __commonJS({ "prisma-generate
|
|
|
16579
16818
|
runId: "runId",
|
|
16580
16819
|
nodeId: "nodeId"
|
|
16581
16820
|
};
|
|
16582
|
-
exports.Prisma.
|
|
16583
|
-
|
|
16584
|
-
|
|
16821
|
+
exports.Prisma.HmacNonceScalarFieldEnum = {
|
|
16822
|
+
nonce: "nonce",
|
|
16823
|
+
expiresAt: "expiresAt"
|
|
16824
|
+
};
|
|
16825
|
+
exports.Prisma.HumanTaskScalarFieldEnum = {
|
|
16826
|
+
id: "id",
|
|
16827
|
+
runId: "runId",
|
|
16828
|
+
workflowId: "workflowId",
|
|
16829
|
+
workspaceId: "workspaceId",
|
|
16830
|
+
nodeId: "nodeId",
|
|
16831
|
+
activationId: "activationId",
|
|
16832
|
+
itemIndex: "itemIndex",
|
|
16833
|
+
status: "status",
|
|
16834
|
+
channel: "channel",
|
|
16835
|
+
subjectJson: "subjectJson",
|
|
16836
|
+
metadataJson: "metadataJson",
|
|
16837
|
+
decisionSchemaJson: "decisionSchemaJson",
|
|
16838
|
+
decisionSchemaHash: "decisionSchemaHash",
|
|
16839
|
+
onTimeout: "onTimeout",
|
|
16840
|
+
deliveryRefJson: "deliveryRefJson",
|
|
16841
|
+
decisionJson: "decisionJson",
|
|
16842
|
+
decidedAt: "decidedAt",
|
|
16843
|
+
decidedByJson: "decidedByJson",
|
|
16844
|
+
resumeTokenHash: "resumeTokenHash",
|
|
16845
|
+
expiresAt: "expiresAt",
|
|
16846
|
+
createdAt: "createdAt"
|
|
16847
|
+
};
|
|
16848
|
+
exports.Prisma.SortOrder = {
|
|
16849
|
+
asc: "asc",
|
|
16850
|
+
desc: "desc"
|
|
16585
16851
|
};
|
|
16586
16852
|
exports.Prisma.NullsOrder = {
|
|
16587
16853
|
first: "first",
|
|
@@ -16613,7 +16879,9 @@ var require_prisma_sqlite_client = /* @__PURE__ */ __commonJS({ "prisma-generate
|
|
|
16613
16879
|
Account: "Account",
|
|
16614
16880
|
Session: "Session",
|
|
16615
16881
|
VerificationToken: "VerificationToken",
|
|
16616
|
-
WorkflowAuditLog: "WorkflowAuditLog"
|
|
16882
|
+
WorkflowAuditLog: "WorkflowAuditLog",
|
|
16883
|
+
HmacNonce: "HmacNonce",
|
|
16884
|
+
HumanTask: "HumanTask"
|
|
16617
16885
|
};
|
|
16618
16886
|
/**
|
|
16619
16887
|
* Create the Client
|
|
@@ -16623,13 +16891,13 @@ var require_prisma_sqlite_client = /* @__PURE__ */ __commonJS({ "prisma-generate
|
|
|
16623
16891
|
"clientVersion": "7.5.0",
|
|
16624
16892
|
"engineVersion": "280c870be64f457428992c43c1f6d557fab6e29e",
|
|
16625
16893
|
"activeProvider": "sqlite",
|
|
16626
|
-
"inlineSchema": "generator client {\n provider = \"prisma-client-js\"\n output = \"../prisma-generated/prisma-sqlite-client\"\n}\n\ndatasource db {\n provider = \"sqlite\"\n}\n\nmodel Run {\n runId String @id @map(\"run_id\")\n workflowId String @map(\"workflow_id\")\n startedAt String @map(\"started_at\")\n finishedAt String? @map(\"finished_at\")\n status String\n revision Int @default(0)\n parentJson String? @map(\"parent_json\")\n executionOptionsJson String? @map(\"execution_options_json\")\n controlJson String? @map(\"control_json\")\n workflowSnapshotJson String? @map(\"workflow_snapshot_json\")\n workflowSnapshotId String? @map(\"workflow_snapshot_id\")\n policySnapshotJson String? @map(\"policy_snapshot_json\")\n engineCountersJson String? @map(\"engine_counters_json\")\n mutableStateJson String? @map(\"mutable_state_json\")\n outputsByNodeJson String @map(\"outputs_by_node_json\")\n updatedAt String @map(\"updated_at\")\n testSuiteRunId String? @map(\"test_suite_run_id\")\n testCaseIndex Int? @map(\"test_case_index\")\n testCaseLabel String? @map(\"test_case_label\")\n testCaseStatus String? @map(\"test_case_status\")\n\n workItems RunWorkItem[]\n executionInstances ExecutionInstance[]\n slotProjection RunSlotProjection?\n testSuiteRun TestSuiteRun? @relation(fields: [testSuiteRunId], references: [id])\n testAssertions TestAssertion[]\n workflowSnapshot WorkflowSnapshot? @relation(fields: [workflowSnapshotId], references: [id])\n\n @@index([workflowId, startedAt])\n @@index([workflowId, status, finishedAt])\n @@index([testSuiteRunId, testCaseIndex])\n @@index([workflowSnapshotId])\n}\n\nmodel RunWorkItem {\n workItemId String @id @map(\"work_item_id\")\n runId String @map(\"run_id\")\n workflowId String @map(\"workflow_id\")\n status String\n targetNodeId String @map(\"target_node_id\")\n batchId String @map(\"batch_id\")\n queueName String? @map(\"queue_name\")\n claimToken String? @map(\"claim_token\")\n claimedBy String? @map(\"claimed_by\")\n claimedAt String? @map(\"claimed_at\")\n availableAt String @map(\"available_at\")\n enqueuedAt String @map(\"enqueued_at\")\n completedAt String? @map(\"completed_at\")\n failedAt String? @map(\"failed_at\")\n sourceInstanceId String? @map(\"source_instance_id\")\n parentInstanceId String? @map(\"parent_instance_id\")\n itemsIn Int @map(\"items_in\")\n inputsByPortJson String @map(\"inputs_by_port_json\")\n errorJson String? @map(\"error_json\")\n\n run Run @relation(fields: [runId], references: [runId], onDelete: Cascade)\n\n @@index([runId, status, availableAt])\n @@index([runId, targetNodeId, batchId])\n}\n\nmodel ExecutionInstance {\n instanceId String @id @map(\"instance_id\")\n runId String @map(\"run_id\")\n workflowId String @map(\"workflow_id\")\n slotNodeId String @map(\"slot_node_id\")\n workflowNodeId String @map(\"workflow_node_id\")\n kind String\n connectionKind String? @map(\"connection_kind\")\n activationId String? @map(\"activation_id\")\n batchId String @map(\"batch_id\")\n runIndex Int @map(\"run_index\")\n parentInstanceId String? @map(\"parent_instance_id\")\n parentRunId String? @map(\"parent_run_id\")\n workerClaimToken String? @map(\"worker_claim_token\")\n status String\n queuedAt String? @map(\"queued_at\")\n startedAt String? @map(\"started_at\")\n finishedAt String? @map(\"finished_at\")\n updatedAt String @map(\"updated_at\")\n itemCount Int @map(\"item_count\")\n inputJson String? @map(\"input_json\")\n outputJson String? @map(\"output_json\")\n errorJson String? @map(\"error_json\")\n inputItemIndicesJson String? @map(\"input_item_indices_json\")\n outputItemCount Int? @map(\"output_item_count\")\n successfulItemCount Int? @map(\"successful_item_count\")\n failedItemCount Int? @map(\"failed_item_count\")\n inputStorageKind String? @map(\"input_storage_kind\")\n outputStorageKind String? @map(\"output_storage_kind\")\n inputBytes Int? @map(\"input_bytes\")\n outputBytes Int? @map(\"output_bytes\")\n inputPreviewJson String? @map(\"input_preview_json\")\n outputPreviewJson String? @map(\"output_preview_json\")\n inputPayloadRef String? @map(\"input_payload_ref\")\n outputPayloadRef String? @map(\"output_payload_ref\")\n inputTruncated Boolean? @map(\"input_truncated\")\n outputTruncated Boolean? @map(\"output_truncated\")\n usedPinnedOutput Boolean? @map(\"used_pinned_output\")\n iterationId String? @map(\"iteration_id\")\n itemIndex Int? @map(\"item_index\")\n parentInvocationId String? @map(\"parent_invocation_id\")\n childRunId String? @map(\"child_run_id\")\n\n run Run @relation(fields: [runId], references: [runId], onDelete: Cascade)\n\n @@unique([runId, slotNodeId, runIndex])\n @@index([runId, slotNodeId, updatedAt])\n @@index([runId, parentInstanceId, updatedAt])\n @@index([runId, kind, updatedAt])\n @@index([iterationId])\n}\n\nmodel RunSlotProjection {\n runId String @id @map(\"run_id\")\n workflowId String @map(\"workflow_id\")\n revision Int\n updatedAt String @map(\"updated_at\")\n slotStatesJson String @map(\"slot_states_json\")\n\n run Run @relation(fields: [runId], references: [runId], onDelete: Cascade)\n\n @@index([workflowId, updatedAt])\n}\n\n/// One execution of a TestTrigger node — orchestrator fans one Run per yielded test-case item.\n/// `triggerNodeId` is *not* a foreign key — workflows live in code, not in DB. `triggerNodeName`\n/// is snapshotted so historical viewing survives renames/deletions of the trigger node.\nmodel TestSuiteRun {\n id String @id\n workflowId String @map(\"workflow_id\")\n triggerNodeId String @map(\"trigger_node_id\")\n triggerNodeName String? @map(\"trigger_node_name\")\n status String\n concurrency Int\n startedAt String @map(\"started_at\")\n finishedAt String? @map(\"finished_at\")\n totalCases Int @default(0) @map(\"total_cases\")\n passedCases Int @default(0) @map(\"passed_cases\")\n failedCases Int @default(0) @map(\"failed_cases\")\n /// Set of nodeIds executed across all child Runs in this suite (JSON array of strings).\n nodeCoverageJson String? @map(\"node_coverage_json\")\n errorMessage String? @map(\"error_message\")\n updatedAt String @map(\"updated_at\")\n\n runs Run[]\n assertions TestAssertion[]\n\n @@index([workflowId, startedAt])\n @@index([workflowId, triggerNodeId, startedAt])\n @@index([status, finishedAt])\n}\n\n/// One assertion record persisted by the host-side TestAssertionPersister whenever a node with\n/// `emitsAssertions: true` completes inside a test-context run. Each assertion item emitted on\n/// `main` becomes one row.\nmodel TestAssertion {\n id String @id\n runId String @map(\"run_id\")\n testSuiteRunId String @map(\"test_suite_run_id\")\n workflowId String @map(\"workflow_id\")\n nodeId String @map(\"node_id\")\n iterationId String? @map(\"iteration_id\")\n itemIndex Int? @map(\"item_index\")\n name String\n score Float\n passThreshold Float? @map(\"pass_threshold\")\n errored Boolean @default(false)\n expectedJson String? @map(\"expected_json\")\n actualJson String? @map(\"actual_json\")\n message String?\n detailsJson String? @map(\"details_json\")\n createdAt String @map(\"created_at\")\n\n run Run @relation(fields: [runId], references: [runId], onDelete: Cascade)\n testSuiteRun TestSuiteRun @relation(fields: [testSuiteRunId], references: [id], onDelete: Cascade)\n\n @@index([testSuiteRunId, createdAt])\n @@index([runId, createdAt])\n @@index([nodeId])\n}\n\nmodel WorkflowDebuggerOverlay {\n workflowId String @id @map(\"workflow_id\")\n updatedAt String @map(\"updated_at\")\n copiedFromRunId String? @map(\"copied_from_run_id\")\n stateJson String @map(\"state_json\")\n}\n\nmodel WorkflowActivation {\n workflowId String @id @map(\"workflow_id\")\n isActive Boolean @default(false) @map(\"is_active\")\n updatedAt String @map(\"updated_at\")\n}\n\nmodel TriggerSetupState {\n workflowId String @map(\"workflow_id\")\n nodeId String @map(\"node_id\")\n updatedAt String @map(\"updated_at\")\n stateJson String @map(\"state_json\")\n\n @@id([workflowId, nodeId])\n}\n\nmodel RunTraceContext {\n runId String @id @map(\"run_id\")\n workflowId String @map(\"workflow_id\")\n traceId String @unique @map(\"trace_id\")\n rootSpanId String @map(\"root_span_id\")\n serviceName String? @map(\"service_name\")\n createdAt String @map(\"created_at\")\n expiresAt String? @map(\"expires_at\")\n\n @@index([workflowId, createdAt])\n}\n\nmodel TelemetrySpan {\n telemetrySpanId String @id @map(\"telemetry_span_id\")\n traceId String @map(\"trace_id\")\n spanId String @map(\"span_id\")\n parentSpanId String? @map(\"parent_span_id\")\n runId String @map(\"run_id\")\n workflowId String @map(\"workflow_id\")\n nodeId String? @map(\"node_id\")\n activationId String? @map(\"activation_id\")\n connectionInvocationId String? @map(\"connection_invocation_id\")\n name String\n kind String\n status String?\n statusMessage String? @map(\"status_message\")\n startTime String? @map(\"start_time\")\n endTime String? @map(\"end_time\")\n workflowFolder String? @map(\"workflow_folder\")\n nodeType String? @map(\"node_type\")\n nodeRole String? @map(\"node_role\")\n modelName String? @map(\"model_name\")\n attributesJson String? @map(\"attributes_json\")\n eventsJson String? @map(\"events_json\")\n retentionExpiresAt String? @map(\"retention_expires_at\")\n iterationId String? @map(\"iteration_id\")\n itemIndex Int? @map(\"item_index\")\n parentInvocationId String? @map(\"parent_invocation_id\")\n updatedAt String @map(\"updated_at\")\n\n @@unique([traceId, spanId])\n @@index([traceId, startTime])\n @@index([workflowId, endTime])\n @@index([workflowId, status, endTime])\n @@index([runId, endTime])\n @@index([modelName, endTime])\n @@index([connectionInvocationId])\n @@index([iterationId])\n @@index([retentionExpiresAt])\n}\n\nmodel WorkflowSnapshot {\n id String @id\n workflowId String @map(\"workflow_id\")\n /// SHA-256 hex digest of snapshotJson — dedup key: same workflow content → one row.\n snapshotHash String @map(\"snapshot_hash\")\n snapshotJson String @map(\"snapshot_json\")\n createdAt String @map(\"created_at\")\n\n runs Run[]\n\n @@unique([workflowId, snapshotHash])\n @@index([workflowId, snapshotHash])\n}\n\nmodel TelemetryArtifact {\n artifactId String @id @map(\"artifact_id\")\n traceId String @map(\"trace_id\")\n spanId String @map(\"span_id\")\n runId String @map(\"run_id\")\n workflowId String @map(\"workflow_id\")\n nodeId String? @map(\"node_id\")\n activationId String? @map(\"activation_id\")\n kind String\n contentType String @map(\"content_type\")\n previewText String? @map(\"preview_text\")\n previewJson String? @map(\"preview_json\")\n payloadText String? @map(\"payload_text\")\n payloadJson String? @map(\"payload_json\")\n payloadStorageKey String? @map(\"payload_storage_key\")\n bytes Int?\n truncated Boolean?\n createdAt String @map(\"created_at\")\n expiresAt String? @map(\"expires_at\")\n retentionExpiresAt String? @map(\"retention_expires_at\")\n\n @@index([traceId, createdAt])\n @@index([spanId, createdAt])\n @@index([runId, createdAt])\n @@index([retentionExpiresAt])\n}\n\nmodel TelemetryMetricPoint {\n metricPointId String @id @map(\"metric_point_id\")\n traceId String? @map(\"trace_id\")\n spanId String? @map(\"span_id\")\n runId String? @map(\"run_id\")\n workflowId String @map(\"workflow_id\")\n nodeId String? @map(\"node_id\")\n activationId String? @map(\"activation_id\")\n metricName String @map(\"metric_name\")\n value Float\n unit String?\n observedAt String @map(\"observed_at\")\n workflowFolder String? @map(\"workflow_folder\")\n nodeType String? @map(\"node_type\")\n nodeRole String? @map(\"node_role\")\n modelName String? @map(\"model_name\")\n dimensionsJson String? @map(\"dimensions_json\")\n retentionExpiresAt String? @map(\"retention_expires_at\")\n iterationId String? @map(\"iteration_id\")\n itemIndex Int? @map(\"item_index\")\n parentInvocationId String? @map(\"parent_invocation_id\")\n\n @@index([workflowId, observedAt])\n @@index([workflowId, metricName, observedAt])\n @@index([runId, observedAt])\n @@index([traceId, observedAt])\n @@index([modelName, observedAt])\n @@index([iterationId])\n @@index([retentionExpiresAt])\n}\n\nmodel CredentialInstance {\n instanceId String @id @map(\"instance_id\")\n typeId String @map(\"type_id\")\n displayName String @map(\"display_name\")\n sourceKind String @map(\"source_kind\")\n publicConfigJson String @map(\"public_config_json\")\n secretRefJson String @map(\"secret_ref_json\")\n tagsJson String @map(\"tags_json\")\n setupStatus String @map(\"setup_status\")\n createdAt String @map(\"created_at\")\n updatedAt String @map(\"updated_at\")\n}\n\nmodel CredentialSecretMaterial {\n instanceId String @id @map(\"instance_id\")\n encryptedJson String @map(\"encrypted_json\")\n encryptionKeyId String @map(\"encryption_key_id\")\n schemaVersion Int @map(\"schema_version\")\n updatedAt String @map(\"updated_at\")\n}\n\nmodel CredentialOAuth2Material {\n instanceId String @id @map(\"instance_id\")\n encryptedJson String @map(\"encrypted_json\")\n encryptionKeyId String @map(\"encryption_key_id\")\n schemaVersion Int @map(\"schema_version\")\n providerId String @map(\"provider_id\")\n connectedEmail String? @map(\"connected_email\")\n connectedAt String? @map(\"connected_at\")\n scopesJson String @map(\"scopes_json\")\n updatedAt String @map(\"updated_at\")\n}\n\nmodel CredentialOAuth2State {\n state String @id\n instanceId String @map(\"instance_id\")\n codeVerifier String? @map(\"code_verifier\")\n providerId String? @map(\"provider_id\")\n requestedScopesJson String @map(\"requested_scopes_json\")\n createdAt String @map(\"created_at\")\n expiresAt String @map(\"expires_at\")\n\n @@index([instanceId])\n @@index([expiresAt])\n}\n\nmodel CredentialBinding {\n workflowId String @map(\"workflow_id\")\n nodeId String @map(\"node_id\")\n slotKey String @map(\"slot_key\")\n instanceId String @map(\"instance_id\")\n updatedAt String @map(\"updated_at\")\n\n @@id([workflowId, nodeId, slotKey])\n @@index([instanceId])\n}\n\nmodel CredentialTestResult {\n testId String @id @map(\"test_id\")\n instanceId String @map(\"instance_id\")\n status String\n message String?\n detailsJson String @map(\"details_json\")\n testedAt String @map(\"tested_at\")\n expiresAt String? @map(\"expires_at\")\n\n @@index([instanceId, testedAt])\n}\n\n/// Better Auth user directory (DB sessions + optional OAuth linking)\nmodel User {\n id String @id @default(cuid())\n name String?\n email String? @unique\n emailVerified Boolean @default(false) @map(\"email_verified\")\n image String?\n passwordHash String? @map(\"password_hash\")\n /// invited | active | inactive (local directory / invite flow)\n accountStatus String @default(\"active\") @map(\"account_status\")\n createdAt DateTime @default(now()) @map(\"created_at\")\n updatedAt DateTime @updatedAt @map(\"updated_at\")\n accounts Account[]\n sessions Session[]\n invites UserInvite[]\n\n @@map(\"codemation_auth_user\")\n}\n\nmodel UserInvite {\n id String @id @default(cuid())\n userId String @map(\"user_id\")\n tokenHash String @unique @map(\"token_hash\")\n expiresAt DateTime @map(\"expires_at\")\n createdAt DateTime @map(\"created_at\")\n revokedAt DateTime? @map(\"revoked_at\")\n user User @relation(fields: [userId], references: [id], onDelete: Cascade)\n\n @@index([userId])\n @@map(\"codemation_auth_user_invite\")\n}\n\nmodel Account {\n id String @id @default(cuid())\n userId String @map(\"user_id\")\n /// Legacy Auth.js discriminator; Better Auth omits it on create — default keeps OAuth/credential rows valid.\n type String @default(\"oauth\")\n provider String\n providerAccountId String @map(\"provider_account_id\")\n /// Better Auth email/password (credential provider) hash; kept in sync with `User.passwordHash` for local flows.\n password String? @map(\"password\")\n refresh_token String?\n access_token String?\n expires_at Int?\n accessTokenExpiresAt DateTime? @map(\"access_token_expires_at\")\n refreshTokenExpiresAt DateTime? @map(\"refresh_token_expires_at\")\n token_type String?\n scope String?\n id_token String?\n session_state String?\n createdAt DateTime @default(now()) @map(\"created_at\")\n updatedAt DateTime @updatedAt @map(\"updated_at\")\n\n user User @relation(fields: [userId], references: [id], onDelete: Cascade)\n\n @@unique([provider, providerAccountId])\n @@map(\"codemation_auth_account\")\n}\n\nmodel Session {\n id String @id @default(cuid())\n sessionToken String @unique @map(\"session_token\")\n userId String @map(\"user_id\")\n expires DateTime\n createdAt DateTime @default(now()) @map(\"created_at\")\n updatedAt DateTime @updatedAt @map(\"updated_at\")\n ipAddress String? @map(\"ip_address\")\n userAgent String? @map(\"user_agent\")\n user User @relation(fields: [userId], references: [id], onDelete: Cascade)\n\n @@map(\"codemation_auth_session\")\n}\n\nmodel VerificationToken {\n id String @id @default(cuid())\n identifier String\n token String\n expires DateTime\n createdAt DateTime @default(now()) @map(\"created_at\")\n updatedAt DateTime @updatedAt @map(\"updated_at\")\n\n @@unique([identifier, token])\n @@map(\"codemation_auth_verification_token\")\n}\n\nmodel WorkflowAuditLog {\n id String @id @map(\"id\")\n occurredAt DateTime @map(\"occurred_at\")\n actorUserId String @map(\"actor_user_id\")\n actorSessionId String? @map(\"actor_session_id\")\n action String @map(\"action\")\n resourceType String @map(\"resource_type\")\n resourceId String @map(\"resource_id\")\n outcome String @map(\"outcome\")\n errorCode String? @map(\"error_code\")\n correlationId String? @map(\"correlation_id\")\n workflowId String @map(\"workflow_id\")\n runId String? @map(\"run_id\")\n nodeId String? @map(\"node_id\")\n\n @@index([actorUserId, occurredAt])\n @@index([workflowId, occurredAt])\n @@map(\"workflow_audit_log\")\n}\n"
|
|
16894
|
+
"inlineSchema": "generator client {\n provider = \"prisma-client-js\"\n output = \"../prisma-generated/prisma-sqlite-client\"\n}\n\ndatasource db {\n provider = \"sqlite\"\n}\n\nmodel Run {\n runId String @id @map(\"run_id\")\n workflowId String @map(\"workflow_id\")\n startedAt String @map(\"started_at\")\n finishedAt String? @map(\"finished_at\")\n status String\n revision Int @default(0)\n parentJson String? @map(\"parent_json\")\n executionOptionsJson String? @map(\"execution_options_json\")\n controlJson String? @map(\"control_json\")\n workflowSnapshotJson String? @map(\"workflow_snapshot_json\")\n workflowSnapshotId String? @map(\"workflow_snapshot_id\")\n policySnapshotJson String? @map(\"policy_snapshot_json\")\n engineCountersJson String? @map(\"engine_counters_json\")\n mutableStateJson String? @map(\"mutable_state_json\")\n hitlStateJson String? @map(\"hitl_state_json\")\n outputsByNodeJson String @map(\"outputs_by_node_json\")\n updatedAt String @map(\"updated_at\")\n testSuiteRunId String? @map(\"test_suite_run_id\")\n testCaseIndex Int? @map(\"test_case_index\")\n testCaseLabel String? @map(\"test_case_label\")\n testCaseStatus String? @map(\"test_case_status\")\n\n workItems RunWorkItem[]\n executionInstances ExecutionInstance[]\n slotProjection RunSlotProjection?\n testSuiteRun TestSuiteRun? @relation(fields: [testSuiteRunId], references: [id])\n testAssertions TestAssertion[]\n workflowSnapshot WorkflowSnapshot? @relation(fields: [workflowSnapshotId], references: [id])\n\n @@index([workflowId, startedAt])\n @@index([workflowId, status, finishedAt])\n @@index([testSuiteRunId, testCaseIndex])\n @@index([workflowSnapshotId])\n}\n\nmodel RunWorkItem {\n workItemId String @id @map(\"work_item_id\")\n runId String @map(\"run_id\")\n workflowId String @map(\"workflow_id\")\n status String\n targetNodeId String @map(\"target_node_id\")\n batchId String @map(\"batch_id\")\n queueName String? @map(\"queue_name\")\n claimToken String? @map(\"claim_token\")\n claimedBy String? @map(\"claimed_by\")\n claimedAt String? @map(\"claimed_at\")\n availableAt String @map(\"available_at\")\n enqueuedAt String @map(\"enqueued_at\")\n completedAt String? @map(\"completed_at\")\n failedAt String? @map(\"failed_at\")\n sourceInstanceId String? @map(\"source_instance_id\")\n parentInstanceId String? @map(\"parent_instance_id\")\n itemsIn Int @map(\"items_in\")\n inputsByPortJson String @map(\"inputs_by_port_json\")\n errorJson String? @map(\"error_json\")\n\n run Run @relation(fields: [runId], references: [runId], onDelete: Cascade)\n\n @@index([runId, status, availableAt])\n @@index([runId, targetNodeId, batchId])\n}\n\nmodel ExecutionInstance {\n instanceId String @id @map(\"instance_id\")\n runId String @map(\"run_id\")\n workflowId String @map(\"workflow_id\")\n slotNodeId String @map(\"slot_node_id\")\n workflowNodeId String @map(\"workflow_node_id\")\n kind String\n connectionKind String? @map(\"connection_kind\")\n activationId String? @map(\"activation_id\")\n batchId String @map(\"batch_id\")\n runIndex Int @map(\"run_index\")\n parentInstanceId String? @map(\"parent_instance_id\")\n parentRunId String? @map(\"parent_run_id\")\n workerClaimToken String? @map(\"worker_claim_token\")\n status String\n queuedAt String? @map(\"queued_at\")\n startedAt String? @map(\"started_at\")\n finishedAt String? @map(\"finished_at\")\n updatedAt String @map(\"updated_at\")\n itemCount Int @map(\"item_count\")\n inputJson String? @map(\"input_json\")\n outputJson String? @map(\"output_json\")\n errorJson String? @map(\"error_json\")\n inputItemIndicesJson String? @map(\"input_item_indices_json\")\n outputItemCount Int? @map(\"output_item_count\")\n successfulItemCount Int? @map(\"successful_item_count\")\n failedItemCount Int? @map(\"failed_item_count\")\n inputStorageKind String? @map(\"input_storage_kind\")\n outputStorageKind String? @map(\"output_storage_kind\")\n inputBytes Int? @map(\"input_bytes\")\n outputBytes Int? @map(\"output_bytes\")\n inputPreviewJson String? @map(\"input_preview_json\")\n outputPreviewJson String? @map(\"output_preview_json\")\n inputPayloadRef String? @map(\"input_payload_ref\")\n outputPayloadRef String? @map(\"output_payload_ref\")\n inputTruncated Boolean? @map(\"input_truncated\")\n outputTruncated Boolean? @map(\"output_truncated\")\n usedPinnedOutput Boolean? @map(\"used_pinned_output\")\n iterationId String? @map(\"iteration_id\")\n itemIndex Int? @map(\"item_index\")\n parentInvocationId String? @map(\"parent_invocation_id\")\n childRunId String? @map(\"child_run_id\")\n\n run Run @relation(fields: [runId], references: [runId], onDelete: Cascade)\n\n @@unique([runId, slotNodeId, runIndex])\n @@index([runId, slotNodeId, updatedAt])\n @@index([runId, parentInstanceId, updatedAt])\n @@index([runId, kind, updatedAt])\n @@index([iterationId])\n}\n\nmodel RunSlotProjection {\n runId String @id @map(\"run_id\")\n workflowId String @map(\"workflow_id\")\n revision Int\n updatedAt String @map(\"updated_at\")\n slotStatesJson String @map(\"slot_states_json\")\n\n run Run @relation(fields: [runId], references: [runId], onDelete: Cascade)\n\n @@index([workflowId, updatedAt])\n}\n\n/// One execution of a TestTrigger node — orchestrator fans one Run per yielded test-case item.\n/// `triggerNodeId` is *not* a foreign key — workflows live in code, not in DB. `triggerNodeName`\n/// is snapshotted so historical viewing survives renames/deletions of the trigger node.\nmodel TestSuiteRun {\n id String @id\n workflowId String @map(\"workflow_id\")\n triggerNodeId String @map(\"trigger_node_id\")\n triggerNodeName String? @map(\"trigger_node_name\")\n status String\n concurrency Int\n startedAt String @map(\"started_at\")\n finishedAt String? @map(\"finished_at\")\n totalCases Int @default(0) @map(\"total_cases\")\n passedCases Int @default(0) @map(\"passed_cases\")\n failedCases Int @default(0) @map(\"failed_cases\")\n /// Set of nodeIds executed across all child Runs in this suite (JSON array of strings).\n nodeCoverageJson String? @map(\"node_coverage_json\")\n errorMessage String? @map(\"error_message\")\n updatedAt String @map(\"updated_at\")\n\n runs Run[]\n assertions TestAssertion[]\n\n @@index([workflowId, startedAt])\n @@index([workflowId, triggerNodeId, startedAt])\n @@index([status, finishedAt])\n}\n\n/// One assertion record persisted by the host-side TestAssertionPersister whenever a node with\n/// `emitsAssertions: true` completes inside a test-context run. Each assertion item emitted on\n/// `main` becomes one row.\nmodel TestAssertion {\n id String @id\n runId String @map(\"run_id\")\n testSuiteRunId String @map(\"test_suite_run_id\")\n workflowId String @map(\"workflow_id\")\n nodeId String @map(\"node_id\")\n iterationId String? @map(\"iteration_id\")\n itemIndex Int? @map(\"item_index\")\n name String\n score Float\n passThreshold Float? @map(\"pass_threshold\")\n errored Boolean @default(false)\n expectedJson String? @map(\"expected_json\")\n actualJson String? @map(\"actual_json\")\n message String?\n detailsJson String? @map(\"details_json\")\n createdAt String @map(\"created_at\")\n\n run Run @relation(fields: [runId], references: [runId], onDelete: Cascade)\n testSuiteRun TestSuiteRun @relation(fields: [testSuiteRunId], references: [id], onDelete: Cascade)\n\n @@index([testSuiteRunId, createdAt])\n @@index([runId, createdAt])\n @@index([nodeId])\n}\n\nmodel WorkflowDebuggerOverlay {\n workflowId String @id @map(\"workflow_id\")\n updatedAt String @map(\"updated_at\")\n copiedFromRunId String? @map(\"copied_from_run_id\")\n stateJson String @map(\"state_json\")\n}\n\nmodel WorkflowActivation {\n workflowId String @id @map(\"workflow_id\")\n isActive Boolean @default(false) @map(\"is_active\")\n updatedAt String @map(\"updated_at\")\n}\n\nmodel TriggerSetupState {\n workflowId String @map(\"workflow_id\")\n nodeId String @map(\"node_id\")\n updatedAt String @map(\"updated_at\")\n stateJson String @map(\"state_json\")\n\n @@id([workflowId, nodeId])\n}\n\nmodel RunTraceContext {\n runId String @id @map(\"run_id\")\n workflowId String @map(\"workflow_id\")\n traceId String @unique @map(\"trace_id\")\n rootSpanId String @map(\"root_span_id\")\n serviceName String? @map(\"service_name\")\n createdAt String @map(\"created_at\")\n expiresAt String? @map(\"expires_at\")\n\n @@index([workflowId, createdAt])\n}\n\nmodel TelemetrySpan {\n telemetrySpanId String @id @map(\"telemetry_span_id\")\n traceId String @map(\"trace_id\")\n spanId String @map(\"span_id\")\n parentSpanId String? @map(\"parent_span_id\")\n runId String @map(\"run_id\")\n workflowId String @map(\"workflow_id\")\n nodeId String? @map(\"node_id\")\n activationId String? @map(\"activation_id\")\n connectionInvocationId String? @map(\"connection_invocation_id\")\n name String\n kind String\n status String?\n statusMessage String? @map(\"status_message\")\n startTime String? @map(\"start_time\")\n endTime String? @map(\"end_time\")\n workflowFolder String? @map(\"workflow_folder\")\n nodeType String? @map(\"node_type\")\n nodeRole String? @map(\"node_role\")\n modelName String? @map(\"model_name\")\n attributesJson String? @map(\"attributes_json\")\n eventsJson String? @map(\"events_json\")\n retentionExpiresAt String? @map(\"retention_expires_at\")\n iterationId String? @map(\"iteration_id\")\n itemIndex Int? @map(\"item_index\")\n parentInvocationId String? @map(\"parent_invocation_id\")\n updatedAt String @map(\"updated_at\")\n\n @@unique([traceId, spanId])\n @@index([traceId, startTime])\n @@index([workflowId, endTime])\n @@index([workflowId, status, endTime])\n @@index([runId, endTime])\n @@index([modelName, endTime])\n @@index([connectionInvocationId])\n @@index([iterationId])\n @@index([retentionExpiresAt])\n}\n\nmodel WorkflowSnapshot {\n id String @id\n workflowId String @map(\"workflow_id\")\n /// SHA-256 hex digest of snapshotJson — dedup key: same workflow content → one row.\n snapshotHash String @map(\"snapshot_hash\")\n snapshotJson String @map(\"snapshot_json\")\n createdAt String @map(\"created_at\")\n\n runs Run[]\n\n @@unique([workflowId, snapshotHash])\n @@index([workflowId, snapshotHash])\n}\n\nmodel TelemetryArtifact {\n artifactId String @id @map(\"artifact_id\")\n traceId String @map(\"trace_id\")\n spanId String @map(\"span_id\")\n runId String @map(\"run_id\")\n workflowId String @map(\"workflow_id\")\n nodeId String? @map(\"node_id\")\n activationId String? @map(\"activation_id\")\n kind String\n contentType String @map(\"content_type\")\n previewText String? @map(\"preview_text\")\n previewJson String? @map(\"preview_json\")\n payloadText String? @map(\"payload_text\")\n payloadJson String? @map(\"payload_json\")\n payloadStorageKey String? @map(\"payload_storage_key\")\n bytes Int?\n truncated Boolean?\n createdAt String @map(\"created_at\")\n expiresAt String? @map(\"expires_at\")\n retentionExpiresAt String? @map(\"retention_expires_at\")\n\n @@index([traceId, createdAt])\n @@index([spanId, createdAt])\n @@index([runId, createdAt])\n @@index([retentionExpiresAt])\n}\n\nmodel TelemetryMetricPoint {\n metricPointId String @id @map(\"metric_point_id\")\n traceId String? @map(\"trace_id\")\n spanId String? @map(\"span_id\")\n runId String? @map(\"run_id\")\n workflowId String @map(\"workflow_id\")\n nodeId String? @map(\"node_id\")\n activationId String? @map(\"activation_id\")\n metricName String @map(\"metric_name\")\n value Float\n unit String?\n observedAt String @map(\"observed_at\")\n workflowFolder String? @map(\"workflow_folder\")\n nodeType String? @map(\"node_type\")\n nodeRole String? @map(\"node_role\")\n modelName String? @map(\"model_name\")\n dimensionsJson String? @map(\"dimensions_json\")\n retentionExpiresAt String? @map(\"retention_expires_at\")\n iterationId String? @map(\"iteration_id\")\n itemIndex Int? @map(\"item_index\")\n parentInvocationId String? @map(\"parent_invocation_id\")\n\n @@index([workflowId, observedAt])\n @@index([workflowId, metricName, observedAt])\n @@index([runId, observedAt])\n @@index([traceId, observedAt])\n @@index([modelName, observedAt])\n @@index([iterationId])\n @@index([retentionExpiresAt])\n}\n\nmodel CredentialInstance {\n instanceId String @id @map(\"instance_id\")\n typeId String @map(\"type_id\")\n displayName String @map(\"display_name\")\n sourceKind String @map(\"source_kind\")\n publicConfigJson String @map(\"public_config_json\")\n secretRefJson String @map(\"secret_ref_json\")\n tagsJson String @map(\"tags_json\")\n setupStatus String @map(\"setup_status\")\n createdAt String @map(\"created_at\")\n updatedAt String @map(\"updated_at\")\n // Material provider seam — see docs/design/credentials-oauth-unification.md.\n // Pointer to where the bytes live (workspace DB vs control plane).\n materialSource String @default(\"local\") @map(\"material_source\")\n materialRef String @default(\"\") @map(\"material_ref\")\n}\n\nmodel CredentialSecretMaterial {\n instanceId String @id @map(\"instance_id\")\n encryptedJson String @map(\"encrypted_json\")\n encryptionKeyId String @map(\"encryption_key_id\")\n schemaVersion Int @map(\"schema_version\")\n updatedAt String @map(\"updated_at\")\n}\n\nmodel CredentialOAuth2Material {\n instanceId String @id @map(\"instance_id\")\n encryptedJson String @map(\"encrypted_json\")\n encryptionKeyId String @map(\"encryption_key_id\")\n schemaVersion Int @map(\"schema_version\")\n providerId String @map(\"provider_id\")\n connectedEmail String? @map(\"connected_email\")\n connectedAt String? @map(\"connected_at\")\n scopesJson String @map(\"scopes_json\")\n updatedAt String @map(\"updated_at\")\n}\n\nmodel CredentialOAuth2State {\n state String @id\n instanceId String @map(\"instance_id\")\n codeVerifier String? @map(\"code_verifier\")\n providerId String? @map(\"provider_id\")\n requestedScopesJson String @map(\"requested_scopes_json\")\n createdAt String @map(\"created_at\")\n expiresAt String @map(\"expires_at\")\n\n @@index([instanceId])\n @@index([expiresAt])\n}\n\nmodel CredentialBinding {\n workflowId String @map(\"workflow_id\")\n nodeId String @map(\"node_id\")\n slotKey String @map(\"slot_key\")\n instanceId String @map(\"instance_id\")\n updatedAt String @map(\"updated_at\")\n\n @@id([workflowId, nodeId, slotKey])\n @@index([instanceId])\n}\n\nmodel CredentialTestResult {\n testId String @id @map(\"test_id\")\n instanceId String @map(\"instance_id\")\n status String\n message String?\n detailsJson String @map(\"details_json\")\n testedAt String @map(\"tested_at\")\n expiresAt String? @map(\"expires_at\")\n\n @@index([instanceId, testedAt])\n}\n\n/// Better Auth user directory (DB sessions + optional OAuth linking)\nmodel User {\n id String @id @default(cuid())\n name String?\n email String? @unique\n emailVerified Boolean @default(false) @map(\"email_verified\")\n image String?\n passwordHash String? @map(\"password_hash\")\n /// invited | active | inactive (local directory / invite flow)\n accountStatus String @default(\"active\") @map(\"account_status\")\n createdAt DateTime @default(now()) @map(\"created_at\")\n updatedAt DateTime @updatedAt @map(\"updated_at\")\n accounts Account[]\n sessions Session[]\n invites UserInvite[]\n\n @@map(\"codemation_auth_user\")\n}\n\nmodel UserInvite {\n id String @id @default(cuid())\n userId String @map(\"user_id\")\n tokenHash String @unique @map(\"token_hash\")\n expiresAt DateTime @map(\"expires_at\")\n createdAt DateTime @map(\"created_at\")\n revokedAt DateTime? @map(\"revoked_at\")\n user User @relation(fields: [userId], references: [id], onDelete: Cascade)\n\n @@index([userId])\n @@map(\"codemation_auth_user_invite\")\n}\n\nmodel Account {\n id String @id @default(cuid())\n userId String @map(\"user_id\")\n /// Legacy Auth.js discriminator; Better Auth omits it on create — default keeps OAuth/credential rows valid.\n type String @default(\"oauth\")\n provider String\n providerAccountId String @map(\"provider_account_id\")\n /// Better Auth email/password (credential provider) hash; kept in sync with `User.passwordHash` for local flows.\n password String? @map(\"password\")\n refresh_token String?\n access_token String?\n expires_at Int?\n accessTokenExpiresAt DateTime? @map(\"access_token_expires_at\")\n refreshTokenExpiresAt DateTime? @map(\"refresh_token_expires_at\")\n token_type String?\n scope String?\n id_token String?\n session_state String?\n createdAt DateTime @default(now()) @map(\"created_at\")\n updatedAt DateTime @updatedAt @map(\"updated_at\")\n\n user User @relation(fields: [userId], references: [id], onDelete: Cascade)\n\n @@unique([provider, providerAccountId])\n @@map(\"codemation_auth_account\")\n}\n\nmodel Session {\n id String @id @default(cuid())\n sessionToken String @unique @map(\"session_token\")\n userId String @map(\"user_id\")\n expires DateTime\n createdAt DateTime @default(now()) @map(\"created_at\")\n updatedAt DateTime @updatedAt @map(\"updated_at\")\n ipAddress String? @map(\"ip_address\")\n userAgent String? @map(\"user_agent\")\n user User @relation(fields: [userId], references: [id], onDelete: Cascade)\n\n @@map(\"codemation_auth_session\")\n}\n\nmodel VerificationToken {\n id String @id @default(cuid())\n identifier String\n token String\n expires DateTime\n createdAt DateTime @default(now()) @map(\"created_at\")\n updatedAt DateTime @updatedAt @map(\"updated_at\")\n\n @@unique([identifier, token])\n @@map(\"codemation_auth_verification_token\")\n}\n\nmodel WorkflowAuditLog {\n id String @id @map(\"id\")\n occurredAt DateTime @map(\"occurred_at\")\n actorUserId String @map(\"actor_user_id\")\n actorSessionId String? @map(\"actor_session_id\")\n action String @map(\"action\")\n resourceType String @map(\"resource_type\")\n resourceId String @map(\"resource_id\")\n outcome String @map(\"outcome\")\n errorCode String? @map(\"error_code\")\n correlationId String? @map(\"correlation_id\")\n workflowId String @map(\"workflow_id\")\n runId String? @map(\"run_id\")\n nodeId String? @map(\"node_id\")\n\n @@index([actorUserId, occurredAt])\n @@index([workflowId, occurredAt])\n @@map(\"workflow_audit_log\")\n}\n\n/// HMAC nonce store for replay protection (T6 security fix).\n/// Nonces are persisted across process restarts so a replayed request within\n/// the 300-second timestamp window is rejected even after a restart.\nmodel HmacNonce {\n nonce String @id @map(\"nonce\")\n expiresAt DateTime @map(\"expires_at\")\n\n @@index([expiresAt])\n @@map(\"hmac_nonce\")\n}\n\nmodel HumanTask {\n id String @id @map(\"id\")\n runId String @map(\"run_id\")\n workflowId String @map(\"workflow_id\")\n workspaceId String? @map(\"workspace_id\")\n nodeId String @map(\"node_id\")\n activationId String @map(\"activation_id\")\n itemIndex Int @map(\"item_index\")\n /// pending | decided | timed_out | auto_accepted | cancelled\n status String @map(\"status\")\n /// local | control-plane-inbox\n channel String @map(\"channel\")\n subjectJson String @map(\"subject_json\")\n metadataJson String @map(\"metadata_json\")\n decisionSchemaJson String @map(\"decision_schema_json\")\n decisionSchemaHash String @map(\"decision_schema_hash\")\n /// halt | auto-accept\n onTimeout String @map(\"on_timeout\")\n deliveryRefJson String? @map(\"delivery_ref_json\")\n decisionJson String? @map(\"decision_json\")\n decidedAt DateTime? @map(\"decided_at\")\n decidedByJson String? @map(\"decided_by_json\")\n resumeTokenHash String @map(\"resume_token_hash\")\n expiresAt DateTime @map(\"expires_at\")\n createdAt DateTime @default(now()) @map(\"created_at\")\n\n @@index([runId])\n @@index([workflowId, status])\n @@index([workspaceId, status, expiresAt])\n @@map(\"human_task\")\n}\n"
|
|
16627
16895
|
};
|
|
16628
|
-
config$1.runtimeDataModel = JSON.parse("{\"models\":{\"Run\":{\"fields\":[{\"name\":\"runId\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"run_id\"},{\"name\":\"workflowId\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"workflow_id\"},{\"name\":\"startedAt\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"started_at\"},{\"name\":\"finishedAt\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"finished_at\"},{\"name\":\"status\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"revision\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"parentJson\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"parent_json\"},{\"name\":\"executionOptionsJson\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"execution_options_json\"},{\"name\":\"controlJson\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"control_json\"},{\"name\":\"workflowSnapshotJson\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"workflow_snapshot_json\"},{\"name\":\"workflowSnapshotId\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"workflow_snapshot_id\"},{\"name\":\"policySnapshotJson\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"policy_snapshot_json\"},{\"name\":\"engineCountersJson\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"engine_counters_json\"},{\"name\":\"mutableStateJson\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"mutable_state_json\"},{\"name\":\"outputsByNodeJson\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"outputs_by_node_json\"},{\"name\":\"updatedAt\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"updated_at\"},{\"name\":\"testSuiteRunId\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"test_suite_run_id\"},{\"name\":\"testCaseIndex\",\"kind\":\"scalar\",\"type\":\"Int\",\"dbName\":\"test_case_index\"},{\"name\":\"testCaseLabel\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"test_case_label\"},{\"name\":\"testCaseStatus\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"test_case_status\"},{\"name\":\"workItems\",\"kind\":\"object\",\"type\":\"RunWorkItem\",\"relationName\":\"RunToRunWorkItem\"},{\"name\":\"executionInstances\",\"kind\":\"object\",\"type\":\"ExecutionInstance\",\"relationName\":\"ExecutionInstanceToRun\"},{\"name\":\"slotProjection\",\"kind\":\"object\",\"type\":\"RunSlotProjection\",\"relationName\":\"RunToRunSlotProjection\"},{\"name\":\"testSuiteRun\",\"kind\":\"object\",\"type\":\"TestSuiteRun\",\"relationName\":\"RunToTestSuiteRun\"},{\"name\":\"testAssertions\",\"kind\":\"object\",\"type\":\"TestAssertion\",\"relationName\":\"RunToTestAssertion\"},{\"name\":\"workflowSnapshot\",\"kind\":\"object\",\"type\":\"WorkflowSnapshot\",\"relationName\":\"RunToWorkflowSnapshot\"}],\"dbName\":null},\"RunWorkItem\":{\"fields\":[{\"name\":\"workItemId\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"work_item_id\"},{\"name\":\"runId\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"run_id\"},{\"name\":\"workflowId\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"workflow_id\"},{\"name\":\"status\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"targetNodeId\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"target_node_id\"},{\"name\":\"batchId\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"batch_id\"},{\"name\":\"queueName\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"queue_name\"},{\"name\":\"claimToken\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"claim_token\"},{\"name\":\"claimedBy\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"claimed_by\"},{\"name\":\"claimedAt\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"claimed_at\"},{\"name\":\"availableAt\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"available_at\"},{\"name\":\"enqueuedAt\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"enqueued_at\"},{\"name\":\"completedAt\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"completed_at\"},{\"name\":\"failedAt\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"failed_at\"},{\"name\":\"sourceInstanceId\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"source_instance_id\"},{\"name\":\"parentInstanceId\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"parent_instance_id\"},{\"name\":\"itemsIn\",\"kind\":\"scalar\",\"type\":\"Int\",\"dbName\":\"items_in\"},{\"name\":\"inputsByPortJson\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"inputs_by_port_json\"},{\"name\":\"errorJson\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"error_json\"},{\"name\":\"run\",\"kind\":\"object\",\"type\":\"Run\",\"relationName\":\"RunToRunWorkItem\"}],\"dbName\":null},\"ExecutionInstance\":{\"fields\":[{\"name\":\"instanceId\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"instance_id\"},{\"name\":\"runId\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"run_id\"},{\"name\":\"workflowId\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"workflow_id\"},{\"name\":\"slotNodeId\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"slot_node_id\"},{\"name\":\"workflowNodeId\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"workflow_node_id\"},{\"name\":\"kind\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"connectionKind\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"connection_kind\"},{\"name\":\"activationId\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"activation_id\"},{\"name\":\"batchId\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"batch_id\"},{\"name\":\"runIndex\",\"kind\":\"scalar\",\"type\":\"Int\",\"dbName\":\"run_index\"},{\"name\":\"parentInstanceId\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"parent_instance_id\"},{\"name\":\"parentRunId\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"parent_run_id\"},{\"name\":\"workerClaimToken\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"worker_claim_token\"},{\"name\":\"status\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"queuedAt\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"queued_at\"},{\"name\":\"startedAt\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"started_at\"},{\"name\":\"finishedAt\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"finished_at\"},{\"name\":\"updatedAt\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"updated_at\"},{\"name\":\"itemCount\",\"kind\":\"scalar\",\"type\":\"Int\",\"dbName\":\"item_count\"},{\"name\":\"inputJson\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"input_json\"},{\"name\":\"outputJson\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"output_json\"},{\"name\":\"errorJson\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"error_json\"},{\"name\":\"inputItemIndicesJson\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"input_item_indices_json\"},{\"name\":\"outputItemCount\",\"kind\":\"scalar\",\"type\":\"Int\",\"dbName\":\"output_item_count\"},{\"name\":\"successfulItemCount\",\"kind\":\"scalar\",\"type\":\"Int\",\"dbName\":\"successful_item_count\"},{\"name\":\"failedItemCount\",\"kind\":\"scalar\",\"type\":\"Int\",\"dbName\":\"failed_item_count\"},{\"name\":\"inputStorageKind\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"input_storage_kind\"},{\"name\":\"outputStorageKind\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"output_storage_kind\"},{\"name\":\"inputBytes\",\"kind\":\"scalar\",\"type\":\"Int\",\"dbName\":\"input_bytes\"},{\"name\":\"outputBytes\",\"kind\":\"scalar\",\"type\":\"Int\",\"dbName\":\"output_bytes\"},{\"name\":\"inputPreviewJson\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"input_preview_json\"},{\"name\":\"outputPreviewJson\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"output_preview_json\"},{\"name\":\"inputPayloadRef\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"input_payload_ref\"},{\"name\":\"outputPayloadRef\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"output_payload_ref\"},{\"name\":\"inputTruncated\",\"kind\":\"scalar\",\"type\":\"Boolean\",\"dbName\":\"input_truncated\"},{\"name\":\"outputTruncated\",\"kind\":\"scalar\",\"type\":\"Boolean\",\"dbName\":\"output_truncated\"},{\"name\":\"usedPinnedOutput\",\"kind\":\"scalar\",\"type\":\"Boolean\",\"dbName\":\"used_pinned_output\"},{\"name\":\"iterationId\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"iteration_id\"},{\"name\":\"itemIndex\",\"kind\":\"scalar\",\"type\":\"Int\",\"dbName\":\"item_index\"},{\"name\":\"parentInvocationId\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"parent_invocation_id\"},{\"name\":\"childRunId\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"child_run_id\"},{\"name\":\"run\",\"kind\":\"object\",\"type\":\"Run\",\"relationName\":\"ExecutionInstanceToRun\"}],\"dbName\":null},\"RunSlotProjection\":{\"fields\":[{\"name\":\"runId\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"run_id\"},{\"name\":\"workflowId\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"workflow_id\"},{\"name\":\"revision\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"updatedAt\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"updated_at\"},{\"name\":\"slotStatesJson\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"slot_states_json\"},{\"name\":\"run\",\"kind\":\"object\",\"type\":\"Run\",\"relationName\":\"RunToRunSlotProjection\"}],\"dbName\":null},\"TestSuiteRun\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"workflowId\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"workflow_id\"},{\"name\":\"triggerNodeId\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"trigger_node_id\"},{\"name\":\"triggerNodeName\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"trigger_node_name\"},{\"name\":\"status\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"concurrency\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"startedAt\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"started_at\"},{\"name\":\"finishedAt\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"finished_at\"},{\"name\":\"totalCases\",\"kind\":\"scalar\",\"type\":\"Int\",\"dbName\":\"total_cases\"},{\"name\":\"passedCases\",\"kind\":\"scalar\",\"type\":\"Int\",\"dbName\":\"passed_cases\"},{\"name\":\"failedCases\",\"kind\":\"scalar\",\"type\":\"Int\",\"dbName\":\"failed_cases\"},{\"name\":\"nodeCoverageJson\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"node_coverage_json\"},{\"name\":\"errorMessage\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"error_message\"},{\"name\":\"updatedAt\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"updated_at\"},{\"name\":\"runs\",\"kind\":\"object\",\"type\":\"Run\",\"relationName\":\"RunToTestSuiteRun\"},{\"name\":\"assertions\",\"kind\":\"object\",\"type\":\"TestAssertion\",\"relationName\":\"TestAssertionToTestSuiteRun\"}],\"dbName\":null},\"TestAssertion\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"runId\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"run_id\"},{\"name\":\"testSuiteRunId\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"test_suite_run_id\"},{\"name\":\"workflowId\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"workflow_id\"},{\"name\":\"nodeId\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"node_id\"},{\"name\":\"iterationId\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"iteration_id\"},{\"name\":\"itemIndex\",\"kind\":\"scalar\",\"type\":\"Int\",\"dbName\":\"item_index\"},{\"name\":\"name\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"score\",\"kind\":\"scalar\",\"type\":\"Float\"},{\"name\":\"passThreshold\",\"kind\":\"scalar\",\"type\":\"Float\",\"dbName\":\"pass_threshold\"},{\"name\":\"errored\",\"kind\":\"scalar\",\"type\":\"Boolean\"},{\"name\":\"expectedJson\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"expected_json\"},{\"name\":\"actualJson\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"actual_json\"},{\"name\":\"message\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"detailsJson\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"details_json\"},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"created_at\"},{\"name\":\"run\",\"kind\":\"object\",\"type\":\"Run\",\"relationName\":\"RunToTestAssertion\"},{\"name\":\"testSuiteRun\",\"kind\":\"object\",\"type\":\"TestSuiteRun\",\"relationName\":\"TestAssertionToTestSuiteRun\"}],\"dbName\":null},\"WorkflowDebuggerOverlay\":{\"fields\":[{\"name\":\"workflowId\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"workflow_id\"},{\"name\":\"updatedAt\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"updated_at\"},{\"name\":\"copiedFromRunId\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"copied_from_run_id\"},{\"name\":\"stateJson\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"state_json\"}],\"dbName\":null},\"WorkflowActivation\":{\"fields\":[{\"name\":\"workflowId\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"workflow_id\"},{\"name\":\"isActive\",\"kind\":\"scalar\",\"type\":\"Boolean\",\"dbName\":\"is_active\"},{\"name\":\"updatedAt\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"updated_at\"}],\"dbName\":null},\"TriggerSetupState\":{\"fields\":[{\"name\":\"workflowId\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"workflow_id\"},{\"name\":\"nodeId\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"node_id\"},{\"name\":\"updatedAt\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"updated_at\"},{\"name\":\"stateJson\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"state_json\"}],\"dbName\":null},\"RunTraceContext\":{\"fields\":[{\"name\":\"runId\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"run_id\"},{\"name\":\"workflowId\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"workflow_id\"},{\"name\":\"traceId\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"trace_id\"},{\"name\":\"rootSpanId\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"root_span_id\"},{\"name\":\"serviceName\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"service_name\"},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"created_at\"},{\"name\":\"expiresAt\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"expires_at\"}],\"dbName\":null},\"TelemetrySpan\":{\"fields\":[{\"name\":\"telemetrySpanId\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"telemetry_span_id\"},{\"name\":\"traceId\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"trace_id\"},{\"name\":\"spanId\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"span_id\"},{\"name\":\"parentSpanId\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"parent_span_id\"},{\"name\":\"runId\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"run_id\"},{\"name\":\"workflowId\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"workflow_id\"},{\"name\":\"nodeId\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"node_id\"},{\"name\":\"activationId\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"activation_id\"},{\"name\":\"connectionInvocationId\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"connection_invocation_id\"},{\"name\":\"name\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"kind\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"status\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"statusMessage\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"status_message\"},{\"name\":\"startTime\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"start_time\"},{\"name\":\"endTime\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"end_time\"},{\"name\":\"workflowFolder\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"workflow_folder\"},{\"name\":\"nodeType\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"node_type\"},{\"name\":\"nodeRole\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"node_role\"},{\"name\":\"modelName\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"model_name\"},{\"name\":\"attributesJson\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"attributes_json\"},{\"name\":\"eventsJson\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"events_json\"},{\"name\":\"retentionExpiresAt\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"retention_expires_at\"},{\"name\":\"iterationId\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"iteration_id\"},{\"name\":\"itemIndex\",\"kind\":\"scalar\",\"type\":\"Int\",\"dbName\":\"item_index\"},{\"name\":\"parentInvocationId\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"parent_invocation_id\"},{\"name\":\"updatedAt\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"updated_at\"}],\"dbName\":null},\"WorkflowSnapshot\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"workflowId\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"workflow_id\"},{\"name\":\"snapshotHash\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"snapshot_hash\"},{\"name\":\"snapshotJson\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"snapshot_json\"},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"created_at\"},{\"name\":\"runs\",\"kind\":\"object\",\"type\":\"Run\",\"relationName\":\"RunToWorkflowSnapshot\"}],\"dbName\":null},\"TelemetryArtifact\":{\"fields\":[{\"name\":\"artifactId\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"artifact_id\"},{\"name\":\"traceId\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"trace_id\"},{\"name\":\"spanId\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"span_id\"},{\"name\":\"runId\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"run_id\"},{\"name\":\"workflowId\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"workflow_id\"},{\"name\":\"nodeId\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"node_id\"},{\"name\":\"activationId\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"activation_id\"},{\"name\":\"kind\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"contentType\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"content_type\"},{\"name\":\"previewText\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"preview_text\"},{\"name\":\"previewJson\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"preview_json\"},{\"name\":\"payloadText\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"payload_text\"},{\"name\":\"payloadJson\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"payload_json\"},{\"name\":\"payloadStorageKey\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"payload_storage_key\"},{\"name\":\"bytes\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"truncated\",\"kind\":\"scalar\",\"type\":\"Boolean\"},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"created_at\"},{\"name\":\"expiresAt\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"expires_at\"},{\"name\":\"retentionExpiresAt\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"retention_expires_at\"}],\"dbName\":null},\"TelemetryMetricPoint\":{\"fields\":[{\"name\":\"metricPointId\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"metric_point_id\"},{\"name\":\"traceId\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"trace_id\"},{\"name\":\"spanId\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"span_id\"},{\"name\":\"runId\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"run_id\"},{\"name\":\"workflowId\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"workflow_id\"},{\"name\":\"nodeId\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"node_id\"},{\"name\":\"activationId\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"activation_id\"},{\"name\":\"metricName\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"metric_name\"},{\"name\":\"value\",\"kind\":\"scalar\",\"type\":\"Float\"},{\"name\":\"unit\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"observedAt\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"observed_at\"},{\"name\":\"workflowFolder\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"workflow_folder\"},{\"name\":\"nodeType\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"node_type\"},{\"name\":\"nodeRole\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"node_role\"},{\"name\":\"modelName\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"model_name\"},{\"name\":\"dimensionsJson\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"dimensions_json\"},{\"name\":\"retentionExpiresAt\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"retention_expires_at\"},{\"name\":\"iterationId\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"iteration_id\"},{\"name\":\"itemIndex\",\"kind\":\"scalar\",\"type\":\"Int\",\"dbName\":\"item_index\"},{\"name\":\"parentInvocationId\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"parent_invocation_id\"}],\"dbName\":null},\"CredentialInstance\":{\"fields\":[{\"name\":\"instanceId\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"instance_id\"},{\"name\":\"typeId\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"type_id\"},{\"name\":\"displayName\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"display_name\"},{\"name\":\"sourceKind\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"source_kind\"},{\"name\":\"publicConfigJson\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"public_config_json\"},{\"name\":\"secretRefJson\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"secret_ref_json\"},{\"name\":\"tagsJson\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"tags_json\"},{\"name\":\"setupStatus\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"setup_status\"},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"created_at\"},{\"name\":\"updatedAt\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"updated_at\"}],\"dbName\":null},\"CredentialSecretMaterial\":{\"fields\":[{\"name\":\"instanceId\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"instance_id\"},{\"name\":\"encryptedJson\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"encrypted_json\"},{\"name\":\"encryptionKeyId\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"encryption_key_id\"},{\"name\":\"schemaVersion\",\"kind\":\"scalar\",\"type\":\"Int\",\"dbName\":\"schema_version\"},{\"name\":\"updatedAt\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"updated_at\"}],\"dbName\":null},\"CredentialOAuth2Material\":{\"fields\":[{\"name\":\"instanceId\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"instance_id\"},{\"name\":\"encryptedJson\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"encrypted_json\"},{\"name\":\"encryptionKeyId\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"encryption_key_id\"},{\"name\":\"schemaVersion\",\"kind\":\"scalar\",\"type\":\"Int\",\"dbName\":\"schema_version\"},{\"name\":\"providerId\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"provider_id\"},{\"name\":\"connectedEmail\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"connected_email\"},{\"name\":\"connectedAt\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"connected_at\"},{\"name\":\"scopesJson\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"scopes_json\"},{\"name\":\"updatedAt\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"updated_at\"}],\"dbName\":null},\"CredentialOAuth2State\":{\"fields\":[{\"name\":\"state\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"instanceId\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"instance_id\"},{\"name\":\"codeVerifier\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"code_verifier\"},{\"name\":\"providerId\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"provider_id\"},{\"name\":\"requestedScopesJson\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"requested_scopes_json\"},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"created_at\"},{\"name\":\"expiresAt\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"expires_at\"}],\"dbName\":null},\"CredentialBinding\":{\"fields\":[{\"name\":\"workflowId\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"workflow_id\"},{\"name\":\"nodeId\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"node_id\"},{\"name\":\"slotKey\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"slot_key\"},{\"name\":\"instanceId\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"instance_id\"},{\"name\":\"updatedAt\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"updated_at\"}],\"dbName\":null},\"CredentialTestResult\":{\"fields\":[{\"name\":\"testId\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"test_id\"},{\"name\":\"instanceId\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"instance_id\"},{\"name\":\"status\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"message\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"detailsJson\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"details_json\"},{\"name\":\"testedAt\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"tested_at\"},{\"name\":\"expiresAt\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"expires_at\"}],\"dbName\":null},\"User\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"name\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"email\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"emailVerified\",\"kind\":\"scalar\",\"type\":\"Boolean\",\"dbName\":\"email_verified\"},{\"name\":\"image\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"passwordHash\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"password_hash\"},{\"name\":\"accountStatus\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"account_status\"},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"type\":\"DateTime\",\"dbName\":\"created_at\"},{\"name\":\"updatedAt\",\"kind\":\"scalar\",\"type\":\"DateTime\",\"dbName\":\"updated_at\"},{\"name\":\"accounts\",\"kind\":\"object\",\"type\":\"Account\",\"relationName\":\"AccountToUser\"},{\"name\":\"sessions\",\"kind\":\"object\",\"type\":\"Session\",\"relationName\":\"SessionToUser\"},{\"name\":\"invites\",\"kind\":\"object\",\"type\":\"UserInvite\",\"relationName\":\"UserToUserInvite\"}],\"dbName\":\"codemation_auth_user\"},\"UserInvite\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"userId\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"user_id\"},{\"name\":\"tokenHash\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"token_hash\"},{\"name\":\"expiresAt\",\"kind\":\"scalar\",\"type\":\"DateTime\",\"dbName\":\"expires_at\"},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"type\":\"DateTime\",\"dbName\":\"created_at\"},{\"name\":\"revokedAt\",\"kind\":\"scalar\",\"type\":\"DateTime\",\"dbName\":\"revoked_at\"},{\"name\":\"user\",\"kind\":\"object\",\"type\":\"User\",\"relationName\":\"UserToUserInvite\"}],\"dbName\":\"codemation_auth_user_invite\"},\"Account\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"userId\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"user_id\"},{\"name\":\"type\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"provider\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"providerAccountId\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"provider_account_id\"},{\"name\":\"password\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"password\"},{\"name\":\"refresh_token\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"access_token\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"expires_at\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"accessTokenExpiresAt\",\"kind\":\"scalar\",\"type\":\"DateTime\",\"dbName\":\"access_token_expires_at\"},{\"name\":\"refreshTokenExpiresAt\",\"kind\":\"scalar\",\"type\":\"DateTime\",\"dbName\":\"refresh_token_expires_at\"},{\"name\":\"token_type\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"scope\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"id_token\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"session_state\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"type\":\"DateTime\",\"dbName\":\"created_at\"},{\"name\":\"updatedAt\",\"kind\":\"scalar\",\"type\":\"DateTime\",\"dbName\":\"updated_at\"},{\"name\":\"user\",\"kind\":\"object\",\"type\":\"User\",\"relationName\":\"AccountToUser\"}],\"dbName\":\"codemation_auth_account\"},\"Session\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"sessionToken\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"session_token\"},{\"name\":\"userId\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"user_id\"},{\"name\":\"expires\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"type\":\"DateTime\",\"dbName\":\"created_at\"},{\"name\":\"updatedAt\",\"kind\":\"scalar\",\"type\":\"DateTime\",\"dbName\":\"updated_at\"},{\"name\":\"ipAddress\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"ip_address\"},{\"name\":\"userAgent\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"user_agent\"},{\"name\":\"user\",\"kind\":\"object\",\"type\":\"User\",\"relationName\":\"SessionToUser\"}],\"dbName\":\"codemation_auth_session\"},\"VerificationToken\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"identifier\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"token\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"expires\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"type\":\"DateTime\",\"dbName\":\"created_at\"},{\"name\":\"updatedAt\",\"kind\":\"scalar\",\"type\":\"DateTime\",\"dbName\":\"updated_at\"}],\"dbName\":\"codemation_auth_verification_token\"},\"WorkflowAuditLog\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"id\"},{\"name\":\"occurredAt\",\"kind\":\"scalar\",\"type\":\"DateTime\",\"dbName\":\"occurred_at\"},{\"name\":\"actorUserId\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"actor_user_id\"},{\"name\":\"actorSessionId\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"actor_session_id\"},{\"name\":\"action\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"action\"},{\"name\":\"resourceType\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"resource_type\"},{\"name\":\"resourceId\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"resource_id\"},{\"name\":\"outcome\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"outcome\"},{\"name\":\"errorCode\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"error_code\"},{\"name\":\"correlationId\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"correlation_id\"},{\"name\":\"workflowId\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"workflow_id\"},{\"name\":\"runId\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"run_id\"},{\"name\":\"nodeId\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"node_id\"}],\"dbName\":\"workflow_audit_log\"}},\"enums\":{},\"types\":{}}");
|
|
16896
|
+
config$1.runtimeDataModel = JSON.parse("{\"models\":{\"Run\":{\"fields\":[{\"name\":\"runId\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"run_id\"},{\"name\":\"workflowId\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"workflow_id\"},{\"name\":\"startedAt\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"started_at\"},{\"name\":\"finishedAt\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"finished_at\"},{\"name\":\"status\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"revision\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"parentJson\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"parent_json\"},{\"name\":\"executionOptionsJson\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"execution_options_json\"},{\"name\":\"controlJson\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"control_json\"},{\"name\":\"workflowSnapshotJson\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"workflow_snapshot_json\"},{\"name\":\"workflowSnapshotId\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"workflow_snapshot_id\"},{\"name\":\"policySnapshotJson\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"policy_snapshot_json\"},{\"name\":\"engineCountersJson\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"engine_counters_json\"},{\"name\":\"mutableStateJson\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"mutable_state_json\"},{\"name\":\"hitlStateJson\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"hitl_state_json\"},{\"name\":\"outputsByNodeJson\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"outputs_by_node_json\"},{\"name\":\"updatedAt\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"updated_at\"},{\"name\":\"testSuiteRunId\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"test_suite_run_id\"},{\"name\":\"testCaseIndex\",\"kind\":\"scalar\",\"type\":\"Int\",\"dbName\":\"test_case_index\"},{\"name\":\"testCaseLabel\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"test_case_label\"},{\"name\":\"testCaseStatus\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"test_case_status\"},{\"name\":\"workItems\",\"kind\":\"object\",\"type\":\"RunWorkItem\",\"relationName\":\"RunToRunWorkItem\"},{\"name\":\"executionInstances\",\"kind\":\"object\",\"type\":\"ExecutionInstance\",\"relationName\":\"ExecutionInstanceToRun\"},{\"name\":\"slotProjection\",\"kind\":\"object\",\"type\":\"RunSlotProjection\",\"relationName\":\"RunToRunSlotProjection\"},{\"name\":\"testSuiteRun\",\"kind\":\"object\",\"type\":\"TestSuiteRun\",\"relationName\":\"RunToTestSuiteRun\"},{\"name\":\"testAssertions\",\"kind\":\"object\",\"type\":\"TestAssertion\",\"relationName\":\"RunToTestAssertion\"},{\"name\":\"workflowSnapshot\",\"kind\":\"object\",\"type\":\"WorkflowSnapshot\",\"relationName\":\"RunToWorkflowSnapshot\"}],\"dbName\":null},\"RunWorkItem\":{\"fields\":[{\"name\":\"workItemId\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"work_item_id\"},{\"name\":\"runId\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"run_id\"},{\"name\":\"workflowId\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"workflow_id\"},{\"name\":\"status\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"targetNodeId\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"target_node_id\"},{\"name\":\"batchId\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"batch_id\"},{\"name\":\"queueName\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"queue_name\"},{\"name\":\"claimToken\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"claim_token\"},{\"name\":\"claimedBy\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"claimed_by\"},{\"name\":\"claimedAt\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"claimed_at\"},{\"name\":\"availableAt\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"available_at\"},{\"name\":\"enqueuedAt\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"enqueued_at\"},{\"name\":\"completedAt\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"completed_at\"},{\"name\":\"failedAt\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"failed_at\"},{\"name\":\"sourceInstanceId\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"source_instance_id\"},{\"name\":\"parentInstanceId\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"parent_instance_id\"},{\"name\":\"itemsIn\",\"kind\":\"scalar\",\"type\":\"Int\",\"dbName\":\"items_in\"},{\"name\":\"inputsByPortJson\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"inputs_by_port_json\"},{\"name\":\"errorJson\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"error_json\"},{\"name\":\"run\",\"kind\":\"object\",\"type\":\"Run\",\"relationName\":\"RunToRunWorkItem\"}],\"dbName\":null},\"ExecutionInstance\":{\"fields\":[{\"name\":\"instanceId\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"instance_id\"},{\"name\":\"runId\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"run_id\"},{\"name\":\"workflowId\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"workflow_id\"},{\"name\":\"slotNodeId\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"slot_node_id\"},{\"name\":\"workflowNodeId\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"workflow_node_id\"},{\"name\":\"kind\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"connectionKind\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"connection_kind\"},{\"name\":\"activationId\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"activation_id\"},{\"name\":\"batchId\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"batch_id\"},{\"name\":\"runIndex\",\"kind\":\"scalar\",\"type\":\"Int\",\"dbName\":\"run_index\"},{\"name\":\"parentInstanceId\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"parent_instance_id\"},{\"name\":\"parentRunId\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"parent_run_id\"},{\"name\":\"workerClaimToken\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"worker_claim_token\"},{\"name\":\"status\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"queuedAt\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"queued_at\"},{\"name\":\"startedAt\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"started_at\"},{\"name\":\"finishedAt\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"finished_at\"},{\"name\":\"updatedAt\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"updated_at\"},{\"name\":\"itemCount\",\"kind\":\"scalar\",\"type\":\"Int\",\"dbName\":\"item_count\"},{\"name\":\"inputJson\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"input_json\"},{\"name\":\"outputJson\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"output_json\"},{\"name\":\"errorJson\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"error_json\"},{\"name\":\"inputItemIndicesJson\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"input_item_indices_json\"},{\"name\":\"outputItemCount\",\"kind\":\"scalar\",\"type\":\"Int\",\"dbName\":\"output_item_count\"},{\"name\":\"successfulItemCount\",\"kind\":\"scalar\",\"type\":\"Int\",\"dbName\":\"successful_item_count\"},{\"name\":\"failedItemCount\",\"kind\":\"scalar\",\"type\":\"Int\",\"dbName\":\"failed_item_count\"},{\"name\":\"inputStorageKind\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"input_storage_kind\"},{\"name\":\"outputStorageKind\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"output_storage_kind\"},{\"name\":\"inputBytes\",\"kind\":\"scalar\",\"type\":\"Int\",\"dbName\":\"input_bytes\"},{\"name\":\"outputBytes\",\"kind\":\"scalar\",\"type\":\"Int\",\"dbName\":\"output_bytes\"},{\"name\":\"inputPreviewJson\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"input_preview_json\"},{\"name\":\"outputPreviewJson\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"output_preview_json\"},{\"name\":\"inputPayloadRef\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"input_payload_ref\"},{\"name\":\"outputPayloadRef\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"output_payload_ref\"},{\"name\":\"inputTruncated\",\"kind\":\"scalar\",\"type\":\"Boolean\",\"dbName\":\"input_truncated\"},{\"name\":\"outputTruncated\",\"kind\":\"scalar\",\"type\":\"Boolean\",\"dbName\":\"output_truncated\"},{\"name\":\"usedPinnedOutput\",\"kind\":\"scalar\",\"type\":\"Boolean\",\"dbName\":\"used_pinned_output\"},{\"name\":\"iterationId\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"iteration_id\"},{\"name\":\"itemIndex\",\"kind\":\"scalar\",\"type\":\"Int\",\"dbName\":\"item_index\"},{\"name\":\"parentInvocationId\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"parent_invocation_id\"},{\"name\":\"childRunId\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"child_run_id\"},{\"name\":\"run\",\"kind\":\"object\",\"type\":\"Run\",\"relationName\":\"ExecutionInstanceToRun\"}],\"dbName\":null},\"RunSlotProjection\":{\"fields\":[{\"name\":\"runId\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"run_id\"},{\"name\":\"workflowId\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"workflow_id\"},{\"name\":\"revision\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"updatedAt\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"updated_at\"},{\"name\":\"slotStatesJson\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"slot_states_json\"},{\"name\":\"run\",\"kind\":\"object\",\"type\":\"Run\",\"relationName\":\"RunToRunSlotProjection\"}],\"dbName\":null},\"TestSuiteRun\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"workflowId\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"workflow_id\"},{\"name\":\"triggerNodeId\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"trigger_node_id\"},{\"name\":\"triggerNodeName\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"trigger_node_name\"},{\"name\":\"status\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"concurrency\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"startedAt\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"started_at\"},{\"name\":\"finishedAt\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"finished_at\"},{\"name\":\"totalCases\",\"kind\":\"scalar\",\"type\":\"Int\",\"dbName\":\"total_cases\"},{\"name\":\"passedCases\",\"kind\":\"scalar\",\"type\":\"Int\",\"dbName\":\"passed_cases\"},{\"name\":\"failedCases\",\"kind\":\"scalar\",\"type\":\"Int\",\"dbName\":\"failed_cases\"},{\"name\":\"nodeCoverageJson\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"node_coverage_json\"},{\"name\":\"errorMessage\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"error_message\"},{\"name\":\"updatedAt\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"updated_at\"},{\"name\":\"runs\",\"kind\":\"object\",\"type\":\"Run\",\"relationName\":\"RunToTestSuiteRun\"},{\"name\":\"assertions\",\"kind\":\"object\",\"type\":\"TestAssertion\",\"relationName\":\"TestAssertionToTestSuiteRun\"}],\"dbName\":null},\"TestAssertion\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"runId\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"run_id\"},{\"name\":\"testSuiteRunId\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"test_suite_run_id\"},{\"name\":\"workflowId\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"workflow_id\"},{\"name\":\"nodeId\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"node_id\"},{\"name\":\"iterationId\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"iteration_id\"},{\"name\":\"itemIndex\",\"kind\":\"scalar\",\"type\":\"Int\",\"dbName\":\"item_index\"},{\"name\":\"name\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"score\",\"kind\":\"scalar\",\"type\":\"Float\"},{\"name\":\"passThreshold\",\"kind\":\"scalar\",\"type\":\"Float\",\"dbName\":\"pass_threshold\"},{\"name\":\"errored\",\"kind\":\"scalar\",\"type\":\"Boolean\"},{\"name\":\"expectedJson\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"expected_json\"},{\"name\":\"actualJson\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"actual_json\"},{\"name\":\"message\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"detailsJson\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"details_json\"},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"created_at\"},{\"name\":\"run\",\"kind\":\"object\",\"type\":\"Run\",\"relationName\":\"RunToTestAssertion\"},{\"name\":\"testSuiteRun\",\"kind\":\"object\",\"type\":\"TestSuiteRun\",\"relationName\":\"TestAssertionToTestSuiteRun\"}],\"dbName\":null},\"WorkflowDebuggerOverlay\":{\"fields\":[{\"name\":\"workflowId\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"workflow_id\"},{\"name\":\"updatedAt\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"updated_at\"},{\"name\":\"copiedFromRunId\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"copied_from_run_id\"},{\"name\":\"stateJson\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"state_json\"}],\"dbName\":null},\"WorkflowActivation\":{\"fields\":[{\"name\":\"workflowId\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"workflow_id\"},{\"name\":\"isActive\",\"kind\":\"scalar\",\"type\":\"Boolean\",\"dbName\":\"is_active\"},{\"name\":\"updatedAt\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"updated_at\"}],\"dbName\":null},\"TriggerSetupState\":{\"fields\":[{\"name\":\"workflowId\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"workflow_id\"},{\"name\":\"nodeId\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"node_id\"},{\"name\":\"updatedAt\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"updated_at\"},{\"name\":\"stateJson\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"state_json\"}],\"dbName\":null},\"RunTraceContext\":{\"fields\":[{\"name\":\"runId\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"run_id\"},{\"name\":\"workflowId\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"workflow_id\"},{\"name\":\"traceId\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"trace_id\"},{\"name\":\"rootSpanId\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"root_span_id\"},{\"name\":\"serviceName\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"service_name\"},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"created_at\"},{\"name\":\"expiresAt\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"expires_at\"}],\"dbName\":null},\"TelemetrySpan\":{\"fields\":[{\"name\":\"telemetrySpanId\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"telemetry_span_id\"},{\"name\":\"traceId\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"trace_id\"},{\"name\":\"spanId\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"span_id\"},{\"name\":\"parentSpanId\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"parent_span_id\"},{\"name\":\"runId\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"run_id\"},{\"name\":\"workflowId\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"workflow_id\"},{\"name\":\"nodeId\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"node_id\"},{\"name\":\"activationId\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"activation_id\"},{\"name\":\"connectionInvocationId\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"connection_invocation_id\"},{\"name\":\"name\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"kind\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"status\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"statusMessage\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"status_message\"},{\"name\":\"startTime\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"start_time\"},{\"name\":\"endTime\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"end_time\"},{\"name\":\"workflowFolder\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"workflow_folder\"},{\"name\":\"nodeType\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"node_type\"},{\"name\":\"nodeRole\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"node_role\"},{\"name\":\"modelName\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"model_name\"},{\"name\":\"attributesJson\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"attributes_json\"},{\"name\":\"eventsJson\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"events_json\"},{\"name\":\"retentionExpiresAt\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"retention_expires_at\"},{\"name\":\"iterationId\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"iteration_id\"},{\"name\":\"itemIndex\",\"kind\":\"scalar\",\"type\":\"Int\",\"dbName\":\"item_index\"},{\"name\":\"parentInvocationId\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"parent_invocation_id\"},{\"name\":\"updatedAt\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"updated_at\"}],\"dbName\":null},\"WorkflowSnapshot\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"workflowId\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"workflow_id\"},{\"name\":\"snapshotHash\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"snapshot_hash\"},{\"name\":\"snapshotJson\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"snapshot_json\"},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"created_at\"},{\"name\":\"runs\",\"kind\":\"object\",\"type\":\"Run\",\"relationName\":\"RunToWorkflowSnapshot\"}],\"dbName\":null},\"TelemetryArtifact\":{\"fields\":[{\"name\":\"artifactId\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"artifact_id\"},{\"name\":\"traceId\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"trace_id\"},{\"name\":\"spanId\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"span_id\"},{\"name\":\"runId\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"run_id\"},{\"name\":\"workflowId\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"workflow_id\"},{\"name\":\"nodeId\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"node_id\"},{\"name\":\"activationId\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"activation_id\"},{\"name\":\"kind\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"contentType\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"content_type\"},{\"name\":\"previewText\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"preview_text\"},{\"name\":\"previewJson\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"preview_json\"},{\"name\":\"payloadText\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"payload_text\"},{\"name\":\"payloadJson\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"payload_json\"},{\"name\":\"payloadStorageKey\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"payload_storage_key\"},{\"name\":\"bytes\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"truncated\",\"kind\":\"scalar\",\"type\":\"Boolean\"},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"created_at\"},{\"name\":\"expiresAt\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"expires_at\"},{\"name\":\"retentionExpiresAt\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"retention_expires_at\"}],\"dbName\":null},\"TelemetryMetricPoint\":{\"fields\":[{\"name\":\"metricPointId\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"metric_point_id\"},{\"name\":\"traceId\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"trace_id\"},{\"name\":\"spanId\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"span_id\"},{\"name\":\"runId\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"run_id\"},{\"name\":\"workflowId\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"workflow_id\"},{\"name\":\"nodeId\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"node_id\"},{\"name\":\"activationId\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"activation_id\"},{\"name\":\"metricName\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"metric_name\"},{\"name\":\"value\",\"kind\":\"scalar\",\"type\":\"Float\"},{\"name\":\"unit\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"observedAt\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"observed_at\"},{\"name\":\"workflowFolder\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"workflow_folder\"},{\"name\":\"nodeType\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"node_type\"},{\"name\":\"nodeRole\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"node_role\"},{\"name\":\"modelName\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"model_name\"},{\"name\":\"dimensionsJson\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"dimensions_json\"},{\"name\":\"retentionExpiresAt\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"retention_expires_at\"},{\"name\":\"iterationId\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"iteration_id\"},{\"name\":\"itemIndex\",\"kind\":\"scalar\",\"type\":\"Int\",\"dbName\":\"item_index\"},{\"name\":\"parentInvocationId\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"parent_invocation_id\"}],\"dbName\":null},\"CredentialInstance\":{\"fields\":[{\"name\":\"instanceId\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"instance_id\"},{\"name\":\"typeId\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"type_id\"},{\"name\":\"displayName\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"display_name\"},{\"name\":\"sourceKind\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"source_kind\"},{\"name\":\"publicConfigJson\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"public_config_json\"},{\"name\":\"secretRefJson\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"secret_ref_json\"},{\"name\":\"tagsJson\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"tags_json\"},{\"name\":\"setupStatus\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"setup_status\"},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"created_at\"},{\"name\":\"updatedAt\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"updated_at\"},{\"name\":\"materialSource\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"material_source\"},{\"name\":\"materialRef\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"material_ref\"}],\"dbName\":null},\"CredentialSecretMaterial\":{\"fields\":[{\"name\":\"instanceId\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"instance_id\"},{\"name\":\"encryptedJson\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"encrypted_json\"},{\"name\":\"encryptionKeyId\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"encryption_key_id\"},{\"name\":\"schemaVersion\",\"kind\":\"scalar\",\"type\":\"Int\",\"dbName\":\"schema_version\"},{\"name\":\"updatedAt\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"updated_at\"}],\"dbName\":null},\"CredentialOAuth2Material\":{\"fields\":[{\"name\":\"instanceId\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"instance_id\"},{\"name\":\"encryptedJson\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"encrypted_json\"},{\"name\":\"encryptionKeyId\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"encryption_key_id\"},{\"name\":\"schemaVersion\",\"kind\":\"scalar\",\"type\":\"Int\",\"dbName\":\"schema_version\"},{\"name\":\"providerId\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"provider_id\"},{\"name\":\"connectedEmail\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"connected_email\"},{\"name\":\"connectedAt\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"connected_at\"},{\"name\":\"scopesJson\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"scopes_json\"},{\"name\":\"updatedAt\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"updated_at\"}],\"dbName\":null},\"CredentialOAuth2State\":{\"fields\":[{\"name\":\"state\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"instanceId\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"instance_id\"},{\"name\":\"codeVerifier\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"code_verifier\"},{\"name\":\"providerId\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"provider_id\"},{\"name\":\"requestedScopesJson\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"requested_scopes_json\"},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"created_at\"},{\"name\":\"expiresAt\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"expires_at\"}],\"dbName\":null},\"CredentialBinding\":{\"fields\":[{\"name\":\"workflowId\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"workflow_id\"},{\"name\":\"nodeId\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"node_id\"},{\"name\":\"slotKey\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"slot_key\"},{\"name\":\"instanceId\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"instance_id\"},{\"name\":\"updatedAt\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"updated_at\"}],\"dbName\":null},\"CredentialTestResult\":{\"fields\":[{\"name\":\"testId\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"test_id\"},{\"name\":\"instanceId\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"instance_id\"},{\"name\":\"status\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"message\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"detailsJson\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"details_json\"},{\"name\":\"testedAt\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"tested_at\"},{\"name\":\"expiresAt\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"expires_at\"}],\"dbName\":null},\"User\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"name\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"email\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"emailVerified\",\"kind\":\"scalar\",\"type\":\"Boolean\",\"dbName\":\"email_verified\"},{\"name\":\"image\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"passwordHash\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"password_hash\"},{\"name\":\"accountStatus\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"account_status\"},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"type\":\"DateTime\",\"dbName\":\"created_at\"},{\"name\":\"updatedAt\",\"kind\":\"scalar\",\"type\":\"DateTime\",\"dbName\":\"updated_at\"},{\"name\":\"accounts\",\"kind\":\"object\",\"type\":\"Account\",\"relationName\":\"AccountToUser\"},{\"name\":\"sessions\",\"kind\":\"object\",\"type\":\"Session\",\"relationName\":\"SessionToUser\"},{\"name\":\"invites\",\"kind\":\"object\",\"type\":\"UserInvite\",\"relationName\":\"UserToUserInvite\"}],\"dbName\":\"codemation_auth_user\"},\"UserInvite\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"userId\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"user_id\"},{\"name\":\"tokenHash\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"token_hash\"},{\"name\":\"expiresAt\",\"kind\":\"scalar\",\"type\":\"DateTime\",\"dbName\":\"expires_at\"},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"type\":\"DateTime\",\"dbName\":\"created_at\"},{\"name\":\"revokedAt\",\"kind\":\"scalar\",\"type\":\"DateTime\",\"dbName\":\"revoked_at\"},{\"name\":\"user\",\"kind\":\"object\",\"type\":\"User\",\"relationName\":\"UserToUserInvite\"}],\"dbName\":\"codemation_auth_user_invite\"},\"Account\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"userId\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"user_id\"},{\"name\":\"type\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"provider\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"providerAccountId\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"provider_account_id\"},{\"name\":\"password\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"password\"},{\"name\":\"refresh_token\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"access_token\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"expires_at\",\"kind\":\"scalar\",\"type\":\"Int\"},{\"name\":\"accessTokenExpiresAt\",\"kind\":\"scalar\",\"type\":\"DateTime\",\"dbName\":\"access_token_expires_at\"},{\"name\":\"refreshTokenExpiresAt\",\"kind\":\"scalar\",\"type\":\"DateTime\",\"dbName\":\"refresh_token_expires_at\"},{\"name\":\"token_type\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"scope\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"id_token\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"session_state\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"type\":\"DateTime\",\"dbName\":\"created_at\"},{\"name\":\"updatedAt\",\"kind\":\"scalar\",\"type\":\"DateTime\",\"dbName\":\"updated_at\"},{\"name\":\"user\",\"kind\":\"object\",\"type\":\"User\",\"relationName\":\"AccountToUser\"}],\"dbName\":\"codemation_auth_account\"},\"Session\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"sessionToken\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"session_token\"},{\"name\":\"userId\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"user_id\"},{\"name\":\"expires\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"type\":\"DateTime\",\"dbName\":\"created_at\"},{\"name\":\"updatedAt\",\"kind\":\"scalar\",\"type\":\"DateTime\",\"dbName\":\"updated_at\"},{\"name\":\"ipAddress\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"ip_address\"},{\"name\":\"userAgent\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"user_agent\"},{\"name\":\"user\",\"kind\":\"object\",\"type\":\"User\",\"relationName\":\"SessionToUser\"}],\"dbName\":\"codemation_auth_session\"},\"VerificationToken\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"identifier\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"token\",\"kind\":\"scalar\",\"type\":\"String\"},{\"name\":\"expires\",\"kind\":\"scalar\",\"type\":\"DateTime\"},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"type\":\"DateTime\",\"dbName\":\"created_at\"},{\"name\":\"updatedAt\",\"kind\":\"scalar\",\"type\":\"DateTime\",\"dbName\":\"updated_at\"}],\"dbName\":\"codemation_auth_verification_token\"},\"WorkflowAuditLog\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"id\"},{\"name\":\"occurredAt\",\"kind\":\"scalar\",\"type\":\"DateTime\",\"dbName\":\"occurred_at\"},{\"name\":\"actorUserId\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"actor_user_id\"},{\"name\":\"actorSessionId\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"actor_session_id\"},{\"name\":\"action\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"action\"},{\"name\":\"resourceType\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"resource_type\"},{\"name\":\"resourceId\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"resource_id\"},{\"name\":\"outcome\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"outcome\"},{\"name\":\"errorCode\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"error_code\"},{\"name\":\"correlationId\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"correlation_id\"},{\"name\":\"workflowId\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"workflow_id\"},{\"name\":\"runId\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"run_id\"},{\"name\":\"nodeId\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"node_id\"}],\"dbName\":\"workflow_audit_log\"},\"HmacNonce\":{\"fields\":[{\"name\":\"nonce\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"nonce\"},{\"name\":\"expiresAt\",\"kind\":\"scalar\",\"type\":\"DateTime\",\"dbName\":\"expires_at\"}],\"dbName\":\"hmac_nonce\"},\"HumanTask\":{\"fields\":[{\"name\":\"id\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"id\"},{\"name\":\"runId\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"run_id\"},{\"name\":\"workflowId\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"workflow_id\"},{\"name\":\"workspaceId\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"workspace_id\"},{\"name\":\"nodeId\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"node_id\"},{\"name\":\"activationId\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"activation_id\"},{\"name\":\"itemIndex\",\"kind\":\"scalar\",\"type\":\"Int\",\"dbName\":\"item_index\"},{\"name\":\"status\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"status\"},{\"name\":\"channel\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"channel\"},{\"name\":\"subjectJson\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"subject_json\"},{\"name\":\"metadataJson\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"metadata_json\"},{\"name\":\"decisionSchemaJson\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"decision_schema_json\"},{\"name\":\"decisionSchemaHash\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"decision_schema_hash\"},{\"name\":\"onTimeout\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"on_timeout\"},{\"name\":\"deliveryRefJson\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"delivery_ref_json\"},{\"name\":\"decisionJson\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"decision_json\"},{\"name\":\"decidedAt\",\"kind\":\"scalar\",\"type\":\"DateTime\",\"dbName\":\"decided_at\"},{\"name\":\"decidedByJson\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"decided_by_json\"},{\"name\":\"resumeTokenHash\",\"kind\":\"scalar\",\"type\":\"String\",\"dbName\":\"resume_token_hash\"},{\"name\":\"expiresAt\",\"kind\":\"scalar\",\"type\":\"DateTime\",\"dbName\":\"expires_at\"},{\"name\":\"createdAt\",\"kind\":\"scalar\",\"type\":\"DateTime\",\"dbName\":\"created_at\"}],\"dbName\":\"human_task\"}},\"enums\":{},\"types\":{}}");
|
|
16629
16897
|
defineDmmfProperty(exports.Prisma, config$1.runtimeDataModel);
|
|
16630
16898
|
config$1.parameterizationSchema = {
|
|
16631
|
-
strings: JSON.parse("[\"where\",\"orderBy\",\"cursor\",\"run\",\"workItems\",\"executionInstances\",\"slotProjection\",\"runs\",\"testSuiteRun\",\"assertions\",\"_count\",\"testAssertions\",\"workflowSnapshot\",\"Run.findUnique\",\"Run.findUniqueOrThrow\",\"Run.findFirst\",\"Run.findFirstOrThrow\",\"Run.findMany\",\"data\",\"Run.createOne\",\"Run.createMany\",\"Run.createManyAndReturn\",\"Run.updateOne\",\"Run.updateMany\",\"Run.updateManyAndReturn\",\"create\",\"update\",\"Run.upsertOne\",\"Run.deleteOne\",\"Run.deleteMany\",\"having\",\"_avg\",\"_sum\",\"_min\",\"_max\",\"Run.groupBy\",\"Run.aggregate\",\"RunWorkItem.findUnique\",\"RunWorkItem.findUniqueOrThrow\",\"RunWorkItem.findFirst\",\"RunWorkItem.findFirstOrThrow\",\"RunWorkItem.findMany\",\"RunWorkItem.createOne\",\"RunWorkItem.createMany\",\"RunWorkItem.createManyAndReturn\",\"RunWorkItem.updateOne\",\"RunWorkItem.updateMany\",\"RunWorkItem.updateManyAndReturn\",\"RunWorkItem.upsertOne\",\"RunWorkItem.deleteOne\",\"RunWorkItem.deleteMany\",\"RunWorkItem.groupBy\",\"RunWorkItem.aggregate\",\"ExecutionInstance.findUnique\",\"ExecutionInstance.findUniqueOrThrow\",\"ExecutionInstance.findFirst\",\"ExecutionInstance.findFirstOrThrow\",\"ExecutionInstance.findMany\",\"ExecutionInstance.createOne\",\"ExecutionInstance.createMany\",\"ExecutionInstance.createManyAndReturn\",\"ExecutionInstance.updateOne\",\"ExecutionInstance.updateMany\",\"ExecutionInstance.updateManyAndReturn\",\"ExecutionInstance.upsertOne\",\"ExecutionInstance.deleteOne\",\"ExecutionInstance.deleteMany\",\"ExecutionInstance.groupBy\",\"ExecutionInstance.aggregate\",\"RunSlotProjection.findUnique\",\"RunSlotProjection.findUniqueOrThrow\",\"RunSlotProjection.findFirst\",\"RunSlotProjection.findFirstOrThrow\",\"RunSlotProjection.findMany\",\"RunSlotProjection.createOne\",\"RunSlotProjection.createMany\",\"RunSlotProjection.createManyAndReturn\",\"RunSlotProjection.updateOne\",\"RunSlotProjection.updateMany\",\"RunSlotProjection.updateManyAndReturn\",\"RunSlotProjection.upsertOne\",\"RunSlotProjection.deleteOne\",\"RunSlotProjection.deleteMany\",\"RunSlotProjection.groupBy\",\"RunSlotProjection.aggregate\",\"TestSuiteRun.findUnique\",\"TestSuiteRun.findUniqueOrThrow\",\"TestSuiteRun.findFirst\",\"TestSuiteRun.findFirstOrThrow\",\"TestSuiteRun.findMany\",\"TestSuiteRun.createOne\",\"TestSuiteRun.createMany\",\"TestSuiteRun.createManyAndReturn\",\"TestSuiteRun.updateOne\",\"TestSuiteRun.updateMany\",\"TestSuiteRun.updateManyAndReturn\",\"TestSuiteRun.upsertOne\",\"TestSuiteRun.deleteOne\",\"TestSuiteRun.deleteMany\",\"TestSuiteRun.groupBy\",\"TestSuiteRun.aggregate\",\"TestAssertion.findUnique\",\"TestAssertion.findUniqueOrThrow\",\"TestAssertion.findFirst\",\"TestAssertion.findFirstOrThrow\",\"TestAssertion.findMany\",\"TestAssertion.createOne\",\"TestAssertion.createMany\",\"TestAssertion.createManyAndReturn\",\"TestAssertion.updateOne\",\"TestAssertion.updateMany\",\"TestAssertion.updateManyAndReturn\",\"TestAssertion.upsertOne\",\"TestAssertion.deleteOne\",\"TestAssertion.deleteMany\",\"TestAssertion.groupBy\",\"TestAssertion.aggregate\",\"WorkflowDebuggerOverlay.findUnique\",\"WorkflowDebuggerOverlay.findUniqueOrThrow\",\"WorkflowDebuggerOverlay.findFirst\",\"WorkflowDebuggerOverlay.findFirstOrThrow\",\"WorkflowDebuggerOverlay.findMany\",\"WorkflowDebuggerOverlay.createOne\",\"WorkflowDebuggerOverlay.createMany\",\"WorkflowDebuggerOverlay.createManyAndReturn\",\"WorkflowDebuggerOverlay.updateOne\",\"WorkflowDebuggerOverlay.updateMany\",\"WorkflowDebuggerOverlay.updateManyAndReturn\",\"WorkflowDebuggerOverlay.upsertOne\",\"WorkflowDebuggerOverlay.deleteOne\",\"WorkflowDebuggerOverlay.deleteMany\",\"WorkflowDebuggerOverlay.groupBy\",\"WorkflowDebuggerOverlay.aggregate\",\"WorkflowActivation.findUnique\",\"WorkflowActivation.findUniqueOrThrow\",\"WorkflowActivation.findFirst\",\"WorkflowActivation.findFirstOrThrow\",\"WorkflowActivation.findMany\",\"WorkflowActivation.createOne\",\"WorkflowActivation.createMany\",\"WorkflowActivation.createManyAndReturn\",\"WorkflowActivation.updateOne\",\"WorkflowActivation.updateMany\",\"WorkflowActivation.updateManyAndReturn\",\"WorkflowActivation.upsertOne\",\"WorkflowActivation.deleteOne\",\"WorkflowActivation.deleteMany\",\"WorkflowActivation.groupBy\",\"WorkflowActivation.aggregate\",\"TriggerSetupState.findUnique\",\"TriggerSetupState.findUniqueOrThrow\",\"TriggerSetupState.findFirst\",\"TriggerSetupState.findFirstOrThrow\",\"TriggerSetupState.findMany\",\"TriggerSetupState.createOne\",\"TriggerSetupState.createMany\",\"TriggerSetupState.createManyAndReturn\",\"TriggerSetupState.updateOne\",\"TriggerSetupState.updateMany\",\"TriggerSetupState.updateManyAndReturn\",\"TriggerSetupState.upsertOne\",\"TriggerSetupState.deleteOne\",\"TriggerSetupState.deleteMany\",\"TriggerSetupState.groupBy\",\"TriggerSetupState.aggregate\",\"RunTraceContext.findUnique\",\"RunTraceContext.findUniqueOrThrow\",\"RunTraceContext.findFirst\",\"RunTraceContext.findFirstOrThrow\",\"RunTraceContext.findMany\",\"RunTraceContext.createOne\",\"RunTraceContext.createMany\",\"RunTraceContext.createManyAndReturn\",\"RunTraceContext.updateOne\",\"RunTraceContext.updateMany\",\"RunTraceContext.updateManyAndReturn\",\"RunTraceContext.upsertOne\",\"RunTraceContext.deleteOne\",\"RunTraceContext.deleteMany\",\"RunTraceContext.groupBy\",\"RunTraceContext.aggregate\",\"TelemetrySpan.findUnique\",\"TelemetrySpan.findUniqueOrThrow\",\"TelemetrySpan.findFirst\",\"TelemetrySpan.findFirstOrThrow\",\"TelemetrySpan.findMany\",\"TelemetrySpan.createOne\",\"TelemetrySpan.createMany\",\"TelemetrySpan.createManyAndReturn\",\"TelemetrySpan.updateOne\",\"TelemetrySpan.updateMany\",\"TelemetrySpan.updateManyAndReturn\",\"TelemetrySpan.upsertOne\",\"TelemetrySpan.deleteOne\",\"TelemetrySpan.deleteMany\",\"TelemetrySpan.groupBy\",\"TelemetrySpan.aggregate\",\"WorkflowSnapshot.findUnique\",\"WorkflowSnapshot.findUniqueOrThrow\",\"WorkflowSnapshot.findFirst\",\"WorkflowSnapshot.findFirstOrThrow\",\"WorkflowSnapshot.findMany\",\"WorkflowSnapshot.createOne\",\"WorkflowSnapshot.createMany\",\"WorkflowSnapshot.createManyAndReturn\",\"WorkflowSnapshot.updateOne\",\"WorkflowSnapshot.updateMany\",\"WorkflowSnapshot.updateManyAndReturn\",\"WorkflowSnapshot.upsertOne\",\"WorkflowSnapshot.deleteOne\",\"WorkflowSnapshot.deleteMany\",\"WorkflowSnapshot.groupBy\",\"WorkflowSnapshot.aggregate\",\"TelemetryArtifact.findUnique\",\"TelemetryArtifact.findUniqueOrThrow\",\"TelemetryArtifact.findFirst\",\"TelemetryArtifact.findFirstOrThrow\",\"TelemetryArtifact.findMany\",\"TelemetryArtifact.createOne\",\"TelemetryArtifact.createMany\",\"TelemetryArtifact.createManyAndReturn\",\"TelemetryArtifact.updateOne\",\"TelemetryArtifact.updateMany\",\"TelemetryArtifact.updateManyAndReturn\",\"TelemetryArtifact.upsertOne\",\"TelemetryArtifact.deleteOne\",\"TelemetryArtifact.deleteMany\",\"TelemetryArtifact.groupBy\",\"TelemetryArtifact.aggregate\",\"TelemetryMetricPoint.findUnique\",\"TelemetryMetricPoint.findUniqueOrThrow\",\"TelemetryMetricPoint.findFirst\",\"TelemetryMetricPoint.findFirstOrThrow\",\"TelemetryMetricPoint.findMany\",\"TelemetryMetricPoint.createOne\",\"TelemetryMetricPoint.createMany\",\"TelemetryMetricPoint.createManyAndReturn\",\"TelemetryMetricPoint.updateOne\",\"TelemetryMetricPoint.updateMany\",\"TelemetryMetricPoint.updateManyAndReturn\",\"TelemetryMetricPoint.upsertOne\",\"TelemetryMetricPoint.deleteOne\",\"TelemetryMetricPoint.deleteMany\",\"TelemetryMetricPoint.groupBy\",\"TelemetryMetricPoint.aggregate\",\"CredentialInstance.findUnique\",\"CredentialInstance.findUniqueOrThrow\",\"CredentialInstance.findFirst\",\"CredentialInstance.findFirstOrThrow\",\"CredentialInstance.findMany\",\"CredentialInstance.createOne\",\"CredentialInstance.createMany\",\"CredentialInstance.createManyAndReturn\",\"CredentialInstance.updateOne\",\"CredentialInstance.updateMany\",\"CredentialInstance.updateManyAndReturn\",\"CredentialInstance.upsertOne\",\"CredentialInstance.deleteOne\",\"CredentialInstance.deleteMany\",\"CredentialInstance.groupBy\",\"CredentialInstance.aggregate\",\"CredentialSecretMaterial.findUnique\",\"CredentialSecretMaterial.findUniqueOrThrow\",\"CredentialSecretMaterial.findFirst\",\"CredentialSecretMaterial.findFirstOrThrow\",\"CredentialSecretMaterial.findMany\",\"CredentialSecretMaterial.createOne\",\"CredentialSecretMaterial.createMany\",\"CredentialSecretMaterial.createManyAndReturn\",\"CredentialSecretMaterial.updateOne\",\"CredentialSecretMaterial.updateMany\",\"CredentialSecretMaterial.updateManyAndReturn\",\"CredentialSecretMaterial.upsertOne\",\"CredentialSecretMaterial.deleteOne\",\"CredentialSecretMaterial.deleteMany\",\"CredentialSecretMaterial.groupBy\",\"CredentialSecretMaterial.aggregate\",\"CredentialOAuth2Material.findUnique\",\"CredentialOAuth2Material.findUniqueOrThrow\",\"CredentialOAuth2Material.findFirst\",\"CredentialOAuth2Material.findFirstOrThrow\",\"CredentialOAuth2Material.findMany\",\"CredentialOAuth2Material.createOne\",\"CredentialOAuth2Material.createMany\",\"CredentialOAuth2Material.createManyAndReturn\",\"CredentialOAuth2Material.updateOne\",\"CredentialOAuth2Material.updateMany\",\"CredentialOAuth2Material.updateManyAndReturn\",\"CredentialOAuth2Material.upsertOne\",\"CredentialOAuth2Material.deleteOne\",\"CredentialOAuth2Material.deleteMany\",\"CredentialOAuth2Material.groupBy\",\"CredentialOAuth2Material.aggregate\",\"CredentialOAuth2State.findUnique\",\"CredentialOAuth2State.findUniqueOrThrow\",\"CredentialOAuth2State.findFirst\",\"CredentialOAuth2State.findFirstOrThrow\",\"CredentialOAuth2State.findMany\",\"CredentialOAuth2State.createOne\",\"CredentialOAuth2State.createMany\",\"CredentialOAuth2State.createManyAndReturn\",\"CredentialOAuth2State.updateOne\",\"CredentialOAuth2State.updateMany\",\"CredentialOAuth2State.updateManyAndReturn\",\"CredentialOAuth2State.upsertOne\",\"CredentialOAuth2State.deleteOne\",\"CredentialOAuth2State.deleteMany\",\"CredentialOAuth2State.groupBy\",\"CredentialOAuth2State.aggregate\",\"CredentialBinding.findUnique\",\"CredentialBinding.findUniqueOrThrow\",\"CredentialBinding.findFirst\",\"CredentialBinding.findFirstOrThrow\",\"CredentialBinding.findMany\",\"CredentialBinding.createOne\",\"CredentialBinding.createMany\",\"CredentialBinding.createManyAndReturn\",\"CredentialBinding.updateOne\",\"CredentialBinding.updateMany\",\"CredentialBinding.updateManyAndReturn\",\"CredentialBinding.upsertOne\",\"CredentialBinding.deleteOne\",\"CredentialBinding.deleteMany\",\"CredentialBinding.groupBy\",\"CredentialBinding.aggregate\",\"CredentialTestResult.findUnique\",\"CredentialTestResult.findUniqueOrThrow\",\"CredentialTestResult.findFirst\",\"CredentialTestResult.findFirstOrThrow\",\"CredentialTestResult.findMany\",\"CredentialTestResult.createOne\",\"CredentialTestResult.createMany\",\"CredentialTestResult.createManyAndReturn\",\"CredentialTestResult.updateOne\",\"CredentialTestResult.updateMany\",\"CredentialTestResult.updateManyAndReturn\",\"CredentialTestResult.upsertOne\",\"CredentialTestResult.deleteOne\",\"CredentialTestResult.deleteMany\",\"CredentialTestResult.groupBy\",\"CredentialTestResult.aggregate\",\"user\",\"accounts\",\"sessions\",\"invites\",\"User.findUnique\",\"User.findUniqueOrThrow\",\"User.findFirst\",\"User.findFirstOrThrow\",\"User.findMany\",\"User.createOne\",\"User.createMany\",\"User.createManyAndReturn\",\"User.updateOne\",\"User.updateMany\",\"User.updateManyAndReturn\",\"User.upsertOne\",\"User.deleteOne\",\"User.deleteMany\",\"User.groupBy\",\"User.aggregate\",\"UserInvite.findUnique\",\"UserInvite.findUniqueOrThrow\",\"UserInvite.findFirst\",\"UserInvite.findFirstOrThrow\",\"UserInvite.findMany\",\"UserInvite.createOne\",\"UserInvite.createMany\",\"UserInvite.createManyAndReturn\",\"UserInvite.updateOne\",\"UserInvite.updateMany\",\"UserInvite.updateManyAndReturn\",\"UserInvite.upsertOne\",\"UserInvite.deleteOne\",\"UserInvite.deleteMany\",\"UserInvite.groupBy\",\"UserInvite.aggregate\",\"Account.findUnique\",\"Account.findUniqueOrThrow\",\"Account.findFirst\",\"Account.findFirstOrThrow\",\"Account.findMany\",\"Account.createOne\",\"Account.createMany\",\"Account.createManyAndReturn\",\"Account.updateOne\",\"Account.updateMany\",\"Account.updateManyAndReturn\",\"Account.upsertOne\",\"Account.deleteOne\",\"Account.deleteMany\",\"Account.groupBy\",\"Account.aggregate\",\"Session.findUnique\",\"Session.findUniqueOrThrow\",\"Session.findFirst\",\"Session.findFirstOrThrow\",\"Session.findMany\",\"Session.createOne\",\"Session.createMany\",\"Session.createManyAndReturn\",\"Session.updateOne\",\"Session.updateMany\",\"Session.updateManyAndReturn\",\"Session.upsertOne\",\"Session.deleteOne\",\"Session.deleteMany\",\"Session.groupBy\",\"Session.aggregate\",\"VerificationToken.findUnique\",\"VerificationToken.findUniqueOrThrow\",\"VerificationToken.findFirst\",\"VerificationToken.findFirstOrThrow\",\"VerificationToken.findMany\",\"VerificationToken.createOne\",\"VerificationToken.createMany\",\"VerificationToken.createManyAndReturn\",\"VerificationToken.updateOne\",\"VerificationToken.updateMany\",\"VerificationToken.updateManyAndReturn\",\"VerificationToken.upsertOne\",\"VerificationToken.deleteOne\",\"VerificationToken.deleteMany\",\"VerificationToken.groupBy\",\"VerificationToken.aggregate\",\"WorkflowAuditLog.findUnique\",\"WorkflowAuditLog.findUniqueOrThrow\",\"WorkflowAuditLog.findFirst\",\"WorkflowAuditLog.findFirstOrThrow\",\"WorkflowAuditLog.findMany\",\"WorkflowAuditLog.createOne\",\"WorkflowAuditLog.createMany\",\"WorkflowAuditLog.createManyAndReturn\",\"WorkflowAuditLog.updateOne\",\"WorkflowAuditLog.updateMany\",\"WorkflowAuditLog.updateManyAndReturn\",\"WorkflowAuditLog.upsertOne\",\"WorkflowAuditLog.deleteOne\",\"WorkflowAuditLog.deleteMany\",\"WorkflowAuditLog.groupBy\",\"WorkflowAuditLog.aggregate\",\"AND\",\"OR\",\"NOT\",\"id\",\"occurredAt\",\"actorUserId\",\"actorSessionId\",\"action\",\"resourceType\",\"resourceId\",\"outcome\",\"errorCode\",\"correlationId\",\"workflowId\",\"runId\",\"nodeId\",\"equals\",\"in\",\"notIn\",\"lt\",\"lte\",\"gt\",\"gte\",\"contains\",\"startsWith\",\"endsWith\",\"not\",\"identifier\",\"token\",\"expires\",\"createdAt\",\"updatedAt\",\"identifier_token\",\"sessionToken\",\"userId\",\"ipAddress\",\"userAgent\",\"type\",\"provider\",\"providerAccountId\",\"password\",\"refresh_token\",\"access_token\",\"expires_at\",\"accessTokenExpiresAt\",\"refreshTokenExpiresAt\",\"token_type\",\"scope\",\"id_token\",\"session_state\",\"tokenHash\",\"expiresAt\",\"revokedAt\",\"name\",\"email\",\"emailVerified\",\"image\",\"passwordHash\",\"accountStatus\",\"every\",\"some\",\"none\",\"provider_providerAccountId\",\"testId\",\"instanceId\",\"status\",\"message\",\"detailsJson\",\"testedAt\",\"slotKey\",\"workflowId_nodeId_slotKey\",\"state\",\"codeVerifier\",\"providerId\",\"requestedScopesJson\",\"encryptedJson\",\"encryptionKeyId\",\"schemaVersion\",\"connectedEmail\",\"connectedAt\",\"scopesJson\",\"typeId\",\"displayName\",\"sourceKind\",\"publicConfigJson\",\"secretRefJson\",\"tagsJson\",\"setupStatus\",\"metricPointId\",\"traceId\",\"spanId\",\"activationId\",\"metricName\",\"value\",\"unit\",\"observedAt\",\"workflowFolder\",\"nodeType\",\"nodeRole\",\"modelName\",\"dimensionsJson\",\"retentionExpiresAt\",\"iterationId\",\"itemIndex\",\"parentInvocationId\",\"artifactId\",\"kind\",\"contentType\",\"previewText\",\"previewJson\",\"payloadText\",\"payloadJson\",\"payloadStorageKey\",\"bytes\",\"truncated\",\"snapshotHash\",\"snapshotJson\",\"workflowId_snapshotHash\",\"telemetrySpanId\",\"parentSpanId\",\"connectionInvocationId\",\"statusMessage\",\"startTime\",\"endTime\",\"attributesJson\",\"eventsJson\",\"traceId_spanId\",\"rootSpanId\",\"serviceName\",\"stateJson\",\"workflowId_nodeId\",\"isActive\",\"copiedFromRunId\",\"testSuiteRunId\",\"score\",\"passThreshold\",\"errored\",\"expectedJson\",\"actualJson\",\"triggerNodeId\",\"triggerNodeName\",\"concurrency\",\"startedAt\",\"finishedAt\",\"totalCases\",\"passedCases\",\"failedCases\",\"nodeCoverageJson\",\"errorMessage\",\"revision\",\"slotStatesJson\",\"slotNodeId\",\"workflowNodeId\",\"connectionKind\",\"batchId\",\"runIndex\",\"parentInstanceId\",\"parentRunId\",\"workerClaimToken\",\"queuedAt\",\"itemCount\",\"inputJson\",\"outputJson\",\"errorJson\",\"inputItemIndicesJson\",\"outputItemCount\",\"successfulItemCount\",\"failedItemCount\",\"inputStorageKind\",\"outputStorageKind\",\"inputBytes\",\"outputBytes\",\"inputPreviewJson\",\"outputPreviewJson\",\"inputPayloadRef\",\"outputPayloadRef\",\"inputTruncated\",\"outputTruncated\",\"usedPinnedOutput\",\"childRunId\",\"workItemId\",\"targetNodeId\",\"queueName\",\"claimToken\",\"claimedBy\",\"claimedAt\",\"availableAt\",\"enqueuedAt\",\"completedAt\",\"failedAt\",\"sourceInstanceId\",\"itemsIn\",\"inputsByPortJson\",\"parentJson\",\"executionOptionsJson\",\"controlJson\",\"workflowSnapshotJson\",\"workflowSnapshotId\",\"policySnapshotJson\",\"engineCountersJson\",\"mutableStateJson\",\"outputsByNodeJson\",\"testCaseIndex\",\"testCaseLabel\",\"testCaseStatus\",\"runId_slotNodeId_runIndex\",\"is\",\"isNot\",\"connectOrCreate\",\"upsert\",\"createMany\",\"set\",\"disconnect\",\"delete\",\"connect\",\"updateMany\",\"deleteMany\",\"increment\",\"decrement\",\"multiply\",\"divide\"]"),
|
|
16632
|
-
graph: "3gjtAaADHQQAAIwGACAFAACNBgAgBgAAjgYAIAgAAI8GACALAACBBgAgDAAAkAYAILkDAACLBgAwugMAAA8AELsDAACLBgAwxgMBALEFACHHAwEAAAAB2AMBALEFACH6AwEAsQUAIb4EAQCzBQAhxwQBALEFACHIBAEAswUAIc4EAgDcBQAh-gQBALMFACH7BAEAswUAIfwEAQCzBQAh_QQBALMFACH-BAEAswUAIf8EAQCzBQAhgAUBALMFACGBBQEAswUAIYIFAQCxBQAhgwUCAM8FACGEBQEAswUAIYUFAQCzBQAhAQAAAAEAIBcDAACEBgAguQMAAJMGADC6AwAAAwAQuwMAAJMGADDGAwEAsQUAIccDAQCxBQAh-gMBALEFACHTBAEAsQUAIdUEAQCzBQAh3AQBALMFACHtBAEAsQUAIe4EAQCxBQAh7wQBALMFACHwBAEAswUAIfEEAQCzBQAh8gQBALMFACHzBAEAsQUAIfQEAQCxBQAh9QQBALMFACH2BAEAswUAIfcEAQCzBQAh-AQCANwFACH5BAEAsQUAIQoDAACLCAAg1QQAAJQGACDcBAAAlAYAIO8EAACUBgAg8AQAAJQGACDxBAAAlAYAIPIEAACUBgAg9QQAAJQGACD2BAAAlAYAIPcEAACUBgAgFwMAAIQGACC5AwAAkwYAMLoDAAADABC7AwAAkwYAMMYDAQCxBQAhxwMBALEFACH6AwEAsQUAIdMEAQCxBQAh1QQBALMFACHcBAEAswUAIe0EAQAAAAHuBAEAsQUAIe8EAQCzBQAh8AQBALMFACHxBAEAswUAIfIEAQCzBQAh8wQBALEFACH0BAEAsQUAIfUEAQCzBQAh9gQBALMFACH3BAEAswUAIfgEAgDcBQAh-QQBALEFACEDAAAAAwAgAQAABAAwAgAABQAgLQMAAIQGACC5AwAAkgYAMLoDAAAHABC7AwAAkgYAMMYDAQCxBQAhxwMBALEFACHYAwEAsQUAIfkDAQCxBQAh-gMBALEFACGUBAEAswUAIZ8EAQCzBQAhoAQCAM8FACGhBAEAswUAIaMEAQCxBQAhxwQBALMFACHIBAEAswUAIdAEAQCxBQAh0QQBALEFACHSBAEAswUAIdMEAQCxBQAh1AQCANwFACHVBAEAswUAIdYEAQCzBQAh1wQBALMFACHYBAEAswUAIdkEAgDcBQAh2gQBALMFACHbBAEAswUAIdwEAQCzBQAh3QQBALMFACHeBAIAzwUAId8EAgDPBQAh4AQCAM8FACHhBAEAswUAIeIEAQCzBQAh4wQCAM8FACHkBAIAzwUAIeUEAQCzBQAh5gQBALMFACHnBAEAswUAIegEAQCzBQAh6QQgAOsFACHqBCAA6wUAIesEIADrBQAh7AQBALMFACEfAwAAiwgAIJQEAACUBgAgnwQAAJQGACCgBAAAlAYAIKEEAACUBgAgxwQAAJQGACDIBAAAlAYAINIEAACUBgAg1QQAAJQGACDWBAAAlAYAINcEAACUBgAg2AQAAJQGACDaBAAAlAYAINsEAACUBgAg3AQAAJQGACDdBAAAlAYAIN4EAACUBgAg3wQAAJQGACDgBAAAlAYAIOEEAACUBgAg4gQAAJQGACDjBAAAlAYAIOQEAACUBgAg5QQAAJQGACDmBAAAlAYAIOcEAACUBgAg6AQAAJQGACDpBAAAlAYAIOoEAACUBgAg6wQAAJQGACDsBAAAlAYAIC4DAACEBgAguQMAAJIGADC6AwAABwAQuwMAAJIGADDGAwEAsQUAIccDAQCxBQAh2AMBALEFACH5AwEAAAAB-gMBALEFACGUBAEAswUAIZ8EAQCzBQAhoAQCAM8FACGhBAEAswUAIaMEAQCxBQAhxwQBALMFACHIBAEAswUAIdAEAQCxBQAh0QQBALEFACHSBAEAswUAIdMEAQCxBQAh1AQCANwFACHVBAEAswUAIdYEAQCzBQAh1wQBALMFACHYBAEAswUAIdkEAgDcBQAh2gQBALMFACHbBAEAswUAIdwEAQCzBQAh3QQBALMFACHeBAIAzwUAId8EAgDPBQAh4AQCAM8FACHhBAEAswUAIeIEAQCzBQAh4wQCAM8FACHkBAIAzwUAIeUEAQCzBQAh5gQBALMFACHnBAEAswUAIegEAQCzBQAh6QQgAOsFACHqBCAA6wUAIesEIADrBQAh7AQBALMFACGGBQAAkQYAIAMAAAAHACABAAAIADACAAAJACAJAwAAhAYAILkDAACDBgAwugMAAAsAELsDAACDBgAwxgMBALEFACHHAwEAsQUAIdgDAQCxBQAhzgQCANwFACHPBAEAsQUAIQEAAAALACATBwAA7wUAIAkAAIEGACC5AwAAgAYAMLoDAAANABC7AwAAgAYAMLwDAQCxBQAhxgMBALEFACHYAwEAsQUAIfoDAQCxBQAhxAQBALEFACHFBAEAswUAIcYEAgDcBQAhxwQBALEFACHIBAEAswUAIckEAgDcBQAhygQCANwFACHLBAIA3AUAIcwEAQCzBQAhzQQBALMFACEBAAAADQAgHQQAAIwGACAFAACNBgAgBgAAjgYAIAgAAI8GACALAACBBgAgDAAAkAYAILkDAACLBgAwugMAAA8AELsDAACLBgAwxgMBALEFACHHAwEAsQUAIdgDAQCxBQAh-gMBALEFACG-BAEAswUAIccEAQCxBQAhyAQBALMFACHOBAIA3AUAIfoEAQCzBQAh-wQBALMFACH8BAEAswUAIf0EAQCzBQAh_gQBALMFACH_BAEAswUAIYAFAQCzBQAhgQUBALMFACGCBQEAsQUAIYMFAgDPBQAhhAUBALMFACGFBQEAswUAIRMEAACgCAAgBQAAoQgAIAYAAKIIACAIAACfCAAgCwAAgwgAIAwAAKMIACC-BAAAlAYAIMgEAACUBgAg-gQAAJQGACD7BAAAlAYAIPwEAACUBgAg_QQAAJQGACD-BAAAlAYAIP8EAACUBgAggAUAAJQGACCBBQAAlAYAIIMFAACUBgAghAUAAJQGACCFBQAAlAYAIAMAAAAPACABAAAQADACAAABACAVAwAAhAYAIAgAAIoGACC5AwAAiAYAMLoDAAASABC7AwAAiAYAMLwDAQCxBQAhxgMBALEFACHHAwEAsQUAIcgDAQCxBQAh1wMBALEFACHuAwEAsQUAIfsDAQCzBQAh_AMBALMFACGfBAEAswUAIaAEAgDPBQAhvgQBALEFACG_BAgA5QUAIcAECACJBgAhwQQgAMUFACHCBAEAswUAIcMEAQCzBQAhCQMAAIsIACAIAACfCAAg-wMAAJQGACD8AwAAlAYAIJ8EAACUBgAgoAQAAJQGACDABAAAlAYAIMIEAACUBgAgwwQAAJQGACAVAwAAhAYAIAgAAIoGACC5AwAAiAYAMLoDAAASABC7AwAAiAYAMLwDAQAAAAHGAwEAsQUAIccDAQCxBQAhyAMBALEFACHXAwEAsQUAIe4DAQCxBQAh-wMBALMFACH8AwEAswUAIZ8EAQCzBQAhoAQCAM8FACG-BAEAsQUAIb8ECADlBQAhwAQIAIkGACHBBCAAxQUAIcIEAQCzBQAhwwQBALMFACEDAAAAEgAgAQAAEwAwAgAAFAAgAQAAAA8AIAEAAAASACADAAAAEgAgAQAAEwAwAgAAFAAgCQcAAO8FACC5AwAA7gUAMLoDAAAZABC7AwAA7gUAMLwDAQCxBQAhxgMBALEFACHXAwEAsQUAIawEAQCxBQAhrQQBALEFACEBAAAAGQAgAwAAAA8AIAEAABAAMAIAAAEAIAEAAAAPACABAAAAAwAgAQAAAAcAIAEAAAASACABAAAAAQAgAwAAAA8AIAEAABAAMAIAAAEAIAMAAAAPACABAAAQADACAAABACADAAAADwAgAQAAEAAwAgAAAQAgGgQAAMcHACAFAADIBwAgBgAAyQcAIAgAAMoHACALAADLBwAgDAAAgAgAIMYDAQAAAAHHAwEAAAAB2AMBAAAAAfoDAQAAAAG-BAEAAAABxwQBAAAAAcgEAQAAAAHOBAIAAAAB-gQBAAAAAfsEAQAAAAH8BAEAAAAB_QQBAAAAAf4EAQAAAAH_BAEAAAABgAUBAAAAAYEFAQAAAAGCBQEAAAABgwUCAAAAAYQFAQAAAAGFBQEAAAABARIAACQAIBTGAwEAAAABxwMBAAAAAdgDAQAAAAH6AwEAAAABvgQBAAAAAccEAQAAAAHIBAEAAAABzgQCAAAAAfoEAQAAAAH7BAEAAAAB_AQBAAAAAf0EAQAAAAH-BAEAAAAB_wQBAAAAAYAFAQAAAAGBBQEAAAABggUBAAAAAYMFAgAAAAGEBQEAAAABhQUBAAAAAQESAAAmADABEgAAJgAwAQAAAA0AIAEAAAAZACAaBAAAlQcAIAUAAJYHACAGAACXBwAgCAAAmAcAIAsAAJkHACAMAAD-BwAgxgMBAJgGACHHAwEAmAYAIdgDAQCYBgAh-gMBAJgGACG-BAEAmgYAIccEAQCYBgAhyAQBAJoGACHOBAIA8QYAIfoEAQCaBgAh-wQBAJoGACH8BAEAmgYAIf0EAQCaBgAh_gQBAJoGACH_BAEAmgYAIYAFAQCaBgAhgQUBAJoGACGCBQEAmAYAIYMFAgCoBgAhhAUBAJoGACGFBQEAmgYAIQIAAAABACASAAArACAUxgMBAJgGACHHAwEAmAYAIdgDAQCYBgAh-gMBAJgGACG-BAEAmgYAIccEAQCYBgAhyAQBAJoGACHOBAIA8QYAIfoEAQCaBgAh-wQBAJoGACH8BAEAmgYAIf0EAQCaBgAh_gQBAJoGACH_BAEAmgYAIYAFAQCaBgAhgQUBAJoGACGCBQEAmAYAIYMFAgCoBgAhhAUBAJoGACGFBQEAmgYAIQIAAAAPACASAAAtACACAAAADwAgEgAALQAgAQAAAA0AIAEAAAAZACADAAAAAQAgGQAAJAAgGgAAKwAgAQAAAAEAIAEAAAAPACASCgAAmggAIB8AAJsIACAgAACeCAAgIQAAnQgAICIAAJwIACC-BAAAlAYAIMgEAACUBgAg-gQAAJQGACD7BAAAlAYAIPwEAACUBgAg_QQAAJQGACD-BAAAlAYAIP8EAACUBgAggAUAAJQGACCBBQAAlAYAIIMFAACUBgAghAUAAJQGACCFBQAAlAYAIBe5AwAAhwYAMLoDAAA2ABC7AwAAhwYAMMYDAQClBQAhxwMBAKUFACHYAwEApQUAIfoDAQClBQAhvgQBAKcFACHHBAEApQUAIcgEAQCnBQAhzgQCANgFACH6BAEApwUAIfsEAQCnBQAh_AQBAKcFACH9BAEApwUAIf4EAQCnBQAh_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_BQAwvAMBAKUFACHGAwEApQUAIdgDAQClBQAh-gMBAKUFACHEBAEApQUAIcUEAQCnBQAhxgQCANgFACHHBAEApQUAIcgEAQCnBQAhyQQCANgFACHKBAIA2AUAIcsEAgDYBQAhzAQBAKcFACHNBAEApwUAIQMAAAANACABAACRAQAwHgAAkgEAIAMAAAANACABAACAAQAwAgAAfQAgAQAAABQAIAEAAAAUACADAAAAEgAgAQAAEwAwAgAAFAAgAwAAABIAIAEAABMAMAIAABQAIAMAAAASACABAAATADACAAAUACASAwAA5QcAIAgAAKgHACC8AwEAAAABxgMBAAAAAccDAQAAAAHIAwEAAAAB1wMBAAAAAe4DAQAAAAH7AwEAAAAB_AMBAAAAAZ8EAQAAAAGgBAIAAAABvgQBAAAAAb8ECAAAAAHABAgAAAABwQQgAAAAAcIEAQAAAAHDBAEAAAABARIAAJoBACAQvAMBAAAAAcYDAQAAAAHHAwEAAAAByAMBAAAAAdcDAQAAAAHuAwEAAAAB-wMBAAAAAfwDAQAAAAGfBAEAAAABoAQCAAAAAb4EAQAAAAG_BAgAAAABwAQIAAAAAcEEIAAAAAHCBAEAAAABwwQBAAAAAQESAACcAQAwARIAAJwBADASAwAA5AcAIAgAAKYHACC8AwEAmAYAIcYDAQCYBgAhxwMBAJgGACHIAwEAmAYAIdcDAQCYBgAh7gMBAJgGACH7AwEAmgYAIfwDAQCaBgAhnwQBAJoGACGgBAIAqAYAIb4EAQCYBgAhvwQIAP8GACHABAgApAcAIcEEIAC0BgAhwgQBAJoGACHDBAEAmgYAIQIAAAAUACASAACfAQAgELwDAQCYBgAhxgMBAJgGACHHAwEAmAYAIcgDAQCYBgAh1wMBAJgGACHuAwEAmAYAIfsDAQCaBgAh_AMBAJoGACGfBAEAmgYAIaAEAgCoBgAhvgQBAJgGACG_BAgA_wYAIcAECACkBwAhwQQgALQGACHCBAEAmgYAIcMEAQCaBgAhAgAAABIAIBIAAKEBACACAAAAEgAgEgAAoQEAIAMAAAAUACAZAACaAQAgGgAAnwEAIAEAAAAUACABAAAAEgAgDAoAAN8HACAfAADgBwAgIAAA4wcAICEAAOIHACAiAADhBwAg-wMAAJQGACD8AwAAlAYAIJ8EAACUBgAgoAQAAJQGACDABAAAlAYAIMIEAACUBgAgwwQAAJQGACATuQMAAPwFADC6AwAAqAEAELsDAAD8BQAwvAMBAKUFACHGAwEApQUAIccDAQClBQAhyAMBAKUFACHXAwEApQUAIe4DAQClBQAh-wMBAKcFACH8AwEApwUAIZ8EAQCnBQAhoAQCALkFACG-BAEApQUAIb8ECADiBQAhwAQIAP0FACHBBCAAwQUAIcIEAQCnBQAhwwQBAKcFACEDAAAAEgAgAQAApwEAMB4AAKgBACADAAAAEgAgAQAAEwAwAgAAFAAgB7kDAAD7BQAwugMAAK4BABC7AwAA-wUAMMYDAQAAAAHYAwEAsQUAIboEAQCxBQAhvQQBALMFACEBAAAAqwEAIAEAAACrAQAgB7kDAAD7BQAwugMAAK4BABC7AwAA-wUAMMYDAQCxBQAh2AMBALEFACG6BAEAsQUAIb0EAQCzBQAhAb0EAACUBgAgAwAAAK4BACABAACvAQAwAgAAqwEAIAMAAACuAQAgAQAArwEAMAIAAKsBACADAAAArgEAIAEAAK8BADACAACrAQAgBMYDAQAAAAHYAwEAAAABugQBAAAAAb0EAQAAAAEBEgAAswEAIATGAwEAAAAB2AMBAAAAAboEAQAAAAG9BAEAAAABARIAALUBADABEgAAtQEAMATGAwEAmAYAIdgDAQCYBgAhugQBAJgGACG9BAEAmgYAIQIAAACrAQAgEgAAuAEAIATGAwEAmAYAIdgDAQCYBgAhugQBAJgGACG9BAEAmgYAIQIAAACuAQAgEgAAugEAIAIAAACuAQAgEgAAugEAIAMAAACrAQAgGQAAswEAIBoAALgBACABAAAAqwEAIAEAAACuAQAgBAoAANwHACAhAADeBwAgIgAA3QcAIL0EAACUBgAgB7kDAAD6BQAwugMAAMEBABC7AwAA-gUAMMYDAQClBQAh2AMBAKUFACG6BAEApQUAIb0EAQCnBQAhAwAAAK4BACABAADAAQAwHgAAwQEAIAMAAACuAQAgAQAArwEAMAIAAKsBACAGuQMAAPkFADC6AwAAxwEAELsDAAD5BQAwxgMBAAAAAdgDAQCxBQAhvAQgAMUFACEBAAAAxAEAIAEAAADEAQAgBrkDAAD5BQAwugMAAMcBABC7AwAA-QUAMMYDAQCxBQAh2AMBALEFACG8BCAAxQUAIQADAAAAxwEAIAEAAMgBADACAADEAQAgAwAAAMcBACABAADIAQAwAgAAxAEAIAMAAADHAQAgAQAAyAEAMAIAAMQBACADxgMBAAAAAdgDAQAAAAG8BCAAAAABARIAAMwBACADxgMBAAAAAdgDAQAAAAG8BCAAAAABARIAAM4BADABEgAAzgEAMAPGAwEAmAYAIdgDAQCYBgAhvAQgALQGACECAAAAxAEAIBIAANEBACADxgMBAJgGACHYAwEAmAYAIbwEIAC0BgAhAgAAAMcBACASAADTAQAgAgAAAMcBACASAADTAQAgAwAAAMQBACAZAADMAQAgGgAA0QEAIAEAAADEAQAgAQAAAMcBACADCgAA2QcAICEAANsHACAiAADaBwAgBrkDAAD4BQAwugMAANoBABC7AwAA-AUAMMYDAQClBQAh2AMBAKUFACG8BCAAwQUAIQMAAADHAQAgAQAA2QEAMB4AANoBACADAAAAxwEAIAEAAMgBADACAADEAQAgCLkDAAD2BQAwugMAAOABABC7AwAA9gUAMMYDAQCxBQAhyAMBALEFACHYAwEAsQUAIboEAQCxBQAhuwQAAPcFACABAAAA3QEAIAEAAADdAQAgB7kDAAD2BQAwugMAAOABABC7AwAA9gUAMMYDAQCxBQAhyAMBALEFACHYAwEAsQUAIboEAQCxBQAhAAMAAADgAQAgAQAA4QEAMAIAAN0BACADAAAA4AEAIAEAAOEBADACAADdAQAgAwAAAOABACABAADhAQAwAgAA3QEAIATGAwEAAAAByAMBAAAAAdgDAQAAAAG6BAEAAAABARIAAOUBACAExgMBAAAAAcgDAQAAAAHYAwEAAAABugQBAAAAAQESAADnAQAwARIAAOcBADAExgMBAJgGACHIAwEAmAYAIdgDAQCYBgAhugQBAJgGACECAAAA3QEAIBIAAOoBACAExgMBAJgGACHIAwEAmAYAIdgDAQCYBgAhugQBAJgGACECAAAA4AEAIBIAAOwBACACAAAA4AEAIBIAAOwBACADAAAA3QEAIBkAAOUBACAaAADqAQAgAQAAAN0BACABAAAA4AEAIAMKAADWBwAgIQAA2AcAICIAANcHACAHuQMAAPUFADC6AwAA8wEAELsDAAD1BQAwxgMBAKUFACHIAwEApQUAIdgDAQClBQAhugQBAKUFACEDAAAA4AEAIAEAAPIBADAeAADzAQAgAwAAAOABACABAADhAQAwAgAA3QEAIAq5AwAA9AUAMLoDAAD5AQAQuwMAAPQFADDGAwEAsQUAIccDAQAAAAHXAwEAsQUAIewDAQCzBQAhkgQBAAAAAbgEAQCxBQAhuQQBALMFACEBAAAA9gEAIAEAAAD2AQAgCrkDAAD0BQAwugMAAPkBABC7AwAA9AUAMMYDAQCxBQAhxwMBALEFACHXAwEAsQUAIewDAQCzBQAhkgQBALEFACG4BAEAsQUAIbkEAQCzBQAhAuwDAACUBgAguQQAAJQGACADAAAA-QEAIAEAAPoBADACAAD2AQAgAwAAAPkBACABAAD6AQAwAgAA9gEAIAMAAAD5AQAgAQAA-gEAMAIAAPYBACAHxgMBAAAAAccDAQAAAAHXAwEAAAAB7AMBAAAAAZIEAQAAAAG4BAEAAAABuQQBAAAAAQESAAD-AQAgB8YDAQAAAAHHAwEAAAAB1wMBAAAAAewDAQAAAAGSBAEAAAABuAQBAAAAAbkEAQAAAAEBEgAAgAIAMAESAACAAgAwB8YDAQCYBgAhxwMBAJgGACHXAwEAmAYAIewDAQCaBgAhkgQBAJgGACG4BAEAmAYAIbkEAQCaBgAhAgAAAPYBACASAACDAgAgB8YDAQCYBgAhxwMBAJgGACHXAwEAmAYAIewDAQCaBgAhkgQBAJgGACG4BAEAmAYAIbkEAQCaBgAhAgAAAPkBACASAACFAgAgAgAAAPkBACASAACFAgAgAwAAAPYBACAZAAD-AQAgGgAAgwIAIAEAAAD2AQAgAQAAAPkBACAFCgAA0wcAICEAANUHACAiAADUBwAg7AMAAJQGACC5BAAAlAYAIAq5AwAA8wUAMLoDAACMAgAQuwMAAPMFADDGAwEApQUAIccDAQClBQAh1wMBAKUFACHsAwEApwUAIZIEAQClBQAhuAQBAKUFACG5BAEApwUAIQMAAAD5AQAgAQAAiwIAMB4AAIwCACADAAAA-QEAIAEAAPoBADACAAD2AQAgHrkDAADxBQAwugMAAJICABC7AwAA8QUAMMYDAQCxBQAhxwMBALEFACHIAwEAswUAIdgDAQCxBQAh7gMBALEFACH6AwEAswUAIZIEAQCxBQAhkwQBALEFACGUBAEAswUAIZkEAQCzBQAhmgQBALMFACGbBAEAswUAIZwEAQCzBQAhngQBALMFACGfBAEAswUAIaAEAgDPBQAhoQQBALMFACGjBAEAsQUAIa8EAQAAAAGwBAEAswUAIbEEAQCzBQAhsgQBALMFACGzBAEAswUAIbQEAQCzBQAhtQQBALMFACG2BAEAswUAIbcEAADyBQAgAQAAAI8CACABAAAAjwIAIB25AwAA8QUAMLoDAACSAgAQuwMAAPEFADDGAwEAsQUAIccDAQCxBQAhyAMBALMFACHYAwEAsQUAIe4DAQCxBQAh-gMBALMFACGSBAEAsQUAIZMEAQCxBQAhlAQBALMFACGZBAEAswUAIZoEAQCzBQAhmwQBALMFACGcBAEAswUAIZ4EAQCzBQAhnwQBALMFACGgBAIAzwUAIaEEAQCzBQAhowQBALEFACGvBAEAsQUAIbAEAQCzBQAhsQQBALMFACGyBAEAswUAIbMEAQCzBQAhtAQBALMFACG1BAEAswUAIbYEAQCzBQAhEsgDAACUBgAg-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_HAwAAlAYAIMgDAACUBgAgkgQAAJQGACCTBAAAlAYAIJQEAACUBgAglwQAAJQGACCZBAAAlAYAIJoEAACUBgAgmwQAAJQGACCcBAAAlAYAIJ0EAACUBgAgngQAAJQGACCfBAAAlAYAIKAEAACUBgAgoQQAAJQGACADAAAA3AIAIAEAAN0CADACAADZAgAgAwAAANwCACABAADdAgAwAgAA2QIAIAMAAADcAgAgAQAA3QIAMAIAANkCACAUxgMBAAAAAccDAQAAAAHIAwEAAAABkQQBAAAAAZIEAQAAAAGTBAEAAAABlAQBAAAAAZUEAQAAAAGWBAgAAAABlwQBAAAAAZgEAQAAAAGZBAEAAAABmgQBAAAAAZsEAQAAAAGcBAEAAAABnQQBAAAAAZ4EAQAAAAGfBAEAAAABoAQCAAAAAaEEAQAAAAEBEgAA4QIAIBTGAwEAAAABxwMBAAAAAcgDAQAAAAGRBAEAAAABkgQBAAAAAZMEAQAAAAGUBAEAAAABlQQBAAAAAZYECAAAAAGXBAEAAAABmAQBAAAAAZkEAQAAAAGaBAEAAAABmwQBAAAAAZwEAQAAAAGdBAEAAAABngQBAAAAAZ8EAQAAAAGgBAIAAAABoQQBAAAAAQESAADjAgAwARIAAOMCADAUxgMBAJgGACHHAwEAmgYAIcgDAQCaBgAhkQQBAJgGACGSBAEAmgYAIZMEAQCaBgAhlAQBAJoGACGVBAEAmAYAIZYECAD_BgAhlwQBAJoGACGYBAEAmAYAIZkEAQCaBgAhmgQBAJoGACGbBAEAmgYAIZwEAQCaBgAhnQQBAJoGACGeBAEAmgYAIZ8EAQCaBgAhoAQCAKgGACGhBAEAmgYAIQIAAADZAgAgEgAA5gIAIBTGAwEAmAYAIccDAQCaBgAhyAMBAJoGACGRBAEAmAYAIZIEAQCaBgAhkwQBAJoGACGUBAEAmgYAIZUEAQCYBgAhlgQIAP8GACGXBAEAmgYAIZgEAQCYBgAhmQQBAJoGACGaBAEAmgYAIZsEAQCaBgAhnAQBAJoGACGdBAEAmgYAIZ4EAQCaBgAhnwQBAJoGACGgBAIAqAYAIaEEAQCaBgAhAgAAANwCACASAADoAgAgAgAAANwCACASAADoAgAgAwAAANkCACAZAADhAgAgGgAA5gIAIAEAAADZAgAgAQAAANwCACAUCgAA-gYAIB8AAPsGACAgAAD-BgAgIQAA_QYAICIAAPwGACDHAwAAlAYAIMgDAACUBgAgkgQAAJQGACCTBAAAlAYAIJQEAACUBgAglwQAAJQGACCZBAAAlAYAIJoEAACUBgAgmwQAAJQGACCcBAAAlAYAIJ0EAACUBgAgngQAAJQGACCfBAAAlAYAIKAEAACUBgAgoQQAAJQGACAXuQMAAOEFADC6AwAA7wIAELsDAADhBQAwxgMBAKUFACHHAwEApwUAIcgDAQCnBQAhkQQBAKUFACGSBAEApwUAIZMEAQCnBQAhlAQBAKcFACGVBAEApQUAIZYECADiBQAhlwQBAKcFACGYBAEApQUAIZkEAQCnBQAhmgQBAKcFACGbBAEApwUAIZwEAQCnBQAhnQQBAKcFACGeBAEApwUAIZ8EAQCnBQAhoAQCALkFACGhBAEApwUAIQMAAADcAgAgAQAA7gIAMB4AAO8CACADAAAA3AIAIAEAAN0CADACAADZAgAgDbkDAADgBQAwugMAAPUCABC7AwAA4AUAMNcDAQCxBQAh2AMBALEFACH5AwEAAAABigQBALEFACGLBAEAsQUAIYwEAQCxBQAhjQQBALEFACGOBAEAsQUAIY8EAQCxBQAhkAQBALEFACEBAAAA8gIAIAEAAADyAgAgDbkDAADgBQAwugMAAPUCABC7AwAA4AUAMNcDAQCxBQAh2AMBALEFACH5AwEAsQUAIYoEAQCxBQAhiwQBALEFACGMBAEAsQUAIY0EAQCxBQAhjgQBALEFACGPBAEAsQUAIZAEAQCxBQAhAAMAAAD1AgAgAQAA9gIAMAIAAPICACADAAAA9QIAIAEAAPYCADACAADyAgAgAwAAAPUCACABAAD2AgAwAgAA8gIAIArXAwEAAAAB2AMBAAAAAfkDAQAAAAGKBAEAAAABiwQBAAAAAYwEAQAAAAGNBAEAAAABjgQBAAAAAY8EAQAAAAGQBAEAAAABARIAAPoCACAK1wMBAAAAAdgDAQAAAAH5AwEAAAABigQBAAAAAYsEAQAAAAGMBAEAAAABjQQBAAAAAY4EAQAAAAGPBAEAAAABkAQBAAAAAQESAAD8AgAwARIAAPwCADAK1wMBAJgGACHYAwEAmAYAIfkDAQCYBgAhigQBAJgGACGLBAEAmAYAIYwEAQCYBgAhjQQBAJgGACGOBAEAmAYAIY8EAQCYBgAhkAQBAJgGACECAAAA8gIAIBIAAP8CACAK1wMBAJgGACHYAwEAmAYAIfkDAQCYBgAhigQBAJgGACGLBAEAmAYAIYwEAQCYBgAhjQQBAJgGACGOBAEAmAYAIY8EAQCYBgAhkAQBAJgGACECAAAA9QIAIBIAAIEDACACAAAA9QIAIBIAAIEDACADAAAA8gIAIBkAAPoCACAaAAD_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_gMBALEFACH_AwAA1AUAIAEAAADWAwAgAQAAANYDACAIuQMAANMFADC6AwAA2QMAELsDAADTBQAwxgMBALEFACHIAwEAsQUAIdgDAQCxBQAh-QMBALEFACH-AwEAsQUAIQADAAAA2QMAIAEAANoDADACAADWAwAgAwAAANkDACABAADaAwAwAgAA1gMAIAMAAADZAwAgAQAA2gMAMAIAANYDACAFxgMBAAAAAcgDAQAAAAHYAwEAAAAB-QMBAAAAAf4DAQAAAAEBEgAA3gMAIAXGAwEAAAAByAMBAAAAAdgDAQAAAAH5AwEAAAAB_gMBAAAAAQESAADgAwAwARIAAOADADAFxgMBAJgGACHIAwEAmAYAIdgDAQCYBgAh-QMBAJgGACH-AwEAmAYAIQIAAADWAwAgEgAA4wMAIAXGAwEAmAYAIcgDAQCYBgAh2AMBAJgGACH5AwEAmAYAIf4DAQCYBgAhAgAAANkDACASAADlAwAgAgAAANkDACASAADlAwAgAwAAANYDACAZAADeAwAgGgAA4wMAIAEAAADWAwAgAQAAANkDACADCgAA5gYAICEAAOgGACAiAADnBgAgCLkDAADSBQAwugMAAOwDABC7AwAA0gUAMMYDAQClBQAhyAMBAKUFACHYAwEApQUAIfkDAQClBQAh_gMBAKUFACEDAAAA2QMAIAEAAOsDADAeAADsAwAgAwAAANkDACABAADaAwAwAgAA1gMAIAq5AwAA0QUAMLoDAADyAwAQuwMAANEFADDsAwEAswUAIfgDAQAAAAH5AwEAsQUAIfoDAQCxBQAh-wMBALMFACH8AwEAsQUAIf0DAQCxBQAhAQAAAO8DACABAAAA7wMAIAq5AwAA0QUAMLoDAADyAwAQuwMAANEFADDsAwEAswUAIfgDAQCxBQAh-QMBALEFACH6AwEAsQUAIfsDAQCzBQAh_AMBALEFACH9AwEAsQUAIQLsAwAAlAYAIPsDAACUBgAgAwAAAPIDACABAADzAwAwAgAA7wMAIAMAAADyAwAgAQAA8wMAMAIAAO8DACADAAAA8gMAIAEAAPMDADACAADvAwAgB-wDAQAAAAH4AwEAAAAB-QMBAAAAAfoDAQAAAAH7AwEAAAAB_AMBAAAAAf0DAQAAAAEBEgAA9wMAIAfsAwEAAAAB-AMBAAAAAfkDAQAAAAH6AwEAAAAB-wMBAAAAAfwDAQAAAAH9AwEAAAABARIAAPkDADABEgAA-QMAMAfsAwEAmgYAIfgDAQCYBgAh-QMBAJgGACH6AwEAmAYAIfsDAQCaBgAh_AMBAJgGACH9AwEAmAYAIQIAAADvAwAgEgAA_AMAIAfsAwEAmgYAIfgDAQCYBgAh-QMBAJgGACH6AwEAmAYAIfsDAQCaBgAh_AMBAJgGACH9AwEAmAYAIQIAAADyAwAgEgAA_gMAIAIAAADyAwAgEgAA_gMAIAMAAADvAwAgGQAA9wMAIBoAAPwDACABAAAA7wMAIAEAAADyAwAgBQoAAOMGACAhAADlBgAgIgAA5AYAIOwDAACUBgAg-wMAAJQGACAKuQMAANAFADC6AwAAhQQAELsDAADQBQAw7AMBAKcFACH4AwEApQUAIfkDAQClBQAh-gMBAKUFACH7AwEApwUAIfwDAQClBQAh_QMBAKUFACEDAAAA8gMAIAEAAIQEADAeAACFBAAgAwAAAPIDACABAADzAwAwAgAA7wMAIA_WAgAAxgUAINcCAADHBQAg2AIAAMgFACC5AwAAxAUAMLoDAACaBAAQuwMAAMQFADC8AwEAAAAB1wNAALIFACHYA0AAsgUAIe4DAQCzBQAh7wMBAAAAAfADIADFBQAh8QMBALMFACHyAwEAswUAIfMDAQCxBQAhAQAAAIgEACAV1QIAAMsFACC5AwAAzgUAMLoDAACKBAAQuwMAAM4FADC8AwEAsQUAIdcDQACyBQAh2ANAALIFACHbAwEAsQUAId4DAQCxBQAh3wMBALEFACHgAwEAsQUAIeEDAQCzBQAh4gMBALMFACHjAwEAswUAIeQDAgDPBQAh5QNAAMoFACHmA0AAygUAIecDAQCzBQAh6AMBALMFACHpAwEAswUAIeoDAQCzBQAhC9UCAADiBgAg4QMAAJQGACDiAwAAlAYAIOMDAACUBgAg5AMAAJQGACDlAwAAlAYAIOYDAACUBgAg5wMAAJQGACDoAwAAlAYAIOkDAACUBgAg6gMAAJQGACAW1QIAAMsFACC5AwAAzgUAMLoDAACKBAAQuwMAAM4FADC8AwEAAAAB1wNAALIFACHYA0AAsgUAIdsDAQCxBQAh3gMBALEFACHfAwEAsQUAIeADAQCxBQAh4QMBALMFACHiAwEAswUAIeMDAQCzBQAh5AMCAM8FACHlA0AAygUAIeYDQADKBQAh5wMBALMFACHoAwEAswUAIekDAQCzBQAh6gMBALMFACH3AwAAzQUAIAMAAACKBAAgAQAAiwQAMAIAAIwEACAM1QIAAMsFACC5AwAAzAUAMLoDAACOBAAQuwMAAMwFADC8AwEAsQUAIdYDQACyBQAh1wNAALIFACHYA0AAsgUAIdoDAQCxBQAh2wMBALEFACHcAwEAswUAId0DAQCzBQAhA9UCAADiBgAg3AMAAJQGACDdAwAAlAYAIAzVAgAAywUAILkDAADMBQAwugMAAI4EABC7AwAAzAUAMLwDAQAAAAHWA0AAsgUAIdcDQACyBQAh2ANAALIFACHaAwEAAAAB2wMBALEFACHcAwEAswUAId0DAQCzBQAhAwAAAI4EACABAACPBAAwAgAAkAQAIArVAgAAywUAILkDAADJBQAwugMAAJIEABC7AwAAyQUAMLwDAQCxBQAh1wNAALIFACHbAwEAsQUAIesDAQCxBQAh7ANAALIFACHtA0AAygUAIQLVAgAA4gYAIO0DAACUBgAgCtUCAADLBQAguQMAAMkFADC6AwAAkgQAELsDAADJBQAwvAMBAAAAAdcDQACyBQAh2wMBALEFACHrAwEAAAAB7ANAALIFACHtA0AAygUAIQMAAACSBAAgAQAAkwQAMAIAAJQEACABAAAAigQAIAEAAACOBAAgAQAAAJIEACABAAAAiAQAIA_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_AQAMAESAAD8BAAwBrwDAQCYBgAh1AMBAJgGACHVAwEAmAYAIdYDQACZBgAh1wNAAJkGACHYA0AAmQYAIQIAAADyBAAgEgAA_wQAIAa8AwEAmAYAIdQDAQCYBgAh1QMBAJgGACHWA0AAmQYAIdcDQACZBgAh2ANAAJkGACECAAAA9QQAIBIAAIEFACACAAAA9QQAIBIAAIEFACADAAAA8gQAIBkAAPoEACAaAAD_BAAgAQAAAPIEACABAAAA9QQAIAMKAACbBgAgIQAAnQYAICIAAJwGACAJuQMAALQFADC6AwAAiAUAELsDAAC0BQAwvAMBAKUFACHUAwEApQUAIdUDAQClBQAh1gNAAKYFACHXA0AApgUAIdgDQACmBQAhAwAAAPUEACABAACHBQAwHgAAiAUAIAMAAAD1BAAgAQAA9gQAMAIAAPIEACAQuQMAALAFADC6AwAAjgUAELsDAACwBQAwvAMBAAAAAb0DQACyBQAhvgMBALEFACG_AwEAswUAIcADAQCxBQAhwQMBALEFACHCAwEAsQUAIcMDAQCxBQAhxAMBALMFACHFAwEAswUAIcYDAQCxBQAhxwMBALMFACHIAwEAswUAIQEAAACLBQAgAQAAAIsFACAQuQMAALAFADC6AwAAjgUAELsDAACwBQAwvAMBALEFACG9A0AAsgUAIb4DAQCxBQAhvwMBALMFACHAAwEAsQUAIcEDAQCxBQAhwgMBALEFACHDAwEAsQUAIcQDAQCzBQAhxQMBALMFACHGAwEAsQUAIccDAQCzBQAhyAMBALMFACEFvwMAAJQGACDEAwAAlAYAIMUDAACUBgAgxwMAAJQGACDIAwAAlAYAIAMAAACOBQAgAQAAjwUAMAIAAIsFACADAAAAjgUAIAEAAI8FADACAACLBQAgAwAAAI4FACABAACPBQAwAgAAiwUAIA28AwEAAAABvQNAAAAAAb4DAQAAAAG_AwEAAAABwAMBAAAAAcEDAQAAAAHCAwEAAAABwwMBAAAAAcQDAQAAAAHFAwEAAAABxgMBAAAAAccDAQAAAAHIAwEAAAABARIAAJMFACANvAMBAAAAAb0DQAAAAAG-AwEAAAABvwMBAAAAAcADAQAAAAHBAwEAAAABwgMBAAAAAcMDAQAAAAHEAwEAAAABxQMBAAAAAcYDAQAAAAHHAwEAAAAByAMBAAAAAQESAACVBQAwARIAAJUFADANvAMBAJgGACG9A0AAmQYAIb4DAQCYBgAhvwMBAJoGACHAAwEAmAYAIcEDAQCYBgAhwgMBAJgGACHDAwEAmAYAIcQDAQCaBgAhxQMBAJoGACHGAwEAmAYAIccDAQCaBgAhyAMBAJoGACECAAAAiwUAIBIAAJgFACANvAMBAJgGACG9A0AAmQYAIb4DAQCYBgAhvwMBAJoGACHAAwEAmAYAIcEDAQCYBgAhwgMBAJgGACHDAwEAmAYAIcQDAQCaBgAhxQMBAJoGACHGAwEAmAYAIccDAQCaBgAhyAMBAJoGACECAAAAjgUAIBIAAJoFACACAAAAjgUAIBIAAJoFACADAAAAiwUAIBkAAJMFACAaAACYBQAgAQAAAIsFACABAAAAjgUAIAgKAACVBgAgIQAAlwYAICIAAJYGACC_AwAAlAYAIMQDAACUBgAgxQMAAJQGACDHAwAAlAYAIMgDAACUBgAgELkDAACkBQAwugMAAKEFABC7AwAApAUAMLwDAQClBQAhvQNAAKYFACG-AwEApQUAIb8DAQCnBQAhwAMBAKUFACHBAwEApQUAIcIDAQClBQAhwwMBAKUFACHEAwEApwUAIcUDAQCnBQAhxgMBAKUFACHHAwEApwUAIcgDAQCnBQAhAwAAAI4FACABAACgBQAwHgAAoQUAIAMAAACOBQAgAQAAjwUAMAIAAIsFACAQuQMAAKQFADC6AwAAoQUAELsDAACkBQAwvAMBAKUFACG9A0AApgUAIb4DAQClBQAhvwMBAKcFACHAAwEApQUAIcEDAQClBQAhwgMBAKUFACHDAwEApQUAIcQDAQCnBQAhxQMBAKcFACHGAwEApQUAIccDAQCnBQAhyAMBAKcFACEOCgAArAUAICEAAK8FACAiAACvBQAgyQMBAAAAAcoDAQAAAATLAwEAAAAEzAMBAAAAAc0DAQAAAAHOAwEAAAABzwMBAAAAAdADAQAAAAHRAwEAAAAB0gMBAAAAAdMDAQCuBQAhCwoAAKwFACAhAACtBQAgIgAArQUAIMkDQAAAAAHKA0AAAAAEywNAAAAABMwDQAAAAAHNA0AAAAABzgNAAAAAAc8DQAAAAAHTA0AAqwUAIQ4KAACpBQAgIQAAqgUAICIAAKoFACDJAwEAAAABygMBAAAABcsDAQAAAAXMAwEAAAABzQMBAAAAAc4DAQAAAAHPAwEAAAAB0AMBAAAAAdEDAQAAAAHSAwEAAAAB0wMBAKgFACEOCgAAqQUAICEAAKoFACAiAACqBQAgyQMBAAAAAcoDAQAAAAXLAwEAAAAFzAMBAAAAAc0DAQAAAAHOAwEAAAABzwMBAAAAAdADAQAAAAHRAwEAAAAB0gMBAAAAAdMDAQCoBQAhCMkDAgAAAAHKAwIAAAAFywMCAAAABcwDAgAAAAHNAwIAAAABzgMCAAAAAc8DAgAAAAHTAwIAqQUAIQvJAwEAAAABygMBAAAABcsDAQAAAAXMAwEAAAABzQMBAAAAAc4DAQAAAAHPAwEAAAAB0AMBAAAAAdEDAQAAAAHSAwEAAAAB0wMBAKoFACELCgAArAUAICEAAK0FACAiAACtBQAgyQNAAAAAAcoDQAAAAATLA0AAAAAEzANAAAAAAc0DQAAAAAHOA0AAAAABzwNAAAAAAdMDQACrBQAhCMkDAgAAAAHKAwIAAAAEywMCAAAABMwDAgAAAAHNAwIAAAABzgMCAAAAAc8DAgAAAAHTAwIArAUAIQjJA0AAAAABygNAAAAABMsDQAAAAATMA0AAAAABzQNAAAAAAc4DQAAAAAHPA0AAAAAB0wNAAK0FACEOCgAArAUAICEAAK8FACAiAACvBQAgyQMBAAAAAcoDAQAAAATLAwEAAAAEzAMBAAAAAc0DAQAAAAHOAwEAAAABzwMBAAAAAdADAQAAAAHRAwEAAAAB0gMBAAAAAdMDAQCuBQAhC8kDAQAAAAHKAwEAAAAEywMBAAAABMwDAQAAAAHNAwEAAAABzgMBAAAAAc8DAQAAAAHQAwEAAAAB0QMBAAAAAdIDAQAAAAHTAwEArwUAIRC5AwAAsAUAMLoDAACOBQAQuwMAALAFADC8AwEAsQUAIb0DQACyBQAhvgMBALEFACG_AwEAswUAIcADAQCxBQAhwQMBALEFACHCAwEAsQUAIcMDAQCxBQAhxAMBALMFACHFAwEAswUAIcYDAQCxBQAhxwMBALMFACHIAwEAswUAIQvJAwEAAAABygMBAAAABMsDAQAAAATMAwEAAAABzQMBAAAAAc4DAQAAAAHPAwEAAAAB0AMBAAAAAdEDAQAAAAHSAwEAAAAB0wMBAK8FACEIyQNAAAAAAcoDQAAAAATLA0AAAAAEzANAAAAAAc0DQAAAAAHOA0AAAAABzwNAAAAAAdMDQACtBQAhC8kDAQAAAAHKAwEAAAAFywMBAAAABcwDAQAAAAHNAwEAAAABzgMBAAAAAc8DAQAAAAHQAwEAAAAB0QMBAAAAAdIDAQAAAAHTAwEAqgUAIQm5AwAAtAUAMLoDAACIBQAQuwMAALQFADC8AwEApQUAIdQDAQClBQAh1QMBAKUFACHWA0AApgUAIdcDQACmBQAh2ANAAKYFACEJuQMAALUFADC6AwAA9QQAELsDAAC1BQAwvAMBALEFACHUAwEAsQUAIdUDAQCxBQAh1gNAALIFACHXA0AAsgUAIdgDQACyBQAhAtQDAQAAAAHVAwEAAAABC7kDAAC3BQAwugMAAO8EABC7AwAAtwUAMLwDAQClBQAh1gNAAKYFACHXA0AApgUAIdgDQACmBQAh2gMBAKUFACHbAwEApQUAIdwDAQCnBQAh3QMBAKcFACEUuQMAALgFADC6AwAA2QQAELsDAAC4BQAwvAMBAKUFACHXA0AApgUAIdgDQACmBQAh2wMBAKUFACHeAwEApQUAId8DAQClBQAh4AMBAKUFACHhAwEApwUAIeIDAQCnBQAh4wMBAKcFACHkAwIAuQUAIeUDQAC6BQAh5gNAALoFACHnAwEApwUAIegDAQCnBQAh6QMBAKcFACHqAwEApwUAIQ0KAACpBQAgHwAAvgUAICAAAKkFACAhAACpBQAgIgAAqQUAIMkDAgAAAAHKAwIAAAAFywMCAAAABcwDAgAAAAHNAwIAAAABzgMCAAAAAc8DAgAAAAHTAwIAvQUAIQsKAACpBQAgIQAAvAUAICIAALwFACDJA0AAAAABygNAAAAABcsDQAAAAAXMA0AAAAABzQNAAAAAAc4DQAAAAAHPA0AAAAAB0wNAALsFACELCgAAqQUAICEAALwFACAiAAC8BQAgyQNAAAAAAcoDQAAAAAXLA0AAAAAFzANAAAAAAc0DQAAAAAHOA0AAAAABzwNAAAAAAdMDQAC7BQAhCMkDQAAAAAHKA0AAAAAFywNAAAAABcwDQAAAAAHNA0AAAAABzgNAAAAAAc8DQAAAAAHTA0AAvAUAIQ0KAACpBQAgHwAAvgUAICAAAKkFACAhAACpBQAgIgAAqQUAIMkDAgAAAAHKAwIAAAAFywMCAAAABcwDAgAAAAHNAwIAAAABzgMCAAAAAc8DAgAAAAHTAwIAvQUAIQjJAwgAAAABygMIAAAABcsDCAAAAAXMAwgAAAABzQMIAAAAAc4DCAAAAAHPAwgAAAAB0wMIAL4FACEJuQMAAL8FADC6AwAAwwQAELsDAAC_BQAwvAMBAKUFACHXA0AApgUAIdsDAQClBQAh6wMBAKUFACHsA0AApgUAIe0DQAC6BQAhDLkDAADABQAwugMAAK0EABC7AwAAwAUAMLwDAQClBQAh1wNAAKYFACHYA0AApgUAIe4DAQCnBQAh7wMBAKcFACHwAyAAwQUAIfEDAQCnBQAh8gMBAKcFACHzAwEApQUAIQUKAACsBQAgIQAAwwUAICIAAMMFACDJAyAAAAAB0wMgAMIFACEFCgAArAUAICEAAMMFACAiAADDBQAgyQMgAAAAAdMDIADCBQAhAskDIAAAAAHTAyAAwwUAIQ_WAgAAxgUAINcCAADHBQAg2AIAAMgFACC5AwAAxAUAMLoDAACaBAAQuwMAAMQFADC8AwEAsQUAIdcDQACyBQAh2ANAALIFACHuAwEAswUAIe8DAQCzBQAh8AMgAMUFACHxAwEAswUAIfIDAQCzBQAh8wMBALEFACECyQMgAAAAAdMDIADDBQAhA_QDAACKBAAg9QMAAIoEACD2AwAAigQAIAP0AwAAjgQAIPUDAACOBAAg9gMAAI4EACAD9AMAAJIEACD1AwAAkgQAIPYDAACSBAAgCtUCAADLBQAguQMAAMkFADC6AwAAkgQAELsDAADJBQAwvAMBALEFACHXA0AAsgUAIdsDAQCxBQAh6wMBALEFACHsA0AAsgUAIe0DQADKBQAhCMkDQAAAAAHKA0AAAAAFywNAAAAABcwDQAAAAAHNA0AAAAABzgNAAAAAAc8DQAAAAAHTA0AAvAUAIRHWAgAAxgUAINcCAADHBQAg2AIAAMgFACC5AwAAxAUAMLoDAACaBAAQuwMAAMQFADC8AwEAsQUAIdcDQACyBQAh2ANAALIFACHuAwEAswUAIe8DAQCzBQAh8AMgAMUFACHxAwEAswUAIfIDAQCzBQAh8wMBALEFACGHBQAAmgQAIIgFAACaBAAgDNUCAADLBQAguQMAAMwFADC6AwAAjgQAELsDAADMBQAwvAMBALEFACHWA0AAsgUAIdcDQACyBQAh2ANAALIFACHaAwEAsQUAIdsDAQCxBQAh3AMBALMFACHdAwEAswUAIQLfAwEAAAAB4AMBAAAAARXVAgAAywUAILkDAADOBQAwugMAAIoEABC7AwAAzgUAMLwDAQCxBQAh1wNAALIFACHYA0AAsgUAIdsDAQCxBQAh3gMBALEFACHfAwEAsQUAIeADAQCxBQAh4QMBALMFACHiAwEAswUAIeMDAQCzBQAh5AMCAM8FACHlA0AAygUAIeYDQADKBQAh5wMBALMFACHoAwEAswUAIekDAQCzBQAh6gMBALMFACEIyQMCAAAAAcoDAgAAAAXLAwIAAAAFzAMCAAAAAc0DAgAAAAHOAwIAAAABzwMCAAAAAdMDAgCpBQAhCrkDAADQBQAwugMAAIUEABC7AwAA0AUAMOwDAQCnBQAh-AMBAKUFACH5AwEApQUAIfoDAQClBQAh-wMBAKcFACH8AwEApQUAIf0DAQClBQAhCrkDAADRBQAwugMAAPIDABC7AwAA0QUAMOwDAQCzBQAh-AMBALEFACH5AwEAsQUAIfoDAQCxBQAh-wMBALMFACH8AwEAsQUAIf0DAQCxBQAhCLkDAADSBQAwugMAAOwDABC7AwAA0gUAMMYDAQClBQAhyAMBAKUFACHYAwEApQUAIfkDAQClBQAh_gMBAKUFACEIuQMAANMFADC6AwAA2QMAELsDAADTBQAwxgMBALEFACHIAwEAsQUAIdgDAQCxBQAh-QMBALEFACH-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_AUAMLwDAQClBQAhxgMBAKUFACHHAwEApQUAIcgDAQClBQAh1wMBAKUFACHuAwEApQUAIfsDAQCnBQAh_AMBAKcFACGfBAEApwUAIaAEAgC5BQAhvgQBAKUFACG_BAgA4gUAIcAECAD9BQAhwQQgAMEFACHCBAEApwUAIcMEAQCnBQAhDQoAAKkFACAfAAC-BQAgIAAAvgUAICEAAL4FACAiAAC-BQAgyQMIAAAAAcoDCAAAAAXLAwgAAAAFzAMIAAAAAc0DCAAAAAHOAwgAAAABzwMIAAAAAdMDCAD-BQAhDQoAAKkFACAfAAC-BQAgIAAAvgUAICEAAL4FACAiAAC-BQAgyQMIAAAAAcoDCAAAAAXLAwgAAAAFzAMIAAAAAc0DCAAAAAHOAwgAAAABzwMIAAAAAdMDCAD-BQAhEbkDAAD_BQAwugMAAJIBABC7AwAA_wUAMLwDAQClBQAhxgMBAKUFACHYAwEApQUAIfoDAQClBQAhxAQBAKUFACHFBAEApwUAIcYEAgDYBQAhxwQBAKUFACHIBAEApwUAIckEAgDYBQAhygQCANgFACHLBAIA2AUAIcwEAQCnBQAhzQQBAKcFACETBwAA7wUAIAkAAIEGACC5AwAAgAYAMLoDAAANABC7AwAAgAYAMLwDAQCxBQAhxgMBALEFACHYAwEAsQUAIfoDAQCxBQAhxAQBALEFACHFBAEAswUAIcYEAgDcBQAhxwQBALEFACHIBAEAswUAIckEAgDcBQAhygQCANwFACHLBAIA3AUAIcwEAQCzBQAhzQQBALMFACED9AMAABIAIPUDAAASACD2AwAAEgAgCLkDAACCBgAwugMAAHoAELsDAACCBgAwxgMBAKUFACHHAwEApQUAIdgDAQClBQAhzgQCANgFACHPBAEApQUAIQkDAACEBgAguQMAAIMGADC6AwAACwAQuwMAAIMGADDGAwEAsQUAIccDAQCxBQAh2AMBALEFACHOBAIA3AUAIc8EAQCxBQAhHwQAAIwGACAFAACNBgAgBgAAjgYAIAgAAI8GACALAACBBgAgDAAAkAYAILkDAACLBgAwugMAAA8AELsDAACLBgAwxgMBALEFACHHAwEAsQUAIdgDAQCxBQAh-gMBALEFACG-BAEAswUAIccEAQCxBQAhyAQBALMFACHOBAIA3AUAIfoEAQCzBQAh-wQBALMFACH8BAEAswUAIf0EAQCzBQAh_gQBALMFACH_BAEAswUAIYAFAQCzBQAhgQUBALMFACGCBQEAsQUAIYMFAgDPBQAhhAUBALMFACGFBQEAswUAIYcFAAAPACCIBQAADwAgLLkDAACFBgAwugMAAGIAELsDAACFBgAwxgMBAKUFACHHAwEApQUAIdgDAQClBQAh-QMBAKUFACH6AwEApQUAIZQEAQCnBQAhnwQBAKcFACGgBAIAuQUAIaEEAQCnBQAhowQBAKUFACHHBAEApwUAIcgEAQCnBQAh0AQBAKUFACHRBAEApQUAIdIEAQCnBQAh0wQBAKUFACHUBAIA2AUAIdUEAQCnBQAh1gQBAKcFACHXBAEApwUAIdgEAQCnBQAh2QQCANgFACHaBAEApwUAIdsEAQCnBQAh3AQBAKcFACHdBAEApwUAId4EAgC5BQAh3wQCALkFACHgBAIAuQUAIeEEAQCnBQAh4gQBAKcFACHjBAIAuQUAIeQEAgC5BQAh5QQBAKcFACHmBAEApwUAIecEAQCnBQAh6AQBAKcFACHpBCAA5wUAIeoEIADnBQAh6wQgAOcFACHsBAEApwUAIRa5AwAAhgYAMLoDAABMABC7AwAAhgYAMMYDAQClBQAhxwMBAKUFACH6AwEApQUAIdMEAQClBQAh1QQBAKcFACHcBAEApwUAIe0EAQClBQAh7gQBAKUFACHvBAEApwUAIfAEAQCnBQAh8QQBAKcFACHyBAEApwUAIfMEAQClBQAh9AQBAKUFACH1BAEApwUAIfYEAQCnBQAh9wQBAKcFACH4BAIA2AUAIfkEAQClBQAhF7kDAACHBgAwugMAADYAELsDAACHBgAwxgMBAKUFACHHAwEApQUAIdgDAQClBQAh-gMBAKUFACG-BAEApwUAIccEAQClBQAhyAQBAKcFACHOBAIA2AUAIfoEAQCnBQAh-wQBAKcFACH8BAEApwUAIf0EAQCnBQAh_gQBAKcFACH_BAEApwUAIYAFAQCnBQAhgQUBAKcFACGCBQEApQUAIYMFAgC5BQAhhAUBAKcFACGFBQEApwUAIRUDAACEBgAgCAAAigYAILkDAACIBgAwugMAABIAELsDAACIBgAwvAMBALEFACHGAwEAsQUAIccDAQCxBQAhyAMBALEFACHXAwEAsQUAIe4DAQCxBQAh-wMBALMFACH8AwEAswUAIZ8EAQCzBQAhoAQCAM8FACG-BAEAsQUAIb8ECADlBQAhwAQIAIkGACHBBCAAxQUAIcIEAQCzBQAhwwQBALMFACEIyQMIAAAAAcoDCAAAAAXLAwgAAAAFzAMIAAAAAc0DCAAAAAHOAwgAAAABzwMIAAAAAdMDCAC-BQAhFQcAAO8FACAJAACBBgAguQMAAIAGADC6AwAADQAQuwMAAIAGADC8AwEAsQUAIcYDAQCxBQAh2AMBALEFACH6AwEAsQUAIcQEAQCxBQAhxQQBALMFACHGBAIA3AUAIccEAQCxBQAhyAQBALMFACHJBAIA3AUAIcoEAgDcBQAhywQCANwFACHMBAEAswUAIc0EAQCzBQAhhwUAAA0AIIgFAAANACAdBAAAjAYAIAUAAI0GACAGAACOBgAgCAAAjwYAIAsAAIEGACAMAACQBgAguQMAAIsGADC6AwAADwAQuwMAAIsGADDGAwEAsQUAIccDAQCxBQAh2AMBALEFACH6AwEAsQUAIb4EAQCzBQAhxwQBALEFACHIBAEAswUAIc4EAgDcBQAh-gQBALMFACH7BAEAswUAIfwEAQCzBQAh_QQBALMFACH-BAEAswUAIf8EAQCzBQAhgAUBALMFACGBBQEAswUAIYIFAQCxBQAhgwUCAM8FACGEBQEAswUAIYUFAQCzBQAhA_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_BgAwvAMBALEFACHXA0AAsgUAIdsDAQCxBQAh6wMBALEFACHsA0AAsgUAIe0DQADKBQAhCbkDAAC_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_AQBAAAAAf0EAQAAAAH_BAEAAAABgAUBAAAAAYEFAQAAAAGCBQEAAAABgwUCAAAAAYQFAQAAAAGFBQEAAAABAgAAAAEAIBkAAMYHACADAAAAAQAgGQAAxgcAIBoAAJQHACABEgAAzAgAMB0EAACMBgAgBQAAjQYAIAYAAI4GACAIAACPBgAgCwAAgQYAIAwAAJAGACC5AwAAiwYAMLoDAAAPABC7AwAAiwYAMMYDAQCxBQAhxwMBAAAAAdgDAQCxBQAh-gMBALEFACG-BAEAswUAIccEAQCxBQAhyAQBALMFACHOBAIA3AUAIfoEAQCzBQAh-wQBALMFACH8BAEAswUAIf0EAQCzBQAh_gQBALMFACH_BAEAswUAIYAFAQCzBQAhgQUBALMFACGCBQEAsQUAIYMFAgDPBQAhhAUBALMFACGFBQEAswUAIQIAAAABACASAACUBwAgAgAAAJIHACASAACTBwAgF7kDAACRBwAwugMAAJIHABC7AwAAkQcAMMYDAQCxBQAhxwMBALEFACHYAwEAsQUAIfoDAQCxBQAhvgQBALMFACHHBAEAsQUAIcgEAQCzBQAhzgQCANwFACH6BAEAswUAIfsEAQCzBQAh_AQBALMFACH9BAEAswUAIf4EAQCzBQAh_wQBALMFACGABQEAswUAIYEFAQCzBQAhggUBALEFACGDBQIAzwUAIYQFAQCzBQAhhQUBALMFACEXuQMAAJEHADC6AwAAkgcAELsDAACRBwAwxgMBALEFACHHAwEAsQUAIdgDAQCxBQAh-gMBALEFACG-BAEAswUAIccEAQCxBQAhyAQBALMFACHOBAIA3AUAIfoEAQCzBQAh-wQBALMFACH8BAEAswUAIf0EAQCzBQAh_gQBALMFACH_BAEAswUAIYAFAQCzBQAhgQUBALMFACGCBQEAsQUAIYMFAgDPBQAhhAUBALMFACGFBQEAswUAIRPGAwEAmAYAIccDAQCYBgAh2AMBAJgGACH6AwEAmAYAIb4EAQCaBgAhxwQBAJgGACHIBAEAmgYAIc4EAgDxBgAh-gQBAJoGACH7BAEAmgYAIfwEAQCaBgAh_QQBAJoGACH_BAEAmgYAIYAFAQCaBgAhgQUBAJoGACGCBQEAmAYAIYMFAgCoBgAhhAUBAJoGACGFBQEAmgYAIRgEAACVBwAgBQAAlgcAIAYAAJcHACAIAACYBwAgCwAAmQcAIMYDAQCYBgAhxwMBAJgGACHYAwEAmAYAIfoDAQCYBgAhvgQBAJoGACHHBAEAmAYAIcgEAQCaBgAhzgQCAPEGACH6BAEAmgYAIfsEAQCaBgAh_AQBAJoGACH9BAEAmgYAIf8EAQCaBgAhgAUBAJoGACGBBQEAmgYAIYIFAQCYBgAhgwUCAKgGACGEBQEAmgYAIYUFAQCaBgAhCxkAALoHADAaAAC_BwAwiQUAALsHADCKBQAAvAcAMIsFAAC9BwAgjAUAAL4HADCNBQAAvgcAMI4FAAC-BwAwjwUAAL4HADCQBQAAwAcAMJEFAADBBwAwCxkAAK4HADAaAACzBwAwiQUAAK8HADCKBQAAsAcAMIsFAACxBwAgjAUAALIHADCNBQAAsgcAMI4FAACyBwAwjwUAALIHADCQBQAAtAcAMJEFAAC1BwAwBxkAAKkHACAaAACsBwAgiQUAAKoHACCKBQAAqwcAII0FAAALACCOBQAACwAgjwUAAGUAIAcZAAC_CAAgGgAAyggAIIkFAADACAAgigUAAMkIACCNBQAADQAgjgUAAA0AII8FAAB9ACALGQAAmgcAMBoAAJ8HADCJBQAAmwcAMIoFAACcBwAwiwUAAJ0HACCMBQAAngcAMI0FAACeBwAwjgUAAJ4HADCPBQAAngcAMJAFAACgBwAwkQUAAKEHADAQCAAAqAcAILwDAQAAAAHGAwEAAAAByAMBAAAAAdcDAQAAAAHuAwEAAAAB-wMBAAAAAfwDAQAAAAGfBAEAAAABoAQCAAAAAb4EAQAAAAG_BAgAAAABwAQIAAAAAcEEIAAAAAHCBAEAAAABwwQBAAAAAQIAAAAUACAZAACnBwAgAwAAABQAIBkAAKcHACAaAAClBwAgARIAAMgIADAVAwAAhAYAIAgAAIoGACC5AwAAiAYAMLoDAAASABC7AwAAiAYAMLwDAQAAAAHGAwEAsQUAIccDAQCxBQAhyAMBALEFACHXAwEAsQUAIe4DAQCxBQAh-wMBALMFACH8AwEAswUAIZ8EAQCzBQAhoAQCAM8FACG-BAEAsQUAIb8ECADlBQAhwAQIAIkGACHBBCAAxQUAIcIEAQCzBQAhwwQBALMFACECAAAAFAAgEgAApQcAIAIAAACiBwAgEgAAowcAIBO5AwAAoQcAMLoDAACiBwAQuwMAAKEHADC8AwEAsQUAIcYDAQCxBQAhxwMBALEFACHIAwEAsQUAIdcDAQCxBQAh7gMBALEFACH7AwEAswUAIfwDAQCzBQAhnwQBALMFACGgBAIAzwUAIb4EAQCxBQAhvwQIAOUFACHABAgAiQYAIcEEIADFBQAhwgQBALMFACHDBAEAswUAIRO5AwAAoQcAMLoDAACiBwAQuwMAAKEHADC8AwEAsQUAIcYDAQCxBQAhxwMBALEFACHIAwEAsQUAIdcDAQCxBQAh7gMBALEFACH7AwEAswUAIfwDAQCzBQAhnwQBALMFACGgBAIAzwUAIb4EAQCxBQAhvwQIAOUFACHABAgAiQYAIcEEIADFBQAhwgQBALMFACHDBAEAswUAIQ-8AwEAmAYAIcYDAQCYBgAhyAMBAJgGACHXAwEAmAYAIe4DAQCYBgAh-wMBAJoGACH8AwEAmgYAIZ8EAQCaBgAhoAQCAKgGACG-BAEAmAYAIb8ECAD_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-QQBALEFACEWuQMAAMEHADC6AwAAwgcAELsDAADBBwAwxgMBALEFACHHAwEAsQUAIfoDAQCxBQAh0wQBALEFACHVBAEAswUAIdwEAQCzBQAh7QQBALEFACHuBAEAsQUAIe8EAQCzBQAh8AQBALMFACHxBAEAswUAIfIEAQCzBQAh8wQBALEFACH0BAEAsQUAIfUEAQCzBQAh9gQBALMFACH3BAEAswUAIfgEAgDcBQAh-QQBALEFACESxgMBAJgGACH6AwEAmAYAIdMEAQCYBgAh1QQBAJoGACHcBAEAmgYAIe0EAQCYBgAh7gQBAJgGACHvBAEAmgYAIfAEAQCaBgAh8QQBAJoGACHyBAEAmgYAIfMEAQCYBgAh9AQBAJgGACH1BAEAmgYAIfYEAQCaBgAh9wQBAJoGACH4BAIA8QYAIfkEAQCYBgAhEsYDAQCYBgAh-gMBAJgGACHTBAEAmAYAIdUEAQCaBgAh3AQBAJoGACHtBAEAmAYAIe4EAQCYBgAh7wQBAJoGACHwBAEAmgYAIfEEAQCaBgAh8gQBAJoGACHzBAEAmAYAIfQEAQCYBgAh9QQBAJoGACH2BAEAmgYAIfcEAQCaBgAh-AQCAPEGACH5BAEAmAYAIRLGAwEAAAAB-gMBAAAAAdMEAQAAAAHVBAEAAAAB3AQBAAAAAe0EAQAAAAHuBAEAAAAB7wQBAAAAAfAEAQAAAAHxBAEAAAAB8gQBAAAAAfMEAQAAAAH0BAEAAAAB9QQBAAAAAfYEAQAAAAH3BAEAAAAB-AQCAAAAAfkEAQAAAAEYBAAAxwcAIAUAAMgHACAGAADJBwAgCAAAygcAIAsAAMsHACDGAwEAAAABxwMBAAAAAdgDAQAAAAH6AwEAAAABvgQBAAAAAccEAQAAAAHIBAEAAAABzgQCAAAAAfoEAQAAAAH7BAEAAAAB_AQBAAAAAf0EAQAAAAH_BAEAAAABgAUBAAAAAYEFAQAAAAGCBQEAAAABgwUCAAAAAYQFAQAAAAGFBQEAAAABBBkAALoHADCJBQAAuwcAMIsFAAC9BwAgjwUAAL4HADAEGQAArgcAMIkFAACvBwAwiwUAALEHACCPBQAAsgcAMAMZAACpBwAgiQUAAKoHACCPBQAAZQAgAxkAAL8IACCJBQAAwAgAII8FAAB9ACAEGQAAmgcAMIkFAACbBwAwiwUAAJ0HACCPBQAAngcAMAQZAACKBwAwiQUAAIsHADCLBQAAjQcAII8FAACOBwAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFGQAAuggAIBoAAL0IACCJBQAAuwgAIIoFAAC8CAAgjwUAAAEAIAMZAAC6CAAgiQUAALsIACCPBQAAAQAgAAAAAAALGQAA9gcAMBoAAPoHADCJBQAA9wcAMIoFAAD4BwAwiwUAAPkHACCMBQAAjgcAMI0FAACOBwAwjgUAAI4HADCPBQAAjgcAMJAFAAD7BwAwkQUAAJEHADALGQAA7QcAMBoAAPEHADCJBQAA7gcAMIoFAADvBwAwiwUAAPAHACCMBQAAngcAMI0FAACeBwAwjgUAAJ4HADCPBQAAngcAMJAFAADyBwAwkQUAAKEHADAQAwAA5QcAILwDAQAAAAHGAwEAAAABxwMBAAAAAcgDAQAAAAHXAwEAAAAB7gMBAAAAAfsDAQAAAAH8AwEAAAABnwQBAAAAAaAEAgAAAAG_BAgAAAABwAQIAAAAAcEEIAAAAAHCBAEAAAABwwQBAAAAAQIAAAAUACAZAAD1BwAgAwAAABQAIBkAAPUHACAaAAD0BwAgARIAALkIADACAAAAFAAgEgAA9AcAIAIAAACiBwAgEgAA8wcAIA-8AwEAmAYAIcYDAQCYBgAhxwMBAJgGACHIAwEAmAYAIdcDAQCYBgAh7gMBAJgGACH7AwEAmgYAIfwDAQCaBgAhnwQBAJoGACGgBAIAqAYAIb8ECAD_BgAhwAQIAKQHACHBBCAAtAYAIcIEAQCaBgAhwwQBAJoGACEQAwAA5AcAILwDAQCYBgAhxgMBAJgGACHHAwEAmAYAIcgDAQCYBgAh1wMBAJgGACHuAwEAmAYAIfsDAQCaBgAh_AMBAJoGACGfBAEAmgYAIaAEAgCoBgAhvwQIAP8GACHABAgApAcAIcEEIAC0BgAhwgQBAJoGACHDBAEAmgYAIRADAADlBwAgvAMBAAAAAcYDAQAAAAHHAwEAAAAByAMBAAAAAdcDAQAAAAHuAwEAAAAB-wMBAAAAAfwDAQAAAAGfBAEAAAABoAQCAAAAAb8ECAAAAAHABAgAAAABwQQgAAAAAcIEAQAAAAHDBAEAAAABGAQAAMcHACAFAADIBwAgBgAAyQcAIAsAAMsHACAMAACACAAgxgMBAAAAAccDAQAAAAHYAwEAAAAB-gMBAAAAAccEAQAAAAHIBAEAAAABzgQCAAAAAfoEAQAAAAH7BAEAAAAB_AQBAAAAAf0EAQAAAAH-BAEAAAAB_wQBAAAAAYAFAQAAAAGBBQEAAAABggUBAAAAAYMFAgAAAAGEBQEAAAABhQUBAAAAAQIAAAABACAZAAD_BwAgAwAAAAEAIBkAAP8HACAaAAD9BwAgARIAALgIADACAAAAAQAgEgAA_QcAIAIAAACSBwAgEgAA_AcAIBPGAwEAmAYAIccDAQCYBgAh2AMBAJgGACH6AwEAmAYAIccEAQCYBgAhyAQBAJoGACHOBAIA8QYAIfoEAQCaBgAh-wQBAJoGACH8BAEAmgYAIf0EAQCaBgAh_gQBAJoGACH_BAEAmgYAIYAFAQCaBgAhgQUBAJoGACGCBQEAmAYAIYMFAgCoBgAhhAUBAJoGACGFBQEAmgYAIRgEAACVBwAgBQAAlgcAIAYAAJcHACALAACZBwAgDAAA_gcAIMYDAQCYBgAhxwMBAJgGACHYAwEAmAYAIfoDAQCYBgAhxwQBAJgGACHIBAEAmgYAIc4EAgDxBgAh-gQBAJoGACH7BAEAmgYAIfwEAQCaBgAh_QQBAJoGACH-BAEAmgYAIf8EAQCaBgAhgAUBAJoGACGBBQEAmgYAIYIFAQCYBgAhgwUCAKgGACGEBQEAmgYAIYUFAQCaBgAhBxkAALMIACAaAAC2CAAgiQUAALQIACCKBQAAtQgAII0FAAAZACCOBQAAGQAgjwUAAKgCACAYBAAAxwcAIAUAAMgHACAGAADJBwAgCwAAywcAIAwAAIAIACDGAwEAAAABxwMBAAAAAdgDAQAAAAH6AwEAAAABxwQBAAAAAcgEAQAAAAHOBAIAAAAB-gQBAAAAAfsEAQAAAAH8BAEAAAAB_QQBAAAAAf4EAQAAAAH_BAEAAAABgAUBAAAAAYEFAQAAAAGCBQEAAAABgwUCAAAAAYQFAQAAAAGFBQEAAAABAxkAALMIACCJBQAAtAgAII8FAACoAgAgBBkAAPYHADCJBQAA9wcAMIsFAAD5BwAgjwUAAI4HADAEGQAA7QcAMIkFAADuBwAwiwUAAPAHACCPBQAAngcAMAAAAAAAAAUZAACuCAAgGgAAsQgAIIkFAACvCAAgigUAALAIACCPBQAAAQAgAxkAAK4IACCJBQAArwgAII8FAAABACATBAAAoAgAIAUAAKEIACAGAACiCAAgCAAAnwgAIAsAAIMIACAMAACjCAAgvgQAAJQGACDIBAAAlAYAIPoEAACUBgAg-wQAAJQGACD8BAAAlAYAIP0EAACUBgAg_gQAAJQGACD_BAAAlAYAIIAFAACUBgAggQUAAJQGACCDBQAAlAYAIIQFAACUBgAghQUAAJQGACAAAAAAAAUZAACpCAAgGgAArAgAIIkFAACqCAAgigUAAKsIACCPBQAAAQAgAxkAAKkIACCJBQAAqggAII8FAAABACAAAAAAAAUZAACkCAAgGgAApwgAIIkFAAClCAAgigUAAKYIACCPBQAAAQAgAxkAAKQIACCJBQAApQgAII8FAAABACAAAAAAAAYHAADNBwAgCQAAgwgAIMUEAACUBgAgyAQAAJQGACDMBAAAlAYAIM0EAACUBgAgAAABAwAAiwgAIAEHAADNBwAgGQUAAMgHACAGAADJBwAgCAAAygcAIAsAAMsHACAMAACACAAgxgMBAAAAAccDAQAAAAHYAwEAAAAB-gMBAAAAAb4EAQAAAAHHBAEAAAAByAQBAAAAAc4EAgAAAAH6BAEAAAAB-wQBAAAAAfwEAQAAAAH9BAEAAAAB_gQBAAAAAf8EAQAAAAGABQEAAAABgQUBAAAAAYIFAQAAAAGDBQIAAAABhAUBAAAAAYUFAQAAAAECAAAAAQAgGQAApAgAIAMAAAAPACAZAACkCAAgGgAAqAgAIBsAAAAPACAFAACWBwAgBgAAlwcAIAgAAJgHACALAACZBwAgDAAA_gcAIBIAAKgIACDGAwEAmAYAIccDAQCYBgAh2AMBAJgGACH6AwEAmAYAIb4EAQCaBgAhxwQBAJgGACHIBAEAmgYAIc4EAgDxBgAh-gQBAJoGACH7BAEAmgYAIfwEAQCaBgAh_QQBAJoGACH-BAEAmgYAIf8EAQCaBgAhgAUBAJoGACGBBQEAmgYAIYIFAQCYBgAhgwUCAKgGACGEBQEAmgYAIYUFAQCaBgAhGQUAAJYHACAGAACXBwAgCAAAmAcAIAsAAJkHACAMAAD-BwAgxgMBAJgGACHHAwEAmAYAIdgDAQCYBgAh-gMBAJgGACG-BAEAmgYAIccEAQCYBgAhyAQBAJoGACHOBAIA8QYAIfoEAQCaBgAh-wQBAJoGACH8BAEAmgYAIf0EAQCaBgAh_gQBAJoGACH_BAEAmgYAIYAFAQCaBgAhgQUBAJoGACGCBQEAmAYAIYMFAgCoBgAhhAUBAJoGACGFBQEAmgYAIRkEAADHBwAgBgAAyQcAIAgAAMoHACALAADLBwAgDAAAgAgAIMYDAQAAAAHHAwEAAAAB2AMBAAAAAfoDAQAAAAG-BAEAAAABxwQBAAAAAcgEAQAAAAHOBAIAAAAB-gQBAAAAAfsEAQAAAAH8BAEAAAAB_QQBAAAAAf4EAQAAAAH_BAEAAAABgAUBAAAAAYEFAQAAAAGCBQEAAAABgwUCAAAAAYQFAQAAAAGFBQEAAAABAgAAAAEAIBkAAKkIACADAAAADwAgGQAAqQgAIBoAAK0IACAbAAAADwAgBAAAlQcAIAYAAJcHACAIAACYBwAgCwAAmQcAIAwAAP4HACASAACtCAAgxgMBAJgGACHHAwEAmAYAIdgDAQCYBgAh-gMBAJgGACG-BAEAmgYAIccEAQCYBgAhyAQBAJoGACHOBAIA8QYAIfoEAQCaBgAh-wQBAJoGACH8BAEAmgYAIf0EAQCaBgAh_gQBAJoGACH_BAEAmgYAIYAFAQCaBgAhgQUBAJoGACGCBQEAmAYAIYMFAgCoBgAhhAUBAJoGACGFBQEAmgYAIRkEAACVBwAgBgAAlwcAIAgAAJgHACALAACZBwAgDAAA_gcAIMYDAQCYBgAhxwMBAJgGACHYAwEAmAYAIfoDAQCYBgAhvgQBAJoGACHHBAEAmAYAIcgEAQCaBgAhzgQCAPEGACH6BAEAmgYAIfsEAQCaBgAh_AQBAJoGACH9BAEAmgYAIf4EAQCaBgAh_wQBAJoGACGABQEAmgYAIYEFAQCaBgAhggUBAJgGACGDBQIAqAYAIYQFAQCaBgAhhQUBAJoGACEZBAAAxwcAIAUAAMgHACAIAADKBwAgCwAAywcAIAwAAIAIACDGAwEAAAABxwMBAAAAAdgDAQAAAAH6AwEAAAABvgQBAAAAAccEAQAAAAHIBAEAAAABzgQCAAAAAfoEAQAAAAH7BAEAAAAB_AQBAAAAAf0EAQAAAAH-BAEAAAAB_wQBAAAAAYAFAQAAAAGBBQEAAAABggUBAAAAAYMFAgAAAAGEBQEAAAABhQUBAAAAAQIAAAABACAZAACuCAAgAwAAAA8AIBkAAK4IACAaAACyCAAgGwAAAA8AIAQAAJUHACAFAACWBwAgCAAAmAcAIAsAAJkHACAMAAD-BwAgEgAAsggAIMYDAQCYBgAhxwMBAJgGACHYAwEAmAYAIfoDAQCYBgAhvgQBAJoGACHHBAEAmAYAIcgEAQCaBgAhzgQCAPEGACH6BAEAmgYAIfsEAQCaBgAh_AQBAJoGACH9BAEAmgYAIf4EAQCaBgAh_wQBAJoGACGABQEAmgYAIYEFAQCaBgAhggUBAJgGACGDBQIAqAYAIYQFAQCaBgAhhQUBAJoGACEZBAAAlQcAIAUAAJYHACAIAACYBwAgCwAAmQcAIAwAAP4HACDGAwEAmAYAIccDAQCYBgAh2AMBAJgGACH6AwEAmAYAIb4EAQCaBgAhxwQBAJgGACHIBAEAmgYAIc4EAgDxBgAh-gQBAJoGACH7BAEAmgYAIfwEAQCaBgAh_QQBAJoGACH-BAEAmgYAIf8EAQCaBgAhgAUBAJoGACGBBQEAmgYAIYIFAQCYBgAhgwUCAKgGACGEBQEAmgYAIYUFAQCaBgAhBbwDAQAAAAHGAwEAAAAB1wMBAAAAAawEAQAAAAGtBAEAAAABAgAAAKgCACAZAACzCAAgAwAAABkAIBkAALMIACAaAAC3CAAgBwAAABkAIBIAALcIACC8AwEAmAYAIcYDAQCYBgAh1wMBAJgGACGsBAEAmAYAIa0EAQCYBgAhBbwDAQCYBgAhxgMBAJgGACHXAwEAmAYAIawEAQCYBgAhrQQBAJgGACETxgMBAAAAAccDAQAAAAHYAwEAAAAB-gMBAAAAAccEAQAAAAHIBAEAAAABzgQCAAAAAfoEAQAAAAH7BAEAAAAB_AQBAAAAAf0EAQAAAAH-BAEAAAAB_wQBAAAAAYAFAQAAAAGBBQEAAAABggUBAAAAAYMFAgAAAAGEBQEAAAABhQUBAAAAAQ-8AwEAAAABxgMBAAAAAccDAQAAAAHIAwEAAAAB1wMBAAAAAe4DAQAAAAH7AwEAAAAB_AMBAAAAAZ8EAQAAAAGgBAIAAAABvwQIAAAAAcAECAAAAAHBBCAAAAABwgQBAAAAAcMEAQAAAAEZBAAAxwcAIAUAAMgHACAGAADJBwAgCAAAygcAIAwAAIAIACDGAwEAAAABxwMBAAAAAdgDAQAAAAH6AwEAAAABvgQBAAAAAccEAQAAAAHIBAEAAAABzgQCAAAAAfoEAQAAAAH7BAEAAAAB_AQBAAAAAf0EAQAAAAH-BAEAAAAB_wQBAAAAAYAFAQAAAAGBBQEAAAABggUBAAAAAYMFAgAAAAGEBQEAAAABhQUBAAAAAQIAAAABACAZAAC6CAAgAwAAAA8AIBkAALoIACAaAAC-CAAgGwAAAA8AIAQAAJUHACAFAACWBwAgBgAAlwcAIAgAAJgHACAMAAD-BwAgEgAAvggAIMYDAQCYBgAhxwMBAJgGACHYAwEAmAYAIfoDAQCYBgAhvgQBAJoGACHHBAEAmAYAIcgEAQCaBgAhzgQCAPEGACH6BAEAmgYAIfsEAQCaBgAh_AQBAJoGACH9BAEAmgYAIf4EAQCaBgAh_wQBAJoGACGABQEAmgYAIYEFAQCaBgAhggUBAJgGACGDBQIAqAYAIYQFAQCaBgAhhQUBAJoGACEZBAAAlQcAIAUAAJYHACAGAACXBwAgCAAAmAcAIAwAAP4HACDGAwEAmAYAIccDAQCYBgAh2AMBAJgGACH6AwEAmAYAIb4EAQCaBgAhxwQBAJgGACHIBAEAmgYAIc4EAgDxBgAh-gQBAJoGACH7BAEAmgYAIfwEAQCaBgAh_QQBAJoGACH-BAEAmgYAIf8EAQCaBgAhgAUBAJoGACGBBQEAmgYAIYIFAQCYBgAhgwUCAKgGACGEBQEAmgYAIYUFAQCaBgAhDwkAAIIIACC8AwEAAAABxgMBAAAAAdgDAQAAAAH6AwEAAAABxAQBAAAAAcUEAQAAAAHGBAIAAAABxwQBAAAAAcgEAQAAAAHJBAIAAAABygQCAAAAAcsEAgAAAAHMBAEAAAABzQQBAAAAAQIAAAB9ACAZAAC_CAAgEsYDAQAAAAH6AwEAAAAB0wQBAAAAAdUEAQAAAAHcBAEAAAAB7QQBAAAAAe4EAQAAAAHvBAEAAAAB8AQBAAAAAfEEAQAAAAHyBAEAAAAB8wQBAAAAAfQEAQAAAAH1BAEAAAAB9gQBAAAAAfcEAQAAAAH4BAIAAAAB-QQBAAAAASjGAwEAAAAB2AMBAAAAAfkDAQAAAAH6AwEAAAABlAQBAAAAAZ8EAQAAAAGgBAIAAAABoQQBAAAAAaMEAQAAAAHHBAEAAAAByAQBAAAAAdAEAQAAAAHRBAEAAAAB0gQBAAAAAdMEAQAAAAHUBAIAAAAB1QQBAAAAAdYEAQAAAAHXBAEAAAAB2AQBAAAAAdkEAgAAAAHaBAEAAAAB2wQBAAAAAdwEAQAAAAHdBAEAAAAB3gQCAAAAAd8EAgAAAAHgBAIAAAAB4QQBAAAAAeIEAQAAAAHjBAIAAAAB5AQCAAAAAeUEAQAAAAHmBAEAAAAB5wQBAAAAAegEAQAAAAHpBCAAAAAB6gQgAAAAAesEIAAAAAHsBAEAAAABDwcAAIEIACC8AwEAAAABxgMBAAAAAdgDAQAAAAH6AwEAAAABxAQBAAAAAcUEAQAAAAHGBAIAAAABxwQBAAAAAcgEAQAAAAHJBAIAAAABygQCAAAAAcsEAgAAAAHMBAEAAAABzQQBAAAAAQIAAAB9ACAZAADDCAAgAwAAAA0AIBkAAMMIACAaAADHCAAgEQAAAA0AIAcAAOsHACASAADHCAAgvAMBAJgGACHGAwEAmAYAIdgDAQCYBgAh-gMBAJgGACHEBAEAmAYAIcUEAQCaBgAhxgQCAPEGACHHBAEAmAYAIcgEAQCaBgAhyQQCAPEGACHKBAIA8QYAIcsEAgDxBgAhzAQBAJoGACHNBAEAmgYAIQ8HAADrBwAgvAMBAJgGACHGAwEAmAYAIdgDAQCYBgAh-gMBAJgGACHEBAEAmAYAIcUEAQCaBgAhxgQCAPEGACHHBAEAmAYAIcgEAQCaBgAhyQQCAPEGACHKBAIA8QYAIcsEAgDxBgAhzAQBAJoGACHNBAEAmgYAIQ-8AwEAAAABxgMBAAAAAcgDAQAAAAHXAwEAAAAB7gMBAAAAAfsDAQAAAAH8AwEAAAABnwQBAAAAAaAEAgAAAAG-BAEAAAABvwQIAAAAAcAECAAAAAHBBCAAAAABwgQBAAAAAcMEAQAAAAEDAAAADQAgGQAAvwgAIBoAAMsIACARAAAADQAgCQAA7AcAIBIAAMsIACC8AwEAmAYAIcYDAQCYBgAh2AMBAJgGACH6AwEAmAYAIcQEAQCYBgAhxQQBAJoGACHGBAIA8QYAIccEAQCYBgAhyAQBAJoGACHJBAIA8QYAIcoEAgDxBgAhywQCAPEGACHMBAEAmgYAIc0EAQCaBgAhDwkAAOwHACC8AwEAmAYAIcYDAQCYBgAh2AMBAJgGACH6AwEAmAYAIcQEAQCYBgAhxQQBAJoGACHGBAIA8QYAIccEAQCYBgAhyAQBAJoGACHJBAIA8QYAIcoEAgDxBgAhywQCAPEGACHMBAEAmgYAIc0EAQCaBgAhE8YDAQAAAAHHAwEAAAAB2AMBAAAAAfoDAQAAAAG-BAEAAAABxwQBAAAAAcgEAQAAAAHOBAIAAAAB-gQBAAAAAfsEAQAAAAH8BAEAAAAB_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-XAs_XR9AXgNBXwNCYAtDYyBEZCZFZgRGZwRHaQRIagRJawRKbQRLbwtMcCdNcgROdAtPdShQdgRRdwRSeAtTeylUfC9VfgVWfwVXgQEFWIIBBVmDAQVahQEFW4cBC1yIATBdigEFXowBC1-NATFgjgEFYY8BBWKQAQtjkwEyZJQBOGWVAQZmlgEGZ5cBBmiYAQZpmQEGapsBBmudAQtsngE5baABBm6iAQtvowE6cKQBBnGlAQZypgELc6kBO3SqAUF1rAFCdq0BQnewAUJ4sQFCebIBQnq0AUJ7tgELfLcBQ325AUJ-uwELf7wBRIABvQFCgQG-AUKCAb8BC4MBwgFFhAHDAUmFAcUBSoYBxgFKhwHJAUqIAcoBSokBywFKigHNAUqLAc8BC4wB0AFLjQHSAUqOAdQBC48B1QFMkAHWAUqRAdcBSpIB2AELkwHbAU2UAdwBUZUB3gFSlgHfAVKXAeIBUpgB4wFSmQHkAVKaAeYBUpsB6AELnAHpAVOdAesBUp4B7QELnwHuAVSgAe8BUqEB8AFSogHxAQujAfQBVaQB9QFZpQH3AVqmAfgBWqcB-wFaqAH8AVqpAf0BWqoB_wFaqwGBAgusAYICW60BhAJargGGAguvAYcCXLABiAJasQGJAlqyAYoCC7MBjQJdtAGOAmG1AZACYrYBkQJitwGUAmK4AZUCYrkBlgJiugGYAmK7AZoCC7wBmwJjvQGdAmK-AZ8CC78BoAJkwAGhAmLBAaICYsIBowILwwGmAmXEAacCa8UBqQIIxgGqAgjHAawCCMgBrQIIyQGuAgjKAbACCMsBsgILzAGzAmzNAbUCCM4BtwILzwG4Am3QAbkCCNEBugII0gG7AgvTAb4CbtQBvwJy1QHBAnPWAcICc9cBxQJz2AHGAnPZAccCc9oByQJz2wHLAgvcAcwCdN0BzgJz3gHQAgvfAdECdeAB0gJz4QHTAnPiAdQCC-MB1wJ25AHYAnzlAdoCfeYB2wJ95wHeAn3oAd8CfekB4AJ96gHiAn3rAeQCC-wB5QJ-7QHnAn3uAekCC-8B6gJ_8AHrAn3xAewCffIB7QIL8wHwAoAB9AHxAoYB9QHzAocB9gH0AocB9wH3AocB-AH4AocB-QH5AocB-gH7AocB-wH9Agv8Af4CiAH9AYADhwH-AYIDC_8BgwOJAYAChAOHAYEChQOHAYIChgMLgwKJA4oBhAKKA44BhQKMA48BhgKNA48BhwKQA48BiAKRA48BiQKSA48BigKUA48BiwKWAwuMApcDkAGNApkDjwGOApsDC48CnAORAZACnQOPAZECngOPAZICnwMLkwKiA5IBlAKjA5gBlQKlA5kBlgKmA5kBlwKpA5kBmAKqA5kBmQKrA5kBmgKtA5kBmwKvAwucArADmgGdArIDmQGeArQDC58CtQObAaACtgOZAaECtwOZAaICuAMLowK7A5wBpAK8A6IBpQK-A6MBpgK_A6MBpwLCA6MBqALDA6MBqQLEA6MBqgLGA6MBqwLIAwusAskDpAGtAssDowGuAs0DC68CzgOlAbACzwOjAbEC0AOjAbIC0QMLswLUA6YBtALVA6oBtQLXA6sBtgLYA6sBtwLbA6sBuALcA6sBuQLdA6sBugLfA6sBuwLhAwu8AuIDrAG9AuQDqwG-AuYDC78C5wOtAcAC6AOrAcEC6QOrAcIC6gMLwwLtA64BxALuA7IBxQLwA7MBxgLxA7MBxwL0A7MByAL1A7MByQL2A7MBygL4A7MBywL6AwvMAvsDtAHNAv0DswHOAv8DC88CgAS1AdACgQSzAdECggSzAdICgwQL0wKGBLYB1AKHBLoB2QKJBLsB2gKZBLsB2wKcBLsB3AKdBLsB3QKeBLsB3gKgBLsB3wKiBAvgAqMEwAHhAqUEuwHiAqcEC-MCqATBAeQCqQS7AeUCqgS7AeYCqwQL5wKuBMIB6AKvBMYB6QKwBL4B6gKxBL4B6wKyBL4B7AKzBL4B7QK0BL4B7gK2BL4B7wK4BAvwArkExwHxArsEvgHyAr0EC_MCvgTIAfQCvwS-AfUCwAS-AfYCwQQL9wLEBMkB-ALFBM0B-QLGBLwB-gLHBLwB-wLIBLwB_ALJBLwB_QLKBLwB_gLMBLwB_wLOBAuAA88EzgGBA9EEvAGCA9MEC4MD1ATPAYQD1QS8AYUD1gS8AYYD1wQLhwPaBNABiAPbBNYBiQPcBL0BigPdBL0BiwPeBL0BjAPfBL0BjQPgBL0BjgPiBL0BjwPkBAuQA-UE1wGRA-cEvQGSA-kEC5MD6gTYAZQD6wS9AZUD7AS9AZYD7QQLlwPwBNkBmAPxBN0BmQPzBN4BmgP0BN4BmwP3BN4BnAP4BN4BnQP5BN4BngP7BN4BnwP9BAugA_4E3wGhA4AF3gGiA4IFC6MDgwXgAaQDhAXeAaUDhQXeAaYDhgULpwOJBeEBqAOKBeUBqQOMBeYBqgONBeYBqwOQBeYBrAORBeYBrQOSBeYBrgOUBeYBrwOWBQuwA5cF5wGxA5kF5gGyA5sFC7MDnAXoAbQDnQXmAbUDngXmAbYDnwULtwOiBekBuAOjBe0B"
|
|
16899
|
+
strings: JSON.parse("[\"where\",\"orderBy\",\"cursor\",\"run\",\"workItems\",\"executionInstances\",\"slotProjection\",\"runs\",\"testSuiteRun\",\"assertions\",\"_count\",\"testAssertions\",\"workflowSnapshot\",\"Run.findUnique\",\"Run.findUniqueOrThrow\",\"Run.findFirst\",\"Run.findFirstOrThrow\",\"Run.findMany\",\"data\",\"Run.createOne\",\"Run.createMany\",\"Run.createManyAndReturn\",\"Run.updateOne\",\"Run.updateMany\",\"Run.updateManyAndReturn\",\"create\",\"update\",\"Run.upsertOne\",\"Run.deleteOne\",\"Run.deleteMany\",\"having\",\"_avg\",\"_sum\",\"_min\",\"_max\",\"Run.groupBy\",\"Run.aggregate\",\"RunWorkItem.findUnique\",\"RunWorkItem.findUniqueOrThrow\",\"RunWorkItem.findFirst\",\"RunWorkItem.findFirstOrThrow\",\"RunWorkItem.findMany\",\"RunWorkItem.createOne\",\"RunWorkItem.createMany\",\"RunWorkItem.createManyAndReturn\",\"RunWorkItem.updateOne\",\"RunWorkItem.updateMany\",\"RunWorkItem.updateManyAndReturn\",\"RunWorkItem.upsertOne\",\"RunWorkItem.deleteOne\",\"RunWorkItem.deleteMany\",\"RunWorkItem.groupBy\",\"RunWorkItem.aggregate\",\"ExecutionInstance.findUnique\",\"ExecutionInstance.findUniqueOrThrow\",\"ExecutionInstance.findFirst\",\"ExecutionInstance.findFirstOrThrow\",\"ExecutionInstance.findMany\",\"ExecutionInstance.createOne\",\"ExecutionInstance.createMany\",\"ExecutionInstance.createManyAndReturn\",\"ExecutionInstance.updateOne\",\"ExecutionInstance.updateMany\",\"ExecutionInstance.updateManyAndReturn\",\"ExecutionInstance.upsertOne\",\"ExecutionInstance.deleteOne\",\"ExecutionInstance.deleteMany\",\"ExecutionInstance.groupBy\",\"ExecutionInstance.aggregate\",\"RunSlotProjection.findUnique\",\"RunSlotProjection.findUniqueOrThrow\",\"RunSlotProjection.findFirst\",\"RunSlotProjection.findFirstOrThrow\",\"RunSlotProjection.findMany\",\"RunSlotProjection.createOne\",\"RunSlotProjection.createMany\",\"RunSlotProjection.createManyAndReturn\",\"RunSlotProjection.updateOne\",\"RunSlotProjection.updateMany\",\"RunSlotProjection.updateManyAndReturn\",\"RunSlotProjection.upsertOne\",\"RunSlotProjection.deleteOne\",\"RunSlotProjection.deleteMany\",\"RunSlotProjection.groupBy\",\"RunSlotProjection.aggregate\",\"TestSuiteRun.findUnique\",\"TestSuiteRun.findUniqueOrThrow\",\"TestSuiteRun.findFirst\",\"TestSuiteRun.findFirstOrThrow\",\"TestSuiteRun.findMany\",\"TestSuiteRun.createOne\",\"TestSuiteRun.createMany\",\"TestSuiteRun.createManyAndReturn\",\"TestSuiteRun.updateOne\",\"TestSuiteRun.updateMany\",\"TestSuiteRun.updateManyAndReturn\",\"TestSuiteRun.upsertOne\",\"TestSuiteRun.deleteOne\",\"TestSuiteRun.deleteMany\",\"TestSuiteRun.groupBy\",\"TestSuiteRun.aggregate\",\"TestAssertion.findUnique\",\"TestAssertion.findUniqueOrThrow\",\"TestAssertion.findFirst\",\"TestAssertion.findFirstOrThrow\",\"TestAssertion.findMany\",\"TestAssertion.createOne\",\"TestAssertion.createMany\",\"TestAssertion.createManyAndReturn\",\"TestAssertion.updateOne\",\"TestAssertion.updateMany\",\"TestAssertion.updateManyAndReturn\",\"TestAssertion.upsertOne\",\"TestAssertion.deleteOne\",\"TestAssertion.deleteMany\",\"TestAssertion.groupBy\",\"TestAssertion.aggregate\",\"WorkflowDebuggerOverlay.findUnique\",\"WorkflowDebuggerOverlay.findUniqueOrThrow\",\"WorkflowDebuggerOverlay.findFirst\",\"WorkflowDebuggerOverlay.findFirstOrThrow\",\"WorkflowDebuggerOverlay.findMany\",\"WorkflowDebuggerOverlay.createOne\",\"WorkflowDebuggerOverlay.createMany\",\"WorkflowDebuggerOverlay.createManyAndReturn\",\"WorkflowDebuggerOverlay.updateOne\",\"WorkflowDebuggerOverlay.updateMany\",\"WorkflowDebuggerOverlay.updateManyAndReturn\",\"WorkflowDebuggerOverlay.upsertOne\",\"WorkflowDebuggerOverlay.deleteOne\",\"WorkflowDebuggerOverlay.deleteMany\",\"WorkflowDebuggerOverlay.groupBy\",\"WorkflowDebuggerOverlay.aggregate\",\"WorkflowActivation.findUnique\",\"WorkflowActivation.findUniqueOrThrow\",\"WorkflowActivation.findFirst\",\"WorkflowActivation.findFirstOrThrow\",\"WorkflowActivation.findMany\",\"WorkflowActivation.createOne\",\"WorkflowActivation.createMany\",\"WorkflowActivation.createManyAndReturn\",\"WorkflowActivation.updateOne\",\"WorkflowActivation.updateMany\",\"WorkflowActivation.updateManyAndReturn\",\"WorkflowActivation.upsertOne\",\"WorkflowActivation.deleteOne\",\"WorkflowActivation.deleteMany\",\"WorkflowActivation.groupBy\",\"WorkflowActivation.aggregate\",\"TriggerSetupState.findUnique\",\"TriggerSetupState.findUniqueOrThrow\",\"TriggerSetupState.findFirst\",\"TriggerSetupState.findFirstOrThrow\",\"TriggerSetupState.findMany\",\"TriggerSetupState.createOne\",\"TriggerSetupState.createMany\",\"TriggerSetupState.createManyAndReturn\",\"TriggerSetupState.updateOne\",\"TriggerSetupState.updateMany\",\"TriggerSetupState.updateManyAndReturn\",\"TriggerSetupState.upsertOne\",\"TriggerSetupState.deleteOne\",\"TriggerSetupState.deleteMany\",\"TriggerSetupState.groupBy\",\"TriggerSetupState.aggregate\",\"RunTraceContext.findUnique\",\"RunTraceContext.findUniqueOrThrow\",\"RunTraceContext.findFirst\",\"RunTraceContext.findFirstOrThrow\",\"RunTraceContext.findMany\",\"RunTraceContext.createOne\",\"RunTraceContext.createMany\",\"RunTraceContext.createManyAndReturn\",\"RunTraceContext.updateOne\",\"RunTraceContext.updateMany\",\"RunTraceContext.updateManyAndReturn\",\"RunTraceContext.upsertOne\",\"RunTraceContext.deleteOne\",\"RunTraceContext.deleteMany\",\"RunTraceContext.groupBy\",\"RunTraceContext.aggregate\",\"TelemetrySpan.findUnique\",\"TelemetrySpan.findUniqueOrThrow\",\"TelemetrySpan.findFirst\",\"TelemetrySpan.findFirstOrThrow\",\"TelemetrySpan.findMany\",\"TelemetrySpan.createOne\",\"TelemetrySpan.createMany\",\"TelemetrySpan.createManyAndReturn\",\"TelemetrySpan.updateOne\",\"TelemetrySpan.updateMany\",\"TelemetrySpan.updateManyAndReturn\",\"TelemetrySpan.upsertOne\",\"TelemetrySpan.deleteOne\",\"TelemetrySpan.deleteMany\",\"TelemetrySpan.groupBy\",\"TelemetrySpan.aggregate\",\"WorkflowSnapshot.findUnique\",\"WorkflowSnapshot.findUniqueOrThrow\",\"WorkflowSnapshot.findFirst\",\"WorkflowSnapshot.findFirstOrThrow\",\"WorkflowSnapshot.findMany\",\"WorkflowSnapshot.createOne\",\"WorkflowSnapshot.createMany\",\"WorkflowSnapshot.createManyAndReturn\",\"WorkflowSnapshot.updateOne\",\"WorkflowSnapshot.updateMany\",\"WorkflowSnapshot.updateManyAndReturn\",\"WorkflowSnapshot.upsertOne\",\"WorkflowSnapshot.deleteOne\",\"WorkflowSnapshot.deleteMany\",\"WorkflowSnapshot.groupBy\",\"WorkflowSnapshot.aggregate\",\"TelemetryArtifact.findUnique\",\"TelemetryArtifact.findUniqueOrThrow\",\"TelemetryArtifact.findFirst\",\"TelemetryArtifact.findFirstOrThrow\",\"TelemetryArtifact.findMany\",\"TelemetryArtifact.createOne\",\"TelemetryArtifact.createMany\",\"TelemetryArtifact.createManyAndReturn\",\"TelemetryArtifact.updateOne\",\"TelemetryArtifact.updateMany\",\"TelemetryArtifact.updateManyAndReturn\",\"TelemetryArtifact.upsertOne\",\"TelemetryArtifact.deleteOne\",\"TelemetryArtifact.deleteMany\",\"TelemetryArtifact.groupBy\",\"TelemetryArtifact.aggregate\",\"TelemetryMetricPoint.findUnique\",\"TelemetryMetricPoint.findUniqueOrThrow\",\"TelemetryMetricPoint.findFirst\",\"TelemetryMetricPoint.findFirstOrThrow\",\"TelemetryMetricPoint.findMany\",\"TelemetryMetricPoint.createOne\",\"TelemetryMetricPoint.createMany\",\"TelemetryMetricPoint.createManyAndReturn\",\"TelemetryMetricPoint.updateOne\",\"TelemetryMetricPoint.updateMany\",\"TelemetryMetricPoint.updateManyAndReturn\",\"TelemetryMetricPoint.upsertOne\",\"TelemetryMetricPoint.deleteOne\",\"TelemetryMetricPoint.deleteMany\",\"TelemetryMetricPoint.groupBy\",\"TelemetryMetricPoint.aggregate\",\"CredentialInstance.findUnique\",\"CredentialInstance.findUniqueOrThrow\",\"CredentialInstance.findFirst\",\"CredentialInstance.findFirstOrThrow\",\"CredentialInstance.findMany\",\"CredentialInstance.createOne\",\"CredentialInstance.createMany\",\"CredentialInstance.createManyAndReturn\",\"CredentialInstance.updateOne\",\"CredentialInstance.updateMany\",\"CredentialInstance.updateManyAndReturn\",\"CredentialInstance.upsertOne\",\"CredentialInstance.deleteOne\",\"CredentialInstance.deleteMany\",\"CredentialInstance.groupBy\",\"CredentialInstance.aggregate\",\"CredentialSecretMaterial.findUnique\",\"CredentialSecretMaterial.findUniqueOrThrow\",\"CredentialSecretMaterial.findFirst\",\"CredentialSecretMaterial.findFirstOrThrow\",\"CredentialSecretMaterial.findMany\",\"CredentialSecretMaterial.createOne\",\"CredentialSecretMaterial.createMany\",\"CredentialSecretMaterial.createManyAndReturn\",\"CredentialSecretMaterial.updateOne\",\"CredentialSecretMaterial.updateMany\",\"CredentialSecretMaterial.updateManyAndReturn\",\"CredentialSecretMaterial.upsertOne\",\"CredentialSecretMaterial.deleteOne\",\"CredentialSecretMaterial.deleteMany\",\"CredentialSecretMaterial.groupBy\",\"CredentialSecretMaterial.aggregate\",\"CredentialOAuth2Material.findUnique\",\"CredentialOAuth2Material.findUniqueOrThrow\",\"CredentialOAuth2Material.findFirst\",\"CredentialOAuth2Material.findFirstOrThrow\",\"CredentialOAuth2Material.findMany\",\"CredentialOAuth2Material.createOne\",\"CredentialOAuth2Material.createMany\",\"CredentialOAuth2Material.createManyAndReturn\",\"CredentialOAuth2Material.updateOne\",\"CredentialOAuth2Material.updateMany\",\"CredentialOAuth2Material.updateManyAndReturn\",\"CredentialOAuth2Material.upsertOne\",\"CredentialOAuth2Material.deleteOne\",\"CredentialOAuth2Material.deleteMany\",\"CredentialOAuth2Material.groupBy\",\"CredentialOAuth2Material.aggregate\",\"CredentialOAuth2State.findUnique\",\"CredentialOAuth2State.findUniqueOrThrow\",\"CredentialOAuth2State.findFirst\",\"CredentialOAuth2State.findFirstOrThrow\",\"CredentialOAuth2State.findMany\",\"CredentialOAuth2State.createOne\",\"CredentialOAuth2State.createMany\",\"CredentialOAuth2State.createManyAndReturn\",\"CredentialOAuth2State.updateOne\",\"CredentialOAuth2State.updateMany\",\"CredentialOAuth2State.updateManyAndReturn\",\"CredentialOAuth2State.upsertOne\",\"CredentialOAuth2State.deleteOne\",\"CredentialOAuth2State.deleteMany\",\"CredentialOAuth2State.groupBy\",\"CredentialOAuth2State.aggregate\",\"CredentialBinding.findUnique\",\"CredentialBinding.findUniqueOrThrow\",\"CredentialBinding.findFirst\",\"CredentialBinding.findFirstOrThrow\",\"CredentialBinding.findMany\",\"CredentialBinding.createOne\",\"CredentialBinding.createMany\",\"CredentialBinding.createManyAndReturn\",\"CredentialBinding.updateOne\",\"CredentialBinding.updateMany\",\"CredentialBinding.updateManyAndReturn\",\"CredentialBinding.upsertOne\",\"CredentialBinding.deleteOne\",\"CredentialBinding.deleteMany\",\"CredentialBinding.groupBy\",\"CredentialBinding.aggregate\",\"CredentialTestResult.findUnique\",\"CredentialTestResult.findUniqueOrThrow\",\"CredentialTestResult.findFirst\",\"CredentialTestResult.findFirstOrThrow\",\"CredentialTestResult.findMany\",\"CredentialTestResult.createOne\",\"CredentialTestResult.createMany\",\"CredentialTestResult.createManyAndReturn\",\"CredentialTestResult.updateOne\",\"CredentialTestResult.updateMany\",\"CredentialTestResult.updateManyAndReturn\",\"CredentialTestResult.upsertOne\",\"CredentialTestResult.deleteOne\",\"CredentialTestResult.deleteMany\",\"CredentialTestResult.groupBy\",\"CredentialTestResult.aggregate\",\"user\",\"accounts\",\"sessions\",\"invites\",\"User.findUnique\",\"User.findUniqueOrThrow\",\"User.findFirst\",\"User.findFirstOrThrow\",\"User.findMany\",\"User.createOne\",\"User.createMany\",\"User.createManyAndReturn\",\"User.updateOne\",\"User.updateMany\",\"User.updateManyAndReturn\",\"User.upsertOne\",\"User.deleteOne\",\"User.deleteMany\",\"User.groupBy\",\"User.aggregate\",\"UserInvite.findUnique\",\"UserInvite.findUniqueOrThrow\",\"UserInvite.findFirst\",\"UserInvite.findFirstOrThrow\",\"UserInvite.findMany\",\"UserInvite.createOne\",\"UserInvite.createMany\",\"UserInvite.createManyAndReturn\",\"UserInvite.updateOne\",\"UserInvite.updateMany\",\"UserInvite.updateManyAndReturn\",\"UserInvite.upsertOne\",\"UserInvite.deleteOne\",\"UserInvite.deleteMany\",\"UserInvite.groupBy\",\"UserInvite.aggregate\",\"Account.findUnique\",\"Account.findUniqueOrThrow\",\"Account.findFirst\",\"Account.findFirstOrThrow\",\"Account.findMany\",\"Account.createOne\",\"Account.createMany\",\"Account.createManyAndReturn\",\"Account.updateOne\",\"Account.updateMany\",\"Account.updateManyAndReturn\",\"Account.upsertOne\",\"Account.deleteOne\",\"Account.deleteMany\",\"Account.groupBy\",\"Account.aggregate\",\"Session.findUnique\",\"Session.findUniqueOrThrow\",\"Session.findFirst\",\"Session.findFirstOrThrow\",\"Session.findMany\",\"Session.createOne\",\"Session.createMany\",\"Session.createManyAndReturn\",\"Session.updateOne\",\"Session.updateMany\",\"Session.updateManyAndReturn\",\"Session.upsertOne\",\"Session.deleteOne\",\"Session.deleteMany\",\"Session.groupBy\",\"Session.aggregate\",\"VerificationToken.findUnique\",\"VerificationToken.findUniqueOrThrow\",\"VerificationToken.findFirst\",\"VerificationToken.findFirstOrThrow\",\"VerificationToken.findMany\",\"VerificationToken.createOne\",\"VerificationToken.createMany\",\"VerificationToken.createManyAndReturn\",\"VerificationToken.updateOne\",\"VerificationToken.updateMany\",\"VerificationToken.updateManyAndReturn\",\"VerificationToken.upsertOne\",\"VerificationToken.deleteOne\",\"VerificationToken.deleteMany\",\"VerificationToken.groupBy\",\"VerificationToken.aggregate\",\"WorkflowAuditLog.findUnique\",\"WorkflowAuditLog.findUniqueOrThrow\",\"WorkflowAuditLog.findFirst\",\"WorkflowAuditLog.findFirstOrThrow\",\"WorkflowAuditLog.findMany\",\"WorkflowAuditLog.createOne\",\"WorkflowAuditLog.createMany\",\"WorkflowAuditLog.createManyAndReturn\",\"WorkflowAuditLog.updateOne\",\"WorkflowAuditLog.updateMany\",\"WorkflowAuditLog.updateManyAndReturn\",\"WorkflowAuditLog.upsertOne\",\"WorkflowAuditLog.deleteOne\",\"WorkflowAuditLog.deleteMany\",\"WorkflowAuditLog.groupBy\",\"WorkflowAuditLog.aggregate\",\"HmacNonce.findUnique\",\"HmacNonce.findUniqueOrThrow\",\"HmacNonce.findFirst\",\"HmacNonce.findFirstOrThrow\",\"HmacNonce.findMany\",\"HmacNonce.createOne\",\"HmacNonce.createMany\",\"HmacNonce.createManyAndReturn\",\"HmacNonce.updateOne\",\"HmacNonce.updateMany\",\"HmacNonce.updateManyAndReturn\",\"HmacNonce.upsertOne\",\"HmacNonce.deleteOne\",\"HmacNonce.deleteMany\",\"HmacNonce.groupBy\",\"HmacNonce.aggregate\",\"HumanTask.findUnique\",\"HumanTask.findUniqueOrThrow\",\"HumanTask.findFirst\",\"HumanTask.findFirstOrThrow\",\"HumanTask.findMany\",\"HumanTask.createOne\",\"HumanTask.createMany\",\"HumanTask.createManyAndReturn\",\"HumanTask.updateOne\",\"HumanTask.updateMany\",\"HumanTask.updateManyAndReturn\",\"HumanTask.upsertOne\",\"HumanTask.deleteOne\",\"HumanTask.deleteMany\",\"HumanTask.groupBy\",\"HumanTask.aggregate\",\"AND\",\"OR\",\"NOT\",\"id\",\"runId\",\"workflowId\",\"workspaceId\",\"nodeId\",\"activationId\",\"itemIndex\",\"status\",\"channel\",\"subjectJson\",\"metadataJson\",\"decisionSchemaJson\",\"decisionSchemaHash\",\"onTimeout\",\"deliveryRefJson\",\"decisionJson\",\"decidedAt\",\"decidedByJson\",\"resumeTokenHash\",\"expiresAt\",\"createdAt\",\"equals\",\"in\",\"notIn\",\"lt\",\"lte\",\"gt\",\"gte\",\"not\",\"contains\",\"startsWith\",\"endsWith\",\"nonce\",\"occurredAt\",\"actorUserId\",\"actorSessionId\",\"action\",\"resourceType\",\"resourceId\",\"outcome\",\"errorCode\",\"correlationId\",\"identifier\",\"token\",\"expires\",\"updatedAt\",\"identifier_token\",\"sessionToken\",\"userId\",\"ipAddress\",\"userAgent\",\"type\",\"provider\",\"providerAccountId\",\"password\",\"refresh_token\",\"access_token\",\"expires_at\",\"accessTokenExpiresAt\",\"refreshTokenExpiresAt\",\"token_type\",\"scope\",\"id_token\",\"session_state\",\"tokenHash\",\"revokedAt\",\"name\",\"email\",\"emailVerified\",\"image\",\"passwordHash\",\"accountStatus\",\"every\",\"some\",\"none\",\"provider_providerAccountId\",\"testId\",\"instanceId\",\"message\",\"detailsJson\",\"testedAt\",\"slotKey\",\"workflowId_nodeId_slotKey\",\"state\",\"codeVerifier\",\"providerId\",\"requestedScopesJson\",\"encryptedJson\",\"encryptionKeyId\",\"schemaVersion\",\"connectedEmail\",\"connectedAt\",\"scopesJson\",\"typeId\",\"displayName\",\"sourceKind\",\"publicConfigJson\",\"secretRefJson\",\"tagsJson\",\"setupStatus\",\"materialSource\",\"materialRef\",\"metricPointId\",\"traceId\",\"spanId\",\"metricName\",\"value\",\"unit\",\"observedAt\",\"workflowFolder\",\"nodeType\",\"nodeRole\",\"modelName\",\"dimensionsJson\",\"retentionExpiresAt\",\"iterationId\",\"parentInvocationId\",\"artifactId\",\"kind\",\"contentType\",\"previewText\",\"previewJson\",\"payloadText\",\"payloadJson\",\"payloadStorageKey\",\"bytes\",\"truncated\",\"snapshotHash\",\"snapshotJson\",\"workflowId_snapshotHash\",\"telemetrySpanId\",\"parentSpanId\",\"connectionInvocationId\",\"statusMessage\",\"startTime\",\"endTime\",\"attributesJson\",\"eventsJson\",\"traceId_spanId\",\"rootSpanId\",\"serviceName\",\"stateJson\",\"workflowId_nodeId\",\"isActive\",\"copiedFromRunId\",\"testSuiteRunId\",\"score\",\"passThreshold\",\"errored\",\"expectedJson\",\"actualJson\",\"triggerNodeId\",\"triggerNodeName\",\"concurrency\",\"startedAt\",\"finishedAt\",\"totalCases\",\"passedCases\",\"failedCases\",\"nodeCoverageJson\",\"errorMessage\",\"revision\",\"slotStatesJson\",\"slotNodeId\",\"workflowNodeId\",\"connectionKind\",\"batchId\",\"runIndex\",\"parentInstanceId\",\"parentRunId\",\"workerClaimToken\",\"queuedAt\",\"itemCount\",\"inputJson\",\"outputJson\",\"errorJson\",\"inputItemIndicesJson\",\"outputItemCount\",\"successfulItemCount\",\"failedItemCount\",\"inputStorageKind\",\"outputStorageKind\",\"inputBytes\",\"outputBytes\",\"inputPreviewJson\",\"outputPreviewJson\",\"inputPayloadRef\",\"outputPayloadRef\",\"inputTruncated\",\"outputTruncated\",\"usedPinnedOutput\",\"childRunId\",\"workItemId\",\"targetNodeId\",\"queueName\",\"claimToken\",\"claimedBy\",\"claimedAt\",\"availableAt\",\"enqueuedAt\",\"completedAt\",\"failedAt\",\"sourceInstanceId\",\"itemsIn\",\"inputsByPortJson\",\"parentJson\",\"executionOptionsJson\",\"controlJson\",\"workflowSnapshotJson\",\"workflowSnapshotId\",\"policySnapshotJson\",\"engineCountersJson\",\"mutableStateJson\",\"hitlStateJson\",\"outputsByNodeJson\",\"testCaseIndex\",\"testCaseLabel\",\"testCaseStatus\",\"runId_slotNodeId_runIndex\",\"is\",\"isNot\",\"connectOrCreate\",\"upsert\",\"createMany\",\"set\",\"disconnect\",\"delete\",\"connect\",\"updateMany\",\"deleteMany\",\"increment\",\"decrement\",\"multiply\",\"divide\"]"),
|
|
16900
|
+
graph: "nAn_AcADHgQAAMIGACAFAADDBgAgBgAAxAYAIAgAAMUGACALAAC3BgAgDAAAxgYAINkDAADBBgAw2gMAAA8AENsDAADBBgAw3QMBAAAAAd4DAQDpBQAh4wMBAOkFACGJBAEA6QUAIe0EAQDqBQAh9gQBAOkFACH3BAEA6gUAIf0EAgDrBQAhqQUBAOoFACGqBQEA6gUAIasFAQDqBQAhrAUBAOoFACGtBQEA6gUAIa4FAQDqBQAhrwUBAOoFACGwBQEA6gUAIbEFAQDqBQAhsgUBAOkFACGzBQIAiQYAIbQFAQDqBQAhtQUBAOoFACEBAAAAAQAgFwMAALoGACDZAwAAyQYAMNoDAAADABDbAwAAyQYAMN0DAQDpBQAh3gMBAOkFACHjAwEA6QUAIYIFAQDpBQAhhAUBAOoFACGLBQEA6gUAIZwFAQDpBQAhnQUBAOkFACGeBQEA6gUAIZ8FAQDqBQAhoAUBAOoFACGhBQEA6gUAIaIFAQDpBQAhowUBAOkFACGkBQEA6gUAIaUFAQDqBQAhpgUBAOoFACGnBQIA6wUAIagFAQDpBQAhCgMAAMkIACCEBQAAygYAIIsFAADKBgAgngUAAMoGACCfBQAAygYAIKAFAADKBgAgoQUAAMoGACCkBQAAygYAIKUFAADKBgAgpgUAAMoGACAXAwAAugYAINkDAADJBgAw2gMAAAMAENsDAADJBgAw3QMBAOkFACHeAwEA6QUAIeMDAQDpBQAhggUBAOkFACGEBQEA6gUAIYsFAQDqBQAhnAUBAAAAAZ0FAQDpBQAhngUBAOoFACGfBQEA6gUAIaAFAQDqBQAhoQUBAOoFACGiBQEA6QUAIaMFAQDpBQAhpAUBAOoFACGlBQEA6gUAIaYFAQDqBQAhpwUCAOsFACGoBQEA6QUAIQMAAAADACABAAAEADACAAAFACAtAwAAugYAINkDAADIBgAw2gMAAAcAENsDAADIBgAw3QMBAOkFACHeAwEA6QUAIeEDAQDqBQAh4gMCAIkGACHjAwEA6QUAIYkEAQDpBQAhqQQBAOkFACHPBAEA6gUAIdAEAQDqBQAh0gQBAOkFACH2BAEA6gUAIfcEAQDqBQAh_wQBAOkFACGABQEA6QUAIYEFAQDqBQAhggUBAOkFACGDBQIA6wUAIYQFAQDqBQAhhQUBAOoFACGGBQEA6gUAIYcFAQDqBQAhiAUCAOsFACGJBQEA6gUAIYoFAQDqBQAhiwUBAOoFACGMBQEA6gUAIY0FAgCJBgAhjgUCAIkGACGPBQIAiQYAIZAFAQDqBQAhkQUBAOoFACGSBQIAiQYAIZMFAgCJBgAhlAUBAOoFACGVBQEA6gUAIZYFAQDqBQAhlwUBAOoFACGYBSAAoQYAIZkFIAChBgAhmgUgAKEGACGbBQEA6gUAIR8DAADJCAAg4QMAAMoGACDiAwAAygYAIM8EAADKBgAg0AQAAMoGACD2BAAAygYAIPcEAADKBgAggQUAAMoGACCEBQAAygYAIIUFAADKBgAghgUAAMoGACCHBQAAygYAIIkFAADKBgAgigUAAMoGACCLBQAAygYAIIwFAADKBgAgjQUAAMoGACCOBQAAygYAII8FAADKBgAgkAUAAMoGACCRBQAAygYAIJIFAADKBgAgkwUAAMoGACCUBQAAygYAIJUFAADKBgAglgUAAMoGACCXBQAAygYAIJgFAADKBgAgmQUAAMoGACCaBQAAygYAIJsFAADKBgAgLgMAALoGACDZAwAAyAYAMNoDAAAHABDbAwAAyAYAMN0DAQDpBQAh3gMBAOkFACHhAwEA6gUAIeIDAgCJBgAh4wMBAOkFACGJBAEA6QUAIakEAQAAAAHPBAEA6gUAIdAEAQDqBQAh0gQBAOkFACH2BAEA6gUAIfcEAQDqBQAh_wQBAOkFACGABQEA6QUAIYEFAQDqBQAhggUBAOkFACGDBQIA6wUAIYQFAQDqBQAhhQUBAOoFACGGBQEA6gUAIYcFAQDqBQAhiAUCAOsFACGJBQEA6gUAIYoFAQDqBQAhiwUBAOoFACGMBQEA6gUAIY0FAgCJBgAhjgUCAIkGACGPBQIAiQYAIZAFAQDqBQAhkQUBAOoFACGSBQIAiQYAIZMFAgCJBgAhlAUBAOoFACGVBQEA6gUAIZYFAQDqBQAhlwUBAOoFACGYBSAAoQYAIZkFIAChBgAhmgUgAKEGACGbBQEA6gUAIbYFAADHBgAgAwAAAAcAIAEAAAgAMAIAAAkAIAkDAAC6BgAg2QMAALkGADDaAwAACwAQ2wMAALkGADDdAwEA6QUAId4DAQDpBQAhiQQBAOkFACH9BAIA6wUAIf4EAQDpBQAhAQAAAAsAIBMHAAClBgAgCQAAtwYAINkDAAC2BgAw2gMAAA0AENsDAAC2BgAw3AMBAOkFACHeAwEA6QUAIeMDAQDpBQAhiQQBAOkFACHzBAEA6QUAIfQEAQDqBQAh9QQCAOsFACH2BAEA6QUAIfcEAQDqBQAh-AQCAOsFACH5BAIA6wUAIfoEAgDrBQAh-wQBAOoFACH8BAEA6gUAIQEAAAANACAeBAAAwgYAIAUAAMMGACAGAADEBgAgCAAAxQYAIAsAALcGACAMAADGBgAg2QMAAMEGADDaAwAADwAQ2wMAAMEGADDdAwEA6QUAId4DAQDpBQAh4wMBAOkFACGJBAEA6QUAIe0EAQDqBQAh9gQBAOkFACH3BAEA6gUAIf0EAgDrBQAhqQUBAOoFACGqBQEA6gUAIasFAQDqBQAhrAUBAOoFACGtBQEA6gUAIa4FAQDqBQAhrwUBAOoFACGwBQEA6gUAIbEFAQDqBQAhsgUBAOkFACGzBQIAiQYAIbQFAQDqBQAhtQUBAOoFACEUBAAA3ggAIAUAAN8IACAGAADgCAAgCAAA3QgAIAsAAMEIACAMAADhCAAg7QQAAMoGACD3BAAAygYAIKkFAADKBgAgqgUAAMoGACCrBQAAygYAIKwFAADKBgAgrQUAAMoGACCuBQAAygYAIK8FAADKBgAgsAUAAMoGACCxBQAAygYAILMFAADKBgAgtAUAAMoGACC1BQAAygYAIAMAAAAPACABAAAQADACAAABACAVAwAAugYAIAgAAMAGACDZAwAAvgYAMNoDAAASABDbAwAAvgYAMNwDAQDpBQAh3QMBAOkFACHeAwEA6QUAIeADAQDpBQAh4gMCAIkGACHwAwEA6QUAIZ4EAQDpBQAhqgQBAOoFACGrBAEA6gUAIc8EAQDqBQAh7QQBAOkFACHuBAgAmwYAIe8ECAC_BgAh8AQgAIAGACHxBAEA6gUAIfIEAQDqBQAhCQMAAMkIACAIAADdCAAg4gMAAMoGACCqBAAAygYAIKsEAADKBgAgzwQAAMoGACDvBAAAygYAIPEEAADKBgAg8gQAAMoGACAVAwAAugYAIAgAAMAGACDZAwAAvgYAMNoDAAASABDbAwAAvgYAMNwDAQAAAAHdAwEA6QUAId4DAQDpBQAh4AMBAOkFACHiAwIAiQYAIfADAQDpBQAhngQBAOkFACGqBAEA6gUAIasEAQDqBQAhzwQBAOoFACHtBAEA6QUAIe4ECACbBgAh7wQIAL8GACHwBCAAgAYAIfEEAQDqBQAh8gQBAOoFACEDAAAAEgAgAQAAEwAwAgAAFAAgAQAAAA8AIAEAAAASACADAAAAEgAgAQAAEwAwAgAAFAAgCQcAAKUGACDZAwAApAYAMNoDAAAZABDbAwAApAYAMNwDAQDpBQAh3gMBAOkFACHwAwEA6QUAIdsEAQDpBQAh3AQBAOkFACEBAAAAGQAgAwAAAA8AIAEAABAAMAIAAAEAIAEAAAAPACABAAAAAwAgAQAAAAcAIAEAAAASACABAAAAAQAgAwAAAA8AIAEAABAAMAIAAAEAIAMAAAAPACABAAAQADACAAABACADAAAADwAgAQAAEAAwAgAAAQAgGwQAAIUIACAFAACGCAAgBgAAhwgAIAgAAIgIACALAACJCAAgDAAAvggAIN0DAQAAAAHeAwEAAAAB4wMBAAAAAYkEAQAAAAHtBAEAAAAB9gQBAAAAAfcEAQAAAAH9BAIAAAABqQUBAAAAAaoFAQAAAAGrBQEAAAABrAUBAAAAAa0FAQAAAAGuBQEAAAABrwUBAAAAAbAFAQAAAAGxBQEAAAABsgUBAAAAAbMFAgAAAAG0BQEAAAABtQUBAAAAAQESAAAkACAV3QMBAAAAAd4DAQAAAAHjAwEAAAABiQQBAAAAAe0EAQAAAAH2BAEAAAAB9wQBAAAAAf0EAgAAAAGpBQEAAAABqgUBAAAAAasFAQAAAAGsBQEAAAABrQUBAAAAAa4FAQAAAAGvBQEAAAABsAUBAAAAAbEFAQAAAAGyBQEAAAABswUCAAAAAbQFAQAAAAG1BQEAAAABARIAACYAMAESAAAmADABAAAADQAgAQAAABkAIBsEAADTBwAgBQAA1AcAIAYAANUHACAIAADWBwAgCwAA1wcAIAwAALwIACDdAwEA0AYAId4DAQDQBgAh4wMBANAGACGJBAEA0AYAIe0EAQDRBgAh9gQBANAGACH3BAEA0QYAIf0EAgDSBgAhqQUBANEGACGqBQEA0QYAIasFAQDRBgAhrAUBANEGACGtBQEA0QYAIa4FAQDRBgAhrwUBANEGACGwBQEA0QYAIbEFAQDRBgAhsgUBANAGACGzBQIA6AYAIbQFAQDRBgAhtQUBANEGACECAAAAAQAgEgAAKwAgFd0DAQDQBgAh3gMBANAGACHjAwEA0AYAIYkEAQDQBgAh7QQBANEGACH2BAEA0AYAIfcEAQDRBgAh_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_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_gQBAOkFACEBAAAAZQAgAQAAAGUAIAEDAADJCAAgAwAAAAsAIAEAAGgAMAIAAGUAIAMAAAALACABAABoADACAABlACADAAAACwAgAQAAaAAwAgAAZQAgBgMAAMgIACDdAwEAAAAB3gMBAAAAAYkEAQAAAAH9BAIAAAAB_gQBAAAAAQESAABsACAF3QMBAAAAAd4DAQAAAAGJBAEAAAAB_QQCAAAAAf4EAQAAAAEBEgAAbgAwARIAAG4AMAYDAADHCAAg3QMBANAGACHeAwEA0AYAIYkEAQDQBgAh_QQCANIGACH-BAEA0AYAIQIAAABlACASAABxACAF3QMBANAGACHeAwEA0AYAIYkEAQDQBgAh_QQCANIGACH-BAEA0AYAIQIAAAALACASAABzACACAAAACwAgEgAAcwAgAwAAAGUAIBkAAGwAIBoAAHEAIAEAAABlACABAAAACwAgBQoAAMIIACAfAADDCAAgIAAAxggAICEAAMUIACAiAADECAAgCNkDAAC4BgAw2gMAAHoAENsDAAC4BgAw3QMBANcFACHeAwEA1wUAIYkEAQDXBQAh_QQCANkFACH-BAEA1wUAIQMAAAALACABAAB5ADAeAAB6ACADAAAACwAgAQAAaAAwAgAAZQAgEwcAAKUGACAJAAC3BgAg2QMAALYGADDaAwAADQAQ2wMAALYGADDcAwEAAAAB3gMBAOkFACHjAwEA6QUAIYkEAQDpBQAh8wQBAOkFACH0BAEA6gUAIfUEAgDrBQAh9gQBAOkFACH3BAEA6gUAIfgEAgDrBQAh-QQCAOsFACH6BAIA6wUAIfsEAQDqBQAh_AQBAOoFACEBAAAAfQAgAQAAAH0AIAYHAACLCAAgCQAAwQgAIPQEAADKBgAg9wQAAMoGACD7BAAAygYAIPwEAADKBgAgAwAAAA0AIAEAAIABADACAAB9ACADAAAADQAgAQAAgAEAMAIAAH0AIAMAAAANACABAACAAQAwAgAAfQAgEAcAAL8IACAJAADACAAg3AMBAAAAAd4DAQAAAAHjAwEAAAABiQQBAAAAAfMEAQAAAAH0BAEAAAAB9QQCAAAAAfYEAQAAAAH3BAEAAAAB-AQCAAAAAfkEAgAAAAH6BAIAAAAB-wQBAAAAAfwEAQAAAAEBEgAAhAEAIA7cAwEAAAAB3gMBAAAAAeMDAQAAAAGJBAEAAAAB8wQBAAAAAfQEAQAAAAH1BAIAAAAB9gQBAAAAAfcEAQAAAAH4BAIAAAAB-QQCAAAAAfoEAgAAAAH7BAEAAAAB_AQBAAAAAQESAACGAQAwARIAAIYBADAQBwAAqQgAIAkAAKoIACDcAwEA0AYAId4DAQDQBgAh4wMBANAGACGJBAEA0AYAIfMEAQDQBgAh9AQBANEGACH1BAIA0gYAIfYEAQDQBgAh9wQBANEGACH4BAIA0gYAIfkEAgDSBgAh-gQCANIGACH7BAEA0QYAIfwEAQDRBgAhAgAAAH0AIBIAAIkBACAO3AMBANAGACHeAwEA0AYAIeMDAQDQBgAhiQQBANAGACHzBAEA0AYAIfQEAQDRBgAh9QQCANIGACH2BAEA0AYAIfcEAQDRBgAh-AQCANIGACH5BAIA0gYAIfoEAgDSBgAh-wQBANEGACH8BAEA0QYAIQIAAAANACASAACLAQAgAgAAAA0AIBIAAIsBACADAAAAfQAgGQAAhAEAIBoAAIkBACABAAAAfQAgAQAAAA0AIAkKAACkCAAgHwAApQgAICAAAKgIACAhAACnCAAgIgAApggAIPQEAADKBgAg9wQAAMoGACD7BAAAygYAIPwEAADKBgAgEdkDAAC1BgAw2gMAAJIBABDbAwAAtQYAMNwDAQDXBQAh3gMBANcFACHjAwEA1wUAIYkEAQDXBQAh8wQBANcFACH0BAEA2AUAIfUEAgDZBQAh9gQBANcFACH3BAEA2AUAIfgEAgDZBQAh-QQCANkFACH6BAIA2QUAIfsEAQDYBQAh_AQBANgFACEDAAAADQAgAQAAkQEAMB4AAJIBACADAAAADQAgAQAAgAEAMAIAAH0AIAEAAAAUACABAAAAFAAgAwAAABIAIAEAABMAMAIAABQAIAMAAAASACABAAATADACAAAUACADAAAAEgAgAQAAEwAwAgAAFAAgEgMAAKMIACAIAADmBwAg3AMBAAAAAd0DAQAAAAHeAwEAAAAB4AMBAAAAAeIDAgAAAAHwAwEAAAABngQBAAAAAaoEAQAAAAGrBAEAAAABzwQBAAAAAe0EAQAAAAHuBAgAAAAB7wQIAAAAAfAEIAAAAAHxBAEAAAAB8gQBAAAAAQESAACaAQAgENwDAQAAAAHdAwEAAAAB3gMBAAAAAeADAQAAAAHiAwIAAAAB8AMBAAAAAZ4EAQAAAAGqBAEAAAABqwQBAAAAAc8EAQAAAAHtBAEAAAAB7gQIAAAAAe8ECAAAAAHwBCAAAAAB8QQBAAAAAfIEAQAAAAEBEgAAnAEAMAESAACcAQAwEgMAAKIIACAIAADkBwAg3AMBANAGACHdAwEA0AYAId4DAQDQBgAh4AMBANAGACHiAwIA6AYAIfADAQDQBgAhngQBANAGACGqBAEA0QYAIasEAQDRBgAhzwQBANEGACHtBAEA0AYAIe4ECAC9BwAh7wQIAOIHACHwBCAA8wYAIfEEAQDRBgAh8gQBANEGACECAAAAFAAgEgAAnwEAIBDcAwEA0AYAId0DAQDQBgAh3gMBANAGACHgAwEA0AYAIeIDAgDoBgAh8AMBANAGACGeBAEA0AYAIaoEAQDRBgAhqwQBANEGACHPBAEA0QYAIe0EAQDQBgAh7gQIAL0HACHvBAgA4gcAIfAEIADzBgAh8QQBANEGACHyBAEA0QYAIQIAAAASACASAAChAQAgAgAAABIAIBIAAKEBACADAAAAFAAgGQAAmgEAIBoAAJ8BACABAAAAFAAgAQAAABIAIAwKAACdCAAgHwAAnggAICAAAKEIACAhAACgCAAgIgAAnwgAIOIDAADKBgAgqgQAAMoGACCrBAAAygYAIM8EAADKBgAg7wQAAMoGACDxBAAAygYAIPIEAADKBgAgE9kDAACyBgAw2gMAAKgBABDbAwAAsgYAMNwDAQDXBQAh3QMBANcFACHeAwEA1wUAIeADAQDXBQAh4gMCAPcFACHwAwEA1wUAIZ4EAQDXBQAhqgQBANgFACGrBAEA2AUAIc8EAQDYBQAh7QQBANcFACHuBAgAmAYAIe8ECACzBgAh8AQgAPwFACHxBAEA2AUAIfIEAQDYBQAhAwAAABIAIAEAAKcBADAeAACoAQAgAwAAABIAIAEAABMAMAIAABQAIAfZAwAAsQYAMNoDAACuAQAQ2wMAALEGADDeAwEAAAABiQQBAOkFACHpBAEA6QUAIewEAQDqBQAhAQAAAKsBACABAAAAqwEAIAfZAwAAsQYAMNoDAACuAQAQ2wMAALEGADDeAwEA6QUAIYkEAQDpBQAh6QQBAOkFACHsBAEA6gUAIQHsBAAAygYAIAMAAACuAQAgAQAArwEAMAIAAKsBACADAAAArgEAIAEAAK8BADACAACrAQAgAwAAAK4BACABAACvAQAwAgAAqwEAIATeAwEAAAABiQQBAAAAAekEAQAAAAHsBAEAAAABARIAALMBACAE3gMBAAAAAYkEAQAAAAHpBAEAAAAB7AQBAAAAAQESAAC1AQAwARIAALUBADAE3gMBANAGACGJBAEA0AYAIekEAQDQBgAh7AQBANEGACECAAAAqwEAIBIAALgBACAE3gMBANAGACGJBAEA0AYAIekEAQDQBgAh7AQBANEGACECAAAArgEAIBIAALoBACACAAAArgEAIBIAALoBACADAAAAqwEAIBkAALMBACAaAAC4AQAgAQAAAKsBACABAAAArgEAIAQKAACaCAAgIQAAnAgAICIAAJsIACDsBAAAygYAIAfZAwAAsAYAMNoDAADBAQAQ2wMAALAGADDeAwEA1wUAIYkEAQDXBQAh6QQBANcFACHsBAEA2AUAIQMAAACuAQAgAQAAwAEAMB4AAMEBACADAAAArgEAIAEAAK8BADACAACrAQAgBtkDAACvBgAw2gMAAMcBABDbAwAArwYAMN4DAQAAAAGJBAEA6QUAIesEIACABgAhAQAAAMQBACABAAAAxAEAIAbZAwAArwYAMNoDAADHAQAQ2wMAAK8GADDeAwEA6QUAIYkEAQDpBQAh6wQgAIAGACEAAwAAAMcBACABAADIAQAwAgAAxAEAIAMAAADHAQAgAQAAyAEAMAIAAMQBACADAAAAxwEAIAEAAMgBADACAADEAQAgA94DAQAAAAGJBAEAAAAB6wQgAAAAAQESAADMAQAgA94DAQAAAAGJBAEAAAAB6wQgAAAAAQESAADOAQAwARIAAM4BADAD3gMBANAGACGJBAEA0AYAIesEIADzBgAhAgAAAMQBACASAADRAQAgA94DAQDQBgAhiQQBANAGACHrBCAA8wYAIQIAAADHAQAgEgAA0wEAIAIAAADHAQAgEgAA0wEAIAMAAADEAQAgGQAAzAEAIBoAANEBACABAAAAxAEAIAEAAADHAQAgAwoAAJcIACAhAACZCAAgIgAAmAgAIAbZAwAArgYAMNoDAADaAQAQ2wMAAK4GADDeAwEA1wUAIYkEAQDXBQAh6wQgAPwFACEDAAAAxwEAIAEAANkBADAeAADaAQAgAwAAAMcBACABAADIAQAwAgAAxAEAIAjZAwAArAYAMNoDAADgAQAQ2wMAAKwGADDeAwEA6QUAIeADAQDpBQAhiQQBAOkFACHpBAEA6QUAIeoEAACtBgAgAQAAAN0BACABAAAA3QEAIAfZAwAArAYAMNoDAADgAQAQ2wMAAKwGADDeAwEA6QUAIeADAQDpBQAhiQQBAOkFACHpBAEA6QUAIQADAAAA4AEAIAEAAOEBADACAADdAQAgAwAAAOABACABAADhAQAwAgAA3QEAIAMAAADgAQAgAQAA4QEAMAIAAN0BACAE3gMBAAAAAeADAQAAAAGJBAEAAAAB6QQBAAAAAQESAADlAQAgBN4DAQAAAAHgAwEAAAABiQQBAAAAAekEAQAAAAEBEgAA5wEAMAESAADnAQAwBN4DAQDQBgAh4AMBANAGACGJBAEA0AYAIekEAQDQBgAhAgAAAN0BACASAADqAQAgBN4DAQDQBgAh4AMBANAGACGJBAEA0AYAIekEAQDQBgAhAgAAAOABACASAADsAQAgAgAAAOABACASAADsAQAgAwAAAN0BACAZAADlAQAgGgAA6gEAIAEAAADdAQAgAQAAAOABACADCgAAlAgAICEAAJYIACAiAACVCAAgB9kDAACrBgAw2gMAAPMBABDbAwAAqwYAMN4DAQDXBQAh4AMBANcFACGJBAEA1wUAIekEAQDXBQAhAwAAAOABACABAADyAQAwHgAA8wEAIAMAAADgAQAgAQAA4QEAMAIAAN0BACAK2QMAAKoGADDaAwAA-QEAENsDAACqBgAw3QMBAAAAAd4DAQDpBQAh7wMBAOoFACHwAwEA6QUAIcMEAQAAAAHnBAEA6QUAIegEAQDqBQAhAQAAAPYBACABAAAA9gEAIArZAwAAqgYAMNoDAAD5AQAQ2wMAAKoGADDdAwEA6QUAId4DAQDpBQAh7wMBAOoFACHwAwEA6QUAIcMEAQDpBQAh5wQBAOkFACHoBAEA6gUAIQLvAwAAygYAIOgEAADKBgAgAwAAAPkBACABAAD6AQAwAgAA9gEAIAMAAAD5AQAgAQAA-gEAMAIAAPYBACADAAAA-QEAIAEAAPoBADACAAD2AQAgB90DAQAAAAHeAwEAAAAB7wMBAAAAAfADAQAAAAHDBAEAAAAB5wQBAAAAAegEAQAAAAEBEgAA_gEAIAfdAwEAAAAB3gMBAAAAAe8DAQAAAAHwAwEAAAABwwQBAAAAAecEAQAAAAHoBAEAAAABARIAAIACADABEgAAgAIAMAfdAwEA0AYAId4DAQDQBgAh7wMBANEGACHwAwEA0AYAIcMEAQDQBgAh5wQBANAGACHoBAEA0QYAIQIAAAD2AQAgEgAAgwIAIAfdAwEA0AYAId4DAQDQBgAh7wMBANEGACHwAwEA0AYAIcMEAQDQBgAh5wQBANAGACHoBAEA0QYAIQIAAAD5AQAgEgAAhQIAIAIAAAD5AQAgEgAAhQIAIAMAAAD2AQAgGQAA_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_ZAwAAlgYAMNoDAAD1AgAQ2wMAAJYGADDwAwEA6QUAIYkEAQDpBQAhqQQBAAAAAbkEAQDpBQAhugQBAOkFACG7BAEA6QUAIbwEAQDpBQAhvQQBAOkFACG-BAEA6QUAIb8EAQDpBQAhwAQBAOkFACHBBAEA6QUAIQEAAADyAgAgAQAAAPICACAP2QMAAJYGADDaAwAA9QIAENsDAACWBgAw8AMBAOkFACGJBAEA6QUAIakEAQDpBQAhuQQBAOkFACG6BAEA6QUAIbsEAQDpBQAhvAQBAOkFACG9BAEA6QUAIb4EAQDpBQAhvwQBAOkFACHABAEA6QUAIcEEAQDpBQAhAAMAAAD1AgAgAQAA9gIAMAIAAPICACADAAAA9QIAIAEAAPYCADACAADyAgAgAwAAAPUCACABAAD2AgAwAgAA8gIAIAzwAwEAAAABiQQBAAAAAakEAQAAAAG5BAEAAAABugQBAAAAAbsEAQAAAAG8BAEAAAABvQQBAAAAAb4EAQAAAAG_BAEAAAABwAQBAAAAAcEEAQAAAAEBEgAA-gIAIAzwAwEAAAABiQQBAAAAAakEAQAAAAG5BAEAAAABugQBAAAAAbsEAQAAAAG8BAEAAAABvQQBAAAAAb4EAQAAAAG_BAEAAAABwAQBAAAAAcEEAQAAAAEBEgAA_AIAMAESAAD8AgAwDPADAQDQBgAhiQQBANAGACGpBAEA0AYAIbkEAQDQBgAhugQBANAGACG7BAEA0AYAIbwEAQDQBgAhvQQBANAGACG-BAEA0AYAIb8EAQDQBgAhwAQBANAGACHBBAEA0AYAIQIAAADyAgAgEgAA_wIAIAzwAwEA0AYAIYkEAQDQBgAhqQQBANAGACG5BAEA0AYAIboEAQDQBgAhuwQBANAGACG8BAEA0AYAIb0EAQDQBgAhvgQBANAGACG_BAEA0AYAIcAEAQDQBgAhwQQBANAGACECAAAA9QIAIBIAAIEDACACAAAA9QIAIBIAAIEDACADAAAA8gIAIBkAAPoCACAaAAD_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_BQAw3AMBAAAAAfADQADtBQAhiQRAAO0FACGeBAEA6gUAIZ8EAQAAAAGgBCAAgAYAIaEEAQDqBQAhogQBAOoFACGjBAEA6QUAIQEAAACIBAAgFdUCAACFBgAg2QMAAIgGADDaAwAAigQAENsDAACIBgAw3AMBAOkFACHwA0AA7QUAIYkEQADtBQAhjAQBAOkFACGPBAEA6QUAIZAEAQDpBQAhkQQBAOkFACGSBAEA6gUAIZMEAQDqBQAhlAQBAOoFACGVBAIAiQYAIZYEQADsBQAhlwRAAOwFACGYBAEA6gUAIZkEAQDqBQAhmgQBAOoFACGbBAEA6gUAIQvVAgAAoQcAIJIEAADKBgAgkwQAAMoGACCUBAAAygYAIJUEAADKBgAglgQAAMoGACCXBAAAygYAIJgEAADKBgAgmQQAAMoGACCaBAAAygYAIJsEAADKBgAgFtUCAACFBgAg2QMAAIgGADDaAwAAigQAENsDAACIBgAw3AMBAAAAAfADQADtBQAhiQRAAO0FACGMBAEA6QUAIY8EAQDpBQAhkAQBAOkFACGRBAEA6QUAIZIEAQDqBQAhkwQBAOoFACGUBAEA6gUAIZUEAgCJBgAhlgRAAOwFACGXBEAA7AUAIZgEAQDqBQAhmQQBAOoFACGaBAEA6gUAIZsEAQDqBQAhpwQAAIcGACADAAAAigQAIAEAAIsEADACAACMBAAgDNUCAACFBgAg2QMAAIYGADDaAwAAjgQAENsDAACGBgAw3AMBAOkFACHwA0AA7QUAIYgEQADtBQAhiQRAAO0FACGLBAEA6QUAIYwEAQDpBQAhjQQBAOoFACGOBAEA6gUAIQPVAgAAoQcAII0EAADKBgAgjgQAAMoGACAM1QIAAIUGACDZAwAAhgYAMNoDAACOBAAQ2wMAAIYGADDcAwEAAAAB8ANAAO0FACGIBEAA7QUAIYkEQADtBQAhiwQBAAAAAYwEAQDpBQAhjQQBAOoFACGOBAEA6gUAIQMAAACOBAAgAQAAjwQAMAIAAJAEACAK1QIAAIUGACDZAwAAhAYAMNoDAACSBAAQ2wMAAIQGADDcAwEA6QUAIe8DQADtBQAh8ANAAO0FACGMBAEA6QUAIZwEAQDpBQAhnQRAAOwFACEC1QIAAKEHACCdBAAAygYAIArVAgAAhQYAINkDAACEBgAw2gMAAJIEABDbAwAAhAYAMNwDAQAAAAHvA0AA7QUAIfADQADtBQAhjAQBAOkFACGcBAEAAAABnQRAAOwFACEDAAAAkgQAIAEAAJMEADACAACUBAAgAQAAAIoEACABAAAAjgQAIAEAAACSBAAgAQAAAIgEACAP1gIAAIEGACDXAgAAggYAINgCAACDBgAg2QMAAP8FADDaAwAAmgQAENsDAAD_BQAw3AMBAOkFACHwA0AA7QUAIYkEQADtBQAhngQBAOoFACGfBAEA6gUAIaAEIACABgAhoQQBAOoFACGiBAEA6gUAIaMEAQDpBQAhB9YCAACeBwAg1wIAAJ8HACDYAgAAoAcAIJ4EAADKBgAgnwQAAMoGACChBAAAygYAIKIEAADKBgAgAwAAAJoEACABAACbBAAwAgAAiAQAIAMAAACaBAAgAQAAmwQAMAIAAIgEACADAAAAmgQAIAEAAJsEADACAACIBAAgDNYCAACbBwAg1wIAAJwHACDYAgAAnQcAINwDAQAAAAHwA0AAAAABiQRAAAAAAZ4EAQAAAAGfBAEAAAABoAQgAAAAAaEEAQAAAAGiBAEAAAABowQBAAAAAQESAACfBAAgCdwDAQAAAAHwA0AAAAABiQRAAAAAAZ4EAQAAAAGfBAEAAAABoAQgAAAAAaEEAQAAAAGiBAEAAAABowQBAAAAAQESAAChBAAwARIAAKEEADAM1gIAAPQGACDXAgAA9QYAINgCAAD2BgAg3AMBANAGACHwA0AA1AYAIYkEQADUBgAhngQBANEGACGfBAEA0QYAIaAEIADzBgAhoQQBANEGACGiBAEA0QYAIaMEAQDQBgAhAgAAAIgEACASAACkBAAgCdwDAQDQBgAh8ANAANQGACGJBEAA1AYAIZ4EAQDRBgAhnwQBANEGACGgBCAA8wYAIaEEAQDRBgAhogQBANEGACGjBAEA0AYAIQIAAACaBAAgEgAApgQAIAIAAACaBAAgEgAApgQAIAMAAACIBAAgGQAAnwQAIBoAAKQEACABAAAAiAQAIAEAAACaBAAgBwoAAPAGACAhAADyBgAgIgAA8QYAIJ4EAADKBgAgnwQAAMoGACChBAAAygYAIKIEAADKBgAgDNkDAAD7BQAw2gMAAK0EABDbAwAA-wUAMNwDAQDXBQAh8ANAANsFACGJBEAA2wUAIZ4EAQDYBQAhnwQBANgFACGgBCAA_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_AQAMAbcAwEA0AYAIfADQADUBgAhhgQBANAGACGHBAEA0AYAIYgEQADUBgAhiQRAANQGACECAAAA8gQAIBIAAP8EACAG3AMBANAGACHwA0AA1AYAIYYEAQDQBgAhhwQBANAGACGIBEAA1AYAIYkEQADUBgAhAgAAAPUEACASAACBBQAgAgAAAPUEACASAACBBQAgAwAAAPIEACAZAAD6BAAgGgAA_wQAIAEAAADyBAAgAQAAAPUEACADCgAA2wYAICEAAN0GACAiAADcBgAgCdkDAADyBQAw2gMAAIgFABDbAwAA8gUAMNwDAQDXBQAh8ANAANsFACGGBAEA1wUAIYcEAQDXBQAhiARAANsFACGJBEAA2wUAIQMAAAD1BAAgAQAAhwUAMB4AAIgFACADAAAA9QQAIAEAAPYEADACAADyBAAgENkDAADxBQAw2gMAAI4FABDbAwAA8QUAMNwDAQAAAAHdAwEA6gUAId4DAQDpBQAh4AMBAOoFACH9A0AA7QUAIf4DAQDpBQAh_wMBAOoFACGABAEA6QUAIYEEAQDpBQAhggQBAOkFACGDBAEA6QUAIYQEAQDqBQAhhQQBAOoFACEBAAAAiwUAIAEAAACLBQAgENkDAADxBQAw2gMAAI4FABDbAwAA8QUAMNwDAQDpBQAh3QMBAOoFACHeAwEA6QUAIeADAQDqBQAh_QNAAO0FACH-AwEA6QUAIf8DAQDqBQAhgAQBAOkFACGBBAEA6QUAIYIEAQDpBQAhgwQBAOkFACGEBAEA6gUAIYUEAQDqBQAhBd0DAADKBgAg4AMAAMoGACD_AwAAygYAIIQEAADKBgAghQQAAMoGACADAAAAjgUAIAEAAI8FADACAACLBQAgAwAAAI4FACABAACPBQAwAgAAiwUAIAMAAACOBQAgAQAAjwUAMAIAAIsFACAN3AMBAAAAAd0DAQAAAAHeAwEAAAAB4AMBAAAAAf0DQAAAAAH-AwEAAAAB_wMBAAAAAYAEAQAAAAGBBAEAAAABggQBAAAAAYMEAQAAAAGEBAEAAAABhQQBAAAAAQESAACTBQAgDdwDAQAAAAHdAwEAAAAB3gMBAAAAAeADAQAAAAH9A0AAAAAB_gMBAAAAAf8DAQAAAAGABAEAAAABgQQBAAAAAYIEAQAAAAGDBAEAAAABhAQBAAAAAYUEAQAAAAEBEgAAlQUAMAESAACVBQAwDdwDAQDQBgAh3QMBANEGACHeAwEA0AYAIeADAQDRBgAh_QNAANQGACH-AwEA0AYAIf8DAQDRBgAhgAQBANAGACGBBAEA0AYAIYIEAQDQBgAhgwQBANAGACGEBAEA0QYAIYUEAQDRBgAhAgAAAIsFACASAACYBQAgDdwDAQDQBgAh3QMBANEGACHeAwEA0AYAIeADAQDRBgAh_QNAANQGACH-AwEA0AYAIf8DAQDRBgAhgAQBANAGACGBBAEA0AYAIYIEAQDQBgAhgwQBANAGACGEBAEA0QYAIYUEAQDRBgAhAgAAAI4FACASAACaBQAgAgAAAI4FACASAACaBQAgAwAAAIsFACAZAACTBQAgGgAAmAUAIAEAAACLBQAgAQAAAI4FACAICgAA2AYAICEAANoGACAiAADZBgAg3QMAAMoGACDgAwAAygYAIP8DAADKBgAghAQAAMoGACCFBAAAygYAIBDZAwAA8AUAMNoDAAChBQAQ2wMAAPAFADDcAwEA1wUAId0DAQDYBQAh3gMBANcFACHgAwEA2AUAIf0DQADbBQAh_gMBANcFACH_AwEA2AUAIYAEAQDXBQAhgQQBANcFACGCBAEA1wUAIYMEAQDXBQAhhAQBANgFACGFBAEA2AUAIQMAAACOBQAgAQAAoAUAMB4AAKEFACADAAAAjgUAIAEAAI8FADACAACLBQAgBdkDAADvBQAw2gMAAKcFABDbAwAA7wUAMO8DQADtBQAh_AMBAAAAAQEAAACkBQAgAQAAAKQFACAF2QMAAO8FADDaAwAApwUAENsDAADvBQAw7wNAAO0FACH8AwEA6QUAIQADAAAApwUAIAEAAKgFADACAACkBQAgAwAAAKcFACABAACoBQAwAgAApAUAIAMAAACnBQAgAQAAqAUAMAIAAKQFACAC7wNAAAAAAfwDAQAAAAEBEgAArAUAIALvA0AAAAAB_AMBAAAAAQESAACuBQAwARIAAK4FADAC7wNAANQGACH8AwEA0AYAIQIAAACkBQAgEgAAsQUAIALvA0AA1AYAIfwDAQDQBgAhAgAAAKcFACASAACzBQAgAgAAAKcFACASAACzBQAgAwAAAKQFACAZAACsBQAgGgAAsQUAIAEAAACkBQAgAQAAAKcFACADCgAA1QYAICEAANcGACAiAADWBgAgBdkDAADuBQAw2gMAALoFABDbAwAA7gUAMO8DQADbBQAh_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-AMBAOYFACH5AwEAAAAB-gMBAAAAAfsDAQAAAAEOCgAA4AUAICEAAOUFACAiAADlBQAg8QMBAAAAAfIDAQAAAAXzAwEAAAAF9AMBAAAAAfUDAQAAAAH2AwEAAAAB9wMBAAAAAfgDAQDkBQAh-QMBAAAAAfoDAQAAAAH7AwEAAAABDQoAAN0FACAfAADjBQAgIAAA3QUAICEAAN0FACAiAADdBQAg8QMCAAAAAfIDAgAAAATzAwIAAAAE9AMCAAAAAfUDAgAAAAH2AwIAAAAB9wMCAAAAAfgDAgDiBQAhCwoAAOAFACAhAADhBQAgIgAA4QUAIPEDQAAAAAHyA0AAAAAF8wNAAAAABfQDQAAAAAH1A0AAAAAB9gNAAAAAAfcDQAAAAAH4A0AA3wUAIQsKAADdBQAgIQAA3gUAICIAAN4FACDxA0AAAAAB8gNAAAAABPMDQAAAAAT0A0AAAAAB9QNAAAAAAfYDQAAAAAH3A0AAAAAB-ANAANwFACELCgAA3QUAICEAAN4FACAiAADeBQAg8QNAAAAAAfIDQAAAAATzA0AAAAAE9ANAAAAAAfUDQAAAAAH2A0AAAAAB9wNAAAAAAfgDQADcBQAhCPEDAgAAAAHyAwIAAAAE8wMCAAAABPQDAgAAAAH1AwIAAAAB9gMCAAAAAfcDAgAAAAH4AwIA3QUAIQjxA0AAAAAB8gNAAAAABPMDQAAAAAT0A0AAAAAB9QNAAAAAAfYDQAAAAAH3A0AAAAAB-ANAAN4FACELCgAA4AUAICEAAOEFACAiAADhBQAg8QNAAAAAAfIDQAAAAAXzA0AAAAAF9ANAAAAAAfUDQAAAAAH2A0AAAAAB9wNAAAAAAfgDQADfBQAhCPEDAgAAAAHyAwIAAAAF8wMCAAAABfQDAgAAAAH1AwIAAAAB9gMCAAAAAfcDAgAAAAH4AwIA4AUAIQjxA0AAAAAB8gNAAAAABfMDQAAAAAX0A0AAAAAB9QNAAAAAAfYDQAAAAAH3A0AAAAAB-ANAAOEFACENCgAA3QUAIB8AAOMFACAgAADdBQAgIQAA3QUAICIAAN0FACDxAwIAAAAB8gMCAAAABPMDAgAAAAT0AwIAAAAB9QMCAAAAAfYDAgAAAAH3AwIAAAAB-AMCAOIFACEI8QMIAAAAAfIDCAAAAATzAwgAAAAE9AMIAAAAAfUDCAAAAAH2AwgAAAAB9wMIAAAAAfgDCADjBQAhDgoAAOAFACAhAADlBQAgIgAA5QUAIPEDAQAAAAHyAwEAAAAF8wMBAAAABfQDAQAAAAH1AwEAAAAB9gMBAAAAAfcDAQAAAAH4AwEA5AUAIfkDAQAAAAH6AwEAAAAB-wMBAAAAAQvxAwEAAAAB8gMBAAAABfMDAQAAAAX0AwEAAAAB9QMBAAAAAfYDAQAAAAH3AwEAAAAB-AMBAOUFACH5AwEAAAAB-gMBAAAAAfsDAQAAAAEOCgAA3QUAICEAAOcFACAiAADnBQAg8QMBAAAAAfIDAQAAAATzAwEAAAAE9AMBAAAAAfUDAQAAAAH2AwEAAAAB9wMBAAAAAfgDAQDmBQAh-QMBAAAAAfoDAQAAAAH7AwEAAAABC_EDAQAAAAHyAwEAAAAE8wMBAAAABPQDAQAAAAH1AwEAAAAB9gMBAAAAAfcDAQAAAAH4AwEA5wUAIfkDAQAAAAH6AwEAAAAB-wMBAAAAARjZAwAA6AUAMNoDAADABQAQ2wMAAOgFADDcAwEA6QUAId0DAQDpBQAh3gMBAOkFACHfAwEA6gUAIeADAQDpBQAh4QMBAOkFACHiAwIA6wUAIeMDAQDpBQAh5AMBAOkFACHlAwEA6QUAIeYDAQDpBQAh5wMBAOkFACHoAwEA6QUAIekDAQDpBQAh6gMBAOoFACHrAwEA6gUAIewDQADsBQAh7QMBAOoFACHuAwEA6QUAIe8DQADtBQAh8ANAAO0FACEL8QMBAAAAAfIDAQAAAATzAwEAAAAE9AMBAAAAAfUDAQAAAAH2AwEAAAAB9wMBAAAAAfgDAQDnBQAh-QMBAAAAAfoDAQAAAAH7AwEAAAABC_EDAQAAAAHyAwEAAAAF8wMBAAAABfQDAQAAAAH1AwEAAAAB9gMBAAAAAfcDAQAAAAH4AwEA5QUAIfkDAQAAAAH6AwEAAAAB-wMBAAAAAQjxAwIAAAAB8gMCAAAABPMDAgAAAAT0AwIAAAAB9QMCAAAAAfYDAgAAAAH3AwIAAAAB-AMCAN0FACEI8QNAAAAAAfIDQAAAAAXzA0AAAAAF9ANAAAAAAfUDQAAAAAH2A0AAAAAB9wNAAAAAAfgDQADhBQAhCPEDQAAAAAHyA0AAAAAE8wNAAAAABPQDQAAAAAH1A0AAAAAB9gNAAAAAAfcDQAAAAAH4A0AA3gUAIQXZAwAA7gUAMNoDAAC6BQAQ2wMAAO4FADDvA0AA2wUAIfwDAQDXBQAhBdkDAADvBQAw2gMAAKcFABDbAwAA7wUAMO8DQADtBQAh_AMBAOkFACEQ2QMAAPAFADDaAwAAoQUAENsDAADwBQAw3AMBANcFACHdAwEA2AUAId4DAQDXBQAh4AMBANgFACH9A0AA2wUAIf4DAQDXBQAh_wMBANgFACGABAEA1wUAIYEEAQDXBQAhggQBANcFACGDBAEA1wUAIYQEAQDYBQAhhQQBANgFACEQ2QMAAPEFADDaAwAAjgUAENsDAADxBQAw3AMBAOkFACHdAwEA6gUAId4DAQDpBQAh4AMBAOoFACH9A0AA7QUAIf4DAQDpBQAh_wMBAOoFACGABAEA6QUAIYEEAQDpBQAhggQBAOkFACGDBAEA6QUAIYQEAQDqBQAhhQQBAOoFACEJ2QMAAPIFADDaAwAAiAUAENsDAADyBQAw3AMBANcFACHwA0AA2wUAIYYEAQDXBQAhhwQBANcFACGIBEAA2wUAIYkEQADbBQAhCdkDAADzBQAw2gMAAPUEABDbAwAA8wUAMNwDAQDpBQAh8ANAAO0FACGGBAEA6QUAIYcEAQDpBQAhiARAAO0FACGJBEAA7QUAIQKGBAEAAAABhwQBAAAAAQvZAwAA9QUAMNoDAADvBAAQ2wMAAPUFADDcAwEA1wUAIfADQADbBQAhiARAANsFACGJBEAA2wUAIYsEAQDXBQAhjAQBANcFACGNBAEA2AUAIY4EAQDYBQAhFNkDAAD2BQAw2gMAANkEABDbAwAA9gUAMNwDAQDXBQAh8ANAANsFACGJBEAA2wUAIYwEAQDXBQAhjwQBANcFACGQBAEA1wUAIZEEAQDXBQAhkgQBANgFACGTBAEA2AUAIZQEAQDYBQAhlQQCAPcFACGWBEAA2gUAIZcEQADaBQAhmAQBANgFACGZBAEA2AUAIZoEAQDYBQAhmwQBANgFACENCgAA4AUAIB8AAPkFACAgAADgBQAgIQAA4AUAICIAAOAFACDxAwIAAAAB8gMCAAAABfMDAgAAAAX0AwIAAAAB9QMCAAAAAfYDAgAAAAH3AwIAAAAB-AMCAPgFACENCgAA4AUAIB8AAPkFACAgAADgBQAgIQAA4AUAICIAAOAFACDxAwIAAAAB8gMCAAAABfMDAgAAAAX0AwIAAAAB9QMCAAAAAfYDAgAAAAH3AwIAAAAB-AMCAPgFACEI8QMIAAAAAfIDCAAAAAXzAwgAAAAF9AMIAAAAAfUDCAAAAAH2AwgAAAAB9wMIAAAAAfgDCAD5BQAhCdkDAAD6BQAw2gMAAMMEABDbAwAA-gUAMNwDAQDXBQAh7wNAANsFACHwA0AA2wUAIYwEAQDXBQAhnAQBANcFACGdBEAA2gUAIQzZAwAA-wUAMNoDAACtBAAQ2wMAAPsFADDcAwEA1wUAIfADQADbBQAhiQRAANsFACGeBAEA2AUAIZ8EAQDYBQAhoAQgAPwFACGhBAEA2AUAIaIEAQDYBQAhowQBANcFACEFCgAA3QUAICEAAP4FACAiAAD-BQAg8QMgAAAAAfgDIAD9BQAhBQoAAN0FACAhAAD-BQAgIgAA_gUAIPEDIAAAAAH4AyAA_QUAIQLxAyAAAAAB-AMgAP4FACEP1gIAAIEGACDXAgAAggYAINgCAACDBgAg2QMAAP8FADDaAwAAmgQAENsDAAD_BQAw3AMBAOkFACHwA0AA7QUAIYkEQADtBQAhngQBAOoFACGfBAEA6gUAIaAEIACABgAhoQQBAOoFACGiBAEA6gUAIaMEAQDpBQAhAvEDIAAAAAH4AyAA_gUAIQOkBAAAigQAIKUEAACKBAAgpgQAAIoEACADpAQAAI4EACClBAAAjgQAIKYEAACOBAAgA6QEAACSBAAgpQQAAJIEACCmBAAAkgQAIArVAgAAhQYAINkDAACEBgAw2gMAAJIEABDbAwAAhAYAMNwDAQDpBQAh7wNAAO0FACHwA0AA7QUAIYwEAQDpBQAhnAQBAOkFACGdBEAA7AUAIRHWAgAAgQYAINcCAACCBgAg2AIAAIMGACDZAwAA_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-QQCANkFACH6BAIA2QUAIfsEAQDYBQAh_AQBANgFACETBwAApQYAIAkAALcGACDZAwAAtgYAMNoDAAANABDbAwAAtgYAMNwDAQDpBQAh3gMBAOkFACHjAwEA6QUAIYkEAQDpBQAh8wQBAOkFACH0BAEA6gUAIfUEAgDrBQAh9gQBAOkFACH3BAEA6gUAIfgEAgDrBQAh-QQCAOsFACH6BAIA6wUAIfsEAQDqBQAh_AQBAOoFACEDpAQAABIAIKUEAAASACCmBAAAEgAgCNkDAAC4BgAw2gMAAHoAENsDAAC4BgAw3QMBANcFACHeAwEA1wUAIYkEAQDXBQAh_QQCANkFACH-BAEA1wUAIQkDAAC6BgAg2QMAALkGADDaAwAACwAQ2wMAALkGADDdAwEA6QUAId4DAQDpBQAhiQQBAOkFACH9BAIA6wUAIf4EAQDpBQAhIAQAAMIGACAFAADDBgAgBgAAxAYAIAgAAMUGACALAAC3BgAgDAAAxgYAINkDAADBBgAw2gMAAA8AENsDAADBBgAw3QMBAOkFACHeAwEA6QUAIeMDAQDpBQAhiQQBAOkFACHtBAEA6gUAIfYEAQDpBQAh9wQBAOoFACH9BAIA6wUAIakFAQDqBQAhqgUBAOoFACGrBQEA6gUAIawFAQDqBQAhrQUBAOoFACGuBQEA6gUAIa8FAQDqBQAhsAUBAOoFACGxBQEA6gUAIbIFAQDpBQAhswUCAIkGACG0BQEA6gUAIbUFAQDqBQAhtwUAAA8AILgFAAAPACAs2QMAALsGADDaAwAAYgAQ2wMAALsGADDdAwEA1wUAId4DAQDXBQAh4QMBANgFACHiAwIA9wUAIeMDAQDXBQAhiQQBANcFACGpBAEA1wUAIc8EAQDYBQAh0AQBANgFACHSBAEA1wUAIfYEAQDYBQAh9wQBANgFACH_BAEA1wUAIYAFAQDXBQAhgQUBANgFACGCBQEA1wUAIYMFAgDZBQAhhAUBANgFACGFBQEA2AUAIYYFAQDYBQAhhwUBANgFACGIBQIA2QUAIYkFAQDYBQAhigUBANgFACGLBQEA2AUAIYwFAQDYBQAhjQUCAPcFACGOBQIA9wUAIY8FAgD3BQAhkAUBANgFACGRBQEA2AUAIZIFAgD3BQAhkwUCAPcFACGUBQEA2AUAIZUFAQDYBQAhlgUBANgFACGXBQEA2AUAIZgFIACdBgAhmQUgAJ0GACGaBSAAnQYAIZsFAQDYBQAhFtkDAAC8BgAw2gMAAEwAENsDAAC8BgAw3QMBANcFACHeAwEA1wUAIeMDAQDXBQAhggUBANcFACGEBQEA2AUAIYsFAQDYBQAhnAUBANcFACGdBQEA1wUAIZ4FAQDYBQAhnwUBANgFACGgBQEA2AUAIaEFAQDYBQAhogUBANcFACGjBQEA1wUAIaQFAQDYBQAhpQUBANgFACGmBQEA2AUAIacFAgDZBQAhqAUBANcFACEY2QMAAL0GADDaAwAANgAQ2wMAAL0GADDdAwEA1wUAId4DAQDXBQAh4wMBANcFACGJBAEA1wUAIe0EAQDYBQAh9gQBANcFACH3BAEA2AUAIf0EAgDZBQAhqQUBANgFACGqBQEA2AUAIasFAQDYBQAhrAUBANgFACGtBQEA2AUAIa4FAQDYBQAhrwUBANgFACGwBQEA2AUAIbEFAQDYBQAhsgUBANcFACGzBQIA9wUAIbQFAQDYBQAhtQUBANgFACEVAwAAugYAIAgAAMAGACDZAwAAvgYAMNoDAAASABDbAwAAvgYAMNwDAQDpBQAh3QMBAOkFACHeAwEA6QUAIeADAQDpBQAh4gMCAIkGACHwAwEA6QUAIZ4EAQDpBQAhqgQBAOoFACGrBAEA6gUAIc8EAQDqBQAh7QQBAOkFACHuBAgAmwYAIe8ECAC_BgAh8AQgAIAGACHxBAEA6gUAIfIEAQDqBQAhCPEDCAAAAAHyAwgAAAAF8wMIAAAABfQDCAAAAAH1AwgAAAAB9gMIAAAAAfcDCAAAAAH4AwgA-QUAIRUHAAClBgAgCQAAtwYAINkDAAC2BgAw2gMAAA0AENsDAAC2BgAw3AMBAOkFACHeAwEA6QUAIeMDAQDpBQAhiQQBAOkFACHzBAEA6QUAIfQEAQDqBQAh9QQCAOsFACH2BAEA6QUAIfcEAQDqBQAh-AQCAOsFACH5BAIA6wUAIfoEAgDrBQAh-wQBAOoFACH8BAEA6gUAIbcFAAANACC4BQAADQAgHgQAAMIGACAFAADDBgAgBgAAxAYAIAgAAMUGACALAAC3BgAgDAAAxgYAINkDAADBBgAw2gMAAA8AENsDAADBBgAw3QMBAOkFACHeAwEA6QUAIeMDAQDpBQAhiQQBAOkFACHtBAEA6gUAIfYEAQDpBQAh9wQBAOoFACH9BAIA6wUAIakFAQDqBQAhqgUBAOoFACGrBQEA6gUAIawFAQDqBQAhrQUBAOoFACGuBQEA6gUAIa8FAQDqBQAhsAUBAOoFACGxBQEA6gUAIbIFAQDpBQAhswUCAIkGACG0BQEA6gUAIbUFAQDqBQAhA6QEAAADACClBAAAAwAgpgQAAAMAIAOkBAAABwAgpQQAAAcAIKYEAAAHACALAwAAugYAINkDAAC5BgAw2gMAAAsAENsDAAC5BgAw3QMBAOkFACHeAwEA6QUAIYkEAQDpBQAh_QQCAOsFACH-BAEA6QUAIbcFAAALACC4BQAACwAgFQcAAKUGACAJAAC3BgAg2QMAALYGADDaAwAADQAQ2wMAALYGADDcAwEA6QUAId4DAQDpBQAh4wMBAOkFACGJBAEA6QUAIfMEAQDpBQAh9AQBAOoFACH1BAIA6wUAIfYEAQDpBQAh9wQBAOoFACH4BAIA6wUAIfkEAgDrBQAh-gQCAOsFACH7BAEA6gUAIfwEAQDqBQAhtwUAAA0AILgFAAANACALBwAApQYAINkDAACkBgAw2gMAABkAENsDAACkBgAw3AMBAOkFACHeAwEA6QUAIfADAQDpBQAh2wQBAOkFACHcBAEA6QUAIbcFAAAZACC4BQAAGQAgA90DAQAAAAH_BAEAAAABgwUCAAAAAS0DAAC6BgAg2QMAAMgGADDaAwAABwAQ2wMAAMgGADDdAwEA6QUAId4DAQDpBQAh4QMBAOoFACHiAwIAiQYAIeMDAQDpBQAhiQQBAOkFACGpBAEA6QUAIc8EAQDqBQAh0AQBAOoFACHSBAEA6QUAIfYEAQDqBQAh9wQBAOoFACH_BAEA6QUAIYAFAQDpBQAhgQUBAOoFACGCBQEA6QUAIYMFAgDrBQAhhAUBAOoFACGFBQEA6gUAIYYFAQDqBQAhhwUBAOoFACGIBQIA6wUAIYkFAQDqBQAhigUBAOoFACGLBQEA6gUAIYwFAQDqBQAhjQUCAIkGACGOBQIAiQYAIY8FAgCJBgAhkAUBAOoFACGRBQEA6gUAIZIFAgCJBgAhkwUCAIkGACGUBQEA6gUAIZUFAQDqBQAhlgUBAOoFACGXBQEA6gUAIZgFIAChBgAhmQUgAKEGACGaBSAAoQYAIZsFAQDqBQAhFwMAALoGACDZAwAAyQYAMNoDAAADABDbAwAAyQYAMN0DAQDpBQAh3gMBAOkFACHjAwEA6QUAIYIFAQDpBQAhhAUBAOoFACGLBQEA6gUAIZwFAQDpBQAhnQUBAOkFACGeBQEA6gUAIZ8FAQDqBQAhoAUBAOoFACGhBQEA6gUAIaIFAQDpBQAhowUBAOkFACGkBQEA6gUAIaUFAQDqBQAhpgUBAOoFACGnBQIA6wUAIagFAQDpBQAhAAAAAAAAAbwFAQAAAAEBvAUBAAAAAQW8BQIAAAABwgUCAAAAAcMFAgAAAAHEBQIAAAABxQUCAAAAAQG8BUAAAAABAbwFQAAAAAEAAAAAAAAAAAAAAAAFGQAAmAkAIBoAAJsJACC5BQAAmQkAILoFAACaCQAgvwUAAIgEACADGQAAmAkAILkFAACZCQAgvwUAAIgEACAAAAAAAAW8BQIAAAABwgUCAAAAAcMFAgAAAAHEBQIAAAABxQUCAAAAAQUZAACTCQAgGgAAlgkAILkFAACUCQAgugUAAJUJACC_BQAAiAQAIAMZAACTCQAguQUAAJQJACC_BQAAiAQAIAAAAAUZAACOCQAgGgAAkQkAILkFAACPCQAgugUAAJAJACC_BQAAiAQAIAMZAACOCQAguQUAAI8JACC_BQAAiAQAIAAAAAG8BSAAAAABCxkAAI8HADAaAACUBwAwuQUAAJAHADC6BQAAkQcAMLsFAACSBwAgvAUAAJMHADC9BQAAkwcAML4FAACTBwAwvwUAAJMHADDABQAAlQcAMMEFAACWBwAwCxkAAIMHADAaAACIBwAwuQUAAIQHADC6BQAAhQcAMLsFAACGBwAgvAUAAIcHADC9BQAAhwcAML4FAACHBwAwvwUAAIcHADDABQAAiQcAMMEFAACKBwAwCxkAAPcGADAaAAD8BgAwuQUAAPgGADC6BQAA-QYAMLsFAAD6BgAgvAUAAPsGADC9BQAA-wYAML4FAAD7BgAwvwUAAPsGADDABQAA_QYAMMEFAAD-BgAwBdwDAQAAAAHvA0AAAAAB8ANAAAAAAZwEAQAAAAGdBEAAAAABAgAAAJQEACAZAACCBwAgAwAAAJQEACAZAACCBwAgGgAAgQcAIAESAACNCQAwCtUCAACFBgAg2QMAAIQGADDaAwAAkgQAENsDAACEBgAw3AMBAAAAAe8DQADtBQAh8ANAAO0FACGMBAEA6QUAIZwEAQAAAAGdBEAA7AUAIQIAAACUBAAgEgAAgQcAIAIAAAD_BgAgEgAAgAcAIAnZAwAA_gYAMNoDAAD_BgAQ2wMAAP4GADDcAwEA6QUAIe8DQADtBQAh8ANAAO0FACGMBAEA6QUAIZwEAQDpBQAhnQRAAOwFACEJ2QMAAP4GADDaAwAA_wYAENsDAAD-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_BQAAhwcAMAQZAAD3BgAwuQUAAPgGADC7BQAA-gYAIL8FAAD7BgAwAAAAB9YCAACeBwAg1wIAAJ8HACDYAgAAoAcAIJ4EAADKBgAgnwQAAMoGACChBAAAygYAIKIEAADKBgAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABbwFCAAAAAHCBQgAAAABwwUIAAAAAcQFCAAAAAHFBQgAAAABAAAAAAABvAUgAAAAAQAAAAsZAADIBwAwGgAAzQcAMLkFAADJBwAwugUAAMoHADC7BQAAywcAILwFAADMBwAwvQUAAMwHADC-BQAAzAcAML8FAADMBwAwwAUAAM4HADDBBQAAzwcAMBkEAACFCAAgBQAAhggAIAYAAIcIACAIAACICAAgCwAAiQgAIN0DAQAAAAHeAwEAAAAB4wMBAAAAAYkEAQAAAAHtBAEAAAAB9gQBAAAAAfcEAQAAAAH9BAIAAAABqQUBAAAAAaoFAQAAAAGrBQEAAAABrAUBAAAAAa4FAQAAAAGvBQEAAAABsAUBAAAAAbEFAQAAAAGyBQEAAAABswUCAAAAAbQFAQAAAAG1BQEAAAABAgAAAAEAIBkAAIQIACADAAAAAQAgGQAAhAgAIBoAANIHACABEgAAigkAMB4EAADCBgAgBQAAwwYAIAYAAMQGACAIAADFBgAgCwAAtwYAIAwAAMYGACDZAwAAwQYAMNoDAAAPABDbAwAAwQYAMN0DAQAAAAHeAwEA6QUAIeMDAQDpBQAhiQQBAOkFACHtBAEA6gUAIfYEAQDpBQAh9wQBAOoFACH9BAIA6wUAIakFAQDqBQAhqgUBAOoFACGrBQEA6gUAIawFAQDqBQAhrQUBAOoFACGuBQEA6gUAIa8FAQDqBQAhsAUBAOoFACGxBQEA6gUAIbIFAQDpBQAhswUCAIkGACG0BQEA6gUAIbUFAQDqBQAhAgAAAAEAIBIAANIHACACAAAA0AcAIBIAANEHACAY2QMAAM8HADDaAwAA0AcAENsDAADPBwAw3QMBAOkFACHeAwEA6QUAIeMDAQDpBQAhiQQBAOkFACHtBAEA6gUAIfYEAQDpBQAh9wQBAOoFACH9BAIA6wUAIakFAQDqBQAhqgUBAOoFACGrBQEA6gUAIawFAQDqBQAhrQUBAOoFACGuBQEA6gUAIa8FAQDqBQAhsAUBAOoFACGxBQEA6gUAIbIFAQDpBQAhswUCAIkGACG0BQEA6gUAIbUFAQDqBQAhGNkDAADPBwAw2gMAANAHABDbAwAAzwcAMN0DAQDpBQAh3gMBAOkFACHjAwEA6QUAIYkEAQDpBQAh7QQBAOoFACH2BAEA6QUAIfcEAQDqBQAh_QQCAOsFACGpBQEA6gUAIaoFAQDqBQAhqwUBAOoFACGsBQEA6gUAIa0FAQDqBQAhrgUBAOoFACGvBQEA6gUAIbAFAQDqBQAhsQUBAOoFACGyBQEA6QUAIbMFAgCJBgAhtAUBAOoFACG1BQEA6gUAIRTdAwEA0AYAId4DAQDQBgAh4wMBANAGACGJBAEA0AYAIe0EAQDRBgAh9gQBANAGACH3BAEA0QYAIf0EAgDSBgAhqQUBANEGACGqBQEA0QYAIasFAQDRBgAhrAUBANEGACGuBQEA0QYAIa8FAQDRBgAhsAUBANEGACGxBQEA0QYAIbIFAQDQBgAhswUCAOgGACG0BQEA0QYAIbUFAQDRBgAhGQQAANMHACAFAADUBwAgBgAA1QcAIAgAANYHACALAADXBwAg3QMBANAGACHeAwEA0AYAIeMDAQDQBgAhiQQBANAGACHtBAEA0QYAIfYEAQDQBgAh9wQBANEGACH9BAIA0gYAIakFAQDRBgAhqgUBANEGACGrBQEA0QYAIawFAQDRBgAhrgUBANEGACGvBQEA0QYAIbAFAQDRBgAhsQUBANEGACGyBQEA0AYAIbMFAgDoBgAhtAUBANEGACG1BQEA0QYAIQsZAAD4BwAwGgAA_QcAMLkFAAD5BwAwugUAAPoHADC7BQAA-wcAILwFAAD8BwAwvQUAAPwHADC-BQAA_AcAML8FAAD8BwAwwAUAAP4HADDBBQAA_wcAMAsZAADsBwAwGgAA8QcAMLkFAADtBwAwugUAAO4HADC7BQAA7wcAILwFAADwBwAwvQUAAPAHADC-BQAA8AcAML8FAADwBwAwwAUAAPIHADDBBQAA8wcAMAcZAADnBwAgGgAA6gcAILkFAADoBwAgugUAAOkHACC9BQAACwAgvgUAAAsAIL8FAABlACAHGQAA_QgAIBoAAIgJACC5BQAA_ggAILoFAACHCQAgvQUAAA0AIL4FAAANACC_BQAAfQAgCxkAANgHADAaAADdBwAwuQUAANkHADC6BQAA2gcAMLsFAADbBwAgvAUAANwHADC9BQAA3AcAML4FAADcBwAwvwUAANwHADDABQAA3gcAMMEFAADfBwAwEAgAAOYHACDcAwEAAAAB3gMBAAAAAeADAQAAAAHiAwIAAAAB8AMBAAAAAZ4EAQAAAAGqBAEAAAABqwQBAAAAAc8EAQAAAAHtBAEAAAAB7gQIAAAAAe8ECAAAAAHwBCAAAAAB8QQBAAAAAfIEAQAAAAECAAAAFAAgGQAA5QcAIAMAAAAUACAZAADlBwAgGgAA4wcAIAESAACGCQAwFQMAALoGACAIAADABgAg2QMAAL4GADDaAwAAEgAQ2wMAAL4GADDcAwEAAAAB3QMBAOkFACHeAwEA6QUAIeADAQDpBQAh4gMCAIkGACHwAwEA6QUAIZ4EAQDpBQAhqgQBAOoFACGrBAEA6gUAIc8EAQDqBQAh7QQBAOkFACHuBAgAmwYAIe8ECAC_BgAh8AQgAIAGACHxBAEA6gUAIfIEAQDqBQAhAgAAABQAIBIAAOMHACACAAAA4AcAIBIAAOEHACAT2QMAAN8HADDaAwAA4AcAENsDAADfBwAw3AMBAOkFACHdAwEA6QUAId4DAQDpBQAh4AMBAOkFACHiAwIAiQYAIfADAQDpBQAhngQBAOkFACGqBAEA6gUAIasEAQDqBQAhzwQBAOoFACHtBAEA6QUAIe4ECACbBgAh7wQIAL8GACHwBCAAgAYAIfEEAQDqBQAh8gQBAOoFACET2QMAAN8HADDaAwAA4AcAENsDAADfBwAw3AMBAOkFACHdAwEA6QUAId4DAQDpBQAh4AMBAOkFACHiAwIAiQYAIfADAQDpBQAhngQBAOkFACGqBAEA6gUAIasEAQDqBQAhzwQBAOoFACHtBAEA6QUAIe4ECACbBgAh7wQIAL8GACHwBCAAgAYAIfEEAQDqBQAh8gQBAOoFACEP3AMBANAGACHeAwEA0AYAIeADAQDQBgAh4gMCAOgGACHwAwEA0AYAIZ4EAQDQBgAhqgQBANEGACGrBAEA0QYAIc8EAQDRBgAh7QQBANAGACHuBAgAvQcAIe8ECADiBwAh8AQgAPMGACHxBAEA0QYAIfIEAQDRBgAhBbwFCAAAAAHCBQgAAAABwwUIAAAAAcQFCAAAAAHFBQgAAAABEAgAAOQHACDcAwEA0AYAId4DAQDQBgAh4AMBANAGACHiAwIA6AYAIfADAQDQBgAhngQBANAGACGqBAEA0QYAIasEAQDRBgAhzwQBANEGACHtBAEA0AYAIe4ECAC9BwAh7wQIAOIHACHwBCAA8wYAIfEEAQDRBgAh8gQBANEGACEFGQAAgQkAIBoAAIQJACC5BQAAggkAILoFAACDCQAgvwUAAH0AIBAIAADmBwAg3AMBAAAAAd4DAQAAAAHgAwEAAAAB4gMCAAAAAfADAQAAAAGeBAEAAAABqgQBAAAAAasEAQAAAAHPBAEAAAAB7QQBAAAAAe4ECAAAAAHvBAgAAAAB8AQgAAAAAfEEAQAAAAHyBAEAAAABAxkAAIEJACC5BQAAggkAIL8FAAB9ACAE3gMBAAAAAYkEAQAAAAH9BAIAAAAB_gQBAAAAAQIAAABlACAZAADnBwAgAwAAAAsAIBkAAOcHACAaAADrBwAgBgAAAAsAIBIAAOsHACDeAwEA0AYAIYkEAQDQBgAh_QQCANIGACH-BAEA0AYAIQTeAwEA0AYAIYkEAQDQBgAh_QQCANIGACH-BAEA0AYAISjeAwEAAAAB4QMBAAAAAeIDAgAAAAHjAwEAAAABiQQBAAAAAakEAQAAAAHPBAEAAAAB0AQBAAAAAdIEAQAAAAH2BAEAAAAB9wQBAAAAAf8EAQAAAAGABQEAAAABgQUBAAAAAYIFAQAAAAGDBQIAAAABhAUBAAAAAYUFAQAAAAGGBQEAAAABhwUBAAAAAYgFAgAAAAGJBQEAAAABigUBAAAAAYsFAQAAAAGMBQEAAAABjQUCAAAAAY4FAgAAAAGPBQIAAAABkAUBAAAAAZEFAQAAAAGSBQIAAAABkwUCAAAAAZQFAQAAAAGVBQEAAAABlgUBAAAAAZcFAQAAAAGYBSAAAAABmQUgAAAAAZoFIAAAAAGbBQEAAAABAgAAAAkAIBkAAPcHACADAAAACQAgGQAA9wcAIBoAAPYHACABEgAAgAkAMC4DAAC6BgAg2QMAAMgGADDaAwAABwAQ2wMAAMgGADDdAwEA6QUAId4DAQDpBQAh4QMBAOoFACHiAwIAiQYAIeMDAQDpBQAhiQQBAOkFACGpBAEAAAABzwQBAOoFACHQBAEA6gUAIdIEAQDpBQAh9gQBAOoFACH3BAEA6gUAIf8EAQDpBQAhgAUBAOkFACGBBQEA6gUAIYIFAQDpBQAhgwUCAOsFACGEBQEA6gUAIYUFAQDqBQAhhgUBAOoFACGHBQEA6gUAIYgFAgDrBQAhiQUBAOoFACGKBQEA6gUAIYsFAQDqBQAhjAUBAOoFACGNBQIAiQYAIY4FAgCJBgAhjwUCAIkGACGQBQEA6gUAIZEFAQDqBQAhkgUCAIkGACGTBQIAiQYAIZQFAQDqBQAhlQUBAOoFACGWBQEA6gUAIZcFAQDqBQAhmAUgAKEGACGZBSAAoQYAIZoFIAChBgAhmwUBAOoFACG2BQAAxwYAIAIAAAAJACASAAD2BwAgAgAAAPQHACASAAD1BwAgLNkDAADzBwAw2gMAAPQHABDbAwAA8wcAMN0DAQDpBQAh3gMBAOkFACHhAwEA6gUAIeIDAgCJBgAh4wMBAOkFACGJBAEA6QUAIakEAQDpBQAhzwQBAOoFACHQBAEA6gUAIdIEAQDpBQAh9gQBAOoFACH3BAEA6gUAIf8EAQDpBQAhgAUBAOkFACGBBQEA6gUAIYIFAQDpBQAhgwUCAOsFACGEBQEA6gUAIYUFAQDqBQAhhgUBAOoFACGHBQEA6gUAIYgFAgDrBQAhiQUBAOoFACGKBQEA6gUAIYsFAQDqBQAhjAUBAOoFACGNBQIAiQYAIY4FAgCJBgAhjwUCAIkGACGQBQEA6gUAIZEFAQDqBQAhkgUCAIkGACGTBQIAiQYAIZQFAQDqBQAhlQUBAOoFACGWBQEA6gUAIZcFAQDqBQAhmAUgAKEGACGZBSAAoQYAIZoFIAChBgAhmwUBAOoFACEs2QMAAPMHADDaAwAA9AcAENsDAADzBwAw3QMBAOkFACHeAwEA6QUAIeEDAQDqBQAh4gMCAIkGACHjAwEA6QUAIYkEAQDpBQAhqQQBAOkFACHPBAEA6gUAIdAEAQDqBQAh0gQBAOkFACH2BAEA6gUAIfcEAQDqBQAh_wQBAOkFACGABQEA6QUAIYEFAQDqBQAhggUBAOkFACGDBQIA6wUAIYQFAQDqBQAhhQUBAOoFACGGBQEA6gUAIYcFAQDqBQAhiAUCAOsFACGJBQEA6gUAIYoFAQDqBQAhiwUBAOoFACGMBQEA6gUAIY0FAgCJBgAhjgUCAIkGACGPBQIAiQYAIZAFAQDqBQAhkQUBAOoFACGSBQIAiQYAIZMFAgCJBgAhlAUBAOoFACGVBQEA6gUAIZYFAQDqBQAhlwUBAOoFACGYBSAAoQYAIZkFIAChBgAhmgUgAKEGACGbBQEA6gUAISjeAwEA0AYAIeEDAQDRBgAh4gMCAOgGACHjAwEA0AYAIYkEAQDQBgAhqQQBANAGACHPBAEA0QYAIdAEAQDRBgAh0gQBANAGACH2BAEA0QYAIfcEAQDRBgAh_wQBANAGACGABQEA0AYAIYEFAQDRBgAhggUBANAGACGDBQIA0gYAIYQFAQDRBgAhhQUBANEGACGGBQEA0QYAIYcFAQDRBgAhiAUCANIGACGJBQEA0QYAIYoFAQDRBgAhiwUBANEGACGMBQEA0QYAIY0FAgDoBgAhjgUCAOgGACGPBQIA6AYAIZAFAQDRBgAhkQUBANEGACGSBQIA6AYAIZMFAgDoBgAhlAUBANEGACGVBQEA0QYAIZYFAQDRBgAhlwUBANEGACGYBSAAwwcAIZkFIADDBwAhmgUgAMMHACGbBQEA0QYAISjeAwEA0AYAIeEDAQDRBgAh4gMCAOgGACHjAwEA0AYAIYkEAQDQBgAhqQQBANAGACHPBAEA0QYAIdAEAQDRBgAh0gQBANAGACH2BAEA0QYAIfcEAQDRBgAh_wQBANAGACGABQEA0AYAIYEFAQDRBgAhggUBANAGACGDBQIA0gYAIYQFAQDRBgAhhQUBANEGACGGBQEA0QYAIYcFAQDRBgAhiAUCANIGACGJBQEA0QYAIYoFAQDRBgAhiwUBANEGACGMBQEA0QYAIY0FAgDoBgAhjgUCAOgGACGPBQIA6AYAIZAFAQDRBgAhkQUBANEGACGSBQIA6AYAIZMFAgDoBgAhlAUBANEGACGVBQEA0QYAIZYFAQDRBgAhlwUBANEGACGYBSAAwwcAIZkFIADDBwAhmgUgAMMHACGbBQEA0QYAISjeAwEAAAAB4QMBAAAAAeIDAgAAAAHjAwEAAAABiQQBAAAAAakEAQAAAAHPBAEAAAAB0AQBAAAAAdIEAQAAAAH2BAEAAAAB9wQBAAAAAf8EAQAAAAGABQEAAAABgQUBAAAAAYIFAQAAAAGDBQIAAAABhAUBAAAAAYUFAQAAAAGGBQEAAAABhwUBAAAAAYgFAgAAAAGJBQEAAAABigUBAAAAAYsFAQAAAAGMBQEAAAABjQUCAAAAAY4FAgAAAAGPBQIAAAABkAUBAAAAAZEFAQAAAAGSBQIAAAABkwUCAAAAAZQFAQAAAAGVBQEAAAABlgUBAAAAAZcFAQAAAAGYBSAAAAABmQUgAAAAAZoFIAAAAAGbBQEAAAABEt4DAQAAAAHjAwEAAAABggUBAAAAAYQFAQAAAAGLBQEAAAABnAUBAAAAAZ0FAQAAAAGeBQEAAAABnwUBAAAAAaAFAQAAAAGhBQEAAAABogUBAAAAAaMFAQAAAAGkBQEAAAABpQUBAAAAAaYFAQAAAAGnBQIAAAABqAUBAAAAAQIAAAAFACAZAACDCAAgAwAAAAUAIBkAAIMIACAaAACCCAAgARIAAP8IADAXAwAAugYAINkDAADJBgAw2gMAAAMAENsDAADJBgAw3QMBAOkFACHeAwEA6QUAIeMDAQDpBQAhggUBAOkFACGEBQEA6gUAIYsFAQDqBQAhnAUBAAAAAZ0FAQDpBQAhngUBAOoFACGfBQEA6gUAIaAFAQDqBQAhoQUBAOoFACGiBQEA6QUAIaMFAQDpBQAhpAUBAOoFACGlBQEA6gUAIaYFAQDqBQAhpwUCAOsFACGoBQEA6QUAIQIAAAAFACASAACCCAAgAgAAAIAIACASAACBCAAgFtkDAAD_BwAw2gMAAIAIABDbAwAA_wcAMN0DAQDpBQAh3gMBAOkFACHjAwEA6QUAIYIFAQDpBQAhhAUBAOoFACGLBQEA6gUAIZwFAQDpBQAhnQUBAOkFACGeBQEA6gUAIZ8FAQDqBQAhoAUBAOoFACGhBQEA6gUAIaIFAQDpBQAhowUBAOkFACGkBQEA6gUAIaUFAQDqBQAhpgUBAOoFACGnBQIA6wUAIagFAQDpBQAhFtkDAAD_BwAw2gMAAIAIABDbAwAA_wcAMN0DAQDpBQAh3gMBAOkFACHjAwEA6QUAIYIFAQDpBQAhhAUBAOoFACGLBQEA6gUAIZwFAQDpBQAhnQUBAOkFACGeBQEA6gUAIZ8FAQDqBQAhoAUBAOoFACGhBQEA6gUAIaIFAQDpBQAhowUBAOkFACGkBQEA6gUAIaUFAQDqBQAhpgUBAOoFACGnBQIA6wUAIagFAQDpBQAhEt4DAQDQBgAh4wMBANAGACGCBQEA0AYAIYQFAQDRBgAhiwUBANEGACGcBQEA0AYAIZ0FAQDQBgAhngUBANEGACGfBQEA0QYAIaAFAQDRBgAhoQUBANEGACGiBQEA0AYAIaMFAQDQBgAhpAUBANEGACGlBQEA0QYAIaYFAQDRBgAhpwUCANIGACGoBQEA0AYAIRLeAwEA0AYAIeMDAQDQBgAhggUBANAGACGEBQEA0QYAIYsFAQDRBgAhnAUBANAGACGdBQEA0AYAIZ4FAQDRBgAhnwUBANEGACGgBQEA0QYAIaEFAQDRBgAhogUBANAGACGjBQEA0AYAIaQFAQDRBgAhpQUBANEGACGmBQEA0QYAIacFAgDSBgAhqAUBANAGACES3gMBAAAAAeMDAQAAAAGCBQEAAAABhAUBAAAAAYsFAQAAAAGcBQEAAAABnQUBAAAAAZ4FAQAAAAGfBQEAAAABoAUBAAAAAaEFAQAAAAGiBQEAAAABowUBAAAAAaQFAQAAAAGlBQEAAAABpgUBAAAAAacFAgAAAAGoBQEAAAABGQQAAIUIACAFAACGCAAgBgAAhwgAIAgAAIgIACALAACJCAAg3QMBAAAAAd4DAQAAAAHjAwEAAAABiQQBAAAAAe0EAQAAAAH2BAEAAAAB9wQBAAAAAf0EAgAAAAGpBQEAAAABqgUBAAAAAasFAQAAAAGsBQEAAAABrgUBAAAAAa8FAQAAAAGwBQEAAAABsQUBAAAAAbIFAQAAAAGzBQIAAAABtAUBAAAAAbUFAQAAAAEEGQAA-AcAMLkFAAD5BwAwuwUAAPsHACC_BQAA_AcAMAQZAADsBwAwuQUAAO0HADC7BQAA7wcAIL8FAADwBwAwAxkAAOcHACC5BQAA6AcAIL8FAABlACADGQAA_QgAILkFAAD-CAAgvwUAAH0AIAQZAADYBwAwuQUAANkHADC7BQAA2wcAIL8FAADcBwAwBBkAAMgHADC5BQAAyQcAMLsFAADLBwAgvwUAAMwHADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUZAAD4CAAgGgAA-wgAILkFAAD5CAAgugUAAPoIACC_BQAAAQAgAxkAAPgIACC5BQAA-QgAIL8FAAABACAAAAAAAAsZAAC0CAAwGgAAuAgAMLkFAAC1CAAwugUAALYIADC7BQAAtwgAILwFAADMBwAwvQUAAMwHADC-BQAAzAcAML8FAADMBwAwwAUAALkIADDBBQAAzwcAMAsZAACrCAAwGgAArwgAMLkFAACsCAAwugUAAK0IADC7BQAArggAILwFAADcBwAwvQUAANwHADC-BQAA3AcAML8FAADcBwAwwAUAALAIADDBBQAA3wcAMBADAACjCAAg3AMBAAAAAd0DAQAAAAHeAwEAAAAB4AMBAAAAAeIDAgAAAAHwAwEAAAABngQBAAAAAaoEAQAAAAGrBAEAAAABzwQBAAAAAe4ECAAAAAHvBAgAAAAB8AQgAAAAAfEEAQAAAAHyBAEAAAABAgAAABQAIBkAALMIACADAAAAFAAgGQAAswgAIBoAALIIACABEgAA9wgAMAIAAAAUACASAACyCAAgAgAAAOAHACASAACxCAAgD9wDAQDQBgAh3QMBANAGACHeAwEA0AYAIeADAQDQBgAh4gMCAOgGACHwAwEA0AYAIZ4EAQDQBgAhqgQBANEGACGrBAEA0QYAIc8EAQDRBgAh7gQIAL0HACHvBAgA4gcAIfAEIADzBgAh8QQBANEGACHyBAEA0QYAIRADAACiCAAg3AMBANAGACHdAwEA0AYAId4DAQDQBgAh4AMBANAGACHiAwIA6AYAIfADAQDQBgAhngQBANAGACGqBAEA0QYAIasEAQDRBgAhzwQBANEGACHuBAgAvQcAIe8ECADiBwAh8AQgAPMGACHxBAEA0QYAIfIEAQDRBgAhEAMAAKMIACDcAwEAAAAB3QMBAAAAAd4DAQAAAAHgAwEAAAAB4gMCAAAAAfADAQAAAAGeBAEAAAABqgQBAAAAAasEAQAAAAHPBAEAAAAB7gQIAAAAAe8ECAAAAAHwBCAAAAAB8QQBAAAAAfIEAQAAAAEZBAAAhQgAIAUAAIYIACAGAACHCAAgCwAAiQgAIAwAAL4IACDdAwEAAAAB3gMBAAAAAeMDAQAAAAGJBAEAAAAB9gQBAAAAAfcEAQAAAAH9BAIAAAABqQUBAAAAAaoFAQAAAAGrBQEAAAABrAUBAAAAAa0FAQAAAAGuBQEAAAABrwUBAAAAAbAFAQAAAAGxBQEAAAABsgUBAAAAAbMFAgAAAAG0BQEAAAABtQUBAAAAAQIAAAABACAZAAC9CAAgAwAAAAEAIBkAAL0IACAaAAC7CAAgARIAAPYIADACAAAAAQAgEgAAuwgAIAIAAADQBwAgEgAAuggAIBTdAwEA0AYAId4DAQDQBgAh4wMBANAGACGJBAEA0AYAIfYEAQDQBgAh9wQBANEGACH9BAIA0gYAIakFAQDRBgAhqgUBANEGACGrBQEA0QYAIawFAQDRBgAhrQUBANEGACGuBQEA0QYAIa8FAQDRBgAhsAUBANEGACGxBQEA0QYAIbIFAQDQBgAhswUCAOgGACG0BQEA0QYAIbUFAQDRBgAhGQQAANMHACAFAADUBwAgBgAA1QcAIAsAANcHACAMAAC8CAAg3QMBANAGACHeAwEA0AYAIeMDAQDQBgAhiQQBANAGACH2BAEA0AYAIfcEAQDRBgAh_QQCANIGACGpBQEA0QYAIaoFAQDRBgAhqwUBANEGACGsBQEA0QYAIa0FAQDRBgAhrgUBANEGACGvBQEA0QYAIbAFAQDRBgAhsQUBANEGACGyBQEA0AYAIbMFAgDoBgAhtAUBANEGACG1BQEA0QYAIQcZAADxCAAgGgAA9AgAILkFAADyCAAgugUAAPMIACC9BQAAGQAgvgUAABkAIL8FAACoAgAgGQQAAIUIACAFAACGCAAgBgAAhwgAIAsAAIkIACAMAAC-CAAg3QMBAAAAAd4DAQAAAAHjAwEAAAABiQQBAAAAAfYEAQAAAAH3BAEAAAAB_QQCAAAAAakFAQAAAAGqBQEAAAABqwUBAAAAAawFAQAAAAGtBQEAAAABrgUBAAAAAa8FAQAAAAGwBQEAAAABsQUBAAAAAbIFAQAAAAGzBQIAAAABtAUBAAAAAbUFAQAAAAEDGQAA8QgAILkFAADyCAAgvwUAAKgCACAEGQAAtAgAMLkFAAC1CAAwuwUAALcIACC_BQAAzAcAMAQZAACrCAAwuQUAAKwIADC7BQAArggAIL8FAADcBwAwAAAAAAAABRkAAOwIACAaAADvCAAguQUAAO0IACC6BQAA7ggAIL8FAAABACADGQAA7AgAILkFAADtCAAgvwUAAAEAIBQEAADeCAAgBQAA3wgAIAYAAOAIACAIAADdCAAgCwAAwQgAIAwAAOEIACDtBAAAygYAIPcEAADKBgAgqQUAAMoGACCqBQAAygYAIKsFAADKBgAgrAUAAMoGACCtBQAAygYAIK4FAADKBgAgrwUAAMoGACCwBQAAygYAILEFAADKBgAgswUAAMoGACC0BQAAygYAILUFAADKBgAgAAAAAAAFGQAA5wgAIBoAAOoIACC5BQAA6AgAILoFAADpCAAgvwUAAAEAIAMZAADnCAAguQUAAOgIACC_BQAAAQAgAAAAAAAFGQAA4ggAIBoAAOUIACC5BQAA4wgAILoFAADkCAAgvwUAAAEAIAMZAADiCAAguQUAAOMIACC_BQAAAQAgAAAAAAAGBwAAiwgAIAkAAMEIACD0BAAAygYAIPcEAADKBgAg-wQAAMoGACD8BAAAygYAIAAAAQMAAMkIACABBwAAiwgAIBoFAACGCAAgBgAAhwgAIAgAAIgIACALAACJCAAgDAAAvggAIN0DAQAAAAHeAwEAAAAB4wMBAAAAAYkEAQAAAAHtBAEAAAAB9gQBAAAAAfcEAQAAAAH9BAIAAAABqQUBAAAAAaoFAQAAAAGrBQEAAAABrAUBAAAAAa0FAQAAAAGuBQEAAAABrwUBAAAAAbAFAQAAAAGxBQEAAAABsgUBAAAAAbMFAgAAAAG0BQEAAAABtQUBAAAAAQIAAAABACAZAADiCAAgAwAAAA8AIBkAAOIIACAaAADmCAAgHAAAAA8AIAUAANQHACAGAADVBwAgCAAA1gcAIAsAANcHACAMAAC8CAAgEgAA5ggAIN0DAQDQBgAh3gMBANAGACHjAwEA0AYAIYkEAQDQBgAh7QQBANEGACH2BAEA0AYAIfcEAQDRBgAh_QQCANIGACGpBQEA0QYAIaoFAQDRBgAhqwUBANEGACGsBQEA0QYAIa0FAQDRBgAhrgUBANEGACGvBQEA0QYAIbAFAQDRBgAhsQUBANEGACGyBQEA0AYAIbMFAgDoBgAhtAUBANEGACG1BQEA0QYAIRoFAADUBwAgBgAA1QcAIAgAANYHACALAADXBwAgDAAAvAgAIN0DAQDQBgAh3gMBANAGACHjAwEA0AYAIYkEAQDQBgAh7QQBANEGACH2BAEA0AYAIfcEAQDRBgAh_QQCANIGACGpBQEA0QYAIaoFAQDRBgAhqwUBANEGACGsBQEA0QYAIa0FAQDRBgAhrgUBANEGACGvBQEA0QYAIbAFAQDRBgAhsQUBANEGACGyBQEA0AYAIbMFAgDoBgAhtAUBANEGACG1BQEA0QYAIRoEAACFCAAgBgAAhwgAIAgAAIgIACALAACJCAAgDAAAvggAIN0DAQAAAAHeAwEAAAAB4wMBAAAAAYkEAQAAAAHtBAEAAAAB9gQBAAAAAfcEAQAAAAH9BAIAAAABqQUBAAAAAaoFAQAAAAGrBQEAAAABrAUBAAAAAa0FAQAAAAGuBQEAAAABrwUBAAAAAbAFAQAAAAGxBQEAAAABsgUBAAAAAbMFAgAAAAG0BQEAAAABtQUBAAAAAQIAAAABACAZAADnCAAgAwAAAA8AIBkAAOcIACAaAADrCAAgHAAAAA8AIAQAANMHACAGAADVBwAgCAAA1gcAIAsAANcHACAMAAC8CAAgEgAA6wgAIN0DAQDQBgAh3gMBANAGACHjAwEA0AYAIYkEAQDQBgAh7QQBANEGACH2BAEA0AYAIfcEAQDRBgAh_QQCANIGACGpBQEA0QYAIaoFAQDRBgAhqwUBANEGACGsBQEA0QYAIa0FAQDRBgAhrgUBANEGACGvBQEA0QYAIbAFAQDRBgAhsQUBANEGACGyBQEA0AYAIbMFAgDoBgAhtAUBANEGACG1BQEA0QYAIRoEAADTBwAgBgAA1QcAIAgAANYHACALAADXBwAgDAAAvAgAIN0DAQDQBgAh3gMBANAGACHjAwEA0AYAIYkEAQDQBgAh7QQBANEGACH2BAEA0AYAIfcEAQDRBgAh_QQCANIGACGpBQEA0QYAIaoFAQDRBgAhqwUBANEGACGsBQEA0QYAIa0FAQDRBgAhrgUBANEGACGvBQEA0QYAIbAFAQDRBgAhsQUBANEGACGyBQEA0AYAIbMFAgDoBgAhtAUBANEGACG1BQEA0QYAIRoEAACFCAAgBQAAhggAIAgAAIgIACALAACJCAAgDAAAvggAIN0DAQAAAAHeAwEAAAAB4wMBAAAAAYkEAQAAAAHtBAEAAAAB9gQBAAAAAfcEAQAAAAH9BAIAAAABqQUBAAAAAaoFAQAAAAGrBQEAAAABrAUBAAAAAa0FAQAAAAGuBQEAAAABrwUBAAAAAbAFAQAAAAGxBQEAAAABsgUBAAAAAbMFAgAAAAG0BQEAAAABtQUBAAAAAQIAAAABACAZAADsCAAgAwAAAA8AIBkAAOwIACAaAADwCAAgHAAAAA8AIAQAANMHACAFAADUBwAgCAAA1gcAIAsAANcHACAMAAC8CAAgEgAA8AgAIN0DAQDQBgAh3gMBANAGACHjAwEA0AYAIYkEAQDQBgAh7QQBANEGACH2BAEA0AYAIfcEAQDRBgAh_QQCANIGACGpBQEA0QYAIaoFAQDRBgAhqwUBANEGACGsBQEA0QYAIa0FAQDRBgAhrgUBANEGACGvBQEA0QYAIbAFAQDRBgAhsQUBANEGACGyBQEA0AYAIbMFAgDoBgAhtAUBANEGACG1BQEA0QYAIRoEAADTBwAgBQAA1AcAIAgAANYHACALAADXBwAgDAAAvAgAIN0DAQDQBgAh3gMBANAGACHjAwEA0AYAIYkEAQDQBgAh7QQBANEGACH2BAEA0AYAIfcEAQDRBgAh_QQCANIGACGpBQEA0QYAIaoFAQDRBgAhqwUBANEGACGsBQEA0QYAIa0FAQDRBgAhrgUBANEGACGvBQEA0QYAIbAFAQDRBgAhsQUBANEGACGyBQEA0AYAIbMFAgDoBgAhtAUBANEGACG1BQEA0QYAIQXcAwEAAAAB3gMBAAAAAfADAQAAAAHbBAEAAAAB3AQBAAAAAQIAAACoAgAgGQAA8QgAIAMAAAAZACAZAADxCAAgGgAA9QgAIAcAAAAZACASAAD1CAAg3AMBANAGACHeAwEA0AYAIfADAQDQBgAh2wQBANAGACHcBAEA0AYAIQXcAwEA0AYAId4DAQDQBgAh8AMBANAGACHbBAEA0AYAIdwEAQDQBgAhFN0DAQAAAAHeAwEAAAAB4wMBAAAAAYkEAQAAAAH2BAEAAAAB9wQBAAAAAf0EAgAAAAGpBQEAAAABqgUBAAAAAasFAQAAAAGsBQEAAAABrQUBAAAAAa4FAQAAAAGvBQEAAAABsAUBAAAAAbEFAQAAAAGyBQEAAAABswUCAAAAAbQFAQAAAAG1BQEAAAABD9wDAQAAAAHdAwEAAAAB3gMBAAAAAeADAQAAAAHiAwIAAAAB8AMBAAAAAZ4EAQAAAAGqBAEAAAABqwQBAAAAAc8EAQAAAAHuBAgAAAAB7wQIAAAAAfAEIAAAAAHxBAEAAAAB8gQBAAAAARoEAACFCAAgBQAAhggAIAYAAIcIACAIAACICAAgDAAAvggAIN0DAQAAAAHeAwEAAAAB4wMBAAAAAYkEAQAAAAHtBAEAAAAB9gQBAAAAAfcEAQAAAAH9BAIAAAABqQUBAAAAAaoFAQAAAAGrBQEAAAABrAUBAAAAAa0FAQAAAAGuBQEAAAABrwUBAAAAAbAFAQAAAAGxBQEAAAABsgUBAAAAAbMFAgAAAAG0BQEAAAABtQUBAAAAAQIAAAABACAZAAD4CAAgAwAAAA8AIBkAAPgIACAaAAD8CAAgHAAAAA8AIAQAANMHACAFAADUBwAgBgAA1QcAIAgAANYHACAMAAC8CAAgEgAA_AgAIN0DAQDQBgAh3gMBANAGACHjAwEA0AYAIYkEAQDQBgAh7QQBANEGACH2BAEA0AYAIfcEAQDRBgAh_QQCANIGACGpBQEA0QYAIaoFAQDRBgAhqwUBANEGACGsBQEA0QYAIa0FAQDRBgAhrgUBANEGACGvBQEA0QYAIbAFAQDRBgAhsQUBANEGACGyBQEA0AYAIbMFAgDoBgAhtAUBANEGACG1BQEA0QYAIRoEAADTBwAgBQAA1AcAIAYAANUHACAIAADWBwAgDAAAvAgAIN0DAQDQBgAh3gMBANAGACHjAwEA0AYAIYkEAQDQBgAh7QQBANEGACH2BAEA0AYAIfcEAQDRBgAh_QQCANIGACGpBQEA0QYAIaoFAQDRBgAhqwUBANEGACGsBQEA0QYAIa0FAQDRBgAhrgUBANEGACGvBQEA0QYAIbAFAQDRBgAhsQUBANEGACGyBQEA0AYAIbMFAgDoBgAhtAUBANEGACG1BQEA0QYAIQ8JAADACAAg3AMBAAAAAd4DAQAAAAHjAwEAAAABiQQBAAAAAfMEAQAAAAH0BAEAAAAB9QQCAAAAAfYEAQAAAAH3BAEAAAAB-AQCAAAAAfkEAgAAAAH6BAIAAAAB-wQBAAAAAfwEAQAAAAECAAAAfQAgGQAA_QgAIBLeAwEAAAAB4wMBAAAAAYIFAQAAAAGEBQEAAAABiwUBAAAAAZwFAQAAAAGdBQEAAAABngUBAAAAAZ8FAQAAAAGgBQEAAAABoQUBAAAAAaIFAQAAAAGjBQEAAAABpAUBAAAAAaUFAQAAAAGmBQEAAAABpwUCAAAAAagFAQAAAAEo3gMBAAAAAeEDAQAAAAHiAwIAAAAB4wMBAAAAAYkEAQAAAAGpBAEAAAABzwQBAAAAAdAEAQAAAAHSBAEAAAAB9gQBAAAAAfcEAQAAAAH_BAEAAAABgAUBAAAAAYEFAQAAAAGCBQEAAAABgwUCAAAAAYQFAQAAAAGFBQEAAAABhgUBAAAAAYcFAQAAAAGIBQIAAAABiQUBAAAAAYoFAQAAAAGLBQEAAAABjAUBAAAAAY0FAgAAAAGOBQIAAAABjwUCAAAAAZAFAQAAAAGRBQEAAAABkgUCAAAAAZMFAgAAAAGUBQEAAAABlQUBAAAAAZYFAQAAAAGXBQEAAAABmAUgAAAAAZkFIAAAAAGaBSAAAAABmwUBAAAAAQ8HAAC_CAAg3AMBAAAAAd4DAQAAAAHjAwEAAAABiQQBAAAAAfMEAQAAAAH0BAEAAAAB9QQCAAAAAfYEAQAAAAH3BAEAAAAB-AQCAAAAAfkEAgAAAAH6BAIAAAAB-wQBAAAAAfwEAQAAAAECAAAAfQAgGQAAgQkAIAMAAAANACAZAACBCQAgGgAAhQkAIBEAAAANACAHAACpCAAgEgAAhQkAINwDAQDQBgAh3gMBANAGACHjAwEA0AYAIYkEAQDQBgAh8wQBANAGACH0BAEA0QYAIfUEAgDSBgAh9gQBANAGACH3BAEA0QYAIfgEAgDSBgAh-QQCANIGACH6BAIA0gYAIfsEAQDRBgAh_AQBANEGACEPBwAAqQgAINwDAQDQBgAh3gMBANAGACHjAwEA0AYAIYkEAQDQBgAh8wQBANAGACH0BAEA0QYAIfUEAgDSBgAh9gQBANAGACH3BAEA0QYAIfgEAgDSBgAh-QQCANIGACH6BAIA0gYAIfsEAQDRBgAh_AQBANEGACEP3AMBAAAAAd4DAQAAAAHgAwEAAAAB4gMCAAAAAfADAQAAAAGeBAEAAAABqgQBAAAAAasEAQAAAAHPBAEAAAAB7QQBAAAAAe4ECAAAAAHvBAgAAAAB8AQgAAAAAfEEAQAAAAHyBAEAAAABAwAAAA0AIBkAAP0IACAaAACJCQAgEQAAAA0AIAkAAKoIACASAACJCQAg3AMBANAGACHeAwEA0AYAIeMDAQDQBgAhiQQBANAGACHzBAEA0AYAIfQEAQDRBgAh9QQCANIGACH2BAEA0AYAIfcEAQDRBgAh-AQCANIGACH5BAIA0gYAIfoEAgDSBgAh-wQBANEGACH8BAEA0QYAIQ8JAACqCAAg3AMBANAGACHeAwEA0AYAIeMDAQDQBgAhiQQBANAGACHzBAEA0AYAIfQEAQDRBgAh9QQCANIGACH2BAEA0AYAIfcEAQDRBgAh-AQCANIGACH5BAIA0gYAIfoEAgDSBgAh-wQBANEGACH8BAEA0QYAIRTdAwEAAAAB3gMBAAAAAeMDAQAAAAGJBAEAAAAB7QQBAAAAAfYEAQAAAAH3BAEAAAAB_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_AdYCjQS8AdcCkQS9AdgClQS-AQHVAgC7AQHVAgC7AQHVAgC7AQPWApYEANcClwQA2AKYBAAAAAMKAMMBIQDEASIAxQEAAAADCgDDASEAxAEiAMUBAdUCALsBAdUCALsBAwoAygEhAMsBIgDMAQAAAAMKAMoBIQDLASIAzAEB1QIAuwEB1QIAuwEFCgDRAR8A0gEgANMBIQDUASIA1QEAAAAAAAUKANEBHwDSASAA0wEhANQBIgDVAQHVAgC7AQHVAgC7AQMKANoBIQDbASIA3AEAAAADCgDaASEA2wEiANwBAAAAAwoA4gEhAOMBIgDkAQAAAAMKAOIBIQDjASIA5AEAAAADCgDqASEA6wEiAOwBAAAAAwoA6gEhAOsBIgDsAQAAAAMKAPIBIQDzASIA9AEAAAADCgDyASEA8wEiAPQBAAAABQoA-gEfAPsBIAD8ASEA_QEiAP4BAAAAAAAFCgD6AR8A-wEgAPwBIQD9ASIA_gENAgEOIAEPIQEQIgERIwETJQEUJwsVKAwWLAEXLgsYLw0bMgEcMwEdNAsjNw4kOBQlOQImOgInOwIoPAIpPQIqPwIrQQssQhUtRAIuRgsvRxYwSAIxSQIySgszTRc0Th01TwM2UAM3UQM4UgM5UwM6VQM7Vws8WB49WgM-XAs_XR9AXgNBXwNCYAtDYyBEZCZFZgRGZwRHaQRIagRJawRKbQRLbwtMcCdNcgROdAtPdShQdgRRdwRSeAtTeylUfC9VfgVWfwVXgQEFWIIBBVmDAQVahQEFW4cBC1yIATBdigEFXowBC1-NATFgjgEFYY8BBWKQAQtjkwEyZJQBOGWVAQZmlgEGZ5cBBmiYAQZpmQEGapsBBmudAQtsngE5baABBm6iAQtvowE6cKQBBnGlAQZypgELc6kBO3SqAUF1rAFCdq0BQnewAUJ4sQFCebIBQnq0AUJ7tgELfLcBQ325AUJ-uwELf7wBRIABvQFCgQG-AUKCAb8BC4MBwgFFhAHDAUmFAcUBSoYBxgFKhwHJAUqIAcoBSokBywFKigHNAUqLAc8BC4wB0AFLjQHSAUqOAdQBC48B1QFMkAHWAUqRAdcBSpIB2AELkwHbAU2UAdwBUZUB3gFSlgHfAVKXAeIBUpgB4wFSmQHkAVKaAeYBUpsB6AELnAHpAVOdAesBUp4B7QELnwHuAVSgAe8BUqEB8AFSogHxAQujAfQBVaQB9QFZpQH3AVqmAfgBWqcB-wFaqAH8AVqpAf0BWqoB_wFaqwGBAgusAYICW60BhAJargGGAguvAYcCXLABiAJasQGJAlqyAYoCC7MBjQJdtAGOAmG1AZACYrYBkQJitwGUAmK4AZUCYrkBlgJiugGYAmK7AZoCC7wBmwJjvQGdAmK-AZ8CC78BoAJkwAGhAmLBAaICYsIBowILwwGmAmXEAacCa8UBqQIIxgGqAgjHAawCCMgBrQIIyQGuAgjKAbACCMsBsgILzAGzAmzNAbUCCM4BtwILzwG4Am3QAbkCCNEBugII0gG7AgvTAb4CbtQBvwJy1QHBAnPWAcICc9cBxQJz2AHGAnPZAccCc9oByQJz2wHLAgvcAcwCdN0BzgJz3gHQAgvfAdECdeAB0gJz4QHTAnPiAdQCC-MB1wJ25AHYAnzlAdoCfeYB2wJ95wHeAn3oAd8CfekB4AJ96gHiAn3rAeQCC-wB5QJ-7QHnAn3uAekCC-8B6gJ_8AHrAn3xAewCffIB7QIL8wHwAoAB9AHxAoYB9QHzAocB9gH0AocB9wH3AocB-AH4AocB-QH5AocB-gH7AocB-wH9Agv8Af4CiAH9AYADhwH-AYIDC_8BgwOJAYAChAOHAYEChQOHAYIChgMLgwKJA4oBhAKKA44BhQKMA48BhgKNA48BhwKQA48BiAKRA48BiQKSA48BigKUA48BiwKWAwuMApcDkAGNApkDjwGOApsDC48CnAORAZACnQOPAZECngOPAZICnwMLkwKiA5IBlAKjA5gBlQKlA5kBlgKmA5kBlwKpA5kBmAKqA5kBmQKrA5kBmgKtA5kBmwKvAwucArADmgGdArIDmQGeArQDC58CtQObAaACtgOZAaECtwOZAaICuAMLowK7A5wBpAK8A6IBpQK-A6MBpgK_A6MBpwLCA6MBqALDA6MBqQLEA6MBqgLGA6MBqwLIAwusAskDpAGtAssDowGuAs0DC68CzgOlAbACzwOjAbEC0AOjAbIC0QMLswLUA6YBtALVA6oBtQLXA6sBtgLYA6sBtwLbA6sBuALcA6sBuQLdA6sBugLfA6sBuwLhAwu8AuIDrAG9AuQDqwG-AuYDC78C5wOtAcAC6AOrAcEC6QOrAcIC6gMLwwLtA64BxALuA7IBxQLwA7MBxgLxA7MBxwL0A7MByAL1A7MByQL2A7MBygL4A7MBywL6AwvMAvsDtAHNAv0DswHOAv8DC88CgAS1AdACgQSzAdECggSzAdICgwQL0wKGBLYB1AKHBLoB2QKJBLsB2gKZBLsB2wKcBLsB3AKdBLsB3QKeBLsB3gKgBLsB3wKiBAvgAqMEwAHhAqUEuwHiAqcEC-MCqATBAeQCqQS7AeUCqgS7AeYCqwQL5wKuBMIB6AKvBMYB6QKwBL4B6gKxBL4B6wKyBL4B7AKzBL4B7QK0BL4B7gK2BL4B7wK4BAvwArkExwHxArsEvgHyAr0EC_MCvgTIAfQCvwS-AfUCwAS-AfYCwQQL9wLEBMkB-ALFBM0B-QLGBLwB-gLHBLwB-wLIBLwB_ALJBLwB_QLKBLwB_gLMBLwB_wLOBAuAA88EzgGBA9EEvAGCA9MEC4MD1ATPAYQD1QS8AYUD1gS8AYYD1wQLhwPaBNABiAPbBNYBiQPcBL0BigPdBL0BiwPeBL0BjAPfBL0BjQPgBL0BjgPiBL0BjwPkBAuQA-UE1wGRA-cEvQGSA-kEC5MD6gTYAZQD6wS9AZUD7AS9AZYD7QQLlwPwBNkBmAPxBN0BmQPzBN4BmgP0BN4BmwP3BN4BnAP4BN4BnQP5BN4BngP7BN4BnwP9BAugA_4E3wGhA4AF3gGiA4IFC6MDgwXgAaQDhAXeAaUDhQXeAaYDhgULpwOJBeEBqAOKBeUBqQOMBeYBqgONBeYBqwOQBeYBrAORBeYBrQOSBeYBrgOUBeYBrwOWBQuwA5cF5wGxA5kF5gGyA5sFC7MDnAXoAbQDnQXmAbUDngXmAbYDnwULtwOiBekBuAOjBe0BuQOlBe4BugOmBe4BuwOpBe4BvAOqBe4BvQOrBe4BvgOtBe4BvwOvBQvAA7AF7wHBA7IF7gHCA7QFC8MDtQXwAcQDtgXuAcUDtwXuAcYDuAULxwO7BfEByAO8BfUByQO-BfYBygO_BfYBywPCBfYBzAPDBfYBzQPEBfYBzgPGBfYBzwPIBQvQA8kF9wHRA8sF9gHSA80FC9MDzgX4AdQDzwX2AdUD0AX2AdYD0QUL1wPUBfkB2APVBf8B"
|
|
16633
16901
|
};
|
|
16634
16902
|
config$1.compilerWasm = {
|
|
16635
16903
|
getRuntime: async () => require_query_compiler_fast_bg(),
|
|
@@ -16720,7 +16988,7 @@ PrismaTriggerSetupStateRepository = __decorate([
|
|
|
16720
16988
|
|
|
16721
16989
|
//#endregion
|
|
16722
16990
|
//#region src/infrastructure/persistence/PrismaRunTraceContextRepository.ts
|
|
16723
|
-
var _ref$
|
|
16991
|
+
var _ref$42;
|
|
16724
16992
|
let PrismaRunTraceContextRepository = class PrismaRunTraceContextRepository$1 {
|
|
16725
16993
|
constructor(prisma, otelIdentityFactory) {
|
|
16726
16994
|
this.prisma = prisma;
|
|
@@ -16785,12 +17053,12 @@ PrismaRunTraceContextRepository = __decorate([
|
|
|
16785
17053
|
injectable(),
|
|
16786
17054
|
__decorateParam(0, inject(PrismaDatabaseClientToken)),
|
|
16787
17055
|
__decorateParam(1, inject(OtelIdentityFactory)),
|
|
16788
|
-
__decorateMetadata("design:paramtypes", [Object, typeof (_ref$
|
|
17056
|
+
__decorateMetadata("design:paramtypes", [Object, typeof (_ref$42 = typeof OtelIdentityFactory !== "undefined" && OtelIdentityFactory) === "function" ? _ref$42 : Object])
|
|
16789
17057
|
], PrismaRunTraceContextRepository);
|
|
16790
17058
|
|
|
16791
17059
|
//#endregion
|
|
16792
17060
|
//#region src/infrastructure/persistence/PrismaTelemetryArtifactStore.ts
|
|
16793
|
-
var _ref$
|
|
17061
|
+
var _ref$41;
|
|
16794
17062
|
/** Payloads larger than this byte threshold are offloaded to BinaryStorage. */
|
|
16795
17063
|
const PAYLOAD_OFFLOAD_THRESHOLD_BYTES = 64e3;
|
|
16796
17064
|
let PrismaTelemetryArtifactStore = class PrismaTelemetryArtifactStore$1 {
|
|
@@ -16927,14 +17195,14 @@ PrismaTelemetryArtifactStore = __decorate([
|
|
|
16927
17195
|
__decorateParam(2, inject(CoreTokens.BinaryStorage)),
|
|
16928
17196
|
__decorateMetadata("design:paramtypes", [
|
|
16929
17197
|
Object,
|
|
16930
|
-
typeof (_ref$
|
|
17198
|
+
typeof (_ref$41 = typeof OtelIdentityFactory !== "undefined" && OtelIdentityFactory) === "function" ? _ref$41 : Object,
|
|
16931
17199
|
Object
|
|
16932
17200
|
])
|
|
16933
17201
|
], PrismaTelemetryArtifactStore);
|
|
16934
17202
|
|
|
16935
17203
|
//#endregion
|
|
16936
17204
|
//#region src/infrastructure/persistence/PrismaTelemetryMetricPointStore.ts
|
|
16937
|
-
var _ref$
|
|
17205
|
+
var _ref$40;
|
|
16938
17206
|
let PrismaTelemetryMetricPointStore = class PrismaTelemetryMetricPointStore$1 {
|
|
16939
17207
|
constructor(prisma, otelIdentityFactory) {
|
|
16940
17208
|
this.prisma = prisma;
|
|
@@ -17045,7 +17313,7 @@ PrismaTelemetryMetricPointStore = __decorate([
|
|
|
17045
17313
|
injectable(),
|
|
17046
17314
|
__decorateParam(0, inject(PrismaDatabaseClientToken)),
|
|
17047
17315
|
__decorateParam(1, inject(OtelIdentityFactory)),
|
|
17048
|
-
__decorateMetadata("design:paramtypes", [Object, typeof (_ref$
|
|
17316
|
+
__decorateMetadata("design:paramtypes", [Object, typeof (_ref$40 = typeof OtelIdentityFactory !== "undefined" && OtelIdentityFactory) === "function" ? _ref$40 : Object])
|
|
17049
17317
|
], PrismaTelemetryMetricPointStore);
|
|
17050
17318
|
|
|
17051
17319
|
//#endregion
|
|
@@ -17556,6 +17824,7 @@ let PrismaWorkflowRunRepository = class PrismaWorkflowRunRepository$1 {
|
|
|
17556
17824
|
control: this.parseJson(row.controlJson),
|
|
17557
17825
|
workflowSnapshot: this.parseJson(row.workflowSnapshotJson),
|
|
17558
17826
|
mutableState: this.parseJson(row.mutableStateJson),
|
|
17827
|
+
...this.loadHitlState(row.hitlStateJson),
|
|
17559
17828
|
policySnapshot: this.parseJson(row.policySnapshotJson),
|
|
17560
17829
|
engineCounters: this.parseJson(row.engineCountersJson),
|
|
17561
17830
|
status: row.status,
|
|
@@ -17785,6 +18054,7 @@ let PrismaWorkflowRunRepository = class PrismaWorkflowRunRepository$1 {
|
|
|
17785
18054
|
policySnapshotJson: state.policySnapshot ? JSON.stringify(state.policySnapshot) : null,
|
|
17786
18055
|
engineCountersJson: state.engineCounters ? JSON.stringify(state.engineCounters) : null,
|
|
17787
18056
|
mutableStateJson: state.mutableState ? JSON.stringify(state.mutableState) : null,
|
|
18057
|
+
hitlStateJson: this.buildHitlStateJson(state),
|
|
17788
18058
|
outputsByNodeJson: JSON.stringify(this.buildPersistedOutputsByNode(state))
|
|
17789
18059
|
}
|
|
17790
18060
|
})).count !== 1) throw new Error(`Concurrent run update detected for run ${state.runId}.`);
|
|
@@ -17915,6 +18185,31 @@ let PrismaWorkflowRunRepository = class PrismaWorkflowRunRepository$1 {
|
|
|
17915
18185
|
...row.childRunId !== null && row.childRunId !== void 0 ? { childRunId: row.childRunId } : {}
|
|
17916
18186
|
};
|
|
17917
18187
|
}
|
|
18188
|
+
/**
|
|
18189
|
+
* Serialize HITL state fields into the dedicated `hitl_state_json` column.
|
|
18190
|
+
* Returns null when none of the HITL fields are populated.
|
|
18191
|
+
*/
|
|
18192
|
+
buildHitlStateJson(state) {
|
|
18193
|
+
if (!(state.suspension && state.suspension.length > 0 || state.pendingResume !== void 0 || state.reason !== void 0)) return null;
|
|
18194
|
+
return JSON.stringify({
|
|
18195
|
+
...state.suspension && state.suspension.length > 0 ? { suspension: state.suspension } : {},
|
|
18196
|
+
...state.pendingResume !== void 0 ? { pendingResume: state.pendingResume } : {},
|
|
18197
|
+
...state.reason !== void 0 ? { reason: state.reason } : {}
|
|
18198
|
+
});
|
|
18199
|
+
}
|
|
18200
|
+
/**
|
|
18201
|
+
* Load HITL state (suspension array, pendingResume context, halt reason) from the
|
|
18202
|
+
* dedicated `hitl_state_json` column.
|
|
18203
|
+
*/
|
|
18204
|
+
loadHitlState(hitlStateJson) {
|
|
18205
|
+
const parsed = this.parseJson(hitlStateJson);
|
|
18206
|
+
if (!parsed) return {};
|
|
18207
|
+
return {
|
|
18208
|
+
suspension: parsed.suspension,
|
|
18209
|
+
pendingResume: parsed.pendingResume,
|
|
18210
|
+
reason: parsed.reason
|
|
18211
|
+
};
|
|
18212
|
+
}
|
|
17918
18213
|
buildWorkItems(state, nowIso) {
|
|
17919
18214
|
const rows = [];
|
|
17920
18215
|
for (const [index, entry] of (state.queue ?? []).entries()) {
|
|
@@ -18225,7 +18520,7 @@ PrismaWorkflowRunRepository = __decorate([
|
|
|
18225
18520
|
|
|
18226
18521
|
//#endregion
|
|
18227
18522
|
//#region src/infrastructure/persistence/WorkflowDefinitionRepositoryAdapter.ts
|
|
18228
|
-
var _ref$
|
|
18523
|
+
var _ref$39;
|
|
18229
18524
|
let WorkflowDefinitionRepositoryAdapter = class WorkflowDefinitionRepositoryAdapter$1 {
|
|
18230
18525
|
constructor(engine, workflowRepository) {
|
|
18231
18526
|
this.engine = engine;
|
|
@@ -18248,7 +18543,7 @@ WorkflowDefinitionRepositoryAdapter = __decorate([
|
|
|
18248
18543
|
injectable(),
|
|
18249
18544
|
__decorateParam(0, inject(Engine)),
|
|
18250
18545
|
__decorateParam(1, inject(CoreTokens.WorkflowRepository)),
|
|
18251
|
-
__decorateMetadata("design:paramtypes", [typeof (_ref$
|
|
18546
|
+
__decorateMetadata("design:paramtypes", [typeof (_ref$39 = typeof Engine !== "undefined" && Engine) === "function" ? _ref$39 : Object, Object])
|
|
18252
18547
|
], WorkflowDefinitionRepositoryAdapter);
|
|
18253
18548
|
|
|
18254
18549
|
//#endregion
|
|
@@ -22005,7 +22300,7 @@ const S3BinaryStorageConfigSchema = object({
|
|
|
22005
22300
|
|
|
22006
22301
|
//#endregion
|
|
22007
22302
|
//#region src/application/runs/WorkflowRunRetentionPruneScheduler.ts
|
|
22008
|
-
var _ref$
|
|
22303
|
+
var _ref$38, _WorkflowRunRetentionPruneScheduler;
|
|
22009
22304
|
let WorkflowRunRetentionPruneScheduler = class WorkflowRunRetentionPruneScheduler$1 {
|
|
22010
22305
|
static {
|
|
22011
22306
|
_WorkflowRunRetentionPruneScheduler = this;
|
|
@@ -22136,13 +22431,13 @@ WorkflowRunRetentionPruneScheduler = _WorkflowRunRetentionPruneScheduler = __dec
|
|
|
22136
22431
|
Object,
|
|
22137
22432
|
Object,
|
|
22138
22433
|
Object,
|
|
22139
|
-
typeof (_ref$
|
|
22434
|
+
typeof (_ref$38 = typeof ServerLoggerFactory !== "undefined" && ServerLoggerFactory) === "function" ? _ref$38 : Object
|
|
22140
22435
|
])
|
|
22141
22436
|
], WorkflowRunRetentionPruneScheduler);
|
|
22142
22437
|
|
|
22143
22438
|
//#endregion
|
|
22144
22439
|
//#region src/application/WorkflowAuditLogPruneScheduler.ts
|
|
22145
|
-
var _ref$
|
|
22440
|
+
var _ref$37, _WorkflowAuditLogPruneScheduler;
|
|
22146
22441
|
let WorkflowAuditLogPruneScheduler = class WorkflowAuditLogPruneScheduler$1 {
|
|
22147
22442
|
static {
|
|
22148
22443
|
_WorkflowAuditLogPruneScheduler = this;
|
|
@@ -22207,7 +22502,7 @@ WorkflowAuditLogPruneScheduler = _WorkflowAuditLogPruneScheduler = __decorate([
|
|
|
22207
22502
|
Object,
|
|
22208
22503
|
Object,
|
|
22209
22504
|
Object,
|
|
22210
|
-
typeof (_ref$
|
|
22505
|
+
typeof (_ref$37 = typeof ServerLoggerFactory !== "undefined" && ServerLoggerFactory) === "function" ? _ref$37 : Object
|
|
22211
22506
|
])
|
|
22212
22507
|
], WorkflowAuditLogPruneScheduler);
|
|
22213
22508
|
|
|
@@ -22226,7 +22521,7 @@ DefaultMcpClientFactory = __decorate([injectable()], DefaultMcpClientFactory);
|
|
|
22226
22521
|
|
|
22227
22522
|
//#endregion
|
|
22228
22523
|
//#region src/credentials/CredentialOAuth2MaterialReader.ts
|
|
22229
|
-
var _ref$
|
|
22524
|
+
var _ref$36, _CredentialOAuth2MaterialReader;
|
|
22230
22525
|
let CredentialOAuth2MaterialReader = class CredentialOAuth2MaterialReader$1 {
|
|
22231
22526
|
static {
|
|
22232
22527
|
_CredentialOAuth2MaterialReader = this;
|
|
@@ -22319,7 +22614,7 @@ CredentialOAuth2MaterialReader = _CredentialOAuth2MaterialReader = __decorate([
|
|
|
22319
22614
|
__decorateParam(4, inject(ApplicationTokens.LoggerFactory)),
|
|
22320
22615
|
__decorateMetadata("design:paramtypes", [
|
|
22321
22616
|
Object,
|
|
22322
|
-
typeof (_ref$
|
|
22617
|
+
typeof (_ref$36 = typeof CredentialSecretCipher !== "undefined" && CredentialSecretCipher) === "function" ? _ref$36 : Object,
|
|
22323
22618
|
Object,
|
|
22324
22619
|
Object,
|
|
22325
22620
|
Object
|
|
@@ -22328,7 +22623,7 @@ CredentialOAuth2MaterialReader = _CredentialOAuth2MaterialReader = __decorate([
|
|
|
22328
22623
|
|
|
22329
22624
|
//#endregion
|
|
22330
22625
|
//#region src/mcp/McpConnectionPool.ts
|
|
22331
|
-
var _ref$
|
|
22626
|
+
var _ref$35, _ref2$22;
|
|
22332
22627
|
let McpConnectionPool = class McpConnectionPool$1 {
|
|
22333
22628
|
/** Key: `${credentialInstanceId}:${serverId}` */
|
|
22334
22629
|
pool = /* @__PURE__ */ new Map();
|
|
@@ -22460,172 +22755,13 @@ McpConnectionPool = __decorate([
|
|
|
22460
22755
|
__decorateParam(2, inject(ApplicationTokens.LoggerFactory)),
|
|
22461
22756
|
__decorateParam(3, inject(DefaultMcpClientFactory)),
|
|
22462
22757
|
__decorateMetadata("design:paramtypes", [
|
|
22463
|
-
typeof (_ref$
|
|
22464
|
-
typeof (_ref2$
|
|
22758
|
+
typeof (_ref$35 = typeof McpServerCatalog !== "undefined" && McpServerCatalog) === "function" ? _ref$35 : Object,
|
|
22759
|
+
typeof (_ref2$22 = typeof CredentialOAuth2MaterialReader !== "undefined" && CredentialOAuth2MaterialReader) === "function" ? _ref2$22 : Object,
|
|
22465
22760
|
Object,
|
|
22466
22761
|
Object
|
|
22467
22762
|
])
|
|
22468
22763
|
], McpConnectionPool);
|
|
22469
22764
|
|
|
22470
|
-
//#endregion
|
|
22471
|
-
//#region src/credentials/ControlPlaneCatalogFetcher.ts
|
|
22472
|
-
var _ref$22;
|
|
22473
|
-
let ControlPlaneCatalogFetcher = class ControlPlaneCatalogFetcher$1 {
|
|
22474
|
-
config;
|
|
22475
|
-
timerHandle = null;
|
|
22476
|
-
stopped = false;
|
|
22477
|
-
/** Tracks in-flight refresh so stop() can safely await it. */
|
|
22478
|
-
inFlight = null;
|
|
22479
|
-
_oauthApps = null;
|
|
22480
|
-
_mcpServers = null;
|
|
22481
|
-
_credentialTypeOverrides = null;
|
|
22482
|
-
oauthAppsState = {
|
|
22483
|
-
consecutiveFailures: 0,
|
|
22484
|
-
lastSuccessAt: null
|
|
22485
|
-
};
|
|
22486
|
-
mcpServersState = {
|
|
22487
|
-
consecutiveFailures: 0,
|
|
22488
|
-
lastSuccessAt: null
|
|
22489
|
-
};
|
|
22490
|
-
credentialTypesState = {
|
|
22491
|
-
consecutiveFailures: 0,
|
|
22492
|
-
lastSuccessAt: null
|
|
22493
|
-
};
|
|
22494
|
-
/**
|
|
22495
|
-
* Called after each successful full fetch, before the next poll is scheduled.
|
|
22496
|
-
* Set by AppContainerFactory to re-apply overrides on each refresh cycle.
|
|
22497
|
-
*/
|
|
22498
|
-
onRefresh = null;
|
|
22499
|
-
constructor(pairedFetch, pairingConfig, loggers, appConfig) {
|
|
22500
|
-
this.pairedFetch = pairedFetch;
|
|
22501
|
-
this.pairingConfig = pairingConfig;
|
|
22502
|
-
this.loggers = loggers;
|
|
22503
|
-
const env = appConfig.env;
|
|
22504
|
-
const pollSec = Number(env["CODEMATION_CATALOG_POLL_INTERVAL_SECONDS"] ?? 300);
|
|
22505
|
-
const staleFailures = Number(env["CODEMATION_CATALOG_STALE_FAILURES"] ?? 5);
|
|
22506
|
-
const staleHours = Number(env["CODEMATION_CATALOG_STALE_HOURS"] ?? 24);
|
|
22507
|
-
this.config = {
|
|
22508
|
-
pollIntervalMs: Number.isFinite(pollSec) ? pollSec * 1e3 : 3e5,
|
|
22509
|
-
staleFailuresThreshold: Number.isFinite(staleFailures) ? staleFailures : 5,
|
|
22510
|
-
staleHoursThreshold: Number.isFinite(staleHours) ? staleHours : 24
|
|
22511
|
-
};
|
|
22512
|
-
}
|
|
22513
|
-
/** Latest fetched OAuth app catalog; null until first successful fetch. */
|
|
22514
|
-
get oauthApps() {
|
|
22515
|
-
return this._oauthApps;
|
|
22516
|
-
}
|
|
22517
|
-
/** Latest fetched MCP server declarations; null until first successful fetch. */
|
|
22518
|
-
get mcpServers() {
|
|
22519
|
-
return this._mcpServers;
|
|
22520
|
-
}
|
|
22521
|
-
/** Latest fetched credential type overrides; null until first successful fetch. */
|
|
22522
|
-
get credentialTypeOverrides() {
|
|
22523
|
-
return this._credentialTypeOverrides;
|
|
22524
|
-
}
|
|
22525
|
-
/**
|
|
22526
|
-
* Fires the first fetch (non-blocking — failure is logged, not thrown) and
|
|
22527
|
-
* schedules the periodic poll if `pollIntervalMs > 0`.
|
|
22528
|
-
* No-ops immediately when pairing config is absent.
|
|
22529
|
-
*/
|
|
22530
|
-
async start() {
|
|
22531
|
-
if (!this.pairingConfig) return;
|
|
22532
|
-
try {
|
|
22533
|
-
await this.refresh();
|
|
22534
|
-
} catch {}
|
|
22535
|
-
this.scheduleNext();
|
|
22536
|
-
}
|
|
22537
|
-
/**
|
|
22538
|
-
* Cancels the poll timer. Awaits any in-flight fetch before resolving.
|
|
22539
|
-
*/
|
|
22540
|
-
async stop() {
|
|
22541
|
-
this.stopped = true;
|
|
22542
|
-
if (this.timerHandle !== null) {
|
|
22543
|
-
clearTimeout(this.timerHandle);
|
|
22544
|
-
this.timerHandle = null;
|
|
22545
|
-
}
|
|
22546
|
-
if (this.inFlight) await this.inFlight;
|
|
22547
|
-
}
|
|
22548
|
-
/**
|
|
22549
|
-
* Manual one-shot fetch. Same code path as the periodic tick.
|
|
22550
|
-
* Errors are caught and logged internally; this method never rejects.
|
|
22551
|
-
*/
|
|
22552
|
-
async refresh() {
|
|
22553
|
-
const run = this.fetchAll();
|
|
22554
|
-
this.inFlight = run;
|
|
22555
|
-
try {
|
|
22556
|
-
await run;
|
|
22557
|
-
} finally {
|
|
22558
|
-
if (this.inFlight === run) this.inFlight = null;
|
|
22559
|
-
}
|
|
22560
|
-
}
|
|
22561
|
-
scheduleNext() {
|
|
22562
|
-
if (this.stopped || this.config.pollIntervalMs <= 0) return;
|
|
22563
|
-
this.timerHandle = setTimeout(() => {
|
|
22564
|
-
if (this.stopped) return;
|
|
22565
|
-
this.refresh().finally(() => this.scheduleNext());
|
|
22566
|
-
}, this.config.pollIntervalMs);
|
|
22567
|
-
}
|
|
22568
|
-
async fetchAll() {
|
|
22569
|
-
if (!this.pairingConfig) return;
|
|
22570
|
-
const logger = this.loggers.create("ControlPlaneCatalogFetcher");
|
|
22571
|
-
const base = this.pairingConfig.controlPlaneUrl;
|
|
22572
|
-
const [oauthResult, mcpResult, credTypesResult] = await Promise.allSettled([
|
|
22573
|
-
this.pairedFetch.get(`${base}/internal/catalog/oauth-apps`),
|
|
22574
|
-
this.pairedFetch.get(`${base}/internal/catalog/mcp-servers`),
|
|
22575
|
-
this.pairedFetch.get(`${base}/internal/catalog/credential-types`)
|
|
22576
|
-
]);
|
|
22577
|
-
await this.handleEndpointResult(oauthResult, this.oauthAppsState, "oauth-apps", (data) => {
|
|
22578
|
-
this._oauthApps = data;
|
|
22579
|
-
}, logger);
|
|
22580
|
-
await this.handleEndpointResult(mcpResult, this.mcpServersState, "mcp-servers", (data) => {
|
|
22581
|
-
this._mcpServers = data;
|
|
22582
|
-
}, logger);
|
|
22583
|
-
await this.handleEndpointResult(credTypesResult, this.credentialTypesState, "credential-types", (data) => {
|
|
22584
|
-
this._credentialTypeOverrides = data;
|
|
22585
|
-
}, logger);
|
|
22586
|
-
this.onRefresh?.();
|
|
22587
|
-
}
|
|
22588
|
-
async handleEndpointResult(result, state, endpointName, onSuccess, logger) {
|
|
22589
|
-
if (result.status === "fulfilled") {
|
|
22590
|
-
const res = result.value;
|
|
22591
|
-
if (res.ok) try {
|
|
22592
|
-
const data = await res.json();
|
|
22593
|
-
onSuccess(data);
|
|
22594
|
-
state.consecutiveFailures = 0;
|
|
22595
|
-
state.lastSuccessAt = /* @__PURE__ */ new Date();
|
|
22596
|
-
logger.info(`ControlPlaneCatalogFetcher: fetched ${endpointName} (count=${data.length})`);
|
|
22597
|
-
return;
|
|
22598
|
-
} catch (err) {
|
|
22599
|
-
this.logEndpointFailure(state, endpointName, err, logger);
|
|
22600
|
-
return;
|
|
22601
|
-
}
|
|
22602
|
-
this.logEndpointFailure(state, endpointName, /* @__PURE__ */ new Error(`HTTP ${res.status} ${res.statusText}`), logger);
|
|
22603
|
-
} else this.logEndpointFailure(state, endpointName, result.reason, logger);
|
|
22604
|
-
}
|
|
22605
|
-
logEndpointFailure(state, endpointName, err, logger) {
|
|
22606
|
-
state.consecutiveFailures++;
|
|
22607
|
-
const staleHours = state.lastSuccessAt ? (Date.now() - state.lastSuccessAt.getTime()) / 36e5 : null;
|
|
22608
|
-
const errMsg = err instanceof Error ? err.message : String(err);
|
|
22609
|
-
if (state.consecutiveFailures >= this.config.staleFailuresThreshold || staleHours !== null && staleHours >= this.config.staleHoursThreshold) {
|
|
22610
|
-
const staleLabel = staleHours !== null ? `${staleHours.toFixed(1)}h` : "never-succeeded";
|
|
22611
|
-
logger.error(`ControlPlaneCatalogFetcher: ${endpointName} is stale — control plane unreachable (failures=${state.consecutiveFailures}, stale=${staleLabel}): ${errMsg}`, err instanceof Error ? err : void 0);
|
|
22612
|
-
} else logger.warn(`ControlPlaneCatalogFetcher: ${endpointName} fetch failed, retaining prior cached value (failures=${state.consecutiveFailures}): ${errMsg}`, err instanceof Error ? err : void 0);
|
|
22613
|
-
}
|
|
22614
|
-
};
|
|
22615
|
-
ControlPlaneCatalogFetcher = __decorate([
|
|
22616
|
-
injectable(),
|
|
22617
|
-
__decorateParam(0, inject(PairedFetch)),
|
|
22618
|
-
__decorateParam(1, inject(PairingConfigToken, { isOptional: true })),
|
|
22619
|
-
__decorateParam(2, inject(ApplicationTokens.LoggerFactory)),
|
|
22620
|
-
__decorateParam(3, inject(ApplicationTokens.AppConfig)),
|
|
22621
|
-
__decorateMetadata("design:paramtypes", [
|
|
22622
|
-
typeof (_ref$22 = typeof PairedFetch !== "undefined" && PairedFetch) === "function" ? _ref$22 : Object,
|
|
22623
|
-
Object,
|
|
22624
|
-
Object,
|
|
22625
|
-
Object
|
|
22626
|
-
])
|
|
22627
|
-
], ControlPlaneCatalogFetcher);
|
|
22628
|
-
|
|
22629
22765
|
//#endregion
|
|
22630
22766
|
//#region src/bootstrap/AppContainerLifecycle.ts
|
|
22631
22767
|
var AppContainerLifecycle = class {
|
|
@@ -22656,7 +22792,7 @@ var AppContainerLifecycle = class {
|
|
|
22656
22792
|
|
|
22657
22793
|
//#endregion
|
|
22658
22794
|
//#region src/bootstrap/runtime/DatabaseMigrations.ts
|
|
22659
|
-
var _ref$
|
|
22795
|
+
var _ref$34;
|
|
22660
22796
|
let DatabaseMigrations = class DatabaseMigrations$1 {
|
|
22661
22797
|
constructor(appConfig, prismaMigrationDeployer) {
|
|
22662
22798
|
this.appConfig = appConfig;
|
|
@@ -22670,7 +22806,7 @@ DatabaseMigrations = __decorate([
|
|
|
22670
22806
|
injectable(),
|
|
22671
22807
|
__decorateParam(0, inject(ApplicationTokens.AppConfig)),
|
|
22672
22808
|
__decorateParam(1, inject(PrismaMigrationDeployer)),
|
|
22673
|
-
__decorateMetadata("design:paramtypes", [Object, typeof (_ref$
|
|
22809
|
+
__decorateMetadata("design:paramtypes", [Object, typeof (_ref$34 = typeof PrismaMigrationDeployer !== "undefined" && PrismaMigrationDeployer) === "function" ? _ref$34 : Object])
|
|
22674
22810
|
], DatabaseMigrations);
|
|
22675
22811
|
|
|
22676
22812
|
//#endregion
|
|
@@ -22695,7 +22831,7 @@ var CollectionSchemaSyncerHolder = class {
|
|
|
22695
22831
|
|
|
22696
22832
|
//#endregion
|
|
22697
22833
|
//#region src/bootstrap/runtime/FrontendRuntime.ts
|
|
22698
|
-
var _ref$
|
|
22834
|
+
var _ref$33, _ref2$21, _ref3$6, _ref4$4, _ref5$2, _ref6$1, _ref7$1, _ref8;
|
|
22699
22835
|
let FrontendRuntime = class FrontendRuntime$1 {
|
|
22700
22836
|
constructor(appConfig, databaseMigrations, runtimeWorkflowActivationPolicy, workflowActivationRepository, workflowRepository, workflowWebsocketServer, workflowRunEventWebsocketRelay, runEventBusTelemetryReporter, workflowRunRetentionPruneScheduler, engine, collectionSchemaSyncerHolder) {
|
|
22701
22837
|
this.appConfig = appConfig;
|
|
@@ -22737,13 +22873,13 @@ FrontendRuntime = __decorate([
|
|
|
22737
22873
|
__decorateParam(10, inject(CollectionSchemaSyncerHolder)),
|
|
22738
22874
|
__decorateMetadata("design:paramtypes", [
|
|
22739
22875
|
Object,
|
|
22740
|
-
typeof (_ref$
|
|
22741
|
-
typeof (_ref2$
|
|
22876
|
+
typeof (_ref$33 = typeof DatabaseMigrations !== "undefined" && DatabaseMigrations) === "function" ? _ref$33 : Object,
|
|
22877
|
+
typeof (_ref2$21 = typeof RuntimeWorkflowActivationPolicy !== "undefined" && RuntimeWorkflowActivationPolicy) === "function" ? _ref2$21 : Object,
|
|
22742
22878
|
Object,
|
|
22743
22879
|
Object,
|
|
22744
|
-
typeof (_ref3$
|
|
22745
|
-
typeof (_ref4$
|
|
22746
|
-
typeof (_ref5$
|
|
22880
|
+
typeof (_ref3$6 = typeof WorkflowWebsocketServer !== "undefined" && WorkflowWebsocketServer) === "function" ? _ref3$6 : Object,
|
|
22881
|
+
typeof (_ref4$4 = typeof WorkflowRunEventWebsocketRelay !== "undefined" && WorkflowRunEventWebsocketRelay) === "function" ? _ref4$4 : Object,
|
|
22882
|
+
typeof (_ref5$2 = typeof RunEventBusTelemetryReporter !== "undefined" && RunEventBusTelemetryReporter) === "function" ? _ref5$2 : Object,
|
|
22747
22883
|
typeof (_ref6$1 = typeof WorkflowRunRetentionPruneScheduler !== "undefined" && WorkflowRunRetentionPruneScheduler) === "function" ? _ref6$1 : Object,
|
|
22748
22884
|
typeof (_ref7$1 = typeof Engine !== "undefined" && Engine) === "function" ? _ref7$1 : Object,
|
|
22749
22885
|
typeof (_ref8 = typeof CollectionSchemaSyncerHolder !== "undefined" && CollectionSchemaSyncerHolder) === "function" ? _ref8 : Object
|
|
@@ -22752,7 +22888,7 @@ FrontendRuntime = __decorate([
|
|
|
22752
22888
|
|
|
22753
22889
|
//#endregion
|
|
22754
22890
|
//#region src/bootstrap/runtime/WorkerRuntime.ts
|
|
22755
|
-
var _ref$
|
|
22891
|
+
var _ref$32, _ref2$20, _ref3$5, _ref4$3, _ref5$1, _ref6, _ref7;
|
|
22756
22892
|
let WorkerRuntime = class WorkerRuntime$1 {
|
|
22757
22893
|
constructor(appConfig, databaseMigrations, runtimeWorkflowActivationPolicy, workflowActivationRepository, workflowRepository, engine, runEventBusTelemetryReporter, workflowRunRetentionPruneScheduler, scheduler, lifecycle, collectionSchemaSyncerHolder) {
|
|
22758
22894
|
this.appConfig = appConfig;
|
|
@@ -22802,13 +22938,13 @@ WorkerRuntime = __decorate([
|
|
|
22802
22938
|
__decorateParam(10, inject(CollectionSchemaSyncerHolder)),
|
|
22803
22939
|
__decorateMetadata("design:paramtypes", [
|
|
22804
22940
|
Object,
|
|
22805
|
-
typeof (_ref$
|
|
22806
|
-
typeof (_ref2$
|
|
22941
|
+
typeof (_ref$32 = typeof DatabaseMigrations !== "undefined" && DatabaseMigrations) === "function" ? _ref$32 : Object,
|
|
22942
|
+
typeof (_ref2$20 = typeof RuntimeWorkflowActivationPolicy !== "undefined" && RuntimeWorkflowActivationPolicy) === "function" ? _ref2$20 : Object,
|
|
22807
22943
|
Object,
|
|
22808
22944
|
Object,
|
|
22809
|
-
typeof (_ref3$
|
|
22810
|
-
typeof (_ref4$
|
|
22811
|
-
typeof (_ref5 = typeof WorkflowRunRetentionPruneScheduler !== "undefined" && WorkflowRunRetentionPruneScheduler) === "function" ? _ref5 : Object,
|
|
22945
|
+
typeof (_ref3$5 = typeof Engine !== "undefined" && Engine) === "function" ? _ref3$5 : Object,
|
|
22946
|
+
typeof (_ref4$3 = typeof RunEventBusTelemetryReporter !== "undefined" && RunEventBusTelemetryReporter) === "function" ? _ref4$3 : Object,
|
|
22947
|
+
typeof (_ref5$1 = typeof WorkflowRunRetentionPruneScheduler !== "undefined" && WorkflowRunRetentionPruneScheduler) === "function" ? _ref5$1 : Object,
|
|
22812
22948
|
Object,
|
|
22813
22949
|
typeof (_ref6 = typeof AppContainerLifecycle !== "undefined" && AppContainerLifecycle) === "function" ? _ref6 : Object,
|
|
22814
22950
|
typeof (_ref7 = typeof CollectionSchemaSyncerHolder !== "undefined" && CollectionSchemaSyncerHolder) === "function" ? _ref7 : Object
|
|
@@ -23846,7 +23982,7 @@ var DeleteCollectionRowCommand = class extends Command {
|
|
|
23846
23982
|
|
|
23847
23983
|
//#endregion
|
|
23848
23984
|
//#region src/application/collections/DeleteCollectionRowCommandHandler.ts
|
|
23849
|
-
var _ref$
|
|
23985
|
+
var _ref$31, _ref2$19;
|
|
23850
23986
|
let DeleteCollectionRowCommandHandler = class DeleteCollectionRowCommandHandler$1 extends CommandHandler {
|
|
23851
23987
|
constructor(collectionRegistry, storeRegistry) {
|
|
23852
23988
|
super();
|
|
@@ -23864,7 +24000,7 @@ DeleteCollectionRowCommandHandler = __decorate([
|
|
|
23864
24000
|
HandlesCommand.forCommand(DeleteCollectionRowCommand),
|
|
23865
24001
|
__decorateParam(0, inject(CollectionRegistry)),
|
|
23866
24002
|
__decorateParam(1, inject(CollectionsTokens.CollectionStoreRegistry)),
|
|
23867
|
-
__decorateMetadata("design:paramtypes", [typeof (_ref$
|
|
24003
|
+
__decorateMetadata("design:paramtypes", [typeof (_ref$31 = typeof CollectionRegistry !== "undefined" && CollectionRegistry) === "function" ? _ref$31 : Object, typeof (_ref2$19 = typeof CollectionStoreRegistry !== "undefined" && CollectionStoreRegistry) === "function" ? _ref2$19 : Object])
|
|
23868
24004
|
], DeleteCollectionRowCommandHandler);
|
|
23869
24005
|
|
|
23870
24006
|
//#endregion
|
|
@@ -23879,7 +24015,7 @@ var InsertCollectionRowCommand = class extends Command {
|
|
|
23879
24015
|
|
|
23880
24016
|
//#endregion
|
|
23881
24017
|
//#region src/application/collections/InsertCollectionRowCommandHandler.ts
|
|
23882
|
-
var _ref$
|
|
24018
|
+
var _ref$30, _ref2$18;
|
|
23883
24019
|
let InsertCollectionRowCommandHandler = class InsertCollectionRowCommandHandler$1 extends CommandHandler {
|
|
23884
24020
|
constructor(collectionRegistry, storeRegistry) {
|
|
23885
24021
|
super();
|
|
@@ -23903,7 +24039,7 @@ InsertCollectionRowCommandHandler = __decorate([
|
|
|
23903
24039
|
HandlesCommand.forCommand(InsertCollectionRowCommand),
|
|
23904
24040
|
__decorateParam(0, inject(CollectionRegistry)),
|
|
23905
24041
|
__decorateParam(1, inject(CollectionsTokens.CollectionStoreRegistry)),
|
|
23906
|
-
__decorateMetadata("design:paramtypes", [typeof (_ref$
|
|
24042
|
+
__decorateMetadata("design:paramtypes", [typeof (_ref$30 = typeof CollectionRegistry !== "undefined" && CollectionRegistry) === "function" ? _ref$30 : Object, typeof (_ref2$18 = typeof CollectionStoreRegistry !== "undefined" && CollectionStoreRegistry) === "function" ? _ref2$18 : Object])
|
|
23907
24043
|
], InsertCollectionRowCommandHandler);
|
|
23908
24044
|
|
|
23909
24045
|
//#endregion
|
|
@@ -23917,7 +24053,7 @@ var SyncCollectionsCommand = class extends Command {
|
|
|
23917
24053
|
|
|
23918
24054
|
//#endregion
|
|
23919
24055
|
//#region src/application/collections/SyncCollectionsCommandHandler.ts
|
|
23920
|
-
var _ref$
|
|
24056
|
+
var _ref$29;
|
|
23921
24057
|
let SyncCollectionsCommandHandler = class SyncCollectionsCommandHandler$1 extends CommandHandler {
|
|
23922
24058
|
constructor(syncerHolder) {
|
|
23923
24059
|
super();
|
|
@@ -23940,7 +24076,7 @@ let SyncCollectionsCommandHandler = class SyncCollectionsCommandHandler$1 extend
|
|
|
23940
24076
|
SyncCollectionsCommandHandler = __decorate([
|
|
23941
24077
|
HandlesCommand.forCommand(SyncCollectionsCommand),
|
|
23942
24078
|
__decorateParam(0, inject(CollectionSchemaSyncerHolder)),
|
|
23943
|
-
__decorateMetadata("design:paramtypes", [typeof (_ref$
|
|
24079
|
+
__decorateMetadata("design:paramtypes", [typeof (_ref$29 = typeof CollectionSchemaSyncerHolder !== "undefined" && CollectionSchemaSyncerHolder) === "function" ? _ref$29 : Object])
|
|
23944
24080
|
], SyncCollectionsCommandHandler);
|
|
23945
24081
|
|
|
23946
24082
|
//#endregion
|
|
@@ -23956,7 +24092,7 @@ var UpdateCollectionRowCommand = class extends Command {
|
|
|
23956
24092
|
|
|
23957
24093
|
//#endregion
|
|
23958
24094
|
//#region src/application/collections/UpdateCollectionRowCommandHandler.ts
|
|
23959
|
-
var _ref$
|
|
24095
|
+
var _ref$28, _ref2$17;
|
|
23960
24096
|
let UpdateCollectionRowCommandHandler = class UpdateCollectionRowCommandHandler$1 extends CommandHandler {
|
|
23961
24097
|
constructor(collectionRegistry, storeRegistry) {
|
|
23962
24098
|
super();
|
|
@@ -23980,7 +24116,7 @@ UpdateCollectionRowCommandHandler = __decorate([
|
|
|
23980
24116
|
HandlesCommand.forCommand(UpdateCollectionRowCommand),
|
|
23981
24117
|
__decorateParam(0, inject(CollectionRegistry)),
|
|
23982
24118
|
__decorateParam(1, inject(CollectionsTokens.CollectionStoreRegistry)),
|
|
23983
|
-
__decorateMetadata("design:paramtypes", [typeof (_ref$
|
|
24119
|
+
__decorateMetadata("design:paramtypes", [typeof (_ref$28 = typeof CollectionRegistry !== "undefined" && CollectionRegistry) === "function" ? _ref$28 : Object, typeof (_ref2$17 = typeof CollectionStoreRegistry !== "undefined" && CollectionStoreRegistry) === "function" ? _ref2$17 : Object])
|
|
23984
24120
|
], UpdateCollectionRowCommandHandler);
|
|
23985
24121
|
|
|
23986
24122
|
//#endregion
|
|
@@ -23994,7 +24130,7 @@ var GetCollectionQuery = class extends Query {
|
|
|
23994
24130
|
|
|
23995
24131
|
//#endregion
|
|
23996
24132
|
//#region src/application/collections/GetCollectionQueryHandler.ts
|
|
23997
|
-
var _ref$
|
|
24133
|
+
var _ref$27;
|
|
23998
24134
|
let GetCollectionQueryHandler = class GetCollectionQueryHandler$1 extends QueryHandler {
|
|
23999
24135
|
constructor(collectionRegistry) {
|
|
24000
24136
|
super();
|
|
@@ -24021,7 +24157,7 @@ let GetCollectionQueryHandler = class GetCollectionQueryHandler$1 extends QueryH
|
|
|
24021
24157
|
GetCollectionQueryHandler = __decorate([
|
|
24022
24158
|
HandlesQuery.for(GetCollectionQuery),
|
|
24023
24159
|
__decorateParam(0, inject(CollectionRegistry)),
|
|
24024
|
-
__decorateMetadata("design:paramtypes", [typeof (_ref$
|
|
24160
|
+
__decorateMetadata("design:paramtypes", [typeof (_ref$27 = typeof CollectionRegistry !== "undefined" && CollectionRegistry) === "function" ? _ref$27 : Object])
|
|
24025
24161
|
], GetCollectionQueryHandler);
|
|
24026
24162
|
|
|
24027
24163
|
//#endregion
|
|
@@ -24036,7 +24172,7 @@ var GetCollectionRowQuery = class extends Query {
|
|
|
24036
24172
|
|
|
24037
24173
|
//#endregion
|
|
24038
24174
|
//#region src/application/collections/GetCollectionRowQueryHandler.ts
|
|
24039
|
-
var _ref$
|
|
24175
|
+
var _ref$26, _ref2$16;
|
|
24040
24176
|
let GetCollectionRowQueryHandler = class GetCollectionRowQueryHandler$1 extends QueryHandler {
|
|
24041
24177
|
constructor(collectionRegistry, storeRegistry) {
|
|
24042
24178
|
super();
|
|
@@ -24062,7 +24198,7 @@ GetCollectionRowQueryHandler = __decorate([
|
|
|
24062
24198
|
HandlesQuery.for(GetCollectionRowQuery),
|
|
24063
24199
|
__decorateParam(0, inject(CollectionRegistry)),
|
|
24064
24200
|
__decorateParam(1, inject(CollectionsTokens.CollectionStoreRegistry)),
|
|
24065
|
-
__decorateMetadata("design:paramtypes", [typeof (_ref$
|
|
24201
|
+
__decorateMetadata("design:paramtypes", [typeof (_ref$26 = typeof CollectionRegistry !== "undefined" && CollectionRegistry) === "function" ? _ref$26 : Object, typeof (_ref2$16 = typeof CollectionStoreRegistry !== "undefined" && CollectionStoreRegistry) === "function" ? _ref2$16 : Object])
|
|
24066
24202
|
], GetCollectionRowQueryHandler);
|
|
24067
24203
|
|
|
24068
24204
|
//#endregion
|
|
@@ -24079,7 +24215,7 @@ var ListCollectionRowsQuery = class extends Query {
|
|
|
24079
24215
|
|
|
24080
24216
|
//#endregion
|
|
24081
24217
|
//#region src/application/collections/ListCollectionRowsQueryHandler.ts
|
|
24082
|
-
var _ref$
|
|
24218
|
+
var _ref$25, _ref2$15;
|
|
24083
24219
|
let ListCollectionRowsQueryHandler = class ListCollectionRowsQueryHandler$1 extends QueryHandler {
|
|
24084
24220
|
constructor(collectionRegistry, storeRegistry) {
|
|
24085
24221
|
super();
|
|
@@ -24116,7 +24252,7 @@ ListCollectionRowsQueryHandler = __decorate([
|
|
|
24116
24252
|
HandlesQuery.for(ListCollectionRowsQuery),
|
|
24117
24253
|
__decorateParam(0, inject(CollectionRegistry)),
|
|
24118
24254
|
__decorateParam(1, inject(CollectionsTokens.CollectionStoreRegistry)),
|
|
24119
|
-
__decorateMetadata("design:paramtypes", [typeof (_ref$
|
|
24255
|
+
__decorateMetadata("design:paramtypes", [typeof (_ref$25 = typeof CollectionRegistry !== "undefined" && CollectionRegistry) === "function" ? _ref$25 : Object, typeof (_ref2$15 = typeof CollectionStoreRegistry !== "undefined" && CollectionStoreRegistry) === "function" ? _ref2$15 : Object])
|
|
24120
24256
|
], ListCollectionRowsQueryHandler);
|
|
24121
24257
|
|
|
24122
24258
|
//#endregion
|
|
@@ -24125,7 +24261,7 @@ var ListCollectionsQuery = class extends Query {};
|
|
|
24125
24261
|
|
|
24126
24262
|
//#endregion
|
|
24127
24263
|
//#region src/application/collections/ListCollectionsQueryHandler.ts
|
|
24128
|
-
var _ref$
|
|
24264
|
+
var _ref$24, _ref2$14;
|
|
24129
24265
|
let ListCollectionsQueryHandler = class ListCollectionsQueryHandler$1 extends QueryHandler {
|
|
24130
24266
|
constructor(collectionRegistry, storeRegistry) {
|
|
24131
24267
|
super();
|
|
@@ -24149,7 +24285,7 @@ ListCollectionsQueryHandler = __decorate([
|
|
|
24149
24285
|
HandlesQuery.for(ListCollectionsQuery),
|
|
24150
24286
|
__decorateParam(0, inject(CollectionRegistry)),
|
|
24151
24287
|
__decorateParam(1, inject(CollectionsTokens.CollectionStoreRegistry)),
|
|
24152
|
-
__decorateMetadata("design:paramtypes", [typeof (_ref$
|
|
24288
|
+
__decorateMetadata("design:paramtypes", [typeof (_ref$24 = typeof CollectionRegistry !== "undefined" && CollectionRegistry) === "function" ? _ref$24 : Object, typeof (_ref2$14 = typeof CollectionStoreRegistry !== "undefined" && CollectionStoreRegistry) === "function" ? _ref2$14 : Object])
|
|
24153
24289
|
], ListCollectionsQueryHandler);
|
|
24154
24290
|
|
|
24155
24291
|
//#endregion
|
|
@@ -24272,7 +24408,7 @@ CollectionHttpRouteHandler = __decorate([
|
|
|
24272
24408
|
|
|
24273
24409
|
//#endregion
|
|
24274
24410
|
//#region src/presentation/http/hono/registrars/CollectionHonoApiRouteRegistrar.ts
|
|
24275
|
-
var _ref$
|
|
24411
|
+
var _ref$23;
|
|
24276
24412
|
let CollectionHonoApiRouteRegistrar = class CollectionHonoApiRouteRegistrar$1 {
|
|
24277
24413
|
constructor(handler) {
|
|
24278
24414
|
this.handler = handler;
|
|
@@ -24300,7 +24436,7 @@ let CollectionHonoApiRouteRegistrar = class CollectionHonoApiRouteRegistrar$1 {
|
|
|
24300
24436
|
CollectionHonoApiRouteRegistrar = __decorate([
|
|
24301
24437
|
injectable(),
|
|
24302
24438
|
__decorateParam(0, inject(CollectionHttpRouteHandler)),
|
|
24303
|
-
__decorateMetadata("design:paramtypes", [typeof (_ref$
|
|
24439
|
+
__decorateMetadata("design:paramtypes", [typeof (_ref$23 = typeof CollectionHttpRouteHandler !== "undefined" && CollectionHttpRouteHandler) === "function" ? _ref$23 : Object])
|
|
24304
24440
|
], CollectionHonoApiRouteRegistrar);
|
|
24305
24441
|
|
|
24306
24442
|
//#endregion
|
|
@@ -24330,9 +24466,34 @@ ManagedMeHonoApiRouteRegistrar = __decorate([
|
|
|
24330
24466
|
__decorateMetadata("design:paramtypes", [Object])
|
|
24331
24467
|
], ManagedMeHonoApiRouteRegistrar);
|
|
24332
24468
|
|
|
24469
|
+
//#endregion
|
|
24470
|
+
//#region src/infrastructure/persistence/PrismaHmacNonceStore.ts
|
|
24471
|
+
let PrismaHmacNonceStore = class PrismaHmacNonceStore$1 {
|
|
24472
|
+
constructor(prisma) {
|
|
24473
|
+
this.prisma = prisma;
|
|
24474
|
+
}
|
|
24475
|
+
async recordIfNew(nonce, expiresAt) {
|
|
24476
|
+
await this.prisma.hmacNonce.deleteMany({ where: { expiresAt: { lt: /* @__PURE__ */ new Date() } } });
|
|
24477
|
+
try {
|
|
24478
|
+
await this.prisma.hmacNonce.create({ data: {
|
|
24479
|
+
nonce,
|
|
24480
|
+
expiresAt
|
|
24481
|
+
} });
|
|
24482
|
+
return true;
|
|
24483
|
+
} catch {
|
|
24484
|
+
return false;
|
|
24485
|
+
}
|
|
24486
|
+
}
|
|
24487
|
+
};
|
|
24488
|
+
PrismaHmacNonceStore = __decorate([
|
|
24489
|
+
injectable(),
|
|
24490
|
+
__decorateParam(0, inject(PrismaDatabaseClientToken)),
|
|
24491
|
+
__decorateMetadata("design:paramtypes", [Object])
|
|
24492
|
+
], PrismaHmacNonceStore);
|
|
24493
|
+
|
|
24333
24494
|
//#endregion
|
|
24334
24495
|
//#region src/credentials/LocalOAuthFlowExecutor.ts
|
|
24335
|
-
var _ref$
|
|
24496
|
+
var _ref$22, _ref2$13, _ref3$4, _ref4$2, _LocalOAuthFlowExecutor;
|
|
24336
24497
|
let LocalOAuthFlowExecutor = class LocalOAuthFlowExecutor$1 {
|
|
24337
24498
|
static {
|
|
24338
24499
|
_LocalOAuthFlowExecutor = this;
|
|
@@ -24532,56 +24693,241 @@ LocalOAuthFlowExecutor = _LocalOAuthFlowExecutor = __decorate([
|
|
|
24532
24693
|
__decorateParam(4, inject(CredentialFieldEnvOverlayService)),
|
|
24533
24694
|
__decorateParam(5, inject(ApplicationTokens.Clock)),
|
|
24534
24695
|
__decorateMetadata("design:paramtypes", [
|
|
24535
|
-
typeof (_ref$
|
|
24696
|
+
typeof (_ref$22 = typeof CredentialTypeRegistryImpl !== "undefined" && CredentialTypeRegistryImpl) === "function" ? _ref$22 : Object,
|
|
24536
24697
|
Object,
|
|
24537
|
-
typeof (_ref2$
|
|
24538
|
-
typeof (_ref3$
|
|
24539
|
-
typeof (_ref4$
|
|
24698
|
+
typeof (_ref2$13 = typeof CredentialMaterialResolver !== "undefined" && CredentialMaterialResolver) === "function" ? _ref2$13 : Object,
|
|
24699
|
+
typeof (_ref3$4 = typeof OAuth2ProviderRegistry !== "undefined" && OAuth2ProviderRegistry) === "function" ? _ref3$4 : Object,
|
|
24700
|
+
typeof (_ref4$2 = typeof CredentialFieldEnvOverlayService !== "undefined" && CredentialFieldEnvOverlayService) === "function" ? _ref4$2 : Object,
|
|
24540
24701
|
Object
|
|
24541
24702
|
])
|
|
24542
24703
|
], LocalOAuthFlowExecutor);
|
|
24543
24704
|
|
|
24544
24705
|
//#endregion
|
|
24545
|
-
//#region src/credentials/
|
|
24546
|
-
|
|
24547
|
-
|
|
24548
|
-
|
|
24549
|
-
|
|
24550
|
-
|
|
24551
|
-
|
|
24552
|
-
|
|
24553
|
-
|
|
24554
|
-
|
|
24555
|
-
|
|
24706
|
+
//#region src/credentials/LocalCredentialMaterialProvider.ts
|
|
24707
|
+
var _ref$21;
|
|
24708
|
+
let LocalCredentialMaterialProvider = class LocalCredentialMaterialProvider$1 {
|
|
24709
|
+
constructor(credentialStore, credentialSecretCipher) {
|
|
24710
|
+
this.credentialStore = credentialStore;
|
|
24711
|
+
this.credentialSecretCipher = credentialSecretCipher;
|
|
24712
|
+
}
|
|
24713
|
+
async getMaterial(ref, _context) {
|
|
24714
|
+
this.assertLocalSource(ref);
|
|
24715
|
+
const encrypted = await this.credentialStore.getOAuth2Material(ref.id);
|
|
24716
|
+
if (!encrypted) throw new Error(`LocalCredentialMaterialProvider: no material for instance "${ref.id}"`);
|
|
24717
|
+
const json = this.credentialSecretCipher.decrypt({
|
|
24718
|
+
encryptedJson: encrypted.encryptedJson,
|
|
24719
|
+
encryptionKeyId: encrypted.encryptionKeyId,
|
|
24720
|
+
schemaVersion: encrypted.schemaVersion
|
|
24721
|
+
});
|
|
24722
|
+
return {
|
|
24723
|
+
accessToken: typeof json.accessToken === "string" ? json.accessToken : "",
|
|
24724
|
+
refreshToken: typeof json.refreshToken === "string" ? json.refreshToken : void 0,
|
|
24725
|
+
expiresAt: typeof json.expiresAt === "string" ? json.expiresAt : void 0,
|
|
24726
|
+
grantedScopes: typeof json.grantedScopes === "string" ? json.grantedScopes.split(/\s+/).filter((scope) => scope.length > 0) : encrypted.scopes
|
|
24727
|
+
};
|
|
24728
|
+
}
|
|
24729
|
+
async setMaterial(ref, material) {
|
|
24730
|
+
this.assertLocalSource(ref);
|
|
24731
|
+
const existing = await this.credentialStore.getOAuth2Material(ref.id);
|
|
24732
|
+
const encrypted = this.credentialSecretCipher.encrypt({
|
|
24733
|
+
accessToken: material.accessToken,
|
|
24734
|
+
refreshToken: material.refreshToken ?? null,
|
|
24735
|
+
expiresAt: material.expiresAt ?? null,
|
|
24736
|
+
grantedScopes: material.grantedScopes.join(" ")
|
|
24737
|
+
});
|
|
24738
|
+
const now = (/* @__PURE__ */ new Date()).toISOString();
|
|
24739
|
+
await this.credentialStore.saveOAuth2Material({
|
|
24740
|
+
instanceId: ref.id,
|
|
24741
|
+
encryptedJson: encrypted.encryptedJson,
|
|
24742
|
+
encryptionKeyId: encrypted.encryptionKeyId,
|
|
24743
|
+
schemaVersion: encrypted.schemaVersion,
|
|
24744
|
+
metadata: {
|
|
24745
|
+
providerId: existing?.providerId ?? "",
|
|
24746
|
+
connectedEmail: existing?.connectedEmail,
|
|
24747
|
+
connectedAt: existing?.connectedAt,
|
|
24748
|
+
scopes: [...material.grantedScopes],
|
|
24749
|
+
updatedAt: now
|
|
24750
|
+
}
|
|
24751
|
+
});
|
|
24752
|
+
}
|
|
24753
|
+
assertLocalSource(ref) {
|
|
24754
|
+
if (ref.source !== "local") throw new IllegalMaterialSourceError(ref.source, "LocalCredentialMaterialProvider");
|
|
24556
24755
|
}
|
|
24557
24756
|
};
|
|
24757
|
+
LocalCredentialMaterialProvider = __decorate([
|
|
24758
|
+
injectable(),
|
|
24759
|
+
__decorateParam(0, inject(ApplicationTokens.CredentialStore)),
|
|
24760
|
+
__decorateParam(1, inject(CredentialSecretCipher)),
|
|
24761
|
+
__decorateMetadata("design:paramtypes", [Object, typeof (_ref$21 = typeof CredentialSecretCipher !== "undefined" && CredentialSecretCipher) === "function" ? _ref$21 : Object])
|
|
24762
|
+
], LocalCredentialMaterialProvider);
|
|
24558
24763
|
|
|
24559
24764
|
//#endregion
|
|
24560
|
-
//#region src/credentials/
|
|
24561
|
-
var
|
|
24562
|
-
let
|
|
24563
|
-
|
|
24765
|
+
//#region src/credentials/CachingCredentialMaterialProvider.ts
|
|
24766
|
+
var _CachingCredentialMaterialProvider;
|
|
24767
|
+
let CachingCredentialMaterialProvider = class CachingCredentialMaterialProvider$1 {
|
|
24768
|
+
static {
|
|
24769
|
+
_CachingCredentialMaterialProvider = this;
|
|
24770
|
+
}
|
|
24771
|
+
static HARD_CAP_MS = 300 * 1e3;
|
|
24772
|
+
static EXPIRY_SAFETY_WINDOW_MS = 60 * 1e3;
|
|
24773
|
+
cache = /* @__PURE__ */ new Map();
|
|
24774
|
+
logger;
|
|
24775
|
+
constructor(inner, loggerFactory) {
|
|
24776
|
+
this.inner = inner;
|
|
24777
|
+
this.logger = loggerFactory.create("codemation.credentials.material-cache");
|
|
24778
|
+
}
|
|
24779
|
+
async getMaterial(ref, context) {
|
|
24780
|
+
const key = this.keyFor(ref);
|
|
24781
|
+
const now = Date.now();
|
|
24782
|
+
const entry = this.cache.get(key);
|
|
24783
|
+
if (entry && entry.expiresAt > now) {
|
|
24784
|
+
this.logger.debug(`material-cache hit key=${key}`);
|
|
24785
|
+
return entry.material;
|
|
24786
|
+
}
|
|
24787
|
+
if (entry) {
|
|
24788
|
+
this.logger.debug(`material-cache expired key=${key}`);
|
|
24789
|
+
this.cache.delete(key);
|
|
24790
|
+
} else this.logger.debug(`material-cache miss key=${key}`);
|
|
24791
|
+
const material = await this.inner.getMaterial(ref, context);
|
|
24792
|
+
const ttlExpiry = this.computeCacheExpiry(material, Date.now());
|
|
24793
|
+
if (ttlExpiry !== null) this.cache.set(key, {
|
|
24794
|
+
material,
|
|
24795
|
+
expiresAt: ttlExpiry
|
|
24796
|
+
});
|
|
24797
|
+
return material;
|
|
24798
|
+
}
|
|
24799
|
+
async setMaterial(ref, material) {
|
|
24800
|
+
await this.inner.setMaterial(ref, material);
|
|
24801
|
+
this.cache.delete(this.keyFor(ref));
|
|
24802
|
+
}
|
|
24803
|
+
keyFor(ref) {
|
|
24804
|
+
return `${ref.source}::${ref.id}`;
|
|
24805
|
+
}
|
|
24806
|
+
/**
|
|
24807
|
+
* Returns the absolute epoch-ms at which the cache entry should expire, or
|
|
24808
|
+
* `null` if the entry should not be cached (computed TTL ≤ 0).
|
|
24809
|
+
*/
|
|
24810
|
+
computeCacheExpiry(material, now) {
|
|
24811
|
+
const hardCapExpiry = now + _CachingCredentialMaterialProvider.HARD_CAP_MS;
|
|
24812
|
+
if (material.expiresAt === void 0) return hardCapExpiry;
|
|
24813
|
+
const parsed = Date.parse(material.expiresAt);
|
|
24814
|
+
if (Number.isNaN(parsed)) return hardCapExpiry;
|
|
24815
|
+
const safeExpiry = parsed - _CachingCredentialMaterialProvider.EXPIRY_SAFETY_WINDOW_MS;
|
|
24816
|
+
const clamped = Math.min(safeExpiry, hardCapExpiry);
|
|
24817
|
+
if (clamped <= now) return null;
|
|
24818
|
+
return clamped;
|
|
24819
|
+
}
|
|
24820
|
+
};
|
|
24821
|
+
CachingCredentialMaterialProvider = _CachingCredentialMaterialProvider = __decorate([
|
|
24822
|
+
injectable(),
|
|
24823
|
+
__decorateParam(0, inject(ApplicationTokens.CredentialMaterialInnerProvider)),
|
|
24824
|
+
__decorateParam(1, inject(ApplicationTokens.LoggerFactory)),
|
|
24825
|
+
__decorateMetadata("design:paramtypes", [Object, Object])
|
|
24826
|
+
], CachingCredentialMaterialProvider);
|
|
24827
|
+
|
|
24828
|
+
//#endregion
|
|
24829
|
+
//#region src/credentials/ControlPlaneCredentialMaterialProvider.ts
|
|
24830
|
+
var _ref2$12;
|
|
24831
|
+
let ControlPlaneCredentialMaterialProvider = class ControlPlaneCredentialMaterialProvider$1 {
|
|
24832
|
+
constructor(pairedFetch, pairingConfig) {
|
|
24564
24833
|
this.pairedFetch = pairedFetch;
|
|
24565
24834
|
this.pairingConfig = pairingConfig;
|
|
24566
|
-
this.loggers = loggers;
|
|
24567
24835
|
}
|
|
24568
|
-
async
|
|
24569
|
-
|
|
24570
|
-
const url = `${this.pairingConfig.controlPlaneUrl}/internal/
|
|
24571
|
-
const response = await this.pairedFetch.post(url, {
|
|
24572
|
-
typeId: args.typeId,
|
|
24573
|
-
scopes: args.scopes,
|
|
24574
|
-
redirectUri: args.redirectUri
|
|
24575
|
-
});
|
|
24836
|
+
async getMaterial(ref, context) {
|
|
24837
|
+
if (ref.source !== "control-plane") throw new IllegalMaterialSourceError(ref.source, "ControlPlaneCredentialMaterialProvider");
|
|
24838
|
+
const url = `${this.pairingConfig.controlPlaneUrl}/internal/credentials/material/${encodeURIComponent(ref.id)}`;
|
|
24839
|
+
const response = await this.pairedFetch.post(url, { callerContext: context });
|
|
24576
24840
|
if (!response.ok) {
|
|
24577
|
-
const
|
|
24578
|
-
|
|
24579
|
-
throw new Error(`ManagedOAuthFlowExecutor.start failed: ${response.status} ${excerpt}`);
|
|
24841
|
+
const body = await response.text().catch(() => "");
|
|
24842
|
+
throw new ManagedMaterialFetchError(response.status, body.slice(0, 500));
|
|
24580
24843
|
}
|
|
24581
24844
|
const json = await response.json();
|
|
24845
|
+
if (typeof json.accessToken !== "string" || json.accessToken.length === 0) throw new ManagedMaterialFetchError(response.status, "missing accessToken in CP response", "Control-plane material response missing accessToken");
|
|
24582
24846
|
return {
|
|
24583
|
-
|
|
24584
|
-
|
|
24847
|
+
accessToken: json.accessToken,
|
|
24848
|
+
refreshToken: void 0,
|
|
24849
|
+
expiresAt: typeof json.expiresAt === "string" ? json.expiresAt : void 0,
|
|
24850
|
+
grantedScopes: Array.isArray(json.scopes) ? json.scopes.filter((s) => typeof s === "string") : []
|
|
24851
|
+
};
|
|
24852
|
+
}
|
|
24853
|
+
async setMaterial(_ref$120, _material) {
|
|
24854
|
+
throw new ManagedCredentialMaterialWriteError();
|
|
24855
|
+
}
|
|
24856
|
+
};
|
|
24857
|
+
ControlPlaneCredentialMaterialProvider = __decorate([
|
|
24858
|
+
injectable(),
|
|
24859
|
+
__decorateParam(0, inject(PairedFetch)),
|
|
24860
|
+
__decorateParam(1, inject(PairingConfigToken)),
|
|
24861
|
+
__decorateMetadata("design:paramtypes", [typeof (_ref2$12 = typeof PairedFetch !== "undefined" && PairedFetch) === "function" ? _ref2$12 : Object, Object])
|
|
24862
|
+
], ControlPlaneCredentialMaterialProvider);
|
|
24863
|
+
|
|
24864
|
+
//#endregion
|
|
24865
|
+
//#region src/credentials/CompositeCredentialMaterialProvider.ts
|
|
24866
|
+
var _ref$20, _ref2$11;
|
|
24867
|
+
let CompositeCredentialMaterialProvider = class CompositeCredentialMaterialProvider$1 {
|
|
24868
|
+
constructor(local, controlPlane) {
|
|
24869
|
+
this.local = local;
|
|
24870
|
+
this.controlPlane = controlPlane;
|
|
24871
|
+
}
|
|
24872
|
+
async getMaterial(ref, context) {
|
|
24873
|
+
return this.pick(ref).getMaterial(ref, context);
|
|
24874
|
+
}
|
|
24875
|
+
async setMaterial(ref, material) {
|
|
24876
|
+
if (ref.source === "control-plane") throw new ManagedCredentialMaterialWriteError();
|
|
24877
|
+
return this.pick(ref).setMaterial(ref, material);
|
|
24878
|
+
}
|
|
24879
|
+
pick(ref) {
|
|
24880
|
+
return ref.source === "control-plane" ? this.controlPlane : this.local;
|
|
24881
|
+
}
|
|
24882
|
+
};
|
|
24883
|
+
CompositeCredentialMaterialProvider = __decorate([
|
|
24884
|
+
injectable(),
|
|
24885
|
+
__decorateParam(0, inject(LocalCredentialMaterialProvider)),
|
|
24886
|
+
__decorateParam(1, inject(ControlPlaneCredentialMaterialProvider)),
|
|
24887
|
+
__decorateMetadata("design:paramtypes", [typeof (_ref$20 = typeof LocalCredentialMaterialProvider !== "undefined" && LocalCredentialMaterialProvider) === "function" ? _ref$20 : Object, typeof (_ref2$11 = typeof ControlPlaneCredentialMaterialProvider !== "undefined" && ControlPlaneCredentialMaterialProvider) === "function" ? _ref2$11 : Object])
|
|
24888
|
+
], CompositeCredentialMaterialProvider);
|
|
24889
|
+
|
|
24890
|
+
//#endregion
|
|
24891
|
+
//#region src/credentials/ManagedOAuthRefreshInvalidGrantError.ts
|
|
24892
|
+
/**
|
|
24893
|
+
* Thrown when the control plane returns HTTP 410 (invalid_grant) during a refresh.
|
|
24894
|
+
* The refresh token is dead — user revoked, token rotated away, etc.
|
|
24895
|
+
* The credential cannot be auto-recovered; the user must reconnect via the Connect flow.
|
|
24896
|
+
*/
|
|
24897
|
+
var ManagedOAuthRefreshInvalidGrantError = class extends Error {
|
|
24898
|
+
constructor(credentialInstanceId) {
|
|
24899
|
+
super(`Credential ${credentialInstanceId}: refresh token is invalid or revoked (invalid_grant). Reconnect required.`);
|
|
24900
|
+
this.credentialInstanceId = credentialInstanceId;
|
|
24901
|
+
this.name = "ManagedOAuthRefreshInvalidGrantError";
|
|
24902
|
+
}
|
|
24903
|
+
};
|
|
24904
|
+
|
|
24905
|
+
//#endregion
|
|
24906
|
+
//#region src/credentials/ManagedOAuthFlowExecutor.ts
|
|
24907
|
+
var _ref$19;
|
|
24908
|
+
let ManagedOAuthFlowExecutor = class ManagedOAuthFlowExecutor$1 {
|
|
24909
|
+
constructor(pairedFetch, pairingConfig, loggers) {
|
|
24910
|
+
this.pairedFetch = pairedFetch;
|
|
24911
|
+
this.pairingConfig = pairingConfig;
|
|
24912
|
+
this.loggers = loggers;
|
|
24913
|
+
}
|
|
24914
|
+
async start(args) {
|
|
24915
|
+
const logger = this.loggers.create("codemation.credentials.managed-oauth");
|
|
24916
|
+
const url = `${this.pairingConfig.controlPlaneUrl}/internal/oauth/start`;
|
|
24917
|
+
const response = await this.pairedFetch.post(url, {
|
|
24918
|
+
typeId: args.typeId,
|
|
24919
|
+
scopes: args.scopes,
|
|
24920
|
+
redirectUri: args.redirectUri
|
|
24921
|
+
});
|
|
24922
|
+
if (!response.ok) {
|
|
24923
|
+
const excerpt = (await response.text().catch(() => "")).slice(0, 200);
|
|
24924
|
+
logger.warn(`ManagedOAuthFlowExecutor.start failed: ${response.status} ${excerpt}`);
|
|
24925
|
+
throw new Error(`ManagedOAuthFlowExecutor.start failed: ${response.status} ${excerpt}`);
|
|
24926
|
+
}
|
|
24927
|
+
const json = await response.json();
|
|
24928
|
+
return {
|
|
24929
|
+
consentUrl: json.consentUrl,
|
|
24930
|
+
stateToken: json.stateToken
|
|
24585
24931
|
};
|
|
24586
24932
|
}
|
|
24587
24933
|
lookupInstanceId(_stateToken) {}
|
|
@@ -24624,7 +24970,7 @@ ManagedOAuthFlowExecutor = __decorate([
|
|
|
24624
24970
|
__decorateParam(1, inject(PairingConfigToken)),
|
|
24625
24971
|
__decorateParam(2, inject(ApplicationTokens.LoggerFactory)),
|
|
24626
24972
|
__decorateMetadata("design:paramtypes", [
|
|
24627
|
-
typeof (_ref$
|
|
24973
|
+
typeof (_ref$19 = typeof PairedFetch !== "undefined" && PairedFetch) === "function" ? _ref$19 : Object,
|
|
24628
24974
|
Object,
|
|
24629
24975
|
Object
|
|
24630
24976
|
])
|
|
@@ -24661,7 +25007,7 @@ var BrokerRefreshError = class extends Error {
|
|
|
24661
25007
|
|
|
24662
25008
|
//#endregion
|
|
24663
25009
|
//#region src/credentials/BrokerClient.ts
|
|
24664
|
-
var _ref$
|
|
25010
|
+
var _ref$18;
|
|
24665
25011
|
let BrokerClient = class BrokerClient$1 {
|
|
24666
25012
|
constructor(pairedFetch, pairingConfig) {
|
|
24667
25013
|
this.pairedFetch = pairedFetch;
|
|
@@ -24682,12 +25028,62 @@ BrokerClient = __decorate([
|
|
|
24682
25028
|
injectable(),
|
|
24683
25029
|
__decorateParam(0, inject(PairedFetch)),
|
|
24684
25030
|
__decorateParam(1, inject(PairingConfigToken)),
|
|
24685
|
-
__decorateMetadata("design:paramtypes", [typeof (_ref$
|
|
25031
|
+
__decorateMetadata("design:paramtypes", [typeof (_ref$18 = typeof PairedFetch !== "undefined" && PairedFetch) === "function" ? _ref$18 : Object, Object])
|
|
24686
25032
|
], BrokerClient);
|
|
24687
25033
|
|
|
25034
|
+
//#endregion
|
|
25035
|
+
//#region src/credentials/InternalCredentialsBindingRegistrar.ts
|
|
25036
|
+
var _ref$17, _ref2$10;
|
|
25037
|
+
let InternalCredentialsBindingRegistrar = class InternalCredentialsBindingRegistrar$1 {
|
|
25038
|
+
logger;
|
|
25039
|
+
constructor(hmacMiddleware, credentialBindingService, loggerFactory) {
|
|
25040
|
+
this.hmacMiddleware = hmacMiddleware;
|
|
25041
|
+
this.credentialBindingService = credentialBindingService;
|
|
25042
|
+
this.logger = loggerFactory.create("InternalCredentialsBindingRegistrar");
|
|
25043
|
+
}
|
|
25044
|
+
register(app) {
|
|
25045
|
+
app.post("/internal/credentials/binding", this.hmacMiddleware.handle(), async (c) => {
|
|
25046
|
+
try {
|
|
25047
|
+
const rawBody = c.get("body");
|
|
25048
|
+
const body = rawBody ? JSON.parse(rawBody) : await c.req.json();
|
|
25049
|
+
if (!body.workflowId || typeof body.workflowId !== "string") return c.json({ error: "workflowId is required" }, 400);
|
|
25050
|
+
if (!body.nodeId || typeof body.nodeId !== "string") return c.json({ error: "nodeId is required" }, 400);
|
|
25051
|
+
if (!body.slotKey || typeof body.slotKey !== "string") return c.json({ error: "slotKey is required" }, 400);
|
|
25052
|
+
if (!body.credentialInstanceId || typeof body.credentialInstanceId !== "string") return c.json({ error: "credentialInstanceId is required" }, 400);
|
|
25053
|
+
const binding = await this.credentialBindingService.upsertBinding({
|
|
25054
|
+
workflowId: body.workflowId,
|
|
25055
|
+
nodeId: body.nodeId,
|
|
25056
|
+
slotKey: body.slotKey,
|
|
25057
|
+
instanceId: body.credentialInstanceId
|
|
25058
|
+
});
|
|
25059
|
+
this.logger.info(`Credential binding upserted for workflow=${body.workflowId} node=${body.nodeId} slot=${body.slotKey}`);
|
|
25060
|
+
return c.json({
|
|
25061
|
+
ok: true,
|
|
25062
|
+
binding
|
|
25063
|
+
});
|
|
25064
|
+
} catch (error) {
|
|
25065
|
+
if (error instanceof ApplicationRequestError) return c.json(error.payload, error.status);
|
|
25066
|
+
this.logger.error("Credential binding handler error", error instanceof Error ? error : void 0);
|
|
25067
|
+
return c.json({ error: "Internal server error" }, 500);
|
|
25068
|
+
}
|
|
25069
|
+
});
|
|
25070
|
+
}
|
|
25071
|
+
};
|
|
25072
|
+
InternalCredentialsBindingRegistrar = __decorate([
|
|
25073
|
+
injectable(),
|
|
25074
|
+
__decorateParam(0, inject(InternalHmacAuthMiddleware)),
|
|
25075
|
+
__decorateParam(1, inject(CredentialBindingService)),
|
|
25076
|
+
__decorateParam(2, inject(ApplicationTokens.LoggerFactory)),
|
|
25077
|
+
__decorateMetadata("design:paramtypes", [
|
|
25078
|
+
typeof (_ref$17 = typeof InternalHmacAuthMiddleware !== "undefined" && InternalHmacAuthMiddleware) === "function" ? _ref$17 : Object,
|
|
25079
|
+
typeof (_ref2$10 = typeof CredentialBindingService !== "undefined" && CredentialBindingService) === "function" ? _ref2$10 : Object,
|
|
25080
|
+
Object
|
|
25081
|
+
])
|
|
25082
|
+
], InternalCredentialsBindingRegistrar);
|
|
25083
|
+
|
|
24688
25084
|
//#endregion
|
|
24689
25085
|
//#region src/credentials/InternalCredentialsPushRegistrar.ts
|
|
24690
|
-
var _ref$
|
|
25086
|
+
var _ref$16, _ref2$9, _ref3$3, _ref4$1;
|
|
24691
25087
|
let InternalCredentialsPushRegistrar = class InternalCredentialsPushRegistrar$1 {
|
|
24692
25088
|
logger;
|
|
24693
25089
|
constructor(hmacMiddleware, credentialStore, cipher, credentialInstanceService, credentialTestService, loggerFactory) {
|
|
@@ -24757,18 +25153,18 @@ InternalCredentialsPushRegistrar = __decorate([
|
|
|
24757
25153
|
__decorateParam(4, inject(CredentialTestService)),
|
|
24758
25154
|
__decorateParam(5, inject(ApplicationTokens.LoggerFactory)),
|
|
24759
25155
|
__decorateMetadata("design:paramtypes", [
|
|
24760
|
-
typeof (_ref$
|
|
25156
|
+
typeof (_ref$16 = typeof InternalHmacAuthMiddleware !== "undefined" && InternalHmacAuthMiddleware) === "function" ? _ref$16 : Object,
|
|
24761
25157
|
Object,
|
|
24762
|
-
typeof (_ref2$
|
|
24763
|
-
typeof (_ref3$
|
|
24764
|
-
typeof (_ref4 = typeof CredentialTestService !== "undefined" && CredentialTestService) === "function" ? _ref4 : Object,
|
|
25158
|
+
typeof (_ref2$9 = typeof CredentialSecretCipher !== "undefined" && CredentialSecretCipher) === "function" ? _ref2$9 : Object,
|
|
25159
|
+
typeof (_ref3$3 = typeof CredentialInstanceService !== "undefined" && CredentialInstanceService) === "function" ? _ref3$3 : Object,
|
|
25160
|
+
typeof (_ref4$1 = typeof CredentialTestService !== "undefined" && CredentialTestService) === "function" ? _ref4$1 : Object,
|
|
24765
25161
|
Object
|
|
24766
25162
|
])
|
|
24767
25163
|
], InternalCredentialsPushRegistrar);
|
|
24768
25164
|
|
|
24769
25165
|
//#endregion
|
|
24770
25166
|
//#region src/credentials/InternalCredentialsListRegistrar.ts
|
|
24771
|
-
var _ref$
|
|
25167
|
+
var _ref$15;
|
|
24772
25168
|
let InternalCredentialsListRegistrar = class InternalCredentialsListRegistrar$1 {
|
|
24773
25169
|
constructor(hmacMiddleware, credentialStore) {
|
|
24774
25170
|
this.hmacMiddleware = hmacMiddleware;
|
|
@@ -24803,12 +25199,12 @@ InternalCredentialsListRegistrar = __decorate([
|
|
|
24803
25199
|
injectable(),
|
|
24804
25200
|
__decorateParam(0, inject(InternalHmacAuthMiddleware)),
|
|
24805
25201
|
__decorateParam(1, inject(ApplicationTokens.CredentialStore)),
|
|
24806
|
-
__decorateMetadata("design:paramtypes", [typeof (_ref$
|
|
25202
|
+
__decorateMetadata("design:paramtypes", [typeof (_ref$15 = typeof InternalHmacAuthMiddleware !== "undefined" && InternalHmacAuthMiddleware) === "function" ? _ref$15 : Object, Object])
|
|
24807
25203
|
], InternalCredentialsListRegistrar);
|
|
24808
25204
|
|
|
24809
25205
|
//#endregion
|
|
24810
25206
|
//#region src/workflows/InternalWorkflowsListRegistrar.ts
|
|
24811
|
-
var _ref$
|
|
25207
|
+
var _ref$14, _ref2$8;
|
|
24812
25208
|
let InternalWorkflowsListRegistrar = class InternalWorkflowsListRegistrar$1 {
|
|
24813
25209
|
constructor(hmacMiddleware, queryBus, mapper) {
|
|
24814
25210
|
this.hmacMiddleware = hmacMiddleware;
|
|
@@ -24828,15 +25224,15 @@ InternalWorkflowsListRegistrar = __decorate([
|
|
|
24828
25224
|
__decorateParam(1, inject(ApplicationTokens.QueryBus)),
|
|
24829
25225
|
__decorateParam(2, inject(WorkflowDefinitionMapper)),
|
|
24830
25226
|
__decorateMetadata("design:paramtypes", [
|
|
24831
|
-
typeof (_ref$
|
|
25227
|
+
typeof (_ref$14 = typeof InternalHmacAuthMiddleware !== "undefined" && InternalHmacAuthMiddleware) === "function" ? _ref$14 : Object,
|
|
24832
25228
|
Object,
|
|
24833
|
-
typeof (_ref2$
|
|
25229
|
+
typeof (_ref2$8 = typeof WorkflowDefinitionMapper !== "undefined" && WorkflowDefinitionMapper) === "function" ? _ref2$8 : Object
|
|
24834
25230
|
])
|
|
24835
25231
|
], InternalWorkflowsListRegistrar);
|
|
24836
25232
|
|
|
24837
25233
|
//#endregion
|
|
24838
25234
|
//#region src/workflows/InternalWorkflowDetailRegistrar.ts
|
|
24839
|
-
var _ref$
|
|
25235
|
+
var _ref$13, _ref2$7;
|
|
24840
25236
|
let InternalWorkflowDetailRegistrar = class InternalWorkflowDetailRegistrar$1 {
|
|
24841
25237
|
constructor(hmacMiddleware, queryBus, mapper) {
|
|
24842
25238
|
this.hmacMiddleware = hmacMiddleware;
|
|
@@ -24858,15 +25254,15 @@ InternalWorkflowDetailRegistrar = __decorate([
|
|
|
24858
25254
|
__decorateParam(1, inject(ApplicationTokens.QueryBus)),
|
|
24859
25255
|
__decorateParam(2, inject(WorkflowDefinitionMapper)),
|
|
24860
25256
|
__decorateMetadata("design:paramtypes", [
|
|
24861
|
-
typeof (_ref$
|
|
25257
|
+
typeof (_ref$13 = typeof InternalHmacAuthMiddleware !== "undefined" && InternalHmacAuthMiddleware) === "function" ? _ref$13 : Object,
|
|
24862
25258
|
Object,
|
|
24863
|
-
typeof (_ref2$
|
|
25259
|
+
typeof (_ref2$7 = typeof WorkflowDefinitionMapper !== "undefined" && WorkflowDefinitionMapper) === "function" ? _ref2$7 : Object
|
|
24864
25260
|
])
|
|
24865
25261
|
], InternalWorkflowDetailRegistrar);
|
|
24866
25262
|
|
|
24867
25263
|
//#endregion
|
|
24868
25264
|
//#region src/workflows/InternalWorkflowActivationRegistrar.ts
|
|
24869
|
-
var _ref$
|
|
25265
|
+
var _ref$12;
|
|
24870
25266
|
let InternalWorkflowActivationRegistrar = class InternalWorkflowActivationRegistrar$1 {
|
|
24871
25267
|
constructor(hmacMiddleware, commandBus) {
|
|
24872
25268
|
this.hmacMiddleware = hmacMiddleware;
|
|
@@ -24896,12 +25292,12 @@ InternalWorkflowActivationRegistrar = __decorate([
|
|
|
24896
25292
|
injectable(),
|
|
24897
25293
|
__decorateParam(0, inject(InternalHmacAuthMiddleware)),
|
|
24898
25294
|
__decorateParam(1, inject(ApplicationTokens.CommandBus)),
|
|
24899
|
-
__decorateMetadata("design:paramtypes", [typeof (_ref$
|
|
25295
|
+
__decorateMetadata("design:paramtypes", [typeof (_ref$12 = typeof InternalHmacAuthMiddleware !== "undefined" && InternalHmacAuthMiddleware) === "function" ? _ref$12 : Object, Object])
|
|
24900
25296
|
], InternalWorkflowActivationRegistrar);
|
|
24901
25297
|
|
|
24902
25298
|
//#endregion
|
|
24903
25299
|
//#region src/workflows/InternalWorkflowTestRunRegistrar.ts
|
|
24904
|
-
var _ref$
|
|
25300
|
+
var _ref$11, _ref2$6, _ref3$2;
|
|
24905
25301
|
const TEST_RUN_TIMEOUT_MS = 3e4;
|
|
24906
25302
|
let InternalWorkflowTestRunRegistrar = class InternalWorkflowTestRunRegistrar$1 {
|
|
24907
25303
|
constructor(hmacMiddleware, runIntentService, engine, workflowDefinitionRepository) {
|
|
@@ -24955,6 +25351,12 @@ let InternalWorkflowTestRunRegistrar = class InternalWorkflowTestRunRegistrar$1
|
|
|
24955
25351
|
error: runResult.error.message,
|
|
24956
25352
|
durationMs: Date.now() - startMs
|
|
24957
25353
|
});
|
|
25354
|
+
if (runResult.status === "halted") return c.json({
|
|
25355
|
+
ok: false,
|
|
25356
|
+
runId: runResult.runId,
|
|
25357
|
+
error: `Run halted: ${runResult.reason}`,
|
|
25358
|
+
durationMs: Date.now() - startMs
|
|
25359
|
+
});
|
|
24958
25360
|
return c.json({
|
|
24959
25361
|
ok: true,
|
|
24960
25362
|
runId: runResult.runId,
|
|
@@ -24971,16 +25373,16 @@ InternalWorkflowTestRunRegistrar = __decorate([
|
|
|
24971
25373
|
__decorateParam(2, inject(Engine)),
|
|
24972
25374
|
__decorateParam(3, inject(ApplicationTokens.WorkflowDefinitionRepository)),
|
|
24973
25375
|
__decorateMetadata("design:paramtypes", [
|
|
24974
|
-
typeof (_ref$
|
|
24975
|
-
typeof (_ref2$
|
|
24976
|
-
typeof (_ref3 = typeof Engine !== "undefined" && Engine) === "function" ? _ref3 : Object,
|
|
25376
|
+
typeof (_ref$11 = typeof InternalHmacAuthMiddleware !== "undefined" && InternalHmacAuthMiddleware) === "function" ? _ref$11 : Object,
|
|
25377
|
+
typeof (_ref2$6 = typeof RunIntentService !== "undefined" && RunIntentService) === "function" ? _ref2$6 : Object,
|
|
25378
|
+
typeof (_ref3$2 = typeof Engine !== "undefined" && Engine) === "function" ? _ref3$2 : Object,
|
|
24977
25379
|
Object
|
|
24978
25380
|
])
|
|
24979
25381
|
], InternalWorkflowTestRunRegistrar);
|
|
24980
25382
|
|
|
24981
25383
|
//#endregion
|
|
24982
25384
|
//#region src/mcp/AgentMcpIntegrationImpl.ts
|
|
24983
|
-
var _ref, _ref2;
|
|
25385
|
+
var _ref$10, _ref2$5;
|
|
24984
25386
|
let AgentMcpIntegrationImpl = class AgentMcpIntegrationImpl$1 {
|
|
24985
25387
|
constructor(catalog, pool, credentialStore, loggers) {
|
|
24986
25388
|
this.catalog = catalog;
|
|
@@ -25199,8 +25601,8 @@ AgentMcpIntegrationImpl = __decorate([
|
|
|
25199
25601
|
__decorateParam(2, inject(ApplicationTokens.CredentialStore)),
|
|
25200
25602
|
__decorateParam(3, inject(ApplicationTokens.LoggerFactory)),
|
|
25201
25603
|
__decorateMetadata("design:paramtypes", [
|
|
25202
|
-
typeof (_ref = typeof McpServerCatalog !== "undefined" && McpServerCatalog) === "function" ? _ref : Object,
|
|
25203
|
-
typeof (_ref2 = typeof McpConnectionPool !== "undefined" && McpConnectionPool) === "function" ? _ref2 : Object,
|
|
25604
|
+
typeof (_ref$10 = typeof McpServerCatalog !== "undefined" && McpServerCatalog) === "function" ? _ref$10 : Object,
|
|
25605
|
+
typeof (_ref2$5 = typeof McpConnectionPool !== "undefined" && McpConnectionPool) === "function" ? _ref2$5 : Object,
|
|
25204
25606
|
Object,
|
|
25205
25607
|
Object
|
|
25206
25608
|
])
|
|
@@ -25254,14 +25656,18 @@ ManagedAuthMiddleware = __decorate([injectable(), __decorateMetadata("design:par
|
|
|
25254
25656
|
//#endregion
|
|
25255
25657
|
//#region src/auth/managed/ManagedCorsMiddleware.ts
|
|
25256
25658
|
let ManagedCorsMiddleware = class ManagedCorsMiddleware$1 {
|
|
25659
|
+
allowedOrigins;
|
|
25257
25660
|
constructor(allowedOrigin) {
|
|
25258
|
-
this.
|
|
25661
|
+
this.allowedOrigins = new Set(allowedOrigin.split(",").map((o$1) => o$1.trim()).filter(Boolean));
|
|
25662
|
+
}
|
|
25663
|
+
isAllowed(origin) {
|
|
25664
|
+
return origin !== void 0 && this.allowedOrigins.has(origin);
|
|
25259
25665
|
}
|
|
25260
25666
|
handle() {
|
|
25261
25667
|
return async (c, next) => {
|
|
25262
25668
|
const origin = c.req.header("origin");
|
|
25263
25669
|
if (c.req.method === "OPTIONS") {
|
|
25264
|
-
if (
|
|
25670
|
+
if (this.isAllowed(origin)) {
|
|
25265
25671
|
c.header("access-control-allow-origin", origin);
|
|
25266
25672
|
c.header("access-control-allow-methods", "GET, POST, PUT, PATCH, DELETE, OPTIONS");
|
|
25267
25673
|
c.header("access-control-allow-headers", "content-type, authorization");
|
|
@@ -25271,7 +25677,7 @@ let ManagedCorsMiddleware = class ManagedCorsMiddleware$1 {
|
|
|
25271
25677
|
}
|
|
25272
25678
|
return c.body(null, 403);
|
|
25273
25679
|
}
|
|
25274
|
-
if (
|
|
25680
|
+
if (this.isAllowed(origin)) {
|
|
25275
25681
|
await next();
|
|
25276
25682
|
c.header("access-control-allow-origin", origin);
|
|
25277
25683
|
c.header("access-control-allow-credentials", "true");
|
|
@@ -25335,10 +25741,822 @@ let ManagedWebsocketAuthenticator = class ManagedWebsocketAuthenticator$1 {
|
|
|
25335
25741
|
};
|
|
25336
25742
|
ManagedWebsocketAuthenticator = __decorate([injectable(), __decorateMetadata("design:paramtypes", [Object])], ManagedWebsocketAuthenticator);
|
|
25337
25743
|
|
|
25744
|
+
//#endregion
|
|
25745
|
+
//#region src/infrastructure/persistence/PrismaHumanTaskStore.ts
|
|
25746
|
+
let PrismaHumanTaskStore = class PrismaHumanTaskStore$1 {
|
|
25747
|
+
constructor(prisma) {
|
|
25748
|
+
this.prisma = prisma;
|
|
25749
|
+
}
|
|
25750
|
+
async create(record) {
|
|
25751
|
+
await this.prisma.humanTask.create({ data: {
|
|
25752
|
+
id: record.id,
|
|
25753
|
+
runId: record.runId,
|
|
25754
|
+
workflowId: record.workflowId,
|
|
25755
|
+
workspaceId: record.workspaceId ?? null,
|
|
25756
|
+
nodeId: record.nodeId,
|
|
25757
|
+
activationId: record.activationId,
|
|
25758
|
+
itemIndex: record.itemIndex,
|
|
25759
|
+
status: record.status,
|
|
25760
|
+
channel: record.channel,
|
|
25761
|
+
subjectJson: JSON.stringify(record.subject),
|
|
25762
|
+
metadataJson: JSON.stringify(record.metadata),
|
|
25763
|
+
decisionSchemaJson: record.decisionSchemaJson,
|
|
25764
|
+
decisionSchemaHash: record.decisionSchemaHash,
|
|
25765
|
+
onTimeout: record.onTimeout,
|
|
25766
|
+
deliveryRefJson: record.deliveryRef !== void 0 ? JSON.stringify(record.deliveryRef) : null,
|
|
25767
|
+
decisionJson: null,
|
|
25768
|
+
decidedAt: null,
|
|
25769
|
+
decidedByJson: null,
|
|
25770
|
+
resumeTokenHash: record.resumeTokenHash,
|
|
25771
|
+
expiresAt: record.expiresAt,
|
|
25772
|
+
createdAt: record.createdAt
|
|
25773
|
+
} });
|
|
25774
|
+
}
|
|
25775
|
+
async findById(taskId) {
|
|
25776
|
+
const row = await this.prisma.humanTask.findUnique({ where: { id: taskId } });
|
|
25777
|
+
return row ? this.toRecord(row) : void 0;
|
|
25778
|
+
}
|
|
25779
|
+
async findByResumeTokenHash(tokenHash) {
|
|
25780
|
+
const row = await this.prisma.humanTask.findFirst({ where: { resumeTokenHash: tokenHash } });
|
|
25781
|
+
return row ? this.toRecord(row) : void 0;
|
|
25782
|
+
}
|
|
25783
|
+
async findPendingForWorkspace(workspaceId) {
|
|
25784
|
+
return (await this.prisma.humanTask.findMany({
|
|
25785
|
+
where: {
|
|
25786
|
+
workspaceId,
|
|
25787
|
+
status: "pending"
|
|
25788
|
+
},
|
|
25789
|
+
orderBy: { expiresAt: "asc" }
|
|
25790
|
+
})).map((row) => this.toRecord(row));
|
|
25791
|
+
}
|
|
25792
|
+
async findAllPending() {
|
|
25793
|
+
return (await this.prisma.humanTask.findMany({
|
|
25794
|
+
where: { status: "pending" },
|
|
25795
|
+
orderBy: { expiresAt: "asc" }
|
|
25796
|
+
})).map((row) => this.toRecord(row));
|
|
25797
|
+
}
|
|
25798
|
+
async markDecided(args) {
|
|
25799
|
+
await this.prisma.humanTask.update({
|
|
25800
|
+
where: { id: args.taskId },
|
|
25801
|
+
data: {
|
|
25802
|
+
status: "decided",
|
|
25803
|
+
decisionJson: JSON.stringify(args.decision),
|
|
25804
|
+
decidedAt: args.decidedAt,
|
|
25805
|
+
decidedByJson: JSON.stringify(args.decidedBy)
|
|
25806
|
+
}
|
|
25807
|
+
});
|
|
25808
|
+
}
|
|
25809
|
+
async markTimedOut(taskId) {
|
|
25810
|
+
await this.prisma.humanTask.update({
|
|
25811
|
+
where: { id: taskId },
|
|
25812
|
+
data: { status: "timed_out" }
|
|
25813
|
+
});
|
|
25814
|
+
}
|
|
25815
|
+
async markAutoAccepted(taskId) {
|
|
25816
|
+
await this.prisma.humanTask.update({
|
|
25817
|
+
where: { id: taskId },
|
|
25818
|
+
data: { status: "auto_accepted" }
|
|
25819
|
+
});
|
|
25820
|
+
}
|
|
25821
|
+
async markCancelled(taskId) {
|
|
25822
|
+
await this.prisma.humanTask.update({
|
|
25823
|
+
where: { id: taskId },
|
|
25824
|
+
data: { status: "cancelled" }
|
|
25825
|
+
});
|
|
25826
|
+
}
|
|
25827
|
+
async cancelPendingForRun(runId) {
|
|
25828
|
+
await this.prisma.humanTask.updateMany({
|
|
25829
|
+
where: {
|
|
25830
|
+
runId,
|
|
25831
|
+
status: "pending"
|
|
25832
|
+
},
|
|
25833
|
+
data: { status: "cancelled" }
|
|
25834
|
+
});
|
|
25835
|
+
}
|
|
25836
|
+
toRecord(row) {
|
|
25837
|
+
return {
|
|
25838
|
+
id: row.id,
|
|
25839
|
+
runId: row.runId,
|
|
25840
|
+
workflowId: row.workflowId,
|
|
25841
|
+
workspaceId: row.workspaceId ?? void 0,
|
|
25842
|
+
nodeId: row.nodeId,
|
|
25843
|
+
activationId: row.activationId,
|
|
25844
|
+
itemIndex: row.itemIndex,
|
|
25845
|
+
status: row.status,
|
|
25846
|
+
channel: row.channel,
|
|
25847
|
+
subject: JSON.parse(row.subjectJson),
|
|
25848
|
+
metadata: JSON.parse(row.metadataJson),
|
|
25849
|
+
decisionSchemaJson: row.decisionSchemaJson,
|
|
25850
|
+
decisionSchemaHash: row.decisionSchemaHash,
|
|
25851
|
+
onTimeout: row.onTimeout,
|
|
25852
|
+
deliveryRef: row.deliveryRefJson !== null ? JSON.parse(row.deliveryRefJson) : void 0,
|
|
25853
|
+
decision: row.decisionJson !== null ? JSON.parse(row.decisionJson) : void 0,
|
|
25854
|
+
decidedAt: row.decidedAt ?? void 0,
|
|
25855
|
+
decidedBy: row.decidedByJson !== null ? JSON.parse(row.decidedByJson) : void 0,
|
|
25856
|
+
resumeTokenHash: row.resumeTokenHash,
|
|
25857
|
+
expiresAt: row.expiresAt,
|
|
25858
|
+
createdAt: row.createdAt
|
|
25859
|
+
};
|
|
25860
|
+
}
|
|
25861
|
+
};
|
|
25862
|
+
PrismaHumanTaskStore = __decorate([
|
|
25863
|
+
injectable(),
|
|
25864
|
+
__decorateParam(0, inject(PrismaDatabaseClientToken)),
|
|
25865
|
+
__decorateMetadata("design:paramtypes", [Object])
|
|
25866
|
+
], PrismaHumanTaskStore);
|
|
25867
|
+
|
|
25868
|
+
//#endregion
|
|
25869
|
+
//#region src/hitl/HitlResumeTokenSigner.ts
|
|
25870
|
+
let HitlResumeTokenSigner = class HitlResumeTokenSigner$1 {
|
|
25871
|
+
secret;
|
|
25872
|
+
constructor(appConfig) {
|
|
25873
|
+
const raw$1 = appConfig.env.AUTH_SECRET?.trim();
|
|
25874
|
+
this.secret = raw$1 ? Buffer.from(raw$1, "utf8") : null;
|
|
25875
|
+
}
|
|
25876
|
+
requireSecret() {
|
|
25877
|
+
if (!this.secret) throw new Error("HitlResumeTokenSigner: AUTH_SECRET is required.");
|
|
25878
|
+
return this.secret;
|
|
25879
|
+
}
|
|
25880
|
+
sign(args) {
|
|
25881
|
+
const expiresAtUnix = String(Math.floor(args.expiresAt.getTime() / 1e3));
|
|
25882
|
+
const schemaHash8 = args.schemaHash.slice(0, 8);
|
|
25883
|
+
const payload = `${args.taskId}.${expiresAtUnix}.${schemaHash8}`;
|
|
25884
|
+
return `${payload}.${createHmac("sha256", this.requireSecret()).update(payload).digest("base64url")}`;
|
|
25885
|
+
}
|
|
25886
|
+
verify(token) {
|
|
25887
|
+
const parts = token.split(".");
|
|
25888
|
+
if (parts.length !== 4) return {
|
|
25889
|
+
ok: false,
|
|
25890
|
+
reason: "malformed"
|
|
25891
|
+
};
|
|
25892
|
+
const [taskId, expiresAtUnixStr, schemaHash8, receivedSig] = parts;
|
|
25893
|
+
const expiresAtUnix = Number(expiresAtUnixStr);
|
|
25894
|
+
if (!Number.isFinite(expiresAtUnix)) return {
|
|
25895
|
+
ok: false,
|
|
25896
|
+
reason: "malformed"
|
|
25897
|
+
};
|
|
25898
|
+
const payload = `${taskId}.${expiresAtUnixStr}.${schemaHash8}`;
|
|
25899
|
+
const expectedSig = createHmac("sha256", this.requireSecret()).update(payload).digest("base64url");
|
|
25900
|
+
const expectedBuf = Buffer.from(expectedSig, "utf8");
|
|
25901
|
+
const receivedBuf = Buffer.from(receivedSig, "utf8");
|
|
25902
|
+
if (expectedBuf.length !== receivedBuf.length || !timingSafeEqual(expectedBuf, receivedBuf)) return {
|
|
25903
|
+
ok: false,
|
|
25904
|
+
reason: "bad_sig"
|
|
25905
|
+
};
|
|
25906
|
+
const expiresAt = /* @__PURE__ */ new Date(expiresAtUnix * 1e3);
|
|
25907
|
+
if (expiresAt <= /* @__PURE__ */ new Date()) return {
|
|
25908
|
+
ok: false,
|
|
25909
|
+
reason: "expired"
|
|
25910
|
+
};
|
|
25911
|
+
return {
|
|
25912
|
+
ok: true,
|
|
25913
|
+
taskId,
|
|
25914
|
+
schemaHash: schemaHash8,
|
|
25915
|
+
expiresAt
|
|
25916
|
+
};
|
|
25917
|
+
}
|
|
25918
|
+
/** SHA-256 hash of the full token string (used for revocation lookup). */
|
|
25919
|
+
hashToken(token) {
|
|
25920
|
+
return createHash("sha256").update(token, "utf8").digest("hex");
|
|
25921
|
+
}
|
|
25922
|
+
};
|
|
25923
|
+
HitlResumeTokenSigner = __decorate([
|
|
25924
|
+
injectable(),
|
|
25925
|
+
__decorateParam(0, inject(ApplicationTokens.AppConfig)),
|
|
25926
|
+
__decorateMetadata("design:paramtypes", [Object])
|
|
25927
|
+
], HitlResumeTokenSigner);
|
|
25928
|
+
|
|
25929
|
+
//#endregion
|
|
25930
|
+
//#region src/hitl/HitlTimeoutJobScheduler.ts
|
|
25931
|
+
const HITL_TIMEOUT_QUEUE_NAME_SUFFIX = "hitl.timeout";
|
|
25932
|
+
let HitlTimeoutJobScheduler = class HitlTimeoutJobScheduler$1 {
|
|
25933
|
+
queue = null;
|
|
25934
|
+
queueName;
|
|
25935
|
+
redisUrl;
|
|
25936
|
+
constructor(appConfig) {
|
|
25937
|
+
const rawRedisUrl = appConfig.env.REDIS_URL ?? appConfig.env.CODEMATION_REDIS_URL;
|
|
25938
|
+
this.redisUrl = rawRedisUrl && rawRedisUrl !== "" ? rawRedisUrl : "redis://127.0.0.1:6379";
|
|
25939
|
+
this.queueName = `${appConfig.env.CODEMATION_BULLMQ_PREFIX ?? "codemation"}.${HITL_TIMEOUT_QUEUE_NAME_SUFFIX}`;
|
|
25940
|
+
}
|
|
25941
|
+
async enqueueTimeoutJob(args) {
|
|
25942
|
+
const queue = this.getOrCreateQueue();
|
|
25943
|
+
const delay = Math.max(0, args.expiresAt.getTime() - Date.now());
|
|
25944
|
+
await queue.add("hitl.timeout", {
|
|
25945
|
+
kind: "hitl.timeout",
|
|
25946
|
+
taskId: args.taskId
|
|
25947
|
+
}, {
|
|
25948
|
+
jobId: this.makeJobId(args.taskId),
|
|
25949
|
+
delay,
|
|
25950
|
+
removeOnComplete: true,
|
|
25951
|
+
removeOnFail: true
|
|
25952
|
+
});
|
|
25953
|
+
}
|
|
25954
|
+
async cancelTimeoutJob(taskId) {
|
|
25955
|
+
await (await this.getOrCreateQueue().getJob(this.makeJobId(taskId)))?.remove();
|
|
25956
|
+
}
|
|
25957
|
+
async close() {
|
|
25958
|
+
if (this.queue) {
|
|
25959
|
+
await this.queue.close();
|
|
25960
|
+
this.queue = null;
|
|
25961
|
+
}
|
|
25962
|
+
}
|
|
25963
|
+
getQueueName() {
|
|
25964
|
+
return this.queueName;
|
|
25965
|
+
}
|
|
25966
|
+
getOrCreateQueue() {
|
|
25967
|
+
if (!this.queue) {
|
|
25968
|
+
const connectionOptions = RedisConnectionOptionsFactory.fromConfig({ url: this.redisUrl });
|
|
25969
|
+
this.queue = new Queue(this.queueName, { connection: connectionOptions });
|
|
25970
|
+
}
|
|
25971
|
+
return this.queue;
|
|
25972
|
+
}
|
|
25973
|
+
makeJobId(taskId) {
|
|
25974
|
+
return `hitl_timeout__${taskId}`;
|
|
25975
|
+
}
|
|
25976
|
+
};
|
|
25977
|
+
HitlTimeoutJobScheduler = __decorate([
|
|
25978
|
+
injectable(),
|
|
25979
|
+
__decorateParam(0, inject(ApplicationTokens.AppConfig)),
|
|
25980
|
+
__decorateMetadata("design:paramtypes", [Object])
|
|
25981
|
+
], HitlTimeoutJobScheduler);
|
|
25982
|
+
|
|
25983
|
+
//#endregion
|
|
25984
|
+
//#region src/application/telemetry/ResumeTelemetryContextForRun.ts
|
|
25985
|
+
var _ref$9;
|
|
25986
|
+
let ResumeTelemetryContextForRun = class ResumeTelemetryContextForRun$1 {
|
|
25987
|
+
taskStore;
|
|
25988
|
+
constructor(telemetryFactory, taskStore) {
|
|
25989
|
+
this.telemetryFactory = telemetryFactory;
|
|
25990
|
+
this.taskStore = taskStore;
|
|
25991
|
+
}
|
|
25992
|
+
/**
|
|
25993
|
+
* Returns an {@link ExecutionTelemetry} scope keyed to the run's trace, or `undefined`
|
|
25994
|
+
* when the task store is not available or the task is not found.
|
|
25995
|
+
*
|
|
25996
|
+
* Loads `workflowId` from the task record so callers don't need to look it up separately.
|
|
25997
|
+
*/
|
|
25998
|
+
async forTask(taskId) {
|
|
25999
|
+
if (!this.taskStore) return;
|
|
26000
|
+
const task = await this.taskStore.findById(taskId);
|
|
26001
|
+
if (!task) return;
|
|
26002
|
+
return this.telemetryFactory.create({
|
|
26003
|
+
runId: task.runId,
|
|
26004
|
+
workflowId: task.workflowId
|
|
26005
|
+
});
|
|
26006
|
+
}
|
|
26007
|
+
};
|
|
26008
|
+
ResumeTelemetryContextForRun = __decorate([
|
|
26009
|
+
injectable(),
|
|
26010
|
+
__decorateParam(0, inject(OtelExecutionTelemetryFactory)),
|
|
26011
|
+
__decorateParam(1, inject(HumanTaskStoreToken)),
|
|
26012
|
+
__decorateMetadata("design:paramtypes", [typeof (_ref$9 = typeof OtelExecutionTelemetryFactory !== "undefined" && OtelExecutionTelemetryFactory) === "function" ? _ref$9 : Object, Object])
|
|
26013
|
+
], ResumeTelemetryContextForRun);
|
|
26014
|
+
|
|
26015
|
+
//#endregion
|
|
26016
|
+
//#region src/hitl/HitlTimeoutWorker.ts
|
|
26017
|
+
var _ref$8, _ref2$4, _ref3$1;
|
|
26018
|
+
let HitlTimeoutWorker = class HitlTimeoutWorker$1 {
|
|
26019
|
+
taskStore;
|
|
26020
|
+
worker = null;
|
|
26021
|
+
connectionOptions;
|
|
26022
|
+
constructor(taskStore, engine, scheduler, appConfig, resumeTelemetry) {
|
|
26023
|
+
this.engine = engine;
|
|
26024
|
+
this.scheduler = scheduler;
|
|
26025
|
+
this.resumeTelemetry = resumeTelemetry;
|
|
26026
|
+
if (!taskStore) throw new Error("HitlTimeoutWorker: HumanTaskStore is not registered.");
|
|
26027
|
+
this.taskStore = taskStore;
|
|
26028
|
+
const redisUrl = appConfig.env.REDIS_URL ?? appConfig.env.CODEMATION_REDIS_URL ?? "redis://127.0.0.1:6379";
|
|
26029
|
+
this.connectionOptions = RedisConnectionOptionsFactory.fromConfig({ url: redisUrl });
|
|
26030
|
+
}
|
|
26031
|
+
start() {
|
|
26032
|
+
this.worker = new Worker(this.scheduler.getQueueName(), async (job) => {
|
|
26033
|
+
await this.processJob(job);
|
|
26034
|
+
}, { connection: this.connectionOptions });
|
|
26035
|
+
}
|
|
26036
|
+
async stop() {
|
|
26037
|
+
if (this.worker) {
|
|
26038
|
+
await this.worker.close();
|
|
26039
|
+
this.worker = null;
|
|
26040
|
+
}
|
|
26041
|
+
}
|
|
26042
|
+
async processTimeoutForTask(taskId) {
|
|
26043
|
+
const task = await this.taskStore.findById(taskId);
|
|
26044
|
+
if (!task) return;
|
|
26045
|
+
if (task.status !== "pending") return;
|
|
26046
|
+
const now = /* @__PURE__ */ new Date();
|
|
26047
|
+
if (task.onTimeout === "auto-accept") {
|
|
26048
|
+
await this.taskStore.markAutoAccepted(taskId);
|
|
26049
|
+
await (await this.resumeTelemetry.forTask(taskId))?.addSpanEvent({
|
|
26050
|
+
name: "hitl.task.timed_out",
|
|
26051
|
+
attributes: {
|
|
26052
|
+
[CodemationTelemetryAttributeNames.hitlTaskId]: taskId,
|
|
26053
|
+
policy: "auto-accept"
|
|
26054
|
+
}
|
|
26055
|
+
});
|
|
26056
|
+
await this.engine.resumeRun({
|
|
26057
|
+
runId: task.runId,
|
|
26058
|
+
taskId: task.id,
|
|
26059
|
+
resumeContext: {
|
|
26060
|
+
decision: {
|
|
26061
|
+
kind: "auto_accepted",
|
|
26062
|
+
at: now
|
|
26063
|
+
},
|
|
26064
|
+
delivery: task.deliveryRef ?? null,
|
|
26065
|
+
task: {
|
|
26066
|
+
taskId: task.id,
|
|
26067
|
+
runId: task.runId,
|
|
26068
|
+
nodeId: task.nodeId,
|
|
26069
|
+
expiresAt: task.expiresAt,
|
|
26070
|
+
resumeUrl: ""
|
|
26071
|
+
}
|
|
26072
|
+
}
|
|
26073
|
+
});
|
|
26074
|
+
} else {
|
|
26075
|
+
await this.taskStore.markTimedOut(taskId);
|
|
26076
|
+
await (await this.resumeTelemetry.forTask(taskId))?.addSpanEvent({
|
|
26077
|
+
name: "hitl.task.timed_out",
|
|
26078
|
+
attributes: {
|
|
26079
|
+
[CodemationTelemetryAttributeNames.hitlTaskId]: taskId,
|
|
26080
|
+
policy: "halt"
|
|
26081
|
+
}
|
|
26082
|
+
});
|
|
26083
|
+
await this.engine.resumeRun({
|
|
26084
|
+
runId: task.runId,
|
|
26085
|
+
taskId: task.id,
|
|
26086
|
+
resumeContext: {
|
|
26087
|
+
decision: {
|
|
26088
|
+
kind: "timed_out",
|
|
26089
|
+
at: now
|
|
26090
|
+
},
|
|
26091
|
+
delivery: task.deliveryRef ?? null,
|
|
26092
|
+
task: {
|
|
26093
|
+
taskId: task.id,
|
|
26094
|
+
runId: task.runId,
|
|
26095
|
+
nodeId: task.nodeId,
|
|
26096
|
+
expiresAt: task.expiresAt,
|
|
26097
|
+
resumeUrl: ""
|
|
26098
|
+
}
|
|
26099
|
+
}
|
|
26100
|
+
});
|
|
26101
|
+
}
|
|
26102
|
+
}
|
|
26103
|
+
async processJob(job) {
|
|
26104
|
+
const data = job.data;
|
|
26105
|
+
if (!data || data.kind !== "hitl.timeout") throw new Error(`Unexpected job payload for hitl.timeout queue: ${JSON.stringify(data)}`);
|
|
26106
|
+
await this.processTimeoutForTask(data.taskId);
|
|
26107
|
+
}
|
|
26108
|
+
};
|
|
26109
|
+
HitlTimeoutWorker = __decorate([
|
|
26110
|
+
injectable(),
|
|
26111
|
+
__decorateParam(0, inject(HumanTaskStoreToken)),
|
|
26112
|
+
__decorateParam(1, inject(Engine)),
|
|
26113
|
+
__decorateParam(2, inject(HitlTimeoutJobScheduler)),
|
|
26114
|
+
__decorateParam(3, inject(ApplicationTokens.AppConfig)),
|
|
26115
|
+
__decorateParam(4, inject(ResumeTelemetryContextForRun)),
|
|
26116
|
+
__decorateMetadata("design:paramtypes", [
|
|
26117
|
+
Object,
|
|
26118
|
+
typeof (_ref$8 = typeof Engine !== "undefined" && Engine) === "function" ? _ref$8 : Object,
|
|
26119
|
+
typeof (_ref2$4 = typeof HitlTimeoutJobScheduler !== "undefined" && HitlTimeoutJobScheduler) === "function" ? _ref2$4 : Object,
|
|
26120
|
+
Object,
|
|
26121
|
+
typeof (_ref3$1 = typeof ResumeTelemetryContextForRun !== "undefined" && ResumeTelemetryContextForRun) === "function" ? _ref3$1 : Object
|
|
26122
|
+
])
|
|
26123
|
+
], HitlTimeoutWorker);
|
|
26124
|
+
|
|
26125
|
+
//#endregion
|
|
26126
|
+
//#region src/application/hitl/DecisionSchemaValidator.ts
|
|
26127
|
+
const ajv = new Ajv({ strict: false });
|
|
26128
|
+
let DecisionSchemaValidator = class DecisionSchemaValidator$1 {
|
|
26129
|
+
validate(args) {
|
|
26130
|
+
const schema = JSON.parse(args.schemaJson);
|
|
26131
|
+
const fn$1 = ajv.compile(schema);
|
|
26132
|
+
if (fn$1(args.value)) return { valid: true };
|
|
26133
|
+
return {
|
|
26134
|
+
valid: false,
|
|
26135
|
+
message: ajv.errorsText(fn$1.errors)
|
|
26136
|
+
};
|
|
26137
|
+
}
|
|
26138
|
+
};
|
|
26139
|
+
DecisionSchemaValidator = __decorate([injectable()], DecisionSchemaValidator);
|
|
26140
|
+
|
|
26141
|
+
//#endregion
|
|
26142
|
+
//#region src/application/hitl/DecideHumanTaskCommandHandler.ts
|
|
26143
|
+
var _ref$7, _ref2$3, _ref3, _ref4, _ref5;
|
|
26144
|
+
let DecideHumanTaskCommandHandler = class DecideHumanTaskCommandHandler$1 {
|
|
26145
|
+
taskStore;
|
|
26146
|
+
constructor(taskStore, engine, tokenSigner, timeoutScheduler, schemaValidator, resumeTelemetry) {
|
|
26147
|
+
this.engine = engine;
|
|
26148
|
+
this.tokenSigner = tokenSigner;
|
|
26149
|
+
this.timeoutScheduler = timeoutScheduler;
|
|
26150
|
+
this.schemaValidator = schemaValidator;
|
|
26151
|
+
this.resumeTelemetry = resumeTelemetry;
|
|
26152
|
+
this.taskStore = taskStore;
|
|
26153
|
+
}
|
|
26154
|
+
async decide(args) {
|
|
26155
|
+
if (!this.taskStore) throw new ApplicationRequestError(503, "HITL is not available in this configuration");
|
|
26156
|
+
const task = await this.taskStore.findById(args.taskId);
|
|
26157
|
+
if (!task) throw new ApplicationRequestError(404, "HumanTask not found");
|
|
26158
|
+
if (task.status !== "pending") throw new ApplicationRequestError(409, `HumanTask is not pending (current status: ${task.status})`);
|
|
26159
|
+
const validationResult = this.schemaValidator.validate({
|
|
26160
|
+
schemaJson: task.decisionSchemaJson,
|
|
26161
|
+
value: args.decision
|
|
26162
|
+
});
|
|
26163
|
+
if (!validationResult.valid) throw new ApplicationRequestError(422, `Decision does not match the expected schema: ${validationResult.message}`);
|
|
26164
|
+
const decidedAt = /* @__PURE__ */ new Date();
|
|
26165
|
+
await this.taskStore.markDecided({
|
|
26166
|
+
taskId: args.taskId,
|
|
26167
|
+
decision: args.decision,
|
|
26168
|
+
decidedBy: args.decidedBy,
|
|
26169
|
+
decidedAt
|
|
26170
|
+
});
|
|
26171
|
+
await this.timeoutScheduler.cancelTimeoutJob(args.taskId);
|
|
26172
|
+
const telemetry = await this.resumeTelemetry.forTask(args.taskId);
|
|
26173
|
+
const latencyMs = decidedAt.getTime() - task.createdAt.getTime();
|
|
26174
|
+
const decisionPayload = args.decision;
|
|
26175
|
+
const decisionStatus = typeof decisionPayload?.["approved"] === "boolean" ? decisionPayload["approved"] ? "approved" : "rejected" : "decided";
|
|
26176
|
+
await telemetry?.addSpanEvent({
|
|
26177
|
+
name: "hitl.task.decided",
|
|
26178
|
+
attributes: {
|
|
26179
|
+
[CodemationTelemetryAttributeNames.hitlTaskId]: args.taskId,
|
|
26180
|
+
[CodemationTelemetryAttributeNames.hitlDecisionStatus]: decisionStatus,
|
|
26181
|
+
actor: args.decidedBy.actorId,
|
|
26182
|
+
latencyMs
|
|
26183
|
+
}
|
|
26184
|
+
});
|
|
26185
|
+
const resumeResult = await this.engine.resumeRun({
|
|
26186
|
+
runId: task.runId,
|
|
26187
|
+
taskId: task.id,
|
|
26188
|
+
resumeContext: {
|
|
26189
|
+
decision: {
|
|
26190
|
+
kind: "decided",
|
|
26191
|
+
value: args.decision,
|
|
26192
|
+
actor: args.decidedBy,
|
|
26193
|
+
decidedAt
|
|
26194
|
+
},
|
|
26195
|
+
delivery: task.deliveryRef ?? null,
|
|
26196
|
+
task: {
|
|
26197
|
+
taskId: task.id,
|
|
26198
|
+
runId: task.runId,
|
|
26199
|
+
nodeId: task.nodeId,
|
|
26200
|
+
expiresAt: task.expiresAt,
|
|
26201
|
+
resumeUrl: ""
|
|
26202
|
+
}
|
|
26203
|
+
}
|
|
26204
|
+
});
|
|
26205
|
+
return {
|
|
26206
|
+
status: "decided",
|
|
26207
|
+
runStatus: resumeResult.status === "failed" || resumeResult.status === "halted" ? "halted" : "running"
|
|
26208
|
+
};
|
|
26209
|
+
}
|
|
26210
|
+
/** Used by the token-authenticated resume endpoint to validate the token and extract the actor. */
|
|
26211
|
+
async validateResumeToken(args) {
|
|
26212
|
+
const result = this.tokenSigner.verify(args.token);
|
|
26213
|
+
if (!result.ok) {
|
|
26214
|
+
if (result.reason === "expired") throw new ApplicationRequestError(410, "Resume token has expired");
|
|
26215
|
+
throw new ApplicationRequestError(401, "Invalid resume token");
|
|
26216
|
+
}
|
|
26217
|
+
if (result.taskId !== args.taskId) throw new ApplicationRequestError(401, "Token taskId does not match");
|
|
26218
|
+
if (!this.taskStore) throw new ApplicationRequestError(503, "HITL is not available in this configuration");
|
|
26219
|
+
const task = await this.taskStore.findById(args.taskId);
|
|
26220
|
+
if (!task) throw new ApplicationRequestError(404, "HumanTask not found");
|
|
26221
|
+
if (task.decisionSchemaHash.slice(0, 8) !== result.schemaHash) throw new ApplicationRequestError(410, "Schema has changed since this token was issued");
|
|
26222
|
+
return { schemaHash: result.schemaHash };
|
|
26223
|
+
}
|
|
26224
|
+
};
|
|
26225
|
+
DecideHumanTaskCommandHandler = __decorate([
|
|
26226
|
+
injectable(),
|
|
26227
|
+
__decorateParam(0, inject(HumanTaskStoreToken)),
|
|
26228
|
+
__decorateParam(1, inject(Engine)),
|
|
26229
|
+
__decorateParam(2, inject(HitlResumeTokenSigner)),
|
|
26230
|
+
__decorateParam(3, inject(HitlTimeoutJobScheduler)),
|
|
26231
|
+
__decorateParam(4, inject(DecisionSchemaValidator)),
|
|
26232
|
+
__decorateParam(5, inject(ResumeTelemetryContextForRun)),
|
|
26233
|
+
__decorateMetadata("design:paramtypes", [
|
|
26234
|
+
Object,
|
|
26235
|
+
typeof (_ref$7 = typeof Engine !== "undefined" && Engine) === "function" ? _ref$7 : Object,
|
|
26236
|
+
typeof (_ref2$3 = typeof HitlResumeTokenSigner !== "undefined" && HitlResumeTokenSigner) === "function" ? _ref2$3 : Object,
|
|
26237
|
+
typeof (_ref3 = typeof HitlTimeoutJobScheduler !== "undefined" && HitlTimeoutJobScheduler) === "function" ? _ref3 : Object,
|
|
26238
|
+
typeof (_ref4 = typeof DecisionSchemaValidator !== "undefined" && DecisionSchemaValidator) === "function" ? _ref4 : Object,
|
|
26239
|
+
typeof (_ref5 = typeof ResumeTelemetryContextForRun !== "undefined" && ResumeTelemetryContextForRun) === "function" ? _ref5 : Object
|
|
26240
|
+
])
|
|
26241
|
+
], DecideHumanTaskCommandHandler);
|
|
26242
|
+
|
|
26243
|
+
//#endregion
|
|
26244
|
+
//#region src/presentation/http/hono/registrars/HitlDecideHonoApiRouteRegistrar.ts
|
|
26245
|
+
var _ref$6;
|
|
26246
|
+
let HitlDecideHonoApiRouteRegistrar = class HitlDecideHonoApiRouteRegistrar$1 {
|
|
26247
|
+
constructor(handler, pairingConfig = null) {
|
|
26248
|
+
this.handler = handler;
|
|
26249
|
+
this.pairingConfig = pairingConfig;
|
|
26250
|
+
}
|
|
26251
|
+
register(app) {
|
|
26252
|
+
if (this.pairingConfig !== null) return;
|
|
26253
|
+
app.post("/hitl/tasks/:taskId/decide", async (c) => {
|
|
26254
|
+
try {
|
|
26255
|
+
const taskId = c.req.param("taskId");
|
|
26256
|
+
const body = await HttpRequestJsonBodyReader.readJsonBody(c.req.raw);
|
|
26257
|
+
const result = await this.handler.decide({
|
|
26258
|
+
taskId,
|
|
26259
|
+
decision: body.decision,
|
|
26260
|
+
decidedBy: body.decidedBy ?? { actorId: "session-user" }
|
|
26261
|
+
});
|
|
26262
|
+
return c.json(result);
|
|
26263
|
+
} catch (error) {
|
|
26264
|
+
return ServerHttpErrorResponseFactory.fromUnknown(error);
|
|
26265
|
+
}
|
|
26266
|
+
});
|
|
26267
|
+
}
|
|
26268
|
+
};
|
|
26269
|
+
HitlDecideHonoApiRouteRegistrar = __decorate([
|
|
26270
|
+
injectable(),
|
|
26271
|
+
__decorateParam(0, inject(DecideHumanTaskCommandHandler)),
|
|
26272
|
+
__decorateParam(1, inject(PairingConfigToken, { isOptional: true })),
|
|
26273
|
+
__decorateMetadata("design:paramtypes", [typeof (_ref$6 = typeof DecideHumanTaskCommandHandler !== "undefined" && DecideHumanTaskCommandHandler) === "function" ? _ref$6 : Object, Object])
|
|
26274
|
+
], HitlDecideHonoApiRouteRegistrar);
|
|
26275
|
+
|
|
26276
|
+
//#endregion
|
|
26277
|
+
//#region src/presentation/http/hono/registrars/HitlResumeHonoApiRouteRegistrar.ts
|
|
26278
|
+
var _ref$5;
|
|
26279
|
+
let HitlResumeHonoApiRouteRegistrar = class HitlResumeHonoApiRouteRegistrar$1 {
|
|
26280
|
+
constructor(handler) {
|
|
26281
|
+
this.handler = handler;
|
|
26282
|
+
}
|
|
26283
|
+
register(app) {
|
|
26284
|
+
app.post("/hitl/tasks/:taskId/resume", async (c) => {
|
|
26285
|
+
try {
|
|
26286
|
+
const taskId = c.req.param("taskId");
|
|
26287
|
+
const token = c.req.query("token") ?? "";
|
|
26288
|
+
await this.handler.validateResumeToken({
|
|
26289
|
+
taskId,
|
|
26290
|
+
token
|
|
26291
|
+
});
|
|
26292
|
+
const body = await HttpRequestJsonBodyReader.readJsonBody(c.req.raw);
|
|
26293
|
+
const result = await this.handler.decide({
|
|
26294
|
+
taskId,
|
|
26295
|
+
decision: body.decision,
|
|
26296
|
+
decidedBy: { actorId: "token-bearer" }
|
|
26297
|
+
});
|
|
26298
|
+
return c.json(result);
|
|
26299
|
+
} catch (error) {
|
|
26300
|
+
return ServerHttpErrorResponseFactory.fromUnknown(error);
|
|
26301
|
+
}
|
|
26302
|
+
});
|
|
26303
|
+
}
|
|
26304
|
+
};
|
|
26305
|
+
HitlResumeHonoApiRouteRegistrar = __decorate([
|
|
26306
|
+
injectable(),
|
|
26307
|
+
__decorateParam(0, inject(DecideHumanTaskCommandHandler)),
|
|
26308
|
+
__decorateMetadata("design:paramtypes", [typeof (_ref$5 = typeof DecideHumanTaskCommandHandler !== "undefined" && DecideHumanTaskCommandHandler) === "function" ? _ref$5 : Object])
|
|
26309
|
+
], HitlResumeHonoApiRouteRegistrar);
|
|
26310
|
+
|
|
26311
|
+
//#endregion
|
|
26312
|
+
//#region src/hitl/InboxChannelResolver.ts
|
|
26313
|
+
var _ref$4;
|
|
26314
|
+
let InboxChannelResolver = class InboxChannelResolver$1 {
|
|
26315
|
+
logger;
|
|
26316
|
+
constructor(pairingConfig, local, cp$1, loggerFactory) {
|
|
26317
|
+
this.pairingConfig = pairingConfig;
|
|
26318
|
+
this.local = local;
|
|
26319
|
+
this.cp = cp$1;
|
|
26320
|
+
this.logger = loggerFactory.create("codemation.hitl.inbox");
|
|
26321
|
+
if (pairingConfig && !cp$1) this.logger.warn("InboxChannelResolver: managed mode is active but no ControlPlaneInboxChannel is registered. Falling back to local inbox channel. Register a ControlPlaneInboxChannel to resolve this.");
|
|
26322
|
+
}
|
|
26323
|
+
resolve() {
|
|
26324
|
+
if (this.pairingConfig && this.cp) return {
|
|
26325
|
+
channel: this.cp,
|
|
26326
|
+
workspaceId: this.pairingConfig.workspaceId
|
|
26327
|
+
};
|
|
26328
|
+
if (!this.local) throw new Error("InboxChannelResolver: no inbox channel is registered. Register a LocalInboxChannel or ControlPlaneInboxChannel.");
|
|
26329
|
+
return { channel: this.local };
|
|
26330
|
+
}
|
|
26331
|
+
};
|
|
26332
|
+
InboxChannelResolver = __decorate([
|
|
26333
|
+
injectable(),
|
|
26334
|
+
__decorateParam(0, inject(PairingConfigToken, { isOptional: true })),
|
|
26335
|
+
__decorateParam(1, inject(LocalInboxChannelToken, { isOptional: true })),
|
|
26336
|
+
__decorateParam(2, inject(ControlPlaneInboxChannelToken, { isOptional: true })),
|
|
26337
|
+
__decorateParam(3, inject(ServerLoggerFactory)),
|
|
26338
|
+
__decorateMetadata("design:paramtypes", [
|
|
26339
|
+
Object,
|
|
26340
|
+
Object,
|
|
26341
|
+
Object,
|
|
26342
|
+
typeof (_ref$4 = typeof ServerLoggerFactory !== "undefined" && ServerLoggerFactory) === "function" ? _ref$4 : Object
|
|
26343
|
+
])
|
|
26344
|
+
], InboxChannelResolver);
|
|
26345
|
+
|
|
26346
|
+
//#endregion
|
|
26347
|
+
//#region src/hitl/LocalInboxChannel.ts
|
|
26348
|
+
var _ref$3;
|
|
26349
|
+
let LocalInboxChannel = class LocalInboxChannel$1 {
|
|
26350
|
+
kind = "local";
|
|
26351
|
+
logger;
|
|
26352
|
+
constructor(loggerFactory) {
|
|
26353
|
+
this.logger = loggerFactory.create("codemation.hitl.local-inbox");
|
|
26354
|
+
}
|
|
26355
|
+
async deliver(args) {
|
|
26356
|
+
const tokenFingerprint = createHash("sha256").update(args.task.resumeUrl, "utf8").digest("hex").slice(0, 8);
|
|
26357
|
+
this.logger.info(`HITL task pending in local inbox — taskId=${args.task.taskId} title="${args.subject.title}" tokenFingerprint=${tokenFingerprint}`);
|
|
26358
|
+
return {
|
|
26359
|
+
kind: "local",
|
|
26360
|
+
inboxItemId: args.task.taskId
|
|
26361
|
+
};
|
|
26362
|
+
}
|
|
26363
|
+
};
|
|
26364
|
+
LocalInboxChannel = __decorate([
|
|
26365
|
+
injectable(),
|
|
26366
|
+
__decorateParam(0, inject(ServerLoggerFactory)),
|
|
26367
|
+
__decorateMetadata("design:paramtypes", [typeof (_ref$3 = typeof ServerLoggerFactory !== "undefined" && ServerLoggerFactory) === "function" ? _ref$3 : Object])
|
|
26368
|
+
], LocalInboxChannel);
|
|
26369
|
+
|
|
26370
|
+
//#endregion
|
|
26371
|
+
//#region src/hitl/ControlPlaneInboxChannel.ts
|
|
26372
|
+
var _ref$2, _ref2$2;
|
|
26373
|
+
let ControlPlaneInboxChannel = class ControlPlaneInboxChannel$1 {
|
|
26374
|
+
kind = "control-plane-inbox";
|
|
26375
|
+
logger;
|
|
26376
|
+
constructor(pairedFetch, pairingConfig, loggerFactory) {
|
|
26377
|
+
this.pairedFetch = pairedFetch;
|
|
26378
|
+
this.pairingConfig = pairingConfig;
|
|
26379
|
+
this.logger = loggerFactory.create("codemation.hitl.cp-inbox");
|
|
26380
|
+
}
|
|
26381
|
+
async deliver(args) {
|
|
26382
|
+
const { task, subject, priority, item } = args;
|
|
26383
|
+
const body = {
|
|
26384
|
+
taskId: task.taskId,
|
|
26385
|
+
workspaceId: this.pairingConfig.workspaceId,
|
|
26386
|
+
runId: task.runId,
|
|
26387
|
+
nodeId: task.nodeId,
|
|
26388
|
+
subject,
|
|
26389
|
+
priority,
|
|
26390
|
+
expiresAt: task.expiresAt.toISOString(),
|
|
26391
|
+
resumeUrl: task.resumeUrl,
|
|
26392
|
+
item: {
|
|
26393
|
+
json: item.json,
|
|
26394
|
+
hasBinary: item.binary != null
|
|
26395
|
+
},
|
|
26396
|
+
agentReasoning: task.metadata?.agentReasoning
|
|
26397
|
+
};
|
|
26398
|
+
const url = `${this.pairingConfig.controlPlaneUrl}/internal/hitl/tasks`;
|
|
26399
|
+
const res = await this.pairedFetch.post(url, body);
|
|
26400
|
+
if (!res.ok) {
|
|
26401
|
+
const text = await res.text().catch(() => "<unreadable>");
|
|
26402
|
+
throw new Error(`ControlPlaneInboxChannel: CP push failed with status ${res.status}: ${text}`);
|
|
26403
|
+
}
|
|
26404
|
+
const json = await res.json();
|
|
26405
|
+
this.logger.info(`HITL task delivered to CP inbox — taskId=${task.taskId} inboxItemId=${json.inboxItemId}`);
|
|
26406
|
+
return {
|
|
26407
|
+
kind: "cp",
|
|
26408
|
+
inboxItemId: json.inboxItemId,
|
|
26409
|
+
workspaceId: this.pairingConfig.workspaceId
|
|
26410
|
+
};
|
|
26411
|
+
}
|
|
26412
|
+
async updateOnDecision(args) {
|
|
26413
|
+
if (args.delivery.kind !== "cp") return;
|
|
26414
|
+
const url = `${this.pairingConfig.controlPlaneUrl}/internal/hitl/tasks/${args.delivery.inboxItemId}/resolved`;
|
|
26415
|
+
const body = {
|
|
26416
|
+
decision: args.decision,
|
|
26417
|
+
actor: args.actor,
|
|
26418
|
+
resolvedAt: (/* @__PURE__ */ new Date()).toISOString()
|
|
26419
|
+
};
|
|
26420
|
+
const res = await this.pairedFetch.post(url, body);
|
|
26421
|
+
if (!res.ok) {
|
|
26422
|
+
const text = await res.text().catch(() => "<unreadable>");
|
|
26423
|
+
this.logger.warn(`Failed to notify CP of task decision — inboxItemId=${args.delivery.inboxItemId} status=${res.status} body=${text}`);
|
|
26424
|
+
}
|
|
26425
|
+
}
|
|
26426
|
+
async updateOnTimeout(args) {
|
|
26427
|
+
if (args.delivery.kind !== "cp") return;
|
|
26428
|
+
const url = `${this.pairingConfig.controlPlaneUrl}/internal/hitl/tasks/${args.delivery.inboxItemId}/resolved`;
|
|
26429
|
+
const body = {
|
|
26430
|
+
decision: {
|
|
26431
|
+
kind: "timeout",
|
|
26432
|
+
policy: args.policy
|
|
26433
|
+
},
|
|
26434
|
+
resolvedAt: (/* @__PURE__ */ new Date()).toISOString()
|
|
26435
|
+
};
|
|
26436
|
+
const res = await this.pairedFetch.post(url, body);
|
|
26437
|
+
if (!res.ok) {
|
|
26438
|
+
const text = await res.text().catch(() => "<unreadable>");
|
|
26439
|
+
this.logger.warn(`Failed to notify CP of task timeout — inboxItemId=${args.delivery.inboxItemId} status=${res.status} body=${text}`);
|
|
26440
|
+
}
|
|
26441
|
+
}
|
|
26442
|
+
};
|
|
26443
|
+
ControlPlaneInboxChannel = __decorate([
|
|
26444
|
+
injectable(),
|
|
26445
|
+
__decorateParam(0, inject(PairedFetch)),
|
|
26446
|
+
__decorateParam(1, inject(PairingConfigToken)),
|
|
26447
|
+
__decorateParam(2, inject(ServerLoggerFactory)),
|
|
26448
|
+
__decorateMetadata("design:paramtypes", [
|
|
26449
|
+
typeof (_ref$2 = typeof PairedFetch !== "undefined" && PairedFetch) === "function" ? _ref$2 : Object,
|
|
26450
|
+
Object,
|
|
26451
|
+
typeof (_ref2$2 = typeof ServerLoggerFactory !== "undefined" && ServerLoggerFactory) === "function" ? _ref2$2 : Object
|
|
26452
|
+
])
|
|
26453
|
+
], ControlPlaneInboxChannel);
|
|
26454
|
+
|
|
26455
|
+
//#endregion
|
|
26456
|
+
//#region src/application/hitl/HitlCallbackHandler.ts
|
|
26457
|
+
var _ref$1, _ref2$1;
|
|
26458
|
+
let HitlCallbackHandler = class HitlCallbackHandler$1 {
|
|
26459
|
+
logger;
|
|
26460
|
+
constructor(taskStore, pairingConfig, decideHandler, loggerFactory) {
|
|
26461
|
+
this.taskStore = taskStore;
|
|
26462
|
+
this.pairingConfig = pairingConfig;
|
|
26463
|
+
this.decideHandler = decideHandler;
|
|
26464
|
+
this.logger = loggerFactory.create("codemation.hitl.callback");
|
|
26465
|
+
}
|
|
26466
|
+
async handle(taskId, body) {
|
|
26467
|
+
if (!this.taskStore) return {
|
|
26468
|
+
status: 503,
|
|
26469
|
+
body: { error: "HITL is not available in this configuration" }
|
|
26470
|
+
};
|
|
26471
|
+
const task = await this.taskStore.findById(taskId);
|
|
26472
|
+
if (!task) return {
|
|
26473
|
+
status: 404,
|
|
26474
|
+
body: { error: "HumanTask not found" }
|
|
26475
|
+
};
|
|
26476
|
+
if (task.workspaceId !== void 0 && task.workspaceId !== this.pairingConfig.workspaceId) {
|
|
26477
|
+
this.logger.warn(`HITL callback workspace mismatch — taskId=${taskId} taskWorkspaceId=${task.workspaceId} pairingWorkspaceId=${this.pairingConfig.workspaceId}`);
|
|
26478
|
+
return {
|
|
26479
|
+
status: 403,
|
|
26480
|
+
body: { error: "Workspace mismatch" }
|
|
26481
|
+
};
|
|
26482
|
+
}
|
|
26483
|
+
if (task.status !== "pending") return {
|
|
26484
|
+
status: 409,
|
|
26485
|
+
body: { error: `HumanTask is not pending (current status: ${task.status})` }
|
|
26486
|
+
};
|
|
26487
|
+
if ("kind" in body && body.kind === "timeout") {
|
|
26488
|
+
await this.taskStore.markTimedOut(taskId);
|
|
26489
|
+
this.logger.info(`HITL task timed out via CP callback — taskId=${taskId}`);
|
|
26490
|
+
return {
|
|
26491
|
+
status: 200,
|
|
26492
|
+
body: { ok: true }
|
|
26493
|
+
};
|
|
26494
|
+
}
|
|
26495
|
+
const decisionBody = body;
|
|
26496
|
+
try {
|
|
26497
|
+
await this.decideHandler.decide({
|
|
26498
|
+
taskId,
|
|
26499
|
+
decision: decisionBody.decision,
|
|
26500
|
+
decidedBy: decisionBody.actor ?? { actorId: "cp-reviewer" }
|
|
26501
|
+
});
|
|
26502
|
+
} catch (err) {
|
|
26503
|
+
if (err instanceof ApplicationRequestError) return {
|
|
26504
|
+
status: err.status,
|
|
26505
|
+
body: { error: err.message }
|
|
26506
|
+
};
|
|
26507
|
+
throw err;
|
|
26508
|
+
}
|
|
26509
|
+
this.logger.info(`HITL task decided via CP callback — taskId=${taskId}`);
|
|
26510
|
+
return {
|
|
26511
|
+
status: 200,
|
|
26512
|
+
body: { ok: true }
|
|
26513
|
+
};
|
|
26514
|
+
}
|
|
26515
|
+
};
|
|
26516
|
+
HitlCallbackHandler = __decorate([
|
|
26517
|
+
injectable(),
|
|
26518
|
+
__decorateParam(0, inject(HumanTaskStoreToken)),
|
|
26519
|
+
__decorateParam(1, inject(PairingConfigToken)),
|
|
26520
|
+
__decorateParam(2, inject(DecideHumanTaskCommandHandler)),
|
|
26521
|
+
__decorateParam(3, inject(ServerLoggerFactory)),
|
|
26522
|
+
__decorateMetadata("design:paramtypes", [
|
|
26523
|
+
Object,
|
|
26524
|
+
Object,
|
|
26525
|
+
typeof (_ref$1 = typeof DecideHumanTaskCommandHandler !== "undefined" && DecideHumanTaskCommandHandler) === "function" ? _ref$1 : Object,
|
|
26526
|
+
typeof (_ref2$1 = typeof ServerLoggerFactory !== "undefined" && ServerLoggerFactory) === "function" ? _ref2$1 : Object
|
|
26527
|
+
])
|
|
26528
|
+
], HitlCallbackHandler);
|
|
26529
|
+
|
|
26530
|
+
//#endregion
|
|
26531
|
+
//#region src/presentation/http/hono/registrars/HitlInternalCallbackHonoApiRouteRegistrar.ts
|
|
26532
|
+
var _ref, _ref2;
|
|
26533
|
+
let HitlInternalCallbackHonoApiRouteRegistrar = class HitlInternalCallbackHonoApiRouteRegistrar$1 {
|
|
26534
|
+
constructor(hmacMiddleware, callbackHandler) {
|
|
26535
|
+
this.hmacMiddleware = hmacMiddleware;
|
|
26536
|
+
this.callbackHandler = callbackHandler;
|
|
26537
|
+
}
|
|
26538
|
+
register(app) {
|
|
26539
|
+
app.post("/internal/hitl/tasks/:taskId/callback", this.hmacMiddleware.handle(), async (c) => {
|
|
26540
|
+
const taskId = c.req.param("taskId");
|
|
26541
|
+
const rawBody = c.get("body");
|
|
26542
|
+
const body = rawBody ? JSON.parse(rawBody) : await c.req.json();
|
|
26543
|
+
const result = await this.callbackHandler.handle(taskId, body);
|
|
26544
|
+
return c.json(result.body, result.status);
|
|
26545
|
+
});
|
|
26546
|
+
}
|
|
26547
|
+
};
|
|
26548
|
+
HitlInternalCallbackHonoApiRouteRegistrar = __decorate([
|
|
26549
|
+
injectable(),
|
|
26550
|
+
__decorateParam(0, inject(InternalHmacAuthMiddleware)),
|
|
26551
|
+
__decorateParam(1, inject(HitlCallbackHandler)),
|
|
26552
|
+
__decorateMetadata("design:paramtypes", [typeof (_ref = typeof InternalHmacAuthMiddleware !== "undefined" && InternalHmacAuthMiddleware) === "function" ? _ref : Object, typeof (_ref2 = typeof HitlCallbackHandler !== "undefined" && HitlCallbackHandler) === "function" ? _ref2 : Object])
|
|
26553
|
+
], HitlInternalCallbackHonoApiRouteRegistrar);
|
|
26554
|
+
|
|
25338
26555
|
//#endregion
|
|
25339
26556
|
//#region src/bootstrap/AppContainerFactory.ts
|
|
25340
26557
|
var AppContainerFactory = class AppContainerFactory {
|
|
25341
26558
|
static queryHandlers = [
|
|
26559
|
+
GetCredentialAppsQueryHandler,
|
|
25342
26560
|
GetCredentialFieldEnvStatusQueryHandler,
|
|
25343
26561
|
GetCredentialInstanceQueryHandler,
|
|
25344
26562
|
GetCredentialInstanceWithSecretsQueryHandler,
|
|
@@ -25405,7 +26623,9 @@ var AppContainerFactory = class AppContainerFactory {
|
|
|
25405
26623
|
TestSuiteHonoApiRouteRegistrar,
|
|
25406
26624
|
WhitelabelHonoApiRouteRegistrar,
|
|
25407
26625
|
WorkflowHonoApiRouteRegistrar,
|
|
25408
|
-
CollectionHonoApiRouteRegistrar
|
|
26626
|
+
CollectionHonoApiRouteRegistrar,
|
|
26627
|
+
HitlDecideHonoApiRouteRegistrar,
|
|
26628
|
+
HitlResumeHonoApiRouteRegistrar
|
|
25409
26629
|
];
|
|
25410
26630
|
constructor(containerRegistrationRegistrar = new CodemationContainerRegistrationRegistrar(), pluginRegistrar = new CodemationPluginRegistrar()) {
|
|
25411
26631
|
this.containerRegistrationRegistrar = containerRegistrationRegistrar;
|
|
@@ -25592,6 +26812,7 @@ var AppContainerFactory = class AppContainerFactory {
|
|
|
25592
26812
|
container$1.registerSingleton(CredentialRuntimeMaterialService, CredentialRuntimeMaterialService);
|
|
25593
26813
|
container$1.registerSingleton(WorkflowCredentialNodeResolver, WorkflowCredentialNodeResolver);
|
|
25594
26814
|
container$1.registerSingleton(CredentialInstanceService, CredentialInstanceService);
|
|
26815
|
+
container$1.registerSingleton(AppGalleryProjector, AppGalleryProjector);
|
|
25595
26816
|
container$1.registerSingleton(CredentialBindingService, CredentialBindingService);
|
|
25596
26817
|
container$1.registerSingleton(WorkflowActivationPreflightRules, WorkflowActivationPreflightRules);
|
|
25597
26818
|
container$1.registerSingleton(WorkflowActivationPreflight, WorkflowActivationPreflight);
|
|
@@ -25608,6 +26829,13 @@ var AppContainerFactory = class AppContainerFactory {
|
|
|
25608
26829
|
container$1.registerSingleton(LocalOAuthFlowExecutor, LocalOAuthFlowExecutor);
|
|
25609
26830
|
}
|
|
25610
26831
|
container$1.registerSingleton(CredentialOAuth2MaterialReader, CredentialOAuth2MaterialReader);
|
|
26832
|
+
container$1.registerSingleton(LocalCredentialMaterialProvider, LocalCredentialMaterialProvider);
|
|
26833
|
+
if (container$1.isRegistered(PairedFetch, true)) {
|
|
26834
|
+
container$1.registerSingleton(ControlPlaneCredentialMaterialProvider, ControlPlaneCredentialMaterialProvider);
|
|
26835
|
+
container$1.registerSingleton(CompositeCredentialMaterialProvider, CompositeCredentialMaterialProvider);
|
|
26836
|
+
container$1.register(ApplicationTokens.CredentialMaterialInnerProvider, { useFactory: instanceCachingFactory((c) => c.resolve(CompositeCredentialMaterialProvider)) });
|
|
26837
|
+
} else container$1.register(ApplicationTokens.CredentialMaterialInnerProvider, { useFactory: instanceCachingFactory((c) => c.resolve(LocalCredentialMaterialProvider)) });
|
|
26838
|
+
container$1.registerSingleton(CachingCredentialMaterialProvider, CachingCredentialMaterialProvider);
|
|
25611
26839
|
container$1.registerSingleton(CodemationFrontendAuthSnapshotFactory, CodemationFrontendAuthSnapshotFactory);
|
|
25612
26840
|
container$1.registerSingleton(FrontendAppConfigFactory, FrontendAppConfigFactory);
|
|
25613
26841
|
container$1.registerSingleton(PublicFrontendBootstrapFactory, PublicFrontendBootstrapFactory);
|
|
@@ -25662,6 +26890,7 @@ var AppContainerFactory = class AppContainerFactory {
|
|
|
25662
26890
|
container$1.registerSingleton(NoOpTelemetryExporter, NoOpTelemetryExporter);
|
|
25663
26891
|
container$1.register(CompositeTelemetryExporter, { useFactory: instanceCachingFactory((dependencyContainer) => new CompositeTelemetryExporter([dependencyContainer.resolve(NoOpTelemetryExporter)])) });
|
|
25664
26892
|
container$1.registerSingleton(OtelExecutionTelemetryFactory, OtelExecutionTelemetryFactory);
|
|
26893
|
+
container$1.registerSingleton(ResumeTelemetryContextForRun, ResumeTelemetryContextForRun);
|
|
25665
26894
|
container$1.registerSingleton(InMemoryRunTraceContextRepository, InMemoryRunTraceContextRepository);
|
|
25666
26895
|
container$1.registerSingleton(InMemoryTelemetrySpanStore, InMemoryTelemetrySpanStore);
|
|
25667
26896
|
container$1.registerSingleton(InMemoryTelemetryArtifactStore, InMemoryTelemetryArtifactStore);
|
|
@@ -25684,6 +26913,19 @@ var AppContainerFactory = class AppContainerFactory {
|
|
|
25684
26913
|
container$1.registerSingleton(PrismaWorkflowActivationRepository, PrismaWorkflowActivationRepository);
|
|
25685
26914
|
container$1.registerSingleton(InMemoryWorkflowActivationRepository, InMemoryWorkflowActivationRepository);
|
|
25686
26915
|
container$1.registerSingleton(PrismaCredentialStore, PrismaCredentialStore);
|
|
26916
|
+
container$1.registerSingleton(PrismaHumanTaskStore, PrismaHumanTaskStore);
|
|
26917
|
+
container$1.register(HumanTaskStoreToken, { useFactory: () => void 0 });
|
|
26918
|
+
container$1.registerSingleton(HitlResumeTokenSigner, HitlResumeTokenSigner);
|
|
26919
|
+
container$1.register(HitlResumeTokenSignerToken, { useFactory: instanceCachingFactory((dc$1) => dc$1.resolve(HitlResumeTokenSigner)) });
|
|
26920
|
+
container$1.registerSingleton(HitlTimeoutJobScheduler, HitlTimeoutJobScheduler);
|
|
26921
|
+
container$1.register(HitlTimeoutJobSchedulerToken, { useFactory: instanceCachingFactory((dc$1) => dc$1.resolve(HitlTimeoutJobScheduler)) });
|
|
26922
|
+
container$1.registerSingleton(HitlTimeoutWorker, HitlTimeoutWorker);
|
|
26923
|
+
container$1.registerSingleton(DecisionSchemaValidator, DecisionSchemaValidator);
|
|
26924
|
+
container$1.registerSingleton(DecideHumanTaskCommandHandler, DecideHumanTaskCommandHandler);
|
|
26925
|
+
container$1.registerSingleton(InboxChannelResolver, InboxChannelResolver);
|
|
26926
|
+
container$1.register(InboxChannelResolverToken, { useFactory: instanceCachingFactory((dc$1) => dc$1.resolve(InboxChannelResolver)) });
|
|
26927
|
+
container$1.registerSingleton(LocalInboxChannel, LocalInboxChannel);
|
|
26928
|
+
container$1.register(LocalInboxChannelToken, { useFactory: instanceCachingFactory((dc$1) => dc$1.resolve(LocalInboxChannel)) });
|
|
25687
26929
|
container$1.register(ApplicationTokens.WorkflowDefinitionRepository, { useFactory: instanceCachingFactory((dependencyContainer) => dependencyContainer.resolve(WorkflowDefinitionRepositoryAdapter)) });
|
|
25688
26930
|
container$1.registerSingleton(InMemoryQueryBus, InMemoryQueryBus);
|
|
25689
26931
|
container$1.registerSingleton(InMemoryCommandBus, InMemoryCommandBus);
|
|
@@ -25763,18 +27005,25 @@ var AppContainerFactory = class AppContainerFactory {
|
|
|
25763
27005
|
return;
|
|
25764
27006
|
}
|
|
25765
27007
|
container$1.registerInstance(PairingConfigToken, pairingConfig);
|
|
27008
|
+
container$1.registerInstance(HitlWorkspaceIdToken, pairingConfig.workspaceId);
|
|
25766
27009
|
container$1.registerSingleton(HmacRequestSigner, HmacRequestSigner);
|
|
25767
27010
|
container$1.registerSingleton(PairedFetch, PairedFetch);
|
|
27011
|
+
container$1.registerSingleton(HmacNonceStoreToken, PrismaHmacNonceStore);
|
|
25768
27012
|
container$1.registerSingleton(IncomingHmacVerifier, IncomingHmacVerifier);
|
|
25769
27013
|
container$1.registerSingleton(InternalHmacAuthMiddleware, InternalHmacAuthMiddleware);
|
|
25770
27014
|
container$1.registerSingleton(BrokerClient, BrokerClient);
|
|
25771
27015
|
container$1.registerSingleton(ApplicationTokens.InternalHonoApiRouteRegistrar, InternalPingRegistrar);
|
|
25772
27016
|
container$1.registerSingleton(ApplicationTokens.InternalHonoApiRouteRegistrar, InternalCredentialsPushRegistrar);
|
|
27017
|
+
container$1.registerSingleton(ApplicationTokens.InternalHonoApiRouteRegistrar, InternalCredentialsBindingRegistrar);
|
|
25773
27018
|
container$1.registerSingleton(ApplicationTokens.InternalHonoApiRouteRegistrar, InternalCredentialsListRegistrar);
|
|
25774
27019
|
container$1.registerSingleton(ApplicationTokens.InternalHonoApiRouteRegistrar, InternalWorkflowsListRegistrar);
|
|
25775
27020
|
container$1.registerSingleton(ApplicationTokens.InternalHonoApiRouteRegistrar, InternalWorkflowDetailRegistrar);
|
|
25776
27021
|
container$1.registerSingleton(ApplicationTokens.InternalHonoApiRouteRegistrar, InternalWorkflowActivationRegistrar);
|
|
25777
27022
|
container$1.registerSingleton(ApplicationTokens.InternalHonoApiRouteRegistrar, InternalWorkflowTestRunRegistrar);
|
|
27023
|
+
container$1.registerSingleton(ControlPlaneInboxChannel, ControlPlaneInboxChannel);
|
|
27024
|
+
container$1.register(ControlPlaneInboxChannelToken, { useFactory: instanceCachingFactory((dc$1) => dc$1.resolve(ControlPlaneInboxChannel)) });
|
|
27025
|
+
container$1.registerSingleton(HitlCallbackHandler, HitlCallbackHandler);
|
|
27026
|
+
container$1.registerSingleton(ApplicationTokens.InternalHonoApiRouteRegistrar, HitlInternalCallbackHonoApiRouteRegistrar);
|
|
25778
27027
|
}
|
|
25779
27028
|
registerOperationalInfrastructure(container$1) {
|
|
25780
27029
|
container$1.register(ApplicationTokens.WorkflowWebsocketPublisher, { useFactory: instanceCachingFactory((dependencyContainer) => dependencyContainer.resolve(WorkflowWebsocketServer)) });
|
|
@@ -25813,7 +27062,7 @@ var AppContainerFactory = class AppContainerFactory {
|
|
|
25813
27062
|
container$1.registerInstance(ApplicationTokens.TelemetrySpanStore, container$1.resolve(InMemoryTelemetrySpanStore));
|
|
25814
27063
|
container$1.registerInstance(ApplicationTokens.TelemetryArtifactStore, container$1.resolve(InMemoryTelemetryArtifactStore));
|
|
25815
27064
|
container$1.registerInstance(ApplicationTokens.TelemetryMetricPointStore, container$1.resolve(InMemoryTelemetryMetricPointStore));
|
|
25816
|
-
container$1.registerInstance(CoreTokens.ExecutionContextFactory, new DefaultExecutionContextFactory(binaryStorage, new LazyExecutionTelemetryFactory(() => container$1.resolve(OtelExecutionTelemetryFactory)), new CatalogBackedCostTrackingTelemetryFactory(new StaticCostCatalog(FrameworkCostCatalogEntries))));
|
|
27065
|
+
container$1.registerInstance(CoreTokens.ExecutionContextFactory, new DefaultExecutionContextFactory(binaryStorage, new LazyExecutionTelemetryFactory(() => container$1.resolve(OtelExecutionTelemetryFactory)), new CatalogBackedCostTrackingTelemetryFactory(new StaticCostCatalog(FrameworkCostCatalogEntries)), void 0, void 0, container$1));
|
|
25817
27066
|
this.registerRuntimeNodeActivationScheduler(container$1);
|
|
25818
27067
|
return { ownedPrismaClient: null };
|
|
25819
27068
|
}
|
|
@@ -25837,13 +27086,14 @@ var AppContainerFactory = class AppContainerFactory {
|
|
|
25837
27086
|
container$1.registerInstance(ApplicationTokens.WorkflowDebuggerOverlayRepository, workflowDebuggerOverlayRepository);
|
|
25838
27087
|
container$1.registerInstance(ApplicationTokens.WorkflowActivationRepository, container$1.resolve(PrismaWorkflowActivationRepository));
|
|
25839
27088
|
container$1.registerInstance(ApplicationTokens.CredentialStore, container$1.resolve(PrismaCredentialStore));
|
|
27089
|
+
container$1.registerInstance(HumanTaskStoreToken, container$1.resolve(PrismaHumanTaskStore));
|
|
25840
27090
|
container$1.registerInstance(ApplicationTokens.RunTraceContextRepository, runTraceContextRepository);
|
|
25841
27091
|
container$1.registerInstance(ApplicationTokens.TelemetrySpanStore, telemetrySpanStore);
|
|
25842
27092
|
container$1.registerInstance(ApplicationTokens.TelemetryArtifactStore, telemetryArtifactStore);
|
|
25843
27093
|
container$1.registerInstance(ApplicationTokens.TelemetryMetricPointStore, telemetryMetricPointStore);
|
|
25844
27094
|
container$1.registerInstance(TestSuiteRunRepositoryToken, testSuiteRunRepository);
|
|
25845
27095
|
container$1.registerInstance(TestAssertionRepositoryToken, testAssertionRepository);
|
|
25846
|
-
container$1.registerInstance(CoreTokens.ExecutionContextFactory, new DefaultExecutionContextFactory(binaryStorage, new LazyExecutionTelemetryFactory(() => container$1.resolve(OtelExecutionTelemetryFactory)), new CatalogBackedCostTrackingTelemetryFactory(new StaticCostCatalog(FrameworkCostCatalogEntries))));
|
|
27096
|
+
container$1.registerInstance(CoreTokens.ExecutionContextFactory, new DefaultExecutionContextFactory(binaryStorage, new LazyExecutionTelemetryFactory(() => container$1.resolve(OtelExecutionTelemetryFactory)), new CatalogBackedCostTrackingTelemetryFactory(new StaticCostCatalog(FrameworkCostCatalogEntries)), void 0, void 0, container$1));
|
|
25847
27097
|
if (appConfig.scheduler.kind === "bullmq") container$1.registerInstance(ApplicationTokens.WorkerRuntimeScheduler, new BullmqScheduler({ url: this.requireRedisUrl(appConfig.scheduler.redisUrl) }, queuePrefix));
|
|
25848
27098
|
this.registerRuntimeNodeActivationScheduler(container$1);
|
|
25849
27099
|
return { ownedPrismaClient: prismaOwnership.ownedPrismaClient };
|
|
@@ -25930,4 +27180,4 @@ var AppContainerFactory = class AppContainerFactory {
|
|
|
25930
27180
|
|
|
25931
27181
|
//#endregion
|
|
25932
27182
|
export { WorkflowDefinitionMapper as A, CodemationHonoApiApp as C, FrontendAppConfigFactory as D, InternalAuthBootstrapFactory as E, StartWorkflowRunCommand as F, UpsertLocalBootstrapUserCommand as I, ListUserAccountsQuery as L, GetWorkflowDetailQuery as M, GetRunStateQuery as N, CodemationFrontendAuthSnapshotFactory as O, RunBinaryAttachmentLookupService as P, CredentialHttpRouteHandler as S, PublicFrontendBootstrapFactory as T, WorkflowHttpRouteHandler as _, GetCollectionQuery as a, RunHttpRouteHandler as b, InsertCollectionRowCommand as c, FrontendRuntime as d, CollectionSchemaSyncerHolder as f, ExecaProcessRunner as g, WorkflowRunRetentionPruneScheduler as h, GetCollectionRowQuery as i, GetWorkflowSummariesQuery as j, WorkflowWebsocketServer as k, DeleteCollectionRowCommand as l, AppContainerLifecycle as m, ListCollectionsQuery as n, UpdateCollectionRowCommand as o, DatabaseMigrations as p, ListCollectionRowsQuery as r, SyncCollectionsCommand as s, AppContainerFactory as t, WorkerRuntime as u, WebhookHttpRouteHandler as v, BinaryHttpRouteHandler as w, OAuth2HttpRouteHandler as x, RequestToWebhookItemMapper as y };
|
|
25933
|
-
//# sourceMappingURL=AppContainerFactory-
|
|
27183
|
+
//# sourceMappingURL=AppContainerFactory-jpYXGZGe.js.map
|