@t4h.framework/core 0.6.0 → 0.7.0
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/dist/models/AsyncActivity.d.ts +1 -0
- package/dist/models/AsyncActivity.d.ts.map +1 -1
- package/dist/models/AsyncActivity.js +1 -0
- package/dist/models/AsyncActivity.js.map +1 -1
- package/dist/models/AsyncActivityAwaitable.js +1 -1
- package/dist/models/AsyncActivityAwaitable.js.map +1 -1
- package/dist/models/History.d.ts +3 -0
- package/dist/models/History.d.ts.map +1 -1
- package/dist/models/History.js +10 -0
- package/dist/models/History.js.map +1 -1
- package/dist/models/Logger.d.ts +0 -3
- package/dist/models/Logger.d.ts.map +1 -1
- package/dist/models/Logger.js +3 -7
- package/dist/models/Logger.js.map +1 -1
- package/dist/models/PushWaitAsyncActivity.d.ts +2 -1
- package/dist/models/PushWaitAsyncActivity.d.ts.map +1 -1
- package/dist/models/PushWaitAsyncActivity.js +3 -1
- package/dist/models/PushWaitAsyncActivity.js.map +1 -1
- package/dist/models/SyncActivity.d.ts +1 -0
- package/dist/models/SyncActivity.d.ts.map +1 -1
- package/dist/models/SyncActivity.js +1 -0
- package/dist/models/SyncActivity.js.map +1 -1
- package/dist/testing/run-workflow.js +44 -10
- package/dist/testing/run-workflow.js.map +1 -1
- package/dist/tools/Internals.d.ts +1 -0
- package/dist/tools/Internals.d.ts.map +1 -1
- package/dist/tools/Internals.js +1 -0
- package/dist/tools/Internals.js.map +1 -1
- package/package.json +3 -2
- package/dist/tools/runWorkflowToCompletion.d.ts +0 -15
- package/dist/tools/runWorkflowToCompletion.d.ts.map +0 -1
- package/dist/tools/runWorkflowToCompletion.js +0 -61
- package/dist/tools/runWorkflowToCompletion.js.map +0 -1
|
@@ -5,6 +5,7 @@ import type { IHistoryItemAsync } from './History.js';
|
|
|
5
5
|
import type { Serializable } from '../typings/Serializable.js';
|
|
6
6
|
export type AnyAsyncActivity = AsyncActivity<readonly any[], any, any, any, any, any>;
|
|
7
7
|
export declare abstract class AsyncActivity<TArgs extends readonly any[], TInput extends Serializable, TSerializableOutput extends Serializable | void, TOutput, TBootstrap extends Serializable, TSchema extends Type.TSchema> {
|
|
8
|
+
id: string;
|
|
8
9
|
abstract toInput(...args: TArgs): TInput | Promise<TInput>;
|
|
9
10
|
abstract bootstrap(input: TInput): AsyncActivityResult<TBootstrap, TSchema, TSerializableOutput> | Promise<AsyncActivityResult<TBootstrap, TSchema, TSerializableOutput>>;
|
|
10
11
|
abstract advance(payload: Type.Static<TSchema>, bootstrap: AsyncActivityResultPending): AsyncActivityResult<Serializable, TSchema, TSerializableOutput> | Promise<AsyncActivityResult<Serializable, TSchema, TSerializableOutput>>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AsyncActivity.d.ts","sourceRoot":"","sources":["../../src/models/AsyncActivity.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,IAAI,MAAM,SAAS,CAAA;AAE/B,OAAO,EACL,4BAA4B,EAC5B,0BAA0B,EAC1B,2BAA2B,EAC3B,KAAK,mBAAmB,EACxB,KAAK,iCAAiC,EACvC,MAAM,iCAAiC,CAAA;AACxC,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAA;AACpE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAA;AACrD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAA;AAE9D,MAAM,MAAM,gBAAgB,GAAG,aAAa,CAC1C,SAAS,GAAG,EAAE,EACd,GAAG,EACH,GAAG,EACH,GAAG,EACH,GAAG,EACH,GAAG,CACJ,CAAA;AAED,8BAAsB,aAAa,CACjC,KAAK,SAAS,SAAS,GAAG,EAAE,EAC5B,MAAM,SAAS,YAAY,EAC3B,mBAAmB,SAAS,YAAY,GAAG,IAAI,EAC/C,OAAO,EACP,UAAU,SAAS,YAAY,EAC/B,OAAO,SAAS,IAAI,CAAC,OAAO;
|
|
1
|
+
{"version":3,"file":"AsyncActivity.d.ts","sourceRoot":"","sources":["../../src/models/AsyncActivity.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,IAAI,MAAM,SAAS,CAAA;AAE/B,OAAO,EACL,4BAA4B,EAC5B,0BAA0B,EAC1B,2BAA2B,EAC3B,KAAK,mBAAmB,EACxB,KAAK,iCAAiC,EACvC,MAAM,iCAAiC,CAAA;AACxC,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAA;AACpE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAA;AACrD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAA;AAE9D,MAAM,MAAM,gBAAgB,GAAG,aAAa,CAC1C,SAAS,GAAG,EAAE,EACd,GAAG,EACH,GAAG,EACH,GAAG,EACH,GAAG,EACH,GAAG,CACJ,CAAA;AAED,8BAAsB,aAAa,CACjC,KAAK,SAAS,SAAS,GAAG,EAAE,EAC5B,MAAM,SAAS,YAAY,EAC3B,mBAAmB,SAAS,YAAY,GAAG,IAAI,EAC/C,OAAO,EACP,UAAU,SAAS,YAAY,EAC/B,OAAO,SAAS,IAAI,CAAC,OAAO;IAErB,EAAE,EAAG,MAAM,CAAA;aAEF,OAAO,CAAC,GAAG,IAAI,EAAE,KAAK,GAAG,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;aAEjD,SAAS,CACvB,KAAK,EAAE,MAAM,GAEX,mBAAmB,CAAC,UAAU,EAAE,OAAO,EAAE,mBAAmB,CAAC,GAC7D,OAAO,CAAC,mBAAmB,CAAC,UAAU,EAAE,OAAO,EAAE,mBAAmB,CAAC,CAAC;aAE1D,OAAO,CACrB,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,EAC7B,SAAS,EAAE,0BAA0B,GAEnC,mBAAmB,CAAC,YAAY,EAAE,OAAO,EAAE,mBAAmB,CAAC,GAC/D,OAAO,CAAC,mBAAmB,CAAC,YAAY,EAAE,OAAO,EAAE,mBAAmB,CAAC,CAAC;aAE5D,QAAQ,CAAC,MAAM,EAAE,mBAAmB,EAAE,GAAG,IAAI,EAAE,KAAK,GAAG,OAAO;IAEvE,SAAS,CAAC,CAEf,OAAO,EAAE,0BAA0B,GAEjC,mBAAmB,CAAC,YAAY,EAAE,OAAO,EAAE,mBAAmB,CAAC,GAC/D,OAAO,CAAC,mBAAmB,CAAC,YAAY,EAAE,OAAO,EAAE,mBAAmB,CAAC,CAAC;IAM5E,SAAS,CAAC,OAAO,CACf,OAAO,CAAC,EAAE,iCAAiC,CAAC,UAAU,EAAE,OAAO,CAAC;IAKlE,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,mBAAmB;IAI5C,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,YAAY,GAAG,IAAI;IAIzC,WAAW,CAAC,IAAI,EAAE,iBAAiB,EAAE,IAAI,EAAE,SAAS,GAAG,EAAE;CAGjE"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { AsyncActivityResultFulfilled, AsyncActivityResultPending, AsyncActivityResultRejected, } from './AsyncActivityAdvanceResult.js';
|
|
2
2
|
import { AsyncActivityAwaitable } from './AsyncActivityAwaitable.js';
|
|
3
3
|
export class AsyncActivity {
|
|
4
|
+
id;
|
|
4
5
|
onTimeout(
|
|
5
6
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
6
7
|
payload) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AsyncActivity.js","sourceRoot":"","sources":["../../src/models/AsyncActivity.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,4BAA4B,EAC5B,0BAA0B,EAC1B,2BAA2B,GAG5B,MAAM,iCAAiC,CAAA;AACxC,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAA;AAapE,MAAM,OAAgB,aAAa;
|
|
1
|
+
{"version":3,"file":"AsyncActivity.js","sourceRoot":"","sources":["../../src/models/AsyncActivity.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,4BAA4B,EAC5B,0BAA0B,EAC1B,2BAA2B,GAG5B,MAAM,iCAAiC,CAAA;AACxC,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAA;AAapE,MAAM,OAAgB,aAAa;IAQ1B,EAAE,CAAS;IAmBX,SAAS;IACd,6DAA6D;IAC7D,OAAmC;QAInC,OAAO,IAAI,CAAC,QAAQ,CAAC;YACnB,MAAM,EAAE,SAAS;SAClB,CAAC,CAAA;IACJ,CAAC;IAES,OAAO,CACf,OAAgE;QAEhE,OAAO,IAAI,0BAA0B,CAAC,OAAO,CAAC,CAAA;IAChD,CAAC;IAES,IAAI,CAAC,OAA6B;QAC1C,OAAO,IAAI,4BAA4B,CAAC,OAAO,CAAC,CAAA;IAClD,CAAC;IAES,QAAQ,CAAC,OAA6B;QAC9C,OAAO,IAAI,2BAA2B,CAAC,OAAO,CAAC,CAAA;IACjD,CAAC;IAEM,WAAW,CAAC,IAAuB,EAAE,IAAoB;QAC9D,OAAO,IAAI,sBAAsB,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAA;IACrD,CAAC;CACF"}
|
|
@@ -11,7 +11,7 @@ export class AsyncActivityAwaitable {
|
|
|
11
11
|
}
|
|
12
12
|
async wait() {
|
|
13
13
|
if (this.item.status === 'pending')
|
|
14
|
-
throw new PushWaitAsyncActivity(this.activity);
|
|
14
|
+
throw new PushWaitAsyncActivity(this.activity, this.item.timeoutAt);
|
|
15
15
|
return this.activity.toOutput(this.item.output, ...this.args);
|
|
16
16
|
}
|
|
17
17
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AsyncActivityAwaitable.js","sourceRoot":"","sources":["../../src/models/AsyncActivityAwaitable.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiB,MAAM,eAAe,CAAA;AAG7C,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAA;AAElE,MAAM,OAAO,sBAAsB;IAEd;IACA;IACA;IAHnB,YACmB,QAAW,EACX,IAAuB,EACvB,IAAoB;QAFpB,aAAQ,GAAR,QAAQ,CAAG;QACX,SAAI,GAAJ,IAAI,CAAmB;QACvB,SAAI,GAAJ,IAAI,CAAgB;IACpC,CAAC;IAEG,KAAK,CAAC,IAAI;QACf,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,KAAK,SAAS;YAChC,MAAM,IAAI,qBAAqB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;
|
|
1
|
+
{"version":3,"file":"AsyncActivityAwaitable.js","sourceRoot":"","sources":["../../src/models/AsyncActivityAwaitable.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiB,MAAM,eAAe,CAAA;AAG7C,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAA;AAElE,MAAM,OAAO,sBAAsB;IAEd;IACA;IACA;IAHnB,YACmB,QAAW,EACX,IAAuB,EACvB,IAAoB;QAFpB,aAAQ,GAAR,QAAQ,CAAG;QACX,SAAI,GAAJ,IAAI,CAAmB;QACvB,SAAI,GAAJ,IAAI,CAAgB;IACpC,CAAC;IAEG,KAAK,CAAC,IAAI;QACf,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,KAAK,SAAS;YAChC,MAAM,IAAI,qBAAqB,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;QAErE,OAAO,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,CAAA;IAC/D,CAAC;CACF"}
|
package/dist/models/History.d.ts
CHANGED
|
@@ -3,6 +3,7 @@ import { type AnyAsyncActivity } from './AsyncActivity.js';
|
|
|
3
3
|
import { AsyncActivityAwaitable } from './AsyncActivityAwaitable.js';
|
|
4
4
|
export type HistoryItemType = 'sync' | 'async';
|
|
5
5
|
interface IHistoryItem<T extends HistoryItemType> {
|
|
6
|
+
id: string;
|
|
6
7
|
type: T;
|
|
7
8
|
output: any;
|
|
8
9
|
}
|
|
@@ -10,12 +11,14 @@ export interface IHistoryItemSync extends IHistoryItem<'sync'> {
|
|
|
10
11
|
}
|
|
11
12
|
export interface IHistoryItemAsync extends IHistoryItem<'async'> {
|
|
12
13
|
status: 'pending' | 'fulfilled' | 'rejected';
|
|
14
|
+
timeoutAt?: Date | null;
|
|
13
15
|
}
|
|
14
16
|
export type HistoryItem = IHistoryItemSync | IHistoryItemAsync;
|
|
15
17
|
export declare namespace History {
|
|
16
18
|
type ReconcilerOutput<T extends Activity> = T extends AnyAsyncActivity ? AsyncActivityAwaitable<T> : Activity.Output<T>;
|
|
17
19
|
function bind<T extends Activity>(Activity: new () => T): (...args: Activity.Args<T>) => Promise<ReconcilerOutput<T>>;
|
|
18
20
|
function reconciler<T extends Activity>(Activity: new () => T, ...args: Activity.Args<T>): Promise<ReconcilerOutput<T>>;
|
|
21
|
+
function isReplaying(): boolean;
|
|
19
22
|
function run<T>(history: readonly HistoryItem[], fn: () => T): T;
|
|
20
23
|
}
|
|
21
24
|
export {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"History.d.ts","sourceRoot":"","sources":["../../src/models/History.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"History.d.ts","sourceRoot":"","sources":["../../src/models/History.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,eAAe,CAAA;AAC7C,OAAO,EAAiB,KAAK,gBAAgB,EAAE,MAAM,oBAAoB,CAAA;AACzE,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAA;AAGpE,MAAM,MAAM,eAAe,GAAG,MAAM,GAAG,OAAO,CAAA;AAE9C,UAAU,YAAY,CAAC,CAAC,SAAS,eAAe;IAC9C,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,CAAC,CAAA;IACP,MAAM,EAAE,GAAG,CAAA;CACZ;AAGD,MAAM,WAAW,gBAAiB,SAAQ,YAAY,CAAC,MAAM,CAAC;CAAG;AAEjE,MAAM,WAAW,iBAAkB,SAAQ,YAAY,CAAC,OAAO,CAAC;IAC9D,MAAM,EAAE,SAAS,GAAG,WAAW,GAAG,UAAU,CAAA;IAC5C,SAAS,CAAC,EAAE,IAAI,GAAG,IAAI,CAAA;CACxB;AAED,MAAM,MAAM,WAAW,GAAG,gBAAgB,GAAG,iBAAiB,CAAA;AAE9D,yBAAiB,OAAO,CAAC;IACvB,KAAY,gBAAgB,CAAC,CAAC,SAAS,QAAQ,IAAI,CAAC,SAAS,gBAAgB,GACzE,sBAAsB,CAAC,CAAC,CAAC,GACzB,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAA;IAItB,SAAgB,IAAI,CAAC,CAAC,SAAS,QAAQ,EAAE,QAAQ,EAAE,UAAU,CAAC,IACpD,GAAG,MAAM,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,kCAClC;IAED,SAAsB,UAAU,CAAC,CAAC,SAAS,QAAQ,EACjD,QAAQ,EAAE,UAAU,CAAC,EACrB,GAAG,IAAI,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,GACxB,OAAO,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,CA4B9B;IAED,SAAgB,WAAW,IAAI,OAAO,CAMrC;IAED,SAAgB,GAAG,CAAC,CAAC,EAAE,OAAO,EAAE,SAAS,WAAW,EAAE,EAAE,EAAE,EAAE,MAAM,CAAC,KAElE;CACF"}
|
package/dist/models/History.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { AsyncLocalStorage } from 'node:async_hooks';
|
|
2
|
+
import { uuidv7 } from 'uuidv7';
|
|
2
3
|
import {} from './Activity.js';
|
|
3
4
|
import { AsyncActivity } from './AsyncActivity.js';
|
|
4
5
|
import { AsyncActivityAwaitable } from './AsyncActivityAwaitable.js';
|
|
@@ -17,9 +18,11 @@ export var History;
|
|
|
17
18
|
const value = history.shift();
|
|
18
19
|
const activity = new Activity();
|
|
19
20
|
if (!value) {
|
|
21
|
+
activity.id = uuidv7();
|
|
20
22
|
const input = await activity.toInput(...args);
|
|
21
23
|
throw new PushActivity(activity, input);
|
|
22
24
|
}
|
|
25
|
+
activity.id = value.id;
|
|
23
26
|
if (activity instanceof AsyncActivity) {
|
|
24
27
|
if (value.type !== 'async')
|
|
25
28
|
throw new Error('Invalid history item type');
|
|
@@ -29,6 +32,13 @@ export var History;
|
|
|
29
32
|
return activity.toOutput(output, ...args);
|
|
30
33
|
}
|
|
31
34
|
History.reconciler = reconciler;
|
|
35
|
+
function isReplaying() {
|
|
36
|
+
const store = storage.getStore();
|
|
37
|
+
if (!store)
|
|
38
|
+
return false;
|
|
39
|
+
return store.length > 0;
|
|
40
|
+
}
|
|
41
|
+
History.isReplaying = isReplaying;
|
|
32
42
|
function run(history, fn) {
|
|
33
43
|
return storage.run(history.slice(), () => fn());
|
|
34
44
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"History.js","sourceRoot":"","sources":["../../src/models/History.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAA;AAEpD,OAAO,EAAiB,MAAM,eAAe,CAAA;AAC7C,OAAO,EAAE,aAAa,EAAyB,MAAM,oBAAoB,CAAA;AACzE,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAA;AACpE,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;
|
|
1
|
+
{"version":3,"file":"History.js","sourceRoot":"","sources":["../../src/models/History.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAA;AAEpD,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAE/B,OAAO,EAAiB,MAAM,eAAe,CAAA;AAC7C,OAAO,EAAE,aAAa,EAAyB,MAAM,oBAAoB,CAAA;AACzE,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAA;AACpE,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAoBhD,MAAM,KAAW,OAAO,CAuDvB;AAvDD,WAAiB,OAAO;IAKtB,MAAM,OAAO,GAAG,IAAI,iBAAiB,EAAiB,CAAA;IAEtD,SAAgB,IAAI,CAAqB,QAAqB;QAC5D,OAAO,CAAC,GAAG,IAAsB,EAAE,EAAE,CAAC,UAAU,CAAC,QAAQ,EAAE,GAAG,IAAI,CAAC,CAAA;IACrE,CAAC;IAFe,YAAI,OAEnB,CAAA;IAEM,KAAK,UAAU,UAAU,CAC9B,QAAqB,EACrB,GAAG,IAAsB;QAEzB,MAAM,OAAO,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAA;QAElC,IAAI,CAAC,OAAO;YAAE,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAA;QAEzD,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,EAAE,CAAA;QAE7B,MAAM,QAAQ,GAAG,IAAI,QAAQ,EAAE,CAAA;QAE/B,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,QAAQ,CAAC,EAAE,GAAG,MAAM,EAAE,CAAA;YAEtB,MAAM,KAAK,GAAG,MAAM,QAAQ,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,CAAA;YAE7C,MAAM,IAAI,YAAY,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAA;QACzC,CAAC;QAED,QAAQ,CAAC,EAAE,GAAG,KAAK,CAAC,EAAE,CAAA;QAEtB,IAAI,QAAQ,YAAY,aAAa,EAAE,CAAC;YACtC,IAAI,KAAK,CAAC,IAAI,KAAK,OAAO;gBAAE,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAA;YAExE,OAAO,QAAQ,CAAC,WAAW,CAAC,KAAK,EAAE,IAAI,CAAwB,CAAA;QACjE,CAAC;QAED,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,CAAA;QAE3B,OAAO,QAAQ,CAAC,QAAQ,CAAC,MAAM,EAAE,GAAG,IAAI,CAAwB,CAAA;IAClE,CAAC;IA/BqB,kBAAU,aA+B/B,CAAA;IAED,SAAgB,WAAW;QACzB,MAAM,KAAK,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAA;QAEhC,IAAI,CAAC,KAAK;YAAE,OAAO,KAAK,CAAA;QAExB,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC,CAAA;IACzB,CAAC;IANe,mBAAW,cAM1B,CAAA;IAED,SAAgB,GAAG,CAAI,OAA+B,EAAE,EAAW;QACjE,OAAO,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,CAAA;IACjD,CAAC;IAFe,WAAG,MAElB,CAAA;AACH,CAAC,EAvDgB,OAAO,KAAP,OAAO,QAuDvB"}
|
package/dist/models/Logger.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Logger.d.ts","sourceRoot":"","sources":["../../src/models/Logger.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"Logger.d.ts","sourceRoot":"","sources":["../../src/models/Logger.ts"],"names":[],"mappings":"AAIA,MAAM,MAAM,QAAQ,GAAG,KAAK,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAA;AAElE,MAAM,WAAW,GAAG;IAClB,KAAK,EAAE,QAAQ,CAAA;IACf,IAAI,EAAE,OAAO,EAAE,CAAA;IACf,EAAE,EAAE,MAAM,CAAA;CACX;AAMD,yBAAiB,MAAM,CAAC;IAetB,SAAgB,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,MAAM,CAAC,KAI9C;CAuBF"}
|
package/dist/models/Logger.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { AsyncLocalStorage } from 'node:async_hooks';
|
|
2
|
+
import { History } from './History.js';
|
|
2
3
|
export var Logger;
|
|
3
4
|
(function (Logger) {
|
|
4
5
|
const storage = new AsyncLocalStorage();
|
|
@@ -13,11 +14,7 @@ export var Logger;
|
|
|
13
14
|
let isIntercepted = false;
|
|
14
15
|
function run(logs, fn) {
|
|
15
16
|
interceptConsole();
|
|
16
|
-
|
|
17
|
-
invocationIndex: 0,
|
|
18
|
-
logs,
|
|
19
|
-
};
|
|
20
|
-
return storage.run(context, fn);
|
|
17
|
+
return storage.run({ logs }, fn);
|
|
21
18
|
}
|
|
22
19
|
Logger.run = run;
|
|
23
20
|
function interceptConsole() {
|
|
@@ -32,8 +29,7 @@ export var Logger;
|
|
|
32
29
|
const context = storage.getStore();
|
|
33
30
|
if (!context)
|
|
34
31
|
return original[level](...args);
|
|
35
|
-
|
|
36
|
-
if (index < context.logs.length)
|
|
32
|
+
if (History.isReplaying())
|
|
37
33
|
return;
|
|
38
34
|
context.logs.push({ level, args, at: Date.now() });
|
|
39
35
|
original[level](...args);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Logger.js","sourceRoot":"","sources":["../../src/models/Logger.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAA;
|
|
1
|
+
{"version":3,"file":"Logger.js","sourceRoot":"","sources":["../../src/models/Logger.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAA;AAEpD,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AActC,MAAM,KAAW,MAAM,CA0CtB;AA1CD,WAAiB,MAAM;IACrB,MAAM,OAAO,GAAG,IAAI,iBAAiB,EAAiB,CAAA;IAEtD,MAAM,MAAM,GAAwB,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,CAAA;IAE7E,MAAM,QAAQ,GAAmD;QAC/D,GAAG,EAAE,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC;QAC9B,KAAK,EAAE,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC;QAClC,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC;QAChC,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC;QAChC,KAAK,EAAE,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC;KACnC,CAAA;IAED,IAAI,aAAa,GAAG,KAAK,CAAA;IAEzB,SAAgB,GAAG,CAAI,IAAW,EAAE,EAAW;QAC7C,gBAAgB,EAAE,CAAA;QAElB,OAAO,OAAO,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,CAAA;IAClC,CAAC;IAJe,UAAG,MAIlB,CAAA;IAED,SAAS,gBAAgB;QACvB,IAAI,aAAa;YAAE,OAAM;QAEzB,aAAa,GAAG,IAAI,CAAA;QAEpB,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;YAC3B,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,IAAe,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,CAAA;QAC9D,CAAC;IACH,CAAC;IAED,SAAS,MAAM,CAAC,KAAe,EAAE,IAAe;QAC9C,MAAM,OAAO,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAA;QAElC,IAAI,CAAC,OAAO;YAAE,OAAO,QAAQ,CAAC,KAAK,CAAC,CAAC,GAAG,IAAI,CAAC,CAAA;QAE7C,IAAI,OAAO,CAAC,WAAW,EAAE;YAAE,OAAM;QAEjC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC,CAAA;QAElD,QAAQ,CAAC,KAAK,CAAC,CAAC,GAAG,IAAI,CAAC,CAAA;IAC1B,CAAC;AACH,CAAC,EA1CgB,MAAM,KAAN,MAAM,QA0CtB"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import type { AnyAsyncActivity } from './AsyncActivity.js';
|
|
2
2
|
export declare class PushWaitAsyncActivity {
|
|
3
3
|
readonly asyncActivity: AnyAsyncActivity;
|
|
4
|
-
|
|
4
|
+
readonly timeoutAt?: (Date | null) | undefined;
|
|
5
|
+
constructor(asyncActivity: AnyAsyncActivity, timeoutAt?: (Date | null) | undefined);
|
|
5
6
|
}
|
|
6
7
|
//# sourceMappingURL=PushWaitAsyncActivity.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PushWaitAsyncActivity.d.ts","sourceRoot":"","sources":["../../src/models/PushWaitAsyncActivity.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAA;AAE1D,qBAAa,qBAAqB;
|
|
1
|
+
{"version":3,"file":"PushWaitAsyncActivity.d.ts","sourceRoot":"","sources":["../../src/models/PushWaitAsyncActivity.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAA;AAE1D,qBAAa,qBAAqB;aAEd,aAAa,EAAE,gBAAgB;aAC/B,SAAS,CAAC,GAAE,IAAI,GAAG,IAAI;gBADvB,aAAa,EAAE,gBAAgB,EAC/B,SAAS,CAAC,GAAE,IAAI,GAAG,IAAI,aAAA;CAE1C"}
|
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
export class PushWaitAsyncActivity {
|
|
2
2
|
asyncActivity;
|
|
3
|
-
|
|
3
|
+
timeoutAt;
|
|
4
|
+
constructor(asyncActivity, timeoutAt) {
|
|
4
5
|
this.asyncActivity = asyncActivity;
|
|
6
|
+
this.timeoutAt = timeoutAt;
|
|
5
7
|
}
|
|
6
8
|
}
|
|
7
9
|
//# sourceMappingURL=PushWaitAsyncActivity.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PushWaitAsyncActivity.js","sourceRoot":"","sources":["../../src/models/PushWaitAsyncActivity.ts"],"names":[],"mappings":"AAEA,MAAM,OAAO,qBAAqB;
|
|
1
|
+
{"version":3,"file":"PushWaitAsyncActivity.js","sourceRoot":"","sources":["../../src/models/PushWaitAsyncActivity.ts"],"names":[],"mappings":"AAEA,MAAM,OAAO,qBAAqB;IAEd;IACA;IAFlB,YACkB,aAA+B,EAC/B,SAAuB;QADvB,kBAAa,GAAb,aAAa,CAAkB;QAC/B,cAAS,GAAT,SAAS,CAAc;IACtC,CAAC;CACL"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import type { Serializable } from '../typings/Serializable.js';
|
|
2
2
|
export declare abstract class SyncActivity<TArgs extends readonly any[], TInput extends Serializable, TSerializableOutput extends Serializable | void, TOutput> {
|
|
3
|
+
id: string;
|
|
3
4
|
abstract toInput(...args: TArgs): TInput | Promise<TInput>;
|
|
4
5
|
abstract run(input: TInput): TSerializableOutput | Promise<TSerializableOutput>;
|
|
5
6
|
abstract toOutput(output: TSerializableOutput, ...args: TArgs): TOutput;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SyncActivity.d.ts","sourceRoot":"","sources":["../../src/models/SyncActivity.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAA;AAE9D,8BAAsB,YAAY,CAChC,KAAK,SAAS,SAAS,GAAG,EAAE,EAC5B,MAAM,SAAS,YAAY,EAC3B,mBAAmB,SAAS,YAAY,GAAG,IAAI,EAC/C,OAAO;
|
|
1
|
+
{"version":3,"file":"SyncActivity.d.ts","sourceRoot":"","sources":["../../src/models/SyncActivity.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAA;AAE9D,8BAAsB,YAAY,CAChC,KAAK,SAAS,SAAS,GAAG,EAAE,EAC5B,MAAM,SAAS,YAAY,EAC3B,mBAAmB,SAAS,YAAY,GAAG,IAAI,EAC/C,OAAO;IAEA,EAAE,EAAG,MAAM,CAAA;aAEF,OAAO,CAAC,GAAG,IAAI,EAAE,KAAK,GAAG,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;aAEjD,GAAG,CACjB,KAAK,EAAE,MAAM,GACZ,mBAAmB,GAAG,OAAO,CAAC,mBAAmB,CAAC;aAErC,QAAQ,CAAC,MAAM,EAAE,mBAAmB,EAAE,GAAG,IAAI,EAAE,KAAK,GAAG,OAAO;CAC/E"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SyncActivity.js","sourceRoot":"","sources":["../../src/models/SyncActivity.ts"],"names":[],"mappings":"AAEA,MAAM,OAAgB,YAAY;
|
|
1
|
+
{"version":3,"file":"SyncActivity.js","sourceRoot":"","sources":["../../src/models/SyncActivity.ts"],"names":[],"mappings":"AAEA,MAAM,OAAgB,YAAY;IAMzB,EAAE,CAAS;CASnB"}
|
|
@@ -49,21 +49,35 @@ export async function runWorkflow(workflow, input, options = {}) {
|
|
|
49
49
|
}
|
|
50
50
|
async function resolveActivity(push, context, mockAsyncActivity, resolutionState) {
|
|
51
51
|
const activity = push.activity;
|
|
52
|
+
const activityContext = {
|
|
53
|
+
...context,
|
|
54
|
+
id: activity.id,
|
|
55
|
+
};
|
|
52
56
|
if (activity instanceof SyncActivity) {
|
|
53
|
-
const output = await Internals.runActivity(activity,
|
|
54
|
-
return { type: 'sync', output };
|
|
57
|
+
const output = await Internals.runActivity(activity, activityContext, instance => instance.run(push.input));
|
|
58
|
+
return { id: activity.id, type: 'sync', output };
|
|
55
59
|
}
|
|
56
60
|
if (activity instanceof AsyncActivity) {
|
|
57
|
-
const bootstrap = await Internals.runActivity(activity,
|
|
58
|
-
return resolveAsyncActivity(activity, bootstrap,
|
|
61
|
+
const bootstrap = await Internals.runActivity(activity, activityContext, instance => instance.bootstrap(push.input));
|
|
62
|
+
return resolveAsyncActivity(activity, bootstrap, activityContext, push.input, mockAsyncActivity, resolutionState);
|
|
59
63
|
}
|
|
60
64
|
throw new Error('Unknown activity type');
|
|
61
65
|
}
|
|
62
66
|
async function resolveAsyncActivity(activity, bootstrap, context, input, mockAsyncActivity, resolutionState) {
|
|
63
67
|
if (bootstrap instanceof AsyncActivityResultFulfilled)
|
|
64
|
-
return {
|
|
68
|
+
return {
|
|
69
|
+
id: activity.id,
|
|
70
|
+
type: 'async',
|
|
71
|
+
status: 'fulfilled',
|
|
72
|
+
output: bootstrap.payload,
|
|
73
|
+
};
|
|
65
74
|
if (bootstrap instanceof AsyncActivityResultRejected)
|
|
66
|
-
return {
|
|
75
|
+
return {
|
|
76
|
+
id: activity.id,
|
|
77
|
+
type: 'async',
|
|
78
|
+
status: 'rejected',
|
|
79
|
+
output: bootstrap.payload,
|
|
80
|
+
};
|
|
67
81
|
if (!(bootstrap instanceof AsyncActivityResultPending))
|
|
68
82
|
throw new Error('Unknown async activity result');
|
|
69
83
|
const name = activity.constructor.name;
|
|
@@ -81,18 +95,38 @@ async function resolveAsyncActivity(activity, bootstrap, context, input, mockAsy
|
|
|
81
95
|
async function outcomeToHistoryItem(activity, outcome, pending, context, name) {
|
|
82
96
|
switch (outcome.status) {
|
|
83
97
|
case 'fulfilled':
|
|
84
|
-
return {
|
|
98
|
+
return {
|
|
99
|
+
id: activity.id,
|
|
100
|
+
type: 'async',
|
|
101
|
+
status: 'fulfilled',
|
|
102
|
+
output: outcome.output,
|
|
103
|
+
};
|
|
85
104
|
case 'rejected':
|
|
86
|
-
return {
|
|
105
|
+
return {
|
|
106
|
+
id: activity.id,
|
|
107
|
+
type: 'async',
|
|
108
|
+
status: 'rejected',
|
|
109
|
+
output: outcome.reason,
|
|
110
|
+
};
|
|
87
111
|
case 'timeout': {
|
|
88
112
|
const onTimeout = activity.onTimeout?.bind(activity);
|
|
89
113
|
if (!onTimeout)
|
|
90
114
|
throw new Error(`Async activity "${name}" timed out but defines no onTimeout handler`);
|
|
91
115
|
const result = await Internals.runActivity(activity, context, () => onTimeout(pending));
|
|
92
116
|
if (result instanceof AsyncActivityResultFulfilled)
|
|
93
|
-
return {
|
|
117
|
+
return {
|
|
118
|
+
id: activity.id,
|
|
119
|
+
type: 'async',
|
|
120
|
+
status: 'fulfilled',
|
|
121
|
+
output: result.payload,
|
|
122
|
+
};
|
|
94
123
|
if (result instanceof AsyncActivityResultRejected)
|
|
95
|
-
return {
|
|
124
|
+
return {
|
|
125
|
+
id: activity.id,
|
|
126
|
+
type: 'async',
|
|
127
|
+
status: 'rejected',
|
|
128
|
+
output: result.payload,
|
|
129
|
+
};
|
|
96
130
|
throw new Error(`Async activity "${name}" stayed pending after onTimeout`);
|
|
97
131
|
}
|
|
98
132
|
default:
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"run-workflow.js","sourceRoot":"","sources":["../../src/testing/run-workflow.ts"],"names":[],"mappings":"AACA,OAAO,EACL,aAAa,GAEd,MAAM,4BAA4B,CAAA;AACnC,OAAO,EACL,4BAA4B,EAC5B,0BAA0B,EAC1B,2BAA2B,GAC5B,MAAM,yCAAyC,CAAA;AAEhD,OAAO,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAA;AAGtC,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAA;AACxD,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAA;AAExD,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAA;AA0BjD,SAAS,mBAAmB,CAC1B,QAAyC;IAEzC,MAAM,KAAK,GAAG,CAAC,GAAG,QAAQ,CAAC,CAAA;IAE3B,OAAO,CAAC,QAAQ,EAAE,OAAO,EAAE,EAAE;QAC3B,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,EAAE,CAAA;QAE1B,IAAI,CAAC,IAAI;YACP,MAAM,IAAI,KAAK,CACb,sCAAsC,QAAQ,CAAC,WAAW,CAAC,IAAI,aAAa,OAAO,CAAC,KAAK,YAAY,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CACtI,CAAA;QAEH,OAAO,IAAI,CAAA;IACb,CAAC,CAAA;AACH,CAAC;AAED,SAAS,0BAA0B,CACjC,IAA0D;IAE1D,IAAI,CAAC,IAAI;QAAE,OAAO,SAAS,CAAA;IAE3B,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC;QAAE,OAAO,mBAAmB,CAAC,IAAI,CAAC,CAAA;IAEzD,OAAO,IAAyB,CAAA;AAClC,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,WAAW,CAC/B,QAAW,EACX,KAAuB,EACvB,UAA8B,EAAE;IAEhC,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,EAAE,CAAA;IACnC,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,IAAI,EAAE,CAAA;IAC7B,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,IAAI,MAAM,CAAA;IAE3C,MAAM,OAAO,GAAkB,EAAE,CAAA;IACjC,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,IAAI,EAAE,CAAA;IAC/B,MAAM,KAAK,GAAG,0BAA0B,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAA;IACnE,MAAM,eAAe,GAAG,EAAE,KAAK,EAAE,CAAC,EAAE,CAAA;IAEpC,KAAK,IAAI,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,QAAQ,EAAE,IAAI,EAAE,EAAE,CAAC;QAC3C,IAAI,CAAC;YACH,OAAO,MAAM,SAAS,CAAC,WAAW,CAAC,QAAQ,EAAE;gBAC3C,KAAK;gBACL,MAAM;gBACN,GAAG;gBACH,OAAO;gBACP,IAAI;aACL,CAAC,CAAA;QACJ,CAAC;QAAC,OAAO,WAAW,EAAE,CAAC;YACrB,IAAI,CAAC,CAAC,WAAW,YAAY,YAAY,CAAC;gBAAE,MAAM,WAAW,CAAA;YAE7D,MAAM,IAAI,GAAG,MAAM,eAAe,CAChC,WAAW,EACX,EAAE,MAAM,EAAE,GAAG,EAAE,EACf,KAAK,EACL,eAAe,CAChB,CAAA;YAED,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QACpB,CAAC;IACH,CAAC;IAED,MAAM,IAAI,KAAK,CAAC,kCAAkC,QAAQ,QAAQ,CAAC,CAAA;AACrE,CAAC;AAED,KAAK,UAAU,eAAe,CAC5B,IAA4B,EAC5B,
|
|
1
|
+
{"version":3,"file":"run-workflow.js","sourceRoot":"","sources":["../../src/testing/run-workflow.ts"],"names":[],"mappings":"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"}
|
|
@@ -14,6 +14,7 @@ export declare namespace Internals {
|
|
|
14
14
|
}
|
|
15
15
|
function runWorkflow<T extends Workflow<any, any>>(workflow: T, context: WorkflowRunContext<T>): any;
|
|
16
16
|
interface ActivityRunContext {
|
|
17
|
+
id: string;
|
|
17
18
|
claims: readonly ClaimProvider<any>[];
|
|
18
19
|
env: Env.Entries;
|
|
19
20
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Internals.d.ts","sourceRoot":"","sources":["../../src/tools/Internals.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAA;AAC1E,OAAO,EAAS,KAAK,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAC9D,OAAO,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAA;AACtC,OAAO,EAAW,KAAK,WAAW,EAAE,MAAM,sBAAsB,CAAA;AAChE,OAAO,EAAU,KAAK,GAAG,EAAE,MAAM,qBAAqB,CAAA;AACtD,OAAO,KAAK,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAA;AAEpE,yBAAiB,SAAS,CAAC;IACzB,UAAiB,kBAAkB,CAAC,SAAS,SAAS,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAC;QACtE,MAAM,EAAE,SAAS,aAAa,CAAC,GAAG,CAAC,EAAE,CAAA;QACrC,OAAO,EAAE,SAAS,WAAW,EAAE,CAAA;QAC/B,GAAG,EAAE,GAAG,CAAC,OAAO,CAAA;QAChB,KAAK,EAAE,aAAa,CAAC,SAAS,CAAC,CAAA;QAC/B,IAAI,EAAE,GAAG,EAAE,CAAA;KACZ;IAED,SAAgB,WAAW,CAAC,CAAC,SAAS,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAC,EACtD,QAAQ,EAAE,CAAC,EACX,OAAO,EAAE,kBAAkB,CAAC,CAAC,CAAC,OAS/B;IAED,UAAiB,kBAAkB;QACjC,MAAM,EAAE,SAAS,aAAa,CAAC,GAAG,CAAC,EAAE,CAAA;QACrC,GAAG,EAAE,GAAG,CAAC,OAAO,CAAA;KACjB;IAED,SAAgB,WAAW,CAAC,CAAC,SAAS,QAAQ,EAAE,CAAC,EAC/C,6BAA6B,EAAE,CAAC,GAAG,mBAAmB,CAAC,CAAC,CAAC,EACzD,OAAO,EAAE,kBAAkB,EAC3B,EAAE,EAAE,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,
|
|
1
|
+
{"version":3,"file":"Internals.d.ts","sourceRoot":"","sources":["../../src/tools/Internals.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAA;AAC1E,OAAO,EAAS,KAAK,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAC9D,OAAO,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAA;AACtC,OAAO,EAAW,KAAK,WAAW,EAAE,MAAM,sBAAsB,CAAA;AAChE,OAAO,EAAU,KAAK,GAAG,EAAE,MAAM,qBAAqB,CAAA;AACtD,OAAO,KAAK,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAA;AAEpE,yBAAiB,SAAS,CAAC;IACzB,UAAiB,kBAAkB,CAAC,SAAS,SAAS,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAC;QACtE,MAAM,EAAE,SAAS,aAAa,CAAC,GAAG,CAAC,EAAE,CAAA;QACrC,OAAO,EAAE,SAAS,WAAW,EAAE,CAAA;QAC/B,GAAG,EAAE,GAAG,CAAC,OAAO,CAAA;QAChB,KAAK,EAAE,aAAa,CAAC,SAAS,CAAC,CAAA;QAC/B,IAAI,EAAE,GAAG,EAAE,CAAA;KACZ;IAED,SAAgB,WAAW,CAAC,CAAC,SAAS,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAC,EACtD,QAAQ,EAAE,CAAC,EACX,OAAO,EAAE,kBAAkB,CAAC,CAAC,CAAC,OAS/B;IAED,UAAiB,kBAAkB;QACjC,EAAE,EAAE,MAAM,CAAA;QACV,MAAM,EAAE,SAAS,aAAa,CAAC,GAAG,CAAC,EAAE,CAAA;QACrC,GAAG,EAAE,GAAG,CAAC,OAAO,CAAA;KACjB;IAED,SAAgB,WAAW,CAAC,CAAC,SAAS,QAAQ,EAAE,CAAC,EAC/C,6BAA6B,EAAE,CAAC,GAAG,mBAAmB,CAAC,CAAC,CAAC,EACzD,OAAO,EAAE,kBAAkB,EAC3B,EAAE,EAAE,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,KAYvB;CACF"}
|
package/dist/tools/Internals.js
CHANGED
|
@@ -12,6 +12,7 @@ export var Internals;
|
|
|
12
12
|
const activity = typeof activityOrActivityConstructor === 'function'
|
|
13
13
|
? new activityOrActivityConstructor()
|
|
14
14
|
: activityOrActivityConstructor;
|
|
15
|
+
activity.id = context.id;
|
|
15
16
|
return Env.run(context.env, () => Claim.run(context.claims, () => fn(activity)));
|
|
16
17
|
}
|
|
17
18
|
Internals.runActivity = runActivity;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Internals.js","sourceRoot":"","sources":["../../src/tools/Internals.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAsB,MAAM,oBAAoB,CAAA;AAC9D,OAAO,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAA;AACtC,OAAO,EAAE,OAAO,EAAoB,MAAM,sBAAsB,CAAA;AAChE,OAAO,EAAE,MAAM,EAAY,MAAM,qBAAqB,CAAA;AAGtD,MAAM,KAAW,SAAS,
|
|
1
|
+
{"version":3,"file":"Internals.js","sourceRoot":"","sources":["../../src/tools/Internals.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAsB,MAAM,oBAAoB,CAAA;AAC9D,OAAO,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAA;AACtC,OAAO,EAAE,OAAO,EAAoB,MAAM,sBAAsB,CAAA;AAChE,OAAO,EAAE,MAAM,EAAY,MAAM,qBAAqB,CAAA;AAGtD,MAAM,KAAW,SAAS,CA4CzB;AA5CD,WAAiB,SAAS;IASxB,SAAgB,WAAW,CACzB,QAAW,EACX,OAA8B;QAE9B,OAAO,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,EAAE,CAC/B,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,EAAE,CAC7B,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,EAAE,GAAG,EAAE,CAChC,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAC3D,CACF,CACF,CAAA;IACH,CAAC;IAXe,qBAAW,cAW1B,CAAA;IAQD,SAAgB,WAAW,CACzB,6BAAyD,EACzD,OAA2B,EAC3B,EAAsB;QAEtB,MAAM,QAAQ,GACZ,OAAO,6BAA6B,KAAK,UAAU;YACjD,CAAC,CAAC,IAAI,6BAA6B,EAAE;YACrC,CAAC,CAAC,6BAA6B,CAAA;QAEnC,QAAQ,CAAC,EAAE,GAAG,OAAO,CAAC,EAAE,CAAA;QAExB,OAAO,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,EAAE,CAC/B,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAC9C,CAAA;IACH,CAAC;IAfe,qBAAW,cAe1B,CAAA;AACH,CAAC,EA5CgB,SAAS,KAAT,SAAS,QA4CzB"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@t4h.framework/core",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.7.0",
|
|
4
4
|
"description": "Core module for the T4H Framework",
|
|
5
5
|
"homepage": "https://github.com/tech4humans-brasil/framework/tree/main/packages/core",
|
|
6
6
|
"bugs": "https://github.com/tech4humans-brasil/framework/issues",
|
|
@@ -40,7 +40,8 @@
|
|
|
40
40
|
},
|
|
41
41
|
"dependencies": {
|
|
42
42
|
"ajv": "^8.18.0",
|
|
43
|
-
"typebox": "^1.1.6"
|
|
43
|
+
"typebox": "^1.1.6",
|
|
44
|
+
"uuidv7": "^1.2.1"
|
|
44
45
|
},
|
|
45
46
|
"devDependencies": {
|
|
46
47
|
"@vitest/coverage-v8": "^4.0.18",
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
import { AsyncActivity } from '../models/AsyncActivity.js';
|
|
2
|
-
import type { ClaimProvider } from '../models/Claim.js';
|
|
3
|
-
import { Env } from '../models/Env.js';
|
|
4
|
-
import type { Log } from '../models/Logger.js';
|
|
5
|
-
import type { Workflow, WorkflowInput } from '../models/Workflow.js';
|
|
6
|
-
export type AsyncActivityResolver = (activity: AsyncActivity<any, any, any, any, any, any>, input: unknown) => unknown | Promise<unknown>;
|
|
7
|
-
export interface RunWorkflowToCompletionOptions {
|
|
8
|
-
claims?: readonly ClaimProvider<any>[];
|
|
9
|
-
env?: Env.Entries;
|
|
10
|
-
resolveAsyncActivity?: AsyncActivityResolver;
|
|
11
|
-
maxTicks?: number;
|
|
12
|
-
logs?: Log[];
|
|
13
|
-
}
|
|
14
|
-
export declare function runWorkflowToCompletion<T extends Workflow<any, any>>(workflow: T, input: WorkflowInput<T>, options?: RunWorkflowToCompletionOptions): Promise<any>;
|
|
15
|
-
//# sourceMappingURL=runWorkflowToCompletion.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"runWorkflowToCompletion.d.ts","sourceRoot":"","sources":["../../src/tools/runWorkflowToCompletion.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAA;AAM1D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AACvD,OAAO,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAA;AAEtC,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,qBAAqB,CAAA;AAG9C,OAAO,KAAK,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAA;AAGpE,MAAM,MAAM,qBAAqB,GAAG,CAClC,QAAQ,EAAE,aAAa,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EACrD,KAAK,EAAE,OAAO,KACX,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAA;AAE/B,MAAM,WAAW,8BAA8B;IAC7C,MAAM,CAAC,EAAE,SAAS,aAAa,CAAC,GAAG,CAAC,EAAE,CAAA;IACtC,GAAG,CAAC,EAAE,GAAG,CAAC,OAAO,CAAA;IACjB,oBAAoB,CAAC,EAAE,qBAAqB,CAAA;IAC5C,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,IAAI,CAAC,EAAE,GAAG,EAAE,CAAA;CACb;AAED,wBAAsB,uBAAuB,CAAC,CAAC,SAAS,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAC,EACxE,QAAQ,EAAE,CAAC,EACX,KAAK,EAAE,aAAa,CAAC,CAAC,CAAC,EACvB,OAAO,GAAE,8BAAmC,gBAgC7C"}
|
|
@@ -1,61 +0,0 @@
|
|
|
1
|
-
import { AsyncActivity } from '../models/AsyncActivity.js';
|
|
2
|
-
import { AsyncActivityResultFulfilled, AsyncActivityResultPending, AsyncActivityResultRejected, } from '../models/AsyncActivityAdvanceResult.js';
|
|
3
|
-
import { Env } from '../models/Env.js';
|
|
4
|
-
import { PushActivity } from '../models/PushActivity.js';
|
|
5
|
-
import { SyncActivity } from '../models/SyncActivity.js';
|
|
6
|
-
import { Internals } from './Internals.js';
|
|
7
|
-
export async function runWorkflowToCompletion(workflow, input, options = {}) {
|
|
8
|
-
const claims = options.claims ?? [];
|
|
9
|
-
const env = options.env ?? {};
|
|
10
|
-
const maxTicks = options.maxTicks ?? 10_000;
|
|
11
|
-
const history = [];
|
|
12
|
-
const logs = options.logs ?? [];
|
|
13
|
-
for (let tick = 0; tick < maxTicks; tick++) {
|
|
14
|
-
try {
|
|
15
|
-
return await Internals.runWorkflow(workflow, {
|
|
16
|
-
input,
|
|
17
|
-
claims,
|
|
18
|
-
env,
|
|
19
|
-
history,
|
|
20
|
-
logs,
|
|
21
|
-
});
|
|
22
|
-
}
|
|
23
|
-
catch (pushOrError) {
|
|
24
|
-
if (!(pushOrError instanceof PushActivity))
|
|
25
|
-
throw pushOrError;
|
|
26
|
-
const item = await resolveActivity(pushOrError, { claims, env }, options.resolveAsyncActivity);
|
|
27
|
-
history.push(item);
|
|
28
|
-
}
|
|
29
|
-
}
|
|
30
|
-
throw new Error(`Workflow did not settle within ${maxTicks} ticks`);
|
|
31
|
-
}
|
|
32
|
-
async function resolveActivity(push, context, resolver) {
|
|
33
|
-
const activity = push.activity;
|
|
34
|
-
if (activity instanceof SyncActivity) {
|
|
35
|
-
const output = await Internals.runActivity(activity, context, instance => instance.run(push.input));
|
|
36
|
-
return { type: 'sync', output };
|
|
37
|
-
}
|
|
38
|
-
if (activity instanceof AsyncActivity) {
|
|
39
|
-
const bootstrap = await Internals.runActivity(activity, context, instance => instance.bootstrap(push.input));
|
|
40
|
-
const settled = await settleAsyncActivity(activity, bootstrap, context, push.input, resolver);
|
|
41
|
-
return settled;
|
|
42
|
-
}
|
|
43
|
-
throw new Error('Unknown activity type');
|
|
44
|
-
}
|
|
45
|
-
async function settleAsyncActivity(activity, result, context, input, resolver) {
|
|
46
|
-
if (result instanceof AsyncActivityResultFulfilled)
|
|
47
|
-
return { type: 'async', status: 'fulfilled', output: result.payload };
|
|
48
|
-
if (result instanceof AsyncActivityResultRejected)
|
|
49
|
-
return { type: 'async', status: 'rejected', output: result.payload };
|
|
50
|
-
if (!(result instanceof AsyncActivityResultPending))
|
|
51
|
-
throw new Error('Unknown async activity result');
|
|
52
|
-
const name = activity.constructor.name;
|
|
53
|
-
if (!resolver)
|
|
54
|
-
throw new Error(`Async activity "${name}" is pending and no resolveAsyncActivity was provided`);
|
|
55
|
-
const payload = await resolver(activity, input);
|
|
56
|
-
const advanced = await Internals.runActivity(activity, context, instance => instance.advance(payload, result));
|
|
57
|
-
if (advanced instanceof AsyncActivityResultPending)
|
|
58
|
-
throw new Error(`Async activity "${name}" stayed pending after advance`);
|
|
59
|
-
return settleAsyncActivity(activity, advanced, context, input, resolver);
|
|
60
|
-
}
|
|
61
|
-
//# sourceMappingURL=runWorkflowToCompletion.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"runWorkflowToCompletion.js","sourceRoot":"","sources":["../../src/tools/runWorkflowToCompletion.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAA;AAC1D,OAAO,EACL,4BAA4B,EAC5B,0BAA0B,EAC1B,2BAA2B,GAC5B,MAAM,yCAAyC,CAAA;AAEhD,OAAO,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAA;AAGtC,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAA;AACxD,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAA;AAExD,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAe1C,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAC3C,QAAW,EACX,KAAuB,EACvB,UAA0C,EAAE;IAE5C,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,EAAE,CAAA;IACnC,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,IAAI,EAAE,CAAA;IAC7B,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,IAAI,MAAM,CAAA;IAE3C,MAAM,OAAO,GAAkB,EAAE,CAAA;IACjC,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,IAAI,EAAE,CAAA;IAE/B,KAAK,IAAI,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,QAAQ,EAAE,IAAI,EAAE,EAAE,CAAC;QAC3C,IAAI,CAAC;YACH,OAAO,MAAM,SAAS,CAAC,WAAW,CAAC,QAAQ,EAAE;gBAC3C,KAAK;gBACL,MAAM;gBACN,GAAG;gBACH,OAAO;gBACP,IAAI;aACL,CAAC,CAAA;QACJ,CAAC;QAAC,OAAO,WAAW,EAAE,CAAC;YACrB,IAAI,CAAC,CAAC,WAAW,YAAY,YAAY,CAAC;gBAAE,MAAM,WAAW,CAAA;YAE7D,MAAM,IAAI,GAAG,MAAM,eAAe,CAChC,WAAW,EACX,EAAE,MAAM,EAAE,GAAG,EAAE,EACf,OAAO,CAAC,oBAAoB,CAC7B,CAAA;YAED,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QACpB,CAAC;IACH,CAAC;IAED,MAAM,IAAI,KAAK,CAAC,kCAAkC,QAAQ,QAAQ,CAAC,CAAA;AACrE,CAAC;AAED,KAAK,UAAU,eAAe,CAC5B,IAA4B,EAC5B,OAAqC,EACrC,QAAgC;IAEhC,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAA;IAE9B,IAAI,QAAQ,YAAY,YAAY,EAAE,CAAC;QACrC,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,WAAW,CAAC,QAAQ,EAAE,OAAO,EAAE,QAAQ,CAAC,EAAE,CACvE,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CACzB,CAAA;QAED,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,CAAA;IACjC,CAAC;IAED,IAAI,QAAQ,YAAY,aAAa,EAAE,CAAC;QACtC,MAAM,SAAS,GAAG,MAAM,SAAS,CAAC,WAAW,CAAC,QAAQ,EAAE,OAAO,EAAE,QAAQ,CAAC,EAAE,CAC1E,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAC/B,CAAA;QAED,MAAM,OAAO,GAAG,MAAM,mBAAmB,CACvC,QAAQ,EACR,SAAS,EACT,OAAO,EACP,IAAI,CAAC,KAAK,EACV,QAAQ,CACT,CAAA;QAED,OAAO,OAAO,CAAA;IAChB,CAAC;IAED,MAAM,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAA;AAC1C,CAAC;AAED,KAAK,UAAU,mBAAmB,CAChC,QAAqD,EACrD,MAAe,EACf,OAAqC,EACrC,KAAc,EACd,QAAgC;IAEhC,IAAI,MAAM,YAAY,4BAA4B;QAChD,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,CAAC,OAAO,EAAE,CAAA;IAEvE,IAAI,MAAM,YAAY,2BAA2B;QAC/C,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,CAAC,OAAO,EAAE,CAAA;IAEtE,IAAI,CAAC,CAAC,MAAM,YAAY,0BAA0B,CAAC;QACjD,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAA;IAElD,MAAM,IAAI,GAAG,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAA;IAEtC,IAAI,CAAC,QAAQ;QACX,MAAM,IAAI,KAAK,CACb,mBAAmB,IAAI,uDAAuD,CAC/E,CAAA;IAEH,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAA;IAE/C,MAAM,QAAQ,GAAG,MAAM,SAAS,CAAC,WAAW,CAAC,QAAQ,EAAE,OAAO,EAAE,QAAQ,CAAC,EAAE,CACzE,QAAQ,CAAC,OAAO,CAAC,OAAO,EAAE,MAAM,CAAC,CAClC,CAAA;IAED,IAAI,QAAQ,YAAY,0BAA0B;QAChD,MAAM,IAAI,KAAK,CAAC,mBAAmB,IAAI,gCAAgC,CAAC,CAAA;IAE1E,OAAO,mBAAmB,CAAC,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAA;AAC1E,CAAC"}
|