@uipath/maestro-builder-sdk 6.17.1 → 6.17.3
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/api-index.md +5 -5
- package/dist/api-members.md +26 -26
- package/dist/check.js +80 -40
- package/dist/decompile.js +25 -0
- package/dist/flow-sdk.d.ts +4 -0
- package/dist/flow-sdk.js +4 -0
- package/dist/serialize.js +56 -62
- package/package.json +2 -2
package/dist/api-index.md
CHANGED
|
@@ -57,7 +57,7 @@ could hand you spans for a version you do not have.
|
|
|
57
57
|
| `apiWorkflow` | function | `dist/core/actions.d.ts:2886-2920` | Actions | Invoke a deployed API workflow — a coded workflow published to Orchestrator, run as a serverless job rather than by a… |
|
|
58
58
|
| `ApiWorkflowInputs` | interface | `dist/core/actions.d.ts:1049-1080` | Option shapes | 5 field(s) |
|
|
59
59
|
| `AppRef` | interface | `dist/core/actions.d.ts:506-551` | Supporting types | A deployed Action App that supplies a human task's form — the `'action-app'` variant's subject. |
|
|
60
|
-
| `ArmBuilder` | class | `dist/flow-sdk.d.ts:
|
|
60
|
+
| `ArmBuilder` | class | `dist/flow-sdk.d.ts:1140-1163` | Builders | The sub-builder an ARM callback receives — a `StepList` that can also name itself with `.label(...)`. |
|
|
61
61
|
| `AskedField` | interface | `dist/core/actions.d.ts:354-364` | Supporting types | A value the reviewer FILLS IN: read downstream with `out('<step>', '<id>')`. |
|
|
62
62
|
| `batchTransform` | function | `dist/core/actions.d.ts:2689-2723` | Actions | Add AI-generated columns to a CSV — the platform's **Batch transform** node, `uipath.pattern.batch-transform` (service… |
|
|
63
63
|
| `BatchTransformInputs` | interface | `dist/core/actions.d.ts:846-861` | Option shapes | 4 field(s) |
|
|
@@ -128,10 +128,10 @@ could hand you spans for a version you do not have.
|
|
|
128
128
|
| `FilterCondition` | type | `dist/core/actions.d.ts:233-234` | Supporting types | Comparison a filter rule applies to a field. |
|
|
129
129
|
| `FilterMatch` | type | `dist/core/actions.d.ts:231-232` | Supporting types | How a filter combines its rules: every rule must match, or any one. |
|
|
130
130
|
| `FilterRule` | interface | `dist/core/actions.d.ts:235-247` | Supporting types | 3 field(s) |
|
|
131
|
-
| `flow` | function | `dist/flow-sdk.d.ts:
|
|
131
|
+
| `flow` | function | `dist/flow-sdk.d.ts:1434-1449` | Flow construction | Start building a flow with the given id. |
|
|
132
132
|
| `FlowAction` | class | `dist/core/node-classes.d.ts:158-164` | Supporting types | A node placed as a step — pass an instance to `.step(name, …)`. |
|
|
133
133
|
| `FlowActionSpec` | type | `dist/flow-sdk.d.ts:41-42` | Supporting types | What `.step()` accepts here: the shared actions plus this SDK's subflow. |
|
|
134
|
-
| `FlowBuilder` | class | `dist/flow-sdk.d.ts:
|
|
134
|
+
| `FlowBuilder` | class | `dist/flow-sdk.d.ts:1164-1433` | Builders | 13 member(s) |
|
|
135
135
|
| `FlowLayout` | interface | `dist/flow-sdk.d.ts:649-662` | Supporting types | Designer layout for a flow, keyed by AUTHOR-level ids: node entries by step name (plus the trigger id and `end`), edge… |
|
|
136
136
|
| `FlowNode` | class | `dist/core/node-classes.d.ts:122-157` | Supporting types | The abstract root of every definition-backed node the builder can place. |
|
|
137
137
|
| `FlowResource` | class | `dist/core/node-classes.d.ts:172-179` | Supporting types | A node attached to another semantic node — an inline agent's tool, context, memory, or escalation. |
|
|
@@ -224,11 +224,11 @@ could hand you spans for a version you do not have.
|
|
|
224
224
|
| `SendMessageInputs` | interface | `dist/core/actions.d.ts:624-643` | Option shapes | 4 field(s) |
|
|
225
225
|
| `ShownField` | interface | `dist/core/actions.d.ts:338-353` | Supporting types | A value the reviewer READS: shown on the form, filled in from the flow. |
|
|
226
226
|
| `Step` | type | `dist/flow-sdk.d.ts:460-571` | Supporting types | |
|
|
227
|
-
| `StepList` | class | `dist/flow-sdk.d.ts:712-
|
|
227
|
+
| `StepList` | class | `dist/flow-sdk.d.ts:712-1139` | Builders | Collects a sequence of steps. |
|
|
228
228
|
| `STICKY_NOTE_COLORS` | const | `dist/flow-sdk.d.ts:602-607` | Flow construction | The designer's sticky-note palette. |
|
|
229
229
|
| `StickyNote` | interface | `dist/flow-sdk.d.ts:614-648` | Supporting types | A canvas sticky note — free text pinned to the diagram, for the humans reading it. |
|
|
230
230
|
| `StickyNoteColor` | type | `dist/flow-sdk.d.ts:608-613` | Supporting types | A sticky note's swatch. |
|
|
231
|
-
| `subflow` | function | `dist/flow-sdk.d.ts:
|
|
231
|
+
| `subflow` | function | `dist/flow-sdk.d.ts:1450-1489` | Flow construction | Run another flow as one step, and read back what it returns. |
|
|
232
232
|
| `SubflowSpec` | interface | `dist/flow-sdk.d.ts:33-40` | Supporting types | A step that runs a child flow. |
|
|
233
233
|
| `summarize` | function | `dist/core/actions.d.ts:2648-2688` | Actions | Summarize a document with citations — the platform's **Summarize** node. |
|
|
234
234
|
| `SummarizeInputs` | interface | `dist/core/actions.d.ts:806-838` | Option shapes | 3 field(s) |
|
package/dist/api-members.md
CHANGED
|
@@ -63,7 +63,7 @@ not find it either.
|
|
|
63
63
|
| `app` | property | `HumanTaskOpts` | `dist/bpmn/bpmn-sdk.d.ts:1337-1338` |
|
|
64
64
|
| `appSystemName` | property | `AppRef` | `dist/core/actions.d.ts:536-541` |
|
|
65
65
|
| `appVersion` | property | `HumanTaskOpts` | `dist/bpmn/bpmn-sdk.d.ts:1339-1340` |
|
|
66
|
-
| `armLabel` | property | `ArmBuilder` | `dist/flow-sdk.d.ts:
|
|
66
|
+
| `armLabel` | property | `ArmBuilder` | `dist/flow-sdk.d.ts:1152` |
|
|
67
67
|
| `assignee` | property | `HitlRecipient` | `dist/core/actions.d.ts:426-437` |
|
|
68
68
|
| `async` | property | `OrchestratorAsyncOpts` | `dist/bpmn/bpmn-sdk.d.ts:1281-1285` |
|
|
69
69
|
| `atRiskPercentage` | property | `EscalationOpts` | `dist/case/case-sdk.d.ts:132-137` |
|
|
@@ -93,14 +93,14 @@ not find it either.
|
|
|
93
93
|
| `body` | property | `TypedContextRow` | `dist/bpmn/typed-node.d.ts:176-181` |
|
|
94
94
|
| `body` | property | `TypedInputRow` | `dist/bpmn/typed-node.d.ts:207-208` |
|
|
95
95
|
| `boundaryEvent` | method | `ScopeBuilder` | `dist/bpmn/bpmn-sdk.d.ts:2239-2246` |
|
|
96
|
-
| `branch` | method | `StepList` | `dist/flow-sdk.d.ts:
|
|
96
|
+
| `branch` | method | `StepList` | `dist/flow-sdk.d.ts:913-931` |
|
|
97
97
|
| `branches` | property | `HttpInputsBase` | `dist/core/actions.d.ts:31-36` |
|
|
98
|
-
| `break` | method | `StepList` | `dist/flow-sdk.d.ts:
|
|
98
|
+
| `break` | method | `StepList` | `dist/flow-sdk.d.ts:1039-1048` |
|
|
99
99
|
| `breakEnabled` | property | `DoWhileOptions` | `dist/flow-sdk.d.ts:457-458` |
|
|
100
100
|
| `breakEnabled` | property | `LoopOptions` | `dist/flow-sdk.d.ts:444-448` |
|
|
101
101
|
| `build` | method | `BpmnBuilder` | `dist/bpmn/bpmn-sdk.d.ts:3483-3488` |
|
|
102
102
|
| `build` | method | `CaseBuilder` | `dist/case/case-sdk.d.ts:1269-1274` |
|
|
103
|
-
| `build` | method | `FlowBuilder` | `dist/flow-sdk.d.ts:
|
|
103
|
+
| `build` | method | `FlowBuilder` | `dist/flow-sdk.d.ts:1426-1432` |
|
|
104
104
|
| `businessRule` | method | `ScopeBuilder` | `dist/bpmn/bpmn-sdk.d.ts:2527-2573` |
|
|
105
105
|
| `by` | property | `LookupResolution` | `dist/core/lookups.d.ts:164` |
|
|
106
106
|
| `by` | property | `LookupSpec` | `dist/core/lookups.d.ts:27-28` |
|
|
@@ -209,7 +209,7 @@ not find it either.
|
|
|
209
209
|
| `description` | property | `CustomGuardrail` | `dist/core/actions.d.ts:1393` |
|
|
210
210
|
| `description` | property | `EscalationRef` | `dist/core/actions.d.ts:1987-1988` |
|
|
211
211
|
| `description` | property | `EventTriggerOpts` | `dist/case/case-sdk.d.ts:241` |
|
|
212
|
-
| `description` | method | `FlowBuilder` | `dist/flow-sdk.d.ts:
|
|
212
|
+
| `description` | method | `FlowBuilder` | `dist/flow-sdk.d.ts:1188-1195` |
|
|
213
213
|
| `description` | property | `HttpRequestToolRef` | `dist/core/actions.d.ts:1792` |
|
|
214
214
|
| `description` | property | `IxpExtractInputs` | `dist/core/actions.d.ts:945-952` |
|
|
215
215
|
| `description` | property | `IxpToolRef` | `dist/core/actions.d.ts:1965-1966` |
|
|
@@ -250,7 +250,7 @@ not find it either.
|
|
|
250
250
|
| `displayName` | property | `TriggerMeta` | `dist/core/connectors.d.ts:127-128` |
|
|
251
251
|
| `document` | property | `HitlInputs` | `dist/core/actions.d.ts:618-622` |
|
|
252
252
|
| `documentId` | property | `DocValidationInputs` | `dist/core/actions.d.ts:458-459` |
|
|
253
|
-
| `doWhile` | method | `StepList` | `dist/flow-sdk.d.ts:
|
|
253
|
+
| `doWhile` | method | `StepList` | `dist/flow-sdk.d.ts:1014-1038` |
|
|
254
254
|
| `dueDate` | property | `QueueItemInputs` | `dist/core/actions.d.ts:2122-2123` |
|
|
255
255
|
| `duration` | property | `TimerSpec` | `dist/bpmn/bpmn-sdk.d.ts:33-34` |
|
|
256
256
|
| `dynamicFewShotLearning` | property | `AgentMemoryRef` | `dist/core/actions.d.ts:1828-1829` |
|
|
@@ -272,7 +272,7 @@ not find it either.
|
|
|
272
272
|
| `entity` | property | `DataServiceOpts` | `dist/bpmn/bpmn-sdk.d.ts:1090-1091` |
|
|
273
273
|
| `entry` | property | `BuiltStage` | `dist/case/case-sdk.d.ts:528` |
|
|
274
274
|
| `entry` | property | `BuiltTask` | `dist/case/case-sdk.d.ts:520` |
|
|
275
|
-
| `entryPoint` | method | `FlowBuilder` | `dist/flow-sdk.d.ts:
|
|
275
|
+
| `entryPoint` | method | `FlowBuilder` | `dist/flow-sdk.d.ts:1252-1302` |
|
|
276
276
|
| `entryPointId` | property | `ProcessMetadata` | `dist/bpmn/bpmn-sdk.d.ts:534-539` |
|
|
277
277
|
| `entryPoints` | property | `BuiltFlow` | `dist/flow-sdk.d.ts:702-703` |
|
|
278
278
|
| `entryWhen` | method | `StageBuilder` | `dist/case/case-sdk.d.ts:1004-1011` |
|
|
@@ -438,7 +438,7 @@ not find it either.
|
|
|
438
438
|
| `inclusive` | property | `ChooseOpts` | `dist/bpmn/bpmn-sdk.d.ts:1820-1824` |
|
|
439
439
|
| `inclusiveGateway` | method | `ScopeBuilder` | `dist/bpmn/bpmn-sdk.d.ts:2266-2273` |
|
|
440
440
|
| `input` | method | `CaseBuilder` | `dist/case/case-sdk.d.ts:1160-1185` |
|
|
441
|
-
| `input` | method | `FlowBuilder` | `dist/flow-sdk.d.ts:
|
|
441
|
+
| `input` | method | `FlowBuilder` | `dist/flow-sdk.d.ts:1377-1389` |
|
|
442
442
|
| `input` | property | `HumanTaskOpts` | `dist/bpmn/bpmn-sdk.d.ts:1355-1356` |
|
|
443
443
|
| `input` | property | `OrchestratorOpts` | `dist/bpmn/bpmn-sdk.d.ts:1241-1242` |
|
|
444
444
|
| `input` | method | `ScopeBuilder` | `dist/bpmn/bpmn-sdk.d.ts:3068-3076` |
|
|
@@ -510,7 +510,7 @@ not find it either.
|
|
|
510
510
|
| `kind` | property | `SubflowSpec` | `dist/flow-sdk.d.ts:35` |
|
|
511
511
|
| `kind` | property | `WhenExpression` | `dist/case/case-sdk.d.ts:99-100` |
|
|
512
512
|
| `kValue` | property | `AgentMemoryRef` | `dist/core/actions.d.ts:1832-1833` |
|
|
513
|
-
| `label` | method | `ArmBuilder` | `dist/flow-sdk.d.ts:
|
|
513
|
+
| `label` | method | `ArmBuilder` | `dist/flow-sdk.d.ts:1153-1162` |
|
|
514
514
|
| `label` | property | `AskedField` | `dist/core/actions.d.ts:358-359` |
|
|
515
515
|
| `label` | property | `BuiltStage` | `dist/case/case-sdk.d.ts:523` |
|
|
516
516
|
| `label` | property | `InOutField` | `dist/core/actions.d.ts:374-375` |
|
|
@@ -524,7 +524,7 @@ not find it either.
|
|
|
524
524
|
| `layout` | property | `BuiltCase` | `dist/case/case-sdk.d.ts:646-647` |
|
|
525
525
|
| `layout` | property | `BuiltFlow` | `dist/flow-sdk.d.ts:698-699` |
|
|
526
526
|
| `layout` | method | `CaseBuilder` | `dist/case/case-sdk.d.ts:1139-1159` |
|
|
527
|
-
| `layout` | method | `FlowBuilder` | `dist/flow-sdk.d.ts:
|
|
527
|
+
| `layout` | method | `FlowBuilder` | `dist/flow-sdk.d.ts:1196-1206` |
|
|
528
528
|
| `limit` | property | `DataFabricReadInputs` | `dist/core/actions.d.ts:2243-2248` |
|
|
529
529
|
| `limit` | property | `DoWhileOptions` | `dist/flow-sdk.d.ts:455-456` |
|
|
530
530
|
| `literal` | property | `Expr` | `dist/core/expr.d.ts:18` |
|
|
@@ -534,7 +534,7 @@ not find it either.
|
|
|
534
534
|
| `lookups` | property | `ConnectorMeta` | `dist/core/connectors.d.ts:76-87` |
|
|
535
535
|
| `loop` | property | `ActivityNodeFields` | `dist/bpmn/bpmn-sdk.d.ts:335-336` |
|
|
536
536
|
| `loop` | property | `ActivityOpts` | `dist/bpmn/bpmn-sdk.d.ts:832-833` |
|
|
537
|
-
| `loop` | method | `StepList` | `dist/flow-sdk.d.ts:
|
|
537
|
+
| `loop` | method | `StepList` | `dist/flow-sdk.d.ts:1002-1013` |
|
|
538
538
|
| `managed` | property | `HttpInputsBase` | `dist/core/actions.d.ts:43-73` |
|
|
539
539
|
| `marksCaseComplete` | property | `BuiltCaseExitCondition` | `dist/case/case-sdk.d.ts:354` |
|
|
540
540
|
| `marksStageComplete` | property | `BuiltExitCondition` | `dist/case/case-sdk.d.ts:321` |
|
|
@@ -622,7 +622,7 @@ not find it either.
|
|
|
622
622
|
| `name` | property | `EventSubProcessOpts` | `dist/bpmn/bpmn-sdk.d.ts:1840-1841` |
|
|
623
623
|
| `name` | property | `EventTriggerOpts` | `dist/case/case-sdk.d.ts:240` |
|
|
624
624
|
| `name` | property | `ExternalTaskOpts` | `dist/bpmn/bpmn-sdk.d.ts:1499-1500` |
|
|
625
|
-
| `name` | method | `FlowBuilder` | `dist/flow-sdk.d.ts:
|
|
625
|
+
| `name` | method | `FlowBuilder` | `dist/flow-sdk.d.ts:1180-1187` |
|
|
626
626
|
| `name` | property | `FlowOpts` | `dist/bpmn/bpmn-sdk.d.ts:1637-1638` |
|
|
627
627
|
| `name` | property | `GatewayOpts` | `dist/bpmn/bpmn-sdk.d.ts:760-761` |
|
|
628
628
|
| `name` | property | `HandlerOpts` | `dist/bpmn/bpmn-sdk.d.ts:1735-1736` |
|
|
@@ -702,7 +702,7 @@ not find it either.
|
|
|
702
702
|
| `outcomes` | property | `EscalationRef` | `dist/core/actions.d.ts:2033-2038` |
|
|
703
703
|
| `outcomes` | property | `HitlInputs` | `dist/core/actions.d.ts:577-591` |
|
|
704
704
|
| `output` | method | `CaseBuilder` | `dist/case/case-sdk.d.ts:1186-1198` |
|
|
705
|
-
| `output` | method | `FlowBuilder` | `dist/flow-sdk.d.ts:
|
|
705
|
+
| `output` | method | `FlowBuilder` | `dist/flow-sdk.d.ts:1390-1415` |
|
|
706
706
|
| `output` | property | `RegistryTypeSpec` | `dist/bpmn/typed-node.d.ts:90` |
|
|
707
707
|
| `output` | method | `ScopeBuilder` | `dist/bpmn/bpmn-sdk.d.ts:3077-3085` |
|
|
708
708
|
| `outputColumns` | property | `BatchTransformInputs` | `dist/core/actions.d.ts:854-858` |
|
|
@@ -738,7 +738,7 @@ not find it either.
|
|
|
738
738
|
| `pageRange` | property | `DynamicExtractInputs` | `dist/core/actions.d.ts:2407-2408` |
|
|
739
739
|
| `pageRange` | property | `IxpExtractInputs` | `dist/core/actions.d.ts:934-935` |
|
|
740
740
|
| `parallel` | property | `LoopOptions` | `dist/flow-sdk.d.ts:437-438` |
|
|
741
|
-
| `parallel` | method | `StepList` | `dist/flow-sdk.d.ts:
|
|
741
|
+
| `parallel` | method | `StepList` | `dist/flow-sdk.d.ts:966-1001` |
|
|
742
742
|
| `parallelGateway` | method | `ScopeBuilder` | `dist/bpmn/bpmn-sdk.d.ts:2256-2265` |
|
|
743
743
|
| `parameters` | property | `ConnectorEventOpts` | `dist/bpmn/bpmn-sdk.d.ts:1479-1480` |
|
|
744
744
|
| `parameters` | property | `HttpOpts` | `dist/bpmn/bpmn-sdk.d.ts:1140-1145` |
|
|
@@ -835,7 +835,7 @@ not find it either.
|
|
|
835
835
|
| `retry` | property | `ActivityOpts` | `dist/bpmn/bpmn-sdk.d.ts:830-831` |
|
|
836
836
|
| `retryable` | property | `ErrorMappingRow` | `dist/bpmn/bpmn-sdk.d.ts:308-309` |
|
|
837
837
|
| `retryCount` | property | `HttpInputsBase` | `dist/core/actions.d.ts:115-129` |
|
|
838
|
-
| `return` | method | `StepList` | `dist/flow-sdk.d.ts:
|
|
838
|
+
| `return` | method | `StepList` | `dist/flow-sdk.d.ts:1129-1138` |
|
|
839
839
|
| `returnCitations` | property | `SummarizeInputs` | `dist/core/actions.d.ts:832-837` |
|
|
840
840
|
| `returns` | property | `AgentInputs` | `dist/core/actions.d.ts:1279-1298` |
|
|
841
841
|
| `returns` | property | `ApiWorkflowInputs` | `dist/core/actions.d.ts:1067-1079` |
|
|
@@ -875,7 +875,7 @@ not find it either.
|
|
|
875
875
|
| `schemaVersion` | method | `BpmnBuilder` | `dist/bpmn/bpmn-sdk.d.ts:3375-3404` |
|
|
876
876
|
| `schemaVersion` | property | `BuiltFlow` | `dist/flow-sdk.d.ts:682-688` |
|
|
877
877
|
| `schemaVersion` | method | `CaseBuilder` | `dist/case/case-sdk.d.ts:1068-1094` |
|
|
878
|
-
| `schemaVersion` | method | `FlowBuilder` | `dist/flow-sdk.d.ts:
|
|
878
|
+
| `schemaVersion` | method | `FlowBuilder` | `dist/flow-sdk.d.ts:1337-1376` |
|
|
879
879
|
| `scope` | property | `EscalationRecipient` | `dist/case/case-sdk.d.ts:121` |
|
|
880
880
|
| `scopes` | property | `GuardrailSelector` | `dist/core/actions.d.ts:1339` |
|
|
881
881
|
| `script` | property | `ScriptTaskOpts` | `dist/bpmn/bpmn-sdk.d.ts:846-862` |
|
|
@@ -950,11 +950,11 @@ not find it either.
|
|
|
950
950
|
| `steps` | property | `BuiltFlow` | `dist/flow-sdk.d.ts:692` |
|
|
951
951
|
| `steps` | property | `StepList` | `dist/flow-sdk.d.ts:714` |
|
|
952
952
|
| `stepSwitch` | method | `StepList` | `dist/flow-sdk.d.ts:757-799` |
|
|
953
|
-
| `stepToList` | method | `StepList` | `dist/flow-sdk.d.ts:876-
|
|
954
|
-
| `stepToRef` | method | `StepList` | `dist/flow-sdk.d.ts:
|
|
955
|
-
| `stepToRef` | method | `StepList` | `dist/flow-sdk.d.ts:
|
|
953
|
+
| `stepToList` | method | `StepList` | `dist/flow-sdk.d.ts:876-904` |
|
|
954
|
+
| `stepToRef` | method | `StepList` | `dist/flow-sdk.d.ts:1080-1108` |
|
|
955
|
+
| `stepToRef` | method | `StepList` | `dist/flow-sdk.d.ts:1109-1128` |
|
|
956
956
|
| `stickyNotes` | property | `BuiltFlow` | `dist/flow-sdk.d.ts:700-701` |
|
|
957
|
-
| `stickyNotes` | method | `FlowBuilder` | `dist/flow-sdk.d.ts:
|
|
957
|
+
| `stickyNotes` | method | `FlowBuilder` | `dist/flow-sdk.d.ts:1207-1232` |
|
|
958
958
|
| `storageBucket` | property | `DocValidationInputs` | `dist/core/actions.d.ts:456-457` |
|
|
959
959
|
| `strategy` | property | `LookupSpec` | `dist/core/lookups.d.ts:33` |
|
|
960
960
|
| `style` | property | `CaseNodeLayout` | `dist/case/case-sdk.d.ts:597-598` |
|
|
@@ -966,7 +966,7 @@ not find it either.
|
|
|
966
966
|
| `subType` | property | `VarOpts` | `dist/bpmn/bpmn-sdk.d.ts:1709-1714` |
|
|
967
967
|
| `subType` | property | `VarSpec` | `dist/flow-sdk.d.ts:72-73` |
|
|
968
968
|
| `summary` | property | `CaseAppConfig` | `dist/case/case-sdk.d.ts:585-586` |
|
|
969
|
-
| `switch` | method | `StepList` | `dist/flow-sdk.d.ts:
|
|
969
|
+
| `switch` | method | `StepList` | `dist/flow-sdk.d.ts:932-965` |
|
|
970
970
|
| `systemPrompt` | property | `ConversationalAgentInputs` | `dist/core/actions.d.ts:686-691` |
|
|
971
971
|
| `systemPrompt` | property | `InlineAgentInputs` | `dist/core/actions.d.ts:1452-1501` |
|
|
972
972
|
| `systemPrompt` | property | `VoiceAgentInputs` | `dist/core/actions.d.ts:773-778` |
|
|
@@ -991,7 +991,7 @@ not find it either.
|
|
|
991
991
|
| `temperature` | property | `InlineAgentInputs` | `dist/core/actions.d.ts:1562-1563` |
|
|
992
992
|
| `temperature` | property | `VoiceSettings` | `dist/core/actions.d.ts:765-766` |
|
|
993
993
|
| `terminate` | property | `EndOpts` | `dist/bpmn/bpmn-sdk.d.ts:692-693` |
|
|
994
|
-
| `terminate` | method | `StepList` | `dist/flow-sdk.d.ts:
|
|
994
|
+
| `terminate` | method | `StepList` | `dist/flow-sdk.d.ts:1049-1079` |
|
|
995
995
|
| `threshold` | property | `ContextIndexRef` | `dist/core/actions.d.ts:2076-2077` |
|
|
996
996
|
| `timeCycle` | property | `BuiltTrigger` | `dist/case/case-sdk.d.ts:201-202` |
|
|
997
997
|
| `timeout` | property | `HttpInputsBase` | `dist/core/actions.d.ts:97-114` |
|
|
@@ -1014,11 +1014,11 @@ not find it either.
|
|
|
1014
1014
|
| `trigger` | property | `BuiltFlow` | `dist/flow-sdk.d.ts:693-695` |
|
|
1015
1015
|
| `trigger` | method | `CaseBuilder` | `dist/case/case-sdk.d.ts:1224-1232` |
|
|
1016
1016
|
| `trigger` | property | `EscalationOpts` | `dist/case/case-sdk.d.ts:128-129` |
|
|
1017
|
-
| `trigger` | method | `FlowBuilder` | `dist/flow-sdk.d.ts:
|
|
1017
|
+
| `trigger` | method | `FlowBuilder` | `dist/flow-sdk.d.ts:1233-1251` |
|
|
1018
1018
|
| `trigger` | property | `StartOpts` | `dist/bpmn/bpmn-sdk.d.ts:624-671` |
|
|
1019
1019
|
| `triggeredByEvent` | property | `SubProcessOpts` | `dist/bpmn/bpmn-sdk.d.ts:976-977` |
|
|
1020
1020
|
| `triggerId` | property | `BuiltFlow` | `dist/flow-sdk.d.ts:704-710` |
|
|
1021
|
-
| `triggerId` | method | `FlowBuilder` | `dist/flow-sdk.d.ts:
|
|
1021
|
+
| `triggerId` | method | `FlowBuilder` | `dist/flow-sdk.d.ts:1303-1322` |
|
|
1022
1022
|
| `triggerOptions` | property | `BuiltFlow` | `dist/flow-sdk.d.ts:696-697` |
|
|
1023
1023
|
| `triggers` | property | `BuiltCase` | `dist/case/case-sdk.d.ts:644-645` |
|
|
1024
1024
|
| `triggers` | property | `CaseLayout` | `dist/case/case-sdk.d.ts:620-621` |
|
|
@@ -1074,7 +1074,7 @@ not find it either.
|
|
|
1074
1074
|
| `value` | property | `TypedInputRow` | `dist/bpmn/typed-node.d.ts:205-206` |
|
|
1075
1075
|
| `values` | property | `DataFabricCreateInputs` | `dist/core/actions.d.ts:2280-2285` |
|
|
1076
1076
|
| `var` | method | `CaseBuilder` | `dist/case/case-sdk.d.ts:1199-1223` |
|
|
1077
|
-
| `var` | method | `FlowBuilder` | `dist/flow-sdk.d.ts:
|
|
1077
|
+
| `var` | method | `FlowBuilder` | `dist/flow-sdk.d.ts:1416-1425` |
|
|
1078
1078
|
| `var` | method | `ScopeBuilder` | `dist/bpmn/bpmn-sdk.d.ts:3059-3067` |
|
|
1079
1079
|
| `var` | property | `TaskOutputBinding` | `dist/case/case-sdk.d.ts:494-495` |
|
|
1080
1080
|
| `var` | property | `TypedOutputRow` | `dist/bpmn/typed-node.d.ts:251-252` |
|
|
@@ -1097,7 +1097,7 @@ not find it either.
|
|
|
1097
1097
|
| `version` | property | `ConnectorToolRef` | `dist/core/actions.d.ts:1870-1871` |
|
|
1098
1098
|
| `version` | property | `EventSubscription` | `dist/core/actions.d.ts:3566` |
|
|
1099
1099
|
| `version` | property | `ExternalTaskOpts` | `dist/bpmn/bpmn-sdk.d.ts:1507-1508` |
|
|
1100
|
-
| `version` | method | `FlowBuilder` | `dist/flow-sdk.d.ts:
|
|
1100
|
+
| `version` | method | `FlowBuilder` | `dist/flow-sdk.d.ts:1323-1336` |
|
|
1101
1101
|
| `version` | property | `NodeOptions` | `dist/flow-sdk.d.ts:354-361` |
|
|
1102
1102
|
| `version` | property | `TriggerMeta` | `dist/core/connectors.d.ts:126` |
|
|
1103
1103
|
| `version` | property | `TriggerOptions` | `dist/core/actions.d.ts:3523-3524` |
|
package/dist/check.js
CHANGED
|
@@ -777,10 +777,10 @@ function checkFlow(built, ancestors, opts = {}) {
|
|
|
777
777
|
}
|
|
778
778
|
// An exit with no arm compiles to an End node, so the run FINISHES
|
|
779
779
|
// there instead of reaching a port with no edge and stalling. Better
|
|
780
|
-
// than stalling, still probably not what the author meant
|
|
781
|
-
//
|
|
782
|
-
//
|
|
783
|
-
// already ends the run and needs no arm.
|
|
780
|
+
// than stalling, still probably not what the author meant: the End
|
|
781
|
+
// maps each output from its variable, so the run answers whatever
|
|
782
|
+
// those hold at that point, usually nothing (flow-builder-sdk#742).
|
|
783
|
+
// An `action: 'End'` outcome already ends the run and needs no arm.
|
|
784
784
|
const unrouted = exits.filter((e) => !seenExit.has(e.port) && e.endsProcess !== true);
|
|
785
785
|
if (unrouted.length > 0) {
|
|
786
786
|
const outs = built.outputs.map((o) => o.name);
|
|
@@ -790,8 +790,9 @@ function checkFlow(built, ancestors, opts = {}) {
|
|
|
790
790
|
+ `${unrouted.map((e) => JSON.stringify(e.value)).join(', ')}. Each compiles to an End node, `
|
|
791
791
|
+ `so the run finishes there`
|
|
792
792
|
+ (outs.length > 0
|
|
793
|
-
?
|
|
794
|
-
+ `(${outs.join(', ')})
|
|
793
|
+
? `, and nothing on that path sets the flow's declared output${outs.length === 1 ? '' : 's'} `
|
|
794
|
+
+ `(${outs.join(', ')}): the End answers whatever ${outs.length === 1 ? 'its variable holds' : 'their variables hold'}, `
|
|
795
|
+
+ `usually nothing.`
|
|
795
796
|
: '.'),
|
|
796
797
|
suggestion: `{ value: '${unrouted[0].value}', body: (b) => … }`,
|
|
797
798
|
});
|
|
@@ -1295,9 +1296,7 @@ function checkFlow(built, ancestors, opts = {}) {
|
|
|
1295
1296
|
}
|
|
1296
1297
|
}
|
|
1297
1298
|
// The End compile appends when the root path runs out of steps (#941).
|
|
1298
|
-
|
|
1299
|
-
if (fallOff)
|
|
1300
|
-
diags.push(fallOff);
|
|
1299
|
+
diags.push(...checkFallOffEnd(built));
|
|
1301
1300
|
// Check every child flow with the same rules, in its OWN scope — a child's
|
|
1302
1301
|
// steps never see the parent's variables, so its undeclared references,
|
|
1303
1302
|
// duplicate step names and type mismatches are its own. Diagnostics come back
|
|
@@ -1385,32 +1384,29 @@ function checkLoopListEnvelope(loop, connectors, opts, diags) {
|
|
|
1385
1384
|
});
|
|
1386
1385
|
}
|
|
1387
1386
|
/**
|
|
1388
|
-
* NO_RETURN: a path that runs off the end of the flow,
|
|
1389
|
-
* is never written
|
|
1387
|
+
* NO_RETURN: a path that runs off the end of the flow, or off the end of a
|
|
1388
|
+
* `.stepToList` / `.onError` body, where a declared output is never written
|
|
1389
|
+
* (#941, #742).
|
|
1390
1390
|
*
|
|
1391
1391
|
* It asks serialize's question, not "is there a `.return()` anywhere?".
|
|
1392
1392
|
* serialize appends an End exactly when the root walk has tails left
|
|
1393
1393
|
* (`if (finalTails.length)`), and `armTails` mirrors that walk tail for tail.
|
|
1394
1394
|
* So a `.terminate()` path appends no End, and a branch where one arm returns
|
|
1395
|
-
* and the other falls off DOES append one.
|
|
1395
|
+
* and the other falls off DOES append one. A `.stepToList` body is a side exit:
|
|
1396
|
+
* it never rejoins the main path, and when it runs out of steps `emitPortList`
|
|
1397
|
+
* gives it an End of its own. `writtenTails` collects those bodies' tails.
|
|
1396
1398
|
*
|
|
1397
|
-
*
|
|
1399
|
+
* Every such End maps every output from its own variable
|
|
1398
1400
|
* (`result <- $vars.result`), the same as a `.return()` that names no value.
|
|
1399
1401
|
* That loses nothing when the flow declares no outputs, or when each output
|
|
1400
1402
|
* was set on the way: by a `default`, a `{ shared }` input that every root
|
|
1401
|
-
* feeds, or `{ updates }` on a step of that path.
|
|
1402
|
-
* that are not, and the steps the path
|
|
1403
|
-
*
|
|
1404
|
-
* Not covered: the private End a `.stepToList` body gets (#742). `armTails`
|
|
1405
|
-
* skips those bodies, and that End is a different emission site with no
|
|
1406
|
-
* output mappings at all.
|
|
1403
|
+
* feeds, or `{ updates }` on a step of that path. One warning per End: it
|
|
1404
|
+
* names the outputs that are not set, and the steps the path runs out from.
|
|
1407
1405
|
*/
|
|
1408
1406
|
function checkFallOffEnd(built) {
|
|
1409
1407
|
if (built.outputs.length === 0)
|
|
1410
|
-
return
|
|
1408
|
+
return [];
|
|
1411
1409
|
const from = built.triggerId ?? 'start';
|
|
1412
|
-
if (armTails(built.steps, [{ from }]).length === 0)
|
|
1413
|
-
return undefined;
|
|
1414
1410
|
const preset = new Set(built.outputs.filter((o) => o.default !== undefined).map((o) => o.name));
|
|
1415
1411
|
// A shared input sets its variable only on runs that enter through a root
|
|
1416
1412
|
// feeding it, so it counts as preset only when every root does.
|
|
@@ -1419,21 +1415,42 @@ function checkFallOffEnd(built) {
|
|
|
1419
1415
|
if (t.declaredAs === 'output' && roots.every((r) => t.feeds.some((f) => f.root === r.id)))
|
|
1420
1416
|
preset.add(t.name);
|
|
1421
1417
|
}
|
|
1422
|
-
const
|
|
1423
|
-
const
|
|
1424
|
-
|
|
1425
|
-
|
|
1426
|
-
|
|
1427
|
-
|
|
1428
|
-
|
|
1429
|
-
|
|
1430
|
-
code: 'NO_RETURN',
|
|
1431
|
-
message: `Path ending at ${steps.map((x) => `"${x}"`).join(', ')} falls into the End compile appends. `
|
|
1432
|
-
+ `${one ? 'Output' : 'Outputs'} ${missing.map((n) => `"${n}"`).join(', ')} may be unset there. `
|
|
1433
|
-
+ `End the path with .return({ … }) or set ${one ? 'it' : 'them'} with { updates } (a loop body may run zero times).`,
|
|
1434
|
-
step: steps[0],
|
|
1435
|
-
suggestion: `.return({ ${missing.map((n) => `${n}: …`).join(', ')} })`,
|
|
1418
|
+
const sideEnds = [];
|
|
1419
|
+
const rootTails = writtenTails(built.steps, [{ from, written: preset }], { breaks: [], sideEnds });
|
|
1420
|
+
const diags = [];
|
|
1421
|
+
const unset = (tails) => {
|
|
1422
|
+
const missing = built.outputs.map((o) => o.name).filter((n) => tails.some((t) => !t.written.has(n)));
|
|
1423
|
+
if (missing.length === 0)
|
|
1424
|
+
return undefined;
|
|
1425
|
+
return { missing, steps: [...new Set(tails.filter((t) => missing.some((n) => !t.written.has(n))).map((t) => t.from))] };
|
|
1436
1426
|
};
|
|
1427
|
+
// `lead(at)` is the sentence saying where the path ends and which End it falls into.
|
|
1428
|
+
const warn = (lead, u, fix) => {
|
|
1429
|
+
const one = u.missing.length === 1;
|
|
1430
|
+
return {
|
|
1431
|
+
level: 'warning',
|
|
1432
|
+
code: 'NO_RETURN',
|
|
1433
|
+
message: `${lead(u.steps.map((x) => `"${x}"`).join(', '))} ${one ? 'Output' : 'Outputs'} `
|
|
1434
|
+
+ `${u.missing.map((n) => `"${n}"`).join(', ')} may be unset there. ${fix(one ? 'it' : 'them')}`,
|
|
1435
|
+
step: u.steps[0],
|
|
1436
|
+
suggestion: `.return({ ${u.missing.map((n) => `${n}: …`).join(', ')} })`,
|
|
1437
|
+
};
|
|
1438
|
+
};
|
|
1439
|
+
// `armTails` and `writtenTails` hand on the same tails; the root End exists
|
|
1440
|
+
// exactly when there are any.
|
|
1441
|
+
const root = rootTails.length ? unset(rootTails) : undefined;
|
|
1442
|
+
if (root) {
|
|
1443
|
+
diags.push(warn((at) => `Path ending at ${at} falls into the End compile appends.`, root, (it) => `End the path with .return({ … }) or set ${it} with { updates } (a loop body may run zero times).`));
|
|
1444
|
+
}
|
|
1445
|
+
for (const side of sideEnds) {
|
|
1446
|
+
const u = unset(side.tails);
|
|
1447
|
+
if (!u)
|
|
1448
|
+
continue;
|
|
1449
|
+
const call = side.port === 'error' ? '.onError(…)' : `.stepToList('${side.port}', …)`;
|
|
1450
|
+
diags.push(warn((at) => `The ${call} path from "${side.source}" ends at ${at} and does not rejoin the main path, `
|
|
1451
|
+
+ `so compile ends the run there on an End of its own.`, u, (it) => `End the path with .return({ … }), set ${it} with { updates }, or hand it back with .stepToRef('<step>').`));
|
|
1452
|
+
}
|
|
1453
|
+
return diags;
|
|
1437
1454
|
}
|
|
1438
1455
|
/**
|
|
1439
1456
|
* `armTails`, step for step, carrying what each path has surely written. A
|
|
@@ -1447,12 +1464,31 @@ function checkFallOffEnd(built) {
|
|
|
1447
1464
|
* runs at least once, and is left by its end or by a `.break()`, so what all of
|
|
1448
1465
|
* those wrote counts. Every `.parallel` arm runs, so what each surely writes
|
|
1449
1466
|
* counts.
|
|
1467
|
+
*
|
|
1468
|
+
* A `.stepToList` body leaves the main path as it was (as in `armTails`), but
|
|
1469
|
+
* it is walked too: it starts with what was written before its port fired, and
|
|
1470
|
+
* if it hands back tails, serialize ends it on an End of its own, so those
|
|
1471
|
+
* tails go to `sideEnds`. On the `error` port the step failed, so its own
|
|
1472
|
+
* `{ updates }` are not counted (they usually read the output it never made).
|
|
1473
|
+
* Bodies nested anywhere, a plain loop's included, are walked with the same
|
|
1474
|
+
* `sideEnds`.
|
|
1450
1475
|
*/
|
|
1451
|
-
function writtenTails(steps, incoming,
|
|
1476
|
+
function writtenTails(steps, incoming, sinks) {
|
|
1477
|
+
const { breaks, sideEnds } = sinks;
|
|
1452
1478
|
let tails = incoming;
|
|
1479
|
+
// What was written before the last step on this path, i.e. without its own `{ updates }`.
|
|
1480
|
+
let beforeLast = surelyWritten(tails);
|
|
1453
1481
|
for (const st of steps) {
|
|
1454
|
-
if (st.kind === 'stepToList')
|
|
1482
|
+
if (st.kind === 'stepToList') {
|
|
1483
|
+
const source = tails[0]?.from;
|
|
1484
|
+
if (source === undefined)
|
|
1485
|
+
continue;
|
|
1486
|
+
const entry = st.port === 'error' ? beforeLast : surelyWritten(tails);
|
|
1487
|
+
const ends = writtenTails(st.body, [{ from: source, written: entry }], sinks);
|
|
1488
|
+
if (ends.length)
|
|
1489
|
+
sideEnds.push({ port: st.port, source, tails: ends });
|
|
1455
1490
|
continue;
|
|
1491
|
+
}
|
|
1456
1492
|
if (st.kind === 'stepToRef') {
|
|
1457
1493
|
if (st.port === 'output')
|
|
1458
1494
|
tails = [];
|
|
@@ -1465,8 +1501,9 @@ function writtenTails(steps, incoming, breaks) {
|
|
|
1465
1501
|
if (st.kind === 'return' || st.kind === 'terminate')
|
|
1466
1502
|
return [];
|
|
1467
1503
|
const before = surelyWritten(tails);
|
|
1504
|
+
beforeLast = before;
|
|
1468
1505
|
const written = new Set([...before, ...Object.keys(st.options?.updates ?? {})]);
|
|
1469
|
-
const arm = (body) => writtenTails(body, [{ from: st.name, written }],
|
|
1506
|
+
const arm = (body) => writtenTails(body, [{ from: st.name, written }], sinks);
|
|
1470
1507
|
if (st.kind === 'action') {
|
|
1471
1508
|
tails = actionTails(st.name, st.spec, st.options?.version)
|
|
1472
1509
|
.map((t) => ({ from: t.from, written }));
|
|
@@ -1482,7 +1519,7 @@ function writtenTails(steps, incoming, breaks) {
|
|
|
1482
1519
|
}
|
|
1483
1520
|
else if (st.kind === 'doWhile') {
|
|
1484
1521
|
const exits = [];
|
|
1485
|
-
exits.push(...writtenTails(st.body, [{ from: st.name, written }], exits));
|
|
1522
|
+
exits.push(...writtenTails(st.body, [{ from: st.name, written }], { breaks: exits, sideEnds }));
|
|
1486
1523
|
surelyWritten(exits).forEach((n) => written.add(n));
|
|
1487
1524
|
tails = [{ from: st.name, written }];
|
|
1488
1525
|
}
|
|
@@ -1492,6 +1529,9 @@ function writtenTails(steps, incoming, breaks) {
|
|
|
1492
1529
|
tails = [{ from: st.name, written }];
|
|
1493
1530
|
}
|
|
1494
1531
|
else {
|
|
1532
|
+
// A plain loop's body writes nothing for sure, but its side exits still end runs.
|
|
1533
|
+
if (st.kind === 'loop')
|
|
1534
|
+
writtenTails(st.body, [{ from: st.name, written }], { breaks: [], sideEnds });
|
|
1495
1535
|
tails = [{ from: st.name, written }];
|
|
1496
1536
|
}
|
|
1497
1537
|
}
|
package/dist/decompile.js
CHANGED
|
@@ -1710,6 +1710,27 @@ function emitEventSubscription(node, imp, inputNames) {
|
|
|
1710
1710
|
['folder', folder !== undefined ? str(folder) : undefined],
|
|
1711
1711
|
]) + unboundMarker(node, { connection: conn, folder }, connector, event);
|
|
1712
1712
|
}
|
|
1713
|
+
/**
|
|
1714
|
+
* Read back the expression template older SDK builds emitted on an in-solution
|
|
1715
|
+
* `agent()` input (#1013): `{ type: 'literal', expression: '{{ <js> }}' }`.
|
|
1716
|
+
* serialize now emits the platform's `{ type: 'jsExpression', expression }`
|
|
1717
|
+
* instead, but `.flow` files written between 2026-08-10 and the fix still carry
|
|
1718
|
+
* the template, and the runtime evaluates it (the agent receives the value, not
|
|
1719
|
+
* the braces). So on an in-solution agent node a literal that is exactly one
|
|
1720
|
+
* `{{ … }}` is that expression, and it decompiles to the reference it was
|
|
1721
|
+
* written from rather than to a string. Anything else is returned unchanged.
|
|
1722
|
+
*/
|
|
1723
|
+
function legacyAgentTemplateInput(v) {
|
|
1724
|
+
if (!v || typeof v !== 'object' || Array.isArray(v))
|
|
1725
|
+
return v;
|
|
1726
|
+
const o = v;
|
|
1727
|
+
if (o.type !== 'literal' || typeof o.expression !== 'string')
|
|
1728
|
+
return v;
|
|
1729
|
+
const m = /^\{\{\s*([\s\S]+?)\s*\}\}$/.exec(o.expression);
|
|
1730
|
+
if (!m || m[1].includes('}}') || m[1].includes('{{'))
|
|
1731
|
+
return v;
|
|
1732
|
+
return { ...o, type: 'jsExpression', expression: m[1] };
|
|
1733
|
+
}
|
|
1713
1734
|
function emitPublishedResource(node, imp, inputNames) {
|
|
1714
1735
|
const FAMILIES = [
|
|
1715
1736
|
{ prefix: 'uipath.core.rpa-workflow.', factory: 'rpaWorkflow' },
|
|
@@ -1751,6 +1772,10 @@ function emitPublishedResource(node, imp, inputNames) {
|
|
|
1751
1772
|
// author's map, so it comes back off here.
|
|
1752
1773
|
const fireAndForget = unwrapPlain(inputs.fireAndForget) === true;
|
|
1753
1774
|
delete inputs.fireAndForget;
|
|
1775
|
+
if (family.factory === 'agent' && (def?.model?.isInSolution === true || def?.model?.projectId !== undefined)) {
|
|
1776
|
+
for (const [k, v] of Object.entries(inputs))
|
|
1777
|
+
inputs[k] = legacyAgentTemplateInput(v);
|
|
1778
|
+
}
|
|
1754
1779
|
const inputRows = Object.entries(inputs)
|
|
1755
1780
|
.map(([k, v]) => [k, emitVal(v, imp, inputNames)]);
|
|
1756
1781
|
const schema = def?.outputDefinition?.output?.schema?.properties;
|
package/dist/flow-sdk.d.ts
CHANGED
|
@@ -881,6 +881,10 @@ declare class StepList {
|
|
|
881
881
|
* The body is its own path. It ends by answering (`.return`), stopping the run
|
|
882
882
|
* (`.terminate`), or handing control back with `.stepToRef(...)`; a body that
|
|
883
883
|
* simply runs out of steps gets its own End, exactly as an error handler does.
|
|
884
|
+
* It does not rejoin the main path. That End maps each flow output from its
|
|
885
|
+
* variable, as the End a flow falls off the bottom into does, so set the
|
|
886
|
+
* outputs on the way with `{ updates }` or end the body with `.return({…})`;
|
|
887
|
+
* `check` warns NO_RETURN when an output is left unset on that path.
|
|
884
888
|
*
|
|
885
889
|
* The main path is untouched — an edge out of a NON-default port is a side exit,
|
|
886
890
|
* so whatever you chain after this call still belongs to the step's normal
|
package/dist/flow-sdk.js
CHANGED
|
@@ -495,6 +495,10 @@ class StepList {
|
|
|
495
495
|
* The body is its own path. It ends by answering (`.return`), stopping the run
|
|
496
496
|
* (`.terminate`), or handing control back with `.stepToRef(...)`; a body that
|
|
497
497
|
* simply runs out of steps gets its own End, exactly as an error handler does.
|
|
498
|
+
* It does not rejoin the main path. That End maps each flow output from its
|
|
499
|
+
* variable, as the End a flow falls off the bottom into does, so set the
|
|
500
|
+
* outputs on the way with `{ updates }` or end the body with `.return({…})`;
|
|
501
|
+
* `check` warns NO_RETURN when an output is left unset on that path.
|
|
498
502
|
*
|
|
499
503
|
* The main path is untouched — an edge out of a NON-default port is a side exit,
|
|
500
504
|
* so whatever you chain after this call still belongs to the step's normal
|
package/dist/serialize.js
CHANGED
|
@@ -4578,10 +4578,11 @@ function isTypeDesc(type) {
|
|
|
4578
4578
|
*
|
|
4579
4579
|
* Emitting the full set is not cosmetic. The product's output-mapping rule warns
|
|
4580
4580
|
* `MISSING_OUTPUT_MAPPING` once per (End node × unmapped output variable), and
|
|
4581
|
-
*
|
|
4582
|
-
*
|
|
4583
|
-
* `.return(…)`
|
|
4584
|
-
*
|
|
4581
|
+
* an End with no map answers the run with nothing. So every End site goes
|
|
4582
|
+
* through `emitEnd`, which calls this: the implicit End a flow falls off the
|
|
4583
|
+
* bottom into, a `.return(…)`'s End, the End a `.stepToList` / `.onError` body
|
|
4584
|
+
* gets when it runs out of steps, and the End for a `.stepSwitch` exit with no
|
|
4585
|
+
* arm (or a human task's `action: 'End'` outcome).
|
|
4585
4586
|
*/
|
|
4586
4587
|
function endOutputs(scope, explicit = {}) {
|
|
4587
4588
|
const outs = {};
|
|
@@ -4881,6 +4882,32 @@ export function serialize(built, opts = {}) {
|
|
|
4881
4882
|
node.parentId = o.parentId;
|
|
4882
4883
|
return node;
|
|
4883
4884
|
}
|
|
4885
|
+
/**
|
|
4886
|
+
* Emit an End node, map the flow's outputs on it, and wire `tails` into it.
|
|
4887
|
+
*
|
|
4888
|
+
* Every End goes through here: the `.return()` End, the End a root or
|
|
4889
|
+
* subflow path falls off into, a `.stepToList` / `.onError` body that runs
|
|
4890
|
+
* out of steps, a `.stepSwitch` exit with no arm, and a fan-out human task's
|
|
4891
|
+
* `action: 'End'` outcome. An End finishes the run, and the run's outputs are
|
|
4892
|
+
* whatever its `outputs` map says, so an End built without that map answers
|
|
4893
|
+
* with nothing at all, even on a path that set every output variable
|
|
4894
|
+
* (flow-builder-sdk#742). Building the node and its mappings in one place
|
|
4895
|
+
* makes that impossible to forget.
|
|
4896
|
+
*
|
|
4897
|
+
* `explicit` holds the sources a `.return({…})` named; every other output
|
|
4898
|
+
* maps to its own variable (`endOutputs`).
|
|
4899
|
+
*/
|
|
4900
|
+
function emitEnd(scope, id, tails, o = {}) {
|
|
4901
|
+
const node = makeNode(NODE_TYPE.end, id, o.label ?? 'End', { parentId: o.parentId, requestedVersion: o.requestedVersion });
|
|
4902
|
+
node.inputs = {};
|
|
4903
|
+
const outs = endOutputs(scope, o.explicit);
|
|
4904
|
+
if (Object.keys(outs).length)
|
|
4905
|
+
node.outputs = outs;
|
|
4906
|
+
scope.nodes.push(node);
|
|
4907
|
+
for (const t of tails)
|
|
4908
|
+
addEdge(scope, t, id);
|
|
4909
|
+
return node;
|
|
4910
|
+
}
|
|
4884
4911
|
/**
|
|
4885
4912
|
* Emit a child flow into its own scope and register it under the calling
|
|
4886
4913
|
* node's id — that key is how the format names a subflow body, and how
|
|
@@ -4921,19 +4948,10 @@ export function serialize(built, opts = {}) {
|
|
|
4921
4948
|
start.inputs = {};
|
|
4922
4949
|
scope.nodes.push(start);
|
|
4923
4950
|
const tails = emit(child.steps, [{ node: startId, port: 'output' }], scope);
|
|
4924
|
-
|
|
4925
|
-
|
|
4926
|
-
|
|
4927
|
-
end
|
|
4928
|
-
// Same as the root's implicit End — mapped against the SUBFLOW's own
|
|
4929
|
-
// outputs, which is the scope the product validates a subflow body in.
|
|
4930
|
-
const outs = endOutputs(scope);
|
|
4931
|
-
if (Object.keys(outs).length)
|
|
4932
|
-
end.outputs = outs;
|
|
4933
|
-
scope.nodes.push(end);
|
|
4934
|
-
for (const t of tails)
|
|
4935
|
-
addEdge(scope, t, endId);
|
|
4936
|
-
}
|
|
4951
|
+
// Same as the root's implicit End — mapped against the SUBFLOW's own
|
|
4952
|
+
// outputs, which is the scope the product validates a subflow body in.
|
|
4953
|
+
if (tails.length)
|
|
4954
|
+
emitEnd(scope, uid(scope, 'end'), tails);
|
|
4937
4955
|
const globals = [];
|
|
4938
4956
|
for (const inp of child.inputs)
|
|
4939
4957
|
globals.push({ id: inp.name, name: inp.name, direction: 'in', type: inp.type, triggerNodeId: startId, ...varMeta(inp) });
|
|
@@ -5266,18 +5284,15 @@ export function serialize(built, opts = {}) {
|
|
|
5266
5284
|
// three published families — 58 of 61 deployed agent instances carry no
|
|
5267
5285
|
// node-level `model` at all.
|
|
5268
5286
|
delete node.model;
|
|
5287
|
+
// Expression inputs stay `=js:` strings here, published or in-solution, and
|
|
5288
|
+
// the format migration wraps them as `{ type: 'jsExpression', expression }`
|
|
5289
|
+
// — the shape flow-core writes for an in-solution agent (52 of 54 v1
|
|
5290
|
+
// expression inputs, 09-01 → 10-08; the other 2 are bare `=js:` strings,
|
|
5291
|
+
// none is a `{{ }}` template). A `{ type: 'literal',
|
|
5292
|
+
// expression: '{{ … }}' }` template used to be emitted instead (#1013): it
|
|
5293
|
+
// ran, but it is the same envelope as a literal string, so decompile read
|
|
5294
|
+
// it back as one.
|
|
5269
5295
|
node.inputs = renderMap(s.inputs, scope.rename);
|
|
5270
|
-
if (inSolution) {
|
|
5271
|
-
for (const [name, value] of Object.entries(node.inputs)) {
|
|
5272
|
-
if (typeof value === 'string' && value.startsWith('=js:')) {
|
|
5273
|
-
node.inputs[name] = {
|
|
5274
|
-
type: 'literal',
|
|
5275
|
-
expression: `{{ ${value.slice(4)} }}`,
|
|
5276
|
-
fieldType: def.inputDefinition?.properties?.[name]?.type ?? 'string',
|
|
5277
|
-
};
|
|
5278
|
-
}
|
|
5279
|
-
}
|
|
5280
|
-
}
|
|
5281
5296
|
scope.nodes.push(node);
|
|
5282
5297
|
for (const t of tails)
|
|
5283
5298
|
addEdge(scope, t, id);
|
|
@@ -6491,11 +6506,7 @@ export function serialize(built, opts = {}) {
|
|
|
6491
6506
|
* outcome.
|
|
6492
6507
|
*/
|
|
6493
6508
|
function endExit(scope, nodeId, port, stepName, parentId) {
|
|
6494
|
-
|
|
6495
|
-
const end = makeNode(NODE_TYPE.end, endId, 'End', parentId ? { parentId } : {});
|
|
6496
|
-
end.inputs = {};
|
|
6497
|
-
scope.nodes.push(end);
|
|
6498
|
-
addEdge(scope, { node: nodeId, port }, endId);
|
|
6509
|
+
emitEnd(scope, uid(scope, `${stepName}${port.charAt(0).toUpperCase()}${port.slice(1)}End`), [{ node: nodeId, port }], { parentId });
|
|
6499
6510
|
}
|
|
6500
6511
|
/**
|
|
6501
6512
|
* Refuse a side exit on a human task's port that the step's tails already
|
|
@@ -6541,13 +6552,12 @@ export function serialize(built, opts = {}) {
|
|
|
6541
6552
|
node.inputs = { ...(node.inputs ?? {}), errorHandlingEnabled: true };
|
|
6542
6553
|
}
|
|
6543
6554
|
const handlerTails = emit(handler, [{ node: nodeId, port: step.port }], scope, parentId, breakTarget);
|
|
6555
|
+
// A body that runs out of steps ends the run on an End of its own (no
|
|
6556
|
+
// merge-back is inferred). That End maps the outputs like any other, so a
|
|
6557
|
+
// body that set them with `{ updates }` still answers (#742).
|
|
6544
6558
|
if (handlerTails.length) {
|
|
6545
6559
|
const endId = uid(scope, `${source}${step.port === 'error' ? 'Error' : step.port.charAt(0).toUpperCase() + step.port.slice(1)}End`);
|
|
6546
|
-
|
|
6547
|
-
end.inputs = {};
|
|
6548
|
-
scope.nodes.push(end);
|
|
6549
|
-
for (const t of handlerTails)
|
|
6550
|
-
addEdge(scope, t, endId);
|
|
6560
|
+
emitEnd(scope, endId, handlerTails, { parentId });
|
|
6551
6561
|
}
|
|
6552
6562
|
return tails;
|
|
6553
6563
|
}
|
|
@@ -6669,8 +6679,8 @@ export function serialize(built, opts = {}) {
|
|
|
6669
6679
|
routed.add(exit.port);
|
|
6670
6680
|
// Arms CONVERGE, exactly as `.switch()`'s do: every arm that does not
|
|
6671
6681
|
// end in `.return()` contributes its tail, so the next step fans in
|
|
6672
|
-
// from all of them. (`.stepToList` instead gives
|
|
6673
|
-
// End
|
|
6682
|
+
// from all of them. (`.stepToList` instead gives an arm that runs out
|
|
6683
|
+
// of steps an End of its own; `emitEnd` maps the outputs on it,
|
|
6674
6684
|
// flow-builder-sdk#742.)
|
|
6675
6685
|
const caseTails = emit(c.body, [{ node: nodeId, port: exit.port }], scope, parentId, breakTarget);
|
|
6676
6686
|
if (caseTails.length === 0 && stopsAtEnd(c.body))
|
|
@@ -6953,8 +6963,6 @@ export function serialize(built, opts = {}) {
|
|
|
6953
6963
|
// source must be able to ask for the id the original file had, or the
|
|
6954
6964
|
// round trip cannot reproduce its own layout block (ReturnOptions.name).
|
|
6955
6965
|
const id = uid(scope, step.options?.name ?? 'end');
|
|
6956
|
-
const node = makeNode(NODE_TYPE.end, id, step.options?.label ?? 'End', { parentId, requestedVersion: step.options?.version });
|
|
6957
|
-
node.inputs = {};
|
|
6958
6966
|
const explicit = {};
|
|
6959
6967
|
const updates = [];
|
|
6960
6968
|
for (const [name, expr] of Object.entries(step.values)) {
|
|
@@ -6965,12 +6973,7 @@ export function serialize(built, opts = {}) {
|
|
|
6965
6973
|
// variable; a variableUpdate for one would be a no-op assignment.
|
|
6966
6974
|
updates.push({ variableId: name, expression: src });
|
|
6967
6975
|
}
|
|
6968
|
-
|
|
6969
|
-
if (Object.keys(outs).length)
|
|
6970
|
-
node.outputs = outs;
|
|
6971
|
-
scope.nodes.push(node);
|
|
6972
|
-
for (const t of tails)
|
|
6973
|
-
addEdge(scope, t, id);
|
|
6976
|
+
emitEnd(scope, id, tails, { label: step.options?.label, parentId, requestedVersion: step.options?.version, explicit });
|
|
6974
6977
|
const extra = step.options?.updates ?? {};
|
|
6975
6978
|
for (const name of Object.keys(extra)) {
|
|
6976
6979
|
if (name in step.values) {
|
|
@@ -6986,20 +6989,11 @@ export function serialize(built, opts = {}) {
|
|
|
6986
6989
|
return tails;
|
|
6987
6990
|
}
|
|
6988
6991
|
const finalTails = emit(built.steps, [{ node: built.triggerId ?? 'start', port: 'output' }], root);
|
|
6989
|
-
|
|
6990
|
-
|
|
6991
|
-
|
|
6992
|
-
|
|
6993
|
-
|
|
6994
|
-
// flow, so it maps the flow's outputs — each to itself, since no `.return`
|
|
6995
|
-
// named a value here.
|
|
6996
|
-
const outs = endOutputs(root);
|
|
6997
|
-
if (Object.keys(outs).length)
|
|
6998
|
-
node.outputs = outs;
|
|
6999
|
-
root.nodes.push(node);
|
|
7000
|
-
for (const t of finalTails)
|
|
7001
|
-
addEdge(root, t, id);
|
|
7002
|
-
}
|
|
6992
|
+
// The implicit End a flow falls off the bottom into still terminates the
|
|
6993
|
+
// flow, so it maps the flow's outputs — each to itself, since no `.return`
|
|
6994
|
+
// named a value here.
|
|
6995
|
+
if (finalTails.length)
|
|
6996
|
+
emitEnd(root, uid(root, 'end'), finalTails);
|
|
7003
6997
|
// ── Additional entry points (design §5.1) ────────────────────────────────
|
|
7004
6998
|
// Emitted AFTER the shared body so their prefixes can join it by name. Once a
|
|
7005
6999
|
// flow has more than one root, every root carries the platform's entry-point
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@uipath/maestro-builder-sdk",
|
|
3
|
-
"version": "6.17.
|
|
3
|
+
"version": "6.17.3",
|
|
4
4
|
"description": "Build UiPath Flow, Case, and BPMN artifacts by writing TypeScript.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"homepage": "https://docs.uipath.com/maestro",
|
|
@@ -92,5 +92,5 @@
|
|
|
92
92
|
"@types/node": "^22.7.0",
|
|
93
93
|
"esbuild": "^0.28.1"
|
|
94
94
|
},
|
|
95
|
-
"gitref": "
|
|
95
|
+
"gitref": "8da4aeeb1592a342b2ac705939e646cd77baa891"
|
|
96
96
|
}
|