@uipath/case-tool 1.205.0-preview.277 → 1.206.0-preview.279

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 (211) hide show
  1. package/dist/THIRD-PARTY-NOTICES.md +68 -7
  2. package/dist/applicationinsights-web-8m26566f.js +17209 -0
  3. package/dist/{authoring-kqh34zzm.js → authoring-vg90pqrn.js} +488 -213
  4. package/dist/bindings-v2-1da35xsc.js +27 -0
  5. package/dist/{browser-strategy-6atc7v8s.js → browser-strategy-627rrg7z.js} +6 -7
  6. package/dist/{business-rule-export-ey588rv7.js → business-rule-export-jv60r9jf.js} +3 -7
  7. package/dist/carry-forward-sfdnta6q.js +52 -0
  8. package/dist/{case-api-sme7esce.js → case-api-by95rf40.js} +38 -37
  9. package/dist/{case-bindings-service-cht20gqt.js → case-bindings-service-pp3c9g1e.js} +93 -45
  10. package/dist/{case-debug-solution-projects-zy1snze0.js → case-debug-solution-projects-zhnn53e5.js} +3 -7
  11. package/dist/{case-debug-studio-web-service-tp28gt75.js → case-debug-studio-web-service-fvj41xrq.js} +48 -45
  12. package/dist/{case-described-io-service-dx1f4nxe.js → case-described-io-service-tsm8r189.js} +33 -15
  13. package/dist/case-event-trigger-bindings-qbs8ywf5.js +17 -0
  14. package/dist/{case-format-service-6aew6tqc.js → case-format-service-3sab2297.js} +9 -10
  15. package/dist/{case-pack-service-pqq8wnfd.js → case-pack-service-txnv711n.js} +47 -42
  16. package/dist/case-schema-version-cw0h2nrv.js +18 -0
  17. package/dist/case-shape-reader-xaxmrd40.js +14 -0
  18. package/dist/{case-splice-service-s5gccctq.js → case-splice-service-6y35w83e.js} +139 -51
  19. package/dist/{case-validate-service-g5fpq7xa.js → case-validate-service-4zdx7d2w.js} +234 -170
  20. package/dist/connector-enrichment-service-mws6z0hw.js +56 -0
  21. package/dist/connector-library-1yw5r47w.js +99 -0
  22. package/dist/connector-lookup-service-0t7ydz3t.js +20 -0
  23. package/dist/connector-task-shape-bgywpbqc.js +13 -0
  24. package/dist/{de-WLW6KWOJ-2qnsqdtw.js → de-2BEKRUMY-x4dx0nn9.js} +190 -10
  25. package/dist/{de-UZI7FJDO-mwvc4cxe.js → de-AI7ML6JM-km47f8k4.js} +20 -5
  26. package/dist/debug-service-h4jxbn1r.js +56 -0
  27. package/dist/{embedded-file-reader-r66242ey.js → embedded-file-reader-0228j82a.js} +1 -4
  28. package/dist/en-LAVDF7IQ-yzy20n6d.js +254 -0
  29. package/dist/en-X6T4SP2Y-xm47mf18.js +2752 -0
  30. package/dist/{enrichment-service-hv7ff88p.js → enrichment-service-wpprec7k.js} +36 -37
  31. package/dist/{es-5THCNRFN-tqwyrdgy.js → es-7ZTQTGKN-11sj0yjx.js} +190 -10
  32. package/dist/{es-MX-5RELIXKI-9jhqtddc.js → es-MX-7KJZPEQN-1fq0a9jr.js} +20 -5
  33. package/dist/{es-MX-TWZBRAXK-gqd9swzw.js → es-MX-IHGRIEWH-g63p0gb4.js} +191 -11
  34. package/dist/{es-4UBUTCQA-m1ytpyx2.js → es-SPNKTD5Y-vw5cbgv5.js} +20 -5
  35. package/dist/filter-engine-dh9s90gb.js +10 -0
  36. package/dist/first-party-service-ahcc6xc6.js +8 -0
  37. package/dist/{fr-CERONSRC-edpxhbmb.js → fr-7ZDL4MVO-pd27vwh6.js} +191 -11
  38. package/dist/{fr-VBM5WRC2-63z7w4mh.js → fr-AXJGUT53-hdg3pmd4.js} +20 -5
  39. package/dist/index-21kns9qg.js +10 -0
  40. package/dist/{index-fyc0k5dd.js → index-5pzp2qeb.js} +5350 -3271
  41. package/dist/{index-5dxh9z60.js → index-a7y7etmy.js} +6 -5
  42. package/dist/{index-ekwtgx7y.js → index-ec115v05.js} +309 -287
  43. package/dist/{connector-task-spec-jpsjxnas.js → index-n4g6qvab.js} +320 -144
  44. package/dist/index-nj3axvya.js +159 -0
  45. package/dist/{index-h8cph72k.js → index-nzr4mx5p.js} +2 -22
  46. package/dist/index-pg9wmyrf.js +36 -0
  47. package/dist/index-sgpbvm8j.js +26 -0
  48. package/dist/index-t0sz0svn.js +35 -0
  49. package/dist/index-z2qk2qn6.js +24 -0
  50. package/dist/index.js +19 -25
  51. package/dist/index.umd.min-ttg1qc0x.js +7814 -0
  52. package/dist/{init-entry-points-hhpv3e3f.js → init-entry-points-pc128f7z.js} +22 -35
  53. package/dist/input-reader-9ym8mkbc.js +10 -0
  54. package/dist/{ja-43QL7CGO-c3q8gre9.js → ja-C7GZV6YP-hvtbngr5.js} +20 -5
  55. package/dist/{ja-U2MCNHGT-gz0ap1jk.js → ja-LGAM5HKR-sgrtjqjh.js} +190 -10
  56. package/dist/{jmespath-e4a59c8w.js → jmespath-wwym30dp.js} +1 -1
  57. package/dist/{js-yaml-87cdx6bm.js → js-yaml-a2bk27p6.js} +1 -3
  58. package/dist/known-types-gak9by1w.js +11 -0
  59. package/dist/{ko-XAUYQWDR-zp81gjp4.js → ko-7B4SUZB7-c8wr20sc.js} +190 -10
  60. package/dist/{ko-TLL6Z6CD-wrt3n8a9.js → ko-Q24HSSL4-5vn55pte.js} +20 -5
  61. package/dist/localSolutionDiscovery-48d1bnkj.js +15 -0
  62. package/dist/{migration-diagnosis-ns5cw4e3.js → migration-diagnosis-myqqgwj0.js} +1 -4
  63. package/dist/{node-strategy-v442hwgd.js → node-strategy-2mqzg36t.js} +15 -18
  64. package/dist/node-sync-service-tr5m22nb.js +56 -0
  65. package/dist/{out-target-wjgmna0r.js → out-target-eqsttq1k.js} +18 -22
  66. package/dist/{packager-tool-f8vwy92w.js → packager-tool-0te1tyhf.js} +186 -16
  67. package/dist/{packager-tool-ydyvtknp.js → packager-tool-0w4fsdzv.js} +44 -20
  68. package/dist/{packager-tool-8ftat1vn.js → packager-tool-17b466mr.js} +59158 -59666
  69. package/dist/packager-tool-1nfdj0zm.js +425 -0
  70. package/dist/packager-tool-1wgav5ma.js +139 -0
  71. package/dist/{packager-tool-scc247gk.js → packager-tool-32792w66.js} +66 -82
  72. package/dist/{packager-tool-nj4seavy.js → packager-tool-35c9npcy.js} +26 -7
  73. package/dist/{packager-tool-r0x3qh59.js → packager-tool-388vyja1.js} +185 -29
  74. package/dist/packager-tool-3m8482sw.js +78 -0
  75. package/dist/packager-tool-3r23qsca.js +4832 -0
  76. package/dist/packager-tool-4avchhz8.js +539 -0
  77. package/dist/{packager-tool-29br2cdx.js → packager-tool-4wn3b7qp.js} +252 -468
  78. package/dist/{packager-tool-jr8x285x.js → packager-tool-5jt5rc2g.js} +630 -689
  79. package/dist/{packager-tool-9kvkzc05.js → packager-tool-5w0gjcck.js} +4 -4
  80. package/dist/packager-tool-68648y3j.js +6 -0
  81. package/dist/{packager-tool-1yh8g550.js → packager-tool-6an893wm.js} +12 -3
  82. package/dist/{packager-tool-aagnvyba.js → packager-tool-76zhn5pa.js} +131 -432
  83. package/dist/packager-tool-7x1tmb8a.js +46 -0
  84. package/dist/{packager-tool-kyrm4e5m.js → packager-tool-9ar5829n.js} +781 -741
  85. package/dist/{packager-tool-4p11fvf4.js → packager-tool-b2q8m9pq.js} +10 -13
  86. package/dist/packager-tool-bg3tdpva.js +27 -0
  87. package/dist/packager-tool-bpkkg4z2.js +295 -0
  88. package/dist/{packager-tool-yn33pw57.js → packager-tool-dn9d4ywm.js} +246 -225
  89. package/dist/{packager-tool-kdhey8gz.js → packager-tool-e02jkmrq.js} +41 -29
  90. package/dist/{packager-tool-sq931c23.js → packager-tool-e1tx5mqg.js} +1 -1
  91. package/dist/packager-tool-gt3bsmfp.js +1302 -0
  92. package/dist/packager-tool-gy4yjqhf.js +178 -0
  93. package/dist/packager-tool-h2ar8xf8.js +222 -0
  94. package/dist/{packager-tool-v2kcgjbf.js → packager-tool-j6nfje7t.js} +5 -4
  95. package/dist/packager-tool-kz7zz79p.js +71 -0
  96. package/dist/{packager-tool-9e59z4d6.js → packager-tool-me8gd22q.js} +82 -83
  97. package/dist/packager-tool-mk9fmzdy.js +20 -0
  98. package/dist/{packager-tool-gdtpsdn7.js → packager-tool-mm1x18d6.js} +223 -28
  99. package/dist/{packager-tool-xm3gr7d4.js → packager-tool-nd312sma.js} +32 -15
  100. package/dist/{packager-tool-mqy97y5f.js → packager-tool-p5gs9xqy.js} +14 -14
  101. package/dist/{packager-tool-83v804p7.js → packager-tool-psmb758n.js} +3108 -2627
  102. package/dist/packager-tool-q26hncjr.js +13 -0
  103. package/dist/packager-tool-q9fnx278.js +77 -0
  104. package/dist/{packager-tool-ezds6t5e.js → packager-tool-s12s1dp6.js} +11 -11
  105. package/dist/packager-tool-scy94jyb.js +5424 -0
  106. package/dist/{packager-tool-yn7r7zq2.js → packager-tool-snesn0bt.js} +177 -96
  107. package/dist/{packager-tool-d8e2mrkq.js → packager-tool-tgehy324.js} +56 -56
  108. package/dist/{packager-tool-tqn0j6f9.js → packager-tool-v11fx4dk.js} +7 -7
  109. package/dist/{packager-tool-67vy1fz3.js → packager-tool-v6rkp2ay.js} +24 -92
  110. package/dist/{packager-tool-9sd483vs.js → packager-tool-vs7gqa4r.js} +15 -15
  111. package/dist/packager-tool-vyavrbym.js +488 -0
  112. package/dist/{packager-tool-b098y4a2.js → packager-tool-wbksf242.js} +97 -97
  113. package/dist/{packager-tool-g8nkdj5b.js → packager-tool-x1f8ypvs.js} +256 -486
  114. package/dist/{packager-tool-2sn7d8fd.js → packager-tool-x74mmjkw.js} +9 -13
  115. package/dist/{packager-tool-7hw344bt.js → packager-tool-xb16e3tz.js} +5 -5
  116. package/dist/{packager-tool-a17g0pj1.js → packager-tool-xd1wbvay.js} +10 -8
  117. package/dist/{packager-tool-1yfw674x.js → packager-tool-xehhk3c3.js} +10 -5
  118. package/dist/packager-tool-yh8mmj3p.js +123 -0
  119. package/dist/{packager-tool-hdxtgckw.js → packager-tool-z070caqq.js} +56 -12
  120. package/dist/{packager-tool-b250k6w4.js → packager-tool-z1fw9a8v.js} +41 -9
  121. package/dist/{packager-tool-0gctz400.js → packager-tool-z9fmqtm6.js} +4 -4
  122. package/dist/{packager-tool-mzf4gmph.js → packager-tool-zbx189j3.js} +11 -8
  123. package/dist/{packager-tool-zf8f9pmm.js → packager-tool-zrbnms9b.js} +3 -4
  124. package/dist/packager-tool.js +10 -11
  125. package/dist/prepare-uip-ad7mfs8t.js +92 -0
  126. package/dist/{project-artifacts-bgyyb0dm.js → project-artifacts-q0c0zghw.js} +2 -6
  127. package/dist/{pt-BR-USP2T7GD-pedn77m1.js → pt-BR-BIUJXIPU-2sqzhr8y.js} +20 -5
  128. package/dist/{pt-BR-GNQNAAZ2-xadharv4.js → pt-BR-PHLFHMXZ-n6de4s7z.js} +191 -11
  129. package/dist/{pt-RMIAKZB4-67enhx3m.js → pt-MHX6JGAX-xfgvdqwg.js} +20 -5
  130. package/dist/{pt-TO2DARY2-ftcce1bv.js → pt-N7ZTJT4W-d6c67xcn.js} +190 -10
  131. package/dist/{resolved-check-aqw7568y.js → resolved-check-dz8eqrf6.js} +2 -3
  132. package/dist/{resourcesSyncService-k9kw8d9b.js → resourcesSyncService-sgnkcvpt.js} +81 -141
  133. package/dist/{ro-GHOBYW2S-mhnqsgaa.js → ro-3RKJNGJZ-xqj14e3d.js} +20 -5
  134. package/dist/{ro-WUYJV6OW-a8d9qy1n.js → ro-FLNXVYJI-ytrwabg2.js} +190 -10
  135. package/dist/ru-GSCT4ARZ-c2cfq4h1.js +7 -0
  136. package/dist/ru-WBLQ5B2U-bf20yr5y.js +7 -0
  137. package/dist/{rule-group-members-zje7n3kf.js → rule-group-members-p0nv1rmj.js} +1 -3
  138. package/dist/rule-type-declaration-s2nxpcfy.js +77 -0
  139. package/dist/{sdd-convert-service-8jpew7vz.js → sdd-convert-service-ffbx00k6.js} +481 -504
  140. package/dist/{sdd-lookup-fe900sdb.js → sdd-lookup-sah7wj5j.js} +8 -9
  141. package/dist/{sdd-resolve-service-qdtmxw9b.js → sdd-resolve-service-6nt10vhq.js} +28 -20
  142. package/dist/{sdd-resolve-siblings-phvwaj6j.js → sdd-resolve-siblings-5q28qcw8.js} +11 -14
  143. package/dist/solution-auth-a1p22hq1.js +11 -0
  144. package/dist/solution-discovery-r1y550sz.js +33 -0
  145. package/dist/{strict-case-rules-4tjcaznr.js → strict-case-rules-045kbjvv.js} +16 -28
  146. package/dist/{strict-entry-points-g2pd4mf4.js → strict-entry-points-40ha9afz.js} +15 -14
  147. package/dist/strict-sdd-audit-bp7fq2tg.js +26 -0
  148. package/dist/{task-selector-8bjn35dv.js → task-selector-jt60hdbt.js} +1 -3
  149. package/dist/{task-type-declaration-7a8fqdvs.js → task-type-declaration-yhczvj05.js} +9 -9
  150. package/dist/tool.js +18 -24
  151. package/dist/{tr-M3F5A6AU-bb0tg39m.js → tr-7AIZZWZ6-pdzp9n0p.js} +190 -10
  152. package/dist/{tr-GDTLECMM-k5fhmq13.js → tr-PQLUUHPC-qsb7btxn.js} +20 -5
  153. package/dist/{trigger-enrichment-service-82kcr49v.js → trigger-enrichment-service-r4gmxvka.js} +53 -57
  154. package/dist/trigger-entry-point-id-751v48qd.js +14 -0
  155. package/dist/{zh-CN-C5G4PC7C-ds9gkptg.js → zh-CN-CN2ARPFS-e0p2qrxf.js} +190 -10
  156. package/dist/{zh-CN-I5D7WHBD-sr5h0a98.js → zh-CN-OHNTHZRI-b0hjkfqn.js} +20 -5
  157. package/dist/{zh-TW-62HZIG6O-787kdwex.js → zh-TW-7RUFEVFK-qd7myw31.js} +190 -10
  158. package/dist/{zh-TW-2AVLM723-288pkc1z.js → zh-TW-E4D3Y6ZR-tn3bmzz5.js} +20 -5
  159. package/package.json +2 -2
  160. package/dist/canvas-notes-86fxx1t8.js +0 -19
  161. package/dist/case-event-trigger-bindings-g9ftnm4x.js +0 -16
  162. package/dist/case-schema-version-h820ne16.js +0 -20
  163. package/dist/case-shape-reader-dsbraetf.js +0 -13
  164. package/dist/connector-enrichment-service-95bqb0tb.js +0 -65
  165. package/dist/connector-lookup-service-3qx1qwrx.js +0 -22
  166. package/dist/connector-task-shape-mpazkf7s.js +0 -14
  167. package/dist/debug-service-7q98j726.js +0 -59
  168. package/dist/en-EJCBA3LK-dtpdghgj.js +0 -146
  169. package/dist/en-M7GQYBV2-5nfmpnfz.js +0 -2018
  170. package/dist/filter-engine-7ep90g7f.js +0 -11
  171. package/dist/first-party-service-srxaftkn.js +0 -27
  172. package/dist/index-04w3bbe8.js +0 -666
  173. package/dist/index-kmp9fmhb.js +0 -25
  174. package/dist/index-m93xazb6.js +0 -282
  175. package/dist/index-n9qvnx4x.js +0 -29
  176. package/dist/index-ngs0a2he.js +0 -15
  177. package/dist/index-xq6ajhgq.js +0 -157
  178. package/dist/index.umd.min-fqefd9kn.js +0 -7814
  179. package/dist/input-reader-c7wz8ra2.js +0 -11
  180. package/dist/known-types-5b6yrsqn.js +0 -16
  181. package/dist/localSolutionDiscovery-yyx234ak.js +0 -13
  182. package/dist/node-sync-service-ewkg1pgk.js +0 -57
  183. package/dist/packager-tool-0fsh78kt.js +0 -5365
  184. package/dist/packager-tool-53w8skv5.js +0 -262
  185. package/dist/packager-tool-6z1hsm2h.js +0 -143
  186. package/dist/packager-tool-8y4pceec.js +0 -13189
  187. package/dist/packager-tool-93mdeqay.js +0 -18
  188. package/dist/packager-tool-9kf3fqtr.js +0 -23
  189. package/dist/packager-tool-bfgdz1zh.js +0 -73
  190. package/dist/packager-tool-e15kqpyh.js +0 -266
  191. package/dist/packager-tool-jysvpt8p.js +0 -11
  192. package/dist/packager-tool-pcvhcn2k.js +0 -2019
  193. package/dist/packager-tool-rk25wp3c.js +0 -28
  194. package/dist/packager-tool-sc961w0q.js +0 -16
  195. package/dist/packager-tool-wekqkmgn.js +0 -265
  196. package/dist/packager-tool-yc4kw997.js +0 -13
  197. package/dist/ru-GSCT4ARZ-1sa9wbr8.js +0 -10
  198. package/dist/ru-WBLQ5B2U-s4em88p0.js +0 -10
  199. package/dist/solution-auth-30yycqtv.js +0 -14
  200. package/dist/solution-discovery-e9mamp6w.js +0 -38
  201. package/dist/strict-sdd-audit-q7tb9yj7.js +0 -25
  202. package/dist/trigger-entry-point-id-yhqwnkx9.js +0 -15
  203. /package/dist/{packager-tool-5qp9xza1.js → packager-tool-1c30ttpm.js} +0 -0
  204. /package/dist/{packager-tool-mknccck5.js → packager-tool-1h7abxw6.js} +0 -0
  205. /package/dist/{packager-tool-9y1w2wds.js → packager-tool-fcektt1g.js} +0 -0
  206. /package/dist/{packager-tool-k6jbedyc.js → packager-tool-hcdnc420.js} +0 -0
  207. /package/dist/{packager-tool-7nxppa3d.js → packager-tool-jv5byaww.js} +0 -0
  208. /package/dist/{packager-tool-qa9gftnj.js → packager-tool-mxgybnmt.js} +0 -0
  209. /package/dist/{packager-tool-87y6xw3a.js → packager-tool-nfhtwa72.js} +0 -0
  210. /package/dist/{packager-tool-cv05dwac.js → packager-tool-p0rdmmvk.js} +0 -0
  211. /package/dist/{packager-tool-21qfsbxn.js → packager-tool-yaertxsw.js} +0 -0
