@versori/run 0.0.1-alpha.6 → 0.1.0-alpha.8
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/{script/deps/jsr.io/@std/fmt/1.0.5 → esm/deps/jsr.io/@std/fmt/1.0.6}/colors.d.ts.map +1 -1
- package/esm/deps/jsr.io/@std/fs/{1.0.13 → 1.0.15}/exists.d.ts.map +1 -1
- package/esm/deps/jsr.io/@std/log/0.224.14/console_handler.js +1 -1
- package/esm/deps/jsr.io/@std/log/0.224.14/rotating_file_handler.js +1 -1
- package/esm/src/context/Context.d.ts +6 -1
- package/esm/src/context/Context.d.ts.map +1 -1
- package/esm/src/context/Context.js +17 -3
- package/esm/src/context/ContextProvider.d.ts +3 -2
- package/esm/src/context/ContextProvider.d.ts.map +1 -1
- package/esm/src/context/ContextProvider.js +2 -2
- package/esm/src/dsl/http/default.d.ts.map +1 -1
- package/esm/src/dsl/http/default.js +3 -1
- package/esm/src/dsl/http/types.d.ts +122 -16
- package/esm/src/dsl/http/types.d.ts.map +1 -1
- package/esm/src/dsl/http/types.js +6 -2
- package/esm/src/dsl/http/versori/configloader.d.ts +2 -2
- package/esm/src/dsl/http/versori/configloader.d.ts.map +1 -1
- package/esm/src/dsl/http/versori/configloader.js +9 -3
- package/esm/src/dsl/http/versori/constants.d.ts +10 -0
- package/esm/src/dsl/http/versori/constants.d.ts.map +1 -0
- package/esm/src/dsl/http/versori/constants.js +12 -0
- package/esm/src/dsl/http/versori/internalauth.d.ts.map +1 -1
- package/esm/src/dsl/http/versori/internalauth.js +10 -9
- package/esm/src/dsl/http/versori/platformapi.d.ts +14 -0
- package/esm/src/dsl/http/versori/platformapi.d.ts.map +1 -0
- package/esm/src/dsl/http/versori/platformapi.js +91 -0
- package/esm/src/dsl/http/versori/roundtripper.d.ts +13 -6
- package/esm/src/dsl/http/versori/roundtripper.d.ts.map +1 -1
- package/esm/src/dsl/http/versori/roundtripper.js +171 -53
- package/esm/src/dsl/tasks/HttpTask.d.ts +18 -2
- package/esm/src/dsl/tasks/HttpTask.d.ts.map +1 -1
- package/esm/src/dsl/tasks/HttpTask.js +82 -0
- package/esm/src/dsl/triggers/ScheduleTrigger.d.ts +6 -2
- package/esm/src/dsl/triggers/ScheduleTrigger.d.ts.map +1 -1
- package/esm/src/dsl/triggers/ScheduleTrigger.js +10 -3
- package/esm/src/interpreter/memory/MemoryInterpreter.d.ts +1 -0
- package/esm/src/interpreter/memory/MemoryInterpreter.d.ts.map +1 -1
- package/esm/src/interpreter/memory/MemoryInterpreter.js +12 -3
- package/esm/src/interpreter/memory/ObservableCompiler.d.ts +2 -1
- package/esm/src/interpreter/memory/ObservableCompiler.d.ts.map +1 -1
- package/esm/src/interpreter/memory/compilers/background.d.ts.map +1 -1
- package/esm/src/interpreter/memory/compilers/background.js +4 -2
- package/esm/src/interpreter/memory/compilers/http.d.ts.map +1 -1
- package/esm/src/interpreter/memory/compilers/http.js +6 -12
- package/esm/src/interpreter/memory/compilers/schedule.d.ts.map +1 -1
- package/esm/src/interpreter/memory/compilers/schedule.js +32 -6
- package/esm/src/interpreter/memory/compilers/serial.js +1 -1
- package/esm/src/interpreter/memory/compilers/webhook.d.ts.map +1 -1
- package/esm/src/interpreter/memory/compilers/webhook.js +20 -4
- package/package.json +2 -1
- package/{esm/deps/jsr.io/@std/fmt/1.0.5 → script/deps/jsr.io/@std/fmt/1.0.6}/colors.d.ts.map +1 -1
- package/script/deps/jsr.io/@std/fs/{1.0.13 → 1.0.15}/exists.d.ts.map +1 -1
- package/script/deps/jsr.io/@std/log/0.224.14/console_handler.js +1 -1
- package/script/deps/jsr.io/@std/log/0.224.14/rotating_file_handler.js +1 -1
- package/script/src/context/Context.d.ts +6 -1
- package/script/src/context/Context.d.ts.map +1 -1
- package/script/src/context/Context.js +17 -3
- package/script/src/context/ContextProvider.d.ts +3 -2
- package/script/src/context/ContextProvider.d.ts.map +1 -1
- package/script/src/context/ContextProvider.js +2 -2
- package/script/src/dsl/http/default.d.ts.map +1 -1
- package/script/src/dsl/http/default.js +3 -1
- package/script/src/dsl/http/types.d.ts +122 -16
- package/script/src/dsl/http/types.d.ts.map +1 -1
- package/script/src/dsl/http/types.js +7 -1
- package/script/src/dsl/http/versori/configloader.d.ts +2 -2
- package/script/src/dsl/http/versori/configloader.d.ts.map +1 -1
- package/script/src/dsl/http/versori/configloader.js +10 -4
- package/script/src/dsl/http/versori/constants.d.ts +10 -0
- package/script/src/dsl/http/versori/constants.d.ts.map +1 -0
- package/script/src/dsl/http/versori/constants.js +15 -0
- package/script/src/dsl/http/versori/internalauth.d.ts.map +1 -1
- package/script/src/dsl/http/versori/internalauth.js +10 -9
- package/script/src/dsl/http/versori/platformapi.d.ts +14 -0
- package/script/src/dsl/http/versori/platformapi.d.ts.map +1 -0
- package/script/src/dsl/http/versori/platformapi.js +118 -0
- package/script/src/dsl/http/versori/roundtripper.d.ts +13 -6
- package/script/src/dsl/http/versori/roundtripper.d.ts.map +1 -1
- package/script/src/dsl/http/versori/roundtripper.js +170 -53
- package/script/src/dsl/tasks/HttpTask.d.ts +18 -2
- package/script/src/dsl/tasks/HttpTask.d.ts.map +1 -1
- package/script/src/dsl/tasks/HttpTask.js +84 -1
- package/script/src/dsl/triggers/ScheduleTrigger.d.ts +6 -2
- package/script/src/dsl/triggers/ScheduleTrigger.d.ts.map +1 -1
- package/script/src/dsl/triggers/ScheduleTrigger.js +10 -3
- package/script/src/interpreter/memory/MemoryInterpreter.d.ts +1 -0
- package/script/src/interpreter/memory/MemoryInterpreter.d.ts.map +1 -1
- package/script/src/interpreter/memory/MemoryInterpreter.js +12 -3
- package/script/src/interpreter/memory/ObservableCompiler.d.ts +2 -1
- package/script/src/interpreter/memory/ObservableCompiler.d.ts.map +1 -1
- package/script/src/interpreter/memory/compilers/background.d.ts.map +1 -1
- package/script/src/interpreter/memory/compilers/background.js +3 -1
- package/script/src/interpreter/memory/compilers/http.d.ts.map +1 -1
- package/script/src/interpreter/memory/compilers/http.js +5 -11
- package/script/src/interpreter/memory/compilers/schedule.d.ts.map +1 -1
- package/script/src/interpreter/memory/compilers/schedule.js +32 -6
- package/script/src/interpreter/memory/compilers/serial.js +1 -1
- package/script/src/interpreter/memory/compilers/webhook.d.ts.map +1 -1
- package/script/src/interpreter/memory/compilers/webhook.js +20 -4
- package/esm/src/dsl/http/versori/connectapi.d.ts +0 -11
- package/esm/src/dsl/http/versori/connectapi.d.ts.map +0 -1
- package/esm/src/dsl/http/versori/connectapi.js +0 -57
- package/script/src/dsl/http/versori/connectapi.d.ts +0 -11
- package/script/src/dsl/http/versori/connectapi.d.ts.map +0 -1
- package/script/src/dsl/http/versori/connectapi.js +0 -61
- /package/esm/deps/jsr.io/@std/fmt/{1.0.5 → 1.0.6}/colors.d.ts +0 -0
- /package/esm/deps/jsr.io/@std/fmt/{1.0.5 → 1.0.6}/colors.js +0 -0
- /package/esm/deps/jsr.io/@std/fs/{1.0.13 → 1.0.15}/exists.d.ts +0 -0
- /package/esm/deps/jsr.io/@std/fs/{1.0.13 → 1.0.15}/exists.js +0 -0
- /package/script/deps/jsr.io/@std/fmt/{1.0.5 → 1.0.6}/colors.d.ts +0 -0
- /package/script/deps/jsr.io/@std/fmt/{1.0.5 → 1.0.6}/colors.js +0 -0
- /package/script/deps/jsr.io/@std/fs/{1.0.13 → 1.0.15}/exists.d.ts +0 -0
- /package/script/deps/jsr.io/@std/fs/{1.0.13 → 1.0.15}/exists.js +0 -0
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { DynamicFetcher, RoundTripperFactory } from "../types.js";
|
|
1
|
+
import { DynamicFetcher, RoundTripperFactory } from '../types.js';
|
|
3
2
|
import { VersoriCredentialClient } from './credentials/mod.js';
|
|
3
|
+
import { PlatformAPIClient } from './platformapi.js';
|
|
4
|
+
import { Logger } from '../../../observability/logging/Logger.js';
|
|
4
5
|
export type RunningEnvironment = 'local' | 'versori' | 'staging';
|
|
5
|
-
export declare function CreateFromEnv(): VersoriRoundTripperFactory;
|
|
6
6
|
/**
|
|
7
7
|
* VersoriRoundTripper is an implementation of the RoundTripperFactory interface for Versori connections.
|
|
8
8
|
* This is the intended implementation for when projects/services are hosted on Versori infrastructure.
|
|
@@ -16,13 +16,20 @@ export declare function CreateFromEnv(): VersoriRoundTripperFactory;
|
|
|
16
16
|
* ```
|
|
17
17
|
*/
|
|
18
18
|
export declare class VersoriRoundTripperFactory implements RoundTripperFactory {
|
|
19
|
-
private cAPIClient;
|
|
20
19
|
private tokenClient;
|
|
20
|
+
private platformAPIClient;
|
|
21
21
|
private versoriCfg;
|
|
22
|
-
|
|
22
|
+
private log;
|
|
23
|
+
private readonly defaultStatic;
|
|
24
|
+
private readonly defaultDynamic;
|
|
25
|
+
constructor(credsClient: VersoriCredentialClient, platformAPIClient: PlatformAPIClient, logger: Logger);
|
|
26
|
+
static fromEnv(logger?: Logger): VersoriRoundTripperFactory;
|
|
27
|
+
private changeRequestInit;
|
|
28
|
+
private changeBaseUrl;
|
|
23
29
|
create(connName: string, fn?: typeof fetch): Promise<typeof fetch>;
|
|
24
|
-
createDynamic(templateName: string, fn
|
|
30
|
+
createDynamic(templateName: string, fn?: typeof fetch): Promise<DynamicFetcher>;
|
|
25
31
|
private getConnectionID;
|
|
32
|
+
private getTemplateID;
|
|
26
33
|
private apiKeyFetcher;
|
|
27
34
|
private basicAuthFetcher;
|
|
28
35
|
private bearerTokenFetcher;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"roundtripper.d.ts","sourceRoot":"","sources":["../../../../../src/src/dsl/http/versori/roundtripper.ts"],"names":[],"mappings":"AACA,OAAO,
|
|
1
|
+
{"version":3,"file":"roundtripper.d.ts","sourceRoot":"","sources":["../../../../../src/src/dsl/http/versori/roundtripper.ts"],"names":[],"mappings":"AACA,OAAO,EAAc,cAAc,EAAE,mBAAmB,EAAoB,MAAM,aAAa,CAAC;AAEhG,OAAO,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAC;AAE/D,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,MAAM,EAAE,MAAM,0CAA0C,CAAC;AASlE,MAAM,MAAM,kBAAkB,GAAG,OAAO,GAAG,SAAS,GAAG,SAAS,CAAC;AAEjE;;;;;;;;;;;GAWG;AACH,qBAAa,0BAA2B,YAAW,mBAAmB;IAClE,OAAO,CAAC,WAAW,CAA0B;IAE7C,OAAO,CAAC,iBAAiB,CAAoB;IAE7C,OAAO,CAAC,UAAU,CAAmB;IAErC,OAAO,CAAC,GAAG,CAAS;IAEpB,OAAO,CAAC,QAAQ,CAAC,aAAa,CAK5B;IAEF,OAAO,CAAC,QAAQ,CAAC,cAAc,CAM7B;gBAGE,WAAW,EAAE,uBAAuB,EACpC,iBAAiB,EAAE,iBAAiB,EACpC,MAAM,EAAE,MAAM;IAQlB,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,0BAA0B;IA0B3D,OAAO,CAAC,iBAAiB;IAYzB,OAAO,CAAC,aAAa;IAmBf,MAAM,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE,GAAE,OAAO,KAAwB,GAAG,OAAO,CAAC,OAAO,KAAK,CAAC;IAyBpF,aAAa,CACf,YAAY,EAAE,MAAM,EACpB,EAAE,GAAE,OAAO,KAAwB,GACpC,OAAO,CAAC,cAAc,CAAC;IA0D1B,OAAO,CAAC,eAAe;IAavB,OAAO,CAAC,aAAa;YAYP,aAAa;YAoDb,gBAAgB;YA0BhB,kBAAkB;YAiClB,aAAa;CAkD9B"}
|
|
@@ -1,28 +1,10 @@
|
|
|
1
1
|
import * as dntShim from "../../../../_dnt.shims.js";
|
|
2
|
-
import {
|
|
3
|
-
import { LoadConfigFromJSON } from './configloader.js';
|
|
2
|
+
import { LoadConfigFromFile } from './configloader.js';
|
|
4
3
|
import { VersoriCredentialClient } from './credentials/mod.js';
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
const serviceConnId = dntShim.Deno.env.get('RUN_CONNECTOR_ID');
|
|
10
|
-
if (!orgId || !serviceConnId || !connAPIBaseURL || !credsBaseURL) {
|
|
11
|
-
const missingVars = [];
|
|
12
|
-
if (!orgId)
|
|
13
|
-
missingVars.push('RUN_ORGANISATION_ID');
|
|
14
|
-
if (!serviceConnId)
|
|
15
|
-
missingVars.push('RUN_CONNECTOR_ID');
|
|
16
|
-
if (!connAPIBaseURL)
|
|
17
|
-
missingVars.push('RUN_CONNECT_API_INTERNAL_URL');
|
|
18
|
-
if (!credsBaseURL)
|
|
19
|
-
missingVars.push('RUN_CREDENTIALS_SERVICE_INTERNAL_URL');
|
|
20
|
-
throw new Error(`Missing environment variables: ${missingVars.join(', ')}`);
|
|
21
|
-
}
|
|
22
|
-
const cAPIClient = new ConnectAPIClient(connAPIBaseURL, orgId, serviceConnId, {});
|
|
23
|
-
const tokenClient = new VersoriCredentialClient(credsBaseURL);
|
|
24
|
-
return new VersoriRoundTripperFactory(cAPIClient, tokenClient);
|
|
25
|
-
}
|
|
4
|
+
import { LRUCache } from 'lru-cache';
|
|
5
|
+
import { PlatformAPIClient } from './platformapi.js';
|
|
6
|
+
import { ConsoleLogger } from '../../../observability/mod.js';
|
|
7
|
+
import { envVarCredsBaseURL, envVarEnvId, envVarOrgId, envVarPlatformApiBaseURL, } from './constants.js';
|
|
26
8
|
/**
|
|
27
9
|
* VersoriRoundTripper is an implementation of the RoundTripperFactory interface for Versori connections.
|
|
28
10
|
* This is the intended implementation for when projects/services are hosted on Versori infrastructure.
|
|
@@ -36,14 +18,14 @@ export function CreateFromEnv() {
|
|
|
36
18
|
* ```
|
|
37
19
|
*/
|
|
38
20
|
export class VersoriRoundTripperFactory {
|
|
39
|
-
constructor(
|
|
40
|
-
Object.defineProperty(this, "
|
|
21
|
+
constructor(credsClient, platformAPIClient, logger) {
|
|
22
|
+
Object.defineProperty(this, "tokenClient", {
|
|
41
23
|
enumerable: true,
|
|
42
24
|
configurable: true,
|
|
43
25
|
writable: true,
|
|
44
26
|
value: void 0
|
|
45
27
|
});
|
|
46
|
-
Object.defineProperty(this, "
|
|
28
|
+
Object.defineProperty(this, "platformAPIClient", {
|
|
47
29
|
enumerable: true,
|
|
48
30
|
configurable: true,
|
|
49
31
|
writable: true,
|
|
@@ -55,17 +37,99 @@ export class VersoriRoundTripperFactory {
|
|
|
55
37
|
writable: true,
|
|
56
38
|
value: void 0
|
|
57
39
|
});
|
|
58
|
-
this
|
|
40
|
+
Object.defineProperty(this, "log", {
|
|
41
|
+
enumerable: true,
|
|
42
|
+
configurable: true,
|
|
43
|
+
writable: true,
|
|
44
|
+
value: void 0
|
|
45
|
+
});
|
|
46
|
+
Object.defineProperty(this, "defaultStatic", {
|
|
47
|
+
enumerable: true,
|
|
48
|
+
configurable: true,
|
|
49
|
+
writable: true,
|
|
50
|
+
value: (msg, values) => {
|
|
51
|
+
return (input, init) => {
|
|
52
|
+
this.log.error(msg, values);
|
|
53
|
+
return globalThis.fetch(input, init);
|
|
54
|
+
};
|
|
55
|
+
}
|
|
56
|
+
});
|
|
57
|
+
Object.defineProperty(this, "defaultDynamic", {
|
|
58
|
+
enumerable: true,
|
|
59
|
+
configurable: true,
|
|
60
|
+
writable: true,
|
|
61
|
+
value: (msg, values) => {
|
|
62
|
+
return (userId, input, init) => {
|
|
63
|
+
values['userId'] = userId;
|
|
64
|
+
this.log.error(msg, values);
|
|
65
|
+
return globalThis.fetch(input, init);
|
|
66
|
+
};
|
|
67
|
+
}
|
|
68
|
+
});
|
|
59
69
|
this.tokenClient = credsClient;
|
|
60
|
-
this.
|
|
70
|
+
this.platformAPIClient = platformAPIClient;
|
|
71
|
+
this.versoriCfg = LoadConfigFromFile();
|
|
72
|
+
this.log = logger;
|
|
73
|
+
}
|
|
74
|
+
static fromEnv(logger) {
|
|
75
|
+
const credsBaseURL = dntShim.Deno.env.get(envVarCredsBaseURL);
|
|
76
|
+
const platformApiBaseURL = dntShim.Deno.env.get(envVarPlatformApiBaseURL);
|
|
77
|
+
const orgId = dntShim.Deno.env.get(envVarOrgId);
|
|
78
|
+
const envId = dntShim.Deno.env.get(envVarEnvId);
|
|
79
|
+
if (!orgId || !envId || !platformApiBaseURL || !credsBaseURL) {
|
|
80
|
+
const missingVars = [];
|
|
81
|
+
if (!orgId)
|
|
82
|
+
missingVars.push(envVarOrgId);
|
|
83
|
+
if (!envId)
|
|
84
|
+
missingVars.push(envVarEnvId);
|
|
85
|
+
if (!platformApiBaseURL)
|
|
86
|
+
missingVars.push(envVarPlatformApiBaseURL);
|
|
87
|
+
if (!credsBaseURL)
|
|
88
|
+
missingVars.push(envVarCredsBaseURL);
|
|
89
|
+
throw new Error(`Missing environment variables: ${missingVars.join(', ')}`);
|
|
90
|
+
}
|
|
91
|
+
const pAPIClient = new PlatformAPIClient(platformApiBaseURL, orgId, envId, {});
|
|
92
|
+
const tokenClient = new VersoriCredentialClient(credsBaseURL);
|
|
93
|
+
const log = logger || new ConsoleLogger('debug');
|
|
94
|
+
return new VersoriRoundTripperFactory(tokenClient, pAPIClient, log);
|
|
95
|
+
}
|
|
96
|
+
// takes the info and modifies the url using changeBaseUrl if necessary
|
|
97
|
+
changeRequestInit(info, conn) {
|
|
98
|
+
if (typeof info === 'string') {
|
|
99
|
+
return this.changeBaseUrl(info, conn);
|
|
100
|
+
}
|
|
101
|
+
else if (info instanceof URL) {
|
|
102
|
+
return this.changeBaseUrl(info.toString(), conn);
|
|
103
|
+
}
|
|
104
|
+
else if (info instanceof Request) {
|
|
105
|
+
const url = this.changeBaseUrl(info.url, conn);
|
|
106
|
+
return new Request(url, info);
|
|
107
|
+
}
|
|
108
|
+
return info;
|
|
61
109
|
}
|
|
62
|
-
|
|
110
|
+
changeBaseUrl(url, conn) {
|
|
111
|
+
const baseUrl = conn.baseUrl;
|
|
112
|
+
if (!baseUrl) {
|
|
113
|
+
return url;
|
|
114
|
+
}
|
|
115
|
+
const urlObj = new URL(url);
|
|
116
|
+
const baseUrlObj = new URL(baseUrl);
|
|
117
|
+
urlObj.hostname = baseUrlObj.hostname;
|
|
118
|
+
this.log.debug('Changing base URL', {
|
|
119
|
+
originalUrl: url,
|
|
120
|
+
newUrl: urlObj.toString(),
|
|
121
|
+
});
|
|
122
|
+
return url.toString();
|
|
123
|
+
}
|
|
124
|
+
async create(connName, fn = globalThis.fetch) {
|
|
63
125
|
const cnxId = this.getConnectionID(connName);
|
|
64
|
-
const conn = await this.
|
|
126
|
+
const conn = await this.platformAPIClient.getStaticConnection(cnxId);
|
|
65
127
|
if (!conn) {
|
|
66
|
-
|
|
128
|
+
return this.defaultStatic('Connection not found for static, using default fetch', {
|
|
129
|
+
connName: connName,
|
|
130
|
+
});
|
|
67
131
|
}
|
|
68
|
-
switch (conn.credentials
|
|
132
|
+
switch (conn.credentials[0].authSchemeConfig.type) {
|
|
69
133
|
case 'api-key':
|
|
70
134
|
return this.apiKeyFetcher(conn, fn);
|
|
71
135
|
case 'basic-auth':
|
|
@@ -78,54 +142,108 @@ export class VersoriRoundTripperFactory {
|
|
|
78
142
|
return fn;
|
|
79
143
|
}
|
|
80
144
|
}
|
|
81
|
-
async createDynamic(templateName, fn) {
|
|
82
|
-
|
|
145
|
+
async createDynamic(templateName, fn = globalThis.fetch) {
|
|
146
|
+
const lruCacheOptions = {
|
|
147
|
+
max: 100,
|
|
148
|
+
};
|
|
149
|
+
const cache = new LRUCache(lruCacheOptions);
|
|
150
|
+
const template = this.getTemplateID(templateName);
|
|
151
|
+
if (!template) {
|
|
152
|
+
return this.defaultDynamic('Template not found for dynamic, using default fetch', {
|
|
153
|
+
templateName: templateName,
|
|
154
|
+
});
|
|
155
|
+
}
|
|
156
|
+
const _fn = async (userId, input, init) => {
|
|
157
|
+
let conn = undefined;
|
|
158
|
+
if (cache.has(userId)) {
|
|
159
|
+
conn = cache.get(userId);
|
|
160
|
+
}
|
|
161
|
+
else {
|
|
162
|
+
conn = await this.platformAPIClient.getEndUserConnection(template, userId);
|
|
163
|
+
if (conn) {
|
|
164
|
+
cache.set(userId, conn);
|
|
165
|
+
}
|
|
166
|
+
}
|
|
167
|
+
if (!conn) {
|
|
168
|
+
return this.defaultDynamic('Connection not found for user, using default fetch', {
|
|
169
|
+
templateName: templateName,
|
|
170
|
+
userId: userId,
|
|
171
|
+
})(userId, input, init);
|
|
172
|
+
}
|
|
173
|
+
const _input = this.changeRequestInit(input, conn);
|
|
174
|
+
switch (conn.credentials[0].authSchemeConfig.type) {
|
|
175
|
+
case 'api-key':
|
|
176
|
+
return (await this.apiKeyFetcher(conn, fn))(_input, init);
|
|
177
|
+
case 'basic-auth':
|
|
178
|
+
return (await this.basicAuthFetcher(conn, fn))(_input, init);
|
|
179
|
+
case 'jwt-bearer':
|
|
180
|
+
return (await this.bearerTokenFetcher(conn, fn))(_input, init);
|
|
181
|
+
case 'oauth2':
|
|
182
|
+
return (await this.oauth2Fetcher(conn, fn))(_input, init);
|
|
183
|
+
default:
|
|
184
|
+
return fn(_input, init);
|
|
185
|
+
}
|
|
186
|
+
};
|
|
187
|
+
return _fn;
|
|
83
188
|
}
|
|
84
189
|
getConnectionID(connName) {
|
|
85
190
|
// Note that this is till very up in the air whether we are going to store the connection ID in the config
|
|
86
|
-
const conn = this.versoriCfg.
|
|
87
|
-
if (!conn) {
|
|
88
|
-
|
|
191
|
+
const conn = this.versoriCfg.mappings.find((c) => (c.dynamic === undefined || c.dynamic === false) && c.name === connName);
|
|
192
|
+
if (!conn || !conn.connId) {
|
|
193
|
+
return '';
|
|
89
194
|
}
|
|
90
|
-
return conn.
|
|
195
|
+
return conn.connId;
|
|
196
|
+
}
|
|
197
|
+
getTemplateID(templateName) {
|
|
198
|
+
// see above, also I'm assuming for now that the template id is simply the same as the connection id
|
|
199
|
+
// but there is another flag that denotes it as dynamic??
|
|
200
|
+
const template = this.versoriCfg.mappings.find((c) => c.dynamic && c.name === templateName);
|
|
201
|
+
if (!template || !template.templateId) {
|
|
202
|
+
return '';
|
|
203
|
+
}
|
|
204
|
+
return template.templateId;
|
|
91
205
|
}
|
|
92
206
|
async apiKeyFetcher(conn, fn) {
|
|
93
|
-
const tokenResponse = await this.tokenClient.getToken(conn.credentials
|
|
207
|
+
const tokenResponse = await this.tokenClient.getToken(conn.credentials[0].credential.id);
|
|
94
208
|
const token = tokenResponse.token?.accessToken;
|
|
209
|
+
const asc = conn.credentials[0].authSchemeConfig.apiKey;
|
|
95
210
|
if (!token) {
|
|
96
211
|
throw new Error('Token not found');
|
|
97
212
|
}
|
|
213
|
+
if (!asc) {
|
|
214
|
+
throw new Error('API Key configuration not found');
|
|
215
|
+
}
|
|
98
216
|
const _fn = (input, init) => {
|
|
99
217
|
if (!init) {
|
|
100
218
|
init = {};
|
|
101
219
|
}
|
|
102
|
-
switch (
|
|
220
|
+
switch (asc.in) {
|
|
103
221
|
case 'header':
|
|
104
222
|
if (!init.headers) {
|
|
105
223
|
init.headers = new Headers();
|
|
106
224
|
}
|
|
107
225
|
if (init.headers instanceof Headers) {
|
|
108
|
-
init.headers.set(
|
|
226
|
+
init.headers.set(asc.name, token);
|
|
109
227
|
}
|
|
110
228
|
else if (init.headers instanceof Array) {
|
|
111
|
-
init.headers.push([
|
|
229
|
+
init.headers.push([asc.name, token]);
|
|
112
230
|
}
|
|
113
231
|
else {
|
|
114
232
|
init.headers = {
|
|
115
233
|
...init.headers,
|
|
116
|
-
[
|
|
234
|
+
[asc.name]: token,
|
|
117
235
|
};
|
|
118
236
|
}
|
|
119
237
|
break;
|
|
120
238
|
case 'query':
|
|
121
239
|
if (typeof input === 'string') {
|
|
122
|
-
input += `?${
|
|
240
|
+
input += `?${asc.name}=${token}`;
|
|
123
241
|
}
|
|
124
242
|
else if (input instanceof Request) {
|
|
125
|
-
input = new Request(input.url + `?${
|
|
243
|
+
input = new Request(input.url + `?${asc.name}=${token}`, init);
|
|
126
244
|
}
|
|
127
245
|
else if (input instanceof URL) {
|
|
128
|
-
input.searchParams.append(
|
|
246
|
+
input.searchParams.append(asc.name, token);
|
|
129
247
|
}
|
|
130
248
|
break;
|
|
131
249
|
}
|
|
@@ -134,7 +252,7 @@ export class VersoriRoundTripperFactory {
|
|
|
134
252
|
return _fn;
|
|
135
253
|
}
|
|
136
254
|
async basicAuthFetcher(conn, fn) {
|
|
137
|
-
const tokenResponse = await this.tokenClient.getToken(conn.credentials
|
|
255
|
+
const tokenResponse = await this.tokenClient.getToken(conn.credentials[0].credential.id);
|
|
138
256
|
const token = tokenResponse.token?.accessToken;
|
|
139
257
|
if (!token) {
|
|
140
258
|
throw new Error('Token not found');
|
|
@@ -146,14 +264,14 @@ export class VersoriRoundTripperFactory {
|
|
|
146
264
|
if (!init.headers) {
|
|
147
265
|
init.headers = new Headers();
|
|
148
266
|
}
|
|
149
|
-
init.headers.set('Authorization', token);
|
|
267
|
+
init.headers.set('Authorization', `Basic ${token}`);
|
|
150
268
|
return fn(input, init);
|
|
151
269
|
};
|
|
152
270
|
return _fn;
|
|
153
271
|
}
|
|
154
|
-
// TODO: need to make the prefix and header name
|
|
272
|
+
// TODO: need to make the prefix and header name configurable from authschemeconfig
|
|
155
273
|
async bearerTokenFetcher(conn, fn) {
|
|
156
|
-
const tokenResponse = await this.tokenClient.getToken(conn.credentials
|
|
274
|
+
const tokenResponse = await this.tokenClient.getToken(conn.credentials[0].credential.id);
|
|
157
275
|
const token = tokenResponse.token?.accessToken;
|
|
158
276
|
if (!token) {
|
|
159
277
|
throw new Error('Token not found');
|
|
@@ -174,7 +292,7 @@ export class VersoriRoundTripperFactory {
|
|
|
174
292
|
else {
|
|
175
293
|
init.headers = {
|
|
176
294
|
...init.headers,
|
|
177
|
-
['Authorization']: `Bearer ${token}
|
|
295
|
+
['Authorization']: `Bearer ${token}`,
|
|
178
296
|
};
|
|
179
297
|
}
|
|
180
298
|
return fn(input, init);
|
|
@@ -182,7 +300,7 @@ export class VersoriRoundTripperFactory {
|
|
|
182
300
|
return _fn;
|
|
183
301
|
}
|
|
184
302
|
async oauth2Fetcher(conn, fn) {
|
|
185
|
-
const tokenResponse = await this.tokenClient.getOAuth2Token(conn.credentials
|
|
303
|
+
const tokenResponse = await this.tokenClient.getOAuth2Token(conn.credentials[0].credential.id);
|
|
186
304
|
const token = tokenResponse.token?.accessToken;
|
|
187
305
|
const tokenType = tokenResponse.token?.tokenType;
|
|
188
306
|
if (!token) {
|
|
@@ -217,7 +335,7 @@ export class VersoriRoundTripperFactory {
|
|
|
217
335
|
else {
|
|
218
336
|
init.headers = {
|
|
219
337
|
...init.headers,
|
|
220
|
-
['Authorization']: `${_tokenType()} ${token}
|
|
338
|
+
['Authorization']: `${_tokenType()} ${token}`,
|
|
221
339
|
};
|
|
222
340
|
}
|
|
223
341
|
return fn(input, init);
|
|
@@ -1,11 +1,13 @@
|
|
|
1
1
|
import { Context } from '../../context/Context.js';
|
|
2
|
+
import { Logger } from '../../mod.js';
|
|
3
|
+
import { Activation, DynamicFetcher } from '../http/types.js';
|
|
2
4
|
import { ArrayTask, Task, Taskable, TaskType } from '../Task.js';
|
|
3
|
-
export
|
|
5
|
+
export interface HttpContext<Data, PageParams = undefined> extends Context<Data> {
|
|
4
6
|
fetch: typeof fetch;
|
|
5
7
|
connectionVariables: Record<string, any>;
|
|
6
8
|
pageParams?: PageParams;
|
|
7
9
|
nextPage: (nextParams: PageParams) => Promise<void>;
|
|
8
|
-
}
|
|
10
|
+
}
|
|
9
11
|
export type HttpContextFunc<In, Out, PageParams> = (ctx: HttpContext<In, PageParams>) => Promise<Out>;
|
|
10
12
|
export type PaginateOptions<P> = {
|
|
11
13
|
initialParams: P;
|
|
@@ -27,5 +29,19 @@ export declare class HttpTaskImpl<In, Out, PageParams> implements Task<In, Out>
|
|
|
27
29
|
unpack<NextOut>(mapper: (data: Out) => NextOut[]): ArrayTask<In, NextOut>;
|
|
28
30
|
clone(): Task<In, Out>;
|
|
29
31
|
}
|
|
32
|
+
export declare class HttpContextImpl<D, PageParams> implements HttpContext<D, PageParams> {
|
|
33
|
+
log: Logger;
|
|
34
|
+
startTime: Date;
|
|
35
|
+
executionId: string;
|
|
36
|
+
activation?: Activation;
|
|
37
|
+
data: D;
|
|
38
|
+
connectionVariables: Record<string, any>;
|
|
39
|
+
pageParams?: PageParams;
|
|
40
|
+
private dynamicFetcher?;
|
|
41
|
+
private staticFetcher;
|
|
42
|
+
constructor(ctx: Context<D>, connectionVars: Record<string, any>, staticFetcher: typeof fetch, dynamicFetcher?: DynamicFetcher, pageParams?: PageParams);
|
|
43
|
+
get fetch(): typeof globalThis.fetch;
|
|
44
|
+
nextPage(nextParams: PageParams): Promise<void>;
|
|
45
|
+
}
|
|
30
46
|
export declare function http<In = any, Out = any, PageParams = unknown>(taskId: string, opts: HttpOptions<In, Out, PageParams>, fn: HttpContextFunc<In, Out, PageParams>): Task<In, Out>;
|
|
31
47
|
//# sourceMappingURL=HttpTask.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HttpTask.d.ts","sourceRoot":"","sources":["../../../../src/src/dsl/tasks/HttpTask.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"HttpTask.d.ts","sourceRoot":"","sources":["../../../../src/src/dsl/tasks/HttpTask.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
var _a;
|
|
2
2
|
import { ensureTask } from '../ensureTask.js';
|
|
3
|
+
import { wrapDynamicFetcher } from '../http/types.js';
|
|
3
4
|
import { TaskType } from '../Task.js';
|
|
4
5
|
import { BackgroundTask } from './BackgroundTask.js';
|
|
5
6
|
import { CatchTask } from './CatchTask.js';
|
|
@@ -55,6 +56,87 @@ export class HttpTaskImpl {
|
|
|
55
56
|
}
|
|
56
57
|
}
|
|
57
58
|
_a = TaskType;
|
|
59
|
+
export class HttpContextImpl {
|
|
60
|
+
constructor(ctx, connectionVars, staticFetcher, dynamicFetcher, pageParams) {
|
|
61
|
+
Object.defineProperty(this, "log", {
|
|
62
|
+
enumerable: true,
|
|
63
|
+
configurable: true,
|
|
64
|
+
writable: true,
|
|
65
|
+
value: void 0
|
|
66
|
+
});
|
|
67
|
+
Object.defineProperty(this, "startTime", {
|
|
68
|
+
enumerable: true,
|
|
69
|
+
configurable: true,
|
|
70
|
+
writable: true,
|
|
71
|
+
value: void 0
|
|
72
|
+
});
|
|
73
|
+
Object.defineProperty(this, "executionId", {
|
|
74
|
+
enumerable: true,
|
|
75
|
+
configurable: true,
|
|
76
|
+
writable: true,
|
|
77
|
+
value: void 0
|
|
78
|
+
});
|
|
79
|
+
Object.defineProperty(this, "activation", {
|
|
80
|
+
enumerable: true,
|
|
81
|
+
configurable: true,
|
|
82
|
+
writable: true,
|
|
83
|
+
value: void 0
|
|
84
|
+
});
|
|
85
|
+
Object.defineProperty(this, "data", {
|
|
86
|
+
enumerable: true,
|
|
87
|
+
configurable: true,
|
|
88
|
+
writable: true,
|
|
89
|
+
value: void 0
|
|
90
|
+
});
|
|
91
|
+
Object.defineProperty(this, "connectionVariables", {
|
|
92
|
+
enumerable: true,
|
|
93
|
+
configurable: true,
|
|
94
|
+
writable: true,
|
|
95
|
+
value: {}
|
|
96
|
+
});
|
|
97
|
+
Object.defineProperty(this, "pageParams", {
|
|
98
|
+
enumerable: true,
|
|
99
|
+
configurable: true,
|
|
100
|
+
writable: true,
|
|
101
|
+
value: void 0
|
|
102
|
+
}); // TODO: Implement page params
|
|
103
|
+
Object.defineProperty(this, "dynamicFetcher", {
|
|
104
|
+
enumerable: true,
|
|
105
|
+
configurable: true,
|
|
106
|
+
writable: true,
|
|
107
|
+
value: void 0
|
|
108
|
+
});
|
|
109
|
+
Object.defineProperty(this, "staticFetcher", {
|
|
110
|
+
enumerable: true,
|
|
111
|
+
configurable: true,
|
|
112
|
+
writable: true,
|
|
113
|
+
value: void 0
|
|
114
|
+
});
|
|
115
|
+
this.log = ctx.log;
|
|
116
|
+
this.executionId = ctx.executionId;
|
|
117
|
+
this.startTime = ctx.startTime;
|
|
118
|
+
this.activation = ctx.activation;
|
|
119
|
+
this.data = ctx.data;
|
|
120
|
+
this.pageParams = pageParams;
|
|
121
|
+
this.connectionVariables = connectionVars;
|
|
122
|
+
this.dynamicFetcher = dynamicFetcher;
|
|
123
|
+
this.staticFetcher = staticFetcher;
|
|
124
|
+
}
|
|
125
|
+
get fetch() {
|
|
126
|
+
// TODO: this will need some work to make dynamic and static connections work in tandem.
|
|
127
|
+
let fetch;
|
|
128
|
+
if (this.dynamicFetcher && this.activation) {
|
|
129
|
+
fetch = wrapDynamicFetcher(this.dynamicFetcher, this.activation.id);
|
|
130
|
+
}
|
|
131
|
+
else {
|
|
132
|
+
fetch = this.staticFetcher;
|
|
133
|
+
}
|
|
134
|
+
return fetch;
|
|
135
|
+
}
|
|
136
|
+
async nextPage(nextParams) {
|
|
137
|
+
throw new Error("Method not implemented.");
|
|
138
|
+
}
|
|
139
|
+
}
|
|
58
140
|
export function http(taskId, opts, fn) {
|
|
59
141
|
return new HttpTaskImpl(taskId, opts, fn);
|
|
60
142
|
}
|
|
@@ -1,14 +1,18 @@
|
|
|
1
|
+
import { Activation } from '../http/types.js';
|
|
1
2
|
import { Taskable } from '../Task.js';
|
|
2
3
|
import { Trigger, TriggerType } from '../Trigger.js';
|
|
3
4
|
import { Workflow } from '../Workflow.js';
|
|
4
5
|
export type ScheduleData = Record<string, never>;
|
|
6
|
+
export type PrebuiltPredicate = 'all';
|
|
7
|
+
export type ActivationPredicate = PrebuiltPredicate | ((a?: Activation) => boolean);
|
|
5
8
|
export declare class ScheduleTrigger implements Trigger<ScheduleData> {
|
|
6
9
|
id: string;
|
|
7
10
|
[TriggerType]: string;
|
|
8
11
|
schedule: string;
|
|
9
|
-
|
|
12
|
+
activationPredicate?: ActivationPredicate;
|
|
13
|
+
constructor(id: string, schedule: string, activationPredicate?: ActivationPredicate);
|
|
10
14
|
then<OO>(task: Taskable<ScheduleData, OO>): Workflow<OO>;
|
|
11
15
|
catch<OO>(error: any): Workflow<OO>;
|
|
12
16
|
}
|
|
13
|
-
export declare function schedule(id: string, schedule: string): Workflow<ScheduleData>;
|
|
17
|
+
export declare function schedule(id: string, schedule: string, activationPredicate?: ActivationPredicate): Workflow<ScheduleData>;
|
|
14
18
|
//# sourceMappingURL=ScheduleTrigger.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ScheduleTrigger.d.ts","sourceRoot":"","sources":["../../../../src/src/dsl/triggers/ScheduleTrigger.ts"],"names":[],"mappings":"AACA,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,MAAM,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;AAEjD,qBAAa,eAAgB,YAAW,OAAO,CAAC,YAAY,CAAC;IACzD,EAAE,EAAE,MAAM,CAAC;IAEX,CAAC,WAAW,CAAC,EAAE,MAAM,CAAc;IAEnC,QAAQ,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"ScheduleTrigger.d.ts","sourceRoot":"","sources":["../../../../src/src/dsl/triggers/ScheduleTrigger.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,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,MAAM,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;AAEjD,MAAM,MAAM,iBAAiB,GAAG,KAAK,CAAC;AAEtC,MAAM,MAAM,mBAAmB,GAAG,iBAAiB,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,UAAU,KAAK,OAAO,CAAC,CAAC;AAEpF,qBAAa,eAAgB,YAAW,OAAO,CAAC,YAAY,CAAC;IACzD,EAAE,EAAE,MAAM,CAAC;IAEX,CAAC,WAAW,CAAC,EAAE,MAAM,CAAc;IAEnC,QAAQ,EAAE,MAAM,CAAC;IAEjB,mBAAmB,CAAC,EAAE,mBAAmB,CAAC;gBAE9B,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,mBAAmB,CAAC,EAAE,mBAAmB;IAMnF,IAAI,CAAC,EAAE,EAAE,IAAI,EAAE,QAAQ,CAAC,YAAY,EAAE,EAAE,CAAC,GAAG,QAAQ,CAAC,EAAE,CAAC;IAIxD,KAAK,CAAC,EAAE,EAAE,KAAK,EAAE,GAAG,GAAG,QAAQ,CAAC,EAAE,CAAC;CAGtC;AAED,wBAAgB,QAAQ,CAAC,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,mBAAmB,CAAC,EAAE,mBAAmB,GAAG,QAAQ,CAAC,YAAY,CAAC,CAExH"}
|
|
@@ -3,7 +3,7 @@ import { ensureTask } from "../ensureTask.js";
|
|
|
3
3
|
import { TriggerType } from '../Trigger.js';
|
|
4
4
|
import { WorkflowImpl } from '../Workflow.js';
|
|
5
5
|
export class ScheduleTrigger {
|
|
6
|
-
constructor(id, schedule) {
|
|
6
|
+
constructor(id, schedule, activationPredicate) {
|
|
7
7
|
Object.defineProperty(this, "id", {
|
|
8
8
|
enumerable: true,
|
|
9
9
|
configurable: true,
|
|
@@ -22,8 +22,15 @@ export class ScheduleTrigger {
|
|
|
22
22
|
writable: true,
|
|
23
23
|
value: void 0
|
|
24
24
|
});
|
|
25
|
+
Object.defineProperty(this, "activationPredicate", {
|
|
26
|
+
enumerable: true,
|
|
27
|
+
configurable: true,
|
|
28
|
+
writable: true,
|
|
29
|
+
value: void 0
|
|
30
|
+
});
|
|
25
31
|
this.id = id;
|
|
26
32
|
this.schedule = schedule;
|
|
33
|
+
this.activationPredicate = activationPredicate;
|
|
27
34
|
}
|
|
28
35
|
then(task) {
|
|
29
36
|
return new WorkflowImpl(this, ensureTask(task));
|
|
@@ -33,6 +40,6 @@ export class ScheduleTrigger {
|
|
|
33
40
|
}
|
|
34
41
|
}
|
|
35
42
|
_a = TriggerType;
|
|
36
|
-
export function schedule(id, schedule) {
|
|
37
|
-
return new ScheduleTrigger(id, schedule);
|
|
43
|
+
export function schedule(id, schedule, activationPredicate) {
|
|
44
|
+
return new ScheduleTrigger(id, schedule, activationPredicate);
|
|
38
45
|
}
|
|
@@ -15,6 +15,7 @@ export declare class MemoryInterpreter {
|
|
|
15
15
|
private contextProvider;
|
|
16
16
|
private roundTripperFactory;
|
|
17
17
|
private router;
|
|
18
|
+
private connectionProvider;
|
|
18
19
|
private registeredWorkflows;
|
|
19
20
|
constructor(options?: MemoryInterpreterOptions);
|
|
20
21
|
register<O>(workflow: Workflow<O>, options?: MemoryInterpreterOptions): {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MemoryInterpreter.d.ts","sourceRoot":"","sources":["../../../../src/src/interpreter/memory/MemoryInterpreter.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAuB,MAAM,kCAAkC,CAAC;AACxF,OAAO,EAAE,QAAQ,EAAgB,MAAM,uBAAuB,CAAC;AAC/D,OAAO,EAAE,MAAM,EAAE,MAAM,uCAAuC,CAAC;AAC/D,OAAO,EAAmB,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"MemoryInterpreter.d.ts","sourceRoot":"","sources":["../../../../src/src/interpreter/memory/MemoryInterpreter.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAuB,MAAM,kCAAkC,CAAC;AACxF,OAAO,EAAE,QAAQ,EAAgB,MAAM,uBAAuB,CAAC;AAC/D,OAAO,EAAE,MAAM,EAAE,MAAM,uCAAuC,CAAC;AAC/D,OAAO,EAAmB,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAQ9E,MAAM,MAAM,wBAAwB,GAAG;IACnC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,kBAAkB,CAAC;IAC9B,eAAe,CAAC,EAAE,eAAe,CAAC;IAClC,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,sBAAsB,CAAC,EAAE,OAAO,CAAC;CACpC,CAAC;AAEF,qBAAa,iBAAiB;IAC1B,OAAO,CAAC,GAAG,CAAS;IACpB,OAAO,CAAC,QAAQ,CAAqB;IACrC,OAAO,CAAC,eAAe,CAAkB;IACzC,OAAO,CAAC,mBAAmB,CAAsB;IACjD,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,kBAAkB,CAAqB;IAE/C,OAAO,CAAC,mBAAmB,CAKnB;gBAEI,OAAO,GAAE,wBAA6B;IASlD,QAAQ,CAAC,CAAC,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,EAAE,wBAAwB;kBAE3C,GAAG;eACN,GAAG;;;;IAuCpB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CAwD/B"}
|
|
@@ -5,8 +5,9 @@ import { WorkflowImpl } from '../../dsl/Workflow.js';
|
|
|
5
5
|
import { ObservableCompiler } from './ObservableCompiler.js';
|
|
6
6
|
import { ConsoleLogger } from '../../observability/logging/ConsoleLogger.js';
|
|
7
7
|
import { DefaultRoundTripperFactory } from '../../dsl/http/default.js';
|
|
8
|
-
import { CreateFromEnv } from '../../dsl/http/versori/roundtripper.js';
|
|
9
8
|
import express from 'express';
|
|
9
|
+
import { PlatformAPIClient } from '../../dsl/http/versori/platformapi.js';
|
|
10
|
+
import { VersoriRoundTripperFactory } from '../../dsl/http/versori/roundtripper.js';
|
|
10
11
|
export class MemoryInterpreter {
|
|
11
12
|
constructor(options = {}) {
|
|
12
13
|
Object.defineProperty(this, "log", {
|
|
@@ -39,6 +40,12 @@ export class MemoryInterpreter {
|
|
|
39
40
|
writable: true,
|
|
40
41
|
value: void 0
|
|
41
42
|
});
|
|
43
|
+
Object.defineProperty(this, "connectionProvider", {
|
|
44
|
+
enumerable: true,
|
|
45
|
+
configurable: true,
|
|
46
|
+
writable: true,
|
|
47
|
+
value: void 0
|
|
48
|
+
});
|
|
42
49
|
Object.defineProperty(this, "registeredWorkflows", {
|
|
43
50
|
enumerable: true,
|
|
44
51
|
configurable: true,
|
|
@@ -48,8 +55,9 @@ export class MemoryInterpreter {
|
|
|
48
55
|
this.log = options.logger || new ConsoleLogger('debug');
|
|
49
56
|
this.compiler = options.compiler || new ObservableCompiler();
|
|
50
57
|
this.contextProvider = options.contextProvider || new ContextProviderImpl(this.log);
|
|
51
|
-
this.roundTripperFactory = options.skipVersoriCredentials ? new DefaultRoundTripperFactory() :
|
|
58
|
+
this.roundTripperFactory = options.skipVersoriCredentials ? new DefaultRoundTripperFactory() : VersoriRoundTripperFactory.fromEnv(this.log);
|
|
52
59
|
this.router = express.Router();
|
|
60
|
+
this.connectionProvider = PlatformAPIClient.fromEnv();
|
|
53
61
|
}
|
|
54
62
|
register(workflow, options) {
|
|
55
63
|
const registration = {
|
|
@@ -73,7 +81,8 @@ export class MemoryInterpreter {
|
|
|
73
81
|
log: this.log,
|
|
74
82
|
contextProvider: this.contextProvider,
|
|
75
83
|
roundTripperFactory: this.roundTripperFactory,
|
|
76
|
-
router: this.router
|
|
84
|
+
router: this.router,
|
|
85
|
+
connectionProvider: this.connectionProvider
|
|
77
86
|
};
|
|
78
87
|
registration.trigger$ = this.compiler.compileTrigger(compilerContext, workflow.trigger, combinedSignal);
|
|
79
88
|
registration.task$ = this.compiler.compileTask(compilerContext, workflow.task);
|