@uipath/case-tool 1.205.0-preview.281 → 1.206.0-preview.282
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/dist/THIRD-PARTY-NOTICES.md +68 -7
- package/dist/applicationinsights-web-8m26566f.js +17209 -0
- package/dist/{authoring-kqh34zzm.js → authoring-vg90pqrn.js} +488 -213
- package/dist/bindings-v2-1da35xsc.js +27 -0
- package/dist/{browser-strategy-6atc7v8s.js → browser-strategy-627rrg7z.js} +6 -7
- package/dist/{business-rule-export-ey588rv7.js → business-rule-export-jv60r9jf.js} +3 -7
- package/dist/carry-forward-sfdnta6q.js +52 -0
- package/dist/{case-api-sme7esce.js → case-api-by95rf40.js} +38 -37
- package/dist/{case-bindings-service-cht20gqt.js → case-bindings-service-pp3c9g1e.js} +93 -45
- package/dist/{case-debug-solution-projects-qqd3h10v.js → case-debug-solution-projects-je7h4hmq.js} +3 -7
- package/dist/{case-debug-studio-web-service-nqzmwbr5.js → case-debug-studio-web-service-d83h3atd.js} +48 -45
- package/dist/{case-described-io-service-dx1f4nxe.js → case-described-io-service-tsm8r189.js} +33 -15
- package/dist/case-event-trigger-bindings-qbs8ywf5.js +17 -0
- package/dist/{case-format-service-6aew6tqc.js → case-format-service-3sab2297.js} +9 -10
- package/dist/{case-pack-service-pqq8wnfd.js → case-pack-service-txnv711n.js} +47 -42
- package/dist/case-schema-version-cw0h2nrv.js +18 -0
- package/dist/case-shape-reader-xaxmrd40.js +14 -0
- package/dist/{case-splice-service-s5gccctq.js → case-splice-service-6y35w83e.js} +139 -51
- package/dist/{case-validate-service-vq38va33.js → case-validate-service-hz0j90we.js} +234 -170
- package/dist/connector-enrichment-service-sjjmb9dy.js +56 -0
- package/dist/connector-library-1yw5r47w.js +99 -0
- package/dist/connector-lookup-service-yerhg9cd.js +20 -0
- package/dist/connector-task-shape-bgywpbqc.js +13 -0
- package/dist/{de-WLW6KWOJ-2qnsqdtw.js → de-2BEKRUMY-x4dx0nn9.js} +190 -10
- package/dist/{de-UZI7FJDO-mwvc4cxe.js → de-AI7ML6JM-km47f8k4.js} +20 -5
- package/dist/debug-service-h4jxbn1r.js +56 -0
- package/dist/{embedded-file-reader-r66242ey.js → embedded-file-reader-0228j82a.js} +1 -4
- package/dist/en-LAVDF7IQ-yzy20n6d.js +254 -0
- package/dist/en-X6T4SP2Y-xm47mf18.js +2752 -0
- package/dist/{enrichment-service-hv7ff88p.js → enrichment-service-wpprec7k.js} +36 -37
- package/dist/{es-5THCNRFN-tqwyrdgy.js → es-7ZTQTGKN-11sj0yjx.js} +190 -10
- package/dist/{es-MX-5RELIXKI-9jhqtddc.js → es-MX-7KJZPEQN-1fq0a9jr.js} +20 -5
- package/dist/{es-MX-TWZBRAXK-gqd9swzw.js → es-MX-IHGRIEWH-g63p0gb4.js} +191 -11
- package/dist/{es-4UBUTCQA-m1ytpyx2.js → es-SPNKTD5Y-vw5cbgv5.js} +20 -5
- package/dist/filter-engine-dh9s90gb.js +10 -0
- package/dist/first-party-service-ahcc6xc6.js +8 -0
- package/dist/{fr-CERONSRC-edpxhbmb.js → fr-7ZDL4MVO-pd27vwh6.js} +191 -11
- package/dist/{fr-VBM5WRC2-63z7w4mh.js → fr-AXJGUT53-hdg3pmd4.js} +20 -5
- package/dist/index-21kns9qg.js +10 -0
- package/dist/{index-fyc0k5dd.js → index-5pzp2qeb.js} +5350 -3271
- package/dist/{connector-task-spec-pzfzmfr5.js → index-9f8naxbk.js} +320 -144
- package/dist/{index-5dxh9z60.js → index-a7y7etmy.js} +6 -5
- package/dist/{index-ekwtgx7y.js → index-ec115v05.js} +309 -287
- package/dist/index-j9t2k52h.js +35 -0
- package/dist/index-myf7b4a5.js +26 -0
- package/dist/index-nj3axvya.js +159 -0
- package/dist/{index-h8cph72k.js → index-nzr4mx5p.js} +2 -22
- package/dist/index-pg9wmyrf.js +36 -0
- package/dist/index-z2qk2qn6.js +24 -0
- package/dist/index.js +19 -25
- package/dist/index.umd.min-ttg1qc0x.js +7814 -0
- package/dist/{init-entry-points-hhpv3e3f.js → init-entry-points-pc128f7z.js} +22 -35
- package/dist/input-reader-9ym8mkbc.js +10 -0
- package/dist/{ja-43QL7CGO-c3q8gre9.js → ja-C7GZV6YP-hvtbngr5.js} +20 -5
- package/dist/{ja-U2MCNHGT-gz0ap1jk.js → ja-LGAM5HKR-sgrtjqjh.js} +190 -10
- package/dist/{jmespath-e4a59c8w.js → jmespath-wwym30dp.js} +1 -1
- package/dist/{js-yaml-87cdx6bm.js → js-yaml-a2bk27p6.js} +1 -3
- package/dist/known-types-gak9by1w.js +11 -0
- package/dist/{ko-XAUYQWDR-zp81gjp4.js → ko-7B4SUZB7-c8wr20sc.js} +190 -10
- package/dist/{ko-TLL6Z6CD-wrt3n8a9.js → ko-Q24HSSL4-5vn55pte.js} +20 -5
- package/dist/localSolutionDiscovery-48d1bnkj.js +15 -0
- package/dist/{migration-diagnosis-ns5cw4e3.js → migration-diagnosis-myqqgwj0.js} +1 -4
- package/dist/{node-strategy-v442hwgd.js → node-strategy-2mqzg36t.js} +15 -18
- package/dist/node-sync-service-y8b5w1rd.js +56 -0
- package/dist/{out-target-wjgmna0r.js → out-target-eqsttq1k.js} +18 -22
- package/dist/{packager-tool-f8vwy92w.js → packager-tool-0te1tyhf.js} +186 -16
- package/dist/{packager-tool-ydyvtknp.js → packager-tool-0w4fsdzv.js} +44 -20
- package/dist/{packager-tool-8ftat1vn.js → packager-tool-17b466mr.js} +59158 -59666
- package/dist/packager-tool-1nfdj0zm.js +425 -0
- package/dist/packager-tool-1wgav5ma.js +139 -0
- package/dist/{packager-tool-b1nw50ev.js → packager-tool-265h946t.js} +256 -486
- package/dist/{packager-tool-nj4seavy.js → packager-tool-35c9npcy.js} +26 -7
- package/dist/{packager-tool-r0x3qh59.js → packager-tool-388vyja1.js} +185 -29
- package/dist/packager-tool-3m8482sw.js +78 -0
- package/dist/packager-tool-3r23qsca.js +4832 -0
- package/dist/packager-tool-3xehbdyd.js +1302 -0
- package/dist/packager-tool-4avchhz8.js +539 -0
- package/dist/{packager-tool-9kvkzc05.js → packager-tool-5w0gjcck.js} +4 -4
- package/dist/packager-tool-68648y3j.js +6 -0
- package/dist/{packager-tool-1yh8g550.js → packager-tool-6an893wm.js} +12 -3
- package/dist/{packager-tool-aagnvyba.js → packager-tool-76zhn5pa.js} +131 -432
- package/dist/packager-tool-7x1tmb8a.js +46 -0
- package/dist/{packager-tool-kyrm4e5m.js → packager-tool-9ar5829n.js} +781 -741
- package/dist/{packager-tool-4p11fvf4.js → packager-tool-b2q8m9pq.js} +10 -13
- package/dist/packager-tool-bg3tdpva.js +27 -0
- package/dist/{packager-tool-wr12ndwk.js → packager-tool-ccejfs0r.js} +252 -468
- package/dist/{packager-tool-yn33pw57.js → packager-tool-dn9d4ywm.js} +246 -225
- package/dist/{packager-tool-kdhey8gz.js → packager-tool-e02jkmrq.js} +41 -29
- package/dist/{packager-tool-sq931c23.js → packager-tool-e1tx5mqg.js} +1 -1
- package/dist/{packager-tool-qn3zkrrc.js → packager-tool-ehjw672b.js} +32 -15
- package/dist/packager-tool-gy4yjqhf.js +178 -0
- package/dist/packager-tool-h2ar8xf8.js +222 -0
- package/dist/{packager-tool-v2kcgjbf.js → packager-tool-j6nfje7t.js} +5 -4
- package/dist/packager-tool-k0ar6cn7.js +295 -0
- package/dist/packager-tool-kz7zz79p.js +71 -0
- package/dist/{packager-tool-1gwbq864.js → packager-tool-m5384a1s.js} +66 -82
- package/dist/{packager-tool-9e59z4d6.js → packager-tool-me8gd22q.js} +82 -83
- package/dist/packager-tool-mk9fmzdy.js +20 -0
- package/dist/{packager-tool-yfmby4dd.js → packager-tool-mkt1njk2.js} +630 -689
- package/dist/{packager-tool-gdtpsdn7.js → packager-tool-mm1x18d6.js} +223 -28
- package/dist/{packager-tool-mqy97y5f.js → packager-tool-p5gs9xqy.js} +14 -14
- package/dist/{packager-tool-83v804p7.js → packager-tool-psmb758n.js} +3108 -2627
- package/dist/packager-tool-q26hncjr.js +13 -0
- package/dist/packager-tool-q9fnx278.js +77 -0
- package/dist/{packager-tool-ezds6t5e.js → packager-tool-s12s1dp6.js} +11 -11
- package/dist/packager-tool-scy94jyb.js +5424 -0
- package/dist/{packager-tool-yn7r7zq2.js → packager-tool-snesn0bt.js} +177 -96
- package/dist/{packager-tool-d8e2mrkq.js → packager-tool-tgehy324.js} +56 -56
- package/dist/{packager-tool-tqn0j6f9.js → packager-tool-v11fx4dk.js} +7 -7
- package/dist/{packager-tool-67vy1fz3.js → packager-tool-v6rkp2ay.js} +24 -92
- package/dist/{packager-tool-9sd483vs.js → packager-tool-vs7gqa4r.js} +15 -15
- package/dist/packager-tool-vyavrbym.js +488 -0
- package/dist/{packager-tool-b098y4a2.js → packager-tool-wbksf242.js} +97 -97
- package/dist/{packager-tool-2sn7d8fd.js → packager-tool-x74mmjkw.js} +9 -13
- package/dist/{packager-tool-7hw344bt.js → packager-tool-xb16e3tz.js} +5 -5
- package/dist/{packager-tool-a17g0pj1.js → packager-tool-xd1wbvay.js} +10 -8
- package/dist/{packager-tool-1yfw674x.js → packager-tool-xehhk3c3.js} +10 -5
- package/dist/packager-tool-yh8mmj3p.js +123 -0
- package/dist/{packager-tool-hdxtgckw.js → packager-tool-z070caqq.js} +56 -12
- package/dist/{packager-tool-b250k6w4.js → packager-tool-z1fw9a8v.js} +41 -9
- package/dist/{packager-tool-0gctz400.js → packager-tool-z9fmqtm6.js} +4 -4
- package/dist/{packager-tool-mzf4gmph.js → packager-tool-zbx189j3.js} +11 -8
- package/dist/{packager-tool-zf8f9pmm.js → packager-tool-zrbnms9b.js} +3 -4
- package/dist/packager-tool.js +10 -11
- package/dist/prepare-uip-ad7mfs8t.js +92 -0
- package/dist/{project-artifacts-bgyyb0dm.js → project-artifacts-q0c0zghw.js} +2 -6
- package/dist/{pt-BR-USP2T7GD-pedn77m1.js → pt-BR-BIUJXIPU-2sqzhr8y.js} +20 -5
- package/dist/{pt-BR-GNQNAAZ2-xadharv4.js → pt-BR-PHLFHMXZ-n6de4s7z.js} +191 -11
- package/dist/{pt-RMIAKZB4-67enhx3m.js → pt-MHX6JGAX-xfgvdqwg.js} +20 -5
- package/dist/{pt-TO2DARY2-ftcce1bv.js → pt-N7ZTJT4W-d6c67xcn.js} +190 -10
- package/dist/{resolved-check-aqw7568y.js → resolved-check-dz8eqrf6.js} +2 -3
- package/dist/{resourcesSyncService-8ac6ncq2.js → resourcesSyncService-yrhhh62m.js} +81 -141
- package/dist/{ro-GHOBYW2S-mhnqsgaa.js → ro-3RKJNGJZ-xqj14e3d.js} +20 -5
- package/dist/{ro-WUYJV6OW-a8d9qy1n.js → ro-FLNXVYJI-ytrwabg2.js} +190 -10
- package/dist/ru-GSCT4ARZ-c2cfq4h1.js +7 -0
- package/dist/ru-WBLQ5B2U-bf20yr5y.js +7 -0
- package/dist/{rule-group-members-zje7n3kf.js → rule-group-members-p0nv1rmj.js} +1 -3
- package/dist/rule-type-declaration-s2nxpcfy.js +77 -0
- package/dist/{sdd-convert-service-8jpew7vz.js → sdd-convert-service-ffbx00k6.js} +481 -504
- package/dist/{sdd-lookup-fe900sdb.js → sdd-lookup-sah7wj5j.js} +8 -9
- package/dist/{sdd-resolve-service-qdtmxw9b.js → sdd-resolve-service-6nt10vhq.js} +28 -20
- package/dist/{sdd-resolve-siblings-8gf9zjwf.js → sdd-resolve-siblings-ap8j1c8h.js} +11 -14
- package/dist/solution-auth-a1p22hq1.js +11 -0
- package/dist/solution-discovery-r1y550sz.js +33 -0
- package/dist/{strict-case-rules-4tjcaznr.js → strict-case-rules-045kbjvv.js} +16 -28
- package/dist/{strict-entry-points-g2pd4mf4.js → strict-entry-points-40ha9afz.js} +15 -14
- package/dist/strict-sdd-audit-bp7fq2tg.js +26 -0
- package/dist/{task-selector-8bjn35dv.js → task-selector-jt60hdbt.js} +1 -3
- package/dist/{task-type-declaration-7a8fqdvs.js → task-type-declaration-yhczvj05.js} +9 -9
- package/dist/tool.js +18 -24
- package/dist/{tr-M3F5A6AU-bb0tg39m.js → tr-7AIZZWZ6-pdzp9n0p.js} +190 -10
- package/dist/{tr-GDTLECMM-k5fhmq13.js → tr-PQLUUHPC-qsb7btxn.js} +20 -5
- package/dist/{trigger-enrichment-service-agvnhdf7.js → trigger-enrichment-service-z8kxy6qr.js} +53 -57
- package/dist/trigger-entry-point-id-751v48qd.js +14 -0
- package/dist/{zh-CN-C5G4PC7C-ds9gkptg.js → zh-CN-CN2ARPFS-e0p2qrxf.js} +190 -10
- package/dist/{zh-CN-I5D7WHBD-sr5h0a98.js → zh-CN-OHNTHZRI-b0hjkfqn.js} +20 -5
- package/dist/{zh-TW-62HZIG6O-787kdwex.js → zh-TW-7RUFEVFK-qd7myw31.js} +190 -10
- package/dist/{zh-TW-2AVLM723-288pkc1z.js → zh-TW-E4D3Y6ZR-tn3bmzz5.js} +20 -5
- package/package.json +2 -2
- package/dist/canvas-notes-86fxx1t8.js +0 -19
- package/dist/case-event-trigger-bindings-g9ftnm4x.js +0 -16
- package/dist/case-schema-version-h820ne16.js +0 -20
- package/dist/case-shape-reader-dsbraetf.js +0 -13
- package/dist/connector-enrichment-service-6kskfevq.js +0 -65
- package/dist/connector-lookup-service-yyn8kkw7.js +0 -22
- package/dist/connector-task-shape-mpazkf7s.js +0 -14
- package/dist/debug-service-7q98j726.js +0 -59
- package/dist/en-EJCBA3LK-dtpdghgj.js +0 -146
- package/dist/en-M7GQYBV2-5nfmpnfz.js +0 -2018
- package/dist/filter-engine-7ep90g7f.js +0 -11
- package/dist/first-party-service-srxaftkn.js +0 -27
- package/dist/index-0d7qc2gs.js +0 -282
- package/dist/index-jmv5by9z.js +0 -666
- package/dist/index-kmp9fmhb.js +0 -25
- package/dist/index-n9qvnx4x.js +0 -29
- package/dist/index-ngs0a2he.js +0 -15
- package/dist/index-xq6ajhgq.js +0 -157
- package/dist/index.umd.min-fqefd9kn.js +0 -7814
- package/dist/input-reader-c7wz8ra2.js +0 -11
- package/dist/known-types-5b6yrsqn.js +0 -16
- package/dist/localSolutionDiscovery-yyx234ak.js +0 -13
- package/dist/node-sync-service-2ezr3akv.js +0 -57
- package/dist/packager-tool-53w8skv5.js +0 -262
- package/dist/packager-tool-6z1hsm2h.js +0 -143
- package/dist/packager-tool-93mdeqay.js +0 -18
- package/dist/packager-tool-9kf3fqtr.js +0 -23
- package/dist/packager-tool-bfgdz1zh.js +0 -73
- package/dist/packager-tool-e15kqpyh.js +0 -266
- package/dist/packager-tool-gmykn1ef.js +0 -5365
- package/dist/packager-tool-jysvpt8p.js +0 -11
- package/dist/packager-tool-pcvhcn2k.js +0 -2019
- package/dist/packager-tool-rk25wp3c.js +0 -28
- package/dist/packager-tool-sc961w0q.js +0 -16
- package/dist/packager-tool-wekqkmgn.js +0 -265
- package/dist/packager-tool-yc4kw997.js +0 -13
- package/dist/packager-tool-zgpsnxkd.js +0 -13189
- package/dist/ru-GSCT4ARZ-1sa9wbr8.js +0 -10
- package/dist/ru-WBLQ5B2U-s4em88p0.js +0 -10
- package/dist/solution-auth-30yycqtv.js +0 -14
- package/dist/solution-discovery-e9mamp6w.js +0 -38
- package/dist/strict-sdd-audit-q7tb9yj7.js +0 -25
- package/dist/trigger-entry-point-id-yhqwnkx9.js +0 -15
- /package/dist/{packager-tool-5qp9xza1.js → packager-tool-1c30ttpm.js} +0 -0
- /package/dist/{packager-tool-mknccck5.js → packager-tool-1h7abxw6.js} +0 -0
- /package/dist/{packager-tool-9y1w2wds.js → packager-tool-fcektt1g.js} +0 -0
- /package/dist/{packager-tool-k6jbedyc.js → packager-tool-hcdnc420.js} +0 -0
- /package/dist/{packager-tool-7nxppa3d.js → packager-tool-jv5byaww.js} +0 -0
- /package/dist/{packager-tool-qa9gftnj.js → packager-tool-mxgybnmt.js} +0 -0
- /package/dist/{packager-tool-87y6xw3a.js → packager-tool-nfhtwa72.js} +0 -0
- /package/dist/{packager-tool-cv05dwac.js → packager-tool-p0rdmmvk.js} +0 -0
- /package/dist/{packager-tool-21qfsbxn.js → packager-tool-yaertxsw.js} +0 -0
|
@@ -1,473 +1,95 @@
|
|
|
1
|
+
import"./packager-tool-1wgav5ma.js";
|
|
2
|
+
import"./packager-tool-yh8mmj3p.js";
|
|
1
3
|
import {
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
} from "./packager-tool-
|
|
4
|
+
withoutTrailingSlug,
|
|
5
|
+
namedValue
|
|
6
|
+
} from "./packager-tool-fcektt1g.js";
|
|
5
7
|
import {
|
|
6
|
-
|
|
7
|
-
|
|
8
|
+
emitBusinessEvents,
|
|
9
|
+
connectorInputs,
|
|
10
|
+
connectorContextFor,
|
|
11
|
+
parseWhen,
|
|
12
|
+
entryConditionFor,
|
|
13
|
+
caseExitRuleFor,
|
|
14
|
+
exitConditionFor
|
|
15
|
+
} from "./packager-tool-vyavrbym.js";
|
|
16
|
+
import {
|
|
17
|
+
markDeferredOutputs,
|
|
18
|
+
expandXrefs,
|
|
19
|
+
expandOutputMarkers,
|
|
20
|
+
declaredOutputs,
|
|
21
|
+
outputTypeFor,
|
|
22
|
+
outputFor,
|
|
23
|
+
variableOutputType,
|
|
24
|
+
rowOutputType,
|
|
25
|
+
unmappedOutputType,
|
|
26
|
+
extractOutputFor,
|
|
27
|
+
customOutputFor,
|
|
28
|
+
canonicalExpression,
|
|
29
|
+
inputsFor
|
|
30
|
+
} from "./packager-tool-1nfdj0zm.js";
|
|
31
|
+
import"./packager-tool-z070caqq.js";
|
|
32
|
+
import {
|
|
33
|
+
catchError2
|
|
34
|
+
} from "./packager-tool-psmb758n.js";
|
|
35
|
+
import"./packager-tool-h2ar8xf8.js";
|
|
36
|
+
import {
|
|
37
|
+
NAME_BOUND_TASK_TYPES,
|
|
38
|
+
BINDING_REFERENCE_PREFIX
|
|
39
|
+
} from "./packager-tool-nfhtwa72.js";
|
|
40
|
+
import"./packager-tool-mk9fmzdy.js";
|
|
41
|
+
import {
|
|
42
|
+
CONNECTOR_CALL_TASK_TYPES
|
|
43
|
+
} from "./packager-tool-7x1tmb8a.js";
|
|
44
|
+
import {
|
|
45
|
+
hasFixedOutputs,
|
|
46
|
+
fixedOutputName,
|
|
47
|
+
ERROR_OUTPUT_SCHEMA,
|
|
48
|
+
FILE_TYPE_JSON_SCHEMA,
|
|
49
|
+
BUSINESS_RULE_TASK_VERSION
|
|
50
|
+
} from "./packager-tool-0w4fsdzv.js";
|
|
8
51
|
import {
|
|
9
|
-
RECIPIENT_TYPES,
|
|
10
52
|
SDD_TASK_TYPES,
|
|
11
53
|
UNAUTHORABLE_TASK_TYPES,
|
|
12
|
-
bindingPairFor
|
|
13
|
-
|
|
14
|
-
} from "./packager-tool-4p11fvf4.js";
|
|
54
|
+
bindingPairFor
|
|
55
|
+
} from "./packager-tool-b2q8m9pq.js";
|
|
15
56
|
import {
|
|
16
|
-
|
|
17
|
-
|
|
57
|
+
CASE_SLA_PROPERTY,
|
|
58
|
+
VARIABLE_PLACEMENT2,
|
|
59
|
+
DEFAULT_GROUP2
|
|
60
|
+
} from "./packager-tool-9ar5829n.js";
|
|
18
61
|
import {
|
|
19
|
-
|
|
20
|
-
|
|
62
|
+
gateKey,
|
|
63
|
+
canonicalVariableType
|
|
64
|
+
} from "./packager-tool-hcdnc420.js";
|
|
21
65
|
import {
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
} from "./packager-tool-87y6xw3a.js";
|
|
66
|
+
designerShapeConnectorTasks2
|
|
67
|
+
} from "./packager-tool-xd1wbvay.js";
|
|
25
68
|
import {
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
TASK_SELECTOR_RULES,
|
|
30
|
-
VARIABLE_PLACEMENT,
|
|
31
|
-
canonicalExpression,
|
|
32
|
-
customOutputFor,
|
|
33
|
-
declaredOutputs,
|
|
34
|
-
expandOutputMarkers,
|
|
35
|
-
expandXrefs,
|
|
36
|
-
extractOutputFor,
|
|
37
|
-
inputsFor,
|
|
38
|
-
markDeferredOutputs,
|
|
39
|
-
outputFor,
|
|
40
|
-
outputTypeFor,
|
|
41
|
-
parseIfCell,
|
|
42
|
-
unquoteLiteral,
|
|
43
|
-
variableOutputType
|
|
44
|
-
} from "./packager-tool-kyrm4e5m.js";
|
|
45
|
-
import"./packager-tool-b250k6w4.js";
|
|
69
|
+
caseRolesFor,
|
|
70
|
+
emitCanvasNotes
|
|
71
|
+
} from "./packager-tool-388vyja1.js";
|
|
46
72
|
import {
|
|
47
73
|
buildElementId,
|
|
48
|
-
|
|
49
|
-
claimOutput,
|
|
50
|
-
dedupedId,
|
|
51
|
-
everySpelling,
|
|
74
|
+
stageSpellings,
|
|
52
75
|
indexKey,
|
|
53
76
|
modelKey,
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
FILE_TYPE_JSON_SCHEMA,
|
|
61
|
-
httpRequestOutputName
|
|
62
|
-
} from "./packager-tool-ydyvtknp.js";
|
|
63
|
-
import"./packager-tool-21qfsbxn.js";
|
|
64
|
-
import {
|
|
65
|
-
namedValue,
|
|
66
|
-
withoutTrailingSlug
|
|
67
|
-
} from "./packager-tool-9y1w2wds.js";
|
|
77
|
+
everySpelling,
|
|
78
|
+
claim,
|
|
79
|
+
dedupedId,
|
|
80
|
+
claimOutput,
|
|
81
|
+
scopedSlaKey
|
|
82
|
+
} from "./packager-tool-5w0gjcck.js";
|
|
68
83
|
import {
|
|
69
84
|
buildMinimalCaseDocument
|
|
70
|
-
} from "./packager-tool-
|
|
85
|
+
} from "./packager-tool-j6nfje7t.js";
|
|
71
86
|
import {
|
|
72
87
|
prefixedId
|
|
73
|
-
} from "./packager-tool-
|
|
74
|
-
import"./packager-tool-nj4seavy.js";
|
|
88
|
+
} from "./packager-tool-1h7abxw6.js";
|
|
75
89
|
import {
|
|
76
90
|
byCodeUnit
|
|
77
|
-
} from "./packager-tool-
|
|
78
|
-
import
|
|
79
|
-
catchError
|
|
80
|
-
} from "./packager-tool-83v804p7.js";
|
|
81
|
-
import"./packager-tool-hdxtgckw.js";
|
|
82
|
-
import"./packager-tool-1yh8g550.js";
|
|
83
|
-
|
|
84
|
-
// src/services/exit-condition-types.ts
|
|
85
|
-
var EXIT_CONDITION_TYPES = new Set([
|
|
86
|
-
"exit-only",
|
|
87
|
-
"wait-for-user",
|
|
88
|
-
"return-to-origin"
|
|
89
|
-
]);
|
|
90
|
-
|
|
91
|
-
// src/services/sdd-convert/connector.ts
|
|
92
|
-
var connectorInputs = (inputs, connector, elementId, where, unresolved) => {
|
|
93
|
-
if (connector === undefined)
|
|
94
|
-
return inputs;
|
|
95
|
-
if (inputs.length === 0) {
|
|
96
|
-
if (String(connector.serviceType ?? "") !== "Intsvc.WaitForEvent") {
|
|
97
|
-
return inputs;
|
|
98
|
-
}
|
|
99
|
-
const id = prefixedId("v", 8);
|
|
100
|
-
return [
|
|
101
|
-
{ name: "body", type: "json", value: "", id, var: id, elementId }
|
|
102
|
-
];
|
|
103
|
-
}
|
|
104
|
-
if (connector.method === undefined) {
|
|
105
|
-
unresolved.push({
|
|
106
|
-
kind: "connector-context",
|
|
107
|
-
where,
|
|
108
|
-
detail: `${inputs.length} connector input(s) stay flat: the document states no method for this activity, so which of pathParameters/queryParameters/body each belongs in is not decidable from it`
|
|
109
|
-
});
|
|
110
|
-
return inputs;
|
|
111
|
-
}
|
|
112
|
-
const bodies = new Map;
|
|
113
|
-
const kept = [];
|
|
114
|
-
for (const input of inputs) {
|
|
115
|
-
const field = String(input.name ?? "");
|
|
116
|
-
const container = containerFor(field, connector);
|
|
117
|
-
if (container === undefined) {
|
|
118
|
-
kept.push(input);
|
|
119
|
-
continue;
|
|
120
|
-
}
|
|
121
|
-
const body = bodies.get(container) ?? {};
|
|
122
|
-
body[field] = unquoteLiteral(String(input.value ?? ""));
|
|
123
|
-
bodies.set(container, body);
|
|
124
|
-
}
|
|
125
|
-
if (bodies.size === 0)
|
|
126
|
-
return kept;
|
|
127
|
-
if (!bodies.has("pathParameters"))
|
|
128
|
-
bodies.set("pathParameters", {});
|
|
129
|
-
const containers = [];
|
|
130
|
-
for (const name of ["pathParameters", "queryParameters", "body"]) {
|
|
131
|
-
const body = bodies.get(name);
|
|
132
|
-
if (body === undefined)
|
|
133
|
-
continue;
|
|
134
|
-
const id = prefixedId("v", 8);
|
|
135
|
-
containers.push({
|
|
136
|
-
name,
|
|
137
|
-
type: "json",
|
|
138
|
-
target: name,
|
|
139
|
-
body,
|
|
140
|
-
id,
|
|
141
|
-
var: id,
|
|
142
|
-
elementId
|
|
143
|
-
});
|
|
144
|
-
}
|
|
145
|
-
return [...containers, ...kept];
|
|
146
|
-
};
|
|
147
|
-
var connectorContextFor = (connector, where, connections, bindings, unresolved) => {
|
|
148
|
-
const entry = (name, value) => typeof value === "string" && value !== "" ? [{ name, type: "string", value }] : [];
|
|
149
|
-
const connectionId = String(connector.connectionId ?? "");
|
|
150
|
-
const context = [
|
|
151
|
-
...entry("connectorKey", connector.connectorKey),
|
|
152
|
-
...entry("resourceKey", connectionId),
|
|
153
|
-
...entry("objectName", connector.objectName),
|
|
154
|
-
...entry("operation", connector.operation ?? connector.method),
|
|
155
|
-
...entry("method", connector.method),
|
|
156
|
-
...entry("path", connector.path)
|
|
157
|
-
];
|
|
158
|
-
if (connectionId !== "") {
|
|
159
|
-
let ref = connections.get(connectionId);
|
|
160
|
-
if (ref === undefined) {
|
|
161
|
-
const pair = connectionPairFor(connectionId, connections.size + 1);
|
|
162
|
-
bindings.push(pair.connection, pair.folder);
|
|
163
|
-
ref = pair.connectionRef;
|
|
164
|
-
connections.set(connectionId, ref);
|
|
165
|
-
}
|
|
166
|
-
context.push({
|
|
167
|
-
name: "connection",
|
|
168
|
-
type: "string",
|
|
169
|
-
value: `${BINDING_REFERENCE_PREFIX}${ref}`
|
|
170
|
-
});
|
|
171
|
-
} else {
|
|
172
|
-
unresolved.push({
|
|
173
|
-
kind: "connector-connection",
|
|
174
|
-
where,
|
|
175
|
-
detail: "the document names no connection id, so nothing can be bound for this activity"
|
|
176
|
-
});
|
|
177
|
-
}
|
|
178
|
-
const activityTypeId = String(connector.activityTypeId ?? "");
|
|
179
|
-
if (activityTypeId !== "") {
|
|
180
|
-
context.push({
|
|
181
|
-
name: "metadata",
|
|
182
|
-
type: "json",
|
|
183
|
-
body: {
|
|
184
|
-
activityPropertyConfiguration: {
|
|
185
|
-
uiPathActivityTypeId: activityTypeId
|
|
186
|
-
}
|
|
187
|
-
}
|
|
188
|
-
});
|
|
189
|
-
}
|
|
190
|
-
unresolved.push({
|
|
191
|
-
kind: "connector-context",
|
|
192
|
-
where,
|
|
193
|
-
detail: `\`folderKey\` binds the folder's GUID and \`metadata.activityPropertyConfiguration.configuration\` carries the connector version and instance parameters; the document states a folder path and no schema, so ${activityTypeId === "" ? "those and the activity type id" : "both"} come from \`case spec\` against a tenant`
|
|
194
|
-
});
|
|
195
|
-
return context;
|
|
196
|
-
};
|
|
197
|
-
var QUERY_METHODS = new Set(["GET", "HEAD", "DELETE", "OPTIONS"]);
|
|
198
|
-
var containerFor = (field, connector) => {
|
|
199
|
-
const method = String(connector?.method ?? "").toUpperCase();
|
|
200
|
-
if (method === "")
|
|
201
|
-
return;
|
|
202
|
-
const path = String(connector?.path ?? "");
|
|
203
|
-
if (path.includes(`{${field}}`))
|
|
204
|
-
return "pathParameters";
|
|
205
|
-
return QUERY_METHODS.has(method) ? "queryParameters" : "body";
|
|
206
|
-
};
|
|
207
|
-
|
|
208
|
-
// src/services/sdd-convert/rules.ts
|
|
209
|
-
var RULE_VOCABULARY = new Set([
|
|
210
|
-
"wait-for-connector",
|
|
211
|
-
"case-entered",
|
|
212
|
-
"selected-stage-completed",
|
|
213
|
-
"selected-stage-exited",
|
|
214
|
-
"selected-tasks-completed",
|
|
215
|
-
"current-stage-entered",
|
|
216
|
-
"adhoc",
|
|
217
|
-
"required-stages-completed",
|
|
218
|
-
"required-tasks-completed",
|
|
219
|
-
"user-selected-stage",
|
|
220
|
-
"runs-sequentially",
|
|
221
|
-
"sla-status-change",
|
|
222
|
-
"api-event"
|
|
223
|
-
]);
|
|
224
|
-
var parseWhen = (cell) => {
|
|
225
|
-
const text = cell.replaceAll("`", "").trim();
|
|
226
|
-
const bare = /^([a-z-]+)/i.exec(text);
|
|
227
|
-
const rule = bare ? bare[1] : "";
|
|
228
|
-
const open = text.indexOf("(");
|
|
229
|
-
if (rule === "" || open === -1)
|
|
230
|
-
return { rule, argumentList: [] };
|
|
231
|
-
let depth = 0;
|
|
232
|
-
let close = -1;
|
|
233
|
-
for (let at = open;at < text.length; at += 1) {
|
|
234
|
-
if (text[at] === "(")
|
|
235
|
-
depth += 1;
|
|
236
|
-
else if (text[at] === ")") {
|
|
237
|
-
depth -= 1;
|
|
238
|
-
if (depth === 0) {
|
|
239
|
-
close = at;
|
|
240
|
-
break;
|
|
241
|
-
}
|
|
242
|
-
}
|
|
243
|
-
}
|
|
244
|
-
const inner = text.slice(open + 1, close === -1 ? undefined : close);
|
|
245
|
-
const quoted = [...inner.matchAll(/"([^"]*)"/g)].map((match) => match[1].trim());
|
|
246
|
-
if (quoted.length > 0) {
|
|
247
|
-
return { rule, argumentList: quoted.filter((one) => one !== "") };
|
|
248
|
-
}
|
|
249
|
-
const plain = inner.split("(")[0].trim();
|
|
250
|
-
return { rule, argumentList: plain === "" ? [] : [plain] };
|
|
251
|
-
};
|
|
252
|
-
var resolveStage = (argument, stages) => {
|
|
253
|
-
for (const variant of referenceSpellings(argument)) {
|
|
254
|
-
const found = stages.get(indexKey(variant));
|
|
255
|
-
if (found !== undefined)
|
|
256
|
-
return found;
|
|
257
|
-
}
|
|
258
|
-
const prefix = indexKey(argument);
|
|
259
|
-
const matches = [...stages.entries()].filter(([name]) => name.startsWith(prefix) && /^[\s\-:_]/.test(name.slice(prefix.length)));
|
|
260
|
-
return matches.length === 1 ? matches[0][1] : undefined;
|
|
261
|
-
};
|
|
262
|
-
var ruleFor = (condition, idPrefix, context) => {
|
|
263
|
-
const whenCell = typeof condition.when === "string" ? condition.when : "";
|
|
264
|
-
const { rule, argumentList } = parseWhen(whenCell);
|
|
265
|
-
const parsedIf = parseIfCell(typeof condition.ifExpression === "string" ? condition.ifExpression : "");
|
|
266
|
-
const ifExpression = parsedIf.expression;
|
|
267
|
-
if (!RULE_VOCABULARY.has(rule)) {
|
|
268
|
-
context.unresolved.push({
|
|
269
|
-
kind: "condition-rule",
|
|
270
|
-
where: context.where,
|
|
271
|
-
detail: whenCell === "" ? "the condition row names no WHEN rule, so the condition is left out" : `the WHEN cell "${whenCell}" is not one of the rules the plan accepts, so the condition is left out`
|
|
272
|
-
});
|
|
273
|
-
return;
|
|
274
|
-
}
|
|
275
|
-
const base = { id: prefixedId(`${idPrefix}r`, 6), rule };
|
|
276
|
-
if (ifExpression !== "" && ifExpression !== "—") {
|
|
277
|
-
base.conditionExpression = canonicalExpression(expandXrefs(ifExpression, context));
|
|
278
|
-
}
|
|
279
|
-
const argument = argumentList[0];
|
|
280
|
-
const selectorMiss = (what, named) => {
|
|
281
|
-
context.unresolved.push({
|
|
282
|
-
kind: "selector-target",
|
|
283
|
-
where: context.where,
|
|
284
|
-
detail: `\`${rule}\` selects ${named === undefined ? `no ${what}` : `a ${what} named "${named}", which this SDD does not declare`}`
|
|
285
|
-
});
|
|
286
|
-
};
|
|
287
|
-
if (STAGE_SELECTOR_RULES.has(rule)) {
|
|
288
|
-
const wanted = parsedIf.stage ?? argument;
|
|
289
|
-
const id = wanted === undefined ? undefined : resolveStage(wanted, context.stages);
|
|
290
|
-
if (id === undefined)
|
|
291
|
-
selectorMiss("stage", parsedIf.stage ?? argument);
|
|
292
|
-
else
|
|
293
|
-
base.selectedStageIds = [id];
|
|
294
|
-
} else if (TASK_SELECTOR_RULES.has(rule)) {
|
|
295
|
-
const named = parsedIf.tasks === undefined ? argumentList : parsedIf.tasks.split(",").map((one) => one.trim());
|
|
296
|
-
const ids = [];
|
|
297
|
-
for (const name of named) {
|
|
298
|
-
const exact = context.tasks.get(name);
|
|
299
|
-
const folded = exact === undefined ? context.taskNameConflicts?.get(indexKey(name)) : undefined;
|
|
300
|
-
const id = exact ?? (folded === undefined ? context.tasks.get(indexKey(name)) : undefined);
|
|
301
|
-
if (id !== undefined && context.stageTasks?.has(id) === false) {
|
|
302
|
-
context.unresolved.push({
|
|
303
|
-
kind: "selector-target",
|
|
304
|
-
where: context.where,
|
|
305
|
-
detail: `\`${rule}\` selects a task named "${name}", which is in another stage. A stage's rules and its tasks' rules select only that stage's own tasks, so name one of them`
|
|
306
|
-
});
|
|
307
|
-
continue;
|
|
308
|
-
}
|
|
309
|
-
if (id !== undefined) {
|
|
310
|
-
ids.push(id);
|
|
311
|
-
continue;
|
|
312
|
-
}
|
|
313
|
-
if (folded === undefined) {
|
|
314
|
-
selectorMiss("task", name);
|
|
315
|
-
continue;
|
|
316
|
-
}
|
|
317
|
-
const shared = new Set(folded).size < folded.length;
|
|
318
|
-
if (shared) {
|
|
319
|
-
context.unresolved.push({
|
|
320
|
-
kind: "selector-target",
|
|
321
|
-
where: context.where,
|
|
322
|
-
detail: `\`${rule}\` selects a task named "${name}", and ${folded.length} tasks answer to it (${[
|
|
323
|
-
...new Set(folded)
|
|
324
|
-
].map((one) => `"${one}"`).join(", ")}). Task names are unique across the case, so rename all but one and point the selector at the one it means`
|
|
325
|
-
});
|
|
326
|
-
continue;
|
|
327
|
-
}
|
|
328
|
-
context.unresolved.push({
|
|
329
|
-
kind: "selector-target",
|
|
330
|
-
where: context.where,
|
|
331
|
-
detail: `\`${rule}\` selects a task named "${name}", which matches none of this SDD's task names exactly and more than one when case and surrounding space are ignored (${folded.map((one) => `"${one}"`).join(", ")}) — task names are compared exactly, so the selector has to spell one of them`
|
|
332
|
-
});
|
|
333
|
-
}
|
|
334
|
-
if (ids.length === 0 && named.length === 0) {
|
|
335
|
-
selectorMiss("task");
|
|
336
|
-
}
|
|
337
|
-
if (ids.length > 0)
|
|
338
|
-
base.selectedTasksIds = ids;
|
|
339
|
-
} else if (rule === "sla-status-change") {
|
|
340
|
-
const title = argumentList.at(-1);
|
|
341
|
-
const found = title === undefined ? undefined : context.slas?.get(indexKey(title));
|
|
342
|
-
if (found === undefined) {
|
|
343
|
-
context.unresolved.push({
|
|
344
|
-
kind: "selector-target",
|
|
345
|
-
where: context.where,
|
|
346
|
-
detail: `\`sla-status-change\` selects ${title === undefined ? "no SLA" : `an SLA named "${title}", which neither the case nor any stage in this SDD declares`}`
|
|
347
|
-
});
|
|
348
|
-
} else {
|
|
349
|
-
if (argumentList.length < 2) {
|
|
350
|
-
base.slaId = found.id;
|
|
351
|
-
} else {
|
|
352
|
-
const named = argumentList[0];
|
|
353
|
-
const scope = indexKey(named) === "root" ? "root" : resolveStage(named, context.stages);
|
|
354
|
-
if (scope === undefined) {
|
|
355
|
-
selectorMiss("stage", named);
|
|
356
|
-
base.slaId = found.id;
|
|
357
|
-
} else {
|
|
358
|
-
const own = context.slas?.get(scopedSlaKey(scope, indexKey(title ?? "")));
|
|
359
|
-
if (own !== undefined) {
|
|
360
|
-
base.slaId = own.id;
|
|
361
|
-
} else {
|
|
362
|
-
context.unresolved.push({
|
|
363
|
-
kind: "selector-target",
|
|
364
|
-
where: context.where,
|
|
365
|
-
detail: `\`sla-status-change\` names the SLA "${title}" in ${scope === "root" ? "the case" : `stage "${named}"`}, and that SLA belongs to ${found.stageId === "root" ? "the case" : "another stage"}, so the rule is left without an \`slaId\` rather than watching an SLA it was not written for`
|
|
366
|
-
});
|
|
367
|
-
}
|
|
368
|
-
}
|
|
369
|
-
}
|
|
370
|
-
}
|
|
371
|
-
} else if (rule === "wait-for-connector") {
|
|
372
|
-
if (context.connector === undefined || context.connections === undefined || context.bindings === undefined) {
|
|
373
|
-
context.unresolved.push({
|
|
374
|
-
kind: "connector-connection",
|
|
375
|
-
where: context.where,
|
|
376
|
-
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"
|
|
377
|
-
});
|
|
378
|
-
base.uipath = {
|
|
379
|
-
serviceType: WAIT_FOR_EVENT,
|
|
380
|
-
context: [],
|
|
381
|
-
inputs: [],
|
|
382
|
-
outputs: [],
|
|
383
|
-
bindings: []
|
|
384
|
-
};
|
|
385
|
-
} else {
|
|
386
|
-
const built = connectorContextFor(context.connector, context.where, context.connections, context.bindings, context.unresolved).filter((entry) => entry.name !== "operation" || context.connector?.operation !== undefined);
|
|
387
|
-
const missing = missingActivitySlots(built);
|
|
388
|
-
if (missing.length > 0) {
|
|
389
|
-
context.unresolved.push({
|
|
390
|
-
kind: "connector-context",
|
|
391
|
-
where: context.where,
|
|
392
|
-
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`
|
|
393
|
-
});
|
|
394
|
-
}
|
|
395
|
-
base.uipath = {
|
|
396
|
-
serviceType: WAIT_FOR_EVENT,
|
|
397
|
-
context: built,
|
|
398
|
-
...missing.length > 0 && {
|
|
399
|
-
inputs: [],
|
|
400
|
-
outputs: [],
|
|
401
|
-
bindings: []
|
|
402
|
-
}
|
|
403
|
-
};
|
|
404
|
-
}
|
|
405
|
-
}
|
|
406
|
-
return base;
|
|
407
|
-
};
|
|
408
|
-
var WAIT_FOR_EVENT = "Intsvc.WaitForEvent";
|
|
409
|
-
var ACTIVITY_SLOTS = ["connectorKey", "operation"];
|
|
410
|
-
var missingActivitySlots = (entries) => ACTIVITY_SLOTS.filter((name) => !entries.some((entry) => entry.name === name && typeof entry.value === "string" && entry.value !== ""));
|
|
411
|
-
var displayNameOf = (condition) => {
|
|
412
|
-
const name = String(condition.displayName ?? "").trim();
|
|
413
|
-
return name === "" ? {} : { displayName: name };
|
|
414
|
-
};
|
|
415
|
-
var entryConditionFor = (condition, context) => {
|
|
416
|
-
const rule = ruleFor(condition, "Rule_", context);
|
|
417
|
-
if (rule === undefined)
|
|
418
|
-
return;
|
|
419
|
-
return {
|
|
420
|
-
id: prefixedId("Condition_", 6),
|
|
421
|
-
...displayNameOf(condition),
|
|
422
|
-
isInterrupting: condition.interrupting === true,
|
|
423
|
-
rules: [[rule]]
|
|
424
|
-
};
|
|
425
|
-
};
|
|
426
|
-
var caseExitRuleFor = (condition, context) => {
|
|
427
|
-
const rule = ruleFor(condition, "Rule_", context);
|
|
428
|
-
if (rule === undefined)
|
|
429
|
-
return;
|
|
430
|
-
return {
|
|
431
|
-
id: prefixedId("Condition_", 6),
|
|
432
|
-
...displayNameOf(condition),
|
|
433
|
-
marksCaseComplete: condition.marksComplete === true,
|
|
434
|
-
rules: [[rule]]
|
|
435
|
-
};
|
|
436
|
-
};
|
|
437
|
-
var exitConditionFor = (condition, context) => {
|
|
438
|
-
const rule = ruleFor(condition, "Rule_", context);
|
|
439
|
-
if (rule === undefined)
|
|
440
|
-
return;
|
|
441
|
-
const declaredExit = typeof condition.exitType === "string" && condition.exitType !== "" ? condition.exitType.trim() : undefined;
|
|
442
|
-
const exitType = declaredExit !== undefined && EXIT_CONDITION_TYPES.has(declaredExit) ? declaredExit : undefined;
|
|
443
|
-
if (declaredExit !== undefined && exitType === undefined) {
|
|
444
|
-
context.unresolved.push({
|
|
445
|
-
kind: "case-exit",
|
|
446
|
-
where: `${context.where}.type`,
|
|
447
|
-
detail: `the exit type "${declaredExit}" is none of ${[...EXIT_CONDITION_TYPES].map((type) => `\`${type}\``).join(", ")}, so no type is written — the rule still exits, and whichever of those three the document meant has to be chosen`
|
|
448
|
-
});
|
|
449
|
-
}
|
|
450
|
-
const exitTo = typeof condition.exitToStage === "string" ? condition.exitToStage : "";
|
|
451
|
-
let exitToStageId;
|
|
452
|
-
if (exitTo !== "") {
|
|
453
|
-
exitToStageId = resolveStage(exitTo, context.stages);
|
|
454
|
-
if (exitToStageId === undefined) {
|
|
455
|
-
context.unresolved.push({
|
|
456
|
-
kind: "selector-target",
|
|
457
|
-
where: context.where,
|
|
458
|
-
detail: `the Exit-To Stage cell names "${exitTo}", which this SDD does not declare as a stage, so the exit routes nowhere`
|
|
459
|
-
});
|
|
460
|
-
}
|
|
461
|
-
}
|
|
462
|
-
return {
|
|
463
|
-
id: prefixedId("Condition_", 6),
|
|
464
|
-
...displayNameOf(condition),
|
|
465
|
-
...exitType !== undefined && { type: exitType },
|
|
466
|
-
...exitToStageId !== undefined && { exitToStageId },
|
|
467
|
-
marksStageComplete: condition.marksComplete === true,
|
|
468
|
-
rules: [[rule]]
|
|
469
|
-
};
|
|
470
|
-
};
|
|
91
|
+
} from "./packager-tool-1c30ttpm.js";
|
|
92
|
+
import"./packager-tool-68648y3j.js";
|
|
471
93
|
|
|
472
94
|
// src/services/sdd-convert/metadata.ts
|
|
473
95
|
var TIMER_VALUE_FIELDS = new Map([
|
|
@@ -784,7 +406,7 @@ var jsonSchemaBody = (name, type, model, unresolved) => {
|
|
|
784
406
|
});
|
|
785
407
|
return;
|
|
786
408
|
}
|
|
787
|
-
const [error, parsed] =
|
|
409
|
+
const [error, parsed] = catchError2(() => JSON.parse(declared));
|
|
788
410
|
if (error || typeof parsed !== "object" || parsed === null || Array.isArray(parsed)) {
|
|
789
411
|
unresolved.push({
|
|
790
412
|
kind: "variable-body",
|
|
@@ -816,8 +438,8 @@ var caseVariablesFor = (model, triggers = [], unresolved = []) => {
|
|
|
816
438
|
});
|
|
817
439
|
}
|
|
818
440
|
const category = declaredCategory ?? "variable";
|
|
819
|
-
const groups =
|
|
820
|
-
const carriesDefault =
|
|
441
|
+
const groups = VARIABLE_PLACEMENT2.get(category) ?? ["inputOutputs"];
|
|
442
|
+
const carriesDefault = DEFAULT_GROUP2.get(category) ?? "inputOutputs";
|
|
821
443
|
const type = variableTypeFor(name, model.variableTypes[key], unresolved);
|
|
822
444
|
const body = jsonSchemaBody(name, type, model, unresolved);
|
|
823
445
|
const fileBody = category === "in" && type === "file" ? FILE_TYPE_JSON_SCHEMA : undefined;
|
|
@@ -865,7 +487,7 @@ var caseVariablesFor = (model, triggers = [], unresolved = []) => {
|
|
|
865
487
|
|
|
866
488
|
// src/services/sdd-convert/case-level.ts
|
|
867
489
|
var finishCaseDocument = (document, model, index, unresolved) => {
|
|
868
|
-
const { planned, stageIds, taskIds, outputIds, bindings
|
|
490
|
+
const { planned, stageIds, taskIds, outputIds, bindings } = index;
|
|
869
491
|
let conditionCount = 0;
|
|
870
492
|
const plans = triggerPlans(model);
|
|
871
493
|
const emittedTriggers = [];
|
|
@@ -989,9 +611,17 @@ var finishCaseDocument = (document, model, index, unresolved) => {
|
|
|
989
611
|
},
|
|
990
612
|
...model.directTaskOutputs === true && {
|
|
991
613
|
caseDirectlyPassTaskOutputs: true
|
|
992
|
-
}
|
|
993
|
-
...connections.size > 0 && { intsvcActivityConfig: "v2" }
|
|
614
|
+
}
|
|
994
615
|
};
|
|
616
|
+
const caseRoles = caseRolesFor(model, index, unresolved);
|
|
617
|
+
if (caseRoles.length > 0) {
|
|
618
|
+
document.metadata = {
|
|
619
|
+
...document.metadata,
|
|
620
|
+
caseAppVersion: "v2",
|
|
621
|
+
caseAppCreatedVersion: "v2",
|
|
622
|
+
caseRoles
|
|
623
|
+
};
|
|
624
|
+
}
|
|
995
625
|
const entersOnCaseEntered = planned.some(({ stage }) => stage.entryConditions.some((condition) => {
|
|
996
626
|
const when = String(condition.when ?? "");
|
|
997
627
|
return parseWhen(when).rule === "case-entered";
|
|
@@ -1039,6 +669,7 @@ var finishCaseDocument = (document, model, index, unresolved) => {
|
|
|
1039
669
|
stages: stageIds,
|
|
1040
670
|
tasks: taskIds,
|
|
1041
671
|
taskNameConflicts: index.taskNameConflicts,
|
|
672
|
+
businessEvents: index.businessEvents,
|
|
1042
673
|
outputs: outputIds,
|
|
1043
674
|
unresolved
|
|
1044
675
|
})).filter((condition) => condition !== undefined);
|
|
@@ -1073,6 +704,273 @@ var finishCaseDocument = (document, model, index, unresolved) => {
|
|
|
1073
704
|
}
|
|
1074
705
|
return { conditionCount };
|
|
1075
706
|
};
|
|
707
|
+
// src/services/sdd-convert/document-extraction-output-schema.json
|
|
708
|
+
var document_extraction_output_schema_default = {
|
|
709
|
+
$schema: "http://json-schema.org/draft-07/schema#",
|
|
710
|
+
type: "object",
|
|
711
|
+
properties: {
|
|
712
|
+
ExtractionResult: {
|
|
713
|
+
type: "object",
|
|
714
|
+
properties: {
|
|
715
|
+
DocumentId: {
|
|
716
|
+
type: "string"
|
|
717
|
+
},
|
|
718
|
+
ResultsVersion: {
|
|
719
|
+
type: "integer"
|
|
720
|
+
},
|
|
721
|
+
ResultsDocument: {
|
|
722
|
+
type: "object",
|
|
723
|
+
properties: {
|
|
724
|
+
Bounds: {
|
|
725
|
+
type: "object",
|
|
726
|
+
properties: {
|
|
727
|
+
PageCount: {
|
|
728
|
+
type: "integer"
|
|
729
|
+
},
|
|
730
|
+
PageRange: {
|
|
731
|
+
type: "string"
|
|
732
|
+
}
|
|
733
|
+
}
|
|
734
|
+
},
|
|
735
|
+
Language: {
|
|
736
|
+
type: "string"
|
|
737
|
+
},
|
|
738
|
+
DocumentGroup: {
|
|
739
|
+
type: "string"
|
|
740
|
+
},
|
|
741
|
+
DocumentCategory: {
|
|
742
|
+
type: "string"
|
|
743
|
+
},
|
|
744
|
+
DocumentTypeId: {
|
|
745
|
+
type: "string"
|
|
746
|
+
},
|
|
747
|
+
DocumentTypeName: {
|
|
748
|
+
type: "string"
|
|
749
|
+
},
|
|
750
|
+
Fields: {
|
|
751
|
+
type: "array",
|
|
752
|
+
items: {
|
|
753
|
+
type: "object",
|
|
754
|
+
properties: {
|
|
755
|
+
FieldId: {
|
|
756
|
+
type: "string"
|
|
757
|
+
},
|
|
758
|
+
FieldName: {
|
|
759
|
+
type: "string"
|
|
760
|
+
},
|
|
761
|
+
FieldType: {
|
|
762
|
+
type: "string"
|
|
763
|
+
},
|
|
764
|
+
Value: {
|
|
765
|
+
type: "string"
|
|
766
|
+
},
|
|
767
|
+
UnformattedValue: {
|
|
768
|
+
type: "string"
|
|
769
|
+
},
|
|
770
|
+
Confidence: {
|
|
771
|
+
type: "number"
|
|
772
|
+
},
|
|
773
|
+
IsMissing: {
|
|
774
|
+
type: "boolean"
|
|
775
|
+
}
|
|
776
|
+
}
|
|
777
|
+
}
|
|
778
|
+
},
|
|
779
|
+
Tables: {
|
|
780
|
+
type: "array",
|
|
781
|
+
items: {
|
|
782
|
+
type: "object"
|
|
783
|
+
}
|
|
784
|
+
}
|
|
785
|
+
}
|
|
786
|
+
},
|
|
787
|
+
ExtractorPayloads: {
|
|
788
|
+
type: "object"
|
|
789
|
+
},
|
|
790
|
+
BusinessrulesResults: {
|
|
791
|
+
type: "array",
|
|
792
|
+
items: {
|
|
793
|
+
type: "object"
|
|
794
|
+
}
|
|
795
|
+
}
|
|
796
|
+
}
|
|
797
|
+
},
|
|
798
|
+
Taxonomy: {
|
|
799
|
+
type: "object",
|
|
800
|
+
properties: {
|
|
801
|
+
DataContractVersion: {
|
|
802
|
+
type: "string"
|
|
803
|
+
},
|
|
804
|
+
DocumentTypes: {
|
|
805
|
+
type: "array",
|
|
806
|
+
items: {
|
|
807
|
+
type: "object",
|
|
808
|
+
properties: {
|
|
809
|
+
DocumentTypeId: {
|
|
810
|
+
type: "string"
|
|
811
|
+
},
|
|
812
|
+
Group: {
|
|
813
|
+
type: "string"
|
|
814
|
+
},
|
|
815
|
+
Category: {
|
|
816
|
+
type: "string"
|
|
817
|
+
},
|
|
818
|
+
Name: {
|
|
819
|
+
type: "string"
|
|
820
|
+
},
|
|
821
|
+
OptionalUniqueIdentifier: {
|
|
822
|
+
type: "string"
|
|
823
|
+
},
|
|
824
|
+
TypeField: {
|
|
825
|
+
type: "object"
|
|
826
|
+
},
|
|
827
|
+
Fields: {
|
|
828
|
+
type: "array",
|
|
829
|
+
items: {
|
|
830
|
+
type: "object"
|
|
831
|
+
}
|
|
832
|
+
}
|
|
833
|
+
}
|
|
834
|
+
}
|
|
835
|
+
}
|
|
836
|
+
}
|
|
837
|
+
}
|
|
838
|
+
}
|
|
839
|
+
};
|
|
840
|
+
|
|
841
|
+
// src/services/sdd-convert/document-extraction.ts
|
|
842
|
+
var DOCUMENT_EXTRACTION_SERVICE_TYPE = "IXP.Extraction";
|
|
843
|
+
var DATA_NAME = "Document extraction";
|
|
844
|
+
var documentExtractionOutputs = (elementId, taken, reserved = new Set) => {
|
|
845
|
+
const mint = (base) => {
|
|
846
|
+
const id = dedupedId(base, new Set([...taken, ...reserved]));
|
|
847
|
+
taken.add(id);
|
|
848
|
+
return id;
|
|
849
|
+
};
|
|
850
|
+
const row = (name, displayName, source, schema) => {
|
|
851
|
+
const id = mint(name);
|
|
852
|
+
return {
|
|
853
|
+
name,
|
|
854
|
+
displayName,
|
|
855
|
+
type: "jsonSchema",
|
|
856
|
+
source,
|
|
857
|
+
_jsonSchema: structuredClone(schema),
|
|
858
|
+
id,
|
|
859
|
+
var: id,
|
|
860
|
+
value: id,
|
|
861
|
+
elementId,
|
|
862
|
+
body: structuredClone(schema)
|
|
863
|
+
};
|
|
864
|
+
};
|
|
865
|
+
return [
|
|
866
|
+
row("output", "Output", "=result", document_extraction_output_schema_default),
|
|
867
|
+
row("error", "Error", "=Error", ERROR_OUTPUT_SCHEMA)
|
|
868
|
+
];
|
|
869
|
+
};
|
|
870
|
+
var INPUTS = [
|
|
871
|
+
{ name: "fileRef", displayName: "File", type: "file", required: true },
|
|
872
|
+
{ name: "pageRange", displayName: "Page range", type: "string" }
|
|
873
|
+
];
|
|
874
|
+
var spelling = (name) => name.toLowerCase().replace(/[^a-z]/g, "");
|
|
875
|
+
var deploymentBinding = (deployment, resourceKey, bindings) => {
|
|
876
|
+
const found = bindings.find((one) => one.resource === "ixpDeployment" && one.default === deployment && (one.resourceKey ?? null) === resourceKey);
|
|
877
|
+
if (found !== undefined)
|
|
878
|
+
return String(found.id);
|
|
879
|
+
const ordinal = bindings.filter((one) => one.resource === "ixpDeployment").length + 1;
|
|
880
|
+
const id = `bIxp${ordinal}`;
|
|
881
|
+
bindings.push({
|
|
882
|
+
id,
|
|
883
|
+
name: "name",
|
|
884
|
+
type: "string",
|
|
885
|
+
resource: "ixpDeployment",
|
|
886
|
+
...resourceKey !== null && { resourceKey },
|
|
887
|
+
default: deployment,
|
|
888
|
+
propertyAttribute: "name"
|
|
889
|
+
});
|
|
890
|
+
return id;
|
|
891
|
+
};
|
|
892
|
+
var documentExtractionData = (extraction, authored, outputs, context) => {
|
|
893
|
+
const { elementId, where, unresolved } = context;
|
|
894
|
+
const say = (detail) => {
|
|
895
|
+
unresolved.push({ kind: "resource-binding", where, detail });
|
|
896
|
+
};
|
|
897
|
+
const deployment = namedValue(extraction?.deployment);
|
|
898
|
+
const modelName = namedValue(extraction?.modelName);
|
|
899
|
+
const deploymentKey = namedValue(extraction?.deploymentKey);
|
|
900
|
+
const folderKey = namedValue(extraction?.folderKey);
|
|
901
|
+
const folderName = namedValue(context.folderName);
|
|
902
|
+
if (deployment === "") {
|
|
903
|
+
say("this `document-extraction` task names no `**IXP Deployment:**`, so nothing binds the deployment it runs; write the deployment's name as the solution lists it");
|
|
904
|
+
}
|
|
905
|
+
if (deploymentKey === "") {
|
|
906
|
+
say(`this \`document-extraction\` task states no \`**Deployment Key:**\`, the key of the IXP deployment's solution resource; \`uip solution resources add --source remote --kind IxpDeployment --name "${deployment === "" ? "<deployment-name>" : deployment}"\` adds it to the solution and returns it as \`Key\`, and \`uip solution resources list --kind IxpDeployment --source remote\` looks it up without changing anything`);
|
|
907
|
+
}
|
|
908
|
+
if (modelName === "") {
|
|
909
|
+
say("this `document-extraction` task states no `**Model Name:**`, the deployment's DeploymentName; `uip ixp deployments list <project-name>` gives it (with DeploymentTitle, the `**IXP Deployment:**`, and FolderKey), and `uip ixp projects list` names the project");
|
|
910
|
+
}
|
|
911
|
+
if (folderKey === "" || folderName === "") {
|
|
912
|
+
say(`this \`document-extraction\` task states no ${folderName === "" ? "`**Folder Path:**`" : "`**Folder Key:**`"}${folderKey === "" && folderName === "" ? " or `**Folder Key:**`" : ""} for the folder the deployment is deployed to; \`uip ixp deployments list <project-name>\` gives its FolderKey, and \`uip or folders list\` its path`);
|
|
913
|
+
}
|
|
914
|
+
const byName = new Map(authored.map((row) => [spelling(String(row.name ?? "")), row]));
|
|
915
|
+
const inputs = INPUTS.map((slot) => {
|
|
916
|
+
const row = byName.get(spelling(slot.name)) ?? byName.get(spelling(slot.displayName));
|
|
917
|
+
const id = prefixedId("v", 8);
|
|
918
|
+
return {
|
|
919
|
+
name: slot.name,
|
|
920
|
+
displayName: slot.displayName,
|
|
921
|
+
type: slot.type,
|
|
922
|
+
value: row === undefined ? "" : String(row.value ?? ""),
|
|
923
|
+
...slot.required === true && { required: true },
|
|
924
|
+
id,
|
|
925
|
+
var: id,
|
|
926
|
+
elementId
|
|
927
|
+
};
|
|
928
|
+
});
|
|
929
|
+
const known = new Set(INPUTS.flatMap((slot) => [
|
|
930
|
+
spelling(slot.name),
|
|
931
|
+
spelling(slot.displayName)
|
|
932
|
+
]));
|
|
933
|
+
for (const row of authored) {
|
|
934
|
+
const name = String(row.name ?? "");
|
|
935
|
+
if (!known.has(spelling(name))) {
|
|
936
|
+
unresolved.push({
|
|
937
|
+
kind: "task-io-table",
|
|
938
|
+
where,
|
|
939
|
+
detail: `a \`document-extraction\` task takes only \`fileRef\` (File) and \`pageRange\` (Page range), so the Inputs row "${name}" is not written`
|
|
940
|
+
});
|
|
941
|
+
}
|
|
942
|
+
}
|
|
943
|
+
if (inputs[0].value === "") {
|
|
944
|
+
unresolved.push({
|
|
945
|
+
kind: "task-io-table",
|
|
946
|
+
where,
|
|
947
|
+
detail: "this `document-extraction` task's `fileRef` input is empty, so it has no file to extract from; add an Inputs row `fileRef` reading the file, such as `=vars.invoiceFile`"
|
|
948
|
+
});
|
|
949
|
+
}
|
|
950
|
+
const resourceKey = deploymentKey === "" ? null : deploymentKey;
|
|
951
|
+
const nameValue = deployment === "" ? "" : `${BINDING_REFERENCE_PREFIX}${deploymentBinding(deployment, resourceKey, context.bindings)}`;
|
|
952
|
+
const entry = (name, value) => ({
|
|
953
|
+
name,
|
|
954
|
+
type: "string",
|
|
955
|
+
value
|
|
956
|
+
});
|
|
957
|
+
return {
|
|
958
|
+
name: DATA_NAME,
|
|
959
|
+
serviceType: DOCUMENT_EXTRACTION_SERVICE_TYPE,
|
|
960
|
+
context: [
|
|
961
|
+
entry("solutionResourceKey", resourceKey),
|
|
962
|
+
entry("name", nameValue),
|
|
963
|
+
entry("folderKey", folderKey === "" ? null : folderKey),
|
|
964
|
+
entry("folderName", folderName === "" ? null : folderName),
|
|
965
|
+
entry("modelName", modelName === "" ? null : modelName),
|
|
966
|
+
entry("modelDisplayName", deployment === "" ? null : deployment),
|
|
967
|
+
entry("digitizationMode", "fileUpload")
|
|
968
|
+
],
|
|
969
|
+
inputs,
|
|
970
|
+
outputs,
|
|
971
|
+
version: "v2"
|
|
972
|
+
};
|
|
973
|
+
};
|
|
1076
974
|
// src/services/sdd-convert/http-request-metadata.json
|
|
1077
975
|
var http_request_metadata_default = {
|
|
1078
976
|
activityPropertyConfiguration: {
|
|
@@ -1186,7 +1084,7 @@ var mint = (base, taken, reserved) => {
|
|
|
1186
1084
|
var objectCell = (text) => {
|
|
1187
1085
|
if (text === undefined)
|
|
1188
1086
|
return {};
|
|
1189
|
-
const [error, parsed] =
|
|
1087
|
+
const [error, parsed] = catchError2(() => JSON.parse(text));
|
|
1190
1088
|
if (error)
|
|
1191
1089
|
return { error: "is not JSON" };
|
|
1192
1090
|
return typeof parsed === "object" && parsed !== null && !Array.isArray(parsed) ? { value: parsed } : { error: "is not a JSON object" };
|
|
@@ -1194,7 +1092,7 @@ var objectCell = (text) => {
|
|
|
1194
1092
|
var bodyValue = (text) => {
|
|
1195
1093
|
if (text.startsWith("="))
|
|
1196
1094
|
return { value: text };
|
|
1197
|
-
const [error] =
|
|
1095
|
+
const [error] = catchError2(() => JSON.parse(text));
|
|
1198
1096
|
return error ? { error: "is neither JSON nor an `=` expression" } : { value: `=js:( ${text})` };
|
|
1199
1097
|
};
|
|
1200
1098
|
var BODY_METHODS = new Set(["POST", "PUT", "PATCH"]);
|
|
@@ -1399,10 +1297,47 @@ var httpRequestData = (http, connector, outputs, context) => {
|
|
|
1399
1297
|
};
|
|
1400
1298
|
};
|
|
1401
1299
|
|
|
1300
|
+
// src/services/sdd-convert/recipient.ts
|
|
1301
|
+
var RECIPIENT_TYPES = new Map([
|
|
1302
|
+
["email", 2],
|
|
1303
|
+
["expression", 3]
|
|
1304
|
+
]);
|
|
1305
|
+
var recipientFor = (recipient, where, unresolved, outputs) => {
|
|
1306
|
+
if (recipient === undefined)
|
|
1307
|
+
return;
|
|
1308
|
+
const type = RECIPIENT_TYPES.get(recipient.kind);
|
|
1309
|
+
if (type === undefined) {
|
|
1310
|
+
unresolved.push({
|
|
1311
|
+
kind: "task-recipient",
|
|
1312
|
+
where,
|
|
1313
|
+
detail: `the Recipient row names a "${recipient.kind}" recipient, and the plan's numeric \`Type\` code for that kind is not one this command knows`
|
|
1314
|
+
});
|
|
1315
|
+
return;
|
|
1316
|
+
}
|
|
1317
|
+
if (type !== 3)
|
|
1318
|
+
return { Type: type, Value: recipient.value };
|
|
1319
|
+
if (!recipient.value.startsWith("=")) {
|
|
1320
|
+
unresolved.push({
|
|
1321
|
+
kind: "task-recipient",
|
|
1322
|
+
where,
|
|
1323
|
+
detail: `the Recipient row's Expression "${recipient.value}" is not an \`=\` expression; a \`Type 3\` recipient evaluates its value, so write it as \`Expression: =vars.<variable>\``
|
|
1324
|
+
});
|
|
1325
|
+
return;
|
|
1326
|
+
}
|
|
1327
|
+
return {
|
|
1328
|
+
Type: type,
|
|
1329
|
+
Value: canonicalExpression(expandXrefs(recipient.value, {
|
|
1330
|
+
outputs,
|
|
1331
|
+
where: `${where}.data.recipient`,
|
|
1332
|
+
unresolved
|
|
1333
|
+
}))
|
|
1334
|
+
};
|
|
1335
|
+
};
|
|
1336
|
+
|
|
1402
1337
|
// src/services/sdd-convert/emit.ts
|
|
1403
1338
|
var isDeferredTask = (resolved, stageName, task) => {
|
|
1404
1339
|
const type = typeof task.type === "string" ? task.type : "";
|
|
1405
|
-
return (NAME_BOUND_TASK_TYPES.has(type) ||
|
|
1340
|
+
return (NAME_BOUND_TASK_TYPES.has(type) || CONNECTOR_CALL_TASK_TYPES.has(type)) && resolved?.deferred?.has(`${stageName}\x01${String(task.name ?? "")}`) === true;
|
|
1406
1341
|
};
|
|
1407
1342
|
var emitTask = (task, taskId, context) => {
|
|
1408
1343
|
const { stage, stageId, index, unresolved, stageTasks } = context;
|
|
@@ -1453,6 +1388,7 @@ var emitTask = (task, taskId, context) => {
|
|
|
1453
1388
|
stages: stageIds,
|
|
1454
1389
|
tasks: taskIds,
|
|
1455
1390
|
taskNameConflicts: index.taskNameConflicts,
|
|
1391
|
+
businessEvents: index.businessEvents,
|
|
1456
1392
|
stageTasks,
|
|
1457
1393
|
outputs: outputIds,
|
|
1458
1394
|
slas: slaIds,
|
|
@@ -1501,15 +1437,7 @@ var emitTask = (task, taskId, context) => {
|
|
|
1501
1437
|
where: `${taskWhere}.data`,
|
|
1502
1438
|
detail
|
|
1503
1439
|
});
|
|
1504
|
-
const recipient = task.recipient;
|
|
1505
|
-
const recipientType = recipient === undefined ? undefined : RECIPIENT_TYPES.get(recipient.kind);
|
|
1506
|
-
if (recipient !== undefined && recipientType === undefined) {
|
|
1507
|
-
unresolved.push({
|
|
1508
|
-
kind: "task-recipient",
|
|
1509
|
-
where: taskWhere,
|
|
1510
|
-
detail: `the Recipient row names a "${recipient.kind}" recipient, and the plan's numeric \`Type\` code for that kind is not one this command knows`
|
|
1511
|
-
});
|
|
1512
|
-
}
|
|
1440
|
+
const recipient = recipientFor(task.recipient, taskWhere, unresolved, outputIds);
|
|
1513
1441
|
const settled = index.resolved?.byTask.get(`${stage.name}\x01${String(task.name ?? "")}`);
|
|
1514
1442
|
const resourceName = namedValue(task.resourceName) || (settled?.name ?? "");
|
|
1515
1443
|
const folderPath = namedValue(task.folder) || (settled?.folder ?? "");
|
|
@@ -1537,8 +1465,8 @@ var emitTask = (task, taskId, context) => {
|
|
|
1537
1465
|
}
|
|
1538
1466
|
}
|
|
1539
1467
|
}
|
|
1540
|
-
const connector =
|
|
1541
|
-
if (
|
|
1468
|
+
const connector = CONNECTOR_CALL_TASK_TYPES.has(type) && task.connector !== undefined ? task.connector : undefined;
|
|
1469
|
+
if (CONNECTOR_CALL_TASK_TYPES.has(type) && connector === undefined) {
|
|
1542
1470
|
unresolved.push({
|
|
1543
1471
|
kind: "connector-connection",
|
|
1544
1472
|
where: taskWhere,
|
|
@@ -1595,12 +1523,7 @@ var emitTask = (task, taskId, context) => {
|
|
|
1595
1523
|
},
|
|
1596
1524
|
...type === "action" && task.priority !== undefined && { priority: task.priority },
|
|
1597
1525
|
...type === "action" && task.labels !== undefined && { labels: task.labels },
|
|
1598
|
-
...
|
|
1599
|
-
recipient: {
|
|
1600
|
-
Type: recipientType,
|
|
1601
|
-
Value: recipient.value
|
|
1602
|
-
}
|
|
1603
|
-
},
|
|
1526
|
+
...recipient !== undefined && { recipient },
|
|
1604
1527
|
...timer
|
|
1605
1528
|
}
|
|
1606
1529
|
};
|
|
@@ -1614,6 +1537,16 @@ var emitTask = (task, taskId, context) => {
|
|
|
1614
1537
|
outputs: outputIds
|
|
1615
1538
|
});
|
|
1616
1539
|
}
|
|
1540
|
+
if (type === "document-extraction") {
|
|
1541
|
+
const data = emitted.data;
|
|
1542
|
+
emitted.data = documentExtractionData(task.extraction, data.inputs ?? [], data.outputs ?? [], {
|
|
1543
|
+
elementId,
|
|
1544
|
+
where: taskWhere,
|
|
1545
|
+
folderName: folderPath,
|
|
1546
|
+
bindings,
|
|
1547
|
+
unresolved
|
|
1548
|
+
});
|
|
1549
|
+
}
|
|
1617
1550
|
return { task: emitted, conditions };
|
|
1618
1551
|
};
|
|
1619
1552
|
var SHARES_WITH_SIBLING = "parallel-after-predecessor";
|
|
@@ -1635,11 +1568,11 @@ var taskSets = (tasks, declared) => {
|
|
|
1635
1568
|
});
|
|
1636
1569
|
}
|
|
1637
1570
|
keyed.sort((a, b) => a.run - b.run || a.at - b.at);
|
|
1638
|
-
const
|
|
1571
|
+
const sets = new Map;
|
|
1639
1572
|
for (const one of keyed) {
|
|
1640
|
-
|
|
1573
|
+
sets.set(one.key, [...sets.get(one.key) ?? [], one.task]);
|
|
1641
1574
|
}
|
|
1642
|
-
return { sets: [...
|
|
1575
|
+
return { sets: [...sets.values()], undeclared: [] };
|
|
1643
1576
|
}
|
|
1644
1577
|
const sets = [];
|
|
1645
1578
|
const undeclaredSets = new Set;
|
|
@@ -1728,6 +1661,7 @@ var emitStages = (document, model, index, unresolved) => {
|
|
|
1728
1661
|
stages: stageIds,
|
|
1729
1662
|
tasks: taskIds,
|
|
1730
1663
|
taskNameConflicts: index.taskNameConflicts,
|
|
1664
|
+
businessEvents: index.businessEvents,
|
|
1731
1665
|
stageTasks,
|
|
1732
1666
|
outputs: outputIds,
|
|
1733
1667
|
slas: slaIds,
|
|
@@ -1776,6 +1710,15 @@ var emitStages = (document, model, index, unresolved) => {
|
|
|
1776
1710
|
return { taskCount, conditionCount };
|
|
1777
1711
|
};
|
|
1778
1712
|
|
|
1713
|
+
// src/services/sdd-convert/fixed-outputs.ts
|
|
1714
|
+
var fixedOutputsFor = (taskType, elementId, taken, reserved) => {
|
|
1715
|
+
if (taskType === "http-request")
|
|
1716
|
+
return httpRequestOutputs(elementId, taken, reserved);
|
|
1717
|
+
if (taskType === "document-extraction")
|
|
1718
|
+
return documentExtractionOutputs(elementId, taken, reserved);
|
|
1719
|
+
return [];
|
|
1720
|
+
};
|
|
1721
|
+
|
|
1779
1722
|
// src/services/sdd-convert/plan.ts
|
|
1780
1723
|
var taskNameOf = (task) => typeof task.name === "string" ? task.name : "";
|
|
1781
1724
|
var countByName = (entries) => {
|
|
@@ -1872,22 +1815,32 @@ var planCase = (model, unresolved) => {
|
|
|
1872
1815
|
}
|
|
1873
1816
|
};
|
|
1874
1817
|
const extractByField = new Map;
|
|
1818
|
+
const extractTypeByField = new Map;
|
|
1819
|
+
const extractUnmappedByField = new Map;
|
|
1875
1820
|
for (const entry of task.extractRows ?? []) {
|
|
1876
1821
|
const field = String(entry.field ?? "");
|
|
1877
1822
|
const variable = String(entry.variable ?? "");
|
|
1878
1823
|
if (field !== "" && variable !== "") {
|
|
1879
1824
|
extractByField.set(field, variable);
|
|
1825
|
+
const { type, unmapped } = rowOutputType(entry.type);
|
|
1826
|
+
if (type !== undefined)
|
|
1827
|
+
extractTypeByField.set(field, type);
|
|
1828
|
+
if (unmapped !== undefined) {
|
|
1829
|
+
extractUnmappedByField.set(field, unmapped);
|
|
1830
|
+
}
|
|
1880
1831
|
}
|
|
1881
1832
|
}
|
|
1882
|
-
const
|
|
1883
|
-
const
|
|
1884
|
-
|
|
1833
|
+
const fixed = hasFixedOutputs(taskType);
|
|
1834
|
+
const fixedOutputs = fixedOutputsFor(taskType, buildElementId(stageId, taskId), takenOutputIds, new Set(model.variables));
|
|
1835
|
+
const outputName = (field) => fixedOutputName(taskType, field);
|
|
1836
|
+
const fixedDeclared = fixed ? declaredOutputs(model, stage.name, position + 1, task) : [];
|
|
1837
|
+
for (const output of fixedOutputs) {
|
|
1885
1838
|
const name = String(output.name).toLowerCase();
|
|
1886
1839
|
const spellings = [
|
|
1887
|
-
...
|
|
1888
|
-
...[...extractByField.keys()].filter((field) =>
|
|
1840
|
+
...fixedDeclared.flatMap(({ row, aliases }) => [row, ...aliases].filter((spelling) => outputName(spelling) === name)),
|
|
1841
|
+
...[...extractByField.keys()].filter((field) => outputName(field) === name)
|
|
1889
1842
|
];
|
|
1890
|
-
const variable = [...extractByField].find(([field]) =>
|
|
1843
|
+
const variable = [...extractByField].find(([field]) => outputName(field) === name)?.[1];
|
|
1891
1844
|
if (variable !== undefined) {
|
|
1892
1845
|
output.var = variable;
|
|
1893
1846
|
output.value = variable;
|
|
@@ -1901,26 +1854,38 @@ var planCase = (model, unresolved) => {
|
|
|
1901
1854
|
...variable === undefined ? [] : [variable]
|
|
1902
1855
|
]), output);
|
|
1903
1856
|
}
|
|
1904
|
-
if (
|
|
1905
|
-
const offered =
|
|
1857
|
+
if (fixed) {
|
|
1858
|
+
const offered = fixedOutputs.map((output) => String(output.name));
|
|
1906
1859
|
const authored = new Set([
|
|
1907
1860
|
...extractByField.values(),
|
|
1908
1861
|
...(task.customRows ?? []).map((entry) => String(entry.variable ?? ""))
|
|
1909
1862
|
].filter((name) => name !== "").map(indexKey));
|
|
1910
|
-
const unnamed = new Set(
|
|
1863
|
+
const unnamed = new Set(fixedDeclared.flatMap(({ row, aliases }) => [row, ...aliases]).filter((spelling) => outputName(spelling) === undefined && !authored.has(indexKey(spelling))));
|
|
1911
1864
|
for (const row of unnamed) {
|
|
1912
1865
|
unresolved.push({
|
|
1913
1866
|
kind: "output-type",
|
|
1914
1867
|
where: `nodes[${stage.name}].data.tasks[${taskName}].outputs[${row}]`,
|
|
1915
|
-
detail: `an \`
|
|
1868
|
+
detail: `an \`${taskType}\` task has the activity's own outputs only (${offered.join(", ")}), so the declared output "${row}" is not written; read the field it names from \`${taskType === "http-request" ? "body" : "output"}\` instead`
|
|
1916
1869
|
});
|
|
1917
1870
|
}
|
|
1918
1871
|
}
|
|
1919
|
-
|
|
1920
|
-
|
|
1872
|
+
const customVariables = new Set((task.customRows ?? []).map((entry) => String(entry.variable ?? "")).filter((name) => name !== ""));
|
|
1873
|
+
const customTwinSpellings = new Map;
|
|
1874
|
+
for (const { row, aliases } of fixed ? [] : declaredOutputs(model, stage.name, position + 1, task)) {
|
|
1875
|
+
if (customVariables.has(row)) {
|
|
1876
|
+
customTwinSpellings.set(row, aliases);
|
|
1877
|
+
takenOutputIds.add(row);
|
|
1878
|
+
takenOutputIds.add(`${row[0].toLowerCase()}${row.slice(1)}`);
|
|
1879
|
+
own.set(row, {});
|
|
1880
|
+
continue;
|
|
1881
|
+
}
|
|
1882
|
+
const consumerType = [row, ...aliases].map((spelling) => outputTypeFor(model, everySpelling(stage.name, position + 1), taskName, spelling)).find((found) => found !== undefined);
|
|
1921
1883
|
const variable = extractByField.get(row);
|
|
1922
|
-
const type = consumerType ?? (variable === undefined ? undefined : variableOutputType(model, variable));
|
|
1923
|
-
|
|
1884
|
+
const type = extractTypeByField.get(row) ?? consumerType ?? (variable === undefined ? undefined : variableOutputType(model, variable));
|
|
1885
|
+
const unmapped = extractUnmappedByField.get(row);
|
|
1886
|
+
if (unmapped !== undefined) {
|
|
1887
|
+
unresolved.push(unmappedOutputType(`nodes[${stage.name}].data.tasks[${taskName}].outputs[${row}]`, unmapped, type));
|
|
1888
|
+
} else if (type === undefined) {
|
|
1924
1889
|
unresolved.push({
|
|
1925
1890
|
kind: "output-type",
|
|
1926
1891
|
where: `nodes[${stage.name}].data.tasks[${taskName}].outputs[${row}]`,
|
|
@@ -1943,19 +1908,29 @@ var planCase = (model, unresolved) => {
|
|
|
1943
1908
|
};
|
|
1944
1909
|
if (row.variable === "")
|
|
1945
1910
|
continue;
|
|
1946
|
-
const
|
|
1947
|
-
const
|
|
1948
|
-
|
|
1949
|
-
|
|
1950
|
-
|
|
1951
|
-
|
|
1952
|
-
|
|
1911
|
+
const cell = rowOutputType(entry.type);
|
|
1912
|
+
const customType = cell.type ?? variableOutputType(model, row.variable);
|
|
1913
|
+
if (cell.unmapped !== undefined) {
|
|
1914
|
+
unresolved.push(unmappedOutputType(`nodes[${stage.name}].data.tasks[${taskName}].outputs[${row.variable}]`, cell.unmapped, customType));
|
|
1915
|
+
}
|
|
1916
|
+
const custom = customOutputFor(row, customType);
|
|
1917
|
+
const twin = customTwinSpellings.get(row.variable);
|
|
1918
|
+
own.set(twin === undefined ? `custom:${row.variable}` : row.variable, custom);
|
|
1919
|
+
indexOutput(new Set([row.variable, ...twin ?? []]), {
|
|
1920
|
+
...custom,
|
|
1921
|
+
id: row.variable
|
|
1953
1922
|
});
|
|
1954
1923
|
}
|
|
1955
1924
|
outputsByTask.set(taskId, own);
|
|
1956
1925
|
return { task, taskId };
|
|
1957
1926
|
});
|
|
1958
|
-
return {
|
|
1927
|
+
return {
|
|
1928
|
+
stage,
|
|
1929
|
+
stageId,
|
|
1930
|
+
tasks,
|
|
1931
|
+
stageSla,
|
|
1932
|
+
slaRules: []
|
|
1933
|
+
};
|
|
1959
1934
|
});
|
|
1960
1935
|
const tasksPerName = countByName(tasksByExactName);
|
|
1961
1936
|
reportRepeatedTaskNames(stagesByTaskName, unresolved);
|
|
@@ -1995,6 +1970,7 @@ var planCase = (model, unresolved) => {
|
|
|
1995
1970
|
stageIds,
|
|
1996
1971
|
taskIds,
|
|
1997
1972
|
taskNameConflicts,
|
|
1973
|
+
businessEvents: new Set((model.businessEvents ?? []).map((event) => event.name)),
|
|
1998
1974
|
outputIds,
|
|
1999
1975
|
outputsByTask,
|
|
2000
1976
|
bindings,
|
|
@@ -2183,8 +2159,9 @@ var convertSddToCasePlan = (model, options) => {
|
|
|
2183
2159
|
const { taskCount, conditionCount } = emitStages(document, model, index, unresolved);
|
|
2184
2160
|
const caseLevel = finishCaseDocument(document, model, index, unresolved);
|
|
2185
2161
|
uniquifyConditionNames(document);
|
|
2186
|
-
|
|
2162
|
+
designerShapeConnectorTasks2(document);
|
|
2187
2163
|
emitCanvasNotes(document, model.canvasNotes);
|
|
2164
|
+
emitBusinessEvents(document, model.businessEvents, unresolved);
|
|
2188
2165
|
return {
|
|
2189
2166
|
document,
|
|
2190
2167
|
derived: {
|
|
@@ -2200,4 +2177,4 @@ export {
|
|
|
2200
2177
|
convertSddToCasePlan
|
|
2201
2178
|
};
|
|
2202
2179
|
|
|
2203
|
-
//# debugId=
|
|
2180
|
+
//# debugId=E3082643D54EEB6464756E2164756E21
|