@uipath/flow-tool 1.204.0 → 1.205.0-preview.258

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 (178) hide show
  1. package/README.md +9 -9
  2. package/dist/THIRD-PARTY-NOTICES.md +39 -15
  3. package/dist/{authoring-bppe07p0.js → authoring-e1k40hyw.js} +6 -5
  4. package/dist/{binding-service-xwgsn35p.js → binding-service-pdtxvvt8.js} +38 -30
  5. package/dist/{connector-service-r0w8ztas.js → connector-service-pm9hfmsv.js} +224 -47
  6. package/dist/de-UZI7FJDO-awjpqfz0.js +200 -0
  7. package/dist/{de-MUJPA4EB-dpg7t2rw.js → de-UZI7FJDO-mwvc4cxe.js} +29 -2
  8. package/dist/{de-FGHEJRCI-rv513mfh.js → de-WLW6KWOJ-2qnsqdtw.js} +238 -31
  9. package/dist/debug-conversation-trigger-xsm3ycqx.js +30 -0
  10. package/dist/{debug-http-client-p4kf38yt.js → debug-http-client-yqjzsnhw.js} +5 -4
  11. package/dist/{debug-service-893erynq.js → debug-service-nra3n02y.js} +6 -5
  12. package/dist/{edge-service-yzsfw4bs.js → edge-service-mddnjwb0.js} +16 -12
  13. package/dist/{embedded-file-reader-v8c2yj2a.js → embedded-file-reader-r66242ey.js} +2 -2
  14. package/dist/en-EJCBA3LK-0wb3b1xy.js +146 -0
  15. package/dist/{en-FBPVNKFN-dqt573xn.js → en-EJCBA3LK-dtpdghgj.js} +12 -4
  16. package/dist/{en-BWGKA5OE-1qkvb9rn.js → en-M7GQYBV2-5nfmpnfz.js} +88 -6
  17. package/dist/{es-7SE7HX2X-8yh1aj2y.js → es-4UBUTCQA-m1ytpyx2.js} +29 -2
  18. package/dist/es-4UBUTCQA-t7hsackg.js +200 -0
  19. package/dist/{es-KR3ZSNMP-84zphx0x.js → es-5THCNRFN-tqwyrdgy.js} +235 -28
  20. package/dist/{es-MX-2MYFZU7X-3rek4r73.js → es-MX-5RELIXKI-9jhqtddc.js} +29 -2
  21. package/dist/es-MX-5RELIXKI-jtjbcxbb.js +200 -0
  22. package/dist/{es-MX-XXZJGC4R-2mr8jtgm.js → es-MX-TWZBRAXK-gqd9swzw.js} +237 -30
  23. package/dist/filter-engine-7ep90g7f.js +11 -0
  24. package/dist/{flow-api-kjvpsxhw.js → flow-api-sat010z1.js} +16 -10
  25. package/dist/{flow-debug-service-dd10rg08.js → flow-debug-service-dw0d9cv7.js} +96 -58
  26. package/dist/{flow-eval-node-target-2ekp77s6.js → flow-eval-node-target-wttmdm4v.js} +17 -17
  27. package/dist/flow-eval-run-api-xdygjzfv.js +13 -0
  28. package/dist/{flow-eval-run-service-twzbmeq6.js → flow-eval-run-service-g09w4m9m.js} +73 -80
  29. package/dist/{flow-eval-service-ckwx7d5z.js → flow-eval-service-jfkz0tae.js} +167 -415
  30. package/dist/{flow-init-sdk-source-z9qx1zkt.js → flow-init-sdk-source-xvdvkq7d.js} +6 -5
  31. package/dist/{flow-init-service-m6swzk43.js → flow-init-service-5v6zwhas.js} +19 -15
  32. package/dist/{flow-io-tnrc53z6.js → flow-io-64tmj8n7.js} +15 -11
  33. package/dist/{flow-migrate-service-625gppk0.js → flow-migrate-service-bjxs35ac.js} +16 -12
  34. package/dist/{flow-pack-service-qdpvrmme.js → flow-pack-service-s75qhtn5.js} +47 -38
  35. package/dist/flow-validate-service-rbvgesrb.js +70 -0
  36. package/dist/{fr-Y6NPVODW-8vr1ja4b.js → fr-CERONSRC-edpxhbmb.js} +237 -30
  37. package/dist/{fr-MDFKNZ4C-h4a122k9.js → fr-VBM5WRC2-63z7w4mh.js} +29 -2
  38. package/dist/fr-VBM5WRC2-707ha692.js +200 -0
  39. package/dist/{governance-fetcher-zq8zmfjb.js → governance-fetcher-tw83p74c.js} +7 -6
  40. package/dist/{hitl-service-r19zvqsz.js → hitl-service-hgg9tr5j.js} +15 -11
  41. package/dist/{index-b8n7hv68.js → index-09mfatmh.js} +6 -5
  42. package/dist/{index-aaq9rwfv.js → index-1b2je9n2.js} +1088 -233
  43. package/dist/index-d090f35d.js +66 -0
  44. package/dist/{index-yj4xk2aw.js → index-dgdnbb2g.js} +7 -5
  45. package/dist/{index-ng2f77my.js → index-fyc0k5dd.js} +985 -617
  46. package/dist/{index-vrhcbxnk.js → index-nsn889vf.js} +6 -5
  47. package/dist/{index-2s8rmmw6.js → index-sqhbn7ew.js} +4 -4
  48. package/dist/{index-tnz5ks4t.js → index-wycgq0ff.js} +65 -2230
  49. package/dist/index.js +17 -14
  50. package/dist/init.js +19 -15
  51. package/dist/inline-entity-resolver-2qqf1635.js +45 -0
  52. package/dist/input-reader-n7kzdrev.js +12 -0
  53. package/dist/{ja-UTQEAP34-8e0q6swp.js → ja-43QL7CGO-c3q8gre9.js} +29 -2
  54. package/dist/ja-43QL7CGO-h6qfxfay.js +200 -0
  55. package/dist/{ja-Q5PXKJ2V-p4msxzjd.js → ja-U2MCNHGT-gz0ap1jk.js} +235 -28
  56. package/dist/{known-types-q6fcyq2e.js → known-types-3025scz1.js} +5 -5
  57. package/dist/ko-TLL6Z6CD-ag6gjynr.js +200 -0
  58. package/dist/{ko-AXCHW2OK-askct7f6.js → ko-TLL6Z6CD-wrt3n8a9.js} +29 -2
  59. package/dist/{ko-AYBDSRZG-41mdmsg1.js → ko-XAUYQWDR-zp81gjp4.js} +237 -30
  60. package/dist/{maestro-automate-entry-qak46eg0.js → maestro-automate-entry-6f9act3w.js} +2 -2
  61. package/dist/{node-ccwecksf.js → node-1wzjq3jb.js} +29 -15
  62. package/dist/{node-service-w8gsy23p.js → node-service-0hxtt2x6.js} +41 -30
  63. package/dist/{node-strategy-fdnkvq4a.js → node-strategy-1dmmhvf3.js} +1 -1
  64. package/dist/node-sync-service-n7r4ma3a.js +61 -0
  65. package/dist/{packager-tool-s4etvs59.js → packager-tool-0j8v36qh.js} +1 -1
  66. package/dist/packager-tool-10vc8pq4.js +2 -0
  67. package/dist/{packager-tool-pw6j69m5.js → packager-tool-445qgxdk.js} +1802 -378
  68. package/dist/packager-tool-4kr6g0zw.js +16 -0
  69. package/dist/packager-tool-4x7tzvv0.js +1176 -0
  70. package/dist/{packager-tool-86rhxbf1.js → packager-tool-5regytfc.js} +6 -4
  71. package/dist/{packager-tool-d88rqwk8.js → packager-tool-6z1hsm2h.js} +13 -5
  72. package/dist/{packager-tool-jaa5gcbv.js → packager-tool-71gqkgg6.js} +6 -6
  73. package/dist/packager-tool-7hw344bt.js +107 -0
  74. package/dist/{packager-tool-m8xtf5ej.js → packager-tool-8g5931fz.js} +7 -4
  75. package/dist/{packager-tool-h9tzz0qd.js → packager-tool-961vsbsc.js} +15 -10
  76. package/dist/{packager-tool-zzc2yp2h.js → packager-tool-99gban46.js} +172 -71
  77. package/dist/packager-tool-9era57c0.js +28 -0
  78. package/dist/packager-tool-9jxzgsxc.js +14 -0
  79. package/dist/{packager-tool-zxp4hya4.js → packager-tool-a5afh1dc.js} +34 -13
  80. package/dist/{packager-tool-02f63a08.js → packager-tool-apawc11t.js} +88 -762
  81. package/dist/{packager-tool-tf3d2y8z.js → packager-tool-aw9v0raw.js} +2 -2
  82. package/dist/{packager-tool-6y0f9qg5.js → packager-tool-b3k0mkke.js} +463 -327
  83. package/dist/packager-tool-cqtsj6yh.js +2 -0
  84. package/dist/{packager-tool-5nqhxb9e.js → packager-tool-dwd6cc01.js} +16110 -13031
  85. package/dist/{packager-tool-t605qewm.js → packager-tool-dxgrhfq5.js} +2 -2
  86. package/dist/{packager-tool-awkq26v0.js → packager-tool-e7kvq8hf.js} +5 -3
  87. package/dist/packager-tool-fc1xdt3y.js +35 -0
  88. package/dist/{packager-tool-3dc9gz35.js → packager-tool-frjt46rb.js} +1 -1
  89. package/dist/{packager-tool-cn7e7cx2.js → packager-tool-gcap41av.js} +668 -57
  90. package/dist/packager-tool-hj5x3p8g.js +23 -0
  91. package/dist/{packager-tool-k91rd9nx.js → packager-tool-hvgn6t66.js} +6 -24
  92. package/dist/{packager-tool-w5a1hhyj.js → packager-tool-hxyjn885.js} +13 -2
  93. package/dist/{packager-tool-hhy1gr2k.js → packager-tool-jgfzfqjm.js} +1 -1
  94. package/dist/{packager-tool-6h69pd2a.js → packager-tool-kn86394c.js} +127 -61
  95. package/dist/packager-tool-mgcz986r.js +143 -0
  96. package/dist/{packager-tool-3h2ktz6q.js → packager-tool-myhbp761.js} +11 -1
  97. package/dist/{packager-tool-hp5vnk8p.js → packager-tool-ndev7vbj.js} +13 -13
  98. package/dist/{packager-tool-dynm8fz9.js → packager-tool-nj4vcnq9.js} +20 -8
  99. package/dist/{packager-tool-ayc9nhpa.js → packager-tool-nk16zaz3.js} +519 -437
  100. package/dist/{packager-tool-vzbttaje.js → packager-tool-nts5rrch.js} +5 -6
  101. package/dist/{packager-tool-vbfz8k7w.js → packager-tool-p8gab24q.js} +52 -32
  102. package/dist/{packager-tool-stq8800d.js → packager-tool-pacrqxv2.js} +17 -4
  103. package/dist/{packager-tool-7q6z6npd.js → packager-tool-pcvhcn2k.js} +93 -11
  104. package/dist/packager-tool-phw8ydjx.js +331 -0
  105. package/dist/packager-tool-qcqb9hf8.js +26 -0
  106. package/dist/{packager-tool-n89vrpex.js → packager-tool-skcjythd.js} +10907 -25608
  107. package/dist/{packager-tool-1ca047de.js → packager-tool-sqpesv2e.js} +12 -56
  108. package/dist/packager-tool-t7ahhaer.js +877 -0
  109. package/dist/{packager-tool-peawy22c.js → packager-tool-tqjfdpda.js} +53 -8
  110. package/dist/{packager-tool-y8egb0fa.js → packager-tool-wds3myef.js} +2573 -535
  111. package/dist/{packager-tool-5tjzg56t.js → packager-tool-wh660fny.js} +1 -1
  112. package/dist/{packager-tool-tyg399d6.js → packager-tool-wze74wyk.js} +74 -47
  113. package/dist/packager-tool-xj0agqpk.js +11 -0
  114. package/dist/packager-tool-xk78j7dz.js +1256 -0
  115. package/dist/{packager-tool-py93409h.js → packager-tool-ymma2s85.js} +2 -2
  116. package/dist/packager-tool-z0yxfhdj.js +40 -0
  117. package/dist/packager-tool.js +13 -10
  118. package/dist/{pt-BR-TKHNHMET-sn91xyq0.js → pt-BR-GNQNAAZ2-xadharv4.js} +237 -30
  119. package/dist/{pt-BR-Y6K6XHXK-mp3hwhw1.js → pt-BR-USP2T7GD-pedn77m1.js} +29 -2
  120. package/dist/pt-BR-USP2T7GD-rppy42ym.js +200 -0
  121. package/dist/{pt-3DIO5QWG-59b3f4bc.js → pt-RMIAKZB4-67enhx3m.js} +29 -2
  122. package/dist/pt-RMIAKZB4-t80exmp7.js +200 -0
  123. package/dist/{pt-ROXU257Y-2f6bxev4.js → pt-TO2DARY2-ftcce1bv.js} +237 -30
  124. package/dist/ro-GHOBYW2S-4zevc9dy.js +200 -0
  125. package/dist/{ro-BWR3ONRR-vzx3hy8a.js → ro-GHOBYW2S-mhnqsgaa.js} +29 -2
  126. package/dist/{ro-AVAWPKOO-b89pw79r.js → ro-WUYJV6OW-a8d9qy1n.js} +235 -28
  127. package/dist/ru-WBLQ5B2U-dpqvtfwr.js +10 -0
  128. package/dist/services/connector-request-buckets.d.ts +1 -0
  129. package/dist/services/flow-eval-file-store.d.ts +1 -11
  130. package/dist/services/flow-eval-utils.d.ts +1 -32
  131. package/dist/services/flow-validate-service.d.ts +51 -0
  132. package/dist/services/inline-entity-resolver.d.ts +22 -0
  133. package/dist/services/node-service.d.ts +21 -1
  134. package/dist/services/packaging-utils.d.ts +15 -2
  135. package/dist/{shared-utils-pnbvyyb2.js → shared-utils-tqnx96mg.js} +4 -3
  136. package/dist/solution-auth-8qz5pw7z.js +14 -0
  137. package/dist/solution-discovery-vqravtkh.js +44 -0
  138. package/dist/{tidy-service-4fd4mjpb.js → tidy-service-fdctmeww.js} +143 -39
  139. package/dist/tool.js +17 -14
  140. package/dist/{tr-5IIHSFW5-hw4cewew.js → tr-GDTLECMM-k5fhmq13.js} +29 -2
  141. package/dist/tr-GDTLECMM-kngksm3r.js +200 -0
  142. package/dist/{tr-JMIP7ZSL-c39b6pe4.js → tr-M3F5A6AU-bb0tg39m.js} +235 -28
  143. package/dist/utils/flow-io.d.ts +2 -1
  144. package/dist/validation.js +39 -33
  145. package/dist/{variable-service-xgyaf3xy.js → variable-service-9xfk31pm.js} +16 -12
  146. package/dist/{wait-for-flow-job-d8m6mqb4.js → wait-for-flow-job-b0vj8828.js} +15 -12
  147. package/dist/{zh-CN-IFFXSEJS-9wm9gmrv.js → zh-CN-C5G4PC7C-ds9gkptg.js} +235 -28
  148. package/dist/zh-CN-I5D7WHBD-ge92tbx9.js +200 -0
  149. package/dist/{zh-CN-R2KU4U5L-tc1hat59.js → zh-CN-I5D7WHBD-sr5h0a98.js} +29 -2
  150. package/dist/{zh-TW-GNKMELBF-j674515r.js → zh-TW-2AVLM723-288pkc1z.js} +29 -2
  151. package/dist/zh-TW-2AVLM723-xsmap3gk.js +200 -0
  152. package/dist/{zh-TW-IYBNYAMG-8727c7v2.js → zh-TW-62HZIG6O-787kdwex.js} +234 -27
  153. package/package.json +2 -2
  154. package/dist/debug-conversation-trigger-8fgas95p.js +0 -44
  155. package/dist/flow-eval-run-api-byx3cacw.js +0 -13
  156. package/dist/flow-validate-service-ss9nt15j.js +0 -64
  157. package/dist/input-reader-vhar4g0k.js +0 -11
  158. package/dist/node-sync-service-42dpmp60.js +0 -40
  159. package/dist/packager-tool-a5xfcqqr.js +0 -15
  160. package/dist/packager-tool-epkg5s7f.js +0 -454
  161. package/dist/packager-tool-pz5nqg0s.js +0 -64
  162. package/dist/packager-tool-t3ysatjd.js +0 -521
  163. package/dist/packager-tool-vd6jt4n8.js +0 -208
  164. package/dist/packager-tool-wv3qf487.js +0 -265
  165. package/dist/services/flow-debug-service.d.ts +0 -320
  166. package/dist/services/flow-eval-schema/deterministic-evaluators.d.ts +0 -110
  167. package/dist/services/flow-eval-schema/evaluator-fields.d.ts +0 -66
  168. package/dist/services/flow-eval-schema/helpers.d.ts +0 -9
  169. package/dist/services/flow-eval-schema/index.d.ts +0 -4
  170. package/dist/services/flow-eval-schema/llm-judge-evaluators.d.ts +0 -174
  171. package/dist/services/flow-eval-schema/prompts.d.ts +0 -2
  172. package/dist/services/flow-eval-schema/registry.d.ts +0 -375
  173. package/dist/services/flow-eval-schema/tool-call-evaluators.d.ts +0 -93
  174. package/dist/services/flow-eval-schema/types.d.ts +0 -95
  175. package/dist/services/flow-eval-types.d.ts +0 -6
  176. package/dist/utils/write-resolved-flow.d.ts +0 -7
  177. /package/dist/{headless-45dypanh.js → headless-fw8pwyzm.js} +0 -0
  178. /package/dist/{localization-xecwjpe2.js → localization-d6gjmrsw.js} +0 -0
