@t4h.framework/core 0.8.0 → 0.9.1

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 (79) hide show
  1. package/.ai/skills/framework-core/SKILL.md +3 -4
  2. package/CHANGELOG.md +99 -0
  3. package/LICENSE +21 -0
  4. package/README.md +5 -8
  5. package/dist/activities/StartWorkflowActivity.d.ts +51 -9
  6. package/dist/activities/StartWorkflowActivity.d.ts.map +1 -1
  7. package/dist/activities/StartWorkflowActivity.js +46 -5
  8. package/dist/activities/StartWorkflowActivity.js.map +1 -1
  9. package/dist/core.d.ts +2 -0
  10. package/dist/core.d.ts.map +1 -1
  11. package/dist/core.js +2 -0
  12. package/dist/core.js.map +1 -1
  13. package/dist/models/WorkflowBatchClaim.d.ts +10 -0
  14. package/dist/models/WorkflowBatchClaim.d.ts.map +1 -0
  15. package/dist/models/WorkflowBatchClaim.js +3 -0
  16. package/dist/models/WorkflowBatchClaim.js.map +1 -0
  17. package/dist/models/WorkflowBatchRef.d.ts +6 -0
  18. package/dist/models/WorkflowBatchRef.d.ts.map +1 -0
  19. package/dist/models/WorkflowBatchRef.js +9 -0
  20. package/dist/models/WorkflowBatchRef.js.map +1 -0
  21. package/dist/models/WorkflowRef.d.ts +2 -2
  22. package/dist/models/WorkflowRef.d.ts.map +1 -1
  23. package/dist/models/WorkflowRef.js.map +1 -1
  24. package/dist/testing/TestWorkflowEnvironment.d.ts.map +1 -1
  25. package/dist/testing/TestWorkflowEnvironment.js +3 -1
  26. package/dist/testing/TestWorkflowEnvironment.js.map +1 -1
  27. package/dist/testing/tools/clone.d.ts +2 -0
  28. package/dist/testing/tools/clone.d.ts.map +1 -0
  29. package/dist/testing/tools/clone.js +42 -0
  30. package/dist/testing/tools/clone.js.map +1 -0
  31. package/package.json +1 -1
  32. package/dist/models/ExecutionContext.d.ts +0 -8
  33. package/dist/models/ExecutionContext.d.ts.map +0 -1
  34. package/dist/models/ExecutionContext.js +0 -22
  35. package/dist/models/ExecutionContext.js.map +0 -1
  36. package/dist/testing/ActivityTesting.d.ts +0 -25
  37. package/dist/testing/ActivityTesting.d.ts.map +0 -1
  38. package/dist/testing/ActivityTesting.js +0 -74
  39. package/dist/testing/ActivityTesting.js.map +0 -1
  40. package/dist/testing/NonDeterministicWorkflowError.d.ts +0 -4
  41. package/dist/testing/NonDeterministicWorkflowError.d.ts.map +0 -1
  42. package/dist/testing/NonDeterministicWorkflowError.js +0 -7
  43. package/dist/testing/NonDeterministicWorkflowError.js.map +0 -1
  44. package/dist/testing/StrictGuard.d.ts +0 -4
  45. package/dist/testing/StrictGuard.d.ts.map +0 -1
  46. package/dist/testing/StrictGuard.js +0 -26
  47. package/dist/testing/StrictGuard.js.map +0 -1
  48. package/dist/testing/WorkflowTesting.d.ts +0 -6
  49. package/dist/testing/WorkflowTesting.d.ts.map +0 -1
  50. package/dist/testing/WorkflowTesting.js +0 -7
  51. package/dist/testing/WorkflowTesting.js.map +0 -1
  52. package/dist/testing/create-mock-claim.d.ts +0 -11
  53. package/dist/testing/create-mock-claim.d.ts.map +0 -1
  54. package/dist/testing/create-mock-claim.js +0 -26
  55. package/dist/testing/create-mock-claim.js.map +0 -1
  56. package/dist/testing/create-mock-claims.d.ts +0 -13
  57. package/dist/testing/create-mock-claims.d.ts.map +0 -1
  58. package/dist/testing/create-mock-claims.js +0 -8
  59. package/dist/testing/create-mock-claims.js.map +0 -1
  60. package/dist/testing/create-test-env.d.ts +0 -10
  61. package/dist/testing/create-test-env.d.ts.map +0 -1
  62. package/dist/testing/create-test-env.js +0 -7
  63. package/dist/testing/create-test-env.js.map +0 -1
  64. package/dist/testing/mock-async.d.ts +0 -48
  65. package/dist/testing/mock-async.d.ts.map +0 -1
  66. package/dist/testing/mock-async.js +0 -58
  67. package/dist/testing/mock-async.js.map +0 -1
  68. package/dist/testing/outcomes.d.ts +0 -12
  69. package/dist/testing/outcomes.d.ts.map +0 -1
  70. package/dist/testing/outcomes.js +0 -10
  71. package/dist/testing/outcomes.js.map +0 -1
  72. package/dist/testing/run-workflow.d.ts +0 -32
  73. package/dist/testing/run-workflow.d.ts.map +0 -1
  74. package/dist/testing/run-workflow.js +0 -160
  75. package/dist/testing/run-workflow.js.map +0 -1
  76. package/dist/testing/types.d.ts +0 -19
  77. package/dist/testing/types.d.ts.map +0 -1
  78. package/dist/testing/types.js +0 -2
  79. package/dist/testing/types.js.map +0 -1
@@ -51,12 +51,12 @@ import { Workflow } from '@t4h.framework/core'
51
51
  const bare = new Workflow(async () => ({ ok: true }))
52
52
 
