@uipath/maestro-tool 1.202.2 → 1.203.0-preview.180

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 (193) hide show
  1. package/README.md +8 -0
  2. package/dist/THIRD-PARTY-NOTICES.md +83 -290
  3. package/dist/{authoring-818595dq.js → authoring-at68vr5g.js} +7 -5
  4. package/dist/{authoring-6r3wx3fa.js → authoring-sh284a0x.js} +3 -3
  5. package/dist/{authoring-61hqf5em.js → authoring-szfy0rh1.js} +5 -5
  6. package/dist/{binding-service-643e69bb.js → binding-service-8a05gy4k.js} +37 -29
  7. package/dist/{bpmn-action-type-validator-kx36sqhe.js → bpmn-action-type-validator-8kvyvvcf.js} +2 -2
  8. package/dist/bpmn-binding-resolver-5scq28mc.js +145 -0
  9. package/dist/{bpmn-branch-y1m9f10n.js → bpmn-branch-t12a7jvf.js} +50 -44
  10. package/dist/bpmn-format-service-ay6jd9he.js +69 -0
  11. package/dist/{bpmn-refresh-service-ew545y06.js → bpmn-refresh-service-ak1ctkwg.js} +4 -4
  12. package/dist/{bpmn-update-metadata-service-jhahhjab.js → bpmn-update-metadata-service-hqe4edze.js} +6 -5
  13. package/dist/{bpmn-validate-service-6z2dj8ac.js → bpmn-validate-service-48sfy3a2.js} +3 -3
  14. package/dist/{case-api-4mstfkzf.js → case-api-e3fmq685.js} +6 -6
  15. package/dist/case-bindings-service-nswc6v0v.js +240 -0
  16. package/dist/case-debug-studio-web-service-58gtqznh.js +135 -0
  17. package/dist/case-format-service-6s5e1ckk.js +84 -0
  18. package/dist/{case-pack-service-v7wtb0qt.js → case-pack-service-sg435he1.js} +62 -11
  19. package/dist/{case-validate-service-bnpaf0zt.js → case-validate-service-7s69shsa.js} +1424 -42
  20. package/dist/{connector-enrichment-service-scrqnke3.js → connector-enrichment-service-9rqr3esj.js} +27 -26
  21. package/dist/{connector-lookup-service-hnk08t3m.js → connector-lookup-service-pencasp9.js} +5 -5
  22. package/dist/{connector-service-581bhxaj.js → connector-service-k4cgcv2b.js} +224 -56
  23. package/dist/{connector-task-spec-y2tcthz5.js → connector-task-spec-13ex0x0m.js} +27 -26
  24. package/dist/{conversion-FQTRFHRX-03xh3xbp.js → conversion-FQTRFHRX-0y9br7gw.js} +6 -5
  25. package/dist/de-FGHEJRCI-gn4cf5gh.js +2697 -0
  26. package/dist/de-MUJPA4EB-dpg7t2rw.js +173 -0
  27. package/dist/{debug-conversation-trigger-nj04k7s2.js → debug-conversation-trigger-wgzjaasj.js} +17 -14
  28. package/dist/{debug-http-client-c4teyma3.js → debug-http-client-7dvbwp96.js} +2 -2
  29. package/dist/{debug-service-m5jdyz3q.js → debug-service-8cwxhgww.js} +3 -3
  30. package/dist/{edge-service-vv2yfsn4.js → edge-service-szpsaezp.js} +17 -14
  31. package/dist/{index-yqfqxh2r.js → embedded-file-reader-0sjt4nkj.js} +96 -16641
  32. package/dist/{en-TBNO2WUV-rfe87pgh.js → en-BWGKA5OE-1qkvb9rn.js} +2 -2
  33. package/dist/en-FBPVNKFN-dqt573xn.js +138 -0
  34. package/dist/en-TBNO2WUV-9nan43e5.js +1936 -0
  35. package/dist/{enrichment-service-a65qt7y1.js → enrichment-service-7n1tf75p.js} +4 -4
  36. package/dist/es-7SE7HX2X-8yh1aj2y.js +173 -0
  37. package/dist/es-KR3ZSNMP-0cszm2n3.js +2697 -0
  38. package/dist/es-MX-2MYFZU7X-3rek4r73.js +173 -0
  39. package/dist/es-MX-XXZJGC4R-b4fbwe9d.js +2697 -0
  40. package/dist/first-party-service-srxaftkn.js +27 -0
  41. package/dist/{flow-api-vqvvs0q2.js → flow-api-4vkpbmt3.js} +7 -7
  42. package/dist/{flow-debug-service-vd7bdyhg.js → flow-debug-service-9tad5ckh.js} +66 -41
  43. package/dist/{flow-eval-node-target-mve3v55h.js → flow-eval-node-target-g222rh2e.js} +22 -15
  44. package/dist/flow-eval-run-api-hashjgq1.js +13 -0
  45. package/dist/{flow-eval-run-service-rt9kg4wx.js → flow-eval-run-service-btghb02r.js} +109 -224
  46. package/dist/{flow-eval-service-ededh59n.js → flow-eval-service-ma5psrsd.js} +346 -302
  47. package/dist/{flow-init-service-4ve9tr0t.js → flow-init-service-662zhfd3.js} +22 -18
  48. package/dist/{flow-io-2dd3sx38.js → flow-io-3cqz0svg.js} +16 -13
  49. package/dist/{flow-migrate-service-nbe6et60.js → flow-migrate-service-ehx7nmsr.js} +18 -14
  50. package/dist/{flow-pack-service-b2n877d8.js → flow-pack-service-a3w3489r.js} +43 -35
  51. package/dist/flow-validate-service-02e21w4d.js +3555 -0
  52. package/dist/fr-MDFKNZ4C-h4a122k9.js +173 -0
  53. package/dist/fr-Y6NPVODW-q5ef3htr.js +2697 -0
  54. package/dist/{governance-fetcher-at165287.js → governance-fetcher-7vxmap1e.js} +5 -4
  55. package/dist/{headless-85f2cys0.js → headless-627q5my5.js} +42909 -1756
  56. package/dist/{hitl-service-xn1bt80z.js → hitl-service-fn94tk6z.js} +16 -13
  57. package/dist/{index-hfsfzg4k.js → index-3arytfxn.js} +6 -4
  58. package/dist/{index-d1yqqk6q.js → index-55cym5j7.js} +6 -4
  59. package/dist/{index-0j6xww0f.js → index-9f94yk28.js} +3 -3
  60. package/dist/{index-1kgxzh8x.js → index-fz4ttsde.js} +14 -2
  61. package/dist/index-gvwc29bb.js +16742 -0
  62. package/dist/{index-mkgrn150.js → index-j1azsfr5.js} +36 -33
  63. package/dist/index-kmp9fmhb.js +25 -0
  64. package/dist/{index-938ee96p.js → index-rtg24r4x.js} +1 -1
  65. package/dist/index-tzccx5ym.js +2961 -0
  66. package/dist/{index-acd6bpqc.js → index-ymsd3pyx.js} +12 -15
  67. package/dist/index.js +3 -3
  68. package/dist/{input-reader-1wda1a2v.js → input-reader-7pzkcw6t.js} +1 -1
  69. package/dist/{input-reader-svafwk7x.js → input-reader-j8rvde4z.js} +1 -1
  70. package/dist/ja-Q5PXKJ2V-tzf2rvz2.js +2697 -0
  71. package/dist/ja-UTQEAP34-8e0q6swp.js +173 -0
  72. package/dist/known-types-8dhhqk35.js +19 -0
  73. package/dist/ko-AXCHW2OK-askct7f6.js +173 -0
  74. package/dist/ko-AYBDSRZG-am0h0m2r.js +2697 -0
  75. package/dist/{maestro-automate-entry-gwntzkvj.js → maestro-automate-entry-jehpbg37.js} +2 -2
  76. package/dist/{maestro-debug-service-dvh7qbx8.js → maestro-debug-service-xhtszkrc.js} +10 -10
  77. package/dist/{maestro-pack-service-fam5zdm3.js → maestro-pack-service-fkkc5g3v.js} +12 -6
  78. package/dist/{node-ks3095fb.js → node-p4bde6qy.js} +2344 -376
  79. package/dist/node-service-frvz67y3.js +83 -0
  80. package/dist/{node-sync-service-zwvm30qg.js → node-sync-service-wa2t7c65.js} +14 -14
  81. package/dist/{packager-tool-me5q0naa.js → packager-tool-095jzn8v.js} +16 -6
  82. package/dist/{packager-tool-y5f2qhfe.js → packager-tool-19030vpg.js} +32 -2
  83. package/dist/{packager-tool-gtqkcj4x.js → packager-tool-2c1rbj85.js} +310 -13
  84. package/dist/packager-tool-2q1mffef.js +261 -0
  85. package/dist/{flow-validate-service-0hxf5080.js → packager-tool-2xrng5ff.js} +1956 -3065
  86. package/dist/{packager-tool-8dgxmjzx.js → packager-tool-30ky51ca.js} +6 -3
  87. package/dist/{packager-tool-d5mjdpbf.js → packager-tool-4r35ye9r.js} +5 -4
  88. package/dist/packager-tool-53w8skv5.js +262 -0
  89. package/dist/{packager-tool-db4jm1rz.js → packager-tool-56gcg9de.js} +1 -1
  90. package/dist/{packager-tool-29eg86w6.js → packager-tool-6rsegsby.js} +6 -7
  91. package/dist/packager-tool-7msx23gd.js +13 -0
  92. package/dist/packager-tool-7q6z6npd.js +1937 -0
  93. package/dist/packager-tool-8qp60s20.js +12 -0
  94. package/dist/{packager-tool-s1r7krkp.js → packager-tool-9pccpz3r.js} +1 -1
  95. package/dist/{packager-tool-m351tkkr.js → packager-tool-c95fhhys.js} +30 -8
  96. package/dist/{packager-tool-kg5sxneg.js → packager-tool-cmzzh4f8.js} +72 -73
  97. package/dist/{packager-tool-ffvmys2r.js → packager-tool-cr0z8cbj.js} +5 -5
  98. package/dist/{packager-tool-8fkt71n4.js → packager-tool-cs1ec1da.js} +4 -3
  99. package/dist/{packager-tool-xatnrtwp.js → packager-tool-d2813z49.js} +9 -9
  100. package/dist/packager-tool-d88rqwk8.js +135 -0
  101. package/dist/{packager-tool-pm3qh1hy.js → packager-tool-dh5nppv4.js} +1 -1
  102. package/dist/packager-tool-dqxz5v18.js +486 -0
  103. package/dist/{packager-tool-r87gxwqa.js → packager-tool-e87tzg4y.js} +2 -2
  104. package/dist/{packager-tool-w9fd7vzs.js → packager-tool-f33sg3vr.js} +9 -9
  105. package/dist/{packager-tool-cj2ka9jr.js → packager-tool-fer9mdsq.js} +2 -2
  106. package/dist/{packager-tool-70eh7rpg.js → packager-tool-fm67whdy.js} +23 -5
  107. package/dist/packager-tool-fq7wtkd3.js +21012 -0
  108. package/dist/packager-tool-fvm2dddf.js +6297 -0
  109. package/dist/packager-tool-gdtpsdn7.js +342 -0
  110. package/dist/{packager-tool-ejyeka5x.js → packager-tool-gpwec9sp.js} +2 -2
  111. package/dist/{packager-tool-pap09zfh.js → packager-tool-h8x54cvx.js} +1 -1
  112. package/dist/{packager-tool-9vh3df76.js → packager-tool-hdmhxdch.js} +7 -7
  113. package/dist/packager-tool-hnyecbk6.js +88 -0
  114. package/dist/{packager-tool-mtbak8t4.js → packager-tool-j00gcgbs.js} +2 -2
  115. package/dist/packager-tool-j78fwwhq.js +16 -0
  116. package/dist/packager-tool-jysvpt8p.js +11 -0
  117. package/dist/{packager-tool-jfv7t0c8.js → packager-tool-kb554twx.js} +94 -94
  118. package/dist/{packager-tool-k4x5yn3p.js → packager-tool-khm7zsm8.js} +4 -1
  119. package/dist/packager-tool-kj0qc4f4.js +269 -0
  120. package/dist/{packager-tool-12636p2y.js → packager-tool-mcjjj1hk.js} +4 -4
  121. package/dist/{packager-tool-bftjhmqz.js → packager-tool-mfrdmqmt.js} +124 -2
  122. package/dist/{packager-tool-qgh5yaeh.js → packager-tool-mj89jhvb.js} +1 -1
  123. package/dist/{packager-tool-ve35117x.js → packager-tool-mjz4hma1.js} +5791 -176
  124. package/dist/packager-tool-paq9c70w.js +1332 -0
  125. package/dist/{packager-tool-d8v984ah.js → packager-tool-q2gwvnf5.js} +15 -56
  126. package/dist/{packager-tool-nmznynbj.js → packager-tool-qff6ang6.js} +1 -1
  127. package/dist/{packager-tool-j79gbsee.js → packager-tool-rg5pkkf0.js} +6 -6
  128. package/dist/{packager-tool-7309ymg1.js → packager-tool-s1466723.js} +10 -13
  129. package/dist/{packager-tool-54b4v7wp.js → packager-tool-te6rrpsz.js} +205 -195
  130. package/dist/packager-tool-vcjq9xkc.js +1895 -0
  131. package/dist/{packager-tool-w20r6n9v.js → packager-tool-vck7ct1e.js} +2877 -2221
  132. package/dist/{packager-tool-e8td7b01.js → packager-tool-vdc8r21p.js} +10328 -16610
  133. package/dist/{packager-tool-nxw5yzs7.js → packager-tool-vqcnvaae.js} +1 -1
  134. package/dist/{packager-tool-7rz102fw.js → packager-tool-wd01egnx.js} +1 -1
  135. package/dist/{packager-tool-gxqd24n0.js → packager-tool-wger1vt9.js} +7 -7
  136. package/dist/{packager-tool-a6yfnjgx.js → packager-tool-wynrdnqj.js} +1 -1
  137. package/dist/packager-tool-x0eamrk4.js +104577 -0
  138. package/dist/packager-tool-x92czn5x.js +208 -0
  139. package/dist/{packager-tool-am67sn1c.js → packager-tool-xtkgeccn.js} +1 -1
  140. package/dist/packager-tool-y59jhapb.js +10369 -0
  141. package/dist/{packager-tool-317z6dc1.js → packager-tool-ydg78w9z.js} +23 -23
  142. package/dist/{packager-tool-rr8hveb9.js → packager-tool-ygrrb1zh.js} +1 -1
  143. package/dist/{packager-tool-f0kd5kq4.js → packager-tool-yrsrzz1a.js} +127 -12
  144. package/dist/{packager-tool-d9dpx9wn.js → packager-tool-z185rq2a.js} +1 -1
  145. package/dist/{packager-tool-79gws1zn.js → packager-tool-z6nkdv48.js} +270 -24
  146. package/dist/{packager-tool-802qm7jy.js → packager-tool-zzxt99e4.js} +3 -3
  147. package/dist/packager-tool.js +75 -218
  148. package/dist/{project-artifacts-9z7atbk7.js → project-artifacts-h5cydk2n.js} +1 -1
  149. package/dist/{project-validator-0rkrfmj0.js → project-validator-ek97s27p.js} +1 -1
  150. package/dist/pt-3DIO5QWG-59b3f4bc.js +173 -0
  151. package/dist/pt-BR-TKHNHMET-dn6zxk1d.js +2697 -0
  152. package/dist/pt-BR-Y6K6XHXK-mp3hwhw1.js +173 -0
  153. package/dist/pt-ROXU257Y-yd80gx6s.js +2697 -0
  154. package/dist/{resourcesSyncService-3pajvveg.js → resourcesSyncService-7s92g1hm.js} +28 -27
  155. package/dist/ro-AVAWPKOO-42m6am1w.js +2697 -0
  156. package/dist/ro-BWR3ONRR-vzx3hy8a.js +173 -0
  157. package/dist/ru-GSCT4ARZ-jrxwev63.js +10 -0
  158. package/dist/ru-WBLQ5B2U-s4em88p0.js +10 -0
  159. package/dist/sdd-lookup-7h7j2h6v.js +48 -0
  160. package/dist/{serialization-BXU6AKAN-dk0sqx89.js → serialization-BXU6AKAN-0ghhrsja.js} +6 -5
  161. package/dist/{shared-utils-twgpb9ax.js → shared-utils-6z7gnnc8.js} +1 -1
  162. package/dist/{strict-case-rules-zxnq80zm.js → strict-case-rules-byym8cvc.js} +141 -109
  163. package/dist/strict-sdd-audit-v156c9e3.js +2520 -0
  164. package/dist/tidy-service-zyy7wxc0.js +39 -0
  165. package/dist/{tool-pxfafj3m.js → tool-dejjyv8m.js} +213 -51
  166. package/dist/{tool-td30zmyt.js → tool-v0r5qzcc.js} +106 -146
  167. package/dist/tool.js +3 -3
  168. package/dist/tr-5IIHSFW5-hw4cewew.js +173 -0
  169. package/dist/tr-JMIP7ZSL-fb67ft9w.js +2696 -0
  170. package/dist/{trigger-enrichment-service-t3wcd12r.js → trigger-enrichment-service-ak1nrz5t.js} +30 -29
  171. package/dist/{variable-service-2q705dsx.js → variable-service-t9gsp8xs.js} +16 -13
  172. package/dist/{wait-for-flow-job-sx0ht8sb.js → wait-for-flow-job-1s8ka07s.js} +7 -7
  173. package/dist/{xml-949787yf.js → xml-3rzcgm9z.js} +1359 -659
  174. package/dist/zh-CN-IFFXSEJS-tke4mzty.js +2697 -0
  175. package/dist/zh-CN-R2KU4U5L-tc1hat59.js +173 -0
  176. package/dist/zh-TW-GNKMELBF-j674515r.js +173 -0
  177. package/dist/zh-TW-IYBNYAMG-wcan0qpb.js +2697 -0
  178. package/package.json +3 -2
  179. package/dist/bpmn-format-service-r67afbny.js +0 -477
  180. package/dist/case-debug-studio-web-service-kj1797m8.js +0 -336
  181. package/dist/known-types-eq32py2n.js +0 -20
  182. package/dist/node-service-teagjd9n.js +0 -75
  183. package/dist/packager-tool-15bstxb6.js +0 -4192
  184. package/dist/packager-tool-1zpm7wts.js +0 -7217
  185. package/dist/packager-tool-7tjxtpfp.js +0 -106
  186. package/dist/packager-tool-ckhyvcn5.js +0 -58
  187. package/dist/packager-tool-dz506qqq.js +0 -2120
  188. package/dist/packager-tool-hpc2j0zw.js +0 -27
  189. package/dist/packager-tool-jjpc0yka.js +0 -304
  190. package/dist/packager-tool-xtv236p7.js +0 -73
  191. package/dist/strict-sdd-audit-zc0n5vj6.js +0 -1024
  192. package/dist/tidy-service-hc9gex0v.js +0 -36
  193. /package/dist/{localization-xecwjpe2.js → localization-y790z9vm.js} +0 -0
