@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.
Files changed (113) hide show
  1. 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
  2. package/esm/deps/jsr.io/@std/fs/{1.0.13 → 1.0.15}/exists.d.ts.map +1 -1
  3. package/esm/deps/jsr.io/@std/log/0.224.14/console_handler.js +1 -1
  4. package/esm/deps/jsr.io/@std/log/0.224.14/rotating_file_handler.js +1 -1
  5. package/esm/src/context/Context.d.ts +6 -1
  6. package/esm/src/context/Context.d.ts.map +1 -1
  7. package/esm/src/context/Context.js +17 -3
  8. package/esm/src/context/ContextProvider.d.ts +3 -2
  9. package/esm/src/context/ContextProvider.d.ts.map +1 -1
  10. package/esm/src/context/ContextProvider.js +2 -2
  11. package/esm/src/dsl/http/default.d.ts.map +1 -1
  12. package/esm/src/dsl/http/default.js +3 -1
  13. package/esm/src/dsl/http/types.d.ts +122 -16
  14. package/esm/src/dsl/http/types.d.ts.map +1 -1
  15. package/esm/src/dsl/http/types.js +6 -2
  16. package/esm/src/dsl/http/versori/configloader.d.ts +2 -2
  17. package/esm/src/dsl/http/versori/configloader.d.ts.map +1 -1
  18. package/esm/src/dsl/http/versori/configloader.js +9 -3
  19. package/esm/src/dsl/http/versori/constants.d.ts +10 -0
  20. package/esm/src/dsl/http/versori/constants.d.ts.map +1 -0
  21. package/esm/src/dsl/http/versori/constants.js +12 -0
  22. package/esm/src/dsl/http/versori/internalauth.d.ts.map +1 -1
  23. package/esm/src/dsl/http/versori/internalauth.js +10 -9
  24. package/esm/src/dsl/http/versori/platformapi.d.ts +14 -0
  25. package/esm/src/dsl/http/versori/platformapi.d.ts.map +1 -0
  26. package/esm/src/dsl/http/versori/platformapi.js +91 -0
  27. package/esm/src/dsl/http/versori/roundtripper.d.ts +13 -6
  28. package/esm/src/dsl/http/versori/roundtripper.d.ts.map +1 -1
  29. package/esm/src/dsl/http/versori/roundtripper.js +171 -53
  30. package/esm/src/dsl/tasks/HttpTask.d.ts +18 -2
  31. package/esm/src/dsl/tasks/HttpTask.d.ts.map +1 -1
  32. package/esm/src/dsl/tasks/HttpTask.js +82 -0
  33. package/esm/src/dsl/triggers/ScheduleTrigger.d.ts +6 -2
  34. package/esm/src/dsl/triggers/ScheduleTrigger.d.ts.map +1 -1
  35. package/esm/src/dsl/triggers/ScheduleTrigger.js +10 -3
  36. package/esm/src/interpreter/memory/MemoryInterpreter.d.ts +1 -0
  37. package/esm/src/interpreter/memory/MemoryInterpreter.d.ts.map +1 -1
  38. package/esm/src/interpreter/memory/MemoryInterpreter.js +12 -3
  39. package/esm/src/interpreter/memory/ObservableCompiler.d.ts +2 -1
  40. package/esm/src/interpreter/memory/ObservableCompiler.d.ts.map +1 -1
  41. package/esm/src/interpreter/memory/compilers/background.d.ts.map +1 -1
  42. package/esm/src/interpreter/memory/compilers/background.js +4 -2
  43. package/esm/src/interpreter/memory/compilers/http.d.ts.map +1 -1
  44. package/esm/src/interpreter/memory/compilers/http.js +6 -12
  45. package/esm/src/interpreter/memory/compilers/schedule.d.ts.map +1 -1
  46. package/esm/src/interpreter/memory/compilers/schedule.js +32 -6
  47. package/esm/src/interpreter/memory/compilers/serial.js +1 -1
  48. package/esm/src/interpreter/memory/compilers/webhook.d.ts.map +1 -1
  49. package/esm/src/interpreter/memory/compilers/webhook.js +20 -4
  50. package/package.json +2 -1
  51. 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
  52. package/script/deps/jsr.io/@std/fs/{1.0.13 → 1.0.15}/exists.d.ts.map +1 -1
  53. package/script/deps/jsr.io/@std/log/0.224.14/console_handler.js +1 -1
  54. package/script/deps/jsr.io/@std/log/0.224.14/rotating_file_handler.js +1 -1
  55. package/script/src/context/Context.d.ts +6 -1
  56. package/script/src/context/Context.d.ts.map +1 -1
  57. package/script/src/context/Context.js +17 -3
  58. package/script/src/context/ContextProvider.d.ts +3 -2
  59. package/script/src/context/ContextProvider.d.ts.map +1 -1
  60. package/script/src/context/ContextProvider.js +2 -2
  61. package/script/src/dsl/http/default.d.ts.map +1 -1
  62. package/script/src/dsl/http/default.js +3 -1
  63. package/script/src/dsl/http/types.d.ts +122 -16
  64. package/script/src/dsl/http/types.d.ts.map +1 -1
  65. package/script/src/dsl/http/types.js +7 -1
  66. package/script/src/dsl/http/versori/configloader.d.ts +2 -2
  67. package/script/src/dsl/http/versori/configloader.d.ts.map +1 -1
  68. package/script/src/dsl/http/versori/configloader.js +10 -4
  69. package/script/src/dsl/http/versori/constants.d.ts +10 -0
  70. package/script/src/dsl/http/versori/constants.d.ts.map +1 -0
  71. package/script/src/dsl/http/versori/constants.js +15 -0
  72. package/script/src/dsl/http/versori/internalauth.d.ts.map +1 -1
  73. package/script/src/dsl/http/versori/internalauth.js +10 -9
  74. package/script/src/dsl/http/versori/platformapi.d.ts +14 -0
  75. package/script/src/dsl/http/versori/platformapi.d.ts.map +1 -0
  76. package/script/src/dsl/http/versori/platformapi.js +118 -0
  77. package/script/src/dsl/http/versori/roundtripper.d.ts +13 -6
  78. package/script/src/dsl/http/versori/roundtripper.d.ts.map +1 -1
  79. package/script/src/dsl/http/versori/roundtripper.js +170 -53
  80. package/script/src/dsl/tasks/HttpTask.d.ts +18 -2
  81. package/script/src/dsl/tasks/HttpTask.d.ts.map +1 -1
  82. package/script/src/dsl/tasks/HttpTask.js +84 -1
  83. package/script/src/dsl/triggers/ScheduleTrigger.d.ts +6 -2
  84. package/script/src/dsl/triggers/ScheduleTrigger.d.ts.map +1 -1
  85. package/script/src/dsl/triggers/ScheduleTrigger.js +10 -3
  86. package/script/src/interpreter/memory/MemoryInterpreter.d.ts +1 -0
  87. package/script/src/interpreter/memory/MemoryInterpreter.d.ts.map +1 -1
  88. package/script/src/interpreter/memory/MemoryInterpreter.js +12 -3
  89. package/script/src/interpreter/memory/ObservableCompiler.d.ts +2 -1
  90. package/script/src/interpreter/memory/ObservableCompiler.d.ts.map +1 -1
  91. package/script/src/interpreter/memory/compilers/background.d.ts.map +1 -1
  92. package/script/src/interpreter/memory/compilers/background.js +3 -1
  93. package/script/src/interpreter/memory/compilers/http.d.ts.map +1 -1
  94. package/script/src/interpreter/memory/compilers/http.js +5 -11
  95. package/script/src/interpreter/memory/compilers/schedule.d.ts.map +1 -1
  96. package/script/src/interpreter/memory/compilers/schedule.js +32 -6
  97. package/script/src/interpreter/memory/compilers/serial.js +1 -1
  98. package/script/src/interpreter/memory/compilers/webhook.d.ts.map +1 -1
  99. package/script/src/interpreter/memory/compilers/webhook.js +20 -4
  100. package/esm/src/dsl/http/versori/connectapi.d.ts +0 -11
  101. package/esm/src/dsl/http/versori/connectapi.d.ts.map +0 -1
  102. package/esm/src/dsl/http/versori/connectapi.js +0 -57
  103. package/script/src/dsl/http/versori/connectapi.d.ts +0 -11
  104. package/script/src/dsl/http/versori/connectapi.d.ts.map +0 -1
  105. package/script/src/dsl/http/versori/connectapi.js +0 -61
  106. /package/esm/deps/jsr.io/@std/fmt/{1.0.5 → 1.0.6}/colors.d.ts +0 -0
  107. /package/esm/deps/jsr.io/@std/fmt/{1.0.5 → 1.0.6}/colors.js +0 -0
  108. /package/esm/deps/jsr.io/@std/fs/{1.0.13 → 1.0.15}/exists.d.ts +0 -0
  109. /package/esm/deps/jsr.io/@std/fs/{1.0.13 → 1.0.15}/exists.js +0 -0
  110. /package/script/deps/jsr.io/@std/fmt/{1.0.5 → 1.0.6}/colors.d.ts +0 -0
  111. /package/script/deps/jsr.io/@std/fmt/{1.0.5 → 1.0.6}/colors.js +0 -0
  112. /package/script/deps/jsr.io/@std/fs/{1.0.13 → 1.0.15}/exists.d.ts +0 -0
  113. /package/script/deps/jsr.io/@std/fs/{1.0.13 → 1.0.15}/exists.js +0 -0
