bpmn-elements 9.0.0 → 9.1.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 (36) hide show
  1. package/CHANGELOG.md +6 -0
  2. package/README.md +1 -1
  3. package/dist/EventBroker.js +4 -0
  4. package/dist/Tracker.js +89 -0
  5. package/dist/activity/Activity.js +47 -57
  6. package/dist/activity/ActivityExecution.js +6 -9
  7. package/dist/definition/Definition.js +23 -17
  8. package/dist/definition/DefinitionExecution.js +23 -0
  9. package/dist/eventDefinitions/CancelEventDefinition.js +20 -76
  10. package/dist/eventDefinitions/CompensateEventDefinition.js +54 -41
  11. package/dist/eventDefinitions/ConditionalEventDefinition.js +11 -2
  12. package/dist/eventDefinitions/ErrorEventDefinition.js +2 -0
  13. package/dist/events/BoundaryEvent.js +25 -10
  14. package/dist/flows/Association.js +0 -7
  15. package/dist/gateways/EventBasedGateway.js +1 -2
  16. package/dist/process/Process.js +5 -0
  17. package/dist/process/ProcessExecution.js +128 -36
  18. package/dist/tasks/SubProcess.js +2 -1
  19. package/package.json +4 -4
  20. package/src/EventBroker.js +1 -0
  21. package/src/Tracker.js +73 -0
  22. package/src/activity/Activity.js +45 -51
  23. package/src/activity/ActivityExecution.js +6 -8
  24. package/src/definition/Definition.js +24 -21
  25. package/src/definition/DefinitionExecution.js +26 -0
  26. package/src/eventDefinitions/CancelEventDefinition.js +22 -66
  27. package/src/eventDefinitions/CompensateEventDefinition.js +48 -40
  28. package/src/eventDefinitions/ConditionalEventDefinition.js +12 -2
  29. package/src/eventDefinitions/ErrorEventDefinition.js +2 -0
  30. package/src/events/BoundaryEvent.js +20 -8
  31. package/src/flows/Association.js +0 -10
  32. package/src/gateways/EventBasedGateway.js +1 -2
  33. package/src/process/Process.js +6 -0
  34. package/src/process/ProcessExecution.js +126 -36
  35. package/src/tasks/SubProcess.js +2 -1
  36. package/types/index.d.ts +29 -0
@@ -205,9 +205,10 @@ SubProcessBehaviour.prototype._onExecutionCompleted = function onExecutionComple
205
205
  broker.cancel(message.fields.consumerTag);
206
206
  break;
207
207
  }
208
+ case 'cancel':
208
209
  case 'discard': {
209
210
  broker.cancel(message.fields.consumerTag);
210
- broker.publish('execution', 'execute.discard', cloneContent(content));
211
+ broker.publish('execution', 'execute.' + messageType, cloneContent(content));
211
212
  break;
212
213
  }
213
214
  case 'completed': {
package/types/index.d.ts CHANGED
@@ -126,6 +126,30 @@ declare module 'bpmn-elements' {
126
126
 
127
127
  type filterPostponed = (elementApi: Api<ElementBase>) => boolean;
128
128
 
129
+ /**
130
+ * Activity status
131
+ * Can be used to decide when to save states, Timer and Wait is recommended.
132
+ */
133
+ const enum ActivityStatus {
134
+ /** Idle, not running anything */
135
+ Idle = 'idle',
136
+ /**
137
+ * At least one activity is executing,
138
+ * e.g. a service task making a asynchronous request
139
+ */
140
+ Executing = 'executing',
141
+ /**
142
+ * At least one activity is waiting for a timer to complete,
143
+ * usually only TimerEventDefinition's
144
+ */
145
+ Timer = 'timer',
146
+ /**
147
+ * At least one activity is waiting for a signal of some sort,
148
+ * e.g. user tasks, intermediate catch events, etc
149
+ */
150
+ Wait = 'wait',
151
+ }
152
+
129
153
  interface DefinitionExecution {
130
154
  get id(): string;
131
155
  get type(): string;
@@ -139,6 +163,8 @@ declare module 'bpmn-elements' {
139
163
  get processes(): Process[];
140
164
  get postponedCount(): number;
141
165
  get isRunning(): boolean;
166
+ get isRunning(): boolean;
167
+ get activityStatus(): ActivityStatus;
142
168
  execute(executeMessage: ElementBrokerMessage): void;
143
169
  getProcesses(): Process[];
144
170
  getProcessById(processId: string): Process;
@@ -267,6 +293,7 @@ declare module 'bpmn-elements' {
267
293
  get isRunning(): boolean;
268
294
  get status(): string;
269
295
  get stopped(): boolean;
296
+ get activityStatus(): ActivityStatus;
270
297
  run(): Definition;
271
298
  run(runContent: Record<string, any>): Definition;
272
299
  run(runContent: Record<string, any>, callback: runCallback): Definition;
@@ -296,6 +323,7 @@ declare module 'bpmn-elements' {
296
323
  get executionId(): string;
297
324
  get execution(): ProcessExecution;
298
325
  get status(): string;
326
+ get activityStatus(): ActivityStatus;
299
327
  init(useAsExecutionId?: string): void;
300
328
  run(runContent?: Record<string, any>): void;
301
329
  shake(startId?: string): void;
@@ -320,6 +348,7 @@ declare module 'bpmn-elements' {
320
348
  get status(): string;
321
349
  get postponedCount(): number;
322
350
  get isRunning(): boolean;
351
+ get activityStatus(): ActivityStatus;
323
352
  execute(executeMessage: ElementBrokerMessage): void;
324
353
  getPostponed(filterFn: filterPostponed): Api<ElementBase>[];
325
354
  getActivities(): Activity[];