53
53
  const withMeta = new Workflow(
54
- { id: 'cashback/v1', description: 'Process cashback' },
54
+ { id: 'cashback', description: 'Process cashback' },
55
55
  async input => ({ value: input.amount * 0.05 }),
56
56
  )
57
57
 
58
58
  const schema = Type.Object({ userId: Type.String(), amount: Type.Number() })
59
- const validated = new Workflow({ id: 'cashback/v1', schema }, async input => ({
59
+ const validated = new Workflow({ id: 'cashback', schema }, async input => ({
60
60
  value: input.amount * 0.05,
61
61
  }))
62
62
  ```
@@ -92,9 +92,8 @@ import { App, Workflow } from '@t4h.framework/core'
92
92
  const app = new App({
93
93
  id: 'my-automation',
94
94
  description: 'Cashback automation',
95
- workflows: [myWorkflow],
95
+ workflows: [myWorkflow, anotherWorkflow], // throws on duplicate workflow.id
96
96
  })
97
- app.addWorkflow(anotherWorkflow) // throws on duplicate workflow.id
98
97
  ```
99
98
 
100
99
  `toManifest()` includes the registered workflows plus any `EnvDesign` entries.
package/CHANGELOG.md ADDED
@@ -0,0 +1,99 @@
1
+ # @t4h.framework/core
2
+
3
+ ## 0.9.1
4
+
5
+ ### Patch Changes
6
+
7
+ - [#135](https://github.com/tech4humans-brasil/framework/pull/135) [`c238dbe`](https://github.com/tech4humans-brasil/framework/commit/c238dbea4199169c935c714442d9e316abd74e20) Thanks [@gusteycamargo](https://github.com/gusteycamargo)! - Fix start workflow activity
8
+
9
+ ## 0.9.0
10
+
11
+ ### Minor Changes
12
+
13
+ - Adds support to undefined or null output in workflow ref ([#106](https://github.com/tech4humans-brasil/framework/pull/106))
14
+ - Adds startMany on WorkflowClaim ([#108](https://github.com/tech4humans-brasil/framework/pull/108))
15
+
16
+ ### Patch Changes
17
+
18
+ - Support optional input when schema is not provided in workflow ([#104](https://github.com/tech4humans-brasil/framework/pull/104))
19
+ - Forward parallel flag through startWorkflow to the reconciler ([#105](https://github.com/tech4humans-brasil/framework/pull/105))
20
+ - Structured clone in testing suite ([#107](https://github.com/tech4humans-brasil/framework/pull/107))
21
+
22
+ ## 0.8.0
23
+
24
+ ### Patch Changes
25
+
26
+ - Testing utils ([`7856707`](https://github.com/tech4humans-brasil/framework/commit/78567072109b876391d9a74146ea16ef4acbddea))
27
+ - Update ai skills ([`1029361`](https://github.com/tech4humans-brasil/framework/commit/1029361788725eedaabe23e2131007d82da93380))
28
+ - Update skills ([`6d7e7bc`](https://github.com/tech4humans-brasil/framework/commit/6d7e7bca0c780a9c53a0c9e5aa0a865c5af67959))
29
+
30
+ ## 0.7.0
31
+
32
+ ### Minor Changes
33
+
34
+ - Add stable uuidv7 identifiers to activities and history items ([`e3451c8`](https://github.com/tech4humans-brasil/framework/commit/e3451c8ea3572457a8a6568e7fbe0291cc8e9a1f))
35
+
36
+ ## 0.6.1
37
+
38
+ ### Patch Changes
39
+
40
+ - Use history is replaying to supress logs during replay ([`9635e9f`](https://github.com/tech4humans-brasil/framework/commit/9635e9f79d51ec67b119cf1812c06d852f50a344))
41
+ - Propagate timeout at on push wait async activity ([`c5b3f17`](https://github.com/tech4humans-brasil/framework/commit/c5b3f17f778c5b6cc9eb7d4f4c06d69fe4a19c4e))
42
+
43
+ ## 0.6.0
44
+
45
+ ### Patch Changes
46
+
47
+ - Internal dependency updates
48
+
49
+ ## 0.5.0
50
+
51
+ ### Patch Changes
52
+
53
+ - Internal dependency updates
54
+
55
+ ## 0.3.0
56
+
57
+ ### Minor Changes
58
+
59
+ - Adds support to return promise in activity input and output ([`42af924`](https://github.com/tech4humans-brasil/framework/commit/42af92450888949badad4717897c6384e3480ad7))
60
+ - Build app manifest in core package ([`58c8a63`](https://github.com/tech4humans-brasil/framework/commit/58c8a63fd0475c09d67f3283bb18719b89497f13))
61
+ - Adds support to serializable class ([`ed0ddbb`](https://github.com/tech4humans-brasil/framework/commit/ed0ddbb7c07e2d1d8810e3079c9aa6dd10f4479f))
62
+ - Adds start workflow activity ([`e82952c`](https://github.com/tech4humans-brasil/framework/commit/e82952c963759ccc716237bae2f350b823d1eba0))
63
+ - Adds claim exceptions ([`0c1b6fa`](https://github.com/tech4humans-brasil/framework/commit/0c1b6fac5ecdea8a08f5922911bdd24a1223d657))
64
+ - Adds env design ([`37b89bb`](https://github.com/tech4humans-brasil/framework/commit/37b89bb477a85aa8b7a5b55653d5e67020348f63))
65
+ - Adds env in app manifest ([`9647c10`](https://github.com/tech4humans-brasil/framework/commit/9647c1043d1fd6f0d580130b537d39bde9a5981c))
66
+ - Adds async support for serialization ([#10](https://github.com/tech4humans-brasil/framework/pull/10))
67
+ - Introduce async activity advance and bootstrap ([#19](https://github.com/tech4humans-brasil/framework/pull/19))
68
+ - Adds identifier requireds claims ([#20](https://github.com/tech4humans-brasil/framework/pull/20))
69
+ - Adds support for awaitable async activity ([#32](https://github.com/tech4humans-brasil/framework/pull/32))
70
+ - Adds type to history item ([#47](https://github.com/tech4humans-brasil/framework/pull/47))
71
+ - Adds support to authorization ([#51](https://github.com/tech4humans-brasil/framework/pull/51))
72
+ - Adds on timeout in async activity ([#48](https://github.com/tech4humans-brasil/framework/pull/48))
73
+ - Implements start workflow activity ([#64](https://github.com/tech4humans-brasil/framework/pull/64))
74
+ - Implements logger ([#82](https://github.com/tech4humans-brasil/framework/pull/82))
75
+ - Adds testing utilities ([#84](https://github.com/tech4humans-brasil/framework/pull/84))
76
+ - Adds .ai/skills in packages ([#88](https://github.com/tech4humans-brasil/framework/pull/88))
77
+ - Adds skills to create and test workflow ([#90](https://github.com/tech4humans-brasil/framework/pull/90))
78
+
79
+ ### Patch Changes
80
+
81
+ - Adds vitest ([`1fd42f1`](https://github.com/tech4humans-brasil/framework/commit/1fd42f19ebf103ee474503251ec3ebce60d6f1cf))
82
+ - Core package ([`63d23a5`](https://github.com/tech4humans-brasil/framework/commit/63d23a531da5ebe241751c2e52bb1115a89a3737))
83
+ - Remove activity claim context dependency ([`c7c1ac1`](https://github.com/tech4humans-brasil/framework/commit/c7c1ac1fbe4d3eb0d87a7909408c75ebd26b139f))
84
+ - Fix manifest test with env schema ([`a876b6a`](https://github.com/tech4humans-brasil/framework/commit/a876b6a379db1837b511a08353f73f1d1b8dfc3c))
85
+ - Dont user Object.entries for Map instance ([`da47e8c`](https://github.com/tech4humans-brasil/framework/commit/da47e8cecd5b5b90e9620ed982471dff394e6338))
86
+ - Rename activity claim to claim ([`281d700`](https://github.com/tech4humans-brasil/framework/commit/281d7008bd5539ab0b701e755f053d031b332aa8))
87
+ - Rename activity history to history ([`4eaad08`](https://github.com/tech4humans-brasil/framework/commit/4eaad08468815bcdea14c36468c7904655715406))
88
+ - Move run activity and workflow to internal tool ([`e061349`](https://github.com/tech4humans-brasil/framework/commit/e061349de925074f838e82149f7566ddcffc4870))
89
+ - Fix all tests ([`0270832`](https://github.com/tech4humans-brasil/framework/commit/02708320bd39ffef87f6b46c2e57a1ccccb4ceb0))
90
+ - Adds github workflow to run, build, tests and lint ([#18](https://github.com/tech4humans-brasil/framework/pull/18))
91
+ - Adds readme ([`e346f39`](https://github.com/tech4humans-brasil/framework/commit/e346f398ad2a7bdd319b7176e251d3538e72cb2d))
92
+ - Use correct activity output generic argument ([`fbd6e11`](https://github.com/tech4humans-brasil/framework/commit/fbd6e115b72a25125eb0a6f263006a3163fb0f51))
93
+ - Update package metadata and author information across multiple packages ([`2ca73df`](https://github.com/tech4humans-brasil/framework/commit/2ca73df42dc63c86ed44717b50d5402fca45b4e7))
94
+ - Improve repository info ([`1fad92d`](https://github.com/tech4humans-brasil/framework/commit/1fad92d959b804189fd1486d047115995ac81eb0))
95
+ - Check types ([`a975a38`](https://github.com/tech4humans-brasil/framework/commit/a975a38a09b81c35205e55170efbed12b54f683a))
96
+ - Up repo coverage ([`24c057c`](https://github.com/tech4humans-brasil/framework/commit/24c057c470d0829ea9a1e1f71011b6eff408180c))
97
+ - Fix check types and lint errors ([`00ca0df`](https://github.com/tech4humans-brasil/framework/commit/00ca0dfe6c2fddbc4e0dbeefb1556d172c752c55))
98
+ - Update package dependencies across multiple packages ([`8b4fc1d`](https://github.com/tech4humans-brasil/framework/commit/8b4fc1d0e92d6bd880ddf4c8119fb68c49c53760))
99
+ - Rename output async activity pending to payload ([#46](https://github.com/tech4humans-brasil/framework/pull/46))
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2025 Tech for humans
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md CHANGED
@@ -38,7 +38,7 @@ const myWorkflow = new Workflow(async () => {
38
38
 
39
39
  ```javascript
40
40
  const myWorkflow = new Workflow(
41
- { id: 'cashback/v1', description: 'Process cashback' },
41
+ { id: 'cashback', description: 'Process cashback' },
42
42
  async input => {
43
43
  return { value: input.amount * 0.05 }
44
44
  },
@@ -52,7 +52,7 @@ The `schema` field accepts any valid JSON Schema.
52
52
  ```javascript
53
53
  const myWorkflow = new Workflow(
54
54
  {
55
- id: 'cashback/v1',
55
+ id: 'cashback',
56
56
  schema: {
57
57
  type: 'object',
58
58
  properties: {
@@ -79,7 +79,7 @@ const schema = Type.Object({
79
79
  amount: Type.Number(),
80
80
  })
81
81
 
82
- const myWorkflow = new Workflow({ id: 'cashback/v1', schema }, async input => {
82
+ const myWorkflow = new Workflow({ id: 'cashback', schema }, async input => {
83
83
  return { value: input.amount * 0.05 }
84
84
  })
85
85
  ```
@@ -89,7 +89,7 @@ const myWorkflow = new Workflow({ id: 'cashback/v1', schema }, async input => {
89
89
  ```javascript
90
90
  import { Workflow, env } from '@t4h.framework/core'
91
91
 
92
- const myWorkflow = new Workflow({ id: 'notify/v1' }, async () => {
92
+ const myWorkflow = new Workflow({ id: 'notify' }, async () => {
93
93
  console.log(env.API_URL)
94
94
  console.log(env.API_SECRET)
95
95
  })
@@ -103,11 +103,8 @@ import { App, Workflow } from '@t4h.framework/core'
103
103
  const app = new App({
104
104
  id: 'my-automation',
105
105
  description: 'Cashback automation',
106
- workflows: [myWorkflow],
106
+ workflows: [myWorkflow, anotherWorkflow],
107
107
  })
108
-
109
- // or add later
110
- app.addWorkflow(anotherWorkflow)
111
108
  ```
112
109
 
113
110
  ---
@@ -1,36 +1,78 @@
1
1
  import Type from 'typebox';
2
+ import type { Binary } from '../core.js';
2
3
  import { AsyncActivity } from '../models/AsyncActivity.js';
3
4
  import { Claim } from '../models/Claim.js';
4
5
  import type { Workflow, WorkflowInput } from '../models/Workflow.js';
6
+ import { WorkflowBatchRef } from '../models/WorkflowBatchRef.js';
5
7
  import { WorkflowRef } from '../models/WorkflowRef.js';
6
8
  import type { Serializable } from '../typings/Serializable.js';
7
9
  declare const schema: Type.TObject<{
8
10
  status: Type.TEnum<["fulfilled", "rejected"]>;
9
11
  output: Type.TAny;
10
12
  }>;
13
+ export declare const workflowBatchSchema: Type.TObject<{
14
+ batch: Type.TString;
15
+ count: Type.TNumber;
16
+ }>;
17
+ type StartManyWorkflowsResult = Type.Static<typeof workflowBatchSchema>;
11
18
  export declare abstract class WorkflowClaim {
12
- abstract start<TWorkflow extends Workflow<any, any>>(workflow: TWorkflow, input: WorkflowInput<TWorkflow>): Serializable | Promise<Serializable>;
19
+ abstract start<TWorkflow extends Workflow<any, any>>(workflow: TWorkflow | string, input?: WorkflowInput<TWorkflow>, parallel?: boolean): Serializable | Promise<Serializable>;
20
+ abstract startMany<TWorkflow extends Workflow<any, any>>(workflow: TWorkflow | string, inputs: WorkflowInput<TWorkflow>[] | Binary[], parallel?: boolean): Promise<WorkflowBatchRef>;
13
21
  }
14
- export type StartWorkflowActivityInput<TWorkflow extends Workflow<any, any>> = WorkflowInput<TWorkflow> & {
22
+ type StartWorkflowActivityInput = {
23
+ workflow: string;
24
+ input?: Serializable;
15
25
  parallel?: boolean;
16
26
  };
27
+ type StartWorkflowArgs<TWorkflow extends Workflow<any, any>> = WorkflowInput<TWorkflow> extends undefined ? [parallel?: boolean] : [input: Serializable, parallel?: boolean];
17
28
  export declare class StartWorkflowActivity extends AsyncActivity<[
18
29
  workflow: Workflow<any, any>,
19
- input: any
20
- ], Serializable, Serializable, WorkflowRef, StartWorkflowActivityInput<Workflow<any, any>>, typeof schema> {
30
+ inputOrParallel?: Serializable | boolean,
31
+ parallel?: boolean
32
+ ], StartWorkflowActivityInput, Serializable, WorkflowRef, StartWorkflowActivityInput, typeof schema> {
21
33
  readonly claims: Claim<{
22
34
  workflow: typeof WorkflowClaim;
23
35
  }>;
24
- bootstrap(input: StartWorkflowActivityInput<Workflow<any, any>>): Promise<import("../core.js").AsyncActivityResultPending<{
25
- parallel?: boolean;
26
- }, Type.TObject<{
36
+ bootstrap(input: StartWorkflowActivityInput): Promise<import("../core.js").AsyncActivityResultPending<StartWorkflowActivityInput, Type.TObject<{
27
37
  status: Type.TEnum<["fulfilled", "rejected"]>;
28
38
  output: Type.TAny;
29
39
  }>> | import("../core.js").AsyncActivityResultFulfilled<Serializable>>;
30
40
  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>>>;
41
+ toInput(workflow: Workflow<any, any>, inputOrParallel?: Serializable | boolean, maybeParallel?: boolean): StartWorkflowActivityInput;
32
42
  toOutput(payload: Type.Static<typeof schema>): WorkflowRef;
33
43
  }
34
- export declare function startWorkflow<TWorkflow extends Workflow<any, any>>(workflow: TWorkflow, input: StartWorkflowActivityInput<TWorkflow>): Promise<import("../core.js").AsyncActivityAwaitable<StartWorkflowActivity>>;
44
+ export declare function startWorkflow<TWorkflow extends Workflow<any, any>>(workflow: TWorkflow, ...args: StartWorkflowArgs<TWorkflow>): Promise<import("../core.js").AsyncActivityAwaitable<StartWorkflowActivity>>;
45
+ type StartManyWorkflowsActivityInput = {
46
+ workflow: string;
47
+ inputs: Serializable[];
48
+ parallel?: boolean;
49
+ };
50
+ type StartWorkflowManyArgs<TWorkflow extends Workflow<any, any>> = [
51
+ inputs: WorkflowInput<TWorkflow>[],
52
+ parallel?: boolean
53
+ ];
54
+ export declare class StartManyWorkflowsActivity extends AsyncActivity<[
55
+ workflow: Workflow<any, any>,
56
+ inputs: Serializable[],
57
+ parallel?: boolean
58
+ ], StartManyWorkflowsActivityInput, StartManyWorkflowsResult, WorkflowBatchRef, StartManyWorkflowsActivityInput, typeof workflowBatchSchema> {
59
+ readonly claims: Claim<{
60
+ workflow: typeof WorkflowClaim;
61
+ }>;
62
+ bootstrap(input: StartManyWorkflowsActivityInput): Promise<import("../core.js").AsyncActivityResultPending<StartManyWorkflowsActivityInput, Type.TObject<{
63
+ batch: Type.TString;
64
+ count: Type.TNumber;
65
+ }>> | import("../core.js").AsyncActivityResultFulfilled<{
66
+ batch: string;
67
+ count: number;
68
+ } | undefined>>;
69
+ advance(payload: StartManyWorkflowsResult): import("../core.js").AsyncActivityResultFulfilled<{
70
+ batch: string;
71
+ count: number;
72
+ } | undefined>;
73
+ toInput(workflow: Workflow<any, any>, inputs: Serializable[], parallel?: boolean): StartManyWorkflowsActivityInput;
74
+ toOutput(payload: StartManyWorkflowsResult): WorkflowBatchRef;
75
+ }
76
+ export declare function startWorkflowMany<TWorkflow extends Workflow<any, any>>(workflow: TWorkflow, ...args: StartWorkflowManyArgs<TWorkflow>): Promise<import("../core.js").AsyncActivityAwaitable<StartManyWorkflowsActivity>>;
35
77
  export {};
36
78
  //# sourceMappingURL=StartWorkflowActivity.d.ts.map
@@ -1 +1 @@
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
+ {"version":3,"file":"StartWorkflowActivity.d.ts","sourceRoot":"","sources":["../../src/activities/StartWorkflowActivity.ts"],"names":[],"mappings":"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"}
@@ -2,11 +2,16 @@ import Type from 'typebox';
2
2
  import { AsyncActivity } from '../models/AsyncActivity.js';
3
3
  import { Claim } from '../models/Claim.js';
4
4
  import { History } from '../models/History.js';
5
+ import { WorkflowBatchRef } from '../models/WorkflowBatchRef.js';
5
6
  import { WorkflowRef } from '../models/WorkflowRef.js';
6
7
  const schema = Type.Object({
7
8
  status: Type.Enum(['fulfilled', 'rejected']),
8
9
  output: Type.Any(),
9
10
  });
11
+ export const workflowBatchSchema = Type.Object({
12
+ batch: Type.String(),
13
+ count: Type.Number(),
14
+ });
10
15
  export class WorkflowClaim {
11
16
  }
12
17
  export class StartWorkflowActivity extends AsyncActivity {
@@ -14,6 +19,7 @@ export class StartWorkflowActivity extends AsyncActivity {
14
19
  workflow: WorkflowClaim,
15
20
  });
16
21
  async bootstrap(input) {
22
+ await this.claims.workflow.start(input.workflow, input.input, input.parallel);
17
23
  if (input.parallel)
18
24
  return this.done({ status: 'fulfilled', output: null });
19
25
  return this.pending({
@@ -25,15 +31,50 @@ export class StartWorkflowActivity extends AsyncActivity {
25
31
  return this.done(payload);
26
32
  return this.rejected(payload);
27
33
  }
28
- async toInput(workflow, input) {
29
- await this.claims.workflow.start(workflow, input);
30
- return input;
34
+ toInput(workflow, inputOrParallel, maybeParallel) {
35
+ if (!workflow.id)
36
+ throw new TypeError('Could not start workflow without an id');
37
+ const hasSchema = workflow.schema !== null;
38
+ const input = hasSchema
39
+ ? inputOrParallel
40
+ : undefined;
41
+ const parallel = hasSchema
42
+ ? maybeParallel
43
+ : inputOrParallel;
44
+ return { workflow: workflow.id, input, parallel };
31
45
  }
32
46
  toOutput(payload) {
33
47
  return new WorkflowRef(payload.status, payload.output);
34
48
  }
35
49
  }
36
- export function startWorkflow(workflow, input) {
37
- return History.reconciler(StartWorkflowActivity, workflow, input);
50
+ export function startWorkflow(workflow, ...args) {
51
+ return History.reconciler(StartWorkflowActivity, workflow, ...args);
52
+ }
53
+ export class StartManyWorkflowsActivity extends AsyncActivity {
54
+ claims = new Claim({
55
+ workflow: WorkflowClaim,
56
+ });
57
+ async bootstrap(input) {
58
+ const batch = await this.claims.workflow.startMany(input.workflow, input.inputs, input.parallel);
59
+ if (batch.count <= 0 || input.parallel)
60
+ return this.done({ batch: batch.id, count: batch.count });
61
+ return this.pending({
62
+ schema: workflowBatchSchema,
63
+ });
64
+ }
65
+ advance(payload) {
66
+ return this.done(payload);
67
+ }
68
+ toInput(workflow, inputs, parallel) {
69
+ if (!workflow.id)
70
+ throw new TypeError('Could not start workflow without an id');
71
+ return { workflow: workflow.id, inputs, parallel };
72
+ }
73
+ toOutput(payload) {
74
+ return new WorkflowBatchRef(payload.batch, payload.count);
75
+ }
76
+ }
77
+ export function startWorkflowMany(workflow, ...args) {
78
+ return History.reconciler(StartManyWorkflowsActivity, workflow, ...args);
38
79
  }
39
80
  //# sourceMappingURL=StartWorkflowActivity.js.map
@@ -1 +1 @@
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"}
1
+ {"version":3,"file":"StartWorkflowActivity.js","sourceRoot":"","sources":["../../src/activities/StartWorkflowActivity.ts"],"names":[],"mappings":"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"}
package/dist/core.d.ts CHANGED
@@ -18,6 +18,8 @@ export * from './models/PushWaitAsyncActivity.js';
18
18
  export * from './models/SerializableHelper.js';
19
19
  export * from './models/SyncActivity.js';
20
20
  export * from './models/Workflow.js';
21
+ export * from './models/WorkflowBatchClaim.js';
22
+ export * from './models/WorkflowBatchRef.js';
21
23
  export * from './models/WorkflowRef.js';
22
24
  export * from './tools/Internals.js';
23
25
  export * from './typings/PromiseLikeType.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,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"}
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,gCAAgC,CAAA;AAC9C,cAAc,8BAA8B,CAAA;AAC5C,cAAc,yBAAyB,CAAA;AAEvC,cAAc,sBAAsB,CAAA;AAEpC,cAAc,8BAA8B,CAAA;AAC5C,cAAc,2BAA2B,CAAA"}
package/dist/core.js CHANGED
@@ -18,6 +18,8 @@ export * from './models/PushWaitAsyncActivity.js';
18
18
  export * from './models/SerializableHelper.js';
19
19
  export * from './models/SyncActivity.js';
20
20
  export * from './models/Workflow.js';
21
+ export * from './models/WorkflowBatchClaim.js';
22
+ export * from './models/WorkflowBatchRef.js';
21
23
  export * from './models/WorkflowRef.js';
22
24
  export * from './tools/Internals.js';
23
25
  export * from './typings/PromiseLikeType.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,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"}
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,gCAAgC,CAAA;AAC9C,cAAc,8BAA8B,CAAA;AAC5C,cAAc,yBAAyB,CAAA;AAEvC,cAAc,sBAAsB,CAAA;AAEpC,cAAc,8BAA8B,CAAA;AAC5C,cAAc,2BAA2B,CAAA"}
@@ -0,0 +1,10 @@
1
+ import type { Serializable } from '../typings/Serializable.js';
2
+ export type WorkflowBatchOutput = {
3
+ index: number;
4
+ status: 'fulfilled' | 'rejected';
5
+ output: Serializable;
6
+ };
7
+ export declare abstract class WorkflowBatchClaim {
8
+ abstract outputs(batch: string): AsyncIterable<WorkflowBatchOutput>;
9
+ }
10
+ //# sourceMappingURL=WorkflowBatchClaim.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WorkflowBatchClaim.d.ts","sourceRoot":"","sources":["../../src/models/WorkflowBatchClaim.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAA;AAE9D,MAAM,MAAM,mBAAmB,GAAG;IAChC,KAAK,EAAE,MAAM,CAAA;IACb,MAAM,EAAE,WAAW,GAAG,UAAU,CAAA;IAChC,MAAM,EAAE,YAAY,CAAA;CACrB,CAAA;AAED,8BAAsB,kBAAkB;aACtB,OAAO,CAAC,KAAK,EAAE,MAAM,GAAG,aAAa,CAAC,mBAAmB,CAAC;CAC3E"}
@@ -0,0 +1,3 @@
1
+ export class WorkflowBatchClaim {
2
+ }
3
+ //# sourceMappingURL=WorkflowBatchClaim.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WorkflowBatchClaim.js","sourceRoot":"","sources":["../../src/models/WorkflowBatchClaim.ts"],"names":[],"mappings":"AAQA,MAAM,OAAgB,kBAAkB;CAEvC"}
@@ -0,0 +1,6 @@
1
+ export declare class WorkflowBatchRef {
2
+ readonly id: string;
3
+ readonly count: number;
4
+ constructor(id: string, count: number);
5
+ }
6
+ //# sourceMappingURL=WorkflowBatchRef.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WorkflowBatchRef.d.ts","sourceRoot":"","sources":["../../src/models/WorkflowBatchRef.ts"],"names":[],"mappings":"AAAA,qBAAa,gBAAgB;aAET,EAAE,EAAE,MAAM;aACV,KAAK,EAAE,MAAM;gBADb,EAAE,EAAE,MAAM,EACV,KAAK,EAAE,MAAM;CAEhC"}
@@ -0,0 +1,9 @@
1
+ export class WorkflowBatchRef {
2
+ id;
3
+ count;
4
+ constructor(id, count) {
5
+ this.id = id;
6
+ this.count = count;
7
+ }
8
+ }
9
+ //# sourceMappingURL=WorkflowBatchRef.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WorkflowBatchRef.js","sourceRoot":"","sources":["../../src/models/WorkflowBatchRef.ts"],"names":[],"mappings":"AAAA,MAAM,OAAO,gBAAgB;IAET;IACA;IAFlB,YACkB,EAAU,EACV,KAAa;QADb,OAAE,GAAF,EAAE,CAAQ;QACV,UAAK,GAAL,KAAK,CAAQ;IAC5B,CAAC;CACL"}
@@ -1,7 +1,7 @@
1
1
  import type { Serializable } from '../typings/Serializable.js';
2
2
  export declare class WorkflowRef {
3
3
  readonly status: 'fulfilled' | 'rejected';
4
- readonly output: Serializable;
5
- constructor(status: 'fulfilled' | 'rejected', output: Serializable);
4
+ readonly output?: Serializable | null;
5
+ constructor(status: 'fulfilled' | 'rejected', output?: Serializable | null);
6
6
  }
7
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;aAEJ,MAAM,EAAE,WAAW,GAAG,UAAU;aAChC,MAAM,EAAE,YAAY;gBADpB,MAAM,EAAE,WAAW,GAAG,UAAU,EAChC,MAAM,EAAE,YAAY;CAEvC"}
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,CAAC,EAAE,YAAY,GAAG,IAAI;gBAD5B,MAAM,EAAE,WAAW,GAAG,UAAU,EAChC,MAAM,CAAC,EAAE,YAAY,GAAG,IAAI;CAE/C"}
@@ -1 +1 @@
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"}
1
+ {"version":3,"file":"WorkflowRef.js","sourceRoot":"","sources":["../../src/models/WorkflowRef.ts"],"names":[],"mappings":"AAEA,MAAM,OAAO,WAAW;IAEJ;IACA;IAFlB,YACkB,MAAgC,EAChC,MAA4B;QAD5B,WAAM,GAAN,MAAM,CAA0B;QAChC,WAAM,GAAN,MAAM,CAAsB;IAC3C,CAAC;CACL"}
@@ -1 +1 @@
1
- {"version":3,"file":"TestWorkflowEnvironment.d.ts","sourceRoot":"","sources":["../../src/testing/TestWorkflowEnvironment.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AACvD,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAA;AAC3C,OAAO,KAAK,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAA;AAEpE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAA;AAEvE,MAAM,WAAW,8BAA8B;IAC7C,GAAG,CAAC,EAAE,IAAI,GAAG,MAAM,CAAA;IACnB,uBAAuB,CAAC,EAAE,OAAO,CAAA;CAClC;AAED,MAAM,WAAW,qCAAqC;IACpD,MAAM,CAAC,EAAE,SAAS,aAAa,CAAC,GAAG,CAAC,EAAE,CAAA;IACtC,GAAG,CAAC,EAAE,GAAG,CAAC,OAAO,CAAA;IACjB,iBAAiB,CAAC,EAAE,iBAAiB,CAAA;CACtC;AAED,qBAAa,uBAAuB;IAClC,OAAO,CAAC,uBAAuB,CAAgB;IAE/C,OAAO,CAAC,GAAG,CAAY;IAEvB,OAAO;WASO,MAAM,CAClB,OAAO,GAAE,8BAAmC,GAC3C,uBAAuB;IAI1B,SAAgB,KAAK;;sBAGL,MAAM;mBAMT,IAAI,GAAG,MAAM;MAKzB;IAEY,OAAO,CAAC,CAAC,SAAS,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAC,EAC/C,QAAQ,EAAE,CAAC,EACX,KAAK,CAAC,EAAE,aAAa,CAAC,CAAC,CAAC,EACxB,OAAO,GAAE,qCAA0C;YAgCvC,qBAAqB;CAsBpC"}
1
+ {"version":3,"file":"TestWorkflowEnvironment.d.ts","sourceRoot":"","sources":["../../src/testing/TestWorkflowEnvironment.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AACvD,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAA;AAC3C,OAAO,KAAK,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAA;AAEpE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAA;AAEvE,MAAM,WAAW,8BAA8B;IAC7C,GAAG,CAAC,EAAE,IAAI,GAAG,MAAM,CAAA;IACnB,uBAAuB,CAAC,EAAE,OAAO,CAAA;CAClC;AAED,MAAM,WAAW,qCAAqC;IACpD,MAAM,CAAC,EAAE,SAAS,aAAa,CAAC,GAAG,CAAC,EAAE,CAAA;IACtC,GAAG,CAAC,EAAE,GAAG,CAAC,OAAO,CAAA;IACjB,iBAAiB,CAAC,EAAE,iBAAiB,CAAA;CACtC;AAED,qBAAa,uBAAuB;IAClC,OAAO,CAAC,uBAAuB,CAAgB;IAE/C,OAAO,CAAC,GAAG,CAAY;IAEvB,OAAO;WASO,MAAM,CAClB,OAAO,GAAE,8BAAmC,GAC3C,uBAAuB;IAI1B,SAAgB,KAAK;;sBAGL,MAAM;mBAMT,IAAI,GAAG,MAAM;MAKzB;IAEY,OAAO,CAAC,CAAC,SAAS,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAC,EAC/C,QAAQ,EAAE,CAAC,EACX,KAAK,CAAC,EAAE,aAAa,CAAC,CAAC,CAAC,EACxB,OAAO,GAAE,qCAA0C;YAgCvC,qBAAqB;CAwBpC"}
@@ -1,6 +1,7 @@
1
1
  import { isDeepStrictEqual } from 'node:util';
2
2
  import { NonDeterministicWorkflowError } from './exceptions/NonDeterministicWorkflowError.js';
3
3
  import { TestClock } from './TestClock.js';
4
+ import { clone } from './tools/clone.js';
4
5
  import { runWorkflow } from './tools/run-workflow.js';
5
6
  import { Internals } from '../tools/Internals.js';
6
7
  export class TestWorkflowEnvironment {
@@ -47,11 +48,12 @@ export class TestWorkflowEnvironment {
47
48
  return result.output;
48
49
  }
49
50
  async assertWorkflowReplays(workflow, input, output, context) {
51
+ const history = await clone(context.history);
50
52
  const replay = await TestClock.run({ now: this.now }, () => Internals.runWorkflow(workflow, {
51
53
  input,
52
54
  claims: context.claims,
53
55
  env: context.env,
54
- history: structuredClone(context.history),
56
+ history,
55
57
  logs: [],
56
58
  }));
57
59
  if (isDeepStrictEqual(output, replay))
@@ -1 +1 @@
1
- {"version":3,"file":"TestWorkflowEnvironment.js","sourceRoot":"","sources":["../../src/testing/TestWorkflowEnvironment.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"TestWorkflowEnvironment.js","sourceRoot":"","sources":["../../src/testing/TestWorkflowEnvironment.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export declare function clone(value: any, seen?: WeakMap<object, any>): Promise<any>;
2
+ //# sourceMappingURL=clone.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"clone.d.ts","sourceRoot":"","sources":["../../../src/testing/tools/clone.ts"],"names":[],"mappings":"AAQA,wBAAsB,KAAK,CACzB,KAAK,EAAE,GAAG,EACV,IAAI,GAAE,OAAO,CAAC,MAAM,EAAE,GAAG,CAAiB,GACzC,OAAO,CAAC,GAAG,CAAC,CA2Dd"}
@@ -0,0 +1,42 @@
1
+ import { Binary } from '../../models/Binary.js';
2
+ import { SerializableClass, } from '../../models/SerializableHelper.js';
3
+ const cloning = Symbol('cloning');
4
+ export async function clone(value, seen = new WeakMap()) {
5
+ if (value === null || typeof value !== 'object')
6
+ return value;
7
+ if (value instanceof Binary)
8
+ return value;
9
+ if (value instanceof SerializableClass) {
10
+ const cached = seen.get(value);
11
+ if (cached === cloning)
12
+ throw new TypeError('Could not clone a cyclic SerializableClass graph: it is not serializable');
13
+ if (cached)
14
+ return cached;
15
+ seen.set(value, cloning);
16
+ const serializer = inner => clone(inner, seen);
17
+ const serialized = await value.toSerializable(serializer);
18
+ const result = value.constructor.fromSerializable(serialized, serializer);
19
+ seen.set(value, result);
20
+ return result;
21
+ }
22
+ if (value instanceof Date)
23
+ return new Date(value.getTime());
24
+ const cached = seen.get(value);
25
+ if (cached)
26
+ return cached;
27
+ if (Array.isArray(value)) {
28
+ const result = [];
29
+ seen.set(value, result);
30
+ for (const item of value)
31
+ result.push(await clone(item, seen));
32
+ return result;
33
+ }
34
+ if (value.constructor !== Object && typeof value.constructor !== 'undefined')
35
+ throw new TypeError(`Could not clone a history value of type "${value.constructor.name}": it is not Serializable and would not survive replay`);
36
+ const result = {};
37
+ seen.set(value, result);
38
+ for (const [key, val] of Object.entries(value))
39
+ result[key] = await clone(val, seen);
40
+ return result;
41
+ }
42
+ //# sourceMappingURL=clone.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"clone.js","sourceRoot":"","sources":["../../../src/testing/tools/clone.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAA;AAC/C,OAAO,EACL,iBAAiB,GAElB,MAAM,oCAAoC,CAAA;AAE3C,MAAM,OAAO,GAAG,MAAM,CAAC,SAAS,CAAC,CAAA;AAEjC,MAAM,CAAC,KAAK,UAAU,KAAK,CACzB,KAAU,EACV,OAA6B,IAAI,OAAO,EAAE;IAE1C,IAAI,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAA;IAE7D,IAAI,KAAK,YAAY,MAAM;QAAE,OAAO,KAAK,CAAA;IAEzC,IAAI,KAAK,YAAY,iBAAiB,EAAE,CAAC;QACvC,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;QAE9B,IAAI,MAAM,KAAK,OAAO;YACpB,MAAM,IAAI,SAAS,CACjB,0EAA0E,CAC3E,CAAA;QAEH,IAAI,MAAM;YAAE,OAAO,MAAM,CAAA;QAEzB,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,OAAO,CAAC,CAAA;QAExB,MAAM,UAAU,GAAe,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,CAAA;QAC1D,MAAM,UAAU,GAAG,MAAM,KAAK,CAAC,cAAc,CAAC,UAAU,CAAC,CAAA;QAEzD,MAAM,MAAM,GACV,KAAK,CAAC,WAGP,CAAC,gBAAgB,CAAC,UAAU,EAAE,UAAU,CAAC,CAAA;QAE1C,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,MAAM,CAAC,CAAA;QAEvB,OAAO,MAAM,CAAA;IACf,CAAC;IAED,IAAI,KAAK,YAAY,IAAI;QAAE,OAAO,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAA;IAE3D,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;IAE9B,IAAI,MAAM;QAAE,OAAO,MAAM,CAAA;IAEzB,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACzB,MAAM,MAAM,GAAU,EAAE,CAAA;QACxB,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,MAAM,CAAC,CAAA;QAEvB,KAAK,MAAM,IAAI,IAAI,KAAK;YAAE,MAAM,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAA;QAE9D,OAAO,MAAM,CAAA;IACf,CAAC;IAED,IAAI,KAAK,CAAC,WAAW,KAAK,MAAM,IAAI,OAAO,KAAK,CAAC,WAAW,KAAK,WAAW;QAC1E,MAAM,IAAI,SAAS,CACjB,4CAA4C,KAAK,CAAC,WAAW,CAAC,IAAI,wDAAwD,CAC3H,CAAA;IAEH,MAAM,MAAM,GAAwB,EAAE,CAAA;IAEtC,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,MAAM,CAAC,CAAA;IAEvB,KAAK,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC;QAC5C,MAAM,CAAC,GAAG,CAAC,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE,IAAI,CAAC,CAAA;IAEtC,OAAO,MAAM,CAAA;AACf,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@t4h.framework/core",
3
- "version": "0.8.0",
3
+ "version": "0.9.1",
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",