@uipath/maestro-tool 1.204.0 → 1.205.0-preview.258
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +3 -3
- package/dist/{DmnFactory-VWZOSZHH-ggnfcqpa.js → DmnFactory-L7MABUC6-qkvfv1cw.js} +143 -98
- package/dist/{KieDmnMarshaller-6TTUU5B4-6apscj68.js → KieDmnMarshaller-LGE63WDG-cybersk4.js} +3 -3
- package/dist/THIRD-PARTY-NOTICES.md +47 -23
- package/dist/{authoring-ed7fgg74.js → authoring-5xyc2bbq.js} +8 -6
- package/dist/{authoring-1qn6m2g3.js → authoring-ehed6df3.js} +8 -6
- package/dist/{authoring-ex7mq672.js → authoring-rw21p50g.js} +8 -6
- package/dist/{binding-service-dj04a6e6.js → binding-service-b2v8y2sb.js} +44 -35
- package/dist/{bpmn-action-type-validator-cja8vct2.js → bpmn-action-type-validator-xg4ncg63.js} +2 -2
- package/dist/{bpmn-binding-resolver-3v5223kx.js → bpmn-binding-resolver-wz7xk54x.js} +9 -7
- package/dist/{bpmn-branch-a25m8bc2.js → bpmn-branch-ywmc5egw.js} +48 -47
- package/dist/{bpmn-format-service-64fsaq4j.js → bpmn-format-service-aq8ekvy2.js} +7 -5
- package/dist/{bpmn-refresh-service-ytf3ngzm.js → bpmn-refresh-service-gy1ekx3m.js} +10 -8
- package/dist/{bpmn-update-metadata-service-jpz5mfk4.js → bpmn-update-metadata-service-rnf421er.js} +7 -5
- package/dist/bpmn-validate-service-7e3q83nh.js +16 -0
- package/dist/{business-rule-export-j6xxtp5s.js → business-rule-export-xa719ws5.js} +2 -2
- package/dist/canvas-notes-xc2ejzqj.js +23 -0
- package/dist/{case-api-bxcxbgm9.js → case-api-v64traxv.js} +9 -7
- package/dist/case-bindings-service-hwz2h03e.js +434 -0
- package/dist/case-debug-solution-projects-xae2d4vj.js +34 -0
- package/dist/{case-debug-studio-web-service-kt5efenk.js → case-debug-studio-web-service-5h6djff3.js} +22 -14
- package/dist/{case-described-io-service-kn3rvy53.js → case-described-io-service-tap9pk70.js} +41 -11
- package/dist/case-event-trigger-bindings-z4q1kzgv.js +20 -0
- package/dist/{case-format-service-k8rcv0wp.js → case-format-service-q42ba5pn.js} +6 -4
- package/dist/{case-pack-service-92trp8xj.js → case-pack-service-0j9r3cd2.js} +9 -7
- package/dist/case-schema-version-zs5qsr1b.js +20 -0
- package/dist/{case-shape-reader-ftc4ve13.js → case-shape-reader-14qzcj4v.js} +1 -1
- package/dist/{case-splice-service-7n51cpx3.js → case-splice-service-bk6rvr75.js} +60 -11
- package/dist/{case-validate-service-c8jcvw85.js → case-validate-service-80p52d8r.js} +134 -46
- package/dist/{connector-enrichment-service-ba0vq2sk.js → connector-enrichment-service-9p98gfmc.js} +32 -28
- package/dist/{connector-lookup-service-mzfsqb21.js → connector-lookup-service-v39ab3qh.js} +10 -8
- package/dist/{connector-service-8yk65k3n.js → connector-service-yz5c6xag.js} +229 -52
- package/dist/connector-task-shape-dcb3v2r5.js +14 -0
- package/dist/{connector-task-spec-bn3qaa1w.js → connector-task-spec-pvzzenwg.js} +206 -49
- package/dist/de-UZI7FJDO-awjpqfz0.js +200 -0
- package/dist/{de-MUJPA4EB-dpg7t2rw.js → de-UZI7FJDO-mwvc4cxe.js} +29 -2
- package/dist/{de-FGHEJRCI-rv513mfh.js → de-WLW6KWOJ-2qnsqdtw.js} +238 -31
- package/dist/debug-conversation-trigger-f4a07w23.js +33 -0
- package/dist/{debug-http-client-73errmgs.js → debug-http-client-8t7t701c.js} +7 -5
- package/dist/{debug-service-8kjtrm88.js → debug-service-c7y7f216.js} +8 -6
- package/dist/{edge-service-7092t84f.js → edge-service-vnn1p29d.js} +18 -13
- package/dist/{embedded-file-reader-v8c2yj2a.js → embedded-file-reader-r66242ey.js} +2 -2
- package/dist/en-EJCBA3LK-0wb3b1xy.js +146 -0
- package/dist/{en-FBPVNKFN-dqt573xn.js → en-EJCBA3LK-dtpdghgj.js} +12 -4
- package/dist/{en-BWGKA5OE-1qkvb9rn.js → en-M7GQYBV2-5nfmpnfz.js} +88 -6
- package/dist/{enrichment-service-yjv2eb8h.js → enrichment-service-njfr2m2s.js} +52 -15
- package/dist/{es-7SE7HX2X-8yh1aj2y.js → es-4UBUTCQA-m1ytpyx2.js} +29 -2
- package/dist/es-4UBUTCQA-t7hsackg.js +200 -0
- package/dist/{es-KR3ZSNMP-84zphx0x.js → es-5THCNRFN-tqwyrdgy.js} +235 -28
- package/dist/{es-MX-2MYFZU7X-3rek4r73.js → es-MX-5RELIXKI-9jhqtddc.js} +29 -2
- package/dist/es-MX-5RELIXKI-jtjbcxbb.js +200 -0
- package/dist/{es-MX-XXZJGC4R-2mr8jtgm.js → es-MX-TWZBRAXK-gqd9swzw.js} +237 -30
- package/dist/filter-engine-7ep90g7f.js +11 -0
- package/dist/{flow-api-y70m8n82.js → flow-api-qj89cv18.js} +17 -10
- package/dist/{flow-debug-service-f59xnvdf.js → flow-debug-service-a7vd9eht.js} +109 -71
- package/dist/{flow-eval-node-target-v1gra12k.js → flow-eval-node-target-fv15zc9f.js} +19 -18
- package/dist/flow-eval-run-api-3xt5n21a.js +16 -0
- package/dist/{flow-eval-run-service-hmfbng78.js → flow-eval-run-service-keqkwjg1.js} +92 -99
- package/dist/{flow-eval-service-7tpvhn9b.js → flow-eval-service-5j1rwx32.js} +169 -416
- package/dist/{flow-init-sdk-source-3gxfr40c.js → flow-init-sdk-source-spm577pw.js} +8 -6
- package/dist/{flow-init-service-jawbgb3b.js → flow-init-service-pz2b02z9.js} +25 -20
- package/dist/{flow-io-2qapk1ge.js → flow-io-0yftj03d.js} +17 -12
- package/dist/{flow-migrate-service-3vyydvyp.js → flow-migrate-service-f0cavrsr.js} +18 -13
- package/dist/{flow-pack-service-ypbwn9p1.js → flow-pack-service-seegwatd.js} +59 -45
- package/dist/{flow-validate-service-6ra3j72r.js → flow-validate-service-hgswxecb.js} +198 -93
- package/dist/{fr-Y6NPVODW-8vr1ja4b.js → fr-CERONSRC-edpxhbmb.js} +237 -30
- package/dist/{fr-MDFKNZ4C-h4a122k9.js → fr-VBM5WRC2-63z7w4mh.js} +29 -2
- package/dist/fr-VBM5WRC2-707ha692.js +200 -0
- package/dist/{governance-fetcher-09dgr70s.js → governance-fetcher-w11mhrn6.js} +8 -6
- package/dist/{headless-7rs6g9wg.js → headless-z9enfh9f.js} +4 -4
- package/dist/hitPolicyResult-CGCR73CW-tvmbx1r7.js +66 -0
- package/dist/{hitl-service-pc3xwzxh.js → hitl-service-zsnxqkhb.js} +17 -12
- package/dist/{index-48tf2e7y.js → index-1a83vhkx.js} +59 -35
- package/dist/{index-jmy02p6v.js → index-3366ft04.js} +44 -6
- package/dist/{index-wmffgzmr.js → index-5dxh9z60.js} +21751 -11098
- package/dist/{index-vj0f8thg.js → index-91v7sjfs.js} +7 -5
- package/dist/{index-cpgb4hp8.js → index-d60j7q07.js} +8 -6
- package/dist/{index-vhm7bexy.js → index-da0zh33m.js} +8 -6
- package/dist/{index-1htnjt3c.js → index-ewv0axs9.js} +1087 -213
- package/dist/index-f3pbfe53.js +67 -0
- package/dist/{index-ng2f77my.js → index-fyc0k5dd.js} +985 -617
- package/dist/{index-n7n2d0tb.js → index-gjg7tpcx.js} +66 -2230
- package/dist/index-gmkec7es.js +29 -0
- package/dist/{index-3bv3wtc0.js → index-n37fqnh7.js} +6 -5
- package/dist/{index-hhsf00x8.js → index-ngs0a2he.js} +1 -1
- package/dist/index-s6q9xjhw.js +25 -0
- package/dist/{index-j2r3jb6c.js → index-xq6ajhgq.js} +2 -2
- package/dist/index.js +2 -2
- package/dist/init-entry-points-g4za9kc0.js +102 -0
- package/dist/inline-entity-resolver-nzfs8hb6.js +46 -0
- package/dist/input-reader-3250qtv2.js +15 -0
- package/dist/input-reader-3398edew.js +15 -0
- package/dist/{ja-UTQEAP34-8e0q6swp.js → ja-43QL7CGO-c3q8gre9.js} +29 -2
- package/dist/ja-43QL7CGO-h6qfxfay.js +200 -0
- package/dist/{ja-Q5PXKJ2V-p4msxzjd.js → ja-U2MCNHGT-gz0ap1jk.js} +235 -28
- package/dist/{known-types-3dm8xfd0.js → known-types-g1bvvvcw.js} +5 -5
- package/dist/ko-TLL6Z6CD-ag6gjynr.js +200 -0
- package/dist/{ko-AXCHW2OK-askct7f6.js → ko-TLL6Z6CD-wrt3n8a9.js} +29 -2
- package/dist/{ko-AYBDSRZG-41mdmsg1.js → ko-XAUYQWDR-zp81gjp4.js} +237 -30
- package/dist/localSolutionDiscovery-3fs774b8.js +17 -0
- package/dist/{maestro-automate-entry-4qg1z689.js → maestro-automate-entry-wycktqqt.js} +2 -2
- package/dist/{maestro-debug-service-c81w1wrx.js → maestro-debug-service-5edvsets.js} +17 -15
- package/dist/{maestro-pack-service-9qbtap5h.js → maestro-pack-service-hpvmq8f9.js} +9 -7
- package/dist/migration-diagnosis-5tftr979.js +99 -0
- package/dist/{node-epyxn4nd.js → node-5g80as4s.js} +29 -15
- package/dist/node-service-gsq162p5.js +101 -0
- package/dist/{node-strategy-5pz40tee.js → node-strategy-v442hwgd.js} +1 -1
- package/dist/node-sync-service-qxhh9e5m.js +65 -0
- package/dist/out-target-666eg2kf.js +115 -0
- package/dist/{packager-tool-yphr25e9.js → packager-tool-0jn0my4b.js} +4 -2
- package/dist/packager-tool-0z498fh0.js +331 -0
- package/dist/{packager-tool-j6q8v3kc.js → packager-tool-1q0ee9ht.js} +5 -4
- package/dist/packager-tool-20592jhn.js +74 -0
- package/dist/{packager-tool-zvpkw29f.js → packager-tool-212khq09.js} +538 -16
- package/dist/{packager-tool-7msx23gd.js → packager-tool-2qywkm61.js} +13 -2
- package/dist/{packager-tool-b4t0wt7a.js → packager-tool-3kx2vrwn.js} +12 -13
- package/dist/{packager-tool-a0f48rfb.js → packager-tool-42xfgd4y.js} +6 -24
- package/dist/{packager-tool-myvay41d.js → packager-tool-57bbfe26.js} +3 -3
- package/dist/{packager-tool-vte7g48a.js → packager-tool-5hnx28q0.js} +5 -3
- package/dist/{packager-tool-xd3rq6k0.js → packager-tool-629qqbfp.js} +2 -2
- package/dist/packager-tool-6g510cab.js +1178 -0
- package/dist/packager-tool-6sm17vbx.js +336 -0
- package/dist/{packager-tool-yy101ck2.js → packager-tool-6tthp3g5.js} +52 -32
- package/dist/{packager-tool-d88rqwk8.js → packager-tool-6z1hsm2h.js} +13 -5
- package/dist/packager-tool-7hw344bt.js +107 -0
- package/dist/{packager-tool-6xrzgn0z.js → packager-tool-7vh4gasn.js} +1 -1
- package/dist/packager-tool-7ym4rqd1.js +153 -0
- package/dist/packager-tool-8p3ymd4v.js +14 -0
- package/dist/{packager-tool-kme3q8xv.js → packager-tool-8tv6dvs5.js} +18 -8
- package/dist/{packager-tool-c94w8xmz.js → packager-tool-9c2hte0h.js} +16110 -13031
- package/dist/{packager-tool-npr79108.js → packager-tool-ajhgr4bs.js} +51 -8
- package/dist/{packager-tool-8pydv61j.js → packager-tool-ajth6af3.js} +588 -16
- package/dist/{packager-tool-nct4k0y8.js → packager-tool-arbc078z.js} +280 -416
- package/dist/{packager-tool-k0bc2f6w.js → packager-tool-b84rs07t.js} +137 -45
- package/dist/{packager-tool-4tf3tq1b.js → packager-tool-bd7t6p8y.js} +6 -4
- package/dist/{packager-tool-q02t6n13.js → packager-tool-bhhym40d.js} +26 -3
- package/dist/packager-tool-bttxjdhx.js +94 -0
- package/dist/packager-tool-c4n4m87w.js +52 -0
- package/dist/{packager-tool-8xyea2av.js → packager-tool-cc2q603y.js} +2 -3
- package/dist/{packager-tool-8yjmkys9.js → packager-tool-cza49qc1.js} +1681 -459
- package/dist/{packager-tool-5jb06280.js → packager-tool-d1kd88zq.js} +1 -1
- package/dist/{packager-tool-w3d2891y.js → packager-tool-dpp8z5q3.js} +8 -5
- package/dist/{packager-tool-wbtykfb2.js → packager-tool-dzd3y9p0.js} +2 -2
- package/dist/{packager-tool-rs4cgyy5.js → packager-tool-f6bh7bsm.js} +9 -10
- package/dist/{packager-tool-83hg21mr.js → packager-tool-f7zn3gsf.js} +6 -6
- package/dist/{packager-tool-mtpztxtc.js → packager-tool-fwfh4zz7.js} +2 -1
- package/dist/packager-tool-g2b0zqch.js +217 -0
- package/dist/{packager-tool-xdxr3ync.js → packager-tool-hdxtgckw.js} +11 -1
- package/dist/{packager-tool-gtzw8sw4.js → packager-tool-jexxh6qf.js} +51 -6
- package/dist/{packager-tool-zq25fdcg.js → packager-tool-jt51hwvr.js} +5 -5
- package/dist/packager-tool-k7n4sf7v.js +16 -0
- package/dist/{packager-tool-fgaphqq0.js → packager-tool-kd0whk4p.js} +1 -1
- package/dist/{packager-tool-3t417qyw.js → packager-tool-ktnfjmbs.js} +6 -6
- package/dist/packager-tool-kvp4ttef.js +307 -0
- package/dist/packager-tool-m1901c0c.js +1256 -0
- package/dist/packager-tool-mgcz986r.js +143 -0
- package/dist/{packager-tool-8xhjr5ya.js → packager-tool-mrskd7mn.js} +1 -1
- package/dist/{packager-tool-5s7249f4.js → packager-tool-ms1smy5t.js} +1 -1
- package/dist/{packager-tool-kveaemqp.js → packager-tool-msecps3h.js} +74 -47
- package/dist/packager-tool-n90231c7.js +2 -0
- package/dist/{packager-tool-ajjpgh1s.js → packager-tool-nkbz7fsb.js} +161 -83
- package/dist/packager-tool-nsh0qg9g.js +40 -0
- package/dist/{packager-tool-7q6z6npd.js → packager-tool-pcvhcn2k.js} +93 -11
- package/dist/packager-tool-qrs1525h.js +69 -0
- package/dist/packager-tool-qs3gymeb.js +92 -0
- package/dist/{packager-tool-wf95q0fn.js → packager-tool-r6a4pjjh.js} +32 -13
- package/dist/{packager-tool-2wbgdx7c.js → packager-tool-rcx6mwf1.js} +5 -5
- package/dist/{packager-tool-zbrda9sn.js → packager-tool-rk25wp3c.js} +1 -1
- package/dist/{packager-tool-nase5ajk.js → packager-tool-rp7pny4t.js} +19 -5
- package/dist/packager-tool-s695j0qj.js +2 -0
- package/dist/packager-tool-s7c0dg22.js +1117 -0
- package/dist/{case-bindings-service-hpz8w81a.js → packager-tool-s7frnjqb.js} +20 -233
- package/dist/{packager-tool-2k0hp4st.js → packager-tool-sb08yxk6.js} +2 -2
- package/dist/{packager-tool-b39nrh8y.js → packager-tool-sga4h8yj.js} +5 -6
- package/dist/packager-tool-sm8ertv4.js +9 -0
- package/dist/{packager-tool-ts5t1nmn.js → packager-tool-sxqtxw0e.js} +15 -10
- package/dist/packager-tool-t4zrz5gd.js +18 -0
- package/dist/{packager-tool-pp11j8zp.js → packager-tool-t79p62kr.js} +3 -2
- package/dist/{packager-tool-ps84n76y.js → packager-tool-tgh9btcq.js} +2 -2
- package/dist/{packager-tool-x2py933t.js → packager-tool-tzc6xsp3.js} +1802 -378
- package/dist/packager-tool-v5ft7109.js +35 -0
- package/dist/{packager-tool-rkv04anh.js → packager-tool-vv9cf7n5.js} +12 -56
- package/dist/{packager-tool-z1qbc0qf.js → packager-tool-wv85dhy2.js} +2 -8
- package/dist/{packager-tool-znhjsec2.js → packager-tool-wwbk750c.js} +10804 -25507
- package/dist/packager-tool-xj0agqpk.js +11 -0
- package/dist/{packager-tool-t2xr2f9r.js → packager-tool-xqghssg3.js} +1 -1
- package/dist/{packager-tool-ma2ra4pe.js → packager-tool-xr5pkebd.js} +6 -6
- package/dist/packager-tool-y4tyghzf.js +26 -0
- package/dist/{packager-tool-9bt3hs56.js → packager-tool-y57r93yz.js} +721 -90
- package/dist/packager-tool-ygdbhb2b.js +62 -0
- package/dist/{packager-tool-v99ygh9f.js → packager-tool-yn33pw57.js} +124 -58
- package/dist/packager-tool-yp84p93n.js +41 -0
- package/dist/{packager-tool-yv10w46z.js → packager-tool-zgm0r4yp.js} +57 -205
- package/dist/packager-tool.js +26 -17
- package/dist/{project-artifacts-ygsyzgbk.js → project-artifacts-tedh0mf8.js} +1 -1
- package/dist/{project-validator-ndx5f8vg.js → project-validator-njsprtzv.js} +5 -4
- package/dist/{pt-BR-TKHNHMET-sn91xyq0.js → pt-BR-GNQNAAZ2-xadharv4.js} +237 -30
- package/dist/{pt-BR-Y6K6XHXK-mp3hwhw1.js → pt-BR-USP2T7GD-pedn77m1.js} +29 -2
- package/dist/pt-BR-USP2T7GD-rppy42ym.js +200 -0
- package/dist/{pt-3DIO5QWG-59b3f4bc.js → pt-RMIAKZB4-67enhx3m.js} +29 -2
- package/dist/pt-RMIAKZB4-t80exmp7.js +200 -0
- package/dist/{pt-ROXU257Y-2f6bxev4.js → pt-TO2DARY2-ftcce1bv.js} +237 -30
- package/dist/{resolved-check-r83pjq9y.js → resolved-check-8a1cr6j2.js} +1 -1
- package/dist/{resourcesSyncService-9b5nzx36.js → resourcesSyncService-rcbw245w.js} +43 -180
- package/dist/ro-GHOBYW2S-4zevc9dy.js +200 -0
- package/dist/{ro-BWR3ONRR-vzx3hy8a.js → ro-GHOBYW2S-mhnqsgaa.js} +29 -2
- package/dist/{ro-AVAWPKOO-b89pw79r.js → ro-WUYJV6OW-a8d9qy1n.js} +235 -28
- package/dist/ru-WBLQ5B2U-dpqvtfwr.js +10 -0
- package/dist/{sdd-convert-service-am4cs6zq.js → sdd-convert-service-btj95r5z.js} +690 -447
- package/dist/{sdd-lookup-12hfwqjq.js → sdd-lookup-x3fh6svg.js} +6 -4
- package/dist/{sdd-resolve-service-e56wtgxt.js → sdd-resolve-service-pzsm3mkz.js} +37 -10
- package/dist/sdd-resolve-siblings-wzhvhar8.js +57 -0
- package/dist/{shared-utils-611ah3tq.js → shared-utils-w643sejd.js} +6 -4
- package/dist/{solution-auth-kddmbm0p.js → solution-auth-30yycqtv.js} +3 -3
- package/dist/solution-discovery-pavd4zeb.js +47 -0
- package/dist/{strict-case-rules-pn3ypd97.js → strict-case-rules-vnyr3b3k.js} +3 -2
- package/dist/{strict-entry-points-a2cya540.js → strict-entry-points-xrddz82q.js} +33 -1
- package/dist/{strict-sdd-audit-nc7dk2hy.js → strict-sdd-audit-8deegzad.js} +11 -7
- package/dist/task-type-declaration-re9ba03j.js +46 -0
- package/dist/{tidy-service-thmayk2h.js → tidy-service-mepxtxqm.js} +144 -39
- package/dist/{tool-z7q74wa4.js → tool-13vrxcqw.js} +313 -123
- package/dist/{tool-rmcqxt09.js → tool-x8dmgc2y.js} +476 -339
- package/dist/tool.js +2 -2
- package/dist/{tr-5IIHSFW5-hw4cewew.js → tr-GDTLECMM-k5fhmq13.js} +29 -2
- package/dist/tr-GDTLECMM-kngksm3r.js +200 -0
- package/dist/{tr-JMIP7ZSL-c39b6pe4.js → tr-M3F5A6AU-bb0tg39m.js} +235 -28
- package/dist/{trigger-enrichment-service-fw97esz9.js → trigger-enrichment-service-pc8ecypw.js} +34 -30
- package/dist/trigger-entry-point-id-819hnfnn.js +15 -0
- package/dist/{variable-service-3gywh851.js → variable-service-8v0b9d66.js} +17 -12
- package/dist/{wait-for-flow-job-wdcjjk6p.js → wait-for-flow-job-5rjxh65w.js} +14 -11
- package/dist/{zh-CN-IFFXSEJS-9wm9gmrv.js → zh-CN-C5G4PC7C-ds9gkptg.js} +235 -28
- package/dist/zh-CN-I5D7WHBD-ge92tbx9.js +200 -0
- package/dist/{zh-CN-R2KU4U5L-tc1hat59.js → zh-CN-I5D7WHBD-sr5h0a98.js} +29 -2
- package/dist/{zh-TW-GNKMELBF-j674515r.js → zh-TW-2AVLM723-288pkc1z.js} +29 -2
- package/dist/zh-TW-2AVLM723-xsmap3gk.js +200 -0
- package/dist/{zh-TW-IYBNYAMG-8727c7v2.js → zh-TW-62HZIG6O-787kdwex.js} +234 -27
- package/package.json +2 -2
- package/dist/bpmn-validate-service-tanm0n47.js +0 -14
- package/dist/debug-conversation-trigger-zbxp49z7.js +0 -46
- package/dist/flow-eval-run-api-zg951w2f.js +0 -15
- package/dist/hitPolicyResult-4WDHTX4A-zpjwpxn1.js +0 -69
- package/dist/index-03h6hq69.js +0 -200
- package/dist/input-reader-sce4dejb.js +0 -13
- package/dist/input-reader-tf6xyfvt.js +0 -13
- package/dist/migration-diagnosis-fzj426fa.js +0 -71
- package/dist/node-service-3j6w3z2k.js +0 -89
- package/dist/node-sync-service-q7dsv2p0.js +0 -43
- package/dist/out-target-498z06v5.js +0 -72
- package/dist/packager-tool-0g6ktcsq.js +0 -32
- package/dist/packager-tool-3mvr6njb.js +0 -305
- package/dist/packager-tool-521x949f.js +0 -32
- package/dist/packager-tool-64zypey6.js +0 -521
- package/dist/packager-tool-7t0xj5pz.js +0 -64
- package/dist/packager-tool-j836z6mq.js +0 -208
- package/dist/packager-tool-p7eactax.js +0 -267
- package/dist/packager-tool-xjtv580j.js +0 -13
- package/dist/packager-tool-zm7thgdg.js +0 -456
- /package/dist/{localization-p76prk3f.js → localization-d151bzb1.js} +0 -0
|
@@ -1,16 +1,30 @@
|
|
|
1
|
+
import {
|
|
2
|
+
canonicalVariableType,
|
|
3
|
+
gateKey
|
|
4
|
+
} from "./packager-tool-qrs1525h.js";
|
|
1
5
|
import {
|
|
2
6
|
buildMinimalCaseDocument
|
|
3
|
-
} from "./packager-tool-
|
|
7
|
+
} from "./packager-tool-cc2q603y.js";
|
|
8
|
+
import {
|
|
9
|
+
designerShapeConnectorTasks
|
|
10
|
+
} from "./packager-tool-ygdbhb2b.js";
|
|
11
|
+
import {
|
|
12
|
+
RECIPIENT_TYPES,
|
|
13
|
+
SDD_TASK_TYPES,
|
|
14
|
+
UNAUTHORABLE_TASK_TYPES,
|
|
15
|
+
bindingPairFor,
|
|
16
|
+
connectionPairFor
|
|
17
|
+
} from "./packager-tool-qs3gymeb.js";
|
|
4
18
|
import {
|
|
5
19
|
CONNECTOR_TASK_TYPES
|
|
6
|
-
} from "./packager-tool-
|
|
20
|
+
} from "./packager-tool-t4zrz5gd.js";
|
|
21
|
+
import {
|
|
22
|
+
emitCanvasNotes
|
|
23
|
+
} from "./packager-tool-kvp4ttef.js";
|
|
7
24
|
import {
|
|
8
25
|
BINDING_REFERENCE_PREFIX,
|
|
9
26
|
NAME_BOUND_TASK_TYPES
|
|
10
|
-
} from "./packager-tool-
|
|
11
|
-
import {
|
|
12
|
-
FILE_TYPE_JSON_SCHEMA
|
|
13
|
-
} from "./packager-tool-q02t6n13.js";
|
|
27
|
+
} from "./packager-tool-fwfh4zz7.js";
|
|
14
28
|
import {
|
|
15
29
|
prefixedId
|
|
16
30
|
} from "./packager-tool-hq15nv7z.js";
|
|
@@ -20,24 +34,55 @@ import {
|
|
|
20
34
|
STAGE_SELECTOR_RULES,
|
|
21
35
|
TASK_SELECTOR_RULES,
|
|
22
36
|
VARIABLE_PLACEMENT,
|
|
23
|
-
|
|
24
|
-
|
|
37
|
+
canonicalExpression,
|
|
38
|
+
customOutputFor,
|
|
39
|
+
declaredOutputs,
|
|
40
|
+
expandOutputMarkers,
|
|
41
|
+
expandXrefs,
|
|
42
|
+
extractOutputFor,
|
|
43
|
+
inputsFor,
|
|
44
|
+
markDeferredOutputs,
|
|
45
|
+
outputFor,
|
|
46
|
+
outputTypeFor,
|
|
47
|
+
parseIfCell,
|
|
48
|
+
unquoteLiteral,
|
|
49
|
+
variableOutputType
|
|
50
|
+
} from "./packager-tool-y57r93yz.js";
|
|
25
51
|
import"./packager-tool-zk7ntkba.js";
|
|
26
|
-
import
|
|
52
|
+
import {
|
|
53
|
+
buildElementId,
|
|
54
|
+
claim,
|
|
55
|
+
claimOutput,
|
|
56
|
+
dedupedId,
|
|
57
|
+
everySpelling,
|
|
58
|
+
indexKey,
|
|
59
|
+
modelKey,
|
|
60
|
+
referenceSpellings,
|
|
61
|
+
scopedSlaKey,
|
|
62
|
+
stageSpellings
|
|
63
|
+
} from "./packager-tool-20592jhn.js";
|
|
64
|
+
import {
|
|
65
|
+
BUSINESS_RULE_TASK_VERSION,
|
|
66
|
+
FILE_TYPE_JSON_SCHEMA,
|
|
67
|
+
httpRequestOutputName
|
|
68
|
+
} from "./packager-tool-bhhym40d.js";
|
|
27
69
|
import"./packager-tool-szn7gaaz.js";
|
|
28
70
|
import {
|
|
29
71
|
namedValue,
|
|
30
72
|
withoutTrailingSlug
|
|
31
|
-
} from "./packager-tool-
|
|
73
|
+
} from "./packager-tool-jexxh6qf.js";
|
|
74
|
+
import"./packager-tool-qmxmg1yv.js";
|
|
32
75
|
import {
|
|
33
76
|
byCodeUnit
|
|
34
77
|
} from "./packager-tool-r00e2fb3.js";
|
|
35
|
-
import"./packager-tool-
|
|
36
|
-
import"./packager-tool-
|
|
78
|
+
import"./packager-tool-zgm0r4yp.js";
|
|
79
|
+
import"./packager-tool-6sm17vbx.js";
|
|
80
|
+
import"./packager-tool-hdxtgckw.js";
|
|
37
81
|
import"./packager-tool-yvcrdbgp.js";
|
|
82
|
+
import"./packager-tool-sm8ertv4.js";
|
|
38
83
|
import {
|
|
39
84
|
catchError
|
|
40
|
-
} from "./packager-tool-
|
|
85
|
+
} from "./packager-tool-wv85dhy2.js";
|
|
41
86
|
import"./packager-tool-1yh8g550.js";
|
|
42
87
|
|
|
43
88
|
// ../case-tool/src/services/exit-condition-types.ts
|
|
@@ -47,413 +92,6 @@ var EXIT_CONDITION_TYPES = new Set([
|
|
|
47
92
|
"return-to-origin"
|
|
48
93
|
]);
|
|
49
94
|
|
|
50
|
-
// ../case-tool/src/services/sdd-convert/ids.ts
|
|
51
|
-
var buildElementId = (stageId, taskId) => `${stageId}-${taskId}`;
|
|
52
|
-
var SLUG_SUFFIX = /^(.*?)\s*\(\s*([^()]+?)\s*\)\s*$/;
|
|
53
|
-
var stageSpellings = (text, position) => {
|
|
54
|
-
const plain = text.replaceAll("`", "").trim();
|
|
55
|
-
const names = [plain];
|
|
56
|
-
const found = SLUG_SUFFIX.exec(plain);
|
|
57
|
-
const bare = found?.[1].trim() ?? "";
|
|
58
|
-
const slug = found?.[2].trim() ?? "";
|
|
59
|
-
if (bare !== "" && bare !== plain)
|
|
60
|
-
names.push(bare);
|
|
61
|
-
return {
|
|
62
|
-
names,
|
|
63
|
-
...slug !== "" && { slug },
|
|
64
|
-
ordinal: `stage ${position}`
|
|
65
|
-
};
|
|
66
|
-
};
|
|
67
|
-
var referenceSpellings = (text) => {
|
|
68
|
-
const { names, slug } = stageSpellings(text, 0);
|
|
69
|
-
return slug === undefined ? names : [...names, slug];
|
|
70
|
-
};
|
|
71
|
-
var indexKey = (name) => name.replaceAll("`", "").trim().toLowerCase();
|
|
72
|
-
var everySpelling = (name, position) => {
|
|
73
|
-
const { names, slug, ordinal } = stageSpellings(name, position);
|
|
74
|
-
return [...names, ...slug === undefined ? [] : [slug], ordinal].map(indexKey);
|
|
75
|
-
};
|
|
76
|
-
var claim = (index, key, id) => {
|
|
77
|
-
if (!index.has(key))
|
|
78
|
-
index.set(key, id);
|
|
79
|
-
};
|
|
80
|
-
var dedupedId = (base, taken) => {
|
|
81
|
-
let id = base;
|
|
82
|
-
let suffix = 2;
|
|
83
|
-
while (taken.has(id)) {
|
|
84
|
-
id = `${base}${suffix}`;
|
|
85
|
-
suffix += 1;
|
|
86
|
-
}
|
|
87
|
-
taken.add(id);
|
|
88
|
-
return id;
|
|
89
|
-
};
|
|
90
|
-
var exactKey = (name) => name.replaceAll("`", "").trim();
|
|
91
|
-
var claimOutput = (index, key, task, id) => {
|
|
92
|
-
const byTask = index.get(key) ?? new Map;
|
|
93
|
-
index.set(key, byTask);
|
|
94
|
-
if (!byTask.has(exactKey(task)))
|
|
95
|
-
byTask.set(exactKey(task), id);
|
|
96
|
-
};
|
|
97
|
-
var lookupOutput = (index, key, task) => {
|
|
98
|
-
const byTask = index.get(key);
|
|
99
|
-
if (byTask === undefined)
|
|
100
|
-
return;
|
|
101
|
-
const tasksNamed = (name, claim2) => typeof claim2 === "number" ? Array.from({ length: claim2 }, () => name) : [name];
|
|
102
|
-
const exact = byTask.get(exactKey(task));
|
|
103
|
-
if (exact !== undefined) {
|
|
104
|
-
return typeof exact === "number" ? { names: tasksNamed(exactKey(task), exact) } : { id: exact };
|
|
105
|
-
}
|
|
106
|
-
const [onlyName, only] = [...byTask.entries()][0] ?? [];
|
|
107
|
-
if (byTask.size === 1 && onlyName !== undefined && typeof only === "string") {
|
|
108
|
-
return { id: only };
|
|
109
|
-
}
|
|
110
|
-
return {
|
|
111
|
-
names: [...byTask].flatMap(([name, claim2]) => tasksNamed(name, claim2))
|
|
112
|
-
};
|
|
113
|
-
};
|
|
114
|
-
var scopedSlaKey = (scope, title) => `${scope}\x00${title}`;
|
|
115
|
-
|
|
116
|
-
// ../case-tool/src/services/sdd-convert/xrefs.ts
|
|
117
|
-
var QUOTED = String.raw`(?:'((?:\\.|[^'\\])*)'|"((?:\\.|[^"\\])*)"|` + "`((?:\\\\.|[^`\\\\])*)`" + String.raw`|\u201c([^\u201d]*)\u201d)`;
|
|
118
|
-
var XREF_CALL = new RegExp(String.raw`vars\.\$xref\(\s*${QUOTED}\s*,\s*${QUOTED}\s*,\s*${QUOTED}\s*\)`, "g");
|
|
119
|
-
var argumentOf = (groups) => groups.find((value) => value !== undefined) ?? "";
|
|
120
|
-
var unresolvedXrefDetail = (whole, found) => {
|
|
121
|
-
if (found === undefined) {
|
|
122
|
-
return `\`${whole}\` names an output this SDD does not declare, so the marker is left in place rather than pointed at a guess`;
|
|
123
|
-
}
|
|
124
|
-
const spellings = new Set(found.names);
|
|
125
|
-
const listed = [...spellings].map((name) => `\`${name}\``).join(", ");
|
|
126
|
-
if (spellings.size < found.names.length) {
|
|
127
|
-
return `\`${whole}\` names a task that ${found.names.length} tasks in that stage answer to (${listed}), so the marker is left in place rather than pointed at one of them. Task names are unique across the case, so rename all but one`;
|
|
128
|
-
}
|
|
129
|
-
return `\`${whole}\` names its task in a spelling that ${found.names.length} tasks answer to (${listed}), so the marker is left in place rather than pointed at one of them — write the task's name as its heading spells it`;
|
|
130
|
-
};
|
|
131
|
-
var DOTTED_READ = /^\.[A-Za-z_$]/;
|
|
132
|
-
var deferredOutputs = new WeakMap;
|
|
133
|
-
var markDeferredOutputs = (index, ids) => {
|
|
134
|
-
deferredOutputs.set(index, ids);
|
|
135
|
-
};
|
|
136
|
-
var expandXrefs = (text, context) => text.replace(XREF_CALL, (whole, ...rest) => {
|
|
137
|
-
const offset = rest[rest.length - 2];
|
|
138
|
-
const captured = rest.slice(0, -2);
|
|
139
|
-
const stage = argumentOf(captured.slice(0, 4));
|
|
140
|
-
const task = argumentOf(captured.slice(4, 8));
|
|
141
|
-
const output = argumentOf(captured.slice(8, 12));
|
|
142
|
-
const found = lookupOutput(context.outputs, `${indexKey(stage)}|${indexKey(task)}|${indexKey(output)}`, task);
|
|
143
|
-
if (found !== undefined && "id" in found) {
|
|
144
|
-
if (deferredOutputs.get(context.outputs)?.has(found.id)) {
|
|
145
|
-
context.unresolved.push({
|
|
146
|
-
kind: "placeholder",
|
|
147
|
-
where: context.where,
|
|
148
|
-
detail: `\`${whole}\` reads an output of a task the resolved file defers, so \`vars.${found.id}\` resolves to nothing until that task is filled`
|
|
149
|
-
});
|
|
150
|
-
}
|
|
151
|
-
const after = text.slice(offset + whole.length);
|
|
152
|
-
return DOTTED_READ.test(after) ? `vars.${found.id}?` : `vars.${found.id}`;
|
|
153
|
-
}
|
|
154
|
-
context.unresolved.push({
|
|
155
|
-
kind: "producer-reference",
|
|
156
|
-
where: context.where,
|
|
157
|
-
detail: unresolvedXrefDetail(whole, found)
|
|
158
|
-
});
|
|
159
|
-
return whole;
|
|
160
|
-
});
|
|
161
|
-
var expandOutputMarkers = (output, context) => {
|
|
162
|
-
const expand = (value2) => typeof value2 === "string" && value2.includes("$xref") ? expandXrefs(value2, context) : value2;
|
|
163
|
-
const value = expand(output.value);
|
|
164
|
-
const source = expand(output.source);
|
|
165
|
-
return value === output.value && source === output.source ? output : { ...output, value, source };
|
|
166
|
-
};
|
|
167
|
-
|
|
168
|
-
// ../case-tool/src/services/sdd-convert/io.ts
|
|
169
|
-
var taskMatcher = (model, taskName) => {
|
|
170
|
-
const mine = exactKey(taskName);
|
|
171
|
-
const folded = indexKey(taskName);
|
|
172
|
-
let unique = true;
|
|
173
|
-
for (const stage of model.stages) {
|
|
174
|
-
for (const other of stage.tasks) {
|
|
175
|
-
const name = exactKey(String(other.name ?? ""));
|
|
176
|
-
if (name !== mine && indexKey(name) === folded)
|
|
177
|
-
unique = false;
|
|
178
|
-
}
|
|
179
|
-
}
|
|
180
|
-
return {
|
|
181
|
-
names: (spelled) => exactKey(spelled) === mine || unique && indexKey(spelled) === folded,
|
|
182
|
-
unique
|
|
183
|
-
};
|
|
184
|
-
};
|
|
185
|
-
var declaredOutputs = (model, stageName, position, task) => {
|
|
186
|
-
const taskName = String(task.name ?? "");
|
|
187
|
-
const { names: own, slug, ordinal } = stageSpellings(stageName, position);
|
|
188
|
-
const names = [...own, ...slug === undefined ? [] : [slug], ordinal].map(indexKey);
|
|
189
|
-
const matcher = taskMatcher(model, taskName);
|
|
190
|
-
const mine = (producer) => names.includes(indexKey(producer.stage)) && matcher.names(producer.task);
|
|
191
|
-
const rows = [...task.outputRows ?? []];
|
|
192
|
-
const add = (name) => {
|
|
193
|
-
if (name !== "" && !rows.includes(name))
|
|
194
|
-
rows.push(name);
|
|
195
|
-
};
|
|
196
|
-
for (const producer of model.xrefOutputs) {
|
|
197
|
-
if (mine(producer))
|
|
198
|
-
add(producer.output);
|
|
199
|
-
}
|
|
200
|
-
for (const stage of model.stages) {
|
|
201
|
-
for (const other of stage.tasks) {
|
|
202
|
-
for (const row of other.producerInputs ?? []) {
|
|
203
|
-
const producer = row.producer;
|
|
204
|
-
if (producer !== undefined && mine(producer)) {
|
|
205
|
-
add(producer.output);
|
|
206
|
-
}
|
|
207
|
-
}
|
|
208
|
-
}
|
|
209
|
-
}
|
|
210
|
-
if (matcher.unique) {
|
|
211
|
-
for (const name of model.resourceOutputs[indexKey(taskName)] ?? []) {
|
|
212
|
-
add(name);
|
|
213
|
-
}
|
|
214
|
-
}
|
|
215
|
-
return rows;
|
|
216
|
-
};
|
|
217
|
-
var OUTPUT_TYPES = new Map([
|
|
218
|
-
["string", "string"],
|
|
219
|
-
["object", "jsonSchema"],
|
|
220
|
-
["json", "jsonSchema"],
|
|
221
|
-
["jsonschema", "jsonSchema"]
|
|
222
|
-
]);
|
|
223
|
-
var outputTypeFor = (model, stageNames, taskName, output) => {
|
|
224
|
-
const matcher = taskMatcher(model, taskName);
|
|
225
|
-
for (const stage of model.stages) {
|
|
226
|
-
for (const task of stage.tasks) {
|
|
227
|
-
for (const row of task.producerInputs ?? []) {
|
|
228
|
-
const producer = row.producer;
|
|
229
|
-
if (producer === undefined || row.direct !== true || typeof row.type !== "string" || !stageNames.includes(indexKey(producer.stage)) || !matcher.names(producer.task) || indexKey(producer.output) !== indexKey(output)) {
|
|
230
|
-
continue;
|
|
231
|
-
}
|
|
232
|
-
const mapped = OUTPUT_TYPES.get(row.type.trim().toLowerCase().replaceAll(" ", ""));
|
|
233
|
-
if (mapped !== undefined)
|
|
234
|
-
return mapped;
|
|
235
|
-
}
|
|
236
|
-
}
|
|
237
|
-
}
|
|
238
|
-
return;
|
|
239
|
-
};
|
|
240
|
-
var outputFor = (row, elementId, taken, type) => {
|
|
241
|
-
const leaf = row.split(".").at(-1) ?? row;
|
|
242
|
-
const base = leaf === "" ? leaf : `${leaf[0].toLowerCase()}${leaf.slice(1)}`;
|
|
243
|
-
const id = dedupedId(base, taken);
|
|
244
|
-
return {
|
|
245
|
-
name: leaf,
|
|
246
|
-
...type !== undefined && { type },
|
|
247
|
-
id,
|
|
248
|
-
var: id,
|
|
249
|
-
value: id,
|
|
250
|
-
source: `=${row}`,
|
|
251
|
-
target: `=${id}`,
|
|
252
|
-
elementId
|
|
253
|
-
};
|
|
254
|
-
};
|
|
255
|
-
var variableOutputType = (model, variable) => {
|
|
256
|
-
const declared = model.variableTypes[indexKey(variable)];
|
|
257
|
-
if (typeof declared !== "string" || declared.trim() === "") {
|
|
258
|
-
return;
|
|
259
|
-
}
|
|
260
|
-
const key = declared.trim().toLowerCase().replaceAll(" ", "");
|
|
261
|
-
return OUTPUT_TYPES.get(key) ?? "string";
|
|
262
|
-
};
|
|
263
|
-
var extractOutputFor = (row, elementId, taken, type) => {
|
|
264
|
-
const leaf = row.field.split(".").at(-1) ?? row.field;
|
|
265
|
-
const base = leaf === "" ? leaf : `${leaf[0].toLowerCase()}${leaf.slice(1)}`;
|
|
266
|
-
const id = dedupedId(base, taken);
|
|
267
|
-
return {
|
|
268
|
-
name: leaf,
|
|
269
|
-
...type !== undefined && { type },
|
|
270
|
-
id,
|
|
271
|
-
var: row.variable,
|
|
272
|
-
value: row.variable,
|
|
273
|
-
source: `=${row.field}`,
|
|
274
|
-
target: `=${id}`,
|
|
275
|
-
originalVar: id,
|
|
276
|
-
elementId
|
|
277
|
-
};
|
|
278
|
-
};
|
|
279
|
-
var customOutputFor = (row, type) => ({
|
|
280
|
-
name: row.variable,
|
|
281
|
-
...type !== undefined && { type },
|
|
282
|
-
custom: true,
|
|
283
|
-
var: row.variable,
|
|
284
|
-
value: canonicalExpression(unquoteLiteral(row.expression)),
|
|
285
|
-
source: canonicalExpression(unquoteLiteral(row.expression)),
|
|
286
|
-
target: "",
|
|
287
|
-
body: "",
|
|
288
|
-
elementId: "root"
|
|
289
|
-
});
|
|
290
|
-
var canonicalExpression = (value) => value.startsWith("=metadata.") ? `=js:${value.slice(1)}` : value;
|
|
291
|
-
var unquoteLiteral = (cell) => {
|
|
292
|
-
const text = cell.trim();
|
|
293
|
-
const quote = text[0];
|
|
294
|
-
if (quote !== '"' && quote !== "'")
|
|
295
|
-
return cell;
|
|
296
|
-
if (text.length < 2 || text[text.length - 1] !== quote)
|
|
297
|
-
return cell;
|
|
298
|
-
const inner = text.slice(1, -1);
|
|
299
|
-
for (let at = 0;at < inner.length; at += 1) {
|
|
300
|
-
if (inner[at] === "\\") {
|
|
301
|
-
at += 1;
|
|
302
|
-
continue;
|
|
303
|
-
}
|
|
304
|
-
if (inner[at] === quote)
|
|
305
|
-
return cell;
|
|
306
|
-
}
|
|
307
|
-
return inner.replaceAll(`\\${quote}`, quote);
|
|
308
|
-
};
|
|
309
|
-
var RANK_LITERAL = 1;
|
|
310
|
-
var RANK_PRODUCER = 2;
|
|
311
|
-
var RANK_EXPRESSION = 3;
|
|
312
|
-
var unboundProducerDetail = (target, found) => {
|
|
313
|
-
if (found === undefined) {
|
|
314
|
-
return `the Inputs row reads an output (${target}) that no task in this SDD declares`;
|
|
315
|
-
}
|
|
316
|
-
const spellings = new Set(found.names);
|
|
317
|
-
const listed = [...spellings].map((task) => `"${task}"`).join(", ");
|
|
318
|
-
if (spellings.size < found.names.length) {
|
|
319
|
-
return `the Inputs row reads an output (${target}) of a task that ${found.names.length} tasks in that stage answer to (${listed}), so it is left unbound rather than pointed at one of them. Task names are unique across the case, so rename all but one`;
|
|
320
|
-
}
|
|
321
|
-
return `the Inputs row reads an output (${target}) whose task spelling ${found.names.length} tasks answer to (${listed}), so it is left unbound rather than pointed at one of them`;
|
|
322
|
-
};
|
|
323
|
-
var inputsFor = (task, elementId, where, unresolved, outputs) => {
|
|
324
|
-
const ranked = new Map;
|
|
325
|
-
const offer = (name, rank, input) => {
|
|
326
|
-
const existing = ranked.get(name);
|
|
327
|
-
if (existing === undefined || rank > existing.rank) {
|
|
328
|
-
ranked.set(name, { rank, input });
|
|
329
|
-
}
|
|
330
|
-
};
|
|
331
|
-
for (const row of task.literalInputs ?? []) {
|
|
332
|
-
offer(String(row.name ?? ""), RANK_LITERAL, {
|
|
333
|
-
name: String(row.name ?? ""),
|
|
334
|
-
value: unquoteLiteral(String(row.value ?? "")),
|
|
335
|
-
elementId
|
|
336
|
-
});
|
|
337
|
-
}
|
|
338
|
-
for (const row of task.expressionInputs ?? []) {
|
|
339
|
-
offer(String(row.name ?? ""), RANK_EXPRESSION, {
|
|
340
|
-
name: String(row.name ?? ""),
|
|
341
|
-
value: canonicalExpression(expandXrefs(String(row.expression ?? row.value ?? ""), {
|
|
342
|
-
outputs,
|
|
343
|
-
where,
|
|
344
|
-
unresolved
|
|
345
|
-
})),
|
|
346
|
-
elementId
|
|
347
|
-
});
|
|
348
|
-
}
|
|
349
|
-
for (const row of task.producerInputs ?? []) {
|
|
350
|
-
const name = String(row.name ?? "");
|
|
351
|
-
const producer = row.producer;
|
|
352
|
-
const found = producer === undefined ? undefined : lookupOutput(outputs, `${indexKey(producer.stage)}|${indexKey(producer.task)}|${indexKey(producer.output)}`, producer.task);
|
|
353
|
-
if (found === undefined || !("id" in found)) {
|
|
354
|
-
const target = producer === undefined ? "unnamed producer" : `"${producer.stage}"."${producer.task}".${producer.output}`;
|
|
355
|
-
unresolved.push({
|
|
356
|
-
kind: "producer-reference",
|
|
357
|
-
where: `${where}.inputs[${name}]`,
|
|
358
|
-
detail: unboundProducerDetail(target, found)
|
|
359
|
-
});
|
|
360
|
-
continue;
|
|
361
|
-
}
|
|
362
|
-
const id = found.id;
|
|
363
|
-
offer(name, RANK_PRODUCER, {
|
|
364
|
-
name,
|
|
365
|
-
value: row.direct === false ? expandXrefs(String(row.value ?? `=js:vars.${id}`), {
|
|
366
|
-
outputs,
|
|
367
|
-
where,
|
|
368
|
-
unresolved
|
|
369
|
-
}) : `=vars.${id}`,
|
|
370
|
-
elementId
|
|
371
|
-
});
|
|
372
|
-
}
|
|
373
|
-
return [...ranked.values()].map((entry) => entry.input);
|
|
374
|
-
};
|
|
375
|
-
|
|
376
|
-
// ../case-tool/src/services/sdd-convert/resources.ts
|
|
377
|
-
var SDD_TASK_TYPES = new Set([
|
|
378
|
-
...NAME_BOUND_TASK_TYPES,
|
|
379
|
-
...CONNECTOR_TASK_TYPES,
|
|
380
|
-
"wait-for-timer"
|
|
381
|
-
]);
|
|
382
|
-
var UNAUTHORABLE_TASK_TYPES = new Set([
|
|
383
|
-
"document-extraction",
|
|
384
|
-
"external-agent",
|
|
385
|
-
"external-workflow",
|
|
386
|
-
"flow-process",
|
|
387
|
-
"http-request",
|
|
388
|
-
"script"
|
|
389
|
-
]);
|
|
390
|
-
var RESOURCE_KINDS = new Map([
|
|
391
|
-
["agent", { resource: "process", subType: "Agent" }],
|
|
392
|
-
["process", { resource: "process", subType: "ProcessOrchestration" }],
|
|
393
|
-
["api-workflow", { resource: "process", subType: "Api" }],
|
|
394
|
-
["case-management", { resource: "process", subType: "CaseManagement" }],
|
|
395
|
-
["function", { resource: "process", subType: "Function" }],
|
|
396
|
-
["rpa", { resource: "process" }],
|
|
397
|
-
["business-rule", { resource: "BusinessRule" }],
|
|
398
|
-
["action", { resource: "app" }]
|
|
399
|
-
]);
|
|
400
|
-
var bindingPairFor = (resourceName, folderPath, type, ordinal) => {
|
|
401
|
-
const resourceKey = `${folderPath}.${resourceName}`;
|
|
402
|
-
const kind = RESOURCE_KINDS.get(type) ?? { resource: "process" };
|
|
403
|
-
const shared = {
|
|
404
|
-
type: "string",
|
|
405
|
-
resource: kind.resource,
|
|
406
|
-
...kind.subType !== undefined && { resourceSubType: kind.subType },
|
|
407
|
-
resourceKey
|
|
408
|
-
};
|
|
409
|
-
const nameId = `bN${ordinal}`;
|
|
410
|
-
const folderId = `bF${ordinal}`;
|
|
411
|
-
return {
|
|
412
|
-
nameId,
|
|
413
|
-
folderId,
|
|
414
|
-
name: {
|
|
415
|
-
id: nameId,
|
|
416
|
-
name: "name",
|
|
417
|
-
...shared,
|
|
418
|
-
default: resourceName,
|
|
419
|
-
propertyAttribute: "name"
|
|
420
|
-
},
|
|
421
|
-
folder: {
|
|
422
|
-
id: folderId,
|
|
423
|
-
name: "folderPath",
|
|
424
|
-
...shared,
|
|
425
|
-
default: folderPath,
|
|
426
|
-
propertyAttribute: "folderPath"
|
|
427
|
-
}
|
|
428
|
-
};
|
|
429
|
-
};
|
|
430
|
-
var RECIPIENT_TYPES = new Map([["email", 2]]);
|
|
431
|
-
var connectionPairFor = (connectionId, ordinal) => {
|
|
432
|
-
const shared = {
|
|
433
|
-
type: "string",
|
|
434
|
-
resource: "Connection",
|
|
435
|
-
resourceKey: connectionId
|
|
436
|
-
};
|
|
437
|
-
const connectionRef = `bOC${ordinal}`;
|
|
438
|
-
const folderRef = `bOF${ordinal}`;
|
|
439
|
-
return {
|
|
440
|
-
connectionRef,
|
|
441
|
-
folderRef,
|
|
442
|
-
connection: {
|
|
443
|
-
id: connectionRef,
|
|
444
|
-
name: "connection",
|
|
445
|
-
...shared,
|
|
446
|
-
propertyAttribute: "ConnectionId"
|
|
447
|
-
},
|
|
448
|
-
folder: {
|
|
449
|
-
id: folderRef,
|
|
450
|
-
name: "folderKey",
|
|
451
|
-
...shared,
|
|
452
|
-
propertyAttribute: "folderKey"
|
|
453
|
-
}
|
|
454
|
-
};
|
|
455
|
-
};
|
|
456
|
-
|
|
457
95
|
// ../case-tool/src/services/sdd-convert/connector.ts
|
|
458
96
|
var connectorInputs = (inputs, connector, elementId, where, unresolved) => {
|
|
459
97
|
if (connector === undefined)
|
|
@@ -739,19 +377,41 @@ var ruleFor = (condition, idPrefix, context) => {
|
|
|
739
377
|
context.unresolved.push({
|
|
740
378
|
kind: "connector-connection",
|
|
741
379
|
where: context.where,
|
|
742
|
-
detail: "a `wait-for-connector` rule needs its activity's context, and no `**Connector Rule Detail:**` accompanies this stage's entry table"
|
|
380
|
+
detail: "a `wait-for-connector` rule needs its activity's context, and no `**Connector Rule Detail:**` accompanies this stage's entry table, so the rule is written with an empty `context` to fill before debug"
|
|
743
381
|
});
|
|
382
|
+
base.uipath = {
|
|
383
|
+
serviceType: WAIT_FOR_EVENT,
|
|
384
|
+
context: [],
|
|
385
|
+
inputs: [],
|
|
386
|
+
outputs: [],
|
|
387
|
+
bindings: []
|
|
388
|
+
};
|
|
744
389
|
} else {
|
|
390
|
+
const built = connectorContextFor(context.connector, context.where, context.connections, context.bindings, context.unresolved).filter((entry) => entry.name !== "operation" || context.connector?.operation !== undefined);
|
|
391
|
+
const missing = missingActivitySlots(built);
|
|
392
|
+
if (missing.length > 0) {
|
|
393
|
+
context.unresolved.push({
|
|
394
|
+
kind: "connector-context",
|
|
395
|
+
where: context.where,
|
|
396
|
+
detail: `the document names no ${missing.map((name) => `\`${name}\``).join(" or ")} for this \`wait-for-connector\` rule, so it is left out of the rule's \`context\`, to fill before debug`
|
|
397
|
+
});
|
|
398
|
+
}
|
|
745
399
|
base.uipath = {
|
|
746
|
-
|
|
747
|
-
|
|
748
|
-
|
|
749
|
-
|
|
400
|
+
serviceType: WAIT_FOR_EVENT,
|
|
401
|
+
context: built,
|
|
402
|
+
...missing.length > 0 && {
|
|
403
|
+
inputs: [],
|
|
404
|
+
outputs: [],
|
|
405
|
+
bindings: []
|
|
406
|
+
}
|
|
750
407
|
};
|
|
751
408
|
}
|
|
752
409
|
}
|
|
753
410
|
return base;
|
|
754
411
|
};
|
|
412
|
+
var WAIT_FOR_EVENT = "Intsvc.WaitForEvent";
|
|
413
|
+
var ACTIVITY_SLOTS = ["connectorKey", "operation"];
|
|
414
|
+
var missingActivitySlots = (entries) => ACTIVITY_SLOTS.filter((name) => !entries.some((entry) => entry.name === name && typeof entry.value === "string" && entry.value !== ""));
|
|
755
415
|
var displayNameOf = (condition) => {
|
|
756
416
|
const name = String(condition.displayName ?? "").trim();
|
|
757
417
|
return name === "" ? {} : { displayName: name };
|
|
@@ -934,6 +594,91 @@ var slaRuleFor = (displayName, duration, rows, where, unresolved, asked = {}) =>
|
|
|
934
594
|
...escalations.length > 0 && { escalationRule: escalations }
|
|
935
595
|
};
|
|
936
596
|
};
|
|
597
|
+
var conditionalSlaRules = (rows, where, unresolved, expand, hasDefault, defaultDuration, escalate, reportNoDefault = true) => {
|
|
598
|
+
const escalationsFor = (duration) => {
|
|
599
|
+
const copied = escalate?.(duration, [])?.escalationRule;
|
|
600
|
+
if (!Array.isArray(copied) || copied.length === 0)
|
|
601
|
+
return {};
|
|
602
|
+
const escalationRule = copied;
|
|
603
|
+
const breaches = escalationRule.some((one) => one.triggerInfo?.type === "sla-breached");
|
|
604
|
+
return {
|
|
605
|
+
escalationRule: breaches ? escalationRule : [
|
|
606
|
+
...escalationRule,
|
|
607
|
+
{
|
|
608
|
+
id: prefixedId("esc_", 6),
|
|
609
|
+
displayName: "SLA breached",
|
|
610
|
+
triggerInfo: { type: "sla-breached" }
|
|
611
|
+
}
|
|
612
|
+
]
|
|
613
|
+
};
|
|
614
|
+
};
|
|
615
|
+
const rules = [];
|
|
616
|
+
const unconditional = [];
|
|
617
|
+
const gates = new Map;
|
|
618
|
+
for (const [at, row] of rows.entries()) {
|
|
619
|
+
const here = `${where}[${row.displayName ?? at}]`;
|
|
620
|
+
const parts = SLA_DURATION.exec(row.duration.trim());
|
|
621
|
+
const unit = parts === null ? undefined : SLA_UNITS.get(parts[2].toLowerCase());
|
|
622
|
+
const expression = row.expression.trim();
|
|
623
|
+
if (parts === null || unit === undefined || !expression.startsWith("=")) {
|
|
624
|
+
unresolved.push({
|
|
625
|
+
kind: "case-sla",
|
|
626
|
+
where: here,
|
|
627
|
+
detail: `the conditional SLA rule ${row.displayName === undefined ? `\`${expression}\`` : `"${row.displayName}"`} ${!expression.startsWith("=") ? "states its condition as prose, not an `=` expression" : `has the duration \`${row.duration}\`, which gives no count and unit`}, so it is left out rather than guessed at`
|
|
628
|
+
});
|
|
629
|
+
continue;
|
|
630
|
+
}
|
|
631
|
+
const rule = {
|
|
632
|
+
id: prefixedId("sla_", 6),
|
|
633
|
+
...row.displayName !== undefined && {
|
|
634
|
+
displayName: row.displayName
|
|
635
|
+
},
|
|
636
|
+
expression: canonicalExpression(expand(expression, `${here}.expression`)),
|
|
637
|
+
count: Number(parts[1]),
|
|
638
|
+
unit,
|
|
639
|
+
...escalationsFor(row.duration)
|
|
640
|
+
};
|
|
641
|
+
if (/^=js:\s*true\s*$/.test(expression)) {
|
|
642
|
+
if (!hasDefault && unconditional.length === 0) {
|
|
643
|
+
const escalationRule = escalate?.(row.duration, unresolved)?.escalationRule;
|
|
644
|
+
const { escalationRule: _copied, ...bare } = rule;
|
|
645
|
+
unconditional.push(escalationRule === undefined ? bare : { ...bare, escalationRule });
|
|
646
|
+
continue;
|
|
647
|
+
}
|
|
648
|
+
const kept = defaultDuration ?? (unconditional[0] === undefined ? undefined : `${String(unconditional[0].count)} ${String(unconditional[0].unit)}`);
|
|
649
|
+
if (kept !== undefined && kept !== `${rule.count} ${unit}`) {
|
|
650
|
+
unresolved.push({
|
|
651
|
+
kind: "case-sla",
|
|
652
|
+
where: here,
|
|
653
|
+
detail: `the SLA table restates the default as \`${row.duration}\`, and the default is already ${kept}; the first is kept, and the document has to say which it means`
|
|
654
|
+
});
|
|
655
|
+
}
|
|
656
|
+
continue;
|
|
657
|
+
}
|
|
658
|
+
const earlier = gates.get(gateKey(rule.expression));
|
|
659
|
+
if (earlier !== undefined) {
|
|
660
|
+
unresolved.push({
|
|
661
|
+
kind: "case-sla",
|
|
662
|
+
where: here,
|
|
663
|
+
detail: `the conditional SLA rule ${row.displayName === undefined ? `\`${expression}\`` : `"${row.displayName}"`} has the same condition as ${earlier}, and only the first rule whose condition holds applies, so it is left out; the document has to say which duration that condition takes`
|
|
664
|
+
});
|
|
665
|
+
continue;
|
|
666
|
+
}
|
|
667
|
+
gates.set(gateKey(rule.expression), row.displayName === undefined ? `row ${at + 1}` : `"${row.displayName}"`);
|
|
668
|
+
rules.push(rule);
|
|
669
|
+
}
|
|
670
|
+
if (rules.length > 0 && !hasDefault && unconditional.length === 0) {
|
|
671
|
+
if (!reportNoDefault)
|
|
672
|
+
return [];
|
|
673
|
+
unresolved.push({
|
|
674
|
+
kind: "case-sla",
|
|
675
|
+
where,
|
|
676
|
+
detail: `the SLA table gives ${rules.length === 1 ? "a conditional rule" : `${rules.length} conditional rules`} and no default — no Duration cell and no \`=js:true\` row — and the engine runs its last rule unconditionally, so none of them is written; the document has to state the duration that applies otherwise`
|
|
677
|
+
});
|
|
678
|
+
return [];
|
|
679
|
+
}
|
|
680
|
+
return [...rules, ...unconditional];
|
|
681
|
+
};
|
|
937
682
|
|
|
938
683
|
// ../case-tool/src/services/sdd-convert/triggers.ts
|
|
939
684
|
var MANUAL_TRIGGERS = new Set(["manual", "none", "n/a", "na"]);
|
|
@@ -1018,10 +763,23 @@ var boundTriggerFor = (declared, triggers) => {
|
|
|
1018
763
|
ambiguous: callable.length === 0 ? "every declared trigger is a timer, so none of them is the one a caller starts the case through" : `${callable.length} of the declared triggers are non-timer, so which one a blank \`sourceTriggers\` means is not stated`
|
|
1019
764
|
};
|
|
1020
765
|
};
|
|
766
|
+
var variableTypeFor = (name, declared, unresolved) => {
|
|
767
|
+
if (declared === undefined)
|
|
768
|
+
return "string";
|
|
769
|
+
const known = canonicalVariableType(declared);
|
|
770
|
+
if (known !== undefined)
|
|
771
|
+
return known.type;
|
|
772
|
+
unresolved.push({
|
|
773
|
+
kind: "variable-type",
|
|
774
|
+
where: `variables[${name}].type`,
|
|
775
|
+
detail: `"${name}" is declared \`${declared}\`, which is no case variable type — the Case Designer writes string, integer, float, double, boolean, datetime, date, time, object, file, array or jsonSchema — so it is written as declared, and validate reports it until the Type cell names one of them`
|
|
776
|
+
});
|
|
777
|
+
return declared;
|
|
778
|
+
};
|
|
1021
779
|
var jsonSchemaBody = (name, type, model, unresolved) => {
|
|
1022
780
|
if (type !== "jsonSchema")
|
|
1023
781
|
return;
|
|
1024
|
-
const declared = model.variableBodies?.[
|
|
782
|
+
const declared = model.variableBodies?.[modelKey(name)];
|
|
1025
783
|
if (declared === undefined || declared.trim() === "") {
|
|
1026
784
|
unresolved.push({
|
|
1027
785
|
kind: "variable-body",
|
|
@@ -1043,7 +801,7 @@ var jsonSchemaBody = (name, type, model, unresolved) => {
|
|
|
1043
801
|
};
|
|
1044
802
|
var caseVariablesFor = (model, triggers = [], unresolved = []) => {
|
|
1045
803
|
const buckets = { inputs: [], outputs: [], inputOutputs: [], bridges: new Map };
|
|
1046
|
-
const categorised = model.variables.filter((name) => model.variableCategories[
|
|
804
|
+
const categorised = model.variables.filter((name) => model.variableCategories[modelKey(name)] !== undefined).length;
|
|
1047
805
|
if (model.variables.length > 0 && categorised === 0) {
|
|
1048
806
|
unresolved.push({
|
|
1049
807
|
kind: "variable-category",
|
|
@@ -1052,7 +810,7 @@ var caseVariablesFor = (model, triggers = [], unresolved = []) => {
|
|
|
1052
810
|
});
|
|
1053
811
|
}
|
|
1054
812
|
for (const name of model.variables) {
|
|
1055
|
-
const key =
|
|
813
|
+
const key = modelKey(name);
|
|
1056
814
|
const declaredCategory = model.variableCategories[key];
|
|
1057
815
|
if (declaredCategory === undefined && categorised > 0) {
|
|
1058
816
|
unresolved.push({
|
|
@@ -1064,7 +822,7 @@ var caseVariablesFor = (model, triggers = [], unresolved = []) => {
|
|
|
1064
822
|
const category = declaredCategory ?? "variable";
|
|
1065
823
|
const groups = VARIABLE_PLACEMENT.get(category) ?? ["inputOutputs"];
|
|
1066
824
|
const carriesDefault = DEFAULT_GROUP.get(category) ?? "inputOutputs";
|
|
1067
|
-
const type = model.variableTypes[key]
|
|
825
|
+
const type = variableTypeFor(name, model.variableTypes[key], unresolved);
|
|
1068
826
|
const body = jsonSchemaBody(name, type, model, unresolved);
|
|
1069
827
|
const fileBody = category === "in" && type === "file" ? FILE_TYPE_JSON_SCHEMA : undefined;
|
|
1070
828
|
const declared = model.variableDefaults[key] ?? "";
|
|
@@ -1249,15 +1007,17 @@ var finishCaseDocument = (document, model, index, unresolved) => {
|
|
|
1249
1007
|
detail: "no stage declares a `case-entered` entry condition, so nothing makes a first stage eligible and the case never starts"
|
|
1250
1008
|
});
|
|
1251
1009
|
}
|
|
1252
|
-
const slaRules = index.
|
|
1010
|
+
const slaRules = index.caseSlaRules;
|
|
1253
1011
|
if (slaRules.length > 0) {
|
|
1254
1012
|
document.metadata = { ...document.metadata, slaRules };
|
|
1255
|
-
}
|
|
1013
|
+
}
|
|
1014
|
+
const hasDefaultRule = slaRules.some((rule) => /^=js:\s*true\s*$/.test(String(rule.expression ?? "")));
|
|
1015
|
+
if (!hasDefaultRule && (model.caseSla === true || /\d/.test(String(model.caseSlaDuration ?? "")))) {
|
|
1256
1016
|
const stated = String(model.caseSlaDuration ?? "").trim();
|
|
1257
1017
|
unresolved.push({
|
|
1258
1018
|
kind: "case-sla",
|
|
1259
1019
|
where: "metadata.slaRules",
|
|
1260
|
-
detail: `this SDD declares a case SLA but no rule could be emitted from it: the duration cell is ${stated === "" ? "absent" : `\`${stated}\`, which gives no count and unit`}. Any conditional rules or escalations it declares outside a recognised SLA heading are not carried either — a combined rule table under a heading like \`SLA Escalation\`, or a condition written as prose rather than an expression, is left for authoring rather than guessed at`
|
|
1020
|
+
detail: `this SDD declares a case SLA but no default rule could be emitted from it: the duration cell is ${stated === "" ? "absent" : `\`${stated}\`, which gives no count and unit`}. Any conditional rules or escalations it declares outside a recognised SLA heading are not carried either — a combined rule table under a heading like \`SLA Escalation\`, or a condition written as prose rather than an expression, is left for authoring rather than guessed at. Conditional rules it does declare are dropped with the default, since without one the engine runs the last rule for every case`
|
|
1261
1021
|
});
|
|
1262
1022
|
}
|
|
1263
1023
|
const caseVariables = caseVariablesFor(model, emittedTriggers, unresolved);
|
|
@@ -1317,6 +1077,331 @@ var finishCaseDocument = (document, model, index, unresolved) => {
|
|
|
1317
1077
|
}
|
|
1318
1078
|
return { conditionCount };
|
|
1319
1079
|
};
|
|
1080
|
+
// ../case-tool/src/services/sdd-convert/http-request-metadata.json
|
|
1081
|
+
var http_request_metadata_default = {
|
|
1082
|
+
activityPropertyConfiguration: {
|
|
1083
|
+
configuration: '=jsonString:{"essentialConfiguration":{"connectorVersion":"1.5.3","scriptRef":null,"customFieldsRequestDetails":null,"instanceParameters":{"connectorKey":"uipath-uipath-http","objectName":"http-request","httpMethod":"POST","activityType":"Curated","version":"1.0.0","supportsStreaming":false,"subType":"method"},"objectName":"http-request","operation":"create","packageVersion":"1.0.0","httpMethod":"POST","path":"/http-request","unifiedTypesCompatible":true,"savedJitInputFieldId":"in_http-request"},"optionalConfiguration":{"_textBlocks":[{"name":"contentTypeNotice","text":"The content-type header must be application/json.","position":"above"}],"objectActions":[],"connectorName":"HTTP","agentIdentity":null,"maxPageSize":100,"jobArguments":null,"isAutopilotInvalidConfig":false,"additionalHeaders":null,"cachedLookupValues":[],"cachedBrowserItems":[],"cachedPropertyMappings":[],"primaryKeys":[],"objectDisplayName":"HTTP Request","eventMode":null,"eventOperation":null,"hasBreakingChanges":false,"fieldsContainer":{"outputTypeDefinition":"{\\"body\\":object;\\"code\\":number;\\"method\\":string;\\"rawStringBody\\":string;\\"request\\":{\\"headers\\":object;\\"methodType\\":string;\\"query\\":object;\\"type\\":string;\\"url\\":string}}","outputJsonSchema":{"$schema":"http://json-schema.org/draft-07/schema#","type":"object","properties":{"method":{"title":"Method","type":"string","description":"Specifies the HTTP method to be used for the request."},"body":{"title":"Body","$ref":"#/definitions/body"},"code":{"title":"Code","type":"integer","description":"The Code"},"rawStringBody":{"title":"Raw body","type":"string","description":"The Raw string body"},"request":{"title":"Request","$ref":"#/definitions/request"}},"definitions":{"body":{"type":"object","properties":{}},"request":{"type":"object","properties":{"type":{"title":"Request type","type":"string","description":"The Request type"},"url":{"title":"Request url","type":"string","description":"The Request url"},"methodType":{"title":"Method","type":"string","description":"The Request method type"}}}}},"hasFileOutput":false,"populateOutputFields":true,"inputFields":[{"typeScriptDefinition":null,"useUrlInput":false,"resolvedUrl":null,"id":"authentication","name":"authentication","displayName":"Authentication","description":"Authentication","type":"string","sortOrder":1,"defaultValue":"manual","primaryKey":false,"enum":[{"name":"Manual authentication","value":"manual","description":"Provide authentication details directly in the request"},{"name":"Connector based authentication","value":"connector","description":"Use authentication details from a configured connector"}],"design":{"loadByDefault":false,"isMultiSelect":false,"enableUserOverride":false,"isHidden":false,"fieldActions":[{"actionType":"showMessages","rules":[{"type":"field","refFieldName":"authentication","refFieldValues":["connector"],"isCleared":false,"isVariable":false}],"messages":["contentTypeNotice"]},{"actionType":"clearMessages","rules":[{"type":"field","refFieldName":"authentication","refFieldValues":["manual"],"isCleared":false,"isVariable":false}],"messages":["contentTypeNotice"]}],"textBlocks":[{"name":"contentTypeNotice","text":"The content-type header must be application/json.","position":"above"}],"validation":false},"fieldActions":[{"actionType":"showMessages","rules":[{"type":"field","refFieldName":"authentication","refFieldValues":["connector"],"isCleared":false,"isVariable":false}],"messages":["contentTypeNotice"]},{"actionType":"clearMessages","rules":[{"type":"field","refFieldName":"authentication","refFieldValues":["manual"],"isCleared":false,"isVariable":false}],"messages":["contentTypeNotice"]}],"searchable":false,"searchableJoins":null,"required":true,"request":true,"response":false,"responseCurated":false,"fieldLocation":"body","onCanvas":null,"isJitField":false,"isFieldActionParent":true,"isMainResponseField":false,"isMethodParameter":false,"isBackgroundField":false,"filterTree":null,"filterNeedsRefresh":null,"arrayInputPaths":null,"clrType":{"_elementType":null,"_isNullable":false,"isArray":false,"genericTypeArguments":[],"fullName":null,"name":"String","assemblyQualifiedName":"String","isValueType":true},"forceExpressionEditor":false,"requiredGroups":null,"disableExpressions":false,"backingField":null,"searchableDisplayName":null,"selectedResourceId":null},{"typeScriptDefinition":null,"useUrlInput":false,"resolvedUrl":null,"id":"targetConnector","name":"targetConnector","displayName":"Connector","description":"Select a connector","type":"string","sortOrder":2,"primaryKey":false,"lookup":{"objectName":"connectors","lookupNames":["name"],"lookupValue":"key","path":"/Connectors?hasHttpRequest=true","orderBy":"NONE","defaultLookupValues":[{"name":"HTTP","key":"uipath-uipath-http","priority":1,"isDefault":true,"description":"UiPath HTTP connector for general API requests"}]},"design":{"component":"Connectors","loadByDefault":true,"isMultiSelect":false,"enableUserOverride":false,"displayPattern":"{name}","isHidden":false,"fieldActions":[{"actionType":"show","priorityOrder":1,"rules":[{"type":"field","refFieldName":"authentication","refFieldValues":["connector"],"isCleared":false,"isVariable":false,"isWorkflowExpression":true}]},{"actionType":"hide","rules":[{"type":"field","refFieldName":"authentication","refFieldValues":["manual"],"isCleared":true,"isVariable":false}]},{"actionType":"hide","rules":[{"type":"field","refFieldName":"authentication","isCleared":true,"isVariable":false}]}],"position":"primary","solutionResourceKind":"connector","validation":false},"fieldActions":[{"actionType":"show","priorityOrder":1,"rules":[{"type":"field","refFieldName":"authentication","refFieldValues":["connector"],"isCleared":false,"isVariable":false,"isWorkflowExpression":true}]},{"actionType":"hide","rules":[{"type":"field","refFieldName":"authentication","refFieldValues":["manual"],"isCleared":true,"isVariable":false}]},{"actionType":"hide","rules":[{"type":"field","refFieldName":"authentication","isCleared":true,"isVariable":false}]}],"searchable":false,"searchableJoins":null,"required":true,"request":true,"response":false,"responseCurated":false,"fieldLocation":"body","onCanvas":null,"isJitField":false,"isFieldActionParent":true,"isMainResponseField":false,"isMethodParameter":false,"isBackgroundField":false,"filterTree":null,"filterNeedsRefresh":null,"arrayInputPaths":null,"clrType":{"_elementType":null,"_isNullable":false,"isArray":false,"genericTypeArguments":[],"fullName":null,"name":"String","assemblyQualifiedName":"String","isValueType":true},"forceExpressionEditor":false,"requiredGroups":null,"disableExpressions":false,"backingField":null,"searchableDisplayName":null,"selectedResourceId":null},{"typeScriptDefinition":null,"useUrlInput":false,"resolvedUrl":null,"id":"connection","name":"connection","displayName":"Connection","description":"Connections","type":"string","sortOrder":3,"primaryKey":false,"design":{"component":"Connections","loadByDefault":true,"isMultiSelect":false,"enableUserOverride":false,"isHidden":false,"fieldActions":[{"actionType":"hide","rules":[{"type":"field","refFieldName":"authentication","refFieldValues":["manual"],"isCleared":true,"isVariable":false}]},{"actionType":"hide","rules":[{"type":"field","refFieldName":"authentication","refFieldValues":["connector"],"isCleared":true,"isVariable":false},{"type":"field","refFieldName":"targetConnector","isCleared":true,"isVariable":false}]},{"actionType":"hide","rules":[{"type":"field","refFieldName":"authentication","isCleared":true,"isVariable":false}]},{"actionType":"show","priorityOrder":1,"rules":[{"type":"field","refFieldName":"authentication","refFieldValues":["connector"],"isCleared":true,"isVariable":false},{"type":"field","refFieldName":"targetConnector","refFieldValues":["*"],"isCleared":true,"isVariable":false}]}],"position":"primary","solutionResourceKind":"connection","validation":false},"fieldActions":[{"actionType":"hide","rules":[{"type":"field","refFieldName":"authentication","refFieldValues":["manual"],"isCleared":true,"isVariable":false}]},{"actionType":"hide","rules":[{"type":"field","refFieldName":"authentication","refFieldValues":["connector"],"isCleared":true,"isVariable":false},{"type":"field","refFieldName":"targetConnector","isCleared":true,"isVariable":false}]},{"actionType":"hide","rules":[{"type":"field","refFieldName":"authentication","isCleared":true,"isVariable":false}]},{"actionType":"show","priorityOrder":1,"rules":[{"type":"field","refFieldName":"authentication","refFieldValues":["connector"],"isCleared":true,"isVariable":false},{"type":"field","refFieldName":"targetConnector","refFieldValues":["*"],"isCleared":true,"isVariable":false}]},{"rules":[{"refFieldName":"targetConnector","refFieldValues":["*"],"isCleared":false,"isConstantValue":false,"isWorkflowExpression":false}],"actionType":"grabValue","groupNames":[],"messages":null}],"searchable":false,"searchableJoins":null,"required":true,"request":true,"response":false,"responseCurated":false,"fieldLocation":"body","onCanvas":null,"isJitField":false,"isFieldActionParent":false,"isMainResponseField":false,"isMethodParameter":false,"isBackgroundField":false,"filterTree":null,"filterNeedsRefresh":null,"arrayInputPaths":null,"clrType":{"_elementType":null,"_isNullable":false,"isArray":false,"genericTypeArguments":[],"fullName":null,"name":"String","assemblyQualifiedName":"String","isValueType":true},"forceExpressionEditor":false,"requiredGroups":null,"disableExpressions":false,"backingField":null,"searchableDisplayName":null,"selectedResourceId":null},{"typeScriptDefinition":null,"useUrlInput":false,"resolvedUrl":null,"id":"method","name":"method","displayName":"Method","description":"Specifies the HTTP method to be used for the request.","type":"string","sortOrder":4,"defaultValue":"GET","primaryKey":false,"enum":[{"name":"GET","value":"GET"},{"name":"POST","value":"POST"},{"name":"PUT","value":"PUT"},{"name":"PATCH","value":"PATCH"},{"name":"DELETE","value":"DELETE"},{"name":"OPTIONS","value":"OPTIONS"},{"name":"HEAD","value":"HEAD"}],"design":{"loadByDefault":true,"isMultiSelect":false,"enableUserOverride":false,"isHidden":false,"position":"primary","validation":false},"fieldActions":null,"searchable":false,"searchableJoins":null,"required":true,"request":true,"response":true,"responseCurated":false,"fieldLocation":"body","onCanvas":null,"isJitField":false,"isFieldActionParent":true,"isMainResponseField":false,"isMethodParameter":false,"isBackgroundField":false,"filterTree":null,"filterNeedsRefresh":null,"arrayInputPaths":null,"clrType":{"_elementType":null,"_isNullable":false,"isArray":false,"genericTypeArguments":[],"fullName":null,"name":"String","assemblyQualifiedName":"String","isValueType":true},"forceExpressionEditor":false,"requiredGroups":null,"disableExpressions":false,"backingField":null,"searchableDisplayName":null,"selectedResourceId":null},{"typeScriptDefinition":null,"useUrlInput":false,"resolvedUrl":null,"id":"url","name":"url","displayName":"URL","description":"The web address where the HTTP request is sent.","type":"string","sortOrder":5,"primaryKey":false,"design":{"loadByDefault":false,"isMultiSelect":false,"enableUserOverride":false,"isHidden":false,"fieldActions":[{"actionType":"show","priorityOrder":1,"rules":[{"type":"field","refFieldName":"authentication","refFieldValues":["manual"],"isCleared":false,"isVariable":false,"isWorkflowExpression":true}]},{"actionType":"hide","rules":[{"type":"field","refFieldName":"authentication","refFieldValues":["connector"],"isCleared":true,"isVariable":false}]}],"position":"primary","validation":false},"fieldActions":[{"actionType":"show","priorityOrder":1,"rules":[{"type":"field","refFieldName":"authentication","refFieldValues":["manual"],"isCleared":false,"isVariable":false,"isWorkflowExpression":true}]},{"actionType":"hide","rules":[{"type":"field","refFieldName":"authentication","refFieldValues":["connector"],"isCleared":true,"isVariable":false}]}],"searchable":false,"searchableJoins":null,"required":true,"request":true,"response":false,"responseCurated":false,"fieldLocation":"body","onCanvas":null,"isJitField":false,"isFieldActionParent":false,"isMainResponseField":false,"isMethodParameter":false,"isBackgroundField":false,"filterTree":null,"filterNeedsRefresh":null,"arrayInputPaths":null,"clrType":{"_elementType":null,"_isNullable":false,"isArray":false,"genericTypeArguments":[],"fullName":null,"name":"String","assemblyQualifiedName":"String","isValueType":true},"forceExpressionEditor":false,"requiredGroups":null,"disableExpressions":false,"backingField":null,"searchableDisplayName":null,"selectedResourceId":null},{"typeScriptDefinition":null,"useUrlInput":false,"resolvedUrl":null,"id":"path","name":"path","displayName":"Path","description":"The endpoint path for the REST API request.","type":"string","sortOrder":5,"primaryKey":false,"design":{"loadByDefault":false,"isMultiSelect":false,"enableUserOverride":false,"isHidden":false,"fieldActions":[{"actionType":"show","priorityOrder":1,"rules":[{"type":"field","refFieldName":"authentication","refFieldValues":["connector"],"isCleared":false,"isVariable":false,"isWorkflowExpression":true}]},{"actionType":"hide","rules":[{"type":"field","refFieldName":"authentication","refFieldValues":["manual"],"isCleared":true,"isVariable":false}]}],"position":"primary","validation":false},"fieldActions":[{"actionType":"show","priorityOrder":1,"rules":[{"type":"field","refFieldName":"authentication","refFieldValues":["connector"],"isCleared":false,"isVariable":false,"isWorkflowExpression":true}]},{"actionType":"hide","rules":[{"type":"field","refFieldName":"authentication","refFieldValues":["manual"],"isCleared":true,"isVariable":false}]}],"searchable":false,"searchableJoins":null,"required":false,"request":true,"response":false,"responseCurated":false,"fieldLocation":"body","onCanvas":null,"isJitField":false,"isFieldActionParent":false,"isMainResponseField":false,"isMethodParameter":false,"isBackgroundField":false,"filterTree":null,"filterNeedsRefresh":null,"arrayInputPaths":null,"clrType":{"_elementType":null,"_isNullable":false,"isArray":false,"genericTypeArguments":[],"fullName":null,"name":"String","assemblyQualifiedName":"String","isValueType":true},"forceExpressionEditor":false,"requiredGroups":null,"disableExpressions":false,"backingField":null,"searchableDisplayName":null,"selectedResourceId":null},{"typeScriptDefinition":null,"useUrlInput":false,"resolvedUrl":null,"id":"headers","name":"headers","displayName":"Headers","description":"Headers","type":"object","sortOrder":6,"primaryKey":false,"design":{"component":"Dictionary","loadByDefault":false,"isMultiSelect":false,"enableUserOverride":false,"isHidden":false,"position":"primary","dictionaryWidget":{"windowTitle":"","windowDescription":"","columnKeyTitle":"","columnKeyDescription":"","columnKeyHint":"","columnValueTitle":"","columnValueDescription":"","columnValueHint":""},"validation":false},"fieldActions":null,"searchable":false,"searchableJoins":null,"required":false,"request":true,"response":false,"responseCurated":false,"fieldLocation":"body","onCanvas":true,"isJitField":false,"isFieldActionParent":false,"isMainResponseField":false,"isMethodParameter":false,"isBackgroundField":false,"filterTree":null,"filterNeedsRefresh":null,"arrayInputPaths":null,"clrType":{"_elementType":null,"_isNullable":false,"isArray":false,"genericTypeArguments":[],"fullName":null,"name":"Object","assemblyQualifiedName":"Object","isValueType":false},"forceExpressionEditor":false,"requiredGroups":null,"disableExpressions":false,"backingField":null,"searchableDisplayName":null,"selectedResourceId":null},{"typeScriptDefinition":null,"useUrlInput":false,"resolvedUrl":null,"id":"query","name":"query","displayName":"Query parameters","description":"Query parameters","type":"object","sortOrder":7,"primaryKey":false,"design":{"component":"Dictionary","loadByDefault":false,"isMultiSelect":false,"enableUserOverride":false,"isHidden":false,"position":"primary","dictionaryWidget":{"windowTitle":"","windowDescription":"","columnKeyTitle":"","columnKeyDescription":"","columnKeyHint":"","columnValueTitle":"","columnValueDescription":"","columnValueHint":""},"validation":false},"fieldActions":null,"searchable":false,"searchableJoins":null,"required":false,"request":true,"response":false,"responseCurated":false,"fieldLocation":"body","onCanvas":true,"isJitField":false,"isFieldActionParent":false,"isMainResponseField":false,"isMethodParameter":false,"isBackgroundField":false,"filterTree":null,"filterNeedsRefresh":null,"arrayInputPaths":null,"clrType":{"_elementType":null,"_isNullable":false,"isArray":false,"genericTypeArguments":[],"fullName":null,"name":"Object","assemblyQualifiedName":"Object","isValueType":false},"forceExpressionEditor":false,"requiredGroups":null,"disableExpressions":false,"backingField":null,"searchableDisplayName":null,"selectedResourceId":null},{"typeScriptDefinition":null,"useUrlInput":false,"resolvedUrl":null,"id":"requestBodyType","name":"requestBodyType","displayName":"Request body type","description":"Determines how the request body is encoded. Available for manual authentication only; connector-based requests remain JSON.","type":"string","sortOrder":8,"defaultValue":"raw","primaryKey":false,"enum":[{"name":"Raw","value":"raw","description":"Send the body as-is using the Content-Type header (e.g. JSON, XML, plain text)."},{"name":"Multipart form data","value":"multipartFormData","description":"Send one or more form-data parts encoded as multipart/form-data."}],"design":{"loadByDefault":false,"isMultiSelect":false,"enableUserOverride":false,"isHidden":false,"fieldActions":[{"actionType":"show","priorityOrder":1,"rules":[{"type":"field","refFieldName":"authentication","refFieldValues":["manual"],"isCleared":false,"isVariable":false,"isWorkflowExpression":true},{"type":"field","refFieldName":"method","refFieldValues":["POST","PATCH","PUT"],"isCleared":false,"isVariable":false,"isWorkflowExpression":true}]},{"actionType":"hide","rules":[{"type":"field","refFieldName":"authentication","refFieldValues":["connector"],"isCleared":true,"isVariable":false}]},{"actionType":"hide","rules":[{"type":"field","refFieldName":"method","refFieldValues":["GET","HEAD","OPTIONS","DELETE"],"isCleared":true,"isVariable":false,"isWorkflowExpression":true}]}],"position":"primary","validation":false},"fieldActions":[{"actionType":"show","priorityOrder":1,"rules":[{"type":"field","refFieldName":"authentication","refFieldValues":["manual"],"isCleared":false,"isVariable":false,"isWorkflowExpression":true},{"type":"field","refFieldName":"method","refFieldValues":["POST","PATCH","PUT"],"isCleared":false,"isVariable":false,"isWorkflowExpression":true}]},{"actionType":"hide","rules":[{"type":"field","refFieldName":"authentication","refFieldValues":["connector"],"isCleared":true,"isVariable":false}]},{"actionType":"hide","rules":[{"type":"field","refFieldName":"method","refFieldValues":["GET","HEAD","OPTIONS","DELETE"],"isCleared":true,"isVariable":false,"isWorkflowExpression":true}]}],"searchable":false,"searchableJoins":null,"required":false,"request":true,"response":false,"responseCurated":false,"fieldLocation":"body","onCanvas":null,"isJitField":false,"isFieldActionParent":true,"isMainResponseField":false,"isMethodParameter":false,"isBackgroundField":false,"filterTree":null,"filterNeedsRefresh":null,"arrayInputPaths":null,"clrType":{"_elementType":null,"_isNullable":false,"isArray":false,"genericTypeArguments":[],"fullName":null,"name":"String","assemblyQualifiedName":"String","isValueType":true},"forceExpressionEditor":false,"requiredGroups":null,"disableExpressions":false,"backingField":null,"searchableDisplayName":null,"selectedResourceId":null},{"typeScriptDefinition":null,"useUrlInput":false,"resolvedUrl":null,"id":"body","name":"body","displayName":"Body","description":"Contains the data to be sent with the HTTP request.","type":"object","sortOrder":9,"primaryKey":false,"design":{"loadByDefault":false,"isMultiSelect":false,"enableUserOverride":false,"isHidden":false,"fieldActions":[{"actionType":"hide","rules":[{"type":"field","refFieldName":"method","refFieldValues":["GET","HEAD","OPTIONS","DELETE"],"isCleared":true,"isVariable":false,"isWorkflowExpression":true}]},{"actionType":"hide","rules":[{"type":"field","refFieldName":"requestBodyType","refFieldValues":["multipartFormData"],"isCleared":true,"isVariable":false,"isWorkflowExpression":true}]},{"actionType":"show","priorityOrder":1,"rules":[{"type":"field","refFieldName":"requestBodyType","refFieldValues":["raw"],"isCleared":true,"isVariable":false,"isWorkflowExpression":true},{"type":"field","refFieldName":"method","refFieldValues":["POST","PATCH","PUT"],"isCleared":false,"isVariable":false,"isWorkflowExpression":true}]}],"position":"primary","validation":false},"fieldActions":[{"actionType":"hide","rules":[{"type":"field","refFieldName":"method","refFieldValues":["GET","HEAD","OPTIONS","DELETE"],"isCleared":true,"isVariable":false,"isWorkflowExpression":true}]},{"actionType":"hide","rules":[{"type":"field","refFieldName":"requestBodyType","refFieldValues":["multipartFormData"],"isCleared":true,"isVariable":false,"isWorkflowExpression":true}]},{"actionType":"show","priorityOrder":1,"rules":[{"type":"field","refFieldName":"requestBodyType","refFieldValues":["raw"],"isCleared":true,"isVariable":false,"isWorkflowExpression":true},{"type":"field","refFieldName":"method","refFieldValues":["POST","PATCH","PUT"],"isCleared":false,"isVariable":false,"isWorkflowExpression":true}]}],"searchable":false,"searchableJoins":null,"required":false,"request":true,"response":true,"responseCurated":false,"fieldLocation":"body","onCanvas":null,"isJitField":false,"isFieldActionParent":false,"isMainResponseField":false,"isMethodParameter":false,"isBackgroundField":false,"filterTree":null,"filterNeedsRefresh":null,"arrayInputPaths":null,"clrType":{"_elementType":null,"_isNullable":false,"isArray":false,"genericTypeArguments":[],"fullName":null,"name":"Object","assemblyQualifiedName":"Object","isValueType":false},"forceExpressionEditor":false,"requiredGroups":null,"disableExpressions":false,"backingField":null,"searchableDisplayName":null,"selectedResourceId":null},{"typeScriptDefinition":null,"useUrlInput":false,"resolvedUrl":null,"id":"multipartFormData","name":"multipartFormData","displayName":"Form data parts","description":"Multipart form-data parts. Provide a list of parts; each part is an object with \'name\' (required), \'value\' (required), and optional \'filename\', \'contentType\' and \'encoding\'. A value that is an attachment reference is sent as a file; set encoding to \'base64\' to send a base64 string as bytes; objects are sent as JSON.","type":"object","sortOrder":10,"primaryKey":false,"design":{"loadByDefault":false,"isMultiSelect":false,"enableUserOverride":false,"isHidden":false,"fieldActions":[{"actionType":"show","priorityOrder":1,"rules":[{"type":"field","refFieldName":"authentication","refFieldValues":["manual"],"isCleared":false,"isVariable":false,"isWorkflowExpression":true},{"type":"field","refFieldName":"requestBodyType","refFieldValues":["multipartFormData"],"isCleared":false,"isVariable":false,"isWorkflowExpression":true}]},{"actionType":"hide","rules":[{"type":"field","refFieldName":"requestBodyType","refFieldValues":["raw"],"isCleared":true,"isVariable":false,"isWorkflowExpression":true}]},{"actionType":"hide","rules":[{"type":"field","refFieldName":"authentication","refFieldValues":["connector"],"isCleared":true,"isVariable":false}]}],"position":"primary","validation":false},"fieldActions":[{"actionType":"show","priorityOrder":1,"rules":[{"type":"field","refFieldName":"authentication","refFieldValues":["manual"],"isCleared":false,"isVariable":false,"isWorkflowExpression":true},{"type":"field","refFieldName":"requestBodyType","refFieldValues":["multipartFormData"],"isCleared":false,"isVariable":false,"isWorkflowExpression":true}]},{"actionType":"hide","rules":[{"type":"field","refFieldName":"requestBodyType","refFieldValues":["raw"],"isCleared":true,"isVariable":false,"isWorkflowExpression":true}]},{"actionType":"hide","rules":[{"type":"field","refFieldName":"authentication","refFieldValues":["connector"],"isCleared":true,"isVariable":false}]}],"searchable":false,"searchableJoins":null,"required":false,"request":true,"response":false,"responseCurated":false,"fieldLocation":"body","onCanvas":null,"isJitField":false,"isFieldActionParent":false,"isMainResponseField":false,"isMethodParameter":false,"isBackgroundField":false,"filterTree":null,"filterNeedsRefresh":null,"arrayInputPaths":null,"clrType":{"_elementType":null,"_isNullable":false,"isArray":false,"genericTypeArguments":[],"fullName":null,"name":"Object","assemblyQualifiedName":"Object","isValueType":false},"forceExpressionEditor":false,"requiredGroups":null,"disableExpressions":false,"backingField":null,"searchableDisplayName":null,"selectedResourceId":null}],"outputFields":[{"typeScriptDefinition":null,"useUrlInput":false,"resolvedUrl":null,"id":"http-request","name":"http-request","displayName":"HTTP Request","description":"","type":"Generatedhttp-request","sortOrder":null,"format":null,"mask":null,"defaultValue":null,"primaryKey":false,"lookup":null,"enum":null,"design":null,"fieldActions":null,"searchable":false,"searchableOperators":null,"searchableNames":null,"searchableJoins":null,"required":false,"request":false,"response":true,"responseCurated":false,"fieldLocation":"output","onCanvas":null,"isJitField":true,"isFieldActionParent":false,"isMainResponseField":true,"isMethodParameter":false,"isBackgroundField":false,"filterTree":null,"filterNeedsRefresh":null,"arrayInputPaths":null,"clrType":{"_elementType":null,"_isNullable":false,"isArray":false,"genericTypeArguments":[],"fullName":null,"name":"Object","assemblyQualifiedName":"Object","isValueType":false},"forceExpressionEditor":false,"requiredGroups":null,"disableExpressions":false,"backingField":null,"searchableDisplayName":null,"selectedResourceId":null}],"jitTypeNeedsRefresh":false,"jitInputField":{"typeScriptDefinition":"{\\"authentication\\":string;\\"body\\":object;\\"connection\\":string;\\"headers\\":object;\\"method\\":string;\\"multipartFormData\\":object;\\"path\\":string;\\"query\\":object;\\"requestBodyType\\":string;\\"targetConnector\\":string;\\"url\\":string}","useUrlInput":false,"resolvedUrl":null,"id":"in_http-request","name":"http-request","displayName":"HTTP Request","description":"HTTP Request input object","type":"Generatedhttp-request","sortOrder":null,"format":null,"mask":null,"defaultValue":"{\\n \\"authentication\\": null,\\n \\"body\\": null,\\n \\"connection\\": null,\\n \\"headers\\": null,\\n \\"method\\": null,\\n \\"multipartFormData\\": null,\\n \\"path\\": null,\\n \\"query\\": null,\\n \\"requestBodyType\\": null,\\n \\"targetConnector\\": null,\\n \\"url\\": null\\n}","primaryKey":false,"lookup":null,"enum":null,"design":null,"fieldActions":null,"searchable":false,"searchableOperators":null,"searchableNames":null,"searchableJoins":null,"required":true,"request":false,"response":false,"responseCurated":false,"fieldLocation":"jitObjectInput","onCanvas":null,"isJitField":true,"isFieldActionParent":false,"isMainResponseField":false,"isMethodParameter":false,"isBackgroundField":false,"filterTree":null,"filterNeedsRefresh":null,"arrayInputPaths":null,"clrType":{"_elementType":null,"_isNullable":false,"isArray":false,"genericTypeArguments":[],"fullName":null,"name":"Object","assemblyQualifiedName":"Object","isValueType":false},"forceExpressionEditor":false,"requiredGroups":null,"disableExpressions":false,"backingField":null,"searchableDisplayName":null,"selectedResourceId":null},"inputMode":null,"searchableFields":[],"hasUnifiedTypes":true,"jitTypeHash":null}}}',
|
|
1084
|
+
uiPathActivityTypeId: "5c4cc855-b42a-37e6-b910-de8588998fce",
|
|
1085
|
+
errorState: {
|
|
1086
|
+
issues: []
|
|
1087
|
+
}
|
|
1088
|
+
},
|
|
1089
|
+
activityMetadata: {
|
|
1090
|
+
activity: {
|
|
1091
|
+
isAppActivity: false,
|
|
1092
|
+
packageId: 196648,
|
|
1093
|
+
svgIconUrl: "icons/0dad78c9d04c245b126d8edb4c451aa8a0d395d34731cf5702441f6284c70ccc.svg",
|
|
1094
|
+
displayName: "HTTP Request",
|
|
1095
|
+
assemblyQualifiedName: "UiPath.IntegrationService.Activities.Runtime.Activities.ConnectorActivity, UiPath.IntegrationService.Activities.Runtime, Version=1.34.0.0, Culture=neutral, PublicKeyToken=null",
|
|
1096
|
+
description: "Use HTTP requests to interact with APIs via the selected connector and connection configuration.",
|
|
1097
|
+
category: "",
|
|
1098
|
+
activityColor: "#E56D5C",
|
|
1099
|
+
configuration: '{"connectorKey":"uipath-uipath-http","objectName":"http-request","httpMethod":"POST","activityType":"Curated","version":"1.0.0","supportsStreaming":false,"subType":"method"}',
|
|
1100
|
+
uiPathActivityTypeId: "5c4cc855-b42a-37e6-b910-de8588998fce",
|
|
1101
|
+
isExperimental: false,
|
|
1102
|
+
helpUrlTemplate: "https://docs.uipath.com/{0}/activities/other/latest/integration-service/uipath-uipath-http-HTTP-Request",
|
|
1103
|
+
isEnabled: true,
|
|
1104
|
+
targetPlatform: "CrossPlatform",
|
|
1105
|
+
isAdvanced: false,
|
|
1106
|
+
isRestricted: false,
|
|
1107
|
+
hasWpfOnlyDesigner: false,
|
|
1108
|
+
tags: [
|
|
1109
|
+
""
|
|
1110
|
+
]
|
|
1111
|
+
},
|
|
1112
|
+
meta: {
|
|
1113
|
+
packageName: "UiPath.IntegrationService.Activities",
|
|
1114
|
+
packageVersion: "1.34.0-alpha.20261013.3",
|
|
1115
|
+
activityColor: "#E56D5C",
|
|
1116
|
+
packageCategoryDisplayName: "HTTP"
|
|
1117
|
+
}
|
|
1118
|
+
},
|
|
1119
|
+
inputMetadata: {},
|
|
1120
|
+
telemetryData: {
|
|
1121
|
+
connectorKey: "uipath-uipath-http",
|
|
1122
|
+
connectorName: "HTTP",
|
|
1123
|
+
operationType: "create",
|
|
1124
|
+
objectName: "http-request",
|
|
1125
|
+
objectDisplayName: "HTTP Request",
|
|
1126
|
+
primaryKeyName: ""
|
|
1127
|
+
},
|
|
1128
|
+
bindings: []
|
|
1129
|
+
};
|
|
1130
|
+
|
|
1131
|
+
// ../case-tool/src/services/sdd-convert/http-request.ts
|
|
1132
|
+
var HTTP_CONNECTOR_KEY = "uipath-uipath-http";
|
|
1133
|
+
var OUTPUTS = [
|
|
1134
|
+
{
|
|
1135
|
+
name: "code",
|
|
1136
|
+
displayName: "Response status code",
|
|
1137
|
+
type: "number",
|
|
1138
|
+
source: "=response.code"
|
|
1139
|
+
},
|
|
1140
|
+
{
|
|
1141
|
+
name: "headers",
|
|
1142
|
+
displayName: "Response headers",
|
|
1143
|
+
type: "object",
|
|
1144
|
+
source: "=response.headers"
|
|
1145
|
+
},
|
|
1146
|
+
{
|
|
1147
|
+
name: "body",
|
|
1148
|
+
displayName: "Response body",
|
|
1149
|
+
type: "object",
|
|
1150
|
+
source: "=response.body"
|
|
1151
|
+
}
|
|
1152
|
+
];
|
|
1153
|
+
var ERROR_SCHEMA = {
|
|
1154
|
+
type: "object",
|
|
1155
|
+
properties: {
|
|
1156
|
+
code: { type: "string" },
|
|
1157
|
+
message: { type: "string" },
|
|
1158
|
+
detail: { type: "string" },
|
|
1159
|
+
category: { type: "string" },
|
|
1160
|
+
status: { type: "number" },
|
|
1161
|
+
element: { type: "string" }
|
|
1162
|
+
}
|
|
1163
|
+
};
|
|
1164
|
+
var httpRequestOutputs = (elementId, taken, reserved = new Set) => [
|
|
1165
|
+
...OUTPUTS.map((output) => {
|
|
1166
|
+
const id = mint(String(output.name), taken, reserved);
|
|
1167
|
+
return { ...output, var: id, value: id, id, elementId };
|
|
1168
|
+
}),
|
|
1169
|
+
(() => {
|
|
1170
|
+
const id = mint("error", taken, reserved);
|
|
1171
|
+
return {
|
|
1172
|
+
name: "Error",
|
|
1173
|
+
displayName: "Error",
|
|
1174
|
+
type: "jsonSchema",
|
|
1175
|
+
source: "=Error",
|
|
1176
|
+
_jsonSchema: ERROR_SCHEMA,
|
|
1177
|
+
id,
|
|
1178
|
+
var: id,
|
|
1179
|
+
value: id,
|
|
1180
|
+
elementId,
|
|
1181
|
+
body: ERROR_SCHEMA
|
|
1182
|
+
};
|
|
1183
|
+
})()
|
|
1184
|
+
];
|
|
1185
|
+
var mint = (base, taken, reserved) => {
|
|
1186
|
+
const id = dedupedId(base, new Set([...taken, ...reserved]));
|
|
1187
|
+
taken.add(id);
|
|
1188
|
+
return id;
|
|
1189
|
+
};
|
|
1190
|
+
var objectCell = (text) => {
|
|
1191
|
+
if (text === undefined)
|
|
1192
|
+
return {};
|
|
1193
|
+
const [error, parsed] = catchError(() => JSON.parse(text));
|
|
1194
|
+
if (error)
|
|
1195
|
+
return { error: "is not JSON" };
|
|
1196
|
+
return typeof parsed === "object" && parsed !== null && !Array.isArray(parsed) ? { value: parsed } : { error: "is not a JSON object" };
|
|
1197
|
+
};
|
|
1198
|
+
var bodyValue = (text) => {
|
|
1199
|
+
if (text.startsWith("="))
|
|
1200
|
+
return { value: text };
|
|
1201
|
+
const [error] = catchError(() => JSON.parse(text));
|
|
1202
|
+
return error ? { error: "is neither JSON nor an `=` expression" } : { value: `=js:( ${text})` };
|
|
1203
|
+
};
|
|
1204
|
+
var BODY_METHODS = new Set(["POST", "PUT", "PATCH"]);
|
|
1205
|
+
var HTTP_METHODS = new Set([
|
|
1206
|
+
"GET",
|
|
1207
|
+
"POST",
|
|
1208
|
+
"PUT",
|
|
1209
|
+
"PATCH",
|
|
1210
|
+
"DELETE",
|
|
1211
|
+
"OPTIONS",
|
|
1212
|
+
"HEAD"
|
|
1213
|
+
]);
|
|
1214
|
+
var IMPLICIT = "ImplicitConnection";
|
|
1215
|
+
var CONNECTION_BINDING_NAME = `${HTTP_CONNECTOR_KEY} connection`;
|
|
1216
|
+
var binding = (id, rest) => ({
|
|
1217
|
+
id,
|
|
1218
|
+
name: CONNECTION_BINDING_NAME,
|
|
1219
|
+
type: "string",
|
|
1220
|
+
resource: "Connection",
|
|
1221
|
+
...rest
|
|
1222
|
+
});
|
|
1223
|
+
var implicitBinding = (bindings) => {
|
|
1224
|
+
const found = bindings.find((one) => one.name === CONNECTION_BINDING_NAME && one.resourceKey === IMPLICIT);
|
|
1225
|
+
if (found !== undefined)
|
|
1226
|
+
return String(found.id);
|
|
1227
|
+
const id = "bHttpImplicit";
|
|
1228
|
+
bindings.push(binding(id, {
|
|
1229
|
+
resourceKey: IMPLICIT,
|
|
1230
|
+
default: IMPLICIT,
|
|
1231
|
+
propertyAttribute: "ConnectionId"
|
|
1232
|
+
}));
|
|
1233
|
+
return id;
|
|
1234
|
+
};
|
|
1235
|
+
var connectionBindings = (connectionId, context) => {
|
|
1236
|
+
const known = context.connections.get(`http:${connectionId}`);
|
|
1237
|
+
const ordinal = context.connections.size + 1;
|
|
1238
|
+
const connectionRef = known ?? `bHttpC${ordinal}`;
|
|
1239
|
+
const folderRef = `${connectionRef}F`;
|
|
1240
|
+
const connection = binding(connectionRef, {
|
|
1241
|
+
resourceKey: connectionId,
|
|
1242
|
+
default: connectionId,
|
|
1243
|
+
propertyAttribute: "ConnectionId"
|
|
1244
|
+
});
|
|
1245
|
+
const folder = {
|
|
1246
|
+
id: folderRef,
|
|
1247
|
+
name: "FolderKey",
|
|
1248
|
+
type: "string",
|
|
1249
|
+
resource: "Connection",
|
|
1250
|
+
resourceKey: connectionId,
|
|
1251
|
+
propertyAttribute: "folderKey"
|
|
1252
|
+
};
|
|
1253
|
+
if (known === undefined) {
|
|
1254
|
+
context.connections.set(`http:${connectionId}`, connectionRef);
|
|
1255
|
+
context.bindings.push(connection, folder);
|
|
1256
|
+
}
|
|
1257
|
+
return { connection, folder };
|
|
1258
|
+
};
|
|
1259
|
+
var input = (name, elementId) => {
|
|
1260
|
+
const id = prefixedId("v", 8);
|
|
1261
|
+
return { name, type: "json", target: name, id, var: id, elementId };
|
|
1262
|
+
};
|
|
1263
|
+
var contextEntry = (name, value, type = "string") => ({
|
|
1264
|
+
name,
|
|
1265
|
+
value,
|
|
1266
|
+
type
|
|
1267
|
+
});
|
|
1268
|
+
var httpRequestData = (http, connector, outputs, context) => {
|
|
1269
|
+
const { where, unresolved, elementId } = context;
|
|
1270
|
+
const expand = (value) => value.startsWith("=") ? expandXrefs(value, {
|
|
1271
|
+
outputs: context.outputs,
|
|
1272
|
+
where,
|
|
1273
|
+
unresolved
|
|
1274
|
+
}) : value;
|
|
1275
|
+
const expandEntries = (object) => Object.fromEntries(Object.entries(object).map(([key, value]) => [
|
|
1276
|
+
key,
|
|
1277
|
+
typeof value === "string" ? expand(value) : value
|
|
1278
|
+
]));
|
|
1279
|
+
const request = http ?? {};
|
|
1280
|
+
const stated = (request.method ?? "").toUpperCase();
|
|
1281
|
+
const method = HTTP_METHODS.has(stated) ? stated : "";
|
|
1282
|
+
if (stated === "") {
|
|
1283
|
+
unresolved.push({
|
|
1284
|
+
kind: "connector-context",
|
|
1285
|
+
where,
|
|
1286
|
+
detail: "this `http-request` task states no `**Method:**`, so the request has none and the task cannot run until one is set"
|
|
1287
|
+
});
|
|
1288
|
+
} else if (method === "") {
|
|
1289
|
+
unresolved.push({
|
|
1290
|
+
kind: "connector-context",
|
|
1291
|
+
where,
|
|
1292
|
+
detail: `this \`http-request\` task's \`**Method:**\` is "${String(request.method)}", which is not one the activity offers (${[...HTTP_METHODS].join(", ")}), so the request has none and the task cannot run until one is set`
|
|
1293
|
+
});
|
|
1294
|
+
}
|
|
1295
|
+
const targetConnector = typeof connector?.connectorKey === "string" && connector.connectorKey !== "" ? connector.connectorKey : undefined;
|
|
1296
|
+
const connectionId = typeof connector?.connectionId === "string" ? connector.connectionId : undefined;
|
|
1297
|
+
const connectorMode = targetConnector !== undefined && connectionId !== undefined;
|
|
1298
|
+
if (targetConnector !== undefined && !connectorMode && (request.url ?? "") === "") {
|
|
1299
|
+
unresolved.push({
|
|
1300
|
+
kind: "connector-context",
|
|
1301
|
+
where,
|
|
1302
|
+
detail: "this `http-request` task runs as a manual request until a connection is set, and states no `**URL:**` to call"
|
|
1303
|
+
});
|
|
1304
|
+
}
|
|
1305
|
+
if (targetConnector === undefined && (request.url ?? "") === "") {
|
|
1306
|
+
unresolved.push({
|
|
1307
|
+
kind: "connector-context",
|
|
1308
|
+
where,
|
|
1309
|
+
detail: "this `http-request` task names no connector, so it calls `**URL:**` directly, and it states none"
|
|
1310
|
+
});
|
|
1311
|
+
}
|
|
1312
|
+
const body = {
|
|
1313
|
+
authentication: connectorMode ? "connector" : "manual",
|
|
1314
|
+
...connectorMode && { targetConnector },
|
|
1315
|
+
...method !== "" && { method }
|
|
1316
|
+
};
|
|
1317
|
+
if (request.url !== undefined && request.url !== "") {
|
|
1318
|
+
if (connectorMode)
|
|
1319
|
+
body.path = expand(request.url);
|
|
1320
|
+
else
|
|
1321
|
+
body.url = expand(request.url);
|
|
1322
|
+
}
|
|
1323
|
+
for (const [key, cell] of [
|
|
1324
|
+
["headers", request.headers],
|
|
1325
|
+
["query", request.query]
|
|
1326
|
+
]) {
|
|
1327
|
+
const read = objectCell(cell);
|
|
1328
|
+
if (read.value !== undefined)
|
|
1329
|
+
body[key] = expandEntries(read.value);
|
|
1330
|
+
if (read.error !== undefined) {
|
|
1331
|
+
unresolved.push({
|
|
1332
|
+
kind: "connector-context",
|
|
1333
|
+
where,
|
|
1334
|
+
detail: `this \`http-request\` task's \`**${key === "headers" ? "Headers" : "Query"}:**\` ${read.error}, so it is left out; write it as a JSON object such as \`{"Name": "value"}\``
|
|
1335
|
+
});
|
|
1336
|
+
}
|
|
1337
|
+
}
|
|
1338
|
+
if (request.body !== undefined && request.body !== "") {
|
|
1339
|
+
const read = bodyValue(request.body);
|
|
1340
|
+
if (method !== "" && !BODY_METHODS.has(method)) {
|
|
1341
|
+
unresolved.push({
|
|
1342
|
+
kind: "connector-context",
|
|
1343
|
+
where,
|
|
1344
|
+
detail: `this \`http-request\` task's method is ${method}, which carries no body, so its \`**Body:**\` is left out; use POST, PUT or PATCH to send one`
|
|
1345
|
+
});
|
|
1346
|
+
} else if (read.value !== undefined) {
|
|
1347
|
+
if (!connectorMode)
|
|
1348
|
+
body.requestBodyType = "raw";
|
|
1349
|
+
body.body = expand(read.value);
|
|
1350
|
+
} else {
|
|
1351
|
+
unresolved.push({
|
|
1352
|
+
kind: "connector-context",
|
|
1353
|
+
where,
|
|
1354
|
+
detail: `this \`http-request\` task's \`**Body:**\` ${String(read.error)}, so it is left out; write a JSON literal such as \`{"name": "value"}\`, or an \`=\` expression`
|
|
1355
|
+
});
|
|
1356
|
+
}
|
|
1357
|
+
}
|
|
1358
|
+
let connectionValue;
|
|
1359
|
+
let resourceKey = null;
|
|
1360
|
+
let folderKey = null;
|
|
1361
|
+
const taskBindings = [];
|
|
1362
|
+
if (connectorMode && connectionId !== undefined) {
|
|
1363
|
+
const pair = connectionBindings(connectionId, context);
|
|
1364
|
+
connectionValue = `${BINDING_REFERENCE_PREFIX}${String(pair.connection.id)}`;
|
|
1365
|
+
resourceKey = connectionId;
|
|
1366
|
+
folderKey = `${BINDING_REFERENCE_PREFIX}${String(pair.folder.id)}`;
|
|
1367
|
+
taskBindings.push(pair.connection, pair.folder);
|
|
1368
|
+
unresolved.push({
|
|
1369
|
+
kind: "connector-context",
|
|
1370
|
+
where,
|
|
1371
|
+
detail: `the folder binding \`${String(pair.folder.id)}\` needs the connection's folder GUID as its \`default\`; the document names the connection and no folder key, so \`sdd resolve\` or a person supplies it`
|
|
1372
|
+
});
|
|
1373
|
+
} else {
|
|
1374
|
+
if (targetConnector !== undefined) {
|
|
1375
|
+
unresolved.push({
|
|
1376
|
+
kind: "connector-connection",
|
|
1377
|
+
where,
|
|
1378
|
+
detail: `this \`http-request\` task reuses \`${String(targetConnector)}\`'s authentication and names no \`**Connection ID:**\`, so nothing is bound and it runs as a manual request until a connection is set`
|
|
1379
|
+
});
|
|
1380
|
+
}
|
|
1381
|
+
connectionValue = `${BINDING_REFERENCE_PREFIX}${implicitBinding(context.bindings)}`;
|
|
1382
|
+
}
|
|
1383
|
+
return {
|
|
1384
|
+
serviceType: "Intsvc.UnifiedHttpRequest",
|
|
1385
|
+
inputs: [
|
|
1386
|
+
input("pathParameters", elementId),
|
|
1387
|
+
input("queryParameters", elementId),
|
|
1388
|
+
{ ...input("body", elementId), body }
|
|
1389
|
+
],
|
|
1390
|
+
outputs,
|
|
1391
|
+
context: [
|
|
1392
|
+
contextEntry("connectorKey", HTTP_CONNECTOR_KEY),
|
|
1393
|
+
contextEntry("connection", connectionValue),
|
|
1394
|
+
contextEntry("resourceKey", resourceKey),
|
|
1395
|
+
contextEntry("folderKey", folderKey),
|
|
1396
|
+
contextEntry("method", "POST"),
|
|
1397
|
+
contextEntry("path", "/http-request"),
|
|
1398
|
+
contextEntry("objectName", "http-request"),
|
|
1399
|
+
{ name: "metadata", type: "json", body: structuredClone(http_request_metadata_default) },
|
|
1400
|
+
contextEntry("activityConfigurationVersion", "v2")
|
|
1401
|
+
],
|
|
1402
|
+
bindings: taskBindings
|
|
1403
|
+
};
|
|
1404
|
+
};
|
|
1320
1405
|
|
|
1321
1406
|
// ../case-tool/src/services/sdd-convert/emit.ts
|
|
1322
1407
|
var isDeferredTask = (resolved, stageName, task) => {
|
|
@@ -1414,6 +1499,12 @@ var emitTask = (task, taskId, context) => {
|
|
|
1414
1499
|
conditions: placeholderConditions.length
|
|
1415
1500
|
};
|
|
1416
1501
|
}
|
|
1502
|
+
for (const detail of task.unreadTables ?? [])
|
|
1503
|
+
unresolved.push({
|
|
1504
|
+
kind: "task-io-table",
|
|
1505
|
+
where: `${taskWhere}.data`,
|
|
1506
|
+
detail
|
|
1507
|
+
});
|
|
1417
1508
|
const recipient = task.recipient;
|
|
1418
1509
|
const recipientType = recipient === undefined ? undefined : RECIPIENT_TYPES.get(recipient.kind);
|
|
1419
1510
|
if (recipient !== undefined && recipientType === undefined) {
|
|
@@ -1500,6 +1591,9 @@ var emitTask = (task, taskId, context) => {
|
|
|
1500
1591
|
where: taskWhere,
|
|
1501
1592
|
unresolved
|
|
1502
1593
|
})),
|
|
1594
|
+
...type === "business-rule" && {
|
|
1595
|
+
version: BUSINESS_RULE_TASK_VERSION
|
|
1596
|
+
},
|
|
1503
1597
|
...type === "action" && task.taskTitle !== undefined && {
|
|
1504
1598
|
taskTitle: task.taskTitle
|
|
1505
1599
|
},
|
|
@@ -1514,6 +1608,16 @@ var emitTask = (task, taskId, context) => {
|
|
|
1514
1608
|
...timer
|
|
1515
1609
|
}
|
|
1516
1610
|
};
|
|
1611
|
+
if (type === "http-request") {
|
|
1612
|
+
emitted.data = httpRequestData(task.http, task.connector, emitted.data.outputs ?? [], {
|
|
1613
|
+
elementId,
|
|
1614
|
+
where: taskWhere,
|
|
1615
|
+
bindings,
|
|
1616
|
+
connections,
|
|
1617
|
+
unresolved,
|
|
1618
|
+
outputs: outputIds
|
|
1619
|
+
});
|
|
1620
|
+
}
|
|
1517
1621
|
return { task: emitted, conditions };
|
|
1518
1622
|
};
|
|
1519
1623
|
var SHARES_WITH_SIBLING = "parallel-after-predecessor";
|
|
@@ -1581,7 +1685,21 @@ var emitStages = (document, model, index, unresolved) => {
|
|
|
1581
1685
|
} = index;
|
|
1582
1686
|
let taskCount = 0;
|
|
1583
1687
|
let conditionCount = 0;
|
|
1584
|
-
for (const {
|
|
1688
|
+
for (const {
|
|
1689
|
+
stage,
|
|
1690
|
+
stageId,
|
|
1691
|
+
tasks: plannedTasks,
|
|
1692
|
+
slaRules: stageRules
|
|
1693
|
+
} of planned) {
|
|
1694
|
+
const hasDefaultRule = stageRules.some((rule) => /^=js:\s*true\s*$/.test(String(rule.expression ?? "")));
|
|
1695
|
+
if (!hasDefaultRule && (stage.hasSla === true || /\d/.test(String(stage.slaDuration ?? "")))) {
|
|
1696
|
+
const stated = String(stage.slaDuration ?? "").trim();
|
|
1697
|
+
unresolved.push({
|
|
1698
|
+
kind: "case-sla",
|
|
1699
|
+
where: `nodes[${stage.name}].data.slaRules`,
|
|
1700
|
+
detail: `this stage declares an SLA and no rule could be emitted from it: the duration cell is ${stated === "" ? "absent, so the escalation rows have no duration to be a percentage of" : `\`${stated}\`, which gives no count and a unit the case schema names (min, h, d, w, m, and the spellings that map to them)`}. The stage's SLA title, duration, escalation rows and any conditional rules are all dropped together — without a default the engine would run the last conditional rule for every case — so authoring the duration is what carries them`
|
|
1701
|
+
});
|
|
1702
|
+
}
|
|
1585
1703
|
const where = `nodes[${stage.name}]`;
|
|
1586
1704
|
const tasks = [];
|
|
1587
1705
|
const declared = [];
|
|
@@ -1652,7 +1770,7 @@ var emitStages = (document, model, index, unresolved) => {
|
|
|
1652
1770
|
parentElement: { id: "root", type: "case-management:root" },
|
|
1653
1771
|
isInvalidDropTarget: false,
|
|
1654
1772
|
isPendingParent: false,
|
|
1655
|
-
...
|
|
1773
|
+
...stageRules.length > 0 && { slaRules: stageRules },
|
|
1656
1774
|
tasks: sets,
|
|
1657
1775
|
entryConditions,
|
|
1658
1776
|
exitConditions
|
|
@@ -1708,13 +1826,6 @@ var planCase = (model, unresolved) => {
|
|
|
1708
1826
|
const title = indexKey(String(stageSla.displayName));
|
|
1709
1827
|
slaIds.set(title, entry);
|
|
1710
1828
|
slaIds.set(scopedSlaKey(stageId, title), entry);
|
|
1711
|
-
} else if (stage.hasSla === true || /\d/.test(String(stage.slaDuration ?? ""))) {
|
|
1712
|
-
const stated = String(stage.slaDuration ?? "").trim();
|
|
1713
|
-
unresolved.push({
|
|
1714
|
-
kind: "case-sla",
|
|
1715
|
-
where: `nodes[${stage.name}].data.slaRules`,
|
|
1716
|
-
detail: `this stage declares an SLA and no rule could be emitted from it: the duration cell is ${stated === "" ? "absent, so the escalation rows have no duration to be a percentage of" : `\`${stated}\`, which gives no count and a unit the case schema names (min, h, d, w, m, and the spellings that map to them)`}. The stage's SLA title, duration and escalation rows are all dropped together, so authoring the duration is what carries them`
|
|
1717
|
-
});
|
|
1718
1829
|
}
|
|
1719
1830
|
const spelling = stageSpellings(stage.name, position + 1);
|
|
1720
1831
|
for (const name of spelling.names) {
|
|
@@ -1732,6 +1843,7 @@ var planCase = (model, unresolved) => {
|
|
|
1732
1843
|
const tasks = stage.tasks.map((task) => {
|
|
1733
1844
|
const taskId = prefixedId("t", 8);
|
|
1734
1845
|
const taskName = taskNameOf(task);
|
|
1846
|
+
const taskType = typeof task.type === "string" ? task.type : undefined;
|
|
1735
1847
|
tasksByExactName.push([taskName, taskId]);
|
|
1736
1848
|
stagesByTaskName.set(taskName, [
|
|
1737
1849
|
...stagesByTaskName.get(taskName) ?? [],
|
|
@@ -1771,8 +1883,45 @@ var planCase = (model, unresolved) => {
|
|
|
1771
1883
|
extractByField.set(field, variable);
|
|
1772
1884
|
}
|
|
1773
1885
|
}
|
|
1774
|
-
|
|
1775
|
-
|
|
1886
|
+
const httpOutputs = taskType === "http-request" ? httpRequestOutputs(buildElementId(stageId, taskId), takenOutputIds, new Set(model.variables)) : [];
|
|
1887
|
+
const httpDeclared = taskType === "http-request" ? declaredOutputs(model, stage.name, position + 1, task) : [];
|
|
1888
|
+
for (const output of httpOutputs) {
|
|
1889
|
+
const name = String(output.name).toLowerCase();
|
|
1890
|
+
const spellings = [
|
|
1891
|
+
...httpDeclared.flatMap(({ row, aliases }) => [row, ...aliases].filter((spelling2) => httpRequestOutputName(spelling2) === name)),
|
|
1892
|
+
...[...extractByField.keys()].filter((field) => httpRequestOutputName(field) === name)
|
|
1893
|
+
];
|
|
1894
|
+
const variable = [...extractByField].find(([field]) => httpRequestOutputName(field) === name)?.[1];
|
|
1895
|
+
if (variable !== undefined) {
|
|
1896
|
+
output.var = variable;
|
|
1897
|
+
output.value = variable;
|
|
1898
|
+
output.target = `=${String(output.id)}`;
|
|
1899
|
+
output.originalVar = output.id;
|
|
1900
|
+
}
|
|
1901
|
+
own.set(String(output.name), output);
|
|
1902
|
+
indexOutput(new Set([
|
|
1903
|
+
String(output.name),
|
|
1904
|
+
...spellings,
|
|
1905
|
+
...variable === undefined ? [] : [variable]
|
|
1906
|
+
]), output);
|
|
1907
|
+
}
|
|
1908
|
+
if (taskType === "http-request") {
|
|
1909
|
+
const offered = httpOutputs.map((output) => String(output.name));
|
|
1910
|
+
const authored = new Set([
|
|
1911
|
+
...extractByField.values(),
|
|
1912
|
+
...(task.customRows ?? []).map((entry) => String(entry.variable ?? ""))
|
|
1913
|
+
].filter((name) => name !== "").map(indexKey));
|
|
1914
|
+
const unnamed = new Set(httpDeclared.flatMap(({ row, aliases }) => [row, ...aliases]).filter((spelling2) => httpRequestOutputName(spelling2) === undefined && !authored.has(indexKey(spelling2))));
|
|
1915
|
+
for (const row of unnamed) {
|
|
1916
|
+
unresolved.push({
|
|
1917
|
+
kind: "output-type",
|
|
1918
|
+
where: `nodes[${stage.name}].data.tasks[${taskName}].outputs[${row}]`,
|
|
1919
|
+
detail: `an \`http-request\` task has the activity's own outputs only (${offered.join(", ")}), so the declared output "${row}" is not written; read the field it names from \`body\` instead`
|
|
1920
|
+
});
|
|
1921
|
+
}
|
|
1922
|
+
}
|
|
1923
|
+
for (const { row, aliases } of taskType === "http-request" ? [] : declaredOutputs(model, stage.name, position + 1, task)) {
|
|
1924
|
+
const consumerType = [row, ...aliases].map((spelling2) => outputTypeFor(model, everySpelling(stage.name, position + 1), taskName, spelling2)).find((found) => found !== undefined);
|
|
1776
1925
|
const variable = extractByField.get(row);
|
|
1777
1926
|
const type = consumerType ?? (variable === undefined ? undefined : variableOutputType(model, variable));
|
|
1778
1927
|
if (type === undefined) {
|
|
@@ -1782,10 +1931,11 @@ var planCase = (model, unresolved) => {
|
|
|
1782
1931
|
detail: "no row in this SDD types this output; its shape comes from the resolved resource's own schema, which needs a tenant — `uip maestro case tasks describe --type <type> --id <id>` returns it, and `uip maestro case splice <plan> --task-id <taskId> --described <that result>` writes it in"
|
|
1783
1932
|
});
|
|
1784
1933
|
}
|
|
1785
|
-
const output = variable === undefined ? outputFor(row, buildElementId(stageId, taskId), takenOutputIds, type) : extractOutputFor({ field: row, variable }, buildElementId(stageId, taskId), takenOutputIds, type);
|
|
1934
|
+
const output = variable === undefined ? outputFor(row, buildElementId(stageId, taskId), takenOutputIds, type, taskType) : extractOutputFor({ field: row, variable }, buildElementId(stageId, taskId), takenOutputIds, type, taskType);
|
|
1786
1935
|
own.set(row, output);
|
|
1787
1936
|
indexOutput(new Set([
|
|
1788
1937
|
row,
|
|
1938
|
+
...aliases,
|
|
1789
1939
|
String(output.name),
|
|
1790
1940
|
...variable === undefined ? [] : [variable]
|
|
1791
1941
|
]), output);
|
|
@@ -1809,7 +1959,7 @@ var planCase = (model, unresolved) => {
|
|
|
1809
1959
|
outputsByTask.set(taskId, own);
|
|
1810
1960
|
return { task, taskId };
|
|
1811
1961
|
});
|
|
1812
|
-
return { stage, stageId, tasks, stageSla };
|
|
1962
|
+
return { stage, stageId, tasks, stageSla, slaRules: [] };
|
|
1813
1963
|
});
|
|
1814
1964
|
const tasksPerName = countByName(tasksByExactName);
|
|
1815
1965
|
reportRepeatedTaskNames(stagesByTaskName, unresolved);
|
|
@@ -1855,8 +2005,98 @@ var planCase = (model, unresolved) => {
|
|
|
1855
2005
|
bindingsByKey,
|
|
1856
2006
|
connections,
|
|
1857
2007
|
slaIds,
|
|
1858
|
-
...caseSla !== undefined && { caseSla }
|
|
2008
|
+
...caseSla !== undefined && { caseSla },
|
|
2009
|
+
caseSlaRules: []
|
|
2010
|
+
};
|
|
2011
|
+
};
|
|
2012
|
+
|
|
2013
|
+
// ../case-tool/src/services/sdd-convert/sla-rules.ts
|
|
2014
|
+
var statesSla = (flag, duration) => flag === true || /\d/.test(String(duration ?? ""));
|
|
2015
|
+
var named = (rule, at, title) => {
|
|
2016
|
+
const displayName = typeof rule.displayName === "string" ? rule.displayName : `${title} rule ${at + 1}`;
|
|
2017
|
+
const escalations = Array.isArray(rule.escalationRule) ? rule.escalationRule : undefined;
|
|
2018
|
+
return {
|
|
2019
|
+
...rule,
|
|
2020
|
+
displayName,
|
|
2021
|
+
...escalations !== undefined && {
|
|
2022
|
+
escalationRule: escalations.map((one) => ({
|
|
2023
|
+
...one,
|
|
2024
|
+
displayName: `${String(one.displayName)} (${displayName})`
|
|
2025
|
+
}))
|
|
2026
|
+
}
|
|
2027
|
+
};
|
|
2028
|
+
};
|
|
2029
|
+
var register = (rule, target, slaIds, unresolved) => {
|
|
2030
|
+
if (typeof rule.displayName !== "string")
|
|
2031
|
+
return true;
|
|
2032
|
+
const key = indexKey(rule.displayName);
|
|
2033
|
+
const scoped = scopedSlaKey(target.scope, key);
|
|
2034
|
+
if (slaIds.has(scoped)) {
|
|
2035
|
+
unresolved.push({
|
|
2036
|
+
kind: "case-sla",
|
|
2037
|
+
where: `${target.where}[${rule.displayName}]`,
|
|
2038
|
+
detail: `two SLA rules in ${target.scope === "root" ? "the case" : "this stage"} are named "${rule.displayName}", and the runtime tells an SLA's status changes apart by name, so this conditional rule is left out; the document has to name each rule once`
|
|
2039
|
+
});
|
|
2040
|
+
return false;
|
|
2041
|
+
}
|
|
2042
|
+
const entry = { id: String(rule.id), stageId: target.scope };
|
|
2043
|
+
slaIds.set(scoped, entry);
|
|
2044
|
+
if (!slaIds.has(key))
|
|
2045
|
+
slaIds.set(key, entry);
|
|
2046
|
+
return true;
|
|
2047
|
+
};
|
|
2048
|
+
var targetSlaRules = (target, shared) => {
|
|
2049
|
+
const { outputs, slaIds, unresolved } = shared;
|
|
2050
|
+
const { fallback } = target;
|
|
2051
|
+
const built = conditionalSlaRules(target.conditional, target.where, unresolved, (expression, where) => expandXrefs(expression, { outputs, where, unresolved }), fallback !== undefined, fallback === undefined ? undefined : `${String(fallback.count)} ${String(fallback.unit)}`, (duration, sink) => slaRuleFor(target.title, duration, target.escalationRows, target.escalationWhere, sink, target.asked), !target.declared);
|
|
2052
|
+
const tableDefault = built.at(-1);
|
|
2053
|
+
const last = fallback ?? (tableDefault === undefined || typeof tableDefault.displayName === "string" ? tableDefault : { ...tableDefault, displayName: target.title });
|
|
2054
|
+
const conditional = (fallback === undefined ? built.slice(0, -1) : built).map((rule, at) => named(rule, at, target.title));
|
|
2055
|
+
if (last === undefined)
|
|
2056
|
+
return [];
|
|
2057
|
+
if (fallback === undefined)
|
|
2058
|
+
register(last, target, slaIds, unresolved);
|
|
2059
|
+
return [
|
|
2060
|
+
...conditional.filter((rule) => register(rule, target, slaIds, unresolved)),
|
|
2061
|
+
last
|
|
2062
|
+
];
|
|
2063
|
+
};
|
|
2064
|
+
var planSlaRules = (index, model, unresolved) => {
|
|
2065
|
+
const shared = {
|
|
2066
|
+
outputs: index.outputIds,
|
|
2067
|
+
slaIds: index.slaIds,
|
|
2068
|
+
unresolved
|
|
1859
2069
|
};
|
|
2070
|
+
for (const one of index.planned) {
|
|
2071
|
+
one.slaRules = targetSlaRules({
|
|
2072
|
+
scope: one.stageId,
|
|
2073
|
+
where: `nodes[${one.stage.name}].data.slaRules`,
|
|
2074
|
+
conditional: one.stage.conditionalSlas ?? [],
|
|
2075
|
+
fallback: one.stageSla,
|
|
2076
|
+
title: String(one.stage.slaTitle ?? `${one.stage.name} SLA`),
|
|
2077
|
+
escalationRows: one.stage.slaEscalationRows ?? [],
|
|
2078
|
+
escalationWhere: `nodes[${one.stage.name}].data.sla`,
|
|
2079
|
+
asked: {
|
|
2080
|
+
table: one.stage.slaEscalations,
|
|
2081
|
+
map: one.stage.slaResponses
|
|
2082
|
+
},
|
|
2083
|
+
declared: statesSla(one.stage.hasSla, one.stage.slaDuration)
|
|
2084
|
+
}, shared);
|
|
2085
|
+
}
|
|
2086
|
+
index.caseSlaRules = targetSlaRules({
|
|
2087
|
+
scope: "root",
|
|
2088
|
+
where: "metadata.slaRules",
|
|
2089
|
+
conditional: model.caseConditionalSlas ?? [],
|
|
2090
|
+
fallback: index.caseSla,
|
|
2091
|
+
title: model.caseSlaTitle ?? CASE_SLA_PROPERTY,
|
|
2092
|
+
escalationRows: model.caseSlaEscalationRows,
|
|
2093
|
+
escalationWhere: "metadata.slaRules",
|
|
2094
|
+
asked: {
|
|
2095
|
+
table: model.caseSlaEscalations,
|
|
2096
|
+
map: model.caseSlaResponses
|
|
2097
|
+
},
|
|
2098
|
+
declared: statesSla(model.caseSla, model.caseSlaDuration)
|
|
2099
|
+
}, shared);
|
|
1860
2100
|
};
|
|
1861
2101
|
|
|
1862
2102
|
// ../case-tool/src/services/sdd-convert/rule-names.ts
|
|
@@ -1943,9 +2183,12 @@ var convertSddToCasePlan = (model, options) => {
|
|
|
1943
2183
|
}
|
|
1944
2184
|
}
|
|
1945
2185
|
markDeferredOutputs(index.outputIds, placeholderOutputs);
|
|
2186
|
+
planSlaRules(index, model, unresolved);
|
|
1946
2187
|
const { taskCount, conditionCount } = emitStages(document, model, index, unresolved);
|
|
1947
2188
|
const caseLevel = finishCaseDocument(document, model, index, unresolved);
|
|
1948
2189
|
uniquifyConditionNames(document);
|
|
2190
|
+
designerShapeConnectorTasks(document);
|
|
2191
|
+
emitCanvasNotes(document, model.canvasNotes);
|
|
1949
2192
|
return {
|
|
1950
2193
|
document,
|
|
1951
2194
|
derived: {
|
|
@@ -1961,4 +2204,4 @@ export {
|
|
|
1961
2204
|
convertSddToCasePlan
|
|
1962
2205
|
};
|
|
1963
2206
|
|
|
1964
|
-
//# debugId=
|
|
2207
|
+
//# debugId=FCE7E06EB7608CD364756E2164756E21
|