@aranzatech/diagrams-bpmn 0.2.6 → 0.2.8

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.
package/dist/index.d.cts CHANGED
@@ -1,10 +1,10 @@
1
- export { B as BPMN_ELEMENT_CATALOG, a as BPMN_RESIZABLE_ELEMENT_TYPES, g as getBpmnElementSize, b as getElementMeta, i as isBpmnElementResizable } from './catalog-CZsXqhL9.cjs';
1
+ export { B as BPMN_ELEMENT_CATALOG, a as BPMN_RESIZABLE_ELEMENT_TYPES, g as getBpmnElementSize, b as getElementMeta, i as isBpmnElementResizable } from './catalog-CjGdTFxc.cjs';
2
2
  export { acceptsBoundaryEvents, getHandlePolicy, getOrientation, isChoreographyType, isContainerType, isConversationType, isDataType, isEventType, isGatewayType, isTaskType, supportsCollapse, supportsMarkers } from './elements/index.cjs';
3
- export { B as BpmnCategory, a as BpmnDefinitionsSet, b as BpmnEdgeData, c as BpmnEdgeType, d as BpmnElementMeta, e as BpmnElementSize, f as BpmnElementType, g as BpmnErrorDefinition, h as BpmnEscalationDefinition, i as BpmnEventDefinition, j as BpmnEventSemantics, k as BpmnHandlePolicy, l as BpmnMessageDefinition, m as BpmnNodeData, n as BpmnOrientation, o as BpmnProcessVariable, p as BpmnSignalDefinition, q as BpmnTimerDefinition, r as BpmnTimerKind, E as EventTrigger, S as SubProcessVariant, T as TaskMarker } from './types-BPqNeIU-.cjs';
3
+ export { B as BpmnCategory, a as BpmnDefinitionsSet, b as BpmnEdgeData, c as BpmnEdgeType, d as BpmnElementMeta, e as BpmnElementSize, f as BpmnElementType, g as BpmnErrorDefinition, h as BpmnEscalationDefinition, i as BpmnEventDefinition, j as BpmnEventSemantics, k as BpmnHandlePolicy, l as BpmnMessageDefinition, m as BpmnNodeData, n as BpmnOrientation, o as BpmnProcessVariable, p as BpmnSignalDefinition, q as BpmnTimerDefinition, r as BpmnTimerKind, E as EventTrigger, S as SubProcessVariant, T as TaskMarker } from './types-wFn_tJLY.cjs';
4
4
  export { AnnotationNode, BPMN_NODE_TYPES, BoundaryEventNode, CallChoreographyNode, CallConversationNode, ChoreographyTaskNode, ConversationNode, DataInputNode, DataObjectNode, DataObjectReferenceNode, DataOutputNode, DataStoreNode, DataStoreReferenceNode, EndEventNode, GatewayNode, GroupNode, IntermediateCatchEventNode, IntermediateThrowEventNode, LaneNode, PoolNode, StartEventNode, SubChoreographyNode, SubConversationNode, SubProcessNode, TaskNode } from './nodes/index.cjs';
5
5
  export { AssociationEdge, BPMN_EDGE_TYPES, ConversationLinkEdge, DataAssociationEdge, MessageFlowEdge, SequenceFlowEdge } from './edges/index.cjs';
6
6
  export { parseBpmnXml, serializeBpmnXml } from './xml/index.cjs';
7
- export { B as BpmnExportOptions, a as BpmnImportResult, b as BpmnProcessModel, c as BpmnRFEdge, d as BpmnRFNode } from './types-exnfq24-.cjs';
7
+ export { B as BpmnExportOptions, a as BpmnImportResult, b as BpmnProcessModel, c as BpmnRFEdge, d as BpmnRFNode } from './types-BjVERSZn.cjs';
8
8
  export { SimDiagram, SimEdge, SimLogEntry, SimLogType, SimNode, SimStatus, SimToken, SimVariables, SimulationState, createSimulation, fire, getFireable, isCompleted, setVariable, tick } from './simulation/index.cjs';
