@uipath/flow-tool 1.204.0-preview.254 → 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.
Files changed (178) hide show
  1. package/README.md +9 -9
  2. package/dist/THIRD-PARTY-NOTICES.md +36 -12
  3. package/dist/{authoring-bppe07p0.js → authoring-e1k40hyw.js} +6 -5
  4. package/dist/{binding-service-9t9gqe9c.js → binding-service-yw91615m.js} +38 -30
  5. package/dist/{connector-service-xm05bmhz.js → connector-service-ttm75a4n.js} +224 -47
  6. package/dist/de-UZI7FJDO-awjpqfz0.js +200 -0
  7. package/dist/{de-MUJPA4EB-dpg7t2rw.js → de-UZI7FJDO-mwvc4cxe.js} +29 -2
  8. package/dist/{de-FGHEJRCI-rv513mfh.js → de-WLW6KWOJ-2qnsqdtw.js} +238 -31
  9. package/dist/debug-conversation-trigger-xsm3ycqx.js +30 -0
  10. package/dist/{debug-http-client-p4kf38yt.js → debug-http-client-yqjzsnhw.js} +5 -4
  11. package/dist/{debug-service-893erynq.js → debug-service-nra3n02y.js} +6 -5
  12. package/dist/{edge-service-rms6p69f.js → edge-service-8fv0m681.js} +16 -12
  13. package/dist/{embedded-file-reader-v8c2yj2a.js → embedded-file-reader-r66242ey.js} +2 -2
  14. package/dist/en-EJCBA3LK-0wb3b1xy.js +146 -0
  15. package/dist/{en-FBPVNKFN-dqt573xn.js → en-EJCBA3LK-dtpdghgj.js} +12 -4
  16. package/dist/{en-BWGKA5OE-1qkvb9rn.js → en-M7GQYBV2-5nfmpnfz.js} +88 -6
  17. package/dist/{es-7SE7HX2X-8yh1aj2y.js → es-4UBUTCQA-m1ytpyx2.js} +29 -2
  18. package/dist/es-4UBUTCQA-t7hsackg.js +200 -0
  19. package/dist/{es-KR3ZSNMP-84zphx0x.js → es-5THCNRFN-tqwyrdgy.js} +235 -28
  20. package/dist/{es-MX-2MYFZU7X-3rek4r73.js → es-MX-5RELIXKI-9jhqtddc.js} +29 -2
  21. package/dist/es-MX-5RELIXKI-jtjbcxbb.js +200 -0
  22. package/dist/{es-MX-XXZJGC4R-2mr8jtgm.js → es-MX-TWZBRAXK-gqd9swzw.js} +237 -30
  23. package/dist/filter-engine-7ep90g7f.js +11 -0
  24. package/dist/{flow-api-kjvpsxhw.js → flow-api-sat010z1.js} +16 -10
  25. package/dist/{flow-debug-service-3wtns3k7.js → flow-debug-service-cgawm96k.js} +96 -58
  26. package/dist/{flow-eval-node-target-ee6vbq8a.js → flow-eval-node-target-dah1gmmh.js} +17 -17
  27. package/dist/flow-eval-run-api-xdygjzfv.js +13 -0
  28. package/dist/{flow-eval-run-service-0ne6bjff.js → flow-eval-run-service-03j1szf6.js} +73 -80
  29. package/dist/{flow-eval-service-kbbq3wwq.js → flow-eval-service-9j46ta9k.js} +167 -415
  30. package/dist/{flow-init-sdk-source-z9qx1zkt.js → flow-init-sdk-source-xvdvkq7d.js} +6 -5
  31. package/dist/{flow-init-service-cefvmek0.js → flow-init-service-0a4y3a46.js} +19 -15
  32. package/dist/{flow-io-ykx6eb1v.js → flow-io-1wabd32s.js} +15 -11
  33. package/dist/{flow-migrate-service-c4hcjfc8.js → flow-migrate-service-mkqpbwtv.js} +16 -12
  34. package/dist/{flow-pack-service-6wqe1mj3.js → flow-pack-service-7dj2hhyz.js} +47 -38
  35. package/dist/flow-validate-service-1ktjayjv.js +70 -0
  36. package/dist/{fr-Y6NPVODW-8vr1ja4b.js → fr-CERONSRC-edpxhbmb.js} +237 -30
  37. package/dist/{fr-MDFKNZ4C-h4a122k9.js → fr-VBM5WRC2-63z7w4mh.js} +29 -2
  38. package/dist/fr-VBM5WRC2-707ha692.js +200 -0
  39. package/dist/{governance-fetcher-fgwewrfq.js → governance-fetcher-76hxssjm.js} +7 -6
  40. package/dist/{hitl-service-0tct4x3e.js → hitl-service-vcbhd4cb.js} +15 -11
  41. package/dist/{index-aaq9rwfv.js → index-1b2je9n2.js} +1088 -233
  42. package/dist/index-d090f35d.js +66 -0
  43. package/dist/{index-yj4xk2aw.js → index-dgdnbb2g.js} +7 -5
  44. package/dist/{index-ng2f77my.js → index-fyc0k5dd.js} +985 -617
  45. package/dist/{index-tzky1ynd.js → index-hz008fep.js} +6 -5
  46. package/dist/{index-vrhcbxnk.js → index-nsn889vf.js} +6 -5
  47. package/dist/{index-2s8rmmw6.js → index-sqhbn7ew.js} +4 -4
  48. package/dist/{index-tnz5ks4t.js → index-wycgq0ff.js} +65 -2230
  49. package/dist/index.js +17 -14
  50. package/dist/init.js +19 -15
  51. package/dist/inline-entity-resolver-64pqwk86.js +45 -0
  52. package/dist/input-reader-n7kzdrev.js +12 -0
  53. package/dist/{ja-UTQEAP34-8e0q6swp.js → ja-43QL7CGO-c3q8gre9.js} +29 -2
  54. package/dist/ja-43QL7CGO-h6qfxfay.js +200 -0
  55. package/dist/{ja-Q5PXKJ2V-p4msxzjd.js → ja-U2MCNHGT-gz0ap1jk.js} +235 -28
  56. package/dist/{known-types-q6fcyq2e.js → known-types-3025scz1.js} +5 -5
  57. package/dist/ko-TLL6Z6CD-ag6gjynr.js +200 -0
  58. package/dist/{ko-AXCHW2OK-askct7f6.js → ko-TLL6Z6CD-wrt3n8a9.js} +29 -2
  59. package/dist/{ko-AYBDSRZG-41mdmsg1.js → ko-XAUYQWDR-zp81gjp4.js} +237 -30
  60. package/dist/{maestro-automate-entry-qak46eg0.js → maestro-automate-entry-6f9act3w.js} +2 -2
  61. package/dist/{node-ey7dteda.js → node-hz6cvp9d.js} +29 -15
  62. package/dist/{node-service-z8s4nm09.js → node-service-7wz8gx7h.js} +41 -30
  63. package/dist/{node-strategy-fdnkvq4a.js → node-strategy-1dmmhvf3.js} +1 -1
  64. package/dist/node-sync-service-yvyf7chw.js +61 -0
  65. package/dist/packager-tool-10vc8pq4.js +2 -0
  66. package/dist/{packager-tool-wq9k7pq8.js → packager-tool-2h15x2kb.js} +6 -6
  67. package/dist/{packager-tool-c4909mw9.js → packager-tool-2z0r1f32.js} +668 -57
  68. package/dist/packager-tool-4kr6g0zw.js +16 -0
  69. package/dist/packager-tool-4x7tzvv0.js +1176 -0
  70. package/dist/{packager-tool-d88rqwk8.js → packager-tool-6z1hsm2h.js} +13 -5
  71. package/dist/packager-tool-7hw344bt.js +107 -0
  72. package/dist/{packager-tool-fjcbc1bb.js → packager-tool-7wnxyvf9.js} +519 -437
  73. package/dist/{packager-tool-m8xtf5ej.js → packager-tool-8g5931fz.js} +7 -4
  74. package/dist/{packager-tool-h9tzz0qd.js → packager-tool-961vsbsc.js} +15 -10
  75. package/dist/packager-tool-9era57c0.js +28 -0
  76. package/dist/packager-tool-9gprvfcy.js +23 -0
  77. package/dist/packager-tool-9jxzgsxc.js +14 -0
  78. package/dist/{packager-tool-zxp4hya4.js → packager-tool-a5afh1dc.js} +34 -13
  79. package/dist/{packager-tool-02f63a08.js → packager-tool-apawc11t.js} +88 -762
  80. package/dist/{packager-tool-tf3d2y8z.js → packager-tool-aw9v0raw.js} +2 -2
  81. package/dist/packager-tool-cqtsj6yh.js +2 -0
  82. package/dist/{packager-tool-5nqhxb9e.js → packager-tool-dwd6cc01.js} +16110 -13031
  83. package/dist/{packager-tool-t605qewm.js → packager-tool-dxgrhfq5.js} +2 -2
  84. package/dist/{packager-tool-awkq26v0.js → packager-tool-e7kvq8hf.js} +5 -3
  85. package/dist/{packager-tool-m6abv2vy.js → packager-tool-fjqpf1y6.js} +6 -24
  86. package/dist/{packager-tool-3dc9gz35.js → packager-tool-frjt46rb.js} +1 -1
  87. package/dist/{packager-tool-y8egb0fa.js → packager-tool-gqq3vkgh.js} +2573 -535
  88. package/dist/{packager-tool-w5a1hhyj.js → packager-tool-hxyjn885.js} +13 -2
  89. package/dist/packager-tool-j3228zs9.js +35 -0
  90. package/dist/{packager-tool-hhy1gr2k.js → packager-tool-jgfzfqjm.js} +1 -1
  91. package/dist/{packager-tool-n4m8yrm2.js → packager-tool-kb520rm5.js} +172 -71
  92. package/dist/{packager-tool-4fhedj18.js → packager-tool-kmv2p8z4.js} +20 -8
  93. package/dist/{packager-tool-6h69pd2a.js → packager-tool-kn86394c.js} +127 -61
  94. package/dist/packager-tool-mgcz986r.js +143 -0
  95. package/dist/{packager-tool-3h2ktz6q.js → packager-tool-myhbp761.js} +11 -1
  96. package/dist/{packager-tool-2xycknte.js → packager-tool-ns9xn7zq.js} +13 -13
  97. package/dist/{packager-tool-vbfz8k7w.js → packager-tool-p8gab24q.js} +52 -32
  98. package/dist/{packager-tool-stq8800d.js → packager-tool-pacrqxv2.js} +17 -4
  99. package/dist/{packager-tool-7q6z6npd.js → packager-tool-pcvhcn2k.js} +93 -11
  100. package/dist/packager-tool-phw8ydjx.js +331 -0
  101. package/dist/{packager-tool-c7nmvv5g.js → packager-tool-q8akejne.js} +6 -4
  102. package/dist/packager-tool-qcqb9hf8.js +26 -0
  103. package/dist/{packager-tool-n89vrpex.js → packager-tool-skcjythd.js} +10907 -25608
  104. package/dist/{packager-tool-vnwq9t1v.js → packager-tool-sphnextf.js} +5 -6
  105. package/dist/{packager-tool-1ca047de.js → packager-tool-sqpesv2e.js} +12 -56
  106. package/dist/packager-tool-t7ahhaer.js +877 -0
  107. package/dist/{packager-tool-0d375dbz.js → packager-tool-thnkpqwc.js} +1802 -378
  108. package/dist/{packager-tool-peawy22c.js → packager-tool-tqjfdpda.js} +53 -8
  109. package/dist/{packager-tool-qsa2nf80.js → packager-tool-vd3rn4fj.js} +463 -327
  110. package/dist/{packager-tool-5tjzg56t.js → packager-tool-wh660fny.js} +1 -1
  111. package/dist/{packager-tool-tyg399d6.js → packager-tool-wze74wyk.js} +74 -47
  112. package/dist/{packager-tool-arbswyqr.js → packager-tool-x20684x5.js} +1 -1
  113. package/dist/packager-tool-xj0agqpk.js +11 -0
  114. package/dist/packager-tool-xk78j7dz.js +1256 -0
  115. package/dist/{packager-tool-py93409h.js → packager-tool-ymma2s85.js} +2 -2
  116. package/dist/packager-tool-z0yxfhdj.js +40 -0
  117. package/dist/packager-tool.js +13 -10
  118. package/dist/{pt-BR-TKHNHMET-sn91xyq0.js → pt-BR-GNQNAAZ2-xadharv4.js} +237 -30
  119. package/dist/{pt-BR-Y6K6XHXK-mp3hwhw1.js → pt-BR-USP2T7GD-pedn77m1.js} +29 -2
  120. package/dist/pt-BR-USP2T7GD-rppy42ym.js +200 -0
  121. package/dist/{pt-3DIO5QWG-59b3f4bc.js → pt-RMIAKZB4-67enhx3m.js} +29 -2
  122. package/dist/pt-RMIAKZB4-t80exmp7.js +200 -0
  123. package/dist/{pt-ROXU257Y-2f6bxev4.js → pt-TO2DARY2-ftcce1bv.js} +237 -30
  124. package/dist/ro-GHOBYW2S-4zevc9dy.js +200 -0
  125. package/dist/{ro-BWR3ONRR-vzx3hy8a.js → ro-GHOBYW2S-mhnqsgaa.js} +29 -2
  126. package/dist/{ro-AVAWPKOO-b89pw79r.js → ro-WUYJV6OW-a8d9qy1n.js} +235 -28
  127. package/dist/ru-WBLQ5B2U-dpqvtfwr.js +10 -0
  128. package/dist/services/connector-request-buckets.d.ts +1 -0
  129. package/dist/services/flow-eval-file-store.d.ts +1 -11
  130. package/dist/services/flow-eval-utils.d.ts +1 -32
  131. package/dist/services/flow-validate-service.d.ts +51 -0
  132. package/dist/services/inline-entity-resolver.d.ts +22 -0
  133. package/dist/services/node-service.d.ts +21 -1
  134. package/dist/services/packaging-utils.d.ts +15 -2
  135. package/dist/{shared-utils-pnbvyyb2.js → shared-utils-tqnx96mg.js} +4 -3
  136. package/dist/solution-auth-8qz5pw7z.js +14 -0
  137. package/dist/solution-discovery-vqravtkh.js +44 -0
  138. package/dist/{tidy-service-chs0s9pw.js → tidy-service-tqjea6g2.js} +143 -39
  139. package/dist/tool.js +17 -14
  140. package/dist/{tr-5IIHSFW5-hw4cewew.js → tr-GDTLECMM-k5fhmq13.js} +29 -2
  141. package/dist/tr-GDTLECMM-kngksm3r.js +200 -0
  142. package/dist/{tr-JMIP7ZSL-c39b6pe4.js → tr-M3F5A6AU-bb0tg39m.js} +235 -28
  143. package/dist/utils/flow-io.d.ts +2 -1
  144. package/dist/validation.js +39 -33
  145. package/dist/{variable-service-6ky17hts.js → variable-service-kqnqxmx2.js} +16 -12
  146. package/dist/{wait-for-flow-job-d8m6mqb4.js → wait-for-flow-job-b0vj8828.js} +15 -12
  147. package/dist/{zh-CN-IFFXSEJS-9wm9gmrv.js → zh-CN-C5G4PC7C-ds9gkptg.js} +235 -28
  148. package/dist/zh-CN-I5D7WHBD-ge92tbx9.js +200 -0
  149. package/dist/{zh-CN-R2KU4U5L-tc1hat59.js → zh-CN-I5D7WHBD-sr5h0a98.js} +29 -2
  150. package/dist/{zh-TW-GNKMELBF-j674515r.js → zh-TW-2AVLM723-288pkc1z.js} +29 -2
  151. package/dist/zh-TW-2AVLM723-xsmap3gk.js +200 -0
  152. package/dist/{zh-TW-IYBNYAMG-8727c7v2.js → zh-TW-62HZIG6O-787kdwex.js} +234 -27
  153. package/package.json +2 -2
  154. package/dist/debug-conversation-trigger-mqzrtt1v.js +0 -44
  155. package/dist/flow-eval-run-api-byx3cacw.js +0 -13
  156. package/dist/flow-validate-service-5pbh3s4p.js +0 -64
  157. package/dist/input-reader-vhar4g0k.js +0 -11
  158. package/dist/node-sync-service-ak1wgysc.js +0 -40
  159. package/dist/packager-tool-2m06764j.js +0 -454
  160. package/dist/packager-tool-6c3szt0w.js +0 -265
  161. package/dist/packager-tool-8ak76pc3.js +0 -15
  162. package/dist/packager-tool-pz5nqg0s.js +0 -64
  163. package/dist/packager-tool-t3ysatjd.js +0 -521
  164. package/dist/packager-tool-vd6jt4n8.js +0 -208
  165. package/dist/services/flow-debug-service.d.ts +0 -320
  166. package/dist/services/flow-eval-schema/deterministic-evaluators.d.ts +0 -110
  167. package/dist/services/flow-eval-schema/evaluator-fields.d.ts +0 -66
  168. package/dist/services/flow-eval-schema/helpers.d.ts +0 -9
  169. package/dist/services/flow-eval-schema/index.d.ts +0 -4
  170. package/dist/services/flow-eval-schema/llm-judge-evaluators.d.ts +0 -174
  171. package/dist/services/flow-eval-schema/prompts.d.ts +0 -2
  172. package/dist/services/flow-eval-schema/registry.d.ts +0 -375
  173. package/dist/services/flow-eval-schema/tool-call-evaluators.d.ts +0 -93
  174. package/dist/services/flow-eval-schema/types.d.ts +0 -95
  175. package/dist/services/flow-eval-types.d.ts +0 -6
  176. package/dist/utils/write-resolved-flow.d.ts +0 -7
  177. /package/dist/{headless-45dypanh.js → headless-fw8pwyzm.js} +0 -0
  178. /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?: Record<string, unknown>;
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-02f63a08.js";
10
- import"./packager-tool-3h2ktz6q.js";
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=5DDAF54C1A74EC3564756E2164756E21
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-vnwq9t1v.js";
12
- import"./packager-tool-0d375dbz.js";
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-h9tzz0qd.js";
20
- import"./packager-tool-hhy1gr2k.js";
21
- import"./packager-tool-stq8800d.js";
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-tyg399d6.js";
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-7q6z6npd.js";
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-d88rqwk8.js";
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-02f63a08.js";
42
- import"./packager-tool-3h2ktz6q.js";
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
- var ARTIFACT_GROUP_SPACING = 96;
121
- var ARTIFACT_HORIZONTAL_SPACING = ARTIFACT_GROUP_SPACING / 2;
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 ports = nodePortsMap.get(node.id) ?? [];
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({ id: edge.id, sources: [sourceRef], targets: [targetRef] });
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"] = "GREEDY_MODEL_ORDER";
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
- if (child.isContainer)
498
- return buildTidyElkContainer(child.id, params);
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
- ...params.orthogonalRouting ? { "elk.edgeRouting": "ORTHOGONAL" } : {},
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.layoutOptions !== undefined;
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=0381B64E0226B5AC64756E2164756E21
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-qsa2nf80.js";
5
- import"./packager-tool-tf3d2y8z.js";
6
- import"./packager-tool-c7nmvv5g.js";
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-c4909mw9.js";
9
- import"./packager-tool-py93409h.js";
10
- import"./packager-tool-peawy22c.js";
11
- import"./packager-tool-t3ysatjd.js";
12
- import"./packager-tool-w5a1hhyj.js";
13
- import"./packager-tool-3dc9gz35.js";
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-6h69pd2a.js";
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-02f63a08.js";
21
- import"./packager-tool-3h2ktz6q.js";
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=AF39B1B8CADA91DC64756E2164756E21
31
+ //# debugId=7B70BBCE49EB8EAF64756E2164756E21