@@ -1,63 +1,128 @@
1
1
  import {
2
- ACTIVITY_TYPE_ID_PATH,
3
- activityTypeIdMessage,
4
- contextEntries,
5
- contextEntry,
6
- missingContextKeys,
7
- readActivityTypeId
8
- } from "./packager-tool-cv05dwac.js";
2
+ getFileSystem2
3
+ } from "./packager-tool-z070caqq.js";
9
4
  import {
10
- canonicalVariableType,
11
- gateKey
12
- } from "./packager-tool-k6jbedyc.js";
5
+ catchError2,
6
+ logger
7
+ } from "./packager-tool-psmb758n.js";
13
8
  import {
9
+ stripJsonStringGuard
10
+ } from "./packager-tool-h2ar8xf8.js";
11
+ import {
12
+ EXTERNAL_TASK_TYPES,
14
13
  CONTAINER_INPUT_TASK_TYPES,
15
14
  HTTP_REQUEST_REPAIR,
16
- SERVICE_TYPE_BY_TASK
17
- } from "./packager-tool-93mdeqay.js";
15
+ CONNECTOR_CALL_TASK_TYPES,
16
+ serviceTypesFor,
17
+ isMappedExecution,
18
+ serviceTypeFor
19
+ } from "./packager-tool-7x1tmb8a.js";
18
20
  import {
19
- BINDING_REFERENCE_PREFIX,
20
- NAME_BOUND_TASK_TYPES,
21
- RESOLVED_IDENTITY_KEYS
22
- } from "./packager-tool-87y6xw3a.js";
21
+ RESULT_OUTPUT_NAME,
22
+ RESULT_OUTPUT_SOURCE
23
+ } from "./packager-tool-0w4fsdzv.js";
23
24
  import {
24
- readRegistryLedger
25
- } from "./packager-tool-b250k6w4.js";
25
+ contextEntries,
26
+ contextEntry,
27
+ missingContextKeys,
28
+ readActivityTypeId,
29
+ ACTIVITY_TYPE_ID_PATH,
30
+ activityTypeIdMessage
31
+ } from "./packager-tool-p0rdmmvk.js";
26
32
  import {
27
33
  validateIntSvcNode
28
- } from "./packager-tool-29br2cdx.js";
34
+ } from "./packager-tool-4wn3b7qp.js";
35
+ import"./packager-tool-q26hncjr.js";
36
+ import"./packager-tool-dn9d4ywm.js";
29
37
  import {
30
- MIN_SUPPORTED_MAJOR,
31
- compareCaseSchemaVersions,
32
- isNewerCaseSchemaPatch,
33
- parseCaseSchemaVersion,
34
- resolveCaseSchemaVersion
35
- } from "./packager-tool-mqy97y5f.js";
38
+ gateKey,
39
+ canonicalVariableType
40
+ } from "./packager-tool-hcdnc420.js";
36
41
  import {
37
- VALID_CASE_COMPLETION_RULE_TYPES,
38
- VALID_CASE_EXIT_RULE_TYPES,
39
- VALID_STAGE_COMPLETION_RULE_TYPES,
40
- VALID_STAGE_ENTRY_RULE_TYPES,
41
- VALID_STAGE_EXIT_RULE_TYPES,
42
- VALID_TASK_ENTRY_RULE_TYPES
43
- } from "./packager-tool-nj4seavy.js";
42
+ MIN_SUPPORTED_MAJOR2,
43
+ resolveCaseSchemaVersion2,
44
+ parseCaseSchemaVersion2,
45
+ compareCaseSchemaVersions2,
46
+ isNewerCaseSchemaPatch2
47
+ } from "./packager-tool-p5gs9xqy.js";
44
48
  import {
45
- loadCaseSchemaAsync
46
- } from "./packager-tool-zf8f9pmm.js";
47
- import"./packager-tool-yn33pw57.js";
48
- import"./packager-tool-0gctz400.js";
49
- import"./packager-tool-qa9gftnj.js";
50
- import"./packager-tool-yc4kw997.js";
49
+ NAME_BOUND_TASK_TYPES,
50
+ RESOLVED_IDENTITY_KEYS,
51
+ BINDING_REFERENCE_PREFIX
52
+ } from "./packager-tool-nfhtwa72.js";
51
53
  import {
52
- catchError,
53
- logger
54
- } from "./packager-tool-83v804p7.js";
54
+ readRegistryLedger
55
+ } from "./packager-tool-z1fw9a8v.js";
55
56
  import {
56
- getFileSystem
57
- } from "./packager-tool-hdxtgckw.js";
57
+ VALID_TASK_ENTRY_RULE_TYPES,
58
+ VALID_STAGE_ENTRY_RULE_TYPES,
59
+ VALID_STAGE_COMPLETION_RULE_TYPES,
60
+ VALID_STAGE_EXIT_RULE_TYPES,
61
+ VALID_CASE_COMPLETION_RULE_TYPES,
62
+ VALID_CASE_EXIT_RULE_TYPES
63
+ } from "./packager-tool-35c9npcy.js";
58
64
  import {
59
- __require
60
- } from "./packager-tool-1yh8g550.js";
65
+ loadCaseSchemaAsync
66
+ } from "./packager-tool-zrbnms9b.js";
67
+ import"./packager-tool-68648y3j.js";
68
+
69
+ // src/services/case-validators/business-rule-output-validator.ts
70
+ var asRecord = (value) => typeof value === "object" && value !== null && !Array.isArray(value) ? value : undefined;
71
+ var OUTPUT_READ = `=${RESULT_OUTPUT_NAME}`;
72
+ var knownDecisions = (outputs) => {
73
+ for (const entry of outputs) {
74
+ const row = asRecord(entry);
75
+ if (row?.source !== RESULT_OUTPUT_SOURCE)
76
+ continue;
77
+ const schema = asRecord(row.body ?? row._jsonSchema);
78
+ const properties = asRecord(schema?.properties);
79
+ if (properties) {
80
+ const names = Object.keys(properties);
81
+ if (names.length > 0)
82
+ return new Set(names);
83
+ }
84
+ }
85
+ return;
86
+ };
87
+ var correctedSource = (source) => {
88
+ if (source === OUTPUT_READ)
89
+ return RESULT_OUTPUT_SOURCE;
90
+ if (source.startsWith(`${OUTPUT_READ}.`)) {
91
+ return `=${source.slice(OUTPUT_READ.length + 1)}`;
92
+ }
93
+ return;
94
+ };
95
+ var businessRuleOutputSourceValidator = {
96
+ id: "uipath-business-rule-output-source",
97
+ appliesTo: (task) => task.type === "business-rule",
98
+ validate: (task, ctx) => {
99
+ const data = asRecord(task.data);
100
+ const outputs = Array.isArray(data?.outputs) ? data.outputs : [];
101
+ const decisions = knownDecisions(outputs);
102
+ if (decisions === undefined || decisions.has(RESULT_OUTPUT_NAME)) {
103
+ return [];
104
+ }
105
+ const name = task.displayName ?? task.id ?? "task";
106
+ const issues = [];
107
+ for (const entry of outputs) {
108
+ const row = asRecord(entry);
109
+ const source = row?.source;
110
+ if (typeof source !== "string")
111
+ continue;
112
+ const fix = correctedSource(source);
113
+ if (fix === undefined)
114
+ continue;
115
+ const label = String(row?.name ?? row?.id ?? "?");
116
+ issues.push({
117
+ code: "CASE_MGMT_BUSINESS_RULE_OUTPUT_SOURCE",
118
+ path: `nodes[${ctx.stageId}].data.tasks[${task.id ?? "?"}].data.outputs[${label}].source`,
119
+ message: `Business rule task "${name}" output "${label}" reads "${source}", but the rule's result is keyed by decision and has no "${RESULT_OUTPUT_NAME}" field, so the variable stays empty. Use "${fix}" instead.`,
120
+ severity: "error"
121
+ });
122
+ }
123
+ return issues;
124
+ }
125
+ };
61
126
 
