@versori/run 0.3.0-beta.6 → 0.3.0-beta.9

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 (101) hide show
  1. package/{script/deps/jsr.io/@std/fs/1.0.19 → esm/deps/jsr.io/@std/fs/1.0.20}/exists.d.ts.map +1 -1
  2. package/esm/deps/jsr.io/@std/log/0.224.14/rotating_file_handler.js +1 -1
  3. package/esm/src/connection/DirectConnectionFactory.d.ts.map +1 -1
  4. package/esm/src/connection/DirectConnectionFactory.js +7 -4
  5. package/esm/src/connection/internal/CredentialHolder.d.ts.map +1 -1
  6. package/esm/src/connection/internal/CredentialHolder.js +2 -11
  7. package/esm/src/connection/internal/OutboundConnectionFactory.d.ts.map +1 -1
  8. package/esm/src/connection/internal/OutboundConnectionFactory.js +1 -0
  9. package/esm/src/context/AsyncWorkflow.js +1 -1
  10. package/esm/src/context/Context.d.ts +6 -7
  11. package/esm/src/context/Context.d.ts.map +1 -1
  12. package/esm/src/context/Context.js +13 -3
  13. package/esm/src/context/ContextProvider.d.ts +2 -0
  14. package/esm/src/context/ContextProvider.d.ts.map +1 -1
  15. package/esm/src/context/ContextProvider.js +5 -2
  16. package/esm/src/context/WorkflowClient.d.ts +29 -0
  17. package/esm/src/context/WorkflowClient.d.ts.map +1 -0
  18. package/esm/src/context/WorkflowClient.js +95 -0
  19. package/esm/src/dsl/http/versori/webhookmiddleware.d.ts +1 -1
  20. package/esm/src/dsl/http/versori/webhookmiddleware.d.ts.map +1 -1
  21. package/esm/src/dsl/http/versori/webhookmiddleware.js +18 -10
  22. package/esm/src/dsl/tasks/HttpTask.d.ts +2 -1
  23. package/esm/src/dsl/tasks/HttpTask.d.ts.map +1 -1
  24. package/esm/src/dsl/tasks/HttpTask.js +3 -0
  25. package/esm/src/dsl/triggers/DurableTrigger.d.ts +0 -1
  26. package/esm/src/dsl/triggers/DurableTrigger.d.ts.map +1 -1
  27. package/esm/src/internal/InternalAuth.d.ts +0 -1
  28. package/esm/src/internal/InternalAuth.d.ts.map +1 -1
  29. package/esm/src/internal/InternalAuth.js +1 -14
  30. package/esm/src/interpreter/durable/DurableInterpreter.d.ts.map +1 -1
  31. package/esm/src/interpreter/durable/DurableInterpreter.js +2 -20
  32. package/esm/src/interpreter/durable/Queue.d.ts +24 -16
  33. package/esm/src/interpreter/durable/Queue.d.ts.map +1 -1
  34. package/esm/src/interpreter/durable/Queue.js +3 -4
  35. package/esm/src/interpreter/durable/compilers/catch.js +2 -2
  36. package/esm/src/interpreter/durable/compilers/durableworkflow.d.ts.map +1 -1
  37. package/esm/src/interpreter/durable/compilers/durableworkflow.js +19 -19
  38. package/esm/src/interpreter/memory/MemoryInterpreter.d.ts.map +1 -1
  39. package/esm/src/interpreter/memory/MemoryInterpreter.js +0 -1
  40. package/esm/src/interpreter/memory/compilers/catch.js +2 -2
  41. package/esm/src/kv/sdk/SDKKeyValue.d.ts.map +1 -1
  42. package/esm/src/kv/sdk/SDKKeyValue.js +9 -3
  43. package/package.json +1 -1
  44. package/{esm/deps/jsr.io/@std/fs/1.0.19 → script/deps/jsr.io/@std/fs/1.0.20}/exists.d.ts.map +1 -1
  45. package/script/deps/jsr.io/@std/log/0.224.14/rotating_file_handler.js +1 -1
  46. package/script/src/connection/DirectConnectionFactory.d.ts.map +1 -1
  47. package/script/src/connection/DirectConnectionFactory.js +7 -4
  48. package/script/src/connection/internal/CredentialHolder.d.ts.map +1 -1
  49. package/script/src/connection/internal/CredentialHolder.js +2 -11
  50. package/script/src/connection/internal/OutboundConnectionFactory.d.ts.map +1 -1
  51. package/script/src/connection/internal/OutboundConnectionFactory.js +1 -0
  52. package/script/src/context/AsyncWorkflow.js +1 -1
  53. package/script/src/context/Context.d.ts +6 -7
  54. package/script/src/context/Context.d.ts.map +1 -1
  55. package/script/src/context/Context.js +13 -3
  56. package/script/src/context/ContextProvider.d.ts +2 -0
  57. package/script/src/context/ContextProvider.d.ts.map +1 -1
  58. package/script/src/context/ContextProvider.js +5 -2
  59. package/script/src/context/WorkflowClient.d.ts +29 -0
  60. package/script/src/context/WorkflowClient.d.ts.map +1 -0
  61. package/script/src/context/WorkflowClient.js +99 -0
  62. package/script/src/dsl/http/versori/webhookmiddleware.d.ts +1 -1
  63. package/script/src/dsl/http/versori/webhookmiddleware.d.ts.map +1 -1
  64. package/script/src/dsl/http/versori/webhookmiddleware.js +18 -10
  65. package/script/src/dsl/tasks/HttpTask.d.ts +2 -1
  66. package/script/src/dsl/tasks/HttpTask.d.ts.map +1 -1
  67. package/script/src/dsl/tasks/HttpTask.js +3 -0
  68. package/script/src/dsl/triggers/DurableTrigger.d.ts +0 -1
  69. package/script/src/dsl/triggers/DurableTrigger.d.ts.map +1 -1
  70. package/script/src/internal/InternalAuth.d.ts +0 -1
  71. package/script/src/internal/InternalAuth.d.ts.map +1 -1
  72. package/script/src/internal/InternalAuth.js +0 -13
  73. package/script/src/interpreter/durable/DurableInterpreter.d.ts.map +1 -1
  74. package/script/src/interpreter/durable/DurableInterpreter.js +1 -19
  75. package/script/src/interpreter/durable/Queue.d.ts +24 -16
  76. package/script/src/interpreter/durable/Queue.d.ts.map +1 -1
  77. package/script/src/interpreter/durable/Queue.js +3 -4
  78. package/script/src/interpreter/durable/compilers/catch.js +2 -2
  79. package/script/src/interpreter/durable/compilers/durableworkflow.d.ts.map +1 -1
  80. package/script/src/interpreter/durable/compilers/durableworkflow.js +19 -19
  81. package/script/src/interpreter/memory/MemoryInterpreter.d.ts.map +1 -1
  82. package/script/src/interpreter/memory/MemoryInterpreter.js +0 -1
  83. package/script/src/interpreter/memory/compilers/catch.js +2 -2
  84. package/script/src/kv/sdk/SDKKeyValue.d.ts.map +1 -1
  85. package/script/src/kv/sdk/SDKKeyValue.js +9 -3
  86. package/esm/src/internal/cli.d.ts +0 -2
  87. package/esm/src/internal/cli.d.ts.map +0 -1
  88. package/esm/src/internal/cli.js +0 -20
  89. package/esm/src/services/createConnectRpcClient.d.ts +0 -16
  90. package/esm/src/services/createConnectRpcClient.d.ts.map +0 -1
  91. package/esm/src/services/createConnectRpcClient.js +0 -63
  92. package/script/src/internal/cli.d.ts +0 -2
  93. package/script/src/internal/cli.d.ts.map +0 -1
  94. package/script/src/internal/cli.js +0 -23
  95. package/script/src/services/createConnectRpcClient.d.ts +0 -16
  96. package/script/src/services/createConnectRpcClient.d.ts.map +0 -1
  97. package/script/src/services/createConnectRpcClient.js +0 -66
  98. /package/esm/deps/jsr.io/@std/fs/{1.0.19 → 1.0.20}/exists.d.ts +0 -0
  99. /package/esm/deps/jsr.io/@std/fs/{1.0.19 → 1.0.20}/exists.js +0 -0
  100. /package/script/deps/jsr.io/@std/fs/{1.0.19 → 1.0.20}/exists.d.ts +0 -0
  101. /package/script/deps/jsr.io/@std/fs/{1.0.19 → 1.0.20}/exists.js +0 -0
