@uipath/flow-tool 1.200.0-preview.120 → 1.201.0-preview.121
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/authoring-rezk32bm.js +312 -0
- package/dist/{browser-strategy-d4zm14fb.js → browser-strategy-rkcvc6tn.js} +1 -1
- package/dist/{conversion-COFE4RVO-6gembcyk.js → conversion-W6HMHBWW-jnk9z7rw.js} +46 -38
- package/dist/{de-JT3SUGT4-msgpbdge.js → de-B2KIY5TC-81f703v3.js} +14 -5
- package/dist/{de-3RMZHIP6-1na18a74.js → de-K6MLR24N-00fjz82b.js} +474 -51
- package/dist/{de-3RMZHIP6-QW5DEMLQ-fw64syvn.js → de-K6MLR24N-5N5XGLH6-gbwpvdz4.js} +476 -53
- package/dist/{de-LVBY3VVG-tc58p3x6.js → de-WMKOGI7B-r1821wpe.js} +16 -7
- package/dist/de-XLT4QPIP-0rtw349w.js +32 -0
- package/dist/{en-ZBJX4WAU-L7DPQ3FB-4saj6t9b.js → en-ILA4HPE5-ALHGESZE-zrv4qss8.js} +325 -7
- package/dist/{en-ZBJX4WAU-5yq8e307.js → en-ILA4HPE5-fhwvq92r.js} +322 -4
- package/dist/{en-H54NJOH6-30ht8n64.js → en-P6PNWNTO-g1f6cjh5.js} +10 -4
- package/dist/en-UNT7BE26-rhh65jry.js +24 -0
- package/dist/{en-4UFXRW7N-mqabr9tf.js → en-X4DLPKLJ-dt1wtdm7.js} +17 -5
- package/dist/{es-GJOELELT-w1d3agm2.js → es-BBX4AUJX-h99fcr53.js} +14 -5
- package/dist/{es-CI4AE5B5-55sgqk64.js → es-BVPGJUWA-9gk2g9yb.js} +16 -7
- package/dist/{es-EYHYM5C4-RMLHZ2LF-s0fc3pd6.js → es-HTQSD352-YTAEDCE5-nhsbg581.js} +470 -47
- package/dist/{es-EYHYM5C4-3bajghda.js → es-HTQSD352-m9rr3f0g.js} +468 -45
- package/dist/{es-MX-AMZIGU27-5pembt6k.js → es-MX-3SP2SSV6-f20qspbr.js} +14 -5
- package/dist/{es-MX-QSQP2KWV-qvgkwvz2.js → es-MX-FOX525CG-87g500gr.js} +474 -51
- package/dist/{es-MX-QSQP2KWV-XR5DWKNF-kp7pk2s4.js → es-MX-FOX525CG-HLM27OEL-whr0t9v3.js} +476 -53
- package/dist/es-MX-OKNDG2NH-c1k1s1tg.js +32 -0
- package/dist/{es-MX-OLZNAYY5-30cmv1dx.js → es-MX-U6YL5KQX-ynwxdjr8.js} +16 -7
- package/dist/es-NQICVYSQ-aa9z3nhs.js +32 -0
- package/dist/{fr-FXFJQRD3-F5HV2VS7-pwdze89j.js → fr-54THJ4QH-IGABNGU6-fpzw2mba.js} +475 -52
- package/dist/{fr-FXFJQRD3-rfztd3e5.js → fr-54THJ4QH-d6ezjbhw.js} +473 -50
- package/dist/{fr-CCN6ZO5E-x2akzsjt.js → fr-EKTTDR7Z-bmpwp31r.js} +16 -7
- package/dist/{fr-LYFYWWCC-nn4reak0.js → fr-FSTBVVGK-t3y57xrb.js} +14 -5
- package/dist/fr-PFHIL7YZ-cxnshwa8.js +32 -0
- package/dist/index-6hp3p3eq.js +16489 -0
- package/dist/index-9f8q2ege.js +2058 -0
- package/dist/index-hsadteg4.js +634 -0
- package/dist/{index-w23k88b5.js → index-p50kx6jv.js} +202 -64
- package/dist/{index-nfn4t0c4.js → index-q59ephfh.js} +72 -13
- package/dist/index.js +22 -16
- package/dist/init.js +19 -13
- package/dist/{ja-IRXXIG6Q-b3att2bw.js → ja-FW33BJBW-htfk4d8t.js} +14 -5
- package/dist/{ja-G7NJYQ42-ve4gadd7.js → ja-MHUPLSWO-3qwy4jc0.js} +470 -47
- package/dist/{ja-G7NJYQ42-X76DVL7A-9p8b5115.js → ja-MHUPLSWO-CS3KE4Y3-mbtkzwd7.js} +472 -49
- package/dist/ja-P4OSE367-8ywxep9a.js +32 -0
- package/dist/{ja-O2NEV5D6-nt9rhd8c.js → ja-Y2YBTXNN-96cvy5av.js} +16 -7
- package/dist/js-yaml-cggj6w7q.js +3145 -0
- package/dist/{ko-M32WKZ3I-5td5jsw7.js → ko-PDO5AXNW-d653t4pc.js} +14 -5
- package/dist/ko-PYOS2KJP-5sbj5bp8.js +32 -0
- package/dist/{ko-7XWV2SEQ-chk3y7aj.js → ko-S33XAV26-cxf4dn2t.js} +16 -7
- package/dist/{ko-QDHECDTM-6WJAKMQI-0fpd4dqj.js → ko-XPJTXIKK-DNSW4KYQ-956vp61f.js} +469 -46
- package/dist/{ko-QDHECDTM-zmbqs9pr.js → ko-XPJTXIKK-w1hs4px7.js} +467 -44
- package/dist/{node-8d0q6ch7.js → node-f062h75p.js} +7610 -7319
- package/dist/node-strategy-8gzp67xs.js +350 -0
- package/dist/{packager-tool-hkrpcn6d.js → packager-tool-03knb0er.js} +341 -23
- package/dist/packager-tool-1cb0d5e0.js +237 -0
- package/dist/{packager-tool-25z1hdbm.js → packager-tool-1g6958de.js} +21 -8
- package/dist/{packager-tool-kgkv7f24.js → packager-tool-1gt6js73.js} +258 -1069
- package/dist/{packager-tool-973f0r2g.js → packager-tool-1yy9x4vk.js} +17 -5
- package/dist/{packager-tool-jqtspg41.js → packager-tool-3wf3tkrc.js} +11 -5
- package/dist/{packager-tool-1ps2qeqg.js → packager-tool-5arsyj36.js} +3 -2
- package/dist/packager-tool-6a7wdv5z.js +36187 -0
- package/dist/{packager-tool-wm273rrd.js → packager-tool-9x76z587.js} +238 -287
- package/dist/packager-tool-b0s5d4ek.js +10671 -0
- package/dist/{packager-tool-qz3cg5tg.js → packager-tool-cqrsre00.js} +340 -22
- package/dist/{packager-tool-9bnpe8n1.js → packager-tool-ef2aypt3.js} +21691 -16062
- package/dist/packager-tool-gbgfwx8f.js +2 -0
- package/dist/{packager-tool-3ahtr7dn.js → packager-tool-jeh5j2xy.js} +8768 -3862
- package/dist/packager-tool-jpcm3xas.js +12 -0
- package/dist/{packager-tool-231njxzf.js → packager-tool-neavt1k3.js} +1 -1
- package/dist/packager-tool-nkrmjr3a.js +915 -0
- package/dist/packager-tool-ny53xmsd.js +5377 -0
- package/dist/{packager-tool-fr5b9qs6.js → packager-tool-pvgqbm48.js} +3 -3
- package/dist/packager-tool-qa9gftnj.js +31 -0
- package/dist/{packager-tool-2q2qddqr.js → packager-tool-qfp49pq4.js} +994 -544
- package/dist/packager-tool-v2p6g3fd.js +41 -0
- package/dist/{packager-tool-95ht91a8.js → packager-tool-xa2xwzrq.js} +22347 -38047
- package/dist/packager-tool-y3dezh8k.js +21 -0
- package/dist/packager-tool.js +12 -10
- package/dist/{pt-VXJT4WUJ-nwkc9k2p.js → pt-4JEPEAST-40npwxyw.js} +471 -48
- package/dist/{pt-VXJT4WUJ-M3IR7CL5-1f2ph8gm.js → pt-4JEPEAST-JO5WN33S-ccdbdab2.js} +473 -50
- package/dist/{pt-BR-Z4J3LEEO-cf33d2zv.js → pt-BR-JO45SCNI-4kbfnzc4.js} +16 -7
- package/dist/{pt-BR-57EHXZKB-8g83gr5g.js → pt-BR-LQH3RSBB-kyb4jmcw.js} +14 -5
- package/dist/{pt-BR-SADBLGXA-WG4Q265J-w9tshygt.js → pt-BR-TV7NR3ID-PDSSHRHU-nddwzj29.js} +472 -49
- package/dist/{pt-BR-SADBLGXA-yd89fdy2.js → pt-BR-TV7NR3ID-vgd26pj1.js} +470 -47
- package/dist/pt-BR-Z3TUDJHM-n7ngej6s.js +32 -0
- package/dist/{pt-VNM2XWHA-62z625rh.js → pt-JLZYSSXX-7jth254x.js} +14 -5
- package/dist/pt-KSBWHAVQ-hd52bpsz.js +32 -0
- package/dist/{pt-CRSN3TCU-txxbbcxm.js → pt-W3NA4LIZ-f02gapvs.js} +16 -7
- package/dist/{ro-RISZ75LL-zwztp9j5.js → ro-E2EBPQGT-vn573vcr.js} +14 -5
- package/dist/{ro-7JHKFGCH-H3RYKSCL-4w49rx4m.js → ro-RKJ74FV3-QS3I6XKJ-kb31d85k.js} +475 -52
- package/dist/{ro-7JHKFGCH-hbtkeqdr.js → ro-RKJ74FV3-qn0ey39v.js} +473 -50
- package/dist/ro-VZUZTAMR-tccygznf.js +32 -0
- package/dist/{ro-WMQEVD7D-6mtq0e6b.js → ro-WLKX6HF5-fcbe2zz8.js} +16 -7
- package/dist/ru-GSCT4ARZ-3TVTUGWP-bbg6360z.js +15 -0
- package/dist/{serialization-3RH6P643-zxj2yyfh.js → serialization-GTFWODSH-ajd6b7n2.js} +14 -10
- package/dist/services/flow-migration-check.d.ts +15 -11
- package/dist/services/flow-validate-service.d.ts +119 -5
- package/dist/services/node-service.d.ts +46 -0
- package/dist/services/node-validators/ceql-query-validator.d.ts +36 -10
- package/dist/services/node-validators/expression-prefix-validator.d.ts +3 -2
- package/dist/services/node-validators/index.d.ts +2 -1
- package/dist/services/project-artifacts.d.ts +14 -1
- package/dist/tool.js +22 -16
- package/dist/{tr-UCMB7W3T-xmxp2naq.js → tr-3U2W2XCA-zg3zcmq3.js} +15 -6
- package/dist/tr-W4AVRSQ4-bt3qqqdy.js +32 -0
- package/dist/{tr-Q6IHBFK7-BEUWO5CI-29rgfwjy.js → tr-X7R6GQNB-VMEZAWRJ-vdbjqw23.js} +484 -61
- package/dist/{tr-Q6IHBFK7-zs9rsm1b.js → tr-X7R6GQNB-shwv16dz.js} +482 -59
- package/dist/{tr-AUPQF34V-y3dhtj0w.js → tr-ZUUSMHER-pfn5dq1r.js} +14 -5
- package/dist/utils/flow-io.d.ts +1 -1
- package/dist/validation.js +19 -13
- package/dist/zh-CN-6YRAN57T-j7jp34ws.js +32 -0
- package/dist/{zh-CN-3BPA3WIX-JDICNKGH-m87940q5.js → zh-CN-FEZ24J4A-LSEMG63K-db8kf6rm.js} +472 -49
- package/dist/{zh-CN-3BPA3WIX-c5ts2m5v.js → zh-CN-FEZ24J4A-q5b5x20w.js} +470 -47
- package/dist/{zh-CN-2QOHEFC5-ryjb2byk.js → zh-CN-IPZYQR3P-1h76csc4.js} +16 -7
- package/dist/{zh-CN-3INOX2E5-txhr8e18.js → zh-CN-YFKQ7HBX-w98q5zqf.js} +14 -5
- package/dist/{zh-TW-UI34YLZQ-j79rg6b7.js → zh-TW-CP5PCVEJ-wvbxf7c7.js} +14 -5
- package/dist/{zh-TW-QCJEQC5S-b1v637hd.js → zh-TW-GKSCT6NW-4n1yfre0.js} +464 -41
- package/dist/{zh-TW-QCJEQC5S-DQ3454QP-y8vvrebz.js → zh-TW-GKSCT6NW-JLMWTDAF-g2smq1gm.js} +466 -43
- package/dist/zh-TW-SO2245GN-m5kh88bg.js +32 -0
- package/dist/{zh-TW-Q5QSSTS6-6y7yjbbn.js → zh-TW-YPVSQVGT-wbybwpwt.js} +16 -7
- package/package.json +2 -2
- package/dist/de-CS2KUCZ6-j5a38g9p.js +0 -20
- package/dist/de-LVBY3VVG-gyt1s22e.js +0 -134
- package/dist/en-4UFXRW7N-p8f4r47q.js +0 -98
- package/dist/en-IMUXHKKC-3zcks7ks.js +0 -16
- package/dist/es-CI4AE5B5-yfv6qwgr.js +0 -134
- package/dist/es-MX-3MRZG6V4-9z56akxp.js +0 -20
- package/dist/es-MX-OLZNAYY5-6f3m32xs.js +0 -134
- package/dist/es-QBAGOKHO-b2azze22.js +0 -20
- package/dist/fr-CCN6ZO5E-srd8q9ne.js +0 -134
- package/dist/fr-HVOCQCNI-1zn75qzy.js +0 -20
- package/dist/ja-O2NEV5D6-pvhh5bag.js +0 -134
- package/dist/ja-VYAZOLWC-nbagzgre.js +0 -20
- package/dist/ko-7XWV2SEQ-9dz74aam.js +0 -134
- package/dist/ko-EZTVBPMZ-9qq2mrrz.js +0 -20
- package/dist/node-strategy-7bvg07kx.js +0 -63
- package/dist/packager-tool-060a9knt.js +0 -11
- package/dist/packager-tool-1q1bg65m.js +0 -5046
- package/dist/packager-tool-3yjtbs1y.js +0 -95
- package/dist/packager-tool-4f38v0ry.js +0 -1161
- package/dist/packager-tool-ahm4ymrp.js +0 -12
- package/dist/packager-tool-ek2dnj9h.js +0 -13
- package/dist/packager-tool-q94g73f7.js +0 -17392
- package/dist/pt-3TKAWGMJ-58y42w7x.js +0 -20
- package/dist/pt-BR-ASMQE3WA-9wb74cqx.js +0 -20
- package/dist/pt-BR-Z4J3LEEO-t28qfgyc.js +0 -134
- package/dist/pt-CRSN3TCU-s7hxhsxv.js +0 -134
- package/dist/ro-A65KBZGL-qnwqqezz.js +0 -20
- package/dist/ro-WMQEVD7D-h0kamt4a.js +0 -134
- package/dist/ru-GSCT4ARZ-YSDBAAM2-ha88ztsj.js +0 -15
- package/dist/ru-WBLQ5B2U-n1e7fn8t.js +0 -10
- package/dist/tr-UCMB7W3T-xv61hggk.js +0 -134
- package/dist/tr-Z7YHMEX6-daq3vjbh.js +0 -20
- package/dist/zh-CN-2QOHEFC5-meycvgab.js +0 -134
- package/dist/zh-CN-W7FK4GLU-vn3n8fcq.js +0 -20
- package/dist/zh-TW-PHOEUN3F-t56cjsgw.js +0 -20
- package/dist/zh-TW-Q5QSSTS6-65s6kte4.js +0 -134
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import {
|
|
2
2
|
registerPackagerFactories
|
|
3
|
-
} from "./packager-tool-
|
|
3
|
+
} from "./packager-tool-neavt1k3.js";
|
|
4
4
|
import {
|
|
5
5
|
flowInitAsync
|
|
6
|
-
} from "./packager-tool-
|
|
6
|
+
} from "./packager-tool-1g6958de.js";
|
|
7
7
|
import {
|
|
8
8
|
ERROR_SOURCE_PORT,
|
|
9
9
|
FlowEvalFileStore,
|
|
@@ -35,100 +35,104 @@ import {
|
|
|
35
35
|
stageInlineAgentPackageFiles,
|
|
36
36
|
writePackagingArtifacts,
|
|
37
37
|
writePackagingArtifactsDetailed
|
|
38
|
-
} from "./packager-tool-
|
|
38
|
+
} from "./packager-tool-qfp49pq4.js";
|
|
39
39
|
import {
|
|
40
40
|
ensureProjectId
|
|
41
41
|
} from "./packager-tool-7yjpwj92.js";
|
|
42
42
|
import {
|
|
43
|
-
ATTACHMENT_INSTRUCTIONS,
|
|
44
|
-
ATTACHMENT_UPLOAD_INSTRUCTIONS,
|
|
45
|
-
ErrorDecision,
|
|
46
43
|
FilterNotSupportedError,
|
|
47
|
-
JobsApi,
|
|
48
44
|
MANAGED_HTTP_CONNECTOR_KEY,
|
|
49
|
-
MIN_INTERVAL_MS,
|
|
50
45
|
MaestroHttpError,
|
|
51
|
-
OutputFormatter,
|
|
52
|
-
PackageFeedsApi,
|
|
53
|
-
PollOutcome,
|
|
54
|
-
ProcessesApi,
|
|
55
|
-
RESULTS,
|
|
56
|
-
ReleasesApi,
|
|
57
|
-
ScreenLogger,
|
|
58
46
|
VALID_PACKAGE_NAME_REGEX,
|
|
59
|
-
addSdkUserAgentHeader,
|
|
60
47
|
allDefinitions,
|
|
61
|
-
appendOption,
|
|
62
48
|
applySavedFilterTree,
|
|
63
49
|
assertActivityMetadataResolved,
|
|
64
50
|
buildInputMetadata,
|
|
65
51
|
buildManagedHttpEssentialConfiguration,
|
|
66
52
|
buildSolutionPackageFromDir,
|
|
67
|
-
catchError,
|
|
68
|
-
createApiClient,
|
|
69
53
|
createConfiguredActivityClient,
|
|
70
|
-
createHiddenDeprecatedTenantOption,
|
|
71
|
-
createOrchestratorConfig,
|
|
72
54
|
createZipFromDir,
|
|
73
55
|
debugPimsGet,
|
|
74
|
-
ensureToolModule,
|
|
75
|
-
extractErrorMessage,
|
|
76
|
-
extractErrorMessageSync,
|
|
77
56
|
extractMultipartParameters,
|
|
78
57
|
extractStartEventId,
|
|
79
58
|
fetchConnectionInfo,
|
|
80
59
|
fetchConnectorMetadata,
|
|
81
|
-
findNearestParentUipxFile,
|
|
82
60
|
findProjectFlowFile,
|
|
83
|
-
findSolutionFile,
|
|
84
61
|
formatTraceLine,
|
|
85
|
-
getAuthContext,
|
|
86
62
|
getFolderInfoById,
|
|
87
|
-
getLoginStatusAsync,
|
|
88
63
|
getPersonalFolderInfo,
|
|
89
64
|
getPersonalFolderKey,
|
|
90
|
-
getSdkUserAgentToken,
|
|
91
65
|
getStudioWebSolutionProjects,
|
|
92
66
|
inlineMultipartFileValues,
|
|
93
|
-
installSdkUserAgentHeader,
|
|
94
|
-
instructionsFor,
|
|
95
|
-
isFailureStatus,
|
|
96
|
-
isProjectRegisteredInSolution,
|
|
97
67
|
isSuccessfulDebugStatus,
|
|
98
|
-
isTerminalStatus,
|
|
99
|
-
logger,
|
|
100
|
-
mapPackageMetadataOptions,
|
|
101
|
-
msToDuration,
|
|
102
68
|
nodeModuleRegistry,
|
|
103
69
|
normalizeHttpMethod,
|
|
104
|
-
parseAttachmentSpec,
|
|
105
70
|
parseJsonInputOrFile,
|
|
106
71
|
patchConnectionOverwrites,
|
|
107
|
-
pollUntil,
|
|
108
72
|
prepareForCustomDebug,
|
|
109
|
-
processContext,
|
|
110
73
|
readFlowWorkflow,
|
|
111
|
-
readStdin,
|
|
112
|
-
readUipxFile,
|
|
113
|
-
registerPackageMetadataOptions,
|
|
114
74
|
registerRegistryCommand,
|
|
115
75
|
registerSharedDebugInstanceCommands,
|
|
116
76
|
registerSharedIncidentCommands,
|
|
117
77
|
registerSharedInstanceCommands,
|
|
118
78
|
registerSharedProcessCommands,
|
|
119
79
|
registerSharedProcessesCommands,
|
|
120
|
-
resolveAttachmentInputs,
|
|
121
|
-
resolveFolder,
|
|
122
80
|
substituteFilterVariables,
|
|
123
|
-
updateSolutionFile,
|
|
124
81
|
uploadAndDebugSolution,
|
|
125
|
-
uploadJobAttachment,
|
|
126
82
|
uploadOrOverwriteSolution,
|
|
127
83
|
writeFlowWorkflow
|
|
128
|
-
} from "./packager-tool-
|
|
84
|
+
} from "./packager-tool-xa2xwzrq.js";
|
|
85
|
+
import {
|
|
86
|
+
JobsApi,
|
|
87
|
+
PackageFeedsApi,
|
|
88
|
+
ProcessesApi,
|
|
89
|
+
ReleasesApi,
|
|
90
|
+
createApiClient,
|
|
91
|
+
createOrchestratorConfig,
|
|
92
|
+
findNearestParentUipxFile,
|
|
93
|
+
findSolutionFile,
|
|
94
|
+
getAuthContext,
|
|
95
|
+
getLoginStatusAsync,
|
|
96
|
+
isProjectRegisteredInSolution,
|
|
97
|
+
readUipxFile,
|
|
98
|
+
resolveFolder,
|
|
99
|
+
updateSolutionFile,
|
|
100
|
+
uploadJobAttachment
|
|
101
|
+
} from "./packager-tool-b0s5d4ek.js";
|
|
102
|
+
import {
|
|
103
|
+
ATTACHMENT_INSTRUCTIONS,
|
|
104
|
+
ATTACHMENT_UPLOAD_INSTRUCTIONS,
|
|
105
|
+
ErrorDecision,
|
|
106
|
+
MIN_INTERVAL_MS,
|
|
107
|
+
OutputFormatter,
|
|
108
|
+
PollOutcome,
|
|
109
|
+
RESULTS,
|
|
110
|
+
ScreenLogger,
|
|
111
|
+
addSdkUserAgentHeader,
|
|
112
|
+
appendOption,
|
|
113
|
+
catchError,
|
|
114
|
+
createHiddenDeprecatedTenantOption,
|
|
115
|
+
extractErrorMessage,
|
|
116
|
+
extractErrorMessageSync,
|
|
117
|
+
getSdkUserAgentToken,
|
|
118
|
+
installSdkUserAgentHeader,
|
|
119
|
+
instructionsFor,
|
|
120
|
+
isFailureStatus,
|
|
121
|
+
isPreviewBuild,
|
|
122
|
+
isTerminalStatus,
|
|
123
|
+
logger,
|
|
124
|
+
mapPackageMetadataOptions,
|
|
125
|
+
msToDuration,
|
|
126
|
+
parseAttachmentSpec,
|
|
127
|
+
pollUntil,
|
|
128
|
+
processContext,
|
|
129
|
+
readStdin,
|
|
130
|
+
registerPackageMetadataOptions,
|
|
131
|
+
resolveAttachmentInputs
|
|
132
|
+
} from "./packager-tool-ny53xmsd.js";
|
|
129
133
|
import {
|
|
130
134
|
getFileSystem
|
|
131
|
-
} from "./packager-tool-
|
|
135
|
+
} from "./packager-tool-1cb0d5e0.js";
|
|
132
136
|
import {
|
|
133
137
|
DEFAULT_LAYOUT_OPTIONS,
|
|
134
138
|
addBinding,
|
|
@@ -139,22 +143,32 @@ import {
|
|
|
139
143
|
checkNodeMigrations,
|
|
140
144
|
convertFlowToBpmn,
|
|
141
145
|
createBinding,
|
|
146
|
+
createFlowRefResolver,
|
|
142
147
|
createWorkflowVariable,
|
|
143
|
-
currentVersion,
|
|
144
148
|
generateNodeIdAndName,
|
|
145
149
|
generateNodeVariables,
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
inMemoryWorkflowToFileFormat,
|
|
149
|
-
migrateWorkflow,
|
|
150
|
-
migrations,
|
|
150
|
+
migrateWorkflowToFloor,
|
|
151
|
+
minimumSupportedVersion,
|
|
151
152
|
replaceExporterVersion,
|
|
152
153
|
resolveHeight,
|
|
153
154
|
resolveWidth,
|
|
155
|
+
resolveWorkflowRefs,
|
|
156
|
+
runtimeMigrations,
|
|
157
|
+
runtimeVersion,
|
|
154
158
|
setPublishIntentOnInlineAgents,
|
|
155
159
|
snapToGrid,
|
|
156
160
|
validateIdentifier
|
|
157
|
-
} from "./packager-tool-
|
|
161
|
+
} from "./packager-tool-6a7wdv5z.js";
|
|
162
|
+
import {
|
|
163
|
+
compareVersions,
|
|
164
|
+
executeWritePlan,
|
|
165
|
+
generatePackageDescriptor,
|
|
166
|
+
generateRandomId,
|
|
167
|
+
inMemoryWorkflowToFileFormat,
|
|
168
|
+
isExpressionValue,
|
|
169
|
+
isStartEventNode,
|
|
170
|
+
planWriteThrough
|
|
171
|
+
} from "./packager-tool-ef2aypt3.js";
|
|
158
172
|
import {
|
|
159
173
|
__require,
|
|
160
174
|
__toESM
|
|
@@ -163,7 +177,7 @@ import {
|
|
|
163
177
|
var package_default = {
|
|
164
178
|
name: "@uipath/flow-tool",
|
|
165
179
|
license: "MIT",
|
|
166
|
-
version: "1.
|
|
180
|
+
version: "1.201.0-preview.121",
|
|
167
181
|
description: "Create, debug, and run UiPath Flow projects and jobs.",
|
|
168
182
|
private: false,
|
|
169
183
|
repository: {
|
|
@@ -209,13 +223,14 @@ var package_default = {
|
|
|
209
223
|
devDependencies: {
|
|
210
224
|
"@uipath/agent-sdk": "workspace:*",
|
|
211
225
|
"@uipath/auth": "workspace:*",
|
|
226
|
+
"@uipath/builder-sdk": "workspace:*",
|
|
212
227
|
"@uipath/common": "workspace:*",
|
|
213
228
|
"@uipath/filesystem": "workspace:*",
|
|
214
|
-
"@uipath/flow-core": "^0.
|
|
229
|
+
"@uipath/flow-core": "^0.68.0",
|
|
215
230
|
elkjs: "^0.11.1",
|
|
216
|
-
"@uipath/flow-converter": "0.
|
|
217
|
-
"@uipath/flow-migrations": "^0.
|
|
218
|
-
"@uipath/flow-schema": "^0.
|
|
231
|
+
"@uipath/flow-converter": "^0.42.1",
|
|
232
|
+
"@uipath/flow-migrations": "^0.33.0",
|
|
233
|
+
"@uipath/flow-schema": "^0.42.0",
|
|
219
234
|
"@uipath/integrationservice-sdk": "workspace:*",
|
|
220
235
|
i18next: "^23.16.8",
|
|
221
236
|
"@uipath/maestro-sdk": "workspace:*",
|
|
@@ -1294,7 +1309,7 @@ class FlowDebugService {
|
|
|
1294
1309
|
];
|
|
1295
1310
|
const startNodeId = entryPoints[0]?.filePath.split("#")[1] ?? startEventId;
|
|
1296
1311
|
entryPoint = `/${bpmnFileName}#${startNodeId}`;
|
|
1297
|
-
const [refreshError, refreshResult] = await catchError(
|
|
1312
|
+
const [refreshError, refreshResult] = await catchError(import("./index-6hp3p3eq.js").then((mod) => mod.resourceRefreshAsync(stagingDir)));
|
|
1298
1313
|
if (refreshError) {
|
|
1299
1314
|
logger.warn(`Resource refresh threw before debug: ${refreshError.message}. Continuing without generated overwrites.`);
|
|
1300
1315
|
} else if (refreshResult.ok) {
|
|
@@ -6090,18 +6105,25 @@ var buildNodeMigrationRegistry = () => {
|
|
|
6090
6105
|
}
|
|
6091
6106
|
return registry2;
|
|
6092
6107
|
};
|
|
6108
|
+
var netWorkflowSteps = (fromVersion, steps) => {
|
|
6109
|
+
const cmp = compareVersions(fromVersion, minimumSupportedVersion);
|
|
6110
|
+
const net = cmp < 0 ? steps.filter((s) => compareVersions(s.to, s.from) > 0 && compareVersions(s.to, minimumSupportedVersion) <= 0) : steps.filter((s) => compareVersions(s.to, s.from) < 0);
|
|
6111
|
+
return net.map((s) => `${s.from} -> ${s.to}`);
|
|
6112
|
+
};
|
|
6093
6113
|
var migrateFlow = async (filePath, options = {}) => {
|
|
6094
6114
|
const fs = getFileSystem();
|
|
6095
6115
|
const raw = await fs.readFile(filePath, "utf-8");
|
|
6096
|
-
const
|
|
6097
|
-
const fromVersion = String(
|
|
6116
|
+
const parsed = JSON.parse(raw);
|
|
6117
|
+
const fromVersion = String(parsed.version ?? "");
|
|
6118
|
+
const { resolved, refMap } = await resolveWorkflowRefs(parsed, createFlowRefResolver(fs, logger), filePath);
|
|
6119
|
+
const workflow = resolved;
|
|
6098
6120
|
const { tracker, fieldPaths } = captureMigrationIssues();
|
|
6099
|
-
const wfResult =
|
|
6121
|
+
const wfResult = migrateWorkflowToFloor(runtimeMigrations, workflow, runtimeVersion, minimumSupportedVersion, tracker);
|
|
6100
6122
|
if (wfResult.error) {
|
|
6101
6123
|
throw new Error(formatMigrationFailureMessage(wfResult.error.step, wfResult.error.message, fieldPaths()));
|
|
6102
6124
|
}
|
|
6103
6125
|
const migrated = wfResult.migrated ? wfResult.workflow : workflow;
|
|
6104
|
-
const workflowSteps = wfResult.
|
|
6126
|
+
const workflowSteps = wfResult.migrated ? netWorkflowSteps(fromVersion, wfResult.steps) : [];
|
|
6105
6127
|
const registry2 = buildNodeMigrationRegistry();
|
|
6106
6128
|
const allNodes = [
|
|
6107
6129
|
...migrated.nodes ?? [],
|
|
@@ -6113,15 +6135,23 @@ var migrateFlow = async (filePath, options = {}) => {
|
|
|
6113
6135
|
const nodeResult = applyNodeMigrations(migrated, toApply);
|
|
6114
6136
|
const anyChange = wfResult.migrated || nodeResult.migratedCount > 0;
|
|
6115
6137
|
if (anyChange && !options.dryRun) {
|
|
6116
|
-
|
|
6117
|
-
|
|
6138
|
+
const plan = planWriteThrough(migrated, refMap);
|
|
6139
|
+
await executeWritePlan(plan, {
|
|
6140
|
+
writeMainFile: async (content) => {
|
|
6141
|
+
await fs.writeFile(filePath, content);
|
|
6142
|
+
},
|
|
6143
|
+
writeRefFile: async (refPath, content) => {
|
|
6144
|
+
const resolvedPath = fs.path.resolve(fs.path.dirname(filePath), refPath);
|
|
6145
|
+
await fs.writeFile(resolvedPath, content);
|
|
6146
|
+
}
|
|
6147
|
+
});
|
|
6118
6148
|
logger.debug(`migrateFlow: wrote migrated workflow to ${filePath}`);
|
|
6119
6149
|
}
|
|
6120
6150
|
const optionalApplied = includeOptional ? Math.max(0, check.optional.length - nodeResult.failedCount) : 0;
|
|
6121
6151
|
return {
|
|
6122
6152
|
file: filePath,
|
|
6123
6153
|
fromVersion,
|
|
6124
|
-
toVersion: String(migrated.version ??
|
|
6154
|
+
toVersion: String(migrated.version ?? minimumSupportedVersion),
|
|
6125
6155
|
migrated: anyChange,
|
|
6126
6156
|
workflowSteps,
|
|
6127
6157
|
forcedNodeMigrations: check.forced.length,
|
|
@@ -6314,32 +6344,51 @@ function extractInstanceParameters(definitions, nodeType) {
|
|
|
6314
6344
|
}
|
|
6315
6345
|
}
|
|
6316
6346
|
function ensureConnectionBindings(workflow, connectorKey, connectionId, folderKey) {
|
|
6347
|
+
const liveConnectionKeys = collectConfiguredConnectionKeys(workflow);
|
|
6317
6348
|
upsertConnectionResourceBinding(workflow, {
|
|
6318
6349
|
name: `${connectorKey} connection`,
|
|
6319
6350
|
propertyAttribute: "ConnectionId",
|
|
6320
6351
|
resourceKey: connectionId,
|
|
6321
6352
|
default: connectionId
|
|
6322
|
-
});
|
|
6353
|
+
}, liveConnectionKeys);
|
|
6323
6354
|
upsertConnectionResourceBinding(workflow, {
|
|
6324
6355
|
name: "FolderKey",
|
|
6325
6356
|
propertyAttribute: "FolderKey",
|
|
6326
6357
|
resourceKey: connectionId,
|
|
6327
6358
|
default: folderKey
|
|
6328
|
-
});
|
|
6359
|
+
}, liveConnectionKeys);
|
|
6329
6360
|
}
|
|
6330
|
-
function
|
|
6361
|
+
function collectConfiguredConnectionKeys(workflow) {
|
|
6362
|
+
const keys = new Set;
|
|
6363
|
+
const collect = (nodes) => {
|
|
6364
|
+
for (const node of nodes ?? []) {
|
|
6365
|
+
const detail = node.inputs?.detail;
|
|
6366
|
+
const key = detail?.connectionResourceId;
|
|
6367
|
+
if (typeof key === "string" && key.length > 0)
|
|
6368
|
+
keys.add(key);
|
|
6369
|
+
}
|
|
6370
|
+
};
|
|
6371
|
+
collect(workflow.nodes);
|
|
6372
|
+
const subflows = workflow.subflows;
|
|
6373
|
+
for (const entry of Object.values(subflows ?? {})) {
|
|
6374
|
+
collect(entry?.nodes);
|
|
6375
|
+
}
|
|
6376
|
+
return keys;
|
|
6377
|
+
}
|
|
6378
|
+
function upsertConnectionResourceBinding(workflow, spec, liveConnectionKeys) {
|
|
6331
6379
|
const bindings = workflow.bindings ?? [];
|
|
6332
|
-
const
|
|
6380
|
+
const sameSlot = bindings.filter((b) => b.name === spec.name && b.resource?.toLowerCase() === "connection" && b.propertyAttribute === spec.propertyAttribute);
|
|
6381
|
+
const exact = sameSlot.find((b) => b.resourceKey === spec.resourceKey);
|
|
6333
6382
|
if (exact) {
|
|
6334
6383
|
exact.resource = "connection";
|
|
6335
6384
|
exact.default = spec.default;
|
|
6336
6385
|
return;
|
|
6337
6386
|
}
|
|
6338
|
-
const
|
|
6339
|
-
if (
|
|
6340
|
-
|
|
6341
|
-
|
|
6342
|
-
|
|
6387
|
+
const claimable = sameSlot.find((b) => !b.resourceKey) ?? sameSlot.find((b) => !liveConnectionKeys.has(b.resourceKey));
|
|
6388
|
+
if (claimable) {
|
|
6389
|
+
claimable.resource = "connection";
|
|
6390
|
+
claimable.resourceKey = spec.resourceKey;
|
|
6391
|
+
claimable.default = spec.default;
|
|
6343
6392
|
return;
|
|
6344
6393
|
}
|
|
6345
6394
|
const fresh = {
|
|
@@ -6725,10 +6774,32 @@ function buildAgentToolParamsFromMetadata(metadata, method) {
|
|
|
6725
6774
|
}
|
|
6726
6775
|
var UNRESOLVABLE_FILTER_MARKER = "${=js:";
|
|
6727
6776
|
var MANGLED_FILTER_FRAGMENT = "${";
|
|
6728
|
-
|
|
6777
|
+
var DANGLING_TRAILING_OPERATOR = /(?:^|\s)(?:AND|OR)\s*$/i;
|
|
6778
|
+
var DANGLING_LEADING_OPERATOR = /^\s*(?:AND|OR)(?:\s|$)/i;
|
|
6779
|
+
var DOUBLED_OPERATOR = /(?:^|\s)(?:AND|OR)\s+(?:AND|OR)(?:\s|$)/i;
|
|
6780
|
+
function collectFilterFieldIds(tree) {
|
|
6781
|
+
const ids = (tree.filters ?? []).map((condition) => condition.id);
|
|
6782
|
+
for (const group of tree.groups ?? []) {
|
|
6783
|
+
ids.push(...collectFilterFieldIds(group));
|
|
6784
|
+
}
|
|
6785
|
+
return ids;
|
|
6786
|
+
}
|
|
6787
|
+
function assertCompiledFilterResolvable(compiled, filterParamName, authoredTree) {
|
|
6729
6788
|
if (compiled.includes(MANGLED_FILTER_FRAGMENT)) {
|
|
6730
6789
|
throw new Error(`Refusing to persist the compiled filter for '${filterParamName}': it embeds a '\${…}' fragment, which the runtime never resolves — the fragment reaches the connector as literal text and the filter silently matches nothing. Cause: either a dynamic operand escaped placeholder substitution, or the design-time client mis-marked a literal value as an expression (widget-metadata defect ENGCE-60123). Workaround: author the whole filter as one '=js:' template under --detail.queryParameters.${filterParamName} (activities), or re-author the filter with values the connector's picker supports (triggers).`);
|
|
6731
6790
|
}
|
|
6791
|
+
if (!authoredTree)
|
|
6792
|
+
return;
|
|
6793
|
+
const fieldIds = collectFilterFieldIds(authoredTree);
|
|
6794
|
+
if (fieldIds.length === 0)
|
|
6795
|
+
return;
|
|
6796
|
+
const isEmpty = compiled.trim() === "";
|
|
6797
|
+
const isMalformed = DANGLING_TRAILING_OPERATOR.test(compiled) || DANGLING_LEADING_OPERATOR.test(compiled) || DOUBLED_OPERATOR.test(compiled);
|
|
6798
|
+
if (!isEmpty && !isMalformed)
|
|
6799
|
+
return;
|
|
6800
|
+
const outcome = isEmpty ? "The compiled expression is empty, so the filter disappears and the query returns every record." : `The compiled expression is broken: '${compiled}'. It holds a stray logical operator, so the connector faults at run time.`;
|
|
6801
|
+
const names = [...new Set(fieldIds)].map((id) => `'${id}'`).join(", ");
|
|
6802
|
+
throw new InvalidDetailError(`Refusing to persist the compiled filter for '${filterParamName}': the connector dropped at least one condition of --detail.filter. ${outcome} The filter tree names these fields: ${names}. Cause: a field id does not match the entity schema, or a condition has no operator. Field id matching is case-sensitive. Fix: read the supported field ids, then re-send --detail.filter with the exact ids. Run 'uip df entities get <ENTITY_ID> --output json' for a Data Service entity, or 'uip maestro flow registry get <NODE_TYPE> --connection-id <CONNECTION_ID> --output json' and read filterFields for a connector.`);
|
|
6732
6803
|
}
|
|
6733
6804
|
function assertLiteralEventParameters(eventParameters, nodeType) {
|
|
6734
6805
|
const dynamic = Object.entries(eventParameters).filter(([, value]) => typeof value === "string" && value.startsWith("=js:")).map(([name]) => `'${name}'`);
|
|
@@ -6837,7 +6908,7 @@ async function configureActivity(workflow, node, config) {
|
|
|
6837
6908
|
assertActivityMetadataResolved(activityClient.getEssentialConfiguration().essentialConfiguration, config.connectionId);
|
|
6838
6909
|
if (filterInputName && authoredFilterTree) {
|
|
6839
6910
|
const compiledFilter = activityClient.getCompiledFilter(filterInputName);
|
|
6840
|
-
assertCompiledFilterResolvable(compiledFilter, filterInputName);
|
|
6911
|
+
assertCompiledFilterResolvable(compiledFilter, filterInputName, authoredFilterTree);
|
|
6841
6912
|
detail.queryParameters = {
|
|
6842
6913
|
...detail.queryParameters ?? {},
|
|
6843
6914
|
[filterInputName]: compiledFilter
|
|
@@ -6927,7 +6998,7 @@ async function configureTrigger(workflow, node, config) {
|
|
|
6927
6998
|
});
|
|
6928
6999
|
assertActivityMetadataResolved(triggerClient.getEssentialConfiguration().essentialConfiguration, config.connectionId);
|
|
6929
7000
|
const compiledTriggerFilter = triggerClient.getCompiledFilter("filter");
|
|
6930
|
-
assertCompiledFilterResolvable(compiledTriggerFilter, "filter");
|
|
7001
|
+
assertCompiledFilterResolvable(compiledTriggerFilter, "filter", filterTree);
|
|
6931
7002
|
detail.filterExpression = compiledTriggerFilter;
|
|
6932
7003
|
if (filterTree && Object.keys(filterVariables).length > 0) {
|
|
6933
7004
|
detail.filterVariables = filterVariables;
|
|
@@ -7436,7 +7507,7 @@ Packing flow project...
|
|
|
7436
7507
|
const packageId = `${packageName}.flow.Flow`;
|
|
7437
7508
|
const version = options.version || "1.0.0";
|
|
7438
7509
|
registerPackagerFactories();
|
|
7439
|
-
const { createNodeProjectPackager, ProjectPackOptions } = await import("./node-
|
|
7510
|
+
const { createNodeProjectPackager, ProjectPackOptions } = await import("./node-f062h75p.js");
|
|
7440
7511
|
const packager = await createNodeProjectPackager({
|
|
7441
7512
|
logHandler: logger.handleLog
|
|
7442
7513
|
});
|
|
@@ -8512,9 +8583,10 @@ var ElkLayoutEngine = class {
|
|
|
8512
8583
|
const elk = await this.getElk();
|
|
8513
8584
|
const layouted = await elk.layout(graph);
|
|
8514
8585
|
const updatedNodes = this.extractNodePositions(nodes, layouted);
|
|
8586
|
+
const edgeWaypoints = this.extractEdgeWaypoints(layouted, new Set(edges.map((e) => e.id)));
|
|
8515
8587
|
const endTime = performance.now();
|
|
8516
8588
|
const metrics = this.calculateMetrics(layouted, endTime - startTime);
|
|
8517
|
-
return { nodes: updatedNodes, metrics };
|
|
8589
|
+
return { nodes: updatedNodes, edgeWaypoints, metrics };
|
|
8518
8590
|
}
|
|
8519
8591
|
collectPorts(nodes, options, resolveNodePorts) {
|
|
8520
8592
|
const nodePortsMap = /* @__PURE__ */ new Map;
|
|
@@ -8749,6 +8821,17 @@ var ElkLayoutEngine = class {
|
|
|
8749
8821
|
return { ...node, position: { x: pos.x, y: pos.y } };
|
|
8750
8822
|
});
|
|
8751
8823
|
}
|
|
8824
|
+
extractEdgeWaypoints(root, realEdgeIds) {
|
|
8825
|
+
const result = /* @__PURE__ */ new Map;
|
|
8826
|
+
for (const edge of root.edges ?? []) {
|
|
8827
|
+
if (!realEdgeIds.has(edge.id))
|
|
8828
|
+
continue;
|
|
8829
|
+
const points = (edge.sections ?? []).flatMap((s) => s.bendPoints ?? []).map((p) => ({ x: p.x, y: p.y }));
|
|
8830
|
+
if (points.length > 0)
|
|
8831
|
+
result.set(edge.id, points);
|
|
8832
|
+
}
|
|
8833
|
+
return result;
|
|
8834
|
+
}
|
|
8752
8835
|
getLayoutOptions(options) {
|
|
8753
8836
|
const opts = {
|
|
8754
8837
|
"elk.algorithm": options.algorithm,
|
|
@@ -8766,6 +8849,7 @@ var ElkLayoutEngine = class {
|
|
|
8766
8849
|
}
|
|
8767
8850
|
opts["elk.spacing.edgeNode"] = options.nodeSpacing.toString();
|
|
8768
8851
|
opts["elk.spacing.edgeEdge"] = "16";
|
|
8852
|
+
opts["elk.edgeRouting"] = "ORTHOGONAL";
|
|
8769
8853
|
break;
|
|
8770
8854
|
case "mrtree":
|
|
8771
8855
|
opts["elk.spacing.nodeNode"] = options.nodeSpacing.toString();
|
|
@@ -9378,7 +9462,7 @@ function querystringSingleKey(key, value, keyPrefix = "") {
|
|
|
9378
9462
|
var package_default2 = {
|
|
9379
9463
|
name: "@uipath/agent-sdk",
|
|
9380
9464
|
license: "MIT",
|
|
9381
|
-
version: "1.
|
|
9465
|
+
version: "1.201.0-preview.121",
|
|
9382
9466
|
description: "SDK for the UiPath Agent Runtime API — evaluation execution and debug sessions.",
|
|
9383
9467
|
repository: {
|
|
9384
9468
|
type: "git",
|
|
@@ -9587,6 +9671,13 @@ var registerValidateCommand = (program) => {
|
|
|
9587
9671
|
};
|
|
9588
9672
|
|
|
9589
9673
|
// src/services/variable-service.ts
|
|
9674
|
+
var expressionText = (expression) => {
|
|
9675
|
+
if (typeof expression === "string")
|
|
9676
|
+
return expression;
|
|
9677
|
+
if (isExpressionValue(expression))
|
|
9678
|
+
return expression.expression;
|
|
9679
|
+
return "";
|
|
9680
|
+
};
|
|
9590
9681
|
var listVariablesInFlow = async (filePath) => {
|
|
9591
9682
|
const { workflow } = await readFlowWorkflow(filePath);
|
|
9592
9683
|
const globals = (workflow.variables?.globals ?? []).map((v) => ({
|
|
@@ -9594,7 +9685,10 @@ var listVariablesInFlow = async (filePath) => {
|
|
|
9594
9685
|
type: v.type,
|
|
9595
9686
|
direction: v.direction,
|
|
9596
9687
|
...v.defaultValue !== undefined && { defaultValue: v.defaultValue },
|
|
9597
|
-
...v.description !== undefined && { description: v.description }
|
|
9688
|
+
...v.description !== undefined && { description: v.description },
|
|
9689
|
+
...v.triggerNodeId !== undefined && {
|
|
9690
|
+
triggerNodeId: v.triggerNodeId
|
|
9691
|
+
}
|
|
9598
9692
|
}));
|
|
9599
9693
|
const nodes = (workflow.variables?.nodes ?? []).map((v) => ({
|
|
9600
9694
|
id: v.id,
|
|
@@ -9606,14 +9700,44 @@ var listVariablesInFlow = async (filePath) => {
|
|
|
9606
9700
|
const variables = [...globals, ...nodes];
|
|
9607
9701
|
return { variables, count: variables.length };
|
|
9608
9702
|
};
|
|
9703
|
+
var resolveTriggerNodeId = (nodes, explicitTriggerNodeId) => {
|
|
9704
|
+
const triggerNodes = nodes.filter((node) => isStartEventNode({
|
|
9705
|
+
id: node.id,
|
|
9706
|
+
type: node.type,
|
|
9707
|
+
typeVersion: node.typeVersion ?? "1.0"
|
|
9708
|
+
}));
|
|
9709
|
+
if (explicitTriggerNodeId !== undefined) {
|
|
9710
|
+
if (!nodes.some((node) => node.id === explicitTriggerNodeId)) {
|
|
9711
|
+
const available = nodes.map((node) => node.id).join(", ");
|
|
9712
|
+
throw new Error(available ? `Node '${explicitTriggerNodeId}' not found in the flow. Available nodes: ${available}` : `Node '${explicitTriggerNodeId}' not found. The flow has no nodes`);
|
|
9713
|
+
}
|
|
9714
|
+
if (!triggerNodes.some((node) => node.id === explicitTriggerNodeId)) {
|
|
9715
|
+
const triggerIds = triggerNodes.map((node) => node.id).join(", ");
|
|
9716
|
+
throw new Error(triggerIds ? `Node '${explicitTriggerNodeId}' is not a trigger node. Trigger nodes in this flow: ${triggerIds}` : `Node '${explicitTriggerNodeId}' is not a trigger node. The flow has no trigger nodes`);
|
|
9717
|
+
}
|
|
9718
|
+
return explicitTriggerNodeId;
|
|
9719
|
+
}
|
|
9720
|
+
if (triggerNodes.length === 0) {
|
|
9721
|
+
return;
|
|
9722
|
+
}
|
|
9723
|
+
if (triggerNodes.length > 1) {
|
|
9724
|
+
const triggerIds = triggerNodes.map((node) => node.id).join(", ");
|
|
9725
|
+
throw new Error(`Flow has multiple trigger nodes (${triggerIds}); each is a separate entry point. Pass --trigger-node-id <nodeId> to choose which one this input belongs to`);
|
|
9726
|
+
}
|
|
9727
|
+
return triggerNodes[0].id;
|
|
9728
|
+
};
|
|
9609
9729
|
var addVariableToFlow = async (filePath, options) => {
|
|
9730
|
+
if (options.triggerNodeId !== undefined && options.direction !== "in") {
|
|
9731
|
+
throw new Error(`--trigger-node-id applies only to input variables (--direction in), but --direction is '${options.direction}'`);
|
|
9732
|
+
}
|
|
9610
9733
|
const { workflow, refMap } = await readFlowWorkflow(filePath);
|
|
9611
9734
|
const globals = workflow.variables?.globals ?? [];
|
|
9612
9735
|
const duplicate = globals.find((v) => v.id === options.id);
|
|
9613
9736
|
if (duplicate) {
|
|
9614
9737
|
throw new Error(`Variable '${options.id}' already exists in the flow file`);
|
|
9615
9738
|
}
|
|
9616
|
-
const
|
|
9739
|
+
const triggerNodeId = options.direction === "in" ? resolveTriggerNodeId(workflow.nodes ?? [], options.triggerNodeId) : undefined;
|
|
9740
|
+
const created = createWorkflowVariable({
|
|
9617
9741
|
id: options.id,
|
|
9618
9742
|
direction: options.direction,
|
|
9619
9743
|
type: options.type,
|
|
@@ -9622,6 +9746,7 @@ var addVariableToFlow = async (filePath, options) => {
|
|
|
9622
9746
|
description: options.description,
|
|
9623
9747
|
schema: options.schema
|
|
9624
9748
|
});
|
|
9749
|
+
const variable = triggerNodeId === undefined ? created : { ...created, triggerNodeId };
|
|
9625
9750
|
addVariable(workflow, variable);
|
|
9626
9751
|
await writeFlowWorkflow(filePath, workflow, refMap);
|
|
9627
9752
|
return variable;
|
|
@@ -9640,7 +9765,7 @@ var deleteVariableFromFlow = async (filePath, variableId) => {
|
|
|
9640
9765
|
const cleaned = {};
|
|
9641
9766
|
for (const [nodeId, updates] of Object.entries(updatedVariableUpdates)) {
|
|
9642
9767
|
const varRefPattern = new RegExp(`\\$vars\\.${variableId}\\b`);
|
|
9643
|
-
const filtered = updates.filter((u) => u.variableId !== variableId && !varRefPattern.test(u.expression));
|
|
9768
|
+
const filtered = updates.filter((u) => u.variableId !== variableId && !varRefPattern.test(expressionText(u.expression)));
|
|
9644
9769
|
if (filtered.length > 0) {
|
|
9645
9770
|
cleaned[nodeId] = filtered;
|
|
9646
9771
|
}
|
|
@@ -9659,7 +9784,7 @@ var deleteVariableFromFlow = async (filePath, variableId) => {
|
|
|
9659
9784
|
// src/commands/variable.ts
|
|
9660
9785
|
var VARIABLE_ADD_EXAMPLES = [
|
|
9661
9786
|
{
|
|
9662
|
-
Description: "Add a string input variable to a flow",
|
|
9787
|
+
Description: "Add a string input variable to a flow (auto-bound to the flow's trigger node, making it an entry-point input)",
|
|
9663
9788
|
Command: "uip maestro flow variable add flow.json myInput --direction in --type string",
|
|
9664
9789
|
Output: {
|
|
9665
9790
|
Code: "VariableAddSuccess",
|
|
@@ -9667,7 +9792,23 @@ var VARIABLE_ADD_EXAMPLES = [
|
|
|
9667
9792
|
Variable: {
|
|
9668
9793
|
id: "myInput",
|
|
9669
9794
|
direction: "in",
|
|
9670
|
-
type: "string"
|
|
9795
|
+
type: "string",
|
|
9796
|
+
triggerNodeId: "manualTrigger1"
|
|
9797
|
+
}
|
|
9798
|
+
}
|
|
9799
|
+
}
|
|
9800
|
+
},
|
|
9801
|
+
{
|
|
9802
|
+
Description: "Bind an input to a specific trigger when the flow has several entry points",
|
|
9803
|
+
Command: "uip maestro flow variable add flow.json myInput --direction in --type string --trigger-node-id timerTrigger1",
|
|
9804
|
+
Output: {
|
|
9805
|
+
Code: "VariableAddSuccess",
|
|
9806
|
+
Data: {
|
|
9807
|
+
Variable: {
|
|
9808
|
+
id: "myInput",
|
|
9809
|
+
direction: "in",
|
|
9810
|
+
type: "string",
|
|
9811
|
+
triggerNodeId: "timerTrigger1"
|
|
9671
9812
|
}
|
|
9672
9813
|
}
|
|
9673
9814
|
}
|
|
@@ -9754,7 +9895,7 @@ function parseDefaultValue(value, type) {
|
|
|
9754
9895
|
}
|
|
9755
9896
|
var registerVariableCommand = (program) => {
|
|
9756
9897
|
const variable = program.command("variable").description("Manage variables in a Flow file");
|
|
9757
|
-
variable.command("add").description("Add a variable to a Flow file").argument("<file>", "Path to the .flow file").argument("<variable-id>", "Variable identifier (e.g. myInputVar)").requiredOption("-d, --direction <direction>", `Variable direction (${VALID_DIRECTIONS.join(", ")})`).option("-t, --type <type>", `Data type (${VALID_TYPES.join(", ")})`, "string").option("--default-value <value>", "Default value (parsed based on --type)").option("--description <text>", "Human-readable description").option("--schema <json>", "JSON schema for object/array types").option("--sub-type <subType>", "Sub-type for complex types").examples(VARIABLE_ADD_EXAMPLES).trackedAction(processContext, async (file, variableId, options) => {
|
|
9898
|
+
variable.command("add").description("Add a variable to a Flow file").argument("<file>", "Path to the .flow file").argument("<variable-id>", "Variable identifier (e.g. myInputVar)").requiredOption("-d, --direction <direction>", `Variable direction (${VALID_DIRECTIONS.join(", ")})`).option("-t, --type <type>", `Data type (${VALID_TYPES.join(", ")})`, "string").option("--default-value <value>", "Default value (parsed based on --type)").option("--description <text>", "Human-readable description").option("--schema <json>", "JSON schema for object/array types").option("--sub-type <subType>", "Sub-type for complex types").option("--trigger-node-id <nodeId>", "Trigger node an input variable belongs to (defaults to the flow's only trigger node; required when the flow has several)").examples(VARIABLE_ADD_EXAMPLES).trackedAction(processContext, async (file, variableId, options) => {
|
|
9758
9899
|
const identifierError = validateIdentifier(variableId, []);
|
|
9759
9900
|
if (identifierError) {
|
|
9760
9901
|
OutputFormatter.error({
|
|
@@ -9827,7 +9968,8 @@ var registerVariableCommand = (program) => {
|
|
|
9827
9968
|
subType: options.subType,
|
|
9828
9969
|
defaultValue,
|
|
9829
9970
|
description: options.description,
|
|
9830
|
-
schema
|
|
9971
|
+
schema,
|
|
9972
|
+
triggerNodeId: options.triggerNodeId
|
|
9831
9973
|
}));
|
|
9832
9974
|
if (error) {
|
|
9833
9975
|
OutputFormatter.error({
|
|
@@ -9897,200 +10039,6 @@ var registerVariableCommand = (program) => {
|
|
|
9897
10039
|
});
|
|
9898
10040
|
};
|
|
9899
10041
|
|
|
9900
|
-
// src/services/variable-update-service.ts
|
|
9901
|
-
var addVariableUpdateToFlow = async (filePath, options) => {
|
|
9902
|
-
const { workflow, refMap } = await readFlowWorkflow(filePath);
|
|
9903
|
-
const nodeExists = (workflow.nodes ?? []).some((n) => n.id === options.nodeId);
|
|
9904
|
-
if (!nodeExists) {
|
|
9905
|
-
throw new Error(`Node '${options.nodeId}' not found in the workflow`);
|
|
9906
|
-
}
|
|
9907
|
-
const globals = workflow.variables?.globals ?? [];
|
|
9908
|
-
const variable = globals.find((v) => v.id === options.variableId);
|
|
9909
|
-
if (!variable) {
|
|
9910
|
-
throw new Error(`Variable '${options.variableId}' not found in workflow globals`);
|
|
9911
|
-
}
|
|
9912
|
-
if (variable.direction === "in") {
|
|
9913
|
-
throw new Error(`Variable '${options.variableId}' has direction 'in' and cannot be assigned to. Only 'out' or 'inout' variables can be updated`);
|
|
9914
|
-
}
|
|
9915
|
-
const variableUpdates = workflow.variables?.variableUpdates ?? {};
|
|
9916
|
-
const nodeUpdates = variableUpdates[options.nodeId] ?? [];
|
|
9917
|
-
const duplicate = nodeUpdates.find((u) => u.variableId === options.variableId);
|
|
9918
|
-
if (duplicate) {
|
|
9919
|
-
throw new Error(`Variable update for variable '${options.variableId}' on node '${options.nodeId}' already exists. Use 'variable-update set' to replace it`);
|
|
9920
|
-
}
|
|
9921
|
-
const expression = options.expression.startsWith("=js:") ? options.expression : `=js:${options.expression}`;
|
|
9922
|
-
const update = { variableId: options.variableId, expression };
|
|
9923
|
-
nodeUpdates.push(update);
|
|
9924
|
-
variableUpdates[options.nodeId] = nodeUpdates;
|
|
9925
|
-
if (!workflow.variables) {
|
|
9926
|
-
workflow.variables = {};
|
|
9927
|
-
}
|
|
9928
|
-
workflow.variables.variableUpdates = variableUpdates;
|
|
9929
|
-
await writeFlowWorkflow(filePath, workflow, refMap);
|
|
9930
|
-
return {
|
|
9931
|
-
nodeId: options.nodeId,
|
|
9932
|
-
variableId: options.variableId,
|
|
9933
|
-
expression
|
|
9934
|
-
};
|
|
9935
|
-
};
|
|
9936
|
-
var deleteVariableUpdateFromFlow = async (filePath, nodeId, variableId) => {
|
|
9937
|
-
const { workflow, refMap } = await readFlowWorkflow(filePath);
|
|
9938
|
-
const updatesMap = workflow.variables?.variableUpdates;
|
|
9939
|
-
const nodeUpdates = updatesMap?.[nodeId];
|
|
9940
|
-
if (!nodeUpdates || nodeUpdates.length === 0) {
|
|
9941
|
-
throw new Error(`No variable updates found for node "${nodeId}". Use 'uip maestro flow variable-update list' to see existing updates.`);
|
|
9942
|
-
}
|
|
9943
|
-
const entryIndex = nodeUpdates.findIndex((e) => e.variableId === variableId);
|
|
9944
|
-
if (entryIndex === -1) {
|
|
9945
|
-
throw new Error(`No update for variable "${variableId}" on node "${nodeId}". Use 'uip maestro flow variable-update list' to see existing updates.`);
|
|
9946
|
-
}
|
|
9947
|
-
const [deleted] = nodeUpdates.splice(entryIndex, 1);
|
|
9948
|
-
if (nodeUpdates.length === 0 && updatesMap) {
|
|
9949
|
-
delete updatesMap[nodeId];
|
|
9950
|
-
}
|
|
9951
|
-
await writeFlowWorkflow(filePath, workflow, refMap);
|
|
9952
|
-
return {
|
|
9953
|
-
deletedUpdate: {
|
|
9954
|
-
nodeId,
|
|
9955
|
-
variableId: deleted.variableId,
|
|
9956
|
-
expression: deleted.expression
|
|
9957
|
-
}
|
|
9958
|
-
};
|
|
9959
|
-
};
|
|
9960
|
-
var listVariableUpdatesInFlow = async (filePath, options) => {
|
|
9961
|
-
const { workflow } = await readFlowWorkflow(filePath);
|
|
9962
|
-
const updatesRecord = workflow.variables?.variableUpdates ?? {};
|
|
9963
|
-
let variableUpdates = Object.entries(updatesRecord).flatMap(([nodeId, updates]) => (Array.isArray(updates) ? updates : []).filter((u) => typeof u?.variableId === "string" && typeof u?.expression === "string").map((u) => ({
|
|
9964
|
-
nodeId,
|
|
9965
|
-
variableId: u.variableId,
|
|
9966
|
-
expression: u.expression
|
|
9967
|
-
})));
|
|
9968
|
-
if (options?.nodeId) {
|
|
9969
|
-
variableUpdates = variableUpdates.filter((u) => u.nodeId === options.nodeId);
|
|
9970
|
-
}
|
|
9971
|
-
return { variableUpdates, count: variableUpdates.length };
|
|
9972
|
-
};
|
|
9973
|
-
|
|
9974
|
-
// src/commands/variable-update.ts
|
|
9975
|
-
var VARIABLE_UPDATE_ADD_EXAMPLES = [
|
|
9976
|
-
{
|
|
9977
|
-
Description: "Add a variable update expression to a node",
|
|
9978
|
-
Command: 'uip maestro flow variable-update add flow.json --node-id node_a1b2c3d4 --variable-id var_1 --expression "=js:ctx.output"',
|
|
9979
|
-
Output: {
|
|
9980
|
-
Code: "VariableUpdateAddSuccess",
|
|
9981
|
-
Data: {
|
|
9982
|
-
VariableUpdate: {
|
|
9983
|
-
nodeId: "node_a1b2c3d4",
|
|
9984
|
-
variableId: "var_1",
|
|
9985
|
-
expression: "=js:ctx.output"
|
|
9986
|
-
}
|
|
9987
|
-
}
|
|
9988
|
-
}
|
|
9989
|
-
}
|
|
9990
|
-
];
|
|
9991
|
-
var VARIABLE_UPDATE_DELETE_EXAMPLES = [
|
|
9992
|
-
{
|
|
9993
|
-
Description: "Remove a variable update from a node",
|
|
9994
|
-
Command: "uip maestro flow variable-update remove flow.json node_a1b2c3d4 var_1",
|
|
9995
|
-
Output: {
|
|
9996
|
-
Code: "VariableUpdateRemoveSuccess",
|
|
9997
|
-
Data: {
|
|
9998
|
-
DeletedUpdate: {
|
|
9999
|
-
nodeId: "node_a1b2c3d4",
|
|
10000
|
-
variableId: "var_1"
|
|
10001
|
-
}
|
|
10002
|
-
}
|
|
10003
|
-
}
|
|
10004
|
-
}
|
|
10005
|
-
];
|
|
10006
|
-
var VARIABLE_UPDATE_LIST_EXAMPLES = [
|
|
10007
|
-
{
|
|
10008
|
-
Description: "List all variable updates in a flow",
|
|
10009
|
-
Command: "uip maestro flow variable-update list flow.json",
|
|
10010
|
-
Output: {
|
|
10011
|
-
Code: "VariableUpdateListSuccess",
|
|
10012
|
-
Data: {
|
|
10013
|
-
VariableUpdates: [
|
|
10014
|
-
{
|
|
10015
|
-
nodeId: "node_a1b2c3d4",
|
|
10016
|
-
variableId: "var_1",
|
|
10017
|
-
expression: "=js:ctx.output"
|
|
10018
|
-
}
|
|
10019
|
-
],
|
|
10020
|
-
Count: 1
|
|
10021
|
-
}
|
|
10022
|
-
}
|
|
10023
|
-
}
|
|
10024
|
-
];
|
|
10025
|
-
var registerVariableUpdateCommand = (program) => {
|
|
10026
|
-
const variableUpdate = program.command("variable-update").description("Manage variable updates in a Flow file");
|
|
10027
|
-
variableUpdate.command("add").description("Add a variable update expression to a node").argument("<file>", "Path to the .flow file").requiredOption("--node-id <id>", "Node that triggers the update on completion").requiredOption("--variable-id <id>", "Global variable to assign to (must be out or inout)").requiredOption("--expression <expr>", "JS expression to evaluate (auto-prefixed with =js: if missing)").examples(VARIABLE_UPDATE_ADD_EXAMPLES).trackedAction(processContext, async (file, options) => {
|
|
10028
|
-
const [error, result] = await catchError(addVariableUpdateToFlow(file, {
|
|
10029
|
-
nodeId: options.nodeId,
|
|
10030
|
-
variableId: options.variableId,
|
|
10031
|
-
expression: options.expression
|
|
10032
|
-
}));
|
|
10033
|
-
if (error) {
|
|
10034
|
-
OutputFormatter.error({
|
|
10035
|
-
Result: RESULTS.Failure,
|
|
10036
|
-
Message: "Error adding variable update",
|
|
10037
|
-
Instructions: error.message
|
|
10038
|
-
});
|
|
10039
|
-
processContext.exit(1);
|
|
10040
|
-
return;
|
|
10041
|
-
}
|
|
10042
|
-
OutputFormatter.success({
|
|
10043
|
-
Result: RESULTS.Success,
|
|
10044
|
-
Code: "VariableUpdateAddSuccess",
|
|
10045
|
-
Data: {
|
|
10046
|
-
VariableUpdate: result
|
|
10047
|
-
}
|
|
10048
|
-
});
|
|
10049
|
-
});
|
|
10050
|
-
variableUpdate.command("remove").description(`Remove a variable update from a node in a Flow file.
|
|
10051
|
-
` + "Use 'uip maestro flow variable-update list' to find node and variable IDs.").argument("<file>", "Path to the .flow file").argument("<node-id>", "ID of the node").argument("<variable-id>", "ID of the variable").examples(VARIABLE_UPDATE_DELETE_EXAMPLES).trackedAction(processContext, async (file, nodeId, variableId) => {
|
|
10052
|
-
const [error, result] = await catchError(deleteVariableUpdateFromFlow(file, nodeId, variableId));
|
|
10053
|
-
if (error) {
|
|
10054
|
-
OutputFormatter.error({
|
|
10055
|
-
Result: RESULTS.Failure,
|
|
10056
|
-
Message: "Error deleting variable update",
|
|
10057
|
-
Instructions: error.message
|
|
10058
|
-
});
|
|
10059
|
-
processContext.exit(1);
|
|
10060
|
-
return;
|
|
10061
|
-
}
|
|
10062
|
-
OutputFormatter.success({
|
|
10063
|
-
Result: RESULTS.Success,
|
|
10064
|
-
Code: "VariableUpdateRemoveSuccess",
|
|
10065
|
-
Data: {
|
|
10066
|
-
DeletedUpdate: result.deletedUpdate
|
|
10067
|
-
}
|
|
10068
|
-
});
|
|
10069
|
-
});
|
|
10070
|
-
variableUpdate.command("list").description("List all variable updates in a Flow file").argument("<file>", "Path to the .flow file").option("--node-id <id>", "Filter to updates on a specific node").examples(VARIABLE_UPDATE_LIST_EXAMPLES).trackedAction(processContext, async (file, options) => {
|
|
10071
|
-
const [error, result] = await catchError(listVariableUpdatesInFlow(file, {
|
|
10072
|
-
nodeId: options.nodeId
|
|
10073
|
-
}));
|
|
10074
|
-
if (error) {
|
|
10075
|
-
OutputFormatter.error({
|
|
10076
|
-
Result: RESULTS.Failure,
|
|
10077
|
-
Message: "Error listing variable updates",
|
|
10078
|
-
Instructions: error.message
|
|
10079
|
-
});
|
|
10080
|
-
processContext.exit(1);
|
|
10081
|
-
return;
|
|
10082
|
-
}
|
|
10083
|
-
OutputFormatter.success({
|
|
10084
|
-
Result: RESULTS.Success,
|
|
10085
|
-
Code: "VariableUpdateListSuccess",
|
|
10086
|
-
Data: {
|
|
10087
|
-
VariableUpdates: result.variableUpdates,
|
|
10088
|
-
Count: result.count
|
|
10089
|
-
}
|
|
10090
|
-
});
|
|
10091
|
-
});
|
|
10092
|
-
};
|
|
10093
|
-
|
|
10094
10042
|
// src/tool.ts
|
|
10095
10043
|
var metadata = {
|
|
10096
10044
|
name: "flow-tool",
|
|
@@ -10099,6 +10047,10 @@ var metadata = {
|
|
|
10099
10047
|
commandPrefix: "flow"
|
|
10100
10048
|
};
|
|
10101
10049
|
var registerCommands = async (program) => {
|
|
10050
|
+
if (isPreviewBuild()) {
|
|
10051
|
+
const { registerFlowAuthoringCommands } = await import("./authoring-rezk32bm.js");
|
|
10052
|
+
registerFlowAuthoringCommands(program);
|
|
10053
|
+
}
|
|
10102
10054
|
registerInitCommand(program);
|
|
10103
10055
|
registerPackCommand(program);
|
|
10104
10056
|
registerPublishCommand(program);
|
|
@@ -10119,9 +10071,8 @@ var registerCommands = async (program) => {
|
|
|
10119
10071
|
registerIncidentsCommand(program);
|
|
10120
10072
|
registerTidyCommand(program);
|
|
10121
10073
|
registerVariableCommand(program);
|
|
10122
|
-
registerVariableUpdateCommand(program);
|
|
10123
10074
|
};
|
|
10124
10075
|
|
|
10125
10076
|
export { metadata, registerCommands };
|
|
10126
10077
|
|
|
10127
|
-
//# debugId=
|
|
10078
|
+
//# debugId=8FD717C3B3B7EC5B64756E2164756E21
|