@miragon/pulse-engine-core 0.0.0-bootstrap.0 → 0.25.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (150) hide show
  1. package/LICENSE +21 -0
  2. package/dist/activities.d.ts +31 -0
  3. package/dist/activities.d.ts.map +1 -0
  4. package/dist/activities.js +62 -0
  5. package/dist/activities.js.map +1 -0
  6. package/dist/advance-plan.d.ts +21 -0
  7. package/dist/advance-plan.d.ts.map +1 -0
  8. package/dist/advance-plan.js +192 -0
  9. package/dist/advance-plan.js.map +1 -0
  10. package/dist/conditions.d.ts +66 -0
  11. package/dist/conditions.d.ts.map +1 -0
  12. package/dist/conditions.js +119 -0
  13. package/dist/conditions.js.map +1 -0
  14. package/dist/dates.d.ts +59 -0
  15. package/dist/dates.d.ts.map +1 -0
  16. package/dist/dates.js +189 -0
  17. package/dist/dates.js.map +1 -0
  18. package/dist/durations.d.ts +4 -0
  19. package/dist/durations.d.ts.map +1 -0
  20. package/dist/durations.js +10 -0
  21. package/dist/durations.js.map +1 -0
  22. package/dist/engine-status.d.ts +57 -0
  23. package/dist/engine-status.d.ts.map +1 -0
  24. package/dist/engine-status.js +193 -0
  25. package/dist/engine-status.js.map +1 -0
  26. package/dist/errors.d.ts +101 -0
  27. package/dist/errors.d.ts.map +1 -0
  28. package/dist/errors.js +18 -0
  29. package/dist/errors.js.map +1 -0
  30. package/dist/filters.d.ts +53 -0
  31. package/dist/filters.d.ts.map +1 -0
  32. package/dist/filters.js +74 -0
  33. package/dist/filters.js.map +1 -0
  34. package/dist/findings.d.ts +46 -0
  35. package/dist/findings.d.ts.map +1 -0
  36. package/dist/findings.js +105 -0
  37. package/dist/findings.js.map +1 -0
  38. package/dist/incident-recovery.d.ts +35 -0
  39. package/dist/incident-recovery.d.ts.map +1 -0
  40. package/dist/incident-recovery.js +24 -0
  41. package/dist/incident-recovery.js.map +1 -0
  42. package/dist/index.d.ts +36 -0
  43. package/dist/index.d.ts.map +1 -0
  44. package/dist/index.js +33 -0
  45. package/dist/index.js.map +1 -0
  46. package/dist/inspect.d.ts +34 -0
  47. package/dist/inspect.d.ts.map +1 -0
  48. package/dist/inspect.js +247 -0
  49. package/dist/inspect.js.map +1 -0
  50. package/dist/next.d.ts +26 -0
  51. package/dist/next.d.ts.map +1 -0
  52. package/dist/next.js +83 -0
  53. package/dist/next.js.map +1 -0
  54. package/dist/operations.d.ts +9 -0
  55. package/dist/operations.d.ts.map +1 -0
  56. package/dist/operations.js +41 -0
  57. package/dist/operations.js.map +1 -0
  58. package/dist/poll.d.ts +24 -0
  59. package/dist/poll.d.ts.map +1 -0
  60. package/dist/poll.js +29 -0
  61. package/dist/poll.js.map +1 -0
  62. package/dist/port.d.ts +95 -0
  63. package/dist/port.d.ts.map +1 -0
  64. package/dist/port.js +113 -0
  65. package/dist/port.js.map +1 -0
  66. package/dist/records.d.ts +27 -0
  67. package/dist/records.d.ts.map +1 -0
  68. package/dist/records.js +58 -0
  69. package/dist/records.js.map +1 -0
  70. package/dist/requests.d.ts +24 -0
  71. package/dist/requests.d.ts.map +1 -0
  72. package/dist/requests.js +35 -0
  73. package/dist/requests.js.map +1 -0
  74. package/dist/retry-plan.d.ts +62 -0
  75. package/dist/retry-plan.d.ts.map +1 -0
  76. package/dist/retry-plan.js +140 -0
  77. package/dist/retry-plan.js.map +1 -0
  78. package/dist/root-cause.d.ts +17 -0
  79. package/dist/root-cause.d.ts.map +1 -0
  80. package/dist/root-cause.js +35 -0
  81. package/dist/root-cause.js.map +1 -0
  82. package/dist/select.d.ts +16 -0
  83. package/dist/select.d.ts.map +1 -0
  84. package/dist/select.js +133 -0
  85. package/dist/select.js.map +1 -0
  86. package/dist/snapshot.d.ts +12 -0
  87. package/dist/snapshot.d.ts.map +1 -0
  88. package/dist/snapshot.js +134 -0
  89. package/dist/snapshot.js.map +1 -0
  90. package/dist/sorting.d.ts +20 -0
  91. package/dist/sorting.d.ts.map +1 -0
  92. package/dist/sorting.js +17 -0
  93. package/dist/sorting.js.map +1 -0
  94. package/dist/status.d.ts +91 -0
  95. package/dist/status.d.ts.map +1 -0
  96. package/dist/status.js +222 -0
  97. package/dist/status.js.map +1 -0
  98. package/dist/testing/fake-port.d.ts +31 -0
  99. package/dist/testing/fake-port.d.ts.map +1 -0
  100. package/dist/testing/fake-port.js +50 -0
  101. package/dist/testing/fake-port.js.map +1 -0
  102. package/dist/testing/fixture.d.ts +39 -0
  103. package/dist/testing/fixture.d.ts.map +1 -0
  104. package/dist/testing/fixture.js +288 -0
  105. package/dist/testing/fixture.js.map +1 -0
  106. package/dist/testing/index.d.ts +23 -0
  107. package/dist/testing/index.d.ts.map +1 -0
  108. package/dist/testing/index.js +23 -0
  109. package/dist/testing/index.js.map +1 -0
  110. package/dist/testing/inspect-routes.d.ts +12 -0
  111. package/dist/testing/inspect-routes.d.ts.map +1 -0
  112. package/dist/testing/inspect-routes.js +63 -0
  113. package/dist/testing/inspect-routes.js.map +1 -0
  114. package/dist/testing/status.d.ts +18 -0
  115. package/dist/testing/status.d.ts.map +1 -0
  116. package/dist/testing/status.js +12 -0
  117. package/dist/testing/status.js.map +1 -0
  118. package/dist/testing/waits.d.ts +60 -0
  119. package/dist/testing/waits.d.ts.map +1 -0
  120. package/dist/testing/waits.js +53 -0
  121. package/dist/testing/waits.js.map +1 -0
  122. package/dist/timeline.d.ts +9 -0
  123. package/dist/timeline.d.ts.map +1 -0
  124. package/dist/timeline.js +63 -0
  125. package/dist/timeline.js.map +1 -0
  126. package/dist/tree.d.ts +19 -0
  127. package/dist/tree.d.ts.map +1 -0
  128. package/dist/tree.js +61 -0
  129. package/dist/tree.js.map +1 -0
  130. package/dist/types.d.ts +254 -0
  131. package/dist/types.d.ts.map +1 -0
  132. package/dist/types.js +6 -0
  133. package/dist/types.js.map +1 -0
  134. package/dist/util.d.ts +26 -0
  135. package/dist/util.d.ts.map +1 -0
  136. package/dist/util.js +44 -0
  137. package/dist/util.js.map +1 -0
  138. package/dist/variable-writes.d.ts +32 -0
  139. package/dist/variable-writes.d.ts.map +1 -0
  140. package/dist/variable-writes.js +113 -0
  141. package/dist/variable-writes.js.map +1 -0
  142. package/dist/variables.d.ts +28 -0
  143. package/dist/variables.d.ts.map +1 -0
  144. package/dist/variables.js +64 -0
  145. package/dist/variables.js.map +1 -0
  146. package/dist/waits.d.ts +11 -0
  147. package/dist/waits.d.ts.map +1 -0
  148. package/dist/waits.js +253 -0
  149. package/dist/waits.js.map +1 -0
  150. package/package.json +47 -5
