@versori/run 0.5.5 → 0.5.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm/src/context/Context.d.ts +6 -1
- package/esm/src/context/Context.d.ts.map +1 -1
- package/esm/src/context/Context.js +5 -2
- package/esm/src/context/VanillaContext.d.ts +1 -1
- package/esm/src/context/VanillaContext.d.ts.map +1 -1
- package/esm/src/context/VanillaContext.js +5 -2
- package/esm/src/interpreter/durable/compilers/catch.d.ts.map +1 -1
- package/esm/src/interpreter/durable/compilers/catch.js +4 -4
- package/esm/src/interpreter/durable/compilers/durableworkflow.d.ts.map +1 -1
- package/esm/src/interpreter/durable/compilers/durableworkflow.js +50 -29
- package/esm/src/interpreter/memory/compilers/catch.d.ts.map +1 -1
- package/esm/src/interpreter/memory/compilers/catch.js +4 -4
- package/esm/src/interpreter/vanilla/compilers/catch.d.ts.map +1 -1
- package/esm/src/interpreter/vanilla/compilers/catch.js +2 -2
- package/esm/src/interpreter/vanilla/compilers/durableworkflow.d.ts.map +1 -1
- package/esm/src/interpreter/vanilla/compilers/durableworkflow.js +37 -16
- package/esm/src/kv/memory/MemoryKeyValue.d.ts.map +1 -1
- package/esm/src/kv/memory/MemoryKeyValue.js +70 -19
- package/esm/src/kv/nats/NatsKeyValue.d.ts.map +1 -1
- package/esm/src/kv/nats/NatsKeyValue.js +77 -23
- package/esm/src/kv/sdk/SDKKeyValue.d.ts.map +1 -1
- package/esm/src/kv/sdk/SDKKeyValue.js +103 -38
- package/package.json +1 -1
- package/script/src/context/Context.d.ts +6 -1
- package/script/src/context/Context.d.ts.map +1 -1
- package/script/src/context/Context.js +5 -2
- package/script/src/context/VanillaContext.d.ts +1 -1
- package/script/src/context/VanillaContext.d.ts.map +1 -1
- package/script/src/context/VanillaContext.js +5 -2
- package/script/src/interpreter/durable/compilers/catch.d.ts.map +1 -1
- package/script/src/interpreter/durable/compilers/catch.js +4 -4
- package/script/src/interpreter/durable/compilers/durableworkflow.d.ts.map +1 -1
- package/script/src/interpreter/durable/compilers/durableworkflow.js +50 -29
- package/script/src/interpreter/memory/compilers/catch.d.ts.map +1 -1
- package/script/src/interpreter/memory/compilers/catch.js +4 -4
- package/script/src/interpreter/vanilla/compilers/catch.d.ts.map +1 -1
- package/script/src/interpreter/vanilla/compilers/catch.js +2 -2
- package/script/src/interpreter/vanilla/compilers/durableworkflow.d.ts.map +1 -1
- package/script/src/interpreter/vanilla/compilers/durableworkflow.js +37 -16
- package/script/src/kv/memory/MemoryKeyValue.d.ts.map +1 -1
- package/script/src/kv/memory/MemoryKeyValue.js +73 -19
- package/script/src/kv/nats/NatsKeyValue.d.ts.map +1 -1
- package/script/src/kv/nats/NatsKeyValue.js +80 -23
- package/script/src/kv/sdk/SDKKeyValue.d.ts.map +1 -1
- package/script/src/kv/sdk/SDKKeyValue.js +106 -38
|
@@ -15,6 +15,11 @@ export type ContextOptions = {
|
|
|
15
15
|
request?: express.Request;
|
|
16
16
|
onSuccess?: OnSuccessFn;
|
|
17
17
|
onError?: OnErrorFn;
|
|
18
|
+
/**
|
|
19
|
+
* Set by the catch task compiler when execution continues via `.catch()`. The durable workflow trigger's
|
|
20
|
+
* `onSuccess` skips queue completion when this is set so recovered errors are not reported as completed runs.
|
|
21
|
+
*/
|
|
22
|
+
recoveredFromCatch?: boolean;
|
|
18
23
|
};
|
|
19
24
|
/**
|
|
20
25
|
* CreateIssue is the payload for creating a new issue.
|
|
@@ -104,7 +109,7 @@ export declare class ContextImpl<D, Index = void> implements Context<D> {
|
|
|
104
109
|
get activation(): ActivationImpl;
|
|
105
110
|
get workflow(): Workflow | undefined;
|
|
106
111
|
setIndex(idx: number): ContextImpl<D, number>;
|
|
107
|
-
withData<D2>(data: D2): ContextImpl<D2, Index>;
|
|
112
|
+
withData<D2>(data: D2, optionsPatch?: Partial<ContextOptions>): ContextImpl<D2, Index>;
|
|
108
113
|
openKv(scope?: KeyValueScope): KeyValue;
|
|
109
114
|
request(): express.Request | undefined;
|
|
110
115
|
workflowClient(): WorkflowInterface;
|
|
@@ -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;AAExC,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,EAAE,mBAAmB,EAAE,MAAM,2CAA2C,CAAC;AAChF,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,iCAAiC,CAAC;AACrE,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,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAgB,iBAAiB,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAIpF,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,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,OAAO,CAAC,EAAE,OAAO,CAAC,OAAO,CAAC;IAC1B,SAAS,CAAC,EAAE,WAAW,CAAC;IACxB,OAAO,CAAC,EAAE,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"Context.d.ts","sourceRoot":"","sources":["../../../src/src/context/Context.ts"],"names":[],"mappings":"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"}
|
|
@@ -111,8 +111,11 @@ export class ContextImpl {
|
|
|
111
111
|
next.idx = idx;
|
|
112
112
|
return next;
|
|
113
113
|
}
|
|
114
|
-
withData(data) {
|
|
115
|
-
|
|
114
|
+
withData(data, optionsPatch) {
|
|
115
|
+
const nextOptions = optionsPatch !== undefined
|
|
116
|
+
? { ...this.options, ...optionsPatch }
|
|
117
|
+
: this.options;
|
|
118
|
+
return new ContextImpl(this.log, this.kvp, __classPrivateFieldGet(this, _ContextImpl_creds, "f"), this.executionId, this.startTime, data, __classPrivateFieldGet(this, _ContextImpl_activation, "f"), __classPrivateFieldGet(this, _ContextImpl_issues, "f"), this.queue, nextOptions);
|
|
116
119
|
}
|
|
117
120
|
openKv(scope = ':project:') {
|
|
118
121
|
if (scope === ':execution:') {
|
|
@@ -36,7 +36,7 @@ export declare class VanillaContext<D, Index = void> implements Context<D> {
|
|
|
36
36
|
get activation(): ActivationInterface;
|
|
37
37
|
get workflow(): Workflow | undefined;
|
|
38
38
|
setIndex(idx: number): VanillaContext<D, number>;
|
|
39
|
-
withData<D2>(data: D2): VanillaContext<D2, Index>;
|
|
39
|
+
withData<D2>(data: D2, optionsPatch?: Partial<ContextOptions>): VanillaContext<D2, Index>;
|
|
40
40
|
openKv(scope?: KeyValueScope): KeyValue;
|
|
41
41
|
request(): express.Request | undefined;
|
|
42
42
|
workflowClient(): WorkflowInterface;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"VanillaContext.d.ts","sourceRoot":"","sources":["../../../src/src/context/VanillaContext.ts"],"names":[],"mappings":"AAcA,OAAO,EACH,UAAU,EACV,UAAU,EACV,gBAAgB,EAChB,OAAO,EACP,kBAAkB,EACrB,MAAM,6BAA6B,CAAC;AACrC,OAAO,KAAK,KAAK,OAAO,MAAM,SAAS,CAAC;AACxC,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,iCAAiC,CAAC;AACrE,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,EAAE,mBAAmB,EAAE,QAAQ,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AACnG,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AACpE,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAgB,iBAAiB,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAEpF,qBAAa,iBAAkB,YAAW,mBAAmB;IAErD,OAAO,CAAC,QAAQ,CAAC,UAAU;IAC3B,OAAO,CAAC,QAAQ,CAAC,cAAc;IAC/B,OAAO,CAAC,QAAQ,CAAC,aAAa;IAC9B,OAAO,CAAC,QAAQ,CAAC,GAAG;gBAHH,UAAU,EAAE,UAAU,EACtB,cAAc,EAAE,MAAM,EACtB,aAAa,EAAE,MAAM,EACrB,GAAG,EAAE,MAAM;IAGhC,IAAI,EAAE,IAAI,MAAM,CAEf;IAED,IAAI,IAAI,IAAI,OAAO,CAElB;IAED,IAAI,WAAW,IAAI,kBAAkB,GAAG,SAAS,CAEhD;IAED,IAAI,WAAW,IAAI,KAAK,CAAC,UAAU,CAAC,GAAG,SAAS,CAE/C;IAED,IAAI,gBAAgB,IAAI,gBAAgB,GAAG,SAAS,CAEnD;IAED,WAAW,CAAC,CAAC,GAAG,OAAO,EAAE,IAAI,EAAE,MAAM,GAAG,CAAC,GAAG,SAAS;IAQrD,WAAW,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;CAGrD;AAED,qBAAa,cAAc,CAAC,CAAC,EAAE,KAAK,GAAG,IAAI,CAAE,YAAW,OAAO,CAAC,CAAC,CAAC;;IAC9D,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;gBAG7B,GAAG,EAAE,MAAM,EACX,GAAG,EAAE,gBAAgB,EACrB,WAAW,EAAE,MAAM,EACnB,SAAS,EAAE,IAAI,EACf,IAAI,EAAE,CAAC,EACP,UAAU,EAAE,iBAAiB,EAC7B,MAAM,EAAE,QAAQ,EAChB,KAAK,CAAC,EAAE,QAAQ,EAChB,OAAO,GAAE,cAAmB;IA0BhC,IAAI,UAAU,IAAI,mBAAmB,CAEpC;IAED,IAAI,QAAQ,IAAI,QAAQ,GAAG,SAAS,CAEnC;IAED,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,cAAc,CAAC,CAAC,EAAE,MAAM,CAAC;IAiBhD,QAAQ,CAAC,EAAE,EAAE,IAAI,EAAE,EAAE,GAAG,cAAc,CAAC,EAAE,EAAE,KAAK,CAAC;
|
|
1
|
+
{"version":3,"file":"VanillaContext.d.ts","sourceRoot":"","sources":["../../../src/src/context/VanillaContext.ts"],"names":[],"mappings":"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"}
|
|
@@ -161,8 +161,11 @@ export class VanillaContext {
|
|
|
161
161
|
next.idx = idx;
|
|
162
162
|
return next;
|
|
163
163
|
}
|
|
164
|
-
withData(data) {
|
|
165
|
-
|
|
164
|
+
withData(data, optionsPatch) {
|
|
165
|
+
const nextOptions = optionsPatch !== undefined
|
|
166
|
+
? { ...this.options, ...optionsPatch }
|
|
167
|
+
: this.options;
|
|
168
|
+
return new VanillaContext(this.log, this.kvp, this.executionId, this.startTime, data, __classPrivateFieldGet(this, _VanillaContext_activation, "f"), __classPrivateFieldGet(this, _VanillaContext_issues, "f"), this.queue, nextOptions);
|
|
166
169
|
}
|
|
167
170
|
openKv(scope = ':project:') {
|
|
168
171
|
if (scope === ':execution:') {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"catch.d.ts","sourceRoot":"","sources":["../../../../../src/src/interpreter/durable/compilers/catch.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,SAAS,EAAE,MAAM,iCAAiC,CAAC;AAG5D,OAAO,EAA2B,YAAY,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"catch.d.ts","sourceRoot":"","sources":["../../../../../src/src/interpreter/durable/compilers/catch.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,SAAS,EAAE,MAAM,iCAAiC,CAAC;AAG5D,OAAO,EAA2B,YAAY,EAAE,MAAM,YAAY,CAAC;AAuFnE,eAAO,MAAM,aAAa,EAAE,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE,SAAS,CAAC,GAAG,EAAE,GAAG,CAAC,CAGrE,CAAC"}
|
|
@@ -43,15 +43,15 @@ function compileCatch(compilerCtx, task) {
|
|
|
43
43
|
reason: 'error',
|
|
44
44
|
severity: 'high',
|
|
45
45
|
});
|
|
46
|
-
return errorOperator(of(ctx.withData(new ExecutionError(ctx, error.message, { cause: error }))));
|
|
46
|
+
return errorOperator(of(ctx.withData(new ExecutionError(ctx, error.message, { cause: error }), { recoveredFromCatch: true })));
|
|
47
47
|
}
|
|
48
48
|
ctx.log.error('execution has encountered an error', {
|
|
49
49
|
error: error,
|
|
50
50
|
});
|
|
51
51
|
compilerCtx.issueProvider.submitIssue({
|
|
52
52
|
annotations: {
|
|
53
|
-
'error': error
|
|
54
|
-
'stack':
|
|
53
|
+
'error': String(error),
|
|
54
|
+
'stack': '',
|
|
55
55
|
'workflowId': ctx.options.workflow?.id || ctx.workflow?.id || '',
|
|
56
56
|
'executionId': ctx.executionId,
|
|
57
57
|
'activationId': ctx.activation.id,
|
|
@@ -62,7 +62,7 @@ function compileCatch(compilerCtx, task) {
|
|
|
62
62
|
});
|
|
63
63
|
span.setAttribute('error', `${error}`);
|
|
64
64
|
span.end();
|
|
65
|
-
return errorOperator(of(ctx.withData(new ExecutionError(ctx, `${error}`, { cause: error }))));
|
|
65
|
+
return errorOperator(of(ctx.withData(new ExecutionError(ctx, `${error}`, { cause: error }), { recoveredFromCatch: true })));
|
|
66
66
|
});
|
|
67
67
|
}));
|
|
68
68
|
}));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"durableworkflow.d.ts","sourceRoot":"","sources":["../../../../../src/src/interpreter/durable/compilers/durableworkflow.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,UAAU,EAAE,MAAM,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"durableworkflow.d.ts","sourceRoot":"","sources":["../../../../../src/src/interpreter/durable/compilers/durableworkflow.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,UAAU,EAAE,MAAM,MAAM,CAAC;AAElC,OAAO,EAAW,WAAW,EAAE,MAAM,6BAA6B,CAAC;AACnE,OAAO,EACH,mBAAmB,EACnB,sBAAsB,EACzB,MAAM,yCAAyC,CAAC;AAEjD,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAE3C,wBAAgB,sBAAsB,CAClC,GAAG,EAAE,sBAAsB,EAC3B,OAAO,EAAE,sBAAsB,EAC/B,MAAM,EAAE,WAAW,GACpB,UAAU,CAAC,WAAW,CAAC,mBAAmB,CAAC,CAAC,CAgH9C;AAED,eAAO,MAAM,uBAAuB,EAAE,eAAe,CAAC,mBAAmB,EAAE,sBAAsB,CAIhG,CAAC"}
|
|
@@ -40,42 +40,63 @@ export function compileDurableWorkflow(ctx, trigger, signal) {
|
|
|
40
40
|
continue;
|
|
41
41
|
}
|
|
42
42
|
for (const wf of wfs.workflows) {
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
43
|
+
await ctx.tracer.startActiveSpan(`durableworkflow-${trigger.id}`, async (span) => {
|
|
44
|
+
span.setAttribute('task.id', trigger.id);
|
|
45
|
+
span.setAttribute('task.type', 'durableworkflow');
|
|
46
|
+
span.setAttribute('execution.id', wf.metadata?.executionId ?? '');
|
|
47
|
+
if (wf.metadata?.activationId) {
|
|
48
|
+
span.setAttribute('activation.id', wf.metadata.activationId);
|
|
49
|
+
}
|
|
47
50
|
try {
|
|
48
|
-
const
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
51
|
+
const payload = wf.payload ? atob(wf.payload) : '{}';
|
|
52
|
+
const data = JSON.parse(payload);
|
|
53
|
+
let activation;
|
|
54
|
+
if (wf.metadata?.activationId) {
|
|
55
|
+
try {
|
|
56
|
+
const { data } = await ctx.platformApi.getActivation({
|
|
57
|
+
path: {
|
|
58
|
+
activation_id: wf.metadata.activationId,
|
|
59
|
+
organisation_id: ctx.organisationId,
|
|
60
|
+
environment_id: Deno.env.get(envVarEnvId) || 'development',
|
|
61
|
+
},
|
|
62
|
+
throwOnError: true,
|
|
63
|
+
});
|
|
64
|
+
activation = data;
|
|
65
|
+
}
|
|
66
|
+
catch (error) {
|
|
67
|
+
ctx.log.error('Failed to get activation', { error });
|
|
68
|
+
throw new Error('Failed to get activation');
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
const newContext = ctx.contextProvider.createWithExecutionId(activation, data, wf.metadata?.executionId ?? ulid().toString(), {
|
|
72
|
+
workflow: wf,
|
|
73
|
+
onSuccess: (completedContext) => {
|
|
74
|
+
const opts = completedContext.options;
|
|
75
|
+
if (opts.recoveredFromCatch) {
|
|
76
|
+
return;
|
|
77
|
+
}
|
|
78
|
+
// locked status means we own the workflow and it's not completed yet
|
|
79
|
+
if (wf.status !== 'locked') {
|
|
80
|
+
return;
|
|
81
|
+
}
|
|
82
|
+
ctx.queueProvider.complete({
|
|
83
|
+
id: wf.id,
|
|
84
|
+
output: btoa(JSON.stringify(completedContext.data)),
|
|
85
|
+
status: 'completed',
|
|
86
|
+
});
|
|
53
87
|
},
|
|
54
|
-
throwOnError: true,
|
|
55
88
|
});
|
|
56
|
-
|
|
89
|
+
consecutiveErrors = 0;
|
|
90
|
+
subscriber.next(newContext);
|
|
57
91
|
}
|
|
58
92
|
catch (error) {
|
|
59
|
-
|
|
60
|
-
|
|
93
|
+
span.recordException(error instanceof Error ? error : new Error(String(error)));
|
|
94
|
+
ctx.log.error('Error processing workflow', { error });
|
|
95
|
+
}
|
|
96
|
+
finally {
|
|
97
|
+
span.end();
|
|
61
98
|
}
|
|
62
|
-
}
|
|
63
|
-
const newContext = ctx.contextProvider.createWithExecutionId(activation, data, wf.metadata?.executionId ?? ulid().toString(), {
|
|
64
|
-
workflow: wf,
|
|
65
|
-
onSuccess: (completedContext) => {
|
|
66
|
-
// locked status means we own the workflow and it's not completed yet
|
|
67
|
-
if (wf.status !== 'locked') {
|
|
68
|
-
return;
|
|
69
|
-
}
|
|
70
|
-
ctx.queueProvider.complete({
|
|
71
|
-
id: wf.id,
|
|
72
|
-
output: btoa(JSON.stringify(completedContext.data)),
|
|
73
|
-
status: 'completed',
|
|
74
|
-
});
|
|
75
|
-
},
|
|
76
99
|
});
|
|
77
|
-
consecutiveErrors = 0;
|
|
78
|
-
subscriber.next(newContext);
|
|
79
100
|
}
|
|
80
101
|
}
|
|
81
102
|
catch (error) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"catch.d.ts","sourceRoot":"","sources":["../../../../../src/src/interpreter/memory/compilers/catch.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,SAAS,EAAE,MAAM,iCAAiC,CAAC;AAG5D,OAAO,EAA2B,YAAY,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"catch.d.ts","sourceRoot":"","sources":["../../../../../src/src/interpreter/memory/compilers/catch.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,SAAS,EAAE,MAAM,iCAAiC,CAAC;AAG5D,OAAO,EAA2B,YAAY,EAAE,MAAM,YAAY,CAAC;AAsFnE,eAAO,MAAM,aAAa,EAAE,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE,SAAS,CAAC,GAAG,EAAE,GAAG,CAAC,CAGrE,CAAC"}
|
|
@@ -42,12 +42,12 @@ function compileCatch(compilerCtx, task) {
|
|
|
42
42
|
reason: 'error',
|
|
43
43
|
severity: 'high',
|
|
44
44
|
});
|
|
45
|
-
return errorOperator(of(ctx.withData(new ExecutionError(ctx, error.message, { cause: error }))));
|
|
45
|
+
return errorOperator(of(ctx.withData(new ExecutionError(ctx, error.message, { cause: error }), { recoveredFromCatch: true })));
|
|
46
46
|
}
|
|
47
47
|
compilerCtx.issueProvider.submitIssue({
|
|
48
48
|
annotations: {
|
|
49
|
-
'error': error
|
|
50
|
-
'stack':
|
|
49
|
+
'error': String(error),
|
|
50
|
+
'stack': '',
|
|
51
51
|
'workflowId': ctx.options.workflow?.id || ctx.workflow?.id || '',
|
|
52
52
|
'executionId': ctx.executionId,
|
|
53
53
|
'activationId': ctx.activation.id,
|
|
@@ -61,7 +61,7 @@ function compileCatch(compilerCtx, task) {
|
|
|
61
61
|
});
|
|
62
62
|
span.setAttribute('error', `${error}`);
|
|
63
63
|
span.end();
|
|
64
|
-
return errorOperator(of(ctx.withData(new ExecutionError(ctx, `${error}`, { cause: error }))));
|
|
64
|
+
return errorOperator(of(ctx.withData(new ExecutionError(ctx, `${error}`, { cause: error }), { recoveredFromCatch: true })));
|
|
65
65
|
});
|
|
66
66
|
}));
|
|
67
67
|
}));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"catch.d.ts","sourceRoot":"","sources":["../../../../../src/src/interpreter/vanilla/compilers/catch.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,SAAS,EAAE,MAAM,iCAAiC,CAAC;AAG5D,OAAO,EAA2B,YAAY,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"catch.d.ts","sourceRoot":"","sources":["../../../../../src/src/interpreter/vanilla/compilers/catch.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,SAAS,EAAE,MAAM,iCAAiC,CAAC;AAG5D,OAAO,EAA2B,YAAY,EAAE,MAAM,YAAY,CAAC;AA0FnE,eAAO,MAAM,aAAa,EAAE,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE,SAAS,CAAC,GAAG,EAAE,GAAG,CAAC,CAGrE,CAAC"}
|
|
@@ -44,7 +44,7 @@ function compileCatch(compilerCtx, task) {
|
|
|
44
44
|
// reason: 'error',
|
|
45
45
|
// severity: 'high',
|
|
46
46
|
// });
|
|
47
|
-
return errorOperator(of(ctx.withData(new ExecutionError(ctx, error.message, { cause: error }))));
|
|
47
|
+
return errorOperator(of(ctx.withData(new ExecutionError(ctx, error.message, { cause: error }), { recoveredFromCatch: true })));
|
|
48
48
|
}
|
|
49
49
|
ctx.log.error('execution has encountered an error', {
|
|
50
50
|
error: error,
|
|
@@ -63,7 +63,7 @@ function compileCatch(compilerCtx, task) {
|
|
|
63
63
|
// });
|
|
64
64
|
span.setAttribute('error', `${error}`);
|
|
65
65
|
span.end();
|
|
66
|
-
return errorOperator(of(ctx.withData(new ExecutionError(ctx, `${error}`, { cause: error }))));
|
|
66
|
+
return errorOperator(of(ctx.withData(new ExecutionError(ctx, `${error}`, { cause: error }), { recoveredFromCatch: true })));
|
|
67
67
|
});
|
|
68
68
|
}));
|
|
69
69
|
}));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"durableworkflow.d.ts","sourceRoot":"","sources":["../../../../../src/src/interpreter/vanilla/compilers/durableworkflow.ts"],"names":[],"mappings":"AAcA,OAAO,EAAE,UAAU,EAAE,MAAM,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"durableworkflow.d.ts","sourceRoot":"","sources":["../../../../../src/src/interpreter/vanilla/compilers/durableworkflow.ts"],"names":[],"mappings":"AAcA,OAAO,EAAE,UAAU,EAAE,MAAM,MAAM,CAAC;AAElC,OAAO,EACH,mBAAmB,EACnB,sBAAsB,EACzB,MAAM,yCAAyC,CAAC;AAEjD,OAAO,EAAqB,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AACrF,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAC3C,OAAO,EAAE,cAAc,EAAE,MAAM,oCAAoC,CAAC;AAEpE,wBAAgB,sBAAsB,CAClC,GAAG,EAAE,sBAAsB,EAC3B,OAAO,EAAE,sBAAsB,EAC/B,MAAM,EAAE,WAAW,GACpB,UAAU,CAAC,cAAc,CAAC,mBAAmB,CAAC,CAAC,CAkGjD;AAED,eAAO,MAAM,uBAAuB,EAAE,eAAe,CAAC,mBAAmB,EAAE,sBAAsB,CAIhG,CAAC"}
|
|
@@ -40,24 +40,45 @@ export function compileDurableWorkflow(ctx, trigger, signal) {
|
|
|
40
40
|
continue;
|
|
41
41
|
}
|
|
42
42
|
for (const wf of wfs.workflows) {
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
}
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
43
|
+
await ctx.tracer.startActiveSpan(`durableworkflow-${trigger.id}`, (span) => {
|
|
44
|
+
span.setAttribute('task.id', trigger.id);
|
|
45
|
+
span.setAttribute('task.type', 'durableworkflow');
|
|
46
|
+
span.setAttribute('execution.id', wf.metadata?.executionId ?? '');
|
|
47
|
+
if (wf.metadata?.activationId) {
|
|
48
|
+
span.setAttribute('activation.id', wf.metadata.activationId);
|
|
49
|
+
}
|
|
50
|
+
try {
|
|
51
|
+
const payload = wf.payload ? atob(wf.payload) : '{}';
|
|
52
|
+
const data = JSON.parse(payload);
|
|
53
|
+
const newContext = ctx.contextProvider.createWithExecutionId(VanillaActivation, data, wf.metadata?.executionId ?? ulid().toString(), {
|
|
54
|
+
workflow: wf,
|
|
55
|
+
onSuccess: (completedContext) => {
|
|
56
|
+
const opts = completedContext.options;
|
|
57
|
+
if (opts.recoveredFromCatch) {
|
|
58
|
+
return;
|
|
59
|
+
}
|
|
60
|
+
// locked status means we own the workflow and it's not completed yet
|
|
61
|
+
if (wf.status !== 'locked') {
|
|
62
|
+
return;
|
|
63
|
+
}
|
|
64
|
+
ctx.queueProvider.complete({
|
|
65
|
+
id: wf.id,
|
|
66
|
+
output: btoa(JSON.stringify(completedContext.data)),
|
|
67
|
+
status: 'completed',
|
|
68
|
+
});
|
|
69
|
+
},
|
|
56
70
|
});
|
|
57
|
-
|
|
71
|
+
consecutiveErrors = 0;
|
|
72
|
+
subscriber.next(newContext);
|
|
73
|
+
}
|
|
74
|
+
catch (error) {
|
|
75
|
+
span.recordException(error instanceof Error ? error : new Error(String(error)));
|
|
76
|
+
ctx.log.error('Error processing workflow', { error });
|
|
77
|
+
}
|
|
78
|
+
finally {
|
|
79
|
+
span.end();
|
|
80
|
+
}
|
|
58
81
|
});
|
|
59
|
-
consecutiveErrors = 0;
|
|
60
|
-
subscriber.next(newContext);
|
|
61
82
|
}
|
|
62
83
|
}
|
|
63
84
|
catch (error) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MemoryKeyValue.d.ts","sourceRoot":"","sources":["../../../../src/src/kv/memory/MemoryKeyValue.ts"],"names":[],"mappings":"AAaA,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAEtD,OAAO,EACH,eAAe,EACf,aAAa,EACb,cAAc,EACjB,MAAM,uCAAuC,CAAC;
|
|
1
|
+
{"version":3,"file":"MemoryKeyValue.d.ts","sourceRoot":"","sources":["../../../../src/src/kv/memory/MemoryKeyValue.ts"],"names":[],"mappings":"AAaA,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAEtD,OAAO,EACH,eAAe,EACf,aAAa,EACb,cAAc,EACjB,MAAM,uCAAuC,CAAC;AAK/C,qBAAa,cAAe,YAAW,QAAQ;IAC3C,OAAO,CAAC,KAAK,CAAmC;IAE1C,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,EAAE,EAAE,OAAO,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC;IA0B/E,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,EAAE,EAAE,KAAK,EAAE,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAgBvD,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAgBnD,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,OAAO,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,cAAc,CAAC;IAYxE,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,eAAe,CAAC;CAWpD"}
|
|
@@ -11,6 +11,8 @@
|
|
|
11
11
|
* use of this software will be governed by the Apache License, Version 2.0.
|
|
12
12
|
*/
|
|
13
13
|
import { KVNotFoundError } from '../KVNotFoundError.js';
|
|
14
|
+
import opentelemetry from '@opentelemetry/api';
|
|
15
|
+
const tracer = opentelemetry.trace.getTracer('versori-run-kv');
|
|
14
16
|
export class MemoryKeyValue {
|
|
15
17
|
constructor() {
|
|
16
18
|
Object.defineProperty(this, "store", {
|
|
@@ -20,30 +22,79 @@ export class MemoryKeyValue {
|
|
|
20
22
|
value: new Map()
|
|
21
23
|
});
|
|
22
24
|
}
|
|
23
|
-
get(key, options) {
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
25
|
+
async get(key, options) {
|
|
26
|
+
return await tracer.startActiveSpan('kv.get', (span) => {
|
|
27
|
+
const keyStr = key instanceof Array ? key.join('.') : key;
|
|
28
|
+
span.setAttribute('kv.key', keyStr);
|
|
29
|
+
try {
|
|
30
|
+
const raw = this.store.get(keyStr);
|
|
31
|
+
if (typeof raw === 'undefined') {
|
|
32
|
+
if (options?.throwOnNotFound) {
|
|
33
|
+
throw new KVNotFoundError(keyStr);
|
|
34
|
+
}
|
|
35
|
+
return undefined;
|
|
36
|
+
}
|
|
37
|
+
return raw;
|
|
38
|
+
}
|
|
39
|
+
catch (error) {
|
|
40
|
+
span.recordException(error instanceof Error ? error : new Error(String(error)));
|
|
41
|
+
throw error;
|
|
42
|
+
}
|
|
43
|
+
finally {
|
|
44
|
+
span.end();
|
|
45
|
+
}
|
|
46
|
+
});
|
|
32
47
|
}
|
|
33
|
-
set(key, value) {
|
|
34
|
-
|
|
35
|
-
|
|
48
|
+
async set(key, value) {
|
|
49
|
+
return await tracer.startActiveSpan('kv.set', (span) => {
|
|
50
|
+
const keyStr = key instanceof Array ? key.join('.') : key;
|
|
51
|
+
span.setAttribute('kv.key', keyStr);
|
|
52
|
+
try {
|
|
53
|
+
this.store.set(keyStr, value);
|
|
54
|
+
}
|
|
55
|
+
catch (error) {
|
|
56
|
+
span.recordException(error instanceof Error ? error : new Error(String(error)));
|
|
57
|
+
throw error;
|
|
58
|
+
}
|
|
59
|
+
finally {
|
|
60
|
+
span.end();
|
|
61
|
+
}
|
|
62
|
+
});
|
|
36
63
|
}
|
|
37
|
-
delete(key) {
|
|
38
|
-
|
|
39
|
-
|
|
64
|
+
async delete(key) {
|
|
65
|
+
return await tracer.startActiveSpan('kv.delete', (span) => {
|
|
66
|
+
const keyStr = key instanceof Array ? key.join('.') : key;
|
|
67
|
+
span.setAttribute('kv.key', keyStr);
|
|
68
|
+
try {
|
|
69
|
+
this.store.delete(keyStr);
|
|
70
|
+
}
|
|
71
|
+
catch (error) {
|
|
72
|
+
span.recordException(error instanceof Error ? error : new Error(String(error)));
|
|
73
|
+
throw error;
|
|
74
|
+
}
|
|
75
|
+
finally {
|
|
76
|
+
span.end();
|
|
77
|
+
}
|
|
78
|
+
});
|
|
40
79
|
}
|
|
41
80
|
list(prefix, options) {
|
|
42
|
-
|
|
43
|
-
|
|
81
|
+
return tracer.startActiveSpan('kv.list', (span) => {
|
|
82
|
+
span.setAttribute('kv.prefix', prefix.join('.'));
|
|
83
|
+
console.log('Listing not implemented', prefix, options);
|
|
84
|
+
const err = new Error('Listing not implemented');
|
|
85
|
+
span.recordException(err);
|
|
86
|
+
span.end();
|
|
87
|
+
return Promise.reject(err);
|
|
88
|
+
});
|
|
44
89
|
}
|
|
45
90
|
count(prefix) {
|
|
46
|
-
|
|
47
|
-
|
|
91
|
+
return tracer.startActiveSpan('kv.count', (span) => {
|
|
92
|
+
span.setAttribute('kv.prefix', prefix.join('.'));
|
|
93
|
+
console.log('Count not implemented', prefix);
|
|
94
|
+
const err = new Error('Count not implemented');
|
|
95
|
+
span.recordException(err);
|
|
96
|
+
span.end();
|
|
97
|
+
return Promise.reject(err);
|
|
98
|
+
});
|
|
48
99
|
}
|
|
49
100
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NatsKeyValue.d.ts","sourceRoot":"","sources":["../../../../src/src/kv/nats/NatsKeyValue.ts"],"names":[],"mappings":"AAaA,OAAO,EAAE,EAAE,EAAW,MAAM,mDAAmD,CAAC;AAChF,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAEtD,OAAO,EACH,eAAe,EACf,aAAa,EACb,cAAc,EACjB,MAAM,uCAAuC,CAAC;
|
|
1
|
+
{"version":3,"file":"NatsKeyValue.d.ts","sourceRoot":"","sources":["../../../../src/src/kv/nats/NatsKeyValue.ts"],"names":[],"mappings":"AAaA,OAAO,EAAE,EAAE,EAAW,MAAM,mDAAmD,CAAC;AAChF,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAEtD,OAAO,EACH,eAAe,EACf,aAAa,EACb,cAAc,EACjB,MAAM,uCAAuC,CAAC;AAK/C,qBAAa,YAAa,YAAW,QAAQ;IAC7B,OAAO,CAAC,QAAQ,CAAC,EAAE;IAAM,OAAO,CAAC,QAAQ,CAAC,MAAM;gBAA/B,EAAE,EAAE,EAAE,EAAmB,MAAM,EAAE,MAAM;IAE9D,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,EAAE,EAAE,OAAO,GAAE,UAAU,CAAC,CAAC,CAAM,GAAG,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC;IAqCnF,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,EAAE,EAAE,KAAK,EAAE,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAkBvD,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAgBnD,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,OAAO,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,cAAc,CAAC;IAYxE,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,eAAe,CAAC;IAYjD,OAAO,CAAC,WAAW;CAGtB"}
|
|
@@ -11,6 +11,8 @@
|
|
|
11
11
|
* use of this software will be governed by the Apache License, Version 2.0.
|
|
12
12
|
*/
|
|
13
13
|
import { KVNotFoundError } from '../KVNotFoundError.js';
|
|
14
|
+
import opentelemetry from '@opentelemetry/api';
|
|
15
|
+
const tracer = opentelemetry.trace.getTracer('versori-run-kv');
|
|
14
16
|
export class NatsKeyValue {
|
|
15
17
|
constructor(kv, prefix) {
|
|
16
18
|
Object.defineProperty(this, "kv", {
|
|
@@ -27,39 +29,91 @@ export class NatsKeyValue {
|
|
|
27
29
|
});
|
|
28
30
|
}
|
|
29
31
|
async get(key, options = {}) {
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
32
|
+
return await tracer.startActiveSpan('kv.get', async (span) => {
|
|
33
|
+
const keyStr = key instanceof Array ? key.join('.') : key;
|
|
34
|
+
span.setAttribute('kv.key', keyStr);
|
|
35
|
+
try {
|
|
36
|
+
let entry;
|
|
37
|
+
try {
|
|
38
|
+
entry = await this.kv.get(this.generateKey(keyStr));
|
|
39
|
+
}
|
|
40
|
+
catch (error) {
|
|
41
|
+
span.recordException(error instanceof Error ? error : new Error(String(error)));
|
|
42
|
+
console.error('Unknown error reading from KV store', error);
|
|
43
|
+
throw new Error('Unknown error reading from KV store');
|
|
44
|
+
}
|
|
45
|
+
if (!entry || ['DEL', 'PURGE'].includes(entry.operation)) {
|
|
46
|
+
if (options.throwOnNotFound) {
|
|
47
|
+
throw new KVNotFoundError(keyStr);
|
|
48
|
+
}
|
|
49
|
+
else if (typeof options.defaultValue !== 'undefined') {
|
|
50
|
+
return options.defaultValue;
|
|
51
|
+
}
|
|
52
|
+
return undefined;
|
|
53
|
+
}
|
|
54
|
+
return entry.json();
|
|
41
55
|
}
|
|
42
|
-
|
|
43
|
-
|
|
56
|
+
catch (error) {
|
|
57
|
+
span.recordException(error instanceof Error ? error : new Error(String(error)));
|
|
58
|
+
throw error;
|
|
44
59
|
}
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
60
|
+
finally {
|
|
61
|
+
span.end();
|
|
62
|
+
}
|
|
63
|
+
});
|
|
48
64
|
}
|
|
49
65
|
async set(key, value) {
|
|
50
|
-
|
|
51
|
-
|
|
66
|
+
return await tracer.startActiveSpan('kv.set', async (span) => {
|
|
67
|
+
const keyStr = key instanceof Array ? key.join('.') : key;
|
|
68
|
+
span.setAttribute('kv.key', keyStr);
|
|
69
|
+
try {
|
|
70
|
+
const payload = JSON.stringify(value);
|
|
71
|
+
await this.kv.put(this.generateKey(keyStr), payload);
|
|
72
|
+
}
|
|
73
|
+
catch (error) {
|
|
74
|
+
span.recordException(error instanceof Error ? error : new Error(String(error)));
|
|
75
|
+
throw error;
|
|
76
|
+
}
|
|
77
|
+
finally {
|
|
78
|
+
span.end();
|
|
79
|
+
}
|
|
80
|
+
});
|
|
52
81
|
}
|
|
53
82
|
async delete(key) {
|
|
54
|
-
await
|
|
83
|
+
return await tracer.startActiveSpan('kv.delete', async (span) => {
|
|
84
|
+
const keyStr = key instanceof Array ? key.join('.') : key;
|
|
85
|
+
span.setAttribute('kv.key', keyStr);
|
|
86
|
+
try {
|
|
87
|
+
await this.kv.delete(this.generateKey(keyStr));
|
|
88
|
+
}
|
|
89
|
+
catch (error) {
|
|
90
|
+
span.recordException(error instanceof Error ? error : new Error(String(error)));
|
|
91
|
+
throw error;
|
|
92
|
+
}
|
|
93
|
+
finally {
|
|
94
|
+
span.end();
|
|
95
|
+
}
|
|
96
|
+
});
|
|
55
97
|
}
|
|
56
98
|
list(prefix, options) {
|
|
57
|
-
|
|
58
|
-
|
|
99
|
+
return tracer.startActiveSpan('kv.list', (span) => {
|
|
100
|
+
span.setAttribute('kv.prefix', prefix.join('.'));
|
|
101
|
+
console.log('Listing not implemented', prefix, options);
|
|
102
|
+
const err = new Error('Listing not implemented');
|
|
103
|
+
span.recordException(err);
|
|
104
|
+
span.end();
|
|
105
|
+
return Promise.reject(err);
|
|
106
|
+
});
|
|
59
107
|
}
|
|
60
108
|
count(prefix) {
|
|
61
|
-
|
|
62
|
-
|
|
109
|
+
return tracer.startActiveSpan('kv.count', (span) => {
|
|
110
|
+
span.setAttribute('kv.prefix', prefix.join('.'));
|
|
111
|
+
console.log('Count not implemented', prefix);
|
|
112
|
+
const err = new Error('Count not implemented');
|
|
113
|
+
span.recordException(err);
|
|
114
|
+
span.end();
|
|
115
|
+
return Promise.reject(err);
|
|
116
|
+
});
|
|
63
117
|
}
|
|
64
118
|
generateKey(key) {
|
|
65
119
|
return `${this.prefix}.${key instanceof Array ? key.join('.') : key}`;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SDKKeyValue.d.ts","sourceRoot":"","sources":["../../../../src/src/kv/sdk/SDKKeyValue.ts"],"names":[],"mappings":"AAaA,OAAO,EAAE,eAAe,EAAE,MAAM,wDAAwD,CAAC;AACzF,OAAO,EAAE,mBAAmB,EAAE,MAAM,4DAA4D,CAAC;AACjG,OAAO,EAAE,aAAa,EAAE,MAAM,sDAAsD,CAAC;AACrF,OAAO,EAAE,cAAc,EAAE,MAAM,uDAAuD,CAAC;AAGvF,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"SDKKeyValue.d.ts","sourceRoot":"","sources":["../../../../src/src/kv/sdk/SDKKeyValue.ts"],"names":[],"mappings":"AAaA,OAAO,EAAE,eAAe,EAAE,MAAM,wDAAwD,CAAC;AACzF,OAAO,EAAE,mBAAmB,EAAE,MAAM,4DAA4D,CAAC;AACjG,OAAO,EAAE,aAAa,EAAE,MAAM,sDAAsD,CAAC;AACrF,OAAO,EAAE,cAAc,EAAE,MAAM,uDAAuD,CAAC;AAGvF,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAKtD,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;IAuCnF,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,EAAE,EAAE,KAAK,EAAE,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAuBvD,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAqB7C,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,eAAe,CAAC;IAsBjD,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,OAAO,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,cAAc,CAAC;IAwB9E,OAAO,CAAC,WAAW;CAGtB"}
|