@webda/workflow 0.0.0-stage → 4.0.0-beta.14

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 (48) hide show
  1. package/LICENSE +166 -0
  2. package/README.md +54 -2
  3. package/lib/authoring.d.ts +115 -0
  4. package/lib/authoring.d.ts.map +1 -0
  5. package/lib/authoring.js +107 -0
  6. package/lib/authoring.js.map +1 -0
  7. package/lib/expression.d.ts +21 -0
  8. package/lib/expression.d.ts.map +1 -0
  9. package/lib/expression.js +196 -0
  10. package/lib/expression.js.map +1 -0
  11. package/lib/graph.d.ts +429 -0
  12. package/lib/graph.d.ts.map +1 -0
  13. package/lib/graph.js +72 -0
  14. package/lib/graph.js.map +1 -0
  15. package/lib/hooks.d.ts +38 -0
  16. package/lib/hooks.d.ts.map +1 -0
  17. package/lib/hooks.js +23 -0
  18. package/lib/hooks.js.map +1 -0
  19. package/lib/index.d.ts +11 -0
  20. package/lib/index.d.ts.map +1 -0
  21. package/lib/index.js +15 -0
  22. package/lib/index.js.map +1 -0
  23. package/lib/interpreter.d.ts +69 -0
  24. package/lib/interpreter.d.ts.map +1 -0
  25. package/lib/interpreter.js +332 -0
  26. package/lib/interpreter.js.map +1 -0
  27. package/lib/models/workflow.model.d.ts +71 -0
  28. package/lib/models/workflow.model.d.ts.map +1 -0
  29. package/lib/models/workflow.model.js +70 -0
  30. package/lib/models/workflow.model.js.map +1 -0
  31. package/lib/models/workflowinstance.model.d.ts +132 -0
  32. package/lib/models/workflowinstance.model.d.ts.map +1 -0
  33. package/lib/models/workflowinstance.model.js +168 -0
  34. package/lib/models/workflowinstance.model.js.map +1 -0
  35. package/lib/models/workflowsignal.model.d.ts +51 -0
  36. package/lib/models/workflowsignal.model.d.ts.map +1 -0
  37. package/lib/models/workflowsignal.model.js +53 -0
  38. package/lib/models/workflowsignal.model.js.map +1 -0
  39. package/lib/models/workflowtask.model.d.ts +103 -0
  40. package/lib/models/workflowtask.model.d.ts.map +1 -0
  41. package/lib/models/workflowtask.model.js +104 -0
  42. package/lib/models/workflowtask.model.js.map +1 -0
  43. package/lib/workflow.service.d.ts +685 -0
  44. package/lib/workflow.service.d.ts.map +1 -0
  45. package/lib/workflow.service.js +1951 -0
  46. package/lib/workflow.service.js.map +1 -0
  47. package/package.json +68 -3
  48. package/webda.module.json +2688 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"expression.js","sources":["../src/expression.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAA4B,MAAM,YAAY,CAAC;AAElE,+DAA+D;AAC/D,MAAM,CAAC,MAAM,sBAAsB,GAAG,SAAS,CAAC;AAChD,8DAA8D;AAC9D,MAAM,cAAc,GAAG,IAAI,GAAG,CAAC,CAAC,WAAW,EAAE,aAAa,EAAE,WAAW,CAAC,CAAC,CAAC;AAE1E;;;;;GAKG;AACH,SAAS,MAAM,CAAC,MAAW,EAAE,GAAQ;IACnC,IAAI,MAAM,KAAK,IAAI,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;QAC5C,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,MAAM,IAAI,GAAG,OAAO,GAAG,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IACzD,OAAO,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;AACxE,CAAC;AAED;;;;;;GAMG;AACH,SAAS,MAAM,CAAC,EAAY,EAAE,CAAM,EAAE,CAAM;IAC1C,QAAQ,EAAE,EAAE,CAAC;QACX,KAAK,IAAI;YACP,OAAO,CAAC,IAAI,CAAC,CAAC;QAChB,KAAK,IAAI;YACP,OAAO,CAAC,IAAI,CAAC,CAAC;QAChB,KAAK,KAAK;YACR,OAAO,CAAC,KAAK,CAAC,CAAC;QACjB,KAAK,KAAK;YACR,OAAO,CAAC,KAAK,CAAC,CAAC;QACjB,KAAK,GAAG;YACN,OAAO,CAAC,GAAG,CAAC,CAAC;QACf,KAAK,IAAI;YACP,OAAO,CAAC,IAAI,CAAC,CAAC;QAChB,KAAK,GAAG;YACN,OAAO,CAAC,GAAG,CAAC,CAAC;QACf,KAAK,IAAI;YACP,OAAO,CAAC,IAAI,CAAC,CAAC;QAChB,KAAK,GAAG,EAAE,CAAC;YACT,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,OAAO,CAAC,KAAK,QAAQ,EAAE,CAAC;gBACnD,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;gBACvB,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;gBACxB,IAAI,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,GAAG,sBAAsB,EAAE,CAAC;oBACxD,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC,CAAC;gBAC7D,CAAC;gBACD,OAAO,IAAI,GAAG,KAAK,CAAC;YACtB,CAAC;YACD,OAAO,CAAC,GAAG,CAAC,CAAC;QACf,CAAC;QACD,KAAK,GAAG;YACN,OAAO,CAAC,GAAG,CAAC,CAAC;QACf,KAAK,GAAG;YACN,OAAO,CAAC,GAAG,CAAC,CAAC;QACf,KAAK,GAAG;YACN,OAAO,CAAC,GAAG,CAAC,CAAC;QACf,KAAK,GAAG;YACN,OAAO,CAAC,GAAG,CAAC,CAAC;IACjB,CAAC;IACD,MAAM,IAAI,KAAK,CAAC,+BAA+B,EAAE,EAAE,CAAC,CAAC;AACvD,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,QAAQ,CAAC,IAAU,EAAE,KAA0B;IAC7D,MAAM,CAAC,GAAQ,IAAI,CAAC;IACpB,IAAI,CAAC,KAAK,IAAI,IAAI,OAAO,CAAC,KAAK,QAAQ,EAAE,CAAC;QACxC,MAAM,IAAI,KAAK,CAAC,sBAAsB,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IAC7D,CAAC;IACD,IAAI,KAAK,IAAI,CAAC,EAAE,CAAC;QACf,OAAO,CAAC,CAAC,GAAG,CAAC;IACf,CAAC;IACD,IAAI,KAAK,IAAI,CAAC,EAAE,CAAC;QACf,OAAO,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAChE,CAAC;IACD,IAAI,KAAK,IAAI,CAAC,EAAE,CAAC;QACf,OAAO,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC;IACtE,CAAC;IACD,IAAI,IAAI,IAAI,CAAC,EAAE,CAAC;QACd,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;QAC7B,MAAM,CAAC,GAAG,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QAChC,QAAQ,CAAC,CAAC,EAAc,EAAE,CAAC;YACzB,KAAK,IAAI;gBACP,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACxC,KAAK,IAAI;gBACP,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;YACxC,KAAK,IAAI;gBACP,OAAO,CAAC,IAAI,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;QACvC,CAAC;QACD,OAAO,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC;IACjD,CAAC;IACD,IAAI,KAAK,IAAI,CAAC,EAAE,CAAC;QACf,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IACjC,CAAC;IACD,IAAI,KAAK,IAAI,CAAC,EAAE,CAAC;QACf,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IACjC,CAAC;IACD,IAAI,MAAM,IAAI,CAAC,EAAE,CAAC;QAChB,OAAO,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;IAC9F,CAAC;IACD,IAAI,KAAK,IAAI,CAAC,EAAE,CAAC;QACf,MAAM,GAAG,GAAwB,EAAE,CAAC;QACpC,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,GAA2B,CAAC,EAAE,CAAC;YACzE,IAAI,cAAc,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;gBAC5B,MAAM,IAAI,KAAK,CAAC,wBAAwB,GAAG,EAAE,CAAC,CAAC;YACjD,CAAC;YACD,MAAM,CAAC,cAAc,CAAC,GAAG,EAAE,GAAG,EAAE;gBAC9B,KAAK,EAAE,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC;gBAC7B,UAAU,EAAE,IAAI;gBAChB,YAAY,EAAE,IAAI;gBAClB,QAAQ,EAAE,IAAI;aACf,CAAC,CAAC;QACL,CAAC;QACD,OAAO,GAAG,CAAC;IACb,CAAC;IACD,IAAI,KAAK,IAAI,CAAC,EAAE,CAAC;QACf,OAAQ,CAAC,CAAC,GAAc,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC;IAC9D,CAAC;IACD,IAAI,KAAK,IAAI,CAAC,EAAE,CAAC;QACf,IAAI,GAAG,GAAG,EAAE,CAAC;QACb,KAAK,MAAM,IAAI,IAAI,CAAC,CAAC,GAAwB,EAAE,CAAC;YAC9C,MAAM,KAAK,GAAG,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC;YAC9E,IAAI,GAAG,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,GAAG,sBAAsB,EAAE,CAAC;gBACvD,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC,CAAC;YAC7D,CAAC;YACD,GAAG,IAAI,KAAK,CAAC;QACf,CAAC;QACD,OAAO,GAAG,CAAC;IACb,CAAC;IACD,MAAM,IAAI,KAAK,CAAC,sBAAsB,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;AAC7D,CAAC;AAED;;;;GAIG;AACH,SAAS,QAAQ,CAAC,KAAc;IAC9B,OAAO,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AAC9E,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,YAAY,CAAC,IAAa,EAAE,IAAI,GAAW,GAAG;IAC5D,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;QACpB,OAAO,CAAC,IAAI,CAAC,CAAC;IAChB,CAAC;IACD,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC/B,MAAM,KAAK,GAAG,CAAC,GAAW,EAAE,MAAc,EAAY,EAAE,CACtD,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,KAAK,MAAM;QACrD,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,IAAa,EAAE,CAAS,EAAE,EAAE,CAAC,YAAY,CAAC,IAAI,EAAE,GAAG,IAAI,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC;QAC7F,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IACb,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;QACtE,OAAO,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IAClE,CAAC;IACD,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACtB,OAAO,CAAC,IAAI,CAAC,CAAC;IAChB,CAAC;IACD,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;IAC5B,QAAQ,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;QAChB,KAAK,KAAK;YACR,OAAO,EAAE,CAAC;QACZ,KAAK,KAAK;YACR,OAAO,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QACjD,KAAK,KAAK;YACR,OAAO,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;QACzB,KAAK,KAAK,CAAC;QACX,KAAK,KAAK;YACR,OAAO,YAAY,CAAC,KAAK,EAAE,GAAG,IAAI,IAAI,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QACnD,KAAK,MAAM;YACT,OAAO,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;QAC1B,KAAK,KAAK;YACR,OAAO,QAAQ,CAAC,KAAK,CAAC;gBACpB,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CACvC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,EAAE,GAAG,IAAI,QAAQ,CAAC,EAAE,CAAC,CACnF;gBACH,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QACb,KAAK,KAAK;YACR,OAAO,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,YAAY,CAAC,CAAC,EAAE,GAAG,IAAI,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QACvG,KAAK,KAAK;YACR,OAAO,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;gBACzB,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CACrB,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,EAAE,GAAG,IAAI,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,QAAQ,CAAC,GAAG,CAAC,CACxG;gBACH,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IACf,CAAC;IACD,OAAO,CAAC,IAAI,CAAC,CAAC;AAChB,CAAC"}