9
9
  export { BPMN_EDGE_CONNECTION_RULES, BPMN_MODELING_RULES, BPMN_POOL_LANE_LAYOUT, BPMN_ROUTABLE_EDGE_TYPES, BPMN_SELECTION_STYLE, BpmnClipboardState, BpmnConnectionRule, BpmnDiagramDocument, BpmnDiagramSnapshot, BpmnDiagramState, BpmnEventBus, ConnectBpmnOptions, CreateBpmnNodeOptions, FindBpmnContainerAtOptions, GroupAsBpmnSubProcessOptions, MoveBpmnLaneOptions, PasteBpmnOptions, ReorderBpmnLaneOptions, ReparentBpmnNodeAtPositionOptions, ReparentBpmnNodeOptions, ReplaceBpmnNodeOptions, ResizeBpmnNodeByHandleOptions, ResizeBpmnNodeOptions, RouteBpmnEdgeOptions, attachBoundaryEventCommand, bpmnConnectionValidators, canContainBpmnElement, computeBpmnSmartGuides, connectBpmnCommand, copyBpmnElements, createBpmnDiagramDocument, createBpmnEventBus, createBpmnLayoutCache, createBpmnNode, createBpmnNodeCommand, deleteBpmnElementsCommand, deserializeBpmnDiagram, deserializeBpmnDiagramSnapshot, findBpmnContainerAt, getBpmnDragHandleSelector, getBpmnEdgeLabelLayout, getBpmnLaneIndexAtPosition, getBpmnNodeAbsolutePosition, getBpmnNodeCenter, getBpmnNodeSize, getBpmnNodeZIndex, getBpmnPoolLanes, getBpmnTabOrder, groupAsBpmnSubProcessCommand, inferBpmnEdgeType, isBpmnEdgeRoutingEditable, isBpmnProcessNode, layoutBpmnPoolLaneNodes, layoutBpmnPoolLanes, moveBpmnLaneCommand, parseBpmnDiagramDocument, pasteBpmnElementsCommand, persistBpmnHistory, reorderBpmnLane, reorderBpmnLaneAfterDrop, reorderBpmnLaneCommand, reparentBpmnNodeAtPosition, reparentBpmnNodeCommand, replaceBpmnNodeCommand, resizeBpmnNodeByHandleCommand, resizeBpmnNodeCommand, restoreBpmnHistory, routeBpmnEdgeCommand, runBpmnCommand, runBpmnCommands, selectBpmnElementsCommand, serializeBpmnDiagram, toBpmnRelativePosition, validateBpmnConnectionForEdgeType, withBpmnLayoutCache, withBpmnNodeZIndexes } from './modeling/index.cjs';
10
10
  export { BpmnValidationIssue, BpmnValidationOptions, BpmnValidationResult, BpmnValidationSeverity } from './validation/index.cjs';
package/dist/index.d.ts CHANGED
@@ -1,10 +1,10 @@
1
- export { B as BPMN_ELEMENT_CATALOG, a as BPMN_RESIZABLE_ELEMENT_TYPES, g as getBpmnElementSize, b as getElementMeta, i as isBpmnElementResizable } from './catalog-Clz8sN9x.js';
1
+ export { B as BPMN_ELEMENT_CATALOG, a as BPMN_RESIZABLE_ELEMENT_TYPES, g as getBpmnElementSize, b as getElementMeta, i as isBpmnElementResizable } from './catalog-DW0Hknp2.js';
2
2
  export { acceptsBoundaryEvents, getHandlePolicy, getOrientation, isChoreographyType, isContainerType, isConversationType, isDataType, isEventType, isGatewayType, isTaskType, supportsCollapse, supportsMarkers } from './elements/index.js';
3
- export { B as BpmnCategory, a as BpmnDefinitionsSet, b as BpmnEdgeData, c as BpmnEdgeType, d as BpmnElementMeta, e as BpmnElementSize, f as BpmnElementType, g as BpmnErrorDefinition, h as BpmnEscalationDefinition, i as BpmnEventDefinition, j as BpmnEventSemantics, k as BpmnHandlePolicy, l as BpmnMessageDefinition, m as BpmnNodeData, n as BpmnOrientation, o as BpmnProcessVariable, p as BpmnSignalDefinition, q as BpmnTimerDefinition, r as BpmnTimerKind, E as EventTrigger, S as SubProcessVariant, T as TaskMarker } from './types-BPqNeIU-.js';
3
+ export { B as BpmnCategory, a as BpmnDefinitionsSet, b as BpmnEdgeData, c as BpmnEdgeType, d as BpmnElementMeta, e as BpmnElementSize, f as BpmnElementType, g as BpmnErrorDefinition, h as BpmnEscalationDefinition, i as BpmnEventDefinition, j as BpmnEventSemantics, k as BpmnHandlePolicy, l as BpmnMessageDefinition, m as BpmnNodeData, n as BpmnOrientation, o as BpmnProcessVariable, p as BpmnSignalDefinition, q as BpmnTimerDefinition, r as BpmnTimerKind, E as EventTrigger, S as SubProcessVariant, T as TaskMarker } from './types-wFn_tJLY.js';
4
4
  export { AnnotationNode, BPMN_NODE_TYPES, BoundaryEventNode, CallChoreographyNode, CallConversationNode, ChoreographyTaskNode, ConversationNode, DataInputNode, DataObjectNode, DataObjectReferenceNode, DataOutputNode, DataStoreNode, DataStoreReferenceNode, EndEventNode, GatewayNode, GroupNode, IntermediateCatchEventNode, IntermediateThrowEventNode, LaneNode, PoolNode, StartEventNode, SubChoreographyNode, SubConversationNode, SubProcessNode, TaskNode } from './nodes/index.js';
