@versori/run 0.1.0-alpha.12 → 0.1.0-alpha.13
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/@nats-io/transport-deno/3.0.2/src/connect.d.ts +3 -0
- package/esm/deps/jsr.io/@nats-io/transport-deno/3.0.2/src/connect.d.ts.map +1 -0
- package/esm/deps/jsr.io/@nats-io/transport-deno/3.0.2/src/connect.js +28 -0
- package/esm/deps/jsr.io/@nats-io/transport-deno/3.0.2/src/deno_transport.d.ts +35 -0
- package/esm/deps/jsr.io/@nats-io/transport-deno/3.0.2/src/deno_transport.d.ts.map +1 -0
- package/esm/deps/jsr.io/@nats-io/transport-deno/3.0.2/src/deno_transport.js +328 -0
- package/esm/deps/jsr.io/@nats-io/transport-deno/3.0.2/src/mod.d.ts +3 -0
- package/esm/deps/jsr.io/@nats-io/transport-deno/3.0.2/src/mod.d.ts.map +1 -0
- package/esm/deps/jsr.io/@nats-io/transport-deno/3.0.2/src/mod.js +2 -0
- package/esm/deps/jsr.io/@nats-io/transport-deno/3.0.2/src/version.d.ts +2 -0
- package/esm/deps/jsr.io/@nats-io/transport-deno/3.0.2/src/version.d.ts.map +1 -0
- package/esm/deps/jsr.io/@nats-io/transport-deno/3.0.2/src/version.js +2 -0
- package/esm/deps/jsr.io/@std/bytes/1.0.5/_types.d.ts +9 -0
- package/esm/deps/jsr.io/@std/bytes/1.0.5/_types.d.ts.map +1 -0
- package/esm/deps/jsr.io/@std/bytes/1.0.5/_types.js +2 -0
- package/esm/deps/jsr.io/@std/bytes/1.0.5/concat.d.ts +21 -0
- package/esm/deps/jsr.io/@std/bytes/1.0.5/concat.d.ts.map +1 -0
- package/esm/deps/jsr.io/@std/bytes/1.0.5/concat.js +32 -0
- package/esm/deps/jsr.io/@std/bytes/1.0.5/copy.d.ts +41 -0
- package/esm/deps/jsr.io/@std/bytes/1.0.5/copy.d.ts.map +1 -0
- package/esm/deps/jsr.io/@std/bytes/1.0.5/copy.js +50 -0
- package/{script/deps/jsr.io/@std/fmt/1.0.6 → esm/deps/jsr.io/@std/fmt/1.0.5}/colors.d.ts.map +1 -1
- package/esm/deps/jsr.io/@std/fs/{1.0.16 → 1.0.11}/exists.d.ts.map +1 -1
- package/esm/deps/jsr.io/@std/io/0.225.2/_common.d.ts +3 -0
- package/esm/deps/jsr.io/@std/io/0.225.2/_common.d.ts.map +1 -0
- package/esm/deps/jsr.io/@std/io/0.225.2/_common.js +8 -0
- package/esm/deps/jsr.io/@std/io/0.225.2/_constants.d.ts +3 -0
- package/esm/deps/jsr.io/@std/io/0.225.2/_constants.d.ts.map +1 -0
- package/esm/deps/jsr.io/@std/io/0.225.2/_constants.js +4 -0
- package/esm/deps/jsr.io/@std/io/0.225.2/buffer.d.ts +321 -0
- package/esm/deps/jsr.io/@std/io/0.225.2/buffer.d.ts.map +1 -0
- package/esm/deps/jsr.io/@std/io/0.225.2/buffer.js +488 -0
- package/esm/deps/jsr.io/@std/io/0.225.2/copy.d.ts +25 -0
- package/esm/deps/jsr.io/@std/io/0.225.2/copy.d.ts.map +1 -0
- package/esm/deps/jsr.io/@std/io/0.225.2/copy.js +36 -0
- package/esm/deps/jsr.io/@std/io/0.225.2/iterate_reader.d.ts +80 -0
- package/esm/deps/jsr.io/@std/io/0.225.2/iterate_reader.d.ts.map +1 -0
- package/esm/deps/jsr.io/@std/io/0.225.2/iterate_reader.js +96 -0
- package/esm/deps/jsr.io/@std/io/0.225.2/mod.d.ts +25 -0
- package/esm/deps/jsr.io/@std/io/0.225.2/mod.d.ts.map +1 -0
- package/esm/deps/jsr.io/@std/io/0.225.2/mod.js +25 -0
- package/esm/deps/jsr.io/@std/io/0.225.2/read_all.d.ts +42 -0
- package/esm/deps/jsr.io/@std/io/0.225.2/read_all.d.ts.map +1 -0
- package/esm/deps/jsr.io/@std/io/0.225.2/read_all.js +72 -0
- package/esm/deps/jsr.io/@std/io/0.225.2/reader_from_stream_reader.d.ts +20 -0
- package/esm/deps/jsr.io/@std/io/0.225.2/reader_from_stream_reader.d.ts.map +1 -0
- package/esm/deps/jsr.io/@std/io/0.225.2/reader_from_stream_reader.js +36 -0
- package/esm/deps/jsr.io/@std/io/0.225.2/to_readable_stream.d.ts +40 -0
- package/esm/deps/jsr.io/@std/io/0.225.2/to_readable_stream.d.ts.map +1 -0
- package/esm/deps/jsr.io/@std/io/0.225.2/to_readable_stream.js +54 -0
- package/esm/deps/jsr.io/@std/io/0.225.2/to_writable_stream.d.ts +27 -0
- package/esm/deps/jsr.io/@std/io/0.225.2/to_writable_stream.d.ts.map +1 -0
- package/esm/deps/jsr.io/@std/io/0.225.2/to_writable_stream.js +44 -0
- package/esm/deps/jsr.io/@std/log/0.224.14/base_handler.d.ts +21 -0
- package/esm/deps/jsr.io/@std/log/0.224.14/base_handler.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 +14 -4
- package/esm/src/context/Context.d.ts.map +1 -1
- package/esm/src/context/Context.js +16 -10
- package/esm/src/context/ContextProvider.d.ts +3 -4
- package/esm/src/context/ContextProvider.d.ts.map +1 -1
- package/esm/src/context/ContextProvider.js +5 -5
- package/esm/src/dsl/http/versori/platformapi.d.ts +2 -1
- package/esm/src/dsl/http/versori/platformapi.d.ts.map +1 -1
- package/esm/src/dsl/http/versori/platformapi.js +12 -1
- package/esm/src/dsl/http/versori/roundtripper.d.ts.map +1 -1
- package/esm/src/dsl/http/versori/roundtripper.js +32 -35
- package/esm/src/dsl/triggers/WebhookTrigger.d.ts +45 -3
- package/esm/src/dsl/triggers/WebhookTrigger.d.ts.map +1 -1
- package/esm/src/dsl/triggers/WebhookTrigger.js +10 -6
- package/esm/src/interpreter/memory/MemoryInterpreter.d.ts +6 -1
- package/esm/src/interpreter/memory/MemoryInterpreter.d.ts.map +1 -1
- package/esm/src/interpreter/memory/MemoryInterpreter.js +67 -5
- package/esm/src/interpreter/memory/compilers/webhook.d.ts.map +1 -1
- package/esm/src/interpreter/memory/compilers/webhook.js +106 -32
- package/esm/src/kv/nats/NatsKeyValueProvider.d.ts +2 -1
- package/esm/src/kv/nats/NatsKeyValueProvider.d.ts.map +1 -1
- package/esm/src/kv/nats/NatsKeyValueProvider.js +1 -1
- package/package.json +2 -2
- package/script/deps/jsr.io/@nats-io/transport-deno/3.0.2/src/connect.d.ts +3 -0
- package/script/deps/jsr.io/@nats-io/transport-deno/3.0.2/src/connect.d.ts.map +1 -0
- package/script/deps/jsr.io/@nats-io/transport-deno/3.0.2/src/connect.js +31 -0
- package/script/deps/jsr.io/@nats-io/transport-deno/3.0.2/src/deno_transport.d.ts +35 -0
- package/script/deps/jsr.io/@nats-io/transport-deno/3.0.2/src/deno_transport.d.ts.map +1 -0
- package/script/deps/jsr.io/@nats-io/transport-deno/3.0.2/src/deno_transport.js +333 -0
- package/script/deps/jsr.io/@nats-io/transport-deno/3.0.2/src/mod.d.ts +3 -0
- package/script/deps/jsr.io/@nats-io/transport-deno/3.0.2/src/mod.d.ts.map +1 -0
- package/script/deps/jsr.io/@nats-io/transport-deno/3.0.2/src/mod.js +20 -0
- package/script/deps/jsr.io/@nats-io/transport-deno/3.0.2/src/version.d.ts +2 -0
- package/script/deps/jsr.io/@nats-io/transport-deno/3.0.2/src/version.d.ts.map +1 -0
- package/script/deps/jsr.io/@nats-io/transport-deno/3.0.2/src/version.js +5 -0
- package/script/deps/jsr.io/@std/bytes/1.0.5/_types.d.ts +9 -0
- package/script/deps/jsr.io/@std/bytes/1.0.5/_types.d.ts.map +1 -0
- package/script/deps/jsr.io/@std/bytes/1.0.5/_types.js +3 -0
- package/script/deps/jsr.io/@std/bytes/1.0.5/concat.d.ts +21 -0
- package/script/deps/jsr.io/@std/bytes/1.0.5/concat.d.ts.map +1 -0
- package/script/deps/jsr.io/@std/bytes/1.0.5/concat.js +35 -0
- package/script/deps/jsr.io/@std/bytes/1.0.5/copy.d.ts +41 -0
- package/script/deps/jsr.io/@std/bytes/1.0.5/copy.d.ts.map +1 -0
- package/script/deps/jsr.io/@std/bytes/1.0.5/copy.js +53 -0
- package/{esm/deps/jsr.io/@std/fmt/1.0.6 → script/deps/jsr.io/@std/fmt/1.0.5}/colors.d.ts.map +1 -1
- package/script/deps/jsr.io/@std/fs/{1.0.16 → 1.0.11}/exists.d.ts.map +1 -1
- package/script/deps/jsr.io/@std/io/0.225.2/_common.d.ts +3 -0
- package/script/deps/jsr.io/@std/io/0.225.2/_common.d.ts.map +1 -0
- package/script/deps/jsr.io/@std/io/0.225.2/_common.js +11 -0
- package/script/deps/jsr.io/@std/io/0.225.2/_constants.d.ts +3 -0
- package/script/deps/jsr.io/@std/io/0.225.2/_constants.d.ts.map +1 -0
- package/script/deps/jsr.io/@std/io/0.225.2/_constants.js +7 -0
- package/script/deps/jsr.io/@std/io/0.225.2/buffer.d.ts +321 -0
- package/script/deps/jsr.io/@std/io/0.225.2/buffer.d.ts.map +1 -0
- package/script/deps/jsr.io/@std/io/0.225.2/buffer.js +492 -0
- package/script/deps/jsr.io/@std/io/0.225.2/copy.d.ts +25 -0
- package/script/deps/jsr.io/@std/io/0.225.2/copy.d.ts.map +1 -0
- package/script/deps/jsr.io/@std/io/0.225.2/copy.js +39 -0
- package/script/deps/jsr.io/@std/io/0.225.2/iterate_reader.d.ts +80 -0
- package/script/deps/jsr.io/@std/io/0.225.2/iterate_reader.d.ts.map +1 -0
- package/script/deps/jsr.io/@std/io/0.225.2/iterate_reader.js +100 -0
- package/script/deps/jsr.io/@std/io/0.225.2/mod.d.ts +25 -0
- package/script/deps/jsr.io/@std/io/0.225.2/mod.d.ts.map +1 -0
- package/script/deps/jsr.io/@std/io/0.225.2/mod.js +41 -0
- package/script/deps/jsr.io/@std/io/0.225.2/read_all.d.ts +42 -0
- package/script/deps/jsr.io/@std/io/0.225.2/read_all.d.ts.map +1 -0
- package/script/deps/jsr.io/@std/io/0.225.2/read_all.js +76 -0
- package/script/deps/jsr.io/@std/io/0.225.2/reader_from_stream_reader.d.ts +20 -0
- package/script/deps/jsr.io/@std/io/0.225.2/reader_from_stream_reader.d.ts.map +1 -0
- package/script/deps/jsr.io/@std/io/0.225.2/reader_from_stream_reader.js +39 -0
- package/script/deps/jsr.io/@std/io/0.225.2/to_readable_stream.d.ts +40 -0
- package/script/deps/jsr.io/@std/io/0.225.2/to_readable_stream.d.ts.map +1 -0
- package/script/deps/jsr.io/@std/io/0.225.2/to_readable_stream.js +57 -0
- package/script/deps/jsr.io/@std/io/0.225.2/to_writable_stream.d.ts +27 -0
- package/script/deps/jsr.io/@std/io/0.225.2/to_writable_stream.d.ts.map +1 -0
- package/script/deps/jsr.io/@std/io/0.225.2/to_writable_stream.js +47 -0
- package/script/deps/jsr.io/@std/log/0.224.14/base_handler.d.ts +21 -0
- package/script/deps/jsr.io/@std/log/0.224.14/base_handler.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 +14 -4
- package/script/src/context/Context.d.ts.map +1 -1
- package/script/src/context/Context.js +16 -10
- package/script/src/context/ContextProvider.d.ts +3 -4
- package/script/src/context/ContextProvider.d.ts.map +1 -1
- package/script/src/context/ContextProvider.js +5 -5
- package/script/src/dsl/http/versori/platformapi.d.ts +2 -1
- package/script/src/dsl/http/versori/platformapi.d.ts.map +1 -1
- package/script/src/dsl/http/versori/platformapi.js +12 -1
- package/script/src/dsl/http/versori/roundtripper.d.ts.map +1 -1
- package/script/src/dsl/http/versori/roundtripper.js +32 -35
- package/script/src/dsl/triggers/WebhookTrigger.d.ts +45 -3
- package/script/src/dsl/triggers/WebhookTrigger.d.ts.map +1 -1
- package/script/src/dsl/triggers/WebhookTrigger.js +10 -6
- package/script/src/interpreter/memory/MemoryInterpreter.d.ts +6 -1
- package/script/src/interpreter/memory/MemoryInterpreter.d.ts.map +1 -1
- package/script/src/interpreter/memory/MemoryInterpreter.js +67 -5
- package/script/src/interpreter/memory/compilers/webhook.d.ts.map +1 -1
- package/script/src/interpreter/memory/compilers/webhook.js +109 -32
- package/script/src/kv/nats/NatsKeyValueProvider.d.ts +2 -1
- package/script/src/kv/nats/NatsKeyValueProvider.d.ts.map +1 -1
- package/script/src/kv/nats/NatsKeyValueProvider.js +3 -3
- /package/esm/deps/jsr.io/@std/fmt/{1.0.6 → 1.0.5}/colors.d.ts +0 -0
- /package/esm/deps/jsr.io/@std/fmt/{1.0.6 → 1.0.5}/colors.js +0 -0
- /package/esm/deps/jsr.io/@std/fs/{1.0.16 → 1.0.11}/exists.d.ts +0 -0
- /package/esm/deps/jsr.io/@std/fs/{1.0.16 → 1.0.11}/exists.js +0 -0
- /package/script/deps/jsr.io/@std/fmt/{1.0.6 → 1.0.5}/colors.d.ts +0 -0
- /package/script/deps/jsr.io/@std/fmt/{1.0.6 → 1.0.5}/colors.js +0 -0
- /package/script/deps/jsr.io/@std/fs/{1.0.16 → 1.0.11}/exists.d.ts +0 -0
- /package/script/deps/jsr.io/@std/fs/{1.0.16 → 1.0.11}/exists.js +0 -0
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
export class ContextImpl {
|
|
2
|
-
constructor(log, kvp, executionId, startTime, data,
|
|
2
|
+
constructor(log, kvp, executionId, startTime, data, options) {
|
|
3
3
|
Object.defineProperty(this, "log", {
|
|
4
4
|
enumerable: true,
|
|
5
5
|
configurable: true,
|
|
@@ -18,25 +18,25 @@ export class ContextImpl {
|
|
|
18
18
|
writable: true,
|
|
19
19
|
value: void 0
|
|
20
20
|
});
|
|
21
|
-
Object.defineProperty(this, "
|
|
21
|
+
Object.defineProperty(this, "data", {
|
|
22
22
|
enumerable: true,
|
|
23
23
|
configurable: true,
|
|
24
24
|
writable: true,
|
|
25
25
|
value: void 0
|
|
26
26
|
});
|
|
27
|
-
Object.defineProperty(this, "
|
|
27
|
+
Object.defineProperty(this, "idx", {
|
|
28
28
|
enumerable: true,
|
|
29
29
|
configurable: true,
|
|
30
30
|
writable: true,
|
|
31
31
|
value: void 0
|
|
32
32
|
});
|
|
33
|
-
Object.defineProperty(this, "
|
|
33
|
+
Object.defineProperty(this, "kvp", {
|
|
34
34
|
enumerable: true,
|
|
35
35
|
configurable: true,
|
|
36
36
|
writable: true,
|
|
37
37
|
value: void 0
|
|
38
38
|
});
|
|
39
|
-
Object.defineProperty(this, "
|
|
39
|
+
Object.defineProperty(this, "options", {
|
|
40
40
|
enumerable: true,
|
|
41
41
|
configurable: true,
|
|
42
42
|
writable: true,
|
|
@@ -45,25 +45,31 @@ export class ContextImpl {
|
|
|
45
45
|
this.log = log;
|
|
46
46
|
this.executionId = executionId;
|
|
47
47
|
this.startTime = startTime;
|
|
48
|
-
this.activation = activation;
|
|
49
48
|
this.data = data;
|
|
50
49
|
this.idx = void 0;
|
|
51
50
|
this.kvp = kvp;
|
|
51
|
+
this.options = options;
|
|
52
|
+
}
|
|
53
|
+
get activation() {
|
|
54
|
+
return this.options.activation;
|
|
52
55
|
}
|
|
53
56
|
setIndex(idx) {
|
|
54
|
-
const next = new ContextImpl(this.log, this.kvp, this.executionId, this.startTime, this.data, this.
|
|
57
|
+
const next = new ContextImpl(this.log, this.kvp, this.executionId, this.startTime, this.data, this.options);
|
|
55
58
|
next.idx = idx;
|
|
56
59
|
return next;
|
|
57
60
|
}
|
|
58
61
|
withActivation(activation) {
|
|
59
62
|
// Essentially makes activation immutable once set
|
|
60
63
|
if (this.activation) {
|
|
61
|
-
|
|
64
|
+
throw new Error('Activation is already set');
|
|
62
65
|
}
|
|
63
|
-
return new ContextImpl(this.log, this.kvp, this.executionId, this.startTime, this.data,
|
|
66
|
+
return new ContextImpl(this.log, this.kvp, this.executionId, this.startTime, this.data, {
|
|
67
|
+
...this.options,
|
|
68
|
+
activation,
|
|
69
|
+
});
|
|
64
70
|
}
|
|
65
71
|
withData(data) {
|
|
66
|
-
return new ContextImpl(this.log, this.kvp, this.executionId, this.startTime, data, this.
|
|
72
|
+
return new ContextImpl(this.log, this.kvp, this.executionId, this.startTime, data, this.options);
|
|
67
73
|
}
|
|
68
74
|
openKv(scope = ':project:') {
|
|
69
75
|
if (scope === ':execution:') {
|
|
@@ -1,16 +1,15 @@
|
|
|
1
1
|
import { KeyValueProvider } from '../kv/KeyValue.js';
|
|
2
2
|
import { Logger } from '../observability/logging/Logger.js';
|
|
3
|
-
import { Context, InternalContext } from './Context.js';
|
|
4
|
-
import { Activation } from '../dsl/http/types.js';
|
|
3
|
+
import { Context, ContextOptions, InternalContext } from './Context.js';
|
|
5
4
|
export interface ContextProvider {
|
|
6
|
-
create<D>(data: D,
|
|
5
|
+
create<D>(data: D, options?: ContextOptions): InternalContext<D, void>;
|
|
7
6
|
destroy(ctx: Context<any>): Promise<void>;
|
|
8
7
|
}
|
|
9
8
|
export declare class ContextProviderImpl implements ContextProvider {
|
|
10
9
|
log: Logger;
|
|
11
10
|
kvp: KeyValueProvider;
|
|
12
11
|
constructor(log: Logger, kvp: KeyValueProvider);
|
|
13
|
-
create<D>(data: D,
|
|
12
|
+
create<D>(data: D, options?: ContextOptions): InternalContext<D, void>;
|
|
14
13
|
destroy(ctx: Context<any>): Promise<void>;
|
|
15
14
|
}
|
|
16
15
|
//# sourceMappingURL=ContextProvider.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ContextProvider.d.ts","sourceRoot":"","sources":["../../../src/src/context/ContextProvider.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,EAAE,MAAM,EAAE,MAAM,oCAAoC,CAAC;AAC5D,OAAO,EAAE,OAAO,EAAe,
|
|
1
|
+
{"version":3,"file":"ContextProvider.d.ts","sourceRoot":"","sources":["../../../src/src/context/ContextProvider.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,EAAE,MAAM,EAAE,MAAM,oCAAoC,CAAC;AAC5D,OAAO,EAAE,OAAO,EAAe,cAAc,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAGrF,MAAM,WAAW,eAAe;IAC5B,MAAM,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,eAAe,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;IACvE,OAAO,CAAC,GAAG,EAAE,OAAO,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAC7C;AAED,qBAAa,mBAAoB,YAAW,eAAe;IACvD,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,gBAAgB,CAAC;gBAEV,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,gBAAgB;IAK9C,MAAM,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,OAAO,GAAE,cAAmB,GAAG,eAAe,CAAC,CAAC,EAAE,IAAI,CAAC;IAe1E,OAAO,CAAC,GAAG,EAAE,OAAO,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;CAM5C"}
|
|
@@ -17,16 +17,16 @@ export class ContextProviderImpl {
|
|
|
17
17
|
this.log = log;
|
|
18
18
|
this.kvp = kvp;
|
|
19
19
|
}
|
|
20
|
-
create(data,
|
|
20
|
+
create(data, options = {}) {
|
|
21
21
|
const executionId = ulid();
|
|
22
22
|
let logger = this.log.child({ executionId });
|
|
23
|
-
if (activation) {
|
|
23
|
+
if (options.activation) {
|
|
24
24
|
logger = logger.child({
|
|
25
|
-
activationId: activation.id,
|
|
26
|
-
externalUserId: activation.user.externalId,
|
|
25
|
+
activationId: options.activation.id,
|
|
26
|
+
externalUserId: options.activation.user.externalId,
|
|
27
27
|
});
|
|
28
28
|
}
|
|
29
|
-
return new ContextImpl(logger, this.kvp, executionId, new Date(), data,
|
|
29
|
+
return new ContextImpl(logger, this.kvp, executionId, new Date(), data, options);
|
|
30
30
|
}
|
|
31
31
|
destroy(ctx) {
|
|
32
32
|
return this.kvp.destroy({
|
|
@@ -4,7 +4,8 @@ export declare class PlatformAPIClient implements ConnectionProvider {
|
|
|
4
4
|
private orgId;
|
|
5
5
|
private envId;
|
|
6
6
|
private internalAuth;
|
|
7
|
-
|
|
7
|
+
private cache;
|
|
8
|
+
constructor(baseUrl: string, orgId: string, envId: string, cache?: Record<string, Connection>);
|
|
8
9
|
static fromEnv(): PlatformAPIClient;
|
|
9
10
|
getStaticConnection(cnxId: string): Promise<Connection | undefined>;
|
|
10
11
|
getUserActivations(userId: string): Promise<Activation[]>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"platformapi.d.ts","sourceRoot":"","sources":["../../../../../src/src/dsl/http/versori/platformapi.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAIzE,qBAAa,iBAAkB,YAAW,kBAAkB;IACxD,OAAO,CAAC,OAAO,CAAS;IAExB,OAAO,CAAC,KAAK,CAAS;IAEtB,OAAO,CAAC,KAAK,CAAS;IAEtB,OAAO,CAAC,YAAY,CAAe;
|
|
1
|
+
{"version":3,"file":"platformapi.d.ts","sourceRoot":"","sources":["../../../../../src/src/dsl/http/versori/platformapi.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAIzE,qBAAa,iBAAkB,YAAW,kBAAkB;IACxD,OAAO,CAAC,OAAO,CAAS;IAExB,OAAO,CAAC,KAAK,CAAS;IAEtB,OAAO,CAAC,KAAK,CAAS;IAEtB,OAAO,CAAC,YAAY,CAAe;IAEnC,OAAO,CAAC,KAAK,CAA6B;gBAGtC,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,MAAM,EACb,KAAK,GAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAAM;IAS1C,MAAM,CAAC,OAAO,IAAI,iBAAiB;IAY7B,mBAAmB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,GAAG,SAAS,CAAC;IAsBnE,kBAAkB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC;IAmBzD,aAAa,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,GAAG,SAAS,CAAC;IAmBpE,uBAAuB,CACzB,UAAU,EAAE,MAAM,EAClB,YAAY,EAAE,MAAM,GACrB,OAAO,CAAC,UAAU,GAAG,SAAS,CAAC;IAmB5B,eAAe,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;CAkBjD"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { envVarEnvId, envVarOrgId, envVarPlatformApiBaseURL } from './constants.js';
|
|
2
2
|
import { InternalAuth } from './internalauth.js';
|
|
3
3
|
export class PlatformAPIClient {
|
|
4
|
-
constructor(baseUrl, orgId, envId) {
|
|
4
|
+
constructor(baseUrl, orgId, envId, cache = {}) {
|
|
5
5
|
Object.defineProperty(this, "baseUrl", {
|
|
6
6
|
enumerable: true,
|
|
7
7
|
configurable: true,
|
|
@@ -26,8 +26,15 @@ export class PlatformAPIClient {
|
|
|
26
26
|
writable: true,
|
|
27
27
|
value: void 0
|
|
28
28
|
});
|
|
29
|
+
Object.defineProperty(this, "cache", {
|
|
30
|
+
enumerable: true,
|
|
31
|
+
configurable: true,
|
|
32
|
+
writable: true,
|
|
33
|
+
value: void 0
|
|
34
|
+
});
|
|
29
35
|
this.baseUrl = baseUrl;
|
|
30
36
|
this.orgId = orgId;
|
|
37
|
+
this.cache = cache;
|
|
31
38
|
this.envId = envId;
|
|
32
39
|
this.internalAuth = new InternalAuth();
|
|
33
40
|
}
|
|
@@ -41,6 +48,9 @@ export class PlatformAPIClient {
|
|
|
41
48
|
return new PlatformAPIClient(baseUrl, orgId, envId);
|
|
42
49
|
}
|
|
43
50
|
async getStaticConnection(cnxId) {
|
|
51
|
+
if (this.cache[cnxId]) {
|
|
52
|
+
return this.cache[cnxId];
|
|
53
|
+
}
|
|
44
54
|
const resp = await fetch(`${this.baseUrl}/o/${this.orgId}/connections/${cnxId}`, {
|
|
45
55
|
headers: {
|
|
46
56
|
'x-versori-internal-token': await this.internalAuth.getToken(),
|
|
@@ -50,6 +60,7 @@ export class PlatformAPIClient {
|
|
|
50
60
|
return undefined;
|
|
51
61
|
}
|
|
52
62
|
const result = (await resp.json());
|
|
63
|
+
this.cache[cnxId] = result;
|
|
53
64
|
return result;
|
|
54
65
|
}
|
|
55
66
|
async getUserActivations(userId) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"roundtripper.d.ts","sourceRoot":"","sources":["../../../../../src/src/dsl/http/versori/roundtripper.ts"],"names":[],"mappings":"AAAA,OAAO,EAGH,cAAc,EACd,mBAAmB,EAEtB,MAAM,aAAa,CAAC;AAErB,OAAO,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"roundtripper.d.ts","sourceRoot":"","sources":["../../../../../src/src/dsl/http/versori/roundtripper.ts"],"names":[],"mappings":"AAAA,OAAO,EAGH,cAAc,EACd,mBAAmB,EAEtB,MAAM,aAAa,CAAC;AAErB,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,cAAc,CAK7B;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,CACR,QAAQ,EAAE,MAAM,EAChB,EAAE,GAAE,OAAO,KAAwB,GACpC,OAAO,CAAC,OAAO,KAAK,GAAG,SAAS,CAAC;IAuB9B,aAAa,CACf,YAAY,EAAE,MAAM,EACpB,EAAE,GAAE,OAAO,KAAwB,GACpC,OAAO,CAAC,cAAc,GAAG,SAAS,CAAC;IA2DtC,OAAO,CAAC,eAAe;IAYvB,OAAO,CAAC,aAAa;YAUP,aAAa;YAoDb,gBAAgB;YAmChB,kBAAkB;YAiClB,aAAa;CAkD9B"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { LoadConfigFromFile } from './configloader.js';
|
|
2
2
|
import { VersoriCredentialClient } from './credentials/mod.js';
|
|
3
|
+
import { LRUCache } from 'lru-cache';
|
|
3
4
|
import { PlatformAPIClient } from './platformapi.js';
|
|
4
5
|
import { ConsoleLogger } from '../../../observability/mod.js';
|
|
5
6
|
import { envVarCredsBaseURL, envVarEnvId, envVarOrgId, envVarPlatformApiBaseURL, } from './constants.js';
|
|
@@ -82,12 +83,10 @@ export class VersoriRoundTripperFactory {
|
|
|
82
83
|
// takes the info and modifies the url using changeBaseUrl if necessary
|
|
83
84
|
changeRequestInit(info, conn) {
|
|
84
85
|
if (typeof info === 'string') {
|
|
85
|
-
// should be this most of the time assuming we're using pathnames
|
|
86
86
|
return this.changeBaseUrl(info, conn);
|
|
87
87
|
}
|
|
88
88
|
else if (info instanceof URL) {
|
|
89
|
-
|
|
90
|
-
return newUrl;
|
|
89
|
+
return this.changeBaseUrl(info.toString(), conn);
|
|
91
90
|
}
|
|
92
91
|
else if (info instanceof Request) {
|
|
93
92
|
const url = this.changeBaseUrl(info.url, conn);
|
|
@@ -95,46 +94,44 @@ export class VersoriRoundTripperFactory {
|
|
|
95
94
|
}
|
|
96
95
|
return info;
|
|
97
96
|
}
|
|
98
|
-
changeBaseUrl(
|
|
99
|
-
const
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
return pathname;
|
|
97
|
+
changeBaseUrl(url, conn) {
|
|
98
|
+
const baseUrl = conn.baseUrl;
|
|
99
|
+
if (!baseUrl) {
|
|
100
|
+
return url;
|
|
103
101
|
}
|
|
104
|
-
const
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
return
|
|
102
|
+
const urlObj = new URL(url);
|
|
103
|
+
const baseUrlObj = new URL(baseUrl);
|
|
104
|
+
urlObj.hostname = baseUrlObj.hostname;
|
|
105
|
+
this.log.debug('Changing base URL', {
|
|
106
|
+
originalUrl: url,
|
|
107
|
+
newUrl: urlObj.toString(),
|
|
108
|
+
});
|
|
109
|
+
return url.toString();
|
|
112
110
|
}
|
|
113
|
-
// TODO: Currently if the connection is edited, then the fetcher will not be updated.
|
|
114
111
|
async create(connName, fn = globalThis.fetch) {
|
|
115
112
|
const cnxId = this.getConnectionID(connName);
|
|
116
113
|
const conn = await this.platformAPIClient.getStaticConnection(cnxId);
|
|
117
114
|
if (!conn) {
|
|
118
115
|
return undefined;
|
|
119
116
|
}
|
|
120
|
-
const _fn = (input, init) => {
|
|
121
|
-
const _input = this.changeRequestInit(input, conn);
|
|
122
|
-
return fn(_input, init);
|
|
123
|
-
};
|
|
124
117
|
switch (conn.credentials[0].authSchemeConfig.type) {
|
|
125
118
|
case 'api-key':
|
|
126
|
-
return this.apiKeyFetcher(conn,
|
|
119
|
+
return this.apiKeyFetcher(conn, fn);
|
|
127
120
|
case 'basic-auth':
|
|
128
|
-
return this.basicAuthFetcher(conn,
|
|
121
|
+
return this.basicAuthFetcher(conn, fn);
|
|
129
122
|
case 'jwt-bearer':
|
|
130
|
-
return this.bearerTokenFetcher(conn,
|
|
123
|
+
return this.bearerTokenFetcher(conn, fn);
|
|
131
124
|
case 'oauth2':
|
|
132
|
-
return this.oauth2Fetcher(conn,
|
|
125
|
+
return this.oauth2Fetcher(conn, fn);
|
|
133
126
|
default:
|
|
134
127
|
return fn;
|
|
135
128
|
}
|
|
136
129
|
}
|
|
137
130
|
async createDynamic(templateName, fn = globalThis.fetch) {
|
|
131
|
+
const lruCacheOptions = {
|
|
132
|
+
max: 100,
|
|
133
|
+
};
|
|
134
|
+
const cache = new LRUCache(lruCacheOptions);
|
|
138
135
|
const template = this.getTemplateID(templateName);
|
|
139
136
|
if (!template) {
|
|
140
137
|
this.log.info('Template not found in config, could be a static connection', {
|
|
@@ -143,7 +140,16 @@ export class VersoriRoundTripperFactory {
|
|
|
143
140
|
return undefined;
|
|
144
141
|
}
|
|
145
142
|
const _fn = async (activation, input, init) => {
|
|
146
|
-
|
|
143
|
+
let conn = undefined;
|
|
144
|
+
if (cache.has(activation.id)) {
|
|
145
|
+
conn = cache.get(activation.id);
|
|
146
|
+
}
|
|
147
|
+
else {
|
|
148
|
+
conn = await this.platformAPIClient.getActivationConnection(template, activation.id);
|
|
149
|
+
if (conn) {
|
|
150
|
+
cache.set(activation.id, conn);
|
|
151
|
+
}
|
|
152
|
+
}
|
|
147
153
|
if (!conn) {
|
|
148
154
|
return this.defaultDynamic('Connection not found for user, using default fetch', {
|
|
149
155
|
templateName: templateName,
|
|
@@ -332,12 +338,3 @@ export class VersoriRoundTripperFactory {
|
|
|
332
338
|
return _fn;
|
|
333
339
|
}
|
|
334
340
|
}
|
|
335
|
-
function isValidURL(url) {
|
|
336
|
-
try {
|
|
337
|
-
new URL(url);
|
|
338
|
-
return true;
|
|
339
|
-
}
|
|
340
|
-
catch (_) {
|
|
341
|
-
return false;
|
|
342
|
-
}
|
|
343
|
-
}
|
|
@@ -1,13 +1,55 @@
|
|
|
1
|
+
import { Context } from '../../context/Context.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 WebhookData = Record<string, never>;
|
|
6
|
+
export type WebhookCorsOptions = boolean | {
|
|
7
|
+
origin: string;
|
|
8
|
+
methods: string[];
|
|
9
|
+
allowedHeaders: string[];
|
|
10
|
+
exposedHeaders: string[];
|
|
11
|
+
credentials: boolean;
|
|
12
|
+
};
|
|
13
|
+
export type WebhookResponseOptions = {
|
|
14
|
+
/**
|
|
15
|
+
* Mode determines how the response is sent to the client. The response can be customized by
|
|
16
|
+
* the `onSuccess` and `onError` functions, which have sensible defaults for each mode.
|
|
17
|
+
*
|
|
18
|
+
* - `sync`: The response is sent at the end of the workflow.
|
|
19
|
+
* - `async`: The response is sent immediately after the trigger is activated.
|
|
20
|
+
*
|
|
21
|
+
* @default 'sync'
|
|
22
|
+
*/
|
|
23
|
+
mode?: 'sync' | 'async';
|
|
24
|
+
/**
|
|
25
|
+
* Function that returns a response for a successful trigger activation.
|
|
26
|
+
*
|
|
27
|
+
* Defaults to a 202 Accepted response for 'async' mode, and a 200 OK response for 'sync' mode.
|
|
28
|
+
*
|
|
29
|
+
* @param ctx The current context of the workflow, containing data from the final step.
|
|
30
|
+
* @returns A response to send to the client.
|
|
31
|
+
*/
|
|
32
|
+
onSuccess?: <T>(ctx: Context<T>) => Response;
|
|
33
|
+
/**
|
|
34
|
+
* Function that returns a response for a failed trigger activation.
|
|
35
|
+
*
|
|
36
|
+
* Defaults to a 500 Internal Server Error response for both modes.
|
|
37
|
+
*
|
|
38
|
+
* @param ctx The current context of the workflow, containing data from the final step.
|
|
39
|
+
* @returns A response to send to the client.
|
|
40
|
+
*/
|
|
41
|
+
onError?: <T>(ctx: Context<T>) => Response;
|
|
42
|
+
};
|
|
43
|
+
export type WebhookOptions = {
|
|
44
|
+
cors?: WebhookCorsOptions;
|
|
45
|
+
response?: WebhookResponseOptions;
|
|
46
|
+
};
|
|
5
47
|
export declare class WebhookTrigger implements Trigger<WebhookData> {
|
|
6
48
|
id: string;
|
|
49
|
+
options: WebhookOptions;
|
|
7
50
|
[TriggerType]: string;
|
|
8
|
-
constructor(id: string);
|
|
51
|
+
constructor(id: string, options?: WebhookOptions);
|
|
9
52
|
then<OO>(task: Taskable<WebhookData, OO>): Workflow<OO>;
|
|
10
|
-
catch<OO>(error: any): Workflow<OO>;
|
|
11
53
|
}
|
|
12
|
-
export declare function webhook(id: string):
|
|
54
|
+
export declare function webhook(id: string, options?: WebhookOptions): Trigger<WebhookData>;
|
|
13
55
|
//# sourceMappingURL=WebhookTrigger.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WebhookTrigger.d.ts","sourceRoot":"","sources":["../../../../src/src/dsl/triggers/WebhookTrigger.ts"],"names":[],"mappings":"
|
|
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,MAAM,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;AAEhD,MAAM,MAAM,kBAAkB,GAAG,OAAO,GAAG;IACvC,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,WAAW,EAAE,OAAO,CAAC;CACxB,CAAA;AAED,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,CAAA;AAED,MAAM,MAAM,cAAc,GAAG;IACzB,IAAI,CAAC,EAAE,kBAAkB,CAAC;IAC1B,QAAQ,CAAC,EAAE,sBAAsB,CAAC;CACrC,CAAA;AAED,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,wBAAgB,OAAO,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,WAAW,CAAC,CAElF"}
|
|
@@ -3,13 +3,19 @@ import { ensureTask } from "../ensureTask.js";
|
|
|
3
3
|
import { TriggerType } from '../Trigger.js';
|
|
4
4
|
import { WorkflowImpl } from '../Workflow.js';
|
|
5
5
|
export class WebhookTrigger {
|
|
6
|
-
constructor(id) {
|
|
6
|
+
constructor(id, options = {}) {
|
|
7
7
|
Object.defineProperty(this, "id", {
|
|
8
8
|
enumerable: true,
|
|
9
9
|
configurable: true,
|
|
10
10
|
writable: true,
|
|
11
11
|
value: void 0
|
|
12
12
|
});
|
|
13
|
+
Object.defineProperty(this, "options", {
|
|
14
|
+
enumerable: true,
|
|
15
|
+
configurable: true,
|
|
16
|
+
writable: true,
|
|
17
|
+
value: void 0
|
|
18
|
+
});
|
|
13
19
|
Object.defineProperty(this, _a, {
|
|
14
20
|
enumerable: true,
|
|
15
21
|
configurable: true,
|
|
@@ -17,15 +23,13 @@ export class WebhookTrigger {
|
|
|
17
23
|
value: 'webhook'
|
|
18
24
|
});
|
|
19
25
|
this.id = id;
|
|
26
|
+
this.options = options;
|
|
20
27
|
}
|
|
21
28
|
then(task) {
|
|
22
29
|
return new WorkflowImpl(this, ensureTask(task));
|
|
23
30
|
}
|
|
24
|
-
catch(error) {
|
|
25
|
-
return this;
|
|
26
|
-
}
|
|
27
31
|
}
|
|
28
32
|
_a = TriggerType;
|
|
29
|
-
export function webhook(id) {
|
|
30
|
-
return new WebhookTrigger(id);
|
|
33
|
+
export function webhook(id, options) {
|
|
34
|
+
return new WebhookTrigger(id, options);
|
|
31
35
|
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Router } from 'express';
|
|
2
|
-
import { Observable } from 'rxjs';
|
|
2
|
+
import { Observable, Subscription } from 'rxjs';
|
|
3
3
|
import { ContextProvider } from '../../context/ContextProvider.js';
|
|
4
4
|
import { ConnectionProvider, RoundTripperFactory } from '../../dsl/http/types.js';
|
|
5
5
|
import { Workflow } from '../../dsl/Workflow.js';
|
|
@@ -18,6 +18,7 @@ type Registration = {
|
|
|
18
18
|
task$: ContextOperatorFunction<any, any, any>;
|
|
19
19
|
localAbortController: AbortController;
|
|
20
20
|
sigintListener: () => void;
|
|
21
|
+
subscription?: Subscription;
|
|
21
22
|
};
|
|
22
23
|
export declare class MemoryInterpreter {
|
|
23
24
|
private readonly log;
|
|
@@ -27,10 +28,14 @@ export declare class MemoryInterpreter {
|
|
|
27
28
|
private readonly router;
|
|
28
29
|
private readonly connectionProvider;
|
|
29
30
|
private registeredWorkflows;
|
|
31
|
+
private server?;
|
|
32
|
+
private shutdownServer?;
|
|
33
|
+
private isShuttingDown;
|
|
30
34
|
constructor(log: Logger, compiler: ObservableCompiler, contextProvider: ContextProvider, roundTripperFactory: RoundTripperFactory, router: Router, connectionProvider: ConnectionProvider);
|
|
31
35
|
static newInstance(options?: MemoryInterpreterOptions): Promise<MemoryInterpreter>;
|
|
32
36
|
register<O>(workflow: Workflow<O>, options?: MemoryInterpreterOptions): Registration;
|
|
33
37
|
start(): Promise<void>;
|
|
38
|
+
stop(): Promise<void>;
|
|
34
39
|
}
|
|
35
40
|
export {};
|
|
36
41
|
//# sourceMappingURL=MemoryInterpreter.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MemoryInterpreter.d.ts","sourceRoot":"","sources":["../../../../src/src/interpreter/memory/MemoryInterpreter.ts"],"names":[],"mappings":"AAAA,OAAgB,EAAqB,MAAM,EAAE,MAAM,SAAS,CAAC;AAC7D,OAAO,EAA+B,UAAU,EAAW,MAAM,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"MemoryInterpreter.d.ts","sourceRoot":"","sources":["../../../../src/src/interpreter/memory/MemoryInterpreter.ts"],"names":[],"mappings":"AAAA,OAAgB,EAAqB,MAAM,EAAE,MAAM,SAAS,CAAC;AAC7D,OAAO,EAA+B,UAAU,EAAW,YAAY,EAAE,MAAM,MAAM,CAAC;AACtF,OAAO,EAAE,eAAe,EAAuB,MAAM,kCAAkC,CAAC;AAExF,OAAO,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAGlF,OAAO,EAAE,QAAQ,EAAgB,MAAM,uBAAuB,CAAC;AAI/D,OAAO,EAAE,MAAM,EAAE,MAAM,uCAAuC,CAAC;AAC/D,OAAO,EAAmB,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC9E,OAAO,EAAE,WAAW,EAAE,uBAAuB,EAAE,MAAM,cAAc,CAAC;AAIpE,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,KAAK,YAAY,GAAG;IAChB,QAAQ,EAAE,UAAU,CAAC,WAAW,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC;IAC7C,KAAK,EAAE,uBAAuB,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;IAC9C,oBAAoB,EAAE,eAAe,CAAC;IACtC,cAAc,EAAE,MAAM,IAAI,CAAC;IAC3B,YAAY,CAAC,EAAE,YAAY,CAAC;CAC/B,CAAA;AAED,qBAAa,iBAAiB;IAOtB,OAAO,CAAC,QAAQ,CAAC,GAAG;IACpB,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,eAAe;IAChC,OAAO,CAAC,QAAQ,CAAC,mBAAmB;IACpC,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,kBAAkB;IAXvC,OAAO,CAAC,mBAAmB,CAA2B;IACtD,OAAO,CAAC,MAAM,CAAC,CAAS;IACxB,OAAO,CAAC,cAAc,CAAC,CAAa;IACpC,OAAO,CAAC,cAAc,CAAS;gBAGV,GAAG,EAAE,MAAM,EACX,QAAQ,EAAE,kBAAkB,EAC5B,eAAe,EAAE,eAAe,EAChC,mBAAmB,EAAE,mBAAmB,EACxC,MAAM,EAAE,MAAM,EACd,kBAAkB,EAAE,kBAAkB;WAI9C,WAAW,CAAC,OAAO,GAAE,wBAA6B,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAoC5F,QAAQ,CAAC,CAAC,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,EAAE,wBAAwB;IA6C/D,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAiHtB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;CAK9B"}
|
|
@@ -53,6 +53,24 @@ export class MemoryInterpreter {
|
|
|
53
53
|
writable: true,
|
|
54
54
|
value: []
|
|
55
55
|
});
|
|
56
|
+
Object.defineProperty(this, "server", {
|
|
57
|
+
enumerable: true,
|
|
58
|
+
configurable: true,
|
|
59
|
+
writable: true,
|
|
60
|
+
value: void 0
|
|
61
|
+
});
|
|
62
|
+
Object.defineProperty(this, "shutdownServer", {
|
|
63
|
+
enumerable: true,
|
|
64
|
+
configurable: true,
|
|
65
|
+
writable: true,
|
|
66
|
+
value: void 0
|
|
67
|
+
});
|
|
68
|
+
Object.defineProperty(this, "isShuttingDown", {
|
|
69
|
+
enumerable: true,
|
|
70
|
+
configurable: true,
|
|
71
|
+
writable: true,
|
|
72
|
+
value: false
|
|
73
|
+
});
|
|
56
74
|
}
|
|
57
75
|
static async newInstance(options = {}) {
|
|
58
76
|
const log = options.logger || new ConsoleLogger('debug');
|
|
@@ -78,9 +96,6 @@ export class MemoryInterpreter {
|
|
|
78
96
|
if (!(workflow instanceof WorkflowImpl)) {
|
|
79
97
|
throw new Error('workflow is not an instance of WorkflowImpl');
|
|
80
98
|
}
|
|
81
|
-
if (this.log === undefined) {
|
|
82
|
-
throw new Error('Logger is not set, you should initialise the MemoryInterpreter using `await newInstance()` instead');
|
|
83
|
-
}
|
|
84
99
|
this.log.info('MemoryInterpreter.register', { workflow });
|
|
85
100
|
const compilerContext = {
|
|
86
101
|
compiler: this.compiler,
|
|
@@ -117,11 +132,12 @@ export class MemoryInterpreter {
|
|
|
117
132
|
// Start all registered workflows
|
|
118
133
|
for (const registration of this.registeredWorkflows) {
|
|
119
134
|
Deno.addSignalListener('SIGINT', registration.sigintListener);
|
|
120
|
-
registration.trigger$
|
|
135
|
+
registration.subscription = registration.trigger$
|
|
121
136
|
.pipe(tap((ctx) => {
|
|
122
137
|
ctx.log.info('MemoryInterpreter.executionStarted', { data: ctx.data });
|
|
123
138
|
}), mergeMap((ctx) => of(ctx).pipe(registration.task$, catchError((error) => {
|
|
124
139
|
ctx.log.error('MemoryInterpreter.executionError', { error });
|
|
140
|
+
ctx.options.onError?.(ctx.withData(error));
|
|
125
141
|
return EMPTY;
|
|
126
142
|
}))))
|
|
127
143
|
.subscribe({
|
|
@@ -131,6 +147,7 @@ export class MemoryInterpreter {
|
|
|
131
147
|
durationMs,
|
|
132
148
|
data: ctx.data,
|
|
133
149
|
});
|
|
150
|
+
ctx.options.onSuccess?.(ctx);
|
|
134
151
|
this.contextProvider.destroy(ctx);
|
|
135
152
|
},
|
|
136
153
|
error: (err) => {
|
|
@@ -142,9 +159,54 @@ export class MemoryInterpreter {
|
|
|
142
159
|
Deno.removeSignalListener('SIGINT', registration.sigintListener);
|
|
143
160
|
},
|
|
144
161
|
});
|
|
162
|
+
registration.subscription.add(() => {
|
|
163
|
+
registration.subscription = undefined;
|
|
164
|
+
});
|
|
145
165
|
}
|
|
146
|
-
app.listen(port, () => {
|
|
166
|
+
this.server = app.listen(port, () => {
|
|
147
167
|
this.log.info(`Express server listening on http://localhost:${port}`);
|
|
148
168
|
});
|
|
169
|
+
this.shutdownServer = () => {
|
|
170
|
+
if (this.isShuttingDown) {
|
|
171
|
+
return;
|
|
172
|
+
}
|
|
173
|
+
this.isShuttingDown = true;
|
|
174
|
+
this.log.info('Shutting down server');
|
|
175
|
+
// Close the server
|
|
176
|
+
if (this.server) {
|
|
177
|
+
this.server.close();
|
|
178
|
+
}
|
|
179
|
+
// Remove all signal listeners
|
|
180
|
+
for (const registration of this.registeredWorkflows) {
|
|
181
|
+
Deno.removeSignalListener('SIGINT', registration.sigintListener);
|
|
182
|
+
// Unsubscribe from all observables
|
|
183
|
+
if (registration.subscription) {
|
|
184
|
+
registration.subscription.unsubscribe();
|
|
185
|
+
}
|
|
186
|
+
// Abort all controllers
|
|
187
|
+
registration.localAbortController.abort();
|
|
188
|
+
}
|
|
189
|
+
// Remove the server shutdown listener
|
|
190
|
+
if (this.shutdownServer) {
|
|
191
|
+
Deno.removeSignalListener('SIGINT', this.shutdownServer);
|
|
192
|
+
}
|
|
193
|
+
};
|
|
194
|
+
Deno.addSignalListener('SIGINT', this.shutdownServer);
|
|
195
|
+
return new Promise((resolve) => {
|
|
196
|
+
if (this.server) {
|
|
197
|
+
this.server.on('close', () => {
|
|
198
|
+
this.log.info('Server closed');
|
|
199
|
+
resolve();
|
|
200
|
+
});
|
|
201
|
+
}
|
|
202
|
+
else {
|
|
203
|
+
resolve();
|
|
204
|
+
}
|
|
205
|
+
});
|
|
206
|
+
}
|
|
207
|
+
async stop() {
|
|
208
|
+
if (this.shutdownServer) {
|
|
209
|
+
this.shutdownServer();
|
|
210
|
+
}
|
|
149
211
|
}
|
|
150
212
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"webhook.d.ts","sourceRoot":"","sources":["../../../../../src/src/interpreter/memory/compilers/webhook.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"webhook.d.ts","sourceRoot":"","sources":["../../../../../src/src/interpreter/memory/compilers/webhook.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,yCAAyC,CAAC;AAEtF,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AA8B7C,eAAO,MAAM,eAAe,EAAE,eAAe,CAAC,WAAW,EAAE,cAAc,CA8KxE,CAAC"}
|