@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.
Files changed (152) hide show
  1. package/dist/authoring-rezk32bm.js +312 -0
  2. package/dist/{browser-strategy-d4zm14fb.js → browser-strategy-rkcvc6tn.js} +1 -1
  3. package/dist/{conversion-COFE4RVO-6gembcyk.js → conversion-W6HMHBWW-jnk9z7rw.js} +46 -38
  4. package/dist/{de-JT3SUGT4-msgpbdge.js → de-B2KIY5TC-81f703v3.js} +14 -5
  5. package/dist/{de-3RMZHIP6-1na18a74.js → de-K6MLR24N-00fjz82b.js} +474 -51
  6. package/dist/{de-3RMZHIP6-QW5DEMLQ-fw64syvn.js → de-K6MLR24N-5N5XGLH6-gbwpvdz4.js} +476 -53
  7. package/dist/{de-LVBY3VVG-tc58p3x6.js → de-WMKOGI7B-r1821wpe.js} +16 -7
  8. package/dist/de-XLT4QPIP-0rtw349w.js +32 -0
  9. package/dist/{en-ZBJX4WAU-L7DPQ3FB-4saj6t9b.js → en-ILA4HPE5-ALHGESZE-zrv4qss8.js} +325 -7
  10. package/dist/{en-ZBJX4WAU-5yq8e307.js → en-ILA4HPE5-fhwvq92r.js} +322 -4
  11. package/dist/{en-H54NJOH6-30ht8n64.js → en-P6PNWNTO-g1f6cjh5.js} +10 -4
  12. package/dist/en-UNT7BE26-rhh65jry.js +24 -0
  13. package/dist/{en-4UFXRW7N-mqabr9tf.js → en-X4DLPKLJ-dt1wtdm7.js} +17 -5
  14. package/dist/{es-GJOELELT-w1d3agm2.js → es-BBX4AUJX-h99fcr53.js} +14 -5
  15. package/dist/{es-CI4AE5B5-55sgqk64.js → es-BVPGJUWA-9gk2g9yb.js} +16 -7
  16. package/dist/{es-EYHYM5C4-RMLHZ2LF-s0fc3pd6.js → es-HTQSD352-YTAEDCE5-nhsbg581.js} +470 -47
  17. package/dist/{es-EYHYM5C4-3bajghda.js → es-HTQSD352-m9rr3f0g.js} +468 -45
  18. package/dist/{es-MX-AMZIGU27-5pembt6k.js → es-MX-3SP2SSV6-f20qspbr.js} +14 -5
  19. package/dist/{es-MX-QSQP2KWV-qvgkwvz2.js → es-MX-FOX525CG-87g500gr.js} +474 -51
  20. package/dist/{es-MX-QSQP2KWV-XR5DWKNF-kp7pk2s4.js → es-MX-FOX525CG-HLM27OEL-whr0t9v3.js} +476 -53
  21. package/dist/es-MX-OKNDG2NH-c1k1s1tg.js +32 -0
  22. package/dist/{es-MX-OLZNAYY5-30cmv1dx.js → es-MX-U6YL5KQX-ynwxdjr8.js} +16 -7
  23. package/dist/es-NQICVYSQ-aa9z3nhs.js +32 -0
  24. package/dist/{fr-FXFJQRD3-F5HV2VS7-pwdze89j.js → fr-54THJ4QH-IGABNGU6-fpzw2mba.js} +475 -52
  25. package/dist/{fr-FXFJQRD3-rfztd3e5.js → fr-54THJ4QH-d6ezjbhw.js} +473 -50
  26. package/dist/{fr-CCN6ZO5E-x2akzsjt.js → fr-EKTTDR7Z-bmpwp31r.js} +16 -7
  27. package/dist/{fr-LYFYWWCC-nn4reak0.js → fr-FSTBVVGK-t3y57xrb.js} +14 -5
  28. package/dist/fr-PFHIL7YZ-cxnshwa8.js +32 -0
  29. package/dist/index-6hp3p3eq.js +16489 -0
  30. package/dist/index-9f8q2ege.js +2058 -0
  31. package/dist/index-hsadteg4.js +634 -0
  32. package/dist/{index-w23k88b5.js → index-p50kx6jv.js} +202 -64
  33. package/dist/{index-nfn4t0c4.js → index-q59ephfh.js} +72 -13
  34. package/dist/index.js +22 -16
  35. package/dist/init.js +19 -13
  36. package/dist/{ja-IRXXIG6Q-b3att2bw.js → ja-FW33BJBW-htfk4d8t.js} +14 -5
  37. package/dist/{ja-G7NJYQ42-ve4gadd7.js → ja-MHUPLSWO-3qwy4jc0.js} +470 -47
  38. package/dist/{ja-G7NJYQ42-X76DVL7A-9p8b5115.js → ja-MHUPLSWO-CS3KE4Y3-mbtkzwd7.js} +472 -49
  39. package/dist/ja-P4OSE367-8ywxep9a.js +32 -0
  40. package/dist/{ja-O2NEV5D6-nt9rhd8c.js → ja-Y2YBTXNN-96cvy5av.js} +16 -7
  41. package/dist/js-yaml-cggj6w7q.js +3145 -0
  42. package/dist/{ko-M32WKZ3I-5td5jsw7.js → ko-PDO5AXNW-d653t4pc.js} +14 -5
  43. package/dist/ko-PYOS2KJP-5sbj5bp8.js +32 -0
  44. package/dist/{ko-7XWV2SEQ-chk3y7aj.js → ko-S33XAV26-cxf4dn2t.js} +16 -7
  45. package/dist/{ko-QDHECDTM-6WJAKMQI-0fpd4dqj.js → ko-XPJTXIKK-DNSW4KYQ-956vp61f.js} +469 -46
  46. package/dist/{ko-QDHECDTM-zmbqs9pr.js → ko-XPJTXIKK-w1hs4px7.js} +467 -44
  47. package/dist/{node-8d0q6ch7.js → node-f062h75p.js} +7610 -7319
  48. package/dist/node-strategy-8gzp67xs.js +350 -0
  49. package/dist/{packager-tool-hkrpcn6d.js → packager-tool-03knb0er.js} +341 -23
  50. package/dist/packager-tool-1cb0d5e0.js +237 -0
  51. package/dist/{packager-tool-25z1hdbm.js → packager-tool-1g6958de.js} +21 -8
  52. package/dist/{packager-tool-kgkv7f24.js → packager-tool-1gt6js73.js} +258 -1069
  53. package/dist/{packager-tool-973f0r2g.js → packager-tool-1yy9x4vk.js} +17 -5
  54. package/dist/{packager-tool-jqtspg41.js → packager-tool-3wf3tkrc.js} +11 -5
  55. package/dist/{packager-tool-1ps2qeqg.js → packager-tool-5arsyj36.js} +3 -2
  56. package/dist/packager-tool-6a7wdv5z.js +36187 -0
  57. package/dist/{packager-tool-wm273rrd.js → packager-tool-9x76z587.js} +238 -287
  58. package/dist/packager-tool-b0s5d4ek.js +10671 -0
  59. package/dist/{packager-tool-qz3cg5tg.js → packager-tool-cqrsre00.js} +340 -22
  60. package/dist/{packager-tool-9bnpe8n1.js → packager-tool-ef2aypt3.js} +21691 -16062
  61. package/dist/packager-tool-gbgfwx8f.js +2 -0
  62. package/dist/{packager-tool-3ahtr7dn.js → packager-tool-jeh5j2xy.js} +8768 -3862
  63. package/dist/packager-tool-jpcm3xas.js +12 -0
  64. package/dist/{packager-tool-231njxzf.js → packager-tool-neavt1k3.js} +1 -1
  65. package/dist/packager-tool-nkrmjr3a.js +915 -0
  66. package/dist/packager-tool-ny53xmsd.js +5377 -0
  67. package/dist/{packager-tool-fr5b9qs6.js → packager-tool-pvgqbm48.js} +3 -3
  68. package/dist/packager-tool-qa9gftnj.js +31 -0
  69. package/dist/{packager-tool-2q2qddqr.js → packager-tool-qfp49pq4.js} +994 -544
  70. package/dist/packager-tool-v2p6g3fd.js +41 -0
  71. package/dist/{packager-tool-95ht91a8.js → packager-tool-xa2xwzrq.js} +22347 -38047
  72. package/dist/packager-tool-y3dezh8k.js +21 -0
  73. package/dist/packager-tool.js +12 -10
  74. package/dist/{pt-VXJT4WUJ-nwkc9k2p.js → pt-4JEPEAST-40npwxyw.js} +471 -48
  75. package/dist/{pt-VXJT4WUJ-M3IR7CL5-1f2ph8gm.js → pt-4JEPEAST-JO5WN33S-ccdbdab2.js} +473 -50
  76. package/dist/{pt-BR-Z4J3LEEO-cf33d2zv.js → pt-BR-JO45SCNI-4kbfnzc4.js} +16 -7
  77. package/dist/{pt-BR-57EHXZKB-8g83gr5g.js → pt-BR-LQH3RSBB-kyb4jmcw.js} +14 -5
  78. package/dist/{pt-BR-SADBLGXA-WG4Q265J-w9tshygt.js → pt-BR-TV7NR3ID-PDSSHRHU-nddwzj29.js} +472 -49
  79. package/dist/{pt-BR-SADBLGXA-yd89fdy2.js → pt-BR-TV7NR3ID-vgd26pj1.js} +470 -47
  80. package/dist/pt-BR-Z3TUDJHM-n7ngej6s.js +32 -0
  81. package/dist/{pt-VNM2XWHA-62z625rh.js → pt-JLZYSSXX-7jth254x.js} +14 -5
  82. package/dist/pt-KSBWHAVQ-hd52bpsz.js +32 -0
  83. package/dist/{pt-CRSN3TCU-txxbbcxm.js → pt-W3NA4LIZ-f02gapvs.js} +16 -7
  84. package/dist/{ro-RISZ75LL-zwztp9j5.js → ro-E2EBPQGT-vn573vcr.js} +14 -5
  85. package/dist/{ro-7JHKFGCH-H3RYKSCL-4w49rx4m.js → ro-RKJ74FV3-QS3I6XKJ-kb31d85k.js} +475 -52
  86. package/dist/{ro-7JHKFGCH-hbtkeqdr.js → ro-RKJ74FV3-qn0ey39v.js} +473 -50
  87. package/dist/ro-VZUZTAMR-tccygznf.js +32 -0
  88. package/dist/{ro-WMQEVD7D-6mtq0e6b.js → ro-WLKX6HF5-fcbe2zz8.js} +16 -7
  89. package/dist/ru-GSCT4ARZ-3TVTUGWP-bbg6360z.js +15 -0
  90. package/dist/{serialization-3RH6P643-zxj2yyfh.js → serialization-GTFWODSH-ajd6b7n2.js} +14 -10
  91. package/dist/services/flow-migration-check.d.ts +15 -11
  92. package/dist/services/flow-validate-service.d.ts +119 -5
  93. package/dist/services/node-service.d.ts +46 -0
  94. package/dist/services/node-validators/ceql-query-validator.d.ts +36 -10
  95. package/dist/services/node-validators/expression-prefix-validator.d.ts +3 -2
  96. package/dist/services/node-validators/index.d.ts +2 -1
  97. package/dist/services/project-artifacts.d.ts +14 -1
  98. package/dist/tool.js +22 -16
  99. package/dist/{tr-UCMB7W3T-xmxp2naq.js → tr-3U2W2XCA-zg3zcmq3.js} +15 -6
  100. package/dist/tr-W4AVRSQ4-bt3qqqdy.js +32 -0
  101. package/dist/{tr-Q6IHBFK7-BEUWO5CI-29rgfwjy.js → tr-X7R6GQNB-VMEZAWRJ-vdbjqw23.js} +484 -61
  102. package/dist/{tr-Q6IHBFK7-zs9rsm1b.js → tr-X7R6GQNB-shwv16dz.js} +482 -59
  103. package/dist/{tr-AUPQF34V-y3dhtj0w.js → tr-ZUUSMHER-pfn5dq1r.js} +14 -5
  104. package/dist/utils/flow-io.d.ts +1 -1
  105. package/dist/validation.js +19 -13
  106. package/dist/zh-CN-6YRAN57T-j7jp34ws.js +32 -0
  107. package/dist/{zh-CN-3BPA3WIX-JDICNKGH-m87940q5.js → zh-CN-FEZ24J4A-LSEMG63K-db8kf6rm.js} +472 -49
  108. package/dist/{zh-CN-3BPA3WIX-c5ts2m5v.js → zh-CN-FEZ24J4A-q5b5x20w.js} +470 -47
  109. package/dist/{zh-CN-2QOHEFC5-ryjb2byk.js → zh-CN-IPZYQR3P-1h76csc4.js} +16 -7
  110. package/dist/{zh-CN-3INOX2E5-txhr8e18.js → zh-CN-YFKQ7HBX-w98q5zqf.js} +14 -5
  111. package/dist/{zh-TW-UI34YLZQ-j79rg6b7.js → zh-TW-CP5PCVEJ-wvbxf7c7.js} +14 -5
  112. package/dist/{zh-TW-QCJEQC5S-b1v637hd.js → zh-TW-GKSCT6NW-4n1yfre0.js} +464 -41
  113. package/dist/{zh-TW-QCJEQC5S-DQ3454QP-y8vvrebz.js → zh-TW-GKSCT6NW-JLMWTDAF-g2smq1gm.js} +466 -43
  114. package/dist/zh-TW-SO2245GN-m5kh88bg.js +32 -0
  115. package/dist/{zh-TW-Q5QSSTS6-6y7yjbbn.js → zh-TW-YPVSQVGT-wbybwpwt.js} +16 -7
  116. package/package.json +2 -2
  117. package/dist/de-CS2KUCZ6-j5a38g9p.js +0 -20
  118. package/dist/de-LVBY3VVG-gyt1s22e.js +0 -134
  119. package/dist/en-4UFXRW7N-p8f4r47q.js +0 -98
  120. package/dist/en-IMUXHKKC-3zcks7ks.js +0 -16
  121. package/dist/es-CI4AE5B5-yfv6qwgr.js +0 -134
  122. package/dist/es-MX-3MRZG6V4-9z56akxp.js +0 -20
  123. package/dist/es-MX-OLZNAYY5-6f3m32xs.js +0 -134
  124. package/dist/es-QBAGOKHO-b2azze22.js +0 -20
  125. package/dist/fr-CCN6ZO5E-srd8q9ne.js +0 -134
  126. package/dist/fr-HVOCQCNI-1zn75qzy.js +0 -20
  127. package/dist/ja-O2NEV5D6-pvhh5bag.js +0 -134
  128. package/dist/ja-VYAZOLWC-nbagzgre.js +0 -20
  129. package/dist/ko-7XWV2SEQ-9dz74aam.js +0 -134
  130. package/dist/ko-EZTVBPMZ-9qq2mrrz.js +0 -20
  131. package/dist/node-strategy-7bvg07kx.js +0 -63
  132. package/dist/packager-tool-060a9knt.js +0 -11
  133. package/dist/packager-tool-1q1bg65m.js +0 -5046
  134. package/dist/packager-tool-3yjtbs1y.js +0 -95
  135. package/dist/packager-tool-4f38v0ry.js +0 -1161
  136. package/dist/packager-tool-ahm4ymrp.js +0 -12
  137. package/dist/packager-tool-ek2dnj9h.js +0 -13
  138. package/dist/packager-tool-q94g73f7.js +0 -17392
  139. package/dist/pt-3TKAWGMJ-58y42w7x.js +0 -20
  140. package/dist/pt-BR-ASMQE3WA-9wb74cqx.js +0 -20
  141. package/dist/pt-BR-Z4J3LEEO-t28qfgyc.js +0 -134
  142. package/dist/pt-CRSN3TCU-s7hxhsxv.js +0 -134
  143. package/dist/ro-A65KBZGL-qnwqqezz.js +0 -20
  144. package/dist/ro-WMQEVD7D-h0kamt4a.js +0 -134
  145. package/dist/ru-GSCT4ARZ-YSDBAAM2-ha88ztsj.js +0 -15
  146. package/dist/ru-WBLQ5B2U-n1e7fn8t.js +0 -10
  147. package/dist/tr-UCMB7W3T-xv61hggk.js +0 -134
  148. package/dist/tr-Z7YHMEX6-daq3vjbh.js +0 -20
  149. package/dist/zh-CN-2QOHEFC5-meycvgab.js +0 -134
  150. package/dist/zh-CN-W7FK4GLU-vn3n8fcq.js +0 -20
  151. package/dist/zh-TW-PHOEUN3F-t56cjsgw.js +0 -20
  152. package/dist/zh-TW-Q5QSSTS6-65s6kte4.js +0 -134
