@likec4/core 1.46.4 → 1.47.0

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 (39) hide show
  1. package/dist/builder/index.d.mts +7 -5
  2. package/dist/builder/index.mjs +75 -31
  3. package/dist/compute-view/index.d.mts +45 -11
  4. package/dist/compute-view/index.mjs +149 -12
  5. package/dist/compute-view/relationships-view/index.d.mts +5 -5
  6. package/dist/index.d.mts +5 -5
  7. package/dist/index.mjs +4 -4
  8. package/dist/model/connection/deployment/index.d.mts +7 -7
  9. package/dist/model/connection/deployment/index.mjs +1 -1
  10. package/dist/model/connection/index.d.mts +8 -8
  11. package/dist/model/connection/index.mjs +1 -1
  12. package/dist/model/connection/model/index.d.mts +7 -7
  13. package/dist/model/index.d.mts +9 -9
  14. package/dist/model/index.mjs +2 -2
  15. package/dist/shared/{core.BYdtmqY5.mjs → core.BNN-3vPH.mjs} +1 -1
  16. package/dist/shared/{core.CRhT4Iio.mjs → core.BP_QHEXs.mjs} +1 -1
  17. package/dist/shared/{core.CBLX4mT8.mjs → core.Bdy3hhTc.mjs} +108 -137
  18. package/dist/shared/{core.C-Jdx7xo.d.mts → core.BfCKSW-g.d.mts} +10 -7
  19. package/dist/shared/{core.DeDCYTDR.d.mts → core.CAgYpDtM.d.mts} +2 -2
  20. package/dist/shared/{core.DEK-BO3_.mjs → core.CHf8VEa3.mjs} +1 -1
  21. package/dist/shared/{core.BvPm_-u3.d.mts → core.DC5IAaDT.d.mts} +1 -1
  22. package/dist/shared/{core.BZCgljZd.d.mts → core.DE9qzhn8.d.mts} +2 -2
  23. package/dist/shared/{core.BspBF3SJ.mjs → core.DGcIbsj4.mjs} +3 -1
  24. package/dist/shared/{core.Dt0v3djy.d.mts → core.DKhRkHRN.d.mts} +1 -1
  25. package/dist/shared/{core.DVfPJPJj.mjs → core.DU5SRqNF.mjs} +13 -4
  26. package/dist/shared/{core.xgoPk2RG.mjs → core.Dh119QSP.mjs} +18 -12
  27. package/dist/shared/{core.DSalPD6v.mjs → core.DjcWextK.mjs} +26 -7
  28. package/dist/shared/{core.DpKY_3NF.d.mts → core.Dojz4bvg.d.mts} +4 -4
  29. package/dist/shared/{core.xeuDd__E.mjs → core.btEq3i3f.mjs} +1 -1
  30. package/dist/shared/{core.Ctj2S3bD.d.mts → core.osFs8tU7.d.mts} +6 -6
  31. package/dist/shared/{core.ClTP6-TN.d.mts → core.tpvDGvdC.d.mts} +2 -2
  32. package/dist/styles/index.d.mts +4 -4
  33. package/dist/styles/index.mjs +1 -1
  34. package/dist/types/expression-model.d.mts +1 -1
  35. package/dist/types/expression.d.mts +1 -1
  36. package/dist/types/index.d.mts +6 -6
  37. package/dist/types/index.mjs +2 -2
  38. package/dist/utils/index.mjs +3 -3
  39. package/package.json +5 -4
@@ -1,13 +1,13 @@
1
1
  import { LastArrayElement, Split, Simplify, IsLiteral, Writable, IfNever, IsNever, TupleToUnion, Tagged, PartialDeep } from 'type-fest';
2
- import { f as LikeC4Model } from '../shared/core.C-Jdx7xo.mjs';
2
+ import { f as LikeC4Model } from '../shared/core.BfCKSW-g.mjs';
3
3
  import { D as DeploymentFqn, F as Fqn, M as MarkdownOrString } from '../shared/core.C_3y3eqV.mjs';
4
- import { f as DeploymentElement, j as DeploymentRelationship, p as ParsedView, a0 as ParsedDeploymentView, P as ParsedLikeC4ModelData } from '../shared/core.Ctj2S3bD.mjs';
5
- import { f as Element, g as ModelRelation, q as AnyViewRuleStyle, w as AutoLayoutDirection, ah as ParsedElementView, h as ElementSpecification$1, j as RelationshipSpecification, T as TagSpecification, L as LikeC4ProjectStylesConfig } from '../shared/core.DpKY_3NF.mjs';
6
- import { o as Participant, j as Expression, h as ElementShape, T as ThemeColor, B as BorderStyle, e as ShapeSize, S as SpacingSize, d as TextSize, g as RelationshipArrowType, f as RelationshipLineType } from '../shared/core.BvPm_-u3.mjs';
4
+ import { f as DeploymentElement, j as DeploymentRelationship, p as ParsedView, a0 as ParsedDeploymentView, P as ParsedLikeC4ModelData } from '../shared/core.osFs8tU7.mjs';
5
+ import { f as Element, g as ModelRelation, q as AnyViewRuleStyle, w as AutoLayoutDirection, ah as ParsedElementView, h as ElementSpecification$1, j as RelationshipSpecification, T as TagSpecification, L as LikeC4ProjectStylesConfig } from '../shared/core.Dojz4bvg.mjs';
6
+ import { o as Participant, j as Expression, h as ElementShape, T as ThemeColor, B as BorderStyle, e as ShapeSize, S as SpacingSize, d as TextSize, g as RelationshipArrowType, f as RelationshipLineType } from '../shared/core.DC5IAaDT.mjs';
7
7
  import { ModelFqnExpr, ModelRelationExpr } from '../types/expression-model.mjs';
8
8
  import { N as NonEmptyArray, K as KeysOf } from '../shared/core.DB0Ue5Wx.mjs';
9
9
  import { Y as setProject, e as Aux, f as SpecAux, A as Any } from '../shared/core.D00YbOhQ.mjs';
10
- import '../shared/core.DeDCYTDR.mjs';
10
+ import '../shared/core.CAgYpDtM.mjs';
11
11
  import '../shared/core.CywrQs86.mjs';
12
12
  import '../shared/core.BPGOjone.mjs';
13
13
  import '../types/fqnRef.mjs';