5
5
  export { AssociationEdge, BPMN_EDGE_TYPES, ConversationLinkEdge, DataAssociationEdge, MessageFlowEdge, SequenceFlowEdge } from './edges/index.js';
6
6
  export { parseBpmnXml, serializeBpmnXml } from './xml/index.js';
7
- export { B as BpmnExportOptions, a as BpmnImportResult, b as BpmnProcessModel, c as BpmnRFEdge, d as BpmnRFNode } from './types-D0Flgue2.js';
7
+ export { B as BpmnExportOptions, a as BpmnImportResult, b as BpmnProcessModel, c as BpmnRFEdge, d as BpmnRFNode } from './types-CBgWMl9p.js';
8
8
  export { SimDiagram, SimEdge, SimLogEntry, SimLogType, SimNode, SimStatus, SimToken, SimVariables, SimulationState, createSimulation, fire, getFireable, isCompleted, setVariable, tick } from './simulation/index.js';
9
9
  export { BPMN_EDGE_CONNECTION_RULES, BPMN_MODELING_RULES, BPMN_POOL_LANE_LAYOUT, BPMN_ROUTABLE_EDGE_TYPES, BPMN_SELECTION_STYLE, BpmnClipboardState, BpmnConnectionRule, BpmnDiagramDocument, BpmnDiagramSnapshot, BpmnDiagramState, BpmnEventBus, ConnectBpmnOptions, CreateBpmnNodeOptions, FindBpmnContainerAtOptions, GroupAsBpmnSubProcessOptions, MoveBpmnLaneOptions, PasteBpmnOptions, ReorderBpmnLaneOptions, ReparentBpmnNodeAtPositionOptions, ReparentBpmnNodeOptions, ReplaceBpmnNodeOptions, ResizeBpmnNodeByHandleOptions, ResizeBpmnNodeOptions, RouteBpmnEdgeOptions, attachBoundaryEventCommand, bpmnConnectionValidators, canContainBpmnElement, computeBpmnSmartGuides, connectBpmnCommand, copyBpmnElements, createBpmnDiagramDocument, createBpmnEventBus, createBpmnLayoutCache, createBpmnNode, createBpmnNodeCommand, deleteBpmnElementsCommand, deserializeBpmnDiagram, deserializeBpmnDiagramSnapshot, findBpmnContainerAt, getBpmnDragHandleSelector, getBpmnEdgeLabelLayout, getBpmnLaneIndexAtPosition, getBpmnNodeAbsolutePosition, getBpmnNodeCenter, getBpmnNodeSize, getBpmnNodeZIndex, getBpmnPoolLanes, getBpmnTabOrder, groupAsBpmnSubProcessCommand, inferBpmnEdgeType, isBpmnEdgeRoutingEditable, isBpmnProcessNode, layoutBpmnPoolLaneNodes, layoutBpmnPoolLanes, moveBpmnLaneCommand, parseBpmnDiagramDocument, pasteBpmnElementsCommand, persistBpmnHistory, reorderBpmnLane, reorderBpmnLaneAfterDrop, reorderBpmnLaneCommand, reparentBpmnNodeAtPosition, reparentBpmnNodeCommand, replaceBpmnNodeCommand, resizeBpmnNodeByHandleCommand, resizeBpmnNodeCommand, restoreBpmnHistory, routeBpmnEdgeCommand, runBpmnCommand, runBpmnCommands, selectBpmnElementsCommand, serializeBpmnDiagram, toBpmnRelativePosition, validateBpmnConnectionForEdgeType, withBpmnLayoutCache, withBpmnNodeZIndexes } from './modeling/index.js';
