@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.
- package/dist/builder/index.d.mts +7 -5
- package/dist/builder/index.mjs +75 -31
- package/dist/compute-view/index.d.mts +45 -11
- package/dist/compute-view/index.mjs +149 -12
- package/dist/compute-view/relationships-view/index.d.mts +5 -5
- package/dist/index.d.mts +5 -5
- package/dist/index.mjs +4 -4
- package/dist/model/connection/deployment/index.d.mts +7 -7
- package/dist/model/connection/deployment/index.mjs +1 -1
- package/dist/model/connection/index.d.mts +8 -8
- package/dist/model/connection/index.mjs +1 -1
- package/dist/model/connection/model/index.d.mts +7 -7
- package/dist/model/index.d.mts +9 -9
- package/dist/model/index.mjs +2 -2
- package/dist/shared/{core.BYdtmqY5.mjs → core.BNN-3vPH.mjs} +1 -1
- package/dist/shared/{core.CRhT4Iio.mjs → core.BP_QHEXs.mjs} +1 -1
- package/dist/shared/{core.CBLX4mT8.mjs → core.Bdy3hhTc.mjs} +108 -137
- package/dist/shared/{core.C-Jdx7xo.d.mts → core.BfCKSW-g.d.mts} +10 -7
- package/dist/shared/{core.DeDCYTDR.d.mts → core.CAgYpDtM.d.mts} +2 -2
- package/dist/shared/{core.DEK-BO3_.mjs → core.CHf8VEa3.mjs} +1 -1
- package/dist/shared/{core.BvPm_-u3.d.mts → core.DC5IAaDT.d.mts} +1 -1
- package/dist/shared/{core.BZCgljZd.d.mts → core.DE9qzhn8.d.mts} +2 -2
- package/dist/shared/{core.BspBF3SJ.mjs → core.DGcIbsj4.mjs} +3 -1
- package/dist/shared/{core.Dt0v3djy.d.mts → core.DKhRkHRN.d.mts} +1 -1
- package/dist/shared/{core.DVfPJPJj.mjs → core.DU5SRqNF.mjs} +13 -4
- package/dist/shared/{core.xgoPk2RG.mjs → core.Dh119QSP.mjs} +18 -12
- package/dist/shared/{core.DSalPD6v.mjs → core.DjcWextK.mjs} +26 -7
- package/dist/shared/{core.DpKY_3NF.d.mts → core.Dojz4bvg.d.mts} +4 -4
- package/dist/shared/{core.xeuDd__E.mjs → core.btEq3i3f.mjs} +1 -1
- package/dist/shared/{core.Ctj2S3bD.d.mts → core.osFs8tU7.d.mts} +6 -6
- package/dist/shared/{core.ClTP6-TN.d.mts → core.tpvDGvdC.d.mts} +2 -2
- package/dist/styles/index.d.mts +4 -4
- package/dist/styles/index.mjs +1 -1
- package/dist/types/expression-model.d.mts +1 -1
- package/dist/types/expression.d.mts +1 -1
- package/dist/types/index.d.mts +6 -6
- package/dist/types/index.mjs +2 -2
- package/dist/utils/index.mjs +3 -3
- package/package.json +5 -4
package/dist/builder/index.d.mts
CHANGED
|
@@ -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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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
|
}
|
package/dist/builder/index.mjs
CHANGED
|
@@ -1,20 +1,23 @@
|
|
|
1
1
|
import { d as defu } from '../shared/core.CLSZtnFh.mjs';
|
|
2
|
-
import { t as t$
|
|
3
|
-
import { t as t$
|
|
4
|
-
import { t as t$6 } from '../shared/core.
|
|
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$
|
|
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.
|
|
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$
|
|
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$
|
|
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$
|
|
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$
|
|
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
|
|
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
|
-
|
|
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 (
|
|
481
|
+
if (lookup.has(fqn)) {
|
|
452
482
|
throw new Error(`Element with id "${element.id}" already exists`);
|
|
453
483
|
}
|
|
454
|
-
|
|
484
|
+
lookup.set(fqn, project ? { ...element, id: fqn } : element);
|
|
455
485
|
return self;
|
|
456
486
|
},
|
|
457
487
|
__addRelation(relation) {
|
|
458
|
-
const
|
|
459
|
-
|
|
460
|
-
const
|
|
461
|
-
|
|
462
|
-
|
|
463
|
-
|
|
464
|
-
|
|
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$
|
|
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$
|
|
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.
|
|
3
|
-
import { P as ParsedLikeC4ModelData, C as ComputedLikeC4ModelData, p as ParsedView, r as ComputedView } from '../shared/core.
|
|
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.
|
|
6
|
-
import '../shared/core.
|
|
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
|
-
|
|
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
|
-
export {
|
|
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.
|
|
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$
|
|
9
|
-
import { t as t$
|
|
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$
|
|
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$
|
|
79
|
-
outEdges: t$
|
|
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$
|
|
98
|
+
views: t$3(views, (v) => n$1(withReadableEdges(v), ["nodeIds", "edgeIds"]))
|
|
89
99
|
};
|
|
90
100
|
}
|
|
91
101
|
|
|
92
|
-
|
|
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.
|
|
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.
|
|
7
|
-
import '../../shared/core.
|
|
6
|
+
import '../../shared/core.CAgYpDtM.mjs';
|
|
7
|
+
import '../../shared/core.DC5IAaDT.mjs';
|
|
8
8
|
import '../../types/fqnRef.mjs';
|
|
9
|
-
import '../../shared/core.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
2
|
-
export { D as DeploymentConnectionModel, a as findConnection, b as findConnectionsBetween, c as findConnectionsWithin } from '../../../shared/core.
|
|
3
|
-
import '../../../shared/core.
|
|
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.
|
|
6
|
-
import '../../../shared/core.
|
|
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.
|
|
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.
|
|
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.
|
|
2
|
+
export { D as DeploymentConnectionModel, f as findConnection, g as findConnectionsBetween, h as findConnectionsWithin } from '../../../shared/core.BP_QHEXs.mjs';
|