@@ -8,21 +8,17 @@ import { DirectConnectionFactory } from '../../connection/DirectConnectionFactor
8
8
  import { ContextProviderImpl } from '../../context/ContextProvider.js';
9
9
  import { DefaultRoundTripperFactory } from '../../dsl/http/default.js';
10
10
  import { VersoriConfigReader } from '../../dsl/http/versori/configloader.js';
11
- import { envVarEnvId, envVarEnvironmentName, envVarLocalRun, envVarOrgId, envVarOrgSlug, envVarOtelTracesURL, envVarProjectId, envVarSDKApiBaseURL, envVarVersion, } from '../../dsl/http/versori/constants.js';
11
+ import { envVarEnvId, envVarEnvironmentName, envVarLocalRun, envVarOrgId, envVarOrgSlug, envVarOtelTracesURL, envVarProjectId, envVarVersion, } from '../../dsl/http/versori/constants.js';
12
12
  import { CronAPIClient } from '../../dsl/http/versori/cronapi.js';
13
13
  import { ProxyRoundTripper } from '../../dsl/http/versori/proxyroundtripper.js';
14
14
  import { WorkflowImpl } from '../../dsl/Workflow.js';
15
15
  import { IssueImpl } from '../../issues/Issues.js';
16
- import { MemoryKeyValueProvider } from '../../kv/memory/MemoryKeyValueProvider.js';
17
16
  import { SDKKeyValueProvider } from '../../kv/sdk/SDKKeyValueProvider.js';
18
17
  import { ConsoleLogger } from '../../observability/logging/ConsoleLogger.js';
19
18
  import { PlatformApiImpl } from '../../services/platform/PlatformApi.js';
20
19
  import { ObservableCompiler } from './ObservableCompiler.js';
21
20
  import { QueueImpl } from './Queue.js';
22
21
  function getKVProvider(runLocal) {
23
- if (runLocal) {
24
- return Promise.resolve(new MemoryKeyValueProvider());
25
- }
26
22
  return SDKKeyValueProvider.fromEnv();
27
23
  }
