@t4h.framework/core 0.2.0 → 0.4.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.
@@ -1,21 +1,36 @@
1
+ import Type from 'typebox';
2
+ import { AsyncActivity } from '../models/AsyncActivity.js';
1
3
  import { Claim } from '../models/Claim.js';
2
- import { SyncActivity } from '../models/SyncActivity.js';
3
4
  import type { Workflow, WorkflowInput } from '../models/Workflow.js';
4
5
  import { WorkflowRef } from '../models/WorkflowRef.js';
5
6
  import type { Serializable } from '../typings/Serializable.js';
7
+ declare const schema: Type.TObject<{
8
+ status: Type.TEnum<["fulfilled", "rejected"]>;
9
+ output: Type.TAny;
10
+ }>;
6
11
  export declare abstract class WorkflowClaim {
7
12
  abstract start<TWorkflow extends Workflow<any, any>>(workflow: TWorkflow, input: WorkflowInput<TWorkflow>): Serializable | Promise<Serializable>;
8
13
  }
9
- export declare class StartWorkflowActivity extends SyncActivity<[
10
- workflow: Workflow,
14
+ export type StartWorkflowActivityInput<TWorkflow extends Workflow<any, any>> = WorkflowInput<TWorkflow> & {
15
+ parallel?: boolean;
16
+ };
17
+ export declare class StartWorkflowActivity extends AsyncActivity<[
18
+ workflow: Workflow<any, any>,
11
19
  input: any
12
- ], Serializable, Serializable, WorkflowRef> {
20
+ ], Serializable, Serializable, WorkflowRef, StartWorkflowActivityInput<Workflow<any, any>>, typeof schema> {
13
21
  readonly claims: Claim<{
14
22
  workflow: typeof WorkflowClaim;
15
23
  }>;
16
- toInput(workflow: Workflow<any, any>, input: any): Promise<Serializable>;
17
- run(payload: Serializable): Serializable;
18
- toOutput(payload: Serializable): WorkflowRef;
24
+ bootstrap(input: StartWorkflowActivityInput<Workflow<any, any>>): Promise<import("../core.js").AsyncActivityResultPending<{
25
+ parallel?: boolean;
26
+ }, Type.TObject<{
27
+ status: Type.TEnum<["fulfilled", "rejected"]>;
28
+ output: Type.TAny;
29
+ }>> | import("../core.js").AsyncActivityResultFulfilled<Serializable>>;
30
+ advance(payload: Type.Static<typeof schema>): import("../core.js").AsyncActivityResultRejected<void | Serializable> | import("../core.js").AsyncActivityResultFulfilled<Serializable>;
31
+ toInput(workflow: Workflow<any, any>, input: StartWorkflowActivityInput<Workflow<any, any>>): Promise<StartWorkflowActivityInput<Workflow<any, any>>>;
32
+ toOutput(payload: Type.Static<typeof schema>): WorkflowRef;
19
33
  }
20
- export declare function startWorkflow<TWorkflow extends Workflow<any, any>>(workflow: TWorkflow, input: WorkflowInput<TWorkflow>): Promise<WorkflowRef>;
34
+ export declare function startWorkflow<TWorkflow extends Workflow<any, any>>(workflow: TWorkflow, input: StartWorkflowActivityInput<TWorkflow>): Promise<import("../core.js").AsyncActivityAwaitable<StartWorkflowActivity>>;
35
+ export {};
21
36
  //# sourceMappingURL=StartWorkflowActivity.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"StartWorkflowActivity.d.ts","sourceRoot":"","sources":["../../src/activities/StartWorkflowActivity.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAA;AAE1C,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAA;AACxD,OAAO,KAAK,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAA;AACpE,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAA;AACtD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAA;AAE9D,8BAAsB,aAAa;aACjB,KAAK,CAAC,SAAS,SAAS,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAC,EACxD,QAAQ,EAAE,SAAS,EACnB,KAAK,EAAE,aAAa,CAAC,SAAS,CAAC,GAC9B,YAAY,GAAG,OAAO,CAAC,YAAY,CAAC;CACxC;AAED,qBAAa,qBAAsB,SAAQ,YAAY,CACrD;IAAC,QAAQ,EAAE,QAAQ;IAAE,KAAK,EAAE,GAAG;CAAC,EAChC,YAAY,EACZ,YAAY,EACZ,WAAW,CACZ;IACC,SAAgB,MAAM;;OAEpB;IAEW,OAAO,CAAC,QAAQ,EAAE,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,KAAK,EAAE,GAAG;IAItD,GAAG,CAAC,OAAO,EAAE,YAAY;IAIzB,QAAQ,CAAC,OAAO,EAAE,YAAY,GAAG,WAAW;CAGpD;AAED,wBAAgB,aAAa,CAAC,SAAS,SAAS,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAC,EAChE,QAAQ,EAAE,SAAS,EACnB,KAAK,EAAE,aAAa,CAAC,SAAS,CAAC,wBAGhC"}
1
+ {"version":3,"file":"StartWorkflowActivity.d.ts","sourceRoot":"","sources":["../../src/activities/StartWorkflowActivity.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,SAAS,CAAA;AAE1B,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAA;AAC1D,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAA;AAE1C,OAAO,KAAK,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAA;AACpE,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAA;AACtD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAA;AAE9D,QAAA,MAAM,MAAM;;;EAGV,CAAA;AAEF,8BAAsB,aAAa;aACjB,KAAK,CAAC,SAAS,SAAS,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAC,EACxD,QAAQ,EAAE,SAAS,EACnB,KAAK,EAAE,aAAa,CAAC,SAAS,CAAC,GAC9B,YAAY,GAAG,OAAO,CAAC,YAAY,CAAC;CACxC;AAED,MAAM,MAAM,0BAA0B,CAAC,SAAS,SAAS,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAC,IACzE,aAAa,CAAC,SAAS,CAAC,GAAG;IACzB,QAAQ,CAAC,EAAE,OAAO,CAAA;CACnB,CAAA;AAEH,qBAAa,qBAAsB,SAAQ,aAAa,CACtD;IAAC,QAAQ,EAAE,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAC;IAAE,KAAK,EAAE,GAAG;CAAC,EAC1C,YAAY,EACZ,YAAY,EACZ,WAAW,EACX,0BAA0B,CAAC,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,EAC9C,OAAO,MAAM,CACd;IACC,SAAgB,MAAM;;OAEpB;IAEW,SAAS,CACpB,KAAK,EAAE,0BAA0B,CAAC,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;mBAhB1C,OAAO;;;;;IAyBb,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,OAAO,MAAM,CAAC;IAMrC,OAAO,CAClB,QAAQ,EAAE,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAC,EAC5B,KAAK,EAAE,0BAA0B,CAAC,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,GACpD,OAAO,CAAC,0BAA0B,CAAC,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;IAMnD,QAAQ,CAAC,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,OAAO,MAAM,CAAC,GAAG,WAAW;CAGlE;AAED,wBAAgB,aAAa,CAAC,SAAS,SAAS,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAC,EAChE,QAAQ,EAAE,SAAS,EACnB,KAAK,EAAE,0BAA0B,CAAC,SAAS,CAAC,+EAG7C"}
@@ -1,21 +1,36 @@
1
+ import Type from 'typebox';
2
+ import { AsyncActivity } from '../models/AsyncActivity.js';
1
3
  import { Claim } from '../models/Claim.js';
2
4
  import { History } from '../models/History.js';
3
- import { SyncActivity } from '../models/SyncActivity.js';
4
5
  import { WorkflowRef } from '../models/WorkflowRef.js';
6
+ const schema = Type.Object({
7
+ status: Type.Enum(['fulfilled', 'rejected']),
8
+ output: Type.Any(),
9
+ });
5
10
  export class WorkflowClaim {
6
11
  }
7
- export class StartWorkflowActivity extends SyncActivity {
12
+ export class StartWorkflowActivity extends AsyncActivity {
8
13
  claims = new Claim({
9
14
  workflow: WorkflowClaim,
10
15
  });
11
- async toInput(workflow, input) {
12
- return await this.claims.workflow.start(workflow, input);
16
+ async bootstrap(input) {
17
+ if (input.parallel)
18
+ return this.done({ status: 'fulfilled', output: null });
19
+ return this.pending({
20
+ schema,
21
+ });
22
+ }
23
+ advance(payload) {
24
+ if (payload.status === 'fulfilled')
25
+ return this.done(payload);
26
+ return this.rejected(payload);
13
27
  }
14
- run(payload) {
15
- return payload;
28
+ async toInput(workflow, input) {
29
+ await this.claims.workflow.start(workflow, input);
30
+ return input;
16
31
  }
17
32
  toOutput(payload) {
18
- return new WorkflowRef(payload);
33
+ return new WorkflowRef(payload.status, payload.output);
19
34
  }
20
35
  }
21
36
  export function startWorkflow(workflow, input) {
@@ -1 +1 @@
1
- {"version":3,"file":"StartWorkflowActivity.js","sourceRoot":"","sources":["../../src/activities/StartWorkflowActivity.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAA;AAC1C,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAA;AAC9C,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAA;AAExD,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAA;AAGtD,MAAM,OAAgB,aAAa;CAKlC;AAED,MAAM,OAAO,qBAAsB,SAAQ,YAK1C;IACiB,MAAM,GAAG,IAAI,KAAK,CAAC;QACjC,QAAQ,EAAE,aAAa;KACxB,CAAC,CAAA;IAEK,KAAK,CAAC,OAAO,CAAC,QAA4B,EAAE,KAAU;QAC3D,OAAO,MAAM,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAA;IAC1D,CAAC;IAEM,GAAG,CAAC,OAAqB;QAC9B,OAAO,OAAO,CAAA;IAChB,CAAC;IAEM,QAAQ,CAAC,OAAqB;QACnC,OAAO,IAAI,WAAW,CAAC,OAAO,CAAC,CAAA;IACjC,CAAC;CACF;AAED,MAAM,UAAU,aAAa,CAC3B,QAAmB,EACnB,KAA+B;IAE/B,OAAO,OAAO,CAAC,UAAU,CAAC,qBAAqB,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAA;AACnE,CAAC"}
1
+ {"version":3,"file":"StartWorkflowActivity.js","sourceRoot":"","sources":["../../src/activities/StartWorkflowActivity.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,SAAS,CAAA;AAE1B,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAA;AAC1D,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAA;AAC1C,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAA;AAE9C,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAA;AAGtD,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;IACzB,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC;IAC5C,MAAM,EAAE,IAAI,CAAC,GAAG,EAAE;CACnB,CAAC,CAAA;AAEF,MAAM,OAAgB,aAAa;CAKlC;AAOD,MAAM,OAAO,qBAAsB,SAAQ,aAO1C;IACiB,MAAM,GAAG,IAAI,KAAK,CAAC;QACjC,QAAQ,EAAE,aAAa;KACxB,CAAC,CAAA;IAEK,KAAK,CAAC,SAAS,CACpB,KAAqD;QAErD,IAAI,KAAK,CAAC,QAAQ;YAAE,OAAO,IAAI,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAA;QAE3E,OAAO,IAAI,CAAC,OAAO,CAAC;YAClB,MAAM;SACP,CAAC,CAAA;IACJ,CAAC;IAEM,OAAO,CAAC,OAAmC;QAChD,IAAI,OAAO,CAAC,MAAM,KAAK,WAAW;YAAE,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;QAE7D,OAAO,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAA;IAC/B,CAAC;IAEM,KAAK,CAAC,OAAO,CAClB,QAA4B,EAC5B,KAAqD;QAErD,MAAM,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAA;QAEjD,OAAO,KAAK,CAAA;IACd,CAAC;IAEM,QAAQ,CAAC,OAAmC;QACjD,OAAO,IAAI,WAAW,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,CAAA;IACxD,CAAC;CACF;AAED,MAAM,UAAU,aAAa,CAC3B,QAAmB,EACnB,KAA4C;IAE5C,OAAO,OAAO,CAAC,UAAU,CAAC,qBAAqB,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAA;AACnE,CAAC"}
package/dist/core.d.ts CHANGED
@@ -12,6 +12,7 @@ export * from './models/Claim.js';
12
12
  export * from './models/Env.js';
13
13
  export * from './models/EnvDesign.js';
14
14
  export * from './models/History.js';
15
+ export * from './models/Logger.js';
15
16
  export * from './models/PushActivity.js';
16
17
  export * from './models/PushWaitAsyncActivity.js';
17
18
  export * from './models/SerializableHelper.js';
@@ -1 +1 @@
1
- {"version":3,"file":"core.d.ts","sourceRoot":"","sources":["../src/core.ts"],"names":[],"mappings":"AAAA,cAAc,uCAAuC,CAAA;AAErD,cAAc,mCAAmC,CAAA;AACjD,cAAc,gCAAgC,CAAA;AAE9C,cAAc,sBAAsB,CAAA;AACpC,cAAc,2BAA2B,CAAA;AACzC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,2BAA2B,CAAA;AACzC,cAAc,wCAAwC,CAAA;AACtD,cAAc,oCAAoC,CAAA;AAClD,cAAc,oBAAoB,CAAA;AAClC,cAAc,mBAAmB,CAAA;AACjC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,uBAAuB,CAAA;AACrC,cAAc,qBAAqB,CAAA;AACnC,cAAc,0BAA0B,CAAA;AACxC,cAAc,mCAAmC,CAAA;AACjD,cAAc,gCAAgC,CAAA;AAC9C,cAAc,0BAA0B,CAAA;AACxC,cAAc,sBAAsB,CAAA;AACpC,cAAc,yBAAyB,CAAA;AAEvC,cAAc,sBAAsB,CAAA;AAEpC,cAAc,8BAA8B,CAAA;AAC5C,cAAc,2BAA2B,CAAA"}
1
+ {"version":3,"file":"core.d.ts","sourceRoot":"","sources":["../src/core.ts"],"names":[],"mappings":"AAAA,cAAc,uCAAuC,CAAA;AAErD,cAAc,mCAAmC,CAAA;AACjD,cAAc,gCAAgC,CAAA;AAE9C,cAAc,sBAAsB,CAAA;AACpC,cAAc,2BAA2B,CAAA;AACzC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,2BAA2B,CAAA;AACzC,cAAc,wCAAwC,CAAA;AACtD,cAAc,oCAAoC,CAAA;AAClD,cAAc,oBAAoB,CAAA;AAClC,cAAc,mBAAmB,CAAA;AACjC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,uBAAuB,CAAA;AACrC,cAAc,qBAAqB,CAAA;AACnC,cAAc,oBAAoB,CAAA;AAClC,cAAc,0BAA0B,CAAA;AACxC,cAAc,mCAAmC,CAAA;AACjD,cAAc,gCAAgC,CAAA;AAC9C,cAAc,0BAA0B,CAAA;AACxC,cAAc,sBAAsB,CAAA;AACpC,cAAc,yBAAyB,CAAA;AAEvC,cAAc,sBAAsB,CAAA;AAEpC,cAAc,8BAA8B,CAAA;AAC5C,cAAc,2BAA2B,CAAA"}
package/dist/core.js CHANGED
@@ -12,6 +12,7 @@ export * from './models/Claim.js';
12
12
  export * from './models/Env.js';
13
13
  export * from './models/EnvDesign.js';
14
14
  export * from './models/History.js';
15
+ export * from './models/Logger.js';
15
16
  export * from './models/PushActivity.js';
16
17
  export * from './models/PushWaitAsyncActivity.js';
17
18
  export * from './models/SerializableHelper.js';
package/dist/core.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"core.js","sourceRoot":"","sources":["../src/core.ts"],"names":[],"mappings":"AAAA,cAAc,uCAAuC,CAAA;AAErD,cAAc,mCAAmC,CAAA;AACjD,cAAc,gCAAgC,CAAA;AAE9C,cAAc,sBAAsB,CAAA;AACpC,cAAc,2BAA2B,CAAA;AACzC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,2BAA2B,CAAA;AACzC,cAAc,wCAAwC,CAAA;AACtD,cAAc,oCAAoC,CAAA;AAClD,cAAc,oBAAoB,CAAA;AAClC,cAAc,mBAAmB,CAAA;AACjC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,uBAAuB,CAAA;AACrC,cAAc,qBAAqB,CAAA;AACnC,cAAc,0BAA0B,CAAA;AACxC,cAAc,mCAAmC,CAAA;AACjD,cAAc,gCAAgC,CAAA;AAC9C,cAAc,0BAA0B,CAAA;AACxC,cAAc,sBAAsB,CAAA;AACpC,cAAc,yBAAyB,CAAA;AAEvC,cAAc,sBAAsB,CAAA;AAEpC,cAAc,8BAA8B,CAAA;AAC5C,cAAc,2BAA2B,CAAA"}
1
+ {"version":3,"file":"core.js","sourceRoot":"","sources":["../src/core.ts"],"names":[],"mappings":"AAAA,cAAc,uCAAuC,CAAA;AAErD,cAAc,mCAAmC,CAAA;AACjD,cAAc,gCAAgC,CAAA;AAE9C,cAAc,sBAAsB,CAAA;AACpC,cAAc,2BAA2B,CAAA;AACzC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,2BAA2B,CAAA;AACzC,cAAc,wCAAwC,CAAA;AACtD,cAAc,oCAAoC,CAAA;AAClD,cAAc,oBAAoB,CAAA;AAClC,cAAc,mBAAmB,CAAA;AACjC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,uBAAuB,CAAA;AACrC,cAAc,qBAAqB,CAAA;AACnC,cAAc,oBAAoB,CAAA;AAClC,cAAc,0BAA0B,CAAA;AACxC,cAAc,mCAAmC,CAAA;AACjD,cAAc,gCAAgC,CAAA;AAC9C,cAAc,0BAA0B,CAAA;AACxC,cAAc,sBAAsB,CAAA;AACpC,cAAc,yBAAyB,CAAA;AAEvC,cAAc,sBAAsB,CAAA;AAEpC,cAAc,8BAA8B,CAAA;AAC5C,cAAc,2BAA2B,CAAA"}
@@ -0,0 +1,13 @@
1
+ export type LogLevel = 'log' | 'debug' | 'info' | 'warn' | 'error';
2
+ export interface Log {
3
+ level: LogLevel;
4
+ args: unknown[];
5
+ at: number;
6
+ }
7
+ export declare namespace Logger {
8
+ interface RunOptions {
9
+ logs: Log[];
10
+ }
11
+ function run<T>(logs: Log[], fn: () => T): T;
12
+ }
13
+ //# sourceMappingURL=Logger.d.ts.map
@@ -0,0 +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"}
@@ -0,0 +1,42 @@
1
+ import { AsyncLocalStorage } from 'node:async_hooks';
2
+ export var Logger;
3
+ (function (Logger) {
4
+ const storage = new AsyncLocalStorage();
5
+ const levels = ['log', 'debug', 'info', 'warn', 'error'];
6
+ const original = {
7
+ log: console.log.bind(console),
8
+ debug: console.debug.bind(console),
9
+ info: console.info.bind(console),
10
+ warn: console.warn.bind(console),
11
+ error: console.error.bind(console),
12
+ };
13
+ let isIntercepted = false;
14
+ function run(logs, fn) {
15
+ interceptConsole();
16
+ const context = {
17
+ invocationIndex: 0,
18
+ logs,
19
+ };
20
+ return storage.run(context, fn);
21
+ }
22
+ Logger.run = run;
23
+ function interceptConsole() {
24
+ if (isIntercepted)
25
+ return;
26
+ isIntercepted = true;
27
+ for (const level of levels) {
28
+ console[level] = (...args) => record(level, args);
29
+ }
30
+ }
31
+ function record(level, args) {
32
+ const context = storage.getStore();
33
+ if (!context)
34
+ return original[level](...args);
35
+ const index = context.invocationIndex++;
36
+ if (index < context.logs.length)
37
+ return;
38
+ context.logs.push({ level, args, at: Date.now() });
39
+ original[level](...args);
40
+ }
41
+ })(Logger || (Logger = {}));
42
+ //# sourceMappingURL=Logger.js.map
@@ -0,0 +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,6 +1,7 @@
1
1
  import type { Serializable } from '../typings/Serializable.js';
2
2
  export declare class WorkflowRef {
3
- protected readonly payload: Serializable;
4
- constructor(payload: Serializable);
3
+ readonly status: 'fulfilled' | 'rejected';
4
+ readonly output: Serializable;
5
+ constructor(status: 'fulfilled' | 'rejected', output: Serializable);
5
6
  }
6
7
  //# sourceMappingURL=WorkflowRef.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"WorkflowRef.d.ts","sourceRoot":"","sources":["../../src/models/WorkflowRef.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAA;AAE9D,qBAAa,WAAW;IACV,SAAS,CAAC,QAAQ,CAAC,OAAO,EAAE,YAAY;gBAArB,OAAO,EAAE,YAAY;CACrD"}
1
+ {"version":3,"file":"WorkflowRef.d.ts","sourceRoot":"","sources":["../../src/models/WorkflowRef.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAA;AAE9D,qBAAa,WAAW;aAEJ,MAAM,EAAE,WAAW,GAAG,UAAU;aAChC,MAAM,EAAE,YAAY;gBADpB,MAAM,EAAE,WAAW,GAAG,UAAU,EAChC,MAAM,EAAE,YAAY;CAEvC"}
@@ -1,7 +1,9 @@
1
1
  export class WorkflowRef {
2
- payload;
3
- constructor(payload) {
4
- this.payload = payload;
2
+ status;
3
+ output;
4
+ constructor(status, output) {
5
+ this.status = status;
6
+ this.output = output;
5
7
  }
6
8
  }
7
9
  //# sourceMappingURL=WorkflowRef.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"WorkflowRef.js","sourceRoot":"","sources":["../../src/models/WorkflowRef.ts"],"names":[],"mappings":"AAEA,MAAM,OAAO,WAAW;IACS;IAA/B,YAA+B,OAAqB;QAArB,YAAO,GAAP,OAAO,CAAc;IAAG,CAAC;CACzD"}
1
+ {"version":3,"file":"WorkflowRef.js","sourceRoot":"","sources":["../../src/models/WorkflowRef.ts"],"names":[],"mappings":"AAEA,MAAM,OAAO,WAAW;IAEJ;IACA;IAFlB,YACkB,MAAgC,EAChC,MAAoB;QADpB,WAAM,GAAN,MAAM,CAA0B;QAChC,WAAM,GAAN,MAAM,CAAc;IACnC,CAAC;CACL"}
@@ -2,6 +2,7 @@ import type { Activity, ActivityConstructor } from '../models/Activity.js';
2
2
  import { type ClaimProvider } from '../models/Claim.js';
3
3
  import { Env } from '../models/Env.js';
4
4
  import { type HistoryItem } from '../models/History.js';
5
+ import { type Log } from '../models/Logger.js';
5
6
  import type { Workflow, WorkflowInput } from '../models/Workflow.js';
6
7
  export declare namespace Internals {
7
8
  interface WorkflowRunContext<TWorkflow extends Workflow<any, any>> {
@@ -9,6 +10,7 @@ export declare namespace Internals {
9
10
  history: readonly HistoryItem[];
10
11
  env: Env.Entries;
11
12
  input: WorkflowInput<TWorkflow>;
13
+ logs: Log[];
12
14
  }
13
15
  function runWorkflow<T extends Workflow<any, any>>(workflow: T, context: WorkflowRunContext<T>): any;
14
16
  interface ActivityRunContext {
@@ -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,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;KAChC;IAED,SAAgB,WAAW,CAAC,CAAC,SAAS,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAC,EACtD,QAAQ,EAAE,CAAC,EACX,OAAO,EAAE,kBAAkB,CAAC,CAAC,CAAC,OAO/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,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,10 +1,11 @@
1
1
  import { Claim } from '../models/Claim.js';
2
2
  import { Env } from '../models/Env.js';
3
3
  import { History } from '../models/History.js';
4
+ import { Logger } from '../models/Logger.js';
4
5
  export var Internals;
5
6
  (function (Internals) {
6
7
  function runWorkflow(workflow, context) {
7
- return Env.run(context.env, () => Claim.run(context.claims, () => History.run(context.history, () => workflow.fn(context.input))));
8
+ return Env.run(context.env, () => Claim.run(context.claims, () => History.run(context.history, () => Logger.run(context.logs, () => workflow.fn(context.input)))));
8
9
  }
9
10
  Internals.runWorkflow = runWorkflow;
10
11
  function runActivity(activityOrActivityConstructor, context, fn) {
@@ -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;AAGhE,MAAM,KAAW,SAAS,CAsCzB;AAtCD,WAAiB,SAAS;IAQxB,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,CAAC,QAAQ,CAAC,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAC/D,CACF,CAAA;IACH,CAAC;IATe,qBAAW,cAS1B,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,EAtCgB,SAAS,KAAT,SAAS,QAsCzB"}
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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@t4h.framework/core",
3
- "version": "0.2.0",
3
+ "version": "0.4.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",