@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.
Files changed (33) hide show
  1. package/dist/models/AsyncActivity.d.ts +1 -0
  2. package/dist/models/AsyncActivity.d.ts.map +1 -1
  3. package/dist/models/AsyncActivity.js +1 -0
  4. package/dist/models/AsyncActivity.js.map +1 -1
  5. package/dist/models/AsyncActivityAwaitable.js +1 -1
  6. package/dist/models/AsyncActivityAwaitable.js.map +1 -1
  7. package/dist/models/History.d.ts +3 -0
  8. package/dist/models/History.d.ts.map +1 -1
  9. package/dist/models/History.js +10 -0
  10. package/dist/models/History.js.map +1 -1
  11. package/dist/models/Logger.d.ts +0 -3
  12. package/dist/models/Logger.d.ts.map +1 -1
  13. package/dist/models/Logger.js +3 -7
  14. package/dist/models/Logger.js.map +1 -1
  15. package/dist/models/PushWaitAsyncActivity.d.ts +2 -1
  16. package/dist/models/PushWaitAsyncActivity.d.ts.map +1 -1
  17. package/dist/models/PushWaitAsyncActivity.js +3 -1
  18. package/dist/models/PushWaitAsyncActivity.js.map +1 -1
  19. package/dist/models/SyncActivity.d.ts +1 -0
  20. package/dist/models/SyncActivity.d.ts.map +1 -1
  21. package/dist/models/SyncActivity.js +1 -0
  22. package/dist/models/SyncActivity.js.map +1 -1
  23. package/dist/testing/run-workflow.js +44 -10
  24. package/dist/testing/run-workflow.js.map +1 -1
  25. package/dist/tools/Internals.d.ts +1 -0
  26. package/dist/tools/Internals.d.ts.map +1 -1
  27. package/dist/tools/Internals.js +1 -0
  28. package/dist/tools/Internals.js.map +1 -1
  29. package/package.json +3 -2
  30. package/dist/tools/runWorkflowToCompletion.d.ts +0 -15
  31. package/dist/tools/runWorkflowToCompletion.d.ts.map +0 -1
  32. package/dist/tools/runWorkflowToCompletion.js +0 -61
  33. 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;aAEZ,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
+ {"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;IAyB1B,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"}
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;QAEhD,OAAO,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,CAAA;IAC/D,CAAC;CACF"}
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"}
@@ -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":"AAEA,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,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;CAC7C;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,CAuB9B;IAED,SAAgB,GAAG,CAAC,CAAC,EAAE,OAAO,EAAE,SAAS,WAAW,EAAE,EAAE,EAAE,EAAE,MAAM,CAAC,KAElE;CACF"}
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"}
@@ -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;AAkBhD,MAAM,KAAW,OAAO,CA0CvB;AA1CD,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;QAC7B,MAAM,QAAQ,GAAG,IAAI,QAAQ,EAAE,CAAA;QAE/B,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,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,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;IA1BqB,kBAAU,aA0B/B,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,EA1CgB,OAAO,KAAP,OAAO,QA0CvB"}
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"}
@@ -5,9 +5,6 @@ export interface Log {
5
5
  at: number;
6
6
  }
7
7
  export declare namespace Logger {
8
- interface RunOptions {
9
- logs: Log[];
10
- }
11
8
  function run<T>(logs: Log[], fn: () => T): T;
12
9
  }
13
10
  //# sourceMappingURL=Logger.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Logger.d.ts","sourceRoot":"","sources":["../../src/models/Logger.ts"],"names":[],"mappings":"AAEA,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;AAOD,yBAAiB,MAAM,CAAC;IAetB,UAAiB,UAAU;QACzB,IAAI,EAAE,GAAG,EAAE,CAAA;KACZ;IAED,SAAgB,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,MAAM,CAAC,KAS9C;CAyBF"}
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"}
@@ -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
- const context = {
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
- const index = context.invocationIndex++;
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;AAepD,MAAM,KAAW,MAAM,CAqDtB;AArDD,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;IAMzB,SAAgB,GAAG,CAAI,IAAW,EAAE,EAAW;QAC7C,gBAAgB,EAAE,CAAA;QAElB,MAAM,OAAO,GAAkB;YAC7B,eAAe,EAAE,CAAC;YAClB,IAAI;SACL,CAAA;QAED,OAAO,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE,EAAE,CAAC,CAAA;IACjC,CAAC;IATe,UAAG,MASlB,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,MAAM,KAAK,GAAG,OAAO,CAAC,eAAe,EAAE,CAAA;QAEvC,IAAI,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,MAAM;YAAE,OAAM;QAEvC,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,EArDgB,MAAM,KAAN,MAAM,QAqDtB"}
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
- constructor(asyncActivity: AnyAsyncActivity);
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;aACJ,aAAa,EAAE,gBAAgB;gBAA/B,aAAa,EAAE,gBAAgB;CAC5D"}
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
- constructor(asyncActivity) {
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;IACJ;IAA5B,YAA4B,aAA+B;QAA/B,kBAAa,GAAb,aAAa,CAAkB;IAAG,CAAC;CAChE"}
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;aAES,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
+ {"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,3 +1,4 @@
1
1
  export class SyncActivity {
2
+ id;
2
3
  }
3
4
  //# sourceMappingURL=SyncActivity.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"SyncActivity.js","sourceRoot":"","sources":["../../src/models/SyncActivity.ts"],"names":[],"mappings":"AAEA,MAAM,OAAgB,YAAY;CAajC"}
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, context, instance => instance.run(push.input));
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, context, instance => instance.bootstrap(push.input));
58
- return resolveAsyncActivity(activity, bootstrap, context, push.input, mockAsyncActivity, resolutionState);
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 { type: 'async', status: 'fulfilled', output: bootstrap.payload };
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 { type: 'async', status: 'rejected', output: bootstrap.payload };
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 { type: 'async', status: 'fulfilled', output: outcome.output };
98
+ return {
99
+ id: activity.id,
100
+ type: 'async',
101
+ status: 'fulfilled',
102
+ output: outcome.output,
103
+ };
85
104
  case 'rejected':
86
- return { type: 'async', status: 'rejected', output: outcome.reason };
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 { type: 'async', status: 'fulfilled', output: result.payload };
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 { type: 'async', status: 'rejected', output: result.payload };
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":"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"}
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,KAUvB;CACF"}
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"}
@@ -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,CAyCzB;AAzCD,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;IAOD,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,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;IAbe,qBAAW,cAa1B,CAAA;AACH,CAAC,EAzCgB,SAAS,KAAT,SAAS,QAyCzB"}
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.6.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":"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"}