package/lib/graph.d.ts ADDED
@@ -0,0 +1,429 @@
1
+ /**
2
+ * Binary operators of a flow expression
3
+ *
4
+ * `&&`, `||` and `??` short-circuit, as in JavaScript.
5
+ */
6
+ export type BinaryOp = "==" | "!=" | "===" | "!==" | "<" | "<=" | ">" | ">=" | "+" | "-" | "*" | "/" | "%" | "&&" | "||" | "??";
7
+ /**
8
+ * Every binary operator, to validate an expression
9
+ */
10
+ export declare const BINARY_OPS: readonly BinaryOp[];
11
+ /**
12
+ * A pure expression of a flow, JSON only: no `eval` ever runs it
13
+ */
14
+ export type Expr = {
15
+ lit: any;
16
+ } | {
17
+ var: string;
18
+ } | {
19
+ get: [Expr, Expr];
20
+ } | {
21
+ op: BinaryOp;
22
+ args: [Expr, Expr];
23
+ } | {
24
+ not: Expr;
25
+ } | {
26
+ neg: Expr;
27
+ } | {
28
+ cond: [Expr, Expr, Expr];
29
+ } | {
30
+ obj: Record<string, Expr>;
31
+ } | {
32
+ arr: Expr[];
33
+ } | {
34
+ tpl: (string | Expr)[];
35
+ };
36
+ /**
37
+ * Options of a task, and defaults of a flow
38
+ */
39
+ export interface TaskOptions {
40
+ /**
41
+ * Retries after the first attempt
42
+ * @default 0
43
+ */
44
+ retries?: number;
45
+ /**
46
+ * Delay growth between attempts
47
+ * @default "exponential"
48
+ */
49
+ backoff?: "fixed" | "exponential";
50
+ /**
51
+ * Delay before the first retry (Duration syntax)
52
+ * @default "1s"
53
+ */
54
+ delay?: string;
55
+ /**
56
+ * Maximum duration of one attempt (Duration syntax)
57
+ */
58
+ timeout?: string;
59
+ /**
60
+ * Run the task as the system instead of the launcher
61
+ */
62
+ useSystem?: boolean;
63
+ }
64
+ /**
65
+ * Run an operation (or a built-in)
66
+ */
67
+ export interface TaskStmt {
68
+ /**
69
+ * Kind
70
+ */
71
+ kind: "task";
72
+ /**
73
+ * Unique identifier
74
+ */
75
+ id: string;
76
+ /**
77
+ * Operation id, or a built-in (`Date.Now`, `Workflow.Sleep`...)
78
+ */
79
+ operation: string;
80
+ /**
81
+ * Input
82
+ */
83
+ input: Expr;
84
+ /**
85
+ * Options
86
+ */
87
+ options?: TaskOptions;
88
+ /**
89
+ * Variable receiving the task result
90
+ */
91
+ assign?: string;
92
+ }
93
+ /**
94
+ * Assign a variable
95
+ */
96
+ export interface AssignStmt {
97
+ /**
98
+ * Kind
99
+ */
100
+ kind: "assign";
101
+ /**
102
+ * Unique identifier
103
+ */
104
+ id: string;
105
+ /**
106
+ * Name
107
+ */
108
+ name: string;
109
+ /**
110
+ * Value
111
+ */
112
+ value: Expr;
113
+ }
114
+ /**
115
+ * Conditional
116
+ */
117
+ export interface IfStmt {
118
+ /**
119
+ * Kind
120
+ */
121
+ kind: "if";
122
+ /**
123
+ * Unique identifier
124
+ */
125
+ id: string;
126
+ /**
127
+ * Cond
128
+ */
129
+ cond: Expr;
130
+ /**
131
+ * Then
132
+ */
133
+ then: Stmt[];
134
+ /**
135
+ * Else
136
+ */
137
+ else?: Stmt[];
138
+ }
139
+ /**
140
+ * Loop over the items of an array
141
+ */
142
+ export interface ForOfStmt {
143
+ /**
144
+ * Kind
145
+ */
146
+ kind: "forOf";
147
+ /**
148
+ * Unique identifier
149
+ */
150
+ id: string;
151
+ /**
152
+ * Item
153
+ */
154
+ item: string;
155
+ /**
156
+ * Items
157
+ */
158
+ items: Expr;
159
+ /**
160
+ * Body
161
+ */
162
+ body: Stmt[];
163
+ }
164
+ /**
165
+ * Loop while a condition holds
166
+ */
167
+ export interface WhileStmt {
168
+ /**
169
+ * Kind
170
+ */
171
+ kind: "while";
172
+ /**
173
+ * Unique identifier
174
+ */
175
+ id: string;
176
+ /**
177
+ * Cond
178
+ */
179
+ cond: Expr;
180
+ /**
181
+ * Body
182
+ */
183
+ body: Stmt[];
184
+ }
185
+ /**
186
+ * Catch the errors of a block
187
+ */
188
+ export interface TryStmt {
189
+ /**
190
+ * Kind
191
+ */
192
+ kind: "try";
193
+ /**
194
+ * Unique identifier
195
+ */
196
+ id: string;
197
+ /**
198
+ * Body
199
+ */
200
+ body: Stmt[];
201
+ /**
202
+ * Variable receiving the {@link FlowError}
203
+ */
204
+ catchVar?: string;
205
+ /**
206
+ * Catch
207
+ */
208
+ catch?: Stmt[];
209
+ /**
210
+ * Finally
211
+ */
212
+ finally?: Stmt[];
213
+ }
214
+ /**
215
+ * Run branches concurrently
216
+ */
217
+ export interface ParallelStmt {
218
+ /**
219
+ * Kind
220
+ */
221
+ kind: "parallel";
222
+ /**
223
+ * Unique identifier
224
+ */
225
+ id: string;
226
+ /**
227
+ * Branches
228
+ */
229
+ branches: Stmt[][];
230
+ /**
231
+ * Variable receiving the array of branch return values
232
+ */
233
+ assign?: string;
234
+ }
235
+ /**
236
+ * Run a body for each item concurrently
237
+ */
238
+ export interface MapStmt {
239
+ /**
240
+ * Kind
241
+ */
242
+ kind: "map";
243
+ /**
244
+ * Unique identifier
245
+ */
246
+ id: string;
247
+ /**
248
+ * Items
249
+ */
250
+ items: Expr;
251
+ /**
252
+ * Item
253
+ */
254
+ item: string;
255
+ /**
256
+ * Body
257
+ */
258
+ body: Stmt[];
259
+ /**
260
+ * Maximum number of items running at once
261
+ */
262
+ concurrency?: number;
263
+ /**
264
+ * Variable receiving the array of item return values
265
+ */
266
+ assign?: string;
267
+ }
268
+ /**
269
+ * End the flow (or the branch) with a value
270
+ */
271
+ export interface ReturnStmt {
272
+ /**
273
+ * Kind
274
+ */
275
+ kind: "return";
276
+ /**
277
+ * Unique identifier
278
+ */
279
+ id: string;
280
+ /**
281
+ * Value
282
+ */
283
+ value?: Expr;
284
+ }
285
+ /**
286
+ * Throw a {@link FlowError} with code `FlowError`
287
+ */
288
+ export interface ThrowStmt {
289
+ /**
290
+ * Kind
291
+ */
292
+ kind: "throw";
293
+ /**
294
+ * Unique identifier
295
+ */
296
+ id: string;
297
+ /**
298
+ * Value
299
+ */
300
+ value: Expr;
301
+ }
302
+ /**
303
+ * A statement of a flow, each one with a structural `id`
304
+ */
305
+ export type Stmt = TaskStmt | AssignStmt | IfStmt | ForOfStmt | WhileStmt | TryStmt | ParallelStmt | MapStmt | ReturnStmt | ThrowStmt;
306
+ /**
307
+ * Kinds of statement
308
+ */
309
+ export type StmtKind = Stmt["kind"];
310
+ /**
311
+ * A flow: its graph, input schema and defaults
312
+ */
313
+ export interface FlowDefinition {
314
+ /**
315
+ * Operation id `<Class>.<Method>`
316
+ */
317
+ id: string;
318
+ /**
319
+ * {@link flowVersion} of the definition
320
+ */
321
+ version: string;
322
+ /**
323
+ * Names of the flow parameters, in order
324
+ */
325
+ params: string[];
326
+ /**
327
+ * JSON schema of the input
328
+ */
329
+ input: object;
330
+ /**
331
+ * JSON schema of the output
332
+ */
333
+ output?: object;
334
+ /**
335
+ * Body
336
+ */
337
+ body: Stmt[];
338
+ /**
339
+ * Default options of every task
340
+ */
341
+ options?: TaskOptions;
342
+ /**
343
+ * Source
344
+ */
345
+ source: "code" | "stored";
346
+ }
347
+ /**
348
+ * A {@link FlowDefinition} as models and configuration hold it
349
+ *
350
+ * The statements are recursive: describing them in a JSON schema makes the schema generator explode, so they are
351
+ * plain JSON there. {@link validateExpr} checks untrusted expressions.
352
+ */
353
+ export interface FlowDefinitionData extends Omit<FlowDefinition, "body" | "version" | "source"> {
354
+ /**
355
+ * The statements ({@link Stmt}[])
356
+ */
357
+ body: any[];
358
+ /**
359
+ * {@link flowVersion} of the definition, computed when missing
360
+ */
361
+ version?: string;
362
+ /**
363
+ * Where the flow comes from
364
+ * @default "code"
365
+ */
366
+ source?: "code" | "stored";
367
+ }
368
+ /**
369
+ * An error, as seen by the flow: plain data
370
+ */
371
+ export interface FlowError {
372
+ /**
373
+ * Code
374
+ */
375
+ code: string;
376
+ /**
377
+ * Message
378
+ */
379
+ message: string;
380
+ /**
381
+ * Operation
382
+ */
383
+ operation: string;
384
+ }
385
+ /**
386
+ * Outcome of a task
387
+ */
388
+ export type JournalEntry = ({
389
+ result: any;
390
+ } | {
391
+ error: FlowError;
392
+ }) & {
393
+ /**
394
+ * When the outcome was journaled (ms)
395
+ */
396
+ at?: number;
397
+ /**
398
+ * Instance revision that journaled it: the order of the outcomes
399
+ */
400
+ seq?: number;
401
+ };
402
+ /**
403
+ * Outcome of each finished task, keyed by task key (`<statement id>@<iteration path>`)
404
+ */
405
+ export type Journal = Record<string, JournalEntry>;
406
+ /**
407
+ * Built-in operations, run by the engine
408
+ */
409
+ export declare const BUILTINS: {
410
+ readonly DateNow: "Date.Now";
411
+ readonly RandomNumber: "Random.Number";
412
+ readonly RandomUuid: "Random.Uuid";
413
+ readonly Sleep: "Workflow.Sleep";
414
+ readonly WaitForEvent: "Wait.ForEvent";
415
+ readonly Start: "Workflow.Start";
416
+ };
417
+ /**
418
+ * Canonical JSON: object keys sorted, undefined values dropped
419
+ * @param value - the value
420
+ * @returns the JSON text
421
+ */
422
+ export declare function canonicalJson(value: any): string;
423
+ /**
424
+ * Version of a flow: hex SHA-256 of the canonical JSON of its params, body and options
425
+ * @param def - the flow definition
426
+ * @returns the version
427
+ */
428
+ export declare function flowVersion(def: Pick<FlowDefinition, "params" | "body" | "options">): string;
429
+ //# sourceMappingURL=graph.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"graph.d.ts","sources":["../src/graph.ts"],"names":[],"mappings":"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"}
package/lib/graph.js ADDED
@@ -0,0 +1,72 @@
1
+ import { createHash } from "node:crypto";
2
+ /**
3
+ * Every binary operator, to validate an expression
4
+ */
5
+ export const BINARY_OPS = [
6
+ "==",
7
+ "!=",
8
+ "===",
9
+ "!==",
10
+ "<",
11
+ "<=",
12
+ ">",
13
+ ">=",
14
+ "+",
15
+ "-",
16
+ "*",
17
+ "/",
18
+ "%",
19
+ "&&",
20
+ "||",
21
+ "??"
22
+ ];
23
+ /**
24
+ * Built-in operations, run by the engine
25
+ */
26
+ export const BUILTINS = {
27
+ DateNow: "Date.Now",
28
+ RandomNumber: "Random.Number",
29
+ RandomUuid: "Random.Uuid",
30
+ Sleep: "Workflow.Sleep",
31
+ WaitForEvent: "Wait.ForEvent",
32
+ Start: "Workflow.Start"
33
+ };
34
+ /**
35
+ * Canonical JSON: object keys sorted, undefined values dropped
36
+ * @param value - the value
37
+ * @returns the JSON text
38
+ */
39
+ export function canonicalJson(value) {
40
+ return JSON.stringify(sortKeys(value));
41
+ }
42
+ /**
43
+ * Copy a value with its object keys sorted
44
+ * @param value - the value
45
+ * @returns the sorted copy
46
+ */
47
+ function sortKeys(value) {
48
+ if (Array.isArray(value)) {
49
+ return value.map(sortKeys);
50
+ }
51
+ if (value && typeof value === "object") {
52
+ const res = {};
53
+ for (const key of Object.keys(value).sort()) {
54
+ if (value[key] !== undefined) {
55
+ res[key] = sortKeys(value[key]);
56
+ }
57
+ }
58
+ return res;
59
+ }
60
+ return value;
61
+ }
62
+ /**
63
+ * Version of a flow: hex SHA-256 of the canonical JSON of its params, body and options
64
+ * @param def - the flow definition
65
+ * @returns the version
66
+ */
67
+ export function flowVersion(def) {
68
+ return createHash("sha256")
69
+ .update(canonicalJson({ params: def.params, body: def.body, options: def.options }))
70
+ .digest("hex");
71
+ }
72
+ //# sourceMappingURL=graph.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"graph.js","sources":["../src/graph.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAUzC;;GAEG;AACH,MAAM,CAAC,MAAM,UAAU,GAAwB;IAC7C,IAAI;IACJ,IAAI;IACJ,KAAK;IACL,KAAK;IACL,GAAG;IACH,IAAI;IACJ,GAAG;IACH,IAAI;IACJ,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,IAAI;IACJ,IAAI;IACJ,IAAI;CACL,CAAC;AAkZF;;GAEG;AACH,MAAM,CAAC,MAAM,QAAQ,GAAG;IACtB,OAAO,EAAE,UAAU;IACnB,YAAY,EAAE,eAAe;IAC7B,UAAU,EAAE,aAAa;IACzB,KAAK,EAAE,gBAAgB;IACvB,YAAY,EAAE,eAAe;IAC7B,KAAK,EAAE,gBAAgB;CACf,CAAC;AAEX;;;;GAIG;AACH,MAAM,UAAU,aAAa,CAAC,KAAU;IACtC,OAAO,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;AACzC,CAAC;AAED;;;;GAIG;AACH,SAAS,QAAQ,CAAC,KAAU;IAC1B,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACzB,OAAO,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IAC7B,CAAC;IACD,IAAI,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QACvC,MAAM,GAAG,GAAwB,EAAE,CAAC;QACpC,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC;YAC5C,IAAI,KAAK,CAAC,GAAG,CAAC,KAAK,SAAS,EAAE,CAAC;gBAC7B,GAAG,CAAC,GAAG,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;YAClC,CAAC;QACH,CAAC;QACD,OAAO,GAAG,CAAC;IACb,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,WAAW,CAAC,GAAwD;IAClF,OAAO,UAAU,CAAC,QAAQ,CAAC;SACxB,MAAM,CAAC,aAAa,CAAC,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,OAAO,EAAE,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;SACnF,MAAM,CAAC,KAAK,CAAC,CAAC;AACnB,CAAC"}
package/lib/hooks.d.ts ADDED
@@ -0,0 +1,38 @@
1
+ /**
2
+ * The controls of the workflow engine, called by the WorkflowInstance actions
3
+ */
4
+ export interface WorkflowControls {
5
+ /**
6
+ * Cancel an instance, its live tasks and its awaited children
7
+ * @param uuid - the instance uuid
8
+ */
9
+ cancelInstance(uuid: string): Promise<void>;
10
+ /**
11
+ * Restart a failed instance from its failed task
12
+ * @param uuid - the instance uuid
13
+ */
14
+ retryInstance(uuid: string): Promise<void>;
15
+ /**
16
+ * Move an instance to another version of its flow
17
+ * @param uuid - the instance uuid
18
+ * @param version - the target version, the latest registered when undefined
19
+ */
20
+ migrateInstance(uuid: string, version?: string): Promise<void>;
21
+ /**
22
+ * Role needed to write a stored workflow
23
+ * @returns the role
24
+ */
25
+ getStoredWorkflowRole(): string;
26
+ }
27
+ /**
28
+ * Set the WorkflowService serving the instance actions (the configured one, at resolve)
29
+ * @param service - the service
30
+ */
31
+ export declare function setWorkflowControls(service: WorkflowControls | undefined): void;
32
+ /**
33
+ * The WorkflowService serving the instance actions
34
+ * @returns the service
35
+ * @throws Error when no WorkflowService is configured
36
+ */
37
+ export declare function useWorkflowControls(): WorkflowControls;
38
+ //# sourceMappingURL=hooks.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hooks.d.ts","sources":["../src/hooks.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B;;;OAGG;IACH,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5C;;;OAGG;IACH,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3C;;;;OAIG;IACH,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC/D;;;OAGG;IACH,qBAAqB,IAAI,MAAM,CAAC;CACjC;AAOD;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,gBAAgB,GAAG,SAAS,GAAG,IAAI,CAE/E;AAED;;;;GAIG;AACH,wBAAgB,mBAAmB,IAAI,gBAAgB,CAKtD"}
package/lib/hooks.js ADDED
@@ -0,0 +1,23 @@
1
+ /**
2
+ * The WorkflowService serving the controls
3
+ */
4
+ let controls;
5
+ /**
6
+ * Set the WorkflowService serving the instance actions (the configured one, at resolve)
7
+ * @param service - the service
8
+ */
9
+ export function setWorkflowControls(service) {
10
+ controls = service;
11
+ }
12
+ /**
13
+ * The WorkflowService serving the instance actions
14
+ * @returns the service
15
+ * @throws Error when no WorkflowService is configured
16
+ */
17
+ export function useWorkflowControls() {
18
+ if (!controls) {
19
+ throw new Error("No WorkflowService is configured");
20
+ }
21
+ return controls;
22
+ }
23
+ //# sourceMappingURL=hooks.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hooks.js","sources":["../src/hooks.ts"],"names":[],"mappings":"AA2BA;;GAEG;AACH,IAAI,QAAsC,CAAC;AAE3C;;;GAGG;AACH,MAAM,UAAU,mBAAmB,CAAC,OAAqC;IACvE,QAAQ,GAAG,OAAO,CAAC;AACrB,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,mBAAmB;IACjC,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAC;IACtD,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC"}
package/lib/index.d.ts ADDED
@@ -0,0 +1,11 @@
1
+ export * from "./graph.js";
2
+ export * from "./expression.js";
3
+ export * from "./interpreter.js";
4
+ export * from "./models/workflowinstance.model.js";
5
+ export * from "./models/workflowtask.model.js";
6
+ export * from "./models/workflowsignal.model.js";
7
+ export { Workflow as StoredWorkflow, type StoredWorkflowCron } from "./models/workflow.model.js";
8
+ export * from "./workflow.service.js";
9
+ export * from "./hooks.js";
10
+ export * from "./authoring.js";
11
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sources":["../src/index.ts"],"names":[],"mappings":"AACA,cAAc,YAAY,CAAC;AAC3B,cAAc,iBAAiB,CAAC;AAChC,cAAc,kBAAkB,CAAC;AACjC,cAAc,oCAAoC,CAAC;AACnD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,kCAAkC,CAAC;AAEjD,OAAO,EAAE,QAAQ,IAAI,cAAc,EAAE,KAAK,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AACjG,cAAc,uBAAuB,CAAC;AACtC,cAAc,YAAY,CAAC;AAC3B,cAAc,gBAAgB,CAAC"}
package/lib/index.js ADDED
@@ -0,0 +1,15 @@
1
+ import { registerWebdaPackage } from "@webda/utils";
2
+ export * from "./graph.js";
3
+ export * from "./expression.js";
4
+ export * from "./interpreter.js";
5
+ export * from "./models/workflowinstance.model.js";
6
+ export * from "./models/workflowtask.model.js";
7
+ export * from "./models/workflowsignal.model.js";
8
+ // The model is exported as StoredWorkflow: `Workflow` is the authoring base class of .flow.ts files
9
+ export { Workflow as StoredWorkflow } from "./models/workflow.model.js";
10
+ export * from "./workflow.service.js";
11
+ export * from "./hooks.js";
12
+ export * from "./authoring.js";
13
+ // Refuse a second copy of the package, see registerWebdaPackage
14
+ registerWebdaPackage("@webda/workflow", import.meta.url);
15
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AACpD,cAAc,YAAY,CAAC;AAC3B,cAAc,iBAAiB,CAAC;AAChC,cAAc,kBAAkB,CAAC;AACjC,cAAc,oCAAoC,CAAC;AACnD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,kCAAkC,CAAC;AACjD,oGAAoG;AACpG,OAAO,EAAE,QAAQ,IAAI,cAAc,EAA2B,MAAM,4BAA4B,CAAC;AACjG,cAAc,uBAAuB,CAAC;AACtC,cAAc,YAAY,CAAC;AAC3B,cAAc,gBAAgB,CAAC;AAE/B,gEAAgE;AAChE,oBAAoB,CAAC,iBAAiB,EAAE,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC"}