@versori/run 0.0.1-alpha.7 → 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 (97) hide show
  1. package/esm/src/context/Context.d.ts +6 -1
  2. package/esm/src/context/Context.d.ts.map +1 -1
  3. package/esm/src/context/Context.js +17 -3
  4. package/esm/src/context/ContextProvider.d.ts +3 -2
  5. package/esm/src/context/ContextProvider.d.ts.map +1 -1
  6. package/esm/src/context/ContextProvider.js +2 -2
  7. package/esm/src/dsl/http/default.d.ts.map +1 -1
  8. package/esm/src/dsl/http/default.js +3 -1
  9. package/esm/src/dsl/http/types.d.ts +122 -16
  10. package/esm/src/dsl/http/types.d.ts.map +1 -1
  11. package/esm/src/dsl/http/types.js +6 -2
  12. package/esm/src/dsl/http/versori/configloader.d.ts +2 -2
  13. package/esm/src/dsl/http/versori/configloader.d.ts.map +1 -1
  14. package/esm/src/dsl/http/versori/configloader.js +9 -3
  15. package/esm/src/dsl/http/versori/constants.d.ts +10 -0
  16. package/esm/src/dsl/http/versori/constants.d.ts.map +1 -0
  17. package/esm/src/dsl/http/versori/constants.js +12 -0
  18. package/esm/src/dsl/http/versori/internalauth.d.ts.map +1 -1
  19. package/esm/src/dsl/http/versori/internalauth.js +10 -9
  20. package/esm/src/dsl/http/versori/platformapi.d.ts +14 -0
  21. package/esm/src/dsl/http/versori/platformapi.d.ts.map +1 -0
  22. package/esm/src/dsl/http/versori/platformapi.js +91 -0
  23. package/esm/src/dsl/http/versori/roundtripper.d.ts +13 -6
  24. package/esm/src/dsl/http/versori/roundtripper.d.ts.map +1 -1
  25. package/esm/src/dsl/http/versori/roundtripper.js +171 -54
  26. package/esm/src/dsl/tasks/HttpTask.d.ts +18 -2
  27. package/esm/src/dsl/tasks/HttpTask.d.ts.map +1 -1
  28. package/esm/src/dsl/tasks/HttpTask.js +82 -0
  29. package/esm/src/dsl/triggers/ScheduleTrigger.d.ts +6 -2
  30. package/esm/src/dsl/triggers/ScheduleTrigger.d.ts.map +1 -1
  31. package/esm/src/dsl/triggers/ScheduleTrigger.js +10 -3
  32. package/esm/src/interpreter/memory/MemoryInterpreter.d.ts +1 -0
  33. package/esm/src/interpreter/memory/MemoryInterpreter.d.ts.map +1 -1
  34. package/esm/src/interpreter/memory/MemoryInterpreter.js +12 -3
  35. package/esm/src/interpreter/memory/ObservableCompiler.d.ts +2 -1
  36. package/esm/src/interpreter/memory/ObservableCompiler.d.ts.map +1 -1
  37. package/esm/src/interpreter/memory/compilers/background.d.ts.map +1 -1
  38. package/esm/src/interpreter/memory/compilers/background.js +4 -2
  39. package/esm/src/interpreter/memory/compilers/http.d.ts.map +1 -1
  40. package/esm/src/interpreter/memory/compilers/http.js +6 -12
  41. package/esm/src/interpreter/memory/compilers/schedule.d.ts.map +1 -1
  42. package/esm/src/interpreter/memory/compilers/schedule.js +32 -6
  43. package/esm/src/interpreter/memory/compilers/serial.js +1 -1
  44. package/esm/src/interpreter/memory/compilers/webhook.d.ts.map +1 -1
  45. package/esm/src/interpreter/memory/compilers/webhook.js +20 -4
  46. package/package.json +2 -1
  47. package/script/src/context/Context.d.ts +6 -1
  48. package/script/src/context/Context.d.ts.map +1 -1
  49. package/script/src/context/Context.js +17 -3
  50. package/script/src/context/ContextProvider.d.ts +3 -2
  51. package/script/src/context/ContextProvider.d.ts.map +1 -1
  52. package/script/src/context/ContextProvider.js +2 -2
  53. package/script/src/dsl/http/default.d.ts.map +1 -1
  54. package/script/src/dsl/http/default.js +3 -1
  55. package/script/src/dsl/http/types.d.ts +122 -16
  56. package/script/src/dsl/http/types.d.ts.map +1 -1
  57. package/script/src/dsl/http/types.js +7 -1
  58. package/script/src/dsl/http/versori/configloader.d.ts +2 -2
  59. package/script/src/dsl/http/versori/configloader.d.ts.map +1 -1
  60. package/script/src/dsl/http/versori/configloader.js +10 -4
  61. package/script/src/dsl/http/versori/constants.d.ts +10 -0
  62. package/script/src/dsl/http/versori/constants.d.ts.map +1 -0
  63. package/script/src/dsl/http/versori/constants.js +15 -0
  64. package/script/src/dsl/http/versori/internalauth.d.ts.map +1 -1
  65. package/script/src/dsl/http/versori/internalauth.js +10 -9
  66. package/script/src/dsl/http/versori/platformapi.d.ts +14 -0
  67. package/script/src/dsl/http/versori/platformapi.d.ts.map +1 -0
  68. package/script/src/dsl/http/versori/platformapi.js +118 -0
  69. package/script/src/dsl/http/versori/roundtripper.d.ts +13 -6
  70. package/script/src/dsl/http/versori/roundtripper.d.ts.map +1 -1
  71. package/script/src/dsl/http/versori/roundtripper.js +170 -54
  72. package/script/src/dsl/tasks/HttpTask.d.ts +18 -2
  73. package/script/src/dsl/tasks/HttpTask.d.ts.map +1 -1
  74. package/script/src/dsl/tasks/HttpTask.js +84 -1
  75. package/script/src/dsl/triggers/ScheduleTrigger.d.ts +6 -2
  76. package/script/src/dsl/triggers/ScheduleTrigger.d.ts.map +1 -1
  77. package/script/src/dsl/triggers/ScheduleTrigger.js +10 -3
  78. package/script/src/interpreter/memory/MemoryInterpreter.d.ts +1 -0
  79. package/script/src/interpreter/memory/MemoryInterpreter.d.ts.map +1 -1
  80. package/script/src/interpreter/memory/MemoryInterpreter.js +12 -3
  81. package/script/src/interpreter/memory/ObservableCompiler.d.ts +2 -1
  82. package/script/src/interpreter/memory/ObservableCompiler.d.ts.map +1 -1
  83. package/script/src/interpreter/memory/compilers/background.d.ts.map +1 -1
  84. package/script/src/interpreter/memory/compilers/background.js +3 -1
  85. package/script/src/interpreter/memory/compilers/http.d.ts.map +1 -1
  86. package/script/src/interpreter/memory/compilers/http.js +5 -11
  87. package/script/src/interpreter/memory/compilers/schedule.d.ts.map +1 -1
  88. package/script/src/interpreter/memory/compilers/schedule.js +32 -6
  89. package/script/src/interpreter/memory/compilers/serial.js +1 -1
  90. package/script/src/interpreter/memory/compilers/webhook.d.ts.map +1 -1
  91. package/script/src/interpreter/memory/compilers/webhook.js +20 -4
  92. package/esm/src/dsl/http/versori/connectapi.d.ts +0 -11
  93. package/esm/src/dsl/http/versori/connectapi.d.ts.map +0 -1
  94. package/esm/src/dsl/http/versori/connectapi.js +0 -57
  95. package/script/src/dsl/http/versori/connectapi.d.ts +0 -11
  96. package/script/src/dsl/http/versori/connectapi.d.ts.map +0 -1
  97. package/script/src/dsl/http/versori/connectapi.js +0 -61
