@uipath/flow-tool 1.204.0-preview.255 → 1.205.0-preview.256
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 +9 -9
- package/dist/THIRD-PARTY-NOTICES.md +36 -12
- package/dist/{authoring-bppe07p0.js → authoring-e1k40hyw.js} +6 -5
- package/dist/{binding-service-fw3rzae4.js → binding-service-yw91615m.js} +38 -30
- package/dist/{connector-service-2z7s7qtd.js → connector-service-ttm75a4n.js} +224 -47
- 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-xsm3ycqx.js +30 -0
- package/dist/{debug-http-client-p4kf38yt.js → debug-http-client-yqjzsnhw.js} +5 -4
- package/dist/{debug-service-893erynq.js → debug-service-nra3n02y.js} +6 -5
- package/dist/{edge-service-6zr5f09c.js → edge-service-8fv0m681.js} +16 -12
- 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/{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-kjvpsxhw.js → flow-api-sat010z1.js} +16 -10
- package/dist/{flow-debug-service-9q9k756w.js → flow-debug-service-cgawm96k.js} +96 -58
- package/dist/{flow-eval-node-target-zvk7fcb2.js → flow-eval-node-target-dah1gmmh.js} +17 -17
- package/dist/flow-eval-run-api-xdygjzfv.js +13 -0
- package/dist/{flow-eval-run-service-2hfqyadh.js → flow-eval-run-service-03j1szf6.js} +73 -80
- package/dist/{flow-eval-service-m5n2svke.js → flow-eval-service-9j46ta9k.js} +167 -415
- package/dist/{flow-init-sdk-source-z9qx1zkt.js → flow-init-sdk-source-xvdvkq7d.js} +6 -5
- package/dist/{flow-init-service-8y8b76zm.js → flow-init-service-0a4y3a46.js} +19 -15
- package/dist/{flow-io-w11yspjx.js → flow-io-1wabd32s.js} +15 -11
- package/dist/{flow-migrate-service-v7ch4t3h.js → flow-migrate-service-mkqpbwtv.js} +16 -12
- package/dist/{flow-pack-service-xs8v5mba.js → flow-pack-service-7dj2hhyz.js} +47 -38
- package/dist/flow-validate-service-1ktjayjv.js +70 -0
- 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-18pk0mgv.js → governance-fetcher-76hxssjm.js} +7 -6
- package/dist/{hitl-service-ehnfkwhp.js → hitl-service-vcbhd4cb.js} +15 -11
- package/dist/{index-aaq9rwfv.js → index-1b2je9n2.js} +1088 -233
- package/dist/index-d090f35d.js +66 -0
- package/dist/{index-yj4xk2aw.js → index-dgdnbb2g.js} +7 -5
- package/dist/{index-ng2f77my.js → index-fyc0k5dd.js} +985 -617
- package/dist/{index-9hqj0ee4.js → index-hz008fep.js} +6 -5
- package/dist/{index-vrhcbxnk.js → index-nsn889vf.js} +6 -5
- package/dist/{index-2s8rmmw6.js → index-sqhbn7ew.js} +4 -4
- package/dist/{index-tnz5ks4t.js → index-wycgq0ff.js} +65 -2230
- package/dist/index.js +17 -14
- package/dist/init.js +19 -15
- package/dist/inline-entity-resolver-64pqwk86.js +45 -0
- package/dist/input-reader-n7kzdrev.js +12 -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-q6fcyq2e.js → known-types-3025scz1.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/{maestro-automate-entry-qak46eg0.js → maestro-automate-entry-6f9act3w.js} +2 -2
- package/dist/{node-cvwqsgg0.js → node-hz6cvp9d.js} +29 -15
- package/dist/{node-service-544fv7as.js → node-service-7wz8gx7h.js} +41 -30
- package/dist/{node-strategy-fdnkvq4a.js → node-strategy-1dmmhvf3.js} +1 -1
- package/dist/node-sync-service-yvyf7chw.js +61 -0
- package/dist/packager-tool-10vc8pq4.js +2 -0
- package/dist/{packager-tool-29b6r6eg.js → packager-tool-2h15x2kb.js} +6 -6
- package/dist/{packager-tool-h7cjs093.js → packager-tool-2z0r1f32.js} +668 -57
- package/dist/packager-tool-4kr6g0zw.js +16 -0
- package/dist/packager-tool-4x7tzvv0.js +1176 -0
- package/dist/{packager-tool-d88rqwk8.js → packager-tool-6z1hsm2h.js} +13 -5
- package/dist/packager-tool-7hw344bt.js +107 -0
- package/dist/{packager-tool-pb7wzsn4.js → packager-tool-7wnxyvf9.js} +519 -437
- package/dist/{packager-tool-m8xtf5ej.js → packager-tool-8g5931fz.js} +7 -4
- package/dist/{packager-tool-h9tzz0qd.js → packager-tool-961vsbsc.js} +15 -10
- package/dist/packager-tool-9era57c0.js +28 -0
- package/dist/packager-tool-9gprvfcy.js +23 -0
- package/dist/packager-tool-9jxzgsxc.js +14 -0
- package/dist/{packager-tool-zxp4hya4.js → packager-tool-a5afh1dc.js} +34 -13
- package/dist/{packager-tool-02f63a08.js → packager-tool-apawc11t.js} +88 -762
- package/dist/{packager-tool-tf3d2y8z.js → packager-tool-aw9v0raw.js} +2 -2
- package/dist/packager-tool-cqtsj6yh.js +2 -0
- package/dist/{packager-tool-5nqhxb9e.js → packager-tool-dwd6cc01.js} +16110 -13031
- package/dist/{packager-tool-t605qewm.js → packager-tool-dxgrhfq5.js} +2 -2
- package/dist/{packager-tool-awkq26v0.js → packager-tool-e7kvq8hf.js} +5 -3
- package/dist/{packager-tool-2y2mmdnq.js → packager-tool-fjqpf1y6.js} +6 -24
- package/dist/{packager-tool-3dc9gz35.js → packager-tool-frjt46rb.js} +1 -1
- package/dist/{packager-tool-y8egb0fa.js → packager-tool-gqq3vkgh.js} +2573 -535
- package/dist/{packager-tool-w5a1hhyj.js → packager-tool-hxyjn885.js} +13 -2
- package/dist/packager-tool-j3228zs9.js +35 -0
- package/dist/{packager-tool-hhy1gr2k.js → packager-tool-jgfzfqjm.js} +1 -1
- package/dist/{packager-tool-5csvkk54.js → packager-tool-kb520rm5.js} +172 -71
- package/dist/{packager-tool-k04k2rnq.js → packager-tool-kmv2p8z4.js} +20 -8
- package/dist/{packager-tool-6h69pd2a.js → packager-tool-kn86394c.js} +127 -61
- package/dist/packager-tool-mgcz986r.js +143 -0
- package/dist/{packager-tool-3h2ktz6q.js → packager-tool-myhbp761.js} +11 -1
- package/dist/{packager-tool-5tk1eg46.js → packager-tool-ns9xn7zq.js} +13 -13
- package/dist/{packager-tool-vbfz8k7w.js → packager-tool-p8gab24q.js} +52 -32
- package/dist/{packager-tool-stq8800d.js → packager-tool-pacrqxv2.js} +17 -4
- package/dist/{packager-tool-7q6z6npd.js → packager-tool-pcvhcn2k.js} +93 -11
- package/dist/packager-tool-phw8ydjx.js +331 -0
- package/dist/{packager-tool-mx0gg6yh.js → packager-tool-q8akejne.js} +6 -4
- package/dist/packager-tool-qcqb9hf8.js +26 -0
- package/dist/{packager-tool-n89vrpex.js → packager-tool-skcjythd.js} +10907 -25608
- package/dist/{packager-tool-v37kemg5.js → packager-tool-sphnextf.js} +5 -6
- package/dist/{packager-tool-1ca047de.js → packager-tool-sqpesv2e.js} +12 -56
- package/dist/packager-tool-t7ahhaer.js +877 -0
- package/dist/{packager-tool-zgm9mqrh.js → packager-tool-thnkpqwc.js} +1802 -378
- package/dist/{packager-tool-peawy22c.js → packager-tool-tqjfdpda.js} +53 -8
- package/dist/{packager-tool-gb4sm499.js → packager-tool-vd3rn4fj.js} +463 -327
- package/dist/{packager-tool-5tjzg56t.js → packager-tool-wh660fny.js} +1 -1
- package/dist/{packager-tool-tyg399d6.js → packager-tool-wze74wyk.js} +74 -47
- package/dist/{packager-tool-zbhqrk3p.js → packager-tool-x20684x5.js} +1 -1
- package/dist/packager-tool-xj0agqpk.js +11 -0
- package/dist/packager-tool-xk78j7dz.js +1256 -0
- package/dist/{packager-tool-py93409h.js → packager-tool-ymma2s85.js} +2 -2
- package/dist/packager-tool-z0yxfhdj.js +40 -0
- package/dist/packager-tool.js +13 -10
- 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/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/services/connector-request-buckets.d.ts +1 -0
- package/dist/services/flow-eval-file-store.d.ts +1 -11
- package/dist/services/flow-eval-utils.d.ts +1 -32
- package/dist/services/flow-validate-service.d.ts +51 -0
- package/dist/services/inline-entity-resolver.d.ts +22 -0
- package/dist/services/node-service.d.ts +21 -1
- package/dist/services/packaging-utils.d.ts +15 -2
- package/dist/{shared-utils-pnbvyyb2.js → shared-utils-tqnx96mg.js} +4 -3
- package/dist/solution-auth-8qz5pw7z.js +14 -0
- package/dist/solution-discovery-vqravtkh.js +44 -0
- package/dist/{tidy-service-j70ccg27.js → tidy-service-tqjea6g2.js} +143 -39
- package/dist/tool.js +17 -14
- 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/utils/flow-io.d.ts +2 -1
- package/dist/validation.js +39 -33
- package/dist/{variable-service-86t2r5m9.js → variable-service-kqnqxmx2.js} +16 -12
- package/dist/{wait-for-flow-job-d8m6mqb4.js → wait-for-flow-job-b0vj8828.js} +15 -12
- 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/debug-conversation-trigger-hgszjdhx.js +0 -44
- package/dist/flow-eval-run-api-byx3cacw.js +0 -13
- package/dist/flow-validate-service-12v3bz1b.js +0 -64
- package/dist/input-reader-vhar4g0k.js +0 -11
- package/dist/node-sync-service-ccwgtyte.js +0 -40
- package/dist/packager-tool-4g5hk66k.js +0 -454
- package/dist/packager-tool-kg35b9s6.js +0 -15
- package/dist/packager-tool-pz5nqg0s.js +0 -64
- package/dist/packager-tool-t3ysatjd.js +0 -521
- package/dist/packager-tool-vd6jt4n8.js +0 -208
- package/dist/packager-tool-vscvjrhn.js +0 -265
- package/dist/services/flow-debug-service.d.ts +0 -320
- package/dist/services/flow-eval-schema/deterministic-evaluators.d.ts +0 -110
- package/dist/services/flow-eval-schema/evaluator-fields.d.ts +0 -66
- package/dist/services/flow-eval-schema/helpers.d.ts +0 -9
- package/dist/services/flow-eval-schema/index.d.ts +0 -4
- package/dist/services/flow-eval-schema/llm-judge-evaluators.d.ts +0 -174
- package/dist/services/flow-eval-schema/prompts.d.ts +0 -2
- package/dist/services/flow-eval-schema/registry.d.ts +0 -375
- package/dist/services/flow-eval-schema/tool-call-evaluators.d.ts +0 -93
- package/dist/services/flow-eval-schema/types.d.ts +0 -95
- package/dist/services/flow-eval-types.d.ts +0 -6
- package/dist/utils/write-resolved-flow.d.ts +0 -7
- /package/dist/{headless-45dypanh.js → headless-fw8pwyzm.js} +0 -0
- /package/dist/{localization-xecwjpe2.js → localization-d6gjmrsw.js} +0 -0
|
@@ -52,6 +52,13 @@ export interface FlowValidateOptions {
|
|
|
52
52
|
* enables current-manifest validation.
|
|
53
53
|
*/
|
|
54
54
|
currentManifests?: ManifestForCurrentValidation[];
|
|
55
|
+
/**
|
|
56
|
+
* Read the current manifests from the shared node cache that
|
|
57
|
+
* `registry pull` writes (`~/.uipath/nodes/`, 30-minute TTL, keyed by
|
|
58
|
+
* tenant) instead of always fetching them. Default `true`; `false` is
|
|
59
|
+
* `flow validate --force`: refetch, then refresh the cache.
|
|
60
|
+
*/
|
|
61
|
+
manifestCache?: boolean;
|
|
55
62
|
/**
|
|
56
63
|
* Promote connector-binding shape warnings (MST-9810) to errors. By
|
|
57
64
|
* default, an unbound Managed HTTP node carrying a connector-shaped label
|
|
@@ -83,6 +90,7 @@ export declare class FlowValidateService {
|
|
|
83
90
|
private readonly availableModelNames?;
|
|
84
91
|
private readonly validateCurrentManifests;
|
|
85
92
|
private readonly currentManifestOverrides?;
|
|
93
|
+
private readonly manifestCache;
|
|
86
94
|
private readonly strictBindings;
|
|
87
95
|
private readonly strictExpressions;
|
|
88
96
|
private readonly connectorCatalogOverride?;
|
|
@@ -288,6 +296,24 @@ export declare class FlowValidateService {
|
|
|
288
296
|
private validateEdgeReferences;
|
|
289
297
|
private validateNodeTypeDefinitions;
|
|
290
298
|
private validateUniqueIds;
|
|
299
|
+
/**
|
|
300
|
+
* Node IDs and edge IDs share ONE namespace across the whole file: the
|
|
301
|
+
* root graph and every `subflows` entry. `validateUniqueIds` checks each
|
|
302
|
+
* scope's nodes and edges on their own; this catches every other overlap:
|
|
303
|
+
* the same ID in two scopes, or one ID used by both a node and an edge
|
|
304
|
+
* (in the same scope or in different ones).
|
|
305
|
+
*
|
|
306
|
+
* Pack flattens every subflow into one BPMN document, where tasks and
|
|
307
|
+
* sequence flows are all XML elements with document-wide IDs. A repeated
|
|
308
|
+
* ID makes it keep one element and drop the other (a second subflow's node
|
|
309
|
+
* or sequence flow silently disappears), or crash in layout with
|
|
310
|
+
* `Cannot read properties of undefined (reading 'get')` / `(reading 'di')`.
|
|
311
|
+
* Example: flow-builder-sdk#938 emitted `edge_ref_4` in both
|
|
312
|
+
* `subflows.first` and `subflows.second`; validate passed, pack failed.
|
|
313
|
+
*
|
|
314
|
+
* Reported once per ID, naming each kind and scope that uses it.
|
|
315
|
+
*/
|
|
316
|
+
private validateFileWideIdUniqueness;
|
|
291
317
|
/** Uniqueness check for `variables.globals` IDs; called once per scope (root + each subflow). */
|
|
292
318
|
private validateGlobalVariableUniqueness;
|
|
293
319
|
/**
|
|
@@ -385,6 +411,11 @@ export declare class FlowValidateService {
|
|
|
385
411
|
* value has a way in regardless of `triggerNodeId`.
|
|
386
412
|
*/
|
|
387
413
|
private validateUnboundInputGlobals;
|
|
414
|
+
/**
|
|
415
|
+
* Data Fabric nodes naming an entity the solution authors, with no binding.
|
|
416
|
+
* The rule lives in packager-tool-flow so the pack gate runs it too.
|
|
417
|
+
*/
|
|
418
|
+
private validateInlineEntityBindings;
|
|
388
419
|
/**
|
|
389
420
|
* Resource-node bindings integrity (residual roadmap §A4, [MST-9712]).
|
|
390
421
|
*
|
|
@@ -475,6 +506,26 @@ export declare class FlowValidateService {
|
|
|
475
506
|
* fixes registration; renaming the file or directory fixes the layout).
|
|
476
507
|
*/
|
|
477
508
|
private validateSolutionRegistrationAndLayout;
|
|
509
|
+
/**
|
|
510
|
+
* In-solution process references must point at something in the solution
|
|
511
|
+
* (UiPath/cli#4837).
|
|
512
|
+
*
|
|
513
|
+
* A node that calls a sibling project carries a definition from
|
|
514
|
+
* `registry get --local`: tagged `in-solution`, with the sibling's
|
|
515
|
+
* `projectId` and its process resource key as `model.bindings.resourceKey`.
|
|
516
|
+
* That key is valid only when it is a process resource's `key` under
|
|
517
|
+
* `resources/solution_folder/process/`. Anything else (a removed project,
|
|
518
|
+
* a key `refresh` has since replaced, or the `.uipx` id of a project with
|
|
519
|
+
* no process resource yet, which earlier builds of `registry --local`
|
|
520
|
+
* handed out and the next `refresh` replaces) validates clean and calls
|
|
521
|
+
* nothing at runtime.
|
|
522
|
+
*
|
|
523
|
+
* Only definitions tagged `in-solution` with a `process` binding are
|
|
524
|
+
* checked: a deployed process also has a GUID in its node type, and it is
|
|
525
|
+
* not expected to be in the solution. Severity follows the other binding rules: a warning, an error
|
|
526
|
+
* under `--strict-bindings`.
|
|
527
|
+
*/
|
|
528
|
+
private validateInSolutionProcessKeys;
|
|
478
529
|
/**
|
|
479
530
|
* Best-effort path canonicalization for the registration-comparison
|
|
480
531
|
* call site. Returns `fs.realpath(p)` when the call succeeds, and
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* flow-tool's side of the unbound-entity rule: the lookup `node add` /
|
|
3
|
+
* `node configure` bind with, and the `debug` / `eval` pre-flight. The reader
|
|
4
|
+
* lives in packager-tool-datafabric so the pack gate can share it.
|
|
5
|
+
*/
|
|
6
|
+
import type { IFileSystem } from "@uipath/filesystem";
|
|
7
|
+
import { readSolutionInlineEntities } from "@uipath/packager-tool-datafabric";
|
|
8
|
+
import { type InlineEntity, type ScannedWorkflow, type UnboundInlineEntityNode } from "@uipath/packager-tool-flow";
|
|
9
|
+
export { readSolutionInlineEntities };
|
|
10
|
+
/** The locally authored entity `entityName` names, or `undefined` — not ours to wire. */
|
|
11
|
+
export declare function resolveInlineEntity(fs: IFileSystem, flowFilePath: string, entityName: string): Promise<InlineEntity | undefined>;
|
|
12
|
+
/** Raised before packaging when a Data Fabric node is unbound. */
|
|
13
|
+
export declare class UnboundInlineEntityError extends Error {
|
|
14
|
+
readonly code = "UnboundInlineEntity";
|
|
15
|
+
readonly instructions: string;
|
|
16
|
+
constructor(nodes: UnboundInlineEntityNode[], flowFilePath: string);
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Pre-flight for `flow debug` and `flow eval`, which run no flow validation of
|
|
20
|
+
* their own; without it the first sign is `Entity <Name> does not exist`.
|
|
21
|
+
*/
|
|
22
|
+
export declare function assertInlineEntitiesBound(fs: IFileSystem, flowFilePath: string, workflow: ScannedWorkflow): Promise<void>;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { NodeInstance, Workflow } from "@uipath/flow-core";
|
|
1
|
+
import type { Binding, NodeInstance, Workflow } from "@uipath/flow-core";
|
|
2
2
|
import { type ConnectorInfo } from "@uipath/maestro-sdk";
|
|
3
3
|
import { type InlineActivityInput } from "./inline-activity-service.js";
|
|
4
4
|
export { InlineActivityError } from "./inline-activity-service.js";
|
|
@@ -102,6 +102,26 @@ export declare const PROCESS_NODE_PREFIXES: string[];
|
|
|
102
102
|
export declare function isProcessNode(manifest: {
|
|
103
103
|
nodeType: string;
|
|
104
104
|
}): boolean;
|
|
105
|
+
/**
|
|
106
|
+
* Manifest-shaped overload of `isEntityNodeType`, which lives in
|
|
107
|
+
* `@uipath/packager-tool-flow` beside the unbound-entity rule that reads it.
|
|
108
|
+
*/
|
|
109
|
+
export declare function isEntityNode(manifest: {
|
|
110
|
+
nodeType: string;
|
|
111
|
+
}): boolean;
|
|
112
|
+
/**
|
|
113
|
+
* Build a Data Fabric node's `Entity` bindings from `inputs.entityConfig`,
|
|
114
|
+
* mirroring the canvas `useEntitySelectionBindings`. Manifests declare no
|
|
115
|
+
* `model.bindings`. Capital `Entity`: packaging matches case-sensitively.
|
|
116
|
+
*/
|
|
117
|
+
export declare function createEntityBindings(node: NodeInstance): Binding[];
|
|
118
|
+
/**
|
|
119
|
+
* Fill `_resourceKey` / `_folderKey` from the solution's entity resource when
|
|
120
|
+
* the node names one and has no identity yet — what the canvas picker stores —
|
|
121
|
+
* and write the resource's own casing into `entityName`, since the lookup folds
|
|
122
|
+
* case. A node keyed to something else (e.g. a tenant entity) is left alone.
|
|
123
|
+
*/
|
|
124
|
+
export declare function resolveEntityIdentity(filePath: string, node: NodeInstance): Promise<void>;
|
|
105
125
|
export interface ProcessTarget {
|
|
106
126
|
/**
|
|
107
127
|
* The key the runtime routes on: the definition's
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { IFileSystem } from "@uipath/filesystem";
|
|
2
2
|
import { type EntryPoint, type PackagingBinding, type PackagingNode, type PackagingNodeManifest, type PackagingWorkflowVariables } from "@uipath/flow-schema";
|
|
3
|
-
import { isInlineAgentNodeType, RuntimeProfile, readInlineAgentSource } from "@uipath/packager-tool-flow";
|
|
3
|
+
import { type FlowWithSubflows, isInlineAgentNodeType, RuntimeProfile, readInlineAgentSource } from "@uipath/packager-tool-flow";
|
|
4
4
|
export interface FlowFileNode {
|
|
5
5
|
id: string;
|
|
6
6
|
type: string;
|
|
@@ -8,7 +8,8 @@ export interface FlowFileNode {
|
|
|
8
8
|
display?: Record<string, unknown>;
|
|
9
9
|
inputs?: Record<string, unknown>;
|
|
10
10
|
outputs?: Record<string, unknown>;
|
|
11
|
-
model
|
|
11
|
+
/** `unknown` to match flow-core's `NodeInstance.model`. */
|
|
12
|
+
model?: unknown;
|
|
12
13
|
[key: string]: unknown;
|
|
13
14
|
}
|
|
14
15
|
export { isInlineAgentNodeType, readInlineAgentSource };
|
|
@@ -22,6 +23,12 @@ export { isInlineAgentNodeType, readInlineAgentSource };
|
|
|
22
23
|
* and does NOT remap fields, so we do that here.
|
|
23
24
|
*/
|
|
24
25
|
export declare function fileNodesToPackagingNodes(nodes: FlowFileNode[]): PackagingNode[];
|
|
26
|
+
/**
|
|
27
|
+
* Packaging nodes for the whole flow, subflows appended last, so a subflow
|
|
28
|
+
* node's bindings reach `bindings_v2.json`. Derive entry points from top-level
|
|
29
|
+
* nodes only (`PackagingArtifactOptions.entryPointNodes`).
|
|
30
|
+
*/
|
|
31
|
+
export declare function flowToPackagingNodes(workflow: FlowWithSubflows<FlowFileNode> | undefined | null): PackagingNode[];
|
|
25
32
|
/** Packaged inline agent with entry point and file metadata. */
|
|
26
33
|
export interface InlineAgentPackage {
|
|
27
34
|
/** The agent's projectId UUID (directory name). */
|
|
@@ -44,6 +51,12 @@ export interface PackagingArtifactOptions {
|
|
|
44
51
|
additionalEntryPoints?: EntryPoint[];
|
|
45
52
|
additionalBindingsJsons?: Array<PackagingBindingsJson | undefined>;
|
|
46
53
|
packageDescriptorJson?: Record<string, unknown>;
|
|
54
|
+
/**
|
|
55
|
+
* Nodes for entry points and `operate.json`; defaults to `packagingNodes`.
|
|
56
|
+
* Pass top-level nodes: `isStartEventNode` matches any type containing
|
|
57
|
+
* "trigger", so subflow nodes could become extra entry points.
|
|
58
|
+
*/
|
|
59
|
+
entryPointNodes?: PackagingNode[];
|
|
47
60
|
/**
|
|
48
61
|
* Resolved by the caller from the directory that actually holds the
|
|
49
62
|
* sentinel — the source project, or the staging copy when staging copied
|
|
@@ -6,8 +6,9 @@ import {
|
|
|
6
6
|
} from "./packager-tool-eypvc2kv.js";
|
|
7
7
|
import {
|
|
8
8
|
readStdin
|
|
9
|
-
} from "./packager-tool-
|
|
10
|
-
import"./packager-tool-
|
|
9
|
+
} from "./packager-tool-apawc11t.js";
|
|
10
|
+
import"./packager-tool-t7ahhaer.js";
|
|
11
|
+
import"./packager-tool-myhbp761.js";
|
|
11
12
|
import"./packager-tool-1yh8g550.js";
|
|
12
13
|
export {
|
|
13
14
|
VALID_PACKAGE_NAME_REGEX,
|
|
@@ -17,4 +18,4 @@ export {
|
|
|
17
18
|
readStdin
|
|
18
19
|
};
|
|
19
20
|
|
|
20
|
-
//# debugId=
|
|
21
|
+
//# debugId=EFE8CE929B4DCF5B64756E2164756E21
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import {
|
|
2
|
+
getSolutionAuthContext
|
|
3
|
+
} from "./packager-tool-9era57c0.js";
|
|
4
|
+
import"./packager-tool-kn86394c.js";
|
|
5
|
+
import"./packager-tool-0gctz400.js";
|
|
6
|
+
import"./packager-tool-qa9gftnj.js";
|
|
7
|
+
import"./packager-tool-yc4kw997.js";
|
|
8
|
+
import"./packager-tool-myhbp761.js";
|
|
9
|
+
import"./packager-tool-1yh8g550.js";
|
|
10
|
+
export {
|
|
11
|
+
getSolutionAuthContext
|
|
12
|
+
};
|
|
13
|
+
|
|
14
|
+
//# debugId=63A23B7A7462225464756E2164756E21
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import {
|
|
2
|
+
buildInSolutionNodes,
|
|
3
|
+
describeProjectsWithoutProcessResource,
|
|
4
|
+
explainNodeTypeWithoutProcessResource,
|
|
5
|
+
findProjectsWithoutProcessResource,
|
|
6
|
+
findSolutionFromCwd,
|
|
7
|
+
loadResourceKeyMap,
|
|
8
|
+
readSolutionAt,
|
|
9
|
+
resolveProjectEntryPointIO,
|
|
10
|
+
resourcesRefreshCommand,
|
|
11
|
+
solutionSearchDirs,
|
|
12
|
+
unknownContractWarning
|
|
13
|
+
} from "./packager-tool-phw8ydjx.js";
|
|
14
|
+
import {
|
|
15
|
+
setAgentProjectMetadataReader
|
|
16
|
+
} from "./packager-tool-8qp60s20.js";
|
|
17
|
+
import"./packager-tool-dwd6cc01.js";
|
|
18
|
+
import"./packager-tool-paq9c70w.js";
|
|
19
|
+
import"./packager-tool-wze74wyk.js";
|
|
20
|
+
import"./packager-tool-pcvhcn2k.js";
|
|
21
|
+
import"./packager-tool-sc961w0q.js";
|
|
22
|
+
import"./packager-tool-6z1hsm2h.js";
|
|
23
|
+
import"./packager-tool-jysvpt8p.js";
|
|
24
|
+
import"./packager-tool-pxqras8k.js";
|
|
25
|
+
import"./packager-tool-apawc11t.js";
|
|
26
|
+
import"./packager-tool-t7ahhaer.js";
|
|
27
|
+
import"./packager-tool-myhbp761.js";
|
|
28
|
+
import"./packager-tool-1yh8g550.js";
|
|
29
|
+
export {
|
|
30
|
+
buildInSolutionNodes,
|
|
31
|
+
describeProjectsWithoutProcessResource,
|
|
32
|
+
explainNodeTypeWithoutProcessResource,
|
|
33
|
+
findProjectsWithoutProcessResource,
|
|
34
|
+
findSolutionFromCwd,
|
|
35
|
+
loadResourceKeyMap,
|
|
36
|
+
readSolutionAt,
|
|
37
|
+
resolveProjectEntryPointIO,
|
|
38
|
+
resourcesRefreshCommand,
|
|
39
|
+
setAgentProjectMetadataReader,
|
|
40
|
+
solutionSearchDirs,
|
|
41
|
+
unknownContractWarning
|
|
42
|
+
};
|
|
43
|
+
|
|
44
|
+
//# debugId=47D98DFD77852D2D64756E2164756E21
|
|
@@ -8,29 +8,32 @@ import {
|
|
|
8
8
|
import {
|
|
9
9
|
readFlowWorkflow,
|
|
10
10
|
writeFlowWorkflow
|
|
11
|
-
} from "./packager-tool-
|
|
12
|
-
import"./packager-tool-
|
|
11
|
+
} from "./packager-tool-sphnextf.js";
|
|
12
|
+
import"./packager-tool-thnkpqwc.js";
|
|
13
13
|
import {
|
|
14
14
|
DEFAULT_LAYOUT_OPTIONS,
|
|
15
15
|
GRID_SPACING,
|
|
16
16
|
resolveHeight,
|
|
17
17
|
resolveWidth,
|
|
18
18
|
snapToGrid
|
|
19
|
-
} from "./packager-tool-
|
|
20
|
-
import"./packager-tool-
|
|
21
|
-
import"./packager-tool-
|
|
22
|
-
import"./packager-tool-nkrmjr3a.js";
|
|
19
|
+
} from "./packager-tool-961vsbsc.js";
|
|
20
|
+
import"./packager-tool-jgfzfqjm.js";
|
|
21
|
+
import"./packager-tool-qcqb9hf8.js";
|
|
23
22
|
import {
|
|
24
23
|
generateNodeVariables
|
|
25
|
-
} from "./packager-tool-
|
|
24
|
+
} from "./packager-tool-wze74wyk.js";
|
|
25
|
+
import"./packager-tool-pacrqxv2.js";
|
|
26
|
+
import"./packager-tool-nkrmjr3a.js";
|
|
26
27
|
import"./packager-tool-rs6jm14d.js";
|
|
27
28
|
import"./packager-tool-hk1gxnth.js";
|
|
28
|
-
import"./packager-tool-
|
|
29
|
+
import"./packager-tool-mgcz986r.js";
|
|
30
|
+
import"./packager-tool-xj0agqpk.js";
|
|
31
|
+
import"./packager-tool-pcvhcn2k.js";
|
|
29
32
|
import"./packager-tool-sc961w0q.js";
|
|
30
33
|
import"./packager-tool-eq46jxm5.js";
|
|
31
34
|
import"./packager-tool-868re2t3.js";
|
|
32
35
|
import"./packager-tool-gbgfwx8f.js";
|
|
33
|
-
import"./packager-tool-
|
|
36
|
+
import"./packager-tool-6z1hsm2h.js";
|
|
34
37
|
import"./packager-tool-jysvpt8p.js";
|
|
35
38
|
import"./packager-tool-bhqx9kez.js";
|
|
36
39
|
import"./packager-tool-p79yh9ww.js";
|
|
@@ -38,8 +41,9 @@ import"./packager-tool-pxqras8k.js";
|
|
|
38
41
|
import"./packager-tool-z83pga0z.js";
|
|
39
42
|
import"./packager-tool-6ejqwbw9.js";
|
|
40
43
|
import"./packager-tool-mcaf4ewf.js";
|
|
41
|
-
import"./packager-tool-
|
|
42
|
-
import"./packager-tool-
|
|
44
|
+
import"./packager-tool-apawc11t.js";
|
|
45
|
+
import"./packager-tool-t7ahhaer.js";
|
|
46
|
+
import"./packager-tool-myhbp761.js";
|
|
43
47
|
import"./packager-tool-4mna26cc.js";
|
|
44
48
|
import"./packager-tool-c23zrhj8.js";
|
|
45
49
|
import {
|
|
@@ -117,13 +121,8 @@ function buildArtifactParentWrappers(artifactGroups) {
|
|
|
117
121
|
}
|
|
118
122
|
return Array.from(wrapperMap.values());
|
|
119
123
|
}
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
var edgeNodeClearance = (options) => snapToGrid(options.layerSpacing / 2);
|
|
123
|
-
var EDGE_EDGE_CLEARANCE_PX = GRID_SPACING;
|
|
124
|
-
var GRID_PADDING = `[top=${GRID_SPACING},left=${GRID_SPACING},bottom=${GRID_SPACING},right=${GRID_SPACING}]`;
|
|
125
|
-
function makeGroupId(group) {
|
|
126
|
-
return `${group.parentId}__${group.sourceHandle}_group`;
|
|
124
|
+
function elkPortId(nodeId, handleId) {
|
|
125
|
+
return `${nodeId}_${handleId}`;
|
|
127
126
|
}
|
|
128
127
|
function computeElkPortIndices(ports) {
|
|
129
128
|
const bySide = /* @__PURE__ */ new Map;
|
|
@@ -142,6 +141,50 @@ function computeElkPortIndices(ports) {
|
|
|
142
141
|
}
|
|
143
142
|
return result;
|
|
144
143
|
}
|
|
144
|
+
function buildElkPorts(nodeId, ports) {
|
|
145
|
+
const elkIndices = computeElkPortIndices([...ports]);
|
|
146
|
+
return ports.map((port) => ({
|
|
147
|
+
id: elkPortId(nodeId, port.id),
|
|
148
|
+
layoutOptions: { "port.side": port.side, "port.index": (elkIndices.get(port.id) ?? port.index).toString() }
|
|
149
|
+
}));
|
|
150
|
+
}
|
|
151
|
+
function buildInsetElkPorts(nodeId, ports, real, inset) {
|
|
152
|
+
const inflatedWidth = inset.left + real.width + inset.right;
|
|
153
|
+
const inflatedHeight = inset.top + real.height + inset.bottom;
|
|
154
|
+
const bySide = /* @__PURE__ */ new Map;
|
|
155
|
+
for (const p of ports) {
|
|
156
|
+
if (!bySide.has(p.side))
|
|
157
|
+
bySide.set(p.side, []);
|
|
158
|
+
bySide.get(p.side).push(p);
|
|
159
|
+
}
|
|
160
|
+
const result = [];
|
|
161
|
+
for (const [side, sidePorts] of bySide) {
|
|
162
|
+
const sorted = [...sidePorts].sort((a, b) => a.index - b.index);
|
|
163
|
+
sorted.forEach((port, i) => {
|
|
164
|
+
const along = (i + 1) / (sorted.length + 1);
|
|
165
|
+
let x;
|
|
166
|
+
let y;
|
|
167
|
+
if (side === "EAST" || side === "WEST") {
|
|
168
|
+
x = side === "EAST" ? inflatedWidth : 0;
|
|
169
|
+
y = inset.top + real.height * along;
|
|
170
|
+
} else {
|
|
171
|
+
x = inset.left + real.width * along;
|
|
172
|
+
y = side === "SOUTH" ? inflatedHeight : 0;
|
|
173
|
+
}
|
|
174
|
+
result.push({ id: elkPortId(nodeId, port.id), x, y, layoutOptions: { "port.side": side } });
|
|
175
|
+
});
|
|
176
|
+
}
|
|
177
|
+
return result;
|
|
178
|
+
}
|
|
179
|
+
var edgeNodeClearance = (layerSpacing) => snapToGrid(layerSpacing / 2);
|
|
180
|
+
var EDGE_EDGE_CLEARANCE_PX = 1 * GRID_SPACING;
|
|
181
|
+
var ARTIFACT_GROUP_SPACING = 96;
|
|
182
|
+
var ARTIFACT_HORIZONTAL_SPACING = ARTIFACT_GROUP_SPACING / 2;
|
|
183
|
+
var FLOW_EDGE_STRAIGHTNESS_PRIORITY = "2";
|
|
184
|
+
var GRID_PADDING = `[top=${GRID_SPACING},left=${GRID_SPACING},bottom=${GRID_SPACING},right=${GRID_SPACING}]`;
|
|
185
|
+
function makeGroupId(group) {
|
|
186
|
+
return `${group.parentId}__${group.sourceHandle}_group`;
|
|
187
|
+
}
|
|
145
188
|
var warmElkLayoutChunk = () => import("./elk.bundled-vpsbxz0p.js").then((m)=>__toESM(m.default,1));
|
|
146
189
|
var ElkLayoutEngine = class {
|
|
147
190
|
constructor(elk) {
|
|
@@ -165,6 +208,7 @@ var ElkLayoutEngine = class {
|
|
|
165
208
|
const { artifactGroups, artifactNodeIds } = analyzeArtifactConnections(edges, nodePortsMap);
|
|
166
209
|
const graph = this.buildHierarchicalGraph(nodes, edges, nodePortsMap, artifactGroups, artifactNodeIds, options);
|
|
167
210
|
const elk = await this.getElk();
|
|
211
|
+
await this.freezeWrappers(graph, elk);
|
|
168
212
|
const layouted = await elk.layout(graph);
|
|
169
213
|
const updatedNodes = this.extractNodePositions(nodes, layouted);
|
|
170
214
|
const edgeWaypoints = this.extractEdgeWaypoints(layouted, new Set(edges.map((e) => e.id)));
|
|
@@ -205,12 +249,7 @@ var ElkLayoutEngine = class {
|
|
|
205
249
|
};
|
|
206
250
|
}
|
|
207
251
|
createElkNode(node, nodePortsMap) {
|
|
208
|
-
const
|
|
209
|
-
const elkIndices = computeElkPortIndices(ports);
|
|
210
|
-
const elkPorts = ports.map((port) => ({
|
|
211
|
-
id: `${node.id}_${port.id}`,
|
|
212
|
-
layoutOptions: { "port.side": port.side, "port.index": (elkIndices.get(port.id) ?? port.index).toString() }
|
|
213
|
-
}));
|
|
252
|
+
const elkPorts = buildElkPorts(node.id, nodePortsMap.get(node.id) ?? []);
|
|
214
253
|
return {
|
|
215
254
|
id: node.id,
|
|
216
255
|
width: resolveWidth(node),
|
|
@@ -360,7 +399,12 @@ var ElkLayoutEngine = class {
|
|
|
360
399
|
} else {
|
|
361
400
|
targetRef = edge.target;
|
|
362
401
|
}
|
|
363
|
-
elkEdges.push({
|
|
402
|
+
elkEdges.push({
|
|
403
|
+
id: edge.id,
|
|
404
|
+
sources: [sourceRef],
|
|
405
|
+
targets: [targetRef],
|
|
406
|
+
layoutOptions: { "org.eclipse.elk.layered.priority.straightness": FLOW_EDGE_STRAIGHTNESS_PRIORITY }
|
|
407
|
+
});
|
|
364
408
|
}
|
|
365
409
|
return elkEdges;
|
|
366
410
|
}
|
|
@@ -368,6 +412,31 @@ var ElkLayoutEngine = class {
|
|
|
368
412
|
const ports = nodePortsMap.get(nodeId);
|
|
369
413
|
return ports != null && ports.some((p) => p.id === handleId);
|
|
370
414
|
}
|
|
415
|
+
async freezeWrappers(root, elk) {
|
|
416
|
+
for (const child of root.children ?? []) {
|
|
417
|
+
if (!child.id.endsWith("_wrapper") || !child.children)
|
|
418
|
+
continue;
|
|
419
|
+
const parentId = child.id.slice(0, -"_wrapper".length);
|
|
420
|
+
const laid = await elk.layout(structuredClone(child));
|
|
421
|
+
const parent = laid.children?.find((c) => c.id === parentId);
|
|
422
|
+
if (!parent || laid.width === undefined || laid.height === undefined)
|
|
423
|
+
continue;
|
|
424
|
+
const parentCenterY = (parent.y ?? 0) + (parent.height ?? 0) / 2;
|
|
425
|
+
child.children = laid.children;
|
|
426
|
+
child.edges = laid.edges;
|
|
427
|
+
child.width = laid.width;
|
|
428
|
+
child.height = laid.height;
|
|
429
|
+
child.layoutOptions = {
|
|
430
|
+
"elk.algorithm": "fixed",
|
|
431
|
+
"elk.padding": "[top=0,left=0,bottom=0,right=0]",
|
|
432
|
+
portConstraints: "FIXED_POS"
|
|
433
|
+
};
|
|
434
|
+
child.ports = child.ports?.map((port) => {
|
|
435
|
+
const side = port.layoutOptions?.["port.side"];
|
|
436
|
+
return { ...port, x: side === "EAST" ? laid.width : 0, y: parentCenterY, layoutOptions: { "port.side": side ?? "WEST" } };
|
|
437
|
+
});
|
|
438
|
+
}
|
|
439
|
+
}
|
|
371
440
|
extractNodePositions(nodes, layouted) {
|
|
372
441
|
const nodePositions = /* @__PURE__ */ new Map;
|
|
373
442
|
for (const child of layouted.children ?? []) {
|
|
@@ -432,10 +501,10 @@ var ElkLayoutEngine = class {
|
|
|
432
501
|
if (options.minimizeCrossings) {
|
|
433
502
|
opts["elk.layered.crossingMinimization.strategy"] = "LAYER_SWEEP";
|
|
434
503
|
}
|
|
435
|
-
opts["elk.layered.cycleBreaking.strategy"] = "
|
|
504
|
+
opts["elk.layered.cycleBreaking.strategy"] = "DEPTH_FIRST";
|
|
436
505
|
opts["elk.spacing.edgeNode"] = options.nodeSpacing.toString();
|
|
437
506
|
opts["elk.spacing.edgeEdge"] = EDGE_EDGE_CLEARANCE_PX.toString();
|
|
438
|
-
opts["elk.layered.spacing.edgeNodeBetweenLayers"] = edgeNodeClearance(options).toString();
|
|
507
|
+
opts["elk.layered.spacing.edgeNodeBetweenLayers"] = edgeNodeClearance(options.layerSpacing).toString();
|
|
439
508
|
opts["elk.edgeRouting"] = "ORTHOGONAL";
|
|
440
509
|
break;
|
|
441
510
|
case "mrtree":
|
|
@@ -464,15 +533,16 @@ var ElkLayoutEngine = class {
|
|
|
464
533
|
}
|
|
465
534
|
};
|
|
466
535
|
var SPINE_STRAIGHTNESS_PRIORITY = "1";
|
|
467
|
-
function findSpineEdgeIds(childIds, edges) {
|
|
536
|
+
function findSpineEdgeIds(childIds, edges, portOwner) {
|
|
468
537
|
if (childIds.length === 0 || edges.length === 0)
|
|
469
538
|
return /* @__PURE__ */ new Set;
|
|
470
539
|
const idSet = new Set(childIds);
|
|
540
|
+
const nodeOf = (ref) => portOwner?.get(ref) ?? ref;
|
|
471
541
|
const outDegree = new Map(childIds.map((id) => [id, 0]));
|
|
472
542
|
const inDegree = new Map(childIds.map((id) => [id, 0]));
|
|
473
543
|
for (const e of edges) {
|
|
474
|
-
const src = e.sources[0];
|
|
475
|
-
const tgt = e.targets[0];
|
|
544
|
+
const src = nodeOf(e.sources[0]);
|
|
545
|
+
const tgt = nodeOf(e.targets[0]);
|
|
476
546
|
if (!idSet.has(src) || !idSet.has(tgt) || src === tgt)
|
|
477
547
|
continue;
|
|
478
548
|
outDegree.set(src, (outDegree.get(src) ?? 0) + 1);
|
|
@@ -480,8 +550,8 @@ function findSpineEdgeIds(childIds, edges) {
|
|
|
480
550
|
}
|
|
481
551
|
const spine = /* @__PURE__ */ new Set;
|
|
482
552
|
for (const e of edges) {
|
|
483
|
-
const src = e.sources[0];
|
|
484
|
-
const tgt = e.targets[0];
|
|
553
|
+
const src = nodeOf(e.sources[0]);
|
|
554
|
+
const tgt = nodeOf(e.targets[0]);
|
|
485
555
|
if (!idSet.has(src) || !idSet.has(tgt) || src === tgt)
|
|
486
556
|
continue;
|
|
487
557
|
if ((outDegree.get(src) ?? 0) === 1 && (inDegree.get(tgt) ?? 0) === 1) {
|
|
@@ -493,17 +563,31 @@ function findSpineEdgeIds(childIds, edges) {
|
|
|
493
563
|
function buildTidyElkContainer(containerId, params) {
|
|
494
564
|
const directChildren = params.childrenByParent.get(containerId) ?? [];
|
|
495
565
|
const localEdges = params.edgesByParent.get(containerId) ?? [];
|
|
566
|
+
const portOwner = /* @__PURE__ */ new Map;
|
|
496
567
|
const elkChildren = directChildren.map((child) => {
|
|
497
|
-
|
|
498
|
-
|
|
568
|
+
const portInfos = params.portsById?.get(child.id) ?? [];
|
|
569
|
+
if (child.isContainer) {
|
|
570
|
+
const ports2 = buildElkPorts(child.id, portInfos);
|
|
571
|
+
for (const port of ports2)
|
|
572
|
+
portOwner.set(port.id, child.id);
|
|
573
|
+
const nested = buildTidyElkContainer(child.id, params);
|
|
574
|
+
if (ports2.length === 0)
|
|
575
|
+
return nested;
|
|
576
|
+
return { ...nested, ports: ports2, layoutOptions: { ...nested.layoutOptions, portConstraints: "FIXED_ORDER" } };
|
|
577
|
+
}
|
|
499
578
|
const oh = params.overhangById?.get(child.id);
|
|
579
|
+
const inflated = !!oh && (oh.top > 0 || oh.bottom > 0 || oh.left > 0 || oh.right > 0);
|
|
580
|
+
const ports = inflated ? buildInsetElkPorts(child.id, portInfos, child, oh) : buildElkPorts(child.id, portInfos);
|
|
581
|
+
for (const port of ports)
|
|
582
|
+
portOwner.set(port.id, child.id);
|
|
500
583
|
return {
|
|
501
584
|
id: child.id,
|
|
502
585
|
width: child.width + (oh?.left ?? 0) + (oh?.right ?? 0),
|
|
503
|
-
height: child.height + (oh?.top ?? 0) + (oh?.bottom ?? 0)
|
|
586
|
+
height: child.height + (oh?.top ?? 0) + (oh?.bottom ?? 0),
|
|
587
|
+
...ports.length > 0 ? { ports, layoutOptions: { portConstraints: inflated ? "FIXED_POS" : "FIXED_ORDER" } } : {}
|
|
504
588
|
};
|
|
505
589
|
});
|
|
506
|
-
const spineEdgeIds = findSpineEdgeIds(directChildren.map((c) => c.id), localEdges);
|
|
590
|
+
const spineEdgeIds = findSpineEdgeIds(directChildren.map((c) => c.id), localEdges, portOwner);
|
|
507
591
|
const annotatedEdges = localEdges.map((e) => spineEdgeIds.has(e.id) ? { ...e, layoutOptions: { ...e.layoutOptions, "org.eclipse.elk.layered.priority.straightness": SPINE_STRAIGHTNESS_PRIORITY } } : e);
|
|
508
592
|
return {
|
|
509
593
|
id: containerId,
|
|
@@ -519,7 +603,13 @@ function buildTidyElkContainer(containerId, params) {
|
|
|
519
603
|
"elk.layered.nodePlacement.bk.fixedAlignment": "BALANCED",
|
|
520
604
|
"elk.layered.considerModelOrder.strategy": "NODES_AND_EDGES",
|
|
521
605
|
"elk.layered.crossingMinimization.forceNodeModelOrder": "true",
|
|
522
|
-
|
|
606
|
+
"elk.layered.cycleBreaking.strategy": "DEPTH_FIRST",
|
|
607
|
+
...params.orthogonalRouting ? {
|
|
608
|
+
"elk.edgeRouting": "ORTHOGONAL",
|
|
609
|
+
"elk.spacing.edgeNode": String(params.nodeSpacing),
|
|
610
|
+
"elk.spacing.edgeEdge": String(EDGE_EDGE_CLEARANCE_PX),
|
|
611
|
+
"elk.layered.spacing.edgeNodeBetweenLayers": String(edgeNodeClearance(params.layerSpacing))
|
|
612
|
+
} : {},
|
|
523
613
|
"elk.hierarchyHandling": "SEPARATE_CHILDREN",
|
|
524
614
|
"elk.nodeSize.constraints": "MINIMUM_SIZE",
|
|
525
615
|
"elk.nodeSize.minimum": `(${params.fit.minWidth},${params.fit.minHeight})`
|
|
@@ -537,7 +627,7 @@ function applyTidyContainerLayout(node, updates, containerOffsets, params) {
|
|
|
537
627
|
const { fit } = params;
|
|
538
628
|
const horizontal = params.direction === "RIGHT" || params.direction === "LEFT";
|
|
539
629
|
const children = node.children ?? [];
|
|
540
|
-
const isContainerElkNode = node.
|
|
630
|
+
const isContainerElkNode = node.children !== undefined;
|
|
541
631
|
if (children.length === 0) {
|
|
542
632
|
if (isContainerElkNode) {
|
|
543
633
|
const w = params.snapUp(Math.max(fit.minWidth, node.width ?? 0));
|
|
@@ -569,6 +659,20 @@ function applyTidyContainerLayout(node, updates, containerOffsets, params) {
|
|
|
569
659
|
if (y + h > maxY)
|
|
570
660
|
maxY = y + h;
|
|
571
661
|
}
|
|
662
|
+
for (const edge of node.edges ?? []) {
|
|
663
|
+
for (const section of edge.sections ?? []) {
|
|
664
|
+
for (const bend of section.bendPoints ?? []) {
|
|
665
|
+
if (bend.x < minX)
|
|
666
|
+
minX = bend.x;
|
|
667
|
+
if (bend.y < minY)
|
|
668
|
+
minY = bend.y;
|
|
669
|
+
if (bend.x > maxX)
|
|
670
|
+
maxX = bend.x;
|
|
671
|
+
if (bend.y > maxY)
|
|
672
|
+
maxY = bend.y;
|
|
673
|
+
}
|
|
674
|
+
}
|
|
675
|
+
}
|
|
572
676
|
const bboxWidth = maxX - minX;
|
|
573
677
|
const bboxHeight = maxY - minY;
|
|
574
678
|
const finalWidth = params.snapUp(Math.max(fit.minWidth, bboxWidth + fit.paddingLeft + fit.paddingRight));
|
|
@@ -1077,4 +1181,4 @@ export {
|
|
|
1077
1181
|
tidyFlow
|
|
1078
1182
|
};
|
|
1079
1183
|
|
|
1080
|
-
//# debugId=
|
|
1184
|
+
//# debugId=88A4B545E923A28F64756E2164756E21
|
package/dist/tool.js
CHANGED
|
@@ -1,28 +1,31 @@
|
|
|
1
1
|
import {
|
|
2
2
|
metadata,
|
|
3
3
|
registerCommands
|
|
4
|
-
} from "./packager-tool-
|
|
5
|
-
import"./packager-tool-
|
|
6
|
-
import"./packager-tool-
|
|
4
|
+
} from "./packager-tool-vd3rn4fj.js";
|
|
5
|
+
import"./packager-tool-aw9v0raw.js";
|
|
6
|
+
import"./packager-tool-10vc8pq4.js";
|
|
7
|
+
import"./packager-tool-q8akejne.js";
|
|
7
8
|
import"./packager-tool-27avrkyk.js";
|
|
8
|
-
import"./packager-tool-
|
|
9
|
-
import"./packager-tool-
|
|
10
|
-
import"./packager-tool-
|
|
11
|
-
import"./packager-tool-
|
|
12
|
-
import"./packager-tool-
|
|
13
|
-
import"./packager-tool-
|
|
9
|
+
import"./packager-tool-4kr6g0zw.js";
|
|
10
|
+
import"./packager-tool-2z0r1f32.js";
|
|
11
|
+
import"./packager-tool-ymma2s85.js";
|
|
12
|
+
import"./packager-tool-tqjfdpda.js";
|
|
13
|
+
import"./packager-tool-frjt46rb.js";
|
|
14
|
+
import"./packager-tool-hxyjn885.js";
|
|
15
|
+
import"./packager-tool-xk78j7dz.js";
|
|
14
16
|
import"./packager-tool-8qp60s20.js";
|
|
15
|
-
import"./packager-tool-
|
|
16
|
-
import"./packager-tool-qa9gftnj.js";
|
|
17
|
+
import"./packager-tool-kn86394c.js";
|
|
17
18
|
import"./packager-tool-0gctz400.js";
|
|
19
|
+
import"./packager-tool-qa9gftnj.js";
|
|
18
20
|
import"./packager-tool-yc4kw997.js";
|
|
19
21
|
import"./packager-tool-eypvc2kv.js";
|
|
20
|
-
import"./packager-tool-
|
|
21
|
-
import"./packager-tool-
|
|
22
|
+
import"./packager-tool-apawc11t.js";
|
|
23
|
+
import"./packager-tool-t7ahhaer.js";
|
|
24
|
+
import"./packager-tool-myhbp761.js";
|
|
22
25
|
import"./packager-tool-1yh8g550.js";
|
|
23
26
|
export {
|
|
24
27
|
metadata,
|
|
25
28
|
registerCommands
|
|
26
29
|
};
|
|
27
30
|
|
|
28
|
-
//# debugId=
|
|
31
|
+
//# debugId=7B70BBCE49EB8EAF64756E2164756E21
|