@@ -1,3 +1,6 @@
1
+ import {
2
+ checkForwardMigration
3
+ } from "./packager-tool-0j8v36qh.js";
1
4
  import {
2
5
  connectorNodeValidator,
3
6
  crossNodeBindingValidator,
@@ -5,10 +8,7 @@ import {
5
8
  isConnectorWaitForEventType,
6
9
  isEventDrivenConnectorType,
7
10
  readEssentialConfiguration
8
- } from "./packager-tool-jaa5gcbv.js";
9
- import {
10
- checkForwardMigration
11
- } from "./packager-tool-s4etvs59.js";
11
+ } from "./packager-tool-71gqkgg6.js";
12
12
  import {
13
13
  ERROR_SOURCE_PORT,
14
14
  deriveHandleCustomizationSourceOverride,
@@ -25,49 +25,55 @@ import {
25
25
  import {
26
26
  UI_ONLY_NODE_TYPES
27
27
  } from "./packager-tool-e5hj89zm.js";
28
- import {
29
- collectNodeBindingResourceKeys,
30
- isProcessNode,
31
- resolveProcessTarget
32
- } from "./packager-tool-epkg5s7f.js";
33
28
  import {
34
29
  INLINE_ACTIVITY_SOURCE,
35
30
  INLINE_ACTIVITY_TYPE_PREFIX,
31
+ collectNodeBindingResourceKeys,
36
32
  collectScriptRefs,
37
33
  getInlineActivityConfiguration,
34
+ isProcessNode,
38
35
  loadRegistry,
39
- parse
40
- } from "./packager-tool-y8egb0fa.js";
36
+ parse,
37
+ resolveProcessTarget
38
+ } from "./packager-tool-wds3myef.js";
41
39
  import {
42
- isRecord
43
- } from "./packager-tool-t3ysatjd.js";
40
+ loadCurrentTenantNodes
41
+ } from "./packager-tool-nk16zaz3.js";
42
+ import {
43
+ findProjectsWithoutProcessResource,
44
+ loadResourceKeyMap,
45
+ resourcesRefreshCommand
46
+ } from "./packager-tool-phw8ydjx.js";
47
+ import {
48
+ readSolutionInlineEntities
49
+ } from "./packager-tool-4x7tzvv0.js";
44
50
  import {
45
51
  findNodeDefinition
46
- } from "./packager-tool-w5a1hhyj.js";
52
+ } from "./packager-tool-hxyjn885.js";
47
53
  import {
48
- getLoginStatusAsync
49
- } from "./packager-tool-6h69pd2a.js";
54
+ isRecord
55
+ } from "./packager-tool-xk78j7dz.js";
50
56
  import {
51
- findNearestParentUipxFile,
52
- readSolutionManifest
53
- } from "./packager-tool-m8xtf5ej.js";
57
+ resolveProjectFlowFile
58
+ } from "./packager-tool-nts5rrch.js";
54
59
  import {
55
- ManifestClient,
56
60
  buildErrorHandle
57
- } from "./packager-tool-5nqhxb9e.js";
61
+ } from "./packager-tool-dwd6cc01.js";
58
62
  import {
59
- resolveProjectFlowFile
60
- } from "./packager-tool-vzbttaje.js";
63
+ findNearestParentUipxFile,
64
+ readSolutionManifest
65
+ } from "./packager-tool-8g5931fz.js";
61
66
  import {
62
67
  canonicalAgentInputPath,
63
68
  collectAgentInputLeaves,
64
69
  createFlowRefResolver,
65
70
  hydrateAgentNodeInputs,
71
+ inlineEntityBindingIssues,
66
72
  inlineFlowRefs,
67
73
  parseFlowSource,
68
74
  resolveWorkflowRefs,
69
75
  runDesignerRules
70
- } from "./packager-tool-pw6j69m5.js";
76
+ } from "./packager-tool-445qgxdk.js";
71
77
  import {
72
78
  AGENT_NODE_TYPES,
73
79
  DECISION_NODE_TYPE,
@@ -84,13 +90,16 @@ import {
84
90
  import {
85
91
  OutputFormatter,
86
92
  RESULTS,
87
- catchError,
88
93
  extractErrorMessageSync,
89
- logger
90
- } from "./packager-tool-02f63a08.js";
94
+ logger,
95
+ quoteForShell
96
+ } from "./packager-tool-apawc11t.js";
97
+ import {
98
+ catchError
99
+ } from "./packager-tool-t7ahhaer.js";
91
100
  import {
92
101
  getFileSystem
93
- } from "./packager-tool-3h2ktz6q.js";
102
+ } from "./packager-tool-myhbp761.js";
94
103
  import {
95
104
  __require
96
105
  } from "./packager-tool-1yh8g550.js";
