@versori/run 0.6.0-alpha.1 → 0.6.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm/deps/jsr.io/@std/fmt/1.0.10/colors.d.ts.map +1 -0
- package/esm/deps/jsr.io/@std/fmt/{1.0.9 → 1.0.10}/colors.js +2 -2
- package/esm/deps/jsr.io/@std/log/0.224.14/console_handler.js +1 -1
- package/esm/src/connection/internal/CredentialHolder.js +1 -1
- package/esm/src/connection/internal/FetchBuilder.d.ts +2 -9
- package/esm/src/connection/internal/FetchBuilder.d.ts.map +1 -1
- package/esm/src/connection/internal/FetchBuilder.js +3 -124
- package/esm/src/context/Context.d.ts +0 -5
- package/esm/src/context/Context.d.ts.map +1 -1
- package/esm/src/context/Context.js +3 -6
- package/esm/src/context/VanillaContext.d.ts.map +1 -1
- package/esm/src/context/VanillaContext.js +3 -0
- package/esm/src/context/WorkflowClient.d.ts +1 -0
- package/esm/src/context/WorkflowClient.d.ts.map +1 -1
- package/esm/src/context/WorkflowClient.js +3 -0
- package/esm/src/dsl/Workflow.d.ts.map +1 -1
- package/esm/src/dsl/Workflow.js +0 -2
- package/esm/src/dsl/http/types.d.ts +0 -2
- package/esm/src/dsl/http/types.d.ts.map +1 -1
- package/esm/src/dsl/http/versori/configloader.d.ts.map +1 -1
- package/esm/src/dsl/http/versori/configloader.js +1 -1
- package/esm/src/dsl/http/versori/constants.d.ts +21 -0
- package/esm/src/dsl/http/versori/constants.d.ts.map +1 -0
- package/esm/src/dsl/http/versori/constants.js +38 -0
- package/esm/src/dsl/http/versori/cronapi.d.ts +3 -2
- package/esm/src/dsl/http/versori/cronapi.d.ts.map +1 -1
- package/esm/src/dsl/http/versori/cronapi.js +15 -14
- package/esm/src/dsl/http/versori/kvapi/core/OpenAPI.js +1 -1
- package/esm/src/dsl/triggers/WebhookTrigger.d.ts.map +1 -1
- package/esm/src/dsl/triggers/WebhookTrigger.js +1 -3
- package/esm/src/internal/constants.d.ts +0 -3
- package/esm/src/internal/constants.d.ts.map +1 -1
- package/esm/src/internal/constants.js +0 -3
- package/esm/src/interpreter/durable/DurableInterpreter.d.ts +2 -9
- package/esm/src/interpreter/durable/DurableInterpreter.d.ts.map +1 -1
- package/esm/src/interpreter/durable/DurableInterpreter.js +13 -57
- package/esm/src/interpreter/durable/ObservableCompiler.d.ts +1 -6
- package/esm/src/interpreter/durable/ObservableCompiler.d.ts.map +1 -1
- package/esm/src/interpreter/durable/Queue.d.ts +3 -0
- package/esm/src/interpreter/durable/Queue.d.ts.map +1 -1
- package/esm/src/interpreter/durable/Queue.js +1 -1
- package/esm/src/interpreter/durable/compilers/catch.d.ts.map +1 -1
- package/esm/src/interpreter/durable/compilers/catch.js +1 -3
- package/esm/src/interpreter/durable/compilers/durableworkflow.d.ts.map +1 -1
- package/esm/src/interpreter/durable/compilers/durableworkflow.js +21 -6
- package/esm/src/interpreter/durable/compilers/fn.d.ts.map +1 -1
- package/esm/src/interpreter/durable/compilers/fn.js +6 -29
- package/esm/src/interpreter/durable/compilers/http.d.ts.map +1 -1
- package/esm/src/interpreter/durable/compilers/http.js +11 -45
- package/esm/src/interpreter/durable/compilers/schedule.d.ts.map +1 -1
- package/esm/src/interpreter/durable/compilers/schedule.js +3 -4
- package/esm/src/interpreter/durable/compilers/webhook.d.ts.map +1 -1
- package/esm/src/interpreter/durable/compilers/webhook.js +0 -2
- package/esm/src/interpreter/memory/MemoryInterpreter.d.ts +1 -8
- package/esm/src/interpreter/memory/MemoryInterpreter.d.ts.map +1 -1
- package/esm/src/interpreter/memory/MemoryInterpreter.js +12 -56
- package/esm/src/interpreter/memory/ObservableCompiler.d.ts +1 -6
- package/esm/src/interpreter/memory/ObservableCompiler.d.ts.map +1 -1
- package/esm/src/interpreter/memory/compilers/catch.d.ts.map +1 -1
- package/esm/src/interpreter/memory/compilers/catch.js +0 -5
- package/esm/src/interpreter/memory/compilers/fn.d.ts.map +1 -1
- package/esm/src/interpreter/memory/compilers/fn.js +18 -29
- package/esm/src/interpreter/memory/compilers/http.d.ts.map +1 -1
- package/esm/src/interpreter/memory/compilers/http.js +10 -44
- package/esm/src/interpreter/memory/compilers/schedule.d.ts.map +1 -1
- package/esm/src/interpreter/memory/compilers/schedule.js +4 -61
- package/esm/src/interpreter/memory/compilers/webhook.d.ts.map +1 -1
- package/esm/src/interpreter/memory/compilers/webhook.js +3 -9
- package/esm/src/interpreter/vanilla/VanillaInterpreter.d.ts +0 -1
- package/esm/src/interpreter/vanilla/VanillaInterpreter.d.ts.map +1 -1
- package/esm/src/interpreter/vanilla/VanillaInterpreter.js +6 -30
- package/esm/src/interpreter/vanilla/compilers/durableworkflow.d.ts.map +1 -1
- package/esm/src/interpreter/vanilla/compilers/durableworkflow.js +12 -2
- package/esm/src/interpreter/vanilla/compilers/schedule.js +1 -1
- package/esm/src/issues/Issues.d.ts.map +1 -1
- package/esm/src/issues/Issues.js +1 -6
- package/esm/src/kv/KeyValue.d.ts +7 -3
- package/esm/src/kv/KeyValue.d.ts.map +1 -1
- package/esm/src/kv/fingerprintExternalUserId.d.ts +6 -0
- package/esm/src/kv/fingerprintExternalUserId.d.ts.map +1 -0
- package/esm/src/kv/fingerprintExternalUserId.js +20 -0
- package/esm/src/kv/memory/MemoryKeyValueProvider.d.ts +4 -0
- package/esm/src/kv/memory/MemoryKeyValueProvider.d.ts.map +1 -1
- package/esm/src/kv/memory/MemoryKeyValueProvider.js +50 -0
- package/esm/src/kv/nats/NatsKeyValueProvider.d.ts.map +1 -1
- package/esm/src/kv/nats/NatsKeyValueProvider.js +14 -0
- package/esm/src/kv/sdk/SDKKeyValueProvider.d.ts.map +1 -1
- package/esm/src/kv/sdk/SDKKeyValueProvider.js +12 -0
- package/esm/src/observability/logging/ConsoleLogger.d.ts.map +1 -1
- package/esm/src/observability/mod.d.ts +1 -0
- package/esm/src/observability/mod.d.ts.map +1 -1
- package/esm/src/observability/mod.js +1 -0
- package/esm/src/observability/tracePropagation.d.ts +23 -0
- package/esm/src/observability/tracePropagation.d.ts.map +1 -0
- package/esm/src/observability/tracePropagation.js +39 -0
- package/package.json +1 -3
- package/script/deps/jsr.io/@std/fmt/1.0.10/colors.d.ts.map +1 -0
- package/script/deps/jsr.io/@std/fmt/{1.0.9 → 1.0.10}/colors.js +2 -2
- package/script/deps/jsr.io/@std/log/0.224.14/console_handler.js +1 -1
- package/script/src/connection/internal/CredentialHolder.js +1 -1
- package/script/src/connection/internal/FetchBuilder.d.ts +2 -9
- package/script/src/connection/internal/FetchBuilder.d.ts.map +1 -1
- package/script/src/connection/internal/FetchBuilder.js +3 -147
- package/script/src/context/Context.d.ts +0 -5
- package/script/src/context/Context.d.ts.map +1 -1
- package/script/src/context/Context.js +3 -6
- package/script/src/context/VanillaContext.d.ts.map +1 -1
- package/script/src/context/VanillaContext.js +3 -0
- package/script/src/context/WorkflowClient.d.ts +1 -0
- package/script/src/context/WorkflowClient.d.ts.map +1 -1
- package/script/src/context/WorkflowClient.js +3 -0
- package/script/src/dsl/Workflow.d.ts.map +1 -1
- package/script/src/dsl/Workflow.js +0 -2
- package/script/src/dsl/http/types.d.ts +0 -2
- package/script/src/dsl/http/types.d.ts.map +1 -1
- package/script/src/dsl/http/versori/configloader.d.ts.map +1 -1
- package/script/src/dsl/http/versori/configloader.js +1 -1
- package/script/src/dsl/http/versori/constants.d.ts +21 -0
- package/script/src/dsl/http/versori/constants.d.ts.map +1 -0
- package/script/src/dsl/http/versori/constants.js +41 -0
- package/script/src/dsl/http/versori/cronapi.d.ts +3 -2
- package/script/src/dsl/http/versori/cronapi.d.ts.map +1 -1
- package/script/src/dsl/http/versori/cronapi.js +15 -14
- package/script/src/dsl/http/versori/kvapi/core/OpenAPI.js +1 -1
- package/script/src/dsl/triggers/WebhookTrigger.d.ts.map +1 -1
- package/script/src/dsl/triggers/WebhookTrigger.js +1 -3
- package/script/src/internal/constants.d.ts +0 -3
- package/script/src/internal/constants.d.ts.map +1 -1
- package/script/src/internal/constants.js +1 -4
- package/script/src/interpreter/durable/DurableInterpreter.d.ts +2 -9
- package/script/src/interpreter/durable/DurableInterpreter.d.ts.map +1 -1
- package/script/src/interpreter/durable/DurableInterpreter.js +18 -62
- package/script/src/interpreter/durable/ObservableCompiler.d.ts +1 -6
- package/script/src/interpreter/durable/ObservableCompiler.d.ts.map +1 -1
- package/script/src/interpreter/durable/Queue.d.ts +3 -0
- package/script/src/interpreter/durable/Queue.d.ts.map +1 -1
- package/script/src/interpreter/durable/Queue.js +1 -1
- package/script/src/interpreter/durable/compilers/catch.d.ts.map +1 -1
- package/script/src/interpreter/durable/compilers/catch.js +1 -3
- package/script/src/interpreter/durable/compilers/durableworkflow.d.ts.map +1 -1
- package/script/src/interpreter/durable/compilers/durableworkflow.js +21 -6
- package/script/src/interpreter/durable/compilers/fn.d.ts.map +1 -1
- package/script/src/interpreter/durable/compilers/fn.js +5 -28
- package/script/src/interpreter/durable/compilers/http.d.ts.map +1 -1
- package/script/src/interpreter/durable/compilers/http.js +11 -45
- package/script/src/interpreter/durable/compilers/schedule.d.ts.map +1 -1
- package/script/src/interpreter/durable/compilers/schedule.js +3 -4
- package/script/src/interpreter/durable/compilers/webhook.d.ts.map +1 -1
- package/script/src/interpreter/durable/compilers/webhook.js +0 -2
- package/script/src/interpreter/memory/MemoryInterpreter.d.ts +1 -8
- package/script/src/interpreter/memory/MemoryInterpreter.d.ts.map +1 -1
- package/script/src/interpreter/memory/MemoryInterpreter.js +11 -55
- package/script/src/interpreter/memory/ObservableCompiler.d.ts +1 -6
- package/script/src/interpreter/memory/ObservableCompiler.d.ts.map +1 -1
- package/script/src/interpreter/memory/compilers/catch.d.ts.map +1 -1
- package/script/src/interpreter/memory/compilers/catch.js +0 -5
- package/script/src/interpreter/memory/compilers/fn.d.ts.map +1 -1
- package/script/src/interpreter/memory/compilers/fn.js +17 -28
- package/script/src/interpreter/memory/compilers/http.d.ts.map +1 -1
- package/script/src/interpreter/memory/compilers/http.js +10 -44
- package/script/src/interpreter/memory/compilers/schedule.d.ts.map +1 -1
- package/script/src/interpreter/memory/compilers/schedule.js +4 -61
- package/script/src/interpreter/memory/compilers/webhook.d.ts.map +1 -1
- package/script/src/interpreter/memory/compilers/webhook.js +3 -9
- package/script/src/interpreter/vanilla/VanillaInterpreter.d.ts +0 -1
- package/script/src/interpreter/vanilla/VanillaInterpreter.d.ts.map +1 -1
- package/script/src/interpreter/vanilla/VanillaInterpreter.js +6 -30
- package/script/src/interpreter/vanilla/compilers/durableworkflow.d.ts.map +1 -1
- package/script/src/interpreter/vanilla/compilers/durableworkflow.js +12 -2
- package/script/src/interpreter/vanilla/compilers/schedule.js +1 -1
- package/script/src/issues/Issues.d.ts.map +1 -1
- package/script/src/issues/Issues.js +1 -6
- package/script/src/kv/KeyValue.d.ts +7 -3
- package/script/src/kv/KeyValue.d.ts.map +1 -1
- package/script/src/kv/fingerprintExternalUserId.d.ts +6 -0
- package/script/src/kv/fingerprintExternalUserId.d.ts.map +1 -0
- package/script/src/kv/fingerprintExternalUserId.js +23 -0
- package/script/src/kv/memory/MemoryKeyValueProvider.d.ts +4 -0
- package/script/src/kv/memory/MemoryKeyValueProvider.d.ts.map +1 -1
- package/script/src/kv/memory/MemoryKeyValueProvider.js +50 -0
- package/script/src/kv/nats/NatsKeyValueProvider.d.ts.map +1 -1
- package/script/src/kv/nats/NatsKeyValueProvider.js +14 -0
- package/script/src/kv/sdk/SDKKeyValueProvider.d.ts.map +1 -1
- package/script/src/kv/sdk/SDKKeyValueProvider.js +12 -0
- package/script/src/observability/logging/ConsoleLogger.d.ts.map +1 -1
- package/script/src/observability/mod.d.ts +1 -0
- package/script/src/observability/mod.d.ts.map +1 -1
- package/script/src/observability/mod.js +1 -0
- package/script/src/observability/tracePropagation.d.ts +23 -0
- package/script/src/observability/tracePropagation.d.ts.map +1 -0
- package/script/src/observability/tracePropagation.js +46 -0
- package/esm/deps/jsr.io/@std/fmt/1.0.9/colors.d.ts.map +0 -1
- package/esm/src/internal/supervisor.d.ts +0 -23
- package/esm/src/internal/supervisor.d.ts.map +0 -1
- package/esm/src/internal/supervisor.js +0 -267
- package/script/deps/jsr.io/@std/fmt/1.0.9/colors.d.ts.map +0 -1
- package/script/src/internal/supervisor.d.ts +0 -23
- package/script/src/internal/supervisor.d.ts.map +0 -1
- package/script/src/internal/supervisor.js +0 -275
- /package/esm/deps/jsr.io/@std/fmt/{1.0.9 → 1.0.10}/colors.d.ts +0 -0
- /package/script/deps/jsr.io/@std/fmt/{1.0.9 → 1.0.10}/colors.d.ts +0 -0
|
@@ -10,10 +10,9 @@
|
|
|
10
10
|
* As of the Change Date, in accordance with the Business Source License,
|
|
11
11
|
* use of this software will be governed by the Apache License, Version 2.0.
|
|
12
12
|
*/
|
|
13
|
-
import { cronPort,
|
|
14
|
-
import { enabled as supervisorEnabled } from '../../../internal/supervisor.js';
|
|
13
|
+
import { cronPort, envVarCronApiBaseURL, envVarEnvId, envVarEnvironmentName, envVarLocalRun, envVarOrgSlug, envVarProjectId, envVarSelfRefURL, } from './constants.js';
|
|
15
14
|
export class CronAPIClient {
|
|
16
|
-
constructor(envId, integrationUrl
|
|
15
|
+
constructor(baseUrl, envId, integrationUrl) {
|
|
17
16
|
Object.defineProperty(this, "baseUrl", {
|
|
18
17
|
enumerable: true,
|
|
19
18
|
configurable: true,
|
|
@@ -32,22 +31,30 @@ export class CronAPIClient {
|
|
|
32
31
|
writable: true,
|
|
33
32
|
value: void 0
|
|
34
33
|
});
|
|
34
|
+
Object.defineProperty(this, "runLocal", {
|
|
35
|
+
enumerable: true,
|
|
36
|
+
configurable: true,
|
|
37
|
+
writable: true,
|
|
38
|
+
value: void 0
|
|
39
|
+
});
|
|
35
40
|
this.baseUrl = baseUrl;
|
|
36
41
|
this.envId = envId;
|
|
37
42
|
this.integrationUrl = integrationUrl;
|
|
43
|
+
this.runLocal = Deno.env.get(envVarLocalRun) === 'true';
|
|
38
44
|
}
|
|
39
45
|
static fromEnv() {
|
|
40
|
-
const baseUrl = Deno.env.get(envVarCronApiBaseURL)
|
|
46
|
+
const baseUrl = Deno.env.get(envVarCronApiBaseURL) ||
|
|
47
|
+
'http://cron-api.platform.svc.cluster.local';
|
|
41
48
|
const envId = Deno.env.get(envVarEnvId);
|
|
42
49
|
const projectId = Deno.env.get(envVarProjectId);
|
|
43
50
|
const orgSlug = Deno.env.get(envVarOrgSlug);
|
|
44
51
|
const envName = Deno.env.get(envVarEnvironmentName);
|
|
45
|
-
if (!envId || !projectId || !orgSlug || !envName) {
|
|
52
|
+
if (!baseUrl || !envId || !projectId || !orgSlug || !envName) {
|
|
46
53
|
throw new Error('Missing required environment variables');
|
|
47
54
|
}
|
|
48
55
|
const integrationUrl = Deno.env.get(envVarSelfRefURL) ||
|
|
49
56
|
`http://svc-${projectId.toLowerCase()}-${envName.toLowerCase()}.sb-${orgSlug.toLowerCase()}.svc.cluster.local:${cronPort}`;
|
|
50
|
-
return new CronAPIClient(envId, this.addDefaultCronPort(integrationUrl)
|
|
57
|
+
return new CronAPIClient(baseUrl, envId, this.addDefaultCronPort(integrationUrl));
|
|
51
58
|
}
|
|
52
59
|
// Check if the URL has a port, if not, add the default cron port.
|
|
53
60
|
static addDefaultCronPort(url) {
|
|
@@ -68,13 +75,7 @@ export class CronAPIClient {
|
|
|
68
75
|
schedule,
|
|
69
76
|
url: this.makeCronPath(name),
|
|
70
77
|
}));
|
|
71
|
-
if (
|
|
72
|
-
// if we are in supervised mode we don't want to do run crons automatically
|
|
73
|
-
return;
|
|
74
|
-
}
|
|
75
|
-
if (!this.baseUrl) {
|
|
76
|
-
// we are no in supervised mode and there is no base URL
|
|
77
|
-
// run for local dev
|
|
78
|
+
if (this.runLocal) {
|
|
78
79
|
this.runLocalFn(cronsArray);
|
|
79
80
|
return;
|
|
80
81
|
}
|
|
@@ -93,7 +94,7 @@ export class CronAPIClient {
|
|
|
93
94
|
if (crons.length === 0) {
|
|
94
95
|
return;
|
|
95
96
|
}
|
|
96
|
-
const cronPort = Deno.env.get(
|
|
97
|
+
const cronPort = Deno.env.get('CRON_PORT') || '3001';
|
|
97
98
|
console.log('----------------------------------------');
|
|
98
99
|
console.log('Running in local mode, your scheduler workflows will not trigger automatically.');
|
|
99
100
|
console.log('Instead you can trigger them by sending a request to the following URLs:');
|
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
/* istanbul ignore file */
|
|
14
14
|
/* tslint:disable */
|
|
15
15
|
/* eslint-disable */
|
|
16
|
-
import { envVarSDKApiBaseURL } from '
|
|
16
|
+
import { envVarSDKApiBaseURL } from '../../constants.js';
|
|
17
17
|
export const OpenAPI = {
|
|
18
18
|
BASE: Deno.env.get(envVarSDKApiBaseURL) || 'http://localhost:8902',
|
|
19
19
|
VERSION: '1.0.0',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WebhookTrigger.d.ts","sourceRoot":"","sources":["../../../../src/src/dsl/triggers/WebhookTrigger.ts"],"names":[],"mappings":"AAaA,OAAO,EAAE,OAAO,EAAE,MAAM,0BAA0B,CAAC;AAEnD,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AACrD,OAAO,EAAE,QAAQ,EAAgB,MAAM,gBAAgB,CAAC;AAExD;;;GAGG;AACH,MAAM,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;AAEhD;;;GAGG;AACH,MAAM,MAAM,kBAAkB,GAAG,OAAO,GAAG;IACvC;;OAEG;IACH,MAAM,EAAE,MAAM,CAAC;IAEf;;OAEG;IACH,OAAO,EAAE,MAAM,EAAE,CAAC;IAElB;;OAEG;IACH,cAAc,EAAE,MAAM,EAAE,CAAC;IAEzB;;OAEG;IACH,cAAc,EAAE,MAAM,EAAE,CAAC;IAEzB;;OAEG;IACH,WAAW,EAAE,OAAO,CAAC;CACxB,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,qBAAqB,GAAG;IAChC;;;;OAIG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;CACrB,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,sBAAsB,GAAG;IACjC;;;;;;;;OAQG;IACH,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;IAExB;;;;;;;OAOG;IACH,SAAS,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC,CAAC,KAAK,QAAQ,CAAC;IAE7C;;;;;;;OAOG;IACH,OAAO,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC,CAAC,KAAK,QAAQ,CAAC;CAC9C,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,cAAc,GAAG;IACzB;;OAEG;IACH,IAAI,CAAC,EAAE,kBAAkB,CAAC;IAE1B;;OAEG;IACH,QAAQ,CAAC,EAAE,sBAAsB,CAAC;IAElC;;OAEG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB;;OAEG;IACH,MAAM,CAAC,EAAE,KAAK,GAAG,KAAK,GAAG,MAAM,GAAG,KAAK,GAAG,QAAQ,GAAG,OAAO,GAAG,SAAS,GAAG,MAAM,CAAC;IAElF;;OAEG;IACH,OAAO,CAAC,EAAE,qBAAqB,CAAC;CACnC,CAAC;AAEF,qBAAa,cAAe,YAAW,OAAO,CAAC,WAAW,CAAC;IACvD,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,cAAc,CAAC;IAExB,CAAC,WAAW,CAAC,EAAE,MAAM,CAAa;gBAEtB,EAAE,EAAE,MAAM,EAAE,OAAO,GAAE,cAAmB;
|
|
1
|
+
{"version":3,"file":"WebhookTrigger.d.ts","sourceRoot":"","sources":["../../../../src/src/dsl/triggers/WebhookTrigger.ts"],"names":[],"mappings":"AAaA,OAAO,EAAE,OAAO,EAAE,MAAM,0BAA0B,CAAC;AAEnD,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AACrD,OAAO,EAAE,QAAQ,EAAgB,MAAM,gBAAgB,CAAC;AAExD;;;GAGG;AACH,MAAM,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;AAEhD;;;GAGG;AACH,MAAM,MAAM,kBAAkB,GAAG,OAAO,GAAG;IACvC;;OAEG;IACH,MAAM,EAAE,MAAM,CAAC;IAEf;;OAEG;IACH,OAAO,EAAE,MAAM,EAAE,CAAC;IAElB;;OAEG;IACH,cAAc,EAAE,MAAM,EAAE,CAAC;IAEzB;;OAEG;IACH,cAAc,EAAE,MAAM,EAAE,CAAC;IAEzB;;OAEG;IACH,WAAW,EAAE,OAAO,CAAC;CACxB,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,qBAAqB,GAAG;IAChC;;;;OAIG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;CACrB,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,sBAAsB,GAAG;IACjC;;;;;;;;OAQG;IACH,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;IAExB;;;;;;;OAOG;IACH,SAAS,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC,CAAC,KAAK,QAAQ,CAAC;IAE7C;;;;;;;OAOG;IACH,OAAO,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC,CAAC,KAAK,QAAQ,CAAC;CAC9C,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,cAAc,GAAG;IACzB;;OAEG;IACH,IAAI,CAAC,EAAE,kBAAkB,CAAC;IAE1B;;OAEG;IACH,QAAQ,CAAC,EAAE,sBAAsB,CAAC;IAElC;;OAEG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB;;OAEG;IACH,MAAM,CAAC,EAAE,KAAK,GAAG,KAAK,GAAG,MAAM,GAAG,KAAK,GAAG,QAAQ,GAAG,OAAO,GAAG,SAAS,GAAG,MAAM,CAAC;IAElF;;OAEG;IACH,OAAO,CAAC,EAAE,qBAAqB,CAAC;CACnC,CAAC;AAEF,qBAAa,cAAe,YAAW,OAAO,CAAC,WAAW,CAAC;IACvD,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,cAAc,CAAC;IAExB,CAAC,WAAW,CAAC,EAAE,MAAM,CAAa;gBAEtB,EAAE,EAAE,MAAM,EAAE,OAAO,GAAE,cAAmB;IAKpD,IAAI,CAAC,EAAE,EAAE,IAAI,EAAE,QAAQ,CAAC,WAAW,EAAE,EAAE,CAAC,GAAG,QAAQ,CAAC,EAAE,CAAC;CAG1D;AAED;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,OAAO,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,WAAW,CAAC,CAElF"}
|
|
@@ -36,11 +36,9 @@ export class WebhookTrigger {
|
|
|
36
36
|
});
|
|
37
37
|
this.id = id;
|
|
38
38
|
this.options = options;
|
|
39
|
-
this.then = this.then.bind(this);
|
|
40
39
|
}
|
|
41
40
|
then(task) {
|
|
42
|
-
|
|
43
|
-
return new WorkflowImpl(this, actualTask);
|
|
41
|
+
return new WorkflowImpl(this, ensureTask(task));
|
|
44
42
|
}
|
|
45
43
|
}
|
|
46
44
|
_a = TriggerType;
|
|
@@ -10,9 +10,6 @@ export declare const envVarSelfRefURL = "RUN_SELF_REF_URL";
|
|
|
10
10
|
export declare const envVarCredsBaseURL = "RUN_CREDENTIALS_SERVICE_INTERNAL_URL";
|
|
11
11
|
export declare const envVarOtelTracesURL = "RUN_OTEL_TRACES_URL";
|
|
12
12
|
export declare const envVarVersion = "RUN_SERVICE_VERSION";
|
|
13
|
-
export declare const envReadyCheckURL = "READY_CHECK_URL";
|
|
14
|
-
export declare const envPort = "PORT";
|
|
15
|
-
export declare const envCronPort = "CRON_PORT";
|
|
16
13
|
export declare const envVarConfigFile = "RUN_CONFIG_FILE";
|
|
17
14
|
export declare const envVarClientId = "RUN_CLIENT_ID";
|
|
18
15
|
export declare const envVarClientSecret = "RUN_CLIENT_SECRET";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../src/src/internal/constants.ts"],"names":[],"mappings":"AAcA,eAAO,MAAM,WAAW,wBAAwB,CAAC;AACjD,eAAO,MAAM,WAAW,uBAAuB,CAAC;AAChD,eAAO,MAAM,qBAAqB,oBAAoB,CAAC;AACvD,eAAO,MAAM,eAAe,mBAAmB,CAAC;AAChD,eAAO,MAAM,aAAa,0BAA0B,CAAC;AACrD,eAAO,MAAM,wBAAwB,kCAAkC,CAAC;AACxE,eAAO,MAAM,oBAAoB,8BAA8B,CAAC;AAChE,eAAO,MAAM,mBAAmB,oBAAoB,CAAC;AACrD,eAAO,MAAM,gBAAgB,qBAAqB,CAAC;AACnD,eAAO,MAAM,kBAAkB,yCAAyC,CAAC;AACzE,eAAO,MAAM,mBAAmB,wBAAwB,CAAC;AACzD,eAAO,MAAM,aAAa,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../src/src/internal/constants.ts"],"names":[],"mappings":"AAcA,eAAO,MAAM,WAAW,wBAAwB,CAAC;AACjD,eAAO,MAAM,WAAW,uBAAuB,CAAC;AAChD,eAAO,MAAM,qBAAqB,oBAAoB,CAAC;AACvD,eAAO,MAAM,eAAe,mBAAmB,CAAC;AAChD,eAAO,MAAM,aAAa,0BAA0B,CAAC;AACrD,eAAO,MAAM,wBAAwB,kCAAkC,CAAC;AACxE,eAAO,MAAM,oBAAoB,8BAA8B,CAAC;AAChE,eAAO,MAAM,mBAAmB,oBAAoB,CAAC;AACrD,eAAO,MAAM,gBAAgB,qBAAqB,CAAC;AACnD,eAAO,MAAM,kBAAkB,yCAAyC,CAAC;AACzE,eAAO,MAAM,mBAAmB,wBAAwB,CAAC;AACzD,eAAO,MAAM,aAAa,wBAAwB,CAAC;AAEnD,eAAO,MAAM,gBAAgB,oBAAoB,CAAC;AAGlD,eAAO,MAAM,cAAc,kBAAkB,CAAC;AAC9C,eAAO,MAAM,kBAAkB,sBAAsB,CAAC;AACtD,eAAO,MAAM,mBAAmB,uBAAuB,CAAC;AACxD,eAAO,MAAM,mBAAmB,uBAAuB,CAAC;AACxD,eAAO,MAAM,SAAS,oBAAoB,CAAC;AAG3C,eAAO,MAAM,cAAc,cAAc,CAAC;AAG1C,eAAO,MAAM,QAAQ,OAAO,CAAC"}
|
|
@@ -23,9 +23,6 @@ export const envVarSelfRefURL = 'RUN_SELF_REF_URL';
|
|
|
23
23
|
export const envVarCredsBaseURL = 'RUN_CREDENTIALS_SERVICE_INTERNAL_URL';
|
|
24
24
|
export const envVarOtelTracesURL = 'RUN_OTEL_TRACES_URL';
|
|
25
25
|
export const envVarVersion = 'RUN_SERVICE_VERSION';
|
|
26
|
-
export const envReadyCheckURL = 'READY_CHECK_URL';
|
|
27
|
-
export const envPort = 'PORT';
|
|
28
|
-
export const envCronPort = 'CRON_PORT';
|
|
29
26
|
// The following environment variables are used for the config file
|
|
30
27
|
export const envVarConfigFile = 'RUN_CONFIG_FILE';
|
|
31
28
|
// The following environment variables are used for internal authentication
|
|
@@ -46,11 +46,6 @@ type Registration = {
|
|
|
46
46
|
sigintListener: () => void;
|
|
47
47
|
subscription?: Subscription;
|
|
48
48
|
};
|
|
49
|
-
type WebhookRegistry = Map<string, {
|
|
50
|
-
method: string;
|
|
51
|
-
path: string;
|
|
52
|
-
options: any;
|
|
53
|
-
}>;
|
|
54
49
|
/**
|
|
55
50
|
* DurableInterpreter is an interpreter for executing Versori workflows with support for durable, queue-based workflow
|
|
56
51
|
* execution. It supports all trigger types including the {@link workflow} trigger which allows workflows to be started
|
|
@@ -81,8 +76,7 @@ export declare class DurableInterpreter {
|
|
|
81
76
|
private readonly contextProvider;
|
|
82
77
|
private readonly webhookRouter;
|
|
83
78
|
private readonly cronRouter;
|
|
84
|
-
private cronRegistry;
|
|
85
|
-
private webhookRegistry;
|
|
79
|
+
private readonly cronRegistry;
|
|
86
80
|
private readonly platformApi;
|
|
87
81
|
private readonly cnxFetchFactory;
|
|
88
82
|
private readonly cronProvider;
|
|
@@ -96,8 +90,7 @@ export declare class DurableInterpreter {
|
|
|
96
90
|
private cronServer?;
|
|
97
91
|
private shutdownServer?;
|
|
98
92
|
private isShuttingDown;
|
|
99
|
-
|
|
100
|
-
constructor(log: Logger, compiler: ObservableCompiler, contextProvider: ContextProvider, webhookRouter: Router, cronRouter: Router, cronRegistry: Map<string, string>, webhookRegistry: WebhookRegistry, platformApi: PlatformApi, cnxFetchFactory: DirectConnectionFactory, cronProvider: CronProvider, tracer: Tracer, issue: IssueAPI, cfgReader: ConfigReader, queueProvider: QueueAPI, otelSDK?: NodeSDK | undefined);
|
|
93
|
+
constructor(log: Logger, compiler: ObservableCompiler, contextProvider: ContextProvider, webhookRouter: Router, cronRouter: Router, cronRegistry: Map<string, string>, platformApi: PlatformApi, cnxFetchFactory: DirectConnectionFactory, cronProvider: CronProvider, tracer: Tracer, issue: IssueAPI, cfgReader: ConfigReader, queueProvider: QueueAPI, otelSDK?: NodeSDK | undefined);
|
|
101
94
|
static newInstance(options?: DurableInterpreterOptions): Promise<DurableInterpreter>;
|
|
102
95
|
register<O>(workflow: Workflow<O>, options?: DurableInterpreterOptions): Registration;
|
|
103
96
|
start(): Promise<void>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DurableInterpreter.d.ts","sourceRoot":"","sources":["../../../../src/src/interpreter/durable/DurableInterpreter.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"DurableInterpreter.d.ts","sourceRoot":"","sources":["../../../../src/src/interpreter/durable/DurableInterpreter.ts"],"names":[],"mappings":"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"}
|
|
@@ -20,10 +20,9 @@ import { CredentialsProviderImpl } from '../../connection/CredentialsProvider.js
|
|
|
20
20
|
import { DirectConnectionFactory } from '../../connection/DirectConnectionFactory.js';
|
|
21
21
|
import { ContextProviderImpl } from '../../context/ContextProvider.js';
|
|
22
22
|
import { VersoriConfigReader } from '../../dsl/http/versori/configloader.js';
|
|
23
|
+
import { envVarEnvId, envVarEnvironmentName, envVarLocalRun, envVarOrgId, envVarOrgSlug, envVarOtelTracesURL, envVarProjectId, envVarVersion, } from '../../dsl/http/versori/constants.js';
|
|
23
24
|
import { CronAPIClient } from '../../dsl/http/versori/cronapi.js';
|
|
24
25
|
import { WorkflowImpl } from '../../dsl/Workflow.js';
|
|
25
|
-
import { envCronPort, envPort, envReadyCheckURL, envVarEnvId, envVarEnvironmentName, envVarOrgId, envVarOrgSlug, envVarOtelTracesURL, envVarProjectId, envVarVersion, } from '../../internal/constants.js';
|
|
26
|
-
import { Fake, registerWorkflow, signalReady, enabled as supervisorEnabled } from '../../internal/supervisor.js';
|
|
27
26
|
import { IssueImpl } from '../../issues/Issues.js';
|
|
28
27
|
import { MemoryKeyValueProvider } from '../../kv/memory/MemoryKeyValueProvider.js';
|
|
29
28
|
import { SDKKeyValueProvider } from '../../kv/sdk/SDKKeyValueProvider.js';
|
|
@@ -31,8 +30,8 @@ import { ConsoleLogger } from '../../observability/logging/ConsoleLogger.js';
|
|
|
31
30
|
import { PlatformApiImpl } from '../../services/platform/PlatformApi.js';
|
|
32
31
|
import { ObservableCompiler } from './ObservableCompiler.js';
|
|
33
32
|
import { QueueImpl } from './Queue.js';
|
|
34
|
-
function getKVProvider() {
|
|
35
|
-
if (
|
|
33
|
+
function getKVProvider(runLocal) {
|
|
34
|
+
if (runLocal) {
|
|
36
35
|
return Promise.resolve(new MemoryKeyValueProvider());
|
|
37
36
|
}
|
|
38
37
|
return SDKKeyValueProvider.fromEnv();
|
|
@@ -62,7 +61,7 @@ function getKVProvider() {
|
|
|
62
61
|
* ```
|
|
63
62
|
*/
|
|
64
63
|
export class DurableInterpreter {
|
|
65
|
-
constructor(log, compiler, contextProvider, webhookRouter, cronRouter, cronRegistry,
|
|
64
|
+
constructor(log, compiler, contextProvider, webhookRouter, cronRouter, cronRegistry, platformApi, cnxFetchFactory, cronProvider, tracer, issue, cfgReader, queueProvider, otelSDK) {
|
|
66
65
|
Object.defineProperty(this, "log", {
|
|
67
66
|
enumerable: true,
|
|
68
67
|
configurable: true,
|
|
@@ -99,12 +98,6 @@ export class DurableInterpreter {
|
|
|
99
98
|
writable: true,
|
|
100
99
|
value: cronRegistry
|
|
101
100
|
});
|
|
102
|
-
Object.defineProperty(this, "webhookRegistry", {
|
|
103
|
-
enumerable: true,
|
|
104
|
-
configurable: true,
|
|
105
|
-
writable: true,
|
|
106
|
-
value: webhookRegistry
|
|
107
|
-
});
|
|
108
101
|
Object.defineProperty(this, "platformApi", {
|
|
109
102
|
enumerable: true,
|
|
110
103
|
configurable: true,
|
|
@@ -183,13 +176,6 @@ export class DurableInterpreter {
|
|
|
183
176
|
writable: true,
|
|
184
177
|
value: false
|
|
185
178
|
});
|
|
186
|
-
// Workflow registration promises only used when supervisor is enabled
|
|
187
|
-
Object.defineProperty(this, "wfRegistration", {
|
|
188
|
-
enumerable: true,
|
|
189
|
-
configurable: true,
|
|
190
|
-
writable: true,
|
|
191
|
-
value: []
|
|
192
|
-
});
|
|
193
179
|
if (typeof this.log === 'undefined') {
|
|
194
180
|
// this captures the old way of instantiating the DurableInterpreter and provides an
|
|
195
181
|
// error message back to the user to let them know they should use the new way.
|
|
@@ -208,6 +194,7 @@ export class DurableInterpreter {
|
|
|
208
194
|
const otelTracesURL = Deno.env.get(envVarOtelTracesURL);
|
|
209
195
|
let otelSDK;
|
|
210
196
|
const configReader = VersoriConfigReader.fromEnv(log);
|
|
197
|
+
const runLocal = Deno.env.get(envVarLocalRun) === 'true';
|
|
211
198
|
await waitForReady(log);
|
|
212
199
|
// Do NOT change those attributes, they are used by the API to filter on
|
|
213
200
|
const resource = resourceFromAttributes({
|
|
@@ -229,15 +216,6 @@ export class DurableInterpreter {
|
|
|
229
216
|
log.info('Starting OpenTelemetry SDK');
|
|
230
217
|
otelSDK.start();
|
|
231
218
|
}
|
|
232
|
-
else if (supervisorEnabled) {
|
|
233
|
-
otelSDK = new NodeSDK({
|
|
234
|
-
traceExporter: new Fake(),
|
|
235
|
-
serviceName: serviceName,
|
|
236
|
-
resource: resource,
|
|
237
|
-
});
|
|
238
|
-
log.info('Starting Testing OpenTelemetry SDK');
|
|
239
|
-
otelSDK.start();
|
|
240
|
-
}
|
|
241
219
|
const tracer = opentelemetry.trace.getTracer(serviceName, version);
|
|
242
220
|
const queueProvider = await QueueImpl.fromEnv(log);
|
|
243
221
|
const connectionFactory = DirectConnectionFactory.fromEnv(log);
|
|
@@ -245,14 +223,14 @@ export class DurableInterpreter {
|
|
|
245
223
|
if (options.contextProvider) {
|
|
246
224
|
// no need to set up a key-value provider if options.contextProvider is already
|
|
247
225
|
// initialised.
|
|
248
|
-
return new DurableInterpreter(log, compiler, options.contextProvider, express.Router(), express.Router(), new Map(),
|
|
226
|
+
return new DurableInterpreter(log, compiler, options.contextProvider, express.Router(), express.Router(), new Map(), PlatformApiImpl.fromEnv(), connectionFactory, CronAPIClient.fromEnv(), tracer, issuesProvider, configReader, queueProvider, otelSDK);
|
|
249
227
|
}
|
|
250
|
-
const kvp = await getKVProvider();
|
|
228
|
+
const kvp = await getKVProvider(runLocal);
|
|
251
229
|
const platformApi = PlatformApiImpl.fromEnv();
|
|
252
230
|
const organisationId = Deno.env.get(envVarOrgId) || 'development';
|
|
253
231
|
const environmentId = Deno.env.get(envVarEnvId) || 'development';
|
|
254
232
|
const ctxProvider = new ContextProviderImpl(log, kvp, new CredentialsProviderImpl(connectionFactory.credentials, connectionFactory.tokens, connectionFactory.oauth1, configReader, platformApi), platformApi, organisationId, environmentId, issuesProvider, queueProvider);
|
|
255
|
-
return new DurableInterpreter(log, compiler, ctxProvider, express.Router(), express.Router(), new Map(),
|
|
233
|
+
return new DurableInterpreter(log, compiler, ctxProvider, express.Router(), express.Router(), new Map(), PlatformApiImpl.fromEnv(), connectionFactory, CronAPIClient.fromEnv(), tracer, issuesProvider, configReader, queueProvider, otelSDK);
|
|
256
234
|
}
|
|
257
235
|
register(workflow, options) {
|
|
258
236
|
const localAbortController = new AbortController();
|
|
@@ -272,7 +250,6 @@ export class DurableInterpreter {
|
|
|
272
250
|
tracer: this.tracer,
|
|
273
251
|
contextProvider: this.contextProvider,
|
|
274
252
|
webhookRouter: this.webhookRouter,
|
|
275
|
-
webhookRegistry: this.webhookRegistry,
|
|
276
253
|
queueProvider: this.queueProvider,
|
|
277
254
|
cronRouter: this.cronRouter,
|
|
278
255
|
cronRegistry: this.cronRegistry,
|
|
@@ -295,14 +272,11 @@ export class DurableInterpreter {
|
|
|
295
272
|
},
|
|
296
273
|
};
|
|
297
274
|
this.registeredWorkflows.push(registration);
|
|
298
|
-
if (supervisorEnabled) {
|
|
299
|
-
this.wfRegistration.push(registerWorkflow(workflow));
|
|
300
|
-
}
|
|
301
275
|
return registration;
|
|
302
276
|
}
|
|
303
|
-
|
|
304
|
-
const port = Deno.env.get(
|
|
305
|
-
const cronPort = Deno.env.get(
|
|
277
|
+
start() {
|
|
278
|
+
const port = Deno.env.get('PORT') || 3000;
|
|
279
|
+
const cronPort = Deno.env.get('CRON_PORT') || 3001;
|
|
306
280
|
const webhookApp = express();
|
|
307
281
|
const cronApp = express();
|
|
308
282
|
cronApp.use(express.json());
|
|
@@ -329,18 +303,11 @@ export class DurableInterpreter {
|
|
|
329
303
|
triggerName: registration.triggerName,
|
|
330
304
|
error: err instanceof Error ? err.toString() : err,
|
|
331
305
|
});
|
|
332
|
-
this.tracer.startActiveSpan('done', (span) => {
|
|
333
|
-
span.setAttribute('error.message', err instanceof Error ? err.toString() : err);
|
|
334
|
-
span.setAttribute('execution.id', ctx.executionId);
|
|
335
|
-
span.setAttribute('result', 'fail');
|
|
336
|
-
span.setAttribute('workflow.id', ctx.workflowId || 'unknown-workflow');
|
|
337
|
-
span.end();
|
|
338
|
-
});
|
|
339
306
|
try {
|
|
340
307
|
ctx.options.onError?.(ctx.withData(err));
|
|
341
308
|
}
|
|
342
309
|
catch (err) {
|
|
343
|
-
ctx.log.error('DurableInterpreter.
|
|
310
|
+
ctx.log.error('DurableInterpreter.onErrorError: failed to call onError handler', {
|
|
344
311
|
triggerName: registration.triggerName,
|
|
345
312
|
error: err instanceof Error ? err.toString() : err,
|
|
346
313
|
});
|
|
@@ -358,12 +325,6 @@ export class DurableInterpreter {
|
|
|
358
325
|
triggerName: registration.triggerName,
|
|
359
326
|
durationMs,
|
|
360
327
|
});
|
|
361
|
-
this.tracer.startActiveSpan('done', (span) => {
|
|
362
|
-
span.setAttribute('execution.id', ctx.executionId);
|
|
363
|
-
span.setAttribute('result', 'pass');
|
|
364
|
-
span.setAttribute('workflow.id', ctx.workflowId || 'unknown-workflow');
|
|
365
|
-
span.end();
|
|
366
|
-
});
|
|
367
328
|
try {
|
|
368
329
|
ctx.options.onSuccess?.(ctx);
|
|
369
330
|
}
|
|
@@ -425,7 +386,6 @@ export class DurableInterpreter {
|
|
|
425
386
|
if (this.cronServer) {
|
|
426
387
|
this.cronServer.close();
|
|
427
388
|
}
|
|
428
|
-
this.otelSDK?.shutdown();
|
|
429
389
|
// Remove all signal listeners
|
|
430
390
|
for (const registration of this.registeredWorkflows) {
|
|
431
391
|
Deno.removeSignalListener('SIGINT', registration.sigintListener);
|
|
@@ -442,10 +402,6 @@ export class DurableInterpreter {
|
|
|
442
402
|
}
|
|
443
403
|
};
|
|
444
404
|
Deno.addSignalListener('SIGINT', this.shutdownServer);
|
|
445
|
-
if (supervisorEnabled) {
|
|
446
|
-
await Promise.all(this.wfRegistration);
|
|
447
|
-
await signalReady();
|
|
448
|
-
}
|
|
449
405
|
return new Promise((resolve) => {
|
|
450
406
|
let serversClosed = 0;
|
|
451
407
|
const totalServers = [this.webhookServer, this.cronServer].filter(Boolean).length;
|
|
@@ -482,7 +438,7 @@ export class DurableInterpreter {
|
|
|
482
438
|
}
|
|
483
439
|
}
|
|
484
440
|
async function waitForReady(log) {
|
|
485
|
-
const readyCheckUrl = Deno.env.get(
|
|
441
|
+
const readyCheckUrl = Deno.env.get('READY_CHECK_URL');
|
|
486
442
|
if (!readyCheckUrl) {
|
|
487
443
|
return Promise.resolve();
|
|
488
444
|
}
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import { Tracer } from '@opentelemetry/api';
|
|
2
2
|
import { Router } from 'express';
|
|
3
3
|
import { Observable, OperatorFunction } from 'rxjs';
|
|
4
|
-
import { ConnectionFactory } from '../../connection/types.js';
|
|
5
4
|
import { ContextImpl } from '../../context/Context.js';
|
|
6
5
|
import { ContextProvider } from '../../context/ContextProvider.js';
|
|
7
6
|
import { ConfigReader } from '../../dsl/http/types.js';
|
|
@@ -12,6 +11,7 @@ import { Logger } from '../../observability/logging/Logger.js';
|
|
|
12
11
|
import { PlatformApi } from '../../services/platform/mod.js';
|
|
13
12
|
import { ContextOperatorFunction, TaskCompiler, TriggerCompiler } from './compilers/types.js';
|
|
14
13
|
import { QueueAPI } from './Queue.js';
|
|
14
|
+
import { ConnectionFactory } from '../../connection/types.js';
|
|
15
15
|
export type DurableCompilerContext = {
|
|
16
16
|
compiler: ObservableCompiler;
|
|
17
17
|
log: Logger;
|
|
@@ -22,11 +22,6 @@ export type DurableCompilerContext = {
|
|
|
22
22
|
queueProvider: QueueAPI;
|
|
23
23
|
issueProvider: IssueAPI;
|
|
24
24
|
webhookRouter: Router;
|
|
25
|
-
webhookRegistry: Map<string, {
|
|
26
|
-
method: string;
|
|
27
|
-
path: string;
|
|
28
|
-
options: any;
|
|
29
|
-
}>;
|
|
30
25
|
cronRouter: Router;
|
|
31
26
|
configReader: ConfigReader;
|
|
32
27
|
cronRegistry: Map<string, string>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ObservableCompiler.d.ts","sourceRoot":"","sources":["../../../../src/src/interpreter/durable/ObservableCompiler.ts"],"names":[],"mappings":"AAaA,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAC5C,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACjC,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,MAAM,CAAC;AACpD,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"ObservableCompiler.d.ts","sourceRoot":"","sources":["../../../../src/src/interpreter/durable/ObservableCompiler.ts"],"names":[],"mappings":"AAaA,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAC5C,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACjC,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,MAAM,CAAC;AACpD,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AACvD,OAAO,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AACnE,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACvD,OAAO,EAAE,IAAI,EAAY,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAE,OAAO,EAAe,MAAM,sBAAsB,CAAC;AAC5D,OAAO,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAClD,OAAO,EAAE,MAAM,EAAE,MAAM,uCAAuC,CAAC;AAC/D,OAAO,EAAE,WAAW,EAAE,MAAM,gCAAgC,CAAC;AAU7D,OAAO,EAAE,uBAAuB,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAG9F,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAE9D,MAAM,MAAM,sBAAsB,GAAG;IACjC,QAAQ,EAAE,kBAAkB,CAAC;IAC7B,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;IACf,eAAe,EAAE,eAAe,CAAC;IACjC,UAAU,EAAE,iBAAiB,CAAC;IAC9B,WAAW,EAAE,WAAW,CAAC;IACzB,aAAa,EAAE,QAAQ,CAAC;IACxB,aAAa,EAAE,QAAQ,CAAC;IACxB,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,YAAY,CAAC;IAC3B,YAAY,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAClC,cAAc,EAAE,MAAM,CAAC;CAC1B,CAAC;AAEF,MAAM,MAAM,YAAY,CAAC,EAAE,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,EAAE,CAAC,SAAS,IAAI,CAAC,EAAE,EAAE,GAAG,CAAC,GAAG,IAAI,CAAC,EAAE,EAAE,GAAG,CAAC,IAAI,CACrF,GAAG,EAAE,sBAAsB,EAC3B,IAAI,EAAE,CAAC,KACN,gBAAgB,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;AAE/B,qBAAa,kBAAkB;IAC3B,OAAO,CAAC,aAAa,CAAkD;IACvE,OAAO,CAAC,gBAAgB,CAAgD;;IAkBxE,WAAW,CAAC,EAAE,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,EAAE,KAAK,GAAG,IAAI,EACzC,GAAG,EAAE,sBAAsB,EAC3B,IAAI,EAAE,IAAI,CAAC,EAAE,EAAE,GAAG,CAAC,GACpB,uBAAuB,CAAC,EAAE,EAAE,GAAG,EAAE,KAAK,CAAC;IAe1C,cAAc,CAAC,GAAG,GAAG,GAAG,EAAE,CAAC,SAAS,OAAO,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC,EAC3D,GAAG,EAAE,sBAAsB,EAC3B,OAAO,EAAE,CAAC,EACV,MAAM,EAAE,WAAW,GACpB,UAAU,CAAC,WAAW,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;IAerC,YAAY,CAAC,EAAE,EAAE,GAAG,EAAE,CAAC,SAAS,IAAI,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,QAAQ,EAAE,YAAY,CAAC,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC;IAKjF,eAAe,CAAC,GAAG,EAAE,CAAC,SAAS,OAAO,CAAC,GAAG,CAAC,EAAE,QAAQ,EAAE,eAAe,CAAC,GAAG,EAAE,CAAC,CAAC;CAIjF"}
|
|
@@ -4,6 +4,8 @@ export type WorkflowMsgMetadata = {
|
|
|
4
4
|
executionId: string;
|
|
5
5
|
activationId: string;
|
|
6
6
|
userId?: string;
|
|
7
|
+
traceparent?: string;
|
|
8
|
+
tracestate?: string;
|
|
7
9
|
[key: string]: any;
|
|
8
10
|
};
|
|
9
11
|
export type Workflows = {
|
|
@@ -28,6 +30,7 @@ export type SubmitWorkflow = {
|
|
|
28
30
|
payload: string;
|
|
29
31
|
maxAttempts?: number;
|
|
30
32
|
metadata: WorkflowMsgMetadata;
|
|
33
|
+
after?: string;
|
|
31
34
|
projectId?: string;
|
|
32
35
|
environmentId?: string;
|
|
33
36
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Queue.d.ts","sourceRoot":"","sources":["../../../../src/src/interpreter/durable/Queue.ts"],"names":[],"mappings":"AAaA,OAAO,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAC;AASpD,MAAM,MAAM,mBAAmB,GAAG;IAC9B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;CACtB,CAAC;AAEF,MAAM,MAAM,SAAS,GAAG;IACpB,SAAS,EAAE,QAAQ,EAAE,CAAC;CACzB,CAAC;AAEF,MAAM,MAAM,QAAQ,GAAG;IACnB,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,MAAM,CAAC;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,WAAW,GAAG,QAAQ,GAAG,WAAW,GAAG,QAAQ,CAAC;IACzD,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,mBAAmB,CAAC;CACjC,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"Queue.d.ts","sourceRoot":"","sources":["../../../../src/src/interpreter/durable/Queue.ts"],"names":[],"mappings":"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"}
|
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
* As of the Change Date, in accordance with the Business Source License,
|
|
11
11
|
* use of this software will be governed by the Apache License, Version 2.0.
|
|
12
12
|
*/
|
|
13
|
-
import { envVarEnvId, envVarProjectId, envVarSDKApiBaseURL, } from '../../
|
|
13
|
+
import { envVarEnvId, envVarProjectId, envVarSDKApiBaseURL, } from '../../dsl/http/versori/constants.js';
|
|
14
14
|
import { ConsoleLogger } from '../../mod.js';
|
|
15
15
|
export class QueueImpl {
|
|
16
16
|
constructor(baseUrl, projectId, environmentId, log) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"catch.d.ts","sourceRoot":"","sources":["../../../../../src/src/interpreter/durable/compilers/catch.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,SAAS,EAAE,MAAM,iCAAiC,CAAC;AAG5D,OAAO,EAA2B,YAAY,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"catch.d.ts","sourceRoot":"","sources":["../../../../../src/src/interpreter/durable/compilers/catch.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,SAAS,EAAE,MAAM,iCAAiC,CAAC;AAG5D,OAAO,EAA2B,YAAY,EAAE,MAAM,YAAY,CAAC;AAuFnE,eAAO,MAAM,aAAa,EAAE,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE,SAAS,CAAC,GAAG,EAAE,GAAG,CAAC,CAGrE,CAAC"}
|
|
@@ -22,9 +22,7 @@ function compileCatch(compilerCtx, task) {
|
|
|
22
22
|
return compilerCtx.tracer.startActiveSpan(`catch`, (span) => {
|
|
23
23
|
span.setAttribute('execution.id', ctx.executionId);
|
|
24
24
|
span.setAttribute('task.type', 'catch');
|
|
25
|
-
span.setAttribute('type', 'task');
|
|
26
25
|
if (error instanceof Error) {
|
|
27
|
-
span.setAttribute('status', 'fail');
|
|
28
26
|
span.recordException(error);
|
|
29
27
|
span.setAttribute('error.message', error.message);
|
|
30
28
|
span.setAttribute('error.stack', error.stack ?? '');
|
|
@@ -62,7 +60,7 @@ function compileCatch(compilerCtx, task) {
|
|
|
62
60
|
reason: 'error',
|
|
63
61
|
severity: 'low',
|
|
64
62
|
});
|
|
65
|
-
span.setAttribute('
|
|
63
|
+
span.setAttribute('error', `${error}`);
|
|
66
64
|
span.end();
|
|
67
65
|
return errorOperator(of(ctx.withData(new ExecutionError(ctx, `${error}`, { cause: error }), { recoveredFromCatch: true })));
|
|
68
66
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"durableworkflow.d.ts","sourceRoot":"","sources":["../../../../../src/src/interpreter/durable/compilers/durableworkflow.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,UAAU,EAAE,MAAM,MAAM,CAAC;AAElC,OAAO,EAAW,WAAW,EAAE,MAAM,6BAA6B,CAAC;AACnE,OAAO,EACH,mBAAmB,EACnB,sBAAsB,EACzB,MAAM,yCAAyC,CAAC;AAEjD,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"durableworkflow.d.ts","sourceRoot":"","sources":["../../../../../src/src/interpreter/durable/compilers/durableworkflow.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,UAAU,EAAE,MAAM,MAAM,CAAC;AAElC,OAAO,EAAW,WAAW,EAAE,MAAM,6BAA6B,CAAC;AACnE,OAAO,EACH,mBAAmB,EACnB,sBAAsB,EACzB,MAAM,yCAAyC,CAAC;AAEjD,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAG3C,wBAAgB,sBAAsB,CAClC,GAAG,EAAE,sBAAsB,EAC3B,OAAO,EAAE,sBAAsB,EAC/B,MAAM,EAAE,WAAW,GACpB,UAAU,CAAC,WAAW,CAAC,mBAAmB,CAAC,CAAC,CAuJ9C;AAED,eAAO,MAAM,uBAAuB,EAAE,eAAe,CAAC,mBAAmB,EAAE,sBAAsB,CAI5F,CAAC"}
|
|
@@ -14,6 +14,7 @@ import { ulid } from '../../../../deps/jsr.io/@std/ulid/1.0.0/mod.js';
|
|
|
14
14
|
import { Observable } from 'rxjs';
|
|
15
15
|
import { DurableWorkflowTrigger, } from '../../../dsl/triggers/DurableTrigger.js';
|
|
16
16
|
import { envVarEnvId } from '../../../internal/constants.js';
|
|
17
|
+
import { extractTraceContext } from '../../../observability/tracePropagation.js';
|
|
17
18
|
export function compileDurableWorkflow(ctx, trigger, signal) {
|
|
18
19
|
return new Observable((subscriber) => {
|
|
19
20
|
function cleanup() {
|
|
@@ -40,38 +41,52 @@ export function compileDurableWorkflow(ctx, trigger, signal) {
|
|
|
40
41
|
continue;
|
|
41
42
|
}
|
|
42
43
|
for (const wf of wfs.workflows) {
|
|
43
|
-
|
|
44
|
+
// If the metadata carries a traceparent, extractTraceContext returns a
|
|
45
|
+
// context with the remote span as parent; otherwise it returns the
|
|
46
|
+
// current active context, which causes startActiveSpan to create a new
|
|
47
|
+
// root span (new trace). Either way the SDK does the right thing.
|
|
48
|
+
const parentCtx = extractTraceContext(wf.metadata);
|
|
49
|
+
await ctx.tracer.startActiveSpan(`durableworkflow-${trigger.id}`, {}, parentCtx, async (span) => {
|
|
44
50
|
span.setAttribute('task.id', trigger.id);
|
|
45
51
|
span.setAttribute('task.type', 'durableworkflow');
|
|
46
52
|
span.setAttribute('execution.id', wf.metadata?.executionId ?? '');
|
|
47
53
|
if (wf.metadata?.activationId) {
|
|
48
54
|
span.setAttribute('activation.id', wf.metadata.activationId);
|
|
49
55
|
}
|
|
56
|
+
if (wf.metadata?.traceparent) {
|
|
57
|
+
span.setAttribute('trace.continuation', true);
|
|
58
|
+
}
|
|
50
59
|
try {
|
|
51
60
|
const payload = wf.payload ? atob(wf.payload) : '{}';
|
|
52
61
|
const data = JSON.parse(payload);
|
|
53
62
|
let activation;
|
|
54
63
|
if (wf.metadata?.activationId) {
|
|
55
64
|
try {
|
|
56
|
-
const { data } = await ctx.platformApi
|
|
65
|
+
const { data } = await ctx.platformApi
|
|
66
|
+
.getActivation({
|
|
57
67
|
path: {
|
|
58
68
|
activation_id: wf.metadata.activationId,
|
|
59
69
|
organisation_id: ctx.organisationId,
|
|
60
|
-
environment_id: Deno.env.get(envVarEnvId) ||
|
|
70
|
+
environment_id: Deno.env.get(envVarEnvId) ||
|
|
71
|
+
'development',
|
|
61
72
|
},
|
|
62
73
|
throwOnError: true,
|
|
63
74
|
});
|
|
64
75
|
activation = data;
|
|
65
76
|
}
|
|
66
77
|
catch (error) {
|
|
67
|
-
ctx.log.error('Failed to get activation', {
|
|
78
|
+
ctx.log.error('Failed to get activation', {
|
|
79
|
+
error,
|
|
80
|
+
});
|
|
68
81
|
throw new Error('Failed to get activation');
|
|
69
82
|
}
|
|
70
83
|
}
|
|
71
|
-
const newContext = ctx.contextProvider
|
|
84
|
+
const newContext = ctx.contextProvider
|
|
85
|
+
.createWithExecutionId(activation, data, wf.metadata?.executionId ?? ulid().toString(), {
|
|
72
86
|
workflow: wf,
|
|
73
87
|
onSuccess: (completedContext) => {
|
|
74
|
-
const opts = completedContext
|
|
88
|
+
const opts = completedContext
|
|
89
|
+
.options;
|
|
75
90
|
if (opts.recoveredFromCatch) {
|
|
76
91
|
return;
|
|
77
92
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fn.d.ts","sourceRoot":"","sources":["../../../../../src/src/interpreter/durable/compilers/fn.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"fn.d.ts","sourceRoot":"","sources":["../../../../../src/src/interpreter/durable/compilers/fn.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,MAAM,EAAE,MAAM,8BAA8B,CAAC;AAEtD,OAAO,EAA2B,YAAY,EAAE,MAAM,YAAY,CAAC;AAiCnE,eAAO,MAAM,UAAU,EAAE,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,CAG/D,CAAC"}
|
|
@@ -10,43 +10,20 @@
|
|
|
10
10
|
* As of the Change Date, in accordance with the Business Source License,
|
|
11
11
|
* use of this software will be governed by the Apache License, Version 2.0.
|
|
12
12
|
*/
|
|
13
|
-
import { mergeMap } from 'rxjs';
|
|
13
|
+
import { mergeMap, tap } from 'rxjs';
|
|
14
14
|
import { FnTask } from '../../../dsl/tasks/FnTask.js';
|
|
15
|
-
import { sendTaskStartEvent, enabled as supervisorEnabled } from '../../../internal/supervisor.js';
|
|
16
15
|
function compileFn(compilerCtx, task) {
|
|
17
|
-
return (src) => src.pipe(
|
|
16
|
+
return (src) => src.pipe(tap({
|
|
17
|
+
complete: () => compilerCtx.log.debug('fn.complete'),
|
|
18
|
+
}), mergeMap(async (ctx) => {
|
|
18
19
|
return await compilerCtx.tracer.startActiveSpan(`fn-${task.id}`, async (span) => {
|
|
19
|
-
await sendTaskStartEvent(task.id, ctx, span);
|
|
20
20
|
span.setAttribute('task.id', task.id);
|
|
21
|
-
span.setAttribute('type', 'task');
|
|
22
|
-
span.setAttribute('task.type', 'fn');
|
|
23
21
|
span.setAttribute('execution.id', ctx.executionId);
|
|
24
|
-
span.setAttribute('workflow.id', ctx.options.workflowId || 'unknown-workflow');
|
|
25
22
|
try {
|
|
26
|
-
const spanContext = span.spanContext();
|
|
27
|
-
const ctxWithLogger = ctx.withLogger(ctx.log.child({ spanId: spanContext.spanId, traceId: spanContext.traceId }));
|
|
28
|
-
let result;
|
|
29
23
|
if (typeof ctx.idx === 'number') {
|
|
30
|
-
|
|
24
|
+
return ctx.withData(await task._fn(ctx, ctx.idx));
|
|
31
25
|
}
|
|
32
|
-
|
|
33
|
-
result = ctx.withData(await task._fn(ctxWithLogger));
|
|
34
|
-
}
|
|
35
|
-
if (supervisorEnabled) {
|
|
36
|
-
span.setAttribute('response.body', JSON.stringify(result.data));
|
|
37
|
-
}
|
|
38
|
-
span.setAttribute('status', 'pass');
|
|
39
|
-
return result;
|
|
40
|
-
}
|
|
41
|
-
catch (error) {
|
|
42
|
-
if (error instanceof Error) {
|
|
43
|
-
span.setAttribute('status', 'fail');
|
|
44
|
-
span.recordException(error);
|
|
45
|
-
}
|
|
46
|
-
else {
|
|
47
|
-
span.recordException(new Error(String(error)));
|
|
48
|
-
}
|
|
49
|
-
throw error;
|
|
26
|
+
return ctx.withData(await task._fn(ctx));
|
|
50
27
|
}
|
|
51
28
|
finally {
|
|
52
29
|
span.end();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"http.d.ts","sourceRoot":"","sources":["../../../../../src/src/interpreter/durable/compilers/http.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"http.d.ts","sourceRoot":"","sources":["../../../../../src/src/interpreter/durable/compilers/http.ts"],"names":[],"mappings":"AAiBA,OAAO,EAAmB,YAAY,EAAE,MAAM,gCAAgC,CAAC;AAE/E,OAAO,EAA2B,YAAY,EAAE,MAAM,YAAY,CAAC;AAwFnE,eAAO,MAAM,YAAY,EAAE,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAG5E,CAAC"}
|