@@ -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,55 +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
- const apiKeyName = conn.credentials.action[0].authSchemeConfig?.name || 'Authorization';
103
- switch (conn.credentials.action[0].authSchemeConfig.in) {
220
+ switch (asc.in) {
104
221
  case 'header':
105
222
  if (!init.headers) {
106
223
  init.headers = new Headers();
107
224
  }
108
225
  if (init.headers instanceof Headers) {
109
- init.headers.set(apiKeyName, token);
226
+ init.headers.set(asc.name, token);
110
227
  }
111
228
  else if (init.headers instanceof Array) {
112
- init.headers.push([apiKeyName, token]);
229
+ init.headers.push([asc.name, token]);
113
230
  }
114
231
  else {
115
232
  init.headers = {
116
233
  ...init.headers,
117
- [apiKeyName]: token
234
+ [asc.name]: token,
118
235
  };
119
236
  }
120
237
  break;
121
238
  case 'query':
122
239
  if (typeof input === 'string') {
123
- input += `?${apiKeyName}=${token}`;
240
+ input += `?${asc.name}=${token}`;
124
241
  }
125
242
  else if (input instanceof Request) {
126
- input = new Request(input.url + `?${apiKeyName}=${token}`, init);
243
+ input = new Request(input.url + `?${asc.name}=${token}`, init);
127
244
  }
128
245
  else if (input instanceof URL) {
129
- input.searchParams.append(apiKeyName, token);
246
+ input.searchParams.append(asc.name, token);
130
247
  }
131
248
  break;
132
249
  }
@@ -135,7 +252,7 @@ export class VersoriRoundTripperFactory {
135
252
  return _fn;
136
253
  }
137
254
  async basicAuthFetcher(conn, fn) {
138
- const tokenResponse = await this.tokenClient.getToken(conn.credentials.action[0].credential.id);
255
+ const tokenResponse = await this.tokenClient.getToken(conn.credentials[0].credential.id);
139
256
  const token = tokenResponse.token?.accessToken;
140
257
  if (!token) {
141
258
  throw new Error('Token not found');
@@ -147,14 +264,14 @@ export class VersoriRoundTripperFactory {
147
264
  if (!init.headers) {
148
265
  init.headers = new Headers();
149
266
  }
150
- init.headers.set('Authorization', token);
267
+ init.headers.set('Authorization', `Basic ${token}`);
151
268
  return fn(input, init);
152
269
  };
153
270
  return _fn;
154
271
  }
155
- // 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
156
273
  async bearerTokenFetcher(conn, fn) {
157
- const tokenResponse = await this.tokenClient.getToken(conn.credentials.action[0].credential.id);
274
+ const tokenResponse = await this.tokenClient.getToken(conn.credentials[0].credential.id);
158
275
  const token = tokenResponse.token?.accessToken;
159
276
  if (!token) {
160
277
  throw new Error('Token not found');
@@ -175,7 +292,7 @@ export class VersoriRoundTripperFactory {
175
292
  else {
176
293
  init.headers = {
177
294
  ...init.headers,
178
- ['Authorization']: `Bearer ${token}`
295
+ ['Authorization']: `Bearer ${token}`,
179
296
  };
180
297
  }
181
298
  return fn(input, init);
@@ -183,7 +300,7 @@ export class VersoriRoundTripperFactory {
183
300
  return _fn;
184
301
  }
185
302
  async oauth2Fetcher(conn, fn) {
186
- const tokenResponse = await this.tokenClient.getOAuth2Token(conn.credentials.action[0].credential.id);
303
+ const tokenResponse = await this.tokenClient.getOAuth2Token(conn.credentials[0].credential.id);
187
304
  const token = tokenResponse.token?.accessToken;
188
305
  const tokenType = tokenResponse.token?.tokenType;
189
306
  if (!token) {
@@ -218,7 +335,7 @@ export class VersoriRoundTripperFactory {
218
335
  else {
219
336
  init.headers = {
220
337
  ...init.headers,
221
- ['Authorization']: `${_tokenType()} ${token}`
338
+ ['Authorization']: `${_tokenType()} ${token}`,
222
339
  };
223
340
  }
224
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);
@@ -5,13 +5,14 @@ import { ContextOperatorFunction, TaskCompiler, TriggerCompiler } from './compil
5
5
  import { Trigger } from '../../dsl/Trigger.js';
6
6
  import { ContextProvider } from '../../context/ContextProvider.js';
7
7
  import { ContextImpl } from '../../context/Context.js';
8
- import { RoundTripperFactory } from '../../dsl/http/types.js';
8
+ import { ConnectionProvider, RoundTripperFactory } from '../../dsl/http/types.js';
9
9
  import { Router } from 'express';
10
10
  export type CompilerContext = {
11
11
  compiler: ObservableCompiler;
12
12
  log: Logger;
13
13
  contextProvider: ContextProvider;
14
14
  roundTripperFactory: RoundTripperFactory;
15
+ connectionProvider: ConnectionProvider;
15
16
  router: Router;
16
17
  };
17
18
  export type CompilerFunc<In = any, Out = any, T extends Task<In, Out> = Task<In, Out>> = (ctx: CompilerContext, task: T) => OperatorFunction<In, Out>;
@@ -1 +1 @@
1
- {"version":3,"file":"ObservableCompiler.d.ts","sourceRoot":"","sources":["../../../../src/src/interpreter/memory/ObservableCompiler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,MAAM,CAAC;AACpD,OAAO,EAAE,IAAI,EAAY,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAE,MAAM,EAAE,MAAM,uCAAuC,CAAC;AAO/D,OAAO,EAAE,uBAAuB,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAE9F,OAAO,EAAE,OAAO,EAAe,MAAM,sBAAsB,CAAC;AAG5D,OAAO,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AACnE,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAEvD,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAEjC,MAAM,MAAM,eAAe,GAAG;IAC1B,QAAQ,EAAE,kBAAkB,CAAC;IAC7B,GAAG,EAAE,MAAM,CAAC;IACZ,eAAe,EAAE,eAAe,CAAC;IACjC,mBAAmB,EAAE,mBAAmB,CAAC;IACzC,MAAM,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,MAAM,MAAM,YAAY,CAAC,EAAE,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,EAAE,CAAC,SAAS,IAAI,CAAC,EAAE,EAAE,GAAG,CAAC,GAAG,IAAI,CAAC,EAAE,EAAE,GAAG,CAAC,IAAI,CACrF,GAAG,EAAE,eAAe,EACpB,IAAI,EAAE,CAAC,KACN,gBAAgB,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;AAE/B,qBAAa,kBAAkB;IAC3B,OAAO,CAAC,aAAa,CAAkD;IACvE,OAAO,CAAC,gBAAgB,CAAgD;;IAgBxE,WAAW,CAAC,EAAE,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,EAAE,KAAK,GAAG,IAAI,EACzC,GAAG,EAAE,eAAe,EACpB,IAAI,EAAE,IAAI,CAAC,EAAE,EAAE,GAAG,CAAC,GACpB,uBAAuB,CAAC,EAAE,EAAE,GAAG,EAAE,KAAK,CAAC;IAe1C,cAAc,CAAC,GAAG,GAAG,GAAG,EAAE,CAAC,SAAS,OAAO,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC,EAC3D,GAAG,EAAE,eAAe,EACpB,OAAO,EAAE,CAAC,EACV,MAAM,EAAE,WAAW,GACpB,UAAU,CAAC,WAAW,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;IAerC,YAAY,CAAC,EAAE,EAAE,GAAG,EAAE,CAAC,SAAS,IAAI,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,QAAQ,EAAE,YAAY,CAAC,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC;IAKjF,eAAe,CAAC,GAAG,EAAE,CAAC,SAAS,OAAO,CAAC,GAAG,CAAC,EAAE,QAAQ,EAAE,eAAe,CAAC,GAAG,EAAE,CAAC,CAAC;CAIjF"}
1
+ {"version":3,"file":"ObservableCompiler.d.ts","sourceRoot":"","sources":["../../../../src/src/interpreter/memory/ObservableCompiler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,MAAM,CAAC;AACpD,OAAO,EAAE,IAAI,EAAY,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAE,MAAM,EAAE,MAAM,uCAAuC,CAAC;AAO/D,OAAO,EAAE,uBAAuB,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAE9F,OAAO,EAAE,OAAO,EAAe,MAAM,sBAAsB,CAAC;AAG5D,OAAO,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AACnE,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAEvD,OAAO,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAClF,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAEjC,MAAM,MAAM,eAAe,GAAG;IAC1B,QAAQ,EAAE,kBAAkB,CAAC;IAC7B,GAAG,EAAE,MAAM,CAAC;IACZ,eAAe,EAAE,eAAe,CAAC;IACjC,mBAAmB,EAAE,mBAAmB,CAAC;IACzC,kBAAkB,EAAE,kBAAkB,CAAC;IACvC,MAAM,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,MAAM,MAAM,YAAY,CAAC,EAAE,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,EAAE,CAAC,SAAS,IAAI,CAAC,EAAE,EAAE,GAAG,CAAC,GAAG,IAAI,CAAC,EAAE,EAAE,GAAG,CAAC,IAAI,CACrF,GAAG,EAAE,eAAe,EACpB,IAAI,EAAE,CAAC,KACN,gBAAgB,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;AAE/B,qBAAa,kBAAkB;IAC3B,OAAO,CAAC,aAAa,CAAkD;IACvE,OAAO,CAAC,gBAAgB,CAAgD;;IAgBxE,WAAW,CAAC,EAAE,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,EAAE,KAAK,GAAG,IAAI,EACzC,GAAG,EAAE,eAAe,EACpB,IAAI,EAAE,IAAI,CAAC,EAAE,EAAE,GAAG,CAAC,GACpB,uBAAuB,CAAC,EAAE,EAAE,GAAG,EAAE,KAAK,CAAC;IAe1C,cAAc,CAAC,GAAG,GAAG,GAAG,EAAE,CAAC,SAAS,OAAO,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC,EAC3D,GAAG,EAAE,eAAe,EACpB,OAAO,EAAE,CAAC,EACV,MAAM,EAAE,WAAW,GACpB,UAAU,CAAC,WAAW,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;IAerC,YAAY,CAAC,EAAE,EAAE,GAAG,EAAE,CAAC,SAAS,IAAI,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,QAAQ,EAAE,YAAY,CAAC,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC;IAKjF,eAAe,CAAC,GAAG,EAAE,CAAC,SAAS,OAAO,CAAC,GAAG,CAAC,EAAE,QAAQ,EAAE,eAAe,CAAC,GAAG,EAAE,CAAC,CAAC;CAIjF"}
@@ -1 +1 @@
1
- {"version":3,"file":"background.d.ts","sourceRoot":"","sources":["../../../../../src/src/interpreter/memory/compilers/background.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,cAAc,EAAE,MAAM,sCAAsC,CAAC;AAEtE,OAAO,EAA2B,YAAY,EAAE,MAAM,YAAY,CAAC;AAqCnE,eAAO,MAAM,kBAAkB,EAAE,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE,cAAc,CAAC,GAAG,EAAE,GAAG,CAAC,CAG/E,CAAC"}
1
+ {"version":3,"file":"background.d.ts","sourceRoot":"","sources":["../../../../../src/src/interpreter/memory/compilers/background.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,cAAc,EAAE,MAAM,sCAAsC,CAAC;AAEtE,OAAO,EAA2B,YAAY,EAAE,MAAM,YAAY,CAAC;AA0CnE,eAAO,MAAM,kBAAkB,EAAE,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE,cAAc,CAAC,GAAG,EAAE,GAAG,CAAC,CAG/E,CAAC"}
@@ -1,9 +1,11 @@
1
- import { asyncScheduler, catchError, connect, EMPTY, ignoreElements, map, merge, mergeMap, of, subscribeOn, tap } from 'rxjs';
1
+ import { asyncScheduler, catchError, connect, EMPTY, ignoreElements, map, merge, mergeMap, of, subscribeOn, tap, } from 'rxjs';
2
2
  import { BackgroundTask } from '../../../dsl/tasks/BackgroundTask.js';
3
3
  function compileBackground(ctx, task) {
4
4
  const base = ctx.compiler.compileTask(ctx, task._base);
5
5
  return (src) => src.pipe(connect((shared$) => merge(shared$.pipe(mergeMap((ctx) => base(of(ctx)).pipe(subscribeOn(asyncScheduler), tap({
6
- next: (ctx) => ctx.log.debug('Background task emitted a value', { data: ctx.data }),
6
+ next: (ctx) => ctx.log.debug('Background task emitted a value', {
7
+ data: ctx.data,
8
+ }),
7
9
  complete: () => ctx.log.debug('Background task completed'),
8
10
  }), catchError((error) => {
9
11
  ctx.log.error('Error in background task', {