@@ -1,8 +1,8 @@
1
- import { ConnectAPIClient } from './connectapi.js';
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
- constructor(cAPIClient: ConnectAPIClient, credsClient: VersoriCredentialClient);
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: typeof fetch): Promise<DynamicFetcher>;
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,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,EAAc,cAAc,EAAE,mBAAmB,EAAoB,MAAM,aAAa,CAAC;AAEhG,OAAO,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAC;AAE/D,MAAM,MAAM,kBAAkB,GAAG,OAAO,GAAG,SAAS,GAAG,SAAS,CAAC;AAEjE,wBAAgB,aAAa,IAAI,0BAA0B,CAuB1D;AAED;;;;;;;;;;;GAWG;AACH,qBAAa,0BAA2B,YAAW,mBAAmB;IAClE,OAAO,CAAC,UAAU,CAAmB;IAErC,OAAO,CAAC,WAAW,CAA0B;IAE7C,OAAO,CAAC,UAAU,CAAmB;gBAEzB,UAAU,EAAE,gBAAgB,EAAE,WAAW,EAAE,uBAAuB;IAMxE,MAAM,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE,GAAE,OAAO,KAAa,GAAG,OAAO,CAAC,OAAO,KAAK,CAAC;IAsBzE,aAAa,CAAC,YAAY,EAAE,MAAM,EAAE,EAAE,EAAE,OAAO,KAAK,GAAG,OAAO,CAAC,cAAc,CAAC;IAIpF,OAAO,CAAC,eAAe;YAWT,aAAa;YA+Cb,gBAAgB;YA0BhB,kBAAkB;YAkClB,aAAa;CAgD9B"}
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 { ConnectAPIClient } from './connectapi.js';
3
- import { LoadConfigFromJSON } from './configloader.js';
2
+ import { LoadConfigFromFile } from './configloader.js';
4
3
  import { VersoriCredentialClient } from './credentials/mod.js';