10
10
  export { BpmnValidationIssue, BpmnValidationOptions, BpmnValidationResult, BpmnValidationSeverity } from './validation/index.js';
package/dist/index.js CHANGED
@@ -2,7 +2,7 @@ import './chunk-OZKTOILD.js';
2
2
  export { AnnotationNode, BPMN_NODE_TYPES, BoundaryEventNode, CallChoreographyNode, CallConversationNode, ChoreographyTaskNode, ConversationNode, DataInputNode, DataObjectNode, DataObjectReferenceNode, DataOutputNode, DataStoreNode, DataStoreReferenceNode, EndEventNode, GatewayNode, GroupNode, IntermediateCatchEventNode, IntermediateThrowEventNode, LaneNode, PoolNode, StartEventNode, SubChoreographyNode, SubConversationNode, SubProcessNode, TaskNode } from './chunk-IMW6RG6F.js';
3
3
  export { AssociationEdge, BPMN_EDGE_TYPES, ConversationLinkEdge, DataAssociationEdge, MessageFlowEdge, SequenceFlowEdge } from './chunk-O3NWJ5H7.js';
4
4
  import './chunk-PDTXM32P.js';
5
- export { parseBpmnXml, serializeBpmnXml } from './chunk-L64NM77A.js';
5
+ export { parseBpmnXml, serializeBpmnXml } from './chunk-KW2QVBOB.js';
6
6
  export { createSimulation, fire, getFireable, isCompleted, setVariable, tick } from './chunk-M46UDUN3.js';
7
7
  export { BPMN_EDGE_CONNECTION_RULES, BPMN_MODELING_RULES, BPMN_POOL_LANE_LAYOUT, BPMN_ROUTABLE_EDGE_TYPES, BPMN_SELECTION_STYLE, attachBoundaryEventCommand, bpmnConnectionValidators, canContainBpmnElement, computeBpmnSmartGuides, connectBpmnCommand, copyBpmnElements, createBpmnDiagramDocument, createBpmnEventBus, createBpmnLayoutCache, createBpmnNode, createBpmnNodeCommand, deleteBpmnElementsCommand, deserializeBpmnDiagram, deserializeBpmnDiagramSnapshot, findBpmnContainerAt, getBpmnDragHandleSelector, getBpmnEdgeLabelLayout, getBpmnLaneIndexAtPosition, getBpmnNodeAbsolutePosition, getBpmnNodeCenter, getBpmnNodeSize, getBpmnNodeZIndex, getBpmnPoolLanes, getBpmnTabOrder, groupAsBpmnSubProcessCommand, inferBpmnEdgeType, isBpmnEdgeRoutingEditable, isBpmnProcessNode, layoutBpmnPoolLaneNodes, layoutBpmnPoolLanes, moveBpmnLaneCommand, parseBpmnDiagramDocument, pasteBpmnElementsCommand, persistBpmnHistory, reorderBpmnLane, reorderBpmnLaneAfterDrop, reorderBpmnLaneCommand, reparentBpmnNodeAtPosition, reparentBpmnNodeCommand, replaceBpmnNodeCommand, resizeBpmnNodeByHandleCommand, resizeBpmnNodeCommand, restoreBpmnHistory, routeBpmnEdgeCommand, runBpmnCommand, runBpmnCommands, selectBpmnElementsCommand, serializeBpmnDiagram, toBpmnRelativePosition, validateBpmnConnectionForEdgeType, withBpmnLayoutCache, withBpmnNodeZIndexes } from './chunk-XTUYPA3E.js';
8
8
  export { acceptsBoundaryEvents, getHandlePolicy, getOrientation, isChoreographyType, isContainerType, isConversationType, isDataType, isEventType, isGatewayType, isTaskType, supportsCollapse, supportsMarkers } from './chunk-RLAJNRF2.js';
@@ -1,8 +1,8 @@
1
1
  import { ModelingRules, ClipboardState, DiagramSnapshot, DiagramState, DiagramEventBus, ResizeHandlePosition, DiagramCommand, ConnectionValidator, SmartGuideResult, SelectionState, LayoutCacheOptions, LayoutCache, EdgeLabelOffsetOptions, EdgeLabelLayout, CommandStackState, Viewport, LayoutFn } from '@aranzatech/diagrams-core';