@@ -297,7 +306,7 @@ function buildDiagnosticMessage(label, classification, strict) {
297
306
  const strictNote = strict ? " (--strict-bindings promoted this to an error.)" : " Pass `--strict-bindings` to fail validation on this.";
298
307
  const connectorDetail = `{"authentication":"connector",` + `"targetConnector":"${classification.connectorKeyword}",` + `"connectionId":"<uuid>","folderKey":"<uuid>","method":"GET","url":"<path>"}`;
299
308
  const manualDetail = `{"authentication":"manual","method":"GET","url":"https://…"}`;
300
- return `Node "${label}" ${connectorHint} but uses the generic Managed HTTP type \`${MANAGED_HTTP_NODE_TYPE}\` ` + "with no connection binding. The runtime will issue a raw HTTP call to an undefined endpoint. " + `Either bind a real Integration Service connection with \`uip maestro flow node configure <file> <node-id> --detail '${connectorDetail}'\`, ` + `or configure manual-mode HTTP with \`--detail '${manualDetail}'\`. ` + "If this node is intentionally a raw HTTP call, rename it so the label doesn't " + `imply a connector binding.${strictNote}`;
309
+ return `Node "${label}" ${connectorHint} but uses the generic Managed HTTP type \`${MANAGED_HTTP_NODE_TYPE}\` ` + "with no connection binding. The runtime will issue a raw HTTP call to an undefined endpoint. " + `Either bind a real Integration Service connection with \`uip maestro flow nodes configure <file> <node-id> --detail '${connectorDetail}'\`, ` + `or configure manual-mode HTTP with \`--detail '${manualDetail}'\`. ` + "If this node is intentionally a raw HTTP call, rename it so the label doesn't " + `imply a connector binding.${strictNote}`;
301
310
  }
