@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
@@ -2444,6 +2444,63 @@ var require_xml = __commonJS(function(exports, module) {
2444
2444
  "Activate marquee tool": "Activate marquee tool",
2445
2445
  Activities: "Activities",
2446
2446
  "Activity reference": "Activity reference",
2447
+ bulk_action_cancel_confirmation_token: "CANCEL",
2448
+ bulk_action_cancel_primary_action: "Cancel operation",
2449
+ bulk_action_cancel_subtitle: "Stops new work and lets in-flight items finish cleanly. This can't be undone.",
2450
+ bulk_action_cancel_title_one: "Cancel {{formattedCount}} instance",
2451
+ bulk_action_cancel_title_other: "Cancel {{formattedCount}} instances",
2452
+ bulk_action_delete_confirmation_token: "DELETE",
2453
+ bulk_action_delete_primary_action: "Delete permanently",
2454
+ bulk_action_delete_subtitle: "Deleted runs are gone permanently. Instances that aren't in a terminal state will fail in the results.",
2455
+ bulk_action_delete_title_one: "Delete {{formattedCount}} instance",
2456
+ bulk_action_delete_title_other: "Delete {{formattedCount}} instances",
2457
+ bulk_action_dialog_back: "Back",
2458
+ bulk_action_dialog_comment_action_history: "Comment (recorded in Action History)",
2459
+ bulk_action_dialog_comment_optional: "Comment (optional)",
2460
+ bulk_action_dialog_comment_placeholder: "e.g. Cancelling stuck instances after bad deploy",
2461
+ bulk_action_dialog_confirmation_label: "Confirmation",
2462
+ bulk_action_dialog_destructive_warning: "Destructive action on a large selection. Type {{token}} to confirm.",
2463
+ bulk_action_dialog_footer_status_one: "{{formattedCount}} selected",
2464
+ bulk_action_dialog_footer_status_other: "{{formattedCount}} selected",
2465
+ bulk_action_dialog_selection_selected_rows: "Selected rows",
2466
+ bulk_action_dialog_summary_operation: "Operation",
2467
+ bulk_action_dialog_summary_selection: "Selection",
2468
+ bulk_action_dialog_summary_target_instances: "Target instances",
2469
+ bulk_action_migrate_primary_action_one: "Migrate {{formattedCount}} instance",
2470
+ bulk_action_migrate_primary_action_other: "Migrate {{formattedCount}} instances",
2471
+ bulk_action_migrate_set_variables: "Set variables (optional)",
2472
+ bulk_action_migrate_set_variables_hint_one: "Applied to the {{formattedCount}} instance during migration.",
2473
+ bulk_action_migrate_set_variables_hint_other: "Applied to all {{formattedCount}} instances during migration.",
2474
+ bulk_action_migrate_subtitle: "Compatibility isn't pre-checked. Incompatible instances land as failures.",
2475
+ bulk_action_migrate_title_one: "Migrate {{formattedCount}} instance",
2476
+ bulk_action_migrate_title_other: "Migrate {{formattedCount}} instances",
2477
+ bulk_action_operation_cancel: "Cancel",
2478
+ bulk_action_operation_delete: "Delete",
2479
+ bulk_action_operation_goto: "Go to",
2480
+ bulk_action_operation_migrate: "Migrate",
2481
+ bulk_action_operation_patch_variables: "Update variables",
2482
+ bulk_action_operation_pause: "Pause",
2483
+ bulk_action_operation_resume: "Resume",
2484
+ bulk_action_operation_retry: "Retry",
2485
+ bulk_action_pause_primary_action_one: "Pause {{formattedCount}} instance",
2486
+ bulk_action_pause_primary_action_other: "Pause {{formattedCount}} instances",
2487
+ bulk_action_pause_subtitle: "Pauses the selected instances. Instances not currently running will fail.",
2488
+ bulk_action_pause_title_one: "Pause {{formattedCount}} instance",
2489
+ bulk_action_pause_title_other: "Pause {{formattedCount}} instances",
2490
+ bulk_action_resume_primary_action_one: "Resume {{formattedCount}} instance",
2491
+ bulk_action_resume_primary_action_other: "Resume {{formattedCount}} instances",
2492
+ bulk_action_resume_subtitle: "Resumes the selected instances. Instances that aren't paused will fail.",
2493
+ bulk_action_resume_title_one: "Resume {{formattedCount}} instance",
2494
+ bulk_action_resume_title_other: "Resume {{formattedCount}} instances",
2495
+ bulk_action_retry_primary_action_one: "Retry {{formattedCount}} instance",
2496
+ bulk_action_retry_primary_action_other: "Retry {{formattedCount}} instances",
2497
+ bulk_action_retry_subtitle: "Re-runs the selected instances. Only faulted instances will take the action; others fail in the results.",
2498
+ bulk_action_retry_title_one: "Retry {{formattedCount}} instance",
2499
+ bulk_action_retry_title_other: "Retry {{formattedCount}} instances",
2500
+ bulk_action_start_error: "Couldn't start the bulk operation. No instances were changed.",
2501
+ bulk_action_started_one: "Started {{operation}} on {{formattedCount}} instance.",
2502
+ bulk_action_started_other: "Started {{operation}} on {{formattedCount}} instances.",
2503
+ bulk_action_started_partial: "Started {{operation}} on {{startedCount}} instances. {{failedCount}} could not be started: {{reason}}",
2447
2504
  "{{ activityLabel }} ➔ {{ variableName }}": "{{ activityLabel }} ➔ {{ variableName }}",
2448
2505
  "Add boundary event": "Add boundary event",
2449
2506
  Interrupting: "Interrupting",
@@ -2768,6 +2825,19 @@ var require_xml = __commonJS(function(exports, module) {
2768
2825
  fps_form_action_option_bulk_add_queue_items: "Bulk add queue items",
2769
2826
  fps_form_action_option_delete_queue_items: "Delete queue items",
2770
2827
  fps_form_action_option_get_transaction_item: "Get transaction item",
2828
+ fps_form_action_option_get_queue_items: "Get queue items",
2829
+ queue_get_queue_items_reference_helper_text: "Only return items whose reference matches exactly. Leave empty to match any reference.",
2830
+ queue_get_queue_items_status_label: "Status",
2831
+ queue_get_queue_items_status_helper_text: "Only return items with this status. All returns items regardless of status. The element fails when no items match.",
2832
+ queue_get_queue_items_status_new: "New",
2833
+ queue_get_queue_items_status_in_progress: "InProgress",
2834
+ queue_get_queue_items_status_failed: "Failed",
2835
+ queue_get_queue_items_status_successful: "Successful",
2836
+ queue_get_queue_items_status_abandoned: "Abandoned",
2837
+ queue_get_queue_items_status_retried: "Retried",
2838
+ queue_get_queue_items_status_deleted: "Deleted",
2839
+ queue_get_queue_items_items_label: "Queue items",
2840
+ queue_get_queue_items_count_label: "Count",
2771
2841
  fps_form_action_option_queue_wait_for_event: "Wait for queue item",
2772
2842
  queue_get_transaction_item_reference_label: "Reference",
2773
2843
  queue_get_transaction_item_reference_helper_text: "Only dequeue items whose reference matches. Leave empty to dequeue the next available item.",
@@ -2806,8 +2876,12 @@ var require_xml = __commonJS(function(exports, module) {
2806
2876
  fps_form_action_option_acquire_lock: "Acquire lock",
2807
2877
  fps_form_action_option_release_lock: "Release lock",
2808
2878
  fps_form_action_option_document_extraction: "Document extraction",
2879
+ fps_form_action_option_document_extraction_preview: "Document extraction [Preview]",
2809
2880
  message_event_input_time_to_live: "Time to live",
2810
- message_event_ttl_help_text: "Buffers message until that duration or date-time",
2881
+ message_event_ttl_help_text: "Buffers message until that duration or date-time. Maximum 7 days",
2882
+ message_event_ttl_max_error: "Time to live cannot be greater than {{maxDays}} days",
2883
+ duration_exceeds_max_error: "Value cannot be greater than {{max}}",
2884
+ message_event_ttl_elapsed_error: "Time to live has already elapsed. The message would expire as soon as it is sent",
2811
2885
  message_event_reference_help_text: "Primary key for the message. Used for correlation between thrower and catcher",
2812
2886
  fps_form_action_option_timer_trigger: "Wait for timer",
2813
2887
  fps_action_category_agent: "Agent",
@@ -3087,6 +3161,9 @@ var require_xml = __commonJS(function(exports, module) {
3087
3161
  sla_time_remaining_single_day_plural_hours: "{{days}} day {{hours}} hrs remaining",
3088
3162
  sla_time_remaining_plural_days_single_hour: "{{days}} days {{hours}} hr remaining",
3089
3163
  sla_time_remaining_plural_days_plural_hours: "{{days}} days {{hours}} hrs remaining",
3164
+ sla_time_remaining_single_minute: "{{minutes}} min remaining",
3165
+ sla_time_remaining_plural_minutes: "{{minutes}} mins remaining",
3166
+ sla_time_less_than_minute_remaining: "Less than 1 minute remaining",
3090
3167
  sla_time_past_sla_single_day: "{{days}} day past SLA",
3091
3168
  sla_time_past_sla_plural_days: "{{days}} days past SLA",
3092
3169
  sla_time_past_sla_single_hour: "{{hours}} hr past SLA",
@@ -3095,6 +3172,9 @@ var require_xml = __commonJS(function(exports, module) {
3095
3172
  sla_time_past_sla_single_day_plural_hours: "{{days}} day {{hours}} hrs past SLA",
3096
3173
  sla_time_past_sla_plural_days_single_hour: "{{days}} days {{hours}} hr past SLA",
3097
3174
  sla_time_past_sla_plural_days_plural_hours: "{{days}} days {{hours}} hrs past SLA",
3175
+ sla_time_past_sla_single_minute: "{{minutes}} min past SLA",
3176
+ sla_time_past_sla_plural_minutes: "{{minutes}} mins past SLA",
3177
+ sla_time_less_than_minute_past_sla: "Less than 1 minute past SLA",
3098
3178
  sla_time_past_due_single_day: "{{days}} day past due",
3099
3179
  sla_time_past_due_plural_days: "{{days}} days past due",
3100
3180
  sla_time_past_due_single_hour: "{{hours}} hr past due",
@@ -3103,6 +3183,9 @@ var require_xml = __commonJS(function(exports, module) {
3103
3183
  sla_time_past_due_single_day_plural_hours: "{{days}} day {{hours}} hrs past due",
3104
3184
  sla_time_past_due_plural_days_single_hour: "{{days}} days {{hours}} hr past due",
3105
3185
  sla_time_past_due_plural_days_plural_hours: "{{days}} days {{hours}} hrs past due",
3186
+ sla_time_past_due_single_minute: "{{minutes}} min past due",
3187
+ sla_time_past_due_plural_minutes: "{{minutes}} mins past due",
3188
+ sla_time_less_than_minute_past_due: "Less than 1 minute past due",
3106
3189
  case_mgmt_stage_sla_min_single: "SLA: {{count}} minute",
3107
3190
  case_mgmt_stage_sla_min_plural: "SLA: {{count}} minutes",
3108
3191
  case_mgmt_stage_sla_h_single: "SLA: {{count}} hour",
@@ -3217,6 +3300,7 @@ var require_xml = __commonJS(function(exports, module) {
3217
3300
  "Edit variable": "Edit variable",
3218
3301
  "From {{elementId}}": "From {{elementId}}",
3219
3302
  "Update variables": "Update variables",
3303
+ update_variables_and_entities_accordion_label: "Update variables and entities",
3220
3304
  "You are about to update some variables. This action will not affect the current state. Review the modifications before proceeding.": "You are about to update some variables. This action will not affect the current state. Review the modifications before proceeding.",
3221
3305
  "Review modifications ({{count}})_one": "Review modifications ({{count}})",
3222
3306
  "Review modifications ({{count}})_other": "Review modifications ({{count}})",
@@ -3354,6 +3438,8 @@ var require_xml = __commonJS(function(exports, module) {
3354
3438
  "Remove breakpoint": "Remove breakpoint",
3355
3439
  "Add breakpoint": "Add breakpoint",
3356
3440
  Copy: "Copy",
3441
+ "Bring to front": "Bring to front",
3442
+ "Send to back": "Send to back",
3357
3443
  maestro_trace_collapse_value: "Collapse value",
3358
3444
  maestro_trace_copy_section: "Copy {{title}}",
3359
3445
  Cut: "Cut",
@@ -3427,6 +3513,7 @@ var require_xml = __commonJS(function(exports, module) {
3427
3513
  "Insert variable": "Insert variable",
3428
3514
  "Test input": "Test input",
3429
3515
  "Data source:": "Data source:",
3516
+ "Type:": "Type:",
3430
3517
  Search: "Search",
3431
3518
  "In progress...": "In progress...",
3432
3519
  "Agent service task": "Agent service task",
@@ -3469,6 +3556,7 @@ var require_xml = __commonJS(function(exports, module) {
3469
3556
  monaco_current_date_time_warning: "Avoid current date/time in expressions",
3470
3557
  monaco_current_date_time_warning_description: "Using {{method}} in an expression may return a different value when the process resumes and cause it to stop. Use a fixed or previously saved date/time value instead.",
3471
3558
  "{{element}} is configured incorrectly": "{{element}} is configured incorrectly",
3559
+ "{{element}} has incorrectly configured {{name}}": "{{element}} has incorrectly configured {{name}}",
3472
3560
  "Broken flow line": "Broken flow line",
3473
3561
  "This flow line is referencing an element that no longer exists. The element you connected to may have been deleted.": "This flow line is referencing an element that no longer exists. The element you connected to may have been deleted.",
3474
3562
  "Remove connection": "Remove connection",
@@ -3616,6 +3704,16 @@ var require_xml = __commonJS(function(exports, module) {
3616
3704
  case_mgmt_data_fabric_editor_query_mode_multiple: "Multiple",
3617
3705
  case_mgmt_data_fabric_editor_query_label: "Query",
3618
3706
  case_mgmt_data_fabric_editor_json_label: "JSON",
3707
+ case_mgmt_data_fabric_editor_table_label: "Table",
3708
+ case_mgmt_data_fabric_editor_table_placeholder: "Select table",
3709
+ case_mgmt_data_fabric_entity_resource_load_error: "Cannot load the tables for this entity. Select it again, or pick another entity.",
3710
+ case_mgmt_data_fabric_entity_scope_label: "Entity scope",
3711
+ case_mgmt_data_fabric_entity_scope_folder: "Folder",
3712
+ case_mgmt_data_fabric_entity_scope_tenant: "Tenant",
3713
+ case_mgmt_data_fabric_entity_loading: "Loading entities…",
3714
+ case_mgmt_data_fabric_entity_load_error: "Cannot load entities. Refresh and try again.",
3715
+ case_mgmt_data_fabric_entity_scope_load_error: "Cannot load entities for the selected scope. Try again, or switch scope.",
3716
+ case_mgmt_data_fabric_entity_scope_empty: "No entities found in this scope.",
3619
3717
  case_mgmt_data_fabric_chip_label: "{{entity}} where {{lookupField}} equals {{lookupValue}}",
3620
3718
  case_mgmt_data_fabric_chip_label_with_field: "{{field}} of {{entity}} where {{lookupField}} equals {{lookupValue}}",
3621
3719
  case_mgmt_data_fabric_operation_label: "Operation",
@@ -3638,7 +3736,7 @@ var require_xml = __commonJS(function(exports, module) {
3638
3736
  case_mgmt_data_fabric_filter_edit: "Edit filter ({{count}} conditions)",
3639
3737
  "No entities found. Please ensure {{SERVICE}} is enabled for your tenant and contains entities.": "No entities found. Please ensure {{SERVICE}} is enabled for your tenant and contains entities.",
3640
3738
  "Data Fabric": "Data Fabric",
3641
- case_mgmt_data_fabric_menu_item_label: "Data Fabric entities",
3739
+ case_mgmt_data_fabric_menu_item_label: "Entities",
3642
3740
  case_mgmt_data_fabric_chip_source: "Data Fabric",
3643
3741
  "Warning message": "Warning message",
3644
3742
  Instances: "Instances",
@@ -3799,7 +3897,8 @@ var require_xml = __commonJS(function(exports, module) {
3799
3897
  Time: "Time",
3800
3898
  Accepted: "Accepted",
3801
3899
  update_variable_set_variable_value: "Set variable value",
3802
- update_variable_set_data_fabric_value: "Set Data Fabric value",
3900
+ update_variable_set_data_fabric_value: "Set Entities value",
3901
+ update_variable_source_tooltip: "Originally defined in {{source}}",
3803
3902
  scope_dropdown_title: "Scope",
3804
3903
  DateTime: "DateTime",
3805
3904
  DayTimeDuration: "DayTimeDuration",
@@ -3895,7 +3994,6 @@ var require_xml = __commonJS(function(exports, module) {
3895
3994
  "instances_grid_description_tooltip_message_{{description}}": "Description: {{description}}",
3896
3995
  instances_grid_loading_error_message: "An error occurred while fetching data. Please try again later.",
3897
3996
  execution_info_tabs_globals_title: "Global variables",
3898
- "execution_info_tabs_incidents_{{count}}_title": "Incidents ({{count}})",
3899
3997
  execution_info_tabs_incidents_title: "Incidents",
3900
3998
  execution_info_tab_details_incident_notice_one: "{{count}} incident associated with this step.",
3901
3999
  execution_info_tab_details_incident_notice_other: "{{count}} incidents associated with this step.",
@@ -4297,6 +4395,8 @@ var require_xml = __commonJS(function(exports, module) {
4297
4395
  instance_profile_instances_tab_title: "Instance management",
4298
4396
  instance_profile_monitoring_tab_title: "Monitoring",
4299
4397
  instance_profile_optimize_tab_title: "Optimize",
4398
+ instance_profile_access_tab_title: "Access",
4399
+ instance_profile_access_roles_readonly_banner: "<bold>Roles are read-only here.</bold> They are defined in the process solution alongside the case definition. To add, rename, or change the permissions of a role, edit the case in <link>Studio Web</link> and republish the process.",
4300
4400
  instance_profile_monitoring_instance_details: "Instance details",
4301
4401
  "Hide background grid": "Hide background grid",
4302
4402
  "Show background grid": "Show background grid",
@@ -4308,6 +4408,8 @@ var require_xml = __commonJS(function(exports, module) {
4308
4408
  instance_profile_version_filter_title: "Version",
4309
4409
  instance_profile_version_filter_none_option: "All versions",
4310
4410
  instance_profile_version_filter_none_selection: "All",
4411
+ instance_profile_version_filter_instance_count_one: "({{count}} instance)",
4412
+ instance_profile_version_filter_instance_count_other: "({{count}} instances)",
4311
4413
  process_canvas_no_version_selected_message: "Select a single version to see the diagram",
4312
4414
  process_canvas_error_fallback_message: "Unable to load diagram.",
4313
4415
  instance_run_header_status: "Status",
@@ -4459,6 +4561,20 @@ var require_xml = __commonJS(function(exports, module) {
4459
4561
  instance_runs_drawer_status_completed_filter_label: "Completed",
4460
4562
  instance_runs_drawer_error_filter_title: "Error message",
4461
4563
  instance_runs_drawer_error_filter_none_option: "None",
4564
+ runtime_profile_lite_label: "Maestro Automate",
4565
+ instance_profile_version_filter_lite_option: "{{version}} (Maestro Automate)",
4566
+ instance_run_header_pause_unavailable_lite: "Pause isn't available for Maestro Automate processes. Redeploy to Maestro Orchestrate to use.",
4567
+ instance_run_header_resume_unavailable_lite: "Resume isn't available for Maestro Automate processes. Redeploy to Maestro Orchestrate to use.",
4568
+ instance_run_header_migrate_unavailable_lite: "Migrate isn't available for Maestro Automate processes. Redeploy to Maestro Orchestrate to use.",
4569
+ instance_run_header_goto_unavailable_lite: "Go to isn't available for Maestro Automate processes. Redeploy to Maestro Orchestrate to use.",
4570
+ instance_run_header_action_runtime_profile_pending: "Checking which runtime this version runs on…",
4571
+ instance_runs_drawer_advanced_options_title: "Advanced options",
4572
+ instance_runs_drawer_advanced_options_title_excludes_lite: "Advanced options (excludes Maestro Automate)",
4573
+ instance_runs_drawer_filter_unavailable_lite: "Not available for Maestro Automate processes",
4574
+ instance_profile_monitoring_unavailable_lite: "Monitoring isn't available for Maestro Automate processes. Redeploy to Maestro Orchestrate to use.",
4575
+ instance_profile_monitoring_excludes_lite: "Monitoring excludes Maestro Automate versions of this process.",
4576
+ instance_profile_optimize_unavailable_lite: "Optimize isn't available for Maestro Automate processes. Redeploy to Maestro Orchestrate to use.",
4577
+ instance_profile_optimize_excludes_lite: "Optimize excludes Maestro Automate versions of this process.",
4462
4578
  instance_runs_drawer_element_filter_title: "Element",
4463
4579
  instance_runs_drawer_element_filter_loading_message: "Loading...",
4464
4580
  instance_runs_drawer_element_filter_message: "Pick specific elements of the diagram. Once selected, the view will filter to show only the relevant data.",
@@ -4639,6 +4755,7 @@ var require_xml = __commonJS(function(exports, module) {
4639
4755
  case_mgmt_stage_has_run_before_variable_name: "{{stageName}} has run before",
4640
4756
  case_mgmt_explorer_case_plan_label: "Case plan",
4641
4757
  stage_sla_and_escalations: "SLA and escalations",
4758
+ stage_sla_and_escalations_with_count: "SLA and escalations ({{count}})",
4642
4759
  stage_tasks: "Tasks",
4643
4760
  panel_info_card_dismiss: "Dismiss",
4644
4761
  stage_info_card_title: "Stages organize the lifecycle of a case",
@@ -4653,6 +4770,7 @@ var require_xml = __commonJS(function(exports, module) {
4653
4770
  case_agent_info_card_description: "Determines which tasks in other stages to run next. Receives the current execution state (caseCurrentExecutionState) and returns the decisions on which tasks to execute (caseManagerDecisions).",
4654
4771
  stage_general: "General",
4655
4772
  stage_entry_rules: "Entry rules",
4773
+ stage_entry_rules_with_count: "Entry rules ({{count}})",
4656
4774
  case_mgmt_stage_entry_rules_description: "Specifies when a case can enter this stage. Evaluated when a preceding stage completes or an event occurs.",
4657
4775
  case_mgmt_stage_exit_rules_description: "Specifies conditions that move a case out of this stage before it completes — typically used for exception paths.",
4658
4776
  case_mgmt_stage_complete_rules_description: "Specifies what must be done before this stage is marked complete and the case moves forward.",
@@ -4691,7 +4809,9 @@ var require_xml = __commonJS(function(exports, module) {
4691
4809
  stage_wait_for_adhoc_connector_message: "This connector refers to the connector this case will listen to for events. Any events the case receives will result in the Orchestration Tasks in this stage running and determining which tasks in other stages should run next.",
4692
4810
  stage_wait_for_adhoc_connector_add_title: "+ Add connector",
4693
4811
  stage_exit_rules: "Exit rules",
4812
+ stage_exit_rules_with_count: "Exit rules ({{count}})",
4694
4813
  stage_complete_rules: "Completion rules",
4814
+ stage_complete_rules_with_count: "Completion rules ({{count}})",
4695
4815
  case_mgmt_task_exit_condition_add: "Add exit rule",
4696
4816
  case_mgmt_task_complete_condition_add: "Add completion rule",
4697
4817
  "case_mgmt_task_exit_condition_{{number}}_title": "Exit rule {{number}}",
@@ -4719,6 +4839,7 @@ var require_xml = __commonJS(function(exports, module) {
4719
4839
  stage_wait_for_user_select_next_stage_accordion_label: "DataFabric table connector",
4720
4840
  case_mgmt_canvas_root_exit_conditions_title: "Exit rules",
4721
4841
  case_mgmt_canvas_root_complete_conditions_title: "Completion rules",
4842
+ case_mgmt_canvas_root_complete_conditions_title_with_count: "Completion rules ({{count}})",
4722
4843
  case_mgmt_case_exit_condition_add: "Add case exit rule",
4723
4844
  case_mgmt_case_complete_condition_add: "Add case completion rule",
4724
4845
  "case_mgmt_case_exit_condition_{{number}}_title": "Case exit rule {{number}}",
@@ -4762,6 +4883,7 @@ var require_xml = __commonJS(function(exports, module) {
4762
4883
  case_mgmt_user_selected_stage_rule_name: "User selects this as the next stage",
4763
4884
  stage_general_name: "Name",
4764
4885
  stage_general_description: "Description",
4886
+ stage_general_description_helper_text: "Describe what this stage is for and when it's done — for teammates, the Case Manager, and agents.",
4765
4887
  stage_no_data: "Select to edit",
4766
4888
  stage_sla_header: "SLA and escalation rules",
4767
4889
  stage_add_sla: "+ Add SLA(s)",
@@ -4814,6 +4936,7 @@ var require_xml = __commonJS(function(exports, module) {
4814
4936
  case_mgmt_add_agent_modal_description: "UiPath's specialized case agent comes with pre-built tools and is trained to handle decision making for all industries. You can add additional tools, context, and custom prompts to customize this agent further.",
4815
4937
  case_mgmt_add_agent_modal_cancel: "Cancel",
4816
4938
  case_mgmt_add_agent_modal_add: "Add",
4939
+ case_mgmt_add_agent_modal_uipath_agent_tooltip: "Not yet available in Visual Studio.",
4817
4940
  case_mgmt_add_agent_modal_clear_selection: "Clear selection",
4818
4941
  case_mgmt_canvas_general_settings_case_identifier_label: "Case ID",
4819
4942
  case_mgmt_canvas_general_settings_case_identifier_helper_text: "Case IDs will use this format: {{caseIdPrefix}}-12345",
@@ -4837,6 +4960,7 @@ var require_xml = __commonJS(function(exports, module) {
4837
4960
  case_mgmt_canvas_data_fabric_settings_open_entity_button: "Open in Data Fabric",
4838
4961
  case_mgmt_canvas_root_general_settings_title: "General",
4839
4962
  case_mgmt_canvas_root_sla_and_escalations_settings_title: "SLA and escalations",
4963
+ case_mgmt_canvas_root_sla_and_escalations_settings_title_with_count: "SLA and escalations ({{count}})",
4840
4964
  case_mgmt_canvas_case_app_settings_title: "Case app",
4841
4965
  case_mgmt_canvas_case_entity_settings_title: "Case entity",
4842
4966
  case_mgmt_canvas_case_entity_settings_toggle_label: "Enable case entity",
@@ -4990,6 +5114,8 @@ var require_xml = __commonJS(function(exports, module) {
4990
5114
  bpmn_designer_debugger_restart_simulation: "Restart simulation",
4991
5115
  bpmn_designer_debug_execution_trail_tab: "Execution trail",
4992
5116
  bpmn_designer_debug_add_to_evaluations: "Add to evaluations",
5117
+ maestro_eval_add_debug_run_still_running: "Wait for the debug run to finish before adding it to evaluations.",
5118
+ maestro_eval_add_debug_run_seed_failed: "Could not read this run's data. Try running the process again.",
4993
5119
  bpmn_designer_debug_history_tab: "History",
4994
5120
  bpmn_designer_debug_history_trace_label: "Trace {{index}}",
4995
5121
  bpmn_designer_debug_history_empty_state: "No debug history in this session yet.",
@@ -5010,6 +5136,7 @@ var require_xml = __commonJS(function(exports, module) {
5010
5136
  json_schema_builder_switch_to_field_view: "Switch to field view",
5011
5137
  case_mgmt_task_display_name_field_label: "Name",
5012
5138
  case_mgmt_task_description_field_label: "Description",
5139
+ case_mgmt_task_description_field_helper_text: "Describe what this task does and when it applies — for teammates, the Case Manager, and agents.",
5013
5140
  case_mgmt_task_id_field_label: "ID",
5014
5141
  case_mgmt_stage_id_field_label: "ID",
5015
5142
  case_mgmt_task_general_settings_title: "General",
@@ -5028,11 +5155,14 @@ var require_xml = __commonJS(function(exports, module) {
5028
5155
  case_mgmt_task_type_dropdown_function_option: "Function",
5029
5156
  case_mgmt_task_type_dropdown_function_option_preview: "Function [Preview]",
5030
5157
  case_mgmt_task_type_dropdown_document_extraction_option: "Document extraction",
5158
+ case_mgmt_task_type_dropdown_document_extraction_option_preview: "Document extraction [Preview]",
5031
5159
  case_mgmt_task_type_dropdown_hitl_option: "Human action",
5032
5160
  case_management_tasks_empty_assigned_message: "New tasks that require your attention will show up here.",
5033
5161
  case_mgmt_task_type_dropdown_wait_for_timer_option: "Wait for timer",
5034
5162
  case_mgmt_task_type_dropdown_wait_for_connector_option: "Wait for connector",
5035
5163
  case_mgmt_task_type_dropdown_execute_connector_activity_option: "Connector activity",
5164
+ case_mgmt_task_type_dropdown_script_option: "Script",
5165
+ case_mgmt_task_type_dropdown_http_request_option: "HTTP request",
5036
5166
  case_mgmt_stage_placeholder_toolbox: "{{taskType}} placeholder",
5037
5167
  case_mgmt_stage_placeholder_display: "{{taskType}} (placeholder)",
5038
5168
  case_mgmt_stage_add_task: "Add task",
@@ -5134,6 +5264,7 @@ var require_xml = __commonJS(function(exports, module) {
5134
5264
  case_mgmt_agent_panel_name: "Case manager agent",
5135
5265
  case_mgmt_agent_panel_create_error: "Failed to create the case manager agent. Please try again.",
5136
5266
  case_mgmt_agent_panel_open_error: "The case manager agent could not be opened. It may have been deleted.",
5267
+ case_mgmt_create_new_task_label: "Create new {{taskType}}",
5137
5268
  "case_mgmt_delete_{{taskName}}": "Delete {{taskName}}",
5138
5269
  "case_mgmt_replace_{{taskName}}": "Replace {{taskName}}",
5139
5270
  case_mgmt_task_run_conditional_execution_enabled: "Task will execute based on defined conditions",
@@ -5174,10 +5305,14 @@ var require_xml = __commonJS(function(exports, module) {
5174
5305
  case_mgmt_stage_node_wait_for_timer_name: "Wait for timer",
5175
5306
  case_mgmt_stage_node_wait_for_connector_name: "Wait for connector",
5176
5307
  case_mgmt_stage_node_execute_connector_activity_name: "Connector activity",
5308
+ case_mgmt_stage_node_script_name: "Script",
5309
+ case_mgmt_stage_node_http_request_name: "HTTP request",
5177
5310
  case_mgmt_stage_node_wait_for_timer_not_found: "No timer data found",
5178
5311
  case_mgmt_stage_node_wait_for_timer_invalid_duration: "The 'Value' field in the task '{{nodeName}}' should be ISO 8601 duration format",
5179
5312
  case_mgmt_stage_node_wait_for_connector_not_found: "No connector data found",
5180
5313
  case_mgmt_stage_node_execute_connector_activity_not_found: "No connector activity data found",
5314
+ case_mgmt_stage_node_script_not_found: "No script data found",
5315
+ case_mgmt_stage_node_http_request_not_found: "No HTTP request data found",
5181
5316
  case_mgmt_base_initial_transition_edge_name: "Transition to first stage",
5182
5317
  case_mgmt_base_transition_edge_name: "Transition to stage",
5183
5318
  case_mgmt_base_transition_edge_edit_rules: "Edit transition rules",
@@ -5481,6 +5616,9 @@ var require_xml = __commonJS(function(exports, module) {
5481
5616
  `,
5482
5617
  variable_rewrite_snackbar_action: "Go to file",
5483
5618
  json_schema_data_manager_duplicate_argument_names: "Argument names must be unique across entry points: {{names}}. The change was not applied.",
5619
+ json_schema_data_manager_duplicate_variable_names: "Variable names must be unique. {{name}} is already taken. The change was not applied.",
5620
+ json_schema_data_manager_variable_name_taken_by_argument: "{{name}} is already used by an argument. Rename the variable in the Data Manager. The change was not applied.",
5621
+ json_schema_data_manager_argument_name_taken_by_variable: "{{name}} is already used by a variable. Rename the argument in the Data Manager. The change was not applied.",
5484
5622
  json_schema_data_manager_duplicate_orchestrator_resource: "{{resourceName}} is already represented by another Data Manager variable. Reuse that variable or select a different resource.",
5485
5623
  json_schema_data_manager_unsupported_property: "The type used by {{names}} is not supported in agentic processes. The change was not applied.",
5486
5624
  variable_picker_missing_variable_error: "A variable is unresolved",
@@ -5720,6 +5858,8 @@ var require_xml = __commonJS(function(exports, module) {
5720
5858
  case_management_no_additional_stage_nodes_error_description: "Your case requires at least one additional ad hoc stage node to run tasks from.",
5721
5859
  case_management_stage_name_missing_error_title: "Stage name is missing",
5722
5860
  case_management_stage_name_missing_error_description: "Give this stage a unique name.",
5861
+ case_management_trigger_name_not_unique_error_title: "Trigger name '{{nodeName}}' is not unique",
5862
+ case_management_trigger_name_not_unique_error_description: "Each trigger must have a unique name, and there is more than one trigger with the name '{{nodeName}}'. Please rename trigger nodes to have different names.",
5723
5863
  case_management_stage_name_not_unique_error_title: "Stage name '{{nodeName}}' is not unique",
5724
5864
  case_management_stage_name_not_unique_error_description: "Each stage must have a unique name, and there is more than one stage with the name '{{nodeName}}'.",
5725
5865
  case_management_stage_name_not_unique_case_manager_error_title: "Stage name '{{nodeName}}' can't be same as case manager",
@@ -5732,6 +5872,8 @@ var require_xml = __commonJS(function(exports, module) {
5732
5872
  case_management_stage_task_invalid_name_error_description: "Task names cannot contain ':' or '.' characters.",
5733
5873
  case_management_stage_task_name_duplicate_error_title: "Task name '{{taskName}}' is duplicate",
5734
5874
  case_management_stage_task_name_duplicate_error_description: "Each task must have a unique name, and there is more than one task with the name '{{taskName}}'.",
5875
+ case_management_rule_name_duplicate_error_title: "Rule name '{{ruleName}}' is not unique",
5876
+ case_management_rule_name_duplicate_error_description: "Each rule must have a unique name in this case, and there is more than one rule with the name '{{ruleName}}'. This one is on '{{elementName}}'.",
5735
5877
  case_management_task_entry_condition_missing_error_title: "Task has no entry rules",
5736
5878
  case_management_task_entry_condition_missing_error_description: "Add an entry rule to this task or it will never be triggered.",
5737
5879
  case_management_task_entry_condition_rule_missing_error_title: 'Task entry rule "{{conditionName}}" rule selection missing.',
@@ -5926,7 +6068,6 @@ var require_xml = __commonJS(function(exports, module) {
5926
6068
  hitl_type_label: "Type",
5927
6069
  hitl_type_quick_approval: "Quick approval",
5928
6070
  hitl_quick_approval_task_display_name: "Quick approval",
5929
- hitl_schema_editor_add_field: "Add field",
5930
6071
  hitl_type_custom_app: "Custom app",
5931
6072
  hitl_delivery_section_title: "Assignments",
5932
6073
  hitl_enable_notifications_label: "Enable actionable notifications",
@@ -6085,6 +6226,7 @@ var require_xml = __commonJS(function(exports, module) {
6085
6226
  case_mgmt_task_reassign_menu: "Reassign",
6086
6227
  case_mgmt_task_assign_to_self_menu: "Assign to Self",
6087
6228
  case_mgmt_wait_for_connector_section_title: "Connector details",
6229
+ case_mgmt_http_request_section_title: "HTTP request",
6088
6230
  data_transform_missing_fields: "The following previously selected fields are missing: {{fields}}",
6089
6231
  data_transform_remove_missing_fields: "Remove missing fields",
6090
6232
  data_transform_operation_custom_script: "Custom Script",
@@ -6330,6 +6472,10 @@ var require_xml = __commonJS(function(exports, module) {
6330
6472
  validation_rule_timer_missing_required_field_description: "'{{name}}' has no {{fieldName}}.",
6331
6473
  validation_rule_task_timer_out_of_range_message: "Timer value out of range in '{{nodeName}}'",
6332
6474
  validation_rule_task_timer_out_of_range_description: "Timer value in '{{nodeName}}' must be between 15 minutes and 90 days (129,600 minutes).",
6475
+ validation_rule_message_time_to_live_out_of_range_message: "Time to live out of range in '{{nodeName}}'",
6476
+ validation_rule_message_time_to_live_out_of_range_description: "Time to live in '{{nodeName}}' cannot be greater than {{maxDays}} days.",
6477
+ validation_rule_message_time_to_live_elapsed_message: "Time to live has already elapsed in '{{nodeName}}'",
6478
+ validation_rule_message_time_to_live_elapsed_description: "Time to live in '{{nodeName}}' is in the past, so the message would expire as soon as it is sent.",
6333
6479
  validation_rule_timer_duration_invalid_message: "Timer duration is not a valid ISO 8601 value in '{{nodeName}}'",
6334
6480
  validation_rule_timer_duration_invalid_description: "Timer duration in '{{nodeName}}' must be in ISO 8601 format (e.g., PT15M, P1D).",
6335
6481
  validation_rule_timer_duration_week_unsupported_message: "Unsupported timer duration '{{value}}' in '{{nodeName}}'",
@@ -6407,7 +6553,13 @@ var require_xml = __commonJS(function(exports, module) {
6407
6553
  eval_trajectory_expected_steps: "Expected steps",
6408
6554
  maestro_canvas_mode_build: "Build",
6409
6555
  maestro_canvas_mode_evaluate: "Evaluate",
6556
+ maestro_canvas_mode_preview_badge: "Preview",
6410
6557
  data_manager_readonly_toast: "Cannot modify variables or arguments in the current mode. Return to design mode to make changes.",
6558
+ data_manager_and_n_more: "{{shown}} and {{remaining}} more",
6559
+ data_manager_scope_change_needs_own_step: "The scope of '{{variableNames}}' was not changed. Change the scope on its own, without other edits.",
6560
+ data_manager_scope_change_failed: "Couldn't change the scope of that variable.",
6561
+ data_manager_scope_change_blocked: "Can't change the scope of '{{variableName}}' because it is used by {{elements}}. Remove those references first.",
6562
+ data_manager_scope_produced_readonly_tooltip: "This variable's scope follows the element that produces it.",
6411
6563
  data_manager_scope_readonly_tooltip: "A variable's scope can't be changed after it is created.",
6412
6564
  data_manager_entity_variable_delete_readonly_tooltip: "Case entity variables can't be deleted here. Disable the case entity in the case properties to remove them.",
6413
6565
  process_monitoring_error_invalid_input: "The Process Monitoring input is incomplete",
@@ -6439,7 +6591,7 @@ var require_xml = __commonJS(function(exports, module) {
6439
6591
  patterns_form_p2_approval_field_requestType: "Request Type",
6440
6592
  patterns_form_p2_approval_field_requester: "Requester",
6441
6593
  patterns_form_p2_approval_field_reviewerRationale: "Reviewer Rationale",
6442
- patterns_form_p2_approval_file_name: "Approval Task Schema",
6594
+ patterns_form_p2_approval_file_name: "Approval Task {{step}} Schema",
6443
6595
  patterns_form_p2_approval_title: "Approve Request",
6444
6596
  patterns_form_p3_triage_field_item: "Item",
6445
6597
  patterns_form_p3_triage_field_reviewerRationale: "Reviewer Rationale",
@@ -6454,7 +6606,7 @@ var require_xml = __commonJS(function(exports, module) {
6454
6606
  patterns_p1_analyze: "Analyze Input",
6455
6607
  patterns_p1_analyze_note: "Configure implementation",
6456
6608
  patterns_p1_confidence_gate: "Check Confidence Score",
6457
- patterns_p1_desc: "AI handles routine cases on its own and sends ambiguous ones to a human reviewer. The pattern that makes AI trustworthy in production.",
6609
+ patterns_p1_desc: "AI handles routine cases, ambiguous ones go to a human reviewer",
6458
6610
  patterns_p1_e_gate_action: "High Confidence",
6459
6611
  patterns_p1_e_gate_review: "Low Confidence",
6460
6612
  patterns_p1_e_post_approved: "Approved",
@@ -6484,23 +6636,31 @@ var require_xml = __commonJS(function(exports, module) {
6484
6636
  patterns_p1_validate: "Validate AI Output",
6485
6637
  patterns_p1_validate_note: "Configure business rules",
6486
6638
  patterns_p1_var_actionTakenResponse: "Response from the action target.",
6487
- patterns_p1_var_aiConfidenceLevel: "AI's confidence score, 0-1.",
6639
+ patterns_p1_var_aiConfidenceLevel: "AI's confidence score, 0–1.",
6488
6640
  patterns_p1_var_aiDecision: "AI's categorical decision.",
6489
6641
  patterns_p1_var_aiRationale: "AI's reasoning, if produced.",
6642
+ patterns_p1_var_juniorReviewOutcome: `Junior reviewer's outcome: "Approve", "Reject" or "Escalate".`,
6643
+ patterns_p1_var_juniorReviewerRationale: "Junior reviewer's free-text reasoning.",
6490
6644
  patterns_p1_var_reviewOutcome: `Reviewer's outcome: "Approve" or "Reject" (plus "Escalate" where the form offers it).`,
6491
6645
  patterns_p1_var_reviewerRationale: "Reviewer's free-text reasoning.",
6492
6646
  patterns_p1_var_stakesValue: "Use-case-specific stakes signal (loan amount, claim value, transaction amount).",
6493
6647
  patterns_p1_var_validationFailures: "Failure reasons if validation failed.",
6494
6648
  patterns_p1_var_validationPassed: "Did AI output pass validation rules.",
6495
- business_rules_v2_column_panel_variables_aria: "Insert a variable",
6496
- business_rules_v2_variable_picker_group: "Variables",
6649
+ business_rules_debug_no_decision: "The rule engine returned no decision for this rule.",
6650
+ business_rules_debug_unsaved_rule: "Save the rule before debugging it.",
6651
+ business_rules_tests_error_no_details: "The rule engine reported an error but gave no details.",
6652
+ business_rules_tests_no_result_for_decision: 'The rule engine returned no result for decision "{{decisionName}}".',
6653
+ business_rules_tests_not_evaluated: "This test wasn't evaluated. Try running it again.",
6497
6654
  business_rules_v2_argument_in_use_toast: `"{{name}}" is used by the table's expressions and can't be removed.`,
6498
6655
  business_rules_v2_argument_invalid_toast: '"{{name}}" is not a valid argument: use a FEEL name (letter or underscore first) and a simple type.',
6499
6656
  business_rules_v2_argument_swap_toast: "These changes swap names between arguments. Rename one argument at a time.",
6500
6657
  business_rules_v2_argument_required_toast: `"{{name}}" can't be optional: a decision needs every argument it declares.`,
6501
6658
  business_rules_v2_output_argument_last_toast: "A decision table needs at least one output argument.",
6502
6659
  business_rules_v2_output_argument_populated_toast: `"{{name}}" holds values in the table's rules and can't be removed.`,
6503
- patterns_p1_var_verifierConfidence: "Verifier AI's confidence score, 0-1.",
6660
+ business_rules_v2_publish_blocked_action_debugging: "debugging",
6661
+ business_rules_v2_publish_blocked_action_publishing: "publishing",
6662
+ business_rules_v2_publish_blocked_toast: "One or more Business Rules have validation errors. Fix them before {{action}}.",
6663
+ patterns_p1_var_verifierConfidence: "Verifier AI's confidence score, 0–1.",
6504
6664
  patterns_p1_var_verifierDecision: "Verifier AI's independent decision, in the same shape as the first AI's decision.",
6505
6665
  patterns_p1_verification_desc: "A second AI cross-checks the first. Routes to human only when AIs disagree or either is uncertain.",
6506
6666
  patterns_p1_verification_name: "AI Verification Chain",
@@ -6515,6 +6675,9 @@ var require_xml = __commonJS(function(exports, module) {
6515
6675
  patterns_p2_approver1_note: "Assign approver + SLA. Enforce segregation of duties (no self-approval)",
6516
6676
  patterns_p2_approver2: "Approver 2 Review",
6517
6677
  patterns_p2_approver3: "Approver 3 Review",
6678
+ patterns_p2_approverA: "Approver A Review",
6679
+ patterns_p2_approverB: "Approver B Review",
6680
+ patterns_p2_approverC: "Approver C Review",
6518
6681
  patterns_p2_approver_note: "Assign approver + SLA",
6519
6682
  patterns_p2_chain_approved: "Chain Approved",
6520
6683
  patterns_p2_chain_note: "Sequential approval chain. Drill in to configure",
@@ -6522,7 +6685,7 @@ var require_xml = __commonJS(function(exports, module) {
6522
6685
  patterns_p2_chain_start: "Chain Start",
6523
6686
  patterns_p2_decision: "All approved?",
6524
6687
  patterns_p2_decision_note: "All must approve to proceed",
6525
- patterns_p2_desc: "A request moves through several approvers before it can move forward. Each step can stop the chain.",
6688
+ patterns_p2_desc: "A request clears several approvers before it moves forward",
6526
6689
  patterns_p2_e_approve: "Approve",
6527
6690
  patterns_p2_e_chain_approved: "Approved",
6528
6691
  patterns_p2_e_chain_rejected: "Rejected",
@@ -6567,15 +6730,14 @@ var require_xml = __commonJS(function(exports, module) {
6567
6730
  patterns_p2_var_approval2Outcome: 'Approver 2 outcome: "Approve" or "Reject".',
6568
6731
  patterns_p2_var_approval2Rationale: "Approver 2 free-text reasoning.",
6569
6732
  patterns_p2_var_approval3Outcome: 'Approver 3 outcome: "Approve" or "Reject".',
6570
- patterns_p2_var_approval3Outcome_extended: 'Approver 3 outcome (Extended chain only): "Approve" or "Reject".',
6571
6733
  patterns_p2_var_approval3Rationale: "Approver 3 free-text reasoning.",
6572
- patterns_p2_var_approval3Rationale_extended: "Approver 3 free-text reasoning (Extended chain only).",
6573
6734
  patterns_p2_var_approvalAOutcome: 'Approver A outcome: "Approve" or "Reject".',
6574
6735
  patterns_p2_var_approvalARationale: "Approver A free-text reasoning.",
6575
6736
  patterns_p2_var_approvalBOutcome: 'Approver B outcome: "Approve" or "Reject".',
6576
6737
  patterns_p2_var_approvalBRationale: "Approver B free-text reasoning.",
6577
6738
  patterns_p2_var_approvalCOutcome: 'Approver C outcome: "Approve" or "Reject".',
6578
6739
  patterns_p2_var_approvalCRationale: "Approver C free-text reasoning.",
6740
+ patterns_p2_var_chainOutcome: 'Approval chain result read by the top-level gateway: "Approve" or "Reject".',
6579
6741
  patterns_p2_var_fulfillmentResponse: "Response from the fulfillment target.",
6580
6742
  patterns_p2_var_requestDetails: "Request payload: amount, sensitivity, and other decision fields.",
6581
6743
  patterns_p2_var_requestId: "Identifier of the request being approved.",
@@ -6591,7 +6753,7 @@ var require_xml = __commonJS(function(exports, module) {
6591
6753
  patterns_p3_classify: "Classify (AI)",
6592
6754
  patterns_p3_classify_note: "AI/LLM agent classifier. Returns category + confidence",
6593
6755
  patterns_p3_conf_gate: "Confidence >= floor?",
6594
- patterns_p3_desc: "Incoming work is classified and routed to the right in-process handling for its category.",
6756
+ patterns_p3_desc: "Classify incoming work and send it to the right downstream path",
6595
6757
  patterns_p3_e_above_floor: "Above floor",
6596
6758
  patterns_p3_e_below_floor: "Below floor",
6597
6759
  patterns_p3_e_category_a: "Category A",
@@ -6619,9 +6781,10 @@ var require_xml = __commonJS(function(exports, module) {
6619
6781
  patterns_p3_rule_gate: "Rule matched?",
6620
6782
  patterns_p3_rule_name: "Rule-based",
6621
6783
  patterns_p3_rule_usewhen: "Categories are decided by clear, stable rules (sender, keyword, type) and you want predictable, auditable routing.",
6784
+ patterns_p3_start: "Item Received",
6622
6785
  patterns_p3_start_note: "Trigger: email / ticket / form / webhook. Normalizes the payload",
6623
6786
  patterns_p3_triage_title: "Triage Item",
6624
- patterns_p3_var_aiConfidence: "AI classifier confidence, 0-1.",
6787
+ patterns_p3_var_aiConfidence: "AI classifier confidence, 0–1.",
6625
6788
  patterns_p3_var_itemData: "The incoming item / extracted fields the classifier reads.",
6626
6789
  patterns_p3_var_routeCategory: 'Category to route to: "Category A" / "Category B" / "Category C".',
6627
6790
  patterns_p3_var_ruleMatched: "Whether a deterministic rule matched a category.",
@@ -6632,18 +6795,22 @@ var require_xml = __commonJS(function(exports, module) {
6632
6795
  patterns_p4_compose_note_first_valid: "Same request to every party, with a per-party correlation key",
6633
6796
  patterns_p4_deadline_gate: "Deadline Passed?",
6634
6797
  patterns_p4_deadline_gate_note: "Overall SLA guard so the loop can't run forever",
6635
- patterns_p4_desc: "Send a request, suspend until the reply or a timer fires, nudge before the deadline, escalate on breach.",
6798
+ patterns_p4_desc: "Pause for an outside reply, remind before the deadline, escalate after",
6636
6799
  patterns_p4_discard_reply: "Discard Reply",
6637
6800
  patterns_p4_discard_reply_note: "Log the losing reply; resume waiting for the next party",
6638
6801
  patterns_p4_e_invalid: "Invalid",
6802
+ patterns_p4_e_no: "No",
6639
6803
  patterns_p4_e_not_yet: "Not yet",
6640
6804
  patterns_p4_e_ready: "Ready",
6641
6805
  patterns_p4_e_valid: "Valid",
6806
+ patterns_p4_e_yes: "Yes",
6642
6807
  patterns_p4_end_escalated: "Outcome: No Response (Escalated)",
6643
6808
  patterns_p4_end_received: "Outcome: Response Received",
6644
6809
  patterns_p4_first_valid_desc: "Send the same request to several parties; the first acceptable reply wins and the others are told it's closed.",
6645
6810
  patterns_p4_first_valid_name: "First valid response wins",
6646
6811
  patterns_p4_first_valid_usewhen: "Any qualified party can fulfill the request (RFQs, carrier bidding, agent ensembles) and speed beats completeness.",
6812
+ patterns_p4_fork: "Fork",
6813
+ patterns_p4_join: "Join",
6647
6814
  patterns_p4_multi_desc: "Send on one channel; accept the reply on any of several (email, webhook, portal). First event wins.",
6648
6815
  patterns_p4_multi_name: "Multi-channel",
6649
6816
  patterns_p4_multi_usewhen: "External parties reply however they like, and any channel's reply should release the wait.",
@@ -6707,7 +6874,9 @@ var require_xml = __commonJS(function(exports, module) {
6707
6874
  patterns_p5_batch_desc: "Fetch a list of items, fan out one subprocess instance per item in parallel, aggregate at the end. One bad item never kills the batch.",
6708
6875
  patterns_p5_batch_name: "Batch",
6709
6876
  patterns_p5_batch_usewhen: "Volume is too high for sequential processing, items are independent, and the work fits one process instance.",
6710
- patterns_p5_desc: "Many items processed in parallel. One bad item doesn't kill the batch; results aggregated at the end.",
6877
+ patterns_p5_desc: "Run many items in parallel; one bad item doesn't kill the batch",
6878
+ patterns_p5_e_no: "No",
6879
+ patterns_p5_e_yes: "Yes",
6711
6880
  patterns_p5_end_completed: "Outcome: Batch Completed",
6712
6881
  patterns_p5_end_failed: "Outcome: Batch Failed",
6713
6882
  patterns_p5_fetch_batch: "Fetch Batch",
@@ -6733,7 +6902,7 @@ var require_xml = __commonJS(function(exports, module) {
6733
6902
  patterns_p6_code_desc: "A smaller net bound to one error code. The code already identifies the failure, so there is no classification: the bound start leads straight to the specific response and its outcome.",
6734
6903
  patterns_p6_code_name: "Code-specific net",
6735
6904
  patterns_p6_code_usewhen: "A known error code needs its own response. Bind the start event to that code after inserting. Code-specific nets match before the catch-all, so both can coexist in one process.",
6736
- patterns_p6_desc: "The safety net for the whole process. One error event subprocess catches any unhandled failure, escalates business errors to a human, and records system failures with an oncall alert.",
6905
+ patterns_p6_desc: "One safety net catches unhandled failures and escalates them",
6737
6906
  patterns_p6_e_business: "Business error",
6738
6907
  patterns_p6_e_system: "System failure",
6739
6908
  patterns_p6_end_handled: "Outcome: [Known error] Handled",
@@ -6753,7 +6922,7 @@ var require_xml = __commonJS(function(exports, module) {
6753
6922
  patterns_p6_specific_net_note: "Coexists with a catch-all net in the same process. The engine matches specific codes first",
6754
6923
  patterns_p7_bulk_add: "Bulk Add Queue Items",
6755
6924
  patterns_p7_bulk_add_note: "Up to 15,000 items per batch, all-or-nothing or per-item commit. Each item carries payload, priority, deadline, optional postpone date. Use Create Queue Item for one-at-a-time dispatch",
6756
- patterns_p7_desc: "A queue sits between work creation and work processing. Cross-runtime durable handover with priority and dedup.",
6925
+ patterns_p7_desc: "A durable queue hands work from producers to processors",
6757
6926
  patterns_p7_dispatcher_desc: "Maestro creates queue items from a source; something else works them. The queue takes over: priority, scheduling, dedup, and concurrency.",
6758
6927
  patterns_p7_dispatcher_name: "Dispatcher",
6759
6928
  patterns_p7_dispatcher_start: "Source Received",
@@ -6789,12 +6958,19 @@ var require_xml = __commonJS(function(exports, module) {
6789
6958
  patterns_p7_var_sourceItems: "The fetched and shaped items to dispatch. Bind as Bulk Add Queue Items' input.",
6790
6959
  patterns_picker_about_variant_label: "About this variant",
6791
6960
  patterns_picker_back_to_patterns: "Patterns",
6961
+ patterns_guidance_title: "First time using patterns?",
6962
+ patterns_empty_canvas_hint: "or <patternLink>insert a proven pattern</patternLink> to jump-start your process",
6963
+ patterns_guidance_body: "A pattern is a ready-made piece of process, one of the shapes teams build over and over, like a multi-level approval or an AI decision with human review. It arrives working, with nodes connected, variables set up, and forms ready for the human tasks. Every part stays editable after you insert it.",
6964
+ patterns_guidance_step_pick: "Pick a pattern",
6965
+ patterns_guidance_step_variant: "Choose the variant that fits",
6966
+ patterns_guidance_step_insert: "Insert and edit as needed",
6967
+ patterns_guidance_show: "How patterns work",
6792
6968
  patterns_picker_browse_subtitle: "Insert a proven pattern to jump-start part of your process.",
6793
6969
  patterns_picker_cancel: "Cancel",
6794
6970
  patterns_picker_chip_connections_one: "{{count}} connection",
6795
6971
  patterns_picker_chip_connections_other: "{{count}} connections",
6796
- patterns_picker_chip_form_files_one: "{{count}} form file",
6797
- patterns_picker_chip_form_files_other: "{{count}} form files",
6972
+ patterns_picker_chip_hitl_forms_one: "{{count}} HITL form",
6973
+ patterns_picker_chip_hitl_forms_other: "{{count}} HITL forms",
6798
6974
  patterns_picker_chip_nodes_one: "{{count}} node",
6799
6975
  patterns_picker_chip_nodes_other: "{{count}} nodes",
6800
6976
  patterns_picker_chip_variables_one: "{{count}} variable",
@@ -6803,7 +6979,6 @@ var require_xml = __commonJS(function(exports, module) {
6803
6979
  patterns_picker_error_form_creation_failed: "Couldn't create the form this pattern needs. Try again.",
6804
6980
  patterns_picker_error_generic: "Something went wrong inserting the pattern. Try again.",
6805
6981
  patterns_picker_error_insert_failed: "Couldn't insert the pattern. Try again.",
6806
- patterns_picker_expand: "Expand",
6807
6982
  patterns_picker_resize_preview: "Resize the preview",
6808
6983
  patterns_picker_insert: "Insert pattern",
6809
6984
  patterns_picker_inserting: "Inserting…",
@@ -6821,20 +6996,29 @@ var require_xml = __commonJS(function(exports, module) {
6821
6996
  patterns_picker_var_type_int: "int",
6822
6997
  patterns_picker_var_type_jsonSchema: "obj",
6823
6998
  patterns_picker_var_type_string: "str",
6824
- patterns_picker_variant_count_one: "{{count}} variant",
6825
- patterns_picker_variant_count_other: "{{count}} variants",
6826
6999
  patterns_picker_variants_label: "Variants",
6827
7000
  patterns_picker_whats_added_label: "What gets added",
7001
+ preview_badge_label: "Preview",
6828
7002
  vsix_canvas_debug_button_label: "Debug",
6829
7003
  vsix_canvas_debug_button_label_progress: "Debugging...",
6830
7004
  vsix_canvas_publish_button_label: "Publish",
6831
7005
  vsix_canvas_stop_button_label: "Stop",
6832
- vsix_canvas_stop_button_label_progress: "Stopping..."
7006
+ vsix_canvas_stop_button_label_progress: "Stopping...",
7007
+ "The rule's inputs and outputs could not be loaded.": "The rule's inputs and outputs could not be loaded.",
7008
+ "Select a business rule": "Select a business rule",
7009
+ case_management_duplicate_id_error_title: "Duplicate {{idKind}} id '{{id}}'",
7010
+ case_management_duplicate_id_error_description: "More than one {{idKind}} uses the id '{{id}}', so anything referring to that id is ambiguous. This one is on '{{elementName}}'.",
7011
+ case_management_duplicate_id_space_node: "element",
7012
+ case_management_duplicate_id_space_edge: "connection",
7013
+ case_management_duplicate_id_space_task: "task",
7014
+ case_management_duplicate_id_space_condition: "rule",
7015
+ case_management_duplicate_id_space_sla: "SLA"
6833
7016
  };
6834
7017
  }
6835
7018
  });
6836
7019
  var xml_exports = {};
6837
7020
  __export(xml_exports, {
7021
+ BPMN_BINDING_VALIDATION_ERROR: () => BPMN_BINDING_VALIDATION_ERROR,
6838
7022
  BPMN_PARSE_ERROR: () => BPMN_PARSE_ERROR,
6839
7023
  validateBpmnXml: () => validateBpmnXml
6840
7024
  });
@@ -7945,6 +8129,7 @@ var require_xml = __commonJS(function(exports, module) {
7945
8129
  return postProcess(input, toUpperCase);
7946
8130
  }
7947
8131
  var import_to_json_schema = __toESM(require_lib(), 1);
8132
+ var BINDINGS_PATH_PREFIX = "=bindings.";
7948
8133
  var BASE_NAMESPACES = ["vars", "iterator", "metadata"];
7949
8134
  var RESERVED_NAMESPACES = [
7950
8135
  ...BASE_NAMESPACES,
@@ -8059,7 +8244,18 @@ var require_xml = __commonJS(function(exports, module) {
8059
8244
  return createOrchestratorReferenceExpressionConverter(variables, "authoring")?.(expression) ?? expression;
8060
8245
  };
8061
8246
  var JAVASCRIPT_PATH_PREFIX = "=js:";
8062
- var VAR_REFS_REGEX = /(^|\b)(vars|result)(?:\??\.([\w]+)|\??\.?\["([^"]+)"\])/g;
8247
+ var VARIABLE_REFERENCES_REGEX = /(?:^|\b)(?<namespace>vars|result)(?:\??\.(?<dotName>[\w]+|(?=[\u0080-\uffff]))|\??\.?\["(?<bracketName>[^"]+)"\])/g;
8248
+ var extractVariableReferences = (text) => Array.from(text.matchAll(VARIABLE_REFERENCES_REGEX)).map((match2) => {
8249
+ const { namespace, dotName, bracketName } = match2.groups;
8250
+ const notation = dotName === undefined ? "bracket" : "dot";
8251
+ const continuation = notation === "dot" ? text.slice((match2.index ?? 0) + match2[0].length).match(/^[\u0080-\uffff][\w\u0080-\uffff]*/)?.[0] ?? "" : "";
8252
+ return {
8253
+ ref: match2[0] + continuation,
8254
+ namespace,
8255
+ name: (dotName ?? bracketName ?? "") + continuation,
8256
+ notation
8257
+ };
8258
+ });
8063
8259
  var FULL_VAR_REF_REGEX = /\b(vars|result)(\??\.\w+|(?:\?\.)?\["[^"]*"\]|(?:\?\.)?\[\d*\])*/g;
8064
8260
  var escapeRegExp2 = (value) => value.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
8065
8261
  var stripOptionalChaining = (path) => path.replace(/\?\.\[/g, "[").replace(/\?\./g, ".").replace(/\?\[/g, "[");
@@ -8076,7 +8272,6 @@ var require_xml = __commonJS(function(exports, module) {
8076
8272
  return expression;
8077
8273
  };
8078
8274
  var bracketToDotNotation = (path) => path.replace(/\[(?:(\d+)|["']([^"']+)["'])\]/g, (_, num, str) => `.${num || str}`);
8079
- var PLAIN_IDENTIFIER_PATH_REGEX = /^[a-zA-Z_]\w*(?:\.[a-zA-Z_]\w*|\[\*\]|\[\d+\])*$/;
8080
8275
  var isBracketNotation = (value, namespace) => {
8081
8276
  if (!value || !namespace) {
8082
8277
  return false;
@@ -8120,10 +8315,14 @@ var require_xml = __commonJS(function(exports, module) {
8120
8315
  return cleanedId;
8121
8316
  };
8122
8317
  var getResultVariableId = (variableId) => {
8123
- if (!startsWithNamespace(removeExpressionPrefix(variableId), "result")) {
8318
+ const reference = removeExpressionPrefix(variableId);
8319
+ if (!startsWithNamespace(reference, "result")) {
8320
+ return;
8321
+ }
8322
+ if (reference.startsWith("result.") && addVariablePrefix(reference.substring("result.".length), "result") !== reference) {
8124
8323
  return;
8125
8324
  }
8126
- const cleaned = removeVariablePrefix(variableId, "result");
8325
+ const cleaned = removeVariablePrefix(reference, "result");
8127
8326
  if (!cleaned) {
8128
8327
  return;
8129
8328
  }
@@ -8138,7 +8337,7 @@ var require_xml = __commonJS(function(exports, module) {
8138
8337
  const resultId = getResultVariableId(variableId);
8139
8338
  return resultId ? resultVariableIdentifiers.has(resultId) : false;
8140
8339
  };
8141
- var getVariablesInExpression = (expression, availableVariables) => {
8340
+ var getVariableAvailabilityInExpression = (expression, availableVariables) => {
8142
8341
  if (!expression) {
8143
8342
  return { existing: {}, nonExisting: [] };
8144
8343
  }
@@ -8157,23 +8356,14 @@ var require_xml = __commonJS(function(exports, module) {
8157
8356
  return matches;
8158
8357
  }
8159
8358
  const toPattern = (value) => escapeRegExp2(value).replaceAll("\\[\\*\\]", "\\[\\d+\\]");
8160
- const toBracketQuotedPattern = (value) => PLAIN_IDENTIFIER_PATH_REGEX.test(value) ? undefined : toPattern(addVariablePrefix(value));
8161
- let idAlternatives = variable.id ? toPattern(variable.id) : "";
8162
- const canonicalIdPattern = variable.canonicalId ? toPattern(variable.canonicalId) : undefined;
8163
- if (canonicalIdPattern) {
8164
- idAlternatives = idAlternatives ? `${idAlternatives}|${canonicalIdPattern}` : canonicalIdPattern;
8165
- }
8166
- let bracketQuotedAlternatives = (variable.id ? toBracketQuotedPattern(variable.id) : undefined) ?? "";
8167
- const canonicalBracketQuoted = variable.canonicalId ? toBracketQuotedPattern(variable.canonicalId) : undefined;
8168
- if (canonicalBracketQuoted) {
8169
- bracketQuotedAlternatives = bracketQuotedAlternatives ? `${bracketQuotedAlternatives}|${canonicalBracketQuoted}` : canonicalBracketQuoted;
8170
- }
8171
- const referencePattern = bracketQuotedAlternatives ? `(?:vars\\.(?:${idAlternatives})|${bracketQuotedAlternatives})` : `vars\\.(?:${idAlternatives})`;
8172
- const regex = new RegExp(`(^|\\b)${referencePattern}(?![\\w\\[])`);
8359
+ const toReferencePattern = (value) => toPattern(addVariablePrefix(value));
8360
+ const alternatives = [variable.id, variable.canonicalId].filter((value) => !!value).map(toReferencePattern);
8361
+ const referencePattern = alternatives.length === 1 ? alternatives[0] : `(?:${alternatives.join("|")})`;
8362
+ const regex = new RegExp(`(^|\\b)${referencePattern}(?![\\w\\u0080-\\uFFFF\\[])`);
8173
8363
  const match2 = normalizedExpression.match(regex);
8174
8364
  if (match2) {
8175
8365
  let matchedId = match2[0];
8176
- const exactMatchRegex = new RegExp(`(^|\\b)${referencePattern}(?![\\w\\[\\.])`);
8366
+ const exactMatchRegex = new RegExp(`(^|\\b)${referencePattern}(?![\\w\\u0080-\\uFFFF\\[\\.])`);
8177
8367
  const exactMatch = matchedId.match(exactMatchRegex);
8178
8368
  if (!exactMatch) {
8179
8369
  matchedId = matchedId.match(new RegExp(referencePattern))?.[0] || matchedId;
@@ -8191,28 +8381,28 @@ var require_xml = __commonJS(function(exports, module) {
8191
8381
  return matches;
8192
8382
  }, {});
8193
8383
  }
8194
- const allVarRefs = Array.from(normalizedExpression.matchAll(VAR_REFS_REGEX));
8195
- const nonExistingMatches = allVarRefs.filter((match2) => {
8196
- const prefix2 = match2[2];
8197
- const varName = match2[3] ?? match2[4];
8198
- if (prefix2 === "vars") {
8199
- if (existingIdsSet.has(varName)) {
8200
- return false;
8201
- }
8202
- if (existingIdsSet.has(sanitizeVariableIdentifier(varName))) {
8203
- return false;
8204
- }
8205
- for (const id of existingIdsSet) {
8206
- if (varName.startsWith(`${id}.`)) {
8207
- return false;
8208
- }
8209
- }
8210
- return true;
8384
+ const nonExisting = /* @__PURE__ */ new Set;
8385
+ for (const { ref, namespace, name: name2, notation } of extractVariableReferences(normalizedExpression)) {
8386
+ if (namespace !== "vars") {
8387
+ nonExisting.add(ref);
8388
+ continue;
8211
8389
  }
8212
- return true;
8213
- });
8214
- const nonExistingVariables = [...new Set(nonExistingMatches?.map((match2) => match2[0]) ?? [])];
8215
- return { existing: existingVariables, nonExisting: nonExistingVariables };
8390
+ if (notation === "dot" && /[\u0080-\uffff]/.test(name2)) {
8391
+ nonExisting.add(ref);
8392
+ continue;
8393
+ }
8394
+ if (existingIdsSet.has(name2)) {
8395
+ continue;
8396
+ }
8397
+ if (existingIdsSet.has(sanitizeVariableIdentifier(name2))) {
8398
+ continue;
8399
+ }
8400
+ if ([...existingIdsSet].some((id) => name2.startsWith(`${id}.`))) {
8401
+ continue;
8402
+ }
8403
+ nonExisting.add(ref);
8404
+ }
8405
+ return { existing: existingVariables, nonExisting: [...nonExisting] };
8216
8406
  };
8217
8407
  var isInvalidKey = (identifier) => {
8218
8408
  if (identifier.length === 0) {
@@ -8259,12 +8449,12 @@ var require_xml = __commonJS(function(exports, module) {
8259
8449
  }
8260
8450
  const escapedSource = escapeRegExp2(source);
8261
8451
  for (const namespace of namespaces) {
8262
- const dotNotationRegex = new RegExp(`(^|[^\\w.])${namespace}\\.${escapedSource}((?:\\[[^\\]]*\\])*)(?=\\W|$)`, "g");
8452
+ const dotNotationRegex = new RegExp(`(^|[^\\w.\\u0080-\\uFFFF])${namespace}\\.${escapedSource}((?:\\[[^\\]]*\\])*)(?=[^\\w\\u0080-\\uFFFF]|$)`, "g");
8263
8453
  newValue = newValue.replace(dotNotationRegex, (_match, prefix2, nestedBrackets) => {
8264
8454
  const replacement = addVariablePrefix(target, namespace);
8265
8455
  return `${prefix2}${replacement}${nestedBrackets}`;
8266
8456
  });
8267
- const bracketNotationRegex = new RegExp(`(^|[^\\w.])${namespace}\\[(["'])${escapedSource}\\2\\]((?:\\[[^\\]]*\\])*)(?=\\W|$)`, "g");
8457
+ const bracketNotationRegex = new RegExp(`(^|[^\\w.\\u0080-\\uFFFF])${namespace}\\[(["'])${escapedSource}\\2\\]((?:\\[[^\\]]*\\])*)(?=[^\\w\\u0080-\\uFFFF]|$)`, "g");
8268
8458
  newValue = newValue.replace(bracketNotationRegex, (_match, prefix2, _quote, nestedBrackets) => {
8269
8459
  const replacement = addVariablePrefix(target, namespace);
8270
8460
  return `${prefix2}${replacement}${nestedBrackets}`;
@@ -8478,6 +8668,7 @@ var require_xml = __commonJS(function(exports, module) {
8478
8668
  }
8479
8669
  return finalName;
8480
8670
  }
8671
+ var ACTIVITY_CONFIGURATION_VERSION = "activityConfigurationVersion";
8481
8672
  var HITL_SCHEMA_FILE_EXTENSION = ".hitl.json";
8482
8673
  var HITL_SCHEMA_FILE_NAME = `Human Task Schema${HITL_SCHEMA_FILE_EXTENSION}`;
8483
8674
  var DEFAULT_DIAGRAM_ID = "default-diagram";
@@ -8572,56 +8763,47 @@ var require_xml = __commonJS(function(exports, module) {
8572
8763
  }
8573
8764
  return [pass, fail];
8574
8765
  }
8575
- var EDGE_BASE_Z_INDEX = 1001;
8576
- var EDGE_Z_INDEX_PER_DEPTH = 100;
8577
- function getNodeParentDepth(nodeId, nodes) {
8578
- let depth = 0;
8579
- let currentId = nodeId;
8580
- const nodeMap = new Map(nodes.map((node) => [node.id, node]));
8581
- while (currentId) {
8582
- const node = nodeMap.get(currentId);
8583
- if (!node?.parentId)
8584
- break;
8585
- depth++;
8586
- currentId = node.parentId;
8587
- }
8588
- return depth;
8589
- }
8590
- function calculateEdgeZIndex(sourceNodeId, targetNodeId, nodes, edgeType) {
8591
- if (edgeType?.includes("case-management:"))
8592
- return 0;
8593
- const maxDepth = Math.max(getNodeParentDepth(sourceNodeId, nodes), getNodeParentDepth(targetNodeId, nodes));
8594
- return EDGE_BASE_Z_INDEX + maxDepth * EDGE_Z_INDEX_PER_DEPTH;
8595
- }
8596
8766
  var sortNodes = (nodes) => {
8597
8767
  const sortedNodes = [];
8598
- const added = /* @__PURE__ */ new Set;
8599
- const childrenByParentId = /* @__PURE__ */ new Map;
8768
+ const emitted = /* @__PURE__ */ new Set;
8769
+ const nodeIds = new Set(nodes.map((node) => node.id));
8770
+ const deferredByParentId = /* @__PURE__ */ new Map;
8771
+ const lanesByParentId = /* @__PURE__ */ new Map;
8600
8772
  for (const node of nodes) {
8601
- if (!node.parentId)
8773
+ if (!node.parentId || node.type !== "bpmn:Lane" && node.type !== "bpmn:Swimlane")
8602
8774
  continue;
8603
- const children = childrenByParentId.get(node.parentId) ?? [];
8604
- children.push(node);
8605
- childrenByParentId.set(node.parentId, children);
8775
+ const lanes = lanesByParentId.get(node.parentId) ?? [];
8776
+ lanes.push(node);
8777
+ lanesByParentId.set(node.parentId, lanes);
8606
8778
  }
8607
- const addNodeWithChildren = (node) => {
8608
- if (added.has(node.id))
8779
+ const emit = (node) => {
8780
+ if (emitted.has(node.id))
8609
8781
  return;
8610
- added.add(node.id);
8782
+ emitted.add(node.id);
8611
8783
  sortedNodes.push(node);
8612
- const children = childrenByParentId.get(node.id);
8613
- if (!children)
8614
- return;
8615
- children.sort((left, right) => (right.type === "bpmn:Lane" ? 2 : right.type === "bpmn:Swimlane" ? 1 : 0) - (left.type === "bpmn:Lane" ? 2 : left.type === "bpmn:Swimlane" ? 1 : 0));
8616
- children.forEach(addNodeWithChildren);
8784
+ for (const lane of lanesByParentId.get(node.id) ?? [])
8785
+ emit(lane);
8786
+ const deferred = deferredByParentId.get(node.id);
8787
+ if (deferred) {
8788
+ deferredByParentId.delete(node.id);
8789
+ for (const child of deferred)
8790
+ emit(child);
8791
+ }
8617
8792
  };
8618
8793
  for (const node of nodes) {
8619
- if (node.type === "bpmn:Group")
8620
- sortedNodes.push(node);
8794
+ if (node.type === "bpmn:Group" && (!node.parentId || !nodeIds.has(node.parentId)))
8795
+ emit(node);
8621
8796
  }
8622
8797
  for (const node of nodes) {
8623
- if (!node.parentId && node.type !== "bpmn:Group")
8624
- addNodeWithChildren(node);
8798
+ if (node.type === "bpmn:Group" && emitted.has(node.id))
8799
+ continue;
8800
+ if (node.parentId && nodeIds.has(node.parentId) && !emitted.has(node.parentId)) {
8801
+ const deferred = deferredByParentId.get(node.parentId) ?? [];
8802
+ deferred.push(node);
8803
+ deferredByParentId.set(node.parentId, deferred);
8804
+ } else {
8805
+ emit(node);
8806
+ }
8625
8807
  }
8626
8808
  return sortedNodes;
8627
8809
  };
@@ -8661,6 +8843,41 @@ var require_xml = __commonJS(function(exports, module) {
8661
8843
  const parentSubprocess = findParentSubprocess(elementId, nodes, edges);
8662
8844
  return parentSubprocess?.type === "bpmn:SubProcess" ? parentSubprocess : root2;
8663
8845
  }
8846
+ var getDistance = (position1, position2) => Math.hypot(position2.x - position1.x, position2.y - position1.y);
8847
+ function getEdgeMidpoint(waypoints) {
8848
+ if (waypoints.length < 2) {
8849
+ return waypoints[0] || { x: 0, y: 0 };
8850
+ }
8851
+ const edgeLength = waypoints.reduce((acc, curr, index) => index > 0 ? acc + getDistance(waypoints[index - 1], curr) : 0, 0);
8852
+ if (!edgeLength) {
8853
+ return waypoints[0];
8854
+ }
8855
+ const midDistance = edgeLength / 2;
8856
+ let currentLength = 0;
8857
+ let segmentLength = 0;
8858
+ let i = 0;
8859
+ while (currentLength < midDistance && i < waypoints.length - 1) {
8860
+ i++;
8861
+ segmentLength = getDistance(waypoints[i - 1], waypoints[i]);
8862
+ currentLength += segmentLength;
8863
+ }
8864
+ const diff2 = currentLength - midDistance;
8865
+ const ratio = segmentLength ? (segmentLength - diff2) / segmentLength : 1;
8866
+ return {
8867
+ x: waypoints[i - 1].x + (waypoints[i].x - waypoints[i - 1].x) * ratio,
8868
+ y: waypoints[i - 1].y + (waypoints[i].y - waypoints[i - 1].y) * ratio
8869
+ };
8870
+ }
8871
+ function getEdgeLabelOffset(bounds, waypoints) {
8872
+ if (!bounds || !waypoints || waypoints.length < 2) {
8873
+ return;
8874
+ }
8875
+ const midpoint = getEdgeMidpoint(waypoints);
8876
+ return {
8877
+ x: bounds.x + bounds.width / 2 - midpoint.x,
8878
+ y: bounds.y + bounds.height / 2 - midpoint.y
8879
+ };
8880
+ }
8664
8881
  var CaseManagementNodeTypesArray = [
8665
8882
  "case-management:Stage",
8666
8883
  "case-management:ExceptionStage",
@@ -15404,6 +15621,17 @@ var require_xml = __commonJS(function(exports, module) {
15404
15621
  }
15405
15622
  ]
15406
15623
  },
15624
+ {
15625
+ name: "MaestroEngineVersion",
15626
+ superClass: ["Element"],
15627
+ properties: [
15628
+ {
15629
+ name: "version",
15630
+ isAttr: true,
15631
+ type: "String"
15632
+ }
15633
+ ]
15634
+ },
15407
15635
  {
15408
15636
  name: "Type",
15409
15637
  properties: [
@@ -15562,6 +15790,8 @@ var require_xml = __commonJS(function(exports, module) {
15562
15790
  isAttr: true,
15563
15791
  type: "String"
15564
15792
  },
15793
+ { name: "primarykey", isAttr: true, type: "String" },
15794
+ { name: "referencekey", isAttr: true, type: "String" },
15565
15795
  {
15566
15796
  name: "options",
15567
15797
  isAttr: true,
@@ -16724,6 +16954,15 @@ var require_xml = __commonJS(function(exports, module) {
16724
16954
  type: "json",
16725
16955
  defaultValue: null
16726
16956
  },
16957
+ caseCurrentExecutionState: {
16958
+ name: "caseCurrentExecutionState",
16959
+ displayName: "Case current execution state",
16960
+ isPrimaryKey: false,
16961
+ isHidden: false,
16962
+ isRequired: true,
16963
+ type: "json",
16964
+ defaultValue: null
16965
+ },
16727
16966
  _label: {
16728
16967
  name: "_label",
16729
16968
  isPrimaryKey: false,
@@ -17408,6 +17647,78 @@ var require_xml = __commonJS(function(exports, module) {
17408
17647
  }
17409
17648
  }
17410
17649
  };
17650
+ var orchestrator_getQueueItems_beta_design_schema_default = {
17651
+ name: "Get queue items",
17652
+ key: "Orchestrator.GetQueueItems",
17653
+ type: "FPS",
17654
+ version: "beta",
17655
+ structure: {
17656
+ pk: ["context.fields.queueName"],
17657
+ isDynamic: true,
17658
+ context: {
17659
+ fields: {
17660
+ queueName: {
17661
+ name: "queueName",
17662
+ displayName: "Queue name",
17663
+ isPrimaryKey: false,
17664
+ isHidden: true,
17665
+ type: "string",
17666
+ defaultValue: null,
17667
+ source: ".queueName",
17668
+ target: "bodyField",
17669
+ bindingInfo: {
17670
+ resource: "queue",
17671
+ resourceKeyPattern: "${metadata.key}",
17672
+ propertyAttribute: "Key"
17673
+ }
17674
+ },
17675
+ folderPath: {
17676
+ name: "folderPath",
17677
+ isPrimaryKey: false,
17678
+ isHidden: true,
17679
+ type: "string",
17680
+ defaultValue: null,
17681
+ source: ".folderPath",
17682
+ target: "bodyField"
17683
+ },
17684
+ _label: {
17685
+ name: "_label",
17686
+ isPrimaryKey: false,
17687
+ isHidden: true,
17688
+ type: "string",
17689
+ defaultValue: null
17690
+ },
17691
+ statuses: {
17692
+ name: "statuses",
17693
+ displayName: "Status",
17694
+ isPrimaryKey: false,
17695
+ isHidden: true,
17696
+ type: "string",
17697
+ defaultValue: null
17698
+ },
17699
+ reference: {
17700
+ name: "reference",
17701
+ displayName: "Reference",
17702
+ isPrimaryKey: false,
17703
+ isHidden: true,
17704
+ type: "string",
17705
+ defaultValue: null
17706
+ }
17707
+ }
17708
+ },
17709
+ input: {
17710
+ isSplitInputs: false
17711
+ },
17712
+ output: {
17713
+ dynamic: {
17714
+ type: "Orchestrator.GetQueueItems",
17715
+ name: "response",
17716
+ useRelativeSource: true,
17717
+ createVar: true
17718
+ }
17719
+ }
17720
+ }
17721
+ };
17411
17722
  var orchestrator_getTransactionItem_beta_design_schema_default = {
17412
17723
  name: "Get transaction item",
17413
17724
  key: "Orchestrator.GetTransactionItem",
@@ -17850,6 +18161,7 @@ var require_xml = __commonJS(function(exports, module) {
17850
18161
  ["Orchestrator.BulkAddQueueItems"]: orchestrator_bulkAddQueueItems_beta_design_schema_default,
17851
18162
  ["Orchestrator.DeleteQueueItems"]: orchestrator_deleteQueueItems_beta_design_schema_default,
17852
18163
  ["Orchestrator.GetTransactionItem"]: orchestrator_getTransactionItem_beta_design_schema_default,
18164
+ ["Orchestrator.GetQueueItems"]: orchestrator_getQueueItems_beta_design_schema_default,
17853
18165
  ["Queue.WaitForEvent"]: queue_waitForEvent_beta_design_schema_default,
17854
18166
  ["Orchestrator.StartAgenticProcess"]: orchestrator_startJob_beta_design_schema_default,
17855
18167
  ["Orchestrator.StartAgenticProcessAsync"]: orchestrator_startJob_beta_design_schema_default,
@@ -18080,8 +18392,20 @@ var require_xml = __commonJS(function(exports, module) {
18080
18392
  };
18081
18393
  const nodes = getNodes(diagram, elementsById, options);
18082
18394
  const edges = getEdges(diagram);
18395
+ const planeOrderByBpmnId = /* @__PURE__ */ new Map;
18396
+ (diagram.plane.planeElement ?? []).forEach((element, index) => {
18397
+ if (element.bpmnElement?.id)
18398
+ planeOrderByBpmnId.set(element.bpmnElement.id, index);
18399
+ });
18400
+ for (const node of nodes) {
18401
+ const z = planeOrderByBpmnId.get(node.id);
18402
+ if (z !== undefined)
18403
+ node.zIndex = z;
18404
+ }
18083
18405
  for (const edge of edges) {
18084
- edge.zIndex = calculateEdgeZIndex(edge.source, edge.target, nodes, edge.type);
18406
+ const z = planeOrderByBpmnId.get(edge.id);
18407
+ if (z !== undefined)
18408
+ edge.zIndex = z;
18085
18409
  }
18086
18410
  createAndAppendVirtualNodesForEdgeAnnotations(nodes, edges);
18087
18411
  return { diagramId, root: root2, nodes, edges };
@@ -18130,7 +18454,8 @@ var require_xml = __commonJS(function(exports, module) {
18130
18454
  return root2.diagrams;
18131
18455
  }
18132
18456
  function getEdges(diagram) {
18133
- const edges = diagram.plane.planeElement?.filter((e) => e.$type === "bpmndi:BPMNEdge") ?? [];
18457
+ const planeElement = diagram.plane.planeElement ?? [];
18458
+ const edges = planeElement.filter((element) => element.$type === "bpmndi:BPMNEdge");
18134
18459
  return edges.map((edge) => {
18135
18460
  const waypoints = edge.waypoint?.map((point) => ({
18136
18461
  x: point.x,
@@ -18154,11 +18479,11 @@ var require_xml = __commonJS(function(exports, module) {
18154
18479
  type: edgeType,
18155
18480
  sourceHandle: null,
18156
18481
  targetHandle: null,
18157
- zIndex: 1001,
18158
18482
  animated: false,
18159
18483
  data: {
18160
18484
  waypoints,
18161
18485
  label: edge.bpmnElement?.name,
18486
+ labelOffset: getEdgeLabelOffset(edge.label?.bounds, waypoints),
18162
18487
  documentation: edge.bpmnElement?.documentation?.[0].text,
18163
18488
  parentElement: getParentElement(edge.bpmnElement ?? edge),
18164
18489
  ref: edge.bpmnElement?.messageRef?.id,
@@ -18429,6 +18754,10 @@ var require_xml = __commonJS(function(exports, module) {
18429
18754
  if (intsvcActivityConfig && intsvcActivityConfig.version) {
18430
18755
  node.data.intsvcActivityConfig = intsvcActivityConfig.version;
18431
18756
  }
18757
+ const maestroEngineVersion = extensionElements.values.find((element) => element?.$type === "uipath:MaestroEngineVersion");
18758
+ if (maestroEngineVersion && maestroEngineVersion.version) {
18759
+ node.data.maestroEngineVersion = maestroEngineVersion.version;
18760
+ }
18432
18761
  }
18433
18762
  return node;
18434
18763
  }
@@ -18548,6 +18877,8 @@ var require_xml = __commonJS(function(exports, module) {
18548
18877
  target: o.target,
18549
18878
  action: o.action,
18550
18879
  entitytype: isEntityType(o.entitytype) ? o.entitytype : undefined,
18880
+ primarykey: o.primarykey,
18881
+ referencekey: o.referencekey,
18551
18882
  value: o.var,
18552
18883
  body: o.body ? fromCData(o.body, true, true) : undefined,
18553
18884
  options: o.options ? safeParseWithDefault(o.options, undefined) : undefined,
@@ -18625,6 +18956,8 @@ var require_xml = __commonJS(function(exports, module) {
18625
18956
  target: o.target,
18626
18957
  action: o.action,
18627
18958
  entitytype: isEntityType(o.entitytype) ? o.entitytype : undefined,
18959
+ primarykey: o.primarykey,
18960
+ referencekey: o.referencekey,
18628
18961
  body: o.custom && o.body ? fromCData(o.body, true, true) : undefined,
18629
18962
  options: o.options ? safeParseWithDefault(o.options, undefined) : undefined,
18630
18963
  originalVar: o.originalVar,
@@ -20876,6 +21209,196 @@ var require_xml = __commonJS(function(exports, module) {
20876
21209
  };
20877
21210
  }
20878
21211
  };
21212
+ var HTTP_CONNECTOR_KEY = "uipath-uipath-http";
21213
+ var MANUAL_AUTH_TYPE = "manual";
21214
+ var isConnectionApplicable = (data) => {
21215
+ if (!data) {
21216
+ return true;
21217
+ }
21218
+ const connectorKey = data.context?.find((c) => c.name === "connectorKey")?.value;
21219
+ if (connectorKey !== HTTP_CONNECTOR_KEY) {
21220
+ return true;
21221
+ }
21222
+ const bodyInput = data.inputs?.find((i) => i.name === "body");
21223
+ const authenticationType = bodyInput?.body?.authentication;
21224
+ return authenticationType !== MANUAL_AUTH_TYPE;
21225
+ };
21226
+ var deduceConnectorKey = (data) => {
21227
+ const connectorKey = data?.context?.find((c) => c.name === "connectorKey")?.value;
21228
+ if (typeof connectorKey !== "string" || !connectorKey) {
21229
+ return;
21230
+ }
21231
+ if (connectorKey !== HTTP_CONNECTOR_KEY) {
21232
+ return connectorKey;
21233
+ }
21234
+ const targetConnector = data?.inputs?.find((i) => i.name === "body")?.body?.targetConnector;
21235
+ if (targetConnector == null) {
21236
+ return connectorKey;
21237
+ }
21238
+ return typeof targetConnector === "string" ? targetConnector : undefined;
21239
+ };
21240
+ var MISSING_BINDING_MESSAGE_KEY = "{{element}} is configured incorrectly";
21241
+ var MISSING_BINDING_NAMED_DESCRIPTION_KEY = "{{element}} has incorrectly configured {{name}}";
21242
+ var ENABLED_CONNECTION_STATE = "Enabled";
21243
+ var stripBindingPrefix = (value) => value.startsWith(BINDINGS_PATH_PREFIX) ? value.slice(BINDINGS_PATH_PREFIX.length) : value;
21244
+ var hasNonStringValue = (value) => value != null && value !== "" && typeof value !== "string";
21245
+ var getBindingReference = (value, bindings) => {
21246
+ if (value == null || value === "") {
21247
+ return;
21248
+ }
21249
+ if (typeof value !== "string") {
21250
+ return;
21251
+ }
21252
+ const id = stripBindingPrefix(value);
21253
+ return { id, binding: bindings[id], explicit: value.startsWith(BINDINGS_PATH_PREFIX) };
21254
+ };
21255
+ var buildBindingMap = (root2) => Object.fromEntries((root2.data?.uipath?.bindings ?? []).map((binding) => [binding.id, binding]));
21256
+ var getConnectionLookup = (data, bindings) => {
21257
+ if (!isConnectionApplicable(data)) {
21258
+ return;
21259
+ }
21260
+ const connectorKey = deduceConnectorKey(data);
21261
+ if (!connectorKey) {
21262
+ return;
21263
+ }
21264
+ const connectionValue = data?.context?.find((entry) => entry.name === "connection")?.value;
21265
+ if (hasNonStringValue(connectionValue)) {
21266
+ return { kind: "missing", name: connectorKey };
21267
+ }
21268
+ if (connectionValue?.startsWith(BINDINGS_PATH_PREFIX)) {
21269
+ const bindingId = stripBindingPrefix(connectionValue);
21270
+ const binding = bindings[bindingId];
21271
+ if (!binding?.default) {
21272
+ return { kind: "missing", name: binding?.name || connectorKey };
21273
+ }
21274
+ const folderKeyValue = data?.context?.find((entry) => entry.name === "folderKey")?.value;
21275
+ if (folderKeyValue != null && (typeof folderKeyValue !== "string" || !folderKeyValue.trim())) {
21276
+ return { kind: "missing", name: binding.name || connectorKey };
21277
+ }
21278
+ if (folderKeyValue?.startsWith(BINDINGS_PATH_PREFIX)) {
21279
+ const companion = bindings[stripBindingPrefix(folderKeyValue)];
21280
+ if (!binding.resourceKey || companion?.resource !== "Connection" || companion.resourceKey !== binding.resourceKey || companion.propertyAttribute !== "folderKey" || typeof companion.default !== "string" || !companion.default.trim()) {
21281
+ return { kind: "missing", name: binding.name || connectorKey };
21282
+ }
21283
+ }
21284
+ return { kind: "connection", connectorKey, connectionId: binding.default };
21285
+ }
21286
+ const connectionId = connectionValue;
21287
+ return { kind: "connection", connectorKey, connectionId };
21288
+ };
21289
+ var getBpmnNodeBindingLookup = (node, bindings, { validateReleaseDeclarations = true } = {}) => {
21290
+ const uipath = node.data?.uipath;
21291
+ const context = uipath?.context ?? [];
21292
+ const serviceType = uipath?.serviceType;
21293
+ if (serviceType === "Orchestrator.StartJob" || serviceType === "Orchestrator.StartAgentJob") {
21294
+ const releaseKey = context.find((entry) => entry.name === "releaseKey")?.value;
21295
+ if (hasNonStringValue(releaseKey)) {
21296
+ return { kind: "missing" };
21297
+ }
21298
+ const bindingReference = getBindingReference(releaseKey, bindings);
21299
+ if (!bindingReference) {
21300
+ return;
21301
+ }
21302
+ const { binding, id: bindingId, explicit } = bindingReference;
21303
+ if (!binding) {
21304
+ return explicit && validateReleaseDeclarations ? { kind: "missing" } : undefined;
21305
+ }
21306
+ if (!binding.resourceKey) {
21307
+ return validateReleaseDeclarations ? { kind: "missing", name: binding.name || bindingId } : undefined;
21308
+ }
21309
+ return {
21310
+ kind: "release",
21311
+ processType: serviceType === "Orchestrator.StartJob" ? "process" : "agent",
21312
+ resourceKey: binding.resourceKey,
21313
+ name: binding.name
21314
+ };
21315
+ }
21316
+ if (serviceType === "Actions.HITL") {
21317
+ const appId = context.find((entry) => entry.name === "appId")?.value;
21318
+ const actionName = context.find((entry) => entry.name === "actionName")?.value;
21319
+ if (hasNonStringValue(appId)) {
21320
+ return { kind: "missing", name: typeof actionName === "string" ? actionName : undefined };
21321
+ }
21322
+ if (!appId) {
21323
+ return;
21324
+ }
21325
+ return { kind: "app", appId, actionName: typeof actionName === "string" ? actionName : undefined };
21326
+ }
21327
+ if (serviceType?.startsWith("Intsvc") && uipath) {
21328
+ return getConnectionLookup(uipath, bindings);
21329
+ }
21330
+ return;
21331
+ };
21332
+ var resolveBpmnBindingLookup = async (lookup, resolver) => {
21333
+ try {
21334
+ switch (lookup.kind) {
21335
+ case "missing":
21336
+ return { name: lookup.name };
21337
+ case "release":
21338
+ return await resolver.hasRelease(lookup.processType, lookup.resourceKey) ? null : { name: lookup.name };
21339
+ case "app":
21340
+ return await resolver.hasDeployedApp(lookup.appId) ? null : { name: lookup.actionName };
21341
+ case "connection": {
21342
+ const connections = await resolver.getConnections(lookup.connectorKey);
21343
+ if (!connections?.length) {
21344
+ return { name: lookup.connectorKey };
21345
+ }
21346
+ if (lookup.connectionId && connections.find((connection) => connection.id === lookup.connectionId)?.state !== ENABLED_CONNECTION_STATE) {
21347
+ return { name: lookup.connectorKey };
21348
+ }
21349
+ return null;
21350
+ }
21351
+ }
21352
+ } catch {
21353
+ return null;
21354
+ }
21355
+ };
21356
+ var getOrCreate = (cache, key, load) => {
21357
+ const cached = cache.get(key);
21358
+ if (cached) {
21359
+ return cached;
21360
+ }
21361
+ const pending = Promise.resolve().then(load);
21362
+ cache.set(key, pending);
21363
+ return pending;
21364
+ };
21365
+ var createMemoizedResolver = (resolver) => {
21366
+ const releases = /* @__PURE__ */ new Map;
21367
+ const apps = /* @__PURE__ */ new Map;
21368
+ const connections = /* @__PURE__ */ new Map;
21369
+ return {
21370
+ hasRelease: (processType, resourceKey) => getOrCreate(releases, JSON.stringify([processType, resourceKey]), () => resolver.hasRelease(processType, resourceKey)),
21371
+ hasDeployedApp: (appId) => getOrCreate(apps, appId, () => resolver.hasDeployedApp(appId)),
21372
+ getConnections: (connectorKey) => getOrCreate(connections, connectorKey, () => resolver.getConnections(connectorKey))
21373
+ };
21374
+ };
21375
+ var createMissingBindingError = ({ elementId, element, name: name2, additionalErrorInfo }) => ({
21376
+ code: "MISSING_BINDING",
21377
+ message: MISSING_BINDING_MESSAGE_KEY,
21378
+ messageParams: { element },
21379
+ description: name2 ? MISSING_BINDING_NAMED_DESCRIPTION_KEY : MISSING_BINDING_MESSAGE_KEY,
21380
+ descriptionParams: name2 ? { element, name: name2 } : { element },
21381
+ elementId,
21382
+ severity: "CRITICAL",
21383
+ labels: ["Performance", "Reliability"],
21384
+ ...additionalErrorInfo && { additionalErrorInfo }
21385
+ });
21386
+ var validateBpmnBindings = async (nodes, root2, resolver) => {
21387
+ const bindings = buildBindingMap(root2);
21388
+ const memoizedResolver = createMemoizedResolver(resolver);
21389
+ const pending = nodes.flatMap((node) => {
21390
+ const lookup = getBpmnNodeBindingLookup(node, bindings);
21391
+ return lookup ? [{ node, lookup }] : [];
21392
+ });
21393
+ const results = await Promise.all(pending.map(async ({ node, lookup }) => ({ node, failure: await resolveBpmnBindingLookup(lookup, memoizedResolver) })));
21394
+ return results.flatMap(({ node, failure }) => failure ? [
21395
+ createMissingBindingError({
21396
+ elementId: node.id,
21397
+ element: node.data?.label || "$t(Element)",
21398
+ name: failure.name
21399
+ })
21400
+ ] : []);
21401
+ };
20879
21402
  var buildSubProcessDiagramRelationships = (canvas) => {
20880
21403
  const relationships = {};
20881
21404
  const diagramsByRootId = {};
@@ -21651,445 +22174,21 @@ var require_xml = __commonJS(function(exports, module) {
21651
22174
  }
21652
22175
  return nodeToPool;
21653
22176
  }
21654
- var HITL_TYPE = {
21655
- Quick: "quick",
21656
- Custom: "custom"
21657
- };
21658
- var HITL_CONTEXT_KEYS = {
21659
- HitlType: "hitlType"
22177
+ var LuxonError = class extends Error {
21660
22178
  };
21661
- var HITL_CONTEXT_ENTRY_KEYS = {
21662
- TaskTitle: "taskTitle",
21663
- Label: "_label",
21664
- SchemaFileId: "_schemaFileId",
21665
- HitlSchemaId: "hitlSchemaId"
22179
+ var InvalidDateTimeError = class extends LuxonError {
22180
+ constructor(reason) {
22181
+ super(`Invalid DateTime: ${reason.toMessage()}`);
22182
+ }
21666
22183
  };
21667
- var QUICK_FORM_SCHEMA_CONTEXT_KEYS = /* @__PURE__ */ new Set([HITL_CONTEXT_ENTRY_KEYS.SchemaFileId, HITL_CONTEXT_ENTRY_KEYS.HitlSchemaId, "__hitlFormSchema"]);
21668
- function getHitlTypeFromContext(context) {
21669
- if (!Array.isArray(context))
21670
- return HITL_TYPE.Custom;
21671
- let hasSchemaMarker = false;
21672
- for (const entry of context) {
21673
- if (entry.name === HITL_CONTEXT_KEYS.HitlType && (entry.value === HITL_TYPE.Quick || entry.value === HITL_TYPE.Custom)) {
21674
- return entry.value;
21675
- }
21676
- if (!hasSchemaMarker && QUICK_FORM_SCHEMA_CONTEXT_KEYS.has(entry.name)) {
21677
- hasSchemaMarker = true;
21678
- }
22184
+ var InvalidIntervalError = class extends LuxonError {
22185
+ constructor(reason) {
22186
+ super(`Invalid Interval: ${reason.toMessage()}`);
21679
22187
  }
21680
- return hasSchemaMarker ? HITL_TYPE.Quick : HITL_TYPE.Custom;
21681
- }
21682
- function isHitlQuickMode(context) {
21683
- return getHitlTypeFromContext(context) === HITL_TYPE.Quick;
21684
- }
21685
- var ACTIONS_HITL_SERVICE_TYPE = "Actions.HITL";
21686
- var SERVICE_TYPES_REQUIRING_RESOURCE = /* @__PURE__ */ new Set([
21687
- "Orchestrator.StartAgentJob",
21688
- "Orchestrator.StartJob",
21689
- "Orchestrator.CreateQueueItem",
21690
- "Orchestrator.CreateAndWaitForQueueItem",
21691
- "Orchestrator.BulkAddQueueItems",
21692
- "Orchestrator.GetTransactionItem",
21693
- "Queue.WaitForEvent",
21694
- "Orchestrator.QueueItemAdded",
21695
- "Orchestrator.ExecuteApiWorkflowAsync",
21696
- ACTIONS_HITL_SERVICE_TYPE,
21697
- "Orchestrator.StartAgenticProcess",
21698
- "Orchestrator.StartAgenticProcessAsync",
21699
- "Orchestrator.StartCaseMgmtProcess",
21700
- "Orchestrator.StartCaseMgmtProcessAsync",
21701
- "Orchestrator.StartFlowProcess",
21702
- "Orchestrator.StartFlowProcessAsync"
21703
- ]);
21704
- var hasResourceBinding = (uipath) => {
21705
- if (!uipath?.context) {
21706
- return false;
21707
- }
21708
- const releaseKey = uipath.context.find((c) => c.name === "releaseKey")?.value;
21709
- if (releaseKey) {
21710
- return true;
21711
- }
21712
- const name2 = uipath.context.find((c) => c.name === "name" || c.name === "queueName")?.value;
21713
- return !!name2;
21714
- };
21715
- function validateMissingResource(nodes, _edges, _lookupMaps) {
21716
- const errors = [];
21717
- for (const node of nodes) {
21718
- const uipath = node.data?.uipath;
21719
- const serviceType = uipath?.serviceType;
21720
- if (!serviceType || !SERVICE_TYPES_REQUIRING_RESOURCE.has(serviceType)) {
21721
- continue;
21722
- }
21723
- if (serviceType === ACTIONS_HITL_SERVICE_TYPE && isHitlQuickMode(uipath?.context)) {
21724
- continue;
21725
- }
21726
- if (hasResourceBinding(uipath)) {
21727
- continue;
21728
- }
21729
- const nodeLabel = node.data?.label || node.id;
21730
- errors.push({
21731
- code: "MISSING_RESOURCE",
21732
- message: "validation_rule_missing_resource_title",
21733
- messageParams: { nodeName: nodeLabel },
21734
- description: "validation_rule_missing_resource_description",
21735
- descriptionParams: { nodeName: nodeLabel },
21736
- severity: "WARNING",
21737
- elementId: node.id
21738
- });
21739
- }
21740
- return errors;
21741
- }
21742
- var getUiPathContextValue = (uipath, name2) => uipath?.context?.find((entry) => entry.name === name2)?.value;
21743
- var getUiPathStringContextValue = (uipath, name2) => {
21744
- const value = getUiPathContextValue(uipath, name2);
21745
- return typeof value === "string" ? value : undefined;
21746
- };
21747
- var IXP_EXTRACTION_SERVICE_TYPE2 = "IXP.Extraction";
21748
- function findRequiredFieldErrorInData(data) {
21749
- if (!data) {
21750
- return;
21751
- }
21752
- const validateFields = (fields) => {
21753
- if (!fields) {
21754
- return;
21755
- }
21756
- for (const field of fields) {
21757
- if (field.required && isNilOrEmpty(field.value)) {
21758
- return {
21759
- field,
21760
- error: {
21761
- code: "EMPTY_REQUIRED_FIELD",
21762
- message: "validation_rule_title_empty_required_field_title",
21763
- description: "validation_rule_title_empty_required_field_{{fieldName}}_description",
21764
- descriptionParams: { fieldName: field.name },
21765
- severity: "ERROR",
21766
- labels: ["Reliability"]
21767
- }
21768
- };
21769
- }
21770
- }
21771
- return;
21772
- };
21773
- const ixpModelError = data.serviceType === IXP_EXTRACTION_SERVICE_TYPE2 && isNilOrEmpty(getUiPathStringContextValue(data, "modelName")) ? validateFields([{ name: "modelName", type: "string", value: undefined, required: true }]) : undefined;
21774
- return ixpModelError ?? validateFields(data.context) ?? validateFields(data.inputs) ?? validateFields(data.outputs);
21775
- }
21776
- function validateRequiredFields(nodes, edges, _lookupMaps) {
21777
- if (!nodes || !edges) {
21778
- return [];
21779
- }
21780
- const errors = [];
21781
- const nodeLabelToCountMap = {};
21782
- for (const node of nodes) {
21783
- const label = node.data?.label;
21784
- if (label) {
21785
- nodeLabelToCountMap[label] = (nodeLabelToCountMap[label] || 0) + 1;
21786
- }
21787
- }
21788
- for (const node of nodes) {
21789
- if (node.data?.uipath) {
21790
- const dataToValidate = node.type === "bpmn:StartEvent" ? {
21791
- ...node.data.uipath,
21792
- outputs: node.data.uipath.outputs?.map((output) => ({ ...output, required: undefined }))
21793
- } : node.data.uipath;
21794
- const result = findRequiredFieldErrorInData(dataToValidate);
21795
- if (result?.error) {
21796
- const error3 = result.error;
21797
- const nodeLabel = nodeLabelToCountMap[node.data?.label ?? ""] > 1 ? `${node.data?.label} (${node.id})` : node.data?.label ?? node.id;
21798
- error3.message = "validation_rule_title_empty_required_field_title";
21799
- error3.messageParams = { nodeName: nodeLabel };
21800
- error3.description = "The field '{{fieldName}}' in node '{{nodeName}}' is required but has no value";
21801
- error3.descriptionParams = {
21802
- fieldName: result.field?.name || "unnamed",
21803
- nodeName: nodeLabel
21804
- };
21805
- error3.elementId = node.id;
21806
- errors.push(error3);
21807
- }
21808
- }
21809
- }
21810
- return errors;
21811
- }
21812
- function validateSequenceFlowPoolCrossing(nodes, edges, lookupMaps) {
21813
- const errors = [];
21814
- const hasParticipants = nodes.some((node) => node.type === "bpmn:Participant");
21815
- if (!hasParticipants) {
21816
- return errors;
21817
- }
21818
- const nodeById = lookupMaps.nodeById;
21819
- const nodeToPoolMap = buildNodeToPoolMap2(nodes, nodeById);
21820
- for (const edge of edges) {
21821
- if (edge.type !== "bpmn:SequenceFlow") {
21822
- continue;
21823
- }
21824
- const sourcePool = nodeToPoolMap.get(edge.source);
21825
- const targetPool = nodeToPoolMap.get(edge.target);
21826
- const targetNode = nodeById.get(edge.target);
21827
- if (sourcePool !== targetPool && targetNode?.type !== "bpmn:StartEvent") {
21828
- errors.push({
21829
- code: "CROSSING_POOL_BOUNDARY",
21830
- message: "Sequence flow crossing pool boundaries",
21831
- description: "Sequence flow cannot cross pool boundaries.",
21832
- severity: "ERROR",
21833
- sourceId: edge.source,
21834
- targetId: edge.target,
21835
- elementId: edge.id
21836
- });
21837
- }
21838
- }
21839
- return errors;
21840
- }
21841
- function buildNodeToPoolMap2(nodes, nodeById) {
21842
- const nodeToPool = /* @__PURE__ */ new Map;
21843
- for (const node of nodes) {
21844
- let currentNode = node;
21845
- while (currentNode) {
21846
- if (currentNode.type === "bpmn:Participant") {
21847
- nodeToPool.set(node.id, currentNode.id);
21848
- break;
21849
- }
21850
- if (!currentNode.parentId)
21851
- break;
21852
- const parentNode = nodeById.get(currentNode.parentId);
21853
- if (!parentNode)
21854
- break;
21855
- currentNode = parentNode;
21856
- }
21857
- }
21858
- return nodeToPool;
21859
- }
21860
- function getLogicalParent(node, nodeMap) {
21861
- const actualNodeParent = node.parentId ? nodeMap.get(node.parentId) : undefined;
21862
- if (node.type === "bpmn:BoundaryEvent") {
21863
- const boundaryEvent = node;
21864
- const attachedToId = boundaryEvent.data.attachedToId;
21865
- const attachedToNode = attachedToId ? nodeMap.get(attachedToId) : undefined;
21866
- if (attachedToNode) {
21867
- return attachedToNode.parentId ? nodeMap.get(attachedToNode.parentId) : undefined;
21868
- }
21869
- }
21870
- return actualNodeParent;
21871
- }
21872
- function validateSequenceFlowSubProcessCrossing(_nodes, edges, lookupMaps) {
21873
- const errors = [];
21874
- const nodeMap = lookupMaps.nodeById;
21875
- for (const edge of edges) {
21876
- if (edge.type !== "bpmn:SequenceFlow") {
21877
- continue;
21878
- }
21879
- const sourceNode = nodeMap.get(edge.source);
21880
- const targetNode = nodeMap.get(edge.target);
21881
- if (!sourceNode || !targetNode) {
21882
- continue;
21883
- }
21884
- const sourceParent = getLogicalParent(sourceNode, nodeMap);
21885
- const targetParent = getLogicalParent(targetNode, nodeMap);
21886
- if ((sourceParent?.type === "bpmn:SubProcess" || targetParent?.type === "bpmn:SubProcess") && sourceParent?.id !== targetParent?.id) {
21887
- errors.push({
21888
- code: "CROSSING_SUBPROCESS_BOUNDARY",
21889
- message: "Sequence flow crossing sub-process boundaries",
21890
- description: "Sequence flow cannot cross sub-process boundaries.",
21891
- severity: "ERROR",
21892
- sourceId: edge.source,
21893
- targetId: edge.target,
21894
- elementId: edge.id
21895
- });
21896
- }
21897
- }
21898
- return errors;
21899
- }
21900
- function isBlankStartEvent(node) {
21901
- return node.type === "bpmn:StartEvent" && !node.data?.eventDefinition;
21902
- }
21903
- function isFlowElementsContainer(type) {
21904
- return type === "bpmn:Process" || type === "bpmn:SubProcess";
21905
- }
21906
- function validateSingleBlankStartEvent(nodes, edges, lookupMaps) {
21907
- if (!nodes || !edges) {
21908
- return [];
21909
- }
21910
- const errors = [];
21911
- const nodesByParentId = lookupMaps.nodesByParentId;
21912
- const containers = nodes.filter((node) => isFlowElementsContainer(node.type));
21913
- for (const container of containers) {
21914
- const scopeNodes = container.type === "bpmn:Process" ? nodesByParentId.get(undefined) ?? [] : nodesByParentId.get(container.id) ?? [];
21915
- const blankStartEvents = scopeNodes.filter(isBlankStartEvent);
21916
- if (blankStartEvents.length > 1) {
21917
- const type = container.type === "bpmn:SubProcess" ? "Sub-process" : "Process";
21918
- errors.push({
21919
- code: "MULTIPLE_BLANK_START_EVENTS",
21920
- message: "{{type}} has multiple blank start events",
21921
- messageParams: { type },
21922
- description: "{{type}} should have at most one blank start event.",
21923
- descriptionParams: { type },
21924
- severity: "ERROR",
21925
- elementId: container.id
21926
- });
21927
- }
21928
- }
21929
- return errors;
21930
- }
21931
- var CONDITION_IGNORING_NODE_TYPES = /* @__PURE__ */ new Set(["bpmn:ParallelGateway", "bpmn:EventBasedGateway"]);
21932
- var RUNTIME_FAILING_GATEWAY_TYPES = /* @__PURE__ */ new Set(["bpmn:ExclusiveGateway", "bpmn:InclusiveGateway"]);
21933
- function validateSingleConditionalOutgoingFlow(nodes, _edges, lookupMaps) {
21934
- const errors = [];
21935
- for (const node of nodes) {
21936
- if (CONDITION_IGNORING_NODE_TYPES.has(node.type ?? "")) {
21937
- continue;
21938
- }
21939
- const isRuntimeFailingGateway = RUNTIME_FAILING_GATEWAY_TYPES.has(node.type ?? "");
21940
- if (isRuntimeFailingGateway && (lookupMaps.edgesByTarget.get(node.id) ?? []).length === 1 && (lookupMaps.edgesBySource.get(node.id) ?? []).length === 1) {
21941
- continue;
21942
- }
21943
- const outgoingSequenceFlows = (lookupMaps.edgesBySource.get(node.id) ?? []).filter((edge) => edge.type === "bpmn:SequenceFlow");
21944
- if (outgoingSequenceFlows.length !== 1) {
21945
- continue;
21946
- }
21947
- const flow = outgoingSequenceFlows[0];
21948
- if (!flow.data?.conditionExpression || flow.data?.defaultFlow) {
21949
- continue;
21950
- }
21951
- const nodeName = node.data?.label || node.id;
21952
- errors.push({
21953
- code: "SINGLE_CONDITIONAL_OUTGOING_FLOW",
21954
- message: "validation_rule_single_conditional_outgoing_flow_message",
21955
- messageParams: { nodeName },
21956
- description: isRuntimeFailingGateway ? "validation_rule_single_conditional_outgoing_flow_gateway_description" : "validation_rule_single_conditional_outgoing_flow_description",
21957
- severity: isRuntimeFailingGateway ? "ERROR" : "WARNING",
21958
- sourceId: flow.source,
21959
- targetId: flow.target,
21960
- elementId: flow.id,
21961
- selection: {
21962
- nodes: false,
21963
- edges: true
21964
- }
21965
- });
21966
- }
21967
- return errors;
21968
- }
21969
- function validateSingleStartEventInEventSubProcess(nodes, _edges, lookupMaps) {
21970
- const errors = [];
21971
- const nodesByParentId = lookupMaps.nodesByParentId;
21972
- for (const node of nodes) {
21973
- if (!isEventSubProcess(node)) {
21974
- continue;
21975
- }
21976
- const childNodes = nodesByParentId.get(node.id) ?? [];
21977
- const startEvents = childNodes.filter(isStartEvent2);
21978
- if (startEvents.length > 1) {
21979
- errors.push({
21980
- code: "MULTIPLE_START_EVENTS_IN_EVENT_SUBPROCESS",
21981
- message: "Multiple start events in event sub-process",
21982
- description: "Event sub-process can have only one start event",
21983
- severity: "ERROR",
21984
- elementId: node.id,
21985
- sourceId: node.id
21986
- });
21987
- }
21988
- }
21989
- return errors;
21990
- }
21991
- function isEventSubProcess(node) {
21992
- if (!node.type) {
21993
- return false;
21994
- }
21995
- return node.type === "bpmn:SubProcess" && node.data?.triggeredByEvent === true;
21996
- }
21997
- function isStartEvent2(node) {
21998
- if (!node.type) {
21999
- return false;
22000
- }
22001
- return node.type === "bpmn:StartEvent";
22002
- }
22003
- function validateSuperfluousGateway(nodes, edges, lookupMaps) {
22004
- if (!nodes || !edges) {
22005
- return [];
22006
- }
22007
- const errors = [];
22008
- const edgesBySource = lookupMaps.edgesBySource;
22009
- const edgesByTarget = lookupMaps.edgesByTarget;
22010
- for (const node of nodes) {
22011
- if (!isGateway(node.type)) {
22012
- continue;
22013
- }
22014
- const incomingEdges = edgesByTarget.get(node.id) ?? [];
22015
- const outgoingEdges = edgesBySource.get(node.id) ?? [];
22016
- if (incomingEdges.length === 1 && outgoingEdges.length === 1) {
22017
- errors.push({
22018
- code: "SUPERFLUOUS_GATEWAY",
22019
- message: "Gateway is superfluous",
22020
- description: "Gateway should have at least two sources or targets.",
22021
- severity: "ERROR",
22022
- elementId: node.id
22023
- });
22024
- }
22025
- }
22026
- return errors;
22027
- }
22028
- function isGateway(type) {
22029
- return type === "bpmn:ExclusiveGateway" || type === "bpmn:ParallelGateway" || type === "bpmn:InclusiveGateway";
22030
- }
22031
- var MIN_TIMER_MINUTES = 15;
22032
- var MAX_TIMER_MINUTES = 90 * 24 * 60;
22033
- function isTimerValueOutOfRange(value) {
22034
- if (value == null || value === "")
22035
- return false;
22036
- const str = String(value);
22037
- if (isExpressionOrVariableValue(str))
22038
- return false;
22039
- const minutes = Number(str);
22040
- if (Number.isNaN(minutes))
22041
- return false;
22042
- return minutes < MIN_TIMER_MINUTES || minutes > MAX_TIMER_MINUTES;
22043
- }
22044
- function validateTaskTimerRange(nodes, _edges, _lookupMaps) {
22045
- if (!nodes) {
22046
- return [];
22047
- }
22048
- const errors = [];
22049
- const nodeLabelToCountMap = {};
22050
- for (const node of nodes) {
22051
- const label = node.data?.label;
22052
- if (label) {
22053
- nodeLabelToCountMap[label] = (nodeLabelToCountMap[label] || 0) + 1;
22054
- }
22055
- }
22056
- for (const node of nodes) {
22057
- const uipath = node.data?.uipath;
22058
- if (uipath?.serviceType !== "actions")
22059
- continue;
22060
- const timerContext = uipath.context?.find((c) => c.name === "Timer");
22061
- if (timerContext?.value == null || timerContext.value === "")
22062
- continue;
22063
- if (isTimerValueOutOfRange(timerContext.value)) {
22064
- const nodeLabel = nodeLabelToCountMap[node.data?.label ?? ""] > 1 ? `${node.data?.label} (${node.id})` : node.data?.label ?? node.id;
22065
- errors.push({
22066
- code: "TASK_TIMER_OUT_OF_RANGE",
22067
- message: "validation_rule_task_timer_out_of_range_message",
22068
- messageParams: { nodeName: nodeLabel },
22069
- description: "validation_rule_task_timer_out_of_range_description",
22070
- descriptionParams: { nodeName: nodeLabel },
22071
- severity: "WARNING",
22072
- elementId: node.id
22073
- });
22074
- }
22075
- }
22076
- return errors;
22077
- }
22078
- var LuxonError = class extends Error {
22079
- };
22080
- var InvalidDateTimeError = class extends LuxonError {
22081
- constructor(reason) {
22082
- super(`Invalid DateTime: ${reason.toMessage()}`);
22083
- }
22084
- };
22085
- var InvalidIntervalError = class extends LuxonError {
22086
- constructor(reason) {
22087
- super(`Invalid Interval: ${reason.toMessage()}`);
22088
- }
22089
- };
22090
- var InvalidDurationError = class extends LuxonError {
22091
- constructor(reason) {
22092
- super(`Invalid Duration: ${reason.toMessage()}`);
22188
+ };
22189
+ var InvalidDurationError = class extends LuxonError {
22190
+ constructor(reason) {
22191
+ super(`Invalid Duration: ${reason.toMessage()}`);
22093
22192
  }
22094
22193
  };
22095
22194
  var ConflictingSpecificationError = class extends LuxonError {
@@ -26377,123 +26476,615 @@ var require_xml = __commonJS(function(exports, module) {
26377
26476
  if (!dateTimes.every(_DateTime.isDateTime)) {
26378
26477
  throw new InvalidArgumentError("max requires all arguments be DateTimes");
26379
26478
  }
26380
- return bestBy(dateTimes, (i) => i.valueOf(), Math.max);
26381
- }
26382
- static fromFormatExplain(text, fmt, options = {}) {
26383
- const { locale = null, numberingSystem = null } = options, localeToUse = Locale.fromOpts({
26384
- locale,
26385
- numberingSystem,
26386
- defaultToEN: true
26387
- });
26388
- return explainFromTokens(localeToUse, text, fmt);
26479
+ return bestBy(dateTimes, (i) => i.valueOf(), Math.max);
26480
+ }
26481
+ static fromFormatExplain(text, fmt, options = {}) {
26482
+ const { locale = null, numberingSystem = null } = options, localeToUse = Locale.fromOpts({
26483
+ locale,
26484
+ numberingSystem,
26485
+ defaultToEN: true
26486
+ });
26487
+ return explainFromTokens(localeToUse, text, fmt);
26488
+ }
26489
+ static fromStringExplain(text, fmt, options = {}) {
26490
+ return _DateTime.fromFormatExplain(text, fmt, options);
26491
+ }
26492
+ static buildFormatParser(fmt, options = {}) {
26493
+ const { locale = null, numberingSystem = null } = options, localeToUse = Locale.fromOpts({
26494
+ locale,
26495
+ numberingSystem,
26496
+ defaultToEN: true
26497
+ });
26498
+ return new TokenParser(localeToUse, fmt);
26499
+ }
26500
+ static fromFormatParser(text, formatParser, opts = {}) {
26501
+ if (isUndefined3(text) || isUndefined3(formatParser)) {
26502
+ throw new InvalidArgumentError("fromFormatParser requires an input string and a format parser");
26503
+ }
26504
+ const { locale = null, numberingSystem = null } = opts, localeToUse = Locale.fromOpts({
26505
+ locale,
26506
+ numberingSystem,
26507
+ defaultToEN: true
26508
+ });
26509
+ if (!localeToUse.equals(formatParser.locale)) {
26510
+ throw new InvalidArgumentError(`fromFormatParser called with a locale of ${localeToUse}, but the format parser was created for ${formatParser.locale}`);
26511
+ }
26512
+ const { result, zone, specificOffset, invalidReason } = formatParser.explainFromTokens(text);
26513
+ if (invalidReason) {
26514
+ return _DateTime.invalid(invalidReason);
26515
+ } else {
26516
+ return parseDataToDateTime(result, zone, opts, `format ${formatParser.format}`, text, specificOffset);
26517
+ }
26518
+ }
26519
+ static get DATE_SHORT() {
26520
+ return DATE_SHORT;
26521
+ }
26522
+ static get DATE_MED() {
26523
+ return DATE_MED;
26524
+ }
26525
+ static get DATE_MED_WITH_WEEKDAY() {
26526
+ return DATE_MED_WITH_WEEKDAY;
26527
+ }
26528
+ static get DATE_FULL() {
26529
+ return DATE_FULL;
26530
+ }
26531
+ static get DATE_HUGE() {
26532
+ return DATE_HUGE;
26533
+ }
26534
+ static get TIME_SIMPLE() {
26535
+ return TIME_SIMPLE;
26536
+ }
26537
+ static get TIME_WITH_SECONDS() {
26538
+ return TIME_WITH_SECONDS;
26539
+ }
26540
+ static get TIME_WITH_SHORT_OFFSET() {
26541
+ return TIME_WITH_SHORT_OFFSET;
26542
+ }
26543
+ static get TIME_WITH_LONG_OFFSET() {
26544
+ return TIME_WITH_LONG_OFFSET;
26545
+ }
26546
+ static get TIME_24_SIMPLE() {
26547
+ return TIME_24_SIMPLE;
26548
+ }
26549
+ static get TIME_24_WITH_SECONDS() {
26550
+ return TIME_24_WITH_SECONDS;
26551
+ }
26552
+ static get TIME_24_WITH_SHORT_OFFSET() {
26553
+ return TIME_24_WITH_SHORT_OFFSET;
26554
+ }
26555
+ static get TIME_24_WITH_LONG_OFFSET() {
26556
+ return TIME_24_WITH_LONG_OFFSET;
26557
+ }
26558
+ static get DATETIME_SHORT() {
26559
+ return DATETIME_SHORT;
26560
+ }
26561
+ static get DATETIME_SHORT_WITH_SECONDS() {
26562
+ return DATETIME_SHORT_WITH_SECONDS;
26563
+ }
26564
+ static get DATETIME_MED() {
26565
+ return DATETIME_MED;
26566
+ }
26567
+ static get DATETIME_MED_WITH_SECONDS() {
26568
+ return DATETIME_MED_WITH_SECONDS;
26569
+ }
26570
+ static get DATETIME_MED_WITH_WEEKDAY() {
26571
+ return DATETIME_MED_WITH_WEEKDAY;
26572
+ }
26573
+ static get DATETIME_FULL() {
26574
+ return DATETIME_FULL;
26575
+ }
26576
+ static get DATETIME_FULL_WITH_SECONDS() {
26577
+ return DATETIME_FULL_WITH_SECONDS;
26578
+ }
26579
+ static get DATETIME_HUGE() {
26580
+ return DATETIME_HUGE;
26581
+ }
26582
+ static get DATETIME_HUGE_WITH_SECONDS() {
26583
+ return DATETIME_HUGE_WITH_SECONDS;
26584
+ }
26585
+ };
26586
+ function friendlyDateTime(dateTimeish) {
26587
+ if (DateTime.isDateTime(dateTimeish)) {
26588
+ return dateTimeish;
26589
+ } else if (dateTimeish && dateTimeish.valueOf && isNumber(dateTimeish.valueOf())) {
26590
+ return DateTime.fromJSDate(dateTimeish);
26591
+ } else if (dateTimeish && typeof dateTimeish === "object") {
26592
+ return DateTime.fromObject(dateTimeish);
26593
+ } else {
26594
+ throw new InvalidArgumentError(`Unknown datetime argument: ${dateTimeish}, of type ${typeof dateTimeish}`);
26595
+ }
26596
+ }
26597
+ var MESSAGE_TIME_TO_LIVE_INPUT_NAME = "TimeToLive";
26598
+ var MAX_MESSAGE_TIME_TO_LIVE_DAYS = 7;
26599
+ function getMessageTimeToLiveInDays(value, now2) {
26600
+ if (!value)
26601
+ return;
26602
+ const trimmedValue = String(value).trim();
26603
+ if (!trimmedValue || isExpressionOrVariableValue(trimmedValue))
26604
+ return;
26605
+ const duration = Duration.fromISO(trimmedValue);
26606
+ if (duration.isValid) {
26607
+ return duration.as("days");
26608
+ }
26609
+ const dateTime = DateTime.fromISO(trimmedValue);
26610
+ return dateTime.isValid ? dateTime.diff(DateTime.fromMillis(now2)).as("days") : undefined;
26611
+ }
26612
+ function isMessageTimeToLiveElapsed(value, now2 = Date.now()) {
26613
+ const days = getMessageTimeToLiveInDays(value, now2);
26614
+ return days !== undefined && days < 0;
26615
+ }
26616
+ function isMessageTimeToLiveOutOfRange(value, now2 = Date.now()) {
26617
+ const days = getMessageTimeToLiveInDays(value, now2);
26618
+ return days !== undefined && days > MAX_MESSAGE_TIME_TO_LIVE_DAYS;
26619
+ }
26620
+ function validateMessageTimeToLive(nodes, _edges, _lookupMaps) {
26621
+ if (!nodes) {
26622
+ return [];
26623
+ }
26624
+ const errors = [];
26625
+ const nodeLabelToCountMap = {};
26626
+ for (const node of nodes) {
26627
+ const label = node.data?.label;
26628
+ if (label) {
26629
+ nodeLabelToCountMap[label] = (nodeLabelToCountMap[label] || 0) + 1;
26630
+ }
26631
+ }
26632
+ for (const node of nodes) {
26633
+ const uipath = node.data?.uipath;
26634
+ if (uipath?.serviceType !== "Maestro.SendMessageEvent")
26635
+ continue;
26636
+ const timeToLive = uipath.inputs?.find((input) => input.name === MESSAGE_TIME_TO_LIVE_INPUT_NAME);
26637
+ const value = timeToLive?.value;
26638
+ const isOutOfRange = isMessageTimeToLiveOutOfRange(value);
26639
+ if (!isOutOfRange && !isMessageTimeToLiveElapsed(value))
26640
+ continue;
26641
+ const nodeLabel = nodeLabelToCountMap[node.data?.label ?? ""] > 1 ? `${node.data?.label} (${node.id})` : node.data?.label ?? node.id;
26642
+ errors.push(isOutOfRange ? {
26643
+ code: "MESSAGE_TIME_TO_LIVE_OUT_OF_RANGE",
26644
+ message: "validation_rule_message_time_to_live_out_of_range_message",
26645
+ messageParams: { nodeName: nodeLabel },
26646
+ description: "validation_rule_message_time_to_live_out_of_range_description",
26647
+ descriptionParams: { nodeName: nodeLabel, maxDays: String(MAX_MESSAGE_TIME_TO_LIVE_DAYS) },
26648
+ severity: "ERROR",
26649
+ elementId: node.id
26650
+ } : {
26651
+ code: "MESSAGE_TIME_TO_LIVE_ELAPSED",
26652
+ message: "validation_rule_message_time_to_live_elapsed_message",
26653
+ messageParams: { nodeName: nodeLabel },
26654
+ description: "validation_rule_message_time_to_live_elapsed_description",
26655
+ descriptionParams: { nodeName: nodeLabel },
26656
+ severity: "ERROR",
26657
+ elementId: node.id
26658
+ });
26659
+ }
26660
+ return errors;
26661
+ }
26662
+ var HITL_TYPE = {
26663
+ Quick: "quick",
26664
+ Custom: "custom"
26665
+ };
26666
+ var HITL_CONTEXT_KEYS = {
26667
+ HitlType: "hitlType"
26668
+ };
26669
+ var HITL_CONTEXT_ENTRY_KEYS = {
26670
+ TaskTitle: "taskTitle",
26671
+ Label: "_label",
26672
+ SchemaFileId: "_schemaFileId",
26673
+ HitlSchemaId: "hitlSchemaId",
26674
+ Priority: "priority"
26675
+ };
26676
+ var QUICK_FORM_SCHEMA_CONTEXT_KEYS = /* @__PURE__ */ new Set([HITL_CONTEXT_ENTRY_KEYS.SchemaFileId, HITL_CONTEXT_ENTRY_KEYS.HitlSchemaId, "__hitlFormSchema"]);
26677
+ function getHitlTypeFromContext(context) {
26678
+ if (!Array.isArray(context))
26679
+ return HITL_TYPE.Custom;
26680
+ let hasSchemaMarker = false;
26681
+ for (const entry of context) {
26682
+ if (entry.name === HITL_CONTEXT_KEYS.HitlType && (entry.value === HITL_TYPE.Quick || entry.value === HITL_TYPE.Custom)) {
26683
+ return entry.value;
26684
+ }
26685
+ if (!hasSchemaMarker && QUICK_FORM_SCHEMA_CONTEXT_KEYS.has(entry.name)) {
26686
+ hasSchemaMarker = true;
26687
+ }
26389
26688
  }
26390
- static fromStringExplain(text, fmt, options = {}) {
26391
- return _DateTime.fromFormatExplain(text, fmt, options);
26689
+ return hasSchemaMarker ? HITL_TYPE.Quick : HITL_TYPE.Custom;
26690
+ }
26691
+ function isHitlQuickMode(context) {
26692
+ return getHitlTypeFromContext(context) === HITL_TYPE.Quick;
26693
+ }
26694
+ var ACTIONS_HITL_SERVICE_TYPE = "Actions.HITL";
26695
+ var SERVICE_TYPES_REQUIRING_RESOURCE = /* @__PURE__ */ new Set([
26696
+ "Orchestrator.StartAgentJob",
26697
+ "Orchestrator.StartJob",
26698
+ "Orchestrator.CreateQueueItem",
26699
+ "Orchestrator.CreateAndWaitForQueueItem",
26700
+ "Orchestrator.BulkAddQueueItems",
26701
+ "Orchestrator.GetTransactionItem",
26702
+ "Orchestrator.GetQueueItems",
26703
+ "Queue.WaitForEvent",
26704
+ "Orchestrator.QueueItemAdded",
26705
+ "Orchestrator.BusinessRules",
26706
+ "Orchestrator.ExecuteApiWorkflowAsync",
26707
+ ACTIONS_HITL_SERVICE_TYPE,
26708
+ "Orchestrator.StartAgenticProcess",
26709
+ "Orchestrator.StartAgenticProcessAsync",
26710
+ "Orchestrator.StartCaseMgmtProcess",
26711
+ "Orchestrator.StartCaseMgmtProcessAsync",
26712
+ "Orchestrator.StartFlowProcess",
26713
+ "Orchestrator.StartFlowProcessAsync"
26714
+ ]);
26715
+ var hasResourceBinding = (uipath) => {
26716
+ if (!uipath?.context) {
26717
+ return false;
26392
26718
  }
26393
- static buildFormatParser(fmt, options = {}) {
26394
- const { locale = null, numberingSystem = null } = options, localeToUse = Locale.fromOpts({
26395
- locale,
26396
- numberingSystem,
26397
- defaultToEN: true
26398
- });
26399
- return new TokenParser(localeToUse, fmt);
26719
+ const releaseKey = uipath.context.find((c) => c.name === "releaseKey")?.value;
26720
+ if (releaseKey) {
26721
+ return true;
26400
26722
  }
26401
- static fromFormatParser(text, formatParser, opts = {}) {
26402
- if (isUndefined3(text) || isUndefined3(formatParser)) {
26403
- throw new InvalidArgumentError("fromFormatParser requires an input string and a format parser");
26723
+ const name2 = uipath.context.find((c) => c.name === "name" || c.name === "queueName")?.value;
26724
+ return !!name2;
26725
+ };
26726
+ function validateMissingResource(nodes, _edges, _lookupMaps) {
26727
+ const errors = [];
26728
+ for (const node of nodes) {
26729
+ const uipath = node.data?.uipath;
26730
+ const serviceType = uipath?.serviceType;
26731
+ if (!serviceType || !SERVICE_TYPES_REQUIRING_RESOURCE.has(serviceType)) {
26732
+ continue;
26404
26733
  }
26405
- const { locale = null, numberingSystem = null } = opts, localeToUse = Locale.fromOpts({
26406
- locale,
26407
- numberingSystem,
26408
- defaultToEN: true
26409
- });
26410
- if (!localeToUse.equals(formatParser.locale)) {
26411
- throw new InvalidArgumentError(`fromFormatParser called with a locale of ${localeToUse}, but the format parser was created for ${formatParser.locale}`);
26734
+ if (serviceType === ACTIONS_HITL_SERVICE_TYPE && isHitlQuickMode(uipath?.context)) {
26735
+ continue;
26412
26736
  }
26413
- const { result, zone, specificOffset, invalidReason } = formatParser.explainFromTokens(text);
26414
- if (invalidReason) {
26415
- return _DateTime.invalid(invalidReason);
26416
- } else {
26417
- return parseDataToDateTime(result, zone, opts, `format ${formatParser.format}`, text, specificOffset);
26737
+ if (hasResourceBinding(uipath)) {
26738
+ continue;
26418
26739
  }
26740
+ const nodeLabel = node.data?.label || node.id;
26741
+ errors.push({
26742
+ code: "MISSING_RESOURCE",
26743
+ message: "validation_rule_missing_resource_title",
26744
+ messageParams: { nodeName: nodeLabel },
26745
+ description: "validation_rule_missing_resource_description",
26746
+ descriptionParams: { nodeName: nodeLabel },
26747
+ severity: "WARNING",
26748
+ elementId: node.id
26749
+ });
26419
26750
  }
26420
- static get DATE_SHORT() {
26421
- return DATE_SHORT;
26422
- }
26423
- static get DATE_MED() {
26424
- return DATE_MED;
26425
- }
26426
- static get DATE_MED_WITH_WEEKDAY() {
26427
- return DATE_MED_WITH_WEEKDAY;
26428
- }
26429
- static get DATE_FULL() {
26430
- return DATE_FULL;
26751
+ return errors;
26752
+ }
26753
+ var getUiPathContextValue = (uipath, name2) => uipath?.context?.find((entry) => entry.name === name2)?.value;
26754
+ var getUiPathStringContextValue = (uipath, name2) => {
26755
+ const value = getUiPathContextValue(uipath, name2);
26756
+ return typeof value === "string" ? value : undefined;
26757
+ };
26758
+ var IXP_EXTRACTION_SERVICE_TYPE2 = "IXP.Extraction";
26759
+ function findRequiredFieldErrorInData(data) {
26760
+ if (!data) {
26761
+ return;
26431
26762
  }
26432
- static get DATE_HUGE() {
26433
- return DATE_HUGE;
26763
+ const validateFields = (fields) => {
26764
+ if (!fields) {
26765
+ return;
26766
+ }
26767
+ for (const field of fields) {
26768
+ if (field.required && isNilOrEmpty(field.value)) {
26769
+ return {
26770
+ field,
26771
+ error: {
26772
+ code: "EMPTY_REQUIRED_FIELD",
26773
+ message: "validation_rule_title_empty_required_field_title",
26774
+ description: "validation_rule_title_empty_required_field_{{fieldName}}_description",
26775
+ descriptionParams: { fieldName: field.name },
26776
+ severity: "ERROR",
26777
+ labels: ["Reliability"]
26778
+ }
26779
+ };
26780
+ }
26781
+ }
26782
+ return;
26783
+ };
26784
+ const ixpModelError = data.serviceType === IXP_EXTRACTION_SERVICE_TYPE2 && isNilOrEmpty(getUiPathStringContextValue(data, "modelName")) ? validateFields([{ name: "modelName", type: "string", value: undefined, required: true }]) : undefined;
26785
+ return ixpModelError ?? validateFields(data.context) ?? validateFields(data.inputs) ?? validateFields(data.outputs);
26786
+ }
26787
+ function validateRequiredFields(nodes, edges, _lookupMaps) {
26788
+ if (!nodes || !edges) {
26789
+ return [];
26434
26790
  }
26435
- static get TIME_SIMPLE() {
26436
- return TIME_SIMPLE;
26791
+ const errors = [];
26792
+ const nodeLabelToCountMap = {};
26793
+ for (const node of nodes) {
26794
+ const label = node.data?.label;
26795
+ if (label) {
26796
+ nodeLabelToCountMap[label] = (nodeLabelToCountMap[label] || 0) + 1;
26797
+ }
26437
26798
  }
26438
- static get TIME_WITH_SECONDS() {
26439
- return TIME_WITH_SECONDS;
26799
+ for (const node of nodes) {
26800
+ if (node.data?.uipath) {
26801
+ const dataToValidate = node.type === "bpmn:StartEvent" ? {
26802
+ ...node.data.uipath,
26803
+ outputs: node.data.uipath.outputs?.map((output) => ({ ...output, required: undefined }))
26804
+ } : node.data.uipath;
26805
+ const result = findRequiredFieldErrorInData(dataToValidate);
26806
+ if (result?.error) {
26807
+ const error3 = result.error;
26808
+ const nodeLabel = nodeLabelToCountMap[node.data?.label ?? ""] > 1 ? `${node.data?.label} (${node.id})` : node.data?.label ?? node.id;
26809
+ error3.message = "validation_rule_title_empty_required_field_title";
26810
+ error3.messageParams = { nodeName: nodeLabel };
26811
+ error3.description = "The field '{{fieldName}}' in node '{{nodeName}}' is required but has no value";
26812
+ error3.descriptionParams = {
26813
+ fieldName: result.field?.name || "unnamed",
26814
+ nodeName: nodeLabel
26815
+ };
26816
+ error3.elementId = node.id;
26817
+ errors.push(error3);
26818
+ }
26819
+ }
26440
26820
  }
26441
- static get TIME_WITH_SHORT_OFFSET() {
26442
- return TIME_WITH_SHORT_OFFSET;
26821
+ return errors;
26822
+ }
26823
+ function validateSequenceFlowPoolCrossing(nodes, edges, lookupMaps) {
26824
+ const errors = [];
26825
+ const hasParticipants = nodes.some((node) => node.type === "bpmn:Participant");
26826
+ if (!hasParticipants) {
26827
+ return errors;
26443
26828
  }
26444
- static get TIME_WITH_LONG_OFFSET() {
26445
- return TIME_WITH_LONG_OFFSET;
26829
+ const nodeById = lookupMaps.nodeById;
26830
+ const nodeToPoolMap = buildNodeToPoolMap2(nodes, nodeById);
26831
+ for (const edge of edges) {
26832
+ if (edge.type !== "bpmn:SequenceFlow") {
26833
+ continue;
26834
+ }
26835
+ const sourcePool = nodeToPoolMap.get(edge.source);
26836
+ const targetPool = nodeToPoolMap.get(edge.target);
26837
+ const targetNode = nodeById.get(edge.target);
26838
+ if (sourcePool !== targetPool && targetNode?.type !== "bpmn:StartEvent") {
26839
+ errors.push({
26840
+ code: "CROSSING_POOL_BOUNDARY",
26841
+ message: "Sequence flow crossing pool boundaries",
26842
+ description: "Sequence flow cannot cross pool boundaries.",
26843
+ severity: "ERROR",
26844
+ sourceId: edge.source,
26845
+ targetId: edge.target,
26846
+ elementId: edge.id
26847
+ });
26848
+ }
26446
26849
  }
26447
- static get TIME_24_SIMPLE() {
26448
- return TIME_24_SIMPLE;
26850
+ return errors;
26851
+ }
26852
+ function buildNodeToPoolMap2(nodes, nodeById) {
26853
+ const nodeToPool = /* @__PURE__ */ new Map;
26854
+ for (const node of nodes) {
26855
+ let currentNode = node;
26856
+ while (currentNode) {
26857
+ if (currentNode.type === "bpmn:Participant") {
26858
+ nodeToPool.set(node.id, currentNode.id);
26859
+ break;
26860
+ }
26861
+ if (!currentNode.parentId)
26862
+ break;
26863
+ const parentNode = nodeById.get(currentNode.parentId);
26864
+ if (!parentNode)
26865
+ break;
26866
+ currentNode = parentNode;
26867
+ }
26449
26868
  }
26450
- static get TIME_24_WITH_SECONDS() {
26451
- return TIME_24_WITH_SECONDS;
26869
+ return nodeToPool;
26870
+ }
26871
+ function getLogicalParent(node, nodeMap) {
26872
+ const actualNodeParent = node.parentId ? nodeMap.get(node.parentId) : undefined;
26873
+ if (node.type === "bpmn:BoundaryEvent") {
26874
+ const boundaryEvent = node;
26875
+ const attachedToId = boundaryEvent.data.attachedToId;
26876
+ const attachedToNode = attachedToId ? nodeMap.get(attachedToId) : undefined;
26877
+ if (attachedToNode) {
26878
+ return attachedToNode.parentId ? nodeMap.get(attachedToNode.parentId) : undefined;
26879
+ }
26452
26880
  }
26453
- static get TIME_24_WITH_SHORT_OFFSET() {
26454
- return TIME_24_WITH_SHORT_OFFSET;
26881
+ return actualNodeParent;
26882
+ }
26883
+ function validateSequenceFlowSubProcessCrossing(_nodes, edges, lookupMaps) {
26884
+ const errors = [];
26885
+ const nodeMap = lookupMaps.nodeById;
26886
+ for (const edge of edges) {
26887
+ if (edge.type !== "bpmn:SequenceFlow") {
26888
+ continue;
26889
+ }
26890
+ const sourceNode = nodeMap.get(edge.source);
26891
+ const targetNode = nodeMap.get(edge.target);
26892
+ if (!sourceNode || !targetNode) {
26893
+ continue;
26894
+ }
26895
+ const sourceParent = getLogicalParent(sourceNode, nodeMap);
26896
+ const targetParent = getLogicalParent(targetNode, nodeMap);
26897
+ if ((sourceParent?.type === "bpmn:SubProcess" || targetParent?.type === "bpmn:SubProcess") && sourceParent?.id !== targetParent?.id) {
26898
+ errors.push({
26899
+ code: "CROSSING_SUBPROCESS_BOUNDARY",
26900
+ message: "Sequence flow crossing sub-process boundaries",
26901
+ description: "Sequence flow cannot cross sub-process boundaries.",
26902
+ severity: "ERROR",
26903
+ sourceId: edge.source,
26904
+ targetId: edge.target,
26905
+ elementId: edge.id
26906
+ });
26907
+ }
26455
26908
  }
26456
- static get TIME_24_WITH_LONG_OFFSET() {
26457
- return TIME_24_WITH_LONG_OFFSET;
26909
+ return errors;
26910
+ }
26911
+ function isBlankStartEvent(node) {
26912
+ return node.type === "bpmn:StartEvent" && !node.data?.eventDefinition;
26913
+ }
26914
+ function isFlowElementsContainer(type) {
26915
+ return type === "bpmn:Process" || type === "bpmn:SubProcess";
26916
+ }
26917
+ function validateSingleBlankStartEvent(nodes, edges, lookupMaps) {
26918
+ if (!nodes || !edges) {
26919
+ return [];
26458
26920
  }
26459
- static get DATETIME_SHORT() {
26460
- return DATETIME_SHORT;
26921
+ const errors = [];
26922
+ const nodesByParentId = lookupMaps.nodesByParentId;
26923
+ const containers = nodes.filter((node) => isFlowElementsContainer(node.type));
26924
+ for (const container of containers) {
26925
+ const scopeNodes = container.type === "bpmn:Process" ? nodesByParentId.get(undefined) ?? [] : nodesByParentId.get(container.id) ?? [];
26926
+ const blankStartEvents = scopeNodes.filter(isBlankStartEvent);
26927
+ if (blankStartEvents.length > 1) {
26928
+ const type = container.type === "bpmn:SubProcess" ? "Sub-process" : "Process";
26929
+ errors.push({
26930
+ code: "MULTIPLE_BLANK_START_EVENTS",
26931
+ message: "{{type}} has multiple blank start events",
26932
+ messageParams: { type },
26933
+ description: "{{type}} should have at most one blank start event.",
26934
+ descriptionParams: { type },
26935
+ severity: "ERROR",
26936
+ elementId: container.id
26937
+ });
26938
+ }
26461
26939
  }
26462
- static get DATETIME_SHORT_WITH_SECONDS() {
26463
- return DATETIME_SHORT_WITH_SECONDS;
26940
+ return errors;
26941
+ }
26942
+ var CONDITION_IGNORING_NODE_TYPES = /* @__PURE__ */ new Set(["bpmn:ParallelGateway", "bpmn:EventBasedGateway"]);
26943
+ var RUNTIME_FAILING_GATEWAY_TYPES = /* @__PURE__ */ new Set(["bpmn:ExclusiveGateway", "bpmn:InclusiveGateway"]);
26944
+ function validateSingleConditionalOutgoingFlow(nodes, _edges, lookupMaps) {
26945
+ const errors = [];
26946
+ for (const node of nodes) {
26947
+ if (CONDITION_IGNORING_NODE_TYPES.has(node.type ?? "")) {
26948
+ continue;
26949
+ }
26950
+ const isRuntimeFailingGateway = RUNTIME_FAILING_GATEWAY_TYPES.has(node.type ?? "");
26951
+ if (isRuntimeFailingGateway && (lookupMaps.edgesByTarget.get(node.id) ?? []).length === 1 && (lookupMaps.edgesBySource.get(node.id) ?? []).length === 1) {
26952
+ continue;
26953
+ }
26954
+ const outgoingSequenceFlows = (lookupMaps.edgesBySource.get(node.id) ?? []).filter((edge) => edge.type === "bpmn:SequenceFlow");
26955
+ if (outgoingSequenceFlows.length !== 1) {
26956
+ continue;
26957
+ }
26958
+ const flow = outgoingSequenceFlows[0];
26959
+ if (!flow.data?.conditionExpression || flow.data?.defaultFlow) {
26960
+ continue;
26961
+ }
26962
+ const nodeName = node.data?.label || node.id;
26963
+ errors.push({
26964
+ code: "SINGLE_CONDITIONAL_OUTGOING_FLOW",
26965
+ message: "validation_rule_single_conditional_outgoing_flow_message",
26966
+ messageParams: { nodeName },
26967
+ description: isRuntimeFailingGateway ? "validation_rule_single_conditional_outgoing_flow_gateway_description" : "validation_rule_single_conditional_outgoing_flow_description",
26968
+ severity: isRuntimeFailingGateway ? "ERROR" : "WARNING",
26969
+ sourceId: flow.source,
26970
+ targetId: flow.target,
26971
+ elementId: flow.id,
26972
+ selection: {
26973
+ nodes: false,
26974
+ edges: true
26975
+ }
26976
+ });
26464
26977
  }
26465
- static get DATETIME_MED() {
26466
- return DATETIME_MED;
26978
+ return errors;
26979
+ }
26980
+ function validateSingleStartEventInEventSubProcess(nodes, _edges, lookupMaps) {
26981
+ const errors = [];
26982
+ const nodesByParentId = lookupMaps.nodesByParentId;
26983
+ for (const node of nodes) {
26984
+ if (!isEventSubProcess(node)) {
26985
+ continue;
26986
+ }
26987
+ const childNodes = nodesByParentId.get(node.id) ?? [];
26988
+ const startEvents = childNodes.filter(isStartEvent2);
26989
+ if (startEvents.length > 1) {
26990
+ errors.push({
26991
+ code: "MULTIPLE_START_EVENTS_IN_EVENT_SUBPROCESS",
26992
+ message: "Multiple start events in event sub-process",
26993
+ description: "Event sub-process can have only one start event",
26994
+ severity: "ERROR",
26995
+ elementId: node.id,
26996
+ sourceId: node.id
26997
+ });
26998
+ }
26467
26999
  }
26468
- static get DATETIME_MED_WITH_SECONDS() {
26469
- return DATETIME_MED_WITH_SECONDS;
27000
+ return errors;
27001
+ }
27002
+ function isEventSubProcess(node) {
27003
+ if (!node.type) {
27004
+ return false;
26470
27005
  }
26471
- static get DATETIME_MED_WITH_WEEKDAY() {
26472
- return DATETIME_MED_WITH_WEEKDAY;
27006
+ return node.type === "bpmn:SubProcess" && node.data?.triggeredByEvent === true;
27007
+ }
27008
+ function isStartEvent2(node) {
27009
+ if (!node.type) {
27010
+ return false;
26473
27011
  }
26474
- static get DATETIME_FULL() {
26475
- return DATETIME_FULL;
27012
+ return node.type === "bpmn:StartEvent";
27013
+ }
27014
+ function validateSuperfluousGateway(nodes, edges, lookupMaps) {
27015
+ if (!nodes || !edges) {
27016
+ return [];
26476
27017
  }
26477
- static get DATETIME_FULL_WITH_SECONDS() {
26478
- return DATETIME_FULL_WITH_SECONDS;
27018
+ const errors = [];
27019
+ const edgesBySource = lookupMaps.edgesBySource;
27020
+ const edgesByTarget = lookupMaps.edgesByTarget;
27021
+ for (const node of nodes) {
27022
+ if (!isGateway(node.type)) {
27023
+ continue;
27024
+ }
27025
+ const incomingEdges = edgesByTarget.get(node.id) ?? [];
27026
+ const outgoingEdges = edgesBySource.get(node.id) ?? [];
27027
+ if (incomingEdges.length === 1 && outgoingEdges.length === 1) {
27028
+ errors.push({
27029
+ code: "SUPERFLUOUS_GATEWAY",
27030
+ message: "Gateway is superfluous",
27031
+ description: "Gateway should have at least two sources or targets.",
27032
+ severity: "ERROR",
27033
+ elementId: node.id
27034
+ });
27035
+ }
26479
27036
  }
26480
- static get DATETIME_HUGE() {
26481
- return DATETIME_HUGE;
27037
+ return errors;
27038
+ }
27039
+ function isGateway(type) {
27040
+ return type === "bpmn:ExclusiveGateway" || type === "bpmn:ParallelGateway" || type === "bpmn:InclusiveGateway";
27041
+ }
27042
+ var MIN_TIMER_MINUTES = 15;
27043
+ var MAX_TIMER_MINUTES = 90 * 24 * 60;
27044
+ function isTimerValueOutOfRange(value) {
27045
+ if (value == null || value === "")
27046
+ return false;
27047
+ const str = String(value);
27048
+ if (isExpressionOrVariableValue(str))
27049
+ return false;
27050
+ const minutes = Number(str);
27051
+ if (Number.isNaN(minutes))
27052
+ return false;
27053
+ return minutes < MIN_TIMER_MINUTES || minutes > MAX_TIMER_MINUTES;
27054
+ }
27055
+ function validateTaskTimerRange(nodes, _edges, _lookupMaps) {
27056
+ if (!nodes) {
27057
+ return [];
26482
27058
  }
26483
- static get DATETIME_HUGE_WITH_SECONDS() {
26484
- return DATETIME_HUGE_WITH_SECONDS;
27059
+ const errors = [];
27060
+ const nodeLabelToCountMap = {};
27061
+ for (const node of nodes) {
27062
+ const label = node.data?.label;
27063
+ if (label) {
27064
+ nodeLabelToCountMap[label] = (nodeLabelToCountMap[label] || 0) + 1;
27065
+ }
26485
27066
  }
26486
- };
26487
- function friendlyDateTime(dateTimeish) {
26488
- if (DateTime.isDateTime(dateTimeish)) {
26489
- return dateTimeish;
26490
- } else if (dateTimeish && dateTimeish.valueOf && isNumber(dateTimeish.valueOf())) {
26491
- return DateTime.fromJSDate(dateTimeish);
26492
- } else if (dateTimeish && typeof dateTimeish === "object") {
26493
- return DateTime.fromObject(dateTimeish);
26494
- } else {
26495
- throw new InvalidArgumentError(`Unknown datetime argument: ${dateTimeish}, of type ${typeof dateTimeish}`);
27067
+ for (const node of nodes) {
27068
+ const uipath = node.data?.uipath;
27069
+ if (uipath?.serviceType !== "actions")
27070
+ continue;
27071
+ const timerContext = uipath.context?.find((c) => c.name === "Timer");
27072
+ if (timerContext?.value == null || timerContext.value === "")
27073
+ continue;
27074
+ if (isTimerValueOutOfRange(timerContext.value)) {
27075
+ const nodeLabel = nodeLabelToCountMap[node.data?.label ?? ""] > 1 ? `${node.data?.label} (${node.id})` : node.data?.label ?? node.id;
27076
+ errors.push({
27077
+ code: "TASK_TIMER_OUT_OF_RANGE",
27078
+ message: "validation_rule_task_timer_out_of_range_message",
27079
+ messageParams: { nodeName: nodeLabel },
27080
+ description: "validation_rule_task_timer_out_of_range_description",
27081
+ descriptionParams: { nodeName: nodeLabel },
27082
+ severity: "WARNING",
27083
+ elementId: node.id
27084
+ });
27085
+ }
26496
27086
  }
27087
+ return errors;
26497
27088
  }
26498
27089
  var isValidIso8601Duration = (value) => Duration.fromISO(value).isValid;
26499
27090
  var hasIso8601WeekDesignator = (value) => /W/i.test(value);
@@ -26775,6 +27366,15 @@ var require_xml = __commonJS(function(exports, module) {
26775
27366
  enabled: true
26776
27367
  };
26777
27368
  }
27369
+ function getMessageTimeToLiveRule() {
27370
+ return {
27371
+ id: "message-time-to-live",
27372
+ name: "Message Time To Live",
27373
+ description: "Validates that the time to live on Send Message events does not exceed the 7 day maximum",
27374
+ validate: validateMessageTimeToLive,
27375
+ enabled: true
27376
+ };
27377
+ }
26778
27378
  function getTimerDurationRule() {
26779
27379
  return {
26780
27380
  id: "timer-duration",
@@ -27399,6 +27999,7 @@ var require_xml = __commonJS(function(exports, module) {
27399
27999
  getMissingStartEventInSubProcessRule(),
27400
28000
  getMissingRootVariableRule(),
27401
28001
  getTaskTimerRule(),
28002
+ getMessageTimeToLiveRule(),
27402
28003
  getTimerDurationRule(),
27403
28004
  getSingleConditionalOutgoingFlowRule(),
27404
28005
  getTimerRequiredFieldsRule(),
@@ -27435,6 +28036,20 @@ var require_xml = __commonJS(function(exports, module) {
27435
28036
  diagramId,
27436
28037
  parentDiagramPath: diagramPaths[diagramId] || []
27437
28038
  }));
28039
+ var addElementDiagramPath = (errors, state, elementDiagramMap, diagramPaths) => errors.map((error3) => {
28040
+ const diagramId = elementDiagramMap[error3.elementId ?? ""] ?? state.rootDiagramId;
28041
+ return {
28042
+ ...error3,
28043
+ diagramId,
28044
+ parentDiagramPath: diagramPaths[diagramId] || []
28045
+ };
28046
+ });
28047
+ var getAllNonPreviewNodes = (state) => Object.values(state.diagramsById).flatMap((diagram) => getNonPreviewNodes(diagram.nodes));
28048
+ var attachElementDiagramPaths = (state, errors) => {
28049
+ const diagramPaths = buildAllDiagramPaths(state, buildSubProcessDiagramRelationships(state));
28050
+ const elementDiagramMap = buildElementDiagramMap(state.diagramsById);
28051
+ return addElementDiagramPath(errors, state, elementDiagramMap, diagramPaths);
28052
+ };
27438
28053
  var shouldSkipDefaultRootDiagram = (diagramId, state, nodes, edges) => {
27439
28054
  return diagramId === state.rootDiagramId && nodes.length === 1 && nodes[0].type === "bpmn:StartEvent" && edges.length === 0;
27440
28055
  };
@@ -27472,17 +28087,10 @@ var require_xml = __commonJS(function(exports, module) {
27472
28087
  if (!validateVariablesInAllNodesAndEdges) {
27473
28088
  return [];
27474
28089
  }
27475
- return validateVariablesInAllNodesAndEdges(allNonPreviewNodes, allNonPreviewEdges, diagrams, state.root, [
28090
+ return addElementDiagramPath(validateVariablesInAllNodesAndEdges(allNonPreviewNodes, allNonPreviewEdges, diagrams, state.root, [
27476
28091
  ...getRootVariables(state),
27477
28092
  ...getDiagramVariables(allNonPreviewNodes)
27478
- ]).map((error3) => {
27479
- const diagramId = elementDiagramMap[error3.elementId ?? ""] ?? state.rootDiagramId;
27480
- return {
27481
- ...error3,
27482
- diagramId,
27483
- parentDiagramPath: diagramPaths[diagramId] || []
27484
- };
27485
- });
28093
+ ]), state, elementDiagramMap, diagramPaths);
27486
28094
  };
27487
28095
  var getEventObjectErrors = (state, diagramPaths) => {
27488
28096
  const eventObjectRule = ALL_RULES.find((rule) => rule.id === "event-object-fields");
@@ -27515,7 +28123,70 @@ var require_xml = __commonJS(function(exports, module) {
27515
28123
  elementDiagramMap,
27516
28124
  diagramPaths
27517
28125
  });
27518
- return [...ruleErrors, ...getEventObjectErrors(state, diagramPaths), ...variableErrors];
28126
+ const persistedIntsvcErrors = options.validatePersistedIntsvcErrors ? addElementDiagramPath(options.validatePersistedIntsvcErrors(allNonPreviewNodes, state.root), state, elementDiagramMap, diagramPaths) : [];
28127
+ return [...ruleErrors, ...getEventObjectErrors(state, diagramPaths), ...variableErrors, ...persistedIntsvcErrors];
28128
+ };
28129
+ var INT_SVC_ERROR_CODE = "INT_SVC_ERROR";
28130
+ var INT_SVC_ERROR_MESSAGE_KEY = "'{{activityDisplayName}}' has validation errors";
28131
+ var INT_SVC_RULE_ERROR_MESSAGE_KEY = "intsvc_rule_has_validation_errors";
28132
+ var INT_SVC_ERROR_DESCRIPTION_KEY = "Please check that all required fields are filled correctly";
28133
+ var DEFAULT_ACTIVITY_DISPLAY_NAME = "Activity";
28134
+ var ISSUE_TYPE_ERROR = "Error";
28135
+ var resolvePersistedIntsvcErrorState = (context, workflowVersion) => {
28136
+ if (!context?.length) {
28137
+ return;
28138
+ }
28139
+ const metadata = context.find((entry) => entry.name === "metadata")?.body;
28140
+ if (!metadata) {
28141
+ return;
28142
+ }
28143
+ const nodeVersion = context.find((entry) => entry.name === ACTIVITY_CONFIGURATION_VERSION)?.value;
28144
+ const effectiveVersion = nodeVersion ?? workflowVersion;
28145
+ if (effectiveVersion === "v2") {
28146
+ const issues = metadata.activityPropertyConfiguration?.errorState?.issues;
28147
+ return {
28148
+ hasError: Array.isArray(issues) && issues.some((issue) => issue?.type === ISSUE_TYPE_ERROR),
28149
+ activityDisplayName: metadata.activityMetadata?.activity?.displayName
28150
+ };
28151
+ }
28152
+ return {
28153
+ hasError: !!metadata.errorState?.hasError,
28154
+ activityDisplayName: metadata.designTimeMetadata?.activityDisplayName || metadata.telemetryData?.objectDisplayName || metadata.telemetryData?.objectName
28155
+ };
28156
+ };
28157
+ var createPersistedIntsvcValidationError = ({
28158
+ elementId,
28159
+ activityId,
28160
+ activityDisplayName,
28161
+ additionalErrorInfo,
28162
+ ruleLabel
28163
+ }) => ({
28164
+ code: INT_SVC_ERROR_CODE,
28165
+ message: ruleLabel ? INT_SVC_RULE_ERROR_MESSAGE_KEY : INT_SVC_ERROR_MESSAGE_KEY,
28166
+ messageParams: ruleLabel ? { ruleLabel } : { activityDisplayName: activityDisplayName || DEFAULT_ACTIVITY_DISPLAY_NAME },
28167
+ description: INT_SVC_ERROR_DESCRIPTION_KEY,
28168
+ elementId,
28169
+ activityId,
28170
+ severity: "ERROR",
28171
+ labels: ["Reliability"],
28172
+ additionalErrorInfo,
28173
+ ...additionalErrorInfo?.conditionId ? { category: "rules" } : {}
28174
+ });
28175
+ var validateBpmnPersistedIntsvcErrors = (nodes, root2) => {
28176
+ const workflowVersion = root2.data?.intsvcActivityConfig;
28177
+ const errors = [];
28178
+ for (const node of nodes) {
28179
+ const data = node.data;
28180
+ const errorState = resolvePersistedIntsvcErrorState(data?.uipath?.context, workflowVersion);
28181
+ if (!errorState?.hasError) {
28182
+ continue;
28183
+ }
28184
+ errors.push(createPersistedIntsvcValidationError({
28185
+ elementId: node.id,
28186
+ activityDisplayName: data?.label || errorState.activityDisplayName
28187
+ }));
28188
+ }
28189
+ return errors;
27519
28190
  };
27520
28191
  var NUMERIC_TYPES = /* @__PURE__ */ new Set(["integer", "number", "double", "float"]);
27521
28192
  var normalizeNonNumericType = (type) => {
@@ -28284,7 +28955,7 @@ var require_xml = __commonJS(function(exports, module) {
28284
28955
  const rootVariables = variables.filter((variable) => variable.elementId === root2.id);
28285
28956
  const ancestorScopedVariables = getAncestorScopedVariablesForElement(id, newType, nodes, edges, diagrams);
28286
28957
  const availableVariables = Object.values(getAvailableVariablesForElement(id, newType, nodes, edges, [...rootVariables, ...ancestorScopedVariables], { mapNodeOutputsToVariables })).flat();
28287
- const { existing, nonExisting: nonExistingVariableIdsInExpression } = getVariablesInExpression(expression, variables.filter((variable) => variable.elementId));
28958
+ const { existing, nonExisting: nonExistingVariableIdsInExpression } = getVariableAvailabilityInExpression(expression, variables.filter((variable) => variable.elementId));
28288
28959
  const { missingVariables, validResultVariableIdsInExpression } = nonExistingVariableIdsInExpression.reduce((acc, variableId) => {
28289
28960
  if (isResultVariableValidForElement(variableId, id, variables)) {
28290
28961
  acc.validResultVariableIdsInExpression.push(variableId);
@@ -28634,8 +29305,13 @@ var require_xml = __commonJS(function(exports, module) {
28634
29305
  };
28635
29306
  var validationPackageRuntime = {
28636
29307
  validateBpmnCanvasState: (state) => validateBpmnFlowCore(state, {
28637
- validateVariablesInAllNodesAndEdges: validateBpmnVariablesInAllNodesAndEdges
28638
- })
29308
+ validateVariablesInAllNodesAndEdges: validateBpmnVariablesInAllNodesAndEdges,
29309
+ validatePersistedIntsvcErrors: validateBpmnPersistedIntsvcErrors
29310
+ }),
29311
+ validateBpmnBindings: async (state, resolver) => {
29312
+ const canvasState = state;
29313
+ return attachElementDiagramPaths(canvasState, await validateBpmnBindings(getAllNonPreviewNodes(canvasState), canvasState.root, resolver));
29314
+ }
28639
29315
  };
28640
29316
  var isString3 = (obj) => typeof obj === "string";
28641
29317
  var defer = () => {
@@ -31145,6 +31821,12 @@ var require_xml = __commonJS(function(exports, module) {
31145
31821
  assertStringFieldWhenProvided(variable, "canonicalId", path);
31146
31822
  assertStringFieldWhenProvided(variable, "elementId", path);
31147
31823
  };
31824
+ var assertValidationBinding = (binding, path) => {
31825
+ assertNonEmptyString(binding.id, `expected ${path}.id to be a non-empty string.`);
31826
+ for (const field of ["name", "type", "elementId", "resource", "resourceSubType", "resourceKey", "propertyAttribute", "default"]) {
31827
+ assertStringFieldWhenProvided(binding, field, path);
31828
+ }
31829
+ };
31148
31830
  var assertValidationErrorMapping = (mapping, path) => {
31149
31831
  assertNonEmptyString(mapping.id, `expected ${path}.id to be a non-empty string.`);
31150
31832
  assertStringFieldWhenProvided(mapping, "condition", path);
@@ -31160,6 +31842,7 @@ var require_xml = __commonJS(function(exports, module) {
31160
31842
  }
31161
31843
  assertOptionalObjectArray(uipath.outputs, `${path}.uipath.outputs`, assertValidationOutput);
31162
31844
  assertOptionalObjectArray(uipath.errorMapping, `${path}.uipath.errorMapping`, assertValidationErrorMapping);
31845
+ assertOptionalObjectArray(uipath.bindings, `${path}.uipath.bindings`, assertValidationBinding);
31163
31846
  const variables = assertOptionalObject(uipath.variables, `expected ${path}.uipath.variables to be an object when provided.`);
31164
31847
  if (!variables) {
31165
31848
  return;
@@ -31174,7 +31857,7 @@ var require_xml = __commonJS(function(exports, module) {
31174
31857
  return;
31175
31858
  }
31176
31859
  const dataPath = `${path}.data`;
31177
- for (const field of ["conditionExpression", "label", "attachedToId"]) {
31860
+ for (const field of ["conditionExpression", "label", "attachedToId", "intsvcActivityConfig"]) {
31178
31861
  assertStringFieldWhenProvided(data, field, dataPath);
31179
31862
  }
31180
31863
  for (const field of ["isExpanded", "triggeredByEvent", "isCaseManagerStage", "defaultFlow"]) {
@@ -31294,24 +31977,41 @@ var require_xml = __commonJS(function(exports, module) {
31294
31977
  }
31295
31978
  var validateBpmnCanvasState = (state) => {
31296
31979
  assertBpmnCanvasState(state);
31297
- return validationPackageRuntime.validateBpmnCanvasState(state).map(translateValidationError);
31980
+ const effectiveState = {
31981
+ ...state,
31982
+ enableMissingRootVariableValidation: state.enableMissingRootVariableValidation ?? true
31983
+ };
31984
+ return validationPackageRuntime.validateBpmnCanvasState(effectiveState).map(translateValidationError);
31985
+ };
31986
+ var validateBpmnBindings2 = async (state, resolver) => {
31987
+ assertBpmnCanvasState(state);
31988
+ return (await validationPackageRuntime.validateBpmnBindings(state, resolver)).map(translateValidationError);
31298
31989
  };
31299
31990
  var BPMN_PARSE_ERROR = "BPMN_PARSE_ERROR";
31991
+ var BPMN_BINDING_VALIDATION_ERROR = "BPMN_BINDING_VALIDATION_ERROR";
31300
31992
  var parseError = (error3) => {
31301
31993
  const details = error3 instanceof Error ? error3.message : String(error3);
31302
31994
  const message = `Unable to load BPMN XML: ${details}`;
31303
31995
  return { code: BPMN_PARSE_ERROR, message, description: message, severity: "ERROR" };
31304
31996
  };
31997
+ var bindingValidationError = (error3) => {
31998
+ const details = error3 instanceof Error ? error3.message : String(error3);
31999
+ const message = `Unable to validate BPMN bindings: ${details}`;
32000
+ return { code: BPMN_BINDING_VALIDATION_ERROR, message, description: message, severity: "ERROR" };
32001
+ };
31305
32002
  var validateBpmnXml = async (xml2, options = {}) => {
31306
32003
  try {
31307
32004
  const { canvasState, parseWarnings } = await bpmnXmlValidationPackageRuntime.loadCanvasState(xml2);
31308
- return {
31309
- validationErrors: validateBpmnCanvasState({
31310
- ...canvasState,
31311
- enableMissingRootVariableValidation: options.enableMissingRootVariableValidation
31312
- }),
31313
- parseWarnings
31314
- };
32005
+ const stateToValidate = { ...canvasState, enableMissingRootVariableValidation: options.enableMissingRootVariableValidation };
32006
+ const validationErrors = validateBpmnCanvasState(stateToValidate);
32007
+ if (options.bindingResolver) {
32008
+ try {
32009
+ validationErrors.push(...await validateBpmnBindings2(stateToValidate, options.bindingResolver));
32010
+ } catch (error3) {
32011
+ validationErrors.push(bindingValidationError(error3));
32012
+ }
32013
+ }
32014
+ return { validationErrors, parseWarnings };
31315
32015
  } catch (error3) {
31316
32016
  return { validationErrors: [parseError(error3)], parseWarnings: [] };
31317
32017
  }
@@ -31332,4 +32032,4 @@ var require_xml = __commonJS(function(exports, module) {
31332
32032
  });
31333
32033
  export default require_xml();
31334
32034
 
31335
- //# debugId=4B865E4B9C1944EE64756E2164756E21
32035
+ //# debugId=E432E73F907BA7A564756E2164756E21