It has been possible to recover a running engine. The execution was overwritten and all references to timers etc was lost. This stops with this version. Either stop the the execution or wait for it to end if the engine should be re-used. It is highly recommended to initiate a new Engine when recovering from state.
NB! Next major versions will not accept recovering a running engine.
bpmn-elements@17, something about mitigating weird formatting behavioursmqp to peerDependencies since it’s included in bpmn-elementsbpmn-elements@16.2.1bpmn-elements@16.1.0ConditionalEventDefinition behaviour in bpmn-elements@16bpmn-elements@15.0.3extendFn option has been accepted, but never passed to moddle-context-serializer. Now it isextendFn and TypeResolverPerformance tweaks.
bpmn-elements@15smqp@9bpmn-elements@14.1.0, addresses issue #180Stop execution if invalid time duration, cycle, or date is encountered.
TimerEventDefinition timer type value stops execution according to bpmn-elements@14. Old behaviour can be achieved by using bpmn-elements@13bpmn-moddle@9moddle-context-serializer@4.2bpmn-elements@13.2.0ProcessOutputDataObject and make properties id and type readonlybpmn-elementsUpgrade is recommended since nasty evergroving state size is fixed.
bpmn-elements@13Only breaking if multi-instance sub-process executions are inspected after sub-process run is completed. Picture a multi-instance sequential sub-process with a cardinality of 100. One hundred items in a list occupies some memory. That will not stand. Consequently, they are now removed when iteration completes and eventually collected by gc.
bpmn-elements@12bpmn-elementssmqp@8bpmn-elements@11. In most cases it should be safe to update, unless you inspect element states for some reasonnode:stream/promises reasons. Still developing and running tests with node v14 since it works on my machinebpmn-elements@10.1.0bpmn-elements@10.0.0bpmn-elements@9.1.0settings optionbpmn-elements@8.2.2bpmn-elements@8.2.1bpmn-elements@8.2.0smqp@6.1.0moddleContext optionbpmn-elements@8.1.0 with support for bound non-interrupting repeating timeCyclebpmn-elements@8.0.0 with support for bpmn:CallActivity (#97)smqp@6.0.0Logger type in BpmnEngineOptions by @leon19bpmn-elements@6. In most cases it should be safe to update, unless you inspect the broker states for some reasonUpdate package.json to reflect what was stated in v12.0.3.
bpmn-elements@5.2.0 with support for bpmn:Property (#139)smqp@5bpmn-elements@5.1.2smqp@4bpmn-elements@5.1.0 with “support” for bpmn:Group and Category. Kinda bugfix for the engine to be honest.bpmn-elements@5.0.0. Not sure that a major was necessary, but semver is semver. In most cases it should be safe to update, unless you have used parallel loops without collection or cardinality (∞)?bpmn-elements@4.4.2moddle-context-serializer@0.16.1bpmn-elements@4.3.4engine.execution since it is basically the same as when returned on eventsbpmn-elements@4.3.2bpmn-elements@4.3.1 to version with timer trackingsetTimeout and clearTimeout, to inline script contextbpmn-elements@4.1.0bpmn-moddle patchbpmn-elements@4. No apparent breaking change to engine except that gives more power to a custom script handlerAll conditional flows from bpmn-elements@3.
next(err, result) to be called where result decides if it should be taken or discardedcancelActivity function for facilitationType definitions courtesy of @saeedtabrizi.
Untangle issue #105 which resulted in refactoring outbound sequence flow handling.
flow.pre-flight events from sequence flows, not sure that anyone used them, but stillactivity.leave when all outbound flows have been taken/discardedaddSource functionsourceContext to hold pre-serialized contextBump bpmn-elements and bpmn-moddle (which now has a node dist :).
Use bpmn-elements to execute elements.
Behind the scenes the entire definition execution is replaced with bpmn-elements
enter-task_a8dje7 emitsactivity.start, one exception is wait wich is still emitted as waitgetPendingActivities() is renamed to getPostponed()execute callback is called when execution completesSendTask message requires outputParallelGateway emits start on first taken inbound, i.e. discarded inbound are just registeredgetState() returns pending inbound and/or pending outbound, so old states are not supportedEngine now handles definitions instead of processes, hence:
execute(callback) returns executed definition in callback instead of processgetState() returns executing definition instead of processesgetState() and resume(state) does no longer return or need the actual definition source. They work with moddle contexts.Transformer is now called transformer since it is not called with newresume() is now a “static” function on engine, i.e. Engine.resumeDefinition is exposed and can be executed with moddle context and options, see documentationvalidation is exposed and harbours functions for validating moddle context and execute optionscamunda:inputOutput now updates context variables. The previous behavior was to save result to variables.taskInput. That will still happen if no output is defined.