2
2
  import { DiagramDocument, CreateDiagramDocumentOptions } from '@aranzatech/diagrams-core/serialization';
3
- import { c as BpmnEdgeType, b as BpmnEdgeData, f as BpmnElementType, m as BpmnNodeData } from '../types-BPqNeIU-.cjs';
4
- import { d as BpmnRFNode, c as BpmnRFEdge } from '../types-exnfq24-.cjs';
5
- export { g as getBpmnElementSize, i as isBpmnElementResizable } from '../catalog-CZsXqhL9.cjs';
3
+ import { c as BpmnEdgeType, b as BpmnEdgeData, f as BpmnElementType, m as BpmnNodeData } from '../types-wFn_tJLY.cjs';
4
+ import { d as BpmnRFNode, c as BpmnRFEdge } from '../types-BjVERSZn.cjs';
5
+ export { g as getBpmnElementSize, i as isBpmnElementResizable } from '../catalog-CjGdTFxc.cjs';
6
6
  import '@xyflow/react';
7
7
 
8
8
  type BpmnDiagramState = DiagramState<BpmnRFNode, BpmnRFEdge>;
@@ -1,8 +1,8 @@
1
1
  import { ModelingRules, ClipboardState, DiagramSnapshot, DiagramState, DiagramEventBus, ResizeHandlePosition, DiagramCommand, ConnectionValidator, SmartGuideResult, SelectionState, LayoutCacheOptions, LayoutCache, EdgeLabelOffsetOptions, EdgeLabelLayout, CommandStackState, Viewport, LayoutFn } from '@aranzatech/diagrams-core';
2
2
  import { DiagramDocument, CreateDiagramDocumentOptions } from '@aranzatech/diagrams-core/serialization';
3
- import { c as BpmnEdgeType, b as BpmnEdgeData, f as BpmnElementType, m as BpmnNodeData } from '../types-BPqNeIU-.js';
4
- import { d as BpmnRFNode, c as BpmnRFEdge } from '../types-D0Flgue2.js';
5
- export { g as getBpmnElementSize, i as isBpmnElementResizable } from '../catalog-Clz8sN9x.js';
3
+ import { c as BpmnEdgeType, b as BpmnEdgeData, f as BpmnElementType, m as BpmnNodeData } from '../types-wFn_tJLY.js';
4
+ import { d as BpmnRFNode, c as BpmnRFEdge } from '../types-CBgWMl9p.js';
5
+ export { g as getBpmnElementSize, i as isBpmnElementResizable } from '../catalog-DW0Hknp2.js';
6
6
  import '@xyflow/react';
7
7
 
8
8
  type BpmnDiagramState = DiagramState<BpmnRFNode, BpmnRFEdge>;
@@ -1,5 +1,5 @@
1
1
  import { Node, Edge } from '@xyflow/react';
2
- import { m as BpmnNodeData, b as BpmnEdgeData, a as BpmnDefinitionsSet } from './types-BPqNeIU-.cjs';
2
+ import { m as BpmnNodeData, b as BpmnEdgeData, a as BpmnDefinitionsSet } from './types-wFn_tJLY.cjs';
3
3
 
4
4
  type BpmnRFNode = Node<BpmnNodeData>;
5
5
  type BpmnRFEdge = Edge<BpmnEdgeData>;
@@ -1,5 +1,5 @@
1
1
  import { Node, Edge } from '@xyflow/react';
2
- import { m as BpmnNodeData, b as BpmnEdgeData, a as BpmnDefinitionsSet } from './types-BPqNeIU-.js';
2
+ import { m as BpmnNodeData, b as BpmnEdgeData, a as BpmnDefinitionsSet } from './types-wFn_tJLY.js';
3
3
 
4
4
  type BpmnRFNode = Node<BpmnNodeData>;
5
5
  type BpmnRFEdge = Edge<BpmnEdgeData>;
@@ -152,6 +152,24 @@ interface BpmnNodeData extends Record<string, unknown> {
152
152
  owner?: string;
153
153
  /** ISO 8601 duration, e.g. "PT4H". */
154
154
  sla?: string;
155
+ /** Aranza connector id (resolved at runtime by Flowable delegate). */
156
+ connector?: string;
157
+ /** Aranza connector action. */
158
+ action?: string;
159
+ /** Flowable execution type (e.g. "http", "dmn", "mail"). */
160
+ flowableType?: string;
161
+ /** Flowable delegate expression for ServiceTask. */
162
+ flowableDelegateExpression?: string;
163
+ /** ScriptTask: scripting language (e.g. "javascript", "groovy"). */
164
+ scriptFormat?: string;
165
+ /** ScriptTask: script body. */
166
+ script?: string;
167
+ /** BusinessRuleTask: id of the referenced DMN decision table. */
168
+ decisionRef?: string;
169
+ /** UserTask: form key resolved to a FormDefinition by name at runtime. */
170
+ formKey?: string;
171
+ /** AdHocSubProcess: FEEL expression that determines when the sub-process completes. */
172
+ completionCondition?: string;
155
173
  }