62
127
  // src/services/case-validators/connector-activity-validator.ts
63
128
  var ACTIVITY_CONTEXT_KEYS = ["metadata", "objectName"];
@@ -82,13 +147,9 @@ var connectorActivityValidator = {
82
147
  };
83
148
 
84
149
  // src/services/case-validators/connector-validator.ts
85
- var CONNECTOR_TASK_TYPES = new Set([
86
- "execute-connector-activity",
87
- "wait-for-connector"
88
- ]);
89
150
  var connectorTaskValidator = {
90
151
  id: "uipath-connector",
91
- appliesTo: (task) => CONNECTOR_TASK_TYPES.has(task.type),
152
+ appliesTo: (task) => CONNECTOR_CALL_TASK_TYPES.has(task.type ?? ""),
92
153
  validate: (task, ctx) => {
93
154
  const data = task.data;
94
155
  if (!data)
@@ -218,8 +279,8 @@ function validateCeqlFilterShape(taskId, stageId, inputs, configurationStr) {
218
279
  return issues;
219
280
  }
220
281
  function readSavedFilterTrees(configurationStr) {
221
- const jsonStr = configurationStr.replace(/^=jsonString:/, "");
222
- const [, parsed] = catchError(() => JSON.parse(jsonStr));
282
+ const jsonStr = stripJsonStringGuard(configurationStr);
283
+ const [, parsed] = catchError2(() => JSON.parse(jsonStr));
223
284
  if (!parsed)
224
285
  return;
225
286
  const ec = parsed.essentialConfiguration;
@@ -324,7 +385,7 @@ var timerTaskValidator = {
324
385
  };
325
386
  // src/services/case-validators/strict-task-validators.ts
326
387
  var TRIGGER_TASK_TYPES = new Set(["wait-for-connector"]);
327
- var asRecord = (value) => typeof value === "object" && value !== null && !Array.isArray(value) ? value : undefined;
388
+ var asRecord2 = (value) => typeof value === "object" && value !== null && !Array.isArray(value) ? value : undefined;
328
389
  var asArray = (value) => Array.isArray(value) ? value : [];
329
390
  var VARS_READS = [
330
391
  /\bvars\.([A-Za-z_$][A-Za-z0-9_$]*)/g,
@@ -339,9 +400,27 @@ var readsIdentifier = (expression, name) => {
339
400
  }
340
401
  return false;
341
402
  };
342
- var taskData = (task) => asRecord(task.data);
403
+ var taskData = (task) => asRecord2(task.data);
343
404
  var taskLabel = (task) => task.displayName ?? task.id ?? "task";
344
405
  var taskPath = (stageId, task) => `nodes[${stageId}].data.tasks[${task.id ?? "?"}]`;
406
+ var serviceTypeMismatch = (task, stageId, context) => {
407
+ const executionValue = contextEntry(context, "executionType")?.value;
408
+ const executionType = typeof executionValue === "string" ? executionValue : undefined;
409
+ const expected = EXTERNAL_TASK_TYPES.has(task.type ?? "") && isMappedExecution(executionType) ? [serviceTypeFor(task.type ?? "", executionType)] : serviceTypesFor(task.type ?? "");
410
+ const rawServiceType = taskData(task)?.serviceType;
411
+ const serviceType = typeof rawServiceType === "string" ? rawServiceType : undefined;
412
+ if (expected.length === 0 || serviceType !== undefined && expected.includes(serviceType)) {
413
+ return;
414
+ }
415
+ const declares = serviceType === undefined ? "declares no serviceType" : `declares serviceType "${serviceType}"`;
416
+ const allowed = expected.map((type) => `"${type}"`).join(" or ") + (expected.length === 1 && executionType !== undefined ? ` (its executionType is "${executionType}")` : "");
417
+ return {
418
+ code: "STRICT_CONNECTOR_SERVICE_TYPE",
419
+ path: `${taskPath(stageId, task)}.data.serviceType`,
420
+ severity: "error",
421
+ message: `Connector task "${taskLabel(task)}" ${declares}; a "${task.type}" task must declare ${allowed}.`
422
+ };
423
+ };
345
424
  var strictConnectorContextValidator = {
346
425
  id: "strict-connector-context",
347
426
  appliesTo: (task) => CONTAINER_INPUT_TASK_TYPES.has(task.type ?? "") && Object.keys(taskData(task) ?? {}).length > 0,
@@ -369,26 +448,10 @@ var strictConnectorContextValidator = {
369
448
  });
370
449
  }
371
450
  }
372
- const expectedServiceType = SERVICE_TYPE_BY_TASK[task.type ?? ""];
373
- const serviceType = taskData(task)?.serviceType;
374
- if (expectedServiceType !== undefined && serviceType !== undefined) {
375
- if (serviceType !== expectedServiceType) {
376
- issues.push({
377
- code: "STRICT_CONNECTOR_SERVICE_TYPE",
378
- path: `${taskPath(ctx.stageId, task)}.data.serviceType`,
379
- severity: "error",
380
- message: `Connector task "${taskLabel(task)}" declares ` + `serviceType "${String(serviceType)}"; a ` + `"${task.type}" task must declare ` + `"${expectedServiceType}".`
381
- });
382
- }
383
- } else if (expectedServiceType !== undefined) {
384
- issues.push({
385
- code: "STRICT_CONNECTOR_SERVICE_TYPE",
386
- path: `${taskPath(ctx.stageId, task)}.data.serviceType`,
387
- severity: "error",
388
- message: `Connector task "${taskLabel(task)}" declares no ` + `serviceType; a "${task.type}" task must declare ` + `"${expectedServiceType}".`
389
- });
390
- }
391
- const bodyInput = TRIGGER_TASK_TYPES.has(task.type ?? "") ? undefined : asArray(taskData(task)?.inputs).map((entry) => asRecord(entry)).find((entry) => entry?.name === "body");
451
+ const serviceTypeIssue = serviceTypeMismatch(task, ctx.stageId, context);
452
+ if (serviceTypeIssue !== undefined)
453
+ issues.push(serviceTypeIssue);
454
+ const bodyInput = TRIGGER_TASK_TYPES.has(task.type ?? "") ? undefined : asArray(taskData(task)?.inputs).map((entry) => asRecord2(entry)).find((entry) => entry?.name === "body");
392
455
  if (bodyInput !== undefined && !bodyInput.target) {
393
456
  issues.push({
394
457
  code: "STRICT_CONNECTOR_BODY_TARGET",
@@ -449,12 +512,12 @@ var strictOutputShapeValidator = {
449
512
  const base = `${taskPath(ctx.stageId, task)}.data.outputs`;
450
513
  const writtenAt = new Map;
451
514
  asArray(taskData(task)?.outputs).forEach((entry, index) => {
452
- const name = asRecord(entry)?.var;
515
+ const name = asRecord2(entry)?.var;
453
516
  if (typeof name === "string" && name !== "" && !writtenAt.has(name))
454
517
  writtenAt.set(name, index);
455
518
  });
456
519
  asArray(taskData(task)?.outputs).forEach((entry, index) => {
457
- const output = asRecord(entry);
520
+ const output = asRecord2(entry);
458
521
  if (!output)
459
522
  return;
460
523
  const label = typeof output.name === "string" ? output.name : `#${index}`;
@@ -495,7 +558,7 @@ var strictInputReferenceValidator = {
495
558
  const issues = [];
496
559
  const base = `${taskPath(ctx.stageId, task)}.data.inputs`;
497
560
  asArray(taskData(task)?.inputs).forEach((entry, index) => {
498
- const input = asRecord(entry);
561
+ const input = asRecord2(entry);
499
562
  if (!input)
500
563
  return;
501
564
  const label = typeof input.name === "string" ? input.name : `#${index}`;
@@ -579,7 +642,8 @@ var defaultTaskValidators = [
579
642
  connectorActivityValidator,
580
643
  timerTaskValidator,
581
644
  taskElementIdValidator,
582
- unconfiguredTaskValidator
645
+ unconfiguredTaskValidator,
646
+ businessRuleOutputSourceValidator
583
647
  ];
584
648
 
585
649
  // src/services/registry-ledger-lookup.ts
@@ -594,10 +658,10 @@ var findRegistryLedger = async (fs, casePlanPath) => {
594
658
  for (const candidate of candidates) {
595
659
  if (!await fs.exists(candidate))
596
660
  continue;
597
- const [readError, text] = await catchError(fs.readFile(candidate, "utf-8"));
661
+ const [readError, text] = await catchError2(fs.readFile(candidate, "utf-8"));
598
662
  if (readError || text === undefined || text === null)
599
663
  continue;
600
- const [parseError, document] = await catchError(Promise.resolve().then(() => JSON.parse(text)));
664
+ const [parseError, document] = await catchError2(Promise.resolve().then(() => JSON.parse(text)));
601
665
  if (parseError) {
602
666
  logger.warn(`Ignored ${candidate}: not JSON, so a placeholder it might justify still reports as unresolved work.`);
603
667
  continue;
@@ -615,9 +679,9 @@ var findRegistryLedger = async (fs, casePlanPath) => {
615
679
 
616
680
  // src/services/variable-type-findings.ts
617
681
  var GROUPS = ["inputs", "outputs", "inputOutputs"];
618
- var asRecord2 = (value) => typeof value === "object" && value !== null && !Array.isArray(value) ? value : undefined;
682
+ var asRecord3 = (value) => typeof value === "object" && value !== null && !Array.isArray(value) ? value : undefined;
619
683
  var variableTypeFindings = (parsed) => {
620
- const variables = asRecord2(parsed.variables);
684
+ const variables = asRecord3(parsed.variables);
621
685
  if (variables === undefined)
622
686
  return [];
623
687
  const issues = [];
@@ -626,7 +690,7 @@ var variableTypeFindings = (parsed) => {
626
690
  if (!Array.isArray(entries))
627
691
  continue;
628
692
  for (const [at, raw] of entries.entries()) {
629
- const entry = asRecord2(raw);
693
+ const entry = asRecord3(raw);
630
694
  const type = entry?.type;
631
695
  if (typeof type !== "string")
632
696
  continue;
@@ -671,7 +735,7 @@ var SKELETON_V2_SKIPPED_CANVAS_CODES = new Set([
671
735
  "CASE_MGMT_ROOT_CASE_CONDITION_RULE_SELECTED_TASK_MISSING",
672
736
  "CASE_MGMT_ROOT_CASE_CONDITION_RULE_NO_REQUIRED_TASK"
673
737
  ]);
674
- var isTaskScopedCanvasIssue = (issue2) => SKELETON_V2_SKIPPED_CANVAS_CODES.has(issue2.code) || issue2.additionalErrorInfo?.taskId !== undefined;
738
+ var isTaskScopedCanvasIssue = (issue) => SKELETON_V2_SKIPPED_CANVAS_CODES.has(issue.code) || issue.additionalErrorInfo?.taskId !== undefined;
675
739
  function findLegacySpellings(parsed, profile) {
676
740
  const issues = [];
677
741
  if (parsed === null || typeof parsed !== "object" || Array.isArray(parsed)) {
@@ -748,7 +812,7 @@ var findXrefMarkers = (document) => {
748
812
  return found;
749
813
  };
750
814
  var TASK_SLOTS = ["inputs", "outputs"];
751
- var parsesAsJsonValue = (text) => catchError(() => JSON.parse(text))[0] === undefined;
815
+ var parsesAsJsonValue = (text) => catchError2(() => JSON.parse(text))[0] === undefined;
752
816
  function* taskSlotEntries(nodes, slots = TASK_SLOTS) {
753
817
  for (const node of nodes) {
754
818
  const nodeId = typeof node.id === "string" ? node.id : "?";
@@ -759,9 +823,9 @@ function* taskSlotEntries(nodes, slots = TASK_SLOTS) {
759
823
  if (taskRecord === undefined)
760
824
  continue;
761
825
  const taskId = typeof taskRecord.id === "string" ? taskRecord.id : "?";
762
- const taskData2 = asRecordValue(taskRecord.data);
826
+ const taskData = asRecordValue(taskRecord.data);
763
827
  for (const slot of slots) {
764
- for (const [index, value] of asArrayValue(taskData2?.[slot]).entries()) {
828
+ for (const [index, value] of asArrayValue(taskData?.[slot]).entries()) {
765
829
  const entry = asRecordValue(value);
766
830
  const name = typeof entry?.name === "string" ? entry.name : `#${index}`;
767
831
  yield {
@@ -806,10 +870,6 @@ var findUnparseableJsonValues = (nodes) => {
806
870
  }
807
871
  return found;
808
872
  };
809
- var CONNECTOR_TASK_TYPES2 = new Set([
810
- "execute-connector-activity",
811
- "wait-for-connector"
812
- ]);
813
873
  var CONNECTOR_INPUT_ENVELOPE = new Set([
814
874
  "pathParameters",
815
875
  "queryParameters",
@@ -839,7 +899,7 @@ var findConnectorInputDefects = (nodes) => {
839
899
  "inputs"
840
900
  ])) {
841
901
  const type = task.type;
842
- if (typeof type !== "string" || !CONNECTOR_TASK_TYPES2.has(type)) {
902
+ if (typeof type !== "string" || !CONNECTOR_CALL_TASK_TYPES.has(type)) {
843
903
  continue;
844
904
  }
845
905
  if (typeof input?.name !== "string" || input.name === "")
@@ -1186,9 +1246,9 @@ var collectReferenceableIds = (document) => {
1186
1246
  for (const entry of asArrayValue(record[key])) {
1187
1247
  const slot = asRecordValue(entry);
1188
1248
  for (const attribute of ["id", "name", "var"]) {
1189
- const value2 = slot?.[attribute];
1190
- if (typeof value2 === "string" && value2 !== "") {
1191
- ids.add(value2);
1249
+ const value = slot?.[attribute];
1250
+ if (typeof value === "string" && value !== "") {
1251
+ ids.add(value);
1192
1252
  }
1193
1253
  }
1194
1254
  }
@@ -1275,13 +1335,13 @@ var findSchemaTypeMismatches = (parsed, migrationError) => {
1275
1335
  const opens = migrationError.indexOf("[");
1276
1336
  if (opens === -1)
1277
1337
  return [];
1278
- const [, frames] = catchError(() => JSON.parse(migrationError.slice(opens)));
1338
+ const [, frames] = catchError2(() => JSON.parse(migrationError.slice(opens)));
1279
1339
  const found = [];
1280
1340
  for (const frame of asArrayValue(frames)) {
1281
- const issue2 = asRecordValue(frame);
1282
- if (issue2?.code !== "invalid_type")
1341
+ const issue = asRecordValue(frame);
1342
+ if (issue?.code !== "invalid_type")
1283
1343
  continue;
1284
- const segments = asArrayValue(issue2.path);
1344
+ const segments = asArrayValue(issue.path);
1285
1345
  const field = segments.at(-1);
1286
1346
  if (typeof field !== "string")
1287
1347
  continue;
@@ -1305,8 +1365,8 @@ var findSchemaTypeMismatches = (parsed, migrationError) => {
1305
1365
  parts.push(String(segment));
1306
1366
  }
1307
1367
  const withArticle = (noun) => /^[aeiou]/i.test(noun) ? `an ${noun}` : `a ${noun}`;
1308
- const expected = withArticle(typeof issue2.expected === "string" ? issue2.expected : "another type");
1309
- const received = typeof issue2.message === "string" && issue2.message.includes("received ") ? issue2.message.slice(issue2.message.indexOf("received ") + 9) : "something else";
1368
+ const expected = withArticle(typeof issue.expected === "string" ? issue.expected : "another type");
1369
+ const received = typeof issue.message === "string" && issue.message.includes("received ") ? issue.message.slice(issue.message.indexOf("received ") + 9) : "something else";
1310
1370
  const where = task !== undefined ? ` on task "${labelOf(task, "?")}"` : node !== undefined ? ` on "${labelOf(node, "?")}"` : "";
1311
1371
  found.push({
1312
1372
  path: parts.join("."),
@@ -1328,16 +1388,16 @@ var findConnectorTasksWithoutInputs = (nodes, bindings) => {
1328
1388
  return found;
1329
1389
  const record = asRecordValue(task);
1330
1390
  const type = record?.type;
1331
- const taskData2 = asRecordValue(record?.data);
1332
- if (typeof type !== "string" || !CONTAINER_INPUT_TASK_TYPES.has(type) || taskData2 === undefined) {
1391
+ const taskData = asRecordValue(record?.data);
1392
+ if (typeof type !== "string" || !CONTAINER_INPUT_TASK_TYPES.has(type) || taskData === undefined) {
1333
1393
  continue;
1334
1394
  }
1335
- const context = taskData2.context;
1395
+ const context = taskData.context;
1336
1396
  if (contextEntries(context).length === 0)
1337
1397
  continue;
1338
1398
  if (missingContextKeys(context, type === "wait-for-connector", bindings).length > 0)
1339
1399
  continue;
1340
- const inputs = taskData2.inputs;
1400
+ const inputs = taskData.inputs;
1341
1401
  if (inputs !== undefined && !Array.isArray(inputs))
1342
1402
  continue;
1343
1403
  if (Array.isArray(inputs) && inputs.length > 0)
@@ -1448,14 +1508,14 @@ var findLiteralResourceBindings = (nodes) => {
1448
1508
  return found;
1449
1509
  const record = asRecordValue(task);
1450
1510
  const type = record?.type;
1451
- const taskData2 = asRecordValue(record?.data);
1452
- if (typeof type !== "string" || !NAME_BOUND_TASK_TYPES.has(type) || taskData2 === undefined) {
1511
+ const taskData = asRecordValue(record?.data);
1512
+ if (typeof type !== "string" || !NAME_BOUND_TASK_TYPES.has(type) || taskData === undefined) {
1453
1513
  continue;
1454
1514
  }
1455
- if (RESOLVED_IDENTITY_KEYS.some((k) => (k in taskData2)))
1515
+ if (RESOLVED_IDENTITY_KEYS.some((k) => (k in taskData)))
1456
1516
  continue;
1457
1517
  const fields = ["name", "folderPath"].filter((field) => {
1458
- const value = taskData2[field];
1518
+ const value = taskData[field];
1459
1519
  return typeof value === "string" && value !== "" && !value.startsWith(BINDING_REFERENCE_PREFIX);
1460
1520
  });
1461
1521
  if (fields.length === 0)
@@ -1581,13 +1641,13 @@ var findDuplicateOutputNames = (parsed) => {
1581
1641
  if (found.length >= AUTHORING_MARKER_LIMIT)
1582
1642
  return found;
1583
1643
  const taskRecord = asRecordValue(task);
1584
- const taskData2 = asRecordValue(taskRecord?.data);
1585
- if (taskRecord === undefined || taskData2 === undefined) {
1644
+ const taskData = asRecordValue(taskRecord?.data);
1645
+ if (taskRecord === undefined || taskData === undefined) {
1586
1646
  continue;
1587
1647
  }
1588
1648
  const label = labelOf(taskRecord, "?");
1589
1649
  const seen = new Map;
1590
- for (const output of asArrayValue(taskData2.outputs)) {
1650
+ for (const output of asArrayValue(taskData.outputs)) {
1591
1651
  const name = asRecordValue(output)?.name;
1592
1652
  if (typeof name !== "string" || name === "")
1593
1653
  continue;
@@ -1622,12 +1682,12 @@ var findDuplicateOutputIds = (parsed) => {
1622
1682
  if (found.length >= AUTHORING_MARKER_LIMIT)
1623
1683
  return found;
1624
1684
  const taskRecord = asRecordValue(task);
1625
- const taskData2 = asRecordValue(taskRecord?.data);
1626
- if (taskRecord === undefined || taskData2 === undefined) {
1685
+ const taskData = asRecordValue(taskRecord?.data);
1686
+ if (taskRecord === undefined || taskData === undefined) {
1627
1687
  continue;
1628
1688
  }
1629
1689
  const name = labelOf(taskRecord, "?");
1630
- for (const output of asArrayValue(taskData2.outputs)) {
1690
+ for (const output of asArrayValue(taskData.outputs)) {
1631
1691
  const id = asRecordValue(output)?.id;
1632
1692
  if (typeof id !== "string" || id === "")
1633
1693
  continue;
@@ -1700,6 +1760,7 @@ var CONNECTOR_BINDING_ATTRIBUTES = new Set([
1700
1760
  "connection"
1701
1761
  ]);
1702
1762
  var CONNECTOR_BINDING_RESOURCES = new Set(["connection", "folder"]);
1763
+ var NAME_ONLY_BINDING_RESOURCES = new Set(["ixpdeployment"]);
1703
1764
  var storedPickerFolderSlots = (parsed) => {
1704
1765
  const slots = new Map;
1705
1766
  const visit = (node) => {
@@ -1730,6 +1791,7 @@ var storedPickerFolderSlots = (parsed) => {
1730
1791
  var findIncompleteBindingPairs = (parsed) => {
1731
1792
  const pickerFolderSlots = storedPickerFolderSlots(parsed);
1732
1793
  const attributes = new Map;
1794
+ const nameOnly = new Set;
1733
1795
  for (const entry of asArrayValue(parsed.bindings)) {
1734
1796
  const binding = asRecordValue(entry);
1735
1797
  const key = binding?.resourceKey;
@@ -1749,6 +1811,8 @@ var findIncompleteBindingPairs = (parsed) => {
1749
1811
  const seen = attributes.get(key) ?? new Set;
1750
1812
  seen.add(attribute);
1751
1813
  attributes.set(key, seen);
1814
+ if (typeof resource === "string" && NAME_ONLY_BINDING_RESOURCES.has(resource.toLowerCase()))
1815
+ nameOnly.add(key);
1752
1816
  }
1753
1817
  const found = [];
1754
1818
  for (const [key, seen] of attributes) {
@@ -1756,7 +1820,7 @@ var findIncompleteBindingPairs = (parsed) => {
1756
1820
  return found;
1757
1821
  const hasName = seen.has("name");
1758
1822
  const folderSlot = pickerFolderSlots.get(key.toLowerCase());
1759
- const hasFolder = folderSlot === undefined ? seen.has("folderPath") : !folderSlot || seen.has("folderKey");
1823
+ const hasFolder = nameOnly.has(key) || (folderSlot === undefined ? seen.has("folderPath") : !folderSlot || seen.has("folderKey"));
1760
1824
  if (hasName && hasFolder)
1761
1825
  continue;
1762
1826
  const folderAttribute = folderSlot === undefined ? "folderPath" : "folderKey";
@@ -1780,8 +1844,8 @@ var findRecipientShapeDefects = (nodes) => {
1780
1844
  if (found.length >= AUTHORING_MARKER_LIMIT)
1781
1845
  return found;
1782
1846
  const record = asRecordValue(task);
1783
- const taskData2 = asRecordValue(record?.data);
1784
- const recipient = taskData2?.recipient;
1847
+ const taskData = asRecordValue(record?.data);
1848
+ const recipient = taskData?.recipient;
1785
1849
  if (recipient === undefined || recipient === null)
1786
1850
  continue;
1787
1851
  if (asRecordValue(recipient) !== undefined)
@@ -1896,7 +1960,7 @@ class CaseValidateService {
1896
1960
  fs;
1897
1961
  taskValidators;
1898
1962
  constructor(options = {}) {
1899
- this.fs = getFileSystem();
1963
+ this.fs = getFileSystem2();
1900
1964
  this.taskValidators = [
1901
1965
  ...defaultTaskValidators,
1902
1966
  ...options.extraTaskValidators ?? []
@@ -1933,20 +1997,20 @@ class CaseValidateService {
1933
1997
  message: `This ${slot === "inputs" ? "input" : "output"} value ` + `starts with the SDD's planning notation ("<-" or "->"), ` + "which describes where a value comes from rather than " + "being a value. Replace it with the expression it " + 'describes — an "=vars.<id>" reference, an "=bindings.<id>" ' + "reference, or a literal."
1934
1998
  });
1935
1999
  }
1936
- for (const { path, name: name2 } of taskContent ? findUnparseableJsonValues(nodes) : []) {
2000
+ for (const { path, name } of taskContent ? findUnparseableJsonValues(nodes) : []) {
1937
2001
  issues.push({
1938
2002
  code: "CASE_MGMT_VALUE_JSON_INVALID",
1939
2003
  path,
1940
2004
  severity: "error",
1941
- message: `Value of "${name2}" opens with "{" or "[" but is not ` + "valid JSON, so the runtime cannot read it as the " + "structure it announces. A truncated copy, or a markdown " + "fence character (`) picked up with the value, is the " + "usual cause."
2005
+ message: `Value of "${name}" opens with "{" or "[" but is not ` + "valid JSON, so the runtime cannot read it as the " + "structure it announces. A truncated copy, or a markdown " + "fence character (`) picked up with the value, is the " + "usual cause."
1942
2006
  });
1943
2007
  }
1944
- for (const { path, name: name2, kind, target } of taskContent ? findConnectorInputDefects(nodes) : []) {
2008
+ for (const { path, name, kind, target } of taskContent ? findConnectorInputDefects(nodes) : []) {
1945
2009
  const CONNECTOR_INPUT_MESSAGES = {
1946
- flattened: `Connector input "${name2}" is not one of the three containers an Integration Service activity declares (pathParameters, queryParameters, body). A field spliced in at the top level is not passed: put it inside the container's \`body\` object.`,
1947
- stringified: `Connector input "${name2}" carries its payload as JSON text in \`value\`. The container takes a \`body\` object, so a serialised string is passed through as a string and the activity receives no fields.`,
1948
- misplaced: `Connector input "${name2}" carries its fields in \`value\` and has no \`body\`. A json container is read from \`body\` — \`value\` holds a scalar, and only for a string-typed entry — so the activity runs with this container empty. Move the object into \`body\`.`,
1949
- mistargeted: `Connector input "${name2}" targets \`${target ?? ""}\`. Every reader keys on the input's \`name\`, and the three containers are emitted with \`target\` equal to it, so this fills \`${name2}\` and leaves \`${target ?? ""}\` empty. Rename the entry to the container its fields belong to, or set \`target\` to match \`${name2}\`.`
2010
+ flattened: `Connector input "${name}" is not one of the three containers an Integration Service activity declares (pathParameters, queryParameters, body). A field spliced in at the top level is not passed: put it inside the container's \`body\` object.`,
2011
+ stringified: `Connector input "${name}" carries its payload as JSON text in \`value\`. The container takes a \`body\` object, so a serialised string is passed through as a string and the activity receives no fields.`,
2012
+ misplaced: `Connector input "${name}" carries its fields in \`value\` and has no \`body\`. A json container is read from \`body\` — \`value\` holds a scalar, and only for a string-typed entry — so the activity runs with this container empty. Move the object into \`body\`.`,
2013
+ mistargeted: `Connector input "${name}" targets \`${target ?? ""}\`. Every reader keys on the input's \`name\`, and the three containers are emitted with \`target\` equal to it, so this fills \`${name}\` and leaves \`${target ?? ""}\` empty. Rename the entry to the container its fields belong to, or set \`target\` to match \`${name}\`.`
1950
2014
  };
1951
2015
  const CONNECTOR_INPUT_CODES = {
1952
2016
  flattened: "CASE_MGMT_CONNECTOR_INPUT_FLATTENED",
@@ -1961,28 +2025,28 @@ class CaseValidateService {
1961
2025
  message: CONNECTOR_INPUT_MESSAGES[kind]
1962
2026
  });
1963
2027
  }
1964
- for (const { path, name: name2 } of taskContent ? findReassignedOutputsWithoutOriginalVar(parsed) : []) {
2028
+ for (const { path, name } of taskContent ? findReassignedOutputsWithoutOriginalVar(parsed) : []) {
1965
2029
  issues.push({
1966
2030
  code: "CASE_MGMT_OUTPUT_ORIGINAL_VAR_MISSING",
1967
2031
  path,
1968
2032
  severity: "error",
1969
- message: `Output "${name2}" writes to a variable other than its ` + "own id but carries no `originalVar`. That field is how " + "the designer recognises a reassigned output: without " + "it the output reads as a plain one and goes down the " + "path that allocates a fresh variable by name, so the " + "plan the designer opens is not the one written here. " + "Set `originalVar` to this output's own id."
2033
+ message: `Output "${name}" writes to a variable other than its ` + "own id but carries no `originalVar`. That field is how " + "the designer recognises a reassigned output: without " + "it the output reads as a plain one and goes down the " + "path that allocates a fresh variable by name, so the " + "plan the designer opens is not the one written here. " + "Set `originalVar` to this output's own id."
1970
2034
  });
1971
2035
  }
1972
- for (const { path, name: name2 } of taskContent ? findVarIdCaseMismatches(parsed) : []) {
2036
+ for (const { path, name } of taskContent ? findVarIdCaseMismatches(parsed) : []) {
1973
2037
  issues.push({
1974
2038
  code: "CASE_MGMT_OUTPUT_VAR_ID_CASE_MISMATCH",
1975
2039
  path,
1976
2040
  severity: "error",
1977
- message: `Output "${name2}" has an id and a var that differ only ` + "by casing. A renamed output keeps its own id on " + "purpose, but nothing renames a value to the same word " + "in a different case — so this is one name typed two " + "ways, and the case variable it declares carries a " + "spelling no reference written from the id will match. " + "Make the two agree."
2041
+ message: `Output "${name}" has an id and a var that differ only ` + "by casing. A renamed output keeps its own id on " + "purpose, but nothing renames a value to the same word " + "in a different case — so this is one name typed two " + "ways, and the case variable it declares carries a " + "spelling no reference written from the id will match. " + "Make the two agree."
1978
2042
  });
1979
2043
  }
1980
- for (const { path, name: name2, hasValue } of taskContent ? findMisplacedEnvelopeBodies(nodes) : []) {
2044
+ for (const { path, name, hasValue } of taskContent ? findMisplacedEnvelopeBodies(nodes) : []) {
1981
2045
  issues.push({
1982
2046
  code: "CASE_MGMT_INPUT_BODY_ON_PLAIN_TASK",
1983
2047
  path,
1984
2048
  severity: "error",
1985
- message: `Input "${name2}" carries its fields in \`body\`, which ` + "only a connector input has. This task type reads " + `\`value\`, so ${hasValue ? "the fields under `body` are ignored and the task runs on `value` alone" : "nothing reaches the task for it at all"}. ` + "Move the object into `value` — as a native object, or " + "JSON text if that is what the task expects."
2049
+ message: `Input "${name}" carries its fields in \`body\`, which ` + "only a connector input has. This task type reads " + `\`value\`, so ${hasValue ? "the fields under `body` are ignored and the task runs on `value` alone" : "nothing reaches the task for it at all"}. ` + "Move the object into `value` — as a native object, or " + "JSON text if that is what the task expects."
1986
2050
  });
1987
2051
  }
1988
2052
  for (const { path, holder, dead } of slaContent ? findUnreachableSlaRules(parsed) : []) {
@@ -2059,20 +2123,20 @@ class CaseValidateService {
2059
2123
  message: `"${value}" resolves through nothing. \`metadata\` is a ` + "namespace the runtime puts in scope inside a `=js:` " + "expression, not a path prefix that routes one — there " + "is no `=metadata.` prefix, so unlike `=vars.` or " + "`=bindings.` this reads no value and the plan still " + `validates. Write it as \`=js:${value.slice(1)}\`.`
2060
2124
  });
2061
2125
  }
2062
- for (const { path, name: name2, fields } of taskContent ? findLiteralResourceBindings(nodes) : []) {
2126
+ for (const { path, name, fields } of taskContent ? findLiteralResourceBindings(nodes) : []) {
2063
2127
  issues.push({
2064
2128
  code: "CASE_MGMT_RESOURCE_TASK_LITERAL_BINDING",
2065
2129
  path,
2066
2130
  severity: "error",
2067
- message: `Task "${name2}" names its resource with ` + `${fields.length === 1 ? "a literal" : "literals"}: ` + `${fields.join(" and ")}. A resource task's \`name\` and ` + `\`folderPath\` are \`${BINDING_REFERENCE_PREFIX}<id>\` ` + "references — the bindings array is what 'uip solution " + "resources refresh' resolves and what bindings_v2.json is " + "derived from, so a plain string names something the " + "solution never resolves and no binding exists for it. " + "Add the name/folderPath binding pair and point both " + "fields at it."
2131
+ message: `Task "${name}" names its resource with ` + `${fields.length === 1 ? "a literal" : "literals"}: ` + `${fields.join(" and ")}. A resource task's \`name\` and ` + `\`folderPath\` are \`${BINDING_REFERENCE_PREFIX}<id>\` ` + "references — the bindings array is what 'uip solution " + "resources refresh' resolves and what bindings_v2.json is " + "derived from, so a plain string names something the " + "solution never resolves and no binding exists for it. " + "Add the name/folderPath binding pair and point both " + "fields at it."
2068
2132
  });
2069
2133
  }
2070
- for (const { path, name: name2, actual } of taskContent ? findRecipientShapeDefects(nodes) : []) {
2134
+ for (const { path, name, actual } of taskContent ? findRecipientShapeDefects(nodes) : []) {
2071
2135
  issues.push({
2072
2136
  code: "CASE_MGMT_ACTION_RECIPIENT_SHAPE",
2073
2137
  path,
2074
2138
  severity: "error",
2075
- message: `Task "${name2}" writes \`recipient\` as ${actual}. The ` + 'shape is `{ "Type": <n>, "Value": "<who>" }` — a bare ' + "value carries no type, so the assignment resolves to " + "nobody and the task is created unassigned. Wrap it, " + "keeping the value."
2139
+ message: `Task "${name}" writes \`recipient\` as ${actual}. The ` + 'shape is `{ "Type": <n>, "Value": "<who>" }` — a bare ' + "value carries no type, so the assignment resolves to " + "nobody and the task is created unassigned. Wrap it, " + "keeping the value."
2076
2140
  });
2077
2141
  }
2078
2142
  for (const { path, value } of taskContent ? findUnresolvedConnectorResourceKeys(parsed) : []) {
@@ -2091,20 +2155,20 @@ class CaseValidateService {
2091
2155
  message: `This context's \`resourceKey\` is "${value}", which is ` + `not the key of the connection \`${binding}\` that its ` + "own `connection` entry names. The runtime resolves the " + "connection through this key, so the connector never " + `fires. ${elsewhere === undefined ? "The usual cause is the objectName copied into it. Set it to that binding's resolved connection key." : `That key belongs to \`${elsewhere}\`, so the wrong field may be the \`connection\` entry: decide which connection this context is for, then make both name it. Setting the key from \`${binding}\` without checking repairs this into a plan that is consistently wrong.`}`
2092
2156
  });
2093
2157
  }
2094
- for (const { path, name: name2, type } of taskContent ? findConnectorTasksWithoutInputs(nodes, parsed.bindings) : []) {
2158
+ for (const { path, name, type } of taskContent ? findConnectorTasksWithoutInputs(nodes, parsed.bindings) : []) {
2095
2159
  issues.push({
2096
2160
  code: "CASE_MGMT_CONNECTOR_INPUTS_EMPTY",
2097
2161
  path,
2098
2162
  severity: "error",
2099
- message: `Connector task "${name2}" has a spliced \`data.context\` ` + "but no inputs. The context comes from the case spec " + "response, so the spec was fetched and read; " + "`data.inputs` is the `CaseShape.Inputs` splice from that " + "same response, and an empty array means that splice was " + "skipped. Nothing else reports it — the shape is " + "internally consistent and every container check has " + "nothing to look at — while the activity runs with no " + "parameters at all. " + (type === "http-request" ? HTTP_REQUEST_REPAIR : "Splice `CaseShape.Inputs` from the case spec response.")
2163
+ message: `Connector task "${name}" has a spliced \`data.context\` ` + "but no inputs. The context comes from the case spec " + "response, so the spec was fetched and read; " + "`data.inputs` is the `CaseShape.Inputs` splice from that " + "same response, and an empty array means that splice was " + "skipped. Nothing else reports it — the shape is " + "internally consistent and every container check has " + "nothing to look at — while the activity runs with no " + "parameters at all. " + (type === "http-request" ? HTTP_REQUEST_REPAIR : "Splice `CaseShape.Inputs` from the case spec response.")
2100
2164
  });
2101
2165
  }
2102
- for (const { path, name: name2, task } of taskContent ? findDuplicateOutputNames(parsed) : []) {
2166
+ for (const { path, name, task } of taskContent ? findDuplicateOutputNames(parsed) : []) {
2103
2167
  issues.push({
2104
2168
  code: "CASE_MGMT_OUTPUT_NAME_DUPLICATE",
2105
2169
  path,
2106
2170
  severity: "error",
2107
- message: `Task "${task}" has two outputs named "${name2}". The ` + "parser keeps one row per name, so the other is dropped " + "and whatever it wrote is never written. A duplicate " + "`id` is reported separately and cannot see this one: " + "the dropped row often carries no id at all. Emit one " + "output for the value, carrying the id other tasks " + "reference it by."
2171
+ message: `Task "${task}" has two outputs named "${name}". The ` + "parser keeps one row per name, so the other is dropped " + "and whatever it wrote is never written. A duplicate " + "`id` is reported separately and cannot see this one: " + "the dropped row often carries no id at all. Emit one " + "output for the value, carrying the id other tasks " + "reference it by."
2108
2172
  });
2109
2173
  }
2110
2174
  for (const { path, id, first, second } of taskContent ? findDuplicateOutputIds(parsed) : []) {
@@ -2115,12 +2179,12 @@ class CaseValidateService {
2115
2179
  message: `Output id "${id}" is used by two tasks (${first} and ` + `${second}). An output id is the write target, so the ` + "second write lands on the first task's variable and one " + "of the two values is gone. Give each output its own id."
2116
2180
  });
2117
2181
  }
2118
- for (const { path, name: name2 } of taskContent ? findOutputsWithoutId(parsed) : []) {
2182
+ for (const { path, name } of taskContent ? findOutputsWithoutId(parsed) : []) {
2119
2183
  issues.push({
2120
2184
  code: "CASE_MGMT_OUTPUT_ID_MISSING",
2121
2185
  path,
2122
2186
  severity: "error",
2123
- message: `Output "${name2}" carries no id. The designer generates ` + "one for every output it writes, and without it nothing " + "can reference this output — every expression that reads " + "it resolves to nothing."
2187
+ message: `Output "${name}" carries no id. The designer generates ` + "one for every output it writes, and without it nothing " + "can reference this output — every expression that reads " + "it resolves to nothing."
2124
2188
  });
2125
2189
  }
2126
2190
  for (const { key, resource } of findBindingKeyMismatches(parsed)) {
@@ -2252,7 +2316,7 @@ Validating: ${absolutePath}
2252
2316
  if (!content) {
2253
2317
  throw new Error(`File is empty: ${absolutePath}`);
2254
2318
  }
2255
- const [parseError, parsed] = catchError(() => JSON.parse(content));
2319
+ const [parseError, parsed] = catchError2(() => JSON.parse(content));
2256
2320
  if (parseError) {
2257
2321
  return {
2258
2322
  success: false,
@@ -2273,7 +2337,7 @@ Validating: ${absolutePath}
2273
2337
  const legacySpellings = findLegacySpellings(parsed, profile);
2274
2338
  issues.push(...legacySpellings);
2275
2339
  const { validateCaseCanvasJson, validateCaseDiskJsonSchema } = await loadCaseSchemaAsync();
2276
- const [diskCallError, diskResultRaw] = catchError(() => validateCaseDiskJsonSchema(parsed));
2340
+ const [diskCallError, diskResultRaw] = catchError2(() => validateCaseDiskJsonSchema(parsed));
2277
2341
  if (diskCallError) {
2278
2342
  issues.push({
2279
2343
  code: "CASE_MGMT_DISK_SCHEMA_VALIDATION_FAILED",
@@ -2290,8 +2354,8 @@ Validating: ${absolutePath}
2290
2354
  const diskResult = diskResultRaw;
2291
2355
  const version = parsed?.version;
2292
2356
  const versionMissing = (version === undefined || typeof version === "string" && version.trim() === "") && (diskResult.issues ?? []).some((i) => i.path === "version");
2293
- for (const issue2 of diskResult.issues ?? []) {
2294
- const path = issue2.path && issue2.path !== "" ? issue2.path : "(root)";
2357
+ for (const issue of diskResult.issues ?? []) {
2358
+ const path = issue.path && issue.path !== "" ? issue.path : "(root)";
2295
2359
  if (versionIssues.length > 0 && path === "version")
2296
2360
  continue;
2297
2361
  if (versionMissing && path.includes("."))
@@ -2299,7 +2363,7 @@ Validating: ${absolutePath}
2299
2363
  issues.push({
2300
2364
  code: "CASE_MGMT_DISK_SCHEMA_INVALID",
2301
2365
  path,
2302
- message: versionMissing && path === "version" ? `${issue2.message}. The version is missing, so nested fields were not checked — set "version" to the version the case plan was written at.` : issue2.message,
2366
+ message: versionMissing && path === "version" ? `${issue.message}. The version is missing, so nested fields were not checked — set "version" to the version the case plan was written at.` : issue.message,
2303
2367
  severity: "error"
2304
2368
  });
2305
2369
  }
@@ -2307,7 +2371,7 @@ Validating: ${absolutePath}
2307
2371
  const {
2308
2372
  describeMisplacedRuleGroupMember,
2309
2373
  findMisplacedRuleGroupMembers
2310
- } = await import("./rule-group-members-zje7n3kf.js");
2374
+ } = await import("./rule-group-members-p0nv1rmj.js");
2311
2375
  const misplaced = findMisplacedRuleGroupMembers(parsed);
2312
2376
  const ruleTypePaths = findRuleTypeKeys(parsed);
2313
2377
  if (misplaced.length > 0 || ruleTypePaths.length > 0) {
@@ -2342,19 +2406,19 @@ Validating: ${absolutePath}
2342
2406
  const {
2343
2407
  diagnoseMigrationFailure,
2344
2408
  migrationFailureMessage
2345
- } = await import("./migration-diagnosis-ns5cw4e3.js");
2409
+ } = await import("./migration-diagnosis-myqqgwj0.js");
2346
2410
  const diagnosis = diagnoseMigrationFailure(parsed, diskResult.migrationError, validateCaseDiskJsonSchema);
2347
2411
  issues.push({
2348
2412
  code: "CASE_MGMT_MIGRATION_FAILED",
2349
2413
  path: "(root)",
2350
- message: migrationFailureMessage(diskResult.migrationError, diagnosis, parseCaseSchemaVersion(parsed.version)?.major, legacySpellings.length),
2414
+ message: migrationFailureMessage(diskResult.migrationError, diagnosis, parseCaseSchemaVersion2(parsed.version)?.major, legacySpellings.length),
2351
2415
  severity: "error"
2352
2416
  });
2353
2417
  }
2354
2418
  }
2355
2419
  }
2356
2420
  if (diskResult.valid && profile !== "skeleton") {
2357
- const [canvasCallError, canvasResultRaw] = catchError(() => validateCaseCanvasJson(parsed));
2421
+ const [canvasCallError, canvasResultRaw] = catchError2(() => validateCaseCanvasJson(parsed));
2358
2422
  if (canvasCallError) {
2359
2423
  issues.push({
2360
2424
  code: "CASE_MGMT_CANVAS_VALIDATION_FAILED",
@@ -2384,7 +2448,7 @@ Validating: ${absolutePath}
2384
2448
  issues.push(...this.runSupplementalRules(parsed, profile));
2385
2449
  }
2386
2450
  if (diskResult.valid && profile === "strict") {
2387
- const { runStrictCaseRules } = await import("./strict-case-rules-4tjcaznr.js");
2451
+ const { runStrictCaseRules } = await import("./strict-case-rules-045kbjvv.js");
2388
2452
  issues.push(...runStrictCaseRules(parsed));
2389
2453
  issues.push(...await this.checkBindingsSidecar(absolutePath, parsed));
2390
2454
  issues.push(...await this.checkEntryPointsSidecar(absolutePath, parsed));
@@ -2392,7 +2456,7 @@ Validating: ${absolutePath}
2392
2456
  const sddPath = this.fs.path.resolve(options.sddPath);
2393
2457
  if (await this.fs.exists(sddPath)) {
2394
2458
  const sddText = await this.fs.readFile(sddPath, "utf-8") ?? "";
2395
- const { auditCaseplanAgainstSdd } = await import("./strict-sdd-audit-q7tb9yj7.js");
2459
+ const { auditCaseplanAgainstSdd } = await import("./strict-sdd-audit-bp7fq2tg.js");
2396
2460
  issues.push(...auditCaseplanAgainstSdd(parsed, sddText, this.fs.path.basename(sddPath), await findRegistryLedger(this.fs, absolutePath)));
2397
2461
  } else {
2398
2462
  issues.push({
@@ -2419,7 +2483,7 @@ Validating: ${absolutePath}
2419
2483
  for (const candidate of candidates) {
2420
2484
  if (!await this.fs.exists(candidate))
2421
2485
  continue;
2422
- const [readError, text] = await catchError(this.fs.readFile(candidate, "utf-8"));
2486
+ const [readError, text] = await catchError2(this.fs.readFile(candidate, "utf-8"));
2423
2487
  const unreadable = (why) => [
2424
2488
  {
2425
2489
  code: "STRICT_ENTRY_POINT_SIDECAR_UNREADABLE",
@@ -2431,22 +2495,22 @@ Validating: ${absolutePath}
2431
2495
  if (readError || text === undefined || text === null) {
2432
2496
  return unreadable(readError === undefined ? "could not be found (it may have been removed while validating)" : `could not be read (${readError.message})`);
2433
2497
  }
2434
- const [parseError, document] = await catchError(Promise.resolve().then(() => JSON.parse(text)));
2498
+ const [parseError, document] = await catchError2(Promise.resolve().then(() => JSON.parse(text)));
2435
2499
  if (parseError) {
2436
2500
  return unreadable(`is not JSON (${parseError.message})`);
2437
2501
  }
2438
- const { checkEntryPoints } = await import("./strict-entry-points-g2pd4mf4.js");
2502
+ const { checkEntryPoints } = await import("./strict-entry-points-40ha9afz.js");
2439
2503
  return checkEntryPoints(document, parsed, this.fs.path.basename(candidate), this.fs.path.basename(casePlanPath));
2440
2504
  }
2441
2505
  return [];
2442
2506
  }
2443
2507
  async checkBindingsSidecar(casePlanPath, parsed) {
2444
- const { compareCaseBindingsV2 } = await import("./case-bindings-service-cht20gqt.js");
2445
- const [error, comparison] = await catchError(compareCaseBindingsV2(casePlanPath, parsed));
2508
+ const { compareCaseBindingsV2 } = await import("./case-bindings-service-pp3c9g1e.js");
2509
+ const [error, comparison] = await catchError2(compareCaseBindingsV2(casePlanPath, parsed));
2446
2510
  if (error || comparison === undefined)
2447
2511
  return [];
2448
2512
  const remedy = `Run 'uip maestro case bindings sync ${this.fs.path.basename(casePlanPath)}' to regenerate it.`;
2449
- const issue2 = (message) => [
2513
+ const issue = (message) => [
2450
2514
  {
2451
2515
  code: "STRICT_BINDINGS_SIDECAR_STALE",
2452
2516
  path: this.fs.path.basename(comparison.path),
@@ -2458,11 +2522,11 @@ Validating: ${absolutePath}
2458
2522
  case "match":
2459
2523
  return [];
2460
2524
  case "absent":
2461
- return comparison.expectedCount === 0 ? [] : issue2(`No bindings_v2.json next to the case plan, but its bindings produce ${comparison.expectedCount} resource entr${comparison.expectedCount === 1 ? "y" : "ies"}. 'uip solution resources refresh' reads that file, so the solution will resolve none of them. ${remedy}`);
2525
+ return comparison.expectedCount === 0 ? [] : issue(`No bindings_v2.json next to the case plan, but its bindings produce ${comparison.expectedCount} resource entr${comparison.expectedCount === 1 ? "y" : "ies"}. 'uip solution resources refresh' reads that file, so the solution will resolve none of them. ${remedy}`);
2462
2526
  case "unreadable":
2463
- return issue2(`bindings_v2.json could not be read as a bindings file. ${remedy}`);
2527
+ return issue(`bindings_v2.json could not be read as a bindings file. ${remedy}`);
2464
2528
  case "entry-points-unreadable":
2465
- return issue2(`${comparison.reason ?? `${comparison.path} could not be read`}. The trigger bindings in bindings_v2.json take their entry point ids from that file, so they cannot be checked. Fix or remove ${comparison.path}, then run \`uip maestro case bindings sync\`.`);
2529
+ return issue(`${comparison.reason ?? `${comparison.path} could not be read`}. The trigger bindings in bindings_v2.json take their entry point ids from that file, so they cannot be checked. Fix or remove ${comparison.path}, then run \`uip maestro case bindings sync\`.`);
2466
2530
  case "differs": {
2467
2531
  const {
2468
2532
  missing = [],
@@ -2474,7 +2538,7 @@ Validating: ${absolutePath}
2474
2538
  changed.length > 0 && `wrong: ${changed.join(", ")}`,
2475
2539
  extra.length > 0 && `unexpected: ${extra.join(", ")}`
2476
2540
  ].filter((part) => part !== false);
2477
- return issue2(`bindings_v2.json disagrees with the case plan's bindings (${parts.join("; ")}). An entry the consumer cannot key is skipped without an error. ${remedy}`);
2541
+ return issue(`bindings_v2.json disagrees with the case plan's bindings (${parts.join("; ")}). An entry the consumer cannot key is skipped without an error. ${remedy}`);
2478
2542
  }
2479
2543
  }
2480
2544
  }
@@ -2486,8 +2550,8 @@ Validating: ${absolutePath}
2486
2550
  if (declared === undefined || typeof declared === "string" && declared.trim() === "") {
2487
2551
  return [];
2488
2552
  }
2489
- const latest = await resolveCaseSchemaVersion();
2490
- const parts = parseCaseSchemaVersion(declared);
2553
+ const latest = await resolveCaseSchemaVersion2();
2554
+ const parts = parseCaseSchemaVersion2(declared);
2491
2555
  if (parts === null) {
2492
2556
  return [
2493
2557
  {
@@ -2498,18 +2562,18 @@ Validating: ${absolutePath}
2498
2562
  }
2499
2563
  ];
2500
2564
  }
2501
- if (parts.major < MIN_SUPPORTED_MAJOR) {
2565
+ if (parts.major < MIN_SUPPORTED_MAJOR2) {
2502
2566
  return [
2503
2567
  {
2504
2568
  code: "CASE_MGMT_INVALID_VERSION",
2505
2569
  path: "version",
2506
- message: `Schema version "${String(declared)}" predates V${MIN_SUPPORTED_MAJOR} — this validator requires major version >= ${MIN_SUPPORTED_MAJOR}, and the current schema is "${latest}".`,
2570
+ message: `Schema version "${String(declared)}" predates V${MIN_SUPPORTED_MAJOR2} — this validator requires major version >= ${MIN_SUPPORTED_MAJOR2}, and the current schema is "${latest}".`,
2507
2571
  severity: "error"
2508
2572
  }
2509
2573
  ];
2510
2574
  }
2511
- const latestParts = parseCaseSchemaVersion(latest);
2512
- if (latestParts !== null && compareCaseSchemaVersions(parts, latestParts) > 0 && !isNewerCaseSchemaPatch(parts, latestParts)) {
2575
+ const latestParts = parseCaseSchemaVersion2(latest);
2576
+ if (latestParts !== null && compareCaseSchemaVersions2(parts, latestParts) > 0 && !isNewerCaseSchemaPatch2(parts, latestParts)) {
2513
2577
  return [
2514
2578
  {
2515
2579
  code: "CASE_MGMT_VERSION_NEWER_THAN_SCHEMA",
@@ -2545,4 +2609,4 @@ export {
2545
2609
  CaseValidateService
2546
2610
  };
2547
2611
 
2548
- //# debugId=66B4BFFBE20D244764756E2164756E21
2612
+ //# debugId=9A8A859F3408925664756E2164756E21