@@ -0,0 +1,261 @@
1
+ import {
2
+ validateIntSvcNode
3
+ } from "./packager-tool-fq7wtkd3.js";
4
+ import {
5
+ catchError
6
+ } from "./packager-tool-z6nkdv48.js";
7
+
8
+ // ../flow-tool/src/services/connector-node-types.ts
9
+ function isConnectorTriggerType(nodeType) {
10
+ return nodeType.startsWith("uipath.connector.trigger");
11
+ }
12
+ function isConnectorWaitForEventType(nodeType) {
13
+ return nodeType.startsWith("uipath.connector.event");
14
+ }
15
+ function isEventDrivenConnectorType(nodeType) {
16
+ return isConnectorTriggerType(nodeType) || isConnectorWaitForEventType(nodeType);
17
+ }
18
+
19
+ // ../flow-tool/src/services/node-validators/connector-validator.ts
20
+ var connectorNodeValidator = {
21
+ id: "uipath-connector",
22
+ appliesTo: (node) => node.type?.startsWith("uipath.connector") ?? false,
23
+ validate: (node) => {
24
+ const rawDetail = node.inputs?.detail;
25
+ const emptyDetailWarning = {
26
+ path: `nodes[${node.id}].inputs.detail`,
27
+ severity: "warning",
28
+ message: "Connector is not configured, no detail found. " + "Run `uip maestro flow node configure <file> <node-id> " + `--detail '{"connectionId":"<id>","folderKey":"<key>",...}'\` ` + "to bind an Integration Service connection."
29
+ };
30
+ if (!rawDetail || typeof rawDetail !== "object" || Array.isArray(rawDetail)) {
31
+ return [emptyDetailWarning];
32
+ }
33
+ const detail = rawDetail;
34
+ if (Object.keys(detail).length === 0)
35
+ return [emptyDetailWarning];
36
+ const isEventDriven = isEventDrivenConnectorType(node.type);
37
+ const context = {
38
+ nodeId: node.id,
39
+ nodeKind: isEventDriven ? "trigger" : "activity",
40
+ connectionId: detail.connectionId,
41
+ folderKey: detail.connectionFolderKey,
42
+ objectName: detail.objectName ?? detail.connector,
43
+ httpMethod: detail.method,
44
+ endpoint: detail.endpoint,
45
+ eventMode: detail.eventMode,
46
+ eventType: detail.eventType,
47
+ bodyParameters: detail.bodyParameters,
48
+ queryParameters: detail.queryParameters,
49
+ pathParameters: detail.pathParameters,
50
+ eventParameters: detail.eventParameters,
51
+ configuration: detail.configuration
52
+ };
53
+ const issues = validateIntSvcNode(context).map((issue) => ({
54
+ path: `nodes[${node.id}].inputs.detail`,
55
+ message: issue.title,
56
+ severity: issue.type === "Error" ? "error" : "warning"
57
+ }));
58
+ issues.push(...validateCeqlFilterShape(node.id, detail));
59
+ if (!isEventDriven) {
60
+ issues.push(...validateEndpointMatchesActivityPath(node.id, detail));
61
+ }
62
+ return issues;
63
+ }
64
+ };
65
+ function staticSegments(path, substitutedValues) {
66
+ const cut = path.search(/[?#]/);
67
+ return (cut === -1 ? path : path.slice(0, cut)).split("/").filter((seg) => seg.length > 0).filter((seg) => !(seg.startsWith("{") && seg.endsWith("}"))).filter((seg) => !substitutedValues.has(seg));
68
+ }
69
+ function endpointNamesActivity(endpointSegments, activitySegments) {
70
+ const extra = endpointSegments.length - activitySegments.length;
71
+ if (extra < 0 || extra > 1)
72
+ return false;
73
+ return activitySegments.every((seg, i) => seg === endpointSegments[i]);
74
+ }
75
+ function readEssentialConfiguration(detail) {
76
+ const configuration = detail.configuration;
77
+ if (typeof configuration !== "string")
78
+ return;
79
+ const [, parsed] = catchError(() => JSON.parse(configuration.replace(/^=jsonString:/, "")));
80
+ if (!parsed || typeof parsed !== "object" || Array.isArray(parsed)) {
81
+ return;
82
+ }
83
+ return readObjectField(parsed, "essentialConfiguration");
84
+ }
85
+ function readEssentialPath(detail) {
86
+ const path = readEssentialConfiguration(detail)?.path;
87
+ return typeof path === "string" && path.length > 0 ? path : undefined;
88
+ }
89
+ function validateEndpointMatchesActivityPath(nodeId, detail) {
90
+ const endpoint = detail.endpoint;
91
+ if (typeof endpoint !== "string" || endpoint.length === 0)
92
+ return [];
93
+ const activityPath = readEssentialPath(detail);
94
+ if (!activityPath)
95
+ return [];
96
+ const substituted = new Set;
97
+ const pathParameters = detail.pathParameters;
98
+ if (pathParameters && typeof pathParameters === "object") {
99
+ for (const v of Object.values(pathParameters)) {
100
+ if (typeof v === "string" || typeof v === "number") {
101
+ substituted.add(String(v));
102
+ }
103
+ }
104
+ }
105
+ if (endpointNamesActivity(staticSegments(endpoint, substituted), staticSegments(activityPath, substituted))) {
106
+ return [];
107
+ }
108
+ return [
109
+ {
110
+ path: `nodes[${nodeId}].inputs.detail.endpoint`,
111
+ severity: "warning",
112
+ message: `endpoint "${endpoint}" does not name the activity this node is configured for — its path is "${activityPath}" ` + "(essentialConfiguration.path). The runtime calls the endpoint verbatim, so the request reaches a different operation and fails at debug " + "with the provider's words for a missing or unknown field (e.g. Slack [102003] no_text when the v1 endpoint receives the v2 body). " + `Re-run node configure with --detail.endpoint "${activityPath}" (keep {param} segments; values go in pathParameters).`
113
+ }
114
+ ];
115
+ }
116
+ function validateCeqlFilterShape(nodeId, detail) {
117
+ const issues = [];
118
+ const queryParameters = readObjectField(detail, "queryParameters");
119
+ if (queryParameters && Object.hasOwn(queryParameters, "$where")) {
120
+ issues.push({
121
+ path: `nodes[${nodeId}].inputs.detail.queryParameters["$where"]`,
122
+ severity: "error",
123
+ message: 'Connector node uses OData-style `"$where"` (with leading `$`) ' + "in queryParameters. CEQL uses bare `where` — rename the key " + 'from `"$where"` to `"where"`. The leading `$` is the OData ' + "system-query-option prefix and is not recognized by " + "uipath.connector.* nodes. See uipath-maestro-flow skill — " + 'plugins/connector/impl.md, "Hand-authored CEQL strings" ' + "(MST-9265)."
124
+ });
125
+ }
126
+ const queryWhere = queryParameters?.where;
127
+ const queryWhereAuthored = isNonEmptyString(queryWhere);
128
+ const queryWhereIsWholeValueExpression = typeof queryWhere === "string" && queryWhere.startsWith("=js:");
129
+ const savedTrees = readObjectField(detail, "savedFilterTrees") ?? readEssentialSavedFilterTrees(detail);
130
+ const savedWhereAuthored = savedTrees !== undefined && isNonEmptyObject(savedTrees.where);
131
+ if (queryWhereAuthored && !queryWhereIsWholeValueExpression && !savedWhereAuthored) {
132
+ issues.push({
133
+ path: `nodes[${nodeId}].inputs.detail.savedFilterTrees.where`,
134
+ severity: "error",
135
+ message: "Connector node has `queryParameters.where` set but no " + "matching `savedFilterTrees.where` AST — neither at " + "`inputs.detail.savedFilterTrees.where` nor as " + "`essentialConfiguration.savedFilterTrees.where` inside " + "`inputs.detail.configuration`. CEQL filters must be authored " + "as both the raw filter expression (`queryParameters.where`) " + "AND a parallel canonical AST (`filters[].id` / `.operator` / " + "`.value.value`). The Studio Web canvas needs the AST to " + "render the filter UI; the runtime needs the expression. " + "Re-run `uip maestro flow node configure --detail.filter` to " + "author both. See uipath-maestro-flow skill — " + 'plugins/connector/impl.md, "Hand-authored CEQL strings" ' + "(MST-9265)."
136
+ });
137
+ }
138
+ if (savedWhereAuthored && !queryWhereAuthored) {
139
+ issues.push({
140
+ path: `nodes[${nodeId}].inputs.detail.queryParameters.where`,
141
+ severity: "error",
142
+ message: "Connector node has `savedFilterTrees.where` AST but no " + "matching `queryParameters.where` expression. CEQL filters " + "must be authored on both keys in parallel — the runtime " + "evaluates `queryParameters.where`, not the AST. See " + 'uipath-maestro-flow skill — plugins/connector/impl.md, "Hand-authored ' + 'CEQL strings" (MST-9265).'
143
+ });
144
+ }
145
+ return issues;
146
+ }
147
+ function readEssentialSavedFilterTrees(detail) {
148
+ const essentialConfiguration = readEssentialConfiguration(detail);
149
+ if (!essentialConfiguration)
150
+ return;
151
+ return readObjectField(essentialConfiguration, "savedFilterTrees");
152
+ }
153
+ function readObjectField(parent, key) {
154
+ const value = parent[key];
155
+ if (!value || typeof value !== "object" || Array.isArray(value)) {
156
+ return;
157
+ }
158
+ return value;
159
+ }
160
+ function isNonEmptyString(value) {
161
+ return typeof value === "string" && value.trim().length > 0;
162
+ }
163
+ function isNonEmptyObject(value) {
164
+ return !!value && typeof value === "object" && !Array.isArray(value) && Object.keys(value).length > 0;
165
+ }
166
+
167
+ // ../flow-tool/src/services/node-validators/cross-node-binding-validator.ts
168
+ var IDENTIFIER_ROOT_RE = /(?<![.\w$])([A-Za-z_$][\w$]*)\.(?!\.)/g;
169
+ function findCrossNodeBindingReferences(value, nodeIds) {
170
+ if (nodeIds.size === 0)
171
+ return [];
172
+ const trimmed = value.trimStart();
173
+ if (!trimmed.startsWith("=js:"))
174
+ return [];
175
+ const body = trimmed.slice(4);
176
+ const referenced = new Set;
177
+ const fixedBody = body.replace(IDENTIFIER_ROOT_RE, (match, identifier) => {
178
+ if (!nodeIds.has(identifier))
179
+ return match;
180
+ referenced.add(identifier);
181
+ return `$vars.${match}`;
182
+ });
183
+ if (referenced.size === 0)
184
+ return [];
185
+ const fixedValue = `=js:${fixedBody}`;
186
+ return [...referenced].map((nodeId) => ({ nodeId, fixedValue }));
187
+ }
188
+ function crossNodeBindingMessage(originalValue, ref) {
189
+ return `Expression "${originalValue}" references node "${ref.nodeId}" without the "$vars." prefix — ` + `cross-node outputs resolve to undefined at runtime (the bare identifier reads as an ` + `undeclared local, not the runtime variable). Use "${ref.fixedValue}" instead. ` + "See uipath-maestro-flow skill — node-output-wiring.md (FPD-538).";
190
+ }
191
+ function scanContainerForCrossNodeBindings(obj, path, nodeIds, severity, issues) {
192
+ if (typeof obj === "string") {
193
+ for (const ref of findCrossNodeBindingReferences(obj, nodeIds)) {
194
+ issues.push({
195
+ path,
196
+ severity,
197
+ message: crossNodeBindingMessage(obj, ref)
198
+ });
199
+ }
200
+ return;
201
+ }
202
+ if (Array.isArray(obj)) {
203
+ for (let i = 0;i < obj.length; i++) {
204
+ scanContainerForCrossNodeBindings(obj[i], `${path}[${i}]`, nodeIds, severity, issues);
205
+ }
206
+ return;
207
+ }
208
+ if (obj && typeof obj === "object") {
209
+ for (const [key, value] of Object.entries(obj)) {
210
+ scanContainerForCrossNodeBindings(value, `${path}.${key}`, nodeIds, severity, issues);
211
+ }
212
+ }
213
+ }
214
+ var PARAMETER_CONTAINER_KEYS = [
215
+ "bodyParameters",
216
+ "queryParameters",
217
+ "pathParameters"
218
+ ];
219
+ function scanDetailForCrossNodeBindings(detail, nodeIds, severity = "warning") {
220
+ if (!detail || nodeIds.size === 0)
221
+ return [];
222
+ const issues = [];
223
+ for (const containerKey of PARAMETER_CONTAINER_KEYS) {
224
+ const container = detail[containerKey];
225
+ if (!container || typeof container !== "object" || Array.isArray(container)) {
226
+ continue;
227
+ }
228
+ scanContainerForCrossNodeBindings(container, `detail.${containerKey}`, nodeIds, severity, issues);
229
+ }
230
+ return issues;
231
+ }
232
+ var crossNodeBindingValidator = {
233
+ id: "cross-node-binding",
234
+ appliesTo: (node) => {
235
+ const t = node.type;
236
+ if (!t)
237
+ return false;
238
+ if (isEventDrivenConnectorType(t))
239
+ return false;
240
+ return t.startsWith("uipath.connector.") || t === "core.action.http" || t === "core.action.http.v2";
241
+ },
242
+ validate: (node, context) => {
243
+ const nodeIds = context.nodeIds ?? new Set;
244
+ if (nodeIds.size === 0)
245
+ return [];
246
+ const rawDetail = node.inputs?.detail;
247
+ if (!rawDetail || typeof rawDetail !== "object" || Array.isArray(rawDetail)) {
248
+ return [];
249
+ }
250
+ const severity = context.strictBindings ? "error" : "warning";
251
+ const issues = scanDetailForCrossNodeBindings(rawDetail, nodeIds, severity);
252
+ return issues.map((issue) => ({
253
+ ...issue,
254
+ path: `nodes[${node.id}].inputs.${issue.path}`
255
+ }));
256
+ }
257
+ };
258
+
259
+ export { isConnectorTriggerType, isConnectorWaitForEventType, isEventDrivenConnectorType, connectorNodeValidator, readEssentialConfiguration, scanDetailForCrossNodeBindings, crossNodeBindingValidator };
260
+
261
+ //# debugId=23993EE2502BD84764756E2164756E21