28
24
  function getRoundTripperFactory(log, tracer, opts) {
@@ -160,10 +156,8 @@ export class DurableInterpreter {
160
156
  const compiler = options.compiler || new ObservableCompiler();
161
157
  const serviceName = Deno.env.get(envVarProjectId) || 'example-service';
162
158
  const environmentID = Deno.env.get(envVarEnvId) || 'development';
163
- const serviceId = Deno.env.get(envVarProjectId) || 'development';
164
159
  const version = Deno.env.get(envVarVersion) || '1.0.0';
165
160
  const environment = Deno.env.get(envVarEnvironmentName) || 'development';
166
- const sdkAPIBaseURL = Deno.env.get(envVarSDKApiBaseURL) || 'http://localhost:8902';
167
161
  const orgId = Deno.env.get(envVarOrgId) || 'development';
168
162
  const orgSlug = Deno.env.get(envVarOrgSlug) || 'development';
169
163
  const otelTracesURL = Deno.env.get(envVarOtelTracesURL);
@@ -207,7 +201,7 @@ export class DurableInterpreter {
207
201
  const platformApi = PlatformApiImpl.fromEnv();
208
202
  const organisationId = Deno.env.get(envVarOrgId) || 'development';
209
203
  const environmentId = Deno.env.get(envVarEnvId) || 'development';
210
- const ctxProvider = new ContextProviderImpl(log, kvp, roundTripperFactory.credentials(), platformApi, organisationId, environmentId, issuesProvider);
204
+ const ctxProvider = new ContextProviderImpl(log, kvp, roundTripperFactory.credentials(), platformApi, organisationId, environmentId, issuesProvider, queueProvider);
211
205
  return new DurableInterpreter(log, compiler, ctxProvider, express.Router(), express.Router(), new Map(), PlatformApiImpl.fromEnv(), DirectConnectionFactory.fromEnv(log), CronAPIClient.fromEnv(), tracer, issuesProvider, configReader, queueProvider, otelSDK);
212
206
  }
213
207
  register(workflow, options) {
@@ -291,7 +285,6 @@ export class DurableInterpreter {
291
285
  const durationMs = Date.now() - ctx.startTime.getTime();
292
286
  ctx.log.info('DurableInterpreter.executionCompleted', {
293
287
  durationMs,
294
- data: ctx.data,
295
288
  });
296
289
  try {
297
290
  ctx.options.onSuccess?.(ctx);
@@ -303,17 +296,6 @@ export class DurableInterpreter {
303
296
  error: err instanceof Error ? err.toString() : err,
304
297
  }));
305
298
  }
306
- if (ctx.workflowId) {
307
- this.log.info('Async workflow completed', {
308
- workflowId: ctx.workflowId,
309
- });
310
- const output = ctx.data ? btoa(JSON.stringify(ctx.data)) : undefined;
311
- await ctx.queue?.complete({
312
- id: ctx.workflowId,
313
- output,
314
- status: 'completed',
315
- });
316
- }
317
299
  this.contextProvider.destroy(ctx);
318
300
  },
319
301
  error: (err) => {
@@ -1,26 +1,34 @@
1
1
  import { Logger } from '../../observability/mod.js';
2
2
  export type WorkflowMsgMetadata = {
3
3
  parentWorkflowId?: string;
4
- executionId?: string;
5
- activationId?: string;
4
+ executionId: string;
5
+ activationId: string;
6
6
  userId?: string;
7
7
  };
8
8
  export type Workflows = {
9
- workflows: WorkflowMsg[];
9
+ workflows: Workflow[];
10
10
  };
11
- export type WorkflowMsg = {
12
- id?: string;
13
- projectId?: string;
14
- environmentId?: string;
11
+ export type Workflow = {
12
+ id: string;
13
+ projectId: string;
14
+ environmentId: string;
15
15
  group: string;
16
- payload?: string;
16
+ payload: string;
17
17
  output?: string;
18
18
  status?: 'available' | 'locked' | 'completed' | 'failed';
19
- attempt?: number;
19
+ attempt: number;
20
+ maxAttempts?: number;
21
+ timeout: string;
22
+ createdAt: string;
23
+ metadata: WorkflowMsgMetadata;
24
+ };
25
+ export type SubmitWorkflow = {
26
+ group: string;
27
+ payload: string;
20
28
  maxAttempts?: number;
21
- timeout?: string;
22
- createdAt?: string;
23
- metadata?: WorkflowMsgMetadata;
29
+ metadata: WorkflowMsgMetadata;
30
+ projectId?: string;
31
+ environmentId?: string;
24
32
  };
25
33
  export type CompleteWorkflowRequest = {
26
34
  id: string;
@@ -39,14 +47,14 @@ export type RescheduleWorkflowRequest = {
39
47
  after: string;
40
48
  };
41
49
  export type SubmitWorkflowsRequest = {
42
- workflows: WorkflowMsg[];
50
+ workflows: SubmitWorkflow[];
43
51
  };
44
52
  export interface QueueAPI {
45
53
  complete(request: CompleteWorkflowRequest): Promise<void>;
46
54
  submit(request: SubmitWorkflowsRequest): Promise<Workflows>;
47
55
  fetchWorkflows(request: FetchWorkflowsRequest): Promise<Workflows | undefined>;
48
56
  reschedule(request: RescheduleWorkflowRequest): Promise<void>;
49
- poll(workflowId: string): Promise<WorkflowMsg>;
57
+ getWorkflow(workflowId: string): Promise<Workflow>;
50
58
  }
51
59
  export declare class QueueImpl implements QueueAPI {
52
60
  private baseUrl;
@@ -59,7 +67,7 @@ export declare class QueueImpl implements QueueAPI {
59
67
  submit(request: SubmitWorkflowsRequest): Promise<Workflows>;
60
68
  fetchWorkflows(request: FetchWorkflowsRequest): Promise<Workflows | undefined>;
61
69
  reschedule(request: RescheduleWorkflowRequest): Promise<void>;
62
- poll(workflowId: string): Promise<WorkflowMsg>;
70
+ getWorkflow(workflowId: string): Promise<Workflow>;
63
71
  }
64
72
  export declare class MockQueue implements QueueAPI {
65
73
  constructor();
@@ -67,6 +75,6 @@ export declare class MockQueue implements QueueAPI {
67
75
  submit(_request: SubmitWorkflowsRequest): Promise<Workflows>;
68
76
  fetchWorkflows(_request: FetchWorkflowsRequest): Promise<Workflows | undefined>;
69
77
  reschedule(_request: RescheduleWorkflowRequest): Promise<void>;
70
- poll(_workflowId: string): Promise<WorkflowMsg>;
78
+ getWorkflow(_workflowId: string): Promise<Workflow>;
71
79
  }
72
80
  //# sourceMappingURL=Queue.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Queue.d.ts","sourceRoot":"","sources":["../../../../src/src/interpreter/durable/Queue.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Queue.d.ts","sourceRoot":"","sources":["../../../../src/src/interpreter/durable/Queue.ts"],"names":[],"mappings":"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"}
@@ -57,7 +57,7 @@ export class QueueImpl {
57
57
  output: request.output,
58
58
  status: request.status,
59
59
  });
60
- throw new Error('Failed to complete workflow');
60
+ throw new Error(await resp.text());
61
61
  }
62
62
  return;
63
63
  }
@@ -130,8 +130,7 @@ export class QueueImpl {
130
130
  }
131
131
  return;
132
132
  }
133
- async poll(workflowId) {
134
- // this endpoint returns a 404 if the workflow is not completed
133
+ async getWorkflow(workflowId) {
135
134
  const resp = await fetch(`${this.baseUrl}/v1/workflows/fetch/${workflowId}`, {
136
135
  method: 'GET',
137
136
  });
@@ -158,7 +157,7 @@ export class MockQueue {
158
157
  reschedule(_request) {
159
158
  throw new Error('Method not implemented.');
160
159
  }
161
- poll(_workflowId) {
160
+ getWorkflow(_workflowId) {
162
161
  throw new Error('Method not implemented.');
163
162
  }
164
163
  }
@@ -23,7 +23,7 @@ function compileCatch(compilerCtx, task) {
23
23
  annotations: {
24
24
  'error': error.message,
25
25
  'stack': error.stack || '',
26
- 'workflowId': ctx.options.workflowId || ctx.workflowId ||
26
+ 'workflowId': ctx.options.workflow?.id || ctx.workflow?.id ||
27
27
  '',
28
28
  'executionId': ctx.executionId,
29
29
  },
@@ -39,7 +39,7 @@ function compileCatch(compilerCtx, task) {
39
39
  annotations: {
40
40
  'error': error.message || '',
41
41
  'stack': error.stack || '',
42
- 'workflowId': ctx.options.workflowId || ctx.workflowId ||
42
+ 'workflowId': ctx.options.workflow?.id || ctx.workflow?.id ||
43
43
  '',
44
44
  'executionId': ctx.executionId,
45
45
  },
@@ -1 +1 @@
1
- {"version":3,"file":"durableworkflow.d.ts","sourceRoot":"","sources":["../../../../../src/src/interpreter/durable/compilers/durableworkflow.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,MAAM,CAAC;AAClC,OAAO,EAAE,sBAAsB,EAAE,MAAM,WAAW,CAAC;AACnD,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAC9C,OAAO,EACH,mBAAmB,EACnB,sBAAsB,EACzB,MAAM,yCAAyC,CAAC;AACjD,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAI3C,wBAAgB,sBAAsB,CAClC,GAAG,EAAE,sBAAsB,EAC3B,OAAO,EAAE,sBAAsB,EAC/B,MAAM,EAAE,WAAW,GACpB,UAAU,CAAC,WAAW,CAAC,mBAAmB,CAAC,CAAC,CAmG9C;AAED,eAAO,MAAM,uBAAuB,EAAE,eAAe,CAAC,mBAAmB,EAAE,sBAAsB,CAIhG,CAAC"}
1
+ {"version":3,"file":"durableworkflow.d.ts","sourceRoot":"","sources":["../../../../../src/src/interpreter/durable/compilers/durableworkflow.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,MAAM,CAAC;AAClC,OAAO,EAAE,sBAAsB,EAAE,MAAM,WAAW,CAAC;AACnD,OAAO,EAAW,WAAW,EAAE,MAAM,iBAAiB,CAAC;AACvD,OAAO,EACH,mBAAmB,EACnB,sBAAsB,EACzB,MAAM,yCAAyC,CAAC;AACjD,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAK3C,wBAAgB,sBAAsB,CAClC,GAAG,EAAE,sBAAsB,EAC3B,OAAO,EAAE,sBAAsB,EAC/B,MAAM,EAAE,WAAW,GACpB,UAAU,CAAC,WAAW,CAAC,mBAAmB,CAAC,CAAC,CA8F9C;AAED,eAAO,MAAM,uBAAuB,EAAE,eAAe,CAAC,mBAAmB,EAAE,sBAAsB,CAIhG,CAAC"}
@@ -1,6 +1,7 @@
1
1
  import { Observable } from 'rxjs';
2
2
  import { DurableWorkflowTrigger, } from '../../../dsl/triggers/DurableTrigger.js';
3
3
  import { envVarEnvId } from '../../../internal/constants.js';
4
+ import { ulid } from '../../../../deps/jsr.io/@std/ulid/1.0.0/mod.js';
4
5
  export function compileDurableWorkflow(ctx, trigger, signal) {
5
6
  return new Observable((subscriber) => {
6
7
  function cleanup() {
@@ -35,24 +36,9 @@ export function compileDurableWorkflow(ctx, trigger, signal) {
35
36
  continue;
36
37
  }
37
38
  for (const wf of wfs.workflows) {
38
- if (wf.id &&
39
- wf.attempt !== undefined &&
40
- trigger.options.maxAttempts &&
41
- wf.attempt > trigger.options.maxAttempts) {
42
- ctx.log.error('Workflow exceeded max attempts failing', {
43
- workflowId: wf.id,
44
- attempts: wf.attempt,
45
- });
46
- await ctx.queueProvider.complete({
47
- id: wf.id,
48
- output: wf.output,
49
- status: 'failed',
50
- });
51
- continue;
52
- }
53
39
  const data = JSON.parse(atob(wf.payload ?? '{}'));
54
40
  let activation;
55
- if (wf.metadata?.activationId) {
41
+ try {
56
42
  const { data } = await ctx.platformApi.getActivation({
57
43
  path: {
58
44
  activation_id: wf.metadata.activationId,
@@ -63,9 +49,23 @@ export function compileDurableWorkflow(ctx, trigger, signal) {
63
49
  });
64
50
  activation = data;
65
51
  }
66
- const newContext = ctx.contextProvider.create(data, {
67
- activation: activation,
68
- workflowId: wf.id,
52
+ catch (error) {
53
+ ctx.log.error('Failed to get activation', { error });
54
+ throw new Error('Failed to get activation');
55
+ }
56
+ const newContext = ctx.contextProvider.createWithExecutionId(activation, data, wf.metadata.executionId ?? ulid().toString(), {
57
+ workflow: wf,
58
+ onSuccess: (completedContext) => {
59
+ // locked status means we own the workflow and it's not completed yet
60
+ if (wf.status !== 'locked') {
61
+ return;
62
+ }
63
+ ctx.queueProvider.complete({
64
+ id: wf.id,
65
+ output: btoa(JSON.stringify(completedContext.data)),
66
+ status: 'completed',
67
+ });
68
+ },
69
69
  });
70
70
  consecutiveErrors = 0;
71
71
  subscriber.next(newContext);
@@ -1 +1 @@
1
- {"version":3,"file":"MemoryInterpreter.d.ts","sourceRoot":"","sources":["../../../../src/src/interpreter/memory/MemoryInterpreter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"MemoryInterpreter.d.ts","sourceRoot":"","sources":["../../../../src/src/interpreter/memory/MemoryInterpreter.ts"],"names":[],"mappings":"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"}
@@ -269,7 +269,6 @@ export class MemoryInterpreter {
269
269
  const durationMs = Date.now() - ctx.startTime.getTime();
270
270
  ctx.log.info('MemoryInterpreter.executionCompleted', {
271
271
  durationMs,
272
- data: ctx.data,
273
272
  });
274
273
  try {
275
274
  ctx.options.onSuccess?.(ctx);
@@ -22,7 +22,7 @@ function compileCatch(compilerCtx, task) {
22
22
  annotations: {
23
23
  'error': error.message,
24
24
  'stack': error.stack || '',
25
- 'workflowId': ctx.options.workflowId || ctx.workflowId ||
25
+ 'workflowId': ctx.options.workflow?.id || ctx.workflow?.id ||
26
26
  '',
27
27
  'executionId': ctx.executionId,
28
28
  },
@@ -35,7 +35,7 @@ function compileCatch(compilerCtx, task) {
35
35
  annotations: {
36
36
  'error': error.message || '',
37
37
  'stack': error.stack || '',
38
- 'workflowId': ctx.options.workflowId || ctx.workflowId ||
38
+ 'workflowId': ctx.options.workflow?.id || ctx.workflow?.id ||
39
39
  '',
40
40
  'executionId': ctx.executionId,
41
41
  },
@@ -1 +1 @@
1
- {"version":3,"file":"SDKKeyValue.d.ts","sourceRoot":"","sources":["../../../../src/src/kv/sdk/SDKKeyValue.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AACtD,OAAO,EAAE,mBAAmB,EAAE,MAAM,4DAA4D,CAAC;AAGjG,OAAO,EAAE,aAAa,EAAE,MAAM,sDAAsD,CAAC;AACrF,OAAO,EAAE,cAAc,EAAE,MAAM,uDAAuD,CAAC;AACvF,OAAO,EAAE,eAAe,EAAE,MAAM,wDAAwD,CAAC;AAEzF,qBAAa,WAAY,YAAW,QAAQ;IAC5B,OAAO,CAAC,QAAQ,CAAC,KAAK;IAAuB,OAAO,CAAC,QAAQ,CAAC,MAAM;gBAAnD,KAAK,EAAE,mBAAmB,EAAmB,MAAM,EAAE,MAAM;IAElF,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,EAAE,EAAE,OAAO,GAAE,UAAU,CAAC,CAAC,CAAM,GAAG,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC;IAoBnF,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,EAAE,EAAE,KAAK,EAAE,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAYvD,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAU7C,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,eAAe,CAAC;IAUjD,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,OAAO,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,cAAc,CAAC;IAY9E,OAAO,CAAC,WAAW;CAGtB"}
1
+ {"version":3,"file":"SDKKeyValue.d.ts","sourceRoot":"","sources":["../../../../src/src/kv/sdk/SDKKeyValue.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AACtD,OAAO,EAAE,mBAAmB,EAAE,MAAM,4DAA4D,CAAC;AAGjG,OAAO,EAAE,aAAa,EAAE,MAAM,sDAAsD,CAAC;AACrF,OAAO,EAAE,cAAc,EAAE,MAAM,uDAAuD,CAAC;AACvF,OAAO,EAAE,eAAe,EAAE,MAAM,wDAAwD,CAAC;AAEzF,qBAAa,WAAY,YAAW,QAAQ;IAC5B,OAAO,CAAC,QAAQ,CAAC,KAAK;IAAuB,OAAO,CAAC,QAAQ,CAAC,MAAM;gBAAnD,KAAK,EAAE,mBAAmB,EAAmB,MAAM,EAAE,MAAM;IAElF,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,EAAE,EAAE,OAAO,GAAE,UAAU,CAAC,CAAC,CAAM,GAAG,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC;IA2BnF,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,EAAE,EAAE,KAAK,EAAE,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAYvD,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAU7C,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,eAAe,CAAC;IAUjD,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,OAAO,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,cAAc,CAAC;IAY9E,OAAO,CAAC,WAAW;CAGtB"}
@@ -19,7 +19,13 @@ export class SDKKeyValue {
19
19
  try {
20
20
  const k = this.generateKey(key instanceof Array ? key.join('/') : key);
21
21
  const entry = await KvOperationsService.getKv(this.store.id, k);
22
- return entry.value;
22
+ if (entry.value === undefined) {
23
+ if (options.throwOnNotFound) {
24
+ throw new Error('Key not found');
25
+ }
26
+ return undefined;
27
+ }
28
+ return JSON.parse(String(entry.value));
23
29
  }
24
30
  catch (error) {
25
31
  if (options.throwOnNotFound && error instanceof Error && error.message === 'Key not found') {
@@ -33,10 +39,10 @@ export class SDKKeyValue {
33
39
  }
34
40
  }
35
41
  async set(key, value) {
36
- // const payload = JSON.stringify(value);
42
+ const payload = JSON.stringify(value);
37
43
  const k = this.generateKey(key instanceof Array ? key.join('/') : key);
38
44
  await KvOperationsService.setKv(this.store.id, k, {
39
- value: value,
45
+ value: payload,
40
46
  options: {}
41
47
  });
42
48
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@versori/run",
3
- "version": "v0.3.0-beta.6",
3
+ "version": "v0.3.0-beta.9",
4
4
  "description": "Versori Run",
5
5
  "homepage": "https://github.com/versori/versori-run#readme",
6
6
  "repository": {
@@ -1 +1 @@
1
- {"version":3,"file":"exists.d.ts","sourceRoot":"","sources":["../../../../../../src/deps/jsr.io/@std/fs/1.0.19/exists.ts"],"names":[],"mappings":"AAEA,iEAAiE;AACjE,MAAM,WAAW,aAAa;IAC5B;;;;OAIG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB;;;;;OAKG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB;;;;;OAKG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgGG;AACH,wBAAsB,MAAM,CAC1B,IAAI,EAAE,MAAM,GAAG,GAAG,EAClB,OAAO,CAAC,EAAE,aAAa,GACtB,OAAO,CAAC,OAAO,CAAC,CAsClB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+FG;AACH,wBAAgB,UAAU,CACxB,IAAI,EAAE,MAAM,GAAG,GAAG,EAClB,OAAO,CAAC,EAAE,aAAa,GACtB,OAAO,CAqCT"}
1
+ {"version":3,"file":"exists.d.ts","sourceRoot":"","sources":["../../../../../../src/deps/jsr.io/@std/fs/1.0.20/exists.ts"],"names":[],"mappings":"AAEA,iEAAiE;AACjE,MAAM,WAAW,aAAa;IAC5B;;;;OAIG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB;;;;;OAKG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB;;;;;OAKG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgGG;AACH,wBAAsB,MAAM,CAC1B,IAAI,EAAE,MAAM,GAAG,GAAG,EAClB,OAAO,CAAC,EAAE,aAAa,GACtB,OAAO,CAAC,OAAO,CAAC,CAsClB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+FG;AACH,wBAAgB,UAAU,CACxB,IAAI,EAAE,MAAM,GAAG,GAAG,EAClB,OAAO,CAAC,EAAE,aAAa,GACtB,OAAO,CAqCT"}
@@ -13,7 +13,7 @@ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (
13
13
  var _RotatingFileHandler_maxBytes, _RotatingFileHandler_maxBackupCount, _RotatingFileHandler_currentFileSize;
14
14
  Object.defineProperty(exports, "__esModule", { value: true });
15
15
  exports.RotatingFileHandler = void 0;
16
- const exists_js_1 = require("../../fs/1.0.19/exists.js");
16
+ const exists_js_1 = require("../../fs/1.0.20/exists.js");
17
17
  const file_handler_js_1 = require("./file_handler.js");
18
18
  const _file_handler_symbols_js_1 = require("./_file_handler_symbols.js");
19
19
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"DirectConnectionFactory.d.ts","sourceRoot":"","sources":["../../../src/src/connection/DirectConnectionFactory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAE7C,OAAO,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AACzC,OAAO,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAC;AACjD,OAAO,EAAE,kBAAkB,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,gCAAgC,CAAC;AAExF,OAAO,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAC;AACzD,OAAO,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AAGpE,OAAO,EAAE,iBAAiB,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAG1D;;;;;;;GAOG;AACH,qBAAa,uBAAwB,YAAW,iBAAiB;IAKzD,OAAO,CAAC,QAAQ,CAAC,iBAAiB;IAClC,OAAO,CAAC,QAAQ,CAAC,WAAW;IAC5B,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,MAAM;IAR3B,OAAO,CAAC,QAAQ,CAAC,yBAAyB,CAA4B;IACtE,OAAO,CAAC,QAAQ,CAAC,+BAA+B,CAA2B;gBAGtD,iBAAiB,EAAE,iBAAiB,EACpC,WAAW,EAAE,MAAM,CAAC,OAAO,kBAAkB,CAAC,iBAAiB,CAAC,EAChE,MAAM,EAAE,MAAM,CAAC,OAAO,QAAQ,CAAC,YAAY,CAAC,EAC5C,MAAM,EAAE,MAAM,CAAC,OAAO,QAAQ,CAAC,oBAAoB,CAAC,EACpD,MAAM,EAAE,MAAM;IAkBnC,OAAO,CAAC,GAAG,EAAE,UAAU,GAAG,OAAO,CAAC,SAAS,CAAC;IAI5C,OAAO,CAAC,GAAG,EAAE,UAAU,GAAG,OAAO,CAAC,cAAc,CAAC;IAIjD,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,MAAM,GAAG,uBAAuB;CAiB1D"}
1
+ {"version":3,"file":"DirectConnectionFactory.d.ts","sourceRoot":"","sources":["../../../src/src/connection/DirectConnectionFactory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAgB,MAAM,qBAAqB,CAAC;AAE3D,OAAO,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AACzC,OAAO,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAC;AACjD,OAAO,EAAE,kBAAkB,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,gCAAgC,CAAC;AACxF,OAAO,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAC;AACzD,OAAO,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AAGpE,OAAO,EAAE,iBAAiB,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAG1D;;;;;;;GAOG;AACH,qBAAa,uBAAwB,YAAW,iBAAiB;IAKzD,OAAO,CAAC,QAAQ,CAAC,iBAAiB;IAClC,OAAO,CAAC,QAAQ,CAAC,WAAW;IAC5B,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,MAAM;IAR3B,OAAO,CAAC,QAAQ,CAAC,yBAAyB,CAA4B;IACtE,OAAO,CAAC,QAAQ,CAAC,+BAA+B,CAA2B;gBAGtD,iBAAiB,EAAE,iBAAiB,EACpC,WAAW,EAAE,MAAM,CAAC,OAAO,kBAAkB,CAAC,iBAAiB,CAAC,EAChE,MAAM,EAAE,MAAM,CAAC,OAAO,QAAQ,CAAC,YAAY,CAAC,EAC5C,MAAM,EAAE,MAAM,CAAC,OAAO,QAAQ,CAAC,oBAAoB,CAAC,EACpD,MAAM,EAAE,MAAM;IAkBnC,OAAO,CAAC,GAAG,EAAE,UAAU,GAAG,OAAO,CAAC,SAAS,CAAC;IAI5C,OAAO,CAAC,GAAG,EAAE,UAAU,GAAG,OAAO,CAAC,cAAc,CAAC;IAIjD,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,MAAM,GAAG,uBAAuB;CAqB1D"}
@@ -1,9 +1,9 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.DirectConnectionFactory = void 0;
4
+ const connect_1 = require("@connectrpc/connect");
4
5
  const connect_node_1 = require("@connectrpc/connect-node");
5
6
  const mod_js_1 = require("../services/credentials/mod.js");
6
- const createConnectRpcClient_js_1 = require("../services/createConnectRpcClient.js");
7
7
  const HttpClientFactory_js_1 = require("./internal/HttpClientFactory.js");
8
8
  const InboundConnectionFactory_js_1 = require("./internal/InboundConnectionFactory.js");
9
9
  const OutboundConnectionFactory_js_1 = require("./internal/OutboundConnectionFactory.js");
@@ -73,9 +73,12 @@ class DirectConnectionFactory {
73
73
  }
74
74
  static fromEnv(logger) {
75
75
  const baseUrl = Deno.env.get(constants_js_1.envVarCredsBaseURL) || 'http://localhost:9000';
76
- const credentials = (0, createConnectRpcClient_js_1.createConnectRpcClient)(mod_js_1.credentialv1alpha1.CredentialService, () => { return (0, connect_node_1.createGrpcTransport)({ baseUrl }); });
77
- const tokens = (0, createConnectRpcClient_js_1.createConnectRpcClient)(mod_js_1.tokensv1.TokenService, () => { return (0, connect_node_1.createGrpcTransport)({ baseUrl }); });
78
- const oauth1 = (0, createConnectRpcClient_js_1.createConnectRpcClient)(mod_js_1.oauth1v1.AuthorizationService, () => { return (0, connect_node_1.createGrpcTransport)({ baseUrl }); });
76
+ const transport = (0, connect_node_1.createGrpcTransport)({
77
+ baseUrl,
78
+ });
79
+ const credentials = (0, connect_1.createClient)(mod_js_1.credentialv1alpha1.CredentialService, transport);
80
+ const tokens = (0, connect_1.createClient)(mod_js_1.tokensv1.TokenService, transport);
81
+ const oauth1 = (0, connect_1.createClient)(mod_js_1.oauth1v1.AuthorizationService, transport);
79
82
  const httpClientFactory = new HttpClientFactory_js_1.HttpClientFactory();
80
83
  return new DirectConnectionFactory(httpClientFactory, credentials, tokens, oauth1, logger);
81
84
  }
@@ -1 +1 @@
1
- {"version":3,"file":"CredentialHolder.d.ts","sourceRoot":"","sources":["../../../../src/src/connection/internal/CredentialHolder.ts"],"names":[],"mappings":"AAEA,wBAAgB,WAAW,IAAI,OAAO,CAErC;AAED;;GAEG;AACH,qBAAa,gBAAgB,CAAC,CAAC;;gBAOf,YAAY,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,OAAO,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC;IAMxF,GAAG,CAAC,OAAO,GAAE,OAAe,GAAG,OAAO,CAAC,CAAC,CAAC;IA0B/C,OAAO,IAAI,IAAI;CAgClB"}
1
+ {"version":3,"file":"CredentialHolder.d.ts","sourceRoot":"","sources":["../../../../src/src/connection/internal/CredentialHolder.ts"],"names":[],"mappings":"AAAA,wBAAgB,WAAW,IAAI,OAAO,CAErC;AAED;;GAEG;AACH,qBAAa,gBAAgB,CAAC,CAAC;;gBAOf,YAAY,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,OAAO,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC;IAMxF,GAAG,CAAC,OAAO,GAAE,OAAe,GAAG,OAAO,CAAC,CAAC,CAAC;IAkB/C,OAAO,IAAI,IAAI;CAgClB"}
@@ -35,17 +35,8 @@ class CredentialHolder {
35
35
  this.refresh();
36
36
  return __classPrivateFieldGet(this, _CredentialHolder_value, "f");
37
37
  }
38
- // if this.refresh returns a rejected promise we are stuck with it until a restart.
39
- // the try/catch bellow just keeps on trying to refresh the token if this.#value is rejected.
40
- //
41
- // We might have to change this because if credentials has an issue we might just make that issue worse by pamming more requests
42
- try {
43
- const value = await __classPrivateFieldGet(this, _CredentialHolder_value, "f");
44
- if (!__classPrivateFieldGet(this, _CredentialHolder_isValid, "f").call(this, value)) {
45
- this.refresh();
46
- }
47
- }
48
- catch {
38
+ const value = await __classPrivateFieldGet(this, _CredentialHolder_value, "f");
39
+ if (!__classPrivateFieldGet(this, _CredentialHolder_isValid, "f").call(this, value)) {
49
40
  this.refresh();
50
41
  }
51
42
  // must return this.#value and not value, since calling `this.refresh()` above will replace
@@ -1 +1 @@
1
- {"version":3,"file":"OutboundConnectionFactory.d.ts","sourceRoot":"","sources":["../../../../src/src/connection/internal/OutboundConnectionFactory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAE7C,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAEtC,OAAO,EAAE,kBAAkB,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,mCAAmC,CAAC;AAC3F,OAAO,EAGH,UAAU,EAGb,MAAM,gCAAgC,CAAC;AACxC,OAAO,EAAE,SAAS,EAAsB,MAAM,aAAa,CAAC;AAG5D,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAI3D,qBAAa,yBAAyB;IAI9B,OAAO,CAAC,QAAQ,CAAC,iBAAiB;IAClC,OAAO,CAAC,QAAQ,CAAC,WAAW;IAC5B,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,MAAM;IAP3B,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAuC;gBAGxC,iBAAiB,EAAE,iBAAiB,EACpC,WAAW,EAAE,MAAM,CAAC,OAAO,kBAAkB,CAAC,iBAAiB,CAAC,EAChE,MAAM,EAAE,MAAM,CAAC,OAAO,QAAQ,CAAC,YAAY,CAAC,EAC5C,MAAM,EAAE,MAAM,CAAC,OAAO,QAAQ,CAAC,oBAAoB,CAAC,EACpD,MAAM,EAAE,MAAM;IAKnC,OAAO,CAAC,GAAG,EAAE,UAAU,GAAG,OAAO,CAAC,SAAS,CAAC;YAkB9B,YAAY;IAmB1B,OAAO,CAAC,eAAe;YAiDT,0BAA0B;YAwB1B,qBAAqB;IA4DnC,OAAO,CAAC,2BAA2B;IAuBnC,OAAO,CAAC,0BAA0B;IAkDlC,OAAO,CAAC,2BAA2B;YA0BrB,wBAAwB;YAkCxB,qBAAqB;IAiCnC,OAAO,CAAC,8BAA8B;IAuBtC,OAAO,CAAC,2BAA2B;YA2ErB,wBAAwB;YAkCxB,qBAAqB;IA6CnC,OAAO,CAAC,kCAAkC;CAuB7C"}
1
+ {"version":3,"file":"OutboundConnectionFactory.d.ts","sourceRoot":"","sources":["../../../../src/src/connection/internal/OutboundConnectionFactory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAE7C,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAEtC,OAAO,EAAE,kBAAkB,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,mCAAmC,CAAC;AAC3F,OAAO,EAGH,UAAU,EAGb,MAAM,gCAAgC,CAAC;AACxC,OAAO,EAAE,SAAS,EAAsB,MAAM,aAAa,CAAC;AAG5D,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAI3D,qBAAa,yBAAyB;IAI9B,OAAO,CAAC,QAAQ,CAAC,iBAAiB;IAClC,OAAO,CAAC,QAAQ,CAAC,WAAW;IAC5B,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,MAAM;IAP3B,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAuC;gBAGxC,iBAAiB,EAAE,iBAAiB,EACpC,WAAW,EAAE,MAAM,CAAC,OAAO,kBAAkB,CAAC,iBAAiB,CAAC,EAChE,MAAM,EAAE,MAAM,CAAC,OAAO,QAAQ,CAAC,YAAY,CAAC,EAC5C,MAAM,EAAE,MAAM,CAAC,OAAO,QAAQ,CAAC,oBAAoB,CAAC,EACpD,MAAM,EAAE,MAAM;IAKnC,OAAO,CAAC,GAAG,EAAE,UAAU,GAAG,OAAO,CAAC,SAAS,CAAC;YAkB9B,YAAY;IAmB1B,OAAO,CAAC,eAAe;YAiDT,0BAA0B;YAwB1B,qBAAqB;IA4DnC,OAAO,CAAC,2BAA2B;IAuBnC,OAAO,CAAC,0BAA0B;IAkDlC,OAAO,CAAC,2BAA2B;YA0BrB,wBAAwB;YAkCxB,qBAAqB;IAiCnC,OAAO,CAAC,8BAA8B;IAuBtC,OAAO,CAAC,2BAA2B;YA2ErB,wBAAwB;YAkCxB,qBAAqB;IA6CnC,OAAO,CAAC,kCAAkC;CAyB7C"}
@@ -419,6 +419,7 @@ class OutboundConnectionFactory {
419
419
  const token = await tokenHolder.get();
420
420
  const headers = new Headers(init?.headers);
421
421
  headers.set('Authorization', `${tokenType} ${token.accessToken}`);
422
+ console.log('headers', input);
422
423
  return fetch(input, {
423
424
  ...init,
424
425
  headers,
@@ -63,7 +63,7 @@ class AsyncWorkflow {
63
63
  this.isWaiting = false;
64
64
  throw new Error('wait timed out');
65
65
  }
66
- const workflow = await this.queue.poll(this.workflowId);
66
+ const workflow = await this.queue.getWorkflow(this.workflowId);
67
67
  if (workflow.status === 'completed') {
68
68
  // workflow is completed, parse the output and set the data and completed to true
69
69
  const stringData = workflow.output;
@@ -5,20 +5,17 @@ import { Issue, IssueAPI } from '../issues/Issues.js';
5
5
  import { KeyValue, KeyValueProvider, KeyValueScope } from '../kv/KeyValue.js';
6
6
  import { Logger } from '../observability/logging/Logger.js';
7
7
  import { AsyncWorkflow } from './AsyncWorkflow.js';
8
+ import { Workflow } from '../interpreter/durable/Queue.js';
8
9
  import { ActivationImpl } from './ActivationImpl.js';
10
+ import { WorkflowInterface, WorkflowOpts } from './WorkflowClient.js';
9
11
  export type OnSuccessFn = (ctx: Context<any>) => void;
10
12
  export type OnErrorFn = (ctx: Context<any>) => void;
11
13
  export type ContextOptions = {
12
- workflowId?: string;
14
+ workflow?: Workflow;
13
15
  request?: express.Request;
14
16
  onSuccess?: OnSuccessFn;
15
17
  onError?: OnErrorFn;
16
18
  };
17
- export type WorkflowOpts = {
18
- maxAttempts?: number;
19
- data?: unknown;
20
- dataRaw?: string;
21
- };
22
19
  export type CreateIssue = {
23
20
  severity: 'low' | 'medium' | 'high';
24
21
  title: string;
@@ -43,6 +40,7 @@ export interface Context<D> {
43
40
  deduplicate?: boolean;
44
41
  }): Promise<Issue | null>;
45
42
  request(): express.Request | undefined;
43
+ workflowClient(): WorkflowInterface;
46
44
  }
47
45
  export declare class ContextImpl<D, Index = void> implements Context<D> {
48
46
  #private;
@@ -56,11 +54,12 @@ export declare class ContextImpl<D, Index = void> implements Context<D> {
56
54
  readonly options: ContextOptions;
57
55
  constructor(log: Logger, kvp: KeyValueProvider, creds: CredentialsProvider, executionId: string, startTime: Date, data: D, activation: ActivationImpl, issues: IssueAPI, queue?: QueueAPI, options?: ContextOptions);
58
56
  get activation(): ActivationImpl;
59
- get workflowId(): string | undefined;
57
+ get workflow(): Workflow | undefined;
60
58
  setIndex(idx: number): ContextImpl<D, number>;
61
59
  withData<D2>(data: D2): ContextImpl<D2, Index>;
62
60
  openKv(scope?: KeyValueScope): KeyValue;
63
61
  request(): express.Request | undefined;
62
+ workflowClient(): WorkflowInterface;
64
63
  start(group: string, opts: WorkflowOpts): Promise<AsyncWorkflow>;
65
64
  createIssue(issue: CreateIssue, options?: {
66
65
  deduplicate?: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"Context.d.ts","sourceRoot":"","sources":["../../../src/src/context/Context.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,OAAO,MAAM,SAAS,CAAC;AACxC,OAAO,EAAE,mBAAmB,EAAE,MAAM,2CAA2C,CAAC;AAChF,OAAO,EAAE,QAAQ,EAAE,MAAM,iCAAiC,CAAC;AAC3D,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,EAAE,QAAQ,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAC9E,OAAO,EAAE,MAAM,EAAE,MAAM,oCAAoC,CAAC;AAC5D,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAEnD,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAErD,MAAM,MAAM,WAAW,GAAG,CAAC,GAAG,EAAE,OAAO,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC;AACtD,MAAM,MAAM,SAAS,GAAG,CAAC,GAAG,EAAE,OAAO,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC;AAEpD,MAAM,MAAM,cAAc,GAAG;IACzB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,OAAO,CAAC,OAAO,CAAC;IAC1B,SAAS,CAAC,EAAE,WAAW,CAAC;IACxB,OAAO,CAAC,EAAE,SAAS,CAAC;CACvB,CAAC;AAKF,MAAM,MAAM,YAAY,GAAG;IACvB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG;IACtB,QAAQ,EAAE,KAAK,GAAG,QAAQ,GAAG,MAAM,CAAC;IACpC,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACvC,CAAC;AAEF,MAAM,WAAW,OAAO,CAAC,CAAC;IACtB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,SAAS,EAAE,IAAI,CAAC;IACzB,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;IAEjB,UAAU,EAAE,cAAc,CAAC;IAE3B;;;OAGG;IACH,MAAM,CAAC,KAAK,CAAC,EAAE,aAAa,GAAG,QAAQ,CAAC;IAExC,KAAK,CAAC,UAAU,EAAE,MAAM,EAAE,YAAY,EAAE,YAAY,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC;IAE9E,WAAW,IAAI,mBAAmB,CAAC;IAEnC,OAAO,CAAC,KAAK,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAE7C,WAAW,CAAC,KAAK,EAAE,WAAW,EAAE,OAAO,CAAC,EAAE;QAAE,WAAW,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC,CAAC;IAE5F,OAAO,IAAI,OAAO,CAAC,OAAO,GAAG,SAAS,CAAC;CAC1C;AAED,qBAAa,WAAW,CAAC,CAAC,EAAE,KAAK,GAAG,IAAI,CAAE,YAAW,OAAO,CAAC,CAAC,CAAC;;IAC3D,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,SAAS,EAAE,IAAI,CAAC;IACzB,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;IAGjB,GAAG,EAAE,KAAK,CAAC;IAEX,QAAQ,CAAC,GAAG,EAAE,gBAAgB,CAAC;IAC/B,QAAQ,CAAC,KAAK,CAAC,EAAE,QAAQ,CAAC;IAE1B,QAAQ,CAAC,OAAO,EAAE,cAAc,CAAC;gBAI7B,GAAG,EAAE,MAAM,EACX,GAAG,EAAE,gBAAgB,EACrB,KAAK,EAAE,mBAAmB,EAC1B,WAAW,EAAE,MAAM,EACnB,SAAS,EAAE,IAAI,EACf,IAAI,EAAE,CAAC,EACP,UAAU,EAAE,cAAc,EAC1B,MAAM,EAAE,QAAQ,EAChB,KAAK,CAAC,EAAE,QAAQ,EAChB,OAAO,GAAE,cAAmB;IA0BhC,IAAI,UAAU,IAAI,cAAc,CAE/B;IAED,IAAI,UAAU,IAAI,MAAM,GAAG,SAAS,CAEnC;IAED,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,WAAW,CAAC,CAAC,EAAE,MAAM,CAAC;IAkB7C,QAAQ,CAAC,EAAE,EAAE,IAAI,EAAE,EAAE,GAAG,WAAW,CAAC,EAAE,EAAE,KAAK,CAAC;IAe9C,MAAM,CAAC,KAAK,GAAE,aAA2B,GAAG,QAAQ;IAepD,OAAO,IAAI,OAAO,CAAC,OAAO,GAAG,SAAS;IAIhC,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,YAAY,GAAG,OAAO,CAAC,aAAa,CAAC;IAgCtE,WAAW,CAAC,KAAK,EAAE,WAAW,EAAE,OAAO,CAAC,EAAE;QAAE,WAAW,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC;IAO3F,WAAW,IAAI,mBAAmB;IAUlC,OAAO,CAAC,KAAK,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC;IAe5C,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;CAQlD"}
1
+ {"version":3,"file":"Context.d.ts","sourceRoot":"","sources":["../../../src/src/context/Context.ts"],"names":[],"mappings":"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"}
@@ -14,6 +14,7 @@ var _ContextImpl_activation, _ContextImpl_issues, _ContextImpl_creds;
14
14
  Object.defineProperty(exports, "__esModule", { value: true });
15
15
  exports.ContextImpl = void 0;
16
16
  const AsyncWorkflow_js_1 = require("./AsyncWorkflow.js");
17
+ const WorkflowClient_js_1 = require("./WorkflowClient.js");
17
18
  class ContextImpl {
18
19
  constructor(log, kvp, creds, executionId, startTime, data, activation, issues, queue, options = {}) {
19
20
  Object.defineProperty(this, "log", {
@@ -87,12 +88,13 @@ class ContextImpl {
87
88
  this.request = this.request.bind(this);
88
89
  this.createIssue = this.createIssue.bind(this);
89
90
  this.destroy = this.destroy.bind(this);
91
+ this.workflowClient = this.workflowClient.bind(this);
90
92
  }
91
93
  get activation() {
92
94
  return __classPrivateFieldGet(this, _ContextImpl_activation, "f");
93
95
  }
94
- get workflowId() {
95
- return this.options.workflowId;
96
+ get workflow() {
97
+ return this.options.workflow;
96
98
  }
97
99
  setIndex(idx) {
98
100
  const next = new ContextImpl(this.log, this.kvp, __classPrivateFieldGet(this, _ContextImpl_creds, "f"), this.executionId, this.startTime, this.data, __classPrivateFieldGet(this, _ContextImpl_activation, "f"), __classPrivateFieldGet(this, _ContextImpl_issues, "f"), this.queue, this.options);
@@ -118,6 +120,12 @@ class ContextImpl {
118
120
  request() {
119
121
  return this.options.request;
120
122
  }
123
+ workflowClient() {
124
+ if (!this.queue) {
125
+ throw new Error('Queue is not available for this context, cannot start workflow');
126
+ }
127
+ return new WorkflowClient_js_1.WorkflowImpl(this.queue, this.executionId, this.activation);
128
+ }
121
129
  async start(group, opts) {
122
130
  // this makes a post request to the endpoint sending a message and schedule the workflow to run
123
131
  if (!this.queue) {
@@ -134,12 +142,14 @@ class ContextImpl {
134
142
  workflows: [
135
143
  {
136
144
  group,
145
+ projectId: Deno.env.get('VERSORI_PROJECT_ID') ?? 'unknown',
146
+ environmentId: Deno.env.get('VERSORI_ENVIRONMENT_ID') ?? 'unknown',
137
147
  metadata: {
138
148
  executionId: this.executionId,
139
149
  activationId: this.activation?.id,
140
150
  userId: this.activation?.user?.externalId,
141
151
  },
142
- payload,
152
+ payload: payload ?? btoa("{}"),
143
153
  maxAttempts: opts.maxAttempts,
144
154
  },
145
155
  ],
@@ -7,6 +7,7 @@ import { Context, ContextImpl, ContextOptions } from './Context.js';
7
7
  import { Activation, PlatformApi } from '../services/platform/mod.js';
8
8
  export interface ContextProvider {
9
9
  create<D>(activation: Activation, data: D, options?: ContextOptions): ContextImpl<D, void>;
10
+ createWithExecutionId<D>(activation: Activation, data: D, executionId: string, options?: ContextOptions): ContextImpl<D, void>;
10
11
  destroy(ctx: Context<any>): Promise<void>;
11
12
  }
12
13
  export declare class ContextProviderImpl implements ContextProvider {
@@ -19,6 +20,7 @@ export declare class ContextProviderImpl implements ContextProvider {
19
20
  issues: IssueAPI;
20
21
  queue?: QueueAPI;
21
22
  constructor(log: Logger, kvp: KeyValueProvider, creds: CredentialsProvider, platformApi: PlatformApi, organisationId: string, environmentId: string, issues: IssueAPI, queue?: QueueAPI | undefined);
23
+ createWithExecutionId<D>(activation: Activation, data: D, executionId: string, options?: ContextOptions): ContextImpl<D, void>;
22
24
  create<D>(activation: Activation, data: D, options?: ContextOptions): ContextImpl<D>;
23
25
  destroy(_: Context<any>): Promise<void>;
24
26
  }
@@ -1 +1 @@
1
- {"version":3,"file":"ContextProvider.d.ts","sourceRoot":"","sources":["../../../src/src/context/ContextProvider.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,MAAM,2CAA2C,CAAC;AAChF,OAAO,EAAE,QAAQ,EAAE,MAAM,iCAAiC,CAAC;AAC3D,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAC/C,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,EAAE,MAAM,EAAE,MAAM,oCAAoC,CAAC;AAC5D,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AACpE,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAGtE,MAAM,WAAW,eAAe;IAC5B,MAAM,CAAC,CAAC,EAAE,UAAU,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,WAAW,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;IAC3F,OAAO,CAAC,GAAG,EAAE,OAAO,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAC7C;AAED,qBAAa,mBAAoB,YAAW,eAAe;IAWnD,OAAO,CAAC,QAAQ,CAAC,WAAW;IAC5B,OAAO,CAAC,QAAQ,CAAC,cAAc;IAC/B,OAAO,CAAC,QAAQ,CAAC,aAAa;IAZlC,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,gBAAgB,CAAC;IACtB,KAAK,EAAE,mBAAmB,CAAC;IAC3B,MAAM,EAAE,QAAQ,CAAC;IACjB,KAAK,CAAC,EAAE,QAAQ,CAAC;gBAGb,GAAG,EAAE,MAAM,EACX,GAAG,EAAE,gBAAgB,EACrB,KAAK,EAAE,mBAAmB,EACT,WAAW,EAAE,WAAW,EACxB,cAAc,EAAE,MAAM,EACtB,aAAa,EAAE,MAAM,EACtC,MAAM,EAAE,QAAQ,EAChB,KAAK,GAAE,QAAQ,GAAG,SAAqB;IAS3C,MAAM,CAAC,CAAC,EAAE,UAAU,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,EAAE,OAAO,GAAE,cAAmB,GAAG,WAAW,CAAC,CAAC,CAAC;IAyBxF,OAAO,CAAC,CAAC,EAAE,OAAO,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;CAG1C"}
1
+ {"version":3,"file":"ContextProvider.d.ts","sourceRoot":"","sources":["../../../src/src/context/ContextProvider.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,MAAM,2CAA2C,CAAC;AAChF,OAAO,EAAE,QAAQ,EAAE,MAAM,iCAAiC,CAAC;AAC3D,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAC/C,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,EAAE,MAAM,EAAE,MAAM,oCAAoC,CAAC;AAC5D,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AACpE,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAGtE,MAAM,WAAW,eAAe;IAC5B,MAAM,CAAC,CAAC,EAAE,UAAU,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,WAAW,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;IAC3F,qBAAqB,CAAC,CAAC,EAAE,UAAU,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,EAAE,WAAW,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,WAAW,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;IAC/H,OAAO,CAAC,GAAG,EAAE,OAAO,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAC7C;AAED,qBAAa,mBAAoB,YAAW,eAAe;IAWnD,OAAO,CAAC,QAAQ,CAAC,WAAW;IAC5B,OAAO,CAAC,QAAQ,CAAC,cAAc;IAC/B,OAAO,CAAC,QAAQ,CAAC,aAAa;IAZlC,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,gBAAgB,CAAC;IACtB,KAAK,EAAE,mBAAmB,CAAC;IAC3B,MAAM,EAAE,QAAQ,CAAC;IACjB,KAAK,CAAC,EAAE,QAAQ,CAAC;gBAGb,GAAG,EAAE,MAAM,EACX,GAAG,EAAE,gBAAgB,EACrB,KAAK,EAAE,mBAAmB,EACT,WAAW,EAAE,WAAW,EACxB,cAAc,EAAE,MAAM,EACtB,aAAa,EAAE,MAAM,EACtC,MAAM,EAAE,QAAQ,EAChB,KAAK,GAAE,QAAQ,GAAG,SAAqB;IAS3C,qBAAqB,CAAC,CAAC,EAAE,UAAU,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,EAAE,WAAW,EAAE,MAAM,EAAE,OAAO,GAAE,cAAmB,GAAG,WAAW,CAAC,CAAC,EAAE,IAAI,CAAC;IAuBlI,MAAM,CAAC,CAAC,EAAE,UAAU,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,EAAE,OAAO,GAAE,cAAmB,GAAG,WAAW,CAAC,CAAC,CAAC;IAMxF,OAAO,CAAC,CAAC,EAAE,OAAO,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;CAG1C"}