@@ -1,9 +1,9 @@
1
1
  import {
2
2
  registerPackagerFactories
3
- } from "./packager-tool-231njxzf.js";
3
+ } from "./packager-tool-neavt1k3.js";
4
4
  import {
5
5
  flowInitAsync
6
- } from "./packager-tool-25z1hdbm.js";
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-2q2qddqr.js";
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-95ht91a8.js";
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-4f38v0ry.js";
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
- generatePackageDescriptor,
147
- generateRandomId,
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-q94g73f7.js";
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.200.0-preview.120",
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.34.1",
229
+ "@uipath/flow-core": "^0.68.0",
215
230
  elkjs: "^0.11.1",
216
- "@uipath/flow-converter": "0.25.0",
217
- "@uipath/flow-migrations": "^0.15.1",
218
- "@uipath/flow-schema": "^0.22.1",
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(ensureToolModule("solution", "@uipath/solution-tool", "resource").then((mod) => mod.resourceRefreshAsync(stagingDir)));
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 workflow = JSON.parse(raw);
6097
- const fromVersion = String(workflow.version ?? "");
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 = migrateWorkflow(migrations, workflow, currentVersion, tracker);
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.steps.map((s) => `${s.from} -> ${s.to}`);
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
- await fs.writeFile(filePath, `${JSON.stringify(migrated, null, 2)}
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 ?? currentVersion),
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 upsertConnectionResourceBinding(workflow, spec) {
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 exact = bindings.find((b) => b.name === spec.name && b.resource?.toLowerCase() === "connection" && b.resourceKey === spec.resourceKey && b.propertyAttribute === spec.propertyAttribute);
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 existing = bindings.find((b) => b.name === spec.name && b.resource?.toLowerCase() === "connection" && b.propertyAttribute === spec.propertyAttribute);
6339
- if (existing) {
6340
- existing.resource = "connection";
6341
- existing.resourceKey = spec.resourceKey;
6342
- existing.default = spec.default;
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
- function assertCompiledFilterResolvable(compiled, filterParamName) {
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-8d0q6ch7.js");
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.200.0-preview.120",
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 variable = createWorkflowVariable({
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=E2D51F83F5DCA73564756E2164756E21
10078
+ //# debugId=8FD717C3B3B7EC5B64756E2164756E21