302
311
  var MCP_CONNECTOR_KEY = "uipath-uipath-mcp";
303
312
  function readDetail(node) {
@@ -397,7 +406,7 @@ async function ensureCatalogRegistered() {
397
406
  if (catalogRegistered || !instance.isInitialized)
398
407
  return;
399
408
  try {
400
- const { registerFlowExpressionModelI18n } = await import("./localization-xecwjpe2.js");
409
+ const { registerFlowExpressionModelI18n } = await import("./localization-d6gjmrsw.js");
401
410
  registerFlowExpressionModelI18n(instance);
402
411
  } catch (error) {
403
412
  logger.warn(`Expression type checking localization unavailable, falling back to English: ${extractErrorMessageSync(error)}`);
@@ -406,7 +415,7 @@ async function ensureCatalogRegistered() {
406
415
  }
407
416
  var headlessModule;
408
417
  function loadHeadless() {
409
- headlessModule ??= import("./headless-45dypanh.js").then((mod) => {
418
+ headlessModule ??= import("./headless-fw8pwyzm.js").then((mod) => {
410
419
  logger.info(`Expression type checking: @uipath/flow-expression-model (TypeScript ${mod.HEADLESS_TYPESCRIPT_VERSION})`);
411
420
  return mod;
412
421
  }).catch((error) => {
@@ -467,7 +476,7 @@ var activityTypeIdValidator = {
467
476
  {
468
477
  path: `nodes[${node.id}].inputs.detail.uiPathActivityTypeId`,
469
478
  severity: "error",
470
- message: `${nodeKind} (\`${node.type}\`): \`inputs.detail.uiPathActivityTypeId\` is missing — Studio Web crashes when opening this flow. ` + `Fix: refresh the embedded definition without re-IDing the node — \`uip maestro flow registry get ${quotedType} --output json\`, replace the matching entry in \`definitions[]\` with the returned node object (preserve \`typeVersion\` exactly as returned), ` + `then \`uip maestro flow node configure <file> ${quotedId} --detail <json>\` to re-populate \`inputs.detail.uiPathActivityTypeId\` from the fresh manifest.`
479
+ message: `${nodeKind} (\`${node.type}\`): \`inputs.detail.uiPathActivityTypeId\` is missing — Studio Web crashes when opening this flow. ` + `Fix: refresh the embedded definition without re-IDing the node — \`uip maestro flow registry get ${quotedType} --output json\`, replace the matching entry in \`definitions[]\` with the returned node object (preserve \`typeVersion\` exactly as returned), ` + `then \`uip maestro flow nodes configure <file> ${quotedId} --detail <json>\` to re-populate \`inputs.detail.uiPathActivityTypeId\` from the fresh manifest.`
471
480
  }
472
481
  ];
473
482
  }
@@ -846,7 +855,7 @@ var inlineActivityValidator = {
846
855
  const config = getInlineActivityConfiguration(node);
847
856
  if (!config) {
848
857
  return [
849
- issue("inputs.inlineActivityConfiguration", `Non-catalog activity node (\`${node.type}\`) has no \`inputs.inlineActivityConfiguration\` — the runtime has no activity to run. ` + "Fix: remove the node and re-add it with `uip maestro flow node add <file> <type> --metadata <Name>.json --scripts <dir>`.")
858
+ issue("inputs.inlineActivityConfiguration", `Non-catalog activity node (\`${node.type}\`) has no \`inputs.inlineActivityConfiguration\` — the runtime has no activity to run. ` + "Fix: remove the node and re-add it with `uip maestro flow nodes create <file> <type> --metadata <Name>.json --scripts <dir>`.")
850
859
  ];
851
860
  }
852
861
  if (!isInlineType) {
@@ -872,10 +881,10 @@ var inlineActivityValidator = {
872
881
  if (context && typeof context === "object") {
873
882
  const ac = context;
874
883
  if (ac.source !== INLINE_ACTIVITY_SOURCE) {
875
- issues.push(issue("inputs.detail.activityContext.source", `\`activityContext.source\` must be "${INLINE_ACTIVITY_SOURCE}" for a non-catalog activity (got ${JSON.stringify(ac.source)}). Re-run \`uip maestro flow node configure\`.`));
884
+ issues.push(issue("inputs.detail.activityContext.source", `\`activityContext.source\` must be "${INLINE_ACTIVITY_SOURCE}" for a non-catalog activity (got ${JSON.stringify(ac.source)}). Re-run \`uip maestro flow nodes configure\`.`));
876
885
  }
877
886
  if (scriptRef && ac.scriptRef !== scriptRef) {
878
- issues.push(issue("inputs.detail.activityContext.scriptRef", `\`activityContext.scriptRef\` (${JSON.stringify(ac.scriptRef)}) does not match the embedded activity's \`scriptRef\` ("${scriptRef}"). Re-run \`uip maestro flow node configure\`.`));
887
+ issues.push(issue("inputs.detail.activityContext.scriptRef", `\`activityContext.scriptRef\` (${JSON.stringify(ac.scriptRef)}) does not match the embedded activity's \`scriptRef\` ("${scriptRef}"). Re-run \`uip maestro flow nodes configure\`.`));
879
888
  }
880
889
  }
881
890
  return issues;
@@ -902,7 +911,12 @@ var FORBIDDEN_INPUT_FIELDS = [
902
911
  "fileName",
903
912
  "mimeType"
904
913
  ];
905
- var FILE_REF_PATTERN = /^=js:\$vars\.[A-Za-z_$]/;
914
+ var FILE_REF_BODY_PATTERN = /^\$vars\.[A-Za-z_$]/;
915
+ function isFileRefExpression(fileRef) {
916
+ const body = getJsExpressionBody(fileRef);
917
+ return body !== undefined && FILE_REF_BODY_PATTERN.test(body);
918
+ }
919
+ var EXTRACT_V2_NODE_TYPE = "uipath.ixp.extract-document-builder";
906
920
  var ixpNodeValidator = {
907
921
  id: "ixp-node",
908
922
  appliesTo: (node) => typeof node.type === "string" && node.type.startsWith("uipath.ixp."),
@@ -911,21 +925,23 @@ var ixpNodeValidator = {
911
925
  const inputs = node.inputs ?? {};
912
926
  const outputs = node.outputs ?? {};
913
927
  const base = `nodes[${node.id}]`;
914
- const model = inputs.model;
915
928
  const isNonEmptyString2 = (v) => typeof v === "string" && v.length > 0;
916
- if (typeof model !== "object" || model === null || Array.isArray(model) || !isNonEmptyString2(model.modelName) || !isNonEmptyString2(model.folderKey)) {
917
- issues.push({
918
- path: `${base}.inputs.model`,
919
- severity: "error",
920
- message: "inputs.model must be an object with non-empty string " + "`modelName` and `folderKey`. Studio Web's property " + "panel destructures these and crashes when either is " + "missing or not a string."
921
- });
929
+ if (node.type !== EXTRACT_V2_NODE_TYPE) {
930
+ const model = inputs.model;
931
+ if (typeof model !== "object" || model === null || Array.isArray(model) || !isNonEmptyString2(model.modelName) || !isNonEmptyString2(model.folderKey)) {
932
+ issues.push({
933
+ path: `${base}.inputs.model`,
934
+ severity: "error",
935
+ message: "inputs.model must be an object with non-empty string " + "`modelName` and `folderKey`. Studio Web's property " + "panel destructures these and crashes when either is " + "missing or not a string."
936
+ });
937
+ }
922
938
  }
923
939
  const fileRef = inputs.fileRef;
924
- if (typeof fileRef !== "string" || !FILE_REF_PATTERN.test(fileRef)) {
940
+ if (!isFileRefExpression(fileRef)) {
925
941
  issues.push({
926
942
  path: `${base}.inputs.fileRef`,
927
943
  severity: "error",
928
- message: "inputs.fileRef must be a `=js:$vars.…` expression. " + "The canonical form for an upstream node output is " + "`=js:$vars.<upstream>.output.<field>`. Without the " + "`=js:` prefix the BPMN serializer treats the value " + "as a literal string at runtime."
944
+ message: "inputs.fileRef must be a `$vars` reference, for " + "example to an upstream node output. Write it either " + "as the string `=js:$vars.<upstream>.output.<field>` " + 'or as `{ "type": "jsExpression", "expression": ' + '"$vars.<upstream>.output.<field>" }` (no `=js:` ' + "prefix inside a jsExpression). Any other value, " + "including a `literal` value, reaches the runtime as " + "a literal and the upstream output never resolves."
929
945
  });
930
946
  }
931
947
  for (const port of ["output", "error"]) {
@@ -2071,6 +2087,7 @@ class FlowValidateService {
2071
2087
  availableModelNames;
2072
2088
  validateCurrentManifests;
2073
2089
  currentManifestOverrides;
2090
+ manifestCache;
2074
2091
  strictBindings;
2075
2092
  strictExpressions;
2076
2093
  connectorCatalogOverride;
@@ -2087,6 +2104,7 @@ class FlowValidateService {
2087
2104
  this.availableModelNames = options.availableModelNames;
2088
2105
  this.validateCurrentManifests = options.validateCurrentManifests === true || options.currentManifests !== undefined;
2089
2106
  this.currentManifestOverrides = options.currentManifests;
2107
+ this.manifestCache = options.manifestCache !== false;
2090
2108
  this.strictBindings = options.strictBindings === true;
2091
2109
  this.strictExpressions = options.strictExpressions === true;
2092
2110
  this.connectorCatalogOverride = options.connectorCatalog;
@@ -2140,27 +2158,13 @@ ${warnings.map((i) => ` - [${i.path}] ${i.message}`).join(`
2140
2158
  if (manifests) {
2141
2159
  return new Map(manifests.map((m) => [m.nodeType.toLowerCase(), m]));
2142
2160
  }
2143
- const [loginError, loginStatus] = await catchError(getLoginStatusAsync());
2144
- if (loginError) {
2145
- logger.warn(`Could not read login status for current manifest validation; using OOTB manifests: ${loginError.message}`);
2146
- }
2147
- const client = new ManifestClient({
2148
- baseUrl: loginStatus?.baseUrl || "localhost"
2149
- });
2150
- const auth = loginStatus?.loginStatus === "Logged in" && loginStatus.accessToken && loginStatus.tenantId && loginStatus.organizationId ? {
2151
- accessToken: loginStatus.accessToken,
2152
- tenantId: loginStatus.tenantId,
2153
- organizationId: loginStatus.organizationId
2154
- } : undefined;
2155
- const [error, manifest] = await catchError(client.getManifest({
2156
- ...auth && { auth },
2157
- inlineAgentNodes: true
2158
- }));
2159
- if (error || !manifest?.nodes) {
2161
+ const [error, result] = await catchError(loadCurrentTenantNodes({ force: !this.manifestCache }));
2162
+ if (error || result.nodes.length === 0) {
2160
2163
  logger.warn(`Could not load current OOTB node manifests; skipping stale-handle validation: ${error?.message ?? "manifest response did not include nodes"}`);
2161
2164
  return new Map;
2162
2165
  }
2163
- return new Map(manifest.nodes.map((m) => [
2166
+ logger.debug(`Current node manifests: ${result.nodes.length} nodes (${result.fromCache ? "from cache" : `fetched, source=${result.source}`})`);
2167
+ return new Map(result.nodes.map((m) => [
2164
2168
  m.nodeType.toLowerCase(),
2165
2169
  m
2166
2170
  ]));
@@ -2201,6 +2205,7 @@ Validating: ${absolutePath}
2201
2205
  issues.push(...await this.validateForwardMigration(content, absolutePath));
2202
2206
  issues.push(...this.validateGraph(workflow, "", rawDefErrorHandling, currentManifests));
2203
2207
  issues.push(...this.validateGlobalVariableUniqueness(workflow, ""));
2208
+ issues.push(...this.validateFileWideIdUniqueness(workflow));
2204
2209
  issues.push(...this.validateGlobalTriggerBindings(workflow, ""));
2205
2210
  issues.push(...this.validateTriggerScopedBareVarReads(workflow, ""));
2206
2211
  issues.push(...this.validateUnboundInputGlobals(workflow, ""));
@@ -2212,7 +2217,8 @@ Validating: ${absolutePath}
2212
2217
  issues.push(...this.validateAgentPromptInputRefs(workflow, hydrationDiagnoses, ""));
2213
2218
  issues.push(...this.validateAgentInputScopeRefs(workflow, hydrationDiagnoses, ""));
2214
2219
  issues.push(...this.validateVoiceAgentSettings(workflow, hydrationDiagnoses, ""));
2215
- issues.push(...await this.validateSolutionRegistrationAndLayout(absolutePath));
2220
+ issues.push(...await this.validateInlineEntityBindings(workflow, absolutePath));
2221
+ issues.push(...await this.validateSolutionRegistrationAndLayout(absolutePath, workflow));
2216
2222
  issues.push(...await validateExpressions(workflow, "", this.strictExpressions));
2217
2223
  const subflows = workflow.subflows ?? {};
2218
2224
  for (const [subflowId, entry] of Object.entries(subflows)) {
@@ -2750,7 +2756,7 @@ Validating: ${absolutePath}
2750
2756
  const sameTypeVersions = definedVersionsByType.get(node.type);
2751
2757
  const hint = sameTypeVersions?.length ? `
2752
2758
  Hint: \`definitions[]\` has \`${node.type}\` at version(s) ${sameTypeVersions.map((v) => `"${v}"`).join(", ")} but the node uses \`typeVersion: "${node.typeVersion}"\`. Align one side — \`typeVersion\` must match the definition's \`version\` exactly (e.g., \`"1.0"\` ≠ \`"1.0.0"\`).` : `
2753
- Hint: run \`uip maestro flow registry get ${node.type} --output json\` and append the returned node object to \`definitions[]\` (depending on plugin version, the object is at \`Data.Node\` or the top level). Set \`typeVersion\` to the returned \`version\` exactly — registry may emit \`"1.0"\` while older flows used \`"1.0.0"\`. To scaffold a new node with its definition auto-injected, run \`uip maestro flow node add <file> ${node.type}\` instead.`;
2759
+ Hint: run \`uip maestro flow registry get ${node.type} --output json\` and append the returned node object to \`definitions[]\` (depending on plugin version, the object is at \`Data.Node\` or the top level). Set \`typeVersion\` to the returned \`version\` exactly — registry may emit \`"1.0"\` while older flows used \`"1.0.0"\`. To scaffold a new node with its definition auto-injected, run \`uip maestro flow nodes create <file> ${node.type}\` instead.`;
2754
2760
  issues.push({
2755
2761
  path: `nodes[${node.id}].type`,
2756
2762
  message: `Node type "${key}" has no matching definition.${hint}`,
@@ -2790,6 +2796,49 @@ Validating: ${absolutePath}
2790
2796
  }
2791
2797
  return issues;
2792
2798
  }
2799
+ validateFileWideIdUniqueness(workflow) {
2800
+ const scopes = [
2801
+ {
2802
+ label: "root",
2803
+ nodes: workflow.nodes ?? [],
2804
+ edges: workflow.edges ?? []
2805
+ }
2806
+ ];
2807
+ const subflows = workflow.subflows ?? {};
2808
+ for (const [subflowId, entry] of Object.entries(subflows)) {
2809
+ scopes.push({
2810
+ label: `subflows[${subflowId}]`,
2811
+ nodes: entry?.nodes ?? [],
2812
+ edges: entry?.edges ?? []
2813
+ });
2814
+ }
2815
+ const placesById = new Map;
2816
+ for (const scope of scopes) {
2817
+ for (const kind of ["nodes", "edges"]) {
2818
+ const place = `${kind === "nodes" ? "node" : "edge"} in ${scope.label}`;
2819
+ for (const element of scope[kind]) {
2820
+ const id = element?.id;
2821
+ if (typeof id !== "string")
2822
+ continue;
2823
+ const places = placesById.get(id) ?? [];
2824
+ if (!places.includes(place))
2825
+ places.push(place);
2826
+ placesById.set(id, places);
2827
+ }
2828
+ }
2829
+ }
2830
+ const issues = [];
2831
+ for (const [id, places] of placesById) {
2832
+ if (places.length < 2)
2833
+ continue;
2834
+ issues.push({
2835
+ path: places.some((p) => p.startsWith("node")) ? "nodes" : "edges",
2836
+ message: `Duplicate ID across the file: "${id}" is used by ${places.join(", ")}. Node and edge IDs share one namespace across the root and all subflows; pack merges them into one BPMN document and drops or fails on a repeated ID.`,
2837
+ severity: "error"
2838
+ });
2839
+ }
2840
+ return issues;
2841
+ }
2793
2842
  validateGlobalVariableUniqueness(flow, pathPrefix) {
2794
2843
  const issues = [];
2795
2844
  const globals = flow.variables?.globals ?? [];
@@ -2954,6 +3003,10 @@ Validating: ${absolutePath}
2954
3003
  }
2955
3004
  return issues;
2956
3005
  }
3006
+ async validateInlineEntityBindings(workflow, absolutePath) {
3007
+ const inlineEntities = await readSolutionInlineEntities(this.fs, absolutePath);
3008
+ return inlineEntityBindingIssues(workflow, inlineEntities, absolutePath);
3009
+ }
2957
3010
  validateResourceBindings(workflow) {
2958
3011
  const issues = [];
2959
3012
  const bindings = workflow.bindings ?? [];
@@ -3088,7 +3141,7 @@ Validating: ${absolutePath}
3088
3141
  this.connectorCatalogCache ??= loadConnectorCatalog();
3089
3142
  return this.connectorCatalogCache;
3090
3143
  }
3091
- async validateSolutionRegistrationAndLayout(absolutePath) {
3144
+ async validateSolutionRegistrationAndLayout(absolutePath, workflow) {
3092
3145
  const issues = [];
3093
3146
  const flowDir = this.fs.path.dirname(absolutePath);
3094
3147
  const discovery = await findNearestParentUipxFile(this.fs, absolutePath);
@@ -3101,20 +3154,20 @@ Validating: ${absolutePath}
3101
3154
  }
3102
3155
  const solutionDir = this.fs.path.dirname(discovery.solutionFile);
3103
3156
  const flowDirReal = await this.canonicalizePath(flowDir);
3104
- let isRegistered = false;
3157
+ let currentProject;
3105
3158
  for (const p of manifest.projects) {
3106
3159
  const projectDir = this.fs.path.resolve(solutionDir, this.fs.path.dirname(p.ProjectRelativePath));
3107
3160
  const projectDirReal = await this.canonicalizePath(projectDir);
3108
3161
  if (projectDirReal === flowDirReal) {
3109
- isRegistered = true;
3162
+ currentProject = p;
3110
3163
  break;
3111
3164
  }
3112
3165
  }
3113
- if (!isRegistered) {
3166
+ if (!currentProject) {
3114
3167
  issues.push({
3115
3168
  path: "(workflow)",
3116
3169
  severity: "warning",
3117
- message: `.flow file at ${absolutePath} is not registered as a project of solution ${discovery.solutionFile}. Run \`uip solution projects add "${flowDir}"\` so Studio Web and \`flow debug\` can discover it.`
3170
+ message: `.flow file at ${absolutePath} is not registered as a project of solution ${discovery.solutionFile}. So Studio Web and \`flow debug\` can discover it, run: uip solution projects add ${quoteForShell(flowDir)}`
3118
3171
  });
3119
3172
  }
3120
3173
  const flowBase = this.fs.path.basename(absolutePath, ".flow");
@@ -3126,8 +3179,56 @@ Validating: ${absolutePath}
3126
3179
  message: `.flow file at ${absolutePath} does not match canonical layout. Expected the .flow basename ("${flowBase}") to match its parent directory name ("${dirBase}"). The canonical layout is <solution>/<projectName>/<projectName>.flow.`
3127
3180
  });
3128
3181
  }
3182
+ issues.push(...await this.validateInSolutionProcessKeys(workflow, solutionDir, manifest.projects, currentProject?.Id));
3129
3183
  return issues;
3130
3184
  }
3185
+ async validateInSolutionProcessKeys(workflow, solutionDir, projects, currentProjectId) {
3186
+ const definitions = workflow.definitions;
3187
+ const nodes = [
3188
+ ...workflow.nodes.map((n) => ({ ...n, scope: "" })),
3189
+ ...Object.entries(workflow.subflows ?? {}).flatMap(([subflowId, sub]) => (sub.nodes ?? []).map((n) => ({
3190
+ ...n,
3191
+ scope: `subflows[${subflowId}].`
3192
+ })))
3193
+ ];
3194
+ const refs = nodes.flatMap((node) => {
3195
+ const def = findNodeDefinition(definitions, node);
3196
+ const bindings = def?.model?.bindings;
3197
+ const key = bindings?.resourceKey;
3198
+ if (!Array.isArray(def?.tags) || !def.tags.includes("in-solution") || String(bindings?.resource).toLowerCase() !== "process" || typeof key !== "string" || key.length === 0) {
3199
+ return [];
3200
+ }
3201
+ const projectId = typeof def.projectId === "string" ? def.projectId : undefined;
3202
+ return [{ node, key, projectId }];
3203
+ });
3204
+ if (refs.length === 0)
3205
+ return [];
3206
+ const keyByProject = await loadResourceKeyMap(solutionDir);
3207
+ const known = new Set([...keyByProject.values()].map((k) => k.toLowerCase()));
3208
+ const withoutProcessResource = new Map((await findProjectsWithoutProcessResource({
3209
+ solutionDir,
3210
+ projects,
3211
+ currentProjectId
3212
+ })).map((p) => [p.id.toLowerCase(), p]));
3213
+ const severity = this.strictBindings ? "error" : "warning";
3214
+ return refs.filter(({ key }) => !known.has(key.toLowerCase())).map(({ node, key, projectId }) => {
3215
+ const pending = withoutProcessResource.get(key.toLowerCase());
3216
+ if (pending) {
3217
+ return {
3218
+ path: `${node.scope}nodes[${node.id}].bindings`,
3219
+ severity,
3220
+ message: `Node "${node.id}" (type ${node.type}) calls in-solution process key "${key}", which is the project id of '${pending.name}', a project with no process resource yet. The next \`uip solution resources refresh\` gives it a new key, and this call stops matching. Run: ${resourcesRefreshCommand(solutionDir)}. Then re-run \`uip maestro flow registry get <node-type> --local\` and replace the node's definition and bindings.`
3221
+ };
3222
+ }
3223
+ const currentKey = projectId ? keyByProject.get(projectId.toLowerCase()) : undefined;
3224
+ const hint = currentKey ? `Its project now has process key "${currentKey}"; re-run \`uip maestro flow registry get <node-type> --local\` and replace the node's definition and bindings.` : "No project in the solution has that key. Re-add the project, or remove the node.";
3225
+ return {
3226
+ path: `${node.scope}nodes[${node.id}].bindings`,
3227
+ severity,
3228
+ message: `Node "${node.id}" (type ${node.type}) calls in-solution process key "${key}", which matches no process resource in solution ${solutionDir}. ${hint}`
3229
+ };
3230
+ });
3231
+ }
3131
3232
  async canonicalizePath(p) {
3132
3233
  const [err, real] = await catchError(this.fs.realpath(p));
3133
3234
  return err || !real ? p : real;
@@ -3506,4 +3607,4 @@ function describeUnsatisfiableJoin(node, finding, graph) {
3506
3607
 
3507
3608
  export { FlowValidateService };
3508
3609
 
3509
- //# debugId=109FFC78163852D164756E2164756E21
3610
+ //# debugId=00181C4930912C2764756E2164756E21
@@ -0,0 +1,28 @@
1
+ import {
2
+ getAuthContext
3
+ } from "./packager-tool-kn86394c.js";
4
+
5
+ // ../solution-sdk/src/solution-auth.ts
6
+ async function getSolutionAuthContext(options) {
7
+ const ctx = await getAuthContext({
8
+ tenant: options.tenant,
9
+ ensureTokenValidityMinutes: options.loginValidity ?? 10,
10
+ envFilePath: options.envFilePath,
11
+ requireOrganizationId: true,
12
+ requireTenantName: true
13
+ });
14
+ const organizationId = ctx.organizationId;
15
+ const tenantName = ctx.tenantName;
16
+ const basePath = `${ctx.baseUrl}/${organizationId}/${tenantName}/automationsolutions_`;
17
+ return {
18
+ accessToken: ctx.accessToken,
19
+ basePath,
20
+ organizationId,
21
+ tenantName,
22
+ identity: ctx.identity
23
+ };
24
+ }
25
+
26
+ export { getSolutionAuthContext };
27
+
28
+ //# debugId=F76D3832B86881B164756E2164756E21
@@ -0,0 +1,14 @@
1
+ import {
2
+ EvalRunApi
3
+ } from "./packager-tool-xk78j7dz.js";
4
+
5
+ // src/services/flow-eval-run-api.ts
6
+ class FlowEvalRunApi extends EvalRunApi {
7
+ constructor() {
8
+ super("Flow");
9
+ }
10
+ }
11
+
12
+ export { FlowEvalRunApi };
13
+
14
+ //# debugId=028E1F1C632C0C6664756E2164756E21
@@ -1,24 +1,29 @@
1
+ import {
2
+ UnknownEntryPointError
3
+ } from "./packager-tool-4kr6g0zw.js";
1
4
  import {
2
5
  JobsApi,
3
6
  ReleasesApi,
4
7
  createOrchestratorConfig,
5
8
  resolveFolder
6
- } from "./packager-tool-n89vrpex.js";
9
+ } from "./packager-tool-skcjythd.js";
7
10
  import {
8
11
  parseJsonInputOrFile
9
- } from "./packager-tool-py93409h.js";
12
+ } from "./packager-tool-ymma2s85.js";
10
13
  import {
11
14
  getPersonalFolderKey
12
- } from "./packager-tool-peawy22c.js";
15
+ } from "./packager-tool-tqjfdpda.js";
13
16
  import {
14
17
  ErrorDecision,
15
18
  MIN_INTERVAL_MS,
16
19
  PollOutcome,
17
- catchError,
18
20
  logger,
19
21
  pollUntil,
20
22
  processContext
21
- } from "./packager-tool-02f63a08.js";
23
+ } from "./packager-tool-apawc11t.js";
24
+ import {
25
+ catchError
26
+ } from "./packager-tool-t7ahhaer.js";
22
27
 
23
28
  // src/services/http-client.ts
24
29
  function buildCommonHeaders(config, options) {
@@ -78,7 +83,7 @@ async function resolveFlowFolderId(config) {
78
83
  });
79
84
  return personalFolder.id.toString();
80
85
  }
81
- async function listFlowProcesses(config, filter) {
86
+ async function listFlowProcesses(config, filter, window = {}) {
82
87
  const folder = await resolveFolder({ folderKey: config.folderKey }, { tenant: config.tenantName });
83
88
  const sdkConfig = await createOrchestratorConfig({
84
89
  folderId: folder.id.toString()
@@ -90,7 +95,9 @@ async function listFlowProcesses(config, filter) {
90
95
  }
91
96
  const filterQuery = filters.length > 0 ? filters.join(" and ") : undefined;
92
97
  const response = await releasesApi.releasesGet({
93
- $filter: filterQuery
98
+ $filter: filterQuery,
99
+ $top: window.limit,
100
+ $skip: window.offset || undefined
94
101
  });
95
102
  return response.value || [];
96
103
  }
@@ -130,6 +137,18 @@ async function getFlowEntryPoints(config) {
130
137
  const response = await orchestratorGet(apiConfig, path);
131
138
  return response.value;
132
139
  }
140
+ async function defaultFlowEntryPoint(config, mainEntryPointId) {
141
+ const entryPoints = await getFlowEntryPoints(config);
142
+ return entryPoints.find((ep) => ep.Id === mainEntryPointId) ?? entryPoints[0];
143
+ }
144
+ async function resolveEntryPoint(config, entryPoint) {
145
+ const triggers = (await getFlowEntryPoints(config)).filter((ep) => ep.Path.includes("#")).map((ep) => ({ ep, id: ep.Path.slice(ep.Path.lastIndexOf("#") + 1) }));
146
+ const match = triggers.find((trigger) => trigger.id === entryPoint);
147
+ if (!match) {
148
+ throw new UnknownEntryPointError(entryPoint, triggers.map((trigger) => trigger.id));
149
+ }
150
+ return match.ep;
151
+ }
133
152
  async function startFlowJob(config) {
134
153
  const folder = await resolveFolder({ folderKey: config.folderKey }, { tenant: config.tenantName });
135
154
  const sdkConfig = await createOrchestratorConfig({
@@ -145,6 +164,9 @@ async function startFlowJob(config) {
145
164
  if (config.robotIds && config.robotIds.length > 0) {
146
165
  startInfo.robotIds = config.robotIds;
147
166
  }
167
+ if (config.entryPointPath !== undefined) {
168
+ startInfo.entryPointPath = config.entryPointPath;
169
+ }
148
170
  const response = await jobsApi.jobsStartJobs({
149
171
  body: { startInfo }
150
172
  });
@@ -382,16 +404,15 @@ function isJobAttachmentReference(value) {
382
404
  const ref = value;
383
405
  return typeof ref.ID === "string" && typeof ref.FullName === "string";
384
406
  }
385
- async function validateFlowInputs(config, inputs) {
407
+ async function validateFlowInputs(config, inputs, chosenEntryPoint, mainEntryPointId) {
386
408
  try {
387
- const entryPoints = await getFlowEntryPoints(config);
388
- if (entryPoints.length === 0) {
409
+ const entryPoint = chosenEntryPoint ?? await defaultFlowEntryPoint(config, mainEntryPointId);
410
+ if (entryPoint === undefined) {
389
411
  return {
390
412
  valid: false,
391
413
  errors: ["No entry points found for this process"]
392
414
  };
393
415
  }
394
- const entryPoint = entryPoints[0];
395
416
  const inputSchema = JSON.parse(entryPoint.InputArguments);
396
417
  if (inputSchema.type !== "object") {
397
418
  return { valid: true };
@@ -438,6 +459,6 @@ async function parseFlowInputs(inputSource) {
438
459
  return await parseJsonInputOrFile(inputSource);
439
460
  }
440
461
 
441
- export { listFlowProcesses, listFlowJobs, getFlowEntryPoints, spanToTraceEvent, startFlowProjectJob, streamJobTraces, getJobStatusDetailed, validateFlowInputs, parseFlowInputs };
462
+ export { escapeODataStringLiteral, listFlowProcesses, listFlowJobs, getFlowEntryPoints, resolveEntryPoint, spanToTraceEvent, startFlowProjectJob, streamJobTraces, getJobStatusDetailed, validateFlowInputs, parseFlowInputs };
442
463
 
443
- //# debugId=71663E4B97C8B40164756E2164756E21
464
+ //# debugId=A28215A36FCF992064756E2164756E21