156
174
  interface BpmnEdgeData extends Record<string, unknown> {
157
175
  label?: string;
@@ -152,6 +152,24 @@ interface BpmnNodeData extends Record<string, unknown> {
152
152
  owner?: string;
153
153
  /** ISO 8601 duration, e.g. "PT4H". */
154
154
  sla?: string;
155
+ /** Aranza connector id (resolved at runtime by Flowable delegate). */
156
+ connector?: string;
157
+ /** Aranza connector action. */
158
+ action?: string;
159
+ /** Flowable execution type (e.g. "http", "dmn", "mail"). */
160
+ flowableType?: string;
161
+ /** Flowable delegate expression for ServiceTask. */
162
+ flowableDelegateExpression?: string;
163
+ /** ScriptTask: scripting language (e.g. "javascript", "groovy"). */
164
+ scriptFormat?: string;
165
+ /** ScriptTask: script body. */
166
+ script?: string;
167
+ /** BusinessRuleTask: id of the referenced DMN decision table. */
168
+ decisionRef?: string;
169
+ /** UserTask: form key resolved to a FormDefinition by name at runtime. */
170
+ formKey?: string;
171
+ /** AdHocSubProcess: FEEL expression that determines when the sub-process completes. */
172
+ completionCondition?: string;
155
173
  }
156
174
  interface BpmnEdgeData extends Record<string, unknown> {
157
175
  label?: string;
@@ -1,6 +1,6 @@
1
- import { d as BpmnRFNode, c as BpmnRFEdge } from '../types-exnfq24-.cjs';
1
+ import { d as BpmnRFNode, c as BpmnRFEdge } from '../types-BjVERSZn.cjs';
2
2
  import '@xyflow/react';
3
- import '../types-BPqNeIU-.cjs';
3
+ import '../types-wFn_tJLY.cjs';
4
4
 
5
5
  type BpmnValidationSeverity = "error" | "warning" | "info";
6
6
  interface BpmnValidationIssue {
@@ -1,6 +1,6 @@
1
- import { d as BpmnRFNode, c as BpmnRFEdge } from '../types-D0Flgue2.js';
1
+ import { d as BpmnRFNode, c as BpmnRFEdge } from '../types-CBgWMl9p.js';
2
2
  import '@xyflow/react';
3
- import '../types-BPqNeIU-.js';
3
+ import '../types-wFn_tJLY.js';
4
4
 
5
5
  type BpmnValidationSeverity = "error" | "warning" | "info";
6
6
  interface BpmnValidationIssue {
@@ -13,7 +13,17 @@ var ARANZA_DESCRIPTOR = {
13
13
  properties: [
14
14
  { name: "priority", isAttr: true, type: "String" },
15
15
  { name: "owner", isAttr: true, type: "String" },
16
- { name: "sla", isAttr: true, type: "String" }
16
+ { name: "sla", isAttr: true, type: "String" },
17
+ // Aranza connector execution config (resolved at runtime by the Flowable delegate)
18
+ { name: "connector", isAttr: true, type: "String" },
19
+ { name: "action", isAttr: true, type: "String" },
20
+ // Flowable implementation hints stored for round-trip fidelity
21
+ { name: "flowableType", isAttr: true, type: "String" },
22
+ { name: "flowableDelegateExpression", isAttr: true, type: "String" },
23
+ // BusinessRuleTask: reference to a DMN decision table id
24
+ { name: "decisionRef", isAttr: true, type: "String" },
25
+ // UserTask: form key resolved to a FormDefinition name at runtime
26
+ { name: "formKey", isAttr: true, type: "String" }
17
27
  ]
18
28
  }
19
29
  ],
@@ -878,11 +888,20 @@ function extractSubProcessVariant(el) {
878
888
  return "embedded";
879
889
  }
880
890
  function extractAranzaExtensions(el) {
891
+ const result = {};
892
+ const elAttrs = el.$attrs;
893
+ if (elAttrs) {
894
+ const ft = asString(elAttrs["flowable:type"]);
895
+ if (ft) result.flowableType = ft;
896
+ const fde = asString(elAttrs["flowable:delegateExpression"]);
897
+ if (fde) result.flowableDelegateExpression = fde;
898
+ const fk = asString(elAttrs["flowable:formKey"]);
899
+ if (fk) result.formKey = fk;
900
+ }
881
901
  const ext = el.extensionElements;
882
- if (!ext) return {};
902
+ if (!ext) return result;
883
903
  const taskConfig = asElements(ext.values).find((v) => v.$type === "aranza:TaskConfig");
884
- if (!taskConfig) return {};
885
- const result = {};
904
+ if (!taskConfig) return result;
886
905
  const priority = asString(taskConfig.priority);
887
906
  if (priority === "critical" || priority === "high" || priority === "medium" || priority === "low") {
888
907
  result.priority = priority;
@@ -891,8 +910,26 @@ function extractAranzaExtensions(el) {
891
910
  if (owner) result.owner = owner;
892
911
  const sla = asString(taskConfig.sla);
893
912
  if (sla) result.sla = sla;
913
+ const connector = asString(taskConfig.connector);
914
+ if (connector) result.connector = connector;
915
+ const action = asString(taskConfig.action);
916
+ if (action) result.action = action;
917
+ const flowableType = asString(taskConfig.flowableType);
918
+ if (flowableType) result.flowableType = flowableType;
919
+ const flowableDelegateExpression = asString(taskConfig.flowableDelegateExpression);
920
+ if (flowableDelegateExpression) result.flowableDelegateExpression = flowableDelegateExpression;
921
+ const decisionRef = asString(taskConfig.decisionRef);
922
+ if (decisionRef) result.decisionRef = decisionRef;
923
+ const formKey = asString(taskConfig.formKey);
924
+ if (formKey) result.formKey = formKey;
894
925
  return result;
895
926
  }
927
+ function extractCompletionCondition(el) {
928
+ const cc = el.completionCondition;
929
+ if (!cc) return void 0;
930
+ if (typeof cc === "string") return cc.trim() || void 0;
931
+ return asString(cc.body);
932
+ }
896
933
  function walkFlowElements(elements, parentId, ctx, nodes, edges) {
897
934
  for (const el of elements) {
898
935
  const { $type, id } = el;
@@ -931,6 +968,9 @@ function buildNode(el, elementType, parentId, ctx, nodes) {
931
968
  const attachedToRef = el.attachedToRef?.id;
932
969
  const calledElement = elementType === "CallActivity" ? asString(el.calledElement) : void 0;
933
970
  const aranzaExt = extractAranzaExtensions(el);
971
+ const scriptFormat = elementType === "ScriptTask" ? asString(el.scriptFormat) : void 0;
972
+ const script = elementType === "ScriptTask" ? asString(el.script) : void 0;
973
+ const completionCondition = elementType === "AdHocSubProcess" ? extractCompletionCondition(el) : void 0;
934
974
  const data = {
935
975
  elementType,
936
976
  ...label ? { label } : {},
@@ -948,6 +988,9 @@ function buildNode(el, elementType, parentId, ctx, nodes) {
948
988
  ...eventDefinition?.conditionExpression ? { conditionExpression: eventDefinition.conditionExpression } : {},
949
989
  ...eventDefinition?.linkName ? { linkName: eventDefinition.linkName } : {},
950
990
  ...calledElement ? { calledElement } : {},
991
+ ...scriptFormat ? { scriptFormat } : {},
992
+ ...script ? { script } : {},
993
+ ...completionCondition ? { completionCondition } : {},
951
994
  ...aranzaExt
952
995
  };
953
996
  if (elementType === "SubProcess" || elementType === "Transaction" || elementType === "EventSubProcess" || elementType === "AdHocSubProcess") {
@@ -1242,11 +1285,25 @@ function buildEventDefinitions(moddle, node, eventDefinition) {
1242
1285
  }
1243
1286
  function buildAranzaExtensionElements(moddle, node) {
1244
1287
  const { priority, owner, sla } = node.data;
1245
- if (!priority && !owner && !sla) return null;
1288
+ const connector = typeof node.data.connector === "string" ? node.data.connector : void 0;
1289
+ const action = typeof node.data.action === "string" ? node.data.action : void 0;
1290
+ const flowableType = typeof node.data.flowableType === "string" ? node.data.flowableType : void 0;
1291
+ const flowableDelegateExpression = typeof node.data.flowableDelegateExpression === "string" ? node.data.flowableDelegateExpression : void 0;
1292
+ const decisionRef = typeof node.data.decisionRef === "string" ? node.data.decisionRef : void 0;
1293
+ const formKey = typeof node.data.formKey === "string" ? node.data.formKey : void 0;
1294
+ if (!priority && !owner && !sla && !connector && !action && !flowableType && !flowableDelegateExpression && !decisionRef && !formKey) {
1295
+ return null;
1296
+ }
1246
1297
  const configAttrs = {};
1247
1298
  if (priority) configAttrs.priority = priority;
1248
1299
  if (owner) configAttrs.owner = owner;
1249
1300
  if (sla) configAttrs.sla = sla;
1301
+ if (connector) configAttrs.connector = connector;
1302
+ if (action) configAttrs.action = action;
1303
+ if (flowableType) configAttrs.flowableType = flowableType;
1304
+ if (flowableDelegateExpression) configAttrs.flowableDelegateExpression = flowableDelegateExpression;
1305
+ if (decisionRef) configAttrs.decisionRef = decisionRef;
1306
+ if (formKey) configAttrs.formKey = formKey;
1250
1307
  const taskConfig = moddle.create("aranza:TaskConfig", configAttrs);
1251
1308
  return moddle.create("bpmn:ExtensionElements", { values: [taskConfig] });
1252
1309
  }
@@ -1422,6 +1479,28 @@ function buildFlowElement(moddle, node, allNodes, allEdges) {
1422
1479
  if (elementType === "CallActivity" && node.data.calledElement) {
1423
1480
  attrs.calledElement = node.data.calledElement;
1424
1481
  }
1482
+ if (elementType === "ScriptTask") {
1483
+ const scriptFormat = typeof node.data.scriptFormat === "string" ? node.data.scriptFormat : void 0;
1484
+ const script = typeof node.data.script === "string" ? node.data.script : void 0;
1485
+ if (scriptFormat) attrs.scriptFormat = scriptFormat;
1486
+ if (script) attrs.script = script;
1487
+ }
1488
+ if (elementType === "UserTask") {
1489
+ const fk = typeof node.data.formKey === "string" ? node.data.formKey : void 0;
1490
+ if (fk) attrs.$attrs = { "flowable:formKey": fk };
1491
+ }
1492
+ if (elementType === "ServiceTask") {
1493
+ const flowableAttrs = {};
1494
+ const flowableType = typeof node.data.flowableType === "string" ? node.data.flowableType : void 0;
1495
+ const flowableDelegateExpression = typeof node.data.flowableDelegateExpression === "string" ? node.data.flowableDelegateExpression : void 0;
1496
+ const connector = typeof node.data.connector === "string" ? node.data.connector : void 0;
1497
+ if (connector) flowableAttrs["flowable:type"] = "http";
1498
+ if (flowableType) flowableAttrs["flowable:type"] = flowableType;
1499
+ if (flowableDelegateExpression) {
1500
+ flowableAttrs["flowable:delegateExpression"] = flowableDelegateExpression;
1501
+ }
1502
+ if (Object.keys(flowableAttrs).length > 0) attrs.$attrs = flowableAttrs;
1503
+ }
1425
1504
  const aranzaConfig = buildAranzaExtensionElements(moddle, node);
1426
1505
  if (aranzaConfig) attrs.extensionElements = aranzaConfig;
1427
1506
  const isSubProcess = elementType === "SubProcess" || elementType === "Transaction" || elementType === "EventSubProcess" || elementType === "AdHocSubProcess";
@@ -1430,6 +1509,11 @@ function buildFlowElement(moddle, node, allNodes, allEdges) {
1430
1509
  if (elementType === "EventSubProcess" || node.data.subProcessVariant === "event") {
1431
1510
  attrs.triggeredByEvent = true;
1432
1511
  }
1512
+ if (elementType === "AdHocSubProcess" && typeof node.data.completionCondition === "string" && node.data.completionCondition.trim()) {
1513
+ attrs.completionCondition = moddle.create("bpmn:FormalExpression", {
1514
+ body: node.data.completionCondition.trim()
1515
+ });
1516
+ }
1433
1517
  }
1434
1518
  const element = moddle.create(moddleType, attrs);
1435
1519
  return element;