@@ -551,11 +551,13 @@ interface Builder<T extends AnyTypes> extends BuilderMethods<T> {
551
551
  * Views are not computed or layouted
552
552
  * {@link toLikeC4Model} should be used to get model with computed views
553
553
  */
554
+ build<const ProjectId extends string>(project: ProjectId): ParsedLikeC4ModelData<setProject<Types.ToAux<T>, ProjectId>>;
554
555
  build<const Project extends BuilderProjectSpecification>(project: Project): ParsedLikeC4ModelData<setProject<Types.ToAux<T>, Project['id']>>;
555
556
  build(): ParsedLikeC4ModelData<Types.ToAux<T>>;
556
557
  /**
557
558
  * Returns Computed LikeC4Model
558
559
  */
560
+ toLikeC4Model<const ProjectId extends string>(project: ProjectId): LikeC4Model.Computed<setProject<Types.ToAux<T>, ProjectId>>;
559
561
  toLikeC4Model<const Project extends BuilderProjectSpecification>(project: Project): LikeC4Model.Computed<setProject<Types.ToAux<T>, Project['id']>>;
560
562
  toLikeC4Model(): LikeC4Model.Computed<Types.ToAux<T>>;
561
563
  }
@@ -1,20 +1,23 @@
1
1
  import { d as defu } from '../shared/core.CLSZtnFh.mjs';
2
- import { t as t$1, a as t$7 } from '../shared/core.BsSXS-_R.mjs';
3
- import { t as t$5 } from '../shared/core.Coi_LOUZ.mjs';
4
- import { t as t$6 } from '../shared/core.BspBF3SJ.mjs';
2
+ import { t as t$4 } from '../shared/core.3ZhnKAlZ.mjs';
3
+ import { t as t$1, a as t$8 } from '../shared/core.BsSXS-_R.mjs';
4
+ import { t as t$6 } from '../shared/core.Coi_LOUZ.mjs';
5
+ import { t as t$3, n } from '../shared/core.DjcWextK.mjs';
6
+ import { t as t$7 } from '../shared/core.DGcIbsj4.mjs';
5
7
  import { k as e } from '../shared/core.om36dXXW.mjs';
6
8
  import { e as e$3 } from '../shared/core.DRJma0Ol.mjs';
7
9
  import { a as _type, u as e$2, _ as _stage, d as isDeployedInstance, p as isElementView } from '../shared/core.DH7TXqXf.mjs';
8
10
  import { t as t$2 } from '../shared/core.CbT8JVYL.mjs';
9
- import { a as t$4, c as computeLikeC4Model } from '../shared/core.xgoPk2RG.mjs';
10
- import { t as t$3 } from '../shared/core.DSalPD6v.mjs';
11
+ import { a as t$5, d as computeLikeC4Model } from '../shared/core.Dh119QSP.mjs';
11
12
  import { assignTagColors } from '../styles/index.mjs';
12
13
  import { n as nameFromFqn, d as isSameHierarchy, p as parentFqn } from '../shared/core.CdNCAwq7.mjs';
13
14
  import { e as e$1 } from '../shared/core.CqAJJpK_.mjs';
14
15
  import { ModelFqnExpr } from '../types/expression-model.mjs';
16
+ import { D as DefaultMap } from '../shared/core.BbE4y-yl.mjs';
15
17
  import { i as invariant } from '../shared/core.D4npX2q8.mjs';
16
- import { e as exact } from '../shared/core.DEK-BO3_.mjs';
18
+ import { e as exact } from '../shared/core.CHf8VEa3.mjs';
17
19
  import { FqnRef } from '../types/fqnRef.mjs';
20
+ import { b as isGlobalFqn, c as splitGlobalFqn } from '../shared/core.D0WZutNd.mjs';
18
21
 
19
22
  function t(...t){return t$1(Object.fromEntries,t)}
20
23
 
@@ -330,7 +333,7 @@ function mkViewBuilder(view) {
330
333
  }
331
334
 
332
335
  function ensureObj(value) {
333
- return e(value) ? t$6(value, (_) => ({})) : value;
336
+ return e(value) ? t$7(value, (_) => ({})) : value;
334
337
  }