5
- export function CreateFromEnv() {
6
- const connAPIBaseURL = dntShim.Deno.env.get('RUN_CONNECT_API_INTERNAL_URL');
7
- const credsBaseURL = dntShim.Deno.env.get('RUN_CREDENTIALS_SERVICE_INTERNAL_URL');
8
- const orgId = dntShim.Deno.env.get('RUN_ORGANISATION_ID');
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(cAPIClient, credsClient) {
40
- Object.defineProperty(this, "cAPIClient", {
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, "tokenClient", {
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.cAPIClient = cAPIClient;
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.versoriCfg = LoadConfigFromJSON(); // for now?
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
- async create(connName, fn = fetch) {
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.cAPIClient.getConnection(cnxId);
126
+ const conn = await this.platformAPIClient.getStaticConnection(cnxId);
65
127
  if (!conn) {
66
- throw new Error(`Connection ${connName} not found`);
128
+ return this.defaultStatic('Connection not found for static, using default fetch', {
129
+ connName: connName,
130
+ });
67
131
  }
68
- switch (conn.credentials.action[0].authSchemeConfig.schemeType) {
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
- throw new Error('Method not implemented.');
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.connections.find(c => c.name === connName);
87
- if (!conn) {
88
- throw new Error(`Connection ${connName} not found`);
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.id;
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.action[0].credential.id);
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 (conn.credentials.action[0].authSchemeConfig.in) {
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('Authorization', token);
226
+ init.headers.set(asc.name, token);
109
227
  }
110
228
  else if (init.headers instanceof Array) {
111
- init.headers.push(['Authorization', token]);
229
+ init.headers.push([asc.name, token]);
112
230
  }
113
231
  else {
114
232
  init.headers = {
115
233
  ...init.headers,
116
- ['Authorization']: token
234
+ [asc.name]: token,
117
235
  };
118
236
  }
119
237
  break;
120
238
  case 'query':
121
239
  if (typeof input === 'string') {
122
- input += `?${'Authorization'}=${token}`;
240
+ input += `?${asc.name}=${token}`;
123
241
  }
124
242
  else if (input instanceof Request) {
125
- input = new Request(input.url + `?${'Authorization'}=${token}`, init);
243
+ input = new Request(input.url + `?${asc.name}=${token}`, init);
126
244
  }
127
245
  else if (input instanceof URL) {
128
- input.searchParams.append('Authorization', token);
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.action[0].credential.id);
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 configuratble from authschemeconfig
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.action[0].credential.id);
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.action[0].credential.id);
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 type HttpContext<Data, PageParams> = Context<Data> & {
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;AAEnD,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAMjE,MAAM,MAAM,WAAW,CAAC,IAAI,EAAE,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC,GAAG;IACxD,KAAK,EAAE,OAAO,KAAK,CAAC;IACpB,mBAAmB,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACzC,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB,QAAQ,EAAE,CAAC,UAAU,EAAE,UAAU,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CACvD,CAAC;AAEF,MAAM,MAAM,eAAe,CAAC,EAAE,EAAE,GAAG,EAAE,UAAU,IAAI,CAC/C,GAAG,EAAE,WAAW,CAAC,EAAE,EAAE,UAAU,CAAC,KAC/B,OAAO,CAAC,GAAG,CAAC,CAAC;AAElB,MAAM,MAAM,eAAe,CAAC,CAAC,IAAI;IAC7B,aAAa,EAAE,CAAC,CAAC;CACpB,CAAC;AAEF,MAAM,MAAM,WAAW,CAAC,EAAE,EAAE,GAAG,EAAE,UAAU,IAAI;IAC3C,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,eAAe,CAAC,UAAU,CAAC,CAAC;CAC5C,CAAC;AAEF,qBAAa,YAAY,CAAC,EAAE,EAAE,GAAG,EAAE,UAAU,CAAE,YAAW,IAAI,CAAC,EAAE,EAAE,GAAG,CAAC;IACnE,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAU;IAE5B,EAAE,EAAE,MAAM,CAAC;IAEX,EAAE,EAAE,eAAe,CAAC,EAAE,EAAE,GAAG,EAAE,UAAU,CAAC,CAAC;IAEzC,IAAI,EAAE,WAAW,CAAC,EAAE,EAAE,GAAG,EAAE,UAAU,CAAC,CAAC;gBAGnC,EAAE,EAAE,MAAM,EACV,IAAI,EAAE,WAAW,CAAC,EAAE,EAAE,GAAG,EAAE,UAAU,CAAC,EACtC,EAAE,EAAE,eAAe,CAAC,EAAE,EAAE,GAAG,EAAE,UAAU,CAAC;IAO5C,IAAI,CAAC,OAAO,EAAE,IAAI,EAAE,QAAQ,CAAC,GAAG,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC,EAAE,EAAE,OAAO,CAAC;IAI9D,KAAK,CAAC,OAAO,EAAE,IAAI,EAAE,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC,EAAE,EAAE,OAAO,CAAC;IAIjE,UAAU,IAAI,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC;IAI5B,MAAM,CAAC,OAAO,GAAG,GAAG,SAAS,KAAK,CAAC,MAAM,IAAI,CAAC,GAAG,IAAI,GAAG,GAAG,KAAK,SAAS,CAAC,EAAE,EAAE,OAAO,CAAC;IACtF,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK,OAAO,EAAE,GAAG,SAAS,CAAC,EAAE,EAAE,OAAO,CAAC;IASzE,KAAK,IAAI,IAAI,CAAC,EAAE,EAAE,GAAG,CAAC;CAGzB;AAED,wBAAgB,IAAI,CAAC,EAAE,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,EAAE,UAAU,GAAG,OAAO,EAC1D,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,WAAW,CAAC,EAAE,EAAE,GAAG,EAAE,UAAU,CAAC,EACtC,EAAE,EAAE,eAAe,CAAC,EAAE,EAAE,GAAG,EAAE,UAAU,CAAC,GACzC,IAAI,CAAC,EAAE,EAAE,GAAG,CAAC,CAEf"}
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
- constructor(id: string, schedule: string);
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;gBAEL,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM;IAKxC,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,GAAG,QAAQ,CAAC,YAAY,CAAC,CAE7E"}
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;AAO9E,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;IAEvB,OAAO,CAAC,mBAAmB,CAKnB;gBAEI,OAAO,GAAE,wBAA6B;IAQlD,QAAQ,CAAC,CAAC,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,EAAE,wBAAwB;kBAE3C,GAAG;eACN,GAAG;;;;IAsCpB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CAwD/B"}
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() : CreateFromEnv();
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);