@@ -0,0 +1,254 @@
1
+ /**
2
+ * Views of the workflow domain. Keys appear in the documented order, absent values are left out,
3
+ * empty lists are kept. Types only.
4
+ */
5
+ import type { Rec } from "./records.js";
6
+ export type InstanceState = "ACTIVE" | "SUSPENDED" | "COMPLETED" | "EXTERNALLY_TERMINATED" | "INTERNALLY_TERMINATED";
7
+ export interface DefinitionView {
8
+ readonly key: string;
9
+ readonly version?: number;
10
+ readonly name?: string;
11
+ readonly id: string;
12
+ }
13
+ interface WaitBase {
14
+ /** Only when the wait is in a called instance. */
15
+ readonly processInstanceId?: string;
16
+ readonly activityId: string;
17
+ readonly activityName?: string;
18
+ readonly activityType?: string;
19
+ /** The activity a boundary event is attached to. */
20
+ readonly attachedTo?: string;
21
+ readonly since?: string;
22
+ readonly incidentId?: string;
23
+ }
24
+ export type WaitKind = "userTask" | "externalTask" | "timer" | "asyncContinuation" | "message" | "signal" | "conditional" | "other";
25
+ export type WaitState = WaitBase & ({
26
+ readonly kind: "userTask";
27
+ readonly taskId: string;
28
+ readonly name?: string;
29
+ readonly assignee?: string;
30
+ readonly due?: string;
31
+ } | {
32
+ readonly kind: "externalTask";
33
+ readonly externalTaskId: string;
34
+ readonly topic: string;
35
+ readonly workerId?: string;
36
+ readonly lockExpirationTime?: string;
37
+ readonly retries?: number;
38
+ readonly errorMessage?: string;
39
+ } | {
40
+ readonly kind: "timer";
41
+ readonly jobId: string;
42
+ readonly dueDate: string;
43
+ readonly retries: number;
44
+ /** The job (or its job definition) is suspended: the job executor does not run it. */
45
+ readonly suspended?: true;
46
+ } | {
47
+ readonly kind: "asyncContinuation";
48
+ readonly jobId: string;
49
+ readonly retries: number;
50
+ readonly dueDate?: string;
51
+ /** Left out when the wait state has an incident (the incident carries the message). */
52
+ readonly exceptionMessage?: string;
53
+ readonly suspended?: true;
54
+ } | {
55
+ readonly kind: "message" | "signal" | "conditional";
56
+ readonly eventSubscriptionId: string;
57
+ readonly eventName?: string;
58
+ readonly executionId: string;
59
+ } | {
60
+ readonly kind: "other";
61
+ readonly executionId: string;
62
+ });
63
+ export interface IncidentView {
64
+ readonly id: string;
65
+ readonly type: string;
66
+ readonly activityId: string;
67
+ readonly processInstanceId?: string;
68
+ readonly message?: string;
69
+ readonly rootCause?: string;
70
+ readonly jobId?: string;
71
+ readonly externalTaskId?: string;
72
+ readonly since: string;
73
+ readonly annotation?: string;
74
+ readonly stacktrace?: readonly string[];
75
+ }
76
+ export interface ChildView {
77
+ readonly id: string;
78
+ readonly parentId: string;
79
+ readonly key: string;
80
+ readonly version?: number;
81
+ readonly businessKey?: string;
82
+ readonly state: "ACTIVE" | "SUSPENDED";
83
+ }
84
+ export interface TimelineIncident {
85
+ readonly type: string;
86
+ readonly message?: string;
87
+ readonly state: "open" | "resolved" | "deleted";
88
+ }
89
+ export interface TimelineEntry {
90
+ readonly activityId: string;
91
+ readonly activityName?: string;
92
+ readonly activityType: string;
93
+ readonly startTime: string;
94
+ readonly endTime?: string;
95
+ readonly durationMs?: number;
96
+ readonly canceled?: true;
97
+ readonly assignee?: string;
98
+ readonly calledProcessInstanceId?: string;
99
+ readonly incidents?: readonly TimelineIncident[];
100
+ }
101
+ /** How a wait ended successfully: the condition that held. */
102
+ export interface Waited {
103
+ readonly until: string;
104
+ readonly elapsedMs: number;
105
+ readonly polls: number;
106
+ }
107
+ /** `N`: what a next step is, structured data (`NextStep`) or the text a caller renders from it. */
108
+ export interface InstanceView<N = NextStep> {
109
+ readonly id: string;
110
+ readonly businessKey?: string;
111
+ readonly definition: DefinitionView;
112
+ readonly state: InstanceState;
113
+ readonly startTime?: string;
114
+ readonly endTime?: string;
115
+ readonly durationMs?: number;
116
+ readonly deleteReason?: string;
117
+ readonly parentId?: string;
118
+ /** Only when it differs from `id`. */
119
+ readonly rootId?: string;
120
+ readonly waitingAt: readonly WaitState[];
121
+ readonly incidents: readonly IncidentView[];
122
+ readonly propagatedIncidents?: number;
123
+ readonly children: readonly ChildView[];
124
+ readonly variables?: Readonly<Record<string, unknown>>;
125
+ readonly timeline?: readonly TimelineEntry[];
126
+ readonly truncated?: true;
127
+ readonly next: readonly N[];
128
+ readonly waited?: Waited;
129
+ }
130
+ /** An instance that ended without a history record (history level none). */
131
+ export interface EndedInstance {
132
+ readonly id: string;
133
+ readonly state: "ENDED";
134
+ readonly waited?: Waited;
135
+ }
136
+ /** A process instance of the active tree. */
137
+ export interface TreeNode {
138
+ readonly id: string;
139
+ readonly parentId?: string;
140
+ readonly definitionId: string;
141
+ readonly definitionKey?: string;
142
+ readonly businessKey?: string;
143
+ readonly suspended: boolean;
144
+ /** 0 for the selected instance. */
145
+ readonly depth: number;
146
+ }
147
+ /** The root cause of an incident, loaded for at most 10 incidents per run. */
148
+ export interface IncidentCause {
149
+ readonly rootCause?: string;
150
+ readonly stacktrace?: readonly string[];
151
+ }
152
+ /** Everything `inspect` loaded for one instance; `instanceView` turns it into the view. */
153
+ export interface InstanceData {
154
+ readonly id: string;
155
+ /** The ProcessInstanceDto; absent when the instance ended. */
156
+ readonly runtime?: Rec;
157
+ /** The HistoricProcessInstanceDto; absent with history level none. */
158
+ readonly history?: Rec;
159
+ /** The parent instance, when there is no history record. */
160
+ readonly parentId?: string;
161
+ readonly tree: readonly TreeNode[];
162
+ readonly truncated: boolean;
163
+ /** The activity instance tree of every instance of the tree. */
164
+ readonly activityTrees: readonly Rec[];
165
+ readonly incidents: readonly Rec[];
166
+ readonly subscriptions: readonly Rec[];
167
+ readonly tasks: readonly Rec[];
168
+ readonly externalTasks: readonly Rec[];
169
+ readonly jobs: readonly Rec[];
170
+ readonly timerJobIds: ReadonlySet<string>;
171
+ readonly definitions: readonly Rec[];
172
+ readonly jobDefinitions: readonly Rec[];
173
+ /** The variable map of the process scope; absent unless variables were asked for. */
174
+ readonly variables?: Rec;
175
+ /** Historic activity instances in BPMN order; only when the history was asked for. */
176
+ readonly timeline?: readonly Rec[];
177
+ readonly historicIncidents?: readonly Rec[];
178
+ /** Root causes by incident id. */
179
+ readonly causes: ReadonlyMap<string, IncidentCause>;
180
+ /** True when the history was asked for (the next steps then suggest no history). */
181
+ readonly historyRequested: boolean;
182
+ }
183
+ /**
184
+ * A wait state one request moves with its ids alone: no external task (it needs a lock first), no
185
+ * conditional event (it reacts to variables).
186
+ */
187
+ export type ItemWait = Extract<WaitState, {
188
+ readonly kind: "userTask" | "timer" | "asyncContinuation" | "other";
189
+ }> | (Extract<WaitState, {
190
+ readonly kind: "message" | "signal" | "conditional";
191
+ }> & {
192
+ readonly kind: "message" | "signal";
193
+ });
194
+ /**
195
+ * A ready follow-up of an instance view, always by id (never by business key): retry its failed
196
+ * jobs and external tasks, activate a suspended instance, advance it (at one activity), move one
197
+ * item of a multi-instance activity, or inspect an ended instance with its history.
198
+ */
199
+ export type NextStep = {
200
+ readonly action: "retry";
201
+ readonly processInstanceId: string;
202
+ } | {
203
+ readonly action: "activate";
204
+ readonly processInstanceId: string;
205
+ } | {
206
+ readonly action: "advance";
207
+ readonly processInstanceId: string;
208
+ readonly activityId?: string;
209
+ } | ItemStep | {
210
+ readonly action: "inspectHistory";
211
+ readonly processInstanceId: string;
212
+ };
213
+ /** Moves one wait state with the request its ids are enough for. */
214
+ export interface ItemStep {
215
+ readonly action: "move";
216
+ readonly wait: ItemWait;
217
+ }
218
+ /** How a process instance is selected: by id, or by business key and/or definition key. */
219
+ export interface Selection {
220
+ readonly id?: string;
221
+ readonly businessKey?: string;
222
+ readonly processDefinitionKey?: string;
223
+ /** The most recently started instance that matches the filters. */
224
+ readonly latest: boolean;
225
+ }
226
+ /** A process instance that matches a selection. */
227
+ export interface Candidate {
228
+ readonly id: string;
229
+ readonly key?: string;
230
+ readonly version?: number;
231
+ readonly businessKey?: string;
232
+ readonly state: string;
233
+ readonly startTime?: string;
234
+ }
235
+ /** A typed variable value as the engine takes it. */
236
+ export interface TypedValue {
237
+ readonly value: unknown;
238
+ readonly type: string;
239
+ }
240
+ /** What moving a wait state carries; every option applies to some wait kinds only. */
241
+ export interface AdvanceInput {
242
+ readonly activityId?: string;
243
+ readonly variables?: Readonly<Record<string, TypedValue>>;
244
+ readonly localVariables?: Readonly<Record<string, TypedValue>>;
245
+ readonly bpmnError?: string;
246
+ readonly errorMessage?: string;
247
+ readonly fail?: string;
248
+ readonly retries?: number;
249
+ readonly workerId?: string;
250
+ }
251
+ /** An option of `AdvanceInput` other than the activity. */
252
+ export type AdvanceOption = Exclude<keyof AdvanceInput, "activityId">;
253
+ export {};
254
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
package/dist/types.js ADDED
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Views of the workflow domain. Keys appear in the documented order, absent values are left out,
3
+ * empty lists are kept. Types only.
4
+ */
5
+ export {};
6
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;;GAGG"}
package/dist/util.d.ts ADDED
@@ -0,0 +1,26 @@
1
+ /** Small helpers of the workflow domain. Pure. */
2
+ type Defined<T> = {
3
+ [K in keyof T]: Exclude<T[K], undefined>;
4
+ };
5
+ /**
6
+ * Drops properties whose value is undefined. Needed with exactOptionalPropertyTypes, where an
7
+ * optional property must be absent rather than undefined.
8
+ */
9
+ export declare function compact<T extends object>(value: T): Partial<Defined<T>>;
10
+ /** `Omit` for each member of a union, as a rest pattern types it. */
11
+ type Without<T, K extends PropertyKey> = T extends unknown ? Omit<T, K> : never;
12
+ /**
13
+ * A copy of `value` without its property `key`; every other own property stays, an undefined value
14
+ * included. The rest pattern `{ [key]: _, ...rest }` without a binding that is never read.
15
+ */
16
+ export declare function omit<T extends object, K extends keyof T & string>(value: T, key: K): Without<T, K>;
17
+ /** True for plain JSON-like objects (not null, not arrays). */
18
+ export declare function isRecord(value: unknown): value is Record<string, unknown>;
19
+ /**
20
+ * Maps every item with `fn`, at most `limit` calls at a time, and resolves to the results in the
21
+ * order of the items (requests of one round of a workflow run like this). Rejects with the first
22
+ * failure; no item starts after it (calls already running finish on their own).
23
+ */
24
+ export declare function mapLimit<T, R>(items: readonly T[], limit: number, fn: (item: T, index: number) => Promise<R>): Promise<R[]>;
25
+ export {};
26
+ //# sourceMappingURL=util.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"util.d.ts","sourceRoot":"","sources":["../src/util.ts"],"names":[],"mappings":"AAAA,kDAAkD;AAElD,KAAK,OAAO,CAAC,CAAC,IAAI;KAAG,CAAC,IAAI,MAAM,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,SAAS,CAAC;CAAE,CAAA;AAE9D;;;GAGG;AACH,wBAAgB,OAAO,CAAC,CAAC,SAAS,MAAM,EAAE,KAAK,EAAE,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAIvE;AAED,qEAAqE;AACrE,KAAK,OAAO,CAAC,CAAC,EAAE,CAAC,SAAS,WAAW,IAAI,CAAC,SAAS,OAAO,GAAG,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,KAAK,CAAA;AAE/E;;;GAGG;AACH,wBAAgB,IAAI,CAAC,CAAC,SAAS,MAAM,EAAE,CAAC,SAAS,MAAM,CAAC,GAAG,MAAM,EAC/D,KAAK,EAAE,CAAC,EACR,GAAG,EAAE,CAAC,GACL,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,CAEf;AAED,+DAA+D;AAC/D,wBAAgB,QAAQ,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAEzE;AAED;;;;GAIG;AACH,wBAAsB,QAAQ,CAAC,CAAC,EAAE,CAAC,EACjC,KAAK,EAAE,SAAS,CAAC,EAAE,EACnB,KAAK,EAAE,MAAM,EACb,EAAE,EAAE,CAAC,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC,CAAC,CAAC,GACzC,OAAO,CAAC,CAAC,EAAE,CAAC,CAiBd"}
package/dist/util.js ADDED
@@ -0,0 +1,44 @@
1
+ /** Small helpers of the workflow domain. Pure. */
2
+ /**
3
+ * Drops properties whose value is undefined. Needed with exactOptionalPropertyTypes, where an
4
+ * optional property must be absent rather than undefined.
5
+ */
6
+ export function compact(value) {
7
+ return Object.fromEntries(Object.entries(value).filter(([, entry]) => entry !== undefined));
8
+ }
9
+ /**
10
+ * A copy of `value` without its property `key`; every other own property stays, an undefined value
11
+ * included. The rest pattern `{ [key]: _, ...rest }` without a binding that is never read.
12
+ */
13
+ export function omit(value, key) {
14
+ return Object.fromEntries(Object.entries(value).filter(([name]) => name !== key));
15
+ }
16
+ /** True for plain JSON-like objects (not null, not arrays). */
17
+ export function isRecord(value) {
18
+ return typeof value === "object" && value !== null && !Array.isArray(value);
19
+ }
20
+ /**
21
+ * Maps every item with `fn`, at most `limit` calls at a time, and resolves to the results in the
22
+ * order of the items (requests of one round of a workflow run like this). Rejects with the first
23
+ * failure; no item starts after it (calls already running finish on their own).
24
+ */
25
+ export async function mapLimit(items, limit, fn) {
26
+ const results = new Array(items.length);
27
+ let next = 0;
28
+ let failed = false;
29
+ const worker = async () => {
30
+ while (!failed && next < items.length) {
31
+ const index = next++;
32
+ try {
33
+ results[index] = await fn(items[index], index);
34
+ }
35
+ catch (error) {
36
+ failed = true;
37
+ throw error;
38
+ }
39
+ }
40
+ };
41
+ await Promise.all(Array.from({ length: Math.min(limit, items.length) }, worker));
42
+ return results;
43
+ }
44
+ //# sourceMappingURL=util.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"util.js","sourceRoot":"","sources":["../src/util.ts"],"names":[],"mappings":"AAAA,kDAAkD;AAIlD;;;GAGG;AACH,MAAM,UAAU,OAAO,CAAmB,KAAQ;IAChD,OAAO,MAAM,CAAC,WAAW,CACvB,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,KAAK,KAAK,SAAS,CAAC,CAC1C,CAAA;AAC1B,CAAC;AAKD;;;GAGG;AACH,MAAM,UAAU,IAAI,CAClB,KAAQ,EACR,GAAM;IAEN,OAAO,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,IAAI,KAAK,GAAG,CAAC,CAAkB,CAAA;AACpG,CAAC;AAED,+DAA+D;AAC/D,MAAM,UAAU,QAAQ,CAAC,KAAc;IACrC,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;AAC7E,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,QAAQ,CAC5B,KAAmB,EACnB,KAAa,EACb,EAA0C;IAE1C,MAAM,OAAO,GAAG,IAAI,KAAK,CAAI,KAAK,CAAC,MAAM,CAAC,CAAA;IAC1C,IAAI,IAAI,GAAG,CAAC,CAAA;IACZ,IAAI,MAAM,GAAG,KAAK,CAAA;IAClB,MAAM,MAAM,GAAG,KAAK,IAAmB,EAAE;QACvC,OAAO,CAAC,MAAM,IAAI,IAAI,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC;YACtC,MAAM,KAAK,GAAG,IAAI,EAAE,CAAA;YACpB,IAAI,CAAC;gBACH,OAAO,CAAC,KAAK,CAAC,GAAG,MAAM,EAAE,CAAC,KAAK,CAAC,KAAK,CAAM,EAAE,KAAK,CAAC,CAAA;YACrD,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,MAAM,GAAG,IAAI,CAAA;gBACb,MAAM,KAAK,CAAA;YACb,CAAC;QACH,CAAC;IACH,CAAC,CAAA;IACD,MAAM,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC,CAAA;IAChF,OAAO,OAAO,CAAA;AAChB,CAAC"}
@@ -0,0 +1,32 @@
1
+ import type { TypedValue } from "./types.js";
2
+ /**
3
+ * A variable in the engine's wire shape, the REST API's `VariableValueDto` (this package has no
4
+ * dependency, so it states the shape; the SDK's type accepts it as is).
5
+ */
6
+ export interface EngineVariable {
7
+ value?: unknown;
8
+ type?: string | undefined;
9
+ valueInfo?: Record<string, unknown>;
10
+ }
11
+ /** A variable as a tool receives it (value, optional type + valueInfo). */
12
+ export interface EngineVariableInput {
13
+ value?: unknown;
14
+ type?: string | undefined;
15
+ valueInfo?: Record<string, unknown> | undefined;
16
+ }
17
+ /** The serialization format an Object variable gets when none is given. */
18
+ export declare const DEFAULT_OBJECT_FORMAT = "application/json";
19
+ /**
20
+ * One variable in the engine's wire shape (`EngineVariable`, the SDK's `VariableValueDto`). Throws a
21
+ * `RangeError` naming the variable for a value the engine would refuse.
22
+ */
23
+ export declare function toEngineVariable(name: string, input: EngineVariableInput): EngineVariable;
24
+ /** {@link toEngineVariable} over a variables map; `undefined` stays `undefined`. */
25
+ export declare function toEngineVariables(variables: Record<string, EngineVariableInput> | undefined): Record<string, EngineVariable> | undefined;
26
+ /**
27
+ * A variable value given as text, typed by its form: `true`/`false` → Boolean, `null` → Null,
28
+ * integers → Integer (int32) or Long (int64, a BigInt beyond 2^53), plain decimals → Double,
29
+ * everything else (also an integer beyond int64, `01234`, `1e3`) → String.
30
+ */
31
+ export declare function autoTypedValue(raw: string): TypedValue;
32
+ //# sourceMappingURL=variable-writes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"variable-writes.d.ts","sourceRoot":"","sources":["../src/variable-writes.ts"],"names":[],"mappings":"AAgBA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAA;AAE5C;;;GAGG;AACH,MAAM,WAAW,cAAc;IAC7B,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IACzB,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CACpC;AAED,2EAA2E;AAC3E,MAAM,WAAW,mBAAmB;IAClC,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IACzB,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAAA;CAChD;AAED,2EAA2E;AAC3E,eAAO,MAAM,qBAAqB,qBAAqB,CAAA;AA8CvD;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,mBAAmB,GAAG,cAAc,CAQzF;AAED,oFAAoF;AACpF,wBAAgB,iBAAiB,CAC/B,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,mBAAmB,CAAC,GAAG,SAAS,GACzD,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,GAAG,SAAS,CAK5C;AAgBD;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,UAAU,CAOtD"}
@@ -0,0 +1,113 @@
1
+ /**
2
+ * Variable writes. The engine REST layer types a variable value by its
3
+ * `type` and is strict about the wire shape:
4
+ *
5
+ * - `Json`, `Xml` (Spin) and `Object` are SERIALIZABLE types: the value must
6
+ * be the serialized STRING (or null); a JSON object/array is a 400 "Must
7
+ * provide 'null' or String value for value of SerializableValue type".
8
+ * - `Object` additionally needs `valueInfo.objectTypeName` (+ the
9
+ * `serializationDataFormat`), or the engine finds no serializer.
10
+ * - `Date` parses only `yyyy-MM-dd'T'HH:mm:ss.SSS±HHMM` (see `dates.ts`).
11
+ *
12
+ * Every variable a tool writes goes through {@link toEngineVariable}, so a
13
+ * model (or a widget) may send a parsed JSON object, an ISO date or an Object
14
+ * without a format and still produce the one shape the engine accepts.
15
+ */
16
+ import { toEngineDate } from "./dates.js";
17
+ /** The serialization format an Object variable gets when none is given. */
18
+ export const DEFAULT_OBJECT_FORMAT = "application/json";
19
+ /**
20
+ * The engine resolves a type name with its FIRST letter lowercased
21
+ * (`Json` = `json`), so the rules below compare that form.
22
+ */
23
+ function typeKey(type) {
24
+ return type ? type.charAt(0).toLowerCase() + type.slice(1) : "";
25
+ }
26
+ function invalid(name, message) {
27
+ throw new RangeError(`Variable "${name}": ${message}`);
28
+ }
29
+ function serialized(name, input) {
30
+ const { value } = input;
31
+ if (value === null || value === undefined || typeof value === "string")
32
+ return value;
33
+ if (typeKey(input.type) === "xml")
34
+ invalid(name, "an Xml value must be the XML document as a string");
35
+ return JSON.stringify(value);
36
+ }
37
+ function objectValueInfo(name, input) {
38
+ const info = input.valueInfo ?? {};
39
+ if (input.value !== null && input.value !== undefined) {
40
+ const typeName = info.objectTypeName;
41
+ if (typeof typeName !== "string" || typeName.length === 0) {
42
+ invalid(name, 'an Object value needs valueInfo.objectTypeName (the Java type, e.g. "java.util.HashMap")');
43
+ }
44
+ }
45
+ return { serializationDataFormat: DEFAULT_OBJECT_FORMAT, ...info };
46
+ }
47
+ function dateValue(name, value) {
48
+ if (value === null || value === undefined)
49
+ return value;
50
+ if (typeof value !== "string")
51
+ invalid(name, "a Date value must be an ISO 8601 string");
52
+ try {
53
+ return toEngineDate(value);
54
+ }
55
+ catch (error) {
56
+ return invalid(name, error.message);
57
+ }
58
+ }
59
+ /**
60
+ * One variable in the engine's wire shape (`EngineVariable`, the SDK's `VariableValueDto`). Throws a
61
+ * `RangeError` naming the variable for a value the engine would refuse.
62
+ */
63
+ export function toEngineVariable(name, input) {
64
+ const key = typeKey(input.type);
65
+ const out = { value: input.value, type: input.type };
66
+ if (key === "json" || key === "xml" || key === "object")
67
+ out.value = serialized(name, input);
68
+ if (key === "date")
69
+ out.value = dateValue(name, input.value);
70
+ if (key === "object")
71
+ out.valueInfo = objectValueInfo(name, input);
72
+ else if (input.valueInfo)
73
+ out.valueInfo = input.valueInfo;
74
+ return out;
75
+ }
76
+ /** {@link toEngineVariable} over a variables map; `undefined` stays `undefined`. */
77
+ export function toEngineVariables(variables) {
78
+ if (!variables)
79
+ return undefined;
80
+ return Object.fromEntries(Object.entries(variables).map(([name, input]) => [name, toEngineVariable(name, input)]));
81
+ }
82
+ const INT32 = { min: -(2 ** 31), max: 2 ** 31 - 1 };
83
+ const INT64 = { min: -(2n ** 63n), max: 2n ** 63n - 1n };
84
+ const INTEGER = /^-?(0|[1-9]\d*)$/;
85
+ const DECIMAL = /^-?(0|[1-9]\d*)\.\d+$/;
86
+ /** Integers: Integer (int32), else Long (exact, BigInt beyond 2^53), else beyond int64 a String. */
87
+ function autoInteger(raw) {
88
+ const value = BigInt(raw);
89
+ if (value >= INT32.min && value <= INT32.max)
90
+ return { value: Number(value), type: "Integer" };
91
+ if (value < INT64.min || value > INT64.max)
92
+ return undefined;
93
+ const exact = value >= Number.MIN_SAFE_INTEGER && value <= Number.MAX_SAFE_INTEGER;
94
+ return { value: exact ? Number(value) : value, type: "Long" };
95
+ }
96
+ /**
97
+ * A variable value given as text, typed by its form: `true`/`false` → Boolean, `null` → Null,
98
+ * integers → Integer (int32) or Long (int64, a BigInt beyond 2^53), plain decimals → Double,
99
+ * everything else (also an integer beyond int64, `01234`, `1e3`) → String.
100
+ */
101
+ export function autoTypedValue(raw) {
102
+ if (raw === "true" || raw === "false")
103
+ return { value: raw === "true", type: "Boolean" };
104
+ if (raw === "null")
105
+ return { value: null, type: "Null" };
106
+ const integer = INTEGER.test(raw) ? autoInteger(raw) : undefined;
107
+ if (integer !== undefined)
108
+ return integer;
109
+ if (DECIMAL.test(raw))
110
+ return { value: Number(raw), type: "Double" };
111
+ return { value: raw, type: "String" };
112
+ }
113
+ //# sourceMappingURL=variable-writes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"variable-writes.js","sourceRoot":"","sources":["../src/variable-writes.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,28 @@
1
+ /**
2
+ * Variables of the instance view: values fetched with `deserializeValues=false`;
3
+ * scalar types become their plain value, every other type keeps what writing it back needs. Pure.
4
+ */
5
+ import { type Rec } from "./records.js";
6
+ /**
7
+ * The query every variable read sends, runtime AND historic (`/history/variable-instance` takes
8
+ * the same flag). The engine's default `deserializeValues=true` deserializes every Object
9
+ * variable eagerly (one class missing on its classpath fails the WHOLE read with a 500) and
10
+ * renders Json variables as Jackson's view of the Spin node instead of their JSON. With `false`,
11
+ * Object/Json/Xml values come back as their serialized string + `valueInfo`, exactly the shape a
12
+ * variable write takes back.
13
+ */
14
+ export declare const RAW_VARIABLES: {
15
+ readonly deserializeValues: false;
16
+ };
17
+ /**
18
+ * A variable map (`{name: {type, value, valueInfo}}`) with String, Boolean, Integer, Short, Long,
19
+ * Double and Null values flattened (Long stays exact), others as `{type, value, valueInfo?}`;
20
+ * sorted by name.
21
+ */
22
+ export declare function plainVariables(map: unknown): Record<string, unknown>;
23
+ /**
24
+ * The process scope rows of historic variable instances (`activityInstanceId` equal to the
25
+ * instance id) as a variable map.
26
+ */
27
+ export declare function historicVariableMap(rows: readonly Rec[], instanceId: string): Rec;
28
+ //# sourceMappingURL=variables.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"variables.d.ts","sourceRoot":"","sources":["../src/variables.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAE,KAAK,GAAG,EAAgB,MAAM,cAAc,CAAA;AAErD;;;;;;;GAOG;AACH,eAAO,MAAM,aAAa;;CAAwC,CAAA;AA6BlE;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAIpE;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,SAAS,GAAG,EAAE,EAAE,UAAU,EAAE,MAAM,GAAG,GAAG,CAUjF"}
@@ -0,0 +1,64 @@
1
+ /**
2
+ * Variables of the instance view: values fetched with `deserializeValues=false`;
3
+ * scalar types become their plain value, every other type keeps what writing it back needs. Pure.
4
+ */
5
+ import { isRecord } from "./util.js";
6
+ import { records, str } from "./records.js";
7
+ /**
8
+ * The query every variable read sends, runtime AND historic (`/history/variable-instance` takes
9
+ * the same flag). The engine's default `deserializeValues=true` deserializes every Object
10
+ * variable eagerly (one class missing on its classpath fails the WHOLE read with a 500) and
11
+ * renders Json variables as Jackson's view of the Spin node instead of their JSON. With `false`,
12
+ * Object/Json/Xml values come back as their serialized string + `valueInfo`, exactly the shape a
13
+ * variable write takes back.
14
+ */
15
+ export const RAW_VARIABLES = { deserializeValues: false };
16
+ const PLAIN_TYPES = new Set([
17
+ "string",
18
+ "boolean",
19
+ "integer",
20
+ "short",
21
+ "long",
22
+ "double",
23
+ "null",
24
+ ]);
25
+ function isEmpty(value) {
26
+ return (value === undefined || value === null || (isRecord(value) && Object.keys(value).length === 0));
27
+ }
28
+ function plainValue(typed) {
29
+ if (!isRecord(typed))
30
+ return typed;
31
+ const type = typeof typed.type === "string" ? typed.type : "";
32
+ if (PLAIN_TYPES.has(type.toLowerCase()))
33
+ return typed.value ?? null;
34
+ return {
35
+ type,
36
+ value: typed.value ?? null,
37
+ ...(isEmpty(typed.valueInfo) ? {} : { valueInfo: typed.valueInfo }),
38
+ };
39
+ }
40
+ /**
41
+ * A variable map (`{name: {type, value, valueInfo}}`) with String, Boolean, Integer, Short, Long,
42
+ * Double and Null values flattened (Long stays exact), others as `{type, value, valueInfo?}`;
43
+ * sorted by name.
44
+ */
45
+ export function plainVariables(map) {
46
+ if (!isRecord(map))
47
+ return {};
48
+ const names = Object.keys(map).sort((left, right) => (left < right ? -1 : 1));
49
+ return Object.fromEntries(names.map((name) => [name, plainValue(map[name])]));
50
+ }
51
+ /**
52
+ * The process scope rows of historic variable instances (`activityInstanceId` equal to the
53
+ * instance id) as a variable map.
54
+ */
55
+ export function historicVariableMap(rows, instanceId) {
56
+ const scope = records(rows).filter((row) => str(row, "activityInstanceId") === instanceId);
57
+ return Object.fromEntries(scope.flatMap((row) => {
58
+ const name = str(row, "name");
59
+ return name === undefined
60
+ ? []
61
+ : [[name, { type: row.type, value: row.value, valueInfo: row.valueInfo }]];
62
+ }));
63
+ }
64
+ //# sourceMappingURL=variables.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"variables.js","sourceRoot":"","sources":["../src/variables.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAA;AACpC,OAAO,EAAY,OAAO,EAAE,GAAG,EAAE,MAAM,cAAc,CAAA;AAErD;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,EAAE,iBAAiB,EAAE,KAAK,EAAW,CAAA;AAElE,MAAM,WAAW,GAAwB,IAAI,GAAG,CAAC;IAC/C,QAAQ;IACR,SAAS;IACT,SAAS;IACT,OAAO;IACP,MAAM;IACN,QAAQ;IACR,MAAM;CACP,CAAC,CAAA;AAEF,SAAS,OAAO,CAAC,KAAc;IAC7B,OAAO,CACL,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,CAC9F,CAAA;AACH,CAAC;AAED,SAAS,UAAU,CAAC,KAAc;IAChC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAA;IAClC,MAAM,IAAI,GAAG,OAAO,KAAK,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAA;IAC7D,IAAI,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;QAAE,OAAO,KAAK,CAAC,KAAK,IAAI,IAAI,CAAA;IACnE,OAAO;QACL,IAAI;QACJ,KAAK,EAAE,KAAK,CAAC,KAAK,IAAI,IAAI;QAC1B,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE,CAAC;KACpE,CAAA;AACH,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,cAAc,CAAC,GAAY;IACzC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC;QAAE,OAAO,EAAE,CAAA;IAC7B,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;IAC7E,OAAO,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;AAC/E,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,mBAAmB,CAAC,IAAoB,EAAE,UAAkB;IAC1E,MAAM,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,EAAE,oBAAoB,CAAC,KAAK,UAAU,CAAC,CAAA;IAC1F,OAAO,MAAM,CAAC,WAAW,CACvB,KAAK,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;QACpB,MAAM,IAAI,GAAG,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,CAAA;QAC7B,OAAO,IAAI,KAAK,SAAS;YACvB,CAAC,CAAC,EAAE;YACJ,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,KAAK,EAAE,GAAG,CAAC,KAAK,EAAE,SAAS,EAAE,GAAG,CAAC,SAAS,EAAE,CAAC,CAAC,CAAA;IAC9E,CAAC,CAAC,CACH,CAAA;AACH,CAAC"}
@@ -0,0 +1,11 @@
1
+ /**
2
+ * Where an instance tree waits: one wait state per user task, external task, job
3
+ * and message, signal or conditional event subscription, plus the leaf activity instances that
4
+ * wait for something else. Pure and independent of the order of the engine's lists.
5
+ */
6
+ import type { InstanceData, WaitState } from "./types.js";
7
+ /** The id of the wait state's resource: task, external task, job, subscription or execution. */
8
+ export declare function waitId(wait: WaitState): string;
9
+ /** Every wait state of the instance tree, sorted. */
10
+ export declare function waitStates(data: InstanceData): WaitState[];
11
+ //# sourceMappingURL=waits.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"waits.d.ts","sourceRoot":"","sources":["../src/waits.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAKH,OAAO,KAAK,EAAE,YAAY,EAAY,SAAS,EAAE,MAAM,YAAY,CAAA;AAmBnE,gGAAgG;AAChG,wBAAgB,MAAM,CAAC,IAAI,EAAE,SAAS,GAAG,MAAM,CAgB9C;AA2OD,qDAAqD;AACrD,wBAAgB,UAAU,CAAC,IAAI,EAAE,YAAY,GAAG,SAAS,EAAE,CAS1D"}