335
338
  function validateSpec({ tags, elements, deployments, relationships, ...specification }) {
336
339
  const spectags = {};
@@ -341,7 +344,7 @@ function validateSpec({ tags, elements, deployments, relationships, ...specifica
341
344
  );
342
345
  }
343
346
  const _elements = ensureObj(elements);
344
- for (const [kind, spec] of t$5(_elements)) {
347
+ for (const [kind, spec] of t$6(_elements)) {
345
348
  if (spec.tags) {
346
349
  for (const tag of spec.tags) {
347
350
  invariant(tag in spectags, `Invalid specification for element kind "${kind}": tag "${tag}" not found`);
@@ -349,7 +352,7 @@ function validateSpec({ tags, elements, deployments, relationships, ...specifica
349
352
  }
350
353
  }
351
354
  const _deployments = ensureObj(deployments ?? {});
352
- for (const [kind, spec] of t$5(_deployments)) {
355
+ for (const [kind, spec] of t$6(_deployments)) {
353
356
  if (spec.tags) {
354
357
  for (const tag of spec.tags) {
355
358
  invariant(
@@ -380,7 +383,7 @@ function builder(_spec, _elements = /* @__PURE__ */ new Map(), _relations = [],
380
383
  predicates: {},
381
384
  dynamicPredicates: {},
382
385
  styles: {}
383
- }, _deployments = /* @__PURE__ */ new Map(), _deploymentRelations = []) {
386
+ }, _deployments = /* @__PURE__ */ new Map(), _deploymentRelations = [], _imports = new DefaultMap(() => /* @__PURE__ */ new Map())) {
384
387
  const spec = validateSpec(_spec);
385
388
  const toLikeC4Specification = () => {
386
389
  return {
@@ -393,7 +396,7 @@ function builder(_spec, _elements = /* @__PURE__ */ new Map(), _relations = [],
393
396
  };
394
397
  };
395
398
  const mapLinks = (links) => {
396
- if (!links || !t$7(links, 1)) {
399
+ if (!links || !t$8(links, 1)) {
397
400
  return void 0;
398
401
  }
399
402
  return t$2(links, (l) => typeof l === "string" ? { url: l } : l);
@@ -425,11 +428,35 @@ function builder(_spec, _elements = /* @__PURE__ */ new Map(), _relations = [],
425
428
  builder2
426
429
  ];
427
430
  };
431
+ const checkElementExists = (id) => {
432
+ const [project, fqn] = splitGlobalFqn(id);
433
+ const lookup = project ? _imports.get(project) : _elements;
434
+ const el = lookup.get(fqn);
435
+ invariant(el, `Element with id "${id}" not found`);
436
+ return el;
437
+ };
438
+ const parseRelEndpoint = (endpoint) => {
439
+ if (typeof endpoint === "string") {
440
+ const [project, model] = splitGlobalFqn(endpoint);
441
+ if (project) {
442
+ return { project, model };
443
+ }
444
+ return { model };
445
+ }
446
+ if ("project" in endpoint || "deployment" in endpoint) {
447
+ return endpoint;
448
+ }
449
+ return parseRelEndpoint(endpoint.model);
450
+ };
428
451
  const self = {
429
452
  get Types() {
430
453
  throw new Error("Types are not available in runtime");
431
454
  },
432
455
  clone: () => {
456
+ const imports = new DefaultMap(() => /* @__PURE__ */ new Map());
457
+ for (const [key, value] of _imports) {
458
+ imports.set(key, structuredClone(value));
459
+ }
433
460
  return builder(
434
461
  structuredClone(spec),
435
462
  structuredClone(_elements),
@@ -437,35 +464,47 @@ function builder(_spec, _elements = /* @__PURE__ */ new Map(), _relations = [],
437
464
  structuredClone(_views),
438
465
  structuredClone(_globals),
439
466
  structuredClone(_deployments),
440
- structuredClone(_deploymentRelations)
467
+ structuredClone(_deploymentRelations),
468
+ imports
441
469
  );
442
470
  },
443
471
  __addElement: (element) => {
444
- const parent = parentFqn(element.id);
472
+ const [project, fqn] = splitGlobalFqn(element.id);
473
+ const parent = parentFqn(fqn);
474
+ const lookup = project ? _imports.get(project) : _elements;
445
475
  if (parent) {
446
476
  invariant(
447
- _elements.get(parent),
477
+ lookup.get(parent),
448
478
  `Parent element with id "${parent}" not found for element with id "${element.id}"`
449
479
  );
450
480
  }
451
- if (_elements.has(element.id)) {
481
+ if (lookup.has(fqn)) {
452
482
  throw new Error(`Element with id "${element.id}" already exists`);
453
483
  }
454
- _elements.set(element.id, element);
484
+ lookup.set(fqn, project ? { ...element, id: fqn } : element);
455
485
  return self;
456
486
  },
457
487
  __addRelation(relation) {
458
- const sourceEl = _elements.get(FqnRef.flatten(relation.source));
459
- invariant(sourceEl, `Element with id "${relation.source.model}" not found`);
460
- const targetEl = _elements.get(FqnRef.flatten(relation.target));
461
- invariant(targetEl, `Element with id "${relation.target.model}" not found`);
462
- invariant(
463
- !isSameHierarchy(sourceEl, targetEl),
464
- "Cannot create relationship between elements in the same hierarchy"
465
- );
488
+ const source = parseRelEndpoint(relation.source);
489
+ const sourceFqn = FqnRef.flatten(source);
490
+ const target = parseRelEndpoint(relation.target);
491
+ const targetFqn = FqnRef.flatten(target);
492
+ const sourceEl = checkElementExists(sourceFqn);
493
+ const targetEl = checkElementExists(targetFqn);
494
+ if (isGlobalFqn(sourceFqn) && isGlobalFqn(targetFqn)) {
495
+ throw new Error("Cannot create relationship between global elements");
496
+ }
497
+ if (!isGlobalFqn(sourceFqn) && !isGlobalFqn(targetFqn)) {
498
+ invariant(
499
+ !isSameHierarchy(sourceEl, targetEl),
500
+ "Cannot create relationship between elements in the same hierarchy"
501
+ );
502
+ }
466
503
  _relations.push({
467
504
  id: `rel${_relations.length + 1}`,
468
- ...relation
505
+ ...relation,
506
+ source,
507
+ target
469
508
  });
470
509
  return self;
471
510
  },
@@ -535,10 +574,10 @@ function builder(_spec, _elements = /* @__PURE__ */ new Map(), _relations = [],
535
574
  },
536
575
  build: (project) => ({
537
576
  [_stage]: "parsed",
538
- projectId: project?.id ?? "from-builder",
577
+ projectId: typeof project === "string" ? project : project?.id ?? "from-builder",
539
578
  project: {
540
- id: "from-builder",
541
- ...project
579
+ id: typeof project === "string" ? project : "from-builder",
580
+ ...typeof project === "object" && project !== null ? project : {}
542
581
  },
543
582
  specification: toLikeC4Specification(),
544
583
  elements: t(
@@ -546,7 +585,7 @@ function builder(_spec, _elements = /* @__PURE__ */ new Map(), _relations = [],
546
585
  Array.from(_elements.entries())
547
586
  )
548
587
  ),
549
- relations: t$4(_relations, (r) => [r.id, structuredClone(r)]),
588
+ relations: t$5(_relations, (r) => [r.id, structuredClone(r)]),
550
589
  globals: structuredClone(_globals),
551
590
  deployments: {
552
591
  elements: t(
@@ -554,14 +593,19 @@ function builder(_spec, _elements = /* @__PURE__ */ new Map(), _relations = [],
554
593
  Array.from(_deployments.entries())
555
594
  )
556
595
  ),
557
- relations: t$4(_deploymentRelations, (r) => [r.id, structuredClone(r)])
596
+ relations: t$5(_deploymentRelations, (r) => [r.id, structuredClone(r)])
558
597
  },
559
598
  views: t(
560
599
  structuredClone(
561
600
  Array.from(_views.entries())
562
601
  )
563
602
  ),
564
- imports: {}
603
+ imports: t$4(
604
+ Array.from(_imports.entries()),
605
+ t$2(([projectId, elementsMap]) => [projectId, structuredClone([...elementsMap.values()])]),
606
+ n(([_, elements]) => elements.length > 0),
607
+ t()
608
+ )
565
609
  }),
566
610
  toLikeC4Model: (project) => {
567
611
  const parsed = self.build(project);
@@ -1,16 +1,16 @@
1
- import { A as Any, t as toComputed, d as AnyParsed } from '../shared/core.D00YbOhQ.mjs';
2
- import { f as LikeC4Model } from '../shared/core.C-Jdx7xo.mjs';
3
- import { P as ParsedLikeC4ModelData, C as ComputedLikeC4ModelData, p as ParsedView, r as ComputedView } from '../shared/core.Ctj2S3bD.mjs';
1
+ import { A as Any, t as toComputed, d as AnyParsed, m as _stage } from '../shared/core.D00YbOhQ.mjs';
2
+ import { f as LikeC4Model } from '../shared/core.BfCKSW-g.mjs';
3
+ import { P as ParsedLikeC4ModelData, C as ComputedLikeC4ModelData, p as ParsedView, r as ComputedView, J as DiagramNode, K as DiagramEdge } from '../shared/core.osFs8tU7.mjs';
4
+ import { H as BaseViewProperties, O as ComputedNode, P as ComputedEdge, B as ViewAutoLayout } from '../shared/core.Dojz4bvg.mjs';
5
+ import { P as ProjectId } from '../shared/core.C_3y3eqV.mjs';
6
+ import { B as BBox } from '../shared/core.BPGOjone.mjs';
7
+ import { N as NonEmptyArray } from '../shared/core.DB0Ue5Wx.mjs';
4
8
  import 'type-fest';
5
- import '../shared/core.DB0Ue5Wx.mjs';
6
- import '../shared/core.C_3y3eqV.mjs';
7
- import '../shared/core.DeDCYTDR.mjs';
8
- import '../shared/core.BvPm_-u3.mjs';
9
+ import '../shared/core.CAgYpDtM.mjs';
10
+ import '../shared/core.DC5IAaDT.mjs';
9
11
  import '../types/fqnRef.mjs';
10
- import '../shared/core.DpKY_3NF.mjs';
11
- import '../types/expression-model.mjs';
12
- import '../shared/core.BPGOjone.mjs';
13
12
  import '../shared/core.CywrQs86.mjs';
13
+ import '../types/expression-model.mjs';
14
14
 
15
15
  type ComputeViewResult<V> = {
16
16
  isSuccess: true;
@@ -42,4 +42,38 @@ declare function withReadableEdges<V extends ComputedView<any>>({ edges, nodes,
42
42
  };
43
43
  declare function viewsWithReadableEdges<A extends Any>({ views, ...model }: ComputedLikeC4ModelData<A>): ComputedLikeC4ModelData<A>;
44
44
 
45
- export { type ComputeViewResult, computeLikeC4Model, computeParsedModelData, computeView, resolveRulesExtendedViews, unsafeComputeView, viewsWithReadableEdges, withReadableEdges };
45
+ interface ComputedProjectNode extends ComputedNode {
46
+ readonly projectId: ProjectId;
47
+ }
48
+ interface ComputedProjectEdge extends ComputedEdge {
49
+ readonly projectId: ProjectId;
50
+ }
51
+ interface LayoutedProjectNode extends DiagramNode {
52
+ readonly projectId: ProjectId;
53
+ }
54
+ interface LayoutedProjectEdge extends DiagramEdge {
55
+ readonly projectId: ProjectId;
56
+ }
57
+ /**
58
+ * An overview of projects and their relationships, presented as a graph with nodes and edges.
59
+ * Even though it has same structure as other likec4 views, it is not mixed with them, as it represents a different kind.
60
+ */
61
+ interface ComputedProjectsView extends BaseViewProperties<any> {
62
+ readonly [_stage]: 'computed';
63
+ readonly nodes: ReadonlyArray<ComputedProjectNode>;
64
+ readonly edges: ReadonlyArray<ComputedProjectEdge>;
65
+ readonly autoLayout: ViewAutoLayout;
66
+ }
67
+ interface LayoutedProjectsView extends BaseViewProperties<any> {
68
+ readonly [_stage]: 'layouted';
69
+ readonly nodes: ReadonlyArray<LayoutedProjectNode>;
70
+ readonly edges: ReadonlyArray<LayoutedProjectEdge>;
71
+ readonly bounds: BBox;
72
+ }
73
+
74
+ /**
75
+ * Computes an overview of projects and their relationships
76
+ */
77
+ declare function computeProjectsView(likec4models: NonEmptyArray<LikeC4Model>): ComputedProjectsView;
78
+
79
+ export { type ComputeViewResult, type ComputedProjectEdge, type ComputedProjectNode, type ComputedProjectsView, type LayoutedProjectEdge, type LayoutedProjectNode, type LayoutedProjectsView, computeLikeC4Model, computeParsedModelData, computeProjectsView, computeView, resolveRulesExtendedViews, unsafeComputeView, viewsWithReadableEdges, withReadableEdges };
@@ -1,19 +1,29 @@
1
- import { w as willCreateCycle, t as topologicalSortExports, a as t$2, n as n$1 } from '../shared/core.xgoPk2RG.mjs';
2
- export { c as computeLikeC4Model, b as computeParsedModelData, d as computeView, u as unsafeComputeView } from '../shared/core.xgoPk2RG.mjs';
1
+ import { w as willCreateCycle, t as topologicalSortExports, a as t$4, n as n$1, b as t$9, l as linkNodesWithEdges, c as topologicalSort } from '../shared/core.Dh119QSP.mjs';
2
+ export { d as computeLikeC4Model, e as computeParsedModelData, f as computeView, u as unsafeComputeView } from '../shared/core.Dh119QSP.mjs';
3
3
  import { n } from '../shared/core.BhNcrwzK.mjs';
4
- import { t } from '../shared/core.DVfPJPJj.mjs';
5
- import { r as isExtendsElementView, p as isElementView } from '../shared/core.DH7TXqXf.mjs';
4
+ import { t as t$2 } from '../shared/core.DU5SRqNF.mjs';
5
+ import { r as isExtendsElementView, p as isElementView, _ as _stage } from '../shared/core.DH7TXqXf.mjs';
6
6
  import { G as Graph } from '../shared/core.CmGY9blO.mjs';
7
7
  import { c as isNonEmptyArray } from '../shared/core.CdNCAwq7.mjs';
8
- import { t as t$3 } from '../shared/core.CbT8JVYL.mjs';
9
- import { t as t$1 } from '../shared/core.DSalPD6v.mjs';
8
+ import { t as t$5 } from '../shared/core.CbT8JVYL.mjs';
9
+ import { t as t$3, b as t$8 } from '../shared/core.DjcWextK.mjs';
10
+ import { t as t$1, a as t$7 } from '../shared/core.BsSXS-_R.mjs';
11
+ import { t as t$6, e as e$1 } from '../shared/core.Coi_LOUZ.mjs';
12
+ import { e } from '../shared/core.BP_QHEXs.mjs';
13
+ import { D as DefaultMap } from '../shared/core.BbE4y-yl.mjs';
14
+ import { a as nonNullable, i as invariant } from '../shared/core.D4npX2q8.mjs';
15
+ import { s as stringHash } from '../shared/core.oSV6SRfk.mjs';
16
+ import { preferSummary } from '../types/_aux.mjs';
17
+ import { a as GlobalFqn, P as ProjectId } from '../shared/core.D0WZutNd.mjs';
18
+
19
+ function t(...t){return t$1(Object.keys,t)}
10
20
 
11
21
  function resolveRulesExtendedViews(unresolvedViews) {
12
22
  const g = new Graph({
13
23
  type: "directed"
14
24
  });
15
25
  const extendedViews = [];
16
- for (const view of t(unresolvedViews)) {
26
+ for (const view of t$2(unresolvedViews)) {
17
27
  g.addNode(view.id, { view });
18
28
  if (isExtendsElementView(view)) {
19
29
  extendedViews.push(view);
@@ -66,7 +76,7 @@ function resolveRulesExtendedViews(unresolvedViews) {
66
76
  }
67
77
 
68
78
  function withReadableEdges({ edges, nodes, ...view }, separator = ":") {
69
- const edgeids = t$2(edges, (e) => [e.id, `${e.source}${separator}${e.target}`]);
79
+ const edgeids = t$4(edges, (e) => [e.id, `${e.source}${separator}${e.target}`]);
70
80
  return {
71
81
  ...view,
72
82
  edges: edges.map((e) => ({
@@ -75,8 +85,8 @@ function withReadableEdges({ edges, nodes, ...view }, separator = ":") {
75
85
  })),
76
86
  nodes: nodes.map((n) => ({
77
87
  ...n,
78
- inEdges: t$3(n.inEdges, (e) => edgeids[e]),
79
- outEdges: t$3(n.outEdges, (e) => edgeids[e])
88
+ inEdges: t$5(n.inEdges, (e) => edgeids[e]),
89
+ outEdges: t$5(n.outEdges, (e) => edgeids[e])
80
90
  })),
81
91
  nodeIds: nodes.map((n) => n.id),
82
92
  edgeIds: edges.map((e) => edgeids[e.id])
@@ -85,8 +95,135 @@ function withReadableEdges({ edges, nodes, ...view }, separator = ":") {
85
95
  function viewsWithReadableEdges({ views, ...model }) {
86
96
  return {
87
97
  ...model,
88
- views: t$1(views, (v) => n$1(withReadableEdges(v), ["nodeIds", "edgeIds"]))
98
+ views: t$3(views, (v) => n$1(withReadableEdges(v), ["nodeIds", "edgeIds"]))
89
99
  };
90
100
  }
91
101
 
92
- export { resolveRulesExtendedViews, viewsWithReadableEdges, withReadableEdges };
102
+ const keysCount = (object) => t(object).length;
103
+ const nodeId = (projectId) => stringHash(projectId);
104
+ function computeProjectsView(likec4models) {
105
+ const nodesMap = buildNodesForEachModel(likec4models);
106
+ const key = (from, to) => `${from}->${to}`;
107
+ const relationships = new DefaultMap((key2) => {
108
+ const [from, to] = key2.split("->");
109
+ return {
110
+ from,
111
+ to,
112
+ relationships: /* @__PURE__ */ new Set()
113
+ };
114
+ });
115
+ const relationshipsFromTo = (from, to) => relationships.get(key(from, to)).relationships;
116
+ const processImportedElement = (model, importedElement) => {
117
+ const projectId = importedElement.projectId;
118
+ invariant(projectId !== model.projectId, "Imported element must have a different project id");
119
+ const incoming = relationshipsFromTo(model.projectId, projectId);
120
+ for (const rel of importedElement.incoming("direct")) {
121
+ if (rel.source.projectId === model.projectId) {
122
+ incoming.add(rel);
123
+ }
124
+ }
125
+ const outgoing = relationshipsFromTo(projectId, model.projectId);
126
+ for (const rel of importedElement.outgoing("direct")) {
127
+ if (rel.target.projectId === model.projectId) {
128
+ outgoing.add(rel);
129
+ }
130
+ }
131
+ };
132
+ for (const model of likec4models) {
133
+ if (e(model.$data.imports)) {
134
+ continue;
135
+ }
136
+ for (const [projectId, imported] of t$6(model.$data.imports)) {
137
+ for (const importedElement of imported) {
138
+ const fqn = GlobalFqn(projectId, importedElement.id);
139
+ processImportedElement(
140
+ model,
141
+ nonNullable(
142
+ model.findElement(fqn),
143
+ `Element ${importedElement.id} from project ${projectId} not found in model ${model.projectId}`
144
+ )
145
+ );
146
+ }
147
+ }
148
+ }
149
+ const edges = Array.from(relationships.entries()).filter(([_, { relationships: relationships2 }]) => relationships2.size > 0).map(([key2, { from, to, relationships: relationshipsSet }]) => {
150
+ const relationships2 = [...relationshipsSet];
151
+ invariant(t$7(relationships2, 1), "Relationships set must have at least one relationship");
152
+ const edge = {
153
+ id: stringHash(key2),
154
+ source: nodeId(from),
155
+ target: nodeId(to),
156
+ projectId: from,
157
+ relations: t$5(relationships2, e$1("id")),
158
+ label: null,
159
+ color: "gray",
160
+ parent: null,
161
+ line: "solid",
162
+ tags: n(t$8(relationships2, e$1("tags")))
163
+ };
164
+ const onlyOne = t$9(relationships2);
165
+ if (onlyOne) {
166
+ edge.label = onlyOne.title;
167
+ edge.description = preferSummary(onlyOne.$relationship) ?? null;
168
+ edge.technology = onlyOne.technology;
169
+ edge.color = onlyOne.color;
170
+ edge.line = onlyOne.line;
171
+ if (onlyOne.kind) {
172
+ edge.kind = onlyOne.kind;
173
+ }
174
+ if (onlyOne.$relationship.navigateTo) {
175
+ edge.navigateTo = onlyOne.$relationship.navigateTo;
176
+ }
177
+ }
178
+ return edge;
179
+ });
180
+ linkNodesWithEdges(nodesMap, edges);
181
+ const sorted = topologicalSort({
182
+ nodes: nodesMap,
183
+ edges
184
+ });
185
+ return {
186
+ id: "projects-view",
187
+ [_stage]: "computed",
188
+ title: "Projects",
189
+ description: {
190
+ txt: "Overview of all projects and their relationships"
191
+ },
192
+ autoLayout: {
193
+ direction: "TB"
194
+ },
195
+ ...sorted
196
+ };
197
+ }
198
+ function buildNodesForEachModel(likec4models) {
199
+ const nodesMap = /* @__PURE__ */ new Map();
200
+ for (const model of likec4models) {
201
+ const projectId = ProjectId(model.projectId);
202
+ const node = {
203
+ id: nodeId(projectId),
204
+ kind: "@project",
205
+ parent: null,
206
+ projectId,
207
+ title: model.project.title ?? model.project.id,
208
+ description: {
209
+ txt: [
210
+ `Elements: ${keysCount(model.$data.elements)}`,
211
+ `Relationships: ${keysCount(model.$data.relations)}`,
212
+ `Views: ${keysCount(model.$data.views)}`
213
+ ].join("\n")
214
+ },
215
+ shape: "rectangle",
216
+ children: [],
217
+ inEdges: [],
218
+ outEdges: [],
219
+ color: "primary",
220
+ level: 0,
221
+ style: {},
222
+ tags: []
223
+ };
224
+ nodesMap.set(node.id, node);
225
+ }
226
+ return nodesMap;
227
+ }
228
+
229
+ export { computeProjectsView, resolveRulesExtendedViews, viewsWithReadableEdges, withReadableEdges };
@@ -1,16 +1,16 @@
1
1
  import { A as Any, U as Unknown, a as ElementId, V as ViewId } from '../../shared/core.D00YbOhQ.mjs';
2
- import { E as ElementModel, R as RelationshipModel, f as LikeC4Model } from '../../shared/core.C-Jdx7xo.mjs';
2
+ import { E as ElementModel, R as RelationshipModel, f as LikeC4Model } from '../../shared/core.BfCKSW-g.mjs';
3
3
  import 'type-fest';
4
4
  import '../../shared/core.DB0Ue5Wx.mjs';
5
5
  import '../../shared/core.C_3y3eqV.mjs';
6
- import '../../shared/core.DeDCYTDR.mjs';
7
- import '../../shared/core.BvPm_-u3.mjs';
6
+ import '../../shared/core.CAgYpDtM.mjs';
7
+ import '../../shared/core.DC5IAaDT.mjs';
8
8
  import '../../types/fqnRef.mjs';
9
- import '../../shared/core.DpKY_3NF.mjs';
9
+ import '../../shared/core.Dojz4bvg.mjs';
10
10
  import '../../types/expression-model.mjs';
11
11
  import '../../shared/core.BPGOjone.mjs';
12
12
  import '../../shared/core.CywrQs86.mjs';
13
- import '../../shared/core.Ctj2S3bD.mjs';
13
+ import '../../shared/core.osFs8tU7.mjs';
14
14
 
15
15
  type RelationshipsViewData<M extends Any = Unknown> = {
16
16
  incomers: ReadonlySet<ElementModel<M>>;
package/dist/index.d.mts CHANGED
@@ -1,9 +1,9 @@
1
- import { L as LayoutedView, V as ViewManualLayoutSnapshot } from './shared/core.Ctj2S3bD.mjs';
2
- export { t as AnyView, o as AuxFromDump, A as AuxFromLikeC4ModelData, C as ComputedLikeC4ModelData, r as ComputedView, e as DeployedInstance, f as DeploymentElement, g as DeploymentElementRef, D as DeploymentNode, k as DeploymentRelation, j as DeploymentRelationship, Y as DeploymentViewExcludePredicate, X as DeploymentViewIncludePredicate, Z as DeploymentViewPredicate, $ as DeploymentViewRule, _ as DeploymentViewRuleStyle, K as DiagramEdge, W as DiagramEdgeDriftReason, J as DiagramNode, U as DiagramNodeDriftReason, M as LayoutType, O as LayoutedDeploymentView, Q as LayoutedDynamicView, N as LayoutedElementView, c as LayoutedLikeC4ModelData, T as LayoutedViewDriftReason, d as LikeC4ModelData, m as LikeC4ModelDump, p as LikeC4View, a0 as ParsedDeploymentView, P as ParsedLikeC4ModelData, p as ParsedView, s as ProcessedView, n as ProjectDump, R as RichText, a as RichTextEmpty, b as RichTextOrEmpty, l as SpecTypesFromDump, S as SpecificationDump, u as ViewOnStage, w as ViewRule, x as ViewRulePredicate, v as ViewWithType, B as isComputedView, h as isDeployedInstance, i as isDeploymentNode, H as isDeploymentView, q as isDiagramView, I as isDynamicView, E as isElementView, G as isExtendsElementView, q as isLayoutedView, F as isScopedElementView, y as isViewRulePredicate, z as isViewRuleStyle } from './shared/core.Ctj2S3bD.mjs';
1
+ import { L as LayoutedView, V as ViewManualLayoutSnapshot } from './shared/core.osFs8tU7.mjs';
2
+ export { t as AnyView, o as AuxFromDump, A as AuxFromLikeC4ModelData, C as ComputedLikeC4ModelData, r as ComputedView, e as DeployedInstance, f as DeploymentElement, g as DeploymentElementRef, D as DeploymentNode, k as DeploymentRelation, j as DeploymentRelationship, Y as DeploymentViewExcludePredicate, X as DeploymentViewIncludePredicate, Z as DeploymentViewPredicate, $ as DeploymentViewRule, _ as DeploymentViewRuleStyle, K as DiagramEdge, W as DiagramEdgeDriftReason, J as DiagramNode, U as DiagramNodeDriftReason, M as LayoutType, O as LayoutedDeploymentView, Q as LayoutedDynamicView, N as LayoutedElementView, c as LayoutedLikeC4ModelData, T as LayoutedViewDriftReason, d as LikeC4ModelData, m as LikeC4ModelDump, p as LikeC4View, a0 as ParsedDeploymentView, P as ParsedLikeC4ModelData, p as ParsedView, s as ProcessedView, n as ProjectDump, R as RichText, a as RichTextEmpty, b as RichTextOrEmpty, l as SpecTypesFromDump, S as SpecificationDump, u as ViewOnStage, w as ViewRule, x as ViewRulePredicate, v as ViewWithType, B as isComputedView, h as isDeployedInstance, i as isDeploymentNode, H as isDeploymentView, q as isDiagramView, I as isDynamicView, E as isElementView, G as isExtendsElementView, q as isLayoutedView, F as isScopedElementView, y as isViewRulePredicate, z as isViewRuleStyle } from './shared/core.osFs8tU7.mjs';
3
3
  export { B as BiMap, D as DefaultWeakMap, L as LinkedList, M as MultiMap, Q as Queue, a as ancestorsFqn, h as hasProp, i as invariant, b as isAncestor, c as isDescendantOf, d as isNonEmptyArray, e as isSameHierarchy, f as isString, m as memoizeProp, n as nameFromFqn, j as nonNullable, g as nonexhaustive, p as parentFqn, s as sortNaturalByFqn, k as sortParentsFirst } from './shared/core.OtRNdMxy.mjs';
4
4
  export { D as DefaultMap } from './shared/core.CywrQs86.mjs';
5
- export { L as LikeC4Styles } from './shared/core.DeDCYTDR.mjs';
6
- export { A as AndOperator, B as BorderStyle, z as BorderStyles, C as Color, G as ColorLiteral, U as CustomColor, Q as CustomColorDefinitions, E as ElementColorValues, h as ElementShape, D as ElementShapes, k as EqualOperator, j as Expression, u as Filterable, F as FqnExpr, H as HexColor, K as KindEqual, b as LikeC4StyleDefaults, L as LikeC4StylesConfig, a as LikeC4Theme, N as NotOperator, v as OperatorPredicate, O as OrOperator, o as Participant, p as ParticipantOperator, P as PredicateSelector, i as RelationExpr, g as RelationshipArrowType, I as RelationshipArrowTypes, R as RelationshipColorValues, f as RelationshipLineType, e as ShapeSize, y as Size, x as Sizes, S as SpacingSize, l as TagEqual, d as TextSize, T as ThemeColor, c as ThemeColorValues, J as ThemeColors, W as WhereOperator, s as isAndOperator, V as isCustomColor, n as isKindEqual, r as isNotOperator, t as isOrOperator, q as isParticipantOperator, m as isTagEqual, M as isThemeColor, w as whereOperatorAsPredicate } from './shared/core.BvPm_-u3.mjs';
5
+ export { L as LikeC4Styles } from './shared/core.CAgYpDtM.mjs';
6
+ export { A as AndOperator, B as BorderStyle, z as BorderStyles, C as Color, G as ColorLiteral, U as CustomColor, Q as CustomColorDefinitions, E as ElementColorValues, h as ElementShape, D as ElementShapes, k as EqualOperator, j as Expression, u as Filterable, F as FqnExpr, H as HexColor, K as KindEqual, b as LikeC4StyleDefaults, L as LikeC4StylesConfig, a as LikeC4Theme, N as NotOperator, v as OperatorPredicate, O as OrOperator, o as Participant, p as ParticipantOperator, P as PredicateSelector, i as RelationExpr, g as RelationshipArrowType, I as RelationshipArrowTypes, R as RelationshipColorValues, f as RelationshipLineType, e as ShapeSize, y as Size, x as Sizes, S as SpacingSize, l as TagEqual, d as TextSize, T as ThemeColor, c as ThemeColorValues, J as ThemeColors, W as WhereOperator, s as isAndOperator, V as isCustomColor, n as isKindEqual, r as isNotOperator, t as isOrOperator, q as isParticipantOperator, m as isTagEqual, M as isThemeColor, w as whereOperatorAsPredicate } from './shared/core.DC5IAaDT.mjs';
7
7
  export { i as isIterable } from './shared/core.DXhDWKFZ.mjs';
8
8
  export { A as Any, A as AnyAux, b as AnyComputed, c as AnyLayouted, d as AnyParsed, e as Aux, k as ExtractOnStage, L as LooseLiteral, M as ModelStage, f as SpecAux, U as Unknown, g as UnknownComputed, h as UnknownLayouted, i as UnknownParsed, o as _layout, m as _stage, n as _type, _ as aux, l as isOnStage, p as preferDescription, j as preferSummary } from './shared/core.D00YbOhQ.mjs';
9
9
  export { A as AnyFqn, B as BuiltInIcon, D as DeploymentFqn, b as DeploymentKind, k as EdgeId, E as ElementKind, F as Fqn, e as GlobalFqn, G as GroupElementKind, I as Icon, a as IconUrl, M as MarkdownOrString, j as NodeId, N as NoneIcon, P as ProjectId, d as RelationId, R as RelationKind, c as RelationshipKind, l as StepEdgeId, S as StepEdgeIdLiteral, n as StepEdgeKind, T as Tag, V as ViewId, p as extractStep, f as flattenMarkdownOrString, g as isGlobalFqn, i as isGroupElementKind, o as isStepEdgeId, s as scalar, h as splitGlobalFqn, m as stepEdgeId } from './shared/core.C_3y3eqV.mjs';
@@ -12,7 +12,7 @@ export { ModelExpression, ModelFqnExpr, ModelRelationExpr } from './types/expres
12
12
  export { FqnRef } from './types/fqnRef.mjs';
13
13
  export { B as BBox, P as Point, R as RectBox, X as XYPoint } from './shared/core.BPGOjone.mjs';
14
14
  export { Vector, VectorValue, vector } from './geometry/index.mjs';
15
- export { A as AbstractRelationship, p as AnyExcludePredicate, o as AnyIncludePredicate, q as AnyViewRuleStyle, w as AutoLayoutDirection, I as BaseParsedViewProperties, H as BaseViewProperties, W as ComputedDeploymentView, X as ComputedDynamicView, P as ComputedEdge, U as ComputedElementView, O as ComputedNode, C as ComputedNodeStyle, Q as ComputedRankConstraint, Y as DynamicStep, _ as DynamicStepsParallel, Z as DynamicStepsSeries, a6 as DynamicViewDisplayVariant, a4 as DynamicViewIncludeRule, a5 as DynamicViewRule, a0 as DynamicViewStep, f as Element, h as ElementSpecification, E as ElementStyle, a9 as ElementViewExcludePredicate, a8 as ElementViewIncludePredicate, aa as ElementViewPredicate, ag as ElementViewRule, ab as ElementViewRuleGroup, ae as ElementViewRuleRank, ad as ElementViewRuleStyle, b as GlobalDynamicPredicates, G as GlobalPredicateId, a as GlobalPredicates, c as GlobalStyleID, d as GlobalStyles, n as LikeC4Project, m as LikeC4ProjectManualLayoutsConfig, l as LikeC4ProjectStyleDefaults, L as LikeC4ProjectStylesConfig, k as LikeC4ProjectTheme, M as ModelGlobals, g as ModelRelation, N as NodeNotation, a7 as ParsedDynamicView, ah as ParsedElementView, u as RankValue, R as Relationship, j as RelationshipSpecification, S as Specification, T as TagSpecification, B as ViewAutoLayout, D as ViewManualLayout, y as ViewRuleAutoLayout, s as ViewRuleGlobalPredicateRef, V as ViewRuleGlobalStyle, v as ViewRuleRank, F as ViewType, K as ViewWithHash, J as ViewWithNotation, e as ensureSizes, $ as getParallelStepsPrefix, x as isAutoLayoutDirection, a1 as isDynamicStep, a2 as isDynamicStepsParallel, a3 as isDynamicStepsSeries, i as isTagColorSpecified, z as isViewRuleAutoLayout, t as isViewRuleGlobalPredicateRef, r as isViewRuleGlobalStyle, ac as isViewRuleGroup, af as isViewRuleRank } from './shared/core.DpKY_3NF.mjs';
15
+ export { A as AbstractRelationship, p as AnyExcludePredicate, o as AnyIncludePredicate, q as AnyViewRuleStyle, w as AutoLayoutDirection, I as BaseParsedViewProperties, H as BaseViewProperties, W as ComputedDeploymentView, X as ComputedDynamicView, P as ComputedEdge, U as ComputedElementView, O as ComputedNode, C as ComputedNodeStyle, Q as ComputedRankConstraint, Y as DynamicStep, _ as DynamicStepsParallel, Z as DynamicStepsSeries, a6 as DynamicViewDisplayVariant, a4 as DynamicViewIncludeRule, a5 as DynamicViewRule, a0 as DynamicViewStep, f as Element, h as ElementSpecification, E as ElementStyle, a9 as ElementViewExcludePredicate, a8 as ElementViewIncludePredicate, aa as ElementViewPredicate, ag as ElementViewRule, ab as ElementViewRuleGroup, ae as ElementViewRuleRank, ad as ElementViewRuleStyle, b as GlobalDynamicPredicates, G as GlobalPredicateId, a as GlobalPredicates, c as GlobalStyleID, d as GlobalStyles, n as LikeC4Project, m as LikeC4ProjectManualLayoutsConfig, l as LikeC4ProjectStyleDefaults, L as LikeC4ProjectStylesConfig, k as LikeC4ProjectTheme, M as ModelGlobals, g as ModelRelation, N as NodeNotation, a7 as ParsedDynamicView, ah as ParsedElementView, u as RankValue, R as Relationship, j as RelationshipSpecification, S as Specification, T as TagSpecification, B as ViewAutoLayout, D as ViewManualLayout, y as ViewRuleAutoLayout, s as ViewRuleGlobalPredicateRef, V as ViewRuleGlobalStyle, v as ViewRuleRank, F as ViewType, K as ViewWithHash, J as ViewWithNotation, e as ensureSizes, $ as getParallelStepsPrefix, x as isAutoLayoutDirection, a1 as isDynamicStep, a2 as isDynamicStepsParallel, a3 as isDynamicStepsSeries, i as isTagColorSpecified, z as isViewRuleAutoLayout, t as isViewRuleGlobalPredicateRef, r as isViewRuleGlobalStyle, ac as isViewRuleGroup, af as isViewRuleRank } from './shared/core.Dojz4bvg.mjs';
16
16
  export { ViewChange } from './types/index.mjs';
17
17
  import 'type-fest';
18
18
 
package/dist/index.mjs CHANGED
@@ -1,14 +1,14 @@
1
- export { L as LikeC4Styles, e as ensureSizes } from './shared/core.BspBF3SJ.mjs';
1
+ export { L as LikeC4Styles, e as ensureSizes } from './shared/core.DGcIbsj4.mjs';
2
2
  export { a as ancestorsFqn, h as hasProp, i as isAncestor, b as isDescendantOf, c as isNonEmptyArray, d as isSameHierarchy, e as isString, n as nameFromFqn, p as parentFqn, s as sortNaturalByFqn, f as sortParentsFirst } from './shared/core.CdNCAwq7.mjs';
3
- export { b as BiMap, d as DefaultWeakMap, l as LinkedList, m as MultiMap, q as Queue } from './shared/core.BYdtmqY5.mjs';
3
+ export { b as BiMap, d as DefaultWeakMap, l as LinkedList, m as MultiMap, q as Queue } from './shared/core.BNN-3vPH.mjs';
4
4
  export { D as DefaultMap } from './shared/core.BbE4y-yl.mjs';
5
5
  export { i as invariant, a as nonNullable, n as nonexhaustive } from './shared/core.D4npX2q8.mjs';
6
6
  export { i as isIterable } from './shared/core.RfnaEmgA.mjs';
7
7
  export { m as memoizeProp } from './shared/core.CLSZtnFh.mjs';
8
- export { a as applyManualLayout, c as calcDriftsFromSnapshot } from './shared/core.DSalPD6v.mjs';
8
+ export { a as applyManualLayout, c as calcDriftsFromSnapshot } from './shared/core.DjcWextK.mjs';
9
9
  export { preferDescription, preferSummary } from './types/_aux.mjs';
10
10
  export { D as DeploymentFqn, E as EdgeId, F as Fqn, a as GlobalFqn, G as GroupElementKind, d as NodeId, N as NoneIcon, P as ProjectId, R as RelationId, S as StepEdgeKind, V as ViewId, h as extractStep, f as flattenMarkdownOrString, b as isGlobalFqn, i as isGroupElementKind, g as isStepEdgeId, s as scalar, c as splitGlobalFqn, e as stepEdgeId } from './shared/core.D0WZutNd.mjs';
11
- export { R as RichText, e as exact } from './shared/core.DEK-BO3_.mjs';
11
+ export { R as RichText, e as exact } from './shared/core.CHf8VEa3.mjs';
12
12
  export { b as _layout, _ as _stage, a as _type, j as isAndOperator, n as isComputedView, d as isDeployedInstance, c as isDeploymentNode, s as isDeploymentView, o as isDiagramView, t as isDynamicView, p as isElementView, r as isExtendsElementView, f as isKindEqual, o as isLayoutedView, h as isNotOperator, i as isOnStage, k as isOrOperator, g as isParticipantOperator, q as isScopedElementView, e as isTagEqual, l as isViewRulePredicate, m as isViewRuleStyle, w as whereOperatorAsPredicate } from './shared/core.DH7TXqXf.mjs';
13
13
  export { Expression, FqnExpr, RelationExpr } from './types/expression.mjs';
14
14
  export { ModelExpression, ModelFqnExpr, ModelRelationExpr } from './types/expression-model.mjs';
@@ -1,15 +1,15 @@
1
- export { C as Connection } from '../../../shared/core.Dt0v3djy.mjs';
2
- export { D as DeploymentConnectionModel, a as findConnection, b as findConnectionsBetween, c as findConnectionsWithin } from '../../../shared/core.ClTP6-TN.mjs';
3
- import '../../../shared/core.C-Jdx7xo.mjs';
1
+ export { C as Connection } from '../../../shared/core.DKhRkHRN.mjs';
2
+ export { D as DeploymentConnectionModel, a as findConnection, b as findConnectionsBetween, c as findConnectionsWithin } from '../../../shared/core.tpvDGvdC.mjs';
3
+ import '../../../shared/core.BfCKSW-g.mjs';
4
4
  import 'type-fest';
5
- import '../../../shared/core.DeDCYTDR.mjs';
6
- import '../../../shared/core.BvPm_-u3.mjs';
5
+ import '../../../shared/core.CAgYpDtM.mjs';
6
+ import '../../../shared/core.DC5IAaDT.mjs';
7
7
  import '../../../shared/core.D00YbOhQ.mjs';
8
8
  import '../../../shared/core.DB0Ue5Wx.mjs';
9
9
  import '../../../shared/core.C_3y3eqV.mjs';
10
10
  import '../../../types/fqnRef.mjs';
11
- import '../../../shared/core.DpKY_3NF.mjs';
11
+ import '../../../shared/core.Dojz4bvg.mjs';
12
12
  import '../../../types/expression-model.mjs';
13
13
  import '../../../shared/core.BPGOjone.mjs';
14
14
  import '../../../shared/core.CywrQs86.mjs';
15
- import '../../../shared/core.Ctj2S3bD.mjs';
15
+ import '../../../shared/core.osFs8tU7.mjs';
@@ -1,2 +1,2 @@
1
1
  export { C as Connection } from '../../../shared/core.BFd1lU9R.mjs';
2
- export { D as DeploymentConnectionModel, f as findConnection, g as findConnectionsBetween, h as findConnectionsWithin } from '../../../shared/core.CRhT4Iio.mjs';
2
+ export { D as DeploymentConnectionModel, f as findConnection, g as findConnectionsBetween, h as findConnectionsWithin } from '../../../shared